//protocol + host + (remoteMediaServer + localMediaServer) + mediaPath					    				  

var MediaModes = new ModeEnum()

var HTTP_TTL = "12h"
var SSL_TTL = "12h"
var HTTP_TTL_TEST = "1m"
var SSL_TTL_TEST = "1m"
var AKAMAI_HTTP_URLBASE = 'a1708.g.akamai.net/f/1708/179/'+HTTP_TTL
var AKAMAI_SSL_URLBASE = 'a248.e.akamai.net/f/248/179/'+SSL_TTL
var AKAMAI_HTTP_URLBASE_TEST = 'a1708.g.akamai.net/f/1708/179/'+HTTP_TTL_TEST
var AKAMAI_SSL_URLBASE_TEST = 'a248.e.akamai.net/f/248/179/'+SSL_TTL_TEST
var IMAGE_SERVER_TEST = "image.pch.com/testimages3"
var IMAGE_SERVER = "image.pch.com"

function getProtocol(){
	return window.location.protocol+"//"
}

function getMediaUrlBase(){
	return getProtocol()+getMediaUrlHost()+getRemoteMediaServer()+getLocalMediaServer()
}

function getLocalMediaServer(){
	var server = ""

	switch(getIncludeMode()){
		case MediaModes.Test:
			server=IMAGE_SERVER_TEST

			break

		case MediaModes.Local:
			server=IMAGE_SERVER

			break

		case MediaModes.Production:
			server=IMAGE_SERVER

			break
	}

	return server
}

function getRemoteMediaServer(){
	var path = ""
	var protocol = window.location.protocol

	switch(getIncludeMode()){
		case MediaModes.Test:
			path=(protocol=="http:") ? AKAMAI_HTTP_URLBASE_TEST : AKAMAI_SSL_URLBASE_TEST

			path+="/"
			break

		case MediaModes.Local: break

		case MediaModes.Production:
			path=(protocol=="http:") ? AKAMAI_HTTP_URLBASE : AKAMAI_SSL_URLBASE

			path+="/"
			break
	}

	return path
}

function getMediaUrlHost(){
	if(getIncludeMode()==MediaModes.Local){
		return ""
	}else{
		return ""
	}
}

function getImageServerPath(sVal){
	var sImageServer
	sImageServer='<img src="'
	sImageServer+=getMediaUrlBase()
	sImageServer+=sVal
	document.write(sImageServer)
}

function getImageServerPath2(sVal){
	var sImageServer
	sImageServer='<img src="'
	sImageServer+=getMediaUrlBase()
	sImageServer+=sVal
	return sImageServer
}

function getImageServerPathBG(bTD, sSrc){
	// bTD = true if it's a <TD> tag; false if it's a <TABLE> tag 
	var sImageServer

	if(bTD){
		sImageServer='<td'
	}else{
		sImageServer='<table'
	}

	sImageServer+=' background="'
	sImageServer+=getMediaUrlBase()
	sImageServer+=sSrc
	document.write(sImageServer)
}

function getImageServerPathINPUT(sSrc){
	var sImageServer
	sImageServer='<input type="image"'
	sImageServer+=' src="'
	sImageServer+=getMediaUrlBase()
	sImageServer+=sSrc
	document.write(sImageServer)
}

function secureURL(sPath){
	var sURL

	if(sPath.indexOf("https://")==-1){
		sURL='https://'+window.location.host+sPath
	}else{
		sURL=sPath
	}

	return sURL
}

function nonsecureURL(sPath){
	var sURL

	if(sPath.indexOf("http://")==-1){
		sURL='http://'+window.location.host+sPath
	}else{
		sURL=sPath
	}

	return sURL
}

function enterSweeps(){
		if(typeof(SetClicked) == 'function') SetClicked();
		
		ActionIfElse('newEntry', nonsecureURL('/entry/returnentry.aspx'), nonsecureURL('/entry/newentry.aspx'))
}

function enterSweeps2(){
	ActionIfElse('newEntry', nonsecureURL('/entry/survey.aspx'), secureURL('/entry/newentry.aspx'))
}

function myAccount(){
	document.location.href=secureURL('/myaccount/login.aspx');
}

