//Read the URL parameters from query string into an array.
var urlParams = getURLParameters()

// This method is called from the body tag of HTML page.
function initPage() {
	initEventHandlers();
	if (urlParams["_act"] != null) {
	    if (urlParams["_act"].toLowerCase() != "officelocator") {
		    setFocusToFirstField();
		}
	}
}

function initEventHandlers () {
	//Get elements by keyword	
	//if (document.getElementById('getQuote')) {
	//	document.getElementById('getQuote').onclick = hdl_onclick_getQuote;
	//}
	if (document.getElementById('emailPrefsPopupLink')) {
		document.getElementById('emailPrefsPopupLink').onclick = hdl_onclick_emailPrefsPopupLink;
	}
	if (document.getElementById('signOut')) {
		document.getElementById('signOut').onclick = hdl_onclick_signOut;
	}
	if (document.getElementById('managePolicy')) {
		document.getElementById('managePolicy').onclick = hdl_onclick_managePolicy;
	}

	/*************************************************************************************/
	/* Missing vehicle use javascript added back */
	/*************************************************************************************/
	if (document.getElementById('vehicle_R1_Veh_Use')) {
		document.getElementById('vehicle_R1_Veh_Use').onchange = hdl_onchange_vehicle_R1_Veh_Use;
	}	
	if (document.getElementById('ChangeVehicle_R1_VehicleUse')) {
		document.getElementById('ChangeVehicle_R1_VehicleUse').onchange = hdl_onchange_ChangeVehicle_R1_VehicleUse;
	}
	if (document.getElementById('AddVehNew_R1_veh_use')) {
		document.getElementById('AddVehNew_R1_veh_use').onchange = hdl_onchange_AddVehNew_R1_veh_use;
	}
		
	if (document.getElementById('AddDriverPrimaryVehicle_R1_veh_use')) {
		document.getElementById('AddDriverPrimaryVehicle_R1_veh_use').onchange = hdl_onchange_AddDriverPrimaryVehicle_R1_veh_use;
	}
	if (document.getElementById('UpdDriverPrimaryVehicle_R1_veh_use')) {
		document.getElementById('UpdDriverPrimaryVehicle_R1_veh_use').onchange = hdl_onchange_UpdDriverPrimaryVehicle_R1_veh_use;
	}	
	// Next two conditions implements the following validation.
	//   - If Collision is not selected, then Tow and Rental cannot be selected.
	//   - In the above case disable the Tow and Rental fields. Enable them back when Collision
	//     has a value selected. The first condition is for quote screen where there can be multiple
	//     coverages for multiple vehicles.
	if (document.getElementById('vehicle_coverage_table')) {
		//var newonchange;
		for (var i = 1; i < document.getElementById('vehicle_coverage_table').rows.length; i++) {
			// Run this when this code is called from OnLoad().
			DeductibleCollOnChangeQuote();
			//newonchange = new Function("hdl_onchange_vehicle_coverage_Deductible_Coll();");
			document.getElementById('vehicle_coverage_R' + i + '_Deductible_Coll').onchange = hdl_onchange_vehicle_coverage_Deductible_Coll;
		}
	}	
	if (document.getElementById('coverage_R1_Predefined_Coverages_Auto')) {
		document.getElementById('coverage_R1_Predefined_Coverages_Auto').onchange = hdl_onchange_coverage_R1_Predefined_Coverages_Auto;
	}
	if (document.getElementById('coverage_R1_Predefined_Coverages_Cycle')) {
		document.getElementById('coverage_R1_Predefined_Coverages_Cycle').onchange = hdl_onchange_coverage_R1_Predefined_Coverages_Cycle;
	}
	if (document.getElementById('coverage_R1_Predefined_Coverages_Home')) {
		document.getElementById('coverage_R1_Predefined_Coverages_Home').onchange = hdl_onchange_coverage_R1_Predefined_Coverages_Home;
	}	
	if (document.getElementById('coverage_R1_Predefined_Coverages_Rent')) {
		document.getElementById('coverage_R1_Predefined_Coverages_Rent').onchange = hdl_onchange_coverage_R1_Predefined_Coverages_Rent;
	}
	if (document.getElementById('coverage_R1_Predefined_Coverages_Condo')) {
		document.getElementById('coverage_R1_Predefined_Coverages_Condo').onchange = hdl_onchange_coverage_R1_Predefined_Coverages_Condo;
	}	
	if (document.getElementById('ChgAutoCovNew_R1_predefined_coverages_auto')) {
		document.getElementById('ChgAutoCovNew_R1_predefined_coverages_auto').onchange = hdl_ChgAutoCovNew_R1_predefined_coverages_auto;
	}
	if (document.getElementById('ChgAutoCovNew_R1_predefined_coverages_cycle')) {
		document.getElementById('ChgAutoCovNew_R1_predefined_coverages_cycle').onchange = hdl_ChgAutoCovNew_R1_predefined_coverages_cycle;
	}	
	if (document.getElementById('ChgHomeCovNew_R1_predefined_coverages_home')) {
		document.getElementById('ChgHomeCovNew_R1_predefined_coverages_home').onchange = hdl_ChgHomeCovNew_R1_predefined_coverages_home;
	}
	if (document.getElementById('offc_county')) {
	    document.getElementById('offc_county').onchange = hdl_onchange_offc_county;
	}
	if (document.getElementById('product_list')) {
	    document.getElementById('product_list').onchange = hdl_onchange_product_list;
	}
	
	/* Handle Employment Field */
	if (document.getElementById('Lvl2RowCount')) {
	    var lvl2Count = document.getElementById('Lvl2RowCount').value;
	    for (var i = 1; i < lvl2Count; i++) {
	        if (document.getElementById("ud_R" + i + "_employment")) {
	            document.getElementById("ud_R" + i + "_employment").onchange = hdl_onchange_employment; 
	        }
	        else if (document.getElementById("pv_R" + i + "_remHide_veh_use")) {
	            document.getElementById("pv_R" + i + "_remHide_veh_use").onchange = hdl_onchange_veh_use;
	        }
	    }
	}
}

