var prodUrl = "www.guardianlife.com";
var prodUrl2 = "www.360professionalalliance.com";
var prodUrl3 = "www3.guardianlife.com";
var prodUrl4 = "www.glifeweb1.prod";
var prodUrl5 = "www.glifeweb2.prod";
var prodUrl6 = "www.glifeweb3.prod";
var prodUrl7 = "www.guardianbenefits.com";

var qaUrl = "beta.qa.glic.com";
var qaUrl2 = "qa.360professionalalliance.com";
var qaUrl3 = "web1.qa.glic.com";
var qaUrl4 = "web2.qa.glic.com";
var devUrl = "www.guardianlife.dev";
var devUrl2 = "eatwas30:85";

var deployXML;
var siteMapXML;
var isIE;
var mode;


loadSiteMap();
initJSVariable();

function replaceJSValue(jsValue,xmlObj)
{
	var node = deployXML.selectSingleNode("./node()[text()='"+jsValue+"']");
	if (node!=null)
	{
		nodeName = node.nodeName;
		if (xmlObj!=null)
		{
			var aNode = xmlObj.selectSingleNode(nodeName);
			if (aNode!=null)
			{
				return aNode.text;
			}
		}
	}
	return jsValue;
}

function initJSVariable()
{

	var xmlObj = siteMapXML.selectSingleNode("/map:sitemap/map:components/map:transformers/map:transformer/deploy[@mode='"+mode+"']");
	if (typeof(WEB_ROOT) == "undefined") return;
	WEB_ROOT = replaceJSValue(WEB_ROOT,xmlObj);
	if (window.location.href.indexOf("http://localhost")!=-1)
	{
		WEB_ROOT = "http://localhost/guardianlife";
	}
	else if ( window.location.href.indexOf("http://10.98.16.156")!=-1)
	{
		WEB_ROOT = "http://10.98.16.156/guardianlife";
	}
	APP_ROOT  = replaceJSValue(APP_ROOT,xmlObj);
	if (window.location.href.indexOf("http://localhost")!=-1)
	{
		APP_ROOT = "http://localhost:9080";
	}
	else if ( window.location.href.indexOf("http://10.98.16.156")!=-1)
	{
		APP_ROOT = "http://10.98.16.156:9080";
	}
	
	DEMO_EMPLOYERS_LINK  = replaceJSValue(DEMO_EMPLOYERS_LINK,xmlObj);
	DEMO_EMPLOYEES_LINK  = replaceJSValue(DEMO_EMPLOYEES_LINK,xmlObj);
	DEMO_PRODUCERS_LINK  = replaceJSValue(DEMO_PRODUCERS_LINK,xmlObj);
	REGISTER_EMPLOYEES_LINK  = replaceJSValue(REGISTER_EMPLOYEES_LINK,xmlObj);
	REGISTER_EMPLOYERS_LINK  = replaceJSValue(REGISTER_EMPLOYERS_LINK,xmlObj);
	REGISTER_PRODUCERS_LINK  = replaceJSValue(REGISTER_PRODUCERS_LINK,xmlObj);
	REGISTER_PROVIDERS_LINK  = replaceJSValue(REGISTER_PROVIDERS_LINK,xmlObj);
	WEB_EMPLOYERS_LINK  = replaceJSValue(WEB_EMPLOYERS_LINK,xmlObj);
	WEB_MEMBERS_LINK  = replaceJSValue(WEB_MEMBERS_LINK,xmlObj);
	WEB_PRODUCERS_LINK  = replaceJSValue(WEB_PRODUCERS_LINK,xmlObj);
	WEB_PROVIDERS_LINK  = replaceJSValue(WEB_PROVIDERS_LINK,xmlObj);
	GROUP_EMPLOYERS_LINK  = replaceJSValue(GROUP_EMPLOYERS_LINK,xmlObj);
	GROUP_EMPLOYEES_LINK  = replaceJSValue(GROUP_EMPLOYEES_LINK,xmlObj);
	GROUP_HEALTHCARE_LINK  = replaceJSValue(GROUP_HEALTHCARE_LINK,xmlObj);
	REGISTER_LOGIN_PORTAL  = replaceJSValue(REGISTER_LOGIN_PORTAL,xmlObj);
	
}

