var pendingEvent;var allFieldsDefault;var searchType; //="region" or "gmap"var _loader; //covers results while serch is performed.function browserPersistsFormValues(){
	var agt=navigator.userAgent.toLowerCase();
	return (agt.indexOf('msie') == -1)
}function ddlArrivalDay_Change()	{	ensureArrivalDateInMonth();}function ddlArrivalMonth_Change()	{	ensureArrivalDateInMonth();}function ensureArrivalDateInMonth(){	var monthMax=31;	switch ($('ddlArrivalMonth').value.substring(0,3)){		case 'Sep':			 monthMax=30;break;		case 'Apr':			 monthMax=30;break;		case 'Jun':			 monthMax=30;break;		case 'Nov':			 monthMax=30;break;		case 'feb':			monthMax=28;break;	}		if ($('ddlArrivalDay').value>monthMax){		$('ddlArrivalDay').value=monthMax;	}}//Field specific change eventsfunction ddlFromDate_Change(){	if ($('ddlDays').value=='0' && isInteger($('ddlFromDate').value)!=true){		$('ddlDays').value='7';	}	setToDate()}
	
function ddlToDate_Change()	{	if ($('ddlDays').value=='0' && isInteger($('ddlToDate').value)!=true){		$('ddlDays').value='7';	}	var intFromSel = $('ddlFromDate').selectedIndex;	var intToSel = $('ddlToDate').selectedIndex;	var intWks = $('ddlDays').value / 7;	if (intToSel<intFromSel){
		$('ddlFromDate').selectedIndex = (intToSel - intWks + 1);
	}else if (intToSel<(intFromSel+intWks)){
		$('ddlDays').value = (intToSel - intFromSel + 1)*7;
	}}
	
function setToDate(){
	var intFromSel = $('ddlFromDate').selectedIndex;	var intToSel = $('ddlToDate').selectedIndex;	if (intFromSel!=0){		var intWks = $('ddlDays').value / 7;		if (intToSel<(intFromSel+intWks)){
			newToIndex=(intFromSel + intWks - 1);
			if (newToIndex<=$('ddlToDate').options.length-1){
				$('ddlToDate').selectedIndex = (intFromSel + intWks - 1);
			}else{
				$('ddlToDate').selectedIndex = $('ddlToDate').options.length-1;
			}
		}
	}
}
	
function ddlDays_Change(){
	if ($('ddlDays').value==0){
		if (isInteger($('ddlFromDate').value)!=true){
			$('ddlFromDate').selectedIndex=0;
			$('ddlToDate').selectedIndex=0;
		}
	}
	
	
	setToDate();
}

