function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function activateOnload() {
	activateTickboxes();
	activateCriteria();
}
//addLoadEvent(activateOnload);


//Reveal the form functions
function activateTickboxes() {
	var intNumBoxes;
	for (iSector = 0; iSector <= 9 ; iSector++)
	{
		intNumBoxes = document.getElementById('fSectorCount'+iSector).value;
		document.getElementById('fSectorCount'+iSector).disabled = "";
		for (i = 0; i < intNumBoxes; i++)
		{
			document.getElementById('fSector'+iSector+'_'+i).disabled = "";
		}
	}
}

function disableTickboxes() {
	var intNumBoxes;
	for (iSector = 0; iSector <= 9 ; iSector++)
	{
		intNumBoxes = document.getElementById('fSectorCount'+iSector).value;
		document.getElementById('fSectorCount'+iSector).disabled = "disabled";
		for (i = 0; i < intNumBoxes; i++)
		{
			document.getElementById('fSector'+iSector+'_'+i).disabled = "disabled";
		}
	}
}

function activateCriteria() {
	var arrElement = new Array("fTypeBuy","fTypeRent","fPriceMin","fPriceMax","fRentMin","fRentMax","fBedrooms","fKeywords","fSold","fNew","fSubmit"); 
	for(i=0; i<arrElement.length; i++) {
		document.getElementById(arrElement[i]).disabled = "";
	}
	return true;
}

function disableCriteria() {
	var arrElement = new Array("fTypeBuy","fTypeRent","fPriceMin","fPriceMax","fRentMin","fRentMax","fBedrooms","fKeywords","fSold","fNew","fSubmit"); 
	for(i=0; i<arrElement.length; i++) {
		document.getElementById(arrElement[i]).disabled = "disabled";
	}
	return true;
}

// Show/Hide an area ------------------------------------------------- //
function showSector(id) {
	whichdiv = document.getElementById(id);
	var thearray= new Array("list0","list1","list2","list3","list4","list5","list6","list7","list8","list9","listC"); 
	for(i=0; i<thearray.length; i++) {
		if(thearray[i] == 'list' + id){
			if (id == 'C')
			{
				document.getElementById('cvty-zoom').className="show";
				document.getElementById('list0').className="ghost";
			}
			else
			{
				document.getElementById(thearray[i]).className="show";
			}
		} else {
			if (thearray[i] != 'listC') {
				document.getElementById(thearray[i]).className="hide"; 
			}
		}
	}
	activateTickboxes();
}

function showMapBehaviour() {
	if (!document.getElementById("map")) return false;
	var Links = document.getElementById("map");
	var link = Links.getElementsByTagName("a");
	for(var i=0; i<link.length; i++){ 
		link[i].onclick = function() {
			var strLink = this.href.substring((this.href.length)-1,(this.href.length));
			if (document.getElementById("lnk_list" + strLink)) {
				showSector(strLink);
				return false;
			}
		}
	}
	return false;
}
addLoadEvent(showMapBehaviour);

function showMapBehaviourCV() {
	if (!document.getElementById("cvtyzoom")) return false;
	var Links = document.getElementById("cvtyzoom");
	var link = Links.getElementsByTagName("area");
	for(var i=0; i<link.length; i++){ 
		link[i].onclick = function() {
			var strLink = this.href.substring((this.href.length)-1,(this.href.length));
			if (document.getElementById("lnk_list" + strLink)) {
				showSector(strLink);
				return false;
			}
		}
	}
	return false;
}
addLoadEvent(showMapBehaviourCV);


// Select All/None -------------------------------------------------- //
function selectAll(iSector) {
	var chk = document.getElementById('fAll' + iSector).checked;
	var j = document.getElementById('fSectorCount' + iSector).value;
	for ( i=0; i<j; i++) {
		document.getElementById('fSector'+iSector+"_"+i).checked = chk
	}
	checkTicked()
}

