// JavaScript Document

$(document).ready(function() {
  debug('dom ready');
  $(document).pngFix();
  init();
  setEventListeners();
  /*jQuery.preloadCssImages();*/
  carouselCounter = setCounter(carouselElement);
  startCarousel(carouselElement, carouselCounter);
});

var init = function() {
    $('.dhtmlMenu').parent().css('background-color','transparent');
	
	  //Right Column Widget Image 
    $('.rightColumn .widget .overlay').each(function(i){
				   
			$(this).parent().prev('.widgetContent').prepend(this);
			$(this).show();
	  });
	
  //Select current tab
  $('#navitup > li.current').find('> a').addClass('current'); 												   
	
  //Init Tabs
	$('.tabbedNavigationGreen li').removeClass('current');
	$('.tabbedNavigationGreen li:eq(0)').addClass('current');
	$('.tabbedContentGreen > li').removeClass('current');
	$('.tabbedContentGreen > li:eq(0)').addClass('current');
	
	
  //Replace Ad Headers with sifr Text
	if(typeof sIFR == "function"){
		// This is the preferred "named argument" syntax
			sIFR.replaceElement(named({sSelector:"div.adRow h4", sFlashSrc:"js/sifr/VistaSansBold.swf", sColor:"#555555", sLinkColor:"#555555", sBgColor:"#FFFFFF", sHoverColor:"#555555", nPaddingTop:0, nPaddingBottom:0, sFlashVars:""}));
			sIFR.replaceElement(named({sSelector:"div.adRow h3", sFlashSrc:"js/sifr/VistaSansBold.swf", sColor:"#0D5C91", sLinkColor:"#0D5C91", sBgColor:"#FFFFFF", sHoverColor:"#0D5C91;", nPaddingTop:0, nPaddingBottom:0, sFlashVars:""}));
			sIFR.replaceElement(named({sSelector:"div.adRow h5", sFlashSrc:"js/sifr/VistaSansBold.swf", sColor:"#0D5C91", sLinkColor:"#0D5C91", sBgColor:"#FFFFFF", sHoverColor:"#0D5C91;", nPaddingTop:0, nPaddingBottom:0, sFlashVars:""}));		
	};  
	
  //clear empyt p tags
  $('p').each(function(i){
			     if($(this).html().match(/[\w\d\s]/))
				 {
					//debug($(this).html()); 
				 } else {
					//debug('empty');
					$(this).remove();
				 }
			  });
  
  //move imsgeLink inside widgetContent on MSB Landing
	$('.msbAdRow .imageLink').each(function(i){
			   
		$(this).prev('.widgetContent').prepend(this);
		$(this).show();
											});    

//Query String JavaScript code
var querystring = window.location.querystring;
var myValue = querystring["ekmensel"];
//for (var key in querystring) {
//	var value = querystring[key];
//	alert(key + "=" + value);
//}
//End of Query String JavaScript code


}

var setEventListeners = function() {
    debug('setting listeners');	
		$('.brandingNavCategories ul > li').hover(function(){
															 $('.brandingNavCategories ul > li').removeClass('current');
															 $('.brandingNavCategories ul > li > a').removeClass('hover');
															 $(this).addClass('current');
															 $(this).find('a').addClass('hover');
															 var index = $('.brandingNavCategories ul > li').index(this);		
															 debug(index);
															 $('.brandingNavCategoriesSub ul > li').removeClass('current');
															 																								 
															 var subString = '.brandingNavCategoriesSub ul > li:eq(' + index + ')';
															 debug(subString);
															 $(subString).addClass('current');
															 debug($(subString).hasClass('current'));
												    }, 
												    function(){}
		);
		$('.brandingNavCategoriesSub ul').hover(function(){}, 
														function(){
																   $('.brandingNavCategories ul > li').removeClass('current');
																   $('.brandingNavCategories ul > li > a').removeClass('hover');
																   $('.brandingNavCategoriesSub ul > li').removeClass('current');
														}
		);
	   $('.brandingNav').hover(function(){}, 
														function(){
																   $('.brandingNavCategories ul > li').removeClass('current');
																   $('.brandingNavCategories ul > li > a').removeClass('hover');
																   $('.brandingNavCategoriesSub ul > li').removeClass('current');
														}
		);		
		
		$('.tabbedNavigationGreen a').click(function(){	
													    $('.tabbedNavigationGreen li').removeClass('current');
													    $('.tabbedContentGreen > li').removeClass('current');
      											        var i = $(".tabbedNavigationGreen a").index(this);	
													    debug(i);
    													
													    var tabString = '.tabbedNavigationGreen li:eq(' + i + ')';
													    debug(tabString);
													    $(tabString).addClass('current');
    													
													    var contentString = '.tabbedContentGreen > li:eq(' + i + ')';
													    debug(contentString);
													    $(contentString).addClass('current');
		});
		$('.brandingControls .pause a').click(function(){
														  debug('>>pause clicked<<');			 
														  if(isCarouselOn){
														      debug('>>pause stopping carousel<<');
															  isCarouselOn = false;
															  stopCarouselTimer();
															} else {
															  debug('>>pause starting carousel<<');
															  startCarousel(carouselElement, carouselCounter);
															}	
	  });
		$('.brandingControls .previous a').click(function(){debug('>>previous clicked<<');isCarouselOn = false;displayPrevious($(carouselElement), carouselCounter);});
		$('.brandingControls .next a').click(function(){debug('>>next clicked<<');isCarouselOn = false;displayNext($(carouselElement), carouselCounter);});		
}

/* Branding Carousel */
var t;
var linkTrigger = 'x';
var carouselCounter;
var carouselElement = '.brandingContent';
var carouselDisplayLength = 7000;
var carouselFadeLength = 1000;
var isCarouselOn = false;
var isCarouselAnimating = false;


