$(function(){
     /******compare product in the product list page *******/
    var comCheckbox = 'div.compareselect  input[id^=sidebyside]';
    if($(comCheckbox)){
        //init the checkbox and a-link
        var jvoid = 'javascript:{};';
        $(comCheckbox).attr("checked","").next('a.compare').unbind('click').attr('href',jvoid);
        var re =[], sCookieName='sbsids' ;
        var strQuery = location.search? location.search.replace('?','&'):'';
        var objNewQuery = {ch:jsPara.ch, ca:jsPara.ca, retpage:location.pathname};
        var gotoUrl = '/goto_sidebyside.php?'+$.param(objNewQuery)+strQuery;
        var schannel = parseInt(jsPara.ch,10)<10?'0'+jsPara.ch : jsPara.ch;
        var regpatt = new RegExp('\\d+'+schannel+'#',"g");
        $(comCheckbox).click(function(){
            var oldCookie=$.cookie(sCookieName)?$.cookie(sCookieName):'';
            var cProID = ','+$(this).val()+'#';
            if($(this).attr('checked') && oldCookie && oldCookie.indexOf(cProID) ==-1 
            	&& (re=oldCookie.match(regpatt)) && re.length>=5) {
	            	alert('Please select no more than 5 products to compare features!');
	            	$(this).attr('checked','');
	            	return ;
           }else{  
                if($(this).attr('checked')){   
                    if(oldCookie){
                    	if(oldCookie.indexOf(cProID) ==-1){
                    		$.cookie(sCookieName,oldCookie+cProID,{path:'/'});
                    	}
                    }else{
                    	$.cookie(sCookieName,'null'+cProID,{path:'/'});
                    }
                }else{
                    if(oldCookie && oldCookie.indexOf(cProID) >-1){
                    	$.cookie(sCookieName,oldCookie.replace(cProID,''),{path:'/'});
                    }
                }
                //rebuild the compare url
                //cookie such as null,20145706#,27862506#,27854906#
                var currentCh = $.cookie(sCookieName) && $.cookie(sCookieName).match(regpatt)?$.cookie(sCookieName).match(regpatt):[];
                var prodNum = currentCh.length;
                if(prodNum>1){
                    var comUrl = gotoUrl, elem='';
                    for (var i=0;i<prodNum;i++){
                    	elem =  currentCh[i].toString().slice(0,-1);
                    	comUrl += '&sidebyside'+elem+"="+elem;
                    }      
                }
                
                //loop to deal with checkbox list 
                $(comCheckbox).each(function(){
                    if($(this).attr('checked')){
                        if(prodNum>1){
                            $(this).next('a.compare').attr({href:comUrl,target:'_blank',title:'Compare selected products'}).css('color','#0066CC');   
                        }else{
                             $(this).next('a.compare').attr({href:jvoid,title:'Select another product to compare'}).removeAttr("target").removeAttr('style');   
                        }
                    }else{
                        $(this).next('a.compare').attr('href',jvoid).removeAttr('target').removeAttr('style').removeAttr('title');
                    }
                });
            }
        });
        
        
        //if refresh the page, reset checkbox with cookie
        if($.cookie(sCookieName)){
            var arrComId = $.cookie(sCookieName).slice(5,-1).split('#,');
            var dom = null;
            for(var k in arrComId){
                if(dom=$('#sidebyside'+arrComId[k]).get(0)){
                    dom.click();
                }
            }
        }
    }
    
    /****copy coupon code with flash****/
    var spanCoupon = 'div.dealwrapper li span[name=spanCoupon]';
    if($(spanCoupon)){
    	$(spanCoupon).each(function(i){
    		var store_url = $(this).prev().attr('href');
    		var coupon_code = $.trim($(this).text()).slice(5);
    		$(this).next().html(createFlash(coupon_code,i,store_url));
    	});
    }
    
    /*****fold more deals in the sort by deal page******/    
    var aMoreDeals = 'div.dealwrapper a[name=moredeals]';
    if($(aMoreDeals)){
        $(aMoreDeals).toggle(
            function(){
                $(this).prev('ul').children('li').show();
                $(this).removeClass('moredeals').addClass('lessdeals').html('Less Deals');
            },
            function(){
                $(this).prev('ul').children('li:nth-child(n+3)').hide();
                $(this).removeClass('lessdeals').addClass('moredeals').html('More Deals');
            }
        ).prev('ul').children('li:nth-child(n+3)').hide();
    }
    
    /***change grid view style cookie***/
    var aViewStyle = '#viewstyle';
    if($(aViewStyle)){
    	var ckViewStyle = 'view_style';
    	$(aViewStyle).click(function(){
    		if($(this).html().indexOf('list') > -1){
    			$.cookie(ckViewStyle,'list',{path:'/'});
    		}else{
    			$.cookie(ckViewStyle,'grid',{path:'/'});
    		}
    		window.location.reload();
    	});
    }
    
    /******quick view popup show coupon,rebate,blog********/
    var prodDetailUrl = globalObj.prodDetailUrl;
    var load_flag = '';
    var couponOverlay = function(self,opapa){
			var dt = self.attr('className');
			var da = self.attr('name');
			var dy = self.attr('overlay');
			var wrap = $(dy+" div.wrap"); 
			var ntop = dy.indexOf('high')>-1 ?100:230;
			var ftop = parseFloat($('div.overlayquickview').offset().top,10)+ntop;	
			var papa = opapa.parents('li.imgbox');
			var lidisn = papa.siblings('li[name="popup"]');
			
			self.overlay({
				onBeforeLoad: function(){
					var shtml = lidisn.find('div[name="popup'+dt+'"]').clone().html() || '';
					wrap.html(shtml);
					//change rebate price=0 style
					 if(dt=='rebate'){
						var amount = wrap.find('li.amount');
						if($.trim(amount.text()).slice(-2)=='$0'){
							amount.html('<strong>Rebate Amount:</strong>Free Gift');
						}
					 }
				},
				onLoad:function() {
					//add copy flash after wrap dom complete
					if(dt=='coupon'){
						wrap.find('div.couponlist').each(function(i){
							var t = $(this).find(' li.code>a');
							var store_url = t .attr('href');
				    		var coupon_code = t .text();
				    		t.after(createFlash(coupon_code,i,store_url));
						});
					}
					$(dy).addClass('background'+(dy=='div.overlay'?'short':'high'));
				},
				// common configuration for each overlay
				zIndex: 100000,
				//start:{top:1},
				finish : {top:ftop,absolute:true},
				oneInstance: false, 
				multiLayer : true,
				closeOnClick: false, 
				close: 'div.close',
				onClose: function(){wrap.empty();$(dy).hide(100);}
			});		
			
	};
	
	/******quick view popup show video********/
	var videoOverlay = function(self) {
		var dt = self.attr('className');
		var da = self.attr('name');
		var dy = self.attr('overlay');
		var wrap = $(dy+" div.wrap"); 
		var ftop = parseFloat($('div.overlayquickview').offset().top,10)+180;	
	
		self.overlay({
			onLoad: function(){
				jQuery.post(prodDetailUrl, {'dt':dt, 'data':da}, function(data, textStatus){
				    if(!data[0]) return false;
					var vals = data[0].values[0]||null;
					$f('popplayer', {src:fileServer+'jscript/flowplayer/flowplayer.commercial-3.0.3.swf', wmode:'opaque'}, {
						key: '#$6157e3f46cb330bc4aa',	
						playlist: [{url: vals['imageurl'],scaling: 'orig'},
							{url: vals['url'],autoPlay: false}],
						plugins:{
							controls:{
								url: fileServer+'jscript/flowplayer/flowplayer.controls-3.0.3.swf',
								fullscreen: false,
								time: false,
								backgroundColor: '#3C3D37',
								backgroundGradient: 'low',
								buttonColor: '#BDCD80',
								buttonOverColor: '#BDCD80',
								timeColor: '#ffffff',
								progressColor: '#9FB086',
								bufferColor: '#9FB086'
							}
						}
					});	
				}, 'json');
			},	
			zIndex: 100001,
			finish : {top:ftop,absolute:true},
			oneInstance: false, 
			multiLayer : true,
			closeOnClick: false, 
			close: 'div.close',
			onClose: function(){wrap.empty();$(dy).hide(100);}
		});	
		//remove Drag
		$('#overlaybox').unbind('dragstart').unbind('drag').removeClass('cursor');
	};
	
	/*****quick view popup save wishlist*******/
	var itemLimit = globalObj.itemLimit;
	var cookieOpt = globalObj.cookieOpt;
	var saveWishList = function(self){//need check douple
	    var ml = $.cookie('MyList')||'';
	    var data = self.attr('name');
	    //var t1 = self.parents('td.t2').siblings('td.t1');
	    if (ml==null) ml = '';
	    // stop when already in mylist 
	    if (ml.indexOf(data)>-1)  {
	    	alert('This product is already in your Wish List.');
	        return false;
	    } 
	    //overflow
	    if(ml.split('*').length>=itemLimit){
	    	alert('Your WishList is full! Delete an item to add this product.');
	    	return false;
	    }
	    // start pack data
	    d = new Date(); 
	    var s = (d.getUTCMonth() + 1) + 'x' + d.getUTCDate() + 'x' + d.getUTCFullYear();
	    data += '-'+s;
	    if(ml!='') data = '*'+data;
	    $.cookie('MyList', ml+data, cookieOpt);
	    //show overdiv
	    var h = $('div.mylist').outerHeight();
	    $('div.overmylist').height(h).css({'opacity':'0.8', 'margin-top':'-'+h+'px'}).show();
	    // reload data by AJAX
	    loadAjaxData('ml');
	    self.blur().text('Saved!').addClass('saved').unbind('click');//change self text
	    return false;
	};

    /***show grid view big image begin***/
    var quickBigImg = 'div.gridwrapper img[id^=quickbigimg]';
    $(quickBigImg).hover(
	  function () {$(this).parent().siblings('a:first').find('img[overlay]').show();},
	  function () {
		  var rel = $(this).parent().siblings('a:first').find('img[overlay]');
		  var t = window.setTimeout(function(){rel.hide();},0);
		  rel.hover(function(){clearTimeout(t);},function(){$(this).hide();});
	  }); 
      
    var overlayGrid = 'div.gridwrapper img[overlay]';
    $(overlayGrid).each(function(i){	
		var dy = $(this).attr('overlay');
        var wrap = $(dy+" div.wrap");
        var parent = $(this).parents('li.imgbox');
        var palast = parent.find('a:eq(1)');
        var url = palast.attr('href');
        var pname = palast.attr('title');
        var showname = pname.length>80?pname.slice(0,80)+'...':pname;
        
        var lidisn = parent.siblings('li.disn');
        var desc = lidisn.find('span[name=desc]').html() || '';
        var minurl = decodeURIComponent(lidisn.find('span[name=minpriceurl]').html().replace(/%2E/g,'.'));
        var detailurl = decodeURIComponent(lidisn.find('span[name=detailurl]').html().replace(/%2E/g,'.'));
        var logo = lidisn.find('div.info').html();
        var sdata = lidisn.find('span[name=data]').html();
        var odata = eval('({'+$.trim(sdata)+'})') || {};
        var omyself = $(this);
		$(this).overlay({	
			onBeforeLoad: function(){
				//tracking begin
				var guidesterData = parent.parent().attr('name');
				if(guidesterData!=''){//is a guidester product
					var ch_cat_data = parent.find('a.savetowishlist').attr('name');
	                var chid = ch_cat_data.split('-')[0]-0;
	                var prodid = ch_cat_data.split('-')[1]-0;
	                var cateid = guidesterData.split('-')[0]-0;
	                var mercount = guidesterData.split('-')[1]-0;
	                var trackingUrl = "/stats/scripts/async.php?";
	                    trackingUrl += 'bt=105&pagenum=1';
	                    trackingUrl += '&chid='+chid;
	                    trackingUrl += '&cateid='+cateid;
	                    trackingUrl += '&prodid='+prodid;
	                    trackingUrl += '&displaypos='+(i+1);
	                    trackingUrl += '&mercount='+mercount;
	                    trackingUrl += '&resultcount='+(parent.parent().siblings().length);
	                jQuery.post(trackingUrl, null, function(data, textStatus){});
                }
				//tracking end
				var cloneView = $('div[name=divquickview]').clone().removeClass('disn');
                var infoicon = odata.hasVideo=='YES'? '<a class="video"  overlay="div.overlayvideo" rel="nofollow">Video</a>':'';
                      infoicon += odata.hasCoupon=='YES'?'<a class="coupon" overlay="div.overlay'+(parseInt(odata.couponCount,10)>1?"high":"")+'" rel="nofollow">Coupon</a>':'';
                      infoicon += odata.hasRebate=='YES'? '<a class="rebate" overlay="div.overlay" rel="nofollow">Rebate</a>':'';
                      infoicon += odata.hasBlog=='YES'? '<a class="blog" overlay="div.overlayhigh" rel="nofollow">Blog</a>':'';
                      infoicon +=  ($.cookie('MyList')||'').indexOf(odata.wishlistID)>-1 ?
                    		  			'<a class="savetowishlist saved"  href="javascript:{};">Saved!</a>' :
                    		  			'<a class="savetowishlist"  href="javascript:{};">Save to Wish List</a>';                
                var quickprice = odata.mcount !='1'?"from":"for";
                var nofollow = odata.mcount !='1'?'':'rel="nofollow"';
                var logostyle = odata.isFeature=="YES"? '':'no';
                var sfreeship = odata.isFS=="YES"?'<div class="freeshipping"><span>Free Shipping</span></div>':'';
                var quickcompare = odata.mcount !='1'?'<a>Compare Price from '+odata.mcount+' stores</a>':'';
                var pricestyle = odata.isFS=="YES"?"":"no";
                //var moredesc = desc.length>0?desc+'<a href='+detailurl+' target="_blank">&nbsp;more</a>':desc;
                var quickreview = (parseFloat(odata.avgRating,10)>0 && parseInt(odata.reviewCount,10)>0)?
                		'<div class="quickreview"><a class="review" overlay="div.overlay'+(parseInt(odata.reviewDispCount,10)>1?"high":"")+'" target="_blank" href="'+decodeURIComponent(odata.reviewUrl.replace(/%2E/g,'.'))+'"><div class="star-rating" title="rating:'+odata.avgRating+'%"><div class="current-rating" style="width: '+odata.avgRating+'%;"></div></div></a>'+ 
                		'<span> <a target="_blank" href="'+decodeURIComponent(odata.reviewUrl.replace(/%2E/g,'.'))+'">'+odata.reviewCount+' Review'+(parseInt(odata.reviewCount,10)>1?"s":"")+'</a></span></div>'
                		:'';
                var originalprice = (odata.oldPrice!='0' && parseFloat(odata.price.slice(1),10))>0?'<span class="originalprice">$'+odata.oldPrice+'</span>':'';
                var showprice = parseFloat(odata.price.slice(1),10)>0 ? odata.price : '';
		
                var shtml = '<div class="pimg"><a title="'+pname+'" '+nofollow+'><div class="preload"></div></a></div>'+
							'<div class="moresection">'+
								'<a class="quicktitle" '+nofollow+' title="'+pname+'" >'+showname+'</a>'+quickreview+
								(parseFloat(odata.price.slice(1),10)>0?'<div class="quickprice">'+quickprice+' <strong>'+odata.price+'</strong></div>':'')+
								'<p>'+desc+'</p>'+
                                '<div class="infoicon">'+infoicon+'</div>'+
                                '<div class="quickcompare">'+quickcompare+'</div>'+
								'<div class="quickfeature">'+
                                    '<div class="'+logostyle+'featuredmerchant">'+logo+'</div>'+
									'<div class="'+pricestyle+'featuredprice">'+
										originalprice+
										'<a href="'+minurl+'" target="_blank" class="price" rel="nofollow">'+showprice+'</a>'+sfreeship+
									'</div>'+
									'<div class="seeitbox"><input class="seeit" type="button" onclick="window.open(\''+minurl+'\')" /></div>'+
								'</div>'+
							'</div>';
              
                cloneView.find('div.quicktwocolums').html(shtml).end()
                			   .find('a.coupon,a.rebate,a.blog,a.review').attr('name',odata.wishlistID).each(function(){couponOverlay($(this),omyself);}).end()
                			   .find('a.video').attr('name',odata.wishlistID).each(function(){videoOverlay($(this));}).end()
                			   .find('a.savetowishlist:not(.saved)').attr('name',odata.wishlistID).click(function(){saveWishList($(this));}).end()
                               .find('a:not([href])').attr({href:url,target:'_blank'}).end()
                               .appendTo(wrap);		
				
				//image preload
				var oimg = new Image(); 
				oimg.src = odata.pImg;   
				var setImgSrc = function(){
                	cloneView.find('div.pimg > a >div').html('<img src="'+this.src+'" border=0 />');
                };
				if (oimg.complete) {
					setImgSrc.call(oimg);
				}else{
					oimg.onload = function(){setImgSrc.call(oimg);};
				}
			},
			speed : 'fast',
			oneInstance: false, 
			closeOnClick: false,
			close: 'div.close',
			onClose: function(){wrap.empty();$(dy).hide(100);}
		});	
    });
     /***show grid view big image end***/

    
    $('div.videowrapper > ul > li.videobox > a').each(function(){
		//change url with video id
        var videoId = $(this).attr('data');
		var href = $(this).attr('href');
		href += href.indexOf('?') > -1 ? '&vid='+videoId : '?vid='+videoId;
        $(this).attr({'href':href, 'rel':'nofollow'});
    });

});