/* =Load Functions
-----------------------------------------------------------------------------*/
var URL;
jQuery(document).ready(function(){
	URL = getURL();
	doNewWin();
	linkIcons();
	psutoClass();
	slideMunus();
	// form ajax
	if($("body.form").length>0) ajaxForm();
	// add class to current page link in nav
	$("#nav li").find("a[href^='"+URL.path.substr(1)+URL.file+"'], a[href^='"+URL.path+URL.file+"']").parent().addClass("curPage");
	$(".group .content").find("a[href$='"+URL.rawparam+"']").parent().addClass("curPage");
	// ie if version < 7
/*
	if($.browser.msie && $.browser.version < 7){
		
		
	}
*/
	$("#SearchForm").find("input").focus(function(){
		if($(this).val() == "Search Products..."){
			$(this).val('').removeClass("search_blur");
		}
	});
	$("#SearchForm").find("input").blur(function(){
		if($(this).val() == ""){
			$(this).val('Search Products...').addClass("search_blur");
		}
	});
	if($("#SearchForm").find("input").val() == ""){
		$("#SearchForm").find("input").val('Search Products...').addClass("search_blur");
	}

	$("#ccoptin").find("input.input").focus(function(){
		if($(this).val() == "Email Address"){
			$(this).val('').removeClass("search_blur");
		}
	});
	$("#ccoptin").find("input.input").blur(function(){
		if($(this).val() == ""){
			$(this).val('Email Address').addClass("search_blur");
		}
	});
	if($("#ccoptin").find("input.input").val() == ""){
		$("#ccoptin").find("input.input").val('Email Address').addClass("search_blur");
	}

	
});

function slideMunus(){
	var menus = $(".slideMenu");
	// if no content set to closed;
	menus.find(".group h2 a").each(function(){
		var content	= $(this).parent().next(".content");
		if(content.length==0) $(this).parents(".group").addClass("closed");
	});
	// set up clicks
	menus.find(".group h2 a").bind("click",
		function(e){
			var content	= $(this).parent().next(".content");
			if(content.length>0){
				var parent	= $(this).parents(".group:first");
				if(parent.is(".closed")){
					content.slideDown(300,function(){$(this).removeAttr("style"); saveMenus();});
					parent.removeClass("closed");
				}else{
					content.slideUp(300,function(){
						parent.addClass("closed");
						$(this).removeAttr("style");
						saveMenus();
					});
				}
				if(content.length==0){
					parent.addClass("closed");
					saveMenus();
				}
				this.blur();
				e.preventDefault();
				return false;
			}
		}
	);
};
function saveMenus(){
	var data = [];
	$(".slideMenu .group").each(function(i){
		data[i] = {
			'name'	: $(this).find("h2 a:first").html(),
			'value'	: ($(this).is(".closed") ? 'closed' : '')
		};
	});
	data = JSON.stringify(data);
	$.ajax({
		type: "POST",
		url: "/includes/update.php",
		data: "menus="+data
	});
};

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
	}
};
function getParam(name){
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS	= "[\\?&]"+name+"=([^&#]*)";
	var regex		= new RegExp( regexS );
	var results	= regex.exec( window.location.href );
	if(results == null) return "";
	else return results[1];
};
/* =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);
		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;
	if($.isFunction($($formID).ajaxForm)){
		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.base+((URL.http == 'https://') ? '/mackaymitchellphotopak.com/':'')+"/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(x){	return ((x == '' || x == null) ? true : false);}
jQuery.fn.log = function (msg) {
	console.log("%s: %o", msg, this);
	return this;
};

