// JavaScript Document
$(document).ready(function() {

    jQuery.fn.exists = function() { return this.length > 0; }

    debug('dom ready');
    $(document).pngFix();
    setEventListeners();
    //$('#Callouts li').biggerlink();


    //$('.rollover').biggerlink();


    noFlash();
    jQuery.preloadCssImages();

});


var setEventListeners = function() {
    debug('setting listeners');	
		$('#MainNav li').hover(function(){addHover(this);}, function(){removeHover(this);});
		$('.BrandingList > li').hover(function(){addRolloverHover(this);}, function(){removeRolloverHover(this);});
    $('.orangeButton').hover(function(){addButtonHover(this);}, function(){removeButtonHover(this);});
	
	$('#shareLink .share').hover(function(){showShare();},null);
	$('#shareLink').hover(null, function(){hideShare();});
}

var noFlash = function(){
	if(swfobject.hasFlashPlayerVersion('8'))
	{
	  //debug('has flash');
	} 
	else {
	  //debug('no flash');
	  $('#Craveable').css('left','520px').css('top','-90px');
	  $('#Craveable h3').css("background","transparent url('img/illustration-craveable.png') left top no-repeat");
	  $('#Naturals').css('left','300px').css('top','20px');
	  $('#Naturals h3').css("background","transparent url('img/illustration-naturals.png') left top no-repeat");
	  $('#Healthy').css('left','752px').css('top','-50px');
	  $('#Healthy h3').css("background","transparent url('img/illustration-helpers.png') left top no-repeat");
    }		
}


var addHover = function(elm, isRollover) {
	debug('addHover: ' + elm.id);
	if(isRollover)
	{
		$(elm).find('.rolloverContainer').addClass('hover');
	} else {
		$(elm).addClass('hover');
	}
}

var removeHover = function(elm, isRollover) {
	debug('removeHover: ' + elm.id);
	if(isRollover)
	{	
		$(elm).find('.rolloverContainer').removeClass('hover');
	} else {
		$(elm).removeClass('hover');
	}
}


var addButtonHover = function(elm) {
	debug('addButtonHover: ' + elm.id);
  $(elm).addClass('hover');
	$(elm).find('a').addClass('hover');
}

var removeButtonHover = function(elm) {
	debug('removeButtonHover: ' + elm.id);
	$(elm).removeClass('hover');
  $(elm).find('a').removeClass('hover');
}


var addRolloverHover = function(elm) {
	debug('addRolloverHover: ' + elm.id);
	  $(elm).find('h3').addClass('hover');
		$(elm).find('.rolloverContainer').addClass('hover');
}

var removeRolloverHover = function(elm) {
	debug('removeRolloverHover: ' + elm.id);
	  $(elm).find('h3').removeClass('hover');	
		$(elm).find('.rolloverContainer').removeClass('hover');
}





jQuery.preloadCssImages = function(){
        var allImgs = [];//new array for all the image urls  
        var k = 0; //iterator for adding images
        var sheets = document.styleSheets;//array of stylesheets
        for(var i = 0; i<sheets .length; i++){//loop through each stylesheet
                var cssPile = '';//create large string of all css rules in sheet
                var csshref = (sheets[i].href) ? sheets[i].href : 'window.location.href';
                var baseURLarr = csshref.split('/');//split href at / to make array
                baseURLarr.pop();//remove file path from baseURL array
                var baseURL = baseURLarr.join('/');//create base url for the images in this sheet (css file's dir)
                if(baseURL!="") baseURL+='/'; //tack on a / if needed
                if(document.styleSheets[i].cssRules){//w3
                        var thisSheetRules = document.styleSheets[i].cssRules; //w3
                        for(var j = 0; j<thisSheetRules.length; j++){
                                cssPile+= thisSheetRules[j].cssText;
                        }
                }
                else {
                        cssPile+= document.styleSheets[i].cssText;
                }
                //parse cssPile for image urls and load them into the DOM
                var imgUrls = cssPile.match(/[^\(]+\.(gif|jpg|jpeg|png)/g);//reg ex to get a string of between a "(" and a ".filename"
                if(imgUrls != null && imgUrls.length>0 && imgUrls != ''){//loop array
                        var arr = jQuery.makeArray(imgUrls);//create array from regex obj        
                        jQuery(arr).each(function(){
                                allImgs[k] = new Image(); //new img obj
                                allImgs[k].src = (this[0] == '/' || this.match('http://')) ? this : baseURL + this;     //set src either absolute or rel to css dir
                                k++;
                        });
                }
        }//loop
        return allImgs;
} 


var debug = function(what){
	if(window.console && window.console.firebug){
		//console.log(what);
	}	
	else{
		//alert(what);
	}
}

function showShare(){
    debug('showShare');
	$('#socialPopup').show();	
	$('.share').addClass('shareHover');
}

function hideShare(e){
    debug('hideShare');
	$('.share').removeClass('shareHover');
	$('#socialPopup').hide();
}


if ( document.images )
{
treats_on = new Image ( );
treats_off = new Image ( );
treats_on.src = "../img/nav-main-catTreats-on.png";
treats_off.src = "../img/nav-main-catTreats-off.png";

care_on = new Image ( );
care_off = new Image ( );
care_on.src = "../img/nav-main-catCare-on.png";
care_off.src = "../img/nav-main-catCare-off.png";

fun_on = new Image ( );
fun_off = new Image ( );
fun_on.src = "../img/nav-main-funGames-on.png";
fun_off.src = "../img/nav-main-funGames-off.png";

offers_on = new Image ( );
offers_off = new Image ( );
offers_on.src = "../img/nav-main-specialOffers-on.png";
offers_off.src = "../img/nav-main-specialOffers-off.png";

register_on = new Image ( );
register_off = new Image ( );
register_on.src = "../img/nav-main-register-on.png";
register_off.src = "../img/nav-main-register-off.png";

contact_on = new Image ( );
contact_off = new Image ( );
contact_on.src = "../img/nav-main-contactUs-on.png";
contact_off.src = "../img/nav-main-contactUs-off.png";
}
function button_on ( imgName )

{
	if ( document.images )
	{
		butOn = eval ( imgName + "_on.src" );
		document [imgName].src = butOn;
	}
}
function button_off ( imgName )
{
	if ( document.images )
	{
	        butOff = eval ( imgName + "_off.src" );
	        document [imgName].src = butOff;
	}
}




	// Facebook asyncronous load
	
	(function(d, s, id) {
  	var js, fjs = d.getElementsByTagName(s)[0];
	  if (d.getElementById(id)) return;
  	js = d.createElement(s); js.id = id;
	  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=112346652222150";
  	fjs.parentNode.insertBefore(js, fjs);
	}(document, 'script', 'facebook-jssdk'));

	// Facebook token retreival
	
	var appID = '112346652222150';
	var appSecret = '5d8a8244efad4869d503fe1c7ab13d05';
	var FBAccessToken;
	
	var getFBAccessToken = function(callback) {
		var accessTokenURI = 'https://graph.facebook.com/oauth/access_token?client_id='+appID+'&client_secret='+appSecret+'&grant_type=client_credentials';
		
		// If it's already been retreived, just call callback
		if (FBAccessToken) {
			if(callback) callback(FBAccessToken);
			return;
		}
		
		$.get(
			'/proxy.aspx?u='+escape(accessTokenURI),
			function(data){
				FBAccessToken = data.split('=')[1];
				if (callback) callback(FBAccessToken);
			}
		);
		
	};





