/*******************************************************************************
 *配置信息
 */
 



var $tt_carAjaxPath = '/cart.php';
var $tt_carSdcAlert = '很抱歉！您选择的商品目前只在北京地区配送。<br />建议您：<br />1.还没有添加收货地址信息？ 请点击“管理我的地址库”按钮添加收货地址<br />2.已经创建了地址库，从现有地址库中选择一个北京地区的收货地址<br />3.重新查找同类商品';
var $tt_carStockAlert = '很抱歉，该商品库存不足，最多只可购买[ {max} ]';
var $tt_password_min = 6;
var $tt_password_max = 20;
var $tt_nickname_min = 4;
var $tt_nickname_max = 16;
var $tt_answer_min = 4;
var $tt_answer_max = 50;

var special_gid = 1012320;

/*******************************************************************************
 * 公共变量
 */
var buyerInfo = {
    id:0,
    nick:false,
    mail:false,
    init:function(){
        var infostr = $.cookies.get( "u" );
        var infos = new Array();
        if(typeof(infostr) == "string"){
            infos = infostr.split('|');
        }
        this.issdc = $.cookies.get("sdc") || 0;
        this.isvip = $.cookies.get("vip") || 0;
        this.bt = $.cookies.get("bt") || 0;
        this.id = infos[0];
        this.nick = infos[1];
        this.mail = infos[2];
    }
}
buyerInfo.init();

/*****************************************************************************
 * 公共函数
 *****************************************************************************/


/*****************************************************
 * 取GET值-LLY
 *****************************************************/
function $_GET(key){
    var searchString = document.location.search.toString(); 
    var returnValue = '';
    if (searchString.substr(0,1)=='?' && searchString.length>1)
    {
        var queryString = searchString.substring(1,searchString.length)
        var queryList = queryString.split('&');
        for (var i=0; i<queryList.length; i++)
        {
            var oneQuery = queryList[i].split('=');
            if (oneQuery[0]==key && oneQuery.length==2)
            {
                returnValue = oneQuery[1];
            }
        }
    }
    return returnValue;
}


var buyerSource = $_GET('buyersource');
if(buyerSource+'' != ''){
	$.cookies.set('buyersource', buyerSource,{
		path:'/' ,
		hoursToLive:168
	});
}
var inviteEmail = $_GET('inviteemail');
if(inviteEmail+'' != ''){
	$.cookies.set('invite_email', inviteEmail,{
		path:'/' ,
		hoursToLive:168
	});
}
var inviteId = $_GET('inviteid');
if(inviteId+'' != ''){
	$.cookies.set('invite_id', inviteId,{
		path:'/' ,
		hoursToLive:168
	});
}


/*****************************************************
 * 验证码-LLY
 * 
 * 参数：
 * t:图片对象(JQ选择器字串)
 * v:SESSION名
 * w:宽
 * h:高
 * 
 * 反馈验证函数
 *****************************************************/
function vcode(t,v,w,h){
    target = $(t);
    if(target && v){
        imgPath = '/vcode.php?w='+w+'&h='+h+'&v='+v+'&x='+Math.round(Math.random()*100000);
        target[0].src = imgPath;
		target.css("cursor","pointer"); 
        target.click(function(){
            this.src = imgPath+'&y='+Math.round(Math.random()*100000);
        });
    }
    var Fn = function(c){
        return getJson('/vcode.php','c='+c+'&v='+v+'&x='+Math.round(Math.random()*100000));
    }
    return Fn;
}

/*****************************************************
 * 验证码检查
 * 
 * 参数：
 * fn:验证函数
 * i:输入框对象(JQ选择器字串)
 * m:检查结果输出对象(JQ选择器字串)
 *
 *****************************************************/
function checkVcode(fn,i,m){
    var target = $(i);
    var msg;
    target.blur(function(){
        if(fn(target[0].value)){
            msg = '';//'正确';
        }else{
            msg = '';//'正确';
        }
        $(m).html(msg);
    });
}

/******************************************************
 *买家信息验证
 * 
 *****************************************************/
 
String.prototype.check = function(type){
    if(typeof(type) != "string"){
        return false;
    }

    switch (type){
        case 'email'://必填项，6-50个英文字符或数字组成，必须包含‘@’、‘.’，无空格。
            reg = /^([a-z0-9+_]|\-|\.)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,6}$/i;
            break;
        case 'pass'://必填，6-20英文字符或数字，全部为数字、字母或符号为弱，数字加小写字母为中，数字加大、小写字母加符号为高。
            reg = /^[a-zA-Z0-9~!@#$%^&\*()_\+|<>?:"';,\./`\[\]\\\={}]{6,20}$/;
            break;
        case 'nickname'://必填项，由4-16个字符组成，中文汉字占两个字符，可由汉字、英文（不区分大小写）、数字组成，不允许出现特殊字符（除中划线或下划线），注册成功后不允许修改。
            reg = /^[a-zA-Z0-9\u4e00-\u9fa5\-_]{2,16}$/;
            break;
        case 'answer'://必填项，由4-50个字符组成，只能输入汉字，英文字母a-z,数字0-9，点，减号，下划线均可，其中汉字占两个字符。注册成功后可修改。
            reg = /^[a-zA-Z0-9\u4e00-\u9fa5\.\-_]{2,50}$/;

            break;
        default:
            reg = type;
            break;
    }

    var  re = new RegExp(reg);
    if( re.test(this))
        return true;
    else return false;
}
 
function getJson(url,data){
    var tempValue = new Object;
    $.ajax({
        url: url,
        data: data,
        dataType: "json",
        cache: false,
        async: false,
        success: function(msg){
            tempValue = msg;
        }
    });
    return tempValue;
}
 
 
/**********************************************************
*  购物车-LLY
*==========================================================
*  实例化&构造：
*  $car = new $ttcar(domId); //domId:购物车框体Id
*  $car.init();
*
*  添加商品：
*  $car.addGoods(skuId,amount,promotionType);
***********************************************************/