function getAppUrl()
{
	if (window.location.href.indexOf(prodUrl7)!=-1 || window.location.href.indexOf(prodUrl6)!=-1 || window.location.href.indexOf(prodUrl5)!=-1 || window.location.href.indexOf(prodUrl4)!=-1 || window.location.href.indexOf(prodUrl3)!=-1 || window.location.href.indexOf(prodUrl)!=-1 || window.location.href.indexOf(prodUrl2)!=-1)
	{
		
		return "http://www.guardianlife.com/";
	}
	else if (window.location.href.indexOf(qaUrl)!=-1 || window.location.href.indexOf(qaUrl3)!=-1 || window.location.href.indexOf(qaUrl4)!=-1 || window.location.href.indexOf(qaUrl2)!=-1)
	{
		
		return "http://beta.qa.glic.com/";
	}
	else if (window.location.href.indexOf(devUrl)!=-1 || window.location.href.indexOf(devUrl2)!=-1 )
	{
		
		return "http://www.guardianlife.dev/";
	}
	else if (window.location.href.indexOf("http://localhost")!=-1)
	{
		return "http://localhost:9080/";
	}
	else
	{
		return "http://10.98.16.156:9080/";
	}
}
function setFormAction()
{
	if (mode=="prod") return;
	var contextRoot = deployXML.selectSingleNode("context-root").text
	var formObjs = document.getElementsByTagName("form");
	if (formObjs!=null && formObjs.length)
	{
	    for (var i=0;i<formObjs.length;i++)
	    {	
		if (document.forms[i])
		{
			var action = document.forms[i].action;
			var aPosition = action.indexOf("/");
			action = action.substring(action.indexOf("/",aPosition+2)+1);
			if (action.indexOf(contextRoot)==-1)
			{
				document.forms[i].action = getAppUrl()+ contextRoot+"/"+action;
			//	alert(document.forms[i].action)
			}
			else
			{
				document.forms[i].action = getAppUrl()+ action;
			}
		}
	    }		
	}
}

function detectBrowser()
{
	var browser=navigator.appName;
	isIE = (browser=="Microsoft Internet Explorer") ? true : false;
}

function loadSiteMap()
{
	detectBrowser();
	mode = getDeploymentModeFromURL();
	if (isIE)
	{
		siteMapXML=new ActiveXObject("Microsoft.XMLDOM");
		siteMapXML.async="false";
		if (window.location.href.indexOf("http://localhost")!=-1)
		{
			siteMapXML.load("http://localhost/guardianlife/scripts/sitemap.xmap");	
		}
		else if (window.location.href.indexOf("http://10.98.16.156")!=-1)
		{
			siteMapXML.load("http://10.98.16.156/guardianlife/scripts/sitemap.xmap");	
		}
		else
		{
			siteMapXML.load("/scripts/sitemap.xmap");	
		}		
			 		
		if (siteMapXML.xml=="")
		{
			siteMapXML=new ActiveXObject("Microsoft.XMLDOM");
			siteMapXML.async="false";
			siteMapXML.load("scripts/sitemap.xmap");
		}
	}
	else
	{
		siteMapXML=document.implementation.createDocument("","",null);
		siteMapXML.async="false";
		siteMapXML.load("/scripts/sitemap.xmap");
	}	
	deployXML = siteMapXML.selectSingleNode("/map:sitemap/map:components/map:transformers/map:transformer/deploy[@mode='prod']");
//alert(mode );
/*
	GDownloadUrl("/scripts/sitemap.xmap", function(data, responseCode) {
		siteMapXML = GXml.parse(data);
		deployXML = siteMapXML.selectSingleNode("/map:sitemap/map:components/map:transformers/map:transformer/deploy[@mode='prod']");
	});
*/	
}

