﻿
$j(document).ready(function() {
	initValidation();
	initTabEvents();
	initSurveyPopup();
});


function initSurveyPopup() {

	$j(window).bind("beforeunload", showSurveyPopup);	

	// we don't want the popup to display on postbacks, 
	// so remove from next and submit buttons
	$j(".js-popup-exception").click(function(){
		$j(window).unbind("beforeunload", showSurveyPopup);
	});

}

function showSurveyPopup() {

	console.log("showSurveyPopup() method called");
	
	var isPartiallyCompleted = false;

	// check individual input values..
	$j(".js-popup-required").each(function(){
		var inputVal = $j(this).val();
		if (inputVal.length > 0) {
			isPartiallyCompleted = true;
		}
	});
	
	// if the form has been partially completed, show the popup window
	if (isPartiallyCompleted == true) {	
		window.open('http://www.surveymonkey.com/s.aspx?sm=ps%2fvkoVMZpwXvVN%2fLYcYbQ%3d%3d', 'popup', 'status=1,width=600,height=600,scrollbars=1');
	}	
			
}

function initTabEvents() {
   
   //When tabs clicked, switch section
    
}

function initValidation() {
	$j("#PrimaryAddress").css("display","none");
	$j("#SecondaryAddress").css("display","none");
	$j("#PartnerDetails").css("display","none");
	var myRules = jQuery.validationAide.getDefaultValidationRules();
	myRules.add('validator-must-15-hours', 'You must be able to dedicate a minimum of 15 hours a week', function(fieldValue, fieldObj) {
		if (fieldValue <= 14) return false;
		return true;
	});
	
	myRules.add('validator-building-name-number_Master_MainContentPlaceHolder_ucAddressFinder', 'Please supply either a building number or name', function(fieldValue, fieldObj){
	    var jBuildingNumber1 = $j('#Master_MainContentPlaceHolder_ucAddressFinder_BuildingNumber');
	    var jBuildingName1 = $j('#Master_MainContentPlaceHolder_ucAddressFinder_BuildingName');
	    if(jBuildingNumber1.fieldStringVal() == "" && jBuildingName1.fieldStringVal() == "" )
	    {
	        jBuildingNumber1.addClass('validation-failed');
	        jBuildingName1.addClass('validation-failed');
	        return false;
	    }	    
	    return true;
	});
	
	myRules.add('validator-building-name-number_Master_MainContentPlaceHolder_ucSecondaryAddressFinder', 'Please supply either a building number or name', function(fieldValue, fieldObj){

        if($j("#PartnerDetails").css("display") == "none")
            return true;
  
	    var jBuildingNumber2 = $j('#Master_MainContentPlaceHolder_ucSecondaryAddressFinder_BuildingNumber');
	    var jBuildingName2 = $j('#Master_MainContentPlaceHolder_ucSecondaryAddressFinder_BuildingName');
	    if(jBuildingNumber2.fieldStringVal() == "" && jBuildingName2.fieldStringVal() == ""  )
	    {
	        jBuildingNumber2.addClass('validation-failed');
	        jBuildingName2.addClass('validation-failed');
	        return false;
	    }
	    return true;
	});
	
	myRules.add('validator-phonenumber', 'Please enter a valid phone number', function(fieldValue, fieldObj){
		val = fieldValue.replace(' ','');
		if (isNaN(val) || (val.length > 14 || val.length < 10))
		{
		    return false;
		}
		return true;
	});

	$j("#Master_MainContentPlaceHolder_ucSecondaryAddressFinder_Postcode").removeClass("validator-postcode-custom");
			
	$j("#aspnetForm").validationAideEnable(myRules, null, myPreFieldValidationHandler, myPostFieldValidationHandler);
		
			
	//Apply Form Part 1
	$j("#Master_MainContentPlaceHolder_WebUserPartnerField").change(function() { 
		var $detailsBlock = $j("#PartnerDetails");
		var response = $j(this).val();
		if (response == "With partner") { 
			$detailsBlock.css("display","block"); 
			partnerDetailsValidation("add");
		} 
		else {
			$detailsBlock.css("display","none");
			partnerDetailsValidation("remove");
		}	
	});
	
	
	//Apply Form Part 2
	$j(".frow-business-details").css("display", "none");
	$j(".frow-customer-home-details").css("display", "none");
	$j(".frow-service-exp-details").css("display","none");

	$j("#Master_MainContentPlaceHolder_WebUserRanOwnBusinessField").change(function() { 
		var $detailsBlock = $j(".frow-business-details");
		var response = $j(this).val();
		if (response == "Yes") { $detailsBlock.css("display","block"); } else { $detailsBlock.css("display","none");}	
	});

	$j("#Master_MainContentPlaceHolder_WebUserCustomerHomeExperienceField").change(function() {
		var $detailsBlock = $j(".frow-customer-home-details");
		var response = $j(this).val();
		if ((response == "Yes")) { $detailsBlock.css("display","block"); } else { $detailsBlock.css("display","none");}	
	});
	
	$j("#Master_MainContentPlaceHolder_WebUserServicesExperienceField").change(function() { 
		var $detailsBlock = $j(".frow-service-exp-details");
		var response = $j(this).val();
		if ((response == "Yes")) { $detailsBlock.css("display","block"); } else { $detailsBlock.css("display","none");}	
	});
	
	//No Longer required
	/*
	$j("#Master_MainContentPlaceHolder_WebUserDiyExpertiseField").change(function() { 
		var $tip = $j(this).parent().parent().find(".field-tip");
		var response = $j(this).val();
		if ((response == "None") || (response == "Novice")) { $tip.css("display","block"); } else { $tip.css("display","none");}	
	});
	*/
	
	//Apply Form Part 3
	
	$j("#Master_MainContentPlaceHolder_WebUserOutBuildingField").change(function() { 
		var $tip = $j(this).parent().parent().find(".field-tip");
		var response = $j(this).val();
		if (response == "No") { $tip.css("display","block"); } else { $tip.css("display","none");}	
	});
	
	/*
	$j("#Master_MainContentPlaceHolder_WebUserTransportField").change(function() { 
		var $tip = $j(this).parent().parent().find(".field-tip");
		var response = $j(this).val();
		if (response == "No") { $tip.css("display","block"); } else { $tip.css("display","none");}	
	});
	*/
	$j("#Master_MainContentPlaceHolder_WebUserEveningsField").change(function() { 
		var $tip = $j(this).parent().parent().find(".field-tip");
		var response = $j(this).val();
		if (response == "No") { $tip.css("display","block"); } else { $tip.css("display","none");}	
	});

}