function clearField(el,txt) {
	if (el.value == txt) {
		el.value="";
		el.style.color="black";
	}
}

function populateField(el,txt) {
	if (el.value == "") {
		el.value=txt;
		el.style.color="gray";
	}
}

// This function is used to call the print popup window 
function AISPrintPopup(href) {
	var hWnd = window.open(href, '', 'width=720,height=500,resizable=yes,scrollbars=yes,status=yes,menubar=yes');
	if (window.focus) hWnd.window.focus();
}

function hdl_onclick_emailPrefsPopupLink(evt) {
	window.open("aispopup.aspx?_act=popupEmailPrefs&email=" + document.getElementById(document.forms[0].name + '_R1_p_email_addr').value,"emailPrefsPopup","toolbar=0,width=525,height=338,resizable=1");
}

function hdl_onclick_imgAISSmallBlue(evt) {
	var hpMessageElement = document.getElementById('hpMessage');
	if (hpMessageElement.style.display == '') {
		hpMessageElement.style.display = 'block';
	}
	else {
		hpMessageElement.style.display = '';
	}
}

function hdl_onclick_signOut(evt) {
	document.location.href = '/';
}

function hdl_onclick_getQuote(evt) {
	//alert(document.getElementById('qInput').value);
	if (document.getElementById('qInput').value.substr(0,4) == 'http') {
		window.open(document.getElementById('qInput').value);
	} else {
		document.location.href = document.getElementById('qInput').value;
	}	
}

function hdl_onclick_managePolicy(evt) {
	document.location.href = document.getElementById('sInput').value;
}

function hdl_onchange_offc_county(evt) {
	document.forms['SearchCareer'].action="/ais.aspx?_act=Search";
	document.forms['SearchCareer'].submit(); 
	return false;
}

function hdl_onchange_product_list(evt) {
    document.forms['myScenarios'].action = "/ais.aspx?_act=Search";
    document.forms['myScenarios'].submit();
    return false;
}

