﻿jQuery(function( $ ){
	//Easing Equations (c) 2003 Robert Penner, all rights reserved. 
	//Easing Equations are subject to the terms in http://www.robertpenner.com/easing_terms_of_use.html
	$.easing.backout = function(x, t, b, c, d){ var s=1.70158; return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; };
	$.easing.easeOutQuart = function (x, t, b, c, d) { return -c * ((t=t/d-1)*t*t*t - 1) + b; };
	$.easing.bouncy = function (x, t, b, c, d) { var s = 1.70158; if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; }
});

$.tools.tooltip.addEffect("bouncy",
	// opening animation
	function(done) { this.getTip().animate({top: '+=15'}, 500, 'bouncy', done).show(); },
	// closing animation
	function(done) { this.getTip().animate({top: '-=15'}, 500, 'bouncy', function()  { $(this).hide(); done.call(); }); }
);

/* CONSTANTS */
var STATE_ABBREVIATIONS = ["AL","AK","AZ","AR","CA","CO","CT","DE","FL","GA",
						   "HI","ID","IL","IN","IA","KS","KY","LA","ME","MD",
						   "MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ",
						   "NM","NY","NC","ND","OH","OK","OR","PA","RI","SC",
						   "SD","TN","TX","UT","VT","VA","WA","WV","WI","WY"];
var STATE_NAMES = ["Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia",
	"Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland",
	"Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey",
	"New Mexico","New York","North Carolina","North Dakota","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina",
	"South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming" ];
var STATE_BADGE_LOCKED = [
	"/State/PublishingImages/Alabama-250x250-gray.png",
	"/State/PublishingImages/Alaska-250x250-gray.png",
	"/State/PublishingImages/Arizona-250x250-gray.png",
	"/State/PublishingImages/Arkansas-250x250-gray.png",
	"/State/PublishingImages/California-250x250-gray.png",
	"/State/PublishingImages/Colorado-250x250-gray.png",
	"/State/PublishingImages/Connecticut-250x250-gray.png",
	"/State/PublishingImages/Delaware-250x250-gray.png",
	"/State/PublishingImages/Florida-250x250-gray.png",
	"/State/PublishingImages/Georgia-250x250-gray.png",
	"/State/PublishingImages/Hawaii-250x250-gray.png",
	"/State/PublishingImages/Idaho-250x250-gray.png",
	"/State/PublishingImages/Illinois-250x250-gray.png",
	"/State/PublishingImages/Indiana-250x250-gray.png",
	"/State/PublishingImages/Iowa-250x250-gray.png",
	"/State/PublishingImages/Kansas-250x250-gray.png",
	"/State/PublishingImages/Kentucky-250x250-gray.png",
	"/State/PublishingImages/Louisiana-250x250-gray.png",
	"/State/PublishingImages/Maine-250x250-gray.png",
	"/State/PublishingImages/Maryland-250x250-gray.png",
	"/State/PublishingImages/Massachusetts-250x250-gray.png",
	"/State/PublishingImages/Michigan-250x250-gray.png",
	"/State/PublishingImages/Minnesota-250x250-gray.png",
	"/State/PublishingImages/Mississippi-250x250-gray.png",
	"/State/PublishingImages/Missouri-250x250-gray.png",
	"/State/PublishingImages/Montana-250x250-gray.png",
	"/State/PublishingImages/Nebraska-250x250-gray.png",
	"/State/PublishingImages/Nevada-250x250-gray.png",
	"/State/PublishingImages/New-Hampshire-250x250-gray.png",
	"/State/PublishingImages/New-Jersey-250x250-gray.png",
	"/State/PublishingImages/New-Mexico-250x250-gray.png",
	"/State/PublishingImages/New-York-250x250-gray.png",
	"/State/PublishingImages/North-Carolina-250x250-gray.png",
	"/State/PublishingImages/North-Dakota-250x250-gray.png",
	"/State/PublishingImages/Ohio-250x250-gray.png",
	"/State/PublishingImages/Oklahoma-250x250-gray.png",
	"/State/PublishingImages/Oregon-250x250-gray.png",
	"/State/PublishingImages/Pennsylvania-250x250-gray.png",
	"/State/PublishingImages/Rhode-Island-250x250-gray.png",
	"/State/PublishingImages/South-Carolina-250x250-gray.png",
	"/State/PublishingImages/South-Dakota-250x250-gray.png",
	"/State/PublishingImages/Tennessee-250x250-gray.png",
	"/State/PublishingImages/Texas-250x250-gray.png",
	"/State/PublishingImages/Utah-250x250-gray.png",
	"/State/PublishingImages/Vermont-250x250-gray.png",
	"/State/PublishingImages/Virginia-250x250-gray.png",
	"/State/PublishingImages/Washington-250x250-gray.png",
	"/State/PublishingImages/West-Virginia-250x250-gray.png",
	"/State/PublishingImages/Wisconsin-250x250-gray.png",
	"/State/PublishingImages/Wyoming-250x250-gray.png" 
	];
