
jQuery.extend({
 getURLParam: function(strParamName){
	  var strReturn = "";
	  var strHref = window.location.href;
	  var bFound=false;
	  
	  var cmpstring = strParamName + "=";
	  var cmplen = cmpstring.length;

	  if ( strHref.indexOf("?") > -1 ){
	    var strQueryString = strHref.substr(strHref.indexOf("?")+1);
	    var aQueryString = strQueryString.split("&");
	    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
	      if (aQueryString[iParam].substr(0,cmplen)==cmpstring){
	        var aParam = aQueryString[iParam].split("=");
	        strReturn = aParam[1];
	        bFound=true;
	        break;
	      }
	      
	    }
	  } 	
	  if (bFound==false) return null;
	  return strReturn;
	}
});

	
/*
	// Global Header Site Nav Click States
    var sitenavlinks = $('#gbl_head_sitenav a');
    
    $('#gbl_head_sitenav a').click(function () {
        sitenavlinks.removeClass('gbl_head_sn_on');
        $(this).addClass('gbl_head_sn_on');
        return false;
    });


	// Global Header User Nav Click States
    $('#gbl_head_usernav').click(function () {
      $(this).toggleClass("loggedon");
      $(this).toggleClass("loggedoff");
    });
*/


	// User Nav Toggle - detect if logged in via cookie, and show appropriate usernav div
	var userProfileCookie = readCookie( 'u_profile' );
	if ( userProfileCookie != null && userProfileCookie != 'null' && userProfileCookie != '' ){
		// logged in
		$('#gbl_head .loggedon').css('display','block');
		$('#gbl_head .loggedoff').css('display','none');
	
		// add current page to logout url when we are logged in.
		var logoutURL = $("#gbl_head_un_loggedon_logout").attr("href");
		
		var returnURL="";
		if (logoutURL.search("[\\?]")==-1){
			returnURL=logoutURL.concat("?returnURL=",escape(location.href));
			$("#gbl_head_un_loggedon_logout").attr("href",returnURL);
		}else {
			returnURL=logoutURL.concat("&returnURL=",escape(location.href));
			$("#gbl_head_un_loggedon_logout").attr("href",returnURL);
		}
	}
	else {
		// not logged in
		$('#gbl_head .loggedon').css('display','none');
		$('#gbl_head .loggedoff').css('display','block');
	}
	
	
	// Background Image Display 
	/* Note: This is the old bg implementation, keeping for reference -AF
	var doc_width = $(document).width(); 
	if (doc_width >= 1400) { 
		var cssGblWrapOuter = { background: 'transparent url(/images/gbl/gbl_wrap_outer/gbl_wrap_outer_bg.jpg) no-repeat scroll top center', width: 1400 };
 		$('#gbl_wrap_outer').css(cssGblWrapOuter); $('#gbl_wrap_outer_morelink').css('display', 'block'); 
 	}
	*/
	
	
	// Reset Center Table Column to a Fixed Width
	// This then allows the left and right gutter links to expan to fill the gutter space
	// This fix is necessary to prevent the table center contents from "jumping" into the center when page loads
	$('#gbl_wraptable td#gbl_wraptable_center').css('width', 990);
	

    /* Header Ad fix */
    $(".gbl_cond_ad img").each(function (i) {
      if (this.src.indexOf("empty.gif")>-1) {
        var c=0;
        var obj = this;
        var lastobj = this;
        while (c<5 &&  obj.className.indexOf("gbl_cond_ad")==-1) {
          obj = obj.parentNode;
          c++;
        }
        if (c<5) {
          lastobj = obj;
          while (obj.className.indexOf("gbl_cond_ad")>-1) {
            lastobj = obj;
            obj = obj.parentNode;
          }
          lastobj.style.display="none";
        }
      }
    });
    
    $("#windowshadeAd").each(function (i) {
      if (this.style.display!="none" && this.style.display!="undefined") {
        //$("#gbl_subhead_breacrumb").css("padding-top","47px");
        $("#gbl_subhead_sponsoredby").css("display","none");
      }
    });
    
    $("#gbl_subhead_sponsoredby").each(function (i) {
      //if (this.style.display!="none") $("#gbl_subhead_breacrumb").css("padding-top","47px");
    });
	
	
	// Position Axe Ad to bottom left of visible screen on load
	// NOTE: this is a temporary fix and should be removed once ad is done running
	$('#overlay_ad_fixed').parent().css({ 
		position: 'fixed',
		bottom: 0,
		zIndex: 999});	
    
	
	// Global Header Search 	
	var defaultSearchInputText = 'Search Girls, Articles & More';
	$.fn.validate = function(){
		if ( this && this.val() && this.val() != defaultSearchInputText && this.val().length >= 2 && this.val().length <= 255 ){
			return true;
		}

		alert( 'Please enter a valid search term between 2 and 255 characters.' );
		return false;
	}
		
	$('#gbl_head_sb_go').click(	
		function(){ 
			$('#SearchForm').submit(); 
		} 
	);
	
	$('#SearchForm').submit(
		function(event){
			var isValid = $('#SearchString').validate();
			if ( isValid ){			
				$('#SearchString').val( stripSpecialChars( $('#SearchString').val() ) );
			}
			
			return isValid;
		}
	);	
	
	$('#SearchString').one('click', function(){$('#SearchString').val('');});		

	$('#SearchString').autocomplete('/services/search/pbautocomplete', 

    	{	
    		minChars:2, 
			cacheLength:0,    																										  
			resultsClass:'gbl_head_autocomplete_results',
			//loadingClass:'gbl_head_autocomplete_loading',
			resultsMouseOverClass:'gbl_head_autocomplete_results_mouseover',
			//lineSeparator:'|',
			onItemSelect:function(item){
				//window.location = $(item).attr( "url" );
				$('#SearchForm').submit(); 
			},
			extraParams:{ 
				'jsonp':'true',
				'profiles':'freesite_search' 
			}
			,
			formatItem:function(row, i, num){
				//var html = '<span class="gbl_autocomplete_thumb"><img src="' + row.thumbnailURL + '"/></span>';				
				
				if ( row.thumbnailURL != null && row.thumbnailURL != undefined && row.thumbnailURL != '' && row.thumbnailURL != 'null' ) {
				var html = '<span class="gbl_autocomplete_thumb"><img src="http://www.playboy.com/' + row.thumbnailURL + '"/></span>';				
				} else {
				
				var html = '<span class="gbl_autocomplete_thumb"><img src="/images/gbl/gbl_ac_nothumb_bg.png"/></span>';
				
				}
				
				html = html + '<span class="gbl_autocomplete_textname">' + row.term + '</span>';

				return html;
			}			
 		} 
 	);



	// Global More/Hide Toggle of <p> Elements
	var $pElements = $('.gbl_morehide_toggle p:gt(0)'); // Get all paragraphs except the first one, and hide them
	if ($pElements.length >= 1) {
	  $pElements.parent().append('<a href=\"#\" class=\"gbl_morelink\">More</a>');
	  $pElements.hide();
	}
	var gbl_morelink_toggled = false;
	$('.gbl_morelink').click(function() {
		var $link = $(this);
		if(gbl_morelink_toggled) {
			$link.html('More');
			gbl_morelink_toggled = false;
		} else {
			$link.html('Hide');
			gbl_morelink_toggled = true;
		}
		$pElements.slideToggle('slow').toggleClass('gbl_pubstruct_body_p_margin');
		return false;
	});
	
	
	// Global Comments Link - expands comments
    $(".gbl_comments_head_link a").click(function() {
    if ( $(".gbl_comments").hasClass("gbl_comments_expanded") ) {
      $(".gbl_comments").removeClass("gbl_comments_expanded").addClass("gbl_comments_collapsed");
      $(".gbl_comments .gbl_comments_head_box").hide("slow");
      $(".gbl_comments_head_link a:first").html("Be The First To Comment");
    } else {
      $(".gbl_comments").removeClass("gbl_comments_collapsed").addClass("gbl_comments_expanded");
      $(".gbl_comments .gbl_comments_head_box").show("slow");
      $(".gbl_comments_head_link a:first").html("Post Your Comment");
    }
    });


    /* homepage */
    var btn = $("#gbl_todayinside .gbl_todayinside_morebtn img:first");
    var todayboxes = $("#gbl_todayinside .gbl_simplestruct");
    if (todayboxes.length<12) { $("#gbl_todayinside .gbl_todayinside_morebtn").hide(); }
    todayboxes.slice(7).hide();
    $("#gbl_todayinside .gbl_todayinside_morebtn").click(function () {
      if (btn.hasClass("gbl_todayinside_back")) {
        $("#gbl_todayinside .gbl_simplestruct").slice(6,12).hide();
        $("#gbl_todayinside .gbl_simplestruct").slice(0,6).show();
        btn.attr("src","/images/gbl/gbl_btn/gbl_btn_home_more.png");
        btn.toggleClass("gbl_todayinside_back");
      } else {
        $("#gbl_todayinside .gbl_simplestruct").slice(0,6).hide();
        $("#gbl_todayinside .gbl_simplestruct").slice(6,12).show();
        btn.attr("src","/images/gbl/gbl_btn/gbl_btn_home_back.png");
        btn.toggleClass("gbl_todayinside_back");
      }
    });
    $("#gbl_todayinside .gbl_todayinside_morebtn img:first").css({'width': '54px', 'height': '18px'});
    /* end: homepage */

  $("#gbl_wop_sf_deptlist .gbl_liststruct_body li:even").css("margin-right","16px");

  if ($("#gbl_layout_2col_right > div:last").attr("id")=="gbl_rsm_head") {
    $("#gbl_layout_2col_right > div:last").css("display","none");
  }

  
  //alert($("#gbl_layout_2col_right:last-child").html());
  
  // PB Media (TV/Radio) Carousel
  jQuery('#gbl_yourhosts_carousel ul:first').mycarousel({
    scroll: 1, visible:3, animation: 0
  });
  
  // SF - Humor: Party Jokes Carousel
  jQuery('#pub_party_jokes_carousel ul:first').mycarousel({
    scroll: 1, visible:1, animation: 0
  });


  /* Share button functionality */
  $(".gbl_btn_share").mouseover(function() {
    addthis_open(this,'','[URL]','[TITLE]'); 
  }).mouseout(function() { 
    addthis_close(); 
  }).mousedown(function() { 
  	return addthis_sendto(); 
  }); 

  
  
  if ($.getURLParam("mydebug")!=null) {
  }
  
  if (navigator.appVersion.indexOf("Mac")!=-1) { // Mac OS X
    $("#gbl_head_sitenav a").css("font-size", "10px");
    //$("#gbl_head_sitenav a").css("font-weight", "normal");
  }

  if (jQuery.browser.msie && jQuery.browser.version<7) { //ie 6
    
  }



