/* $Id: common.js 3651 2006-12-21 09:34:45Z weberliu $ */

var cp = new cpaint();

/**
 * 切换载入状态
 */
function toggleLoader(disp)
{
    document.getElementsByTagName('body').item(0).style.cursor = (disp) ? "wait" : 'auto';	

    // 显示或隐藏loader
    document.getElementById('loader').style.display = (disp) ? 'block' : 'none';
}

/**
 * 添加商品到购物车
 */
function addToCart(goodsId)
{
    var spec_arr        = new Array();
    var fittings_arr    = new Array();
    var number          = 1;

    // 检查是否有商品规格
    if (document.forms['formBuy'])
    {
        j = 0;
        for (i = 0; i < document.forms['formBuy'].elements.length; i++)
        {
            // 如果是单选按钮
            if (goodsattr_style == 1)
            {
                if (document.forms['formBuy'].elements[i].type == 'radio' && 
                    document.forms['formBuy'].elements[i].name.substr(0, 5) == 'spec_' &&
                    document.forms['formBuy'].elements[i].checked)
                {
                    spec_arr[j] = document.forms['formBuy'].elements[i].value;
                    j++;
                }
            }
            // 如果是下拉列表
            else
            {
                if (document.forms['formBuy'].elements[i].tagName == 'SELECT' && 
                    document.forms['formBuy'].elements[i].name.substr(0, 5) == 'spec_')
                {
                    spec_arr[j] = document.forms['formBuy'].elements[i].value;
                    j++;
                }
            }
        }

        if (document.forms['formBuy'].elements['number'])
        {
            number = document.forms['formBuy'].elements['number'].value;
        }
    }

    // 检查是否有配件
    if (document.forms['formFittings'])
    {
        var fittings = document.forms['formFittings'].elements['fittings'];

        if (fittings != undefined)
        {
            if (fittings.length != undefined)
            {
                for (i = 0; i < fittings.length; i++)
                {
                    if (fittings[i].checked)
                    {
                        fittings_arr[i] = fittings[i].value;
                    }
                    else
                    {
                        fittings_arr[i] = "0";
                    }
                }
            }
            else
            {
                if (fittings.checked) fittings_arr[0] = fittings.value;
            }
        }
    }
    
    toggleLoader(true);

    cp.set_transfer_mode('post');
    cp.set_response_type('text');
    cp.call('ajax.php', 'addto_cart', addToCartResponse, goodsId, number, spec_arr, fittings_arr);
}

/**
 * 处理添加商品到购物车的反馈信息
 */
function addToCartResponse(result)
{
    toggleLoader(false);
    
    var success = result.substring(0, 1);
    var message = result.substring(2);
    if (success == "0")
    {
        // 添加到购物车失败。
        alert(message);
    }
    else if (success == "2")
    {
         
        arr            = message.split('|');
        goods_id       = arr[0];
        new_message    = arr[1];
        if (confirm(new_message)) location.href="user.php?act=booking_add&id=" + goods_id;
    }
    else
    {
        if (confirm(message)) location.href="flow.php";
    }
}

/**
 * 添加商品到收藏夹
 */
function collect(goodsId)
{
	toggleLoader(true);
    cp.set_response_type('text');
    cp.call('ajax.php', 'collect', collectResponse, goodsId);
}

/**
 * 处理收藏商品的反馈信息
 */
function collectResponse(result)
{
	toggleLoader(false);
    alert(result);
}

/**
 * 提交评论信息
 */
function submitComment()
{
	var frm = document.forms['commentForm'];
    var username    = frm.elements['username'].value;
    var email       = frm.elements['email'].value;
    var content     = frm.elements['content'].value;
    var type        = frm.elements['type'].value;
    var id          = frm.elements['id'].value;
	var enabled_captcha  = frm.elements['enabled_captcha'] ? frm.elements['enabled_captcha'].value : '0';
    var captcha     = frm.elements['captcha'] ? frm.elements['captcha'].value : '';
    var rank        = 0;

    for (i = 0; i < frm.elements['comment_rank'].length; i++)
    {
        if (frm.elements['comment_rank'][i].checked)
        {
            rank = frm.elements['comment_rank'][i].value;
        }
    }
    if (username.length == 0)
    {
        alert(cmt_empty_username);
        return;
    }
  
    if (email.length > 0)
    {
        if (!(Utils.isEmail(email)))
        {
            alert(cmt_error_email);
            return;
        }
    }

    if (content.length == 0)
    {
        alert(cmt_empty_content);
        return;
    }
	if (enabled_captcha > 0 && captcha.length == 0 )
	{
		alert(captcha_not_null);
		return;
	}
	cp.set_transfer_mode('post');
    cp.set_response_type('text');
	cp.call('ajax.php', 'submit_comment',  commentResponse, username, email, rank, content, type, id, captcha);
}

/**
 * 处理提交评论的反馈信息
 */
function commentResponse(result)
{
    toggleLoader(false);
	
    var done         = result.substr(0, 1);
    var content      = result.substr(2);

    if (done == 1)
    {
        alert(cmt_submit_done);
		document.getElementById("comment-zone").innerHTML = content ;
    }
	else if (done == 2)
	{
		alert(cmt_submit_wait);
		document.getElementById("comment-zone").innerHTML = content ;
	}
    else
    {
        alert(content);
    }
}
/**
 * 处理用户的投票
 */
function submit_vote()
{
	var frm         = document.forms['formvote'];
    var type        = frm.elements['type'].value;
    var vote_id     = frm.elements['id'].value;
    var option_id   = 0;

    if (type ==0)
    {
        for (i=0; i<frm.elements['option_id'].length; i++ )
        {
            if (frm.elements['option_id'][i].checked)
            {
                option_id = option_id + "," + frm.elements['option_id'][i].value;
            }
        }
    }
    else
    {
        for (i=0; i<frm.elements['option_id'].length ;i++ )
        {
            if (frm.elements['option_id'][i].checked)
            {
                option_id   = frm.elements['option_id'][i].value;
            }
        }
    }
    if (option_id == 0)
    {
        alert(option_id_empty);
        return;
    }
    else
    {
        toggleLoader(true);
        cp.set_transfer_mode('post');
        cp.set_response_type('text');
        cp.call('ajax.php', 'submit_vote', submit_voteResponse, vote_id, option_id);
    }
}

