﻿// JScript 文件


//<--Start--从cookie中读出订单数据的函数
function ReadOrderForm(name)
{
    var cookieString=document.cookie;
    if (cookieString=="")
    {
        return false;
    }
    else
    {
        var firstChar,lastChar;
        firstChar=cookieString.indexOf(name);
        if(firstChar!=-1)
        {
            firstChar+=name.length+1;
            lastChar = cookieString.indexOf(";", firstChar);
            if(lastChar == -1) lastChar=cookieString.length;
            return cookieString.substring(firstChar,lastChar);
        }
        else
        {
            return false;
        }
    }    
}
//-->End

//<--Start--添加商品至购物车的函数
function SetOrderForm(item_no,item_name,item_amount,item_price)
{
    var cookieString=document.cookie;
    if (cookieString.length>=4000)
    {
        alert("您的购物车已满,请结束此次订单操作后再次购物！");
    }
    else if(isNaN(item_amount)||item_amount<1)
    {
        alert("数量输入错误！");
    }
    else
    {
        var mer_list=ReadOrderForm("24_OrderForm");
        var Then = new Date();
        Then.setTime(Then.getTime()+30*60*1000);
        var item_detail="|"+item_no+"&"+item_name+"&"+item_amount+"&"+item_price;
        if(mer_list==false)
        {
            document.cookie="24_OrderForm="+EncodeURI(item_detail)+";path=/;expires=" + Then.toGMTString();
            //alert("“"+item_name+"”\n"+"已经加入您的购物车！");
            location.href="/doce/Order/Default.html";
        }
        else
        {
            if (mer_list.indexOf(item_no)!=-1)
            {
                alert("此商品您已添加,请进入购物车修改数量！");
                location.href="/doce/Order/Default.html";
            }
            else
            {
                document.cookie="24_OrderForm="+mer_list+EncodeURI(item_detail)+";path=/;expires=" + Then.toGMTString();
                //alert("“"+item_name+"”\n"+"已经加入您的购物车！");
                location.href="/doce/Order/Default.html";
            }
        }
    }
}
//-->End

//<--Start--订单修改更新cookie的函数
function updateCookie()
{
    
    var limit=document.OrderForm.elements.length-3;
   
    var Then = new Date();
    
    Then.setTime(Then.getTime()+30*60*1000);
    var values=document.OrderForm.storage.value;
    document.cookie="24_OrderForm="+EncodeURI(values)+";path=/;expires=" + Then.toGMTString();
    location.href=location.href;
}
//-->End

//<--Start--删除单个商品的函数
function Delete(TableID,id)
{
    var confirm_delete=window.confirm("确定要删除吗？")
    if (confirm_delete)
    {
        var deletedList=document.OrderForm.storage.value;
        var broken_deletedList=deletedList.split("|");
        
        for (i=1;i<broken_deletedList.length;i++)
        {
            if(broken_deletedList[i].indexOf(id)!=-1) delete broken_deletedList[i];
        }
        
        var new_deletedList="";
        
        for (i=1;i<broken_deletedList.length;i++)
        {
            
            if (broken_deletedList[i]!=undefined) new_deletedList=new_deletedList+"|"+broken_deletedList[i];
            
        }
        
        document.OrderForm.storage.value=new_deletedList;
        TableID.deleteRow();
        updateTotal();
        updateCookie();
    }
}
//-->End

//<--Start--更新价格总计的函数
function updateTotal()
{
    var new_total=0;
    var limit=document.OrderForm.elements.length-3;
    
    for (i=2;i<limit;i=i+3)
    {
        new_total=new_total*100+document.OrderForm.elements[i].value*100;
        new_total=new_total/100;
    }
    
    if(isNaN(new_total))
    {
        document.OrderForm.total.value="0";
    }
    else
    {
        document.OrderForm.total.value=new_total;
    }
    //updateCookie();
}
//-->End

//<--Start--更新价格小计的函数
function updateSubTotal(m_id,new_amount,price)
{
    var price=price*100;
    var new_subtotal=new_amount*price/100;
    var n_m_id="id"+m_id;
    if(isNaN(new_amount)||new_amount<1)
    {
        document.OrderForm.elements[n_m_id].value="输入错误";
    }
    else
    {
        document.OrderForm.elements[n_m_id].value=new_subtotal;
    }
    updateTotal();
    //updateCookie();
}
//-->End

