// JavaScript Document

document.itemQtyChangedFlag=false;

String.prototype.Trim = function() { 
	return this.replace(/(^\s*)|(\s*$)/g, ""); 
} 

// return the value of the radio button that is checked
// return an empty string if none are checked, or
// there are no radio buttons
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

// set the radio button with the given value as being checked
// do nothing if there are no radio buttons
// if the given value does not exist, all the radio buttons
// are reset to unchecked
function setCheckedValue(radioObj, newValue) {
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}

function checkMail(email) {
	var x = email;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(x)) return true;
	else return false;
}

function checkContactUs(myForm) {
	var contactPerson = myForm.contactPerson;
	var email = myForm.email;
	var message = myForm.message;
	var sendFlag = true;
	
	if (contactPerson.value.Trim() == "" && sendFlag){
		alert("請輸入你的姓名");
		sendFlag = false;
		contactPerson.focus();
	}
	
	if (email.value.Trim() == "" && sendFlag){
		alert("請輸入你的電郵");
		sendFlag = false;
		email.focus();
	} else if (!checkMail(email.value.Trim()) && sendFlag) {
		alert("電郵格式錯誤 請重新輸入");
		sendFlag = false;
		email.focus();
	}
	
	if (message.value.Trim() == "" && sendFlag){
		alert("請輸入查詢內容");
		sendFlag = false;
		message.focus();
	}
	
	if (sendFlag && !document.formPostedFlag) {
		document.formPostedFlag = "POSTED";
		return sendFlag;
	}
	return (document.formPostedFlag) ? false : sendFlag;
}

function checkCartDetails(myForm) {
	var receiver = myForm.receiver;
	var contactNumber = myForm.contactNumber;
	var deliveryAddress1 = myForm.deliveryAddress1;
	var paymentMethod = myForm.paymentMethod;
	var sendFlag = true;
	
	if (receiver.value.Trim() == "" && sendFlag){
		alert("請輸入收貨人姓名");
		sendFlag = false;
		receiver.focus();
	}
	
	if (contactNumber.value.Trim() == "" && sendFlag){
		alert("請輸入收貨人電話");
		sendFlag = false;
		contactNumber.focus();
	}
	
	if (deliveryAddress1.value.Trim() == "" && sendFlag){
		alert("請輸入收貨人地址");
		sendFlag = false;
		deliveryAddress1.focus();
	}
	
	if (sendFlag && !document.formPostedFlag) {
		document.formPostedFlag = "POSTED";
		return sendFlag;
	}
	return (document.formPostedFlag) ? false : sendFlag;
}

function checkMemberReg(myForm) {
	var username = myForm.username;
	var pass = myForm.pass;
	var personName = myForm.personName;
	var email = myForm.email;
	var sex = myForm.sex;
	var tel = myForm.tel;
	var address = myForm.address;
	var districtId = myForm.districtId;
	var sendFlag = true;
	
	if (username.value.Trim() == "" && sendFlag){
		alert("請輸入登入名稱");
		sendFlag = false;
		username.focus();
	}
	
	if (pass.value.Trim() == "" && sendFlag){
		alert("請輸入密碼");
		sendFlag = false;
		pass.focus();
	}
	
	if (personName.value.Trim() == "" && sendFlag){
		alert("請輸入你的姓名");
		sendFlag = false;
		personName.focus();
	}
	
	if (email.value.Trim() == "" && sendFlag){
		alert("請輸入你的電郵");
		sendFlag = false;
		email.focus();
	} else if (!checkMail(email.value.Trim()) && sendFlag) {
		alert("電郵格式錯誤 請重新輸入");
		sendFlag = false;
		email.focus();
	}
	
	if (getCheckedValue(sex) == "" && sendFlag){
		alert("請選擇你的性別");
		sendFlag = false;
	}
	
	if (tel.value.Trim() == "" && sendFlag){
		alert("請輸入你的電話");
		sendFlag = false;
		tel.focus();
	}
	
	if (address.value.Trim() == "" && sendFlag){
		alert("請輸入你的地址");
		sendFlag = false;
		address.focus();
	}
	
	if (districtId.value.Trim() == "" && sendFlag){
		alert("請選擇地區");
		sendFlag = false;
		districtId.focus();
	}
	
	if (sendFlag && !document.formPostedFlag) {
		document.formPostedFlag = "POSTED";
		return sendFlag;
	}
	return (document.formPostedFlag) ? false : sendFlag;
}

