/************************************************************
The DirectorSwitches JSON object is the main utility to turn
applications on or off for amica.com.  The member level
boolean variables only need to be changed from true to false
or false to true to activate or deactivate the application.
The CONSTANTS are used to direct the application where to go
when it is either on or off.  This should be the only object
that needs to be changed.
@author Mike Croft
************************************************************/
var DirectorSwitches = {
	isAutoOn : true,
	isHomeOn : true,
	isLifeQuoteOn : true,
	isLifeCalcOn : true,
	isClaimsOn : true,
	isContactUsOn : true,
	isFraudOn : true,
	isRetirementOn : true,
	isDisabilityOn : true,
	isHealthOn : true,
	isLongTermCareOn : true,
	isStructuredSettlementsOn : true,
	isDriverPledgeOn : true,
	isMembersOn : true,
	isAAAOn : true,
	isClaimCenterOn : true,
	isNeedPWOn : true,
	isForgotUserNameOn : true,
	isNewUserOn : true,

	AUTO_ON : "/Amica/AWFServlet",
	AUTO_OFF : "/AutoQuote/AutoQuoteByEmail.html",

	HOME_ON : "/Amica/AWFServlet",
	HOME_OFF : "/HomeQuote/HomeQuoteByEmail.html",

	LIFE_QUOTE_ON : "/lpes/Consumer.asp",
	LIFE_QUOTE_OFF : "/LifeQuote/lifeQuoteOff.html",

	LIFE_CALC_ON : "/lpes/needsCalc.asp",
	LIFE_CALC_OFF : "/LifeQuote/lifeQuoteOff.html",

	CLAIMS_ON : "/claimsOnline/default.aspx",
	CLAIMS_OFF : "/customer_service/unavailable.html",

	CONTACTUS_ON : "/about_us/contact_us/contactUs.aspx",
	CONTACTUS_OFF : "/customer_service/unavailable.html",

	FRAUD_ON : "/claim_center/reportFraud.aspx",
	FRAUD_OFF : "/customer_service/unavailable.html",

	RETIREMENT_ON : "/products/requestInfo.aspx",
	RETIREMENT_OFF : "/customer_service/unavailable.html",

	DISABILITY_ON : "/products/requestInfo.aspx",
	DISABILITY_OFF : "/customer_service/unavailable.html",

	HEALTH_ON : "/products/requestInfo.aspx",
	HEALTH_OFF : "/customer_service/unavailable.html",

	LONGTERMCARE_ON : "/products/requestInfo.aspx",
	LONGTERMCARE_OFF : "/customer_service/unavailable.html",

	STRUCTUREDSETTLEMENTS_ON : "/products/ss_requestQuote.aspx",
	STRUCTUREDSETTLEMENTS_OFF : "/customer_service/unavailable.html",

	DRIVERPLEDGE_ON : "/customer_service/takeThePledge.aspx",
	DRIVERPLEDGE_OFF : "/customer_service/unavailable.html",

	MEMBERS_ON : "/Amica/SSOServlet",
	MEMBERS_OFF : "/MemberServices/memberServicesOff.html",

	AAA_ON : "/Amica/AWFServlet",
	AAA_OFF : "/MemberServices/aaaOff.html",

	CLAIMCENTER_ON : "/Amica/AWFServlet",
	CLAIMCENTER_OFF : "/MemberServices/claimCenterOff.html",

	NEEDPW_ON : "/Amica/AWFServlet",
	NEEDPW_OFF : "/MemberServices/memberServicesOff.html",

	FORGOTUSERNAME_ON : "/Amica/AWFServlet",
	FORGOTUSERNAME_OFF : "/MemberServices/memberServicesOff.html",

	NEWUSER_ON : "/Amica/AWFServlet",
	NEWUSER_OFF : "/MemberServices/memberServicesOff.html"
}