function getDeploymentModeFromURL()
{
	if (window.location.href.indexOf(prodUrl7)!=-1 || window.location.href.indexOf(prodUrl6)!=-1 || window.location.href.indexOf(prodUrl5)!=-1 || window.location.href.indexOf(prodUrl4)!=-1 || window.location.href.indexOf(prodUrl3)!=-1 || window.location.href.indexOf(prodUrl)!=-1 || window.location.href.indexOf(prodUrl2)!=-1)
	{
		return "prod";
	}
	else if (window.location.href.indexOf(qaUrl)!=-1 || window.location.href.indexOf(qaUrl3)!=-1 || window.location.href.indexOf(qaUrl4)!=-1 || window.location.href.indexOf(qaUrl2)!=-1)
	{
		return "uat";
	}
	else if (window.location.href.indexOf(devUrl)!=-1 || window.location.href.indexOf(devUrl2)!=-1 )
	{
		return "unit";
	}
	else if (window.location.href.indexOf("http://localhost")!=-1 || window.location.href.indexOf("http://10.98.16.156")!=-1)
	{
		return "local";
	}
	else
	{
		return "prod";
	}
}


function replaceLink()
{	
	if (mode=="prod") return;
	var links = document.getElementsByTagName("a");
	var xmlObj = siteMapXML.selectSingleNode("/map:sitemap/map:components/map:transformers/map:transformer/deploy[@mode='"+mode+"']");

	if (links==null || xmlObj==null)
	{
	//	return;
	}
//	alert(links.length);
	for (var i=0;i<links.length;i++)
	{
		var href = links[i].getAttribute("href")
		var href2 = href.substring(0,href.length-1);
		var node = null;
		try
		{
			node = deployXML.selectSingleNode("./node()[text()='"+href+"' or text()='"+href2+"']");
		}
		catch(e)
		{
			continue;
		}	
		if (window.location.href.indexOf("http://localhost")!=-1 || window.location.href.indexOf("http://10.98.16.156")!=-1)
		{
			if (href.indexOf("http://localhost/")!=-1 || href.indexOf("http://10.98.16.156/")!=-1)
			{
				var aPosition = href.indexOf("/");
				href  = href.substring(href.indexOf("/",aPosition+2)+1);
				href = "http://10.98.16.156/guardianlife/"+href;
			//	alert(href);			
				links[i].setAttribute("href",href);
			}
			
		}
		else if (mode=='unit' || mode=='uat')
		{
			if (href.indexOf(devUrl2)!=-1)
			{
				href = href.replace("http://"+devUrl2,APP_ROOT);
				links[i].setAttribute("href",href);
				continue;
			}
		}
		var nodeName = "";
		
		if (node!=null) //found in sitemap
		{
			nodeName = node.nodeName;
			var aNode = xmlObj.selectSingleNode(nodeName);
			if (aNode!=null)
			{
				href = aNode.text;
				links[i].setAttribute("href",href);
			//	alert(href);
	//			aaa.value += links[i].outerHTML+"\n";
			}
		}
		else
		{
			var root = deployXML.selectSingleNode("app-root").text
			var contextRoot = deployXML.selectSingleNode("context-root").text
		//	alert(root+","+contextRoot);
			var ahref = href;
			if (href.indexOf(root+"/"+contextRoot)!=-1)
			{
				if (window.APP_ROOT)	
					ahref = href.replace(root,APP_ROOT);
				else
				{
					var aPosition = href.indexOf("/");
					ahref  = href.substring(href.indexOf("/",aPosition+2)+1);
					ahref = getAppUrl()+ ahref  ;
				}
			}
			else if (href.indexOf(root)!=-1 || href.toLowerCase().indexOf("360professionalalliance")!=-1)
			{
				if (window.WEB_ROOT)
					var ahref = href.replace(root,WEB_ROOT);
				else
				{
					
					var aPosition = href.indexOf("/");
					ahref  = href.substring(href.indexOf("/",aPosition+2)+1);

					if (href.toLowerCase().indexOf("www.360professionalalliance.com")!=-1) // is  360
					{
						
							if (mode=="prod")
							{
								ahref  = "http://www.360ProfessionalAlliance.com/"+ahref  ; 
							}
							else
							{
								ahref  = getAppUrl()+"360ProfessionalAlliance/"+ahref  ;
							}

					}
					else
					{
						ahref  = getAppUrl()+ ahref  ;
					//	alert(href)
					}	
				}
			}

			links[i].setAttribute("href",ahref  );
		}
	}
}