var setCounter = function(elmID){
    //debug('setDivCounter');
		var elm = $(elmID);
		var elmChildrenNum = elm.find('> li').length;
		debug('elmChildrenNum : ' + elmChildrenNum);
		$('.brandingContentMax').html(elmChildrenNum);
		return new Array(0, elmChildrenNum-1, 0);
}

var startCarousel = function(elmID, counter){
    debug('startCarousel');
	debug('total elements : ' +  $(elmID).find('> li').length);
	debug($(elmID).find('> li').length > 1);
	var elm = $(elmID);
	if($(elmID).find('> li').length > 1)
	{
		$('.brandingControls').show();
		isCarouselOn = true;
		startCarouselTimer(elm, counter);	
	} else {
		$('.brandingControls').hide();
		debug('>> do not start <<');
	}
}

var displayPrevious = function(elm, counter) {
		debug('displayNextDiv');
		if(!isCarouselAnimating) {
			stopCarouselTimer();
			
			//debug(':' + elm.find('> li').length);*/
			//debug(':' + $(elm).find('> li').length);
			//debug('linkTrigger :' + linkTrigger);
			
		  var currentNum = parseInt(counter[2]);
			var nextNum;
			
			if(linkTrigger != 'x') {
				//debug('linkTrigger true :' + linkTrigger);
				nextNum = parseInt(linkTrigger);
				linkTrigger = 'x';
			} else {
				//debug('linkTrigger false:' + linkTrigger);
				if(counter[2] > counter[0]) {
					nextNum = currentNum - 1;
				} else {
					nextNum = parseInt(counter[1]);
				}
			}	
			
				//debug('nextPanel to display' + nextNum );
				var currentString = "> li:eq(" + currentNum + ")";
				var nextString = "> li:eq(" + nextNum + ")";

			$(elm).find('> li').each(function (i) {														
				//debug('> li: ' + i + ' / current:' + counter[2]);

			if(i == counter[2]){
						//debug('match: ' + i + ' / ' + counter[2]);
						isCarouselAnimating = true;
						$(this).fadeOut(carouselFadeLength, function () {
						
							  counter[2] = nextNum;
								$(elm).find(nextString).fadeIn(carouselFadeLength);
								$(elm).find(currentString).removeClass('current');
								$(elm).find(nextString).addClass('current');
								$('.brandingContentCurrent').html(counter[2] + 1);
								startCarouselTimer(elm, counter);
								
								isCarouselAnimating = false;
							
						
						});
				}
			});
		}
}

var displayNext = function(elm, counter) {
		debug('displayNextDiv');
		if(!isCarouselAnimating) {
			stopCarouselTimer();
			
			//debug(':' + elm.find('> li').length);*/
			debug(':' + $(elm).find('> li').length);
			debug('linkTrigger :' + linkTrigger);
			
			var currentNum = parseInt(counter[2]);
			var nextNum;
						
			if(linkTrigger != 'x') {
				debug('linkTrigger true :' + linkTrigger);
				nextNum = parseInt(linkTrigger);
				linkTrigger = 'x';
			} else {
				debug('linkTrigger false:' + linkTrigger);
				if(counter[2] < counter[1]) {
					nextNum = currentNum + 1;
				} else {
					nextNum = parseInt(counter[0]);
				}
			}	
			
				debug('nextPanel to display' + nextNum );
				var currentString = "> li:eq(" + currentNum + ")";
				var nextString = "> li:eq(" + nextNum + ")";

			$(elm).find('> li').each(function (i) {														
				debug('> li: ' + i + ' / current:' + counter[2]);

			if(i == counter[2]){
						debug('match: ' + i + ' / ' + counter[2]);
						isCarouselAnimating = true;
						$(this).fadeOut(carouselFadeLength, function () {
						
							  counter[2] = nextNum;
								$(elm).find(nextString).fadeIn(carouselFadeLength);
								$(elm).find(currentString).removeClass('current');
								$(elm).find(nextString).addClass('current');
								$('.brandingContentCurrent').html(counter[2] + 1);
								startCarouselTimer(elm, counter);
								
								isCarouselAnimating = false;
							
						
						});
				}
			});
		}
}

var startCarouselTimer = function(elm, counter) {
		debug('startCarouselTimer');
		if(isCarouselOn)
		{
		  $('.pause').removeClass('paused');
		  stopCarouselTimer();  
			t=setTimeout(function(){displayNext(elm, counter)},carouselDisplayLength);
		}
}

var stopCarouselTimer = function(){
		debug('stopCarouselTimer isCarouselOn:' + isCarouselOn);
		if(!isCarouselOn)
		{
			$('.pause').addClass('paused');
		}
		if(t) {
				clearTimeout(t);
		}   
}

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


window.location.querystring = (function() {
     var collection = {};
     // Gets the query string, starts with '?'
     var querystring = window.location.search;
     // Empty if no query string
     if (!querystring) {
        return { toString: function() { return ""; } };
    }
     // Decode query string and remove '?'
     querystring = decodeURI(querystring.substring(1));
    // Load the key/values of the return collection
     var pairs = querystring.split("&");
     for (var i = 0; i < pairs.length; i++) {
         // Empty pair (e.g. ?key=val&&key2=val2)
         if (!pairs[i]) {
            continue;
        }
         // Don't use split("=") in case value has "=" in it
         var seperatorPosition = pairs[i].indexOf("=");
         if (seperatorPosition == -1) {
            collection[pairs[i]] = "";
        }
        else {
            collection[pairs[i].substring(0, seperatorPosition)] 
                = pairs[i].substr(seperatorPosition + 1);
        }
    }
     // toString() returns the key/value pairs concatenated
     collection.toString = function() {
        return "?" + querystring;
    };
     return collection;
})();