var PROTOCOL="https";var HOST_URL="https://css.farmersinsurance.com";
var AUTH_FILE="/siteminderagent/selfreg/loginandregister.fcc";
var ENROLL_URL="/servlet/MSR/Enroll1.html";
var FORGOT_USER_URL="/servlet/MSR/forgot_username.html";
var FORGOT_PASSWORD_URL="/servlet/MSR/forgot_password.html";
var SELF_REG_REALM="06-3de40c61-9c27-0006-0000-34f0000034f0";
var userNameLen=0;
var imageLibrary = new ImageLib();

function checkUserNameLen(){
	userNameLen=document.loginForm.USERNAME.value.length;
	if(userNameLen==9){alert("User Name should be between 6 and 9characters long");
	return false;
	}
	return true;
}

function checkLogin(){
	if(document.loginForm.USERNAME.value=="" ){alert("Please enter a valid username" );
		return false;
	} 
	if(document.loginForm.PASSWORD.value=="" ){alert("Please enter a valid password" );
		return false;
	} 
	submitLogin();
	return true;
}

function submitLogin() {
	document.loginForm.action=HOST_URL+AUTH_FILE;
	document.loginForm.target.value=HOST_URL;
	document.loginForm.submit();
	return true;
	}

function submitEnroll(){
	document.location.href=HOST_URL;
}


function submitForgotPassword(){
	document.dmsForm.action=HOST_URL+FORGOT_PASSWORD_URL;
	document.dmsForm.target.value=FORGOT_PASSWORD_URL;
	document.dmsForm.REALMOID.value=SELF_REG_REALM;document.dmsForm.submit();
	return true;
	}


function submitForgotUser(){
	document.dmsForm.action=HOST_URL+FORGOT_USER_URL;
	document.dmsForm.target.value=FORGOT_USER_URL;
	document.dmsForm.REALMOID.value=SELF_REG_REALM;
	document.dmsForm.submit();
	return true;
}


function setFCCFile(){
	document.newForm.FCC.value=HOST_URL+AUTH_FILE;
	document.newForm.PROTOCOL.value=PROTOCOL;
}

function open_win(url){
	var newWin=window.open(url,"SmallWin","menubar=n,toolbar=no,status=no,titlebar=n,scrollbars=yes,directories=n,width=400,height=120");
	newWin.focus();
}


function open_glossary(url){
	var newWin=window.open(url,"SmallWin","menubar=n,toolbar=yes,status=no,titlebar=n,scrollbars=yes,resizable=yes,directories=n,width=600,height=550");
	newWin.focus();
}


function open_siteMap(url){
	var newWin=window.open(url,"SmallWin","menubar=n,toolbar=no,status=no,titlebar=n,scrollbars=yes,resizable=yes,directories=n,width=805,height=550");
	newWin.focus();
}
function tabControl(indexId){
	if(hasResults){
	var resultsElement = document.getElementById('formResults');
	resultsElement.className = extractSelected(resultsElement.className);
	selectSelector(indexId,selectorName);
	displayContainer(indexId,containerName);
	deSelectSelector(tabControlIndex,selectorName);
	tabControlIndex = indexId;
	hasResults = null;
	return
	}
	if(tabControlIndex != indexId){
		deSelectSelector(tabControlIndex,selectorName);
		hideContainer(tabControlIndex,containerName);
		selectSelector(indexId,selectorName);
		displayContainer(indexId,containerName);
		tabControlIndex = indexId;
	}
}
function initializeTabs(indexId, hasResults){
	selectSelector(indexId,selectorName);
	if(!hasResults)
	{
	    displayContainer(indexId,containerName);
	}
	else
	{
		var results = document.getElementById('formResults');
		if(results)
		{
			select(results);
		}
	}
}

function displayContainer(indexId,containerName){
	var container = document.getElementById(containerName+indexId);
	if(container){
		select(container);
	}
}
function hideContainer(indexId,containerName){
	var container = document.getElementById(containerName+indexId);
	if(container){
		deSelect(container);
	}
}
function selectSelector(indexId,selectorName){
	var selector = document.getElementById(selectorName+indexId);
	if(selector){
		select(selector);
	}
}
function deSelectSelector(indexId,selectorName){
	var selector = document.getElementById(selectorName+indexId);
	if(selector){
		deSelect(selector);
	}
}
function select(obj){
	obj.className = insertSelected(obj.className);
}
function deSelect(obj){
	obj.className = extractSelected(obj.className);
}
function onHover(obj){
	obj.className = insertHover(obj.className);
}
function onOut(obj){
	obj.className = extractHover(obj.className);
}	
function extractSelected(className){
	var classNameNewLength = className.length -9;
	var newClassName = className.substr(0, classNameNewLength);
	return newClassName;
}
function insertSelected(className){
    var newClassName = className + "_selected";
	return newClassName;
}
function extractHover(className){
	var classNameNewLength = className.length -6;
	var newClassName = className.substr(0, classNameNewLength);
	return newClassName;
}
function insertHover(className){
	var newClassName = className + "_hover";
	return newClassName;
}
function removeAction(elementId,actionName){
	document.getElementById(elementId).removeAttribute(action);
}

