var getquerystring = function(url){
	var argsplit = url.split("?");
	var urlbase = argsplit[0];
	var argvalues={};
	if(argsplit.length>1&&argsplit[1]!==''){
		var querystring = argsplit[1];
		var urlarray = querystring.split("&");
		jQuery.each(urlarray, function(i,n){
			var tempval = n.split("=");
			if(tempval.length>1){
				argvalues[tempval[0]]=tempval[1];
			}
		});
		return argvalues;
	}else{
		return false;
	}
};

jQuery(document).ready(function(){
	//landing page form validation - replicate the built-in wordpress stuff
	jQuery("#landing-page-form").submit(function(){
		var $focusField, $el, $elToTest, $this, email;
		//check for required fields
		jQuery(".wpcf7-validates-as-required").each(function(){
			$this = jQuery(this);
			if ($this.is(":input")) {
				if (jQuery.trim($this.val()).length == 0) {				
					if (!$focusField) $focusField = $this;
					$this.parent().append('<span class="wpcf7-not-valid-tip">Please fill the required field.</span>');
				}
			}
			else {
				//well ok let's get the next form field then since this is probably a div or something
				$containerField = 
				$el = $this.find(":input");
				if ($el.length > 0) {
					$elToTest = $el.eq(0);
				}
				else {
					$elToTest = $el;
				}
				if ($elToTest.is(":checkbox")) {
					if ($el.filter(":checked").length == 0) {
						$this.append('<span class="wpcf7-not-valid-tip">Please fill the required field.</span>');
						if (!$focusField) $focusField = $elToTest;
					}
				}			
			}			
		});

		email = jQuery("#email").val();
		if (email) {
			email = jQuery.trim(email);
			if (email.length != 0) {
				if (!/^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$/.test(email)) {
					jQuery("#email").parent().append('<span class="wpcf7-not-valid-tip">Email address seems invalid.</span>');
					if (!$focusField) $focusField = jQuery("#email");
				}
			}
		}

		if ($focusField) {
			$focusField.focus();
			return false;
		}
	});
	jQuery(".wpcf7-not-valid-tip").live("mouseover",function(event){
		jQuery(this).fadeOut();
	});

	/* suckerfish css for IE6 */
	if((jQuery.browser.msie)&&(parseInt(jQuery.browser.version)<7)){
		jQuery("#nav ul > li").hover(function(){
			jQuery(this).addClass("sfhover")
		},function(){	
			jQuery(this).removeClass("sfhover")
		})
	}

	/* fancy tooltips only if not ie 6 */
	if(!(jQuery.browser.msie&&(parseInt(jQuery.browser.version,10)<7))){
		jQuery(".tooltip").qtip({
				position: {
	            corner: { target:'rightTop', tooltip:'leftMiddle' }
		        },
		        name: 'blue',
		        tip: 'topLeft',
		        height: { min:30, max:140 },
		        show: { 
		            effect: { type:'fade', length:100 } 
		        },
		        style: { 
		        	background: 'url(/business/wp-content/themes/cbg/images/bg-qtip.png) no-repeat 0% 50%'
		        }	
			}	
		);
	}
	
	/* fancy tooltips only if not ie 6 */
	if(!(jQuery.browser.msie&&(parseInt(jQuery.browser.version,10)<7))){
		jQuery("#partners .last").qtip({
				position: {
	            corner: { target:'center', tooltip:'rightMiddle' }
		        },
		        name: 'blue',
		        tip: 'topLeft',
		        height: { min:30, max:140 },
		        show: { 
		            effect: { type:'fade', length:100 } 
		        },
		        style: { 
		        	background: 'url(/business/wp-content/themes/cbg/images/bg-qtip-reverse.png) no-repeat 100% 50%'
		        }
			}	
		);
	}
	
	/* contact form dynamic values */
	if(document.getElementById("contactpage")){
		var querystring = getquerystring(window.location.href);
		if(typeof querystring==="object"){
			if(typeof querystring['referrer']==="string"){
				var qsobject = {
					request:"Request a proposal",
					baselinecarbon:"Calculate my company's baseline carbon footprint",
					baselinewater:"Calculate my company's baseline water footprint"
				};
				var $checkboxes=jQuery("input[name^='would-like-to']");
				$checkboxes.each(function(index){
					var $this = jQuery(this);
					if($this.attr("value")===qsobject[querystring['referrer']]){
							$this.attr("checked",true);
					}
				})
			}
		}
	}
	
	/* clients table sorting */
	if (jQuery('#businesses').length > 0) {
		jQuery('#businesses').jTPS( {
			perPages: [10, 20, 'ALL'], 
			scrollStep:2,
			scrollDelay:20
		});
	}
	jQuery("#businesses .seal1,#businesses2 .seal1").live("mouseover",function() {
		jQuery(this).qtip({
			overwrite: false,
			content: 'BEF Carbon Offsets',
			position: {
            	corner: { target:'leftMiddle', tooltip:'rightMiddle' }
	        },
	        height: { min:70, max:70 },
	        show: { 
	            delay: 10,
	            effect: { type:'fade', length:33 } 
	        },
	        style: { 
	        	background: 'url(/business/wp-content/themes/cbg/images/bg-qtip-sm.png) no-repeat 0% 50%',
	        	textAlign: 'center',
	        	fontSize: '15px'
	        },
			show: {ready: true}
		});
	});
	jQuery("#businesses .seal2,#businesses2 .seal2").live("mouseover",function() {
		jQuery(this).qtip({
			overwrite: false,
			content: 'BEF RECs',
			position: {
            	corner: { target:'rightMiddle', tooltip:'leftMiddle' }
	        },
	        height: { min:70, max:70 },
	        show: { 
	            delay: 10,
	            effect: { type:'fade', length:33 } 
	        },
	        style: { 
	        	background: 'url(/business/wp-content/themes/cbg/images/bg-qtip-sm.png) no-repeat 0% 50%',
	        	textAlign: 'center',
	        	fontSize: '15px'
	        },
			show: {ready: true}
		});
	});
	jQuery("#businesses .seal3,#businesses2 .seal3").live("mouseover",function() {
		jQuery(this).qtip({
			overwrite: false,
			content: 'BEF WRCs',
			position: {
            	corner: { target:'rightMiddle', tooltip:'leftMiddle' }
	        },
	        height: { min:70, max:70 },
	        show: { 
	            delay: 10,
	            effect: { type:'fade', length:33 } 
	        },
	        style: { 
	        	background: 'url(/business/wp-content/themes/cbg/images/bg-qtip-sm.png) no-repeat 0% 50%',
	        	textAlign: 'center',
	        	fontSize: '15px'
	        },
			show: {ready: true}
		});
	});
	
	/* lightbox effects */
	jQuery("a#newsletter").fancybox({
		'width':202, 
		'height':	190,
		'hideOnContentClick': false,
		'onComplete': function(){
			jQuery('#newsletter_signup').submit(function() {
		        jQuery(this).ajaxSubmit({
					success:  processJson,  		
					dataType: "json"
				}); 
		        return false; 
		    });
		}
	});
	
	jQuery("a.lightbox").fancybox();
	
	/* Google Analytics events tracking */
	jQuery("a.track").click(function(){
		var $this = jQuery(this);
		var therel = $this.attr("rel");
		if (pageTracker) pageTracker._trackPageview(therel);	
	});
	
	jQuery("#nav li.page-item-22 a").live("click",function(){
		pageTracker._trackPageview('/business/nav/contact');
	});

	jQuery("#submit").live("click",function(){
		pageTracker._trackPageview('/business/contact/event/submit');
	});
	
	/* click action to awards box */
	if(document.getElementById("awards")){
		jQuery("#awards").click(function(){
			window.location = "/business/why-bef/awards-associations/";
		});
	}
	
	/* tabs */
	jQuery('#tabs > ul.tabs').tabs();

	/* customer list ajax */
	jQuery("th.sortable>a").click(function() {
		var $this = jQuery(this);
		var $th = $this.parent();
		if ($th.hasClass("desc")) {
			$th.removeClass("desc");
			$th.addClass("asc");
			$this.attr("href",$this.attr("href").replace("sortDir=desc","sortDir=asc"));
		}
		else {
			$th.removeClass("asc");
			$th.addClass("desc");
			$this.attr("href",$this.attr("href").replace("sortDir=asc","sortDir=desc"));
		}
		reloadPanel($this.attr("href"));
		return false;
	});
	jQuery("div.pageSelector>a").live("click",function(){
		var $this = jQuery(this);
		reloadPanel($this.attr("href"));
		return false;
	});
	jQuery("span.perPageSelector>a").live("click",function(){
        var $this = jQuery(this);
        var href = $this.attr("href");
        var qs = href.substring(1).split("&");
        var qsParam = "recsPerPage";
        var text = $this.text();
        var $parent = $this.parent();

        //remove recsPerRow
        for (var i = qs.length - 1; i >= 1; i--) {
            if (qs[i].substring(0,qsParam.length) == qsParam) qs.splice(i,1);
        }

        $parent.addClass("perPageSelected").html(text);
        $parent.siblings(".perPageSelector").each(function() {
        	var $el = jQuery(this);
        	var linkText = $el.text();
            $el.removeClass("perPageSelected");
            $el.html('<a href="?' + qs.join("&") + '&' + qsParam + '=' + linkText + '">' + linkText + '</a>');
        });

        reloadPanel(href);
        return false;

	});
});
function reloadPanel(href) {
	//TODO: show animation loading
	jQuery.ajax({
		url: "/business/wp-content/plugins/exec-php/includes/customer_list.php" + href + "&format=json",
		dataType: "json",
		success: function(data) {
			populateCustomersTable(data.customers);
			populatePageList(data.pagination,href);
			//TODO: hide animation loading
		}
	});
}
function populateCustomersTable(customers) {
	var $tbody = jQuery("table#businesses2>tbody");
	var key, html = "";
	$tbody.html("");
	for (var i = 0; i < customers.length; i++) {
		html += '<tr>' +
			'<td class="first">' + customers[i].name + '</td>' +
			'<td>' + customers[i].city + '</td>' +
			'<td>' + customers[i].state + '</td>' +
			'<td>' + customers[i].industry + '</td>' +
			'<td>' + customers[i].products + '</td>' +
		'</tr>';
	}
	$tbody.html(html);
}
function populatePageList(pagination,href) {
	var html = [], i;
	var qs = href.substring(1).split("&");
	for (i = qs.length - 1; i >= 1; i--) {
		if (qs[i].substring(0,5) == "page=") qs.splice(i,1);
	}
	for (i = 0; i < pagination.pageList.length; i++) {
		if (pagination.pageList[i] != "...") {
			if (pagination.pageList[i] != pagination.currentPage) {
				html.push('<div class="pageSelector"><a href="?' + qs.join("&") + '&page=' + pagination.pageList[i] + '">' + pagination.pageList[i] + '</a></div>');
			}
			else {
				html.push('<div class="pageSelector hilightPageSelector">' + pagination.pageList[i] + '</div>');
			}
		}
		else {
			html.push('<div class="pageSelector">' + pagination.pageList[i] + '</div>');
		}
	}
	jQuery("div.pagination").html(html.join(""));
	jQuery("div.status").html("showing " + pagination.startRow + " - " + pagination.endRow + " of " + pagination.totalRecs);
}
function processJson(data) { 
    if(data.error) {
		if(data.error == 2) {
			alert("Please enter a valid email address.");
		}
		else if(data.error == 3) {
			alert("You have already signed up for our newsletter.");
		}
	} 
	else if(data.success){
		pageTracker._trackPageview("/footer/event/newsletteroptin");
		jQuery("#newsletter_box").hide();
		jQuery("#success").show();
	}
}

