// 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("Please input the your name");
		sendFlag = false;
		contactPerson.focus();
	}
	
	if (email.value.Trim() == "" && sendFlag){
		alert("Please input your email");
		sendFlag = false;
		email.focus();
	} else if (!checkMail(email.value.Trim()) && sendFlag) {
		alert("Invalid email! Pleaes input again");
		sendFlag = false;
		email.focus();
	}
	
	if (message.value.Trim() == "" && sendFlag){
		alert("Please leave your message");
		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("Please input the receiver name");
		sendFlag = false;
		receiver.focus();
	}
	
	if (contactNumber.value.Trim() == "" && sendFlag){
		alert("Please input the contact number");
		sendFlag = false;
		contactNumber.focus();
	}
	
	if (deliveryAddress1.value.Trim() == "" && sendFlag){
		alert("Please input the delivery address");
		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("Please input the username");
		sendFlag = false;
		username.focus();
	}
	
	if (pass.value.Trim() == "" && sendFlag){
		alert("Please input the password");
		sendFlag = false;
		pass.focus();
	}
	
	if (personName.value.Trim() == "" && sendFlag){
		alert("Please input your name");
		sendFlag = false;
		personName.focus();
	}
	
	if (getCheckedValue(sex) == "" && sendFlag){
		alert("Please select your gender");
		sendFlag = false;
	}
	
	if (email.value.Trim() == "" && sendFlag){
		alert("Please input your email");
		sendFlag = false;
		email.focus();
	} else if (!checkMail(email.value.Trim()) && sendFlag) {
		alert("Invalid email! Pleaes input again");
		sendFlag = false;
		email.focus();
	}
	
	if (tel.value.Trim() == "" && sendFlag){
		alert("Please input your phone number");
		sendFlag = false;
		tel.focus();
	}
	
	if (address.value.Trim() == "" && sendFlag){
		alert("Please input your address");
		sendFlag = false;
		address.focus();
	}
	
	if (districtId.value.Trim() == "" && sendFlag){
		alert("Please select your district");
		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("Please input your old password");
			sendFlag = false;
			pass.focus();
		}
		if (pass_new_confirm.value.Trim() == "" && sendFlag){
			alert("Please input the confirm new password");
			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("Please verify your new password again");	
			sendFlag = false;
			pass_new.focus();
		}
	}
	
	if (personName.value.Trim() == "" && sendFlag){
		alert("Please input your name");
		sendFlag = false;
		personName.focus();
	}
	
	if (getCheckedValue(sex) == "" && sendFlag){
		alert("Please select your gender");
		sendFlag = false;
	}
	
	if (email.value.Trim() == "" && sendFlag){
		alert("Please input your email");
		sendFlag = false;
		email.focus();
	} else if (!checkMail(email.value.Trim()) && sendFlag) {
		alert("Invalid email! Pleaes input again");
		sendFlag = false;
		email.focus();
	}
	
	if (tel.value.Trim() == "" && sendFlag){
		alert("Please input your phone number");
		sendFlag = false;
		tel.focus();
	}
	
	if (address.value.Trim() == "" && sendFlag){
		alert("Please input your address");
		sendFlag = false;
		address.focus();
	}
	
	if (districtId.value.Trim() == "" && sendFlag){
		alert("Please select your district");
		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("Please input the keyword");
		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("Please input the username");
		sendFlag = false;
		username.focus();
	}
	
	if (pass.value.Trim() == "" && sendFlag){
		alert("Please input the password");
		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("Please input the registered email");
		sendFlag = false;
		email.focus();
	} else if (!checkMail(email.value.Trim()) && sendFlag) {
		alert("Invalid email! Pleaes input again");
		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("Please input your name");
		sendFlag = false;
		personName.focus();
	}
	
	if (email.value.Trim() == "" && sendFlag){
		alert("Please input your email");
		sendFlag = false;
		email.focus();
	} else if (!checkMail(email.value.Trim()) && sendFlag) {
		alert("Invalid email! Pleaes input again");
		sendFlag = false;
		email.focus();
	}
	
	if (tel.value.Trim() == "" && sendFlag){
		alert("Please input your phone number");
		sendFlag = false;
		tel.focus();
	}
	
	if (address.value.Trim() == "" && sendFlag){
		alert("Please input your address");
		sendFlag = false;
		address.focus();
	}
	
	if (districtId.value.Trim() == "" && sendFlag){
		alert("Please select your district");
		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;
}
