

$(function() {
	
	
	// ======================================
	// google event tracking 
	var googleTracking = new googleAnalytics();
	
	// create an array of all the sections to be used in the tracker
	var linkList = [
		{selector: "#topMenuWrapper ul li a",
		category: "Top Menu Items",
		action: "click",
		label: "@text"}
	];

	
	googleTracking.init(linkList);
	
	// ie6 png fix
	$('.menuBotLeftCorner').ifixpng();
	
	// ======================================
	// top menu
	$("ul.sf-menu").superfish({ 
        hoverClass:    'sfHover',          // the class applied to hovered list items 
	    pathClass:     'overideThisToUse', // the class you have applied to list items that lead to the current page 
	    pathLevels:    1,                  // the number of levels of submenus that remain open or are restored using pathClass 
	    delay:         100,                // the delay in milliseconds that the mouse can remain outside a submenu without it closing 
	    animation:     {opacity:'show'},   // an object equivalent to first parameter of jQuerys .animate() method 
	    speed:         0,           // speed of the animation. Equivalent to second parameter of jQuerys .animate() method 
	    autoArrows:    true,               // if true, arrow mark-up generated automatically = cleaner source code at expense of initialisation performance 
	    dropShadows:   false,               // completely disable drop shadows by setting this to false 
	    disableHI:     false
    }); 

	// ======================================
	// rating widget initiation
	$(".ratingWidget").addClass("ratingWidgetJS").removeClass("ratingWidget");
	// ======================================
	// rating widget mouseovers
	$(".ratingWidgetJS li").mouseover(function(){
		$(this).parent().addClass($(this).attr("className"));
	}).mouseout(function(){
		$(this).parent().removeClass("r1 r2 r3 r4 r5");
	});
	
	// ======================================
	// initiate tabs
	$("#tabs").tabs();
	
});



function viewLargerImage(assetPath){

	var pledgeDetailsPath = "/ajax/getLibraryAsset/libraryAsset.cfm";
	
	$.get(pledgeDetailsPath, {assetPath:assetPath}, function(data){
		
		if(data.length){
			$.modal(data,{position: ["5%","25%"]});
		}else{
			alert("Larger image is not available at the moment");
		}
	});
}


