/**
 * @ this code is to handles all the interactions and behaviors of the users 
 * on the first page of the holiday home insurance
 * Also handles the ajax calls to the server, and setting up the environment
 */

function updateSearchPage(){

		setUserId();
		var country = getArgs().Country;
		country != null ? country="&Country="+country : country="";

		LoadSearchPage(IndexURL+'?seq='+ new Date().getTime()+country);

		$today = new Date();
		$today.setTime($today.getTime()+ 1*1000*60*60*24)
		j('#StartDate').val(PareseDate($today));
		j('#StartDate').datepicker({
									   showOn: 'button', 
									   buttonImage: '/holidayhomeinsurance/sts/images/calendar.png', 
									   buttonImageOnly: true,
									   dateFormat: 'dd-mm-yy',
									   onSelect: function(){
											 f = jQuery(this).val().split('-');
											 $currentDate = new Date();
											 $selectedDate = new Date();
											 $selectedDate.setFullYear(Number(f[2]));
											 $selectedDate.setMonth(Number(f[1]) - 1 );
											 $selectedDate.setDate(Number(f[0]));
											 if($selectedDate <= $currentDate){
												 alert('Please select a date which is not on the past');
												$today = new Date();
												$today.setTime($today.getTime()+ 1*1000*60*60*24)
												j('#StartDate').val(PareseDate($today));
											 }
											 
											 $currentDate.setTime($currentDate.getTime()+ 42*1000*60*60*24);
											 if($selectedDate > $currentDate){
												alert("Date should be less than 42 days from today");
												$today = new Date();
												$today.setTime($today.getTime()+ 1*1000*60*60*24)
												j('#StartDate').val(PareseDate($today));
											 }
									   }
									  });	
};

function getArgs() { 
	var args = new Object(); 
	var query = location.search.substring(1); 
	var pairs = query.split("&"); 
	for(var i = 0; i < pairs.length; i++) { 
		var pos = pairs[i].indexOf('='); 
		if (pos == -1) continue; 
		var argname = pairs[i].substring(0,pos); 
		var value = pairs[i].substring(pos+1); 
		args[argname] = unescape(value); 
	} 
	return args; 
} 



function PareseDate($date){

	$month = (parseInt($date.getMonth()) + 1);
	if($month < 10)
		$month = '0' + $month;
	$day = $today.getDate();
	if($day < 10)
		$day = '0' + $day;
	
	return $day + '-' + $month + '-' + $date.getFullYear() 
}

/**
 * @ this function makes the HTMLs and sets the values of the input fields. 
 * works via JSON
 */

function LoadSearchPage(url){	
	
	//  this is to check whether the user is in the quotes page;
	if(document.location.href.indexOf(QuotesPage) > -1){
		return;	
	}

	showCurtain();
	i = 0;
	j.getJSON(
		 url,
		function(data){ 
			
			$errorHandler(data);

			j.each(data.roofTypeList, function(){
				var sel = '';
				if(data.selRoof == this.code)  sel = ' selected=selected ';
				j('#SelRoof').append('<option value="' + this.code + '"'+ sel +'>' + this.name +  '</option>');										
			});
			j.each(data.wallTypeList, function(){
				var sel = '';
				if(data.selWall == this.code ) sel = ' selected=selected '; 
				j('#SelWall').append('<option value="' + this.code + '" '+sel+'>' + this.name +  '</option>');										
			});
			j('#FrmMain').attr('action',data.frmMainAction);

			if(data.chkListedOccup == 'true'){
				j('#ChkListedOccup').attr('checked','checked');	
			}else{
				j('#ChkListedOccup').removeAttr('checked');
			}
			

			if(data.selectDate != '') j('#StartDate').val(data.selectDate);
			
			j('#SelNoClaimYears').val(data.selNoClaimYears);
			j('#TxtCountry').val(data.selCountry);
			j('#SelAge').val(data.selAge); 
			j('#SelAlarm').val(data.selAlarm);
			j('#SelCountry').val(data.selCountry);
			j('#SelBuildOn').val(data.selBuildOn);
			j('#SelContentSum').val(data.selContentSum);
			j('#SelListed').val(data.selListed);
			j('#SelRebuildCost').val(data.selRebuildCost);
			j('#SelResidenceType').val(data.selResidenceType); 
			j('#TxtContactAddress1').val(data.txtContactAddress1);
			j('#TxtContactAddress2').val(data.txtContactAddress2);
			j('#TxtContactCity').val(data.txtContactCity);
			j('#SelContactCountry').val(data.txtContactCountry);
			j('#TxtContactPostCode').val(data.txtContactPostCode);
			j('#TxtContactRegion').val(data.txtContactRegion);
			j('#TxtEmail').val(data.txtEmail ? data.txtEmail : 'Email address');
			j('#TxtFirstName').val(data.txtFirstName ? data.txtFirstName : 'First Name');
			j('#TxtInsuredAddress1').val(data.txtInsuredAddress1);
			j('#TxtInsuredAddress2').val(data.txtInsuredAddress2);
			j('#TxtInsuredCity').val(data.txtInsuredCity);
			j('#TxtInsuredCountry').val(data.txtInsuredCountry);
			j('#TxtInsuredPostCode').val(data.txtInsuredPostCode);
			j('#TxtInsuredRegion').val(data.txtInsuredRegion);
			j('#TxtLastName').val(data.txtLastName ? data.txtLastName : 'Last Name');
			j('#TxtPhone').val(data.txtPhone);
		

			// assign the submit button actions
			j('#SubmitSearchFormBtn_U').bind('click', submitSearchForm);
			j('#SelCountry').bind('change', switchCountry);
			
			j('#SelConvict').val(data.selConvict);
			j('#SelFlatRoof').val(data.selFlatRoof);

			//j('#SelRoof').val(data.selRoof);
			//j('#SelWall').val(data.selWall);
			
			// Show the find UK address button
			if(data.selCountry == "UK"){
				j("#PropertyUK").css('display', 'block' );
			}
			
			hideCurtain();			
		}
	);
}



