﻿eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}(';5(10.M)(w($){$.N({11:w(j,k){5(!j)t{};w B(d,e){5(!d)t y;6 f=\'\',2=y,E=y;6 g=d.x,12=l(d.O||d.P);6 h=d.v||d.F||\'\';5(d.G){5(d.G.7>0){$.Q(d.G,w(n,a){6 b=a.x,u=l(a.O||a.P);6 c=a.v||a.F||\'\';5(b==8){t}z 5(b==3||b==4||!u){5(c.13(/^\\s+$/)){t};f+=c.H(/^\\s+/,\'\').H(/\\s+$/,\'\')}z{2=2||{};5(2[u]){5(!2[u].7)2[u]=p(2[u]);2[u][2[u].7]=B(a,R);2[u].7=2[u].7}z{2[u]=B(a)}}})}};5(d.I){5(d.I.7>0){E={};2=2||{};$.Q(d.I,w(a,b){6 c=l(b.14),C=b.15;E[c]=C;5(2[c]){5(!2[c].7)2[c]=p(2[c]);2[c][2[c].7]=C;2[c].7=2[c].7}z{2[c]=C}})}};5(2){2=$.N((f!=\'\'?A J(f):{}),2||{});f=(2.v)?(D(2.v)==\'16\'?2.v:[2.v||\'\']).17([f]):f;5(f)2.v=f;f=\'\'};6 i=2||f;5(k){5(f)i={};f=i.v||f||\'\';5(f)i.v=f;5(!e)i=p(i)};t i};6 l=w(s){t J(s||\'\').H(/-/g,"18")};6 m=w(s){t(D s=="19")||J((s&&D s=="K")?s:\'\').1a(/^((-)?([0-9]*)((\\.{0,1})([0-9]+))?$)/)};6 p=w(o){5(!o.7)o=[o];o.7=o.7;t o};5(D j==\'K\')j=$.S(j);5(!j.x)t;5(j.x==3||j.x==4)t j.F;6 q=(j.x==9)?j.1b:j;6 r=B(q,R);j=y;q=y;t r},S:w(a){6 b;T{6 c=($.U.V)?A 1c("1d.1e"):A 1f();c.1g=W}X(e){Y A L("Z 1h 1i 1j 1k 1l")};T{5($.U.V)b=(c.1m(a))?c:W;z b=c.1n(a,"v/1o")}X(e){Y A L("L 1p Z K")};t b}})})(M);',62,88,'||obj|||if|var|length||||||||||||||||||||||return|cnn|text|function|nodeType|null|else|new|parseXML|atv|typeof|att|nodeValue|childNodes|replace|attributes|String|string|Error|jQuery|extend|localName|nodeName|each|true|text2xml|try|browser|msie|false|catch|throw|XML|window|xml2json|nn|match|name|value|object|concat|_|number|test|documentElement|ActiveXObject|Microsoft|XMLDOM|DOMParser|async|Parser|could|not|be|instantiated|loadXML|parseFromString|xml|parsing'.split('|'),0,{}))

var BK = BK || {};

var supportsTouch = ('createTouch' in document);

var intSliderChangeCount = 0;

$(document).ready(function () {

    intSliderChangeCount = 0;
});

function trackSliderChange() {
    if (intSliderChangeCount < 10) {
        intSliderChangeCount++;
        try {
            //dcsMultiTrack('DCS.dcsuri', 'ui/slider' + intSliderChangeCount);
            pageTracker._trackEvent(CulturePrefix + 'use_slider', 'click', 'ui/slider' + intSliderChangeCount);
        }
        catch (e) { }
    }
}

function trackSliderChangeUsage(strSliderName, strOldSliderPerm, strNewSliderPerm) {
    // Slider Perm Format:  Fun1-Food2-King3
    trackSliderChange();
    try {
        pageTracker._trackEvent(CulturePrefix + 'use_slider_' + strSliderName, strOldSliderPerm, strNewSliderPerm);
    }
    catch (e) { }
}

function setCookie(label, value, days) {
    try {
        //console.log(label,value,days);
        if (label != null && label != "") {
            if (value == null) {
                //This session cookie will be deleted.
                $.cookie(label, null);
            } else if (days == null) {
                //This session cookie will be destroyed when the user exits the browser.
                $.cookie(label, value, { path: '/' });
            } else if (days > 0) {
                //this session cookie will last for # days.
                $.cookie(label, value, { path: '/', expires: days });
            }
        }
    } catch (e) { }
}