/*** GBL Functions Below ***/

function parseXml(xml)
{
	if (jQuery.browser.msie)
	{
		var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.loadXML(xml);
		xml = xmlDoc;
	}
	
	return xml;
}

//Ad code
function shrinkWindowShade() {
	$("#windowshadeAd").animate({
    	width: "120px", 
        height: "90px",
        marginRight: "0px",
        marginLeft: "0px"
     }, 3000 );
	
	$("#gbl_subhead_label").animate({
    	paddingTop: "37px"
     }, 3000 );
} 


// Hide a DIV (or other elmeent) based on ID, currently used for closing an ad DIV from a SWF
function hideID(id) {
	$(id).css('display','none');	
	return;
}

// NULL out an embed object
function nullObj(id) {	
	var Obj = document.getElementById(id);
	var p1 = Obj.parentNode;
	p1.removeChild(Obj);
	p1.style.display="none";
	return;
}

//filter functions. Used by the client side filter (see Forum seciton front)
function filterSort(sortBy, direction) {
    var arr = new Array();

    //alert($('#pub_ent_sf_bloglist li'));
    //alert($('.filterable').length);

    $('.filterable').each(function() { arr.push(this)});

    //alert(arr.length)

    arr.sort(function(a,b) {
      //alert(sortBy + ":" + direction);
      //alert("sorting " + $(a).find("." + sortBy).text() + " <> " + $(b).find("." + sortBy).text() + " = " + ($(a).find("." + sortBy).text() < $(b).find("." + sortBy).text()));
      if (direction == "descending")
  	    return ($(a).find("." + sortBy).text() < $(b).find("." + sortBy).text())?1:-1;
      else
	    return ($(a).find("." + sortBy).text() < $(b).find("." + sortBy).text())?-1:1;
    });

    $("#sortedFilterContainer").append(arr);
}