$ttcar = function(domId){

    this.data = new Array();		//可买数据
    this.failData = new Array();	//不可买数据
    this.changeGoods = {}			//缓存商品
    this.orderData = {}				//订单数据缓存
    this.defaultMsg = null;			//默认DOM
    this.lock = false;				//锁

    //skuId在this.data的Index
    this.dataIndex = function(skuId,promoteType){
        var inData = false;
        var dataIndex = null;
        for(index in this.data){
            if(this.data[index].skuId == skuId && this.data[index].promoteType == promoteType){
                dataIndex = index;
                inData = true;
                return [inData,dataIndex];
            }
        }
        return [inData,dataIndex];
    }

    //数据=>Cookie
    this.saveData = function(){
        var serializeCar = '[';
        for(index in this.data){
            var serializeGoods = '{';
            if(this.data[index].skuId){
                serializeGoods += 's:'+this.data[index].skuId+',';
                serializeGoods += 'a:'+this.data[index].amount+',';
                serializeGoods += 'pc:"'+this.data[index].packChack+'",';
                serializeGoods += 'p:'+this.data[index].promoteType;
                serializeGoods += '},';
                serializeCar += serializeGoods;
            }
        }

        if(serializeCar.charAt(serializeCar.length-1) == ','){
            serializeCar = serializeCar.substr(0, serializeCar.length-1);
        }
        serializeCar += ']';
        $.cookies.set('car_'+buyerInfo.id, serializeCar,{
            path:'/' ,
            hoursToLive:1000
        });
        this.failData = new Array();
    }

    //ajax(Cookie)=>数据
    this.getData = function(async){
		var obj = this;
		if(async){
			obj.lock = true;
		}
		$.ajax({
			url: $tt_carAjaxPath,
			data: "action=list",
			dataType: "json",
			cache: false,
			async: async,
			success: function(tempData){
				cookieStr = $.cookies.get('car_'+buyerInfo.id);
		
				var cookieLen =0;
				try{
					var cookieLen = eval(cookieStr).length;
				}catch(e){
					obj.data = new Array();
					tempData = new Array();
					obj.saveData;
				}
		
				if(tempData.length  == cookieLen){
		
					obj.data = new Array();
					obj.failData = new Array();
					for(index in tempData){
						if(parseInt(tempData[index].stock) >= parseInt(tempData[index].amount) && (tempData[index].isSDC-buyerInfo.issdc != 1 ||  buyerInfo.isvip == 1)){
							obj.data.push(tempData[index]);
						}else{
							obj.failData.push(tempData[index]);
						}
					}
					obj.lock = false;
       				obj.refur();
				}else{
			//ajax数据异常
					obj.lock = false;
				}

				
			}
		});
		
		
    }

    //验证缓存商品是否可买
    this.checkGoods = function(){//return true;
		
		if(this.changeGoods.errno == 1){
			if(this.changeGoods.error+'' != ''){
				myAlert(this.changeGoods.error);
				return false;
			}else{
				myAlert('商品库存不足');
				return false;
			}
		}
        //sdc判断
        if(this.changeGoods.isSDC-buyerInfo.issdc == 1 && buyerInfo.isvip != 1){
            return this.alertSDC();
        }

        //库存判断
        if((this.changeGoods.stock - this.changeGoods.amount) < 0){
            return this.alertStock();
        }

        return true;
    }
	
	//检查购买数量
	this.checkAmount = function(amount,minAmount,maxAmount,isWeightGoods,promoteType){
		var maxAmount = parseFloat(maxAmount)||1000;
		if(isWeightGoods && promoteType != 3){
			minAmount = parseFloat(minAmount)||0.5;
			if(parseFloat(amount) != amount || parseFloat(amount) < minAmount || parseFloat(amount) > maxAmount){
				myAlert('您好，该商品可购买的数量区间为[ '+minAmount+'-'+maxAmount+' ]');
				return false;
			}
		}else{
			minAmount = parseInt(minAmount)||1;
			if(parseInt(amount) != amount || parseInt(amount) < minAmount || parseInt(amount) > maxAmount){
				myAlert('您好，该商品可购买的数量区间为[ '+minAmount+'-'+maxAmount+' ]');
				return false;
			}
		}
		return true;
	}

    //添加商品
    this.addGoods = function(skuId,amount,promoteType,minAmount,maxAmount,isWeightGoods,callback){
		if((!buyerInfo['id']) || (!$.cookies.get('um'))){
			/*
            myAlert({
                msg:'登录后才能购买商品',
                cls:true,
                btn:[{
                    text:'登录',
                    fn:function(){location.href='/login.html?tourl='+escape(location.href);}
                    },{
                    text:'继续浏览商品',
                    fn:function(){}
                    }]
                });
			*/
			location.href='/login.html?tourl='+escape(location.href);
            return false;
        }
		
		if(!this.checkAmount(amount,minAmount,maxAmount,isWeightGoods,promoteType)){
			return false;	
		}
		
        var dataIndex = this.dataIndex(skuId,promoteType);
        if(dataIndex[0]){
            amount = Math.round((parseFloat(amount) + parseFloat(this.data[dataIndex[1]].amount))*100)/100;
        }
		
		if(this.lock){
			myAlert('正在加载购物车，请稍后再尝试添加此商品');
			return false;
		}
		this.getData(false);
		
        //Ajax(id) => 商品信息
        if(promoteType == 3){
            skuId = getJson($tt_carAjaxPath,"action=minsid&s="+skuId)['skuId'];
        }
		
        this.changeGoods = getJson($tt_carAjaxPath,"action=add&s="+skuId+"&a="+amount+"&p="+promoteType);

        if(this.changeGoods.stock == 0){
            this.alertStock();
            this.delGoods(this.changeGoods.skuId,this.changeGoods.promoteType);
        }else if(this.checkGoods()){
            if(dataIndex[0]){
                this.data[dataIndex[1]] = this.changeGoods;
            }else{
                this.data.unshift(this.changeGoods);
            }
            this.saveData();
			
			//回调函数
            if(callback){
                callback();
            }
            this.refur();
			this.getOrderData();
        }
    }

    this.modifyGoodsFn = function(event){
        var amount = $(this)[0].value;
        if(!event.data.obj.modifyGoods(event.data.skuId,amount,event.data.promoteType,event.data.packChack,event.data.minAmount,event.data.maxAmount,event.data.isWeightGoods)){
			var dataIndex = event.data.obj.dataIndex(event.data.skuId,event.data.promoteType);
			$(this)[0].value = event.data.obj.data[dataIndex[1]].amount;
		}
    }

    //修改商品数量
    this.modifyGoods = function(skuId,amount,promoteType,packChack,minAmount,maxAmount,isWeightGoods){
		if(this.lock){
			myAlert('正在加载购物车，请稍后再尝试修改数量');
			return false;
		}
		
		
		if(!this.checkAmount(amount,minAmount,maxAmount,isWeightGoods,promoteType)){
			return false;	
		}
		
		this.getData(false);
		
        var dataIndex = this.dataIndex(skuId,promoteType);
        if(!dataIndex[0]){
            //异常
            return false;
        }
        this.changeGoods = getJson($tt_carAjaxPath,"action=add&s="+skuId+"&a="+amount+"&p="+promoteType+"&pc="+packChack);

        if(this.checkGoods()){
            this.data[dataIndex[1]] = this.changeGoods;
            this.saveData();
			this.refur();
			this.getOrderData();
			return true;
        }else{
			return false;
			}
    }

    this.delGoodsFn = function(event){
        event.data.obj.delGoods(event.data.skuId,event.data.promoteType);
    }

    //删除商品
    this.delGoods = function(skuId,promoteType){
		if(this.lock){
			myAlert('正在加载购物车，请稍后再尝试');
			return false;
		}
		this.getData(false);
        var tempData = new Array();
        for(index in this.data){
            if(this.data[index].skuId != skuId || this.data[index].promoteType != promoteType){
                tempData.push(this.data[index]);
            }
        }
        this.data = tempData;

        this.saveData();

        this.refur();
		this.getOrderData();
    }

    //清空商品
    this.clearGoods = function(){
        this.data = [];
        this.saveData();

        this.refur();
		this.getOrderData();
    }
	
	this.showAddress = function(){
		obj = this;
		window.setAddress(function(info){
			buyerInfo.issdc = parseInt(info.content.SDC_CODE)?1:0;
        	obj.getData(true);
			obj.getOrderData();
		});
	}

    //提示SDC问题
    this.alertSDC = function(){
		var obj = this;
        myAlert({
            msg:$tt_carSdcAlert,
            cls:true,
            btn:[{
                text:'管理我的地址库',
                fn:function(){
					obj.showAddress();
                    }
                },{
                text:'重新查找',
                fn:function(){}
                }]
            });
        return false;
    }

    //提示库存问题
    this.alertStock = function(){
		if(this.changeGoods.stock > 0){
        	myAlert($tt_carStockAlert.replace('{max}',this.changeGoods.stock));
		}else{
			myAlert('很抱歉，此商品暂时缺货。');
		}
        return false;
    }


    this.getOrderData = function(){
		var obj = this;
		$.ajax({
			url: $tt_carAjaxPath,
			data: "action=more&p="+this.orderData.price+"&a="+this.orderData.amount+"&pp="+this.orderData.pricePromote,
			dataType: "json",
			cache: false,
			async: true,
			success: function(tempData){
				obj.orderData = tempData;
				obj.refur();
			}
		});
    }

    //获取订单信息Jquery对象
    this.getOrder = function(){
        var orderTemp = $("<div></div>");
        orderTemp.append('<ul id="car_order_msg"><!--li>商品('+this.orderData.amount+')</li--><li>预估金额('+format_price(this.orderData.price)+')</li><li>运费('+format_price(this.orderData.shipfee)+')</li></ul>');

        var promoteMsgDom = $('<ul id="car_sale_msg"></ul>');
		
			promoteMsgDom.append('<li class="red">VIP贵宾购物即享受95折(<a href="/help/shopping/memberintr.html">查看详细</a>)</li>');
			promoteMsgDom.append('<li class="red">贵宾服务专线：400-898-9797</li>');
		if(buyerInfo.isvip == 1){
		}else{
			//promoteMsgDom.append('<li class="red"><a href="/help/shopping/value.html" target="help">参与会员增值计划 享受最高折扣</a></li>');
		}
		//promoteMsgDom.append('<li>开业酬宾，生鲜商品配送免运费！</li>');
		
		
        if(this.orderData.account - this.orderData.price <0){
            promoteMsgDom.append('<li>账户可用余额：'+format_price(this.orderData.account)+'，余额不足 <br /><a href="/payment.php" target="_blank">请充值</a></li>');
        }else{
			promoteMsgDom.append('<li>账户可用余额：'+format_price(this.orderData.account)+'</li>');
		}
        if(this.orderData.price - this.orderData.freeShipfee <0){
            promoteMsgDom.append('<li>继续消费：'+format_price(this.orderData.freeShipfee-this.orderData.price)+'&nbsp;免运费</li>');
        }
        if(this.orderData.present){
            if(this.orderData.price - this.orderData.present.price <0){
                promoteMsgDom.append('<li>继续消费：'+format_price(this.orderData.present.price-this.orderData.price)+'即可参与"<a href="'+this.orderData.present.page_url+'" target="_blank">'+this.orderData.present.name+'</a>"活动。</li>');
            }
        }

        if(this.orderData.address){
			var addressDom = $('<li>您本次的收货地址是：<br />'+this.orderData.address+'&nbsp;&nbsp;</li>');
			var addressBtn = $('[<a href="javascript:">[修改]</a>]');
			var obj = this;
			addressBtn.click(function(){
				obj.showAddress();
			});
			addressDom.append(addressBtn);
            promoteMsgDom.append(addressDom);
        }else{
			var addressBtn = $('<br /><a href="javascript:">[添加我的收货地址]</a>');
			var obj = this;
			addressBtn.click(function(){
				obj.showAddress();
			});
			var addressMsgDom = $('<li>您还没有默认的收货地址信息,提醒您在选购商品前至少添加一个收货地址!</li>');
            addressMsgDom.append(addressBtn);
            promoteMsgDom.append(addressMsgDom);
		}
        orderTemp.append(promoteMsgDom);
        return orderTemp;
    }

    //获得列表Jquery对象
    this.getList = function(){

        var allPrice = 0;
        var allPricePromote = 0;
        var allamount = 0;
        var tempNames = Array();
        var listDom = $('<table></table>');
        for(index in this.data){
            if(this.data[index].skuId == this.changeGoods.skuId){
                var carItem = $('<tr bgcolor="#F2F2F2"></tr>');
            }else{
                var carItem = $('<tr></tr>');
            }
            
            if(this.data[index].promoteType == 3){
                var tempNamesTd = $('<td class="goods_name"></td>');
                var tempNamesUl = $('<ul></ul>');
                tempNamesTd.append(tempNamesUl);
                var tempNames = this.data[index].name.split('|||');
                var tempIds = this.data[index].id.split('|||');
                for(tempNamesIndex in tempNames){
                    tempNamesUl.append('<li><a href="/product-'+tempIds[tempNamesIndex]+'.html">'+tempNames[tempNamesIndex]+'</a></li>');
                }
                carItem.append(tempNamesTd);
            }else{
				if(this.data[index].id == special_gid || this.data[index].price ==0){
					carItem.append('<td class="goods_name">'+this.data[index].name+'</td>');
				}else{
                	carItem.append('<td class="goods_name"><a href="/product-'+this.data[index].id+'.html">'+this.data[index].name+'</a></td>');
				}
            }
			
			if(this.data[index].id == special_gid || this.data[index].price ==0){
				var amountInput = $('<td class="goods_amont">1</td>');
			}else{
				var amountInput = $('<td class="goods_amont"><input name="" type="text" value="'+this.data[index].amount+'" maxlength="3" /></td>');
			}
            
            amountInput.children('input').bind('blur',{
                skuId:this.data[index].skuId,
                promoteType:this.data[index].promoteType,
                packChack:this.data[index].packChack,
                isWeightGoods:this.data[index].isw,
                minAmount:this.data[index].nmin,
                maxAmount:this.data[index].nmax,
                obj:this
            },this.modifyGoodsFn);
            carItem.append(amountInput);

            if(this.data[index].price != this.data[index].fullPrice){
                carItem.append('<td class="goods_price"><span>'+format_price(this.data[index].fullPrice)+'</span>'+format_price(this.data[index].price)+'</td>');
            }else{
                carItem.append('<td class="goods_price">'+format_price(this.data[index].price)+'</td>');
            }
			
			if(this.data[index].id == special_gid || this.data[index].price ==0){
				var delBtn = $('<td>&nbsp;</td>');
			}else{
				var delBtn = $('<td class="pointer goods_del">&nbsp;</td>');
				delBtn.bind('click',{
					skuId:this.data[index].skuId,
					promoteType:this.data[index].promoteType,
					obj:this
				},this.delGoodsFn);
			}
            carItem.append(delBtn);

            allPrice +=parseFloat(this.data[index].price);
            if(this.data[index].promoteType == 0){
                allPricePromote +=parseFloat(this.data[index].price);
            }
            allamount +=parseFloat(this.data[index].amount);
            listDom.append(carItem);
        }
        allPrice = parseInt(Math.round(allPrice*100))/100;
        allPricePromote = parseInt(Math.round(allPricePromote*100))/100;

        this.orderData.price = allPrice;
        this.orderData.allPricePromote = allPricePromote;
        this.orderData.amount = allamount;


        var carItem = $('<tr></tr>');
        carItem.append('<td class="goods_name">总计：</td>');
        carItem.append('<td class="goods_amont">'+allamount+'</td>');
        carItem.append('<td class="goods_price" colspan="2">'+format_price(allPrice)+'</td>');
        listDom.append(carItem);


		//不可购买商品列表
		if(this.failData.length > 0){
			var failItem = $('<tr></tr>');
			failItem.append('<td class="goods_fail" colspan="4">以下商品暂时无法购买：</td>');
			listDom.append(failItem);
			for(index in this.failData){
				var failItem = $('<tr></tr>');
				if(this.failData[index].promoteType == 3){
					var tempNamesTd = $('<td class="goods_name"></td>');
					var tempNamesUl = $('<ul></ul>');
					tempNamesTd.append(tempNamesUl);
					var tempNames = this.failData[index].name.split('|||');
					var tempIds = this.failData[index].id.split('|||');
					for(tempNamesIndex in tempNames){
						tempNamesUl.append('<li><a href="/product-'+tempIds[tempNamesIndex]+'.html">'+tempNames[tempNamesIndex]+'</a></li>');
					}
					failItem.append(tempNamesTd);
				}else{
					failItem.append('<td class="goods_name"><a href="/product-'+this.failData[index].id+'.html">'+this.failData[index].name+'</a></td>');
				}
				failItem.append('<td class="goods_amont"></td>');
				if(this.failData[index].price != this.failData[index].fullPrice){
					failItem.append('<td class="goods_price"><span>'+format_price(this.failData[index].fullPrice)+'</span>'+format_price(this.failData[index].price)+'</td>');
				}else{
					failItem.append('<td class="goods_price">'+format_price(this.failData[index].price)+'</td>');
				}
				failItem.append('<td></td>');
				listDom.append(failItem);
			}
		}
		
		
        var tempListDom = $('<div id="car_list"></div>');
        tempListDom.append(listDom);

        return tempListDom;
    }

    //刷新购物车
    this.refur = function(){
        if((!buyerInfo['id']) || (!$.cookies.get('um'))){
        	$('#'+domId).empty();
            $('#'+domId).html(this.defaultMsg);
            return false;
        }
        var goodsList = this.getList();
        var orderMsg = this.getOrder();

		
		var car_content = $('<div id="car_content"></div>')
        car_content.append(orderMsg);
        car_content.append('<ul class="list_title"><li class="goods_name">商品名称</li><li class="goods_amont">数量</li><li class="goods_price">金额</li></ul>');
        car_content.append(goodsList);
		if((!buyerInfo['id']) || (!$.cookies.get('um')) || this.data.length == 0){
			var checkBtn = $('<img src="images/too_check_black.gif" class="btn_buy"/>');
		}else{
			var checkBtn = $('<img src="images/check.gif" class="btn_buy"/>');
		}
		checkBtn.bind('click',{
			obj:this
		},this.check);
		var checkDom = $('<div class="car_btns"></div>');
		checkDom.append(checkBtn);
        car_content.append(checkDom);
		
		if((!buyerInfo['id']) || (!$.cookies.get('um')) || this.data.length == 0){
			var checkBtnTop = $('<img src="images/too_check_black.gif" class="btn_buy"/>');
		}else{
			var checkBtnTop = $('<img src="images/check.gif" class="btn_buy"/>');
		}
		checkBtnTop.bind('click',{
			obj:this
		},this.check);
		var checkDomTop = $('<div class="car_btns border_b"></div>');
		checkDomTop.append(checkBtnTop);
		
		
        $('#'+domId).empty();
		
		$('#'+domId).append(checkDomTop);
		$('#'+domId).append(car_content);
		
		
		$('#'+domId).css("filter","none");
		$('#'+domId).css("-moz-opacity","1");
		if(!$.browser.msie){
			$('#'+domId).css("opacity","1");
		}
    }

    //初始化购物车
    this.init = function(){
        this.defaultMsg = $('#'+domId).html();
		if((!buyerInfo['id']) || (!$.cookies.get('um'))){
		$('#car').css("filter","none");
		$('#car').css("-moz-opacity","1");
		if(!$.browser.msie){
		$('#car').css("opacity","1");
		}
			}
        this.getData(true);
		this.getOrderData();
    }

    //提交购物车
    this.check = function(event){
		if(event.data.obj.data[0]){
			window.location = '/checkout.php';
		}else{
			myAlert('请先添加商品到购物车.');	
		}
    }


}