function getCookies(sliderPos, lto) {
    try {
        var sliderPosCookie = $.cookie(sliderPos);
        var ltoCookie = $.cookie(lto);
        if (sliderPosCookie != null && ltoCookie != null) {
            $('#navigation_tiles')[0].sendBKCookies(sliderPosCookie, ltoCookie);
        } else {
            $('#navigation_tiles')[0].sendBKCookies("", "");
        }
    } catch (e) { }
}

BK.gridVars = {
	
	'intSliderChangeCount' : 0,
	'audio' : '',
	'theActivePos' : '',
	'animSpeed' : 40,
	'openPage' : '',
	'tracking' : false,
	'trackingObject' : '',
	'trackingMouseOffset' : '',
	'tileXML' : '',
	'gridXML' : '',
	'tileJSON' : '',
	'gridJSON' : '',
	'currentVal' : '',
	'assembledVal' : '',
	'downEventVar' : (supportsTouch ? 'touchstart' : 'mousedown'),
	'dragEventVar' : (supportsTouch ? 'touchmove' : 'mousemove'),
	'dropEventVar' : (supportsTouch ? 'touchend' : 'mouseup'),
	'sliderLeft' : 0,
	'sliderWidth' : 0

}





BK.jsGUtils = {
	
	init : function() {
		
		BK.gridVars.currentVal = new Array();
		BK.gridVars.currentVal['King'];
		BK.gridVars.currentVal['Fun'];
		BK.gridVars.currentVal['Food'];
		
		if ( !BK.jsGUtils.isAnIPad() ) addFlashUpgradeMessage();

		//Add faux-rounded corners for IE
		if ( $.browser.msie ) { $('.hitZone').html('<div class="ieHitLeft"></div><div class="ieHitRight"></div>') };

		//Replace Non-JS Sliders with JS-enabled sliders
		$('#NoFlashNoJSSliders').hide();
		$('.sliderArea').show();
		
		//Initiate Feed Loader
		BK.jsGUtils.loadTileFeed();		
	},
	
	trackSliderChange : function(){
		if (BK.gridVars.intSliderChangeCount < 10) {
			BK.gridVars.intSliderChangeCount++;
			try{
			    //dcsMultiTrack('DCS.dcsuri', 'ui/slider' + intSliderChangeCount);
			    pageTracker._trackEvent(CulturePrefix + 'use_slider', 'click', 'ui/slider' + BK.gridVars.intSliderChangeCount);
			}
	        catch(e){}
		}
	},
	
	setCookie : function(label, value, days){
	    try{
	    	//console.log(label,value,days);
	        if(label != null && label != ""){
	            if(value == null){
	                //This session cookie will be deleted.
	                $.cookie(label, null);
	            }else if(days == null){
	                //This session cookie will be destroyed when the user exits the browser.
	                $.cookie(label, value, { path: '/' });
	            }else if(days > 0){
	                //this session cookie will last for # days.
	                $.cookie(label, value, { path: '/', expires: days});
	            }
	        }
	    }catch(e){}
	},
	
	getCookie : function(c_name) {
		if (document.cookie.length>0) {
			c_start=document.cookie.indexOf(c_name + "=");
			if (c_start!=-1) {
				c_start=c_start + c_name.length+1;
				c_end=document.cookie.indexOf(";",c_start);
				if (c_end==-1) c_end=document.cookie.length;
				return unescape(document.cookie.substring(c_start,c_end));
			}
		}
		return "";
	},
	
	loadTileFeed : function() {
		$.ajax({
			url: '/cms'+CulturePrefix+'cms_out/info_arch/home_tiles_full.xml',
			dataType: "xml",
			success: function(data) { 
				BK.gridVars.tileXML = $(data); 
				BK.gridVars.tileJSON = $.xml2json(data);
				BK.jsGUtils.loadGridFeed();
			}
		});
	},
	
	loadGridFeed : function() {
		$.ajax({
			url: '/cms'+CulturePrefix+'cms_in/home_tile_arch.xml',
			dataType: "xml",
			success: function(data) { 
				BK.gridVars.gridXML = $(data);
				BK.gridVars.gridJSON = $.xml2json(data);
				BK.jsGBuild.init();
			}
		});
	},
	
	isAnIPhone : function() { if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) { return true } else { return false } },
	isAnIPad : function() { if((navigator.userAgent.match(/iPad/i))) { return true } else { return false } },
	
	eventAttacher : function(obj,evt,fnc,useCapture){
		if (!useCapture) useCapture=false;
		if (obj.addEventListener){
			obj.addEventListener(evt,fnc,useCapture);
			return true;
		} else if (obj.attachEvent) return obj.attachEvent("on"+evt,fnc);
	}
}





