// jquery plugin JS required for addl effects
(function(jQuery){jQuery.dimensions={version:'1.2'};jQuery.each(['Height','Width'],function(i,name){jQuery.fn['inner'+name]=function(){if(!this[0])return;var torl=name=='Height'?'Top':'Left',borr=name=='Height'?'Bottom':'Right';return this.is(':visible')?this[0]['client'+name]:num(this,name.toLowerCase())+num(this,'padding'+torl)+num(this,'padding'+borr);};jQuery.fn['outer'+name]=function(options){if(!this[0])return;var torl=name=='Height'?'Top':'Left',borr=name=='Height'?'Bottom':'Right';options=jQuery.extend({margin:false},options||{});var val=this.is(':visible')?this[0]['offset'+name]:num(this,name.toLowerCase())+num(this,'border'+torl+'Width')+num(this,'border'+borr+'Width')+num(this,'padding'+torl)+num(this,'padding'+borr);return val+(options.margin?(num(this,'margin'+torl)+num(this,'margin'+borr)):0);};});jQuery.each(['Left','Top'],function(i,name){jQuery.fn['scroll'+name]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(name=='Left'?val:jQuery(window)['scrollLeft'](),name=='Top'?val:jQuery(window)['scrollTop']()):this['scroll'+name]=val;}):this[0]==window||this[0]==document?self[(name=='Left'?'pageXOffset':'pageYOffset')]||jQuery.boxModel&&document.documentElement['scroll'+name]||document.body['scroll'+name]:this[0]['scroll'+name];};});jQuery.fn.extend({position:function(){var left=0,top=0,elem=this[0],offset,parentOffset,offsetParent,results;if(elem){offsetParent=this.offsetParent();offset=this.offset();parentOffset=offsetParent.offset();offset.top-=num(elem,'marginTop');offset.left-=num(elem,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});function num(el,prop){return parseInt(jQuery.curCSS(el.jquery?el[0]:el,prop,true))||0;};})(jQuery);
(function(jQuery){var dropShadowZindex = 1;jQuery.fn.dropShadow = function(options){var opt = jQuery.extend({left: 4,top: 4,blur: 2,opacity: .5,color: "black",swap: false}, options);var jShadows = jQuery([]);this.not(".dropShadow").each(function(){var jthis = jQuery(this);var shadows = [];var blur = (opt.blur <= 0) ? 0 : opt.blur;var opacity = (blur == 0) ? opt.opacity : opt.opacity / (blur * 8);var zOriginal = (opt.swap) ? dropShadowZindex : dropShadowZindex + 1;var zShadow = (opt.swap) ? dropShadowZindex + 1 : dropShadowZindex;var shadowId;if (this.id) {shadowId = this.id + "_dropShadow";} else {shadowId = "ds" + (1 + Math.floor(9999 * Math.random()));}jQuery.data(this, "shadowId", shadowId);jQuery.data(this, "shadowOptions", options);jthis.attr("shadowId", shadowId);jthis.css("zIndex", zOriginal);if (jthis.css("position") != "absolute") {jthis.css({position: "relative",zoom: 1});}bgColor = jthis.css("backgroundColor");if (bgColor == "rgba(0, 0, 0, 0)") bgColor = "transparent";if (bgColor != "transparent" || jthis.css("backgroundImage") != "none" || this.nodeName == "SELECT" || this.nodeName == "INPUT" || this.nodeName == "TEXTAREA") {shadows[0] = jQuery("<div></div>").css("background", opt.color);} else {shadows[0] = jthis.clone().removeAttr("id").removeAttr("name").removeAttr("shadowId").css("color", opt.color);}shadows[0].addClass("dropShadow").css({height: jthis.outerHeight(),left: blur,opacity: opacity,position: "absolute",top: blur,width: jthis.outerWidth(),zIndex: zShadow});var layers = (8 * blur) + 1;for (i = 1; i < layers; i++) {shadows[i] = shadows[0].clone();}var i = 1;var j = blur;while (j > 0) {shadows[i].css({left: j * 2, top: 0});shadows[i + 1].css({left: j * 4, top: j * 2});shadows[i + 2].css({left: j * 2, top: j * 4});shadows[i + 3].css({left: 0, top: j * 2});shadows[i + 4].css({left: j * 3, top: j});shadows[i + 5].css({left: j * 3, top: j * 3});shadows[i + 6].css({left: j, top: j * 3});shadows[i + 7].css({left: j, top: j});i += 8;j--;}var divShadow = jQuery("<div></div>").attr("id", shadowId).addClass("dropShadow").css({left: jthis.position().left + opt.left - blur,marginTop: jthis.css("marginTop"),marginRight: jthis.css("marginRight"),marginBottom: jthis.css("marginBottom"),marginLeft: jthis.css("marginLeft"),position: "absolute",top: jthis.position().top + opt.top - blur,zIndex: zShadow});for (i = 0; i < layers; i++) {divShadow.append(shadows[i]);}jthis.after(divShadow);jShadows = jShadows.add(divShadow);jQuery(window).resize(function() {try {divShadow.css({left: jthis.position().left + opt.left - blur,top: jthis.position().top + opt.top - blur});} catch(e){}});dropShadowZindex += 2;});return this.pushStack(jShadows);};jQuery.fn.redrawShadow = function() {this.removeShadow();return this.each(function() {var shadowOptions = jQuery.data(this, "shadowOptions");jQuery(this).dropShadow(shadowOptions);});};jQuery.fn.removeShadow = function() {return this.each(function() {var shadowId = jQuery(this).shadowId();jQuery("div#" + shadowId).remove();});};jQuery.fn.shadowId = function() {return jQuery.data(this[0], "shadowId");};jQuery(function() {var noPrint = "<style type='text/css' media='print'>";noPrint += ".dropShadow{visibility:hidden;}</style>";jQuery("head").append(noPrint);});})(jQuery);

var xmlData;
var activePosition = 0;
//var backgroundImage;
var animationSpeed = 350;
var homePageItems = new Array();

var selectorVals = new Object();
selectorVals.MainContent = "#mainCont";
selectorVals.Title = selectorVals.MainContent+" h1 span";
selectorVals.TagLine = selectorVals.MainContent+" h2 span";
selectorVals.Body = "#itemBody";
selectorVals.BodyButton = "#itemLink";
selectorVals.BodyButtonImage = selectorVals.BodyButton+"> span";
selectorVals.MainImage = "#mainImage";
selectorVals.MainImageSel = selectorVals.MainImage+" img";
selectorVals.ColorBar = "#bgBar";

var cachedObjects = new Object();
cachedObjects.ThumbNails = new Array();

// Start function when DOM has completely loaded 
jQuery(document).ready(function(){
    jQuery("#mainCont").append('<div id="mainImage"></div>', '<div id="bgBar"></div>', '<div id="thumbCont"></div>');
    showPromo();
    //ParseXML(xmlData);
});
    
    
function CreateItems(xmlData)
{
    jQuery('item',xmlData).each(function(i) {
        var jxmlData = jQuery(this);
        homePageItem = new Object();

		//add values to properties of object
        homePageItem.Position = jxmlData.attr("position")-1;
        homePageItem.ThumbFontColor = "#"+jxmlData.find("thumb").attr("fontColor");
        homePageItem.ThumbMOFontColor = "#"+jxmlData.find("thumb").attr("moFontColor");
        
        if (typeof multilanguageBackgroundColor == "undefined"){
        	homePageItem.BackgroundColor = "#"+jxmlData.find("background").attr("bgColor");
        } else {
        	homePageItem.BackgroundColor = multilanguageBackgroundColor;
       	}
        
        homePageItem.ThumbID = "#thumb"+homePageItem.Position;
        homePageItem.ThumbImage = jxmlData.find("thumbImage").text();
        homePageItem.ThumbText = jxmlData.find("thumbText").text();
        homePageItem.ThumbLink = jxmlData.find("thumbLink").text();
        
        homePageItem.BackgroundImage = jxmlData.find("backgroundImage").text();
        homePageItem.BodyFontColor = jxmlData.find("body").attr("fontColor");
        homePageItem.TagLine = jxmlData.find("tagline").text();
        homePageItem.Title = jxmlData.find("title").text();
        homePageItem.BodyText = jxmlData.find("bodyText").text();
        homePageItem.ButtonLink = jxmlData.find("buttonLink").text();
        homePageItem.ButtonText = jxmlData.find("buttonText").text();
        
        //calls methods which builds the thumbnails on the page and binds the mouseenter event
        buildThumbs(homePageItem.ThumbImage, homePageItem.ThumbText, homePageItem.ThumbLink, homePageItem.Position);
        
        //set default color to the new thumbnail images
        cachedObjects.ThumbNails[homePageItem.Position] = jQuery(homePageItem.ThumbID);
        cachedObjects.ThumbNails[homePageItem.Position].css({backgroundColor:"#ffffff", color:homePageItem.ThumbFontColor}).children("span").css({backgroundImage:"url("+imagePath+"bg_thumb.png)"});
        
        homePageItems[homePageItem.Position] = homePageItem;
    });
    
    //add shadow to homepage thumbnails
    jQuery("#thumbCont").children("a").dropShadow({left: 2, top: 2, blur: 1});
}

function SetDefaultItem(defaultPosition)
{
	var homePageItem = homePageItems[defaultPosition];
	
	cachedObjects.ThumbNails[homePageItem.Position].css({backgroundColor:homePageItem.BackgroundColor, color:homePageItem.ThumbMOFontColor}).children("span").css({backgroundImage:"url("+imagePath+"bg_thumb_on.png)"});
	
    //add the selected h1, h2 & paragraph to the div
    cachedObjects.MainContent = jQuery(selectorVals.MainContent);
    (cachedObjects.MainContent).append('<h2><span>'+homePageItem.TagLine+'</span></h2><h1><span>'+homePageItem.Title+'</span></h1><p id="itemBody"><span>'+homePageItem.BodyText+'</span></p>');
    cachedObjects.Body = jQuery(selectorVals.Body);
    (cachedObjects.Body).append('<br /><br /><a id="itemLink" class="contButton" href="'+homePageItem.ButtonLink+'"><span>'+homePageItem.ButtonText.toUpperCase()+'</span></a>');

    cachedObjects.Title = jQuery(selectorVals.Title);
    cachedObjects.TagLine = jQuery(selectorVals.TagLine);
    cachedObjects.BodyButton = jQuery(selectorVals.BodyButton);
    cachedObjects.BodyButtonImage = jQuery(selectorVals.BodyButtonImage);
    
    (cachedObjects.Title).dropShadow({left: 1, top: 1, blur: 1, opacity: 0.45});
    (cachedObjects.TagLine).dropShadow({left: 1, top: 1, blur: 1, opacity: 0.45});
    (cachedObjects.BodyButton).css({backgroundImage:"url("+imagePath+buttonBgImg+")"}).dropShadow({left: 2, top: 2, blur: 1});
    (cachedObjects.BodyButtonImage).css({backgroundImage:"url("+imagePath+"bg_contbutton.png)"});

    jQuery(selectorVals.ColorBar).css({backgroundColor:homePageItem.BackgroundColor });
    (cachedObjects.MainContent).css({color:"#"+homePageItem.BodyFontColor});    
    var bgImage = jQuery('<img>').addClass("mainBgImage").attr("src",homePageItem.BackgroundImage);

    cachedObjects.MainImage = jQuery(selectorVals.MainImage);
    (cachedObjects.MainImage).prepend(bgImage);
    cachedObjects.MainImageSel = jQuery(selectorVals.MainImageSel);
    (cachedObjects.MainImageSel).eq(defaultPosition).animate({opacity: 'toggle'}, { duration: animationSpeed, queue: false });
    //jQuery(selectorVals.Body+" a").not(selectorVals.BodyButtonImage).css({color:"#"+homePageItem.BodyFontColor});
    
}
    

function OnThumbEnter(itemPosition)
{
	if(itemPosition != activePosition)
	{
		//alert('firing');
    	var hoveredItem = homePageItems[itemPosition];
        (cachedObjects.ThumbNails[activePosition]).css({backgroundColor:"#ffffff", color:hoveredItem.ThumbFontColor}).children("span").css({backgroundImage:"url("+imagePath+"bg_thumb.png)"});
        (cachedObjects.ThumbNails[itemPosition]).css({backgroundColor:hoveredItem.BackgroundColor, color:hoveredItem.ThumbMOFontColor}).children("span").css({backgroundImage:"url("+imagePath+"bg_thumb_on.png)"});
        (cachedObjects.MainContent).css({color:"#"+hoveredItem.BodyFontColor});
        (cachedObjects.TagLine).html(hoveredItem.TagLine).redrawShadow();
        (cachedObjects.Title).html(hoveredItem.Title).redrawShadow();
        (cachedObjects.Body).children('span').html(hoveredItem.BodyText);
        (cachedObjects.BodyButtonImage).text(hoveredItem.ButtonText.toUpperCase());
        (cachedObjects.BodyButton).attr("href",hoveredItem.ButtonLink).redrawShadow();
        //jQuery(selectorVals.ColorBar).css({backgroundColor:hoveredItem.BackgroundColor});			
        
        var img1 = jQuery("<img>").addClass("mainBgImage").attr("src",hoveredItem.BackgroundImage);
        (cachedObjects.MainImage).append(img1);
        
        var selectedImage = (cachedObjects.MainImage).children("img");
        var numItems = selectedImage.length-1;
        //alert(numItems);
        selectedImage.eq(numItems).animate({opacity: 'toggle'}, { duration: animationSpeed, queue: false });
        selectedImage.eq(numItems-1).animate({opacity: 'toggle'}, { duration: animationSpeed, queue: false, complete:function(){jQuery(this).remove()} });
        
        //update activePosition    
        activePosition = itemPosition;
    }
}

function showPromo() {
    //function that's called onload and onmouseover of thumbs
	jQuery.get(xmlFileLoc,{},function(xml){
		var xmlData = xml;
	    activePosition = jQuery(xmlData).find("activeTabOnload").attr("position")-1;
	    //xmlLoad( xmlData, isOnload, wch);
	    //ParseXML(activePosition, xmlData);
	    CreateItems(xmlData);
	    SetDefaultItem(activePosition);
	});
}

function buildThumbs(thumbImage, thumbText, thumbLink, itemPosition) {
    //function that builds the thumbs on page load
    var thumbCont = jQuery('<a id="thumb'+itemPosition+'" class="roThumb ciPartnerActive" href="'+thumbLink+'"></a>');
    jQuery(thumbCont).append('<img src="'+thumbImage+'" width="100" height="57" />', '<span class="spanCont">'+thumbText.toUpperCase()+'</span>');
    //bind mouseover function
    jQuery(thumbCont).mouseenter(function() {
    	OnThumbEnter(itemPosition);
    });
    //write the thumb to the DIV
    jQuery("#thumbCont").append(thumbCont);
}