/************************************************************
The Director JSON object is the workhorse to turn
applications on or off for amica.com.  The member level
string CONSTANTS act as aliases to application names to avoid
the potential for misspelling or incorrect references.  This
object is called from the html page and the directRequest()
function is invoked passing the application name.<b>

@author Mike Croft
************************************************************/
var Director = {
	AUTO : "Auto",
	HOME : "Home",
	CONDO : "Condo",
	RENTERS : "Renters",
	LIFE_QUOTE : "LifeQuote",
	LIFE_CALC : "LifeCalc",
	CLAIMS : "Claims",
	CONTACTUS : "ContactUs",
	FRAUD : "Fraud",
	RETIREMENT : "Retirement",
	DISABILITY : "Disability",
	HEALTH : "Health",
	LONGTERMCARE : "LongTermCare",
	STRUCTUREDSETTLEMENTS : "StructuredSettlements",
	DRIVERPLEDGE : "DriverPledge",
	MEMBERS : "Members",
	AAA : "AAA",
	CLAIMCENTER : "ClaimCenter",
	NEEDPW : "NeedPW",
	NEEDSSOPW : "NeedSSOPW",
	FORGOTUSERNAME : "ForgotUserName",
	NEWUSER : "NewUser",

	url : String,
	defaultPageName : "PageNameNotFound",

	directRequest : function(app) {
		switch (app){
			case Director.AUTO:
				Auto.buildRequest();
				break;

			case Director.HOME:
				Home.buildRequest('home');
				break;

			case Director.CONDO:
				Home.buildRequest('condo');
				break;

			case Director.RENTERS:
				Home.buildRequest('renters');
				break;

			case Director.LIFE_QUOTE:
				LifeQuote.buildRequest();
				break;

			case Director.LIFE_CALC:
				LifeCalc.buildRequest();
				break;

			case Director.CLAIMS:
				Claims.buildRequest();
				break;

			case Director.CONTACTUS:
				ContactUs.buildRequest();
				break;

			case Director.FRAUD:
				Fraud.buildRequest();
				break;

			case Director.RETIREMENT:
				Retirement.buildRequest();
				break;

			case Director.DISABILITY:
				Disability.buildRequest();
				break;

			case Director.HEALTH:
				Health.buildRequest();
				break;

			case Director.LONGTERMCARE:
				LongTermCare.buildRequest();
				break;

			case Director.STRUCTUREDSETTLEMENTS:
				StructuredSettlements.buildRequest();
				break;

			case Director.DRIVERPLEDGE:
				DriverPledge.buildRequest();
				break;

			case Director.MEMBERS:
				Members.buildRequest();
				break;

			case Director.AAA:
				AAA.buildRequest();
				break;

			case Director.CLAIMCENTER:
				ClaimCenter.buildRequest();
				break;

			case Director.NEEDPW:
				NeedPW.buildRequest();
				break;

			case Director.NEEDSSOPW:
				NeedSSOPW.buildRequest();
				break;

			case Director.FORGOTUSERNAME:
				ForgotUserName.buildRequest();
				break;

			case Director.NEWUSER:
				NewUser.buildRequest();
				break;

			default : defaultPageName;
		}
	},

	loadCollection : function() {

		var query = location.search.substring(1);	//Get the entire Query string

		var pairs = query.split("&");

		var form = document.AmicaForm;

		var lob = "";

		for( var i=0; i<pairs.length; i++) {
			var pos=pairs[i].indexOf('=');
			if(-1 == pos) continue;
			var argname=pairs[i].substring(0,pos);

			if (equalsIgnoreCase(argname, 'lob')){
				lob = pairs[i].substring(pos+1);
			}

			var value=pairs[i].substring(pos+1);

			if (equalsIgnoreCase(argname, 'source')){
				form.source.value = value;
				continue;
			}
			if (equalsIgnoreCase(argname, 'returnUrl')){
				form.returnUrl.value = value;
				continue;
			}
			if (equalsIgnoreCase(argname, 'state')){
				form.state.value = value;
				continue;
			}
			if (equalsIgnoreCase(argname, 'CID')){
				form.CID.value = value;
				continue;
			}
			if (equalsIgnoreCase(argname, 'CMP')){
				form.CMP.value = value;
				continue;
			}
			if (equalsIgnoreCase(argname, 'eproxyVoteAccountId')){
				form.eproxyVoteAccountId.value = value;
				continue;
			}
			if (equalsIgnoreCase(argname, 'homeQuoteType')){
				form.homeQuoteType.value = value;
				continue;
			}

			if (equalsIgnoreCase(argname, 'encryptedURL')){
				form.encryptedUrl.value = value;
				form.application.value = 'MutualMemberServices';
				form.action = '/Amica/CheckFreeServlet';
				continue;
			}
		}

		if (equalsIgnoreCase(lob, 'Auto')){
			form.lob.value=Director.AUTO;
			form.pagename.value="AutoSource";
			form.application.value=Director.AUTO;

			var hostName = getHostName();

			if (DirectorSwitches.isAutoOn){
				form.action = "https://"+hostName+DirectorSwitches.AUTO_ON;

			}else{
				top.document.location.replace('https://'+hostName+DirectorSwitches.AUTO_OFF);
			}
		}

		if (equalsIgnoreCase(lob, 'Home')){
			form.lob.value=Director.HOME;
			form.pagename.value="HomeSource";
			form.application.value=Director.HOME;

			var hostName = getHostName();

			if (DirectorSwitches.isHomeOn){
				form.action = "https://"+hostName+DirectorSwitches.HOME_ON;

			}else{
				top.document.location.replace('https://'+hostName+DirectorSwitches.HOME_OFF);
			}
		}

		if (equalsIgnoreCase(lob, 'EPROXYVOTE')){
			form.lob.value="EPROXYVOTE";
			form.pagename.value="mutualEProxyVotingPage";
			form.application.value="MutualMemberServices";
			form.event.value="mutualEProxyVoting";

			var hostName = getHostName();

			if (DirectorSwitches.isMembersOn){
				form.action = "https://"+hostName+DirectorSwitches.MEMBERS_ON;
			}else{
				top.document.location.replace('https://'+hostName+DirectorSwitches.MEMBERS_OFF);
			}
		}

		if (equalsIgnoreCase(lob, 'PH')){
			form.lob.value="PH";
			form.pagename.value="mutualLoginPage";
			form.application.value="MutualMemberServices";
			form.event.value="mutualMemberHome";

			var hostName = getHostName();

			if (DirectorSwitches.isMembersOn){
				form.action = "https://"+hostName+DirectorSwitches.MEMBERS_ON;
			}else{
				top.document.location.replace('https://'+hostName+DirectorSwitches.MEMBERS_OFF);
			}
		}

		if (equalsIgnoreCase(lob, 'LIFEQUOTE')){
			form.lob.value="LIFEQUOTE";

			var hostName = getHostName();
			var CMP = form.CMP.value;

			if (DirectorSwitches.isLifeQuoteOn){
				form.action = "https://"+hostName+DirectorSwitches.LIFE_QUOTE_ON+"?CMP="+CMP;
			}else{
				top.document.location.replace('https://'+hostName+DirectorSwitches.LIFE_QUOTE_OFF);
			}
		}

		form.submit();
	}
}
/************************************************************
Dynamically retrieve the host from the URL.

@author Mike Croft
************************************************************/
function getHostName(){
	var hostName = location.host;

	if( "amica.com" == hostName ) {
		hostName = "www.amica.com";
	}


	return hostName;
}