function toggelContainer(containerId,imgId){
	var img = document.getElementById(imgId);
	var container = document.getElementById(containerId);
	if(container.style.display == "none"){
		container.style.display = "";
		img.src = "imagesEnglish/arrowDown.gif";
	}
	else {
		container.style.display = "none";
		img.src = "imagesEnglish/arrowUp.gif";
	}
}

function GetDrivingDirections(buttonElement)
{
	var baseIdValue = buttonElement.id.replace("drivingSubmit_", "");
	var addressId = "address_" + baseIdValue;
	var address = document.getElementById(addressId).value;
	var postalCode = document.getElementById("postalCode_" + baseIdValue).value;
	var city = document.getElementById("city_" + baseIdValue).value;
	var state = document.getElementById("state_" + baseIdValue).value;
	var agentId = document.getElementById("agentId_" + baseIdValue).value;
	var language = document.getElementById("language_" + baseIdValue).value;
	
	var cityValue = StringTrim(city);
	if (cityValue.length == 0)
	{
		var cityMessage = new String();
		if (language == "SP")
		{
			cityMessage = "Entre en por favor una ciudad.";
		}
		else
		{
			cityMessage = "Please enter a city.";
		}
		alert(cityMessage);
		return;
	}
	
	var stateValue = StringTrim(state);
	if (stateValue.length == 0)
	{
		var stateMessage = new String();
		if (language == "SP")
		{
			stateMessage = "Seleccione por favor un estado.";
		}
		else
		{
			stateMessage = "Please enter a state.";
		}
		alert(stateMessage);
		return;
	}
	
	var url = "";
	if (language == "SP")
	{
		url = "SPDrivingDirections.aspx?language=SP";
	}
	else
	{
		url = "DrivingDirections.aspx?language=EN";
	}
	
	url += "&address=" + address;
	url += "&postalCode=" + postalCode;
	url += "&city=" + city;
	url += "&state=" + state;
	url += "&agentId=" + agentId;

	var name = "_blank";
	var features = "location=no,menubar=yes,directories=no,toolbar=no,status=yes,resizable=yes,scrollbars=yes";

	//Set the window size (window automatically centered by this function)
	var height = 570;
	var width = 670;
	
	var screenHeight = window.screen.height;	
	var screenWidth = window.screen.width;
	var top = parseInt((screenHeight - height) / 2);
	var left = parseInt((screenWidth - width) / 2);
	features += ",top=" + top + "px";
	features += ",left=" + left + "px";
	features += ",width=" + width + "px";
	features +=",height=" + height + "px";
	
	window.open(url, name, features);
}

function StringTrim(input)
{
	var output = input.replace(new RegExp(/^\s+/), "");
	return output.replace(new RegExp(/\s+$/), "");
}

/////////////////////// Control Clearing Dependencies //////////////////////
var CLEARCONTROL_REGISTRY = new Array();

