﻿/*  ========== ASSURE UK FUNCTIONS ========== */


function form_check_quoteForm(oForm) {
	var oElem, i,bValid,cCheckRadio,cTestName,oOptions,bSelected, nElemTypeGroup, cId, cName;
	var aRadioCheck = new Array();
	var bHasDisabledButton = false
	bValid = true;
	
	
	for (i=0; i<oForm.length;i++ ) {
		oElem = oForm.elements[i]
		
		switch (oElem.type) {
			case "text": nElemTypeGroup = 1; break;
			case "textarea": nElemTypeGroup = 1; break;
			case "checkbox": nElemTypeGroup = 3; break;
			case "radio": nElemTypeGroup = 3; break;
			case "select-one": nElemTypeGroup = 2; break;
			case "select-multiple": nElemTypeGroup =2; break;
			default: nElemTypeGroup = 0; break;
		}
		
		// Check if the element is required
		if (oElem.className.toLowerCase().indexOf("required")>=0) {
			switch (nElemTypeGroup) {

				case 1:
				    if (form_check_value(oElem.value)) {
						form_alert("required",oElem)
						bValid = false
					}
					break;
				case 2: 
					if (oElem.selectedIndex < 0) {
						form_alert("required",oElem)
						bValid = false						
					}
					else if (form_check_value(oElem.options[oElem.selectedIndex].text)) {
						form_alert("required",oElem)
						bValid = false					
					}
					break;					
				case 3:
					// Check if the checkbox group has already been checked through
					cCheckRadio = "," + aRadioCheck.join(",") + ","
					cTestName = "," + oElem.name + ","
					if (cCheckRadio.indexOf(cTestName)<0) {
						
						// Not found - let's do the checks
						aRadioCheck.push(oElem.name)
						oOptions = document.getElementsByName(oElem.name)
						bSelected = false;
						if (oOptions.length>1) {
							for (i=0; i<oOptions.length;i++) { if(oOptions[i].checked) { bSelected = true; break } }
						}
						if (!bSelected && oOptions.length>1) {
							form_alert("required",oElem)
							bValid = false	
						}
					}
					break;		
			}
			if (!bValid) { break }
		}
	}
	
	if (bValid) {
	    bValid = compareEmailAddresses(oForm);
	}
	
	if (bValid) {
		for (i=0; i<oForm.length;i++ ) {
			oElem = oForm.elements[i]		
			if (oElem.type == 'text' ||  oElem.type == 'textarea') {
				if (form_check_value(oElem.value)) {oElem.value = '';}
			}
		}
	}
	
	
	if (bValid) {
		// Check for Disabled Buttons
		for (i=0; i<oForm.length;i++ ) {
			oElem = oForm.elements[i];
			if (oElem.type=="hidden" && oElem.id.indexOf("ewSubmitClone_")==0) {
				cId = oElem.id.replace(/ewSubmitClone_/,"")
				cName = oElem.name.replace(/ewSubmitClone_/,"")
				form_disable_button(oForm,cId,cName)
				oElem.id=cId
				oElem.name=cName
				bHasDisabledButton = true;
			}
		}
		
		if (bHasDisabledButton) {
			for (i=0; i<oForm.length;i++ ) {
				oElem = oForm.elements[i];
				if (oElem.type=="submit" || oElem.type=="button") {oElem.disabled=true;}
			}
		}	
	}
	
	return bValid;
}

function compareEmailAddresses(oForm){
	
	var cEmail, cEmail2; //, oElemEmail2;
	
	cEmail == "";
	cEmail2 == "";
	
	for (i=0; i<oForm.length;i++ ) {
        oElem = oForm.elements[i];
        if(oElem.id=="cContactEmail"){
            cEmail = oElem.value;
        }
        else if(oElem.id=="cContactEmail2") {
            cEmail2 = oElem.value;
            oFocusElem = oElem;
        }
	}
	
	if (cEmail == cEmail2){
	    bValid = true;
	}
	else{
        alert("Email addresses entered do not match.  Please confirm they are correct.");
	    bValid = false;
	    oFocusElem.focus();
	}
	return bValid
}

function getSlave(masterId,slaveId,cpUrl){

	var masterValue = $("#" + masterId + ' option:selected').attr('title');
	var randomVar = Math.floor(Math.random()*150);
	var getURL = cpUrl + '?getSlaveOptions=&masterRef=' + masterId + '&masterValue=' + masterValue + '&slaveRef=' + slaveId + '&random=' + randomVar;
	
	$("#" + slaveId + " select").attr('value','');
	$("#" + slaveId + " select").attr('class','hidden');
	$("#" + slaveId).append('<span class="loadingLine">Loading...</span>');
	$("#" + slaveId).load(getURL);
	

}