/*************************************************************************************/
/*
function hdl_onclick_mileageCalc(evt) {
	var aElement = document.getElementById('mileageCalc');
	var divElement = document.getElementById('mileageCalcDiv');
	var divW = divElement.offsetWidth;
	var divH = divElement.offsetHeight;
	divElement.style.visibility = 'visible';
	var aLeft = findPosX(aElement)
	divElement.style['left'] = Math.abs(aLeft-divW)+'px';
}

function hdl_onclick_mileageCalculate(evt) {
	var divElement = document.getElementById('mileageCalcDiv');
	divElement.style.visibility = 'hidden';
}
*/

function hdl_onchange_vehicle_R1_Veh_Use(evt) {
	var radiusElement = document.getElementById('vehicle_R1_radius_mileage');
	var vehuseElement = document.getElementById('vehicle_R1_Veh_Use');
	setRadiusMileage(radiusElement, vehuseElement);
}

function hdl_onchange_AddVehNew_R1_veh_use(evt) {
	var radiusElement = document.getElementById('AddVehNew_R1_radius_mileage');
	var vehuseElement = document.getElementById('AddVehNew_R1_veh_use');
	setRadiusMileage(radiusElement, vehuseElement);
}

function hdl_onchange_AddDriverPrimaryVehicle_R1_veh_use(evt) {
	var radiusElement = document.getElementById('AddDriverPrimaryVehicle_R1_radius_mileage');
	var vehuseElement = document.getElementById('AddDriverPrimaryVehicle_R1_veh_use');
	setRadiusMileage(radiusElement, vehuseElement);
}

function hdl_onchange_UpdDriverPrimaryVehicle_R1_veh_use(evt) {
	var radiusElement = document.getElementById('UpdDriverPrimaryVehicle_R1_radius_mileage');
	var vehuseElement = document.getElementById('UpdDriverPrimaryVehicle_R1_veh_use');
	setRadiusMileage(radiusElement, vehuseElement);
}
function hdl_onchange_veh_use(evt) {
    var prefix = this.id.substr(0, 6);
    var vehUseElement = document.getElementById(this.id);
    var radiusElement = document.getElementById(prefix + "remHide_radius_mileage");
    setRadiusMileage(radiusElement, vehUseElement);
}

function hdl_onchange_employment(evt) {
    var prefix = this.id.substr(0, 6);
    var emplElement = document.getElementById(this.id);
    var emplValue = emplElement.options[emplElement.selectedIndex].text;
    
    var allFieldsArr = new Array();
    var emplFieldsArr = new Array(prefix+"employer_name", prefix+"employer_address", prefix+"employer_city", prefix+"employer_state", prefix+"employer_zip");
    var emplAddlFieldsArr = new Array(prefix + "job_title", prefix + "years_of_employment", prefix + "type_of_business", prefix + "remSho_is_away_at_military");
    var studentAddlFieldsArr = new Array(prefix + "years_of_employment", prefix + "remSho_is_away_at_school", prefix + "is_grade_b_or_better", prefix + "requires_temp_coverage");

    allFieldsArr = emplFieldsArr.concat(emplAddlFieldsArr).concat(studentAddlFieldsArr);

    // Hide and clear all fields
    for (var i in allFieldsArr)
    {
        clearFieldArray(allFieldsArr);
        hideFieldTr(allFieldsArr[i]);
    }

    if (emplValue == 'Employed') {
        emplFieldsArr = emplFieldsArr.concat(emplAddlFieldsArr);

        for (var j in emplFieldsArr) {
            unHideFieldTr(emplFieldsArr[j]);
            var elField = document.getElementById('field_' + emplFieldsArr[j]);
            var divs = elField.getElementsByTagName("DIV");
            for (var k = 0; k < divs.length; k++) {
                var div = divs.item(k);
                if (div.className == 'FieldLabel' && (div.innerHTML.indexOf("School") > -1 || div.innerHTML.indexOf("Enrollment") > -1)) {
                    div.innerHTML = div.innerHTML.replace(/School/, "Employer");
                    div.innerHTML = div.innerHTML.replace(/Enrollment/, "Employment");
                }
            }
        }
        var elFirstField = document.getElementById(emplFieldsArr[0]);
        elFirstField.focus();
    } else if (emplValue == 'Student') {
        emplFieldsArr = emplFieldsArr.concat(studentAddlFieldsArr);
        for (var j in emplFieldsArr) {
            unHideFieldTr(emplFieldsArr[j]);
            var elField = document.getElementById('field_'+emplFieldsArr[j]);
            var divs = elField.getElementsByTagName("DIV");
            for (var k = 0; k < divs.length; k++) {
                var div = divs.item(k);
                if (div.className == 'FieldLabel' && (div.innerHTML.indexOf("Employer") > -1 || div.innerHTML.indexOf("Employment") > -1)) {
                    div.innerHTML = div.innerHTML.replace(/Employer/, "School");
                    div.innerHTML = div.innerHTML.replace(/Employment/, "Enrollment");
                }
            }          
        }
        var elFirstField = document.getElementById(emplFieldsArr[0]);
        elFirstField.focus();

    }
}