/**
遮罩层-LLY
return关闭函数
*/
overlay = function (){
	var lay = null;
    if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
        $("html").css({
            height: "100%",
            width: "100%"
        });
        $("html").css("overflow","hidden");
        if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
			lay = $("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
            $("body").append(lay);
        }
    }else{//all others
        if(document.getElementById("TB_overlay") === null){
            lay = $("<div id='TB_overlay'></div><div id='TB_window'></div>");
			$("body").append(lay);
        }
    }
	
    var userAgent = navigator.userAgent.toLowerCase();
    if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
        $("#TB_overlay").addClass("TB_overlayMacFFBGHack");
    }else{
        $("#TB_overlay").addClass("TB_overlayBG");
    }
	
	return function(){
		lay.remove();
	}
	
}

/* 地址设置-LLY */
setAddress = function(callback){
    var closeLay = overlay();
	var addressDom = $('<div id="set-address"></div>');
	
	window.closeAddress = function(){
		addressDom.remove();
		closeLay();
	}
	
	window.AddressCallBack = callback;
	
	var dt = new Date();
	url = '/address.php?act=set&callback=AddressCallBack&sid='+dt.getTime();
    addressDom.load(url);

	$('body').append(addressDom);
}

/* 地址设置-LLY */
setAddresssdc = function(callback){
    var closeLay = overlay();
	var addressDom = $('<div id="set-address"></div>');
	
	window.closeAddress = function(){
		addressDom.remove();
		closeLay();
	}
	
	window.AddressCallBack = callback;
	
	var dt = new Date();
	url = '/address.php?sdc=1&act=set&callback=AddressCallBack&sid='+dt.getTime();
    addressDom.load(url);

	$('body').append(addressDom);
}