BK.jsGBuild = {
	
	init : function(){
		
		BK.gridVars.sliderWidth = 121;

		var Fun = 2; var Food = 1; var King = 1;
		var FunPct = '50%'; var FoodPct = '0%'; var KingPct = '0%';
		val = BK.jsGUtils.getCookie('BK_SliderPos');

		if (val!=null && val!="") {
			BK.gridVars.assembledVal = val;
			King = val % 10;
			val -= King;
			Food = val % 100;
			val -= Food;
			Fun = val;
			Fun /= 100;
			Food /= 10;
		}
		
		if (Fun == 1) { FunPct = '0%' } else if (Fun == 2) { FunPct = '50%' } else if (Fun == 3) { FunPct = '100%' };
		if (Food == 1) { FoodPct = '0%' } else if (Food == 2) { FoodPct = '50%' } else if (Food == 3) { FoodPct = '100%' };
		if (King == 1) { KingPct = '0%' } else if (King == 2) { KingPct = '50%' } else if (King == 3) { KingPct = '100%' };

		BK.jsGBuild.reposElem ( $('#sliderFun .scrubber'), FunPct, false)
		BK.jsGBuild.reposElem ( $('#sliderFood .scrubber'), FoodPct, false)
		BK.jsGBuild.reposElem ( $('#sliderKing .scrubber'), KingPct, false)

		BK.jsGLoader.loadNewTiles();

		$('.scrubber').bind(BK.gridVars.downEventVar, function(e){

			$(this).focus();
	  		BK.gridVars.trackingObject = $(this);
	  		BK.gridVars.sliderLeft = $(this).parent().offset()['left'];
		    if (e.preventDefault) e.preventDefault();
		    BK.gridVars.tracking = true;
		    BK.gridVars.trackingMouseOffset = $(this).width() / 2;
		});

		var funHit = document.getElementById('sliderFunHit')
		var foodHit = document.getElementById('sliderFoodHit')
		var kingHit = document.getElementById('sliderKingHit')

		if (BK.gridVars.supportsTouch) { BK.jsGUtils.eventAttacher(funHit,BK.gridVars.downEventVar, BK.jsGBuild.sliderClick, false) } else { $('#sliderFunHit').bind(BK.gridVars.downEventVar, BK.jsGBuild.sliderClick) };
		if (BK.gridVars.supportsTouch) { BK.jsGUtils.eventAttacher(foodHit,BK.gridVars.downEventVar, BK.jsGBuild.sliderClick, false) } else { $('#sliderFoodHit').bind(BK.gridVars.downEventVar, BK.jsGBuild.sliderClick) };
		if (BK.gridVars.supportsTouch) { BK.jsGUtils.eventAttacher(kingHit,BK.gridVars.downEventVar, BK.jsGBuild.sliderClick, false) } else { $('#sliderKingHit').bind(BK.gridVars.downEventVar, BK.jsGBuild.sliderClick) };
		
		BK.jsGUtils.eventAttacher(document, BK.gridVars.dropEventVar, BK.jsGBuild.droppingIt, false);
		BK.jsGUtils.eventAttacher(document,BK.gridVars.dragEventVar,BK.jsGBuild.movingIt,false);

	},
	
	sliderClick : function(e){
	
	    if (e.preventDefault) e.preventDefault();
	    		
		var offsetLeft;
		offsetLeft = $(this).offset().left;
		var outerWidth;
		if (!!$.browser.msie) {outerWidth = e.srcElement.parentNode.offsetWidth;} else {outerWidth = $(this).outerWidth();};
	
		BK.jsGBuild.playAudio('/sfx/slider');

		var touchTarget = e.touches ? e.touches.item(0) : '';
  		var clickPos = e.touches ? touchTarget.clientX : e.clientX;
  		var clickPct = Math.floor(100*(clickPos - offsetLeft) / outerWidth);
		 
	    if (clickPct < 25) { BK.jsGBuild.reposElem( $(this).parents('.sliderContainer').find('.scrubber'), '0%', true) };
	    if (clickPct >= 25 && clickPct <= 75) { BK.jsGBuild.reposElem( $(this).parents('.sliderContainer').find('.scrubber'), '50%', true) };
	    if (clickPct > 75) { BK.jsGBuild.reposElem( $(this).parents('.sliderContainer').find('.scrubber'), '100%', true) };
  	},

	droppingIt : function(e){

		if (BK.gridVars.tracking == true) BK.jsGBuild.playAudio('/sfx/slider');

		BK.jsGUtils.setCookie('BK_SliderPos', BK.gridVars.assembledVal, 1);

	    BK.gridVars.tracking = false;
	    if (!BK.gridVars.trackingObject == false) {	    
		    var currentPct = Math.floor($(BK.gridVars.trackingObject).css('left').split('%')[0] * 1);
		    if (currentPct < 25) { BK.jsGBuild.reposElem( BK.gridVars.trackingObject, '0%', true) };
		    if (currentPct >= 25 && currentPct <= 75) { BK.jsGBuild.reposElem( BK.gridVars.trackingObject, '50%', true) };
		    if (currentPct > 75) { BK.jsGBuild.reposElem( BK.gridVars.trackingObject, '100%', true) };
		};
		
		BK.jsGLoader.loadNewTiles();				
	},
	
	movingIt : function(e){ 
		if (!BK.gridVars.trackingObject == false) {
	  		
	  		BK.gridVars.theActivePos = e.touches ? e.touches[0].pageX : e.clientX;
  		
			function getCurrentPct () {
				var currentPct = (( BK.gridVars.theActivePos - BK.gridVars.trackingMouseOffset - BK.gridVars.sliderLeft ) / ( BK.gridVars.sliderWidth ));
				return currentPct;
			}
	      		
			if	( getCurrentPct () >= 0 && getCurrentPct () <= 1 && BK.gridVars.tracking == true ) {
				var sliderPctLeft =  getCurrentPct ();
				var sliderPctLeftPT = (sliderPctLeft * 100) + "%";     
				BK.jsGBuild.reposElem ( BK.gridVars.trackingObject, sliderPctLeftPT, false);
			}
			
			if	( getCurrentPct () <= 0 && BK.gridVars.tracking == true ) {
				BK.jsGBuild.reposElem ( BK.gridVars.trackingObject, '0%', false);
			}
			
			if	( getCurrentPct () >= 1 && BK.gridVars.tracking == true ) {
				BK.jsGBuild.reposElem ( BK.gridVars.trackingObject, '100%', false);
			}
		}
	},
	
	reposElem : function( whatObject, percentage, anim ) {

		if (anim == true) {
			$(whatObject).animate({'left': percentage},BK.gridVars.animSpeed);
			$(whatObject.parent().find('.slider .highlightArea')).animate({'width': percentage},BK.gridVars.animSpeed);
		} else {
			$(whatObject).css('left', percentage);
			$(whatObject.parent().find('.slider .highlightArea')).css('width', percentage);
		}

		var getForm = whatObject.parents('.sliderContainer').find('.hitZone').attr('id').split('slider')[1].split('Hit')[0];

		var pctToNum = percentage.split('%')[0] * 1;
		if (pctToNum < 25) {var numToVal = 1; $(whatObject).parent().find('.minus').addClass('active'); $(whatObject).parent().find('.plus').removeClass('active');};
		if (pctToNum >= 25 && pctToNum <= 75) {var numToVal = 2; $(whatObject).parent().find('.minus').removeClass('active'); $(whatObject).parent().find('.plus').removeClass('active');};
		if (pctToNum > 75) {var numToVal = 3; $(whatObject).parent().find('.minus').removeClass('active'); $(whatObject).parent().find('.plus').addClass('active'); };

		BK.gridVars.currentVal[getForm] = numToVal;
		BK.gridVars.assembledVal = 100*BK.gridVars.currentVal['Fun']+10*BK.gridVars.currentVal['Food']+BK.gridVars.currentVal['King'];	
	},
	
	playAudio : function(location) {
		if (testFor.htmlaudio() && BK.jsGUtils.isAnIPhone() == false && typeof Audio != 'undefined') {
			if ( testFor.htmlaudio()['ogg'] !== '' ) {
				BK.gridVars.audio = new Audio(location+".ogg");
				BK.gridVars.audio.play();
			} else if ( testFor.htmlaudio()['mp3'] !== '' ) {
				BK.gridVars.audio = new Audio(location+".mp3");
				BK.gridVars.audio.play();
			}
		}
	}
};
	