/* This function will be used to provide the "Cancel" link for newly inserted records in a parent/child/grand child scenario. */
function deleteNewRec(tblId) {
    // Mark the Child Record as deleted
    toggleTableClassById(tblId, 'deleted');

    var childTblEl = document.getElementById(tblId);
    var inputElName = tblId.replace(/tbl/, "_req");
    var inputEl = document.getElementById(inputElName);
    inputEl.checked = !inputEl.checked;

    // Mark all the grand child records for delete
    var gChildTblElArr = childTblEl.getElementsByTagName("TABLE");

    for (var i = 0; i < gChildTblElArr.length; i++) {
       // If the record is not hidden then mark it for delete.
        if (gChildTblElArr[i].className.indexOf("hidden") < 0) {
            var gchildInputElArr = gChildTblElArr[i].getElementsByTagName("INPUT");
             for (var j = 0; j < gchildInputElArr.length; j++) {
                if (gchildInputElArr[j].name.indexOf("__req") > -1) {
                    gchildInputElArr[j].checked = !gchildInputElArr[j].checked;
                }
            }
        }
    }
    return false;
}

function hideFieldTr(elementId) {
    var el = document.getElementById('row_' + elementId);
    if (el.id) {
        el.className = addToken(el.className, 'initHidden', ' ');
    }
}
function unHideFieldTr(elementId) {
    var el = document.getElementById('row_' + elementId);
    if (el.id) {
        el.className = removeToken(el.className, 'initHidden', ' ');
    }
}

function clearFieldArray(fieldArr) {
    for (i in fieldArr) {
        clearFieldSvc(fieldArr[i]);
    }
}

function clearFieldSvc(elementId) {
    var el = document.getElementById(elementId);
    if (el.id) {
        // define element type
        type = el.type
        // alert before erasing form element  
        //alert('form='+x+' element='+y+' type='+type);  
        // switch on element type  
        switch (type) {
            case "text":
            case "textarea":
            case "password":
                //case "hidden":  
                el.value = "";
                break;
            case "radio":
            case "checkbox":
                el.checked = "";
                break;
            case "select-one":
                el.options[0].selected = true;
                break;
            case "select-multiple":
                for (z = 0; z < el.options.length; z++) {
                    el.options[z].selected = false;
                }
                break;
        }
    } 
}


function setRadiusMileage(radiusElement, vehuseElement)
{
	//alert(vehuseElement.options[vehuseElement.selectedIndex].text);
	if (vehuseElement.options[vehuseElement.selectedIndex].text == 'Pleasure') {
		radiusElement.value = '0';
	}
	else {
		radiusElement.value = '';
	}
	//radiusElement.focus()
}

function hideTableById(tableId) {
    var tbl = document.getElementById(tableId);
    if (tbl != null) {
        tbl.className = addToken(tbl.className, 'hidden', ' ');
    } 
}