function WinnersCircle(){
	document.location.href=nonsecureURL('/winnerscircle/winnercircle.shtml')
}

function pchHome(){
	document.location.href=nonsecureURL('/default.aspx')
}

function pchRules(){
	var expdateLong = new Date()
	newwindow=window.open(nonsecureURL('/rules/rules.shtml'), 'newwindow'+expdateLong.getTime())
	if(newwindow != null)	newwindow.window.focus();
}

function pchSweepsFacts(){
	var expdateLong = new Date()
	newwindow=window.open(nonsecureURL('/rules/sfacts.shtml'), 'newwindow'+expdateLong.getTime())
	if(newwindow != null)	newwindow.window.focus();
}

function pchInfoCenter(){
	document.location.href=nonsecureURL('/infocenter/infocenter.shtml')
}

function pchAskUs(){
	document.location.href=nonsecureURL('/infocenter/askus/askus.shtml')
}

function fpchLotto(){
	return "http://sb.pch.com/ClickTracker/clicker.aspx?c=GXKMUWD8C5I2S0BJZPQV&e=F37C5960-2F84-437D-B8FE-AEAA090E36EC&redirect=http://pch.luckysurf.com/?promo=pch_JUN2606HomePage"
}

function pchLotto(){
	document.location.href=fpchLotto()
}

function pchCareers(){
	document.location.href="http://www.pchjobs.com"
}

function getMags()
{
	 var sURL = "http://sb.pch.com/ClickTracker/clicker.aspx?c=CYIASOB8Z5Q2L8EHFRGX&e=F37C5960-2F84-437D-B8FE-AEAA090E36EC&redirect=http://sb.pch.com/minimagsite/redirect.asp?http://sb.pch.com/cat/06/01-55/multimag-step1-top-titles.html?v=20062535&tc=202NC5077Y"
	document.location.href = sURL;	
}

function getProducts()
{
	document.location.href = nonsecureURL("/products/");
}

function goGift()
{
	var sURL = "/minimagsite/redirect.asp?http://sb.pch.com/cat/06/01-77/gift.html?v=20055237&tc=2021179"
	var expdateLong = new Date()	
	newwindow=window.open(sURL,'newwindow'+expdateLong.getTime())
	if(newwindow != null)	newwindow.window.focus();
}	

function go2MyAccount(sURL)
{
	document.location.href = sURL;
}

function pchCopyright(){
	document.write("<table width='735'><tr><td align='center'><br><span class='footer'><font color='#888888' size='1' face='Arial'>"
					   +fpchCopyright()+"</font></span></p><br></td></tr></table>")
}

function fpchCopyright(){
	return "&copy; Copyright "+new Date().getFullYear()+" pch.com. All Rights Reserved."
}

//This function changes the location a user will be taken to
//based on a condition being met
//function returns a location string					
function ActionIfElse(sCondition, sLocationTrue, sLocationFalse){
	//alert("entering ActionIfElse()...")
	switch(sCondition){
		case "newEntry":
			if(getNameVal("PCH", "Shopper_ID")!=false){
				var objDate = new Date()
				var entryDateVal
				var sDate
				var strYear = objDate.getYear()

				if(strYear<2000){
					strYear=strYear+1900;
				}

				var strMonth = objDate.getMonth()+1
				var strDay = objDate.getDate()
				sDate=strMonth+"/"+strDay+"/"+strYear
				entryDateVal=getNameVal("PCHEntryDate", "DateEntered")

				if(entryDateVal!=false){
					if(sDate==entryDateVal){
						document.location.href='/errors/maxentry.aspx'
					}else{
						document.location.href="/Controller.ashx?action=reCookie&redirect="+sLocationTrue //questions
					}
				}else{
					document.location.href="/Controller.ashx?action=reCookie&redirect="+sLocationTrue
				}
			}else{
				document.location.href=sLocationFalse
			}

			break

		case "myAccWinOPen":
			if(GetCookie("PCH")==null){
				document.location.href=sLocationFalse
			}else{
				document.location.href=sLocationTrue
			}

			break
	}
}