function getGoolgeMapUrl()
{
	var href = window.location.href;
	if (href.indexOf("/",3)!=-1)
	{
		var aPosition = href.indexOf("/");
		href = href.substring(0,href.indexOf("/",aPosition+2))+"/company_info/";
		return href;
	}
	return "";
}

function doReplacement()
{
//	alert('2');
	replaceMetaContent();
	setFormAction();
	replaceLink()
}
document.body.attachEvent("onload",new function(){ doReplacement() });

function openMap()
	{
	
		var address = document.forms["field"].address.value;		
		var city = document.forms["field"].city.value;		
		var state = document.forms["field"].stateProvince.value;		
		var zip = document.forms["field"].postalCode.value;		
		var countryVal = "US";		
		var radiusVal = document.forms["field"].radius.value;		
		var str = address+","+city+","+state+" "+zip+" "+countryVal;
		var val = "";
		val = 2;
		//var win = window.open(getGoolgeMapUrl()+"googleMap/GlicGoogleMap.html?addr="+escape(str)+"&radius="+radiusVal+"&officeType=0","myWindow","resize=1,width=1020,height=600");
		var win = window.open(getGoolgeMapUrl()+"googleMap/GlicGoogleMap.html?rChoice="+val+"&addr="+escape(str)+"&radius="+radiusVal+"&officeType=0","myWindow","resize=1,width=1020,height=600");
	}
	/*function openSalesOfficeMap()
	{
		
		var address = document.forms["group"].address.value;
		var city = document.forms["group"].city.value;	
		var state = document.forms["group"].stateProvince.value;
		var zip = document.forms["group"].postalCode.value;
		var countryVal = "US";
		var radiusVal = document.forms["group"].radius.value;
		var str = address+","+city+","+state+" "+zip+" "+countryVal;	
		var win = window.open(getGoolgeMapUrl()+"googleMap/GlicGoogleMap.html?addr="+escape(str)+"&radius="+radiusVal+"&officeType=1","myWindow","resize=1,width=1020,height=600");
	}*/

	function openSalesOfficeMap()
		{
			var address = document.forms["group"].address.value;
			var city = document.forms["group"].city.value;	
			var state = document.forms["group"].stateProvince.value;
			var zip = document.forms["group"].postalCode.value;
			var countryVal = "US";
			var radiusVal = document.forms["group"].radius.value;
			var str = address+","+city+","+state+" "+zip+" "+countryVal;	
			var radioEle = document.getElementsByName("radioChoice");
			var val = "";
			for( var i = 0; i < radioEle.length; i++ )
			{
				if( radioEle[i].checked == true )
				{
					val = radioEle[i].value;
					break;
				}
			}
			//alert(val);
			var win = window.open(getGoolgeMapUrl()+"/googleMap/GlicGoogleMap.html?rChoice="+val+"&addr="+escape(str)+"&radius="+radiusVal+"&officeType=1","myWindow","resize=1,width=1000,height=600");
		}

function replaceMetaContent()
{
	var  metaTags = document.getElementsByTagName("meta");
	
	if (metaTags!=null && metaTags.length)
	{
		for (var i=0;i<metaTags.length;i++)
		{
			var att = metaTags[i].getAttribute("content");

			if (att!=null)
			{
				if (att.indexOf("stp16")!=-1 || att.indexOf("stp20")!=-1)
				{
					if (mode=="dev" || mode=="unit")
					{
						window.location.href = "https://www6.glic.com/app/stp16/servlet/EAFLogin";
					}
					else if (mode=="uat")
					{
						window.location.href = "https://www6.glic.com/app/stp16/servlet/EAFLogin";
					}
					else if (mode=="prod")
					{
						window.location.href = "https://www10.glic.com/stp/stp20/servlet/EAFLogin";
					}
					metaTags[i].setAttribute("content",getAppUrl()+ content);
				}
				else if (att.indexOf("GuardianLife")!=-1)
				{
					var content = metaTags[i].getAttribute("content");
					var aPosition = content.indexOf("/");
					content = content.substring(content.indexOf("/",aPosition+2)+1);
					metaTags[i].setAttribute("content",getAppUrl()+ content);
				//	alert(metaTags[i].getAttribute("content"));
					window.location.href = metaTags[i].getAttribute("content");
					
				}
			}
		}
	}
}