function checkMemberEdit(myForm) {
	var pass = myForm.pass;
	var pass_new = myForm.pass_new;
	var pass_new_confirm = myForm.pass_new_confirm;
	var personName = myForm.personName;
	var email = myForm.email;
	var sex = myForm.sex;
	var tel = myForm.tel;
	var address = myForm.address;
	var districtId = myForm.districtId;
	var sendFlag = true;
	
	if (pass_new.value.Trim() != "" && sendFlag){
		if (pass.value.Trim() == "" && sendFlag){
			alert("請輸入舊密碼");
			sendFlag = false;
			pass.focus();
		}
		if (pass_new_confirm.value.Trim() == "" && sendFlag){
			alert("請確認新密碼");
			sendFlag = false;
			pass_new_confirm.focus();
		} else if (pass_new.value.Trim() != pass_new_confirm.value.Trim() && sendFlag) {
			pass_new.value = "";
			pass_new_confirm.value = "";
			alert("請重新確認新密碼");	
			sendFlag = false;
			pass_new.focus();
		}
	}
	
	if (personName.value.Trim() == "" && sendFlag){
		alert("請輸入你的姓名");
		sendFlag = false;
		personName.focus();
	}
	
	if (email.value.Trim() == "" && sendFlag){
		alert("請輸入你的電郵");
		sendFlag = false;
		email.focus();
	} else if (!checkMail(email.value.Trim()) && sendFlag) {
		alert("電郵格式錯誤 請重新輸入");
		sendFlag = false;
		email.focus();
	}
	
	if (getCheckedValue(sex) == "" && sendFlag){
		alert("請選擇你的性別");
		sendFlag = false;
	}
	
	if (tel.value.Trim() == "" && sendFlag){
		alert("請輸入你的電話");
		sendFlag = false;
		tel.focus();
	}
	
	if (address.value.Trim() == "" && sendFlag){
		alert("請輸入你的地址");
		sendFlag = false;
		address.focus();
	}
	
	if (districtId.value.Trim() == "" && sendFlag){
		alert("請選擇地區");
		sendFlag = false;
		districtId.focus();
	}
	
	if (sendFlag && !document.formPostedFlag) {
		document.formPostedFlag = "POSTED";
		return sendFlag;
	}
	return (document.formPostedFlag) ? false : sendFlag;
}

function checkSearchKeyword(myForm) {
	var keyword = myForm.keyword;
	var sendFlag = true;
	
	if (keyword.value.Trim() == "" && sendFlag){
		alert("請輸入關鍵字");
		sendFlag = false;
		keyword.focus();
	}
	
	if (sendFlag && !document.formPostedFlag) {
		document.formPostedFlag = "POSTED";
		return sendFlag;
	}
	return (document.formPostedFlag) ? false : sendFlag;
}

function checkMemberLogin(myForm) {
	var username = myForm.username;
	var pass = myForm.pass;
	var sendFlag = true;
	
	if (username.value.Trim() == "" && sendFlag){
		alert("請輸入登入名稱");
		sendFlag = false;
		username.focus();
	}
	
	if (pass.value.Trim() == "" && sendFlag){
		alert("請輸入密碼");
		sendFlag = false;
		pass.focus();
	}
	
	if (sendFlag && !document.formPostedFlag) {
		document.formPostedFlag = "POSTED";
		return sendFlag;
	}
	return (document.formPostedFlag) ? false : sendFlag;
}

function checkMemberFP(myForm) {
	var email = myForm.email;
	var sendFlag = true;
	
	if (email.value.Trim() == "" && sendFlag){
		alert("請輸入你已登記的電郵");
		sendFlag = false;
		email.focus();
	} else if (!checkMail(email.value.Trim()) && sendFlag) {
		alert("電郵格式錯誤 請重新輸入");
		sendFlag = false;
		email.focus();
	}
	
	if (sendFlag && !document.formPostedFlag) {
		document.formPostedFlag = "POSTED";
		return sendFlag;
	}
	return (document.formPostedFlag) ? false : sendFlag;
}

