/***********************************************************************
***  Filename: validateform.js
***  Description: javascript that parses input forms
***
***********************************************************************/
var lang="CN"

function setlang(l)
{
	lang=l
	return true
}

function validatebooking()
{
	var v1=validate('deptloc','deptdays','contactnumber','memberphone')
	var v2=psgrvalidate()
	var v3=haddonvalidate()
	return (v1 && v2 && v3)
}

function validatepaymentform()
{
	var pmethod=document.getElementById("paypalmethod")
	if (pmethod.checked) return true
	else {
		var c=document.getElementById("country")
		if ((c) && ((c.value=="US")||(c.value=="CA")) )
			return validate("fname","lname","ctype","cnum","expday","expyear","cvv","addr1","city","state","zip","country")
		else
			return validate("fname","lname","ctype","cnum","expday","expyear","cvv")
	}
}

function validatetourform()
{
	var r=null
	if (reqfields) {
		for (var i=0;r = reqfields[i];i++) {
			if (!validate(r)) return false
		}
	}
	return true
}

function validate()
{
	var missing="";
	var fname;
	if (arguments.length==0) return true;

	for (var i=0;i<arguments.length;i++)  {
		field=document.getElementById(arguments[i])
		if (!field) continue
		if (field.value=="") {
			missing+=((name=idtofieldname(arguments[i]))?name:arguments[i])+'\n'
		}
	}
	if (missing.length) {
		if (lang=="EN")
			alert("The following fields must be entered\n"+missing)
		else
			alert("以下栏目必须填写\n"+missing)
		return false
	}
	return true
}

function psgrvalidate()
{
	var ifields=document.getElementById("bookform")
	var exist=false;
	var missing="";

	var f=0;
	for (f=0;f<ifields.length;f++) {
		if (reqfield(ifields[f].id)) {
			exist=true;
			if ((ifields[f].value==null) || (ifields[f].value==""))  {
				missing+=((name=idtofieldname(ifields[f].id))?name:ifields[f].id)+'\n'
			}
		}
	}
	if (!exist) {
		if (lang=="EN")
			alert("Passenger Information is Missing")
		else
			alert("团员信息未填")
		return false
	}
	if (missing.length) {
		if (lang=="EN")
			alert("Passenger Information is Incomplete\nThe following fields must be entered\n"+missing)
		else
			alert("团员信息未填全\n以下必须填写\n"+missing)
		return false
	}
	return true
}

function reqfield(fname)
{
	if ((!fname) || (fname.length<=0)) return false
	var reqarray=new Array("lname","fname","psex")
	for (r in reqarray) {
		if (reqarray[r].match(fname)) return true;
	}
	return false;
}


function idtofieldname(id)
{
	if ((!id) || (id.length<=0)) return null

	if (lang=="CN") lidx=0
	else lidx=1

	idarray=new Array(
		"deptdays",
		"lname",
		"fname",
		"deptloc",
		"subject",
		"response",
		"contact",
		"Name",
		"Email",
		"Email2",
		"Phone",
		"Password",
		"PasswordConfirm",
		"msg",
		"ctype",
		"cnum",
		"cvv",
		"addr1",
		"city",
		"state",
		"zip",
		"country",
		"paymentmethod",
		"csource",
		"contactnumber",
		"memberphone"
	)
	fnamearray=new Array(
		new Array("出发日期","Departure Date"),
		new Array("姓","Last Name"),
		new Array("名","First Name"),
		new Array("接送地点及时间","Embarcation Information"),
		new Array("标题","Subject"),
		new Array("回帖","Reply"),
		new Array("联系方式","Contact Method"),
		new Array("姓名","Name"),
		new Array("Email","Email"),
		new Array("Email重复","Email Again"),
		new Array("联系电话","Primary Phone #"),
		new Array("密码","Password"),
		new Array("密码重复","Password Again"),
		new Array("留言","Message"),
		new Array("信用卡类型","Credit Card Type"),
		new Array("信用卡号码","Credit Card Number"),
		new Array("信用卡认证号码","Credit Card Verification Number"),
		new Array("地址","Address"),
		new Array("城市","City"),
		new Array("州省","State/Province"),
		new Array("邮编","Zip Code"),
		new Array("国家","Country"),
		new Array("付款方式","Payment Type"),
		new Array("怎样知道我们","How did you learn about Lulutrip?"),
		new Array("游客当日手机(以便导游联系)","Passenger Mobile Number"),
		new Array("订购人电话(以便订购确认)","Lulutrip Member Contact Number")
	)

	l=idarray.length
	for (i=0;i<l;i++) {
		if (idarray[i].match(id)) return fnamearray[i][lidx]
	}
	return null;
}

function validate_email(field,alerttxt,field2)
{
	var e1=document.getElementById(field).value
	var apos=e1.indexOf("@")
	var dotpos=e1.lastIndexOf(".")
	if (apos<1||dotpos-apos<2)
	  {alert(alerttxt);return false}
	else if (field2) {
		var e2=document.getElementById(field2).value
		if (e1 == e2) return true
		else {
			if (lang=="EN")
				alert ("The email addresses you entered did not match. Please try again.")
			else
				alert ("您填写的Email地址不一样。请再试一次。")
			return false
		}
	} else {
		return true
	}
}


function validate_pw(field,field2)
{
	var p1=document.getElementById(field).value
	var p2=document.getElementById(field2).value
	if (p1 == p2) return true
	else {
		if (lang=="EN")
			alert ("The passwords you entered did not match. Please try again.")
		else
			alert ("您填写的密码不一样。请再试一次。")
		return false
	}
}

function haddonvalidate()
{
	var h, ch;
	var mode=new Array("pre","post")
	var nm=mode.length

	for (var i=0;i<nm;i++) {
		if (h=document.getElementsByName("haddon_idx_"+mode[i])) {
			ch=-1
			for (var j=0;j<h.length;j++) {
				if (h[j].checked==true) {
					ch=h[j].value
					break
				}
			}

			if (ch>=0) {
				var rt=document.getElementById("haddon_rmtype_"+mode[i]+"_"+ch)
				var rn=document.getElementById("haddon_numrooms_"+mode[i]+"_"+ch)
				if ((!rt) || (rt.value < 0)) {
					if (lang=="EN")
						alert ("You did not select the room type for Add-on Hotel")
					else
						alert ("您未填加订酒店的房型")
					return false
				} else if ( (!rn) || (rn.value<=0)) {
					if (lang=="EN")
						alert ("You did not specify the number of rooms for Add-on Hotel")
					else
						alert ("您未填加订酒店的数量")
					return false
				}
			}
		}
	}

	return true
}

function validatecheckbox(checkboxid,msg)
{
	var cb=document.getElementById(checkboxid)
	if (!cb) return true;
	if (cb.checked) return true;
	alert(msg)
	return false;
}

