// Declare Global Constants
var CONST_DOMINO_SERVER = 'http://domino.cfins.com/';
var CONST_IIS_SERVER = 'http://www.cfins.com/';
//var CONST_IIS_SERVER = 'http://testweb.cfins.com/';

var CONST_CLAIMSLOC = CONST_DOMINO_SERVER + 'claims/claimsloc.nsf/v2_webState?readForm';
var CONST_AGENTS = CONST_DOMINO_SERVER + 'field/Agentrk.nsf/v2_agencyStateList?ReadForm';
var CONST_LOCAL_OFFICE = CONST_IIS_SERVER + 'locator/localstate.asp';
var CONST_PROD_CONTACT = CONST_IIS_SERVER + 'productcontact.asp';
var CONST_CLAIM_CONTACT = CONST_IIS_SERVER + 'ClaimContact_region';

// Global image preloader
if (document.images) {
	var sRoot = CONST_IIS_SERVER + 'assets/images/';

	img1on = new Image();
	img1off = new Image();
	img2on = new Image();
	img2off = new Image();
	img3on = new Image();
	img3off = new Image();
	img4on = new Image();
	img4off = new Image();
	img5on = new Image();
	img5off = new Image();
	img6on = new Image();
	img6off = new Image();
	img7on = new Image();
	img7off = new Image();
	img8on = new Image();
	img8off = new Image();
	img9on = new Image();
	img9off = new Image();
	img10on = new Image();
	img10off = new Image();
	img11on = new Image();
	img11off = new Image();
	img12on = new Image();
	img12off = new Image();	
	img13on = new Image();
	img13off = new Image();
	
	img1on.src = sRoot + "b_sitemap_on.gif";
	img1off.src = sRoot + "b_sitemap_off.gif";
	img2on.src = sRoot + "b_home_on.gif";
	img2off.src = sRoot + "b_home_off.gif";
	img3on.src = sRoot + "b_report_on.gif";
	img3off.src = sRoot + "b_report_off.gif";
	img4on.src = sRoot + "b_privacy_on.gif";
	img4off.src = sRoot + "b_privacy_off.gif";
	img5on.src = sRoot + "b_find_on.gif";
	img5off.src = sRoot + "b_find_off.gif";
	img6on.src = sRoot + "b_contact_on.gif";
	img6off.src = sRoot + "b_contact_off.gif";
	img7on.src = sRoot + "b_about_on.gif";
	img7off.src = sRoot + "b_about_off.gif";
	img8on.src = sRoot + "b_products_on.gif";
	img8off.src = sRoot + "b_products_off.gif";
	img9on.src = sRoot + "b_careers_on.gif";
	img9off.src = sRoot + "b_careers_off.gif";	
	img10on.src = sRoot + "b_loss_on.gif";
	img10off.src = sRoot + "b_loss_off.gif";
	img11on.src = sRoot + "b_claimservice_on.gif";
	img11off.src = sRoot + "b_claimservice_off.gif";
	img12on.src = sRoot + "b_office_on.gif";
	img12off.src = sRoot + "b_office_off.gif";	
	img13on.src = sRoot + "b_prod_on.gif";
	img13off.src = sRoot + "b_prod_off.gif";
}

// Function to 'activate' images.
function imgOn(imgName) {
	if (document.images && !(navigator.appName.indexOf("Explorer") > 0 && navigator.appVersion.indexOf("3.0") == 0)) {
		document[imgName].src = eval(imgName + "on.src");
	}
}

// Function to 'deactivate' images.
function imgOff(imgName) {
	if (document.images && !(navigator.appName.indexOf("Explorer") > 0 && navigator.appVersion.indexOf("3.0") == 0)) {
		document[imgName].src = eval(imgName + "off.src");
	}
}

function setCookie(){
	document.cookie = "setclaims=true;path=/;domain=.cfins.com"
	return;
}

// The following code is a workaround for Mozilla browsers, put in by Bobby Henderson
// on 03-05-2008 to resolve issues on the claimservice.html page. The Code sets up 
// insertAdjacentFooBar methods for Mozilla browsers, which are otherwise IE specific.

