/******************************************************************************
 **                  MEDIAGISTIC FUNCTIONS JS v4.0.1005b                     **
 **     Standard LP Version.  ©2010 Mediagistic.  All rights reserved.       **
 **                   http://www.mediagisticpageone.com                      **
 *****************************************************************************/

var state = 'none';
var mgConversionData = new MG_ConversionData();
var mgFormOptions = new MG_FormOptions();
var mgRelevantCopy = new MG_RelevantCopy();
var mgSchedulerOpen = 'nope';
var isRedirect = 'false';
var mgFormName = '';
var mgValidateAndGo = false;
var mgLoadTimer = 0;
var mgConfigCt = 0;
var mgQyDataCt = 0

mgGo();

function revealDiv(a){
	for (i=0;i<=mgRelevantCopy.content.length;i++){
		if (a == mgRelevantCopy.content[i]){
			MG_showHide(a);
		}
	}
}

function Querystring(qs) { // optionally pass a querystring to parse
	this.params = new Object();
	this.get=Querystring_get;

	if (qs == null)
		qs=location.search.substring(1,location.search.length);

	if (qs.length == 0) return;

// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ');

	var args = qs.split('&'); // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i=0;i<args.length;i++) {
		var value;
		var pair = args[i].split('=');
		var name = unescape(pair[0]);

		if (pair.length == 2)
			value = unescape(pair[1]);
		else
			value = name;
		
		this.params[name] = value;
	}
}

function Querystring_get(key, default_) {
	// This silly looking line changes UNDEFINED to NULL
	if (default_ == null) default_ = null;
	
	var value=this.params[key];
	if (value==null) value=default_;
	
	return value;
}

function getArgs() { 
	var args = new Object(); 
	var query = location.search.substring(1); 
	var pairs = query.split("&"); 
	for(var i = 0; i < pairs.length; i++) 
	{ 
		var pos = pairs[i].indexOf('='); 
		if (pos == -1) continue; 
		var argname = pairs[i].substring(0,pos); 
		var value = pairs[i].substring(pos+1); 
		args[argname] = unescape(value); 
	} 
	return args; 
}

function QueryDataCheck(){
	var args = getArgs(); 
	if (args.a){
		a = args.a; 
		document.getElementById("adGroup").value = a;
		revealDiv(a);
	} else {
		a = '';
	}

	if (args.confirmation){
		isRedirect = 'true';
		confirmation = args.confirmation;
		confirmation = confirmation.replace(/__n__/g,'\n'); //convert new line QS workaround
		alert(confirmation);
	}
	mgQyDataCt++;
}

function mgGo() {
	var t;
	mgLoadTimer++;
	if (document.getElementById('mg-sched')) {
		mgSetup();
	} else {
		if (mgLoadTimer <= 12) {
			t=setTimeout("mgGo()",200);
		} else {
			alert("Either the page is not responding, or your browser is outdated. \nPlease reload the page and try again. \nIf the problem persists, consider upgrading your browser.");
		}
	}
}

function mgSetup() {
	QueryDataCheck();
	lpConfig();
	mgCheckSetup();
}

function mgCheckSetup() {
	var i,f,u,hp=false,chkRC,chkFO,chkCI,errors='';
	// check dynamic text divs against their names as should be declared in lpconfig
	u = window.location.href;
	if (u.search(/index.htm/)!=-1) {
		hp=true;
	}
/*	if (mgRelevantCopy) {
		if (mgRelevantCopy.content.length > 0 && hp==true) {
			for (i=0;i<mgRelevantCopy.content.length;i++){
				if (document.getElementById(mgRelevantCopy.content[i]) && chkRC != 'fail') {
					chkRC = 'ok';
				}
				if (chkRC != 'ok') {
					errors += ' - Relevant Copy: ' + mgRelevantCopy.content[i] + '.\n';
				}
			}
		}
	}*/
	if (mgConfigCt < 1 || mgQyDataCt < 1) {
		errors += ' - Outdated OnLoad calls detected.\n';
	}
	// check Form Options
	
	// check conversion info
	// remove action qs and add via javascript.  then check to see if the semid string exists in form.action
	f = document.forms['mg-sched-form'].action;
	if (f.search(/semid/)) {
		chkCI = 'ok';
	} else {
		errors += ' - Remove Querystring argument from form action.\n';
	}
	
	if (errors != '') {
		alert('Please correct the following discrepancies before launch:\n' + errors);
	}
}

function MG_GetWinSize(i) {
	if (i == "x") {
		if (window.innerWidth){
			return window.innerWidth;
		} else if (document.body.clientWidth){
			return document.body.clientWidth;
		} else {
			return window.innerWidth;
		}
	} else {
		if (window.innerHeight){
			return window.innerHeight;
		} else if (document.documentElement.clientHeight) {
			return document.documentElement.clientHeight;
		} else {
			return window.innerHeight;
		}
	}
}

function MG_showHide(tgt) {
	if (document.getElementById(tgt).style.display == 'none') {
		document.getElementById(tgt).style.display = 'block';
	} else {
		document.getElementById(tgt).style.display = 'none';
	}
}

function MG_formShowHide(targetDiv,indChk) {
	var x,y,z,x_status,x_dt;
	x = targetDiv;
	x_status = document.getElementById(x).style.display;
	x_dt = x + '-datetime';

	if (x_status != 'block') {
		document.getElementById(x).style.display = 'block';
	} else {
		if (mgFormOptions.isScheduler != true) {
			document.getElementById(x).style.display = 'none';
		}
	}
	
	if (mgFormOptions.isScheduler == true){
		if (document.getElementById(x_dt).style.display != 'block'){
			document.getElementById(x_dt).style.display = 'block';
		} else {
			document.getElementById(x_dt).style.display = 'none';
		}
	}
	
	y = targetDiv + '-ind';
	z = targetDiv + '-open';

	if (indChk) {
		if (document.getElementById(z).value=='false') {
			document.getElementById(z).value = 'true';
			document.getElementById(y).checked = true;
		} else {
			document.getElementById(z).value = 'false';
			document.getElementById(y).checked = false;
		}
	}
}

function MG_submitForm(theForm) {
	mgFormName = theForm;
	mgValidateAndGo = true;
}

function MG_joinFields(a,b,tgt) {
	a = document.getElementById(a).value;
	b = document.getElementById(b).value;
	addAndCity = a + ", " + b;
	document.getElementById(tgt).value = addAndCity;
}

function MG_validateForm() {
		MG_joinFields('LeadStreet','LeadCity_f','LeadCity');
		var i,y,t,v,q,gc=0,rg='',f=[],args=[],errors='';
		var re,re1,re2,re3,re4 = new RegExp();

		args = !MG_validateForm.arguments[1] ? MG_validateForm.arguments[0].split(",") : MG_validateForm.arguments;

		re1 = /[[]!!]/g;
		re2 = /[[]!\d]/g;
		re3 = /[[]@\d]/g;
		re4 = /[[]~\d]/g;
		
		i=0;
		while(i<args.length){
			f[i]=[];
			f[i][0]=args[i];
			f[i][1]=f[i][0].replace(/[[]!!]|[[]!\d]|[[]@\d]|[[]~\d]/gi,'');
			if (f[i][0].search(re1) != -1) {
				f[i][2]=true;
				if (document.getElementById(f[i][1]).value == ''){
					errors += ' - ' + f[i][1] + " is required.\n";
				}
			} else {
				f[i][2]=false;
			}
			if (f[i][0].search(re2) != -1) {
				for (y=1; y<=9; y++){
					re=new RegExp("[[]!"+y+"]","g");
					if (f[i][0].search(re) != -1) {
						f[i][3]=y;
					} 
				}
			} else {
				f[i][3] = 0;
			}
			if (f[i][0].search(re3) != -1) {
				for (y=1; y<=9; y++) {
					re=new RegExp("[[]@"+y+"]","g");
					if (f[i][0].search(re) != -1) {
						f[i][4]=y;
					}
				}
			} else {
				f[i][4] = 0;
			}
			if (f[i][0].search(re4) != -1) {
				for (y=1; y<=9; y++) {
					re=new RegExp("[[]~"+y+"]","g");
					if (f[i][0].search(re) != -1) {
						f[i][5]=y;
					}
				}
			} else {
				f[i][5] = 0;
			}

		i++;
		}

		i=0;
		while (i<f.length) {
			if (f[i][4]!=0){
				if (document.getElementById(f[i][1]).value=="true") {
					v=f[i][4];
					for(y=0;y<f.length;y++){
						if ((f[y][5]==v) && (document.getElementById(f[y][1]).value=='')){
							errors += ' - ' + f[y][1] + ' is required.\n';
						}
					}
				}
			}
			i++;
		}
		for (i=0;i<f.length;i++){
			t=new Array();
			if (f[i][3]!=0) {
				re=new RegExp(f[i][3]);
				if (rg.search(re) == -1) {
					v=f[i][3];
					rg=rg+= ', '+v;
					for(y=0;y<f.length;y++){
						if (f[y][3]==v) {
							t[y]=f[y][1];
						} else {
							t[y]='nothing';
						}
					}
					eg='';
					for(y=0;y<t.length;y++){
						re=new RegExp(t[y],"gim");
						if(((t[y]!='nothing')&&(document.getElementById(f[y][1]).value!=''))||((t[y]!='nothing')&&(errors.search(re) != -1))) {
							eg='ok';
							gc--;
						}
					}
					if (eg!='ok') {
						errors += ' - One of the following: ';
						for (y=0;y<t.length;y++){
							if (t[y]!='nothing'){
								errors += t[y] + ', ';
							}
						}
						errors += 'is required.\n';
					}
				}
			}
		}

		// at the end, check for syntax:		
		if (errors.search(/Email/gim) == -1) {
			// perform email syntax check
			i=0
			while (i<f.length) {
				if (f[i][1].search(/Email/gi) != -1 && document.getElementById(f[i][1]).value != ''){
					if (document.getElementById(f[i][1]).value.search(/[@]/g) == -1) {
						errors += ' - The email address entered appears to be invalid. Please check spelling and try again.\n';
					}
				}
				i++
			}
		}
		if (errors.search(/Phone/gim) == -1) {
			// phone number syntax check
			i=0
			while (i<f.length) {
				if (f[i][1].search(/Phone/gi) != -1){
					if (document.getElementById(f[i][1]).value != '') {
						if (document.getElementById(f[i][1]).value.search(/[0-9]{3}-[0-9]{3}-[0-9]{4}/g) == -1) {
							errors += ' - The phone number you entered appears to be incorrect.  Please use the format: \"999-999-9999\".\n';
						}
					}
				}
				i++
			}
		}
		errors = errors.replace(/Lead/gm,'');
		if (errors != '') {
			var alertmsg = 'Please correct the following errors:\n'+errors;
			alert(alertmsg);
			return false;
		} else {
			if (mgValidateAndGo == true) {
				document.forms[mgFormName].submit();
			}
			return true;
		}
}


function mgReportConversion() {
	if (mgConversionData.useCD != false) {
		tgtDiv = document.getElementById("mgConvBar");

		google_conversion_id = mgConversionData.gID;
		google_conversion_language = "en";
		google_conversion_format = "2";
		google_conversion_color = "ffffff";
		google_conversion_label = mgConversionData.gLabel;
		google_conversion_value = mgConversionData.gValue;

		window.ysm_customData = new Object();
		window.ysm_customData.conversion = "transId=,currency=,amount=";
		ysm_accountid = mgConversionData.yID;

		microsoft_adcenterconversion_domainid = 587765;
		microsoft_adcenterconversion_cp = 5050;
		microsoft_adcenterconversionparams = new Array();
		microsoft_adcenterconversionparams[0] = "dedup=1";

		var strWrite = "";
		//strWrite = strWrite + "<scr" + "ipt type='text/javascript' " + "src=http://" + "www.googleadservices.com/pagead/conversion.js" + "></scr" + "ipt>";
		strWrite = strWrite + "<img height='100' width='100' style='border-style:none;' alt='' src='http://www.googleadservices.com/pagead/conversion/" + google_conversion_id + "/?label=" + google_conversion_label + "&amp;guid=ON&amp;script=" + google_conversion_value + "'/>";
		strWrite = strWrite + "<SCR" + "IPT language='JavaScript' type='text/javascript' " + "SRC=//" + "srv1.wa.marketingsolutions.yahoo.com" + "/script/ScriptServlet" + "?aid=" + ysm_accountid + "></SCR" + "IPT>";
		//strWrite = strWrite + "<SCR" + "IPT SRC=http://" + "0.r.msn.com/scr" + "ipts/microsoft_adcenterconversion.js" + "></SCR" + "IPT>";
		strWrite = strWrite + "<IMG width='1' height='1' SRC='http://587765.r.msn.com/?type=1&cp=1&dedup=1'/>";
		tgtDiv.innerHTML = strWrite;
	}
}

function lpConfig() {
	var actionQS = document.forms['mg-sched-form'].action;
	actionQS += '?semid=' + formAcctNumber;
	document.getElementById("mg-sched-options-open").value = "false";
	document.forms['mg-sched-form'].action = actionQS;
	document.getElementById("ExternalEmail").value = formExtEmail;
	document.getElementById("InternalEmail").value = formIntEmail;
	document.getElementById("ReturnPage").value = formReturnPage;
	document.getElementById("LeadCampaign").value = formLeadCampaign;
	document.getElementById("AccountNumber").value = formAcctNumber;
	mgMakeDatePullDown();
	if (mgFormOptions.isScheduler == true) {
		MG_formShowHide('mg-sched-options','chk');
	}
	if (isRedirect == 'true') {
		mgReportConversion();
	}
	mgConfigCt++;
}

function mgShowOverlay(tgt,hdMsg,cbMsg){
	var divOlBox = tgt + '-box';
	var divTitle = tgt + '-header';
	var divCBody = tgt + '-cbody';
	var tgtTopNow = document.getElementById(divOlBox).style.height;
	tgtTopNow = tgtTopNow.replace("px",'');
	hdMsg += '<div style=\"float:right;margin-right:5px;cursor:pointer;font-size:11px;line-height:15px\" onclick=\"MG_showHide(\''+tgt+'\');\">close</div>';
	var tgtTop = (MG_GetWinSize("y")/2)-(tgtTopNow/2);
	document.getElementById(divOlBox).style.top = tgtTop + 'px';
	document.getElementById(divTitle).innerHTML = hdMsg;
	var cbMsg = cbMsg.replace(/ - /gm," &bull;");
	cbMsg = cbMsg.replace(/\n/gm,"<br/>");
	var closeBtn = '<div align=\"center\"><div style=\"margin-left:auto;margin-right:auto;margin-top:10px;\"><input type=\"button"\ id=\"mg-alert-close\" value=\" OK \" onclick=\"MG_showHide(\''+tgt+'\');\" /></div>';
	document.getElementById(divCBody).innerHTML = cbMsg + closeBtn;
	MG_showHide(tgt);
}

function mgMakeDatePullDown() { 
	var i=1;
	while (i<=14)
	{
	document.getElementById("LeadRequestedDate").options[i].text = mgGetDateText(i);
	document.getElementById("LeadRequestedDate").options[i].value = mgGetDateValue(i);
    i++;
	}
	var t=setTimeout("mgRemoveDaysClosed()",200);
}

function mgRemoveDaysClosed() {
	var i=1;
	var tgtList = document.getElementById("LeadRequestedDate");
	var tagForRemoval = new Array("no","no","no","no","no","no","no","no","no","no","no","no","no","no");

	while (i<=14) {
		var optionIndex = tgtList.options[i];
		var optText  = optionIndex.text;
		var optValue = optionIndex.value;
		if (mgFormOptions.showSaturday == false && tagForRemoval[i] != "yes") {
			if (optText.search(/Saturday/) != -1) {
				tagForRemoval[i] = "yes";
			} else {
				tagForRemoval[i] = "no";
			}
		}
		if (mgFormOptions.showSunday == false && tagForRemoval[i] != "yes") {
			if (optText.search(/Sunday/) != -1) {
				tagForRemoval[i] = "yes";
			} else {
				tagForRemoval[i] = "no";
			}
		}
		i++;
	}
	i=13;
	while (i>=0) {
		if (tagForRemoval[i] == "yes") {
			tgtList.remove(i);
		}
		i=i-1;
	}
	//now cleanup and set a default selection...
	//tgtList.options[1].selected = true;
}

function mgGetDateText(i){
	var myDate=new Date();
	var tempDateStr = ""
    myDate.setDate(myDate.getDate()+ i);
	var tempdayofMonth = myDate.getDate();
	var tempdayofWeek = myDate.getDay();
    var tempmonth =  myDate.getMonth() + 1;
	var tempyear = myDate.getYear();
	if (tempyear < 2000) {
		tempyear = tempyear + 1900;
	}
	tempDateStr = mgGetDayofWeek(tempdayofWeek) + ', ' + mgGetMonthofYear(tempmonth) + ' ' + tempdayofMonth + ', ' + tempyear;
	return tempDateStr;
}

function mgGetDateValue(i){
	var myDate=new Date();
	var tempDateStr = ""
    myDate.setDate(myDate.getDate()+ i);
	var tempdayofMonth = myDate.getDate();
    var tempmonth =  myDate.getMonth() + 1;
	var tempyear = myDate.getYear();
	if (tempyear < 2000) {
		tempyear = tempyear + 1900;
	}

	tempDateStr = tempmonth + '/' + tempdayofMonth + '/' + tempyear;
	return tempDateStr;
}

function mgGetDayofWeek(tempdayofWeek){
	  switch (tempdayofWeek) 
		{ 
		   case 0 : 
			  return 'Sunday'; 
		   case 1 : 
			  return 'Monday'; 
		   case 2 : 
			  return 'Tuesday'; 
		   case 3 : 
			  return 'Wednesday'; 
		   case 4 : 
			  return 'Thursday'; 
		   case 5 : 
			  return 'Friday'; 
		   default : 
			  return 'Saturday'
		} 
}

function mgGetMonthofYear(tempmonth){
	  switch (tempmonth) 
		{ 
		   case 1 : 
			  return 'January'; 
		   case 2 : 
			  return 'February'; 
		   case 3 : 
			  return 'March'; 
		   case 4 : 
			  return 'April'; 
		   case 5 : 
			  return 'May'; 
		   case 6 : 
			  return 'June'; 
           case 7 : 
			  return 'July'; 
		   case 8 : 
			  return 'August'; 
		   case 9 : 
			  return 'September'; 
		   case 10 : 
			  return 'October'; 
		   case 11 : 
			  return 'November'; 
		   default : 
			  return 'December'; 
		} 
}
// END

/* begin depreciated functions */
function showhide(layer_ref) { //***depreciated***
	if (state == 'block') { 
		state = 'none'; 
	}
	else { 
		state = 'block';
	}

	if (document.all) { //IS IE 4 or 5 (or 6 beta)
		eval( "document.all." + layer_ref + ".style.display = state");
	}
	if (document.layers) { //IS NETSCAPE 4 or below
		document.layers[layer_ref].display = state;
	}
	if (document.getElementById &&!document.all) {
		hza = document.getElementById(layer_ref);
		hza.style.display = state;
	}
}
//End Dynamic text functions

//Pop over form functions
function showForm(formName) {
	positionDivs();
	oDiv = document.getElementById(formName);
	oDiv.style.display='block';
	return false;
}

function hideForm(formName) {
	oDiv = document.getElementById(formName);
	oDiv.style.display='none';
	return false;
}	

//Positioning Functions
function floatingDiv(elementName, defaultCenter, defaultLeft, offsetLeft, defaultTop, offsetTop) {
	if (navigator.appName.indexOf("Microsoft")!=-1) { 
		defaultCenter = document.body.clientWidth / 2; 
	} else { 
		defaultCenter = window.innerWidth / 2;
	}
	defaultCenter = Math.round(defaultCenter * 1);
			
	if (defaultCenter > 500){
		defaultLeft = (defaultCenter * 1) + offsetLeft;
	}
	document.getElementById(elementName).style.top = defaultTop + 'px';
	document.getElementById(elementName).style.left = defaultLeft + 'px';
}
//End Positioning functions

/* /END DEPRECIATED FUNCTIONS */

