var flag;
var maxTelLength=11;
var masterPrefix = "ctl00_mainContent_";

function SetFlag()
{
	var btnClickedHF = document.getElementById("btnClickedHF");
	btnClickedHF.value = "1";
}

function SetHiddenFields()
{
	var btnClickedHF = document.getElementById("btnClickedHF");
	if(btnClickedHF.value == "1")
	{
		window.opener.document.getElementById(masterPrefix+'txtTown').value=document.getElementById('txtTown').value;
		window.opener.document.getElementById(masterPrefix+'txtCounty').value=document.getElementById('txtCounty').value;
		window.opener.document.getElementById(masterPrefix+'txtPostcode').value=document.getElementById('txtPostcode').value;
		window.opener.document.getElementById(masterPrefix+'txtAddressLine1').value=document.getElementById('txtAddressLine1').value;
		window.opener.document.getElementById(masterPrefix+'txtAddressLine2').value=document.getElementById('txtAddressLine2').value;
		window.opener.document.getElementById(masterPrefix+'txtAddressLine3').value=document.getElementById('txtAddressLine3').value;

		window.opener.document.getElementById('trAddressLine1').style.display = "";
		window.opener.document.getElementById('trTown').style.display = "";
		window.opener.document.getElementById('trCounty').style.display = "";
		window.opener.document.getElementById('trProperty').style.display = "none";
		window.opener.document.getElementById('imgLookup').style.display = "none";
		window.opener.document.getElementById('imgReset').style.display = "";
		
		if (document.getElementById('txtAddressLine2').value == "" )
		{
			window.opener.document.getElementById('trAddressLine2').style.display = "none";
		}
		else
		{
			window.opener.document.getElementById('trAddressLine2').style.display = "";
		}

		if (document.getElementById('txtAddressLine3').value == "" )
		{
			window.opener.document.getElementById('trAddressLine3').style.display = "none";
		} 
		else
		{
			window.opener.document.getElementById('trAddressLine3').style.display = "";
		}

		if (document.getElementById('txtCounty').value == "" )
		{
			window.opener.document.getElementById('trCounty').style.display = "none";
		} 
		else
		{
			window.opener.document.getElementById('trCounty').style.display = "";
		}
		window.close();
	}
	else
	{
	}
}
	
function ValidateContactUsPage()
{
	flag = true;
	
	ValidateSelection(masterPrefix+"selTitle","titleError","title");
	ValidateRequiredField(masterPrefix+"txtFirstName","firstNameError","first name");
	ValidateRequiredField(masterPrefix+"txtSurname","surnameError","surname");
	SetVisible("trAddressLine1");
	ValidateRequiredField(masterPrefix+"txtAddressLine1","addressLine1Error","adress");
	SetVisible("trAddressLine2");
	SetVisible("trAddressLine3");
	SetVisible("trTown");	
	ValidateRequiredField(masterPrefix+"txtTown","townError","town name");
	SetVisible("trCounty");
	ValidateUKPostcode(masterPrefix+"txtPostcode","postcodeError");
//	ValidateUKPhoneNumber(masterPrefix+"txtTelephone","telephoneError","telephone number");
	ValidateEmail(masterPrefix+"txtEmail","emailError");
	ValidateSelection(masterPrefix+"selMonth","dobError","month and year of birth");
	ValidateSelection(masterPrefix+"selYear","dobError","month and year of birth");
	ValidateRadios("radGender","genderError","Please choose your gender");	
	ValidateSelection(masterPrefix+"selGoldenQuestion","goldenQuestionError","answer");
	//ValidateTermsAgreementCheckbox("chkAgreeTerms","chkAgreeTermsError");
	
	return flag;
}

