jQuery(document).ready(function() {
   
});

var xmlDataSet;
var objCarousel;
var curPos;
var rndNum = 0;
var TrackingSrc = "";

function isset( variable )
{
    return( typeof( variable ) != 'undefined' );
}



$(window).resize(function(){
   
    if(isset(objCarousel)){
        objCarousel.reset();       
    }
 
});



$(function() {
	$.ajax({
		type: "GET",
		url: "/featureslider/merch2.xml",
		dataType: "xml",
		success: function(xmlData)
		{
			xmlDataSet = xmlData;
			try{
			    //document.getElementById("NoJSFeature").style.display  = "none";	
			}catch (e){}	
			
		    carousel = jQuery('#FeatureSlider').jcarousel({
            itemLoadCallback: itemLoadCallbackFunction,
            visible: 1,
            scroll: 1,
            auto: 6,
            start: rndNum + 1,
            animation: 500,
            wrap: "circular",
            initCallback: onInitCarousel, 
            itemVisibleInCallback: {onBeforeAnimation: mycarousel_itemVisibleInCallback},
            itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback}
            });    
		}
	});
});

function onInitCarousel(carousel, state) {
    if (state == 'init') {
        objCarousel = carousel;
    }

} 
function itemLoadCallbackFunction(carousel, state)
{
//    for (var i = carousel.first; i <= carousel.last; i++) {
//        // Check if the item already exists
//       
//       var count = $(xmlDataSet).find('item').length;
//        if (!carousel.has(i) && i <= count) {
//          // Add the item
//		 strToAppend = "<a href='" + $('item:eq('+(i - 1)+') linkurl',xmlDataSet).text() + "'><img src='" + $('item:eq('+(i - 1)+') imageurl',xmlDataSet).text() + "' alt='" + $('item:eq('+(i - 1)+') title',xmlDataSet).text() + "'/></a>";
//		 strToAppend += "<div style='width: 160px;'>";
//		 strToAppend += "<a href='" + $('item:eq('+(i - 1)+') linkurl',xmlDataSet).text() + "'>" + $('item:eq('+(i - 1)+') title',xmlDataSet).text() + "</a>";
//		 strToAppend += "</div>";			 
//		 carousel.add(i, strToAppend);
//        }else{
//            
//        }
//    }
};

 function getStringWidth(text)
{
    var spanElement = document.createElement('span');
    spanElement.style.whiteSpace = 'nowrap';
    spanElement.innerHTML = text;
    document.body.appendChild(spanElement);
    var width = spanElement.offsetWidth;
    document.body.removeChild(spanElement);
    return width;
}


function mycarousel_itemVisibleInCallback(carousel, item, i, state, evt)
{ 

     var idx = carousel.index(i, $(xmlDataSet).find('item').length);
     var title = $('item:eq('+(idx - 1)+') title',xmlDataSet).text();
     var linktitle = $('item:eq('+(idx - 1)+') title',xmlDataSet).text();
     var linkurl = $('item:eq('+(idx - 1)+') linkurl',xmlDataSet).text();
     var imageurl = $('item:eq('+(idx - 1)+') imageurl',xmlDataSet).text();
     var price = $('item:eq('+(idx - 1)+') price',xmlDataSet).text();
     var maxLength = 160;

//Takes too long to process     
//     if(getStringWidth(linktitle + " - " + price) > maxLength){ 
//        linktitle.substring(0, linktitle.length - 2);      
//         while(getStringWidth(linktitle + " - " + price) > maxLength + 3){ 
//            linktitle = linktitle.substring(0, linktitle.length - 2);            
//         }     
//         linktitle += "...";
//     }
     
     if(TrackingSrc != ""){   
        linkurl = linkurl.replace(new RegExp("[\&\?]src\=([^\&]*)"), ((linkurl.indexOf("?") == -1)? "?src=" : "&src=") + TrackingSrc);
        if(linkurl.indexOf("src=") == -1)
            linkurl = linkurl + ((linkurl.indexOf("?") == -1)? "?src=" : "&src=") + TrackingSrc;
     } 
     
     strToAppend = "<a href='" + linkurl + "'><img src='" + imageurl + "' alt='" + title + "'/></a>";
     strToAppend += "<div style='width: 179px;'>";
     strToAppend += "<a href='" + linkurl + "'>" + linktitle + "&nbsp;-&nbsp;<span class=\"price\">" + price + "</span></a>";
     strToAppend += "</div>";			 
     carousel.add(i, strToAppend);
     
     curPos = (idx -1);
};

var tmpObj;
function mycarousel_itemVisibleOutCallback(carousel, item, i, state, evt)
{
     
    carousel.remove(i);   
          
   //fixes flashing when item is deleted in FF
   //tmpObj = carousel;
   //setTimeout("tmpObj.remove("+i+")", 100);
 
  
};