 function getGreeting(){
   var curDateTime = new Date()
   var curHour = curDateTime.getHours()
   var greeting = "Good Evening"
   if (curHour < 12  && curHour >= 0)
     greeting = "Good Morning"
   if (curHour >=12 && curHour < 18)
     greeting = "Good Afternoon"
   return greeting
   }

function initializeSimpleMap() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map_simple"));
        map.setCenter(new GLatLng(document.getElementById('latitude').innerHTML,document.getElementById('longitude').innerHTML), 15);
 
        // Add 10 markers to the map at random locations
        var bounds = map.getBounds();
        var southWest = bounds.getSouthWest();
        var northEast = bounds.getNorthEast();
        var lngSpan = northEast.lng() - southWest.lng();
		map.disableDragging();
        var latSpan = northEast.lat() - southWest.lat();
          var point = new GLatLng(document.getElementById('latitude').innerHTML,document.getElementById('longitude').innerHTML);
          map.addOverlay(new GMarker(point));
        }
    }
	  
function selectAll(element) {
	var T = document.form1.elements[element];   
	for (var i=0;i<T.length;i++) {
 		T[i].checked = true;
	}
}

function selectAllAdvanced(element) {
	var A=element;
	if (A) {
		if (A.length!=undefined) {
			for(var i=0; i<A.length;i++) {
				if (!A[i].disabled) {
					A[i].checked=true;	
				}else{
					A[i].checked=false;
				}			
			}			
		}else{ 
			if (!A.disabled) {
				A.checked=true;
			}else{
				A.checked=false;
			}
		}
	}
}

function deSelectAll(element) {
	var T = document.form1.elements[element];   
	for (var i=0;i<T.length;i++) {
 		T[i].checked = false;
	}
}

function deSelectAllAdvanced(element) {
	var A=element;
	if (A) {
		if (A.length!=undefined) {
			for(var i=0; i<A.length;i++) {
				A[i].checked=false;				
			}			
		}else{ 
			A.checked=false;
		}
	}	
}

function toggleShowObject(value,display) {
	if (document.getElementById(value)) {
		if (display) { 
			document.getElementById(value).style.display='block';
		}else{
			document.getElementById(value).style.display='none';
		}
	}
}

function toggleShowTableRow(elementName) {
	
	if (document.getElementById(elementName)) {
	
		var row = document.getElementById(elementName);
	
		if(navigator.appName.indexOf("Microsoft")>-1) {
			row.style.display = (row.style.display == 'block')? 'none' : 'block';
		}else{
			row.style.display = (row.style.display == 'table-row')? 'none' : 'table-row';
		}
	
	}
	
}

function getSelectedRadioValue(elementName) {
	// returns the value of the selected radio button or "" if no button is selected
	var A=document.form1.elements[elementName];
	if (A) {
   		var i = getSelectedRadio(A);
   		if (i == -1) {
			return "";
		}else{
			if (A[i]) { // Make sure the button group is an array (not just one button)
				return A[i].value;
			}else{ // The button group is just the one button, and it is checked
				return A.value;
			}
		}
	}else{
		return '';
	}
}

function validateCheckboxesTicked(elementName) {
	
	var A = document.form1.elements[elementName+'[]'];
	
	var numTicked = 0;
	
	if (A.length!=undefined) {
		
		for (var i=0; i<A.length; i++) {
			if (A[i].checked==true) {
				numTicked++;	
			}
		}
		
	}else{
		if (A.checked==true) {
			numTicked++;	
		}
	}
	
	if (numTicked>0) {
		return true;
	}else{
		return false;
	}
	
}

function validateEmail(emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
		
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
		//alert("Email address seems incorrect (check @ and .'s)")
		return false;
	}
	var user=matchArray[1]
	var domain=matchArray[2]
		
	if (user.match(userPat)==null) {
		//alert("The username doesn't seem to be valid.")
		return false;
	}
		
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		// this is an IP address
		for (var i=1;i<=4;i++) {
		if (IPArray[i]>255) {
			//alert("Destination IP address is invalid!")
			return false;
		}
		}
		return true;
	}
		
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		//alert("The domain name doesn't seem to be valid.")
		return false;
	}
		
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || 
		domArr[domArr.length-1].length>4) {
	  // alert("The address must end in a three-letter domain, or two letter country.")
	   return false;
	}
		
	if (len<2) {
	   var errStr="This address is missing a hostname!"
	   //alert(errStr)
	   return false;
	}
		
	return true;
}

function validatePostcode(postcode){ //check postcode format is valid
	test = postcode;
	size = test.length
	while (test.slice(0,1) == " ") {
		test = test.substr(1,size-1);size = test.length
	}
	while(test.slice(size-1,size)== " ") {
		test = test.substr(0,size-1);size = test.length
	}
	if (size < 6 || size > 8) { return false; }
	if (!(isNaN(test.charAt(0)))) { return false; }
	if (isNaN(test.charAt(size-3))) { return false; }
	if (!(isNaN(test.charAt(size-2)))) { return false; }
	if (!(isNaN(test.charAt(size-1)))) { return false; }
	if (!(test.charAt(size-4) == " ")) { return false;  }
	count1 = test.indexOf(" ");count2 = test.lastIndexOf(" ");
	if (count1 != count2){ return false; }
	return true;
}