if( typeof HTMLElement != "undefined" && !HTMLElement.prototype.insertAdjacentElement ) {

    HTMLElement.prototype.insertAdjacentElement = function( where , parsedNode ) 	{
    
        switch ( where ) {
        
        case 'beforeBegin':
        this.parentNode.insertBefore( parsedNode ,this )
        break;
        
        case 'afterBegin':
        this.insertBefore( parsedNode , this.firstChild );
        break;
        
        case 'beforeEnd':
        this.appendChild( parsedNode );
        break;
        
        case 'afterEnd':
        
        if ( this.nextSibling ) 
        this.parentNode.insertBefore( parsedNode , this.nextSibling );
        else this.parentNode.appendChild( parsedNode );
        break;
        
        }
    		
    }

    HTMLElement.prototype.insertAdjacentHTML = function( where , htmlStr ) {
	
    var r = this.ownerDocument.createRange();
    r.setStartBefore( this );
    var parsedHTML = r.createContextualFragment( htmlStr );
    this.insertAdjacentElement( where , parsedHTML );
		
    }

    HTMLElement.prototype.insertAdjacentText = function ( where , txtStr ) {
    
    var parsedText = document.createTextNode( txtStr );
    this.insertAdjacentElement( where , parsedText );
    
    }
	
}

function urlencode(str) {
str = escape(str);
str = str.replace('+', '%2B');
str = str.replace('%20', '+');
str = str.replace('*', '%2A');
str = str.replace('/', '%2F');
str = str.replace('@', '%40');
return str;
}

function urldecode(str) {
str = str.replace('+', ' ');
str = unescape(str);
return str;
}

function gup( name ){
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if( results == null ) {
		return "";
	} else {
		return results[1];
	}
}

// This function is called by the Report a Claim page (report.html)...
function psClaimOfficeRetriever(sState) {
	if (sState == '' || sState == null) {
		return false;
	}
	
	location.href = CONST_CLAIMSLOC + "&state=" + sState + "&form=report";
}


// This function is called by the Find a C&F Producer page (findproducer.html)...
function psFindProducer(sState) {
	location.href = CONST_AGENTS + '&state=' + sState.toUpperCase();
}


// This function is called by the Office Locator page (office.html)...
function psOfficeRetriever(sState) {
	if (typeof sState == 'undefined') return;
	
	if (document.getElementById('rdoUnderwriting').checked) {
		location.href = CONST_LOCAL_OFFICE + '?state=' + sState.toUpperCase();
	} else {
		location.href = CONST_CLAIMSLOC + '&state=' + sState.toUpperCase() + '&form=office';
	}
	
	/*
	var sType = document.getElementsByName("locate");	
	var iLen = sType.length;
	
	for (i=0; i <sType.length; i++) {
		if (sType(i).checked) {
			sTypeValue = sType(i).value;
															
			switch (sTypeValue.toUpperCase()) {
				case 'UNDERWRITING':
					location.href = CONST_LOCAL_OFFICE + '?state=' + sState.toUpperCase();
					break;
				
																
				case "CLAIM":
					location.href = CONST_CLAIMSLOC + '&state=' + sState.toUpperCase() + '&form=office';
					break;
			}
		}
	}
	*/
}

// This function is called by the Office Locator page (office.html)...
function psOfficeSwitcher(sType) {
	switch (sType) {
		case 'underwriting':
			// Hide unavailable choices...
			CA.style.display = "none";
			NJ.style.display = "none";
			PA.style.display = "none";
			
			// Unhide available choices...
			CAN.style.display = "block";
			CAS.style.display = "block";
			NJN.style.display = "block";
			NJS.style.display = "block";
			PAW.style.display = "block";
			PAE.style.display = "block";
			break;
			
		case 'claim':
			// Hide unavailable choices...
			CAN.style.display = "none";
			CAS.style.display = "none";
			NJN.style.display = "none";
			NJS.style.display = "none";
			PAW.style.display = "none";
			PAE.style.display = "none";
		
			// Unhide available choices...
			CA.style.display = "block";
			NJ.style.display = "block";
			PA.style.display = "block";
			break;
	}
}