BK.jsGLoader = {
	
	loadNewTiles : function() {
		$('#TilesFlash #TilesNoFlash').show();
		if (BK.gridVars.assembledVal != BK.gridVars.openPage){
			var arrangeArray = new Array();
			arrangeArray[0] = BK.gridVars.currentVal['Fun'];
			arrangeArray[1] = BK.gridVars.currentVal['Food'];
			arrangeArray[2] = BK.gridVars.currentVal['King'];
			arrangeArray.sort();
			BK.gridVars.openPage = BK.gridVars.assembledVal;

			var arrangedVal = 100 * arrangeArray[0] + 10 * arrangeArray[1] + arrangeArray[2];

			$('#TileGrid').attr('class', 'grid-layout-'+arrangedVal);

			BK.jsGLoader.loadTileConfiguration(BK.gridVars.assembledVal);
		}
	},
	
	loadTileConfiguration : function(whatConfig) {

		var whichGroup;
		for ( var i = 0; i <= BK.gridVars.tileJSON.SliderPerms.SliderPerm.length - 1; i++) {
			if (whatConfig == BK.gridVars.tileJSON.SliderPerms.SliderPerm[i].SliderPositions) {
				whichGroup = BK.gridVars.tileJSON.SliderPerms.SliderPerm[i];
			}
		}

		var tileArray = whichGroup.TileList.split(',');

	    var gridID = whichGroup.GridID;
	   	var thisGrid;
		for ( var i = 0; i <= BK.gridVars.gridJSON.Grids.Grid.length - 1; i++) {
			if (gridID == BK.gridVars.gridJSON.Grids.Grid[i].ID) {
				thisGrid = i;
			}
		}

	    var newHTML = '';

	    for ( var i = 0; i <= tileArray.length - 1 && i < 44; i++ ) {

	    	var thisTile = tileArray[i];
	    	var tileNumber = i + 1;

			var singleTileXML;
			for ( var ib = 0; ib <= BK.gridVars.tileJSON.HomeTileFullListing.HomeTile.length - 1; ib++) {
				if (thisTile == BK.gridVars.tileJSON.HomeTileFullListing.HomeTile[ib].ID) {
					singleTileXML = BK.gridVars.tileJSON.HomeTileFullListing.HomeTile[ib];
				}
			}			

			//Extract JSON Values.		
			var tileImg = singleTileXML.ImagePathNonFlash;
			var tileLink = singleTileXML.LinkUrl;
			var tileTitle = singleTileXML.DisplayTitleAbbr;
			var tileTextColor = singleTileXML.TextHexColor.replace('0x','#');
			var tileBGColor = singleTileXML.GradientHexColorTop.replace('0x','#');
			var tileWidth = BK.gridVars.gridJSON.Grids.Grid[thisGrid].Icon[i].Width;
			var tileHeight = BK.gridVars.gridJSON.Grids.Grid[thisGrid].Icon[i].Height;

			//BUILD TILES		
		    var htmlBuild = '';
		    htmlBuild += '';
		    htmlBuild += '<li id="Tile'+tileNumber+'">';
		    htmlBuild += '<p class="title">';
		    htmlBuild += '<a rel="'+tileImg+'" href="'+tileLink+'">'+tileTitle+'</a>';
		    htmlBuild += '</p>';
		    htmlBuild += '<p class="caption">';
		    htmlBuild += '<a rel="'+tileImg+'" href="'+tileLink+'"><img src="'+tileImg+'" title="'+tileTitle+'" alt="'+tileTitle+'" width="'+tileWidth+'" height="'+tileHeight+'"/></a>';
		    htmlBuild += '</p>';
		    htmlBuild += '</li>';

		    //APPLY STYLES
		    var applyCSS = $(htmlBuild)
		    applyCSS.find('.title').css('color', tileTextColor).css('backgroundColor', tileBGColor);
		    applyCSS.find('.caption').css('color', tileTextColor).css('backgroundColor', tileBGColor);
	 		applyCSS.css('width', tileWidth+"px");
			var dropShadowBuild = "4px 4px 0px " + applyCSS.find('.caption').css('backgroundColor').replace(')', ', 0.5)').replace('rgb','rgba');
			applyCSS.find('.caption').css('-moz-box-shadow', dropShadowBuild).css('-webkit-box-shadow', dropShadowBuild).css('box-shadow', dropShadowBuild);
			if( tileHeight > 150 ) { applyCSS.find('.title a').css({ 'fontSize':'11px', 'lineHeight':'10px' }) }; 
			if( tileHeight > 300 ) { applyCSS.find('.title a').css({ 'fontSize':'14px', 'lineHeight':'12px' }) }; 


		    var tileBuildContainer = $('<div></div>');
		   	$(tileBuildContainer).append($(applyCSS));

		    //If the tile has a width / height, add it to the builder.
		    if ( tileWidth > 0 || tileHeight > 0 ){ newHTML += $(tileBuildContainer).html(); }
	    }
		newHTML = '<ul>' + newHTML + '</ul>';
	    $('#TileGrid').html(newHTML);
	}
}
