// Create Variables
var forms_array = null;
var top_search_divs = null
var hs_links = null;
var ss_links = null;


// Initiate Controls
document.observe("dom:loaded", initiateLoadedScripts);

function initiateLoadedScripts()
{
	showHideLightViewLinks();
	hideOnJSLoad();
	check_FormsActive();
	check_TopSearch();
	check_Steps();
	check_Flash();
	scrollToWarning();
}

// Two versions of Popup links are created:
// 1. contains zero-script version and is shown by default
// 2. contains javascript popup version (using LightView) and is hidden by default
function showHideLightViewLinks()
{
	var hide_links = $$('a.swapLink_hide');
	var show_links = $$('a.swapLink_show');
	
	hide_links.each(
		function(lnk)
		{
			lnk.hide();
		}
	);
	
	show_links.each(
		function(lnk)
		{
			lnk.show();
		}
	);
}

function hideOnJSLoad()
{
	var hideThese = $$('.js_hide');
	hideThese.each(function(ctrl) { ctrl.hide(); });
}


// START - Initialise forms
// Sets default values for forms and enables the disappear on focus behaviour
function check_FormsActive()
{
	forms_array = new Array('frmTopLogin', 'frmIncluded', 'frmContact', 'frmEmailAFriend', 'frmRequestAViewing', 'frmTestimonialsContact', 'frmRegister');

	for(var fa_ptr=0; fa_ptr<forms_array.length; fa_ptr++)
	{
		if ($(forms_array[fa_ptr]) != undefined)
		{
			initialiseForm(forms_array[fa_ptr]);
		}
	}
}

function initialiseForm(frmName)
{
	var form_elements = Form.getElements(frmName);
		
	form_elements.each(
		function(tb)
		{
			if (tb.type == "textarea" || tb.type == "password" || tb.type == "text")
			{
				tb.observe('focus', tb_focus);
				tb.observe('blur', tb_blur);
			}
		});
}

function tb_focus(eventObj)
{
	var elm = eventObj.element();
	var defaultValue = GetDefaultValue(elm.id);
	
	if (elm.value == defaultValue) { elm.value = GetFocusValue(elm.id);	}
}

function tb_blur(eventObj)
{
	var elm = eventObj.element();
	var defaultValue = GetDefaultValue(elm.id);
	
	if (elm.value == GetFocusValue(elm.id) || elm.value == '') { elm.value = defaultValue; }
}

function GetFocusValue(elmName)
{
	var focusValue = '';
	
	switch (elmName)
	{
		case 'profile_link':
			//focusValue = 'www.yourshack.co.uk/profiles/';
			break;
	}
	
	return focusValue;
}

function GetDefaultValue(elmName)
{
	var defaultValue = "";
	
	switch (elmName)
	{
		case "login_email":
		case "login_email2":
			defaultValue = 'E-Mail';
			break;
		case "login_password":
		case "login_password2":
			defaultValue = 'Password';
			break;
		case "register_first_name":
		case "contact_first_name":
		case "first_name":
			defaultValue = 'First Name';
			break;
		case "register_last_name":
		case "contact_surname":
		case "surname":
			defaultValue = 'Surname';
			break;
                case "register_age":
		case "contact_age":
		case "age":
			defaultValue = 'Age';
			break;
		case "register_email":
		case "contact_email":
		case "email":
			defaultValue = 'E-Mail';
			break;
		case "register_password":
			defaultValue = 'Password';
			break;
		case "contact_number":
		case "mobile":
			defaultValue = 'Mobile';
			break;
		case "contact_enquiry":
		case "request_info":
			defaultValue = 'Request for information';
			break;
		case "your_name":
			defaultValue = 'Your Name';
			break;
		case "your_email":
			defaultValue = 'Your Email';
			break;
		case "friend_full_name":
			defaultValue = 'Friend\'s Name';
			break;
		case "friend_email":
			defaultValue = 'Friend\'s Email';
			break;
		case "your_message":
			defaultValue = 'Message';
			break;
		case "contact_comments":
			defaultValue = 'Comments';
			break;
		case "message_body":
			defaultValue = 'Reply';
			break;
		case 'profile_link':
			defaultValue = 'Enter here';
			break;
		case 'register_help':
			defaultValue = 'Need help? If you have a question for us, please ask us here and we will get back to you';
			break;
		case 'register_phone':
			defaultValue = 'Phone';
			break;
		case 'about_me_occupation_type_notes':
		case 'about_me_working_hours_notes':
		case 'about_me_at_the_property_notes':
			defaultValue = 'Notes';
			break;
	}
	
	return defaultValue;
}
// END - Initialise forms



// Initialise Flash container - if in use
function check_Flash()
{
	if ($('flash_container') != undefined)
	{
		var div = $('flash_container');
		
		var movie_html = "";
		if (div.title != undefined)
		{
			movie_html = unescape(div.title);
		}
		
		if (movie_html != "")
		{
			div.innerHTML = movie_html;
		}
	}
}

// Scroll to warning class - go to whatever needs validation to be fixed
function scrollToWarning()
{
	var elementsOfWarning = $$('.invalid');
	if (elementsOfWarning.length > 0)
	{
		try
		{
			ctrl = elementsOfWarning[0];
			
			var y = ctrl.cumulativeOffset().top;
			var vh = document.viewport.getHeight();
			var y2 = y - (vh/2);
			if (y2 < 0) { y2 = y; }
			
			window.scroll(0, y2);	// should put element in the middle of the page
			//ctrl.scrollTo();	// puts the element at the page top if a long page
		}
		catch (error) {}
	}
}