var STATE_BADGE_UNLOCKED = [
	"/State/PublishingImages/Alabama-250x250.png",
	"/State/PublishingImages/Alaska-250x250.png",
	"/State/PublishingImages/Arizona-250x250.png",
	"/State/PublishingImages/Arkansas-250x250.png",
	"/State/PublishingImages/California-250x250.png",
	"/State/PublishingImages/Colorado-250x250.png",
	"/State/PublishingImages/Connecticut-250x250.png",
	"/State/PublishingImages/Delaware-250x250.png",
	"/State/PublishingImages/Florida-250x250.png",
	"/State/PublishingImages/Georgia-250x250.png",
	"/State/PublishingImages/Hawaii-250x250.png",
	"/State/PublishingImages/Idaho-250x250.png",
	"/State/PublishingImages/Illinois-250x250.png",
	"/State/PublishingImages/Indiana-250x250.png",
	"/State/PublishingImages/Iowa-250x250.png",
	"/State/PublishingImages/Kansas-250x250.png",
	"/State/PublishingImages/Kentucky-250x250.png",
	"/State/PublishingImages/Louisiana-250x250.png",
	"/State/PublishingImages/Maine-250x250.png",
	"/State/PublishingImages/Maryland-250x250.png",
	"/State/PublishingImages/Massachusetts-250x250.png",
	"/State/PublishingImages/Michigan-250x250.png",
	"/State/PublishingImages/Minnesota-250x250.png",
	"/State/PublishingImages/Mississippi-250x250.png",
	"/State/PublishingImages/Missouri-250x250.png",
	"/State/PublishingImages/Montana-250x250.png",
	"/State/PublishingImages/Nebraska-250x250.png",
	"/State/PublishingImages/Nevada-250x250.png",
	"/State/PublishingImages/New-Hampshire-250x250.png",
	"/State/PublishingImages/New-Jersey-250x250.png",
	"/State/PublishingImages/New-Mexico-250x250.png",
	"/State/PublishingImages/New-York-250x250.png",
	"/State/PublishingImages/North-Carolina-250x250.png",
	"/State/PublishingImages/North-Dakota-250x250.png",
	"/State/PublishingImages/Ohio-250x250.png",
	"/State/PublishingImages/Oklahoma-250x250.png",
	"/State/PublishingImages/Oregon-250x250.png",
	"/State/PublishingImages/Pennsylvania-250x250.png",
	"/State/PublishingImages/Rhode-Island-250x250.png",
	"/State/PublishingImages/South-Carolina-250x250.png",
	"/State/PublishingImages/South-Dakota-250x250.png",
	"/State/PublishingImages/Tennessee-250x250.png",
	"/State/PublishingImages/Texas-250x250.png",
	"/State/PublishingImages/Utah-250x250.png",
	"/State/PublishingImages/Vermont-250x250.png",
	"/State/PublishingImages/Virginia-250x250.png",
	"/State/PublishingImages/Washington-250x250.png",
	"/State/PublishingImages/West-Virginia-250x250.png",
	"/State/PublishingImages/Wisconsin-250x250.png",
	"/State/PublishingImages/Wyoming-250x250.png" 
	];