function ValidateFreefloSignInPage()
{
	flag = true;
	
	ValidateRequiredField(masterPrefix+"txtFirstName","firstNameError","first name");
	ValidateRequiredField(masterPrefix+"txtSurname","surnameError","surname");
	SetVisible("trAddressLine1");
	ValidateRequiredField(masterPrefix+"txtAddressLine1","addressLine1Error","adress");
	SetVisible("trAddressLine2");
	SetVisible("trAddressLine3");
	SetVisible("trTown");	
	ValidateRequiredField(masterPrefix+"txtTown","townError","town name");
	SetVisible("trCounty");
	ValidateUKPostcode(masterPrefix+"txtPostcode","postcodeError");
	ValidateEmail(masterPrefix+"txtEmail","emailError");
	ValidateRequiredField(masterPrefix+"txtPassword","passwordError","password");
	ValidateRequiredField(masterPrefix+"txtConfirmPassword","confirmPasswordError","password again");
	ValidateSelection(masterPrefix+"selMonth","dobError","month and year of birth");
	ValidateSelection(masterPrefix+"selYear","dobError","month and year of birth");
	ValidateRadios("radGender","genderError","Please choose your gender");	
	ValidateRadios("radTakeFlomax","takeFlomaxError","Please choose yes or no");
	ValidateRadios("radVoucher","voucherError","Please make a choice");
	ValidateTermsAgreementCheckbox("chkAgreeTerms","chkAgreeTermsError");
	
	if(flag) //all fields valid
	{	
		passwordMatch();
		if(flag)
			isPasswordValid();
	}
	
	return flag;
}

function showAlertHf(showAlertHfId)
{
	var showAlertHf = document.getElementById(showAlertHfId);
	if(showAlertHf != null)
	{
		var msg;
		switch(showAlertHf.value)
		{
			case "1":
				msg = "The email address is not available. Please try with another one to continue";
				document.getElementById("emailError").innerHTML = msg;
				document.getElementById(masterPrefix+"txtEmail").focus();
				alert(msg);
				break;
			case "2":
				msg = "Your account could not be created. Please try again later.";
				alert(msg);
				break;
		}
	}
}

function isPasswordValid()
{
	if(document.getElementById(masterPrefix+"txtPassword").value.length < 6)
	{
		document.getElementById("passwordError").innerHTML = "Please enter atleast 6 characters for password";
		flag = false;
	}
}

function passwordMatch()
{
	//comfirm password entered
	if(document.getElementById(masterPrefix+"txtPassword").value != document.getElementById(masterPrefix+"txtConfirmPassword").value)
	{
		document.getElementById("confirmPasswordError").innerHTML = "Confirmation password does not match password";
		flag = false;
	}
}


var referer;
function shareThisCallback(shareThisObject)
{
	doHttpRequest('track-social-link.aspx?url='+shareThisObject.properties.url+'&referer='+referer);
}

var req;
function doHttpRequest(url) {
   if (typeof XMLHttpRequest != "undefined") {
       req = new XMLHttpRequest();
   } else if (window.ActiveXObject) {
       req = new ActiveXObject("Microsoft.XMLHTTP");
   }
   
   req.open("GET", url, true);
   req.onreadystatechange = callback;
   req.send(null);
}

function callback() {
    if (req.readyState == 4) {
        if (req.status == 200) { 
			//alert(req.responseText);
            // update the HTML DOM based on whether or not message is valid
        }
    }
}

function ResetLookup()
{
	SetVisible("trProperty");
	SetInvisible("trAddressLine1");
	SetInvisible("trAddressLine2");
	SetInvisible("trAddressLine3");
	SetInvisible("trTown");	
	SetInvisible("trCounty");
	SetInvisible("imgReset");	
	SetVisible("imgLookup");
}

function SetVisible(controlId)
{
	var control = document.getElementById(controlId);
	if(control != null)
		control.style.display = "";
}

function SetInvisible(controlId)
{
	var control = document.getElementById(controlId);
	if(control != null)
		control.style.display = "none";
}

function ValidateAlphabetic(textboxObj,lblMessageId)
{
	//---------------------validating for alphabetic values---------------------//
	 var alphabetic  = trim(textboxObj.value); //----------- check for the spaces ------------// 
	 if(alphabetic == null || alphabetic.length==0) { //----------- check whether text field is null ------------// 
		  document.getElementById(lblMessageId).innerHTML="Please enter an alphabetic value";
		  textboxObj.focus();
		  flag=false;
	 }
	 else if(isAlpha(alphabetic)== false){ //----------- if not  null check whether its valid or not ------------// 
		  document.getElementById(lblMessageId).innerHTML="Please enter a valid alphabetic value";
		  textboxObj.focus();
		  flag=false;
	 }
	 else{
		  document.getElementById(lblMessageId).innerHTML='';//------if  valid then no error message displayed ------------// 
	 }
}