var bOpenQuoteSubmitClicked = false;

$(document).ready(function() {
    // Flag for Next submission or just a submission 
    $("input[value='Next']").click(function() {
        bOpenQuoteSubmitClicked = true;
    });

    // Muscisians - Autopopulate main contact details with 1st named policy holder
    if (document.getElementById('MandEQBForm') && document.getElementById('/asset[assetTypeId=#PartnerAsset#][0]/attribute[id=#title#]')) {

        var sTitleValue = $("select[name='/asset[assetTypeId=#PartnerAsset#][0]/attribute[id=#title#]']").val();
        var sForname = $("input[name='/asset[assetTypeId=#PartnerAsset#][0]/attribute[id=#firstName#]']").val();
        var sSurname = $("input[name='/asset[assetTypeId=#PartnerAsset#][0]/attribute[id=#surname#]']").val();

//        $("input[name='/proposer/attribute[id=#title#]']").attr("value", sTitleValue);
//        $("input[name='/proposer/attribute[id=#firstName#]']").attr("value", sForname);
//        $("input[name='/proposer/attribute[id=#surname#]']").attr("value", sSurname);

        // Title Field
        $("select[name='/asset[assetTypeId=#PartnerAsset#][0]/attribute[id=#title#]']").change(function() {
            sTitleValue = $(this).val();
            // Write to Title Field
            $("input[name='/proposer/attribute[id=#title#]']").attr("value", sTitleValue);
        });
        // Forname Field
        $("input[name='/asset[assetTypeId=#PartnerAsset#][0]/attribute[id=#firstName#]']").change(function() {
            var sForname = $(this).val();
            // Write to Title Field
            $("input[name='/proposer/attribute[id=#firstName#]']").attr("value", sForname);
        });
        // Surname Field
        $("input[name='/asset[assetTypeId=#PartnerAsset#][0]/attribute[id=#surname#]']").change(function() {
            var sSurname = $(this).val();
            // Write to Title Field
            $("input[name='/proposer/attribute[id=#surname#]']").attr("value", sSurname);
        });
    }
});


function form_check_openQuote(oForm) {
	var oElem, i,bValid,cCheckRadio,cTestName,oOptions,bSelected, nElemTypeGroup, cId, cName;
	var aRadioCheck = new Array();
	var bHasDisabledButton = false
	bValid = true;

	/*	- ONLY VALIDATES FOR EMPTY REQUIRED INPUTS IF 'NEXT' BUTTON PRESSED 
		- IF OTHER SUBMIT BUTTON, THEN EMPTYS PLEASE ENTERs BUT DOES NOT VALIDATE WH - 2009-06-08
	*/
	if (bOpenQuoteSubmitClicked==true) {
		for (i=0; i<oForm.length;i++ ) {
			oElem = oForm.elements[i]
			
			
			switch (oElem.type) {
				case "text": nElemTypeGroup = 1; break;
				case "textarea": nElemTypeGroup = 1; break;
				case "checkbox": nElemTypeGroup = 3; break;
				case "radio": nElemTypeGroup = 3; break;
				case "select-one": nElemTypeGroup = 2; break;
				case "select-multiple": nElemTypeGroup =2; break;
				default: nElemTypeGroup = 0; break;
			}
			
			// Check if the element is required
			if (oElem.className.toLowerCase().indexOf("required")>=0) {
				switch (nElemTypeGroup) {

					case 1:
						if (form_check_value(oElem.value)) {
							form_alert("required",oElem)
							bValid = false
						}
						break;
					case 2: 
						if (oElem.selectedIndex < 0) {
							form_alert("required",oElem)
							bValid = false;
											
						}
						else if (form_check_value(oElem.options[oElem.selectedIndex].text)) {
							form_alert("required",oElem)
							bValid = false;			
						}	
						break;					
					case 3:
						// Check if the checkbox group has already been checked through
						cCheckRadio = "," + aRadioCheck.join(",") + ","
						cTestName = "," + oElem.name + ","
						if (cCheckRadio.indexOf(cTestName)<0) {
							
							// Not found - let's do the checks
							aRadioCheck.push(oElem.name)
							oOptions = document.getElementsByName(oElem.name)
							bSelected = false;
							if (oOptions.length>1) {
								for (i=0; i<oOptions.length;i++) { if(oOptions[i].checked) { bSelected = true; break } }
							}
							if (!bSelected && oOptions.length>1) {
								form_alert("required",oElem)
								bValid = false	
							}
						}
						break;		
				}
				if (!bValid) { break }
			}
		}
		bOpenQuoteSubmitClicked = false;
	}
	if (bValid) {
		for (i=0; i<oForm.length;i++ ) {
			oElem = oForm.elements[i]		
			if (oElem.type == 'text' ||  oElem.type == 'textarea') {
				if (form_check_value(oElem.value)) {oElem.value = '';}
			}
		}
	}
	
	if (bValid) {
		// Check for Disabled Buttons
		for (i=0; i<oForm.length;i++ ) {
			oElem = oForm.elements[i];
			if (oElem.type=="hidden" && oElem.id.indexOf("ewSubmitClone_")==0) {
				cId = oElem.id.replace(/ewSubmitClone_/,"")
				cName = oElem.name.replace(/ewSubmitClone_/,"")
				form_disable_button(oForm,cId,cName)
				oElem.id=cId
				oElem.name=cName
				bHasDisabledButton = true;
			}
		}
		
		if (bHasDisabledButton) {
			for (i=0; i<oForm.length;i++ ) {
				oElem = oForm.elements[i];
				if (oElem.type=="submit" || oElem.type=="button") {oElem.disabled=true;}
			}
		}	
	}
	
	return bValid;
}