$(document).ready(function(){
	/* use dev and test watermarks in the background when not in prod */
		if(window.location.href.toLowerCase().indexOf("http://dev") != -1) $('html').addClass('dev');
		else if(window.location.href.toLowerCase().indexOf("http://test") != -1) $('html').addClass('test');

	/* open external links in new window */
    $("a:not(has(img))").filter(function() { return this.hostname && this.hostname !== location.hostname; }).attr("target", "_blank").addClass("external");  
	/* except for ones classed internal */
	$("a.internal").attr("target", "_self").removeClass("external");
	
	/* pretty photo */
    $("a[rel^='prettyPhoto']").prettyPhoto();

    /*require login to view featured user page*/
    //$("#FeaturedForceRegister").prettyPhoto({ modal:true, opacity:0.85, show_title:false, default_width:700, social_tools:'', 
    //										  default_height:343, theme:'light_square', keyboard_shortcuts:false,
    //										  changepicturecallback: addRegisterClickEvent });

	/* Station Page Ratings */
	var rating = 0;
	try { rating = parseFloat($(".stationRating .ratingNumber").text()); } catch(ex) {}
	var quarterRating = (rating>0)?parseInt((rating*4)-1):0;
	$(".stationRating input[type='radio']").rating("select", quarterRating);
	$(".stationRating input[type='radio']").rating('disable');
	$(".stationRating").show();
	$(".stationRating dt").hide();
	
	$(".stationComments .commentItem").each( function(i) {
		var rating = 3;
		try { rating = parseInt($(this).find(".ratingNumber").text())-1; } catch(ex) {}
		$(this).find("input[type='radio']").rating("select", rating);
		$(this).find("input[type='radio']").rating('disable');
	});
	
	/*community user tooltips*/
	
	/* !!!!!!!!!!!!!! DEBUG REMOVE THIS BEFORE GOING TO PRODUCTION !!!!!!!!!!!!!! */
	/*$(document).ajaxError(function(e,jqxhr,settings,exception) {
		window.alert(exception);
	});*/
	
	$(".meetCommunityelement a").tooltip({position: "top center", relative:false, effect:'bouncy', offset:[-45, 0],
		onBeforeShow: function(event, position) {
    		this.getTip().appendTo(document.body);
    		var handle = this.getTrigger().find("img").attr("alt");
			//var jsonUrl = "/_profile/profile.svc/details/"+handle;
			var jsonUrl = "/_profile/profile.svc/cache/details/"+handle;
			if(this.getTip().html() == ""){
				var tip = this.getTip();
				tip.html("<img class='waitCursor' src='/Style Library/Images/ajax-loader.gif' />");
				$.getJSON( jsonUrl, function(urlData){ 
					if (urlData!=null) {
						var userDetails = urlData.content;						
						var decoded = $("<IDontThinkItMatters/>").html(userDetails).text();
						tip.html(decoded);
					}
				});
			}

    		return true;
    	}
    });
    
    // Load advocacy leader board
    if($(".leaderboard.topFive").length > 0){
	    //var jsonUrl = "/_profile/profile.svc/badges/leaders";
	    var jsonUrl = "/_profile/profile.svc/cache/badges/leaders";
		var dl = $(".leaderboard dl");
		dl.html("<img class='waitCursor' src='/Style Library/Images/ajax-loader.gif' />");
		$.getJSON( jsonUrl, function(urlData){
			if (urlData!=null) {
				var userDetails = urlData.content;
				var decoded = $("<IDontThinkItMatters/>").html(userDetails).text();
				dl.html(decoded);
			}
		});
	}
	
	
    if($(".leaderboard.expanded").length > 0){
	    //var jsonUrl = "/_profile/profile.svc/badges/leadersdetailed";
	    var jsonUrl = "/_profile/profile.svc/cache/badges/leadersdetailed";
		var div = $(".leaderItems");
		div.html("<img class='waitCursor' src='/Style Library/Images/ajax-loader.gif' />");
		$.getJSON( jsonUrl, function(urlData){ 		
			if (urlData!=null) {
				var userDetails = urlData.content;						
				var decoded = $("<IDontThinkItMatters/>").html(userDetails).text();
				div.html(decoded);
			}
		});
	}
	
    if($(".featuredMemberBadges .badgeList ul").length > 0){
	    var jsonUrl = "/_profile/profile.svc/badges/formattedlist";
		var list = $(".featuredMemberBadges .badgeList ul");
		list.html('<li><img class="waitCursor" src="/Style Library/Images/ajax-loader.gif" style="width:43px; height:11px;" /></li>');
		$.getJSON( jsonUrl, function(markup){ 		
			if (markup!=null) {
				var markupText = markup.content;						
				var decoded = $("<IDontThinkItMatters/>").html(markupText).text();
				list.html(decoded);
				
				var numberOfItemsShown=7;
				if ( $(".featuredMemberBadges").find(".horizontalScrollingListParent li").length > numberOfItemsShown ){
					$(".featuredMemberBadges").find(".horizontalScrollingListParent").jCarouselLite({ 
						btnNext: ".featuredMemberBadges .horizontalScrollingListNav .next", 
						btnPrev: ".featuredMemberBadges .horizontalScrollingListNav .prev", 
						easing: "easeOutQuart", 
						circular:false, 
						visible:numberOfItemsShown, 
						scroll:numberOfItemsShown,
						speed:1200 
					});
					$(".featuredMemberBadges").find(".horizontalScrollingListNav").css('visibility','visible');
				} else {
					$(".featuredMemberBadges").find(".horizontalScrollingListNav").css('visibility','hidden');
					$(".featuredMemberBadges").find(".horizontalScrollingListParent").addClass('unscrollable');
				}


			}
		});
	}
	
	
	//load state wildcard ads
	if($('#imgStateWildcard').length>0)
	{
	setStateWildcard();
	}
	/* State Incentives Read More */
	$("a.stateIncentives").click( function() {
		$("div.moreIncentives").slideToggle();
		if ( $(this).text() == "Show less state incentives" ) $(this).text("Show more state incentives");
		else $(this).text("Show less state incentives");
	});

});

