jQuery(function ($) {
   
  Tools.Application.init(APPLICATION_PATH);
    var action,Data,pathName,vavid,path;
   $(".ItemSort select").change(function(){   
	    action = this.id.split("Sort")[1];   
        Data = { Sort : this.value 	}
        pathName = window.location.search || window.location.pathname;
        vavid = pathName.match(/\d+/);
	    if(vavid !== null){  Data.vavid = vavid; }
	    path = Tools.Application.GetApplicationURL(action,Data);   
        window.location.href = path;
   });
   
  
   $(".NextItems").click(LoadItems.Load);
   $(".PrevItems").click(LoadItems.Load);
   Items.CreateTooltips();   
   var isInt =  function(x) {
	   var y=parseInt(x);
	   if (isNaN(y)) return false;
	   return x==y && x.toString()==y.toString();
	 }   

   
});




var Items = {};
 

 Items.CreateTooltips = function(){
	 
    
     $(".TooltipInformation").find(".TooltipPureDetail").addClass("TooltipDetail").removeClass("TooltipPureDetail");
     $('.itemListdl .tooltip').each(function(){   Items.CreateTooltip($(this));    });
	 
 } ;
 
 
 
 
 Items.CreateTooltip = function($this){ 
	 
	 var tooltip,target,TooltipInformation,ShortName; 
     tooltip = "leftMiddle";
     target = "rightMiddle";       
     TooltipInformation = $this.parents('.itemListdl').find(".TooltipInformation").clone(true); 
     TooltipInformation.find(".TooltipDetail").addClass("TooltipDiv").removeClass("TooltipDetail");          
     ShortName  = TooltipInformation.find(".ShortName").text(); 
    
     if ( ((  document.documentElement.clientWidth  - $this.offset().left ) ) < 400 ){
         
       tooltip = "rightMiddle";
       target = "leftMiddle";  
     }
     Items.Tooltip($this,tooltip,target,TooltipInformation,ShortName);
	 
	 
 };
 
 



 
 
 Items.Tooltip = function($this,tooltip,target,TooltipInformation,ShortName){
	 
	$this.qtip({    
	    position: {
	       corner: {
	          tooltip: tooltip, 
	          target: target 
	       }
	    },
	     content: {
	        text: TooltipInformation.html(),
	        title: { text: ShortName }
	     },                  
	    style: {
	       border: {
	          width: 2,
	          radius: 3
	       },
	       padding: 10, 
	       textAlign: 'left',
	       tip: true, // Give it a speech bubble tip with automatic corner detection
	       name: 'blue', // Style it according to the preset 'cream' style
	       fontSize: 11 ,
	       fontFamily : 'arial' ,
	       color: '#333',
	       background:'#fff'  ,
	       title : {
	         'font-size': '12px' ,  
	         'color': '#2C9AE4'
	       },
	       width:{ min : 220  ,  max : 320}  
	    },
	    show: { delay: 700  ,  effect : { type: function(length){ this.show("slide", {}, length); }  , length: 500}  },   
	    hide: { delay: 100  ,  effect : { type: function(length){ this.hide("slide", {}, length); }  , length: 500}  }   
	 }); 
};








var clickHref = function(){ window.location.href = $(this).attr("href"); }

var LoadItems = {};
LoadItems.itemList = null;
LoadItems.ListIndex = null;
LoadItems.$this = null;
LoadItems.LinkType = null;
LoadItems.itemListUL = null;
LoadItems.NextHref = new Object({ "Offers" : PAGE_SIZE  , "Backorders" : PAGE_SIZE  , "Auctions" : PAGE_SIZE  });
LoadItems.PrevHref = new Object({ "Offers" : 0  , "Backorders" : 0  , "Auctions" : 0  });
LoadItems.Status = true;
LoadItems.GenerateTooltipStatus = false;
LoadItems.Load = function(e){
	
		if(LoadItems.Status){
			LoadItems.Status = false;
		   var startingIndex;
		   LoadItems.$this = $(this);	
		   
		   LoadItems.SetItemType();
		   LoadItems.GenerateItemList();
		   LoadItems.AjaxLoad();
		   
		}
	   return false;
	   	   
	   
}; // Load Items finished