function switchCountry(){
	LoadSearchPage( IndexURL+'?seq='+ new Date().getTime()+'&Country='+j('#SelCountry').val());
}


/**
 * @ this function does the needed submissions to the server. 
 */
function submitSearchForm(){
	
	if(submitForm(document.FrmMain)){
		showCurtain();
		
		dataToSend = 'seq='+new Date().getTime();
		dataToSend+= '&TxtCountry=' + j('#TxtCountry').val();
		dataToSend+= '&TxtUserId=' + j('#TxtUserId').val();
		dataToSend+= '&SelCountry=' + j('#SelCountry').val();
		dataToSend+= '&TxtInsuredPostCode=' + j('#TxtInsuredPostCode').val();
		dataToSend+= '&TxtInsuredAddress1=' + j('#TxtInsuredAddress1').val();
		dataToSend+= '&TxtInsuredAddress2=' + j('#TxtInsuredAddress2').val();
		dataToSend+= '&TxtInsuredCity=' + j('#TxtInsuredCity').val();
		dataToSend+= '&TxtInsuredRegion=' + j('#TxtInsuredRegion').val();
		dataToSend+= '&TxtInsuredCountry=' + j('#TxtInsuredCountry').val();
		if(document.getElementById('ChkPermanent').checked)
			dataToSend+= '&ChkPermanent=1';
		dataToSend+= '&TxtContactPostCode=' + j('#TxtContactPostCode').val();
		dataToSend+= '&TxtContactAddress1=' + j('#TxtContactAddress1').val();
		dataToSend+= '&TxtContactAddress2=' + j('#TxtContactAddress2').val();
		dataToSend+= '&TxtContactCity=' + j('#TxtContactCity').val();
		dataToSend+= '&TxtContactRegion=' + j('#TxtContactRegion').val();
		dataToSend+= '&TxtContactCountry=' + j('#SelContactCountry').val();
		dataToSend+= '&StartDate=' + j('#StartDate').val();
		
		dataToSend+= '&SelListed=' + j('#SelListed').val();
		dataToSend+= '&SelRebuildCost=' + j('#SelRebuildCost').val();
		dataToSend+= '&SelWall=' + j('#SelWall').val();
		dataToSend+= '&SelContentSum=' + j('#SelContentSum').val();
		dataToSend+= '&SelRoof=' + j('#SelRoof').val();
		dataToSend+= '&SelBuildOn=' + j('#SelBuildOn').val();
		dataToSend+= '&SelFlatRoof=' + j('#SelFlatRoof').val();
		dataToSend+= '&SelAlarm=' + j('#SelAlarm').val();
		dataToSend+= '&SelResidenceType=' + j('#SelResidenceType').val();
		dataToSend+= '&SelNoClaimYears=' + j('#SelNoClaimYears').val();
		if(document.getElementById('ChkListedOccup').checked)
			dataToSend+= '&ChkListedOccup=1';
		dataToSend+= '&SelListedOccup=' + j('#SelListedOccup').val();
		dataToSend+= '&SelAge=' + j('#SelAge').val();
		dataToSend+= '&SelTitle=' + j('#SelTitle').val();
		dataToSend+= '&TxtFirstName=' + j('#TxtFirstName').val();
		dataToSend+= '&TxtLastName=' + j('#TxtLastName').val();
		dataToSend+= '&TxtEmail=' + j('#TxtEmail').val();
		dataToSend+= '&TxtPhone=' + j('#TxtPhone').val();
		dataToSend+= '&SelConvict=' + j('#SelConvict').val();
		dataToSend+= '&RequestType=ASY';
		
		var Search_URL =  j('#FrmMain').attr('action') + '?' + dataToSend;
		
		j.getJSON(
			HolidayHomeURL + Search_URL,
			{},
			function(data){
				$errorHandler(data);
				if(data.success == "true"){
					document.location.href = QuotesPage;
				}
			}
		);

	}
}



/**
 * These functions handle the post code suggestions
 */
 
function myCallA(address){
	document.getElementById("TxtInsuredAddress1").value = address[0];
	document.getElementById("TxtInsuredAddress2").value = address[1];
	document.getElementById("TxtInsuredCity").value = address[2];
	document.getElementById("TxtInsuredRegion").value = address[3];
	document.getElementById("TxtInsuredPostCode").value = address[4];
	//document.getElementById("TxtInsuredCountry").value = address[5];
	
}

function myCallB(address){
	document.getElementById("TxtContactAddress1").value = address[0];
	document.getElementById("TxtContactAddress2").value = address[1];
	document.getElementById("TxtContactCity").value = address[2];
	document.getElementById("TxtContactRegion").value = address[3];
	document.getElementById("TxtContactPostCode").value = address[4];
	//document.getElementById("TxtContactCountry").value = address[5];
	j('#SelContactCountry').val("United Kingdom");
}

/**
 * This function sets the call centre user id
 */
function setUserId(){
	try{	
		var testFrames = parent.frames[0].document.getElementById('user_id').value;//do not run code below if not login
		//alert(testFrames);
		document.FrmMain.TxtUserId.value=parent.frames[0].document.getElementById('user_id').value;
	}catch(e){
		var userID = getArgs().user_id;
		if(userID != null){
			document.FrmMain.TxtUserId.value = userID;
		}
	}
}

/*function newid(){ 
	document.getElementsByTagName('body')[0].id="active"
} */