function checkCartCheckOut(myForm) {
	var shippingCost = myForm.s;
	var personName = myForm.personName;
	var email = myForm.email;
	var tel = myForm.tel;
	var address = myForm.address;
	var districtId = myForm.districtId;
	var sendFlag = true;
	
	if ((shippingCost.value.Trim() == "-" || parseInt(shippingCost.value) < 0 || document.shippingValidFlag == 0) && sendFlag){
		alert("Sorry! We cannot process the order due to the following reasons:\n\n1.       We do not provide delivery service to the selected destination at present. (Hong Kong, Singapore, Malaysia, Indonesia and Taiwan)\n\n2.       The total gross weight exceeds the maximum limit of the destination.\n\nPlease contact us info@chechenewyork.com for assistant.");
		sendFlag = false;
	}
	
	if (personName.value.Trim() == "" && sendFlag){
		alert("請輸入收貨人姓名");
		sendFlag = false;
		personName.focus();
	}
	
	if (email.value.Trim() == "" && sendFlag){
		alert("請輸入電郵");
		sendFlag = false;
		email.focus();
	} else if (!checkMail(email.value.Trim()) && sendFlag) {
		alert("電郵格式錯誤 請重新輸入");
		sendFlag = false;
		email.focus();
	}
	
	if (tel.value.Trim() == "" && sendFlag){
		alert("請輸入收貨人電話");
		sendFlag = false;
		tel.focus();
	}
	
	if (address.value.Trim() == "" && sendFlag){
		alert("請輸入收貨人地址");
		sendFlag = false;
		address.focus();
	}
	
	if (districtId.value.Trim() == "" && sendFlag){
		alert("請輸擇地區");
		sendFlag = false;
		districtId.focus();
	}
	
	if (sendFlag && !document.formPostedFlag) {
		document.formPostedFlag = "POSTED";
		return sendFlag;
	}
	return (document.formPostedFlag) ? false : sendFlag;
}

function checkout() {
	if (document.shippingValidFlag == 1)
		window.location = '../cart_todb.php';
	else
		alert("Sorry! We cannot process the order due to the following reasons:\n\n1.       We do not provide delivery service to the selected destination at present. (Hong Kong, Singapore, Malaysia, Indonesia and Taiwan)\n\n2.       The total gross weight exceeds the maximum limit of the destination.\n\nPlease contact us info@chechenewyork.com for assistant.");
}

function checkLoc(totalWeight, id) {
	var http_request = false;
	var url = "./ajax_getshipping.php";
	
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
	  http_request = new XMLHttpRequest();
	} else if (window.ActiveXObject) { // IE
	  try {
		http_request = new ActiveXObject("Msxml2.XMLHTTP");
	  } catch (e) {
		try {
		  http_request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	  }
	}
	
	if (!http_request) {
	  alert('Giving up :( Cannot create an XMLHTTP instance');
	  return false;
	}
	// 定義事件處理函數為 alterContents()
	http_request.onreadystatechange = function() { checkLoc_ajax(http_request); };
		
	// IE 6.x 和 Firefox 1.5.x 皆要 encodeURI()
	
	url = url + "?seed=" + Date();
	var poststr = "id="+encodeURI( id )+"&totalWeight="+encodeURI( totalWeight );
	
	http_request.open('POST', url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", poststr.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(poststr);
}
	
function checkLoc_ajax(http_request) {
	if (http_request.readyState == 4) {
      if (http_request.status == 200) {
        var xmldoc = http_request.responseXML;
        var nodes = xmldoc.getElementsByTagName("mydata");
        var targetShipping = document.getElementById("txt_shippingCost");
        var targetTotal = document.getElementById("txt_totalPrice");
		
		var thisShippingCost = 0;
		if (nodes.length>=1) {
			thisId = nodes[0].getAttribute("id");
			thisRate = nodes[0].getAttribute("rate");
			thisShippingCost = nodes[0].firstChild.nodeValue;
			if (parseInt(thisShippingCost) < 0) {
				document.getElementById("frmCartCheckOut").s.value = "-";
				document.shippingValidFlag = 0;
				targetShipping.innerHTML = document.selCurrency+" "+"0.00";
				thisShippingCost = "0";
			} else {
				document.getElementById("frmCartCheckOut").s.value = thisShippingCost;
				document.shippingValidFlag = 1;
				targetShipping.innerHTML = document.selCurrency+" "+number_format(thisShippingCost, 2);
			}
		} else {
			targetShipping.innerHTML = document.selCurrency+" "+"0.00";
			document.getElementById("frmCartCheckOut").s.value = "0";
			document.shippingValidFlag = 1;
		}
	  	targetTotal.innerHTML = number_format(parseFloat(document.getElementById("frmCartCheckOut").t.value)+parseFloat(thisShippingCost), 2);
		
      } else {
        //alert('There was a problem with the request.');
      }
    }
}

function number_format( number, decimals, dec_point, thousands_sep ) { 
    var n = number, prec = decimals;
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep == "undefined") ? ',' : thousands_sep;
    var dec = (typeof dec_point == "undefined") ? '.' : dec_point;
 
    var s = (prec > 0) ? n.toFixed(prec) : Math.round(n).toFixed(prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
 
    var abs = Math.abs(n).toFixed(prec);
    var _, i;
 
    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;
 
        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
 
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }
 
    return s;
}

function currencyChange(obj) {
	window.location = '../currency_change.php?selCurr='+obj.value;
}