LoadItems.AjaxLoad = function(){
	
		LoadItems.AjaxData = {};
	   ParsedHref = LoadItems.$this.parents('.homepageMore').find("a:has('strong')").attr("href").split("/");
	   if(ParsedHref.length == 5){ LoadItems.AjaxData.vavid  = unescape(unescape(ParsedHref['3']));    }
	   console.log(LoadItems.AjaxData);
	   var AjaxVars = {
			    url         : Tools.Application.GetApplicationURL(LoadItems.type,{start : LoadItems.startingIndex }) ,
			    data        : LoadItems.AjaxData,
			    beforeSend  : LoadItems.BeforeSend,
			    error 		: function(){ } ,
			    dataType    : 'json'       ,
			    async       : false,
			    success     : LoadItems.LoadSuccess
	  };
	  Tools.Ajax.run(AjaxVars);   
	
}




LoadItems.LoadSuccess = function(obj){
	
    LoadItems.SetPrevNextHref(obj);
	var data = obj.GenomeData[LoadItems.type];
	for(i in data){ 
		
		LoadItems.UpdateLoadedItems(data,i);  
		
	}
	if(data.length){ 
		AuctionTimerManager.Start(); 
		vortalCometManager.startMulti();
	
	
	}
	LoadItems.itemListUL.find(".ItemActionButton:contains('Please Wait')").parents("li").hide();
	
	
};










LoadItems.UpdateLoadedItems = function(data,i){
	
	var itemLi,retail,retailClass,ItemId,$this;
	itemLi = LoadItems.itemList.find("li:not(.ClearBoth):eq("+i+")");
	itemLi.show();
	itemLi.find("dd.title").text(data[i].Short_Name);
	console.log(data[i].Short_Name);
	console.log(itemLi);
	
	/* Update Retail Starts */
	if( data[i].RetailStatus === true){
		
		retail = data[i].RetailType + ":" + data[i].RetailValue;
		retailClass = "retail";
		itemLi.find("dd.TooltipInformation .detail table tr:eq(0) td:eq(0)").text(data[i].RetailType);
		itemLi.find("dd.TooltipInformation .detail table tr:eq(0) td:eq(1)").text(data[i].RetailValue);
		
	}else{ 
		
		retail = data[i].CategoryShortName; 
		retailClass = "Capitilize";
		itemLi.find("dd.TooltipInformation .detail table tr:eq(0) td").empty();
	}
	
	itemLi.find("dt span").attr("class",retailClass).text(retail); 				//Setting up the Retail Class
	/* Update Retail Ends*/
	
	img = new Image();
	
	$(img).load(function(){ 
		$this = $(this);
		$this.hide();
		itemLi.find("dd.itemFrame a").find("img").remove().end().append(this);
		$this.show();
	}).attr({ src : data[i].Image , alt : data[i].Name});  
	
	

	
	 
	
	itemLi.find("dd.TooltipInformation .ShortName").text(data[i].Short_Name);  //Setting the Short Name
	itemLi.find("dd.TooltipInformation .LongName").text(data[i].Name); //Setting the Name
	
	

	ItemId = data[i].Item_Code;
	if(LoadItems.type == "Auctions"){ // Setting Auctions
		
		itemLi.find(":hidden[name=AuctionId]").val(data[i].AuctionId)
		itemLi.find("dd .AuctionTime").attr("id","AuctionTimeRemaining"+data[i].AuctionId).text(data[i].TimeLeft);
		itemLi.find("dd span.currentBid").attr("id","AuctionCurrentBid"+data[i].AuctionId).text(data[i].CurrentBid);	
		itemLi.find("dd.TooltipInformation .AuctionEnds").next().text(data[i].AuctionEnd); //Setting the Auctin ends
		ItemId = data[i].AuctionId;
	}  	
	
	//QueryStringLink = "/"+LoadItems.type+"?"+LoadItems.QueryStringName+"="+ItemId;  // Setting Up the Links URLs
	itemLi.find("dd a.ItemActionButton").text(LoadItems.ButtonText)  
		  .attr("href", data[i].Link)
		  .click(clickHref);	
	
	itemLi.find("dd.itemFrame a").attr("href", data[i].Link).click(clickHref); // Setting Up the Links URLs;	
	
	
};




/************* Before Send and settings ****************/