function formatNumber(nStr) {
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function updatePrices(department) {
	
	var A = document.formQuickSearch;
	var B = 0;
	
	var selectedIndexNumber = 0
	
	if (department=="RS") {
		
		B = 0;
		selectedIndexNumber = 0;
		
		A.minimumPrice.length=0;
		
		if (minBlankOption!="") { A.minimumPrice.options[0] = new Option(minBlankOption, ''); B++; }
		
		for (var i=B; i<minPriceArray.length; i++) {
			A.minimumPrice.options[i] = new Option('£'+formatNumber(minPriceArray[i]),minPriceArray[i]);
			if (minPriceArray[i]==minDefault) { selectedIndexNumber = i; }
		}
		A.minimumPrice.selectedIndex=selectedIndexNumber;
		
		B = 0;
		selectedIndexNumber = 0;
		
		A.maximumPrice.length=0;
		
		if (maxBlankOption!="") { A.maximumPrice.options[0] = new Option(maxBlankOption, ''); B++; }
		
		for (var i=B; i<maxPriceArray.length; i++) {
			A.maximumPrice.options[i] = new Option('£'+formatNumber(maxPriceArray[i]),maxPriceArray[i]);
			if (maxPriceArray[i]==maxDefault) { selectedIndexNumber = i; }
		}
			
		A.maximumPrice.selectedIndex=selectedIndexNumber;

		B = 0;
		selectedIndexNumber = 0;
		
		A.regionID.length=0;
		
		if (regionBlankOption!="") { A.regionID.options[0] = new Option(regionBlankOption, ''); B++; }
		
		for (var i=0; i<RSRegionArray.length; i++) {
			regionSplit=RSRegionArray[i].split("|"); 
			A.regionID.options[B] = new Option(regionSplit[1],regionSplit[0]);
			if (regionSplit[0]==regionDefault) { selectedIndexNumber = B; }
			B++;
		}
			
		A.regionID.selectedIndex=selectedIndexNumber;

	}
	
	if (department=="RL") {
		
		B = 0;
		selectedIndexNumber = 0;
		
		A.minimumPrice.length=0;
		
		if (minBlankOption!="") { A.minimumPrice.options[0] = new Option(minBlankOption, ''); B++; }
		
		rentFrequency = A.minimumRentFrequency.value;
		
		if (rentFrequency=="") { // if no frequency set yet
			rentFrequency = minRentArray.pop();
			A.minimumRentFrequency.value = rentFrequency;
		}
		
		for (var i=B; i<minRentArray.length; i++) {
			A.minimumPrice.options[i] = new Option('£'+formatNumber(minRentArray[i])+' '+rentFrequency,minRentArray[i]);
			if (minPriceArray[i]==minDefault) { selectedIndexNumber = i; }
		}
			
		A.minimumPrice.selectedIndex=selectedIndexNumber;
		
		B = 0;
		selectedIndexNumber = 0;
		
		A.maximumPrice.length=0;
		
		if (maxBlankOption!="") { A.maximumPrice.options[0] = new Option(maxBlankOption, ''); B++; }
		
		rentFrequency = A.maximumRentFrequency.value;
		
		if (rentFrequency=="") { // if no frequency set yet
			rentFrequency = maxRentArray.pop();
			A.maximumRentFrequency.value = rentFrequency;
		}
		
		for (var i=B; i<maxRentArray.length; i++) {
			A.maximumPrice.options[i] = new Option('£'+formatNumber(maxRentArray[i])+' '+rentFrequency,maxRentArray[i]);
			if (maxPriceArray[i]==maxDefault) { selectedIndexNumber = i; }
		}
			
		A.maximumPrice.selectedIndex=selectedIndexNumber;

		B = 0;
		selectedIndexNumber = 0;
		
		A.regionID.length=0;
		
		if (regionBlankOption!="") { A.regionID.options[0] = new Option(regionBlankOption, ''); B++; }
		
		for (var i=0; i<RLRegionArray.length; i++) {
			regionSplit=RLRegionArray[i].split("|"); 
			A.regionID.options[B] = new Option(regionSplit[1],regionSplit[0]);
			if (regionSplit[0]==regionDefault) { selectedIndexNumber = B; }
			B++;
		}
			
		A.regionID.selectedIndex=selectedIndexNumber;

	} 
	
	if (department=="C") {
		
		B = 0;
		selectedIndexNumber = 0;
		
		A.regionID.length=0;
		
		if (regionBlankOption!="") { A.regionID.options[0] = new Option(regionBlankOption, ''); B++; }
		
		for (var i=0; i<CRegionArray.length; i++) {
			regionSplit=CRegionArray[i].split("|"); 
			A.regionID.options[B] = new Option(regionSplit[1],regionSplit[0]);
			if (regionSplit[0]==regionDefault) { selectedIndexNumber = B; }
			B++;
		}
			
		A.regionID.selectedIndex=selectedIndexNumber;
	}
	
	if (department=="LA") {
		
		B = 0;
		selectedIndexNumber = 0;
		
		A.regionID.length=0;
		
		if (regionBlankOption!="") { A.regionID.options[0] = new Option(regionBlankOption, ''); B++; }
		
		for (var i=0; i<LARegionArray.length; i++) {
			regionSplit=LARegionArray[i].split("|"); 
			A.regionID.options[B] = new Option(regionSplit[1],regionSplit[0]);
			if (regionSplit[0]==regionDefault) { selectedIndexNumber = B; }
			B++;
		}
			
		A.regionID.selectedIndex=selectedIndexNumber;
	}
	
}

function addToBasket(profileID) {
	
	if (profileID!="" && profileID!="0") {
	
	if (document.getElementById('basketText_'+profileID)) { 
		
		var currentText = document.getElementById('basketText_'+profileID).innerHTML;
	
		if (document.getElementById('basketText_'+profileID)) {
			document.getElementById('basketText_'+profileID).innerHTML = 'Loading...';
		}
		
	}else{
		currentText = '';
	}
	new Ajax.Request('add_to_basket.php', {
		  onSuccess: function(reponse) {

				var ajaxReturn = reponse.responseText
				
				switch (ajaxReturn) {
					case "Added": {
						if (document.getElementById('basketText_'+profileID)) { 
							document.getElementById('basketText_'+profileID).innerHTML = document.getElementById('basket_removeLinkText').innerHTML;
						}
						break;
					}
					case "Removed": {
						if (document.getElementById('basketText_'+profileID)) { 
							document.getElementById('basketText_'+profileID).innerHTML = document.getElementById('basket_addLinkText').innerHTML;
						}
						break;
					}
					default : { alert("An error occured while trying to adding this property to your basket.\n\nPlease try again"); }
				}
				
		  }, parameters: "profileID="+profileID,onFailure: function(transport){ document.getElementById('basketText_'+profileID).innerHTML = currentText; alert('There was an error with your request. Please retry and if the problem persists contact support'+ transport.responseText) }
		});
	
	}else{
		alert("No profileID passed");	
	}
	
}

function in_array(checkField, checkArray) {
	var inArray = false;
	for (var i=0; i<checkArray.length; i++) {
		if (checkArray[i]==checkField) { inArray=true; }
	}
	return inArray;
}

function updateRegistrationRows(department) {
	
	toggleRegistrationFields(department);
	
}

// turn off fields that aren't used by the passed department and turn on the ones that are
function toggleRegistrationFields(department) {	
	
	var arrayNumber = 0;
	var numbersToCheck = new Array();
	switch (department) {
		case "RS": { arrayNumber = 0; break; }
		case "RL": { arrayNumber = 1; break; }
		case "C": { arrayNumber = 2; break; }
		case "LA": { arrayNumber = 3; break; }
		default: { alert("Invalid department"); }
	}
	
	for (var a=0; a<4; a++) {
		for (var i=0; i<fieldsArray[a].length; i++) {
			toggleShowObject('row_registration_'+fieldsArray[a][i],false);
			toggleShowObject('row_registration_'+fieldsArray[a][i]+'a',false);
			toggleShowObject('row_registration_'+fieldsArray[a][i]+'b',false);
		}
	}
	
	// turn on fields for passed department
	for (var i=0; i<fieldsArray[arrayNumber].length; i++) {
		toggleShowTableRow('row_registration_'+fieldsArray[arrayNumber][i]);
		toggleShowTableRow('row_registration_'+fieldsArray[arrayNumber][i]+'a');
		toggleShowTableRow('row_registration_'+fieldsArray[arrayNumber][i]+'b');
	}
	
}

//parse a form and return a querystring
function parseForm(formname) { 
var theform = document.forms[formname]; 
var PostText = ""; 
var amp = ""; 
for(i=0; i<theform.elements.length; i++){ 
if(theform.elements[i].type == "text" || theform.elements[i].type == "textarea" || theform.elements[i].type == "hidden"){ 
PostText += amp+theform.elements[i].name+"="+encodeURIComponent(theform.elements[i].value); 
} else if (theform.elements[i].type == "checkbox") { 
if (theform.elements[i].checked)
PostText += amp+theform.elements[i].name+"="+encodeURIComponent(theform.elements[i].value); 
} else if (theform.elements[i].type == "select-one") { 
PostText += amp+theform.elements[i].name+"="+theform.elements[i].options[theform.elements[i].selectedIndex].value; 
} 
amp = "&"; 
} 

return PostText;

}