/* =Load Functions
-----------------------------------------------------------------------------*/
var URL;
jQuery(document).ready(function(){
	URL = getURL();
	doNewWin();
	linkIcons();
	psutoClass();
	dropCap();
	glossery();
	rfpVal();
	// form ajax
	if($("body.form").length>0) ajaxForm();
	// add class to current page link in nav
	$("#navigation li a[href*='"+URL.file+"']").parent().addClass("curPage");
	$("#outer a").each(function(){
		if(!empty(URL.param) && $(this).attr("href").match(URL.param)) $(this).addClass("curPage");
		if(!empty(URL.anch) && $(this).attr("href").match(URL.anch)) $(this).addClass("curPage");
		if(empty(URL.param)){
			if($(this).is(".checkPage") && $(this).attr("href").match(URL.file)) $(this).addClass("curPage");
		}
	});
	navSystem();
});

function getURL(){
	var http = (("https:" == document.location.protocol) ? "https://" : "http://");
	var wloc = window.location+'';
	var locarr = wloc.split("/");
	var locLeng = locarr.length-1;
	var loc = '';
	for(var i=0; i<locLeng; i++){
		loc += locarr[i]+"/";
	}
	if(!empty(locarr[locLeng])){
		var l = locarr[locLeng];
		var lArr = l.split("?");
		var param = (lArr[1]) ? lArr[1].split("#")[0] : '';
		var anch = (l.split("#")[1]) ? l.split("#")[1] : '';
		l = lArr[0].split("#")[0];
		var file = (empty(l)) ? 'index.php' : l;
	}else{ var file = 'index.php'; }
	return {
		cur:	http+loc.split("://")[1],
		domain:	document.domain,
		base:	http+document.domain+"/",
		file:	file,
		param:	param,
		anch:	anch
	}
}


/* =Navigation System
    (dont mess with this its "tricky")
-----------------------------------------------------------------------------*/
function navSystem(){
	if(!document.getElementById) return false;
	if(!document.getElementsByTagName) return false;
	var navRoot = document.getElementById("navigation");
	var navlis = navRoot.getElementsByTagName("li");
	var currenturl = window.location.href;
	// go through all li's
	for (i=0; i<navlis.length; i++) {
		var li = navlis[i];
		var links = li.getElementsByTagName("a");
		// go through all links
		for(j=0; j<links.length; j++){
			var linkurl = links[j].getAttribute("href");
			// current url
			if (currenturl.indexOf(linkurl) != -1) {
				li.className = "on cp";
			}
		}
	}
	for (z=0; z<navlis.length; z++) {
		var liSet2 = navlis[z];
		if(!liSet2.className.match("cp")){
			liSet2.onmouseover=function(){
				this.className="on";
				var navlis2 = navRoot.getElementsByTagName("li");
				if(!this.parentNode.parentNode.className.match("cp")){
					for(x=0; x<navlis2.length; x++) {
						var li2 = navlis[x];
						var links2 = li2.getElementsByTagName("a");
						for(y=0; y<links2.length; y++){
							var linkurl2 = links2[y].getAttribute("href");
							if (currenturl.indexOf(linkurl2) != -1) {
								li2.className = "cp";
							}
						}
					}
				}
			}
			liSet2.onmouseout=function(){
				this.className="";
				var navlis3 = navRoot.getElementsByTagName("li");
				for(w=0; w<navlis3.length; w++) {
					var li3 = navlis[w];
					var links3 = li3.getElementsByTagName("a");
					for(v=0; v<links3.length; v++){
						var linkurl3 = links3[v].getAttribute("href");
						if (currenturl.indexOf(linkurl3) != -1) {
							li3.className = "on cp";
						}
					}
				}
			}
		}
	}
}

/* rfp contact Validation */
function rfpVal(){
	$("select.contactMeth").change(function(){
		var selected = $(this).val();
		$("input.subChecker")
			.each(function(){
				var isEmail = ($(this).attr("name").match("ValM")) ? '^ValM' : '';
				$(this).attr("name",$(this).attr("name").split("^")[0]);
				if($(this).attr("name") == selected){
					$(this).attr("name",selected+"^R");
				}
				if(isEmail !== ''){$(this).attr("name",$(this).attr("name")+isEmail)}
			});
	});
	$("select.contactMeth").change();
}

/* =Add DropCap
-----------------------------------------------------------------------------*/
function dropCap(){
	if($("body.drop").length>0){
		var dropOn = stringVar($("body").attr("class"),"dropOn");
		var parNum = empty(dropOn) ? 0 : dropOn;
		var fp = $('#main').find('p')[parNum];
		if (!fp ) return false;
		var node = fp ;
		while (node.childNodes.length){node = node.firstChild;}
		var text = node.nodeValue;
		var fl = text.substr(0,1);
		var match = /[a-zA-Z]/.test(fl);
		if ( match ) {
			node.nodeValue = text.slice(1);
			$('<span class="dropCap">'+fl+'</span>').prependTo(fp);
		}
	}
}