/**
 * 处理投票的反馈信息
 */
function submit_voteResponse(result)
{
    toggleLoader(false);
	
    var done         = result.substr(0, 1);
    var vote_content = result.substr(2);

    if (done == 1)
    {
        alert(thank_vote_notic);
        document.getElementById("vote-div").innerHTML = vote_content;
    }
    else
    {
        alert(vote_content);
    }
}

/**
 * 会员登录
 */
function signIn()
{
	var frm         = document.forms['formLogin'];
    var username    = frm.elements['username'].value;
    var password    = frm.elements['password'].value;

    if (username.length == 0 || password.length == 0)
    {
        return;
    }
    else
    {
        toggleLoader(true);
        cp.set_transfer_mode('post');
        cp.set_response_type('text');
        cp.call('ajax.php', 'sign_in', signInResponse, username, password);
    }
}

/**
 * 处理会员登录的反馈信息
 */
function signInResponse(result)
{
    toggleLoader(false);
	
    var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
        document.getElementById('member-zone').innerHTML = content;
    }
    else
    {
        alert(content);
    }
}

/**
 * 修改会员信息
 */
 function userEdit()
 {
	 
	 var frm			     = document.forms['formUser'];
	 var email				 = frm.elements['email'].value;
	 var sex                 = 0;
	 var bonus_sn            = frm.elements['bonus_sn'].value;
	 var old_password        = frm.elements['old_password'].value;
	 var new_password        = frm.elements['new_password'].value;
	 var confirm_password    = frm.elements['comfirm_password'].value;
	 var question            = frm.elements['question'].value;
	 var answer              = frm.elements['answer'].value;
	 var birthdayYear        = frm.elements['birthdayYear'].value;
	 var birthdayMonth       = frm.elements['birthdayMonth'].value;
	 var birthdayDay         = frm.elements['birthdayDay'].value;
	 var birthday            = birthdayYear + "-" + birthdayMonth + "-" + birthdayDay ;
	
	for (i = 0; i < frm.elements['sex'].length; i++)
    {
        if (frm.elements['sex'][i].checked)
        {
            sex = frm.elements['sex'][i].value;
        }
    }
	
	var msg = "";
	var reg = null;

	if (bonus_sn.length > 0)
	{
		reg = /^[0-9]{6,10}$/;
		if (!reg.test(bonus_sn))
		{
			msg += bonus_sn_invalid + '\n';
		}
	}

	if (email.length == 0)
    {
        msg += email_not_null + '\n';
    }
    else
	{
        if (!(Utils.isEmail(email)))
        {
			msg += email_invalid + '\n';
        }
	}

	if (new_password.length != 0)
	{
		if (old_password.length == 0)
		{			
			msg += newpassword_for_oldpassword + '\n';
		}

		if (new_password != confirm_password)
		{
			msg += password_not_same + '\n';
		}
	}

	if (answer.length != 0)
	{
		if (old_password.length == 0)
		{
			msg += answer_for_oldpassword + '\n';
		}

	}	

    if (msg.length > 0)
    {
        alert(msg);
        return;
    }


	toggleLoader(true);
	cp.set_transfer_mode('post');
	cp.set_response_type('text');
	cp.call('user.php?act=ajax', 'user_edit',userEditResponse, email,birthday,sex,old_password,new_password,confirm_password,question,answer,bonus_sn);

 }

/**
 * 修改会员信息反馈处理
 */
function userEditResponse(result)
{
    toggleLoader(false);
	
    var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
        alert(content);
        switchUserStep("profile");
    }
    else if (done == 2)
    {
        alert(content);
        switchUserStep("login");
    }
    else
    {
        alert(content);
    }
}


/**
 * 切换会员中心显示内容
 */

 function switchUserStep(step, val)
 {
   toggleLoader(true);
   cp.set_response_type('text');
   cp.set_transfer_mode('post');
   cp.call('user.php?act=ajax', 'switch_user_step', switchUserStepResponse, step, val);
 }

/**
 * 切换会员中心显示内容
 */

function switchUserStepResponse(result)
{
    toggleLoader(false);
	
    var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
        document.getElementById('main-div').innerHTML = content;
    }
    else if (done == 2)
    {
		alert(content);
		switchUserStep("login");
    }
	else
    {
        alert(content);
    }
}


/**
 * 会员忘记密码处理
 */

 function forgetPassword(id, step)
 {
	var frm					 = document.forms['formPassword'];
	var user_name			 = "";
	if (step == 1)
	{
		user_name			 = frm.elements['user_name'].value;
	}
	
	var answer               = frm.elements['answer'].value;
	var email                = frm.elements['email'].value;

	toggleLoader(true);
	cp.set_response_type('text');
	cp.set_transfer_mode('post');
	cp.call('user.php?act=ajax', 'forget_password', forgetPasswordResponse, id, step, user_name, answer, email);
 }

/**
 * 会员忘记密码反馈处理
 */

function forgetPasswordResponse(result)
{
    toggleLoader(false);
	
    var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
        document.getElementById('main-div').innerHTML = content;
    }
    else
    {
        alert(content);
    }
}

/**
 * 处理添加用户地址过程
 */
