var slider = new Object();

slider.info = function(){	
	var xpos = parseFloat(jQuery("#prod_slider_items").css("left"));	
	var firstitem = Math.round(-1*(xpos/slider.itemwidth))+1;
	var lastitem = firstitem + slider.viewable - 1;
	if(lastitem>slider.maxitem) lastitem = slider.maxitem;
	var searchmsg;
	if (slider.searchflag == 1) {
	  searchmsg = "searching for: " + slider.searchtitle + " <a href=\"" + slider.searchurl + "\">" + slider.link + "</a>";
	} else {
	  searchmsg = slider.searchtitle;
	}
	var displayingmsg = "displaying results: " + firstitem + " - " + lastitem + " of " + slider.maxitem;
	jQuery("#prod_slider_info").html(displayingmsg);
	slider.inuse = false;
	
	if(firstitem == 1 || slider.maxitem < slider.viewable){ 
		jQuery("#prod_slider_lbtn a").addClass("disabled");
	} else { 
		jQuery("#prod_slider_lbtn a").removeClass("disabled")
	}
	if(lastitem == slider.maxitem || slider.maxitem < slider.viewable){ 
		jQuery("#prod_slider_rbtn a").addClass("disabled");
	} else { 
		jQuery("#prod_slider_rbtn a").removeClass("disabled");
	}
	
}

slider.moveright = function(){
	if(!slider.inuse & !jQuery("#prod_slider_rbtn a").hasClass("disabled")){
		slider.inuse = true;
		var xpos = parseFloat(jQuery("#prod_slider_items").css("left"));
		newxpos = slider.viewable * Math.round((xpos - (slider.viewable * slider.itemwidth)) / slider.viewable);
		if(newxpos<=slider.stoplimit){newxpos = slider.stoplimit;}
		jQuery("#prod_slider_items").animate({ left: newxpos + "px" },slider.easespeed,slider.easetype,function(){slider.info()});
	}
}

slider.moveleft = function(){
	if(!slider.inuse & !jQuery("#prod_slider_lbtn a").hasClass("disabled")){
		slider.inuse = true;
		var xpos = parseFloat(jQuery("#prod_slider_items").css("left"));
		newxpos = slider.viewable * Math.round((xpos + (slider.viewable * slider.itemwidth)) / slider.viewable);
		if(newxpos>0){newxpos = 0;}
		jQuery("#prod_slider_items").animate({ left: newxpos + "px" },slider.easespeed,slider.easetype,function(){slider.info()});
	}
}

