/* =Load Functions
-----------------------------------------------------------------------------*/
var URL;
jQuery(document).ready(function(){
	URL = getURL();
	doNewWin();
	linkIcons();
	psutoClass();
	// form ajax
	if($("body.form").length>0) ajaxForm();
	// add class to current page link in nav
	$("#nav li a[href^='"+URL.file+"']").parent().addClass("curPage");
});


/* =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");
		if(x.children("img:first").length>0) x.addClass("isImg");
		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);
		x.click(function(){window.open(x.attr("href"));return false;});
	});
	// new window icon in doNewWin()
};


/* =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");}
};
/* =Helper Functions
-----------------------------------------------------------------------------*/
function empty(a){var b;if(a===""||a===0||a==="0"||a===null||a===false||a===undefined){return true}if(typeof a=='object'){for(b in a){if(typeof a[b]!=='function'){return false}}return true}return false};
function isset(){var a=arguments;var l=a.length;var i=0;if(l==0){throw new Error('Empty isset');}while(i!=l){if(typeof(a[i])=='undefined'||a[i]===null){return false}else{i++}}return true};
function in_array(a,b,c){var d=false,key,c=!!c;for(key in b){if((c&&b[key]===a)||(!c&&b[key]==a)){d=true;break}}return d};
function trim(a,b){var c,l=0,i=0;a+='';if(!b){c=" \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000"}else{b+='';c=b.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g,'\$1')}l=a.length;for(i=0;i<l;i++){if(c.indexOf(a.charAt(i))===-1){a=a.substring(i);break}}l=a.length;for(i=l-1;i>=0;i--){if(c.indexOf(a.charAt(i))===-1){a=a.substring(0,i+1);break}}return c.indexOf(a.charAt(0))===-1?a:''};
function echo(){var a='',argc=arguments.length,argv=arguments,i=0;var b=[],body,elmt;b=document.getElementsByTagName("body");if(!b||!b[0]){return false}body=b[0];for(i=0;i<argc;i++){a=argv[i];if(document.createDocumentFragment&&document.createTextNode&&document.appendChild){var c=document.createDocumentFragment();var d=document.createTextNode(a);c.appendChild(d);document.body.appendChild(c)}else if(document.write){document.write(a)}else{print(a)}}return null};
function htmlspecialchars(a,b){var c={},symbol='',tmp_str='',i=0;tmp_str=a.toString();if(false===(c=get_html_translation_table('HTML_SPECIALCHARS',b))){return false}for(symbol in c){entity=c[symbol];tmp_str=tmp_str.split(symbol).join(entity)}return tmp_str};
function htmlspecialchars_decode(a,b){var c={},symbol='',tmp_str='',i=0;tmp_str=a.toString();if(false===(c=get_html_translation_table('HTML_SPECIALCHARS',b))){return false}for(symbol in c){entity=c[symbol];tmp_str=tmp_str.split(entity).join(symbol)}return tmp_str};
function getParam(a){a=a.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");var b="[\\?&]"+a+"=([^&#]*)";var c=new RegExp(b);var d=c.exec(window.location.href);if(d==null)return"";else return d[1]};
function getURL(){
	var http = (("https:" == document.location.protocol) ? "https://" : "http://");
	var wloc = window.location+'';
	// if there are parameters
	var rawP = null;
	if(wloc.indexOf("?") != -1){
		var larr = wloc.split('?');
		wloc = larr[0];
		rawP = larr[1];
	}
	// if there is an anchor
	var anch = null;
	if(wloc.indexOf("#") != -1) {
		var ancharr = wloc.split('#');
		anch = ancharr[1];
		wloc = ancharr[0];
	}else if(rawP && rawP.indexOf("#") != -1) {
		var ancharr = rawP.split('#');
		anch = ancharr[1];
		rawP = ancharr[0];
	}
	// create object from params
	var param = [];
	if(rawP){
		var parArr = rawP.split('&');
		for(var i=0; i<parArr.length; i++){
			var nvarr = parArr[i].split("=");
			param[i] = {'name':nvarr[0],'value':nvarr[1]};
		}
	}
	// find path and file
	var locarr = wloc.split(document.domain);
	var suff = locarr[locarr.length-1];
	var file = 'index.php';
	var path = '/';
	var ind = suff.lastIndexOf('/')
	if(ind != -1){
		var i = suff.substr(ind+1);
		if(!empty(i)){
			file = i;
			path = suff.split(file)[0];
		}else path = suff;
	}

	return {
		'http'		: http,
		'domain'	: document.domain,
		'base'		: http+document.domain,
		'path'		: path,
		'file'		: file,
		'cur'		: http+document.domain+path+file,
		'rawparam'	: rawP,
		'param'		: param,
		'anch'		: anch
	}
};

// depend
function get_html_translation_table(a,b){var c={},histogram={},decimal=0,symbol='';var d={},constMappingQuoteStyle={};var e={},useQuoteStyle={};e=(a?a.toUpperCase():'HTML_SPECIALCHARS');useQuoteStyle=(b?b.toUpperCase():'ENT_COMPAT');d[0]='HTML_SPECIALCHARS';d[1]='HTML_ENTITIES';constMappingQuoteStyle[0]='ENT_NOQUOTES';constMappingQuoteStyle[2]='ENT_COMPAT';constMappingQuoteStyle[3]='ENT_QUOTES';if(!isNaN(e)){e=d[e]}if(!isNaN(useQuoteStyle)){useQuoteStyle=constMappingQuoteStyle[useQuoteStyle]}if(e=='HTML_SPECIALCHARS'){c['38']='&amp;';c['60']='&lt;';c['62']='&gt;'}else if(e=='HTML_ENTITIES'){c['38']='&amp;';c['60']='&lt;';c['62']='&gt;';c['160']='&nbsp;';c['161']='&iexcl;';c['162']='&cent;';c['163']='&pound;';c['164']='&curren;';c['165']='&yen;';c['166']='&brvbar;';c['167']='&sect;';c['168']='&uml;';c['169']='&copy;';c['170']='&ordf;';c['171']='&laquo;';c['172']='&not;';c['173']='&shy;';c['174']='&reg;';c['175']='&macr;';c['176']='&deg;';c['177']='&plusmn;';c['178']='&sup2;';c['179']='&sup3;';c['180']='&acute;';c['181']='&micro;';c['182']='&para;';c['183']='&middot;';c['184']='&cedil;';c['185']='&sup1;';c['186']='&ordm;';c['187']='&raquo;';c['188']='&frac14;';c['189']='&frac12;';c['190']='&frac34;';c['191']='&iquest;';c['192']='&Agrave;';c['193']='&Aacute;';c['194']='&Acirc;';c['195']='&Atilde;';c['196']='&Auml;';c['197']='&Aring;';c['198']='&AElig;';c['199']='&Ccedil;';c['200']='&Egrave;';c['201']='&Eacute;';c['202']='&Ecirc;';c['203']='&Euml;';c['204']='&Igrave;';c['205']='&Iacute;';c['206']='&Icirc;';c['207']='&Iuml;';c['208']='&ETH;';c['209']='&Ntilde;';c['210']='&Ograve;';c['211']='&Oacute;';c['212']='&Ocirc;';c['213']='&Otilde;';c['214']='&Ouml;';c['215']='&times;';c['216']='&Oslash;';c['217']='&Ugrave;';c['218']='&Uacute;';c['219']='&Ucirc;';c['220']='&Uuml;';c['221']='&Yacute;';c['222']='&THORN;';c['223']='&szlig;';c['224']='&agrave;';c['225']='&aacute;';c['226']='&acirc;';c['227']='&atilde;';c['228']='&auml;';c['229']='&aring;';c['230']='&aelig;';c['231']='&ccedil;';c['232']='&egrave;';c['233']='&eacute;';c['234']='&ecirc;';c['235']='&euml;';c['236']='&igrave;';c['237']='&iacute;';c['238']='&icirc;';c['239']='&iuml;';c['240']='&eth;';c['241']='&ntilde;';c['242']='&ograve;';c['243']='&oacute;';c['244']='&ocirc;';c['245']='&otilde;';c['246']='&ouml;';c['247']='&divide;';c['248']='&oslash;';c['249']='&ugrave;';c['250']='&uacute;';c['251']='&ucirc;';c['252']='&uuml;';c['253']='&yacute;';c['254']='&thorn;';c['255']='&yuml;'}else{throw Error("Table: "+e+' not supported');return false}if(useQuoteStyle!='ENT_NOQUOTES'){c['34']='&quot;'}if(useQuoteStyle=='ENT_QUOTES'){c['39']='&#039;'}for(decimal in c){symbol=String.fromCharCode(decimal);histogram[symbol]=c[decimal]}return histogram};