/*
function ValidateNumeric(var textboxObj, var lblMessageId)
{
	//---------------------validating for numeric values---------------------//
	var numeric  = trim(textboxObj.value);//----------- check for the spaces ------------//
	if(numeric == null || numeric.length==0) { //----------- check whether text field is null ------------//
		  document.getElementById(lblMessageId).innerHTML="Please enter a numeric value"; 
		  thisForm.txt_numeric.focus();
		  flag=false;
	 }
	 else if(isNumeric(numeric)== false){//----------- if not  null check whether its valid or not ------------//
		  document.getElementById(lblMessageId).innerHTML="Please enter a valid numeric value"; 
		  thisForm.txt_numeric.focus();
		  flag=false; 
	 }
	 else if(numeric.length > maxTelLength){
		  document.getElementById(lblMessageId).innerHTML="Length is limited to 11 characters"; 
		  thisForm.txt_numeric.focus();
		  flag=false;  
	 }
	 else{
		  document.getElementById(lblMessageId).innerHTML='';//------if  valid then no error message displayed ------------//
	 }
}
*/

function ValidateAlphaNumeric(textboxId,lblMessageId,fieldName)
{
	//---------------------validating for alphanumeric values---------------------//
	var textbox = document.getElementById(textboxId);	
	var alphaNumeric  = trim(textbox.value);//----------- check for the spaces ------------// 
	if(alphaNumeric == null || alphaNumeric.length==0) {//----------- check whether text field is null ------------//
		  document.getElementById(lblMessageId).innerHTML="Please enter your " + fieldName; 
		  textbox.focus();
          flag=false; 
	 }
	 else if(isAlphaNumeric(alphaNumeric)== false){
		  document.getElementById(lblMessageId).innerHTML="Please enter a valid alphanumeric value"; 
		  textbox.focus();
		  flag=false; 
	 }
	 else{
		  document.getElementById(lblMessageId).innerHTML='';//----if  valid then no error message displayed ------------//
	 }
}

function ValidateRequiredField(textboxId,lblMessageId, fieldName)
{
	var textbox = document.getElementById(textboxId);
	var contents = trim(textbox.value); 
	if(contents == null || contents.length==0) {//----------- check whether text field is null ------------//
		  document.getElementById(lblMessageId).innerHTML="Please enter your "+ fieldName; 
		  textbox.focus();
          flag=false; 
	 }
	 else
	 {
		  document.getElementById(lblMessageId).innerHTML='';//----if  valid then no error message displayed ------------//
	 }
}

function ValidateEmail(textboxId,lblMessageId)
{
	//---------------------validating for email- id---------------------//
	var textbox = document.getElementById(textboxId);	
	var email  = trim(textbox.value);//----------- check for the spaces ------------//  
	if(email == null || email.length==0) {//----------- check whether text field is null ------------//
		  document.getElementById(lblMessageId).innerHTML="Please enter your email-id"; 
		  textbox.focus();
          flag=false; 
	 }
	 else if(checkemail(email)== false){
		  document.getElementById(lblMessageId).innerHTML="Please enter a valid email-id"; 
		  textbox.focus();
		  flag=false; 
	 }
	 else{
		  document.getElementById(lblMessageId).innerHTML='';//------if  valid then no error message displayed ------------//
	 }
}

function ValidateUKPostcode(textboxId,lblMessageId)
{
	//---------------------validating for uk post code---------------------//
	
	var textbox = document.getElementById(textboxId);	
	var postcode  = trim(textbox.value);//----------- check for the spaces ------------//  
	if(postcode == null || postcode.length==0) {//----------- check whether text field is null ------------//
		  document.getElementById(lblMessageId).innerHTML="Please enter your postcode"; 
		  textbox.focus();
          flag=false; 
	 }
	 else if(checkPcode(postcode)== false){
		  document.getElementById(lblMessageId).innerHTML="Please enter a valid postcode"; 
		  textbox.focus();
		  flag=false; 
	 }
	 else{
		  document.getElementById(lblMessageId).innerHTML='';//----if  valid then no error message displayed ------------//
	 }
}