function unhideTable(tableName) {
   /* This is a ie workaround as IE does not support getElementsByName function */
   var childTables = document.getElementsByTagName('TABLE',tableName);
   var isTableFound = '0';
   for (var i = 0; i < childTables.length; i++) {
       if (childTables[i].getAttribute("name") == tableName && containsToken(childTables[i].className, 'hidden', ' ')) {
           childTables[i].className = removeToken(childTables[i].className, 'hidden', ' ');
           setFocusToFirstFieldInTable(childTables[i]);
           isTableFound = '1';
           break;
        }
    }

    var form = document.forms[0];
    /* Need to add code here to submit the form if max record to add reached */
    if (form && isTableFound == '0') {
        var s = form.action;
        if (form.id == 'PolicyDriver') {
            form.action = "/ais.aspx?_act=Save&_nan=VehiclePreviousNA";
        } else if (form.id == 'PolicyVehicle') {
            form.action = "/ais.aspx?_act=Save&_nan=CoveragePreviousNA";
        } else {
            return false;
        }
        form.submit();
        form.action = s;
        return false; 
    }
}

function toggleTableClassById(tableId, cls) {
    var tbl = document.getElementById(tableId);
    if (containsToken(tbl.className, cls, ' ')) {
        tbl.className = removeToken(tbl.className, cls, ' ');
    } else {
        tbl.className = addToken(tbl.className, cls, ' ');
    }
}

function RemoveDriverVehicle(section_id) {
	var rLink = document.getElementById(section_id+"remove");
	var tbl = document.getElementById(section_id+"tbl");
	var rows = tbl.getElementsByTagName("TR");
	var spans = tbl.getElementsByTagName("SPAN");
	var fields = tbl.getElementsByTagName("INPUT");
	var linkText;
	var clearFields = false;
	var el;
	var modify_flag_field = document.getElementById(section_id+"modify_flag");
	//alert(rLink.innerHTML);
	if (rLink.innerHTML == 'Remove') {
		rLink.innerHTML = 'Cancel';
		strikeDecoration = 'line-through';
		hideDisplay = 'none';
		if (isIE) {
			showDisplay = 'block';
		} else {
			showDisplay = 'table-row';
		}
		modify_flag_field.value = 'D';
	} else if (rLink.innerHTML == 'Cancel') {
		rLink.innerHTML = 'Remove';
		strikeDecoration = 'none';
		if (isIE) {
			hideDisplay = 'block';
		} else {
			hideDisplay = 'table-row';
		}
		showDisplay = 'none';
		clearFields = true;
		modify_flag_field.value = '';
	}
	for (var span in spans) {
		if (spans[span].id) {
			//alert(spans[span].id+'\n'+spans[span].id.indexOf(section_id+'remStrike_'));
			if (spans[span].id.indexOf(section_id+'remStrike_') == 0) {
				spans[span].style.textDecoration = strikeDecoration;
			}
		}
	}
	for (var field in fields) {
		el = fields[field];
		if (el.id) {			
			if (el.id.indexOf('remSho_') > 0) {
				if (el.options){
					var optMin
					//alert(el.id+'\n'+el.options.length+'\n'+el.value);
					if (el.options.length > 0 && el.options[0].value == ""){
						optMin = 1;
					}
					else {
						optMin = 0;
					}
					while (el.options.length > optMin){
						el.options[el.options.length -1 ] = null;
					}
					if (optMin == 0){
						el.options[0] = new Option('-- Select --','');	
					}
					if(reset){
						el.selectedIndex = 0;
					}
				} else if (el.type == 'checkbox') {		
					el.checked = false;
				} else {
					el.value = "";
				}
			}
		}
	}
	for (var row in rows) {
		if (rows[row].id) {
			if (rows[row].id.indexOf('remHide_') > 0) {
				//alert(rows[row].id);
				rows[row].style.display = hideDisplay;
			} else if (rows[row].id.indexOf('remSho_') > 0) {
				rows[row].style.display = showDisplay;
			}
		}
	}
}