function myPreFieldValidationHandler(fieldValue,fieldObj) {
}

function myPostFieldValidationHandler(fieldValue,fieldObj, success) {
	o = fieldObj.id;
	if(0 == "WebUserWeekendsField") {
		if($j("WebUserWeekendsField").attr("checked") == true) { }
	}
}
		
function partnerDetailsValidation(fn) {
	if(fn == "add") {			
		$j("#Master_MainContentPlaceHolder_WebUserPartnerTitleField").addClass("validator-required");
		$j("#Master_MainContentPlaceHolder_WebUserPartnerForenameField").addClass("validator-required");
		$j("#Master_MainContentPlaceHolder_WebUserPartnerSurnameField").addClass("validator-required");
		$j("#Master_MainContentPlaceHolder_WebUserPartnerDateOfBirthField").addClass("validator-required");
		$j("#Master_MainContentPlaceHolder_WebUserPartnerPostCode").addClass("validator-required");
		$j("#Master_MainContentPlaceHolder_WebUserPartnerTelephoneField").addClass("validator-required validator-phonenumber");
		$j("#Master_MainContentPlaceHolder_WebUserPartnerEmailField").addClass("validator-email");
		$j("#Master_MainContentPlaceHolder_ucSecondaryAddressFinder_Postcode").addClass("validator-postcode-custom");
	}
	else {
		$j("#Master_MainContentPlaceHolder_WebUserPartnerTitleField").removeClass("validator-required");
		$j("#Master_MainContentPlaceHolder_WebUserPartnerForenameField").removeClass("validator-required");
		$j("#Master_MainContentPlaceHolder_WebUserPartnerSurnameField").removeClass("validator-required");
		$j("#Master_MainContentPlaceHolder_WebUserPartnerDateOfBirthField").removeClass("validator-required");
		$j("#Master_MainContentPlaceHolder_WebUserPartnerPostCode").removeClass("validator-required");
		$j("#Master_MainContentPlaceHolder_WebUserPartnerTelephoneField").removeClass("validator-required validator-phonenumber");
		$j("#Master_MainContentPlaceHolder_WebUserPartnerEmailField").removeClass("validator-email");
		$j("#Master_MainContentPlaceHolder_ucSecondaryAddressFinder_Postcode").removeClass("validator-postcode-custom");
	}
}