//Loading of the main page.
function brw_load(){	if (window.location.hash){		updateFormValuesFromQS(window.location.hash);	}	if (formNotDefaults() == true){		brw_change();	}}function brw_change(control){	if (control!=undefined){
		var controlName=control.name;
		var controlValue;
		switch(control.type){
			case 'select-one':
				controlValue=parseInt(control.value);
				break;
			case 'checkbox':
				controlValue=control.checked?1:0;
				break;
		}
		/*if (pageTracker){
			pageTracker._trackEvent('Search_brw', 'change', controlName, controlValue);
		}*/
		if (_gaq){
			_gaq.push(['_trackEvent','Search_brw', 'change', controlName, controlValue]);
		}
	}

	if ($('ddlDays').value == 0 || $('ddlDays').value > 6){
		$('pnlFullWeeks').style.display='block';
		$('pnlShortBreaks').style.display='none';
	}else{
		$('pnlFullWeeks').style.display='none';
		$('pnlShortBreaks').style.display='block';
	}			if (pendingEvent != null){clearTimeout(pendingEvent);}	//brw_change>>syncIFrame()>>x_Load()>>updateRegionCounts()>>brw_Change_Resume();
	_loader=new loader;	if($('sProgress')){
		$('sProgress').innerHTML='Searching...';
	}		if (!$('map')){		transformMapUrls();	}	syncIFrame();
}function quik_change(){	if ($('ddlDays').value == 0 || $('ddlDays').value > 6){
		$('pnlFullWeeks').style.display='block';
		$('pnlShortBreaks').style.display='none';
	}else{
		$('pnlFullWeeks').style.display='none';
		$('pnlShortBreaks').style.display='block';
	}	
}//Loading of a results page including quick search.function results_Load(){	formNotDefaults();	if ($('ddlDays').value == 0 || $('ddlDays').value > 6){
		$('pnlFullWeeks').style.display='block';
		$('pnlShortBreaks').style.display='none';
	}else{
		$('pnlFullWeeks').style.display='none';
		$('pnlShortBreaks').style.display='block';
	}}function results_Change(){	if ($('ddlDays').value == 0 || $('ddlDays').value > 6){
		$('pnlFullWeeks').style.display='block';
		$('pnlShortBreaks').style.display='none';
	}else{
		$('pnlFullWeeks').style.display='none';
		$('pnlShortBreaks').style.display='block';
	}		if (pendingEvent != null)		{			clearTimeout(pendingEvent);		}		_loader=new loader;	pendingEvent = setTimeout('document.forms["Form1"].submit();',300)}//Loading of the iframe inside the main page.function x_Load(strQS){
	var pos = strQS.indexOf('=');
	if (pos >= 0){ 		strQS = strQS.substring(pos+1);		updateFormValuesFromQS(strQS);				if (pendingEvent != null){clearTimeout(pendingEvent);}				if (!browserPersistsFormValues()){			preserveSearchInHash();		}				formNotDefaults();				if ($('map')){			pendingEvent = setTimeout('refreshMap();',100)		}else{			pendingEvent = setTimeout('updateRegionCounts();',100)		}			}}function syncIFrame(){		var ifrmLocation= '/x.aspx' + '?search=' + FNstrQS();		var ifrmTarget = window.frames['ifrSearch'];	if (ifrmTarget){		ifrmTarget.location.href=ifrmLocation 	}else{		ifrmTarget=document.getElementById('ifrSearch');		ifrmTarget.src=ifrmLocation;	}	}function loader(){	//This class is used to show and hide the animated gif while the page is updated or reloaded.
	
	//CONSTRUCTOR
	construct();
	function construct(){
		if ($('hideResList')){			$('hideResList').style.display='block';			$('showResList').style.display='none';		}		if ($('dotMapLoader')){			$('loadermsg').innerHTML='Loading...';			$('dotMapLoader').style.display='block';		}		if ($('showCottagelist')){			$('showCottagelist').style.display='none';			$('hideCottageList').style.display='block';		}
	}
	
	//PUBLIC (DESTRUCTOR)
	this.destroy=destroy;
	function destroy(){
		if ($('hideResList')){			$('hideResList').style.display='none';			$('showResList').style.display='block';		}		if ($('dotMapLoader')){			$('dotMapLoader').style.display='none';		}		if ($('showCottagelist')){			$('showCottagelist').style.display='block';			$('hideCottageList').style.display='none';		}
		return null;
	}}


function brw_change_resume(){
	if(_loader){_loader=_loader.destroy();}
}

function regionClick(area){	if (!noCottages(area)){		$('hdnArea').value = area;		document.forms["Form1"].submit();	}
}

function noCottages(area){
	if (area==''){area='west'};
	return ($('rc_' + area).innerHTML=='0');
}

function transformMapUrls(){	
	if (document.getElementById('hdnArea').value = 'none'){
		for (x = 0; x < document.links.length; x++){			var strHRef = document.links[x].href;			if (strHRef.indexOf('browse-holiday-cottages') != '-1'){				var strHRef2 = strHRef.substring(strHRef.lastIndexOf('/')+1,strHRef.indexOf('-1.html'));				strHRef2 = strHRef2.substring(strHRef.lastIndexOf('/'),-1);					var strArea;				switch(strHRef2){					case 'TheWestCountry-':						{strArea = '';break;}							case 'Cornwall-':						{strArea = 'co';break;}							case 'Cornwall-FarWestandScilly':						{strArea = 'cofw';break;}					case 'Cornwall-SouthWest':						{strArea = 'cosw';break;}							case 'Cornwall-SouthCoast':						{strArea = 'cosc';break;}							case 'Cornwall-NorthCoast':						{strArea = 'conc';break;}							case 'Cornwall-TheMoortoRiverTamar':						{strArea = 'cobm';break;}							case 'Devon-':						{strArea = 'de';break;}							case 'Devon-North':						{strArea = 'deno';break;}							case 'Devon-South':						{strArea = 'deso';break;}							case 'Devon-Dartmoor':						{strArea = 'deda';break;}							case 'Somerset-':						{strArea = 'so';break;}							case 'Dorset-':						{strArea = 'do';break;}						}				document.links[x].href = activeRegionLink(strArea);			}		}	}
}

function activeRegionLink(strArea){		return 'javascript:regionClick("' + strArea + '")';
}

function preserveSearchInHash(){
	//Requires an anchor (<a>) element in the page named 'lnkState'.
	//Updates the hash in the URL, so state is retained through refresh for browsers where form values are not persisted.
	var iniSearch=FNstrQS();
	//netscape doesnt like non existant bookmarking!
	if($('lnkState')){
		$('lnkState').name=iniSearch;
		window.location.hash=iniSearch;
	}
}


function isInteger(s) {
		return (s.toString().search(/^-?[0-9]+$/) == 0);
}