/*require login to view featured user page*/
//function addRegisterClickEvent(){
//	$("div.pp_pic_holder.light_square #fullResImage").click(function(){
//		window.location.href = "/pages/graham.html?ref=grahamcolton";
//	});
//}

function isValidEmailAddress(emailAddress) {
var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
return pattern.test(emailAddress);
};

function trim10 (str) { //STUPID IE
	var whitespace = ' \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000';
	for (var i = 0; i < str.length; i++) {
		if (whitespace.indexOf(str.charAt(i)) === -1) {
			str = str.substring(i);
			break;
		}
	}
	for (i = str.length - 1; i >= 0; i--) {
		if (whitespace.indexOf(str.charAt(i)) === -1) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
}

function trim12 (str) { 
	var str = str.replace(/^\s\s*/, ''), ws = /\s/, i = str.length; 
	while (ws.test(str.charAt(--i))); 
	return str.slice(0, i + 1); 
} 


/**
* @author : K_Wasseem
* @URL : http://7php.com
* @license : FREE (like free air)
* @optional: I'll appreciate a link back from your site if you do refer to my article ;)
*/
(function($) {
	$.getParam = function(key) {
		//get querystring(s) without the ?
		var urlParams = decodeURI( window.location.search.substring(1) );
		//if no querystring, return null
		if(urlParams == false | urlParams == '') return null;
		//get key/value pairs
		var pairs = urlParams.split("&");
		var keyValue_Collection = {};
		for(var value in pairs) {
			//let's get the position of the first occurrence of "=", in case value has "=" in it
			var equalsignPosition = pairs[value].indexOf("=");
			//in case there's only the key, e.g: http://7php.com/?niche  //you could change the value to true as per your needs
			if (equalsignPosition == -1) keyValue_Collection[ pairs[value] ] = ''; 
			else keyValue_Collection[ pairs[value].substring(0, equalsignPosition) ] = pairs[value].substr(equalsignPosition + 1);
		}
		return keyValue_Collection[key];
	}
}) (jQuery);


/* CreditBadgeville*/
function CreditBadgeville(sVerb, sGuid, sTitle){
    Badgeville.credit({
		verb:sVerb,
		article_id:sGuid,
		article_name:sTitle
    }, 
    function( data ) { 

    });
}

function getUserPPID() {
	var $nameElem = getIdentityElement();
	if ($nameElem != null) {
		return $nameElem.attr("rel");
	}
}

function getUserProfileUrl() {
	var $nameElem = getIdentityElement();
	if ($nameElem != null) {
		return $nameElem.attr("href");
	}
}

function getIdentityElement() {
	var $nameLink = $("#utilityIdentity").find("a.namelink");
	if ($nameLink.length < 1) { return null; }
	
	return $nameLink.eq(0);
}

function getUserSettingsUrl() {
	var $setElem = getSettingsElement();
	if ($setElem != null) {
		return $setElem.attr("href");
	}
}

function getSettingsElement() {
	var $setLink = $("#utilityIdentity").find("a.settingslink");
	if ($setLink.length < 1) { return null; }
	
	return $setLink.eq(0);
}
function navigateSettingsPage(){
		var destination = getUserSettingsUrl();
		if(typeof destination ==="undefined")
		{
			//user is internal NTFS, do nothing.
		}
		else
		{
		window.location.href =destination;
		}
}
function setStateWildcard(){
       	if (getIdentityElement() ==null) //check if not logged in
       	{
       		$("#imgStateWildcard").remove();
       		$("#linkStateWildcard").remove();
       		$("#divStateWildcard").remove();
       	}
       	else
       	{
	       	var state=$('.stateLink').attr('rel');   // get the rel value from the state link which is located in the sign-in/ identity bar at the top of the page
	       	var url = (typeof state === "undefined") ? $("#utilityIdentity .settingslink").attr("href") : String.format("/states/{0}", state);
	       	if (typeof state === "undefined"){state='';}    //trim out text if the state rel is undefined
	       	$("#imgStateWildcard").attr( "src", String.format("/SiteCollectionImages/StateWildcards/stateWC{0}.jpg", state) );        //set the image to the correct pattern 
	       	$("#imgStateWildcard").attr( "alt", String.format("state information", state) );  //Set the alt text
	       	$("#linkStateWildcard").attr( "href", url ); //Set the link to the correct destination
	    }
}

String.format = String.prototype.format = function() {
    var i=0;
    var string = (typeof(this) == "function" && !(i++)) ? arguments[0] : this;

    for (; i < arguments.length; i++)
        string = string.replace(/\{\d+?\}/, arguments[i]);

    return string;
}