// START - Top Search
// Check if Top-Search mouseovers are active
function check_TopSearch()
{
	var hs_links = $$('a.hs_mouseOver');
	var ss_links = $$('a.ss_mouseOver');
	
	check_TopSearch_HS();
	check_TopSearch_SS();
}

function check_TopSearch_HS()
{
	if (hs_links != null && (hs_links.length > 0))
	{
		//top_search_divs = new Array("hsh_1", "hsh_2", "hsh_2f", "hsh_2h", "hsh_3");
		top_search_divs = new Array("hsh_2", "hsh_2h");
		
		hs_links.each(
			function(lnk)
			{
				if (lnk.id != 'hs_bot')
				{
					if (lnk.href != website_homepage && lnk.href != '')
					{
						lnk.href = 'javascript: void(0)';
						lnk.observe('click', hs_navClick)
					}
				}
			}
		)
	}
}

function check_TopSearch_SS()
{
	if (ss_links != null && (ss_links.length > 0))
	{
		//top_search_divs = new Array("hsh_1", "hsh_2", "hsh_2f", "hsh_2h", "hsh_3");
		top_search_divs = new Array("hsh_2h", "hsh_4");
		
		ss_links.each(
			function(lnk)
			{
				if (lnk.href != website_homepage && lnk.href != '')
				{
					lnk.href = 'javascript: void(0)';
					lnk.observe('click', ss_navClick)
				}
			}
		)
	}
}

function hs_navClick(eventObj)
{
	var ctrl = Event.element(eventObj);
	var selection_class = 'hs_sel';
	var temp_divs = top_search_divs;
	
	// change class on sender and other links
	hs_links.each(
	function(lnk)
	{
		if (lnk.id == ctrl.id)
		{
			// the link just clicked on
			if (!lnk.hasClassName(selection_class))
			{
				//lnk.removeClassName(lnk.id);
				lnk.addClassName(selection_class);
			}
		}
		else
		{
			if (lnk.hasClassName(selection_class))
			{
				lnk.removeClassName(selection_class);
				//lnk.addClassName(lnk.id);
			}
		}
	});
	
	// show correct middle section
	switch(ctrl.id)
	{
		case "hs_top":
                        $("hsh_2h").hide();
                        $("hsh_1").show();
			temp_divs = temp_divs.without('hsh_1');
			break;
		case "hs_mid":
			//$("hsh_2").show();
			//temp_divs = temp_divs.without('hsh_2');
			$("hsh_1").hide();
                        $("hsh_2h").show();
			temp_divs = temp_divs.without('hsh_2h');
			break;
		case "hs_bot":
			//$("hsh_3").show();
			//temp_divs = temp_divs.without('hsh_3');
			break;
	}
	
	// Hide remaining DIVs again
	for (i=0; i<temp_divs.length; i++)
	{
		$(temp_divs[i]).hide();
	}
}

function ss_navClick(eventObj)
{
	var ctrl = Event.element(eventObj);
	var selection_class = 'ss_sel';
	var temp_divs = top_search_divs;
	
	// change class on sender and other links
	hs_links.each(
	function(lnk)
	{
		if (lnk.id == ctrl.id)
		{
			// the link just clicked on
			if (!lnk.hasClassName(selection_class))
			{
				//lnk.removeClassName(lnk.id);
				lnk.addClassName(selection_class);
			}
		}
		else
		{
			if (lnk.hasClassName(selection_class))
			{
				lnk.removeClassName(selection_class);
				//lnk.addClassName(lnk.id);
			}
		}
	});
	
	// show correct middle section
	switch(ctrl.id)
	{
		case "ss_top":
			//$("hsh_2f").show();
			//temp_divs = temp_divs.without('hsh_2f');
			break;
		case "ss_mid":
			//$("hsh_2").show();
			//temp_divs = temp_divs.without('hsh_2');
                        $("hsh_1").hide();
                        $("hsh_2h").show();
			temp_divs = temp_divs.without('hsh_2h');
			break;
		case "ss_bot":
			$("hsh_4").show();
			temp_divs = temp_divs.without('hsh_4');
			break;
	}
	
	// Hide remaining DIVs again
	for (i=0; i<temp_divs.length; i++)
	{
		$(temp_divs[i]).hide();
	}
}

// END - Top Search

// START - Steps
// Check for existence of steps
function check_Steps()
{
	if ($('step_01') != undefined)
	{
		setupSteps();
	}
}

function setupSteps()
{
	var a_elm = getElementsWithRelOf('switchTo');
	
	a_elm.each(
		function(lnk)
		{
			lnk.href = 'javascript: void(0)';
			lnk.observe('click', stepClick)
		});
}

function stepClick(eventObj)
{
	var ctrl = Event.element(eventObj);

	if (!ctrl.rel) {
		ctrl = ctrl.parentNode;
	}

	var rel_parts = ctrl.rel.split(':');

	$(rel_parts[1]).hide();
	$(rel_parts[2]).show();
}
// END - Steps


function redirect (url) {
	window.location = url;
}