function updateRegionCounts(){
	
	var request=new xmlHttpRequestObject();
	request.open('GET','/xml_SearchResByRegion.aspx?search=' + FNstrQS(), true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
			var results = xmlDoc.getElementsByTagName('regions')[0];
			if (results.getAttribute('error')){
				
				$('cottagesByRegion_Results').style.display='none';
				$('cottagesByRegion_Error').style.display='block';
				$('cottagesByRegion_Error').innerHTML=results.getAttribute('error');
				if($('sProgress')){
					$('sProgress').innerHTML='Sorry, we could not perform your search. Please refer to the message above.';
					$('sNote').style.display='none';
				}
			}else{
				if (results.getAttribute('west')==0){
					$('cottagesByRegion_Results').style.display='none';
					$('cottagesByRegion_Error').style.display='block';
					$('cottagesByRegion_Error').innerHTML='Unfortunately no holiday cottages are available that fulfill your search requirements. You can try widening your search options or you can <a target="_parent" href="/my-classic/myclassic2.aspx">register here</a> to be notified when new cottages matching your requirements are added to our portfolio.';
					if($('sProgress')){
						$('sProgress').innerHTML='We\'ve got no holiday cottages match your search criteria, try widening your options.';
						$('sNote').style.display='none';
					}
				}else{
					if($('sProgress')){
						$('sProgress').innerHTML= 'We\'ve got ' + results.getAttribute('west') + ' holiday cottages matching your search criteria.';
						$('sNote').style.display='block';
					}
					$('cottagesByRegion_Results').style.display='block';
					$('cottagesByRegion_Error').style.display='none';
					updateRegionCount('west',results.getAttribute('west'))
					updateRegionCount('co',results.getAttribute('co'))
					updateRegionCount('cofw',results.getAttribute('cofw'))
					updateRegionCount('cosw',results.getAttribute('cosw'))
					updateRegionCount('conc',results.getAttribute('conc'))
					updateRegionCount('cobm',results.getAttribute('cobm'))
					updateRegionCount('cosc',results.getAttribute('cosc'))
					updateRegionCount('de',results.getAttribute('de'))
					updateRegionCount('deno',results.getAttribute('deno'))
					updateRegionCount('deda',results.getAttribute('deda'))
					updateRegionCount('deso',results.getAttribute('deso'))
					updateRegionCount('so',results.getAttribute('so'))
					updateRegionCount('do',results.getAttribute('do'))
				}
			}
		}
	}
	request.send(null);
	pendingEvent = setTimeout('brw_change_resume();',900)
}	

function updateRegionCount(region,count){
	$('rc_' + region).innerHTML = count;
	var spansInsideLink = $(region + 'a').getElementsByTagName('span'); 
	for (var i = 0; i < spansInsideLink.length; i++) { 
		var node = spansInsideLink[i]; 
		if (count==0){
			node.className=node.className + ' regionZero';
		}else{
			node.className=node.className.replace(' regionZero','');
		}
	}  
}