function ValidateUKPhoneNumber(textboxId,lblMessageId,fieldName)
{
	//---------------------validating for uk telephone number---------------------//
		
	var textbox = document.getElementById(textboxId);
	var telephone  = trim(textbox.value);//----------- check for the spaces ------------// 
	if(telephone == null || telephone.length==0) {//----------- check whether text field is null ------------//
		  document.getElementById(lblMessageId).innerHTML="Please enter your " + fieldName; 
		  textbox.focus();
          flag=false; 
	 }
	 else if(checkTelephone(telephone)== false){
		  document.getElementById(lblMessageId).innerHTML="Please enter a valid " + fieldName; 
		  textbox.focus();
		  flag=false; 
	 }
	 else if(telephone.length > maxTelLength){
		  document.getElementById(lblMessageId).innerHTML="Please enter a valid " + fieldName; 
		  textbox.focus();
		  flag=false; 
	 }
	 else{
		  document.getElementById(lblMessageId).innerHTML='';//----if  valid then no error message displayed --------//
	 }
}

function ValidateSelection(selectId,lblMessageId,fieldName)
{
	//---------------------validating for selectbox---------------------//
	var choice  = document.getElementById(selectId).value;
	if(choice == "") 
	{
		//----------- check whether anything is selected or not ------------//
		  document.getElementById(lblMessageId).innerHTML="Please select your " + fieldName; 
          flag=false; 
	 }
	 else
	 {
		  document.getElementById(lblMessageId).innerHTML='';//----if  valid then no error message displayed --------//
	 }
}

function ValidateRadios(radGenderId,lblMessageId,msg)
{
	//---------------------validating for radio button---------------------//
	var count = 0;
	var radGender = document.getElementsByName(radGenderId);

	for(var i = 0; i < radGender.length; i++)
	{
		if(radGender[i].checked)
			count++;
	}
	
	if(count > 0)
	{
		document.getElementById(lblMessageId).innerHTML='';//----if  valid then no error message displayed ------------//
	}
	else
	{
		document.getElementById(lblMessageId).innerHTML=msg;
		flag = false;
	}
}

function ValidateComments(textareaId,lblMessageId)
{
	//---------------------validating for textarea---------------------//
	var textarea = document.getElementById(textareaId);
	var comments  = trim(textarea.value);//----------- check for the spaces ------------// 
	if(comments == null || comments.length==0) {
		  document.getElementById(lblMessageId).innerHTML="Please enter your comment"; 
		  textarea.focus();
          flag=false; 
	 }
	 else{
		  document.getElementById(lblMessageId).innerHTML='';//------if  valid then no error message displayed ------------//
	 }
}

function ValidateTermsAgreementCheckbox(checkboxId,lblMessageId)
{
	//---------------------validating for check box---------------------//
	var checkbox = document.getElementById(checkboxId);		
	if(checkbox.checked==false)
	{
		document.getElementById(lblMessageId).innerHTML="Please agree to the terms & conditions";
		flag=false;

	}
	else{
		  document.getElementById(lblMessageId).innerHTML='';//------if  valid then no error message displayed ------------//
	 }
	 
	if(flag==false){ //-----------------check whether all fields are validated-----------//
	
		return false; //-----------------if not return false-----------//
	}
    else{
   		return true; //-----------------else return true-----------//
	}
}

////---------------------Trim function---------------------//

function trim(str){
    if(!str || typeof str != 'string')
        return null;

    return str.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' ');//---------remove the spaces----// 
}

////---------------------isAlpha function---------------------//
function isAlpha(str){ 
		
		var regexLetter = /^[a-zA-z]+$/;
		if(!regexLetter.test(str)){ //---------check for alphabetic----// 
			return false;//---------if not return false----// 
		}
}

////---------------------isNumeric function---------------------//

function isNumeric(str){ 
		var regexNum = /^[0-9]+$/;
		if(!regexNum.test(str)){
			return false; //---------if not return false----// 
		}
}


//---------------------isAlphaNumeric function---------------------//

function isAlphaNumeric(str){ 
		var regexAlphaNum = /^[a-zA-Z0-9]*$/;
		if(!regexAlphaNum.test(str)){
			
			return false;//---------if not return false----// 
		}
}