slider.init = function(link,searchflag,searchtitle,searchurl,currentSku,currentColorCode,p_url,pd_base_url){
	jQuery.ajax({
	type: "GET",
    url: p_url,
	dataType: "xml",
	success: function(xmlData) {
		xmlDataSet = xmlData;
		
		// Find how many items, then choose one at random
		var resultSetLength = jQuery("endecaRecord",xmlDataSet).length;
		
		// start the code to be written in the slider
		var strItems = "";
		strItems += "<div id=\"prod_slider_info\"></div>";
		strItems += "<table cellspacing=\"0\" id=\"prod_slider_table\">";
		strItems += "<tr>";
		strItems += "<td id=\"prod_slider_lbtn\"><a>previous</a></td>";
		strItems += "<td width=\"650\"><div id=\"prod_slider_itemholder\"><div id=\"prod_slider_items\">";
		strItems += "<ul>";
		
		// start looping through the items to create the unordered list
		
		for(var i=0;i<resultSetLength;i++){
		
			var itemNode = jQuery("endecaRecord:eq(" + parseInt(i) + ")",xmlDataSet);			
			
			// set all variables based on item number
			var strItemId = jQuery("itemId",itemNode).text();       // complete 17-digit sku
			var strItemNbr = jQuery("itemNumber",itemNode).text();  // 8-digit item number
			var strPrice = jQuery("salePrice",itemNode).text();
			var strColorCode = jQuery("itemColorCode",itemNode).text();
			var strColor = jQuery("itemColorName",itemNode).text();
			var strImgStatusFlag = jQuery("imgStatusFlag",itemNode).text();
			var strDescription = jQuery("shortDesc",itemNode).text();
			var strImageId = jQuery("imageId",itemNode).text();
						
			// make some adjustments for display
			var strPriceSnippet = ( strPrice == "0" || strPrice == "null" ) ? "" : ("$" + strPrice);
			var strImageSnippet = strImageId;
			var strLinkSnippet = jQuery("productUrl",itemNode).text();
			var strBuyNow = jQuery("buyNowUrl",itemNode).text();
					
			// add in the html to create the list item
			if((currentSku == strItemId) || (currentSku.substring(0,8) == strItemNbr && currentColorCode == strColorCode)) {
				strItems += "<li class=\"selected\">";
			} else {
				strItems += "<li>";	
			}	
			strItems += "<a class='sliderproduct' href=\"" + strLinkSnippet + "\" target=\"_blank\">";
			strItems += "<img src=\"" + strImageSnippet + "\" alt=\"" + strItemNbr + " - " + strColor + "\" class=\"itemwidth\" />";
			strItems += "<br />";
			strItems += "<p>Item: " + strItemNbr + "</p>";
			strItems += "<p>" + strDescription + "</p>";
			strItems += "<p>" + strPriceSnippet + "</p>";
			strItems += "</a>";
			strItems += "<a class='bottom' target=\"_blank\" href=\"" + strBuyNow + "\">BUY NOW</a>";
			strItems += "</li>";
				
		}
		
		// end the unordered list of items
		strItems += "</ul>";
		strItems += "</div></div></td>";
		strItems += "<td id=\"prod_slider_rbtn\"><a>next</a></td>";
		strItems += "</tr>";
		strItems += "</table>";
		strItems += "<div id=\"prod_slider_border\"></div>";
				
		// add html to the page
		jQuery("#prod_slider").html(strItems);
				
		// define common variables	
		slider.viewarea = jQuery("#prod_slider_itemholder").width();
		slider.easetype = "easeOutBack";
		slider.easespeed = 1500;
		
		anchorwidth = parseFloat(jQuery("#prod_slider_items img").css("width")) + 2 + 8; // image width + border + margin		
		slider.viewable = Math.floor(slider.viewarea/anchorwidth);
		spacebetween = Math.floor(Math.floor(slider.viewarea-(slider.viewable*anchorwidth))/(slider.viewable - 1));		
				
		//alert(slider.viewarea + " : " + anchorwidth  + " : " + slider.viewable  + " : " + spacebetween);
		
		slider.itemwidth = jQuery("#prod_slider_items li").width() + spacebetween; // get the width now that margin has been added
		slider.maxitem = jQuery("#prod_slider_items li").length;
		slider.maxwidth = slider.itemwidth * slider.maxitem;
		slider.viewable = Math.round(slider.viewarea/slider.itemwidth);
		slider.stoplimit = (slider.viewable * slider.itemwidth) - slider.maxwidth;
		
		jQuery("#prod_slider_items li a").css("margin-right",spacebetween);
		jQuery("#prod_slider_itemholder").css("height",jQuery("#prod_slider_items").height());
		
		//alert(slider.viewarea + " : " + slider.viewable * slider.itemwidth);
		
		// calculate the displaying information
		slider.link = link;
		slider.searchflag = searchflag;
		slider.searchurl = "http://devsathweb.jewelry.acn/catalog/search.jsp?" + searchurl;
		slider.searchtitle = searchtitle;
		slider.info();
		 
		// define mouse events
		jQuery("#prod_slider_lbtn a").click(function(){slider.moveleft()});
		jQuery("#prod_slider_rbtn a").click(function(){slider.moveright()});
		
		// END AJAX 
		
		}
	});
}