function FNstrQS(){	var values=[];		if ($('hdnView')){		values[0]=$('hdnView').value;	}else{		values[0]='';	}	values[1] = $('ddlDays').value;	values[2] = $('ddlFromDate').value;	values[3] = $('ddlToDate').value;	values[4] = $('ddlArrivalDay').value;	values[5] = $('ddlArrivalMonth').value;	values[6] = $('ddlParty').value;	values[7] = $('ddlPets').value;
	
	if ($('ddlTown')){
		values[8] = $('ddlTown').value;
		values[9] = $('ddlMiles').value;
		values[10] = $('ddlSea').value;
		values[11] = $('ddlBeach').value;
		values[12] = $('ddlSandyBeach').value;
		values[13] = $('ddlLocation').value;
		values[14] = $('ddlGarden').value;
		values[15] = $('ddlProperty').value;
		values[16] = $('ddlPool').value;
		values[17] = $('ddlBedrooms').value;
		values[18] = $('ddlBathrooms').value;
		values[19] = '26';
		values[20] = $('ddlCODay').value;
		values[21] = $('chkNoPets').checked;
		values[22] = $('chkNoSmokers').checked;
		
		if($('ddlSeaViews')){			if($('ddlSeaViews').value==1){				values[23]='true';			}else{				values[23]='false';			}		}
		
		if ($('chkSeaView')){
			values[23] = $('chkSeaView').checked;
		}
		
		values[24] = $('chkOpenFire').checked;
		
		if ($('chkThatched')){
			values[25] = $('chkThatched').checked;
			values[26] = $('chkWorkingFarm').checked;
		}else{
			values[25] = 'false';
			values[26] = 'false';
		}
		
		values[27] = $('chkGFOnly').checked;
		
		if ($('ddlChildMin')){
			values[28] = $('ddlChildMin').value;
			values[29] = $('ddlChildMax').value;
		}else{
			values[28] = '0';
			values[29] = '0';
		}
		
		if ($('chkBroadband')){
			values[30] = $('chkBroadband').checked;
			values[31] = $('chkHotTub').checked;
		}else{
			values[30] = 'false';
			values[31] = 'false';
		}
	}
	var strQS='';	for (var v=0;v<values.length;v++){			strQS+=values[v];		if (v<values.length){			strQS+='~';		}	}	return strQS;}function updateFormValuesFromQS(strQS){
	if (strQS){		strQS = unescape(strQS);				var values = strQS.split('~'); 		$('ddlDays').value=values[1];				if ($('ddlFromDate'))			{				$('ddlFromDate').value=values[2];				$('ddlToDate').value=values[3];			}		if ($('ddlArrivalDay'))			{				$('ddlArrivalDay').value=values[4];				$('ddlArrivalMonth').value=values[5];			}				$('ddlParty').value=values[6];		$('ddlPets').value=values[7];		$('ddlTown').value=values[8];		$('ddlMiles').value=values[9];		$('ddlSea').value=values[10];		$('ddlBeach').value=values[11];		$('ddlSandyBeach').value=values[12];		$('ddlLocation').value=values[13];		$('ddlGarden').value=values[14];		$('ddlProperty').value=values[15];		$('ddlPool').value=values[16];		$('ddlBedrooms').value=values[17];		$('ddlBathrooms').value=values[18];				$('ddlCODay').value=values[20];		$('chkNoPets').checked = (values[21]=='true');		$('chkNoSmokers').checked = (values[22]=='true');		if(values[23]=='true'){			$('ddlSeaViews').value=1;		}else{			$('ddlSeaViews').value=0;		}		$('chkOpenFire').checked = (values[24]=='true');		$('chkGFOnly').checked = (values[27]=='true');
		$('ddlChildMin').value = values[28];
		$('ddlChildMax').value = values[29];		$('chkBroadband').checked = (values[30]=='true');		$('chkHotTub').checked = (values[31]=='true');			}}function ctlNotDefault(strCtlName,strCtlVal){	if($(strCtlName)){		if ($(strCtlName).value != strCtlVal){			$(strCtlName).style.backgroundColor='#FFDBF0'			allFieldsDefault=false;		}else{			$(strCtlName).style.backgroundColor='#FFFFFF'		}	}}function ctlNotChecked(strCtlName){	if($(strCtlName)){		if ($(strCtlName).checked){			$(strCtlName).style.backgroundColor='#FFDBF0'			allFieldsDefault=false;		}else{			$(strCtlName).style.backgroundColor='#FFFFFF'		}	}}function formNotDefaults(){		//Scan form data for any modified fields.	//Highlight modified fields and return true if any fields have been modified.	var dteDefaultSBDate=new Date($('hdnDefSBDate').value);	var monthname=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");	var yy = String(dteDefaultSBDate.getFullYear()).substring(2,4);		allFieldsDefault=true;	ctlNotDefault('ddlDays',0);	ctlNotDefault('ddlArrivalDay',dteDefaultSBDate.getDate());	ctlNotDefault('ddlArrivalMonth',monthname[dteDefaultSBDate.getMonth()] + ' ' + yy);	ctlNotDefault('ddlFromDate','2010');	ctlNotDefault('ddlToDate','2010');	ctlNotDefault('ddlParty',0);
	ctlNotDefault('ddlPets',0);
	ctlNotDefault('ddlTown', 0);
	ctlNotDefault('ddlMiles', 5);
	ctlNotDefault('ddlSea', 0);
	ctlNotDefault('ddlSeaViews', 0);
	ctlNotDefault('ddlBeach', 0);
	ctlNotDefault('ddlSandyBeach', 0);
	ctlNotDefault('ddlLocation', 0);
	ctlNotDefault('ddlGarden', 0);
	ctlNotDefault('ddlProperty', 0);
	ctlNotDefault('ddlBedrooms', 0);
	ctlNotDefault('ddlBathrooms', 0);
	ctlNotDefault('ddlPool', 0);
	ctlNotDefault('ddlCODay', 0);
	ctlNotChecked('chkNoPets');
	ctlNotChecked('chkNoSmokers');
	ctlNotChecked('chkSeaView');
	ctlNotChecked('chkOpenFire');
	ctlNotChecked('chkThatched');
	ctlNotChecked('chkWorkingFarm');
	ctlNotChecked('chkGFOnly');
	ctlNotDefault('ddlChildMin',0);
	ctlNotDefault('ddlChildMax',0);
	ctlNotChecked('chkBroadband');
	ctlNotChecked('chkHotTub');	return !allFieldsDefault;}