/************************************************************
Application JSON objects to build the request specific to the
particular application requested.

@author Mike Croft
************************************************************/
var Auto = {
	buildRequest : function(){

		var hostName = getHostName();

		if (DirectorSwitches.isAutoOn){

			var form = document.AmicaForm;

			var state = document.getElementById("state");
			var selectedState = state.options[state.selectedIndex].value;

			form.lob.value=Director.AUTO;
			form.state.value=selectedState;
			form.pagename.value="AutoSource";
			form.application.value=Director.AUTO;

			form.action = "https://"+hostName+DirectorSwitches.AUTO_ON;
			form.submit();

		}else{
			top.document.location.replace('https://'+hostName+DirectorSwitches.AUTO_OFF);
		}
	}
}

var Home = {
	buildRequest : function(type){
		var hostName = getHostName();
		if (DirectorSwitches.isHomeOn){

		var form = document.AmicaForm;

			var state = document.getElementById("state");
			var selectedState = state.options[state.selectedIndex].value;

			form.lob.value=Director.HOME;
			form.state.value=selectedState;
			form.pagename.value="HomeSource";
			form.application.value=Director.HOME;

			if (equalsIgnoreCase(type, 'home')){
				form.homeQuoteType.value = Director.HOME;
			}
			if (equalsIgnoreCase(type, 'condo')){
				form.homeQuoteType.value = Director.CONDO;
			}
			if (equalsIgnoreCase(type, 'renters')){
				form.homeQuoteType.value = Director.RENTERS;
			}

			form.action = "https://"+hostName+DirectorSwitches.HOME_ON;
			form.submit();

		}else{

			top.document.location.replace('https://'+hostName+DirectorSwitches.HOME_OFF);
		}
	}
}