function plusEvent( obj, type, fn ) {
	if (obj.addEventListener)
		obj.addEventListener( type, fn, false );
	else if (obj.attachEvent)
	{
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}
function minusEvent( obj, type, fn ) {
	if (obj.removeEventListener)
		obj.removeEventListener( type, fn, false );
	else if (obj.detachEvent)
	{
		obj.detachEvent( "on"+type, obj[type+fn] );
		obj[type+fn] = null;
		obj["e"+type+fn] = null;
	}
}

/** 
 *  @fileoverview TextResizeDetector
 * 
 *  Detects changes to font sizes when user changes browser settings
 *  <br>Fires a custom event with the following data:<br><br>
 * 	iBase  : base font size  	
 *	iDelta : difference in pixels from previous setting<br>
 *  	iSize  : size in pixel of text<br>
 *  
 *  * @author Lawrence Carvalho carvalho@uk.yahoo-inc.com
 * @version 1.0
 */

/**
 * @constructor
 */
 
TextResizeDetector = function() {
    var el  = null;
	var iIntervalDelay  = 200;
	var iInterval = null;
	var iCurrSize = -1;
	var iBase = -1;
 	var aListeners = [];
 	var createControlElement = function() {
	 	el = document.createElement('span');
		el.id='textResizeControl';
		el.innerHTML='&nbsp;';
		el.style.position="absolute";
		el.style.left="-9999px";
		var elC = document.getElementById(TextResizeDetector.TARGET_ELEMENT_ID);
		if (elC)
			elC.insertBefore(el,elC.firstChild);
		iBase = iCurrSize = TextResizeDetector.getSize();
 	};

 	function _stopDetector() {
		window.clearInterval(iInterval);
		iInterval=null;
	};
	function _startDetector() {
		if (!iInterval) {
			iInterval = window.setInterval('TextResizeDetector.detect()',iIntervalDelay);
		}
	};
 	
 	 function _detect() {
 		var iNewSize = TextResizeDetector.getSize();
		
 		if(iNewSize!== iCurrSize) {
			for (var 	i=0;i <aListeners.length;i++) {
				aListnr = aListeners[i];
				var oArgs = {  iBase: iBase,iDelta:((iCurrSize!=-1) ? iNewSize - iCurrSize + 'px' : "0px"),iSize:iCurrSize = iNewSize};
				if (!aListnr.obj) {
					aListnr.fn('textSizeChanged',[oArgs]);
				}
				else  {
					aListnr.fn.apply(aListnr.obj,['textSizeChanged',[oArgs]]);
				}
			}

 		}
 		return iCurrSize;
 	};
	var onAvailable = function() {
		
		if (!TextResizeDetector.onAvailableCount_i ) {
			TextResizeDetector.onAvailableCount_i =0;
		}

		if (document.getElementById(TextResizeDetector.TARGET_ELEMENT_ID)) {
			TextResizeDetector.init();
			if (TextResizeDetector.USER_INIT_FUNC){
				TextResizeDetector.USER_INIT_FUNC();
			}
			TextResizeDetector.onAvailableCount_i = null;
		}
		else {
			if (TextResizeDetector.onAvailableCount_i<600) {
	  	 	    TextResizeDetector.onAvailableCount_i++;
				setTimeout(onAvailable,200)
			}
		}
	};
	setTimeout(onAvailable,500);

 	return {
		 	init: function() {
		 		
		 		createControlElement();		
				_startDetector();
 			},
 			addEventListener:function(fn,obj,bScope) {
				aListeners[aListeners.length] = {
					fn: fn,
					obj: obj
				}
				return iBase;
			},
 			detect:function() {
 				return _detect();
 			},
 			getSize:function() {
	 				var iSize;
			 		return el.offsetHeight;
		 		
		 		
 			},
 			stopDetector:function() {
				return _stopDetector();
			},
 			startDetector:function() {
				return _startDetector();
			}
 	}
 }();
 
 
function setActiveStyleSheet(title) {
	var i, a, main;
	for ( i=0; (a = document.getElementsByTagName("link")[i]); i++) {
		if (a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
			a.disabled = true;
			if(a.getAttribute("title") == title) a.disabled = false;
		}
	}
	var sizeLoc = document.getElementById("Resize");
	if (sizeLoc == null) {
		return false;
	}
	else {
		var anchors = new Array();
		anchors = sizeLoc.getElementsByTagName("a");	
		for (var i=0; i < anchors.length; i++) {
			var links = anchors[i];
			links.className = '';
		}
		switch (title) {
			case 'Standard':
			anchors[0].className="active";
			break;
			case 'Larger':
			anchors[1].className="active";
			break;
			case 'Largest':
			anchors[2].className="active";
			break;
			case 'null':
			anchors[0].className="active";
			break;
			default:
			anchors[0].className="active";
		}
	}
}

function getActiveStyleSheet() {
	var i, a;
	for (i=0; (a = document.getElementsByTagName("link")[i]); i++) {
		if (a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
	}
	return null;
}

function getPreferredStyleSheet() {
	var i, a;
	for (i=0; (a = document.getElementsByTagName("link")[i]); i++) {
		if (a.getAttribute("rel").indexOf("style") != -1
			&& a.getAttribute("rel").indexOf("alt") == -1
			&& a.getAttribute("title")
		) 
		return a.getAttribute("title");
	}
	return null;
}

function createCookie(name,value) {
	document.cookie = name+"="+value+"; 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 startUp() {
	var cookie = readCookie("style");
	var title = cookie ? cookie : getPreferredStyleSheet();
	setActiveStyleSheet(title);
}

function shutDown() {
	var title = getActiveStyleSheet();
	createCookie("style", title);
}

plusEvent(window, 'load', startUp);
plusEvent(window, 'load', init);
plusEvent(window, 'unload', shutDown);

var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);

function TakesCookies() {
	var GetsCookie = (navigator.cookieEnabled);
	if(typeof navigator.cookieEnabled=="undefined" && !cookieEnabled) {
		document.cookie = "SampleCookie";
		GetsCookie = (document.cookie.indexOf("SampleCookie")!=-1)
	}
	return GetsCookie;
}

function init() {						   
	if(TakesCookies()){		
		var html = document.getElementsByTagName("html");
		html = html[0];
		var language = html.getAttribute("lang");
		var tabValue = $('#accessMenu .lastLink').attr('tabindex') + 3;
		switch (language) {
			case 'en':
				var aaa = '';
				aaa += "<li id=\"Resize\" class=\"fontToggle\"><div>";
				aaa += "<ul>";
				tabValue--;
				aaa += "	<li><a href=\"#standard\" tabindex=\""+String(tabValue)+"\" onclick=\"setActiveStyleSheet('Standard'); return false; \"><span><span class='accessHidden'>Resize text to largest </span>A</span></a></li>";
				tabValue--;
				aaa += "	<li class='medium'><a href=\"#larger\" tabindex=\""+String(tabValue)+"\" onclick=\"setActiveStyleSheet('Larger'); return false;\"><span><span class='accessHidden'>Resize text to larger </span>A</span></a></li>";
				tabValue--;
				aaa += "	<li class='large'><a href=\"#largest\" tabindex=\""+String(tabValue)+"\" onclick=\"setActiveStyleSheet('Largest'); return false;\"><span><span class='accessHidden'>Resize text to standard </span>A</span></a></li>";
				aaa += "</ul></div></li>";
			break;
		}
		
		var loc = document.getElementById("accessMenu");
		if(loc){
			var contents = loc.innerHTML;
			var textMod = contents+aaa;	
			loc.innerHTML = textMod;
		}
		
		var sizeLoc = document.getElementById("Resize");
		if(sizeLoc){
			var anchors = new Array();
			anchors = sizeLoc.getElementsByTagName("a");	
			for (var i=0; i < anchors.length; i++) {
				var links = anchors[i];
				links.className = '';
			}
			switch (title) {
				case 'Standard':
				anchors[0].className="active";
				break;
				case 'Larger':
				anchors[1].className="active";
				break;
				case 'Largest':
				anchors[2].className="active";
				break;
				default:
				anchors[0].className="active";
			}
		}
	}	
}