// This function is called from the various prodcuts pages...
function gsBuildStateContacts(sCaller) {
	var sHTML = "";
	var oBlock = null;
 
	if (sCaller == null || sCaller == '') {
		sCaller = "nonclaims";
	}

	sCaller = sCaller.toUpperCase();

	if (sCaller === 'CLAIMKIT') {
		sHTML += "<select class='sidecopy' size='1' id='stateList' onchange='gsPullClaimKit(this)'>";
	} else {
		sHTML += "<select class='sidecopy' size='1' id='stateList' onchange='gsPullStateContact(this,\"" + sCaller + "\")'>";
	}

	sHTML += "     <option class='sidecopy' selected value='SELECT'>Select a State...</option>";
	sHTML += "     <option class='sidecopy' value='AL'>Alabama</option>";
	sHTML += "     <option class='sidecopy' value='AK'>Alaska</option>";
	sHTML += "     <option class='sidecopy' value='AZ'>Arizona</option>";
	sHTML += "     <option class='sidecopy' value='AR'>Arkansas</option>";

	if (sCaller === 'CLAIMSERVICE' || sCaller === 'CLAIMKIT') {
		sHTML += "     <option class='sidecopy' value='CA'>California</option>";
	} else {
		sHTML += "     <option class='sidecopy' value='CAN'>California (No.)</option>";
		sHTML += "     <option class='sidecopy' value='CAS'>California (So.)</option>";
	}

	sHTML += "     <option class='sidecopy' value='CO'>Colorado</option>";
	sHTML += "     <option class='sidecopy' value='CT'>Connecticut</option>";
	sHTML += "     <option class='sidecopy' value='DC'>Washington D.C.</option>";
	sHTML += "     <option class='sidecopy' value='DE'>Delaware</option>";
	sHTML += "     <option class='sidecopy' value='FL'>Florida</option>";
	sHTML += "     <option class='sidecopy' value='GA'>Georgia</option>";
	sHTML += "     <option class='sidecopy' value='HI'>Hawaii</option>";
	sHTML += "     <option class='sidecopy' value='ID'>Idaho</option>";
	sHTML += "     <option class='sidecopy' value='IL'>Illinois</option>";
	sHTML += "     <option class='sidecopy' value='IN'>Indiana</option>";
	sHTML += "     <option class='sidecopy' value='IA'>Iowa</option>";
	sHTML += "     <option class='sidecopy' value='KS'>Kansas</option>";
	sHTML += "     <option class='sidecopy' value='KY'>Kentucky</option>";
	sHTML += "     <option class='sidecopy' value='LA'>Louisiana</option>";
	sHTML += "     <option class='sidecopy' value='ME'>Maine</option>";
	sHTML += "     <option class='sidecopy' value='MD'>Maryland</option>";
	sHTML += "     <option class='sidecopy' value='MA'>Massachusetts</option>";
	sHTML += "     <option class='sidecopy' value='MI'>Michigan</option>";
	sHTML += "     <option class='sidecopy' value='MN'>Minnesota</option>";
	sHTML += "     <option class='sidecopy' value='MS'>Mississippi</option>";
	sHTML += "     <option class='sidecopy' value='MO'>Missouri</option>";
	sHTML += "     <option class='sidecopy' value='MT'>Montana</option>";
	sHTML += "     <option class='sidecopy' value='NE'>Nebraska</option>";
	sHTML += "     <option class='sidecopy' value='NV'>Nevada</option>";
	sHTML += "     <option class='sidecopy' value='NH'>New Hampshire</option>";

	if (sCaller === 'CLAIMSERVICE' || sCaller === 'CLAIMKIT') {
		sHTML += "     <option class='sidecopy' value='NJ'>New Jersey</option>";
	} else {
		sHTML += "     <option class='sidecopy' value='NJN'>New Jersey (No.)</option>";
		sHTML += "     <option class='sidecopy' value='NJS'>New Jersey (So.)</option>";
	}

	sHTML += "     <option class='sidecopy' value='NM'>New Mexico</option>";
	
	if (sCaller === 'CLAIMSERVICE' || sCaller === 'CLAIMKIT') {
		sHTML += "     <option class='sidecopy' value='NY'>New York</option>";
	} else {
		sHTML += "     <option class='sidecopy' value='NYM'>New York (Metro)</option>";
		sHTML += "     <option class='sidecopy' value='NYU'>New York (Upstate)</option>";
	}

	sHTML += "     <option class='sidecopy' value='NC'>North Carolina</option>";

	if (sCaller !== 'CLAIMKIT'){
		sHTML += "     <option class='sidecopy' value='ND'>North Dakota</option>";
		sHTML += "     <option class='sidecopy' value='OH'>Ohio</option>";
	}

	sHTML += "     <option class='sidecopy' value='OK'>Oklahoma</option>";
	sHTML += "     <option class='sidecopy' value='OR'>Oregon</option>";
	
	if (sCaller === 'CLAIMSERVICE' || sCaller === 'CLAIMKIT') {
		sHTML += "     <option class='sidecopy' value='PA'>Pennsylvania</option>";
	} else {
		sHTML += "     <option class='sidecopy' value='PAW'>Pennsylvania (W.)</option>";
		sHTML += "     <option class='sidecopy' value='PAE'>Pennsylvania (E.)</option>";
	}

	sHTML += "     <option class='sidecopy' value='RI'>Rhode Island</option>";
	sHTML += "     <option class='sidecopy' value='SC'>South Carolina</option>";
	sHTML += "     <option class='sidecopy' value='SD'>South Dakota</option>";
	sHTML += "     <option class='sidecopy' value='TN'>Tennessee</option>";
	sHTML += "     <option class='sidecopy' value='TX'>Texas</option>";
	sHTML += "     <option class='sidecopy' value='UT'>Utah</option>";
	sHTML += "     <option class='sidecopy' value='VT'>Vermont</option>";
	sHTML += "     <option class='sidecopy' value='VA'>Virginia</option>";

	if (sCaller !== 'CLAIMKIT') {
		sHTML += "     <option class='sidecopy' value='WA'>Washington</option>";
	}

	sHTML += "     <option class='sidecopy' value='WV'>West Virginia</option>";
	sHTML += "     <option class='sidecopy' value='WI'>Wisconsin</option>";

	if (sCaller !== 'CLAIMKIT') {
		sHTML += "     <option class='sidecopy' value='WY'>Wyoming</option>";
	}

	sHTML += "</select>";

	sBlock = (sCaller.toUpperCase() === 'CLAIMKIT') ? 'claimKitBlock' : 'contactBlock';
	oBlock = document.getElementById(sBlock);
	oBlock.insertAdjacentHTML('beforeEnd', sHTML);
}

