$(function(){ 
	recaculate();	
	$("#site_pay").bind('click', function(event) {   // Go to alipay
		update_prices();    //Update final price in case books amount changed
		if (validate()) {
			if (!confirm('您确定输入的信息无误?并进行下一步操作吗？')) 
				return false;
			else
				$('#orderform').submit();
		}
			//tb_show('', '#TB_inline?height=300&amp;width=500&amp;inlineId=popwin_pay&amp;modal=true', false); 
		event.preventDefault();
	});
	$("#site_add").bind('click', function(event) {
			if (!confirm('您确定输入的信息无误?并进行下一步操作吗？')) 
				return false;
			else
				$('#orderform').submit();
	});
	$("#pay_confirm").bind('click', function() {
		$('#orderform').submit();
		return false;
	});
	$("#site_free").bind('click', function(event) {  // zero pay order. Just go to finish.
		update_prices(); 
		if (validate()) {
			if (!confirm('完成印品 ...\n* 完成印品订购，您确定要进行此操作吗？')) 
				return false;
			else {
				$("#free_confirm").replaceWith("<img src='../images/icon_building.gif' />");
				$('#orderform').submit();
			}	
		}
			//tb_show('', '#TB_inline?height=300&amp;width=500&amp;inlineId=popwin_free&amp;modal=true', false);
		event.preventDefault();
	});
	$("#free_confirm").bind('click', function(e) {
		$("#free_confirm").replaceWith("<img src='../images/icon_building.gif' />");
		$('#orderform').submit();
		return false;
	});
	$('.booknum').keyup(recaculate);
	$("#email").blur(checkemail);
	$("#name").blur(checkname);
	$("#address").blur(checkaddr);
	$("#pcode").blur(checkcode);
	$("#tel").blur(checktel);
	$("#cellphone").blur(checkcell);
	$("#delivery_type").change(changeDelivery);
	
	$("#btnRedeem").bind('click', function(event) {  //Press'更新价格' button.
		var q = 0;
		var list = $('#itemlist');
		var priceArray = list.find('input');
		for(var i = 0; i < priceArray.length; i++) {
			var p = priceArray[i].value;
			if(isNaN(p)) return;
			q += Number(p);
		}
		if(parseInt(q) < 3) {   //MichaelShaw: if the ordered amount is more that 3 copies, need not alert.
			if( $('#delivery_type').val() == -1) {
				$("#cardinfo").text('请选择快递区域!');
				$("#cardinfo").effect("highlight", {}, 3000);
				return false;
			}
		}
		
		var card = $("#card").val();
		$("#cardinfo").load("../libs/process-discount.php?cardno=" + card);
	});
});

function changeDelivery() {
	var dp = $('#dp');
	var val = (this.value == '-1') ? 0 : this.value;
	dp.text(String(val));
	recaculate();
};
function setClass(obj, info) {
	if(info == "i") {
		obj.removeClass("order_error");
		obj.addClass("order_right");
		obj.html("<font>ok</font>");
	} else {
		obj.removeClass("order_right");
		obj.addClass("order_error");
	}
}
function checkname() {
	info = $("#namefield");
	v = $("#name").val();
	if($.trim(v).length < 2) {
		setClass(info, 'c');
		info.html("<font>不能小于2个字符</font>");
		$.scrollTo( "#nametd", 800 );
		return false;
	} else {
		setClass(info, 'i');
		return true;
	}
}
function checkemail() {
	info = $("#emailfield");
	v = $("#email").val();
	var pattern = /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/; 
	flag = pattern.test(v); 
	if(!flag){ 
		setClass(info, 'c');
		info.html("<font>邮件格式不正确</font>");
		$.scrollTo( "#emailtd", 800 );
		return false;
	} else {
		setClass(info, 'i');
		return true;
	}
}

function checkaddr() {
	info = $("#addressfield");
	v = $("#address").val();
	if($.trim(v).length < 5) {
		setClass(info, 'c');
		info.html("<font>地址不能小于5个字符</font>");
		$.scrollTo( "#addresstd", 800 );
		return false;
	} else {
		setClass(info, 'i');
		return true;
	}
}
function checkcode() {
	info = $("#pcodefield");
	v = $("#pcode").val();
	if($.trim(v).length < 6 || isNaN(v)) {
		setClass(info, 'c');
		info.html("<font>格式不正确</font>");
		$.scrollTo( "#pcodetd", 800 );
		return false;
	} else {
		setClass(info, 'i');
		return true;
	}
}
function checktel() {
	v = $("#tel").val();
	info = $("#telfield");
	var pattern = /^([0-9]){3,4}-([0-9]){7,8}/; 
	flag = pattern.test(v); 
	if(!flag){ 
		setClass(info, 'c');
		info.html("<font>格式不正确</font>");
		$.scrollTo( "#teltd", 800 );
		return false;
	} else {
		setClass(info, 'i');
		return true; 
	}
}
function checkcell() {
	info = $("#cellphonefield");
	v = $("#cellphone").val();
	if($.trim(v).length != 11 || isNaN(v)) {
		setClass(info, 'c');
		info.html("<font>格式不正确</font>");
		$.scrollTo( "#cellphonetd", 800 );
		return false;
	} else {
		setClass(info, 'i');
		return true;
	}
}

function validate() {
	var q = 0;
	var list = $('#itemlist');
	var priceArray = list.find('input');
	for(var i = 0; i < priceArray.length; i++) {
		var p = priceArray[i].value;
		if(isNaN(p)) return;
		q += Number(p);
	}
	if(parseInt(q) < 3) {   //MichaelShaw: if the ordered amount is more that 3 copies, need not alert.
		if( $('#delivery_type').val() == -1) {
			alert('请选择快递区域');
			$.scrollTo( "#expressname", 800 );
			return false;
		}
	}
	if(checkemail() == false ||
	   checkname()  == false ||
	   checkaddr()  == false ||
	   checktel()   == false ||
	   checkcell()  == false ||
	   checkcode()  == false ) {
		return false;
	} else
		return true;
}

function recaculate() {
	var total = 0;
	var q = 0;
	var list = $('#itemlist');
	var priceArray = list.find('input');
	var unitArray = list.find('span.price');
	for(var i = 0; i < priceArray.length; i++) {
		var p = priceArray[i].value;
		if(isNaN(p)) return;
		//var s = $('#p' + i).text();   
		var s = unitArray[i].innerHTML;   
		total += Number(p * s);
		q += Number(p);
	}
	var tbooknum = $('#tbooknum');
	tbooknum.text(parseInt(q));

	var s = $('#price').text();  //Get the unit price
	total = q * s; 
	
	var tprice = $('#tprice');
	tprice.text(total);

	
}



function update_prices() {
	var postage = Number($('#dp').text());
	var total_price = Number($("#tprice").text());

	switch ($("#cardtype").val()){
	case "free":
	  total_price = total_price - 28;
	  break;
	case "cash":
	  total_price += postage;
	  var cash = parseFloat($("#cardvalue").val());
	  if (total_price <= cash)
	    total_price = 0;
	  else
	    total_price -= cash;
	  break;
	case "discount":
	  var discount = parseFloat($("#cardvalue").val());
	  total_price *= discount;
	  total_price += postage;
	  break;
	default: 
	  total_price += postage;
	}

	total_price = Math.round(total_price * 100) / 100;
	$("#fprice").text(total_price);
	$("#discountprice").val(total_price);  //for hidden submit
 
	if (total_price == 0) {
		$("#site_free").css("display", "block");
		$("#site_pay").css("display", "none");
	} else {
		$("#site_pay").css("display", "block");
		$("#site_free").css("display", "none");
	}
}