var LifeQuote = {
	buildRequest : function(){

		var hostName = getHostName();
		var form = document.AmicaForm;

		if (DirectorSwitches.isLifeQuoteOn){

			var state = document.getElementById("state");
			var selectedState = state.options[state.selectedIndex].value;

			form.action =  "https://"+ hostName + DirectorSwitches.LIFE_QUOTE_ON + "?" + "source=AMICAWEB&state="+selectedState;
			form.submit();

		}else{
			top.document.location.replace('https://'+hostName+DirectorSwitches.LIFE_QUOTE_OFF);
		}
	}
}

var LifeCalc = {
	buildRequest : function(){

		var hostName = getHostName();
		var form = document.AmicaForm;
		if (DirectorSwitches.isLifeCalcOn){

			form.action =  "https://"+hostName+DirectorSwitches.LIFE_CALC_ON;
			form.submit();

		}else{
			top.document.location.replace('http://'+hostName+DirectorSwitches.LIFE_CALC_OFF);
		}
	}
}

var Claims = {
	buildRequest : function(){

		var hostName = getHostName();
		var form = document.AmicaForm;
		if (DirectorSwitches.isClaimsOn){

			form.action =  "https://"+hostName+DirectorSwitches.CLAIMS_ON;
			form.submit();

		}else{
			top.document.location.replace('http://'+hostName+DirectorSwitches.CLAIMS_OFF);
		}
	}
}

var ContactUs = {
	buildRequest : function(){

		var hostName = getHostName();
		var form = document.AmicaForm;
		if (DirectorSwitches.isContactUsOn){

			form.action =  "https://"+hostName+DirectorSwitches.CONTACTUS_ON;
			form.submit();

		}else{
			top.document.location.replace('http://'+hostName+DirectorSwitches.CONTACTUS_OFF);
		}
	}
}

var Fraud = {
	buildRequest : function(){

		var hostName = getHostName();
		var form = document.AmicaForm;
		if (DirectorSwitches.isFraudOn){

			form.action =  "https://"+hostName+DirectorSwitches.FRAUD_ON;
			form.submit();

		}else{
			top.document.location.replace('http://'+hostName+DirectorSwitches.FRAUD_OFF);
		}
	}
}

var Retirement = {
	buildRequest : function(){

		var hostName = getHostName();
		var form = document.AmicaForm;
		if (DirectorSwitches.isRetirementOn){

			form.action =  "https://"+hostName+DirectorSwitches.RETIREMENT_ON;
			form.submit();

		}else{
			top.document.location.replace('http://'+hostName+DirectorSwitches.RETIREMENT_OFF);
		}
	}
}

var Disability = {
	buildRequest : function(){

		var hostName = getHostName();
		var form = document.AmicaForm;
		if (DirectorSwitches.isDisabilityOn){

			form.action =  "https://"+hostName+DirectorSwitches.DISABILITY_ON;
			form.submit();

		}else{
			top.document.location.replace('http://'+hostName+DirectorSwitches.DISABILITY_OFF);
		}
	}
}

var Health = {
	buildRequest : function(){

		var hostName = getHostName();
		var form = document.AmicaForm;
		if (DirectorSwitches.isHealthOn){

			form.action =  "https://"+hostName+DirectorSwitches.HEALTH_ON;
			form.submit();

		}else{
			top.document.location.replace('http://'+hostName+DirectorSwitches.HEALTH_OFF);
		}
	}
}

var LongTermCare = {
	buildRequest : function(){

		var hostName = getHostName();
		var form = document.AmicaForm;
		if (DirectorSwitches.isLongTermCareOn){

			form.action =  "https://"+hostName+DirectorSwitches.LONGTERMCARE_ON;
			form.submit();

		}else{
			top.document.location.replace('http://'+hostName+DirectorSwitches.LONGTERMCARE_OFF);
		}
	}
}

var StructuredSettlements = {
	buildRequest : function(){

		var hostName = getHostName();
		var form = document.AmicaForm;
		if (DirectorSwitches.isStructuredSettlementsOn){

			form.action =  "https://"+hostName+DirectorSwitches.STRUCTUREDSETTLEMENTS_ON;
			form.submit();

		}else{
			top.document.location.replace('http://'+hostName+DirectorSwitches.STRUCTUREDSETTLEMENTS_OFF);
		}
	}
}