//This function opens a new window
function openWin(sLocation){
	var expdateLong = new Date()
	var w
	var h

	if(document.layers){
		w="460"
		h="420"
	}else{
		w="420"
		h="380"
	}

	window.open(sLocation, 'newwindow'+expdateLong.getTime(), 'width='+w+',height='+h+',status=yes,menubar=no,scrollable=no,resizable=yes,scrollbars=no')
}

function openit2(sURL, w, h){
	var expdateLong = new Date()
	newwindow=window.open(sURL, "newwin"+expdateLong.getTime(),
						  "scrollbars=yes,toolbar=no,directories=no,menubar=no,resizable=yes,status=no,width="+w
										+",height="
										+h
										+"")
	if(newwindow != null) newwindow.window.focus();
}

//This searches for an instance of 'repstring' within 'oldString' and replaces it with an instance of 'newstring'
function stringReplace(oldString, repString, newstring){
	var newStringVal = ""

	for (var i=0; i<oldString.length; i++){
		if(oldString.charAt(i)==repString){
			newStringVal=newStringVal+newstring
		}else{
			newStringVal=newStringVal+oldString.charAt(i)
		}
	}

	return newStringVal
}

//writes a value
function sGreetingFNameOnly(){
	var sFName
	var sMessage; //retrieve users stored cookie name 
	sFName=getNameVal("PCH", "fname")

	if((sFName=="")||(sFName=="NULL")){
		document.writeln("Your entry has been registered!")
	}else{
		document.writeln(sFName+", Your entry has been registered!")
	}
}

//writes a value 
function sGreetingFullName(){
	var sFName
	var sLName
	var sFullName

	sFName=getNameVal("PCH", "fname")

	if((sFName=="NULL")||(sFName=="")){
		sFName=getNameVal("PCH", "Title")

		switch(sFName){
			case "mr":
				sFName="Mr."

				break

			case "ms":
				sFName="Ms."

				break

			case "mrs":
				sFName="Mrs."

				break
		}
	}

	sLName=getNameVal("PCH", "lname")
	sFullName=sFName+" "+sLName
	document.write(sFullName)
}

function fGreetingFullName(){
	var sFName
	var sLName
	var sTemp

	sFName=getNameVal("PCH", "fname")

	if((sFName=="NULL")||(sFName=="")){
		sFName=getNameVal("PCH", "Title")

		switch(sFName){
			case "mr":
				sFName="Mr."

				break

			case "ms":
				sFName="Ms."

				break

			case "mrs":
				sFName="Mrs."

				break

			default: sFName=""
		}
	}

	sLName=getNameVal("PCH", "lname")

	if((sLName=="NULL")||(sLName=="")){
		sLName=""
	}

	if((sFName.length>0)&&(sLName.length>0)){
		sTemp=sFName+" "+sLName
	}else{
		sTemp=""
	}

	return sTemp
}

function sGreetingEmail(){
	var sEmail
	sEmail=getNameVal("PCH", "email")
	document.writeln(sEmail)
}

function fGreetingEmail(){
	var sEmail
	sEmail=getNameVal("PCH", "email")

	if((sEmail=="NULL")||(sEmail=="")){
		sEmail=""
	}

	return sEmail
}

function sGreeting(){
	var sFName;
	var sMName;
	var sLName;
	var sFullHeader;
	var sMessage;

	//retrieve users stored cookie name
	var bRememberMe = GetCookie("PCHRememberMe");

	if(bRememberMe!="NULL"){
		sFName=getNameVal("PCH", "fname");

		if((sFName=="NULL")||(sFName=="")){
			sFName=getNameVal("PCH", "Title");

			switch(sFName){
				case "mr":
					sFName="Mr.";

					break;

				case "ms":
					sFName="Ms.";

					break;

				case "mrs":
					sFName="Mrs.";

					break;
			}
		}

		sLName=getNameVal("PCH", "lname");
	}

	sFullHeader=(!sFName||!sLName) ? " to pch.com!" : sFName+" "+sLName;

	if(!sFName){
		sMessage="To create account or login please ";
	}else{
		sMessage="If you're not "+sFullHeader+" ";
	}

	document.write("<font class='navBottom1'>Welcome </font><font class='navBottom2'><b>"+sFullHeader+"</b></font><br>");
	document.write("<font class='navBottom1'>"+sMessage+"<a href='JavaScript:ClickHere();' style='color: #FFFFFF; size: 10px'><U>click here.</U></a></font>");
}