/* glossery */
function glossery(){
	var linkroot = $("ul#alphaLinks");
	if(linkroot.length<1) return false;
	$(".letterGroup").hide();
	var loc = window.location+'';
	loc = loc.split("#")[1];
	if(loc !== undefined){
		$('#'+loc).show();
	}else{
		$(".letterGroup:first").show();	
	}
	linkroot.find("a").click(function(){
		var href = $(this).attr("href");
		$(".letterGroup").hide();
		$(href).show();
		this.blur();
		return false;
	});
	
};


/* =Add class "hover to all li's and buttons and add focus class
-----------------------------------------------------------------------------*/
function psutoClass(){
	$("li, button").hover(function(){$(this).addClass("hover")},function(){$(this).removeClass("hover")});
	$("input, textarea, select")
		.focus(function(){$(this).addClass("focus");})
		.blur(function(){$(this).removeClass("focus")});
}

/* Pull a Variable wraped in "[]" from a string. 
 * EG: 
 * 		var string = "this is a string with a variable[value] wraped in brackets".
 * 		var variable = stringVar(string,'variable');
 * 		// variable == 'value';
 *
 * Works Well with Class Names
 *---------------------------------------------------------------------------*/
function stringVar(string,Var){
	var $return = ''; var findIndex = string.indexOf(Var+"[");
	if(findIndex>=0){
		var nameLeng = Var.length; var maxleng = string.length; var i = findIndex += nameLeng+1; var par = isok = true;
		while(par){var char = string.charAt(i);if(char === "]"){par = false;}else if(i>maxleng){isok = false; par = false;}i++;}
		if(isok){$return = string.substring(findIndex,i-1);}
	}
	return $return;
}

/* =Ajax Form & Interface
-----------------------------------------------------------------------------*/
function ajaxForm(){
	var $form = $("form:first");
	if(!$form.length>0) return false;
	var formID = $form.attr("id");
	var $formID = '#'+formID;
	var formClass = $form.attr("class");
	var sendto = stringVar(formClass,'sendto');
	sendto = (sendto == 'sendForm') ? 'includes/'+sendto : sendto;
	var options = {
		url:			sendto+'.php?ajax=true',
		target: 		'#formCanvas',
		beforeSubmit: 	function(formData, jqForm, options){ validateForm(formData, jqForm, options); },
		success: 		function(){ 
			$("label.error:first").children("input:first, textarea:first, select:first, radio:first, checkbox:first").focus();
			$.getScript(URL['cur']+"/js/behavior.js");
		}
	};
	$($formID).ajaxForm(options);
	UserFriendlyForm($formID);
	
}
function validateForm(formData, jqForm, options){
	var queryString = $.param(formData);
	//alert('About to submit: \n\n' + queryString);
	return true;
}
function UserFriendlyForm($formID){
	var $form = $($formID);
	// payment type
	var $payment = $form.find("select[name*=Payment_Method]");
	var payVal = $payment.val();
	paymentFN(payVal);
	if(payVal != undefined){
		paymentFN(payVal);
		// add on change event to pulldown
		$payment.change(function(){
			var payVal = $(this).val();
			paymentFN(payVal);
		});
	}
	$("form").find("button").click(function(){
		var b = $(this);
		var bwidth = b.width();
		var bhtml = b.html();
		b.after("<span class='loading' style='display:block; width:"+bwidth+"px;'>"+bhtml+"</span>");
		b.parent().children("button").hide();
		return true;
	});
}
function paymentFN(payVal){
	if(
	   payVal == 'Visa' ||
	   payVal == 'MasterCard' ||
	   payVal == 'Discover'
	   ){$("#creditInfo").show("fast");}
	else{$("#creditInfo").hide("fast");}
	if(payVal == 'check'){$("#checkInfo").show("fast");}
	else{$("#checkInfo").hide("fast");}
}
/* =Open a new window
-----------------------------------------------------------------------------*/
function doNewWin() {
	$("#main a[href^='http://']").addClass("newWin");
	$("#main a[href*='"+URL.domain+"']").removeClass("newWin");
	$("a.newWin").each(function(){
		var x = $(this);
		var linkTitle = "(This link opens a new window)";
		var newTitle = (empty(x.attr("title"))) ? linkTitle : x.attr("title")+" "+linkTitle;
		x.attr("title", newTitle);
		x.removeClass("newWin").addClass("ext");
		x.click(function(){window.open(x.attr("href"));return false;});
	});
}
function linkIcons(){
	$("#outer a[href$='.pdf']").each(function(){
		var x = $(this);
		var linkTitle = "(Download PDF)";
		var newTitle = (empty(x.attr("title"))) ? linkTitle : x.attr("title")+" "+linkTitle;
		x.addClass("pdf").attr("title", newTitle);
	});
	// new window icon in doNewWin()
}

/* =Helper Functions
-----------------------------------------------------------------------------*/
function empty(x){	return ((x == '' || x == null) ? true : false);}






