
/*
suckerfish inspired - this function decorates the the elements in the top navigation 
with onMouseOver/onMouseOut functions to append/remove a the "sfhover" class which sets visiblity
*/

function menuFix() 
{
	//adding extra spans
	menuSpan();
	
	//adding class for last elements
	lastElementsFix();
	
	//adding extra div for shadow
	addShadow();
			
	// get root <ul> of the top navigation 
	var nav = document.getElementById("nav-top").getElementsByTagName("ul")[0];

	// 	now setup events of the <li>'s
	var sfEls = nav.getElementsByTagName("li");
	for (var i=0; i<sfEls.length; i++) 
	{
		sfEls[i].onmouseover=function() 
		{
			this.className += (this.className.length>0? " ": "") + "sfhover";
		}

		// event added to keep menu items from disappearing
		sfEls[i].onMouseDown=function()
		{
			this.className +=(this.className.length>0? " ": "") + "sfhover";
		}
		
		// event added to keep menu items from disappearing
		sfEls[i].onMouseUp=function()
		{
			this.className += (this.className.length>0? " ": "") + "sfhover";
		}


		sfEls[i].onmouseout=function() 
		{
			this.className = this.className.replace(new RegExp("( ?|^)sfhover\\b"), "");
		}
	}
}


//
//
// a function for amenities page (Local area information)
function section(k) {

	for (i=1; i<50; i++)
    {
        if (i==k)
        {
			eval('document.getElementById(\'block'+i+'\').style.display=\'block\'');
			
			if (document.getElementById('view-links') != null)
			{
				eval('document.getElementById(\'view-links\').className=\'view-links link' + i +'\'');
			}
	    }
        else 
        {
            if(document.getElementById('block'+i) != null)
            {
				eval('document.getElementById(\'block'+i+'\').style.display=\'none\'');
			}
		}
	}
}


    function load(hId, clas){
      var selecters = document.getElementById(hId).getElementsByTagName('DIV');
      for (var i = 0, l = selecters.length; i < l; i++){
	if (selecters[i].id == clas){
	  selecter(selecters[i]);
	}
      }

    }


    function selecter(sId){
      var sHr = sId;
      var sIs = sHr.getElementsByTagName('A');
      var sNm = sHr.getElementsByTagName('STRONG')[0];
      var sNms = sHr.getElementsByTagName('SPAN')[0];
      var sUl = sHr.getElementsByTagName('UL')[0];
      sNm.onclick = function(){sHr.className == 'open' ? sHr.className = 'close' : sHr.className = 'open';}
	sUl.onmouseover = function(){sHr.className= 'open';}
	sUl.onmouseout = function(){sHr.className= 'close';}
      for (var i = 0, l = sIs.length; i < l; i++){
	sIs[i].onclick = function (){sNms.innerHTML = this.innerHTML; sHr.className = 'close'; }
      }

    }	


function wopen(url){
	window.open(url, 'PartExchange', '');
}

/* Show floor plan */

function selectplan(objSel){
	
	var num = objSel.options[objSel.selectedIndex].value;
	
	showplan(num);
}

function getElementsByClassName(searchClass, node, tag){
	var classElements = new Array();
	if (node == null)	{node = document;}
	if (tag == null)	{tag = '*';}
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");
	for (var i = 0, j = 0; i < elsLen; i++)
		{if (pattern.test(els[i].className)){classElements[j] = els[i]; j++;} }
	return classElements;
}
   

function showplan(num) {
	var eid = "floorplan-" + num;	
	var max = 10;

	for (var i = 1; i < max ; i++)
	{
		var tid = "floorplan-" + i;		
		if(getElementsByClassName(tid,document, "DIV").length>0)
		{
			getElementsByClassName(tid,document, "DIV")[0].style.display = "none";
			getElementsByClassName(tid,document, "DIV")[1].style.display = "none";
			document.getElementById("floor" + i).style.display = "none";
		}
	}

	getElementsByClassName(eid,document, "DIV")[0].style.display = "block";
	getElementsByClassName(eid,document, "DIV")[1].style.display = "block";
	document.getElementById("floor" + num).style.display = "block";
}
		

/*  Dropdown lists  */

function showList(list){
	document.getElementById(list).style.display = 'block';
	if(list != 'list1')hideList('list1');
	if(list != 'list2')hideList('list2');
	if(document.getElementById('news-filter'))
		if(list != 'news-regions')hideList('news-regions');
}
function hideList(list){
	document.getElementById(list).style.display = 'none';
}

/* Check for an external click */
var checkExternalClick = function(event) {
	if(document.getElementById("quick-search")){
		if ($(event.target).parents('.select').length === 0) { 
			hideList('list1'); 
			hideList('list2');
		}
	}
	if(document.getElementById('news-filter')){
		if ($(event.target).parents('#news-regions').length === 0) { 
			hideList('news-regions'); 
		}
	}
};

/*  adding span elements to main navigation for safe using SIFr  */

function menuSpan(){
	var el;
	for(var i = 0; i < document.getElementById("nav-top").getElementsByTagName("li").length; i++){
		el = document.getElementById("nav-top").getElementsByTagName("li")[i];
		if(el.parentNode.className == "nav-top"){
			var oldLink = el.getElementsByTagName("a")[0];
			var span = document.createElement("span");
			var link = document.createElement("a");
		
			link.href = oldLink.href;
			link.innerHTML = oldLink.innerHTML;
			if(oldLink.target != null)link.target = oldLink.target;
		
			span.appendChild(link);
			el.replaceChild(span, oldLink);
		}
	}
}

function lastElementsFix(){
	var el;
	for(var i = 0; i < document.getElementById("nav-top").getElementsByTagName("ul").length; i++){
		el = document.getElementById("nav-top").getElementsByTagName("ul")[i];
		if(el.getElementsByTagName("li").length > 0){
			var j = el.getElementsByTagName("li").length - 1;
			el.getElementsByTagName("li")[j].className = "last";
		}
	}
}

function addShadow(){
	var el;
	for(var i = 1; i < document.getElementById("nav-top").getElementsByTagName("ul").length; i++){
		el = document.getElementById("nav-top").getElementsByTagName("ul")[i];
					
		var shadowBox = document.createElement("div");
		var newList = document.createElement("ul");
		newList.innerHTML = el.innerHTML;
		shadowBox.appendChild(newList);
		el.parentNode.replaceChild(shadowBox, el);
		
		
	}
}
		
/* Apply document listener */
$(document).mousedown(checkExternalClick);
 

$(document).ready(function(){
	
	menuFix();

	// prefill postcode search textbox with help-string
	if(document.getElementById("quick-search") != null)
	{
		$('#quick-search ul').css({position: 'absolute', display: 'none'});

		townSearch = $('div.search-by-town input.text')[0];
		if (townSearch.value == "") townSearch.value = "Search by Location";
		$(townSearch).bind("focus", function(){
			if (townSearch.value == "Search by Location") townSearch.value = ""
		});
		$(townSearch).bind("blur", function(){
			townSearch.value = "Search by Location"
		});
		
	}
	
});