function filter(cat) {
	$(".filterable").css("display","none");

	$("." + cat).css("display","block");
	if (cat=="default") {
	  $("#gbl_sf_blog_cat_filters li.catfilter > a").css("color","#666666");
	  $("#gbl_sf_blog_cat_filters ul li:first a").css("color","#3399cc");
	}
	//$("#gbl_sf_blog_cat_filters li.catfilter > a").css("color","#666666");
	//$("#gbl_sf_blog_cat_filters li." + cat + " > a" ).css("color","#3399CC");
}
$(function () {
	filter('default');
	$("#gbl_sf_blog_cat_filters li.catfilter > a").click(function() {
	  $("#gbl_sf_blog_cat_filters li.catfilter > a").css("color","#666666");
	  $(this).css("color","#3399cc");
	});
});

function setFilterInfoBox(cat) {
	if (cat == "default") {
		$("#activeFilterInfo").hide();	
	} else {
		$("#activeFilterInfo").show();
		$("#activeFilterInfo span").empty();
		$("#activeFilterInfo span").append(cat);
	}
}

function selectFilterCat(cat, stripedCat) {
	filter(stripedCat);
	setFilterInfoBox(cat);
	filterSort('defaultIndex','ascending');
}

function resetFilterCat() {
	filter('default');
	setFilterInfoBox('default');
	filterSort('defaultIndex','ascending');
}