function submitForm(formName){
	form_check_openQuote(document.getElementById(formName));
	// Write hidden input with OP name to trick into a succesfull submission
	$("#" + formName).append('<input type=hidden name=op=Yes value=Same>');
	$("#" + formName).submit();
}

function writeInputs(inputs){
	$("#Personnel").append(inputs);
}

function showDependant(dependant, allDependants){
	
	//Commented for alert more genreic function below.
	
	// Bespoke JS overide validation to make children inputs required if Continuously insured
//    if (dependant == 'assetidCompanyattributeidBusinessattributeidLimitedCompany_1-dependant') {
//		$("#" + dependant).find("input").addClass('required');
//		//$("#" + dependant).find("select").addClass('required');
//	}
	//If not continuously insured, make not required
//	if (dependant == 'assetidCompanyattributeidBusinessattributeidLimitedCompany_0-dependant') {
//	    alert('HI');
//		$("." + allDependants).find("input").removeClass('required');
//	}
	
	/* Hide and Show Dependants */
	$("." + allDependants).addClass('hidden');
	$("." + allDependants).find("input[type!='radio']").removeClass('required');

	$("#" + dependant).removeClass('hidden');
	$("#" + dependant).find("input[type!='radio']").addClass('required');
}


// Different Validation for Premium Credit - strips '-' from sort code on submission

function form_check_premiumCredit(oForm) {
	var oElem, i,bValid,cCheckRadio,cTestName,oOptions,bSelected, nElemTypeGroup, cId, cName;
	var aRadioCheck = new Array();
	var bHasDisabledButton = false
	bValid = true;
	
	
	for (i=0; i<oForm.length;i++ ) {
		oElem = oForm.elements[i]
		
		switch (oElem.type) {
			case "text": nElemTypeGroup = 1; break;
			case "textarea": nElemTypeGroup = 1; break;
			case "checkbox": nElemTypeGroup = 3; break;
			case "radio": nElemTypeGroup = 3; break;
			case "select-one": nElemTypeGroup = 2; break;
			case "select-multiple": nElemTypeGroup =2; break;
			default: nElemTypeGroup = 0; break;
		}
		
		if (oElem.id == 'BankSortCode'){
			var sortCode = oElem.value
			newSortCode = sortCode.replace(/\D+/g,'');	
			oElem.value = newSortCode;
		}
		
		// Check if the element is required
		if (oElem.className.toLowerCase().indexOf("required")>=0) {
			switch (nElemTypeGroup) {

				case 1:
				    if (form_check_value(oElem.value)) {
						form_alert("required",oElem)
						bValid = false
					}
					break;
				case 2: 
					if (oElem.selectedIndex < 0) {
						form_alert("required",oElem)
						bValid = false						
					}
					else if (form_check_value(oElem.options[oElem.selectedIndex].text)) {
						form_alert("required",oElem)
						bValid = false					
					}
					break;					
				case 3:
					// Check if the checkbox group has already been checked through
					cCheckRadio = "," + aRadioCheck.join(",") + ","
					cTestName = "," + oElem.name + ","
					if (cCheckRadio.indexOf(cTestName)<0) {
						
						// Not found - let's do the checks
						aRadioCheck.push(oElem.name)
						oOptions = document.getElementsByName(oElem.name)
						bSelected = false;
						if (oOptions.length>1) {
							for (i=0; i<oOptions.length;i++) { if(oOptions[i].checked) { bSelected = true; break } }
						}
						if (!bSelected && oOptions.length>1) {
							form_alert("required",oElem)
							bValid = false	
						}
					}
					break;		
			}
			if (!bValid) { break }
		}
	}
	
	if (bValid) {
		for (i=0; i<oForm.length;i++ ) {
			oElem = oForm.elements[i]		
			if (oElem.type == 'text' ||  oElem.type == 'textarea') {
				if (form_check_value(oElem.value)) {oElem.value = '';}
			}
		}
	}
	
	if (bValid) {
		// Check for Disabled Buttons
		for (i=0; i<oForm.length;i++ ) {
			oElem = oForm.elements[i];
			if (oElem.type=="hidden" && oElem.id.indexOf("ewSubmitClone_")==0) {
				cId = oElem.id.replace(/ewSubmitClone_/,"")
				cName = oElem.name.replace(/ewSubmitClone_/,"")
				form_disable_button(oForm,cId,cName)
				oElem.id=cId
				oElem.name=cName
				bHasDisabledButton = true;
			}
		}
		
		if (bHasDisabledButton) {
			for (i=0; i<oForm.length;i++ ) {
				oElem = oForm.elements[i];
				if (oElem.type=="submit" || oElem.type=="button") {oElem.disabled=true;}
			}
		}	
	}
	
	return bValid;
}