function InitializeControlClearingDependencies()
{
	try
	{
		//Find target form
		var targetForm = null;
		var formCount = document.forms.length;
		for (var formIndex=0; formIndex < formCount; formIndex++)
		{
			var currentForm = document.forms[formIndex];
			if (currentForm.name == "agentSearch")
			{
				targetForm = currentForm;
				break;
			}
		}
		
		//Find target elements
		var eDistanceZip = null;
		var eDistanceCity = null;
		var eDistanceRegion = null;
		var eNameFirst = null;
		var eNameLast = null;
		var eNameCompany = null;
		if (targetForm != null)
		{
			var formControls = targetForm.elements;
			for (var controlIndex=0; controlIndex < formControls.length; controlIndex++)
			{
				var currentControl = formControls[controlIndex];
				var currentName = currentControl.name;
				if (StringEndsWith(currentName, "txtZipcode"))
				{
					if (eDistanceZip == null)
					{
						eDistanceZip = currentControl;
					}
				}
				if (StringEndsWith(currentName, "txtCity"))
				{
					if (eDistanceCity == null)
					{
						eDistanceCity = currentControl
					}
				}
				if (StringEndsWith(currentName, "cmbState"))
				{
					if (eDistanceRegion == null)
					{
						eDistanceRegion = currentControl;
					}
				}
				if (StringEndsWith(currentName, "txtFirstName"))
				{
					if (eNameFirst == null)
					{
						eNameFirst = currentControl;
					}
				}
				if (StringEndsWith(currentName, "txtLastName"))
				{
					if (eNameLast == null)
					{
						eNameLast = currentControl;
					}
				}
				if (StringEndsWith(currentName, "txtAgencyName"))
				{
					if (eNameCompany == null)
					{
						eNameCompany = currentControl;
					}
				}
			}
		}
		
		if (eDistanceZip != null && eDistanceCity != null && eDistanceRegion != null)
		{
			AttachClearFieldDependency(eDistanceZip, eDistanceCity);
			AttachClearFieldDependency(eDistanceZip, eDistanceRegion);
			AttachClearFieldDependency(eDistanceCity, eDistanceZip);
			AttachClearFieldDependency(eDistanceRegion, eDistanceZip);
		}
		
		if (eNameFirst != null && eNameLast != null && eNameCompany != null)
		{
			AttachClearFieldDependency(eNameCompany, eNameLast);
			AttachClearFieldDependency(eNameCompany, eNameFirst);
			AttachClearFieldDependency(eNameLast, eNameCompany);
			AttachClearFieldDependency(eNameFirst, eNameCompany);
		}
	} catch (e) {}
}

function AttachClearFieldDependency(actionControl, clearControl)
{
	try
	{
		if (actionControl.tagName.toUpperCase() == "SELECT")
		{
			BindEvent(actionControl, "onchange", ClearFieldDependants);
		}
		else
		{
			BindEvent(actionControl, "onkeypress", ClearFieldDependants);
		}
		AddClearRegistryEntry(actionControl.id, clearControl);
	} catch (e) {}
}

function AddClearRegistryEntry(actionId, clearControl)
{
	try
	{
		var actionArray = null;
		if (CLEARCONTROL_REGISTRY[actionId] == null)
		{
			actionArray = new Array();
			CLEARCONTROL_REGISTRY[actionId] = actionArray;
		}
		else
		{
			actionArray = CLEARCONTROL_REGISTRY[actionId];
		}
		
		actionArray[actionArray.length] = clearControl;
	} catch (e) {}
}

function ClearFieldDependants(evt)
{
	try
	{
		var eventObject = evt || window.event;
		var eventSource = eventObject.target || eventObject.srcElement;
		var code = evt.which || eventObject.keyCode;
		
		if (code == 9 || code == 13)
		{
			return;
		}

		var actionArray = CLEARCONTROL_REGISTRY[eventSource.id];
		if (actionArray != null)
		{
			for(var actionIndex=0; actionIndex < actionArray.length; actionIndex++)
			{
				var dependent = actionArray[actionIndex];
				if (dependent != null)
				{
					if (dependent.tagName.toUpperCase() == "SELECT")
					{
						dependent.value = "unselected";
					}
					else
					{
						dependent.value = "";
					}
				}
			}
		}
	} catch (e) {}
}

function BindEvent(bindingObject, bindingEvent, boundDelegate)
{
	try
	{
		var bindingEventValue = new String(bindingEvent);
		if (bindingObject.attachEvent)
		{
			bindingObject.attachEvent(bindingEvent, boundDelegate);
		} 
		else if (bindingObject.addEventListener) 
		{
			bindingEventValue = bindingEventValue.toLowerCase().replace("on", "");
			bindingObject.addEventListener(bindingEventValue, boundDelegate, false);
		}
	} catch (e) {}
}

function StringEndsWith(testString, subString)
{
	try
	{
		var testStringValue = new String(testString);
		var subStringValue = new String(subString);
		var stringIndex = testStringValue.indexOf(subStringValue);
		if (stringIndex > -1 && stringIndex == (testStringValue.length - subStringValue.length))
		{
			return true;
		}
		
		return false;
	} catch (e) {}
}

try
{
	if (window.attachEvent)
	{
		window.attachEvent("onload", InitializeControlClearingDependencies);
	} else if (window.addEventListener) {
		window.addEventListener("load", InitializeControlClearingDependencies, false);
	}
} catch (e) {}

///////////////////////////////////// IMAGE LIBRARY //////////////////////////
// JScript source code
function ImageLib() {
    _imageLib = this;
    this.buttons = new Buttons();
    this.preLoader = new PreLoader();
}

function PreLoader() {
    this.count = 0;
}