function gsPullClaimKit(e) {
	function buildClaimKit(longName) {
		var sP = "/assets/downloads/claimkits/Claim Kit - ";
		var sA = ".doc";

		if (longName === "Washington D.C.") longName = "DC";
		if (longName === "New York") longName = "New York State";

		return sP + longName + sA;
	}

	var sFeatures = "menubar=no, resizable=yes, scrollbars=yes, status=yes, toolbar=no";
	var sName = "Launcher";
	sValue = (typeof event !== 'undefined') ? event.srcElement.options[event.srcElement.selectedIndex].text : e.options[e.selectedIndex].text;
	var sUrl = buildClaimKit(sValue);
	if (sValue != "Select a State...") {
		oNewWindow = window.open (sUrl, sName, sFeatures, true);
	}
}

// Called by the various products pages and the Claim Services page...
function gsPullStateContact(e,sCaller) {
	var oSelect = null;
	var vArguments = new Array();
	var sFeatures = '';
	var sCondition = '';
	var sRegion = "";
	var oSelect = document.getElementById('stateList');
	var sValue = oSelect.options[oSelect.selectedIndex].value;

	if (sValue === 'SELECT') return false;
	vArguments[0] = sValue;

	switch (sCaller.toUpperCase()) {
		// Applies only to the Claim Services page...
		case 'CLAIMSERVICE':
			sFeatures = 'dialogHeight: 300px; dialogWidth: 350px; help: no; scroll: no; status: no;';

			switch (sValue) {
				case 'AK':
				case 'AR':
				case 'AZ':
				case 'CO':
				case 'ID':
				case 'LA':
				case 'MT':
				case 'NM':
				case 'NV':
				case 'OK':
				case 'OR':
				case 'TX':
				case 'UT':
				case 'WA':
				case 'WY':
					sRegion = '1';
				break;

				case 'AL':
				case 'FL':
				case 'GA':
				case 'MS':
				case 'NC':
				case 'SC':
				case 'TN':
				case 'VA':
				case 'WV':
				case 'KY':
					sRegion = '2';
				break;

				case 'CA':
					sRegion = '3';
				break;

				case 'CT':
				case 'ME':
				case 'MA':
				case 'NH':
				case 'RI':
				case 'VT':
					sRegion = '4';
				break;

				case 'NJ':
				case 'NY':
					sRegion = '5';
				break;
								
				case 'OH':							
					sRegion = '6';
				break;

				case 'IL':
				case 'IN':
				case 'IA':
				case 'KS':				
				case 'MI':
				case 'MN':
				case 'MO':
				case 'NE':
				case 'ND':
				case 'SD':
				case 'WI':
				case 'PA':	
					sRegion = '7';
				break;
				case 'MD':
					sRegion = '8';
				break;

				case 'DE':
				case 'DC':
					sRegion = '9';
				break;
				case 'HI':
					sRegion = '10';
				break;
			}

			vArguments[0] = sValue;

			if (typeof event !== "undefined"){
				vReturnValue = window.showModalDialog(CONST_CLAIM_CONTACT + sRegion + '.htm?state=' + sValue, '', sFeatures);
			} else {
				var sUrl = CONST_CLAIM_CONTACT  + sRegion + '.htm?state=' + sValue;
				window.open(sUrl, 'Crum&nbsp;&amp;&nbsp;Forster', 'chrome,centerscreen,dependent=YES, dialog=YES,modal=YES,resizable=NO,scrollbars=NO, location=0,status=0,menubar=0,toolbar=0');
			}
			break;

		// Applies to all Products pages...
		case 'NONCLAIMS':
			sFeatures = 'dialogHeight: 400px; dialogWidth: 350px; help: no; scroll: no; status: no;';
			if (typeof event != "undefined"){
				vReturnValue = window.showModalDialog(CONST_PROD_CONTACT + '?state=' + sValue, vArguments, sFeatures);
			} else {
				var sUrl = CONST_PROD_CONTACT + "?state=" + sValue + "&person=" + sPerson + "&phone=" + sPhone + "&fax=" + sFax + "&email=" + sEmail;
				window.open(sUrl, 'Crum&nbsp;&amp;&nbsp;Forster', 'chrome,centerscreen,dependent=YES, dialog=YES,modal=YES,resizable=NO,scrollbars=NO, location=0,status=0,menubar=0,toolbar=0');
			}
			break;

		default:
			break;
	}
}

// Called from Commercial Automobile and umbrella pages.
function launchCoverageExtensions(sCaller) {
	if (sCaller == "") return;
	var vArguments = new Array();
	vArguments[0] = window;

	if (sCaller == "umbrella") {
		sFeatures = 'dialogHeight: 500px; dialogWidth: 575px; help: no; scroll: no; status: no;';
		vReturnValue = window.showModalDialog("umbrellacoverageextensions.html", vArguments, sFeatures);
	}

	if (sCaller == "commercialauto") {
		sFeatures = 'dialogHeight: 500px; dialogWidth: 425px; help: no; scroll: no; status: no;';
		vReturnValue = window.showModalDialog("autocoverageextensions.html", vArguments, sFeatures);
	}
}

function announceFairmont() {
	var vArguments = new Array();
	vArguments[0] = window;
	sFeatures = 'dialogHeight: 500px; dialogWidth: 575px; help: no; scroll: no; status: no;';
	vReturnValue = window.showModalDialog("/FairmontAnnouncement.html", vArguments, sFeatures);
}