//   =============== RENEWAL FORM ==================== //
var renewalSubmitButtonClicked = false;
$(document).ready(function() {
    $(".renewalSubmit").click(function() {
        renewalSubmitButtonClicked = true;
    });
});

function form_check_renewalForm(oForm) {

    var oElem, i, bValid, cCheckRadio, cTestName, oOptions, bSelected, nElemTypeGroup, cId, cName;
    var aRadioCheck = new Array();
    var bHasDisabledButton = false
    bValid = true;

    if (renewalSubmitButtonClicked) {


        for (i = 0; i < oForm.length; i++) {
            oElem = oForm.elements[i]

            switch (oElem.type) {
                case "text": nElemTypeGroup = 1; break;
                case "textarea": nElemTypeGroup = 1; break;
                case "checkbox": nElemTypeGroup = 3; break;
                case "radio": nElemTypeGroup = 3; break;
                case "select-one": nElemTypeGroup = 2; break;
                case "select-multiple": nElemTypeGroup = 2; break;
                default: nElemTypeGroup = 0; break;
            }

            // Check if the element is required
            if (oElem.className.toLowerCase().indexOf("required") >= 0) {
                switch (nElemTypeGroup) {

                    case 1:
                        if (form_check_value(oElem.value)) {
                            form_alert("required", oElem)
                            bValid = false
                        }
                        break;
                    case 2:
                        if (oElem.selectedIndex < 0) {
                            form_alert("required", oElem)
                            bValid = false
                        }
                        else if (form_check_value(oElem.options[oElem.selectedIndex].text)) {
                            form_alert("required", oElem)
                            bValid = false
                        }
                        break;
                    case 3:
                        // Check if the checkbox group has already been checked through
                        cCheckRadio = "," + aRadioCheck.join(",") + ","
                        cTestName = "," + oElem.name + ","
                        if (cCheckRadio.indexOf(cTestName) < 0) {

                            // Not found - let's do the checks
                            aRadioCheck.push(oElem.name)
                            oOptions = document.getElementsByName(oElem.name)
                            bSelected = false;
                            if (oOptions.length > 1) {
                                for (i = 0; i < oOptions.length; i++) { if (oOptions[i].checked) { bSelected = true; break } }
                            }
                            if (!bSelected && oOptions.length > 1) {
                                form_alert("required", oElem)
                                bValid = false
                            }
                        }
                        break;
                }
                if (!bValid) { break }
            }
        }

        if (bValid) {
            for (i = 0; i < oForm.length; i++) {
                oElem = oForm.elements[i]
                if (oElem.type == 'text' || oElem.type == 'textarea') {
                    if (form_check_value(oElem.value)) { oElem.value = ''; }
                }
            }
        }

        if (bValid) {
            // Check for Disabled Buttons
            for (i = 0; i < oForm.length; i++) {
                oElem = oForm.elements[i];
                if (oElem.type == "hidden" && oElem.id.indexOf("ewSubmitClone_") == 0) {
                    cId = oElem.id.replace(/ewSubmitClone_/, "")
                    cName = oElem.name.replace(/ewSubmitClone_/, "")
                    form_disable_button(oForm, cId, cName)
                    oElem.id = cId
                    oElem.name = cName
                    bHasDisabledButton = true;
                }
            }

            if (bHasDisabledButton) {
                for (i = 0; i < oForm.length; i++) {
                    oElem = oForm.elements[i];
                    if (oElem.type == "submit" || oElem.type == "button") { oElem.disabled = true; }
                }
            }
        }
    }
    renewalSubmitButtonClicked = false;
    return bValid;

}