﻿$(document).ready(
    function() {
        loadShoppingCart();
        islogin();
        loadPeriod();
        $("#daySelect").change( function() {
            changeStartTimeSelect();
        });
        $("#startTimeSelect").change( function() {
            changeEndTimeSelect();
        });
        $("#loginSubmit").click(function(){
            $.post('ajaxService/Login.aspx', {
                userName: $("#userName").val(),
                password: $("#password").val()
                }, function(e) {
                    if (e.toString()==""){
                        alert("登陆失败！请重新输入您的用户名和密码");
                    }else{
                        $.cookie("jjmUser",e.toString(),{expires:1,path:'/'});   
                        loadCertifyInfo();
                    }
            });
            return false;
        });
    }
);
function loadCertifyInfo(){
    var loginCookie = $.cookie("jjmUser");    
    var jsonUser = JSON.parse(loginCookie);    
    $("#loginDiv").empty();
    $("#loginDiv").append("<strong>请确认您的联系信息</strong>");
    var vertifyInfo = "<div style='text-align:left;padding-left:80px;padding-right:50px;width:800px;margin-left:auto; margin-right:auto'>";
    vertifyInfo += "姓名：<input id='realname' type='text' value='" + jsonUser.user[0].realname + "'> *<br/>";
    vertifyInfo += "手机：<input id='mobile' type='text' value='" + jsonUser.user[0].mobile + "'> *<br/>";
    vertifyInfo += "电话：<input id='phone' type='text' value='" + jsonUser.user[0].phone + "'>（为防止手机关机请您留下联系电话作为备用，以便我们能即使联系到您）<br/>";
    vertifyInfo += "地址：<input id='location' type='text' value='" + jsonUser.user[0].location + "' size='90'> * （请写的尽量详细）<br/>";
    vertifyInfo += "备注：<input id='orderRemark' type='text' value='' size='90'>  （限100字内）<br/>";
    vertifyInfo += "</div>"; 
    $("#loginDiv").append(vertifyInfo); 
    $("#loginDiv").append("<a href='#' onclick='submitOrderList();return false;'><img border='0' src='images/shopingCart/submitOrderBt.jpg'/></a><br/><br/>");
}
function submitOrderList(){
    //验证备注字数
    var orderRemark = $("#orderRemark").val();
    if(orderRemark.length>100){
        alert("您在备注中输入的字数大于100字，请将备注内容精简到100字内，谢谢！");
        $("#orderRemark").focus();
        return;
    }
    //验证购物车是否为空
    var goodsJson = getCart();     
    if (goodsJson.goods.length==0){
        alert("您的购物车现在没有商品啊，选择几个喜欢的商品吧：）");
        return;
    }
    //确定送货时间
    if($("#daySelect").val()=="--请选择--"){
        alert("请选择送货日期");
        return;
    }else if($("#startTimeSelect").val()=="--请选择--"||$("#endTimeSelect").val()=="--请选择--"){
        alert("请确定送货时间段");
        return;
    }    
    //发送订货单
    var userCookie = $.cookie("jjmUser");
    var userJson = JSON.parse(userCookie);
    var userId = userJson.user[0].uid;    
    var realname = $("#realname").val();
    var mobile = $("#mobile").val();
    var phone = $("#phone").val();
    var location = $("#location").val();    
    //验证用户信息中不能有“,”
    if (realname.indexOf(",")!=-1||mobile.indexOf(",")!=-1||phone.indexOf(",")!=-1||location.indexOf(",")!=-1){
        alert("您的联系信息中请不要输入逗号（,）");
        return;
    }
    if (realname==""||mobile==""||location==""){
        alert("请填写您的详细资料，以便我们能按时送货上门，谢谢合作！");
        return;
    }
    
    var deliverDay = $("#daySelect").val();
    var deliverStartTime = $("#startTimeSelect").val();
    var deliverEndTime = $("#endTimeSelect").val();    
    var userInfo = {"userInfo":[{"uid":userId,"realname":realname,"mobile":mobile,"phone":phone,"location":location}],"deliver":[{"deliverDay":deliverDay,"deliverStartTime":deliverStartTime,"deliverEndTime":deliverEndTime}]}; 
    $("#loginDiv").empty();
    $("#loginDiv").append("<strong><font color='red'>订单提交中……</font></strong>");
    $.post('ajaxService/SubmitOrder.aspx', {
        userJsonArg: json2str(userInfo),
        orderRemark:orderRemark,
        goodsJsonArg: json2str(goodsJson)
        }, function(e) {
            if (e.toString().length==13){                 //加入返回的是订单号
                writeToCookie("{\"goods\":[]}");
                $("#orderList").empty();
                $("#orderList").append("您订购的商品已经提交，谢谢您选择我们的服务！");
                $("#loginDiv").empty();
                $("#loginDiv").append("<strong><font color='red'>订购成功，您的订单号为：" + e.toString() + "！请耐心等待您订购的商品！</font></strong>");
            }else{
                $("#loginDiv").empty();
                $("#loginDiv").append("<strong><font color='red'>提交订单失败，请先电话联系订购吧，联系电话：13581874254</font></strong>");
            }
    });    
}
function islogin(){
    if ($.cookie("jjmUser")!=null&&$.cookie("jjmUser")!=""){
        loadCertifyInfo();
    }
}
function changeStartTimeSelect(){
    var d;
    d = new Date();
    if($("#daySelect").val()=="--请选择--"){
        $("#startTimeSelect").attr("disabled",true);
    }else{
        $("#startTimeSelect").attr("disabled",false);        
    }     
    var l = document.getElementById("startTimeSelect").options.length;
    for (var m=1;m < l;m++){
        document.getElementById("startTimeSelect").remove(1);
    }
    var endL = document.getElementById("endTimeSelect").options.length;
    for (var n=1;n < endL;n++){
        document.getElementById("endTimeSelect").remove(1);
    }
    $("#endTimeSelect").attr("disabled",true);
    if ($("#daySelect").val() == d.format("MM月dd日")){        
        var startTimeWork = d.getHours();
        if(d.getHours()<8){
            startTimeWork = 8;            
        }
        
        for (var i = startTimeWork; i < 21;i++){            
            var oOption = new Option((i+1).toString() + ":00",i+1);        
            document.getElementById("startTimeSelect").options.add(oOption);            
        }
    }else{
        for (var j = 8; j < 21;j++){
            var oOption1 = new Option((j+1).toString() + ":00",j+1);        
            document.getElementById("startTimeSelect").options.add(oOption1);            
        }
    }
}
function changeEndTimeSelect(){
    //alert($("#startTimeSelect").val());
    if($("#startTimeSelect").val()=="--请选择--"){
        $("#endTimeSelect").attr("disabled",true);
    }else{
        $("#endTimeSelect").attr("disabled",false);        
    }
    var l = document.getElementById("endTimeSelect").options.length;
    for (var m=1;m < l;m++){
        document.getElementById("endTimeSelect").remove(1);
    }
    for (var i = parseInt($("#startTimeSelect").val()); i < 22;i++){
        var oOption = new Option((i+1).toString() + ":00",i+1);        
        document.getElementById("endTimeSelect").options.add(oOption);            
    }
}
function loadPeriod(){
    var d,t;
    d = new Date();
    //日期
    for (var j=0;j < 7;j++){
        if (d.getHours() < 21&&j==0){
            d.setDate(d.getDate());
        }else{
            d.setDate(d.getDate()+1);
        }
        var optionD = new Option(d.format("MM月dd日"),d.format("MM月dd日"));
        document.getElementById("daySelect").options.add(optionD); 
    }    
}