function curTime(){
	document.writeln(new Date().toLocaleString())
}

function curServerTime(){
	var sTime
	sTime=getNameVal("PCHBonusPrize", "time")

	if(!sTime){
		sTime="{server error}"
	}

	document.writeln(sTime)
}

function selectedPrize(){
	var sPrize;
	sPrize=getNameVal("PCHBonusPrize", "car")

	if((!sPrize)||(sPrize=="false")||(sPrize=="False")){
		sPrize="Not Selected"
	}

	document.writeln(sPrize)
}

function userCity(){
	document.writeln(getNameVal("PCH", "city"))
}

function userCityState(){
	document.writeln(getNameVal("PCH", "city")+", "+getNameVal("PCH", "State"))
}

function Address1(){
	document.writeln(getNameVal("PCH", "address1"))
}

function Address2(){
	var Adr2
	Adr2=getNameVal("PCH", "address2")

	if(Adr2=="NULL"){
		Adr2=""
	}

	document.writeln(Adr2)
}

function cityStateZip(){
	var sBottomAdr = getNameVal("PCH", "city")+", "+getNameVal("PCH", "State")+" "+getNameVal("PCH", "zip")
	document.writeln(sBottomAdr)
}

function checkActionLogin(action){
	if(GetCookie("PCHAction")!=null){
		var time = getNameVal("PCHAction", "time");
		var cookieAction = getNameVal("PCHAction", "action");
		var noAccess = false;

		if(action!=cookieAction){
			document.location.href=nonsecureURL("/default.aspx");
		}
	}else{
		document.location.href=nonsecureURL("/default.aspx");
	}
}

function checkLogin(){
	sShopperId=getNameVal("PCH", "lname")

	//alert("checkLogin() sShopperId="+sShopperId)
	if(!sShopperId){
		document.location.href=nonsecureURL("/default.aspx")
	}
}

function getProfileData(){
	// Gets the user's PCH account data from the PCH cookie and returns
	// it in a format specific for appending as a Query String
	var strTemp = ""

	if(GetCookie("PCH")!=null){
		var zip = ""
		var fname = getNameVal("PCH", "fname")

		if(fname=="NULL"||fname==""){
			strTemp=""
		}else{
			var title = getNameVal("PCH", "Title")

			if(title=="NULL"){
				title=""
			}else{
				if(title.indexOf(".")==-1){
					title+="."
				}
			}

			var lname = getNameVal("PCH", "lname")

			if(lname=="NULL"){
				lname=""
			}

			var addr1 = getNameVal("PCH", "address1")

			if(addr1=="NULL"){
				addr1=""
			}

			var addr2 = getNameVal("PCH", "address2")

			if(addr2=="NULL"){
				addr2=""
			}

			var city = getNameVal("PCH", "city")

			if(city=="NULL"){
				city=""
			}

			var state = getNameVal("PCH", "State")
			var sZip = getNameVal("PCH", "zip")
			var strZip4 = getNameVal("PCH", "zip4")

			if((strZip4==null)||(strZip4=="NULL")||(strZip4=="")||(strZip4=="false")){
				strZip4=""
			}else{
				strZip4=String(strZip4)
			}

			if(strZip4==""){
				zip=sZip
			}else{
				zip=sZip+"-"+strZip4
			}

			var email = getNameVal("PCH", "email")

			strTemp+="fn="+escape(fname)
			strTemp+="&ln="+escape(lname)
			strTemp+="&a1="+escape(addr1)
			strTemp+="&a2="+escape(addr2)
			strTemp+="&ci="+escape(city)
			strTemp+="&st="+escape(state)
			strTemp+="&zi="+escape(zip)
			strTemp+="&em="+email
			strTemp+="&ti="+escape(title)
		}
	}

	return strTemp
}

//This function is called on an unload event and 
//if the rememberme cookie is set to 2, it deletes all of the cookies
function checkRemember(){
	if(getNameVal("PCHRememberMe", "remember")=="2"){
		DeleteCookie("PCH", "/")
		DeleteCookie("PCHEntryDate", "/")
		DeleteCookie("PCHBonusPrize", "/")
		DeleteCookie("PCHQuestions", "/")
	}
}