//<--Start--更新storage的函数
function updateStorage(m_id,new_amount)
{
    if(isNaN(new_amount)||new_amount<1)
    {
        alert("数量填写错误！")
        document.OrderForm.elements["aid"+m_id].focus();
        document.OrderForm.elements["aid"+m_id].select();
    }
    else
    {
        var the_list=document.OrderForm.storage.value;
        var single_list=the_list.split("|")
        
        for (i=1;i<single_list.length;i++)
        {
            if (single_list[i].indexOf(m_id)!=-1)
            {
                var old_single=single_list[i];
                var broken_single_list=single_list[i].split("&");
                broken_single_list[2]=new_amount;
                var new_single=broken_single_list[0]+"&"+broken_single_list[1]+"&"+broken_single_list[2]+"&"+broken_single_list[3];
                the_list=the_list.replace(old_single,new_single);
            }
        }
        document.OrderForm.storage.value=the_list;
    }
    updateCookie();
}
//-->End 

//<--Start--Server.UrlEncode和Server.UrlDecode功能
var EncodeURI = function(unzipStr,isCusEncode){
    if(isCusEncode){
        var zipArray = new Array();
        var zipstr = "";
        var lens = new Array();
        for(var i=0;i<unzipStr.length;i++){
         var ac = unzipStr.charCodeAt(i);
         zipstr += ac;
         lens = lens.concat(ac.toString().length);
        } 
        zipArray = zipArray.concat(zipstr);
        zipArray = zipArray.concat(lens.join("O"));
        return zipArray.join("N");
    }else{
        //return encodeURI(unzipStr);
        var zipstr=""; 
        var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%"; 
        var tt= "";
        for(var i=0;i<unzipStr.length;i++){ 
            var chr = unzipStr.charAt(i); 
            var c=StringToAscii(chr); 
            tt += chr+":"+c+"n"; 
            if(parseInt("0x"+c) > 0x7f){ 
                 zipstr+=encodeURI(unzipStr.substr(i,1));
            }else{ 
                 if(chr==" ") 
                    zipstr+="+"; 
                 else if(strSpecial.indexOf(chr)!=-1) 
                    zipstr+="%"+c.toString(16); 
                 else 
                    zipstr+=chr; 
                } 
            } 
        return zipstr; 
    }
}
var DecodeURI = function(zipStr,isCusEncode){
    if(isCusEncode){
        var zipArray = zipStr.split("N");
        var zipSrcStr = zipArray[0];
        var zipLens;
        if(zipArray[1]){
            zipLens = zipArray[1].split("O");    
        }else{
            zipLens.length = 0;
        }
        
        var uzipStr = "";
        
        for(var j=0;j<zipLens.length;j++){
            var charLen = parseInt(zipLens[j]);
            uzipStr+= String.fromCharCode(zipSrcStr.substr(0,charLen));
            zipSrcStr = zipSrcStr.slice(charLen,zipSrcStr.length);
        }        
        return uzipStr;
    }else{
        //return decodeURI(zipStr);
        var uzipStr=""; 
        for(var i=0;i<zipStr.length;i++){ 
            var chr = zipStr.charAt(i); 
            if(chr == "+"){ 
                 uzipStr+=" "; 
            }else if(chr=="%"){ 
                 var asc = zipStr.substring(i+1,i+3); 
                 if(parseInt("0x"+asc)>0x7f){ 
                     uzipStr+=decodeURI("%"+asc.toString()+zipStr.substring(i+3,i+9).toString()); ; 
                     i+=8; 
                 }else{ 
                     uzipStr+=AsciiToString(parseInt("0x"+asc)); 
                     i+=2; 
                 } 
            }else{ 
                 uzipStr+= chr; 
            } 
        } 
        return uzipStr;
    }
}
var StringToAscii = function(str){
    return str.charCodeAt(0).toString(16);
}
var AsciiToString = function(asccode){
    return String.fromCharCode(asccode);
}

//修改escape为EncodeURI，unescape为DecodeURI