// 函数名 getCart() 
// 功能 从Cookie中读出购物车
function getCart(){
    if ($.cookie("JJMshopingCart")==null||$.cookie("JJMshopingCart")==""){
        writeToCookie("{\"goods\":[]}");        
        return JSON.parse("{\"goods\":[]}");
    }else{
        return JSON.parse($.cookie("JJMshopingCart"));
    }
}
// 函数名 writeToCookie() 
// 功能 将字符串写到Cookie中去
function writeToCookie(shopingCartCookie){
    $.cookie("JJMshopingCart",shopingCartCookie,{expires:1,path:'/'});
    //$.cookie("JJMshopingCart",shopingCartCookie,{expires:30,domain: "www.jiajiamai.com"});
}
function loadShoppingCart(){
    
    var jsonGoods = getCart(); 
    var cartListText = "";  
    var goodsNumber = 0; 
    var totalPrice = 0.00;
     $("#orderList").empty();
    if (jsonGoods.goods.length==0){
        $("#orderList").append("<br/><br/>您还未选择喜欢的商品，再去<a href='Default.aspx'>商城逛逛</a>吧，体验一下我们带给您的便捷服务！<br/><br/><br/>");
    }else{
        cartListText = "<table id=\"tableList\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\" style=\"border-collapse:collapse;margin:20px; width:960px; border:1px solid #92BE4B;\">";
        cartListText += "<tr align=\"center\" style=\"background-color:#D9EEAD;height:30px;\"><td>商品编号</td><td>商品名称</td><td>价格</td><td>商品数量</td><td>删除商品</td></tr>";
        for (var i=0; i < jsonGoods.goods.length;i++){
            goodsNumber = parseInt(jsonGoods.goods[i].num) + parseInt(goodsNumber);
            cartListText += "<tr>"
            cartListText += "<td>" + jsonGoods.goods[i].sn + "</td><td>" +jsonGoods.goods[i].name + "</td><td>￥" + jsonGoods.goods[i].price  + "</td><td>" + jsonGoods.goods[i].num + "</td><td><a href='#' onclick='deleteGoods(" + i + ");return false;'>删除</a></td>" ;
            cartListText +="</tr>";            
            totalPrice = addTwoFloat(totalPrice,accMul(parseFloat(jsonGoods.goods[i].price),parseFloat(jsonGoods.goods[i].num)));
            //totalPrice += parseFloat(jsonGoods.goods[i].price)*parseInt(jsonGoods.goods[i].num); 
        }
        totalPrice = totalPrice.toFixed(2);
        var deliverCast = 0.00;
        var info = "";
        if (totalPrice <= 50) {
            deliverCast = 10.00;
            info = "（商品总额大于50元送货费为5元，满100元即可免送货费哦！）";
        } else if (totalPrice <= 100) {
            deliverCast = 5.00;
            info = "（满100元即可免送货费哦！）";
        }
        deliverCast = deliverCast.toFixed(2);
        var sumCast = parseFloat(totalPrice) + parseFloat(deliverCast);
        sumCast = sumCast.toFixed(2);        
        cartListText += "<tr><td colspan='5' style='background-color:#D9EEAD;height:30px;'>您共选择 <font color='red'><strong>" + goodsNumber + "</strong></font> 件商品，总计应付：<font color='red'><strong>￥" + totalPrice + "（商品总额）+￥" + deliverCast + "（送货费）=" + sumCast + "元</strong></font><font color='green'><strong>" + info + "</strong></font></td></tr>";
        cartListText += "</table>";
        $("#orderList").append(cartListText);
    }
}