//---------------------checkemail function---------------------//

function checkemail(str){        
		var regexEmail=/^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;
		if(str.length <= 0)
		{
			return false;	//---------if not return false----// 
		}
		
		else if (!regexEmail.test(str))
		{ 
			return false;//---------if not return false----// 
		}
}
//---------------------checkPcode function---------------------//
function checkPcode(str){ //check postcode format is valid
	size = str.length
	str = str.toUpperCase(); //Change to uppercase
	while (str.slice(0,1) == " ") //Strip leading spaces
	{
		str = str.substr(1,size-1);size = str.length
	}
	
	while(str.slice(size-1,size)== " ") //Strip trailing spaces
	{
		str = str.substr(0,size-1);size = str.length
	}
	
	if (size < 6 || size > 8)
	{ //Code length rule
		
	  	return false;
	}
	
	if (!(isNaN(str.charAt(0))))
	{ //leftmost character must be alpha character rule
		
	   	return false;
	}
	
	if (isNaN(str.charAt(size-3)))
	{ //first character of inward code must be numeric rule
		
	   	return false;
	}
	
	if (!(isNaN(str.charAt(size-2))))
	{ //second character of inward code must be alpha rule
		
	   	return false;
	}
	
	if (!(isNaN(str.charAt(size-1))))
	{ //third character of inward code must be alpha rule
		
	   	return false;
	}
	
	if (!(str.charAt(size-4) == " "))
	{//space in position length-3 rule
	 	
	   	return false;
	}
	 
	count1 = str.indexOf(" ");
	count2 = str.lastIndexOf(" ");
	 
	if (count1 != count2)
	{
	  	return false;//---------if not return false----// 
	}
	
	return true;
}

//---------------------checkTelephone function---------------------//

function checkTelephone(str){
     //var regexTelephone=/[^\s0-9+\-()]/; allows '+' or '-'
	   var regexTelephone=/[^\s0-9]/; //don't allow '+' and '-'
		if(regexTelephone.test(str)){
				return false;
		}
} 

var errMess1="You have chosen invalid score";
	var errMess2="Please enter a vaild score";
	var val_total=0;
	function caclulateSum(){
	val_1=document.getElementById('que3A').value;
	val_2=document.getElementById('que3B').value;
	val_3=document.getElementById('que3C').value;
	val_4=document.getElementById('que3D').value;
    val_5=document.getElementById('que3E').value;
	val_6=document.getElementById('que3F').value;
	val_7=document.getElementById('que3G').value;
    if (trim(val_1)!=null && isNaN(val_1)==true) {
		val_1='';
		alert(errMess2);
		document.getElementById('que3A').value=val_1;
	}
	else if(checkValue(val_1)==false){
		val_1='';
		alert(errMess1);
		document.getElementById('que3A').value=val_1;
	}
	if (trim(val_2)!=null && isNaN(val_2)==true) {
		val_2='';
		alert(errMess2);
		document.getElementById('que3B').value=val_2;
	}
	else if(checkValue(val_2)==false){
		val_2='';
		alert(errMess1);
		document.getElementById('que3B').value=val_2;
	}
	 if (trim(val_3) && isNaN(val_3)==true) {
		val_3='';
		alert(errMess2);
		document.getElementById('que3C').value=val_3;
	}
	else if(checkValue(val_3)==false){
		val_3='';
		alert(errMess1);
		document.getElementById('que3C').value=val_3;
	}
	 if (trim(val_4)!=null && isNaN(val_4)==true) {
		val_4='';
	    alert(errMess2);
		document.getElementById('que3D').value=val_4;
	}
	else if(checkValue(val_4)==false){
		val_4='';
		alert(errMess1);
		document.getElementById('que3D').value=val_4;
	}
	
	if (trim(val_5)!=null && isNaN(val_5)==true) {
		val_5='';
		alert(errMess2);
		document.getElementById('que3E').value=val_5;
	}
	else if(checkValue(val_5)==false){
		val_5='';
		alert(errMess1);
		document.getElementById('que3E').value=val_5;
	}
	
	if (trim(val_6)!=null && isNaN(val_6)==true) {
		val_6='';
		alert(errMess2);
		document.getElementById('que3F').value=val_6;
	}
	else if(checkValue(val_6)==false){
		val_6='';
		alert(errMess1);
		document.getElementById('que3F').value=val_6;
	}
	
    if (trim(val_7)!=null && isNaN(val_7)==true) {
		val_7='';
		alert(errMess2);
		document.getElementById('que3G').value=val_7;
	}
	else if(checkValue(val_7)==false){
		val_7='';
		alert(errMess1);
		document.getElementById('que3G').value=val_7;
	}
	
	if(val_1 == '' || isNaN(val_1))
		val_1 = 0;
	if(val_2 == '' || isNaN(val_2))
		val_2 = 0;
	if(val_3 == '' || isNaN(val_3))
		val_3 = 0;
	if(val_4 == '' || isNaN(val_4))
		val_4 = 0;
	if(val_5 == '' || isNaN(val_5))
		val_5 = 0;
	if(val_6 == '' || isNaN(val_6))
		val_6 = 0;
	if(val_7 == '' || isNaN(val_7))
		val_7 = 0;
		
	val_total=parseInt(val_1)+parseInt(val_2)+parseInt(val_3)+parseInt(val_4)+parseInt(val_5)+parseInt(val_6)+parseInt(val_7);
	document.getElementById('que3Total').value=val_total;
	
	}
	function checkValue(str){
		if(str > 5 ){
			return false;
		}
	}
	function trim(str){
    if(!str || typeof str != 'string')
        return null;
    return str.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' ');//---------remove the spaces----// 
	}