function selectFilterSort(name, field, direction) {
	filter('filterable');
	setFilterInfoBox(name);
	filterSort(field,direction);
	name = name.replace("-","_");
	$("#gbl_sf_blog_cat_filters li." + name + " > a" ).css("color","#3399CC");
}
		



// Start Cookie Functions
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function testCookie() {
  createCookie("testCookie","hi");
  var myCookie = readCookie("testCookie");
  if ((myCookie==null) || (myCookie=="")) { return false; } else { return true; }
}
// End Cookie Functions

/**
* This method parses the search key and value on the the referrer url and sets it into a 
* cookie so ad server can target the page with relevant ads. If no search key is found, no cookie is set.
* defaultPattern is the key name of the searched keywords on most search engines (covering google, ask, live, msn).
* aolPattern is the key name for the searched keywords on the aol search engine.
* yahooPaterh is the key name for the searched keywords on the yahoo search engine.
* 
* @return void
*/
function setAdServerTargetingCookie(){
	var defaultPattern = 'q';
	var aolPattern = 'query';
	var yahooPattern = 'p';
	var searchParamPattern = new RegExp('[?&]('+defaultPattern+'|'+ aolPattern +'|'+yahooPattern+')=([^&#]*)','i');
   document.referrer.match(searchParamPattern);
   if(RegExp.$2){
   	document.cookie = "se_query="+RegExp.$2+"; domain=.playboy.com; path=/; expires= At End Of Session";
   }
}

function stripSpecialChars( value ){
	if ( value == null || value == undefined ){
		return '';
	}

	return $.trim( value.replace(/\<|\>|\%|\;|\&/g, "") );
}