//	Check how many areas have been ticked ---------------------------- //
function checkTicked() {
	var j;
	var iCheck = 0;
	var iCheckSector = 0;
	var iCheckCV = 0;

	for ( i=0; i<=9; i++) {
		j = document.getElementById('fSectorCount' + i).value;
		iCheckSector = 0;
		for ( k=0; k<j; k++)
		{
			if (document.getElementById('fSector'+i+'_'+k).checked == true)
			{
				iCheckSector++;
				iCheck++;
				if ((i == 4 || i == 5 || i == 6 || i == 7 || i == 8) && iCheckSector > 0) {
					iCheckCV++;
				}
			}
		}
		//Normal Sectors.
		if (iCheckSector >= 1)
		{
			highlightMap(i);
		}
		else
		{
			dehighlightMap(i);
		}
		//Highlight CV on the main map too.
		if (iCheckCV >= 1)
		{
			highlightMap('CV');
		}
		else
		{
			dehighlightMap('CV');
		}

	}

	if (iCheck >= 1)
	{
		document.getElementById('options').className="show"; 
		activateCriteria();
	}
	else
	{
		document.getElementById('options').className="ghost"; 
		disableCriteria();
	}
}

function highlightMap(iSector)
{
	document.getElementById('mapSector'+iSector+'Chk').className="checked";
}

function dehighlightMap(iSector)
{
	document.getElementById('mapSector'+iSector+'Chk').className="hide";
}

//Hide the CV section of the map
function cvHide()
{
	document.getElementById('cvty-zoom').className = "hide";
};

// Show appropiate drop down price selectors ------------------------- //
function populateMinMaxPrice(strType) {
	if (strType == "buy") {
		fHideDiv("divRent");
		fShowDiv("divBuy");
	}
	else {
		fHideDiv("divBuy");
		fShowDiv("divRent");
	}
}

// Show/Hide Divs
function fShowDiv(id) {
  document.getElementById(id).className="show";
}
function fHideDiv(id) {
  document.getElementById(id).className="hide";
}


// Correct users price selection (buying) ---------------------------- //
function checkPriceBuying(iType) {
	var intPriceMin = document.getElementById('fPriceMin').value;
	var intPriceMax = document.getElementById('fPriceMax').value;

	intPriceMin = Math.round(intPriceMin)
	intPriceMax = Math.round(intPriceMax)

	if (intPriceMin >= intPriceMax) {
		if (iType==1) {
			i = document.getElementById('fPriceMin').selectedIndex
			while (intPriceMin >= intPriceMax) {
				i = i - 1
				document.getElementById('fPriceMin').options[i].selected = true
				intPriceMin = document.getElementById('fPriceMin').value
			}
		}
		else {
			i = document.getElementById('fPriceMax').selectedIndex
			while (intPriceMax <= intPriceMin) {
				i = i + 1
				document.getElementById('fPriceMax').options[i].selected = true
				intPriceMax = document.getElementById('fPriceMax').value
			}
		}
	}
}

// Correct users price selection (renting) --------------------------- //
function checkPriceRenting(iType) {
	var intRentMin = document.getElementById('fRentMin').value;
	var intRentMax = document.getElementById('fRentMax').value;

	intRentMin = Math.round(intRentMin)
	intRentMax = Math.round(intRentMax)

	if (intRentMin >= intRentMax) {
		if (iType==1) {
			i = document.getElementById('fRentMin').selectedIndex
			while (intRentMin >= intRentMax) {
				i = i - 1
				document.getElementById('fRentMin').options[i].selected = true
				intRentMin = document.getElementById('fRentMin').value
			}
		}
		else {
			i = document.getElementById('fRentMax').selectedIndex
			while (intRentMax <= intRentMin) {
				i = i + 1
				document.getElementById('fRentMax').options[i].selected = true
				intRentMax = document.getElementById('fRentMax').value
			}
		}
	}
}