//乘法函数，用来得到精确的乘法结果 
//说明：javascript的乘法结果会有误差，在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。 
//调用：accMul(arg1,arg2) 
//返回值：arg1乘以arg2的精确结果 
function accMul(arg1,arg2) 
{ 
     var m=0,s1=arg1.toString(),s2=arg2.toString(); 
     try{
        m+=s1.split(".")[1].length
     }catch(e){} 
     try{
        m+=s2.split(".")[1].length
     }catch(e){} 
     return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m) 
}

// 函数名 deleteGoods() 
// 功能 删除购物车中的某项物品 
function deleteGoods(i){
    var jsonGoods = getCart();    
    jsonGoods.goods.splice(i,1);
    writeToCookie(JSON.stringify(jsonGoods));
    loadShoppingCart();   
}

//
function emptyCart(){
    writeToCookie("{\"goods\":[]}"); 
    loadShoppingCart(); 
}



Date.prototype.format = function(format){
 /*
  * eg:format="YYYY-MM-dd hh:mm:ss";
  */
 var o = {
  "M+" :  this.getMonth()+1,  //month
  "d+" :  this.getDate(),     //day
  "h+" :  this.getHours(),    //hour
      "m+" :  this.getMinutes(),  //minute
      "s+" :  this.getSeconds(), //second
      "q+" :  Math.floor((this.getMonth()+3)/3),  //quarter
      "S"  :  this.getMilliseconds() //millisecond
   }
  
   if(/(y+)/.test(format)) {
    format = format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
   }
 
   for(var k in o) {
    if(new RegExp("("+ k +")").test(format)) {
      format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
    }
   }
 return format;
}


function json2str(o) {
     var arr = [];
     var fmt = function(s) {
         if (typeof s == 'object' && s != null) return json2str(s);
         return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;
     }
     for (var i in o) arr.push("'" + i + "':" + fmt(o[i]));
     return '{' + arr.join(',') + '}';
}

//相加两个float类型的数值
function addTwoFloat(val1,val2)
{
    var TotalNum;
    
    val1 = val1 + '' ; 
    val2 = val2 + '' ;
    var sp_val1 = val1.split(".") ; 
    var sp_val2 = val2.split(".") ;
    if ((sp_val1.length==2) && (sp_val2.length==2)) { 
        //整数部分相加
        var total1 = parseInt(sp_val1[0]) + parseInt(sp_val2[0]);
        //小数部分相加
        if (sp_val1[1].length==1){
            sp_val1[1] = sp_val1[1]+"0";
        }
        if (sp_val2[1].length==1){
            sp_val2[1] = sp_val2[1]+"0";
        }
        var total2 = parseInt(sp_val1[1]) + parseInt(sp_val2[1]);
        total2 = total2+"";
        if (total2.length==1){
            total2 = "0"+total2;
        }else if(total2.length>2)
        {
            total1 +=parseInt(total2.substr(0,total2.length-2));
            total2 = total2.substring(total2.length-2,total2.length);
        }
        TotalNum = parseFloat(total1+"."+total2);
    }else{     
        TotalNum = parseFloat(val1) + parseFloat(val2) ;     
    }
    return TotalNum;
    
}