// get the browser, version, OS 
function clientInfo(){
	// properties: browser, version, ostype
	// use as follows:
	//		var oTest = new clientinfo()
	//		var nVersion = oTest.version

	if(navigator.appName==""){
		this.browser="Unknown Browser"
	}else{
		this.browser=navigator.appName
	}

	this.ostype="unknown platform"

	var isN6 = false
	var isBeta = false

	this.version=parseFloat(navigator.appVersion)

	if((Math.round(parseFloat(navigator.appVersion)*100))-(parseInt(navigator.appVersion)*100)==0){
		this.version=this.version+".0"
	}

	if(navigator.appName.substring(0, 9)=="Microsoft"){
		msiestart=(navigator.appVersion.indexOf('(')+1)
		msieend=navigator.appVersion.indexOf(')')
		msiestring=navigator.appVersion.substring(msiestart, msieend)
		msiearray=msiestring.split(";")
		this.ostype=msiearray[2]
		msieversion=msiearray[1].split(" ")
		this.version=msieversion[2]
		this.browser=navigator.appName
	}

	if(navigator.appName.substring(0, 8)=="Netscape"){
		if(navigator.userAgent.indexOf("Nav")>0){
			this.browser="Netscape Navigator"
		}else{
			this.browser="Netscape Communicator"
		}

		msiestart=(navigator.userAgent.indexOf('(')+1)
		msieend=navigator.userAgent.indexOf(')')
		msiestring=navigator.userAgent.substring(msiestart, msieend)
		msiearray=msiestring.split("; ")

		if(msiearray[2]){
			if(msiearray[0].toLowerCase()=="windows"){
				this.ostype=msiearray[2]
			}else{
				this.ostype=msiearray[0]+" "+msiearray[2]
			}
		}else{
			this.ostype=msiearray[0]
		}
	}

	if(navigator.userAgent.indexOf("Netscape6")>0){
		isN6=true
		this.browser="Netscape"
		Netscape6_start=(navigator.userAgent.indexOf("Netscape6")+10)
		Netscape6_end=navigator.userAgent.length
		this.version=navigator.userAgent.substring(Netscape6_start, Netscape6_end)
		msiestart=(navigator.userAgent.indexOf('(')+1)
		msieend=navigator.userAgent.indexOf(')')
		msiestring=navigator.userAgent.substring(msiestart, msieend)
		msiearray=msiestring.split("; ")

		if(this.version.indexOf("b")>0){
			preview=version.substring((version.indexOf("b")+1), version.length)
			shortver=version.substring(0, version.indexOf("b"))
			this.version=shortver+" Preview Release "+preview
			isBeta=true
		}
	}
}

function checkMaxEntry(){
	if(GetCookie("PCH")!=null){
		sDate=SERVER_DATE
		entryDateVal=getNameVal("PCHEntryDate", "DateEntered")

		if(entryDateVal!=false){
			if(sDate==entryDateVal){
				document.location.href='/errors/maxentry.aspx';

			//location.href = "/home.shtml";
			//openWin(nonsecureURL("/errors/maxentry.html"))
			}
		}
	}else{
		document.location.href=secureURL("/entry/newentry.aspx")
	}
}

function ClickHere(){
	document.location.href=secureURL('/entry/newentry.aspx');
}

function pchPrivacyPolicy(){
	document.location.href=nonsecureURL('/infocenter/privacypolicy.shtml')
}

function string_GetURLValue(string_name){
	var string_queryString = new String(document.location.search)

	if(string_queryString.charAt(0)=="?"){
		string_queryString=string_queryString.substring(1)
	}

	if(string_queryString.length==0)return "";

	array_nameValuePairs=string_queryString.split("&");

	for (int_counter=0; int_counter<array_nameValuePairs.length; int_counter++){
		if(array_nameValuePairs[int_counter].split("=")[0].toUpperCase()==string_name.toUpperCase()){
			return unescape(array_nameValuePairs[int_counter].split("=")[1])
		}
	}

	return "";
}
