var Page = {
	SERVER_ENV:{
		PROD:{Key:'PROD',Id:'',ExternalHost:'www.coverme.com'},
		UATEX:{Key:'UATEX',Id:'affinityuat',ExternalHost:'www.dev.memberhealthplan.com'},
		UAT:{Key:'UAT',Id:'mlilacc',ExternalHost:'www.dev.memberhealthplan.com'},
		DEV:{Key:'DEV',Id:'mlildev',ExternalHost:'www.dev.memberhealthplan.com'}, //'jsp.delvinia.com'}
		SIT:{Key:'SIT',Id:'mlilsit',ExternalHost:'www.dev.memberhealthplan.com'} //'jsp.delvinia.com'}
	},
	EWDB:'affinity.nsf',
	Server:null,
	init:function(){
		if(!Page.Server) Page.initServer();
		//Page.setTextSize();
		Page.replaceLinks();		
		Page.saveRefCode();
		Page.addEvent('tool-textresize-large', 'click', Page.setTextToLarge);
		Page.addEvent('tool-textresize-extralarge', 'click', Page.setTextToExtraLarge);
		Page.addEvent('tool-textresize-normal', 'click', Page.setTextToNormal);
	},	
	initServer:function(){		
		var host = window.location.host.toLowerCase();
		if(host.indexOf(Page.SERVER_ENV.UATEX.Id)>=0) {
			Page.Server = Page.SERVER_ENV.UATEX;
		} else if(host.indexOf(Page.SERVER_ENV.DEV.Id)>=0) {
			Page.Server = Page.SERVER_ENV.DEV;
		} else if(host.indexOf(Page.SERVER_ENV.UAT.Id)>=0) {
			Page.Server = Page.SERVER_ENV.UAT;
		} else {
			Page.Server = Page.SERVER_ENV.PROD;
		}		
	},
	toggleLang:function(){ //life only
		var cpath = window.location.pathname;
		var curl = window.location.href;
		var queryString = window.location.search;
		//alert(cpath + "\n"+ curl + "\n"+ queryString)
		var asso = getPageInfo("asso");
		var prdID = getPageInfo("prdID");
		var needs = '&_fn=ndcc';
		var agent = '&_fn=agent';
		var fn = '';
		if (queryString.indexOf(needs)>0) {
			var fn = needs;
		}else if (queryString.indexOf(agent)>0) {
			fn = agent;
		} else {
			fn = '';
		}
		var tp='';
		if(cpath.search(/affinityforms.nsf/i)>0) { 
			var result = queryString.match(/(&tp=[~\w]+)/);		
			tp = result? result[1]:'';
			if(cpath.search(/Apply/)>0) return false;
		}
		var newAsso = (asso.indexOf('f_')==0)? asso.substring(2,asso.length): 'f_'+asso;
		var newUrl = cpath + "?Open"+"&as="+newAsso+"&pd="+prdID+ fn + tp;
		//alert(newUrl)		
		window.location = newUrl;
	},
	search:function() {
		if(!Page.Server) Page.initServer();
		var lang = getPageInfo('lang');
		var host = 'http://'+ Page.Server.ExternalHost +'/';
		var page =  (lang=='F'?'french/':'') + 'search-results.jsp';
		var queryString = 'cx=012146247892857453210%3Agh9queowr14&cof=FORID%3A10%3BNB%3A1&ie=UTF-8&q=';
		var s = document.forms[0].q.value;
		var newUrl = host + page + '?'+ queryString + escape(s);
		window.location = newUrl;
	},	
	addExternalHost:function() {		
		if(!Page.Server) Page.initServer();
		var anchors = document.getElementsByTagName("a");		
		var host = 'http://'+ Page.Server.ExternalHost;
		var links = '', count=0;
		var pattern = /^(\w+:\/\/[\w\.]+\/|\/)(.+\.jsp|[\w-\/]+)$/;
		for (var i = 0; i < anchors.length; i++) {
			var href = anchors[i].getAttribute("href");			
			if (href && (href.indexOf('/')==0 || href.indexOf('http')==0) ) {
				if ( href.match(pattern) ){
					href = href.replace( pattern, '$2');
					href = host + '/' + href;
					anchors[i].setAttribute("href", href);
					//links = links + "\n" + href;	count = count +1;
				}
			}
		}		
		//alert(count + "\n"+ links);
	},
	popup:function(elm){
		//alert(elm.href);
		url = elm.href;
		if (url) {
			var winWidth = 640;
			var winHeight = 600;
			var winTop = (screen.height / 2) - (winHeight / 2);
			var winLeft = (screen.width / 2) - (winWidth / 2);
			var winNM = "win";
			winFeatures ="toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=" + winWidth + ",height=" + winHeight;
			win = window.open(url, winNM, winFeatures);
			win.focus();		
			return false;
		}
	},	
	replaceLinks:function() {
		if(!Page.Server) Page.initServer();
		var env = Page.SERVER_ENV;	
		var mkt = Page.getMktCode();
		var mktQuery = (mkt)? "MKT="+mkt.toUpperCase() : '';		
		var isProd = (Page.Server.Key == env.PROD.Key)? true:false;
		if(!mkt && isProd) return false;
		
		var links = '', count=0;
		var anchors = document.getElementsByTagName("a");		
		for (var i = 0; i < anchors.length; i++) {
			var href = anchors[i].getAttribute("href")			
			if (href && (href.indexOf(env.PROD.ExternalHost)>0) ) {
				if (!isProd) 
					href = href.replace( env.PROD.ExternalHost, Page.Server.ExternalHost);
				if (mkt) href = href + ( href.indexOf('?')>0? '&':'?') + mktQuery;
				anchors[i].setAttribute("href", href);
				//links = links + "\n" + href; count = count +1;				
			}
		}
		
	},
	redirect:function(){
		if(!Page.Server) Page.initServer();
		var cpath = window.location.pathname.toLowerCase();				
		var productPage = "/products/life-insurance.jsp"
		var asso = 'cml' //life only		
		if ( (cpath.indexOf(Page.EWDB)>0) && (cpath.indexOf(asso)>0) ) { //redirect coverme only EW pages		
			var mkt = Page.getQuery('mkt');						
			var newURL = 'http://'+Page.Server.ExternalHost + productPage + (mkt? '?MKT='+mkt :'');	
			//alert('redirect to: ' + newURL)
			window.location.replace(newURL);			
		}
	},
	setTextToLarge:function() {
		Page.setTextSize('large');
	},
	setTextToExtraLarge:function() {
		Page.setTextSize('extralarge');
	},
	setTextToNormal:function() {
		Page.setTextSize('normal');
	},
	setTextSize:function(op){		
		root = document.getElementsByTagName("body")[0];
		/*root.className = root.className.replace(/textsize-\w+/,'');
		if (!root) return;
		switch(op){			
			case "large":	
				root.className = root.className+' textsize-large';				
				break;
			case "extralarge":
				root.className = root.className+' textsize-extralarge';
				break;
			case "normal":
				break;
			default:					
		}*/
		if(op) {
			root.className = root.className.replace(/(textsize-)\w+/,'$1'+op);
			this.setCookie('textsize', op);
			//alert(document.cookie);
		} else {
			var curSize = this.getCookie('textsize');
			//alert(document.cookie + '-- from cookie: '+curSize)
			if(curSize) this.setTextSize(curSize);
		}
	},	
	getMktCode:function(){		
		var mkt = this.getCookie('mkt');		
		//alert('mkt: '+mkt + ' cookie:' + document.cookie);		
		var masso = this.getCookie('masso');
		masso = masso.replace('f_','');
		var asso = getPageInfo("asso");
		if ( asso.indexOf(masso)<0) {
			asso = getPageInfo("assoS");
			if (asso.indexOf(masso)<0) return '';
		}
		return mkt;
		//alert(mkt);
	},
	saveRefCode:function() {
		var ref = this.getQuery("ref");
		if(ref) {
			var masso = getPageInfo('asso');		
			this.setCookie("mktref", ref+'~'+ masso);
		}
	},
	addEvent: function(elm, evType, fn, useCapture){
		if(typeof elm=="string") {			
			elm = document.getElementById(elm);							
		}
		if (elm.addEventListener){
			elm.addEventListener(evType, fn, useCapture);
			return true;
		} else if (elm.attachEvent) {
			var r = elm.attachEvent('on' + evType, fn);
			return r;
		} else {
			elm['on' + evType] = fn;
		}
	},
	getQuery:function(name) {
		/*var queryString = window.location.search;		
		var patern = name + '=(.+)&';		
		var re = new RegExp(patern);
		var result = queryString.match(re);		
		return result? result[1]:'';*/
		var re = new RegExp( "[?&]" + name + "=([^&$]*)", "i" );
	    var offset = location.search.search( re );
		if ( offset == -1 ) return null;
	    return RegExp.$1;
	},
	getCookie:function(name) {
		var cookie = document.cookie;		
		var patern = name + "=([^%;$]*)";
		var re = new RegExp(patern, "i"); //var re = /mkt=(\w+)($%|;)/;
		var result = cookie.match(re);		
		return result? result[1]:'';
	},
	setCookie:function(name, value) {
		var tmp = name + "=" +escape(value) + ";path=" +"/";
        document.cookie = tmp;
	}
};try {
	//AF.Event.addListener(window, "load", Page.addExternalHost);
	Page.redirect();
	Page.addEvent(window, "load", Page.init);
}catch(e){};