/**********************************************************
*  myAlert - 自定义对话框-LLY
*==========================================================
*  参数：
*  {
*  msg: 对话框信息(string|int)
*  cls: 是否显示关闭对话框按钮(boolean)
*  btn: 按钮(array) [{text:按钮文本,fn:回调函数}]
*  
*  *如参数类型不是object则自动赋给msg,其余配置取默认值
*  
*  例：myAlert('文字测试');
*  myAlert({msg:'参数测试',cls:false,btn:[{text:'确定(回调texta)',fn:texta},{text:'确定(回调textb)',fn:textb}]});
***********************************************************/
myAlert = function(conf){
    var isClose = true;
    var msg = '';
    var btn = [{
        text:'确定',
        fn:function(){
            return true
            }
        }];
	
   	var closeLay = overlay();
	
    if(typeof(conf) == 'object'){
        if(typeof(conf.cls) == 'boolean'){
            isClose = conf.cls;
        }
        if(typeof(conf.btn) == 'object'){
            btn = conf.btn;
        }
        msg = conf.msg.toString();
    }else{
        msg = conf.toString();
    }
	
    var alertDom = $('<div id="my-alert"></div>');
    alertDom.append('<p class="my-alert-title">提示</p>');
	
    //是否添加close按钮
    if(isClose){
        var closeDom = $('<p class="my-alert-close">关闭</p>');
        closeDom.click(function(){
            alertDom.remove();
            closeLay();
            return true;
        });
        alertDom.append(closeDom);
    }
    alertDom.append('<div class="my-alert-hr"></div>');
	
    var msgDom = $('<p class="my-alert-msg">'+msg+'</p>');
    alertDom.append(msgDom);
	
    //生成按钮
    var btnDom = $('<ul class="my-alert-btn"></ul>');
    var btnItem = new Array();
    for(index in btn){
        btnItem[index] = $('<li><span>'+btn[index].text+'</span></li>');
        btnItem[index].bind("click",function(){
            alertDom.remove();
        });
        btnItem[index].bind("click",function(){
            closeLay();
        });
        btnItem[index].bind("click",btn[index].fn);
        btnDom.append(btnItem[index]);
    }
    alertDom.append(btnDom);
	
    $('body').append(alertDom);
};