PreLoader.prototype.add = function(image, path) { 
	//check if results page 
	var sClass = document.getElementById("formResults").className;
	if (StringEndsWith(sClass, "_selected") == false) {
		return;
	}
    //the image parameter must be an image
    if (!image.src) return;
    //create new image
    var oImage = new Image;
    //bind events
    oImage.onload = PreLoader.prototype.onload;
    //extend image object
    oImage.preLoader = this[this.count];
    oImage.reference = image;
    //add image to the buttons collection
    this[this.count] = oImage;
    //increment count
    this.count++;
    //removed onload event from reference image
    image.onload = null 
    //load image
    oImage.src = path;
}

PreLoader.prototype.onload = function() {
    this.reference.src = this.src;
}

function Buttons() {
    this.count = 0;
}

Buttons.prototype.add = function(image){
    var sId;
    var sState;
    //the parameter must be an image
    if (!image.src) return;
    //The image must have a valid ID
    try {
        sId = image.id;
    } 
    catch(e) {
        return e;
    }
    //was a state parameter passed in?
    if (arguments.length > 1) {
        sState = arguments[1].toString();
        switch (sState) {
            case "0" :
                sState = "inactive";
                break;
            case "1" :
                sState = "active";
                break;
            default:
                sState = "inactive";
                break;
        }
    } else {
        sState = "inactive"
    }
    //Add button to the buttons collection
    Buttons.prototype[sId] = new Button(image, sState);
    //increment button count
    this.count++;
    
    //bind events to image if inactive
    if (sState == "inactive") {
        image.button = this[sId];
        image.onmouseover = Button.prototype.over;
        image.onmouseout = Button.prototype.out;
    }
    
    image.onload = null;
    
    //return reference to button
    return this[sId];
}

function Button(image, state) {
    var sPath, sExtension, sHoverPath;
    this.id = image.id;
    this.boundImage = image;  //reference to image
    this.isLoaded = false; //is the hover image loaded
    this.inert = new Image; //the inert state
    this.hover = new Image; //the hover state
    
    //load inert state
    this.inert.src = image.src;  
  
    sExtension = image.src.substr(image.src.length - 3, image.src.length);
    //get path
    if (state == "inactive") {
        sPath = image.src.substr(0, image.src.length - 4);
    } else {
        sPath = image.src.substr(0, image.src.length - 6);
    }  
    sHoverPath = sPath + "_h." + sExtension;
    
    //load hover by naming convention
    this.hover.onload = Button.prototype.loaded;
    this.hover.button = this;
    this.hover.src = sHoverPath;
}

Button.prototype.over = function(){
    var oElement;
    if (this.button) {
        oElement = this.button;
    } else {
        oElement = this;
    }
    if (oElement.isLoaded == false) return;
    if (oElement.boundImage.src == oElement.hover.src) return;
    oElement.boundImage.src = oElement.hover.src;
    return;
}

Button.prototype.out = function(){
    var oElement;
    if (this.button) {
        oElement = this.button;
    } else {
        oElement = this;
    }
    if (oElement.isLoaded == false) return;
    if (oElement.boundImage.src == oElement.inert.src) return;
    oElement.boundImage.src = oElement.inert.src;
    return;
}

Button.prototype.loaded = function() {
    this.button.isLoaded = true;
    return;
}

Button.prototype.setHover = function(path) {
    try {
        this.hover.src = path;
    } 
    catch (e) {
        return e;
    }
    return;
}

Button.prototype.toString = function(){
    return this.id;
}
///////////////////////////////////// END : IMAGE LIBRARY : END //////////////////////////

function sendMail(tempuser,tempdomain) {
	var tempemail = "mailto:" + tempuser + "@" + tempdomain;
	window.location.href = tempemail;
}

function sendSubjectMail(tempuser, tempdomain, subject) {
	var tempemail = "mailto:" + tempuser + "@" + tempdomain + "?subject=" + subject;
	window.location.href = tempemail;
}

function getSiteMap(mapUrl)
{
	var name = "_blank";
	var features = "location=no,menubar=no,directories=no,toolbar=no,status=yes,resizable=yes,scrollbars=yes";

	//Set the window size (window automatically centered by this function)
	var height = 600;
	var width = 750;
	
	var screenHeight = window.screen.height;	
	var screenWidth = window.screen.width;
	var top = parseInt((screenHeight - height) / 2);
	var left = parseInt((screenWidth - width) / 2);
	features += ",top=" + top + "px";
	features += ",left=" + left + "px";
	features += ",width=" + width + "px";
	features +=",height=" + height + "px";
	
	window.open(mapUrl, name, features);
}

function showToolTip(pageDiv,showTip)
{
	var div = document.getElementById(pageDiv);

	if(showTip == "true")
	{
		div.className = "toolTip_selected";
	}
	else
	{
		div.className = "toolTip";
	}
	
}