LoadItems.BeforeSend = function(){
	  
	  var itemList = LoadItems.itemList,firstDirection,secondDirection,itemListBody,itemListUL,itemListULClone;
 	  
	  if(LoadItems.LinkType == "Next" ){ firstDirection = 'left'; secondDirection = 'right'; }
	  else{firstDirection = 'right'; secondDirection = 'left'; 		  }
	  
	  
	  itemListBody    = itemList.find(".itemListBody").css('min-height', '70em');
	  var itemListULWrapper = $("<div style ='position:absolute;' />").appendTo(itemListBody);
	  itemList.find("ul.itemListUL").appendTo(itemListULWrapper);
	  itemListUL      = itemListULWrapper ;
	  
	  itemListULClone = itemListUL.clone();
	  itemListUL.hide();
	  itemListBody.append(itemListULClone.show());
	 
	  itemListULClone.hide('slide', {direction: firstDirection  , easing : 'easeInSine' }, 4000, function(){ $(this).remove(); } );
	  
	  itemListUL.show('slide', {direction: secondDirection   , easing : 'easeInSine' }, 4200 ,function(){  
 		  
 		  $(this).nextAll().remove();
 		  LoadItems.ItemsCreateAllTooltips();
 		  LoadItems.Status = true;
 		 itemList.find("ul.itemListUL:eq(0)").parent().replaceWith( itemList.find("ul.itemListUL") );
 		  
	 
 	  }); 
	  
	  
		  
 	  for ( i = 0 ;  i < itemList.find("li").length;  i++){
 		  
			itemLi = LoadItems.itemListUL.find("li:eq("+i+")");
		  	itemLi.find("dd.itemFrame img").attr("src",IMAGE_PATH+"/lazyload.gif");
		  	itemLi.find("dd.title").empty();
		  	itemLi.find("dt span").empty();
		  	itemLi.find("dd a.ItemActionButton").text("Please Wait").attr("href","#").click(function(){ return false; });
		  	itemLi.find("dd.itemFrame a").attr("href","#").click(function(){ return false; });
	  
 	  }	

	 
 	 
	
};





LoadItems.SetItemType = function(){

	   if(LoadItems.$this.hasClass("Offers")){  LoadItems.type = "Offers";}
	   else if(LoadItems.$this.hasClass("Backorders")){  LoadItems.type = "Backorders";}
	   else{  LoadItems.type = "Auctions";  }
	   
	   switch(LoadItems.type){
		   
	   	   case "Offers" : 
	    	   LoadItems.pagination = "OfferPagination";
	    	   LoadItems.ButtonText = "Make An Offer";
	    	   LoadItems.ListIndex = 1;
	    	   LoadItems.QueryStringName = "ItemCode";
	    	   
	    	   break;
		   
	   	   case "Backorders" : 
	    	   LoadItems.pagination = "BackorderPagination";
	    	   LoadItems.ButtonText = "Order Now";
	    	   LoadItems.ListIndex = 2;
	    	   LoadItems.QueryStringName = "ItemCode";
	    	   break;
		   
	   	   case "Auctions" : 
	   		  
	    	   LoadItems.pagination = "AuctionPagination";
	    	   LoadItems.ButtonText = "Bid Now";
	    	   LoadItems.ListIndex = 0;
	    	   LoadItems.QueryStringName = "AuctionId";
	    	   
	    	   break;
	   
	   };	   
	   
	   
	   if(LoadItems.$this.hasClass("NextItems")){
		   LoadItems.startingIndex = LoadItems.NextHref[LoadItems.type];
		   LoadItems.LinkType = "Next";
		   
	   }else{
		   LoadItems.startingIndex = LoadItems.PrevHref[LoadItems.type];
		   LoadItems.LinkType = "Prev";
	   }	   
	   
	   
	
};





LoadItems.GenerateItemList = function(){  

	LoadItems.itemList = $(".itemList:eq("+LoadItems.ListIndex+")");	 
	LoadItems.itemListUL = $(".itemList:eq("+LoadItems.ListIndex+")").find(".itemListUL");	 
	
};




LoadItems.SetPrevNextHref = function(obj){

	LoadItems.NextHref[LoadItems.type] = obj.GenomeData[LoadItems.pagination].Data.Next.NextPage;
	
	if(obj.GenomeData[LoadItems.pagination].Data.Prev.Status === true){
		
		LoadItems.PrevHref[LoadItems.type]	= obj.GenomeData[LoadItems.pagination].Data.Prev.PrevPage;
		
	}else{ LoadItems.PrevHref[LoadItems.type]  = 0; }	
	
}



LoadItems.ItemsCreateAllTooltips = function(){
	/* regenerate Tooltips */
	var itemLi,i;
    itemLi = LoadItems.itemListUL.find("li");
	$tooltip = itemLi.find(".tooltip");
	
	var $ddTooltip,TooltipData,itemListdl
	$tooltip.each(function (i) {
		 itemListdl = $(this).parents(".itemListdl");
		 TooltipData = $(this).html();
		 $(this).qtip("destroy").remove();
		 $ddTooltip = $("<dd class ='itemFrame tooltip' />");
		 $ddTooltip.html(TooltipData);
		 $ddTooltip.insertAfter(itemListdl.find("dt"));
	     Items.CreateTooltip($ddTooltip);
	    
	});
	
}