function printer_friendly()
{
	trackEvent('1');
	document.getElementById('header').style.display='none';
	document.getElementById('banner').style.display='none';
	document.getElementById('navigation').style.display='none';
	document.getElementById('sidebar').style.display='none';
	document.getElementById('lnkShareThis').style.display='none';
	document.getElementById('footer').style.display='none';
	document.getElementById('print_button').style.display='none';
	document.getElementById('content').style.margin='20px 0 0 0';
	window.print();
}
function trackPage(mode){
	// 1-  track freeflo-sign-in.aspx page
	
	if(mode==1){
			pageTracker._trackPageview("/FREEFLO reg/submit" );
	}
}

function ValidateMarketResearchPage()
{
	flag = true;
	
	ValidateRequiredField("txtName","nameError","name");
	ValidateSelection("selMonth","dobError","month and year of birth");
	ValidateSelection("selYear","dobError","month and year of birth");
	ValidateUKPhoneNumber("txtTelephone","telephoneError","telephone number");
	ValidateSelection("selTime","timeDayError","time & day");
	ValidateSelection("selDay","timeDayError","time & day");
	ValidateEmail("txtEmail","emailError");
	if(flag==true){
		pageTracker._trackPageview("/Market Research/sumbit_success");	
		setCookie("thank_you", "set");
	}
	else if(flag==false){
		pageTracker._trackPageview("/Market Research/sumbit_error");	
	}
	return flag;
}
//----------------Market research close window---------------------------//

function close_window(){
	var isThank=getCookie("thank_you");
	if(isThank=="set"){
		pageTracker._trackPageview("/Market Research/close_after-submit");
		clearCookies();
	}
	else
	{
		pageTracker._trackPageview("/Market Research/close_before-submit");
	}
	parent.location='index.aspx';
}
function setCookie(name, value){
	  var today = new Date();
	  var expiry = new Date(today.getTime() + 30 * 24 * 3600 * 1000); // plus 30 days 
	  document.cookie=name + "=" + escape(value) + "; path=/; expires=" + expiry.toGMTString();
} 
 
function deleteCookie(name){ 
		var today = new Date();
		var expiry = new Date(today.getTime() + 30 * 24 * 3600 * 1000); // plus 30 days 
		document.cookie=name + "=null; path=/; expires=" + expiry.toGMTString(); 
} 
function getCookie(name) { 
	  	var re = new RegExp(name + "=([^;]+)");
	 	var value = re.exec(document.cookie); 
		return (value != null) ? unescape(value[1]) : null; 
}  
function clearCookies() { 
		deleteCookie("thank_you"); 
} 