function addAddress()
{
    var frm                  = document.forms['formAddress'];
	var con = new Object();
    con['consignee']            = frm.elements['consignee'].value;
    con['country']              = frm.elements['country'].value;
    con['province']             = frm.elements['province'].value;
    con['city']                 = frm.elements['city'].value;
    con['district']             = frm.elements['district'].value;
    con['email']                = frm.elements['email'].value;
    con['address']              = frm.elements['address'].value;
    con['zipcode']              = frm.elements['zipcode'].value;
    con['tel']                  = frm.elements['tel'].value;
    con['mobile']               = frm.elements['mobile'].value;
    con['sign_building']        = frm.elements['sign_building'].value;
    con['best_time']            = frm.elements['best_time'].value;
	con['defalut']              = frm.elements['defalut'].value;  
    if (frm.elements['defalut'][0].checked)
    {
        con['defalut'] = 1;
    }
    

	var msg = '';
	if (con['consignee'].length == 0)
	{
		msg += consignee_not_null + "\n";
	}
	if (frm.elements['country'].options.length > 1 && con['country'] == 0)
	{
		msg += country_not_null + "\n";
	}
	if (frm.elements['province'].options.length > 1 && con['province'] == 0)
	{
		msg += province_not_null + "\n";
	}
	if (frm.elements['city'].options.length > 1 && con['city'] == 0)
	{
		msg += city_not_null + "\n";
	}
	if (frm.elements['district'].options.length > 1 && con['district'] == 0)
	{
		msg += district_not_null + "\n";
	}
    if (con['address'].length == 0)
	{
		msg += address_not_null + "\n";
	}
	if (con['tel'].length == 0)
	{
		msg += tele_not_null + "\n";
	}
	if (msg.length > 0)
	{
		toggleLoader(false);
		alert(msg);
		return;
	}
    

    toggleLoader(true);
    cp.set_transfer_mode('post');
    cp.set_response_type('text');
    cp.call('user.php?act=ajax', 'add_address', addAddressResponse, con);
    
}
/**
 * 处理添加用户地址过程的反馈处理
 */
function addAddressResponse(result)
{
    toggleLoader(false);
    
    var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
        switchUserStep("address");
    }
    else
    {
        alert(content);
    }
}

/**
 * 对会员的留言输入作处理
 *
 */
function submitMsg()
{
	var frm			         = document.forms['formMsg'];
	var msg_title            = frm.elements['msg_title'].value;
	var msg_content          = frm.elements['msg_content'].value;

    if (msg_title.length == 0)
	{
		alert(title_not_null);
		return false;
	}
    else if (msg_content.length == 0)
	{
		alert(content_not_null);
		return false;
	}
}


/**
 *处理会员提交数据订购数据
 */

function addBooking()
{
	var frm					= document.forms['formBooking'];
	var goods_id			= frm.elements['id'].value;
	var rec_id              = frm.elements['rec_id'].value;
	var number			    = frm.elements['number'].value;
	var desc		    	= frm.elements['desc'].value;
	var linkman				= frm.elements['linkman'].value;
	var email				= frm.elements['email'].value;
	var tel				    = frm.elements['tel'].value;

	var msg					= "";

	if (linkman.length == 0)
	{
		msg += linkman_not_null +'\n';
	}

	if (number.length == 0)
	{
		msg += number_not_null + '\n';
	}
	else
	{
		var reg = /^[0-9]+/;
		if (!reg.test(number))
		{
			msg += number_not_number + '\n';
		}
	}

	if (email.length == 0 && tel.length == 0)
	{
		msg += email_or_tel_not_null +'\n';
	}

	

	if (email.length > 0)
	{
		if (!(Utils.isEmail(email)))
		{
			msg += email_invalid +'\n';
		}
	}

	if (msg.length > 0)
	{
		alert (msg);
		return;
	}

	toggleLoader(true);
	cp.set_transfer_mode('post');
	cp.set_response_type('text');
	cp.call('user.php?act=ajax', 'add_booking', addBookingResponse, goods_id,rec_id,number,desc,linkman,email,tel);
}

/**
 * 订购数据反馈处理
 */

function addBookingResponse(result)
{
	toggleLoader(false);
	
	var done = result.substr(0, 1);
	var content = result.substr(2);

	if (done == 1)
	{
		alert(content);
		history.back();		
	}
	else if (done == 2)
	{
		alert(content);
		switchUserStep('booking');
	}
	else
	{
		alert(content);
	}
}

/**
 * 会员登录
 */
function login()
{
	var frm         = document.forms['formLogin'];
    var username    = frm.elements['username'].value;
    var password    = frm.elements['password'].value;
	var act         = '';
	var id          = 0 ;
	
	if (frm.elements['act'])
	{
		act = frm.elements['act'].value;
	}
	if (frm.elements['id'])
	{
		id  = frm.elements['id'].value;
	}
    if (username.length == 0 || password.length == 0)
    {
        return;
    }
    else
    {
        toggleLoader(true);
        cp.set_transfer_mode('post');
        cp.set_response_type('text');
        cp.call('user.php?act=ajax', 'login', loginResponse, username, password, act, id);
    }
}
/**
 * 会员登录反馈处理
 */
function loginResponse(result)
{
	toggleLoader(false);

    var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
		alert(content);
        switchUserStep("profile");
    }
	else if (done == 2)
	{
		var arr = content.split(",", 3);
		alert(arr[2]);
		switchUserStep(arr[0],arr[1]);
	}
    else
    {
        alert(content);
    }
}

/**
 * 处理注册用户
 */
function register()
{
	var frm			        = document.forms['formUser'];
	var username            = frm.elements['username'].value;
	var email               = frm.elements['email'].value;
	var password            = frm.elements['password'].value;
	var confirm_password    = frm.elements['confirm_password'].value;
	var question            = frm.elements['question'].value;
	var answer              = frm.elements['answer'].value;
	var sex                 = 0;
	var birthdayYear        = frm.elements['birthdayYear'].value;
	var birthdayMonth       = frm.elements['birthdayMonth'].value;
	var birthdayDay         = frm.elements['birthdayDay'].value;
	var birthday            = birthdayYear + "-" + birthdayMonth + "-" + birthdayDay ;

	for (i = 0; i < frm.elements['sex'].length; i++)
    {
        if (frm.elements['sex'][i].checked)
        {
            sex = frm.elements['sex'][i].value;
        }
    }
	var msg = "";
	var reg = /[A-Za-z0-9]{3}/

    // 检查输入
    var msg= '';
    if (username.length == 0)
    {
        msg+= username_not_null + '\n';
    }
    if (password.length == 0)
    {
        msg+= password_not_null + '\n';
    }
    if (confirm_password.length == 0)
    {
        msg+= confirm_password_not_null + '\n';
    }
    if (email.length == 0)
    {
        msg+= email_not_null + '\n';
    }
    else
    {
        if (!(Utils.isEmail(email)))
        {
			msg+= email_invalid + '\n';
        }
    }
    if (password.length > 0 && confirm_password.length > 0 && confirm_password != password)
    {
        msg+= password_not_same + '\n';
    }


    if (msg.length > 0)
    {
        alert(msg);
        return;
    }

	toggleLoader(true);
	cp.set_transfer_mode('post');
	cp.set_response_type('text');
	cp.call('user.php?act=ajax', 'register',registerResponse, username, email, password, question, answer, sex, birthday);
	
}
/**
 * 处理注册用户反馈处理
 */
function registerResponse(result)
{
	toggleLoader(false);
	
    var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
		alert(content);
        location.href="user.php";
    }
    else
    {
        alert(content);
    }
}



/**
 * 载入购物流程步骤
 * @param: step 步骤代码
 * @param: from 原步骤
 */
function loadFlowStep(step, from)
{
    toggleLoader(true);
//    cp.set_debug(1);
    cp.set_response_type('text');
    cp.call('ajax.php', 'load_flow_step', loadFlowStepResponse, step, from);
}

/**
 * 载入购物流程步骤的反馈处理
 */
function loadFlowStepResponse(result)
{
    toggleLoader(false);

    var done    = result.substr(0, 1);
    var regx    = /[0-9]/;

    if (!regx.test(done))
    {
      var done = result.substr(3, 1);
      var content = result.substr(5);
    }
    else
    {
      var content = result.substr(2);
    }

    if (done == 1)
    {
        document.getElementById('flow-region').innerHTML = content;
        // 如果是订单详情页面，计算费用
        if (document.getElementById('paymentTable') != undefined)
        {
            calculateOrderFee();
        }
        location.href="#top";

    }
    else
    {
        if (content.length > 0)
        {
            alert(content);
        }
    }
}

/**
 * 删除购物车中的商品
 * @param: recId 记录编号
 */
function dropGoods(recId)
{
    if (confirm(drop_goods_confirm))
    {
        toggleLoader(true);
        cp.set_response_type('text');
        cp.call('ajax.php', 'drop_goods', editCartResponse, recId);
    }
}

function editCartResponse(result)
{
    toggleLoader(false);
	
    var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
        loadFlowStep('cart');
    }
    else
    {
        if (content.length > 0)
        {
            alert(content);
        }
    }
}

/**
 * 修改购物车某商品数量
 * @param: recId 记录编号
 * @param: num   数量
 */
function updateNumber(recId, num)
{
    toggleLoader(true);
    cp.set_response_type('text');
    cp.call('ajax.php', 'update_number', editCartResponse, recId, num);
}

/**
 * 添加赠品
 * @param: int goodsId    商品编号
 */
function addGiftToCart(goodsId)
{
    toggleLoader(true);
    cp.set_response_type('text');
    cp.call('ajax.php', 'add_gift_to_cart', editCartResponse, goodsId);
}

/**
 * 添加某类赠品
 * @param: obj 触发对象
 */
function addGifts(obj)
{
    // 找到容器 div
    while (obj.className != 'gift-div' && obj.parentNode != undefined)
    {
        obj = obj.parentNode;
    }
    
    // 变量 checkbox 或 radio
    for (var i = 0; i < obj.childNodes.length; i++)
    {
        var child = obj.childNodes[i];
        if (child.tagName == 'INPUT')
        {
            if (child.type == 'radio' && child.checked)
            {
                addGiftToCart(child.value);
            }
            else if (child.type == 'checkbox' && child.checked)
            {
                addGiftToCart(child.value);
            }
        }
    }
}

/**
 * 购物流程－登录
 */
function flowLogin()
{
	var frm         = document.forms['loginForm'];
    var username    = frm.elements['lg_user_name'].value;
    var password    = frm.elements['lg_password'].value;

    var errorMsg = '';
    if (username.length == 0)
    {
        errorMsg += username_not_null + '\n';
    }
    if (password.length == 0)
    {
        errorMsg += password_not_null + '\n';
    }
    if (errorMsg.length > 0)
    {
        alert(errorMsg);
        return;
    }

    toggleLoader(true);
    cp.set_transfer_mode('post');
    cp.set_response_type('text');
    cp.call('ajax.php', 'flow_login', flowLoginResponse, username, password);
}

function flowLoginResponse(result)
{
    toggleLoader(false);
	
    var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
        loadFlowStep('consignee');
    }
    else
    {
        if (content.length > 0)
        {
            alert(content);
        }
    }
}

/**
 * 购物流程：注册
 */
function flowRegister()
{
    var frm              = document.forms['registerForm'];
    var username         = frm.elements['reg_user_name'].value;
    var password         = frm.elements['reg_password'].value;
    var email            = frm.elements['reg_email'].value;
    var confirm_password = frm.elements['reg_confirm_password'].value;

    // 检查输入
    var errorMsg = '';
    if (username.length == 0)
    {
        errorMsg += username_not_null + '\n';
    }
    if (password.length == 0)
    {
        errorMsg += password_not_null + '\n';
    }
    if (confirm_password.length == 0)
    {
        errorMsg += confirm_password_not_null + '\n';
    }
    if (email.length == 0)
    {
        errorMsg += email_not_null + '\n';
    }
    else
    {
        if (!(Utils.isEmail(email)))
        {
			errorMsg += email_invalid + '\n';
        }
    }
    if (password.length > 0 && confirm_password.length > 0 && confirm_password != password)
    {
        errorMsg += password_not_same + '\n';
    }
    if (errorMsg.length > 0)
    {
        alert(errorMsg);
        return;
    }

    toggleLoader(true);
    cp.set_transfer_mode('post');
    cp.set_response_type('text');
    cp.call('ajax.php', 'flow_register', flowRegisterResponse, username, password, email);
}

function flowRegisterResponse(result)
{
    toggleLoader(false);

    var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
        alert(register_ok);
        loadFlowStep('consignee');
    }
    else
    {
        alert(content);
    }
}

/**
 * 删除收货地址
 * @param: addressId 地址id
 */
function dropConsignee(addressId)
{
    toggleLoader(true);
    cp.set_response_type("text");
    cp.call('ajax.php', 'drop_consignee', dropConsigneeResponse, addressId);
}

function dropConsigneeResponse(result)
{
    toggleLoader(false);

    var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
        loadFlowStep('consignee');
    }
    else
    {
        alert(content);
    }
}

/**
 * 保存收货人信息
 * @param: step 步骤名称
 * @param: sn   序号
 */
function saveConsignee(step, sn)
{
    // 取得收货人信息
    var con = new Object();
    var ele = document.forms['theForm'].elements;
    con['address_id'] = (sn == '') ? 0 : ele['address_id' + sn].value;
    con['consignee']  = ele['consignee' + sn].value;
    con['country']    = ele['country' + sn].value;
    con['province']   = ele['province' + sn].value;
    con['city']       = ele['city' + sn].value;
    con['district']   = ele['district' + sn].value;
    con['email']      = ele['email' + sn].value;
    con['address']    = ele['address' + sn].value;
    con['zipcode']    = ele['zipcode' + sn].value;
    con['tel']        = ele['tel' + sn].value;
    con['mobile']     = ele['mobile' + sn].value;
    con['sign_building'] = ele['sign_building' + sn].value;
    con['best_time']  = ele['best_time' + sn].value;

    // 取得实体商品个数
    var real_goods_count = 1
    if (ele['real_goods_count'])
    {
        real_goods_count = ele['real_goods_count'].value;
    }

    // 如果是下一步，判断收货人信息是否完整
    if (step == 'order_detail')
    {
        var errorMsg = '';
        if (con['consignee'].length == 0)
        {
            errorMsg += consignee_not_null + "\n";
        }
		
        //如果有实体商品存在,需要检查收货地址
        if (real_goods_count > 0)
        {
            if (ele['country' + sn].options.length > 1 && con['country'] == 0)
            {
                errorMsg += country_not_null + "\n";
            }
            if (ele['province' + sn].options.length > 1 && con['province'] == 0)
            {
                errorMsg += province_not_null + "\n";
            }
            if (ele['city' + sn].options.length > 1 && con['city'] == 0)
            {
                errorMsg += city_not_null + "\n";
            }
            if (ele['district' + sn].options.length > 1 && con['district'] == 0)
            {
                errorMsg += district_not_null + "\n";
            }
            if (con['address'].length == 0)
            {
                errorMsg += address_not_null + "\n";
            }
        }

        if (con['email'].length == 0)
        {
            errorMsg += email_not_null + '\n';
        }
        else
        {
            if (!(Utils.isEmail(con['email'])))
            {
              errorMsg += email_invalid + '\n';
            }
        }
        if (con['tel'].length == 0)
        {
            errorMsg += tele_not_null + "\n";
        }

        if (errorMsg.length > 0)
        {
            toggleLoader(false);
            alert(errorMsg);
            return;
        }
    }
    
    toggleLoader(true);
    cp.set_response_type("text");
    cp.call('ajax.php', 'save_consignee', saveConsigneeResponse, step, con);
}

function saveConsigneeResponse(result)
{
    toggleLoader(false);

    var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
        loadFlowStep(content, 'consignee');
    }
    else
    {
        if (content.length > 0)
        {
            alert(content);
        }
    }
}

/**
 * 改变配送方式：载入支持的支付方式
 * @param: int shippingId
 * @parma: obj frm
 */
function changeShipping(shippingId)
{
    payId = getRadioValue('payment');
    
    toggleLoader(true);
    cp.set_response_type("object");
    cp.call('ajax.php', 'change_shipping', changeShippingResponse, shippingId, payId);
    
    // 计算订单费用
    calculateOrderFee();
}

function changeShippingResponse(result)
{
    toggleLoader(false);

    // 删除支付方式
    var table = document.getElementById('paymentTable');
    for (i = table.rows.length - 1; i > 0; i--)
    {
        table.deleteRow(i);
    }
    
    // 显示支持的支付方式
    var xmlObj = result.ajaxResponse[0].step[0].pay_list[0];
    if (xmlObj.pay[0] != undefined)
    {
        for (i = 0; i < xmlObj.pay.length; i++)
        {
            row     = table.insertRow(-1);
            cell    = row.insertCell(-1);
            html    = '<input type="radio" name="payment" value="' + xmlObj.pay[i].get_attribute('id') + '"';
            if (xmlObj.pay[i].get_attribute('id') == result.ajaxResponse[0].step[0].pay_id[0].data)
            {
                html += " checked";
            }
            cell.innerHTML  = html + '/>';

            cell = row.insertCell(-1);
            cell.innerHTML = xmlObj.pay[i].get_attribute('name');
            cell = row.insertCell(-1);
            cell.innerHTML = xmlObj.pay[i].get_attribute('desc');
        }
    }
}

/**
 * 改变包装：计算费用
 */
function changePack(packId)
{
    // 计算订单费用
    calculateOrderFee();
}

/**
 * 改变贺卡：计算费用
 */
function changeCard(cardId)
{
    // 计算订单费用
    calculateOrderFee();
}

/**
 * 改变余额：余额是否足够
 * @param: int surplus 余额
 */
function changeSurplus(surplus)
{
    surplus = parseFloat(surplus);
    if (!isNaN(surplus))
    {
        toggleLoader(true);
        cp.set_response_type("text");
        cp.call('ajax.php', 'change_surplus', changeSurplusResponse, surplus);
    }
    else
    {
        document.forms['theForm'].elements['surplus'].value = '0';

        // 计算订单费用
        calculateOrderFee();
    }
}

function changeSurplusResponse(result)
{
    toggleLoader(false);

    var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
        // 计算订单费用
        calculateOrderFee();
    }
    else
    {
        if (content.length > 0)
        {
            alert(content);
            document.forms['theForm'].elements['surplus'].focus();
        }
    }
}

/**
 * 改变积分：积分是否足够，积分是否过多
 * @param: int integral 积分
 */
function changeIntegral(integral)
{
    integral = parseInt(integral);
    if (!isNaN(integral))
    {
        toggleLoader(true);
        cp.set_response_type("text");
        cp.call('ajax.php', 'change_integral', changeIntegralResponse, integral);
    }
    else
    {
        document.forms['theForm'].elements['integral'].value = '0';

        // 计算订单费用
        calculateOrderFee();
    }
}

function changeIntegralResponse(result)
{
    toggleLoader(false);

    var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
        // 计算订单费用
        calculateOrderFee();
    }
    else
    {
        if (content.length > 0)
        {
            alert(content);
            document.forms['theForm'].elements['integral'].focus();
        }
    }
}

/**
 * 改变红包：计算红包能换多少钱
 */
function changeBonus(bonusId)
{
    // 计算订单费用
    calculateOrderFee();
}

/**
 * 检查能否保存订单
 */
function checkOrder()
{
    var errorMsg   = '';
    var shippingId = getRadioValue('shipping');
    var payId      = getRadioValue('payment');

    if (shippingId <= 0 && shippingId != -1) // -1表示没有实体商品
    {
        errorMsg += shipping_not_null + '\n';
    }
    if (payId <= 0)
    {
        errorMsg += payment_not_null + '\n';
    }
    if (errorMsg.length > 0)
    {
        alert(errorMsg);
        return false;
    }
    else
    {
        return true;
    }
}

/**
 * 保存订单
 * @param: step 步骤
 */
function saveOrder(step)
{
    var order = new Object();
    order['shipping_id']    = getRadioValue('shipping');
    order['pay_id']         = getRadioValue('payment');
    order['pack_id']        = getRadioValue('pack');
    order['card_id']        = getRadioValue('card');
    order['how_oos']        = getRadioValue('how_oos');
    var ele = document.forms['theForm'].elements;

    order['card_message']   = ele['card_message'] != undefined ? ele['card_message'].value : '';
    order['surplus']        = ele['surplus'] != undefined ? ele['surplus'].value : 0;
    order['integral']       = ele['integral'] != undefined ? ele['integral'].value : 0;
    order['bonus_id']       = ele['bonus'] != undefined ? ele['bonus'].value : 0;
    
    if (ele['need_inv'] != undefined && ele['need_inv'].checked)
    {
        order['need_inv']       = true;
        order['inv_payee']      = ele['inv_payee'].value;
        order['inv_content']    = ele['inv_content'].value;
    }
    else
    {
        order['need_inv']       = false;
        order['inv_payee']      = '';
        order['inv_content']    = '';
    }
    order['postscript'] = ele['postscript'].value;

    toggleLoader(true);

    cp.set_response_type("text");
    cp.call('ajax.php', 'save_order', saveOrderResponse, step, order);
}

function saveOrderResponse(result)
{
    toggleLoader(false);

    var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
        loadFlowStep(content);
    }
    else
    {
        if (content.length > 0)
        {
            alert(content);
        }
    }
}

function setValue(obj, value)
{
    if (obj != undefined)
    {
        obj.innerHTML = value;
    }
}

/**
 * 取得当前选中的单选按钮的值
 * @param: string name
 */
function getRadioValue(name)
{
    var frm = document.forms['theForm'];
    for (i = 0; i < frm.elements.length; i++)
    {
        ele = frm.elements[i];
        if (ele.name == name && ele.tagName == 'INPUT' && ele.type == 'radio' && ele.checked)
        {
            return ele.value;
        }
    }
    return 0;
}

/**
 * 评论的翻页函数
 */
function gotoPage(page, id, type)
{
    toggleLoader(true);
    cp.set_response_type("text");
    cp.call('ajax.php', 'goto_page', gotoPageResponse, page, id, type);
}

function gotoPageResponse(result)
{
    toggleLoader(false);
    document.getElementById("comment-zone").innerHTML = result;
}

/**
 * 用户留言翻页函数
 */
function gotoNext(page,type)
{
    toggleLoader(true);
    cp.set_response_type("text");
    cp.call('user.php?act=ajax', 'goto_next', gotoNextResponse, page, type);
}

function gotoNextResponse(result)
{
    toggleLoader(false);
    document.getElementById("main-div").innerHTML = result;
}

/**
 * 取得格式化后的价格
 * @param: float price
 */
function getFormatedPrice(price)
{
	if (currencyFormat.indexOf("%s") > -1)
	{
		return currencyFormat.replace('%s', advFormatNumber(price, 2));
	}
	else if (currencyFormat.indexOf("%d") > -1)
	{
		return currencyFormat.replace('%d', advFormatNumber(price, 0));
	}
	else
	{
		return price;
	}
}

/**
 * 计算订单费用
 */