/****************************************************************
 * 列表页预览窗口
 */


/******************************************************************
 *                       密码健壮性检验
 *****************************************************************/
$.fn.extend({
    pwdStrongCheck:function(){

        checkpassword = function (tar){
            var   pwd=$(tar).val();
            //if(pwd=="")   return;
            var   strongvalue=0;
            var   tmpchar="" , hasUpperCase = false , hasLowerCase = false , hasOther = false , hasNumber = false;
            var   regU=/[A-Z]/;
            var   regL=/[a-z]/;
            var   regN=/[0-9]/;
            var   regO=/[~!@#$%^&\*()_\+|<>?:"';,\./`\[\]\\]/;
            hasUpperCase = regU.test( pwd );
            hasLowerCase   =regL.test( pwd );
            hasNumber   =regN.test(pwd);
            hasOther   =regO.test(pwd);
            strongvalue   =   0   + ( hasNumber ? 1:0 ) + ( hasUpperCase ? 1:0 ) + ( hasLowerCase ? 1:0 ) + ( hasOther ? 1:0)  ;
            switch (strongvalue){
                case 1:
                    level='33px';
                    show="弱";
                    break;
                case 2:
                    level="66%";
                    show="中";
                    break;
                case 3:
                case 4:
                    level="100%"
                    show="强"
                    break;
                default:
                    level = "0%"
                    break;
            }
            $("#ccc").show();
            if(pwd.length>20)    {
                //$("#pwdStrongCheck_show").html("密码过长");
            	 //$("#pwdStrongCheck_hide").show();
            	 $("#pwdStrongCheck_show").hide();
                $("#pwdStrongCheck_level").css("width","0px");
            }
            else if(pwd.length<6){
                //$("#pwdStrongCheck_show").html("密码过短");
            	//$("#pwdStrongCheck_hide").show();
           	 	$("#pwdStrongCheck_show").hide();
                
           	 	$("#pwdStrongCheck_level").css("width","0px");
            }
            else{
                $("#pwdStrongCheck_level").css("width",level);
                //$("#pwdStrongCheck_show").html("密码安全级别：&nbsp;&nbsp;&nbsp;&nbsp;"+show);
                //level_text
            	//$("#pwdStrongCheck_hide").hide();
           	 	$("#pwdStrongCheck_show").show();
            	$("#level_text").html(show);
            }
        }
        $(this).keyup(function(){
            checkpassword(this);
        });
        $(this).blur(function(){
            checkpassword(this);
        });
    }
}
);

/**
 *
 **/
function myfavorite(type , gid){
    ret = getJson("buyer.php?",'act=myfav&ajax='+type+'&gid='+gid);
    if(ret == 1){
        myAlert("请先登录后再收藏商品！");
    }
    else if(ret == 2){
        myAlert("商品已被删除！");
    }
    else if(ret == 3){
        myAlert("您已经收藏过此商品！");
    }
    else if(ret == 4){
        myAlert("收藏成功！");
    }
    else if(ret == 5){
        myAlert("删除成功！");
    }
    else{
        myAlert("收藏出现异常！");
    }
}

/**
 * 重量格式化-LLY
 **/
function format_weight(weight){
	value = Math.round((weight/500), 2);
	if(value == 1){
		value = '';
	}
    return value+'斤';
} 

/**
 * 价格格式化-LLY
 **/
function format_price(value){ 
	var fixed = 2; 
	var currency = ''; 
	isNaN(parseFloat(value))? value=0 : value=parseFloat(value); 
	v = value.toFixed(fixed).toString(); 
	var ps = v.split('.'); 
	var whole = ps[0]; 
	var sub = ps[1] ? '.' + ps[1] : ''; 
	var r = /(\d+)(\d{3})/; 
	while (r.test(whole)) { 
		whole = whole.replace(r, '$1' + ',' + '$2'); 
	} 
	v = whole + sub; 
	if (v.charAt(0) == '-') { 
		return currency + '-' + '&yen;&nbsp;' + v.substr(1); 
	} 
	return currency + '&yen;&nbsp;' +v; 
} 

/**
 * 得到URL内的GET值
 *
 * @param name	
 * @return
 */
function $_Get(name)
{
  var uri = window.location.search;
  var reg = new RegExp("" +name+ "=([^&?]*)", "ig");
  return ((uri.match(reg))?(uri.match(reg)[0].substr(name.length+1)):'');
}


/////////////////////////////////////////////////
//
//  
/////////////////////////////////////////////////
$(document).ready(function(){
   
    /*if(buyerInfo['nick']){
        if( buyerInfo['id'] == false ||  $.cookies.get('um') == null )
            $(".st_welcome").html('<span id="hello_msg">您好 &nbsp;'+buyerInfo['nick']+'，欢迎来到沱沱工社！</span> <span class="b6c" id="login_state">(<a href="/buyer.php?act=clean&tourl='+$_Get('tourl')+'" >不是'+buyerInfo['nick']+'？</a>)&nbsp;<a href="/login.html?tourl='+$_Get('tourl')+'">登录</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/help/help.html">帮助</a>&nbsp;&nbsp;|&nbsp;&nbsp;<img src="/images/order/ico/index_gift.jpg" align="absmiddle" />&nbsp;<a href="/buyer.php?act=invite" >邀请好友</a></span>');
        else{
            $(".st_welcome").html('<span id="hello_msg">您好 &nbsp;'+buyerInfo['nick']+'，欢迎来到沱沱工社！</span> <span class="b6c" id="login_state"><a href="/buyer.php?act=logout">退出</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/help/help.html">帮助</a>&nbsp;&nbsp;|&nbsp;&nbsp;<img src="/images/order/ico/index_gift.jpg" align="absmiddle" />&nbsp;<a href="/buyer.php?act=invite" >邀请好友</a></span>');
        }
    }else{
		$('.st_welcome').html('<span id="hello_msg">您好，欢迎光临沱沱工社新鲜食品网上超市！</span><span class="b6c"><span id="login_state">&nbsp;&nbsp;<a href="/login.html">登录</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/reg.html">注册</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/help/help.html">帮助</a>&nbsp;&nbsp;|&nbsp;&nbsp;<img src="/images/order/ico/index_gift.jpg" align="absmiddle" />&nbsp;<a href="/buyer.php?act=invite" >邀请好友</a></span></span>');
	}
    if($("#login_state").length>0 && buyerInfo['nick']){
        //$("#login_state").html('');
    }
	*/
    if(buyerInfo['nick']){
        if( buyerInfo['id'] == false ||  $.cookies.get('um') == null )
            $(".st_welcome").html('<span id="hello_msg">您好 &nbsp;'+buyerInfo['nick']+'，欢迎来到沱沱工社！</span> <span class="b6c" id="login_state">(<a href="/buyer.php?act=clean&tourl='+$_Get('tourl')+'" >不是'+buyerInfo['nick']+'？</a>)&nbsp;<a href="/login.html?tourl='+$_Get('tourl')+'">登录</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/promotion/tihuoka.php">提货卡</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/help/help.html">帮助</a></span>');
        else{
            $(".st_welcome").html('<span id="hello_msg">您好 &nbsp;'+buyerInfo['nick']+'，欢迎来到沱沱工社！</span> <span class="b6c" id="login_state"><a href="/buyer.php?act=logout">退出</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/promotion/tihuoka.php">提货卡</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/help/help.html">帮助</a></span>');
        }
    }else{
		$('.st_welcome').html('<span id="hello_msg">您好，欢迎光临沱沱工社新鲜食品网上超市！</span><span class="b6c"><span id="login_state">&nbsp;&nbsp;<a href="/login.html">登录</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/reg.html">注册</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/promotion/tihuoka.php">提货卡</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/help/help.html">帮助</a></span></span>');
	}
    if($("#login_state").length>0 && buyerInfo['nick']){
        //$("#login_state").html('');
    }	
});


/////////////////////////////////////////////////
//
//  
//
/////////////////////////////////////////////////
function search(inputId){
   var input = document.getElementById(inputId);
   if(input.value != ''){
     location.href = '/browernode.php'+'?input='+input.value;
   }else{
     alert('请输入搜索词');
   }
}

/////////////////////////////////////////////////
//
//  显示预览页窗口
//
/////////////////////////////////////////////////
previewWin = function(objectId){
   	var closeLay = overlay();
	window.closePreWin = function(){
			closeLay();
			$('#my-alert').remove();
			
	}
	alertDom = $('<div id="my-alert" style="width:710px;height:560px;margin-left:-360px; top:20px; margin-top:20px;"></div>');	
    var closeDom = $('<div class="my-alert-close">关闭</div>');
        closeDom.click(function(){
            closeLay();
            return true;
        });
        alertDom.append(closeDom);
	var dt = new Date();
    alertDom.load('/preview.php?gid='+objectId+'&sid='+dt.getTime());

	$('body').append(alertDom);
}

/*预加载图片*/
preloadImages = function(){
	for(var i = 0; i<arguments.length; i++){ 
		$(document).ready(function(){
			$("<img>").attr("src", arguments[i]);
		});
	}
}

///////////////////////////////////////////////
//
// 显示回馈表单窗口
///////////////////////////////////////////////
var hasinput = false;
feedBackWin = function(){
   if(hasinput == true){
	   return false;
   }
   hasinput = true;
   var closeLay = overlay();
   window.closePreWin = function(){
      closeLay();
	  $('#my-alert').remove();
	  hasinput =false;
   }

   alertDom = $('<div id="my-alert" class="qun_boxborder" style="width:560px;margin-left:-280px; top:40px; margin-top:20px;border:4px solid #fff"></div>');	
    var closeDom = $('<div class="my-alert-close">关闭</div>');
        closeDom.click(function(){
            closeLay();
            return true;
        });
        alertDom.append(closeDom);
	var dt = new Date();
    alertDom.load('/feedback.php');

	$('body').append(alertDom);	
}

///////////////////////////////////////////////
//
// 显示缺货登记窗口
///////////////////////////////////////////////
var hasinput2 = false;
goodsNoticeWin = function(goodsid){
   if(hasinput2 == true){
	   return false;
   }
   hasinput2 = true;
   var closeLay = overlay();
   window.closePreWin = function(){
      closeLay();
	  $('#my-alert').remove();
	  hasinput2 =false;
   }

   alertDom = $('<div id="my-alert" class="qun_boxborder" style="width:450px;height:385px;margin-left:-280px; top:40px; margin-top:0px;border:4px solid #fff;padding-top:0px;"></div>');	
   // var closeDom = $('<div class="my-alert-close">关闭</div>');
   //     closeDom.click(function(){
   //         closeLay();
   //         return true;
   //     });
   //     alertDom.append(closeDom);
	var dt = new Date();
    alertDom.load('/goodsnotice.php?goodsid='+goodsid+'&sid='+dt.getTime());

	$('body').append(alertDom);	
}


//===========================

$(document).ready(JT_init);

function JT_init(){
	       $("a.jTip")
		   .hover(function(){JT_show(this.href,this.id,this.name)},function(){$('#JT').remove()})
           .click(function(){return false});	   
}

function JT_show(url,linkId,title){
	if(title == false)title="&nbsp;";
	var de = document.documentElement;
	var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var hasArea = w - getAbsoluteLeft(linkId);
	var clickElementy = getAbsoluteTop(linkId) - 3; //set y position
	
	var queryString = url.replace(/^[^\?]+\??/,'');
	var params = parseQuery( queryString );
	if(params['width'] === undefined){params['width'] = 250};
	if(params['bgcolor'] === undefined){params['bgcolor'] = '#FFF'};
	if(params['tbgcolor'] === undefined){params['bgcolor'] = '#DDD'};
	if(params['link'] !== undefined){
	$('#' + linkId).bind('click',function(){window.location = params['link']});
	$('#' + linkId).css('cursor','pointer');
	}
	
	if(hasArea>((params['width']*1)+75)){
		$("body").append("<div id='JT' style='width:"+params['width']*1+"px;border-color:"+params['tbgcolor']+";background-color:"+params['bgcolor']+";'><div id='JT_arrow_left' style='background-color:"+params['tbgcolor']+";'></div><div id='JT_close_left' style='background-color:"+params['tbgcolor']+";'>"+title+"</div><div id='JT_copy'><div class='JT_loader'><div></div></div>");//right side
		var arrowOffset = getElementWidth(linkId) + 11;
		var clickElementx = getAbsoluteLeft(linkId) + arrowOffset; //set x position
	}else{
		$("body").append("<div id='JT' style='width:"+params['width']*1+"px;border-color:"+params['tbgcolor']+";background-color:"+params['bgcolor']+";'><div id='JT_arrow_right' style='background-color:"+params['tbgcolor']+";left:"+((params['width']*1)+1)+"px'></div><div id='JT_close_right' style='background-color:"+params['tbgcolor']+";'>"+title+"</div><div id='JT_copy'><div class='JT_loader'><div></div></div>");//left side
		var clickElementx = getAbsoluteLeft(linkId) - ((params['width']*1) + 15); //set x position
	}
	
	$('#JT').css({left: clickElementx+"px", top: clickElementy+"px"});
	$('#JT').show();
	$('#JT_copy').load(url);

}

function getElementWidth(objectId) {
	x = document.getElementById(objectId);
	return x.offsetWidth;
}

function getAbsoluteLeft(objectId) {
	// Get an object left position from the upper left viewport corner
	o = document.getElementById(objectId)
	oLeft = o.offsetLeft            // Get left position from the parent object
	while(o.offsetParent!=null) {   // Parse the parent hierarchy up to the document element
		oParent = o.offsetParent    // Get parent object reference
		oLeft += oParent.offsetLeft // Add parent left position
		o = oParent
	}
	return oLeft
}

function getAbsoluteTop(objectId) {
	// Get an object top position from the upper left viewport corner
	o = document.getElementById(objectId)
	oTop = o.offsetTop            // Get top position from the parent object
	while(o.offsetParent!=null) { // Parse the parent hierarchy up to the document element
		oParent = o.offsetParent  // Get parent object reference
		oTop += oParent.offsetTop // Add parent top position
		o = oParent
	}
	return oTop
}

function parseQuery ( query ) {
   var Params = new Object ();
   if ( ! query ) return Params; // return empty object
   var Pairs = query.split(/[;&]/);
   for ( var i = 0; i < Pairs.length; i++ ) {
      var KeyVal = Pairs[i].split('=');
      if ( ! KeyVal || KeyVal.length != 2 ) continue;
      var key = unescape( KeyVal[0] );
      var val = unescape( KeyVal[1] );
      val = val.replace(/\+/g, ' ');
      Params[key] = val;
   }
   return Params;
}

function blockEvents(evt) {
              if(evt.target){
              evt.preventDefault();
              }else{
              evt.returnValue = false;
              }
}
(function($) {

	//Attach this new method to jQuery
	$.fn.extend({

		//This is where you write your plugin's name
		slidebox: function(urOpts) {
			var defaultOpts = { interval: 3000, fadeInTime: 300, fadeOutTime: 200 };
			urOpts = $.extend({}, defaultOpts, urOpts);
			var interval = urOpts.interval;
			var fadeInTime = urOpts.fadeInTime;
			var fadeOutTime = urOpts.fadeOutTime;
			//Iterate over the current set of matched elements
			return this.each(function(i) {
				var _titles = $("ul.slide-txt li", this);
				var _titles_bg = $("ul.op li", this);
				var _bodies = $("ul.slide-pic li", this);
				var _count = _titles.length;
				var _current = 0;
				var _intervalID = null;
				var stop = function() { window.clearInterval(_intervalID); };
				var slide = function(opts) {
					if (opts) {
						_current = opts.current || 0;
					} else {
						_current = (_current >= (_count - 1)) ? 0 : (++_current);
					};
					_bodies.filter(":visible").fadeOut(fadeOutTime, function() {
						_bodies.eq(_current).fadeIn(fadeInTime);
						_bodies.removeClass("cur").eq(_current).addClass("cur");
					});
					_titles.removeClass("cur").eq(_current).addClass("cur");
					_titles_bg.removeClass("cur").eq(_current).addClass("cur");
				}; //endof slide
				var go = function() {
					_intervalID = window.setInterval(function() { slide(); }, interval);
				}; //endof go
				var itemMouseOver = function(target, items) {
					stop();
					var i = $.inArray(target, items);
					slide({ current: i });
				}; //endof itemMouseOver
				_titles.hover(function() { if($(this).attr('class')!='cur'){itemMouseOver(this, _titles); }else{stop();}}, go);
				//_titles_bg.hover(function() { itemMouseOver(this, _titles_bg); }, go);
				_bodies.hover(stop, go);
				//trigger the slidebox
				go();
			});
		}
	});

	//pass jQuery to the function, 
	//So that we will able to use any valid Javascript variable name 
	//to replace "$" SIGN. But, we'll stick to $ (I like dollar sign: ) )		
})(jQuery);