var DriverPledge = {
	buildRequest : function(){

		var hostName = getHostName();
		var form = document.AmicaForm;
		if (DirectorSwitches.isDriverPledgeOn){

			form.action =  "https://"+hostName+DirectorSwitches.DRIVERPLEDGE_ON;
			form.submit();

		}else{
			top.document.location.replace('http://'+hostName+DirectorSwitches.DRIVERPLEDGE_OFF);
		}
	}
}

var Members = {
	buildRequest : function(){

		var form = document.PrimaryloginForm;
		form.pagename.value="loginRequest";
		form.application.value="PHSMemberServices";
		form.event.value="validateUser";

		var hostName = getHostName();

		if (DirectorSwitches.isMembersOn){

			form.action = "https://"+hostName+DirectorSwitches.MEMBERS_ON;
			form.submit();
		}else{
			top.document.location.replace('https://'+hostName+DirectorSwitches.MEMBERS_OFF);
		}
	}
}

var AAA = {
	buildRequest : function(){

		var form = document.mutualAmicaAdvtAcct;
		
		form.pagename.value="viewAmicaAdvtAcctPage";
		form.application.value="AAAApplication";
		form.event.value="viewAmicaAdvtAcct";

		var hostName = getHostName();

		if (DirectorSwitches.isAAAOn){
			form.action = "https://"+hostName+DirectorSwitches.AAA_ON;
			form.submit();
		}else{
			top.document.location.replace('https://'+hostName+DirectorSwitches.AAA_OFF);
		}
	}
}

var ClaimCenter = {
	buildRequest : function(){

		var form = document.phsClaimCenter;
		
		if (form == null) {
			form = document.phsYourClaimCenter;
		}
			
		form.pagename.value="claimCenterSummaryPage";
		form.application.value="ClaimCenterApplication";
		form.event.value="claimCenterSummary";

		var hostName = getHostName();

		if (DirectorSwitches.isClaimCenterOn){

			form.action = "https://"+hostName+DirectorSwitches.CLAIMCENTER_ON;
			form.submit();
		}else{
			top.document.location.replace('https://'+hostName+DirectorSwitches.CLAIMCENTER_OFF);
		}
	}
}

var NeedPW = {
	buildRequest : function(){

		var form = document.AmicaForm;
		form.pagename.value="loginRequest";
		form.application.value="PHSMemberServices";
		form.event.value="forgotPassword";

		var hostName = getHostName();

		if (DirectorSwitches.isNeedPWOn){

			form.action = "https://"+hostName+DirectorSwitches.NEEDPW_ON;
			form.submit();
		}else{
			top.document.location.replace('https://'+hostName+DirectorSwitches.NEEDPW_OFF);
		}
	}
}

var NeedSSOPW = {
	buildRequest : function(){

		var form = document.PrimaryloginForm;
		form.pagename.value="loginRequest";
		form.application.value="PHSMemberServices";
		form.event.value="forgotPassword";

		var hostName = getHostName();

		if (DirectorSwitches.isNeedPWOn){

			form.action = "https://"+hostName+DirectorSwitches.NEEDPW_ON;
			form.submit();
		}else{
			top.document.location.replace('https://'+hostName+DirectorSwitches.NEEDPW_OFF);
		}
	}
}


var ForgotUserName = {
	buildRequest : function(){

		var form = document.PrimaryloginForm;
		form.pagename.value="loginRequest";
		form.application.value="PHSMemberServices";
		form.event.value="forgotUserName";

		var hostName = getHostName();

		if (DirectorSwitches.isForgotUserNameOn){

			form.action = "https://"+hostName+DirectorSwitches.FORGOTUSERNAME_ON;
			form.submit();
		}else{
			top.document.location.replace('https://'+hostName+DirectorSwitches.FORGOTUSERNAME_OFF);
		}
	}
}

var NewUser = {
	buildRequest : function(){

		var form = document.PrimaryloginForm;
		form.pagename.value="loginRequest";
		form.application.value="PHSMemberServices";
		form.event.value="newUserRegistration";

		var hostName = getHostName();

		if (DirectorSwitches.isNewUserOn){

			form.action = "https://"+hostName+DirectorSwitches.NEWUSER_ON;
			form.submit();
		}else{
			top.document.location.replace('https://'+hostName+DirectorSwitches.NEWUSER_OFF);
		}
	}
}

/*****************************************************
Utility methods for the Director

@author Mike Croft
*****************************************************/

function equalsIgnoreCase(compare_A, compare_B)
{
   return (new String(compare_A.toLowerCase())==(new String(compare_B)).toLowerCase());
}