function calculateOrderFee()
{
    var ele = document.forms['theForm'].elements;
    
    goodsAmount = parseFloat(ele['goods_amount'].value);  // 商品总金额（包括配件、赠品）
    
    shippingId = getRadioValue('shipping');
    shippingFee = shippingId > 0 ? parseFloat(ele['shipping_' + shippingId].value) : 0; // 配送

    packId = getRadioValue('pack');
    packFee = packId > 0 ? parseFloat(ele['pack_' + packId].value) : 0; // 包装

    cardId = getRadioValue('card');
    cardFee = cardId > 0 ? parseFloat(ele['card_' + cardId].value) : 0; // 贺卡

    surplusMoney = ele['surplus'] != undefined ? parseFloat(ele['surplus'].value) : 0; // 余额
    if (isNaN(surplusMoney))
    {
        surplusMoney = 0;
    }

    integralMoney = ele['integral'] != undefined ? parseInt(ele['integral'].value) : 0; // 积分金额
    if (isNaN(integralMoney))
    {
        integralMoney = 0;
    }
    integralMoney = (integralMoney / 100) * integralScale;
    
    bonusMoney = 0;    // 红包金额
    if (ele['bonus'] != undefined)
    {
        for (i = ele['bonus'].options.length - 1; i > 0; i--)
        {
            if (ele['bonus'].options[i].selected)
            {
                bonusMoney = parseFloat(ele['bonus'].options[i].className);
            }
        }
    }
    
    orderAmount = goodsAmount + shippingFee + packFee + cardFee - surplusMoney - integralMoney - bonusMoney; // 订单总金额
    orderAmount = orderAmount > 0 ? orderAmount : 0;

    setValue(document.getElementById('goods_amount'), getFormatedPrice(goodsAmount));
    setValue(document.getElementById('shipping_fee'), getFormatedPrice(shippingFee));
    setValue(document.getElementById('pack_fee'), getFormatedPrice(packFee));
    setValue(document.getElementById('card_fee'), getFormatedPrice(cardFee));
    setValue(document.getElementById('surplus_money'), getFormatedPrice(surplusMoney));
    setValue(document.getElementById('integral_money'), getFormatedPrice(integralMoney));
    setValue(document.getElementById('bonus_money'), getFormatedPrice(bonusMoney));
    setValue(document.getElementById('order_amount'), getFormatedPrice(orderAmount));
}

/**
 * 不打算登录
 */
function planNotLogin()
{
    cp.set_response_type("text");
    cp.call('ajax.php', 'plan_not_login', planNotLoginResponse);
}

function planNotLoginResponse(result)
{
	var done    = result.substr(0, 1);
    var content = result.substr(2);
	if (done == 1)
	{
		loadFlowStep('consignee');
	}
	else
	{
		alert(content);
	}
    
}

/**
 * 夺宝奇兵会员出价
 */

 function bid(step)
 {
	var price = '';
	var msg = '';
	if (step != -1)
	{
		var frm                  = document.forms['formBid'];
	    price				     = frm.elements['price'].value;
		if (price.length == 0)
		{
			msg += price_not_null + '\n';
		}
		else
		{
			var reg = /^[\.0-9]+/;
			if (!reg.test(price))
			{
				msg += price_not_number + '\n';
			}
		}
	}
	else
	{
		price = step;
	}

	if (msg.length > 0)
	{
		alert(msg);
		return;
	}
	
	toggleLoader(true);
	cp.set_response_type('text');
	cp.set_transfer_mode('post');
	cp.call('snatch.php?act=ajax', 'bid', bidResponse, price);
 }

/**
 * 夺宝奇兵会员出价反馈
 */

function bidResponse(result)
{
    toggleLoader(false);
	
    var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
        document.getElementById('bid-zone').innerHTML = content;
		if (document.forms['formBid'])
		{
			document.forms['formBid'].elements['price'].focus();
		}
		
    }
	else
    {
        alert(content);
    }
}

/**
 * 夺宝奇兵最新出价
 */

 function newPrice()
 {
	cp.set_response_type('text');
	cp.set_transfer_mode('post');
	cp.call('snatch.php?act=ajax', 'new_price', newPriceResponse);
 }

/**
 * 夺宝奇兵最新出价反馈
 */

function newPriceResponse(result)
{
    document.getElementById('price-zone').innerHTML = result;   
}


/**
 * 用户中心订单保存地址信息
 */

 function saveOrderAddress(id)
 {
	var frm             = document.forms['formAddress'];
    var consignee       = frm.elements['consignee'].value;
    var email           = frm.elements['email'].value;
    var address         = frm.elements['address'].value;
    var zipcode         = frm.elements['zipcode'].value;
    var tel             = frm.elements['tel'].value;
    var mobile          = frm.elements['mobile'].value;
    var sign_building   = frm.elements['sign_building'].value;
    var best_time       = frm.elements['best_time'].value;

	if (id == 0)
	{
		alert(current_ss_not_unshipped);
		return;
	}
	var msg = '';
	if (address.length == 0)
	{
		msg += address_name_not_null + "\n";
	}
	if (consignee.length == 0)
	{
		msg += consignee_not_null + "\n";
	}

	if (msg.length > 0)
	{
		alert(msg);
		return;
	}

	toggleLoader(true);
    cp.set_transfer_mode('post');
    cp.set_response_type('text');
	cp.call('user.php?act=ajax', 'save_order_address', saveOrderAddressResponse,id, consignee, email, address, zipcode, tel, mobile,sign_building,best_time);
 
 }

 function saveOrderAddressResponse(result)
 {
	 toggleLoader(false);
     alert(result);
 }

 /**
  * 合并订单
  */
  function mergeOrder()
  {
	var frm              = document.forms['formOrder'];
    var from_order       = frm.elements['from_order'].value;
    var to_order         = frm.elements['to_order'].value;

	var msg = "";


	if (from_order == 0)
	{
		msg = from_order_not_null + "\n";
	}
	if (to_order == 0)
	{
		msg  += to_order_not_null + "\n";
	}
	if (msg.length > 0)
	{
		alert(msg);
		return ;
	}
	
	from_order = "o" + from_order;
	to_order   = "o" + to_order;
	toggleLoader(true);
    cp.set_transfer_mode('post');
    cp.set_response_type('text');
	cp.call('user.php?act=ajax', 'ajax_merge_order', mergeOrderResponse, from_order, to_order);
  
  }
  function mergeOrderResponse(result)
  {
	toggleLoader(false);
	var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
        alert(content);
		switchUserStep('order');
    }
    else
    {
        alert(content);
    }	  
  
  }

