/******************************************************************************
 **                  MEDIAGISTIC FUNCTIONS JS v2.4.091125                    **
 **     Standard LP Version.  ©2009 Mediagistic.  All rights reserved.       **
 **                   http://www.mediagisticpageone.com                      **
 *****************************************************************************/

//Begin Querystring Functions, these functions will parse a querystring to look for values

var state = 'none'; 
function revealDiv(a){
	var relativeCopy = new Array;		
	relativeCopy[0] = 'emergencyservice'
	relativeCopy[1] = 'acunits'
	relativeCopy[2] = 'boilers'
	relativeCopy[3] = 'ductandventcleaning'
	relativeCopy[4] = 'ducttesting'
	relativeCopy[5] = 'furnaces'
	relativeCopy[6] = 'generators'
	relativeCopy[7] = 'geothermal'
	relativeCopy[8] = 'heatpumps'
	relativeCopy[9] = 'humidifiers'
	relativeCopy[10] = 'iaq'
	relativeCopy[11] = 'partsandreplacement'
	relativeCopy[12] = 'preventativemaintenance'
	relativeCopy[13] = 'retrofitting'
	relativeCopy[14] = 'serviceplans'
	relativeCopy[15] = 'humidifiers'
	relativeCopy[16] = 'splitunits'
	relativeCopy[17] = 'thermostats'
	for (i=0;i<=relativeCopy.length;i++)
		{
		if (a == relativeCopy[i]){
			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; 
	}
// End Querystring Functions

//Begin Dynamic Text Functions
function QueryDataCheck(){
	var args = getArgs(); 
	
	// if a = somthing test
	if (args.a){
		 a = args.a; 
		 document.getElementById("adGroup").value = a;
		 document.getElementById("adGroup2").value = a;
		 revealDiv(a);
	 }
		else {
	 a = '';
	 }
	 
	 //if confirmation has a value
	 if (args.confirmation){
		 confirmation = args.confirmation;
		 confirmation = confirmation.replace(/__n__/g,'\n'); //convert new line QS workaround

		 alert(confirmation);
	 }	 
 }

function showhide(layer_ref) { 
	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

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

//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;
}

function formSubmit(){
		 document.getElementById("adGroup").value = a;
		 document.getElementById("adGroup2").value = a;
	}
	
//End Pop over form functions

//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';
		}
		
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
	  	if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
	  		document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
	  	else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
		}
		
		MM_reloadPage(true);
//End Positioning functions

//Begin Form Validation & Submission
function MG_joinFields(a,b,num) {
	var updateField = "LeadCity";
	a = document.getElementById(a).value;
	b = document.getElementById(b).value;
	addAndCity = a + ", " + b;
	if (num == "2") {
		updateField = updateField + "2";
	}
	document.getElementById(updateField).value = addAndCity;
}

function MM_validateForm() {
  if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
      if (val) { nm=val.name; if ((val=val.value)!="") {
        if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
        } else if (test!='R') { num = parseFloat(val);
          if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
          if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
      } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
    } 
	
	errors = errors.replace(/2/g,'');
	//See if a phone or email isn't in the error report then Delete the other one.
		if (errors.search(/Phone/g) == -1)  { //if phone is
				errors = errors.replace(/- LeadEmail is required.\n/g,'');
			}
		if (errors.search(/Email/g) == -1)  {
				errors = errors.replace(/- LeadPhone is required.\n/g,'');
			}

		if (errors.search(/Lead/g) == -1)  {
				errors='';
			}
		
	if (errors){
		var alerttext = '';
		alerttext = errors.replace(/Lead/g,' ');	
			
		alert('Please fill in the form completely:\n'+alerttext);
	}
    document.MM_returnValue = (errors == '');
}}

//Dynamic Form Population.
function lpConfig() {
	document.getElementById("ExternalEmail").value = formExtEmail;
	document.getElementById("ExternalEmail2").value = formExtEmail;
	document.getElementById("InternalEmail").value = formIntEmail;
	document.getElementById("InternalEmail2").value = formIntEmail;
	document.getElementById("ReturnPage").value = formReturnPage;
	document.getElementById("ReturnPage2").value = formReturnPage2;
	document.getElementById("LeadCampaign").value = formLeadCampaign;
	document.getElementById("LeadCampaign2").value = formLeadCampaign;
	document.getElementById("AccountNumber").value = formAcctNumber;
	document.getElementById("AccountNumber2").value = formAcctNumber;
	makeDatePullDown();
}


//Date dropdown stuff
function makeDatePullDown() { 
	var i=1;
	while (i<=14)
	{
	document.getElementById("LeadRequestedDate2").options[i-1].text = getDateText(i);
	document.getElementById("LeadRequestedDate2").options[i-1].value = getDateValue(i);
    i++;
	}
	finishInaBit();
  }


function finishInaBit(){
	var t=setTimeout("removeDaysClosed()",200);
}

function removeDaysClosed() {
	// need to determine if closed on weekends, and take them out of the scheduler if needed
	var i=0;
	var tgtList = document.getElementById("LeadRequestedDate2");
	var tagForRemoval = new Array("no","no","no","no","no","no","no","no","no","no","no","no","no","no");

	while (i<=13) {
		var optionIndex = tgtList.options[i];
		var optText  = optionIndex.text;
		var optValue = optionIndex.value;
		if (formOpenSat == "no" && tagForRemoval[i] != "yes") {
			if (optText.search(/Saturday/) != -1) {
				tagForRemoval[i] = "yes";
			} else {
				tagForRemoval[i] = "no";
			}
		}
		if (formOpenSun == "no" && 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 getDateText(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; // fix for firefox
	}
	tempDateStr = getDayofWeek(tempdayofWeek) + ', ' + getMonthofYear(tempmonth) + ' ' + tempdayofMonth + ', ' + tempyear;
	return tempDateStr;
}

function getDateValue(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; //fix for firefox
	}

	tempDateStr = tempmonth + '/' + tempdayofMonth + '/' + tempyear;
	return tempDateStr;
}

function getDayofWeek(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 getMonthofYear(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
