// JavaScript Document

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 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) {
		myForm.btnSubmit.disabled = "disabled";
	}
	
	return sendFlag;
}

function checkMemberReg(myForm) {
	var username = myForm.username;
	var pass = myForm.pass;
	var pass_confirm = myForm.pass_confirm;
	var personName = myForm.personName;
	var sex = myForm.sex;
	var email = myForm.email;
	var tel = myForm.tel;
	var address1 = myForm.address1;
	var sendFlag = true;
	myForm.action="./member_goreg.php?goReg";

	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 (pass_confirm.value.Trim() == "" && sendFlag){
		alert("Please input the confirm password");
		sendFlag = false;
		pass_confirm.focus();
	} else if (pass.value.Trim() != pass_confirm.value.Trim() && sendFlag) {
		pass.value = "";
		pass_confirm.value = "";
		alert("Passwords do not match");	
		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 (address1.value.Trim() == "" && sendFlag){
		alert("Please input your address");
		sendFlag = false;
		address1.focus();
	}
	if (sendFlag) {
		myForm.btnSubmit.disabled = "disabled";
		
	}	
	return false;
	return sendFlag;
}

function checkMemberEdit(myForm) {
	var pass = myForm.pass_old;
	var pass_new = myForm.pass;
	var pass_new_confirm = myForm.pass_confirm;
	var personName = myForm.personName;
	var sex = myForm.sex;
	var email = myForm.email;
	var tel = myForm.tel;
	var address1 = myForm.address1;
	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("The new and the confirm password do not match");	
			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 (address1.value.Trim() == "" && sendFlag){
		alert("Please input your address");
		sendFlag = false;
		address1.focus();
	}
	
	if (sendFlag) {
		myForm.btnSubmit.disabled = "disabled";
	}
	
	return 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) {
		myForm.btnSubmit.disabled = "disabled";
	}
	
	return sendFlag;
}

function checkForgotPass(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) {
		myForm.btnSubmit.disabled = "disabled";
	}
	
	return sendFlag;
}

function checkCartCheckOut(myForm) {
	var shippingCost = myForm.s;
	var destination = myForm.destination;
	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)\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 (shippingCost.value.Trim() == "0" && sendFlag){
		alert("Please select the destination");
		sendFlag = false;
	}*/
	if (destination.value.Trim() == "" && sendFlag){
		alert("Please select the destination");
		sendFlag = false;
	}
	
	if (sendFlag) {
		myForm.btnSubmit.disabled = "disabled";
	}
	
	return 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)\n\n2.       The total gross weight exceeds the maximum limit of the destination.\n\nPlease contact us info@chechenewyork.com for assistant.");
}

function checkLoc(id) {
	var http_request = false;
	var url = "./ajax_checkloc.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 postForm = document.getElementById("deliveryEditForm");
	var poststr = "id=" + encodeURI( id );
				  
	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");
		
		if (nodes.length>=1) {
			document.shippingValidFlag = nodes[0].getAttribute("shippingValidFlag");
			if (document.shippingValidFlag == "0") {
				alert("Sorry! We do not provide delivery service to the selected destination at present. However, you are still welcome to be our member and continue the registration process.");
			}
		}
		
      } else {
        alert('There was a problem with the request.');
      }
    }
}