/**
 * 退款申请
 */

function postRepay()
{
	var frm			         = document.forms['formRepay'];
	var amount               = frm.elements['amount'].value;
	var method               = frm.elements['method'].value;
	var money                = frm.elements['money'].value;
	
	var msg = "";
	
	if (amount.length == 0 )
	{
		msg += amount_not_null + "\n";
	}
	else
	{
		var reg = /^[\.0-9]+/;
		if (!reg.test(amount))
		{
			msg += amount_not_number + "\n";
		}
	}
	
	if (method.length == 0)
	{
		msg += method_not_null + "\n";
	}
	if (parseFloat(amount) > parseFloat(money) || parseFloat(amount) == 0)
	{
		msg += confirm_note_start + money + confirm_note_end + "\n";
	}

	if (msg.length > 0)
	{
		alert(msg);
		return ;
	}


	if (!confirm(confirm_note))
	{
		return;
	}

	toggleLoader(true);
	cp.set_transfer_mode('post');
	cp.set_response_type('text');
	cp.call('user.php?act=ajax', 'post_repay', postRepayResponse, amount, method);
	
}
/**
 * 处理用户留言反馈处理
 */
function postRepayResponse(result)
{
	toggleLoader(false);
	
    var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
		alert(content);
        switchUserStep("repay");
    }
    else
    {
        alert(content);
    }
}

/**
 *  处理用户添加一个红包
 */
function addBonus()
{
	var frm			        = document.forms['formUser'];
	var bonus_sn            = frm.elements['bonus_sn'].value;
	if (bonus_sn.length ==0)
	{
		alert(bonus_sn_not_null );
		return;
	}
	else
	{
		var reg = /^[0-9]{10}$/;
		if (!reg.test(bonus_sn))
		{
			alert(bonus_sn_invalid);
			return;
		}
	}
	toggleLoader(true);
	cp.set_transfer_mode('post');
	cp.set_response_type('text');
	cp.call('user.php?act=ajax', 'add_bonus',addBonusResponse, bonus_sn);
}

function addBonusResponse(result)
{
    toggleLoader(false);
	
    var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
        alert(content);
		switchUserStep("profile");
    }
	else
	{
		 alert(content);
	}
}

/**
 * 订单中的商品返回购物车
 * @param		int		orderId		订单号
 */
function returnToCart(orderId)
{
	toggleLoader(true);
	cp.set_response_type('text');
	cp.call('user.php?act=ajax', 'return_to_cart', returnToCartResponse, orderId);
}

function returnToCartResponse(result)
{
    toggleLoader(false);

    var done    = result.substr(0, 1);
    var content = result.substr(2);

    if (done == 1)
    {
        alert(return_to_cart_ok);
    }
    else
    {
        alert(content);
    }
}

/**
 * 用户添加标记的处理函数
 */
function submitTag(frm)
{
	try
	{
		var tag = frm.elements['tag'].value;
    var idx = frm.elements['goods_id'].value;

    if (tag.length > 0 && parseInt(idx) > 0)
    {
      toggleLoader(true);
      cp.set_response_type('object');
      cp.call('ajax.php', "submit_tag", submitTagResponse, idx, tag);
    }
	}
	catch (e)	{	alert(e); }

  return false;
}

function submitTagResponse(result)
{
	toggleLoader(false);

  var div = document.getElementById('divTags');
  div.innerHTML = '';

  try
  {
    if (typeof result.ajaxResponse[0].failed != 'undefined')
    {
      alert(result.ajaxResponse[0].failed[0].data);
    }
    else
    {
      var tags = result.ajaxResponse[0].tags;

      for (i = 0; i < tags.length; i++)
      {
        div.innerHTML += '<a href="search.php?keywords='+tags[i].word[0].data+'">' +tags[i].word[0].data + '[' + tags[i].count[0].data + ']</a>&nbsp;&nbsp; ';
      }
    }
  }
  catch (e)
  {
    alert(e);
  }
}

/**
 *	返回属性列表
 */
function getAttr(cat_id)
{
	var tbodies = document.getElementsByTagName('tbody');
	for (i = 0; i < tbodies.length; i++)
	{
		if (tbodies[i].id.substr(0, 10) == 'goods_type')
			tbodies[i].style.display = 'none';
	}
	
	var type_body = 'goods_type_' + cat_id;
	document.getElementById(type_body).style.display = '';
}


/**
 * 截取小数位数
 */
function advFormatNumber(value,num) //四舍五入
{
	var a_str = formatNumber(value,num);
	var a_int = parseFloat(a_str);
	if (value.toString().length > a_str.length)
	{
		var b_str = value.toString().substring(a_str.length, a_str.length + 1);
		var b_int = parseFloat(b_str);
		if (b_int < 5)
		{
			return a_str;
		}
		else
		{
			var bonus_str, bonus_int;
			if (num == 0)
			{
				bonus_int = 1;
			}
			else
			{
				bonus_str = "0."
				for (var i = 1; i < num; i++)
				bonus_str += "0";
				bonus_str += "1";
				bonus_int = parseFloat(bonus_str);
			}
			a_str = formatNumber(a_int + bonus_int, num)
		}
	}
	return a_str;
}

function formatNumber(value,num) //直接去尾
{
	var a,b,c,i;
	a = value.toString();
	b = a.indexOf('.');
	c = a.length;
	if (num == 0)
	{
		if (b != -1)
		{
			a = a.substring(0,b);
		}
	}
	else
	{
		if (b == -1)
		{
			a = a + ".";
			for (i = 1; i <= num; i++)
			{
				a = a + "0";
			}
		}
		else
		{
			a = a.substring(0, b + num + 1);
			for (i = c; i <= b + num; i++)
			{
				a = a + "0";
			}
		}
	}
	return a;
}
