addLoadEvent(validateForms);

var $j = jQuery.noConflict();
     
     // Use jQuery via $j(...)
$j(document).ready(function() {
 // shows the slickbox on clicking the noted link
  $j('a#slide-down').click(function() {
	$j('#slickbox').show('slow');
	return false;
  });
 // hides the slickbox on clicking the noted link
  $j('a#slide-up').click(function() {
	$j('#slickbox').hide('fast');
	return false;
  });
 // toggles the slickbox on clicking the noted link
  $j('a#slick-slidetoggle').click(function() {
	$j('#slickbox').slideToggle(400);
	return false;
  });
		
		
 // toggles the slickbox on clicking the noted link
  $j('a#info-toggle').click(function() {
	$j('#info').toggle();
	return false;
  });		  
		
		 // toggles the slickbox on clicking the noted link
  $j('a#why-toggle').click(function() {
	$j('#why').toggle();
	return false;
  });		  

});



function addTableStripes() {

	tables = document.getElementsByTagName('table');

	for (i=0; i<tables.length; i++) {
		if (tables[i].className == 'banner_container') {
			rows = tables[i].getElementsByTagName('tr');
			for (j=0; j<rows.length; j++) {
				if (j%2 == 0) {
					rows[j].className = rows[j].className + " pricegrid-even";
				}
			}
		}
	}

}

function disableBannerLinks() {
	a = getElementsByClassName('banner_provider_link');
	for (i=0; i<a.length; i++) {
		a[i].onclick = function() { return false }
	}
}


function showLightBox(providerID) {	
	if (!providerID) 
		providerID = "";
	$e('providerID2').value = providerID;
		
	setLightBox('lightbox');
}

function showLoginLightBox(scpId,packageID,packageName) {

	if (!scpId) { scpId = "" }
	if (!packageID) { packageID = "" }
	packageName = (!packageName) ? "This Plan" : packageName;		
		
	$e('scpId2').value = scpId;
	$e('packageID2').value = packageID;
	$e('login-lightbox-title').innerHTML = "Enter Your Address to Get Details on<br />" + simpleURLDecode(packageName);

	
	setLightBox('login-lightbox');
}


function setLightBox(lid) {
	$s(lid).display='block';
	$s('fade').display='block';
	positionLightBox(lid);
	positionFade();
}

function positionLightBox() {
	var yScroll;
	var top;
	
	// detect if IE6 or earlier, if so we have to use javascript to replicate the CSS property - position:fixed;
	if (window.ie6) {
		$s('lightbox').position = 'absolute';
		$s('lightbox').top = (window.getScrollTop() + 180) + 'px';
	}	
}

function positionFade() {

	var x,y,x1,y1,x2,y2;
	
	// get body dimensions
	var test1 = document.body.scrollHeight;
	var test2 = document.body.offsetHeight
	if (test1 > test2) // all but Explorer Mac
	{
		x1 = document.body.scrollWidth;
		y1 = document.body.scrollHeight;
	}
	else // Explorer Mac;
	     //would also work in Explorer 6 Strict, Mozilla and Safari
	{
		x1 = document.body.offsetWidth;
		y1 = document.body.offsetHeight;
	}
	
	// get window dimensions
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		x2 = window.innerWidth;
		y2 = window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		x2 = document.documentElement.clientWidth;
		y2 = document.documentElement.clientHeight;
	} 

	// whichever is larger (body or window dimensions), use that value to set width + height of black overlay
	x = (x1 > x2) ? x1 : x2;
	y = (y1 > y2) ? y1 : y2;
	
	w = x + "px";
	h = y + "px";
	
	$s('fade').width = w;
	$s('fade').height = h;
}

function hideLightBox(lid) {
	$s(lid).display='none';
	$s('fade').display='none';
}

function setupOrderLinks() {	
	links = getElementsByClassName('banner_order_link');
	
	for (i=0; i<links.length; i++) {
		linkVars = new Array();


		links[i].onclick = function() {
			url = this.href;
			linkVars = getLinkVars(url);
			showLoginLightBox(linkVars['scpId'],linkVars['packageID'],linkVars['packageName']);
			return false;
		}
	}

}

function getLinkVars(url) {
	vars = new Array();
	lv = new Array();
	
	vars = url.replace(/^[^\?]*\?/,'');
	vars = vars.split(/&/g);
	for (a=0; a<vars.length; a++) {
		k = vars[a].match(/^[^=]*/);
		v = vars[a].match(/[^=]*$/);
		lv[k] = v;
	}
	return lv;
	
}

function simpleURLDecode(url) {
	url = unescape(url);
	url = url.replace(/\+/g,' ');
	return url;
}


function toggleLBContent(id) {
	// check to see if the target div is being displayed.  if so don't show it again.
	var showThis = 1;
	if ($s(id).display == "block") { showThis = 0 }
	hide('lightbox-why');
	hide('lightbox-info');
	if (showThis == 1) { show(id) }
}

function validateZip(myForm,id) {
	zip = $e(id).value;
	if (!zip.match(/^[0-9]{5}$/)) {
		alert("Please enter a 5 digit zip code.");
		return false;
	}
}

function validateForms() {
	forms = getElementsByClassName('form-validate', 'FORM');
	for (i=0; i<forms.length; i++) {
		forms[i].onsubmit = function() {
			msg = "";
			rInputs = this.getElementsByTagName('INPUT');
			for (j=0; j<rInputs.length; j++) {
				// check that all 'required' fields have a value
				if ((/(^|\s)required(\s|$)/.test(rInputs[j].className)) && (rInputs[j].value == "")) 
					msg = "Please check all of the fields before submitting."
				// check that 'required-zip' fields have 5 digit number
				if ((/(^|\s)required-zip(\s|$)/.test(rInputs[j].className)) && !(/^[0-9]{5}$/.test(rInputs[j].value)))  
					msg = "Please enter a 5 digit zip code.";
				if (msg != "") {
					alert(msg);
					return false;				
				}		
			}
		}
	}
}

function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\\\s)" + className + "(\\\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}




function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

function show(id) {
	$s(id).display = "block";
}

function hide(id) {
	$s(id).display = "none";
}

function $s(id) {
	return document.getElementById(id).style;
}

function $e(id) {
	return document.getElementById(id);
}
