
<!--

function match(v, pattern){

	var p;
	var arr = new Array();
	arr[0] = /^((_|-)*[a-zA-Z0-9]+(_|-)*)+$/;
	arr[1] = /^[_+A-Za-z0-9-]+(\.[_+A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9-]{1,})*\.([A-Za-z]{2,}){1}$/;
	arr[2] = /^[a-zA-Z]+([\ ]{0,1}((-|\'|\.){1}[\ ]{0,1}){0,1}[a-zA-Z]+)*$/;	//at least 1 char. only one spacing is allowed,not 2 or more.
	arr[3] = /^[a-zA-Z0-9]+([\ ]{0,1}((#|:|,|\/|-|\'|\.){1}[\ ]{0,1}){0,1}[a-zA-Z0-9\.]+)+$/;
	arr[4] = /^[1234567890]{5}$/;
	arr[5] = /^[1234567890]{10}$/;
	arr[6] = /^[0-9]{1,3}$/;

	
	if( pattern == "PS" )
		p = arr[0];
	else if( pattern == "EMAIL" )
		p = arr[1];
	else if( pattern == "NAME" )
		p = arr[2];	
	else if( pattern == "STREET" )
		p = arr[3];
	else if( pattern == "ZIPCODE" )
		p = arr[4];
	else if( pattern == "PHONE" )
		p = arr[5];
	else if( pattern == "SIGNUP_AGE" )
		p = arr[6];
	else{}

	
//alert(pattern);
//alert(p);

	if( ! v.match(p) )
		return false;
		
	return true;
}


/*
function view(fld){

var v = trim(fld.value);
var x = "Total number of characters: " + v.length + "\n\n" + v;

alert(x);

fld.value = v;
}

//although trim the fld.value, v still contain the original string such as leading and ending spaces.
//Therefore, the count_char will show total number of char. including leading and ending spaces.
function count_char(fld){

var v = trim(fld.value);

//alert("Description:\n\n" + v);
alert("Description:\n\nNo. of characters you just entered: " + v.length);

fld.value = v;
}


function ck_charlength(elem_id, max_len)
{
    if(ck_contentlen(elem_id, max_len)) {
	return true;
    } else {
	alert("Sorry, the maximum number of characters is " + max_len);
	return false;
    }
}


function ck_contentlen(elem_id, max_len)
{
    var elem = document.getElementById(elem_id);
    if(elem.value.length > max_len) {
        return false;
    }
    return true;
}



function textCounter(field,cntfield,maxlimit) {
if (field.value.length > maxlimit) // if too long...trim it!
field.value = field.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
else
cntfield.value = maxlimit - field.value.length;
}

*/





/*

function vAgree(F, moreErr){
//alert("vAgree");
	var errmsg = "";
	var label = "Agreement Acceptance";
	var helpmsg = "Please accept the agreement in order to register.";
	
	var err_agree = checkRadio(F.agree, label, helpmsg);
	if( (err_agree != "") || (moreErr != "") ){
		errmsg += uncheckRadio_regAgree(F.agree, label, helpmsg);
	}
	
	return errmsg;
}


function checkRadio(fld, label, helpmsg) {
	var errmsg = "";
	var found = "F";

for(i=0, n=fld.length; i<n; i++){
        if (fld[i].checked) {
            var checkvalue = fld[i].value;
			found = "T";
            break;
        } 
}
	if( found != "T" ){
		errmsg = get_errmsg_nobg(label, helpmsg);
	}
	return errmsg;
}

function uncheckRadio_regAgree(fld, label, helpmsg){

	for(i=0, n=fld.length; i<n; i++){
        	if (fld[i].checked) {
			//Not able to use fld[i].checked = false;
			document.registerForm.agree[i].checked = false;
        	} 
	}
	
	return get_errmsg_nobg(label, helpmsg);
}

*/


//############################

/*
function vCountry(F, is_require){

	var errmsg="";

	errmsg = require(F.country, "Country", is_require);
	if( is_require == "T" ){
	if( errmsg == "" ){
		var str = F.country.value;
		if( str == "US" ){
			errmsg = require(F.state, "State");
		}
		else{
			//errmsg = vName(F.province, "Province", "T");
		}
	}
	}
	
	return errmsg;	
}

function vZipcode(fld, label, is_require){
	var min=5;
	var max=5;
	var errmsg="";

	errmsg = require(fld, label, is_require);
	if( is_require == "T" ){
		var v = fld.value.replace(/[\(\)\.\-\ ]/g, "");
		if( errmsg == "" ){
			errmsg = ck_length(v, fld, label, min, max, "Invalid."); 
			if( (errmsg == "") && (! match(v, "ZIPCODE")) ){
				errmsg = get_errmsg(fld, label, "Invalid. It is not numeric.");
			}
		}
	}

//alert("err=" + errmsg);
	return errmsg;

}

function vStreet(fld, label, is_require){
	var min=3;
	var max=100;
	var errmsg="";
	
	errmsg = require(fld, label, is_require);
	if( is_require == "T" ){
		var v = fld.value;
		if( errmsg == "" ){
			errmsg = ck_length(v, fld, label, min, max, "Invalid.");
			if( (errmsg == "") && (! match(v, "STREET")) ){
				errmsg = get_errmsg(fld, label, "Invalid character(s).");
			}
		}
	}
//alert("err=" + errmsg);
	return errmsg;

}

function vPhone(fld, label, is_require){
//alert("phone");
	var min = 10;
	var max = 12;
	var errmsg="";

	errmsg = require(fld, label, is_require);
	if( is_require == "T" ){
		var v = fld.value.replace(/[\(\)\.\-\ ]/g, "");
		if( errmsg == "" ){
			errmsg = ck_length(v, fld, label, min, max, "Invalid. (It requires 10 digits)");
			if( (errmsg == "") && (! match(v, "PHONE")) ){
				errmsg = get_errmsg(fld, label, "Invalid. It is not numeric.");
			}
		}
	}
//alert("err=" + errmsg);
	return errmsg;
}


function vNumeric(fld, label, is_require, min, max, $pattern){

	var errmsg="";

	errmsg = require(fld, label, is_require);
	if( is_require == "T" ){
		var v = fld.value.replace(/[\(\)\.\-\ ]/g, "");
		if( errmsg == "" ){
			errmsg = ck_length(v, fld, label, min, max, "Invalid."); 
			if( (errmsg == "") && (! match(v, $pattern)) ){
				errmsg = get_errmsg(fld, label, "Invalid. It is not numeric.");
			}
		}
	}
//alert("err=" + errmsg);
	return errmsg;

}


*/

//############################


/*
function isDifferent(strng, label) {	//onchange()
  var error = "";
  if (strng != "* Can\'t touch this!") {
     error = "*" + label + " - You altered the inviolate text area.\n";
  }
 }
*/

/*  
  function checkRadio(checkvalue, label) {
var error = "";
   if (!(checkvalue)) {
       error = "*" + label + " - Please check a radio button.\n";
    }
return error;    
}
*/

/*
function checkDropdown(choice, label) {
    var error = "";
    if (choice == 0) {
       error = "*" + label + " - You didn't choose an option from the drop-down list.\n";
    }    
return error;
}

*/

function confirmDelarr(theForm, ckboxname){
//alert("some");
var elms = theForm.elements;
var total = 0;
for(var i=0;i<elms.length;i++)
//if(elms[i].name=='items[]'){
if(elms[i].name==ckboxname && elms[i].checked == true){
	total = total + 1;
}

if( total == 0 ){
	alert("You did not check any boxes for deletion.");
	return false;
}
else
	return confirm("Do you want to delete the following permanently?\n\n" + "Total items: " + total);
}



//###########################
//use radio buttons for checkboxes. 

function xxxcheckthebox(theForm, ckboxname){

var id = "#" + ckboxname;
var ckid = "#" + "ck" + ckboxname;
var setting;

//alert("id=" + id + "::ckid=" + ckid);
//var isChecked = $(ckid).is(':checked');
isChecked = $(ckid).text();
//alert("x=" + isChecked);
if( isChecked == "true" ){
//alert("if=t");
	setting = false;
	$(id).attr('checked', false);
	$(ckid).text('false');
	//$(ckid).attr('checked', false);
}
else{
//alert("else=f");
	setting = true;
	$(id).attr("checked", true);
	//$(id).attr('changeCheckStatus', true);
	$(ckid).text('true');

}

/*
isChecked = $(id).is(':checked');
alert("ret=" + isChecked);

var elms = theForm.elements;
alert("fld=" + elms[0].name);

for(i=0; i < elms.length; i++){
//alert(elms[i].name);
	if( elms[i].name == ckboxname ){
//alert("her=" + setting);
	elms[i].checked = setting;
	}

}
*/

return true;
}





/*
//incorrect!!
function checkAllarrIndex(theForm, ckboxname, setting){
//alert(theForm.elements.length);

//checkAllarrIndex('document.myform', 'items', true)
//when you use itemid0,itemid1,..
//setting:true, false
var elms = theForm.elements;
//var elms = document.editmylinkform.elements;
//alert(elms);



for(var i=0;i<elms.length;i++){
var fldname = ckboxname + i;//alert(elms[i].name + ":" + fldname + ":ckbox=" + ckboxname);

//if(elms[i].name=="items[]"){
if(elms[i].name==fldname){
	elms[i].checked = setting;
	updateCkboxstatus(fldname, setting);
	
}
//alert(elms[i].value + "::" + elms[i].name + "==" + fldname);
}

return false;

}

function updateCkboxstatus(ckboxname, setting){
var ckid = "#" + "ck" + ckboxname;
var exist = $(ckid).text();
if( (exist != "true") && (exist != "false" ) ){
	return false;
}

if( setting == true ){
	$(ckid).text("true");
}
else{
	$(ckid).text("false");
}

return true;
}

*/

function confirmDelarrIndex(theForm, ckboxname){
var total = 0;

var elms = theForm.elements;

for(var i=0;i<elms.length;i++){
var fldname = ckboxname + i;

//if(elms[i].name=="items[]"){
if(elms[i].name==fldname){
	if( elms[i].checked == true )
		total = total + 1;
}		
	
}

if( total == 0 ){
	alert("You did not check any boxes for deletion.");
	return false;
}
else
	return confirm("Do you want to delete permanently?\n\n" + "Total items: " + total);
}


//#################################

function checkAllarr(theForm, ckboxname){
//when you use items[]
var elms = theForm.elements;
//var elms = document.editmylinkform.elements;
//alert(elms);
for(var i=0;i<elms.length;i++){
//if(elms[i].name=='items[]'){
if(elms[i].name==ckboxname){
	elms[i].checked = true;
}
}

return false;
/*
var fields = document.editymylinkform.items; //where items is not the same as items[]
for (i = 0; i < field.length; i++)
	field[i].checked = true ;
*/
}

function uncheckAllarr(theForm, ckboxname){
var elms = theForm.elements;
//var elms = document.editmylinkform.elements;
//alert(elms);
for(var i=0;i<elms.length;i++)
//if(elms[i].name=='items[]'){
if(elms[i].name==ckboxname){
	elms[i].checked = false;
//code for myElement
}

return false;
}

function confirmDel(theForm, ckboxname){
//alert("some");
var field = theForm.ckboxname;
var total = 0;
for (i = 0; i < field.length; i++){
	if( field[i].checked == true )
		total = total + 1;
}

if( total == 0 ){
	alert("You did not check any boxes for deletion.");
	return false;
}
else
	return confirm("Do you want to delete permanently?\n\n" + "Total items: " + total);
}


function checkAll(theForm, ckboxname){
 //where items is not the same as items[]
var field = theForm.ckboxname;
for (i = 0; i < field.length; i++)
	field[i].checked = true;
	
return false;
}

function uncheckAll(theForm, ckboxname){
var field = theForm.ckboxname;
for (i = 0; i < field.length; i++)
	field[i].checked = false;
	
return false;
}




function validateFormOnSubmit(theForm) {

//a=document.orderform;
//v=a.phone.value;
//if( v == "" ){
//alert("Enter phone number");
//a.phone.focus();
//return false;
//}


		//alert(theForm.submit.value);

	//var f = theForm.sub.value;
//alert(theForm.sub.value);


	
	var f = $(theForm).attr("id");
	var F = "#" + f;
//alert(f);

	
	if( f == "fregisterForm" ){
		return fregisterForm(F);
	}
	else if( f == "registerbaseForm" ){
		return registerbaseForm(F);
	}
	else if( f == "registerForm" ){
		return registerForm(F);
	}
	else if( f == "loginForm" ){
		return loginForm(F);
	}
	else if( f == "forgotpassForm" ){
		return forgotpassForm(F);
	}
	else if( f == "editEmailForm" ){
		return editEmailForm(F);
	}
	else if( f == "editFullnameForm" ){
		return editFullnameForm(F);
	}
	else if( f == "editPwdForm" ){
		return editPwdForm(F);
	}
	else if( f == "editScnameForm" ){
		return editScnameForm(F);
	}
	else if( f == "editPinfoForm" ){
		return pinfoForm(F);
	}
	else if( f == "editAddrphone" ){
		return editAddrphoneForm(F);
	}
	else if( f == "requestForm" ){
		return requestForm(F);
	}
	else if( f == "replyForm" ){
		return replyForm(F);
	}
	else if( f.match(/^replyForm/) ){
		return replyFormMulti(F);
	}
	else{
		//alert("Nothing");
		//return false;
	}
	 
 
 /* 
      reason += isDifferent(theForm.different.value);
    for (i=0, n=theForm.radios.length; i<n; i++) {
        if (theForm.radios[i].checked) {
            var checkvalue = theForm.radios[i].value;
            break;
        } 
    }
    reason += checkRadio(checkvalue);
    reason += checkDropdown(theForm.choose.selectedIndex);
    if (reason != "") {
       alert(reason);
       return false;
    }
return true;
*/


/*
//var replaceWith="<br>";
var replaceWith="&3knslv0k3n&";
textarea = a.cmt;
textarea.value=escape(textarea.value)
for(i=0; i<textarea.value.length; i++){
 	if(textarea.value.indexOf("%0D%0A") > -1){
	textarea.value=textarea.value.replace("%0D%0A",replaceWith)
	}
	else if(textarea.value.indexOf("%0A") > -1){
	textarea.value=textarea.value.replace("%0A",replaceWith)
	}
	else if(textarea.value.indexOf("%0D") > -1){
	textarea.value=textarea.value.replace("%0D",replaceWith)
	}
}
textarea.value=unescape(textarea.value)


function validateTextarea(fld, label){

var errmsg="";

var v = trim(fld.value);

if( v == "" ){
	errmsg = "*" + label + " - You did not enter the field.\n";
}

if( errmsg != "" ){
	fld.style.background = "Yellow";
}
else
	fld.style.background = "White";

//fld.value = v;
return errmsg;

}

*/

}

/*
var reason = "";
reason += validateName(F.firstname, "Firstname", 1, 20);
reason += validateName(F.lastname, "Lastname", 2, 20);
reason += validateEmail(F.email, "Email");
reason += validateLength(F.code, "Special Code", 4, 8);


reason += checkRadio(F.agree, "Agreement Acceptance", "Sorry, you must accept the agreement in order to register.\n");

	
*/




//##################################

function vInput(F, fld, is_require, pattern){
//alert("vInput");


var err = false;

err = ckInputempty(F, fld, is_require);
var formid = eform(F, fld);
var v = $(formid).val();


		if( (! err) && (v.length > 0) ){
			err = ckLength(F, fld);

			if( (! err) && (! match(v, pattern)) ){
			err = true;
			show_errmsg(F, fld, "invalidinput");
			setBg(F, fld, true);
			}
		}


return err;
}


function vInputlength(F, fld, is_require){
//alert("ckname");

var err = false;

err = ckInputempty(F, fld, is_require);
var formid = eform(F, fld);
var v = $(formid).val();


		if( (! err) && (v.length > 0) ){
			err = ckLength(F, fld);
		}


return err;
}


function ckInputempty(F, fld, is_require){
	return ckRequire(F, fld, is_require, "empty");
}

function ckScname(F, fld, is_require){
	return vInputlength(F, fld, is_require, "empty");
}

function ckName(F, fld, is_require){
	return vInput(F, fld, is_require, "NAME");
}

function ckEmail(F, fld, is_require){
	return vInput(F, fld, is_require, "EMAIL");
}


function ckPassword(F, fld, is_require){
	var err = vInput(F, fld, is_require, "PS");
var formid = eform(F, fld);
	if( err ){
		$(formid).attr("value", "");
	}
	return err;
}

function ckNewpassword(F, fld, is_require, fldcfmpass){
var err = vInput(F, fld, is_require, "PS");

var formid = eform(F, fld);
var formid_cfm = eform(F, fldcfmpass);
var cfmpass = $(formid_cfm).val();
var newpass = $(formid).val();
		
initflderr(F, fldcfmpass);

		
	if( ! err ){
		if( cfmpass != newpass ){
			err = true;
			show_errmsg(F, fldcfmpass, "cfmpassnotmatch");
			//setBg(fldcfmpass, true);
			//setBg(fld, true);
		}
	}
	
	if( err ){
		$(newpass).attr("value", "");
		$(cfmpass).attr("value", "");
		setBg(F, fld, true);
		setBg(F, fldcfmpass, true);
	}
	
	return err;
	
}

function ckCode(F, fld, is_require){
	return vInput(F, fld, is_require, "PS");
}




function ckAgree(F, ckboxname, is_require, moreErr){
	var err = false;
		
	var msg = "acceptagreement";
	err = ckCheckbox(F, ckboxname, is_require, msg, "Y");
	if( (err) || (moreErr) ){
		err = true;
		resetCheckboxItem(F, ckboxname);
		show_errmsg(F, ckboxname, msg);
	}
	
	return err;

}



function ckLength(F, fld){
var err = false;
var msg = "";

var formid = eform(F, fld);
var v = $(formid).val();

var x = '#len_' + fld;
var range = $(x).text();
range = $.trim(range);
var arr = range.split(",");
var min = arr[0];
var max = arr[1];

//alert(arr[0] + "===" + arr[1]);

	if( v.length < min ){
		msg = "tooshort";
	}
	else if( v.length > max ){
		msg = "toolong";
	}
	else{
	}
	
	if( msg != "" ){
			err = true;
			show_errmsg(F, fld, msg);
			setBg(F, fld, true);
	}
	


return err;
}

function ckRequire(F, fld, is_require, msg){

initflderr(F, fld);
var err=false;

var formid = eform(F, fld);
var v = $(formid).val();
v = jQuery.trim(v);

//alert($(fld).attr("name") + ":" + $(fld).val());
	if( is_require != "T" && isEmpty(v) ){
		err = false;
	}
	else{
		if( isEmpty(v) ){
			err = true;
			show_errmsg(F, fld, msg);
			setBg(F, fld, true);
		}

	}


//fld.value = v;
	$(formid).attr("value", v);
return err;

}

function initflderr(F, fld){
setBg(F, fld, false);
resetflderror(F, fld, "&nbsp;");

}

function resetflderror(F, fld, v){
var x = eform(F, 'error_' + fld);
//alert("x=" + x + "::v::" + $(x).html());

if( $(x).html() != null ){
	$(x).html(v);
}

}

function show_errmsg(F, fld, msgname){
var y = '#msg_' + msgname;

if( $(y).html() != null ){
var cross = $('#msg_crossmark').html();
	var v = cross + $(y).html();
	resetflderror(F, fld, v);
}

}

function setBg(F, fld, err){
var formid = eform(F, fld);
var color = "white";
	if( err ){
		color = "yellow";
	}
	
	//$(formid).css("background-color", color);
}

function resetCheckboxItem(F, ckboxname){
var x = F + ' input[@name=' + ckboxname + ']:checked';
$(x).removeAttr("checked");
}

//check one item
function ckCheckbox(F, ckboxname, is_require, msg, match){
var err = false;
var elm = elmCheckbox(F, ckboxname);
var v = $(elm).val();

//alert("x=" + x);
//alert("v=" + v);
if( v == null ){
	if( is_require == "T" ){
		err = true;
		show_errmsg(F, ckboxname, msg);
	}
}
else{

	if( match != "" ){
		if( v != match ){
		err = true;
		show_errmsg(F, ckboxname, msg);		
		}
	}
}

return err;

}


function ckSelectempty(F, fld, is_require){
	return ckSelect(F, fld, is_require, "notselected");
}

function ckSelect(F, fld, is_require, msg){
resetflderror(F, fld, "");
var err = false;

var formid = eform(F, fld);
		//alert($(formid).val());
var v = $(formid).val();
initflderr(F, fld);
//setBg(fld, false);
//resetflderror(k, "");


	if ( v == false ){
		if( is_require == "T" ){
		err = true;
//alert("notselected");
		show_errmsg(F, fld, msg);
		setBg(F, fld, true);
		}
	}
	
	return err;
}


function ckSelectdate(F, fld, is_require, num_err){

var num_err_date=0;
resetflderror(F, fld, "");
num_err_date += ckSelect(F, 'month', is_require, "");
num_err_date += ckSelect(F, 'day', is_require, "");
num_err_date += ckSelect(F, 'year', is_require, "");

		if( num_err_date > 0 ){
			num_err++;
			show_errmsg(F, fld, "notselected");
		}

return num_err;
}


/*
function countSelectedItems(theForm, ckboxname){
//fix this

alert("countSelectedItems=" + theForm);
var elms = theForm.elements;
var total = 0;
for(var i=0;i<elms.length;i++)
//if(elms[i].name=='items[]'){
alert("countSelectedItems=" + elms[i].name);
if(elms[i].name==ckboxname && elms[i].checked == true){
	total = total + 1;
}

return total;

}
*/


function elmCheckbox(F, k){
	if( F != "" )
		F = F + ' ';
	
return F + ' input[name=' + k + ']:checked';

}

function elmText(F, k){
//(form#myform #email) OR (#myform input[name='email'])

	if( F != "" )
		F = F + ' ';
	
	return F + 'input[name=' + k + ']';
}

function eform(F, k){
/*
//optional
	if( F != "" )
		F = "form" + F;
*/
	return F + " #" + k;
//var id=eform(F, fld); alert($(id).val());
}


/*
function xx(){
var x = '#fld';
var range = $(x).text();
range = $.trim(range);
var arr = range.split(",");
var min = arr[0];
var max = arr[1];
for(var i=0; i<arr.length; i++){
	alert(arr[i]);
}

}

*/

//#########################

function editFullnameForm(F){
var num_err=0;

num_err += ckName(F, 'firstname', "T");
num_err += ckName(F, 'lastname', "T");

if( num_err > 0 ){
//alert("ck=" + num_err);
	return false;
}
else{
	return true;
}
}


function editScnameForm(F){
var num_err=0;

num_err += ckScname(F, 'scname', "T");

if( num_err > 0 ){
//alert("ck=" + num_err);
	return false;
}
else{
	return true;
}
}


function editEmailForm(F){
var num_err=0;
num_err += ckEmail(F, 'newemail', "T");
num_err += ckEmail(F, 'cfmemail', "T");
//num_err += ckPassword(F, 'pass', "T");
if( num_err > 0 ){
//alert("ck=" + num_err);
	return false;
}
else{
	return true;
}
}

function editPwdForm(F){
var num_err=0;

num_err += ckNewpassword(F, 'newpass', "T", 'cfmnewpass');
num_err += ckPassword(F, 'oldpass', "T");

if( num_err > 0 ){
//alert("ck=" + num_err);
	return false;
}
else{
	return true;
}
}


function pinfoForm(theForm){

}

/*
function pinfoForm(theForm){
var num_err=0;


if( num_err > 0 ){
//alert("ck=" + num_err);
	return false;
}
else{
	return true;
}

var errmsg="";

errmsg += vName(F.firstname, "Firstname", "T");
errmsg += vName(F.mname, "Middle Initial", "F");
errmsg += vName(F.lastname, "Lastname", "T");
//errmsg += vEmail(F.email, "Email", "T");

errmsg += require(F.year, "Year", "T");
errmsg += require(F.month, "Month", "T");
errmsg += require(F.day, "Day", "T");

//errmsg += vNumeric(F.age, "Age", "T", 2, 3, "SIGNUP_AGE");


	errmsg += require(F.gender, "Gender", "T");
var gender = F.gender.value;
//alert(gender);
if( gender == "F" )
	gender = "Female";
else if ( gender == "M" )
	gender = "Male";
else
	gender = "";
//alert(gender);


if( show_err(errmsg, F, "F", "F") )
	return false;
	
		var x="";
		//x += "Email: " + F.email.value + "\n";
		x += "First Name: " + F.firstname.value + "\n";
		x += "Middle Initial: " + F.mname.value + "\n";
		x += "Last Name: " + F.lastname.value + "\n";
		x += "Date of Birth(mm/dd/yyyy): " + F.month.value + "/" + F.day.value + "/" + F.year.value + "\n";
		//x += "Age: " + F.age.value + "\n";
x += "Gender: " + gender + "\n";
	x += "\n\n";
		return confirm("Is the following information correct ?\n\n" + x);
		//return true;

}
*/
//#######################


$(document).ready(function(){

/*
	$('input[name="email"]').keyup(function(){
		ckEmail(this, "T");
	});
	
*/

	//var f = "form" + "#fregisterForm";
	//var x = f + " #email";
	//var f = "#fregisterForm";


/*
//Problem: trim space ckRequire().	
	var x;
	//var choice = "form#fregisterForm,form#registerForm";
	var choice = "form";
	$(choice).click(function(){
	var k;
	var F = "#" + $(this).attr("id");
	if( $(this).attr("id") == "" ){
		//alert($(this).attr("id"));
		return true;
	}
//alert(F);


	var k1 = "firstname";
	var x1 = eform(F, k1);
	$(x1).keyup(function(){
		//this:#fregisterForm #firstname
		ckName(F, k1, "T");
	});
	
	var k2 = "mname";
	var x2 = eform(F, k2);
	$(x2).keyup(function(){
		ckName(F, k2, "T");
	});

	var k3 = "lastname";
	var x3 = eform(F, k3);
	$(x3).keyup(function(){
		ckName(F, k3, "T");
	});
	
	var k4 = "email";
	var x4 = eform(F, k4);
	$(x4).keyup(function(){
		ckEmail(F, k4, "T");
	});
	
	var k5 = "newpass";
	var x5 = eform(F, k5);
	$(x5).keyup(function(){
		ckInputempty(F, k5, "T");
	});
	
	var k6 = "cfmnewpass";
	var x6 = eform(F, k6);
	$(x6).keyup(function(){
		ckInputempty(F, k6, "T");
	});

	var k7 = "code";
	var x7 = eform(F, k7);
	$(x7).keyup(function(){
		ckCode(F, k7, "T");
	});


	var k8 = "gender";
	var x8 = eform(F, k8);
	$(x8).change(function(){
		ckSelectempty(F, k8, "T");	
	});
	
	var k9 = "month";
	var x9 = eform(F, k9);
	$(x9).change(function(){
		ckSelectempty(F, k9, "T");	
	});

	var k10 = "day";
	var x10 = eform(F, k10);
	$(x10).change(function(){
		ckSelectempty(F, k10, "T");	
	});

	var k11 = "year";
	var x11 = eform(F, k11);
	$(x11).change(function(){
		ckSelectempty(F, k11, "T");	
	});	


	var k12 = "mailsubj";
	var x12 = eform(F, k12);
	$(x12).keyup(function(){
		ckInputempty(F, k12, "T");
	});

	var k13 = "message";
	var x13 = eform(F, k13);
	$(x13).keyup(function(){
		ckInputempty(F, k13, "T");
	});
	
	var k14 = "pass";
	var x14 = eform(F, k14);
	$(x14).keyup(function(){
		ckInputempty(F, k14, "T");
	});	
	
	});	//end:form
	
*/
});



function replyForm(F){

var num_err=0;

num_err += ckInputempty(F, 'message', "T");

//alert("here");
if( num_err > 0 ){
//alert("ck=" + num_err);
	return false;
}
else{
	return true;
}
}

function replyFormMulti(F){
//alert("here" + F);
var x="#replyform";
var k="message";
var k_id = k + F.substr(x.length);
//alert(F + "::" + k_id);
var num_err=0;

num_err += ckInputempty(F, k_id, "T");

//alert("here");
if( num_err > 0 ){
//alert("ck=" + num_err);
	return false;
}
else{
	return true;
}
}


function requestForm(F){

var num_err=0;

num_err += ckName(F, 'firstname', "T");
num_err += ckName(F, 'lastname', "T");
num_err += ckEmail(F, 'email', "T");
num_err += ckInputempty(F, 'mailsubj', "T");
num_err += ckInputempty(F, 'message', "T");


if( num_err > 0 ){
//alert("ck=" + num_err);
	return false;
}
else{
//alert("ok");
	return true;
}
}


function ckLogin(F, num_err){
num_err += ckEmail(F, 'email', "T");
num_err += ckPassword(F, 'pass', "T");
return num_err;
}


function loginForm(F){
var num_err=0;

num_err = ckLogin(F, num_err);

if( num_err > 0 ){
//alert("ck=" + num_err);
	return false;
}
else{
	return true;
}

}


function forgotpassForm(F){

var num_err=0;

num_err += ckName(F, 'firstname', "T");
num_err += ckName(F, 'lastname', "T");
num_err += ckEmail(F, 'email', "T");

if( num_err > 0 ){
//alert("ck=" + num_err);
	return false;
}
else{
	return true;
}

}




function fregisterForm(F){

var num_err=0;

//num_err += ckEmail(elmText(F, 'email'), "T");


num_err += ckName(F, 'firstname', "T");
num_err += ckName(F, 'mname', "F");
num_err += ckName(F, 'lastname', "T");

num_err += ckEmail(F, 'email', "T");

if( num_err > 0 ){
//alert("ck=" + num_err);
	return false;
}
else{
	return true;
}


}


function registerbaseForm(F){
/*
	var textinputs = $("input[type=text]");
    var allInputs = $(":input");
    var formChildren = $("form > *");
*/

//var theForm;
//theForm = '#registerbaseForm';

var allinputs = F + ' :input';

var k;

//alert("x");

var num_err=0;
var num_err_dob=0;
var elm;
num_err += ckName(F, 'firstname', "T");
//num_err += ckName(F, 'mname', "F");
num_err += ckName(F, 'lastname', "T");

num_err += ckEmail(F, 'email', "T");
num_err += ckCode(F, 'code', "T");

num_err += ckNewpassword(F, 'newpass', "T", 'cfmnewpass');

//num_err += ckRequire(elmText(theForm, 'gender'), "T", "notselected");
//num_err += ckSelect(F, 'gender', "T", "notselected");
/*
//use this gender.
num_err += ckSelectempty(F, 'gender', "T");
*/
num_err += ckSelectdate(F, 'dob', "T",  num_err);

/*
k = "agree";
resetflderror(k, "");
num_err += ckAgree(F, k, "T", num_err);
*/

if( num_err > 0 ){
//alert("ck=" + num_err);
	return false;
}
else{
	//discard tos.
	//$("#tos").attr("value", "");
	return true;
}


/*
var err = false;
var existerr = false;
var is_require = "T";
var elm_newpass;
var elm_cfmnewpass;
var err_dob = false;

//$(theForm).submit(function(){
//$('#registerForm :input').each(function(n,elm){
$(allinputs).each(function(n,elm){
	k = $(elm).attr("name");
	is_require = "T";
	
	if( (k == 'firstname')
	|| (k == 'mname')
	|| (k == 'lastname')
	){
		if( k == 'mname' )
			is_require = "F";
			
		existerr = ckName(elm, is_require);

	}


	else if(k == 'email'){
		existerr = ckEmail(elm, is_require);	
	}
	else if(k == 'code'){
		existerr = ckCode(elm, is_require);	
	}
	else if(k == 'newpass'){
		elm_newpass = elm;	
	}
	else if(k == 'cfmnewpass'){
		elm_cfmnewpass = elm;
		existerr = ckNewpassword(elm_newpass, is_require, elm_cfmnewpass);
	}
	
	else if(k == 'year'
	|| (k == 'month')
	|| (k == 'day')	
	){
		//dob
		existerr = ckRequire(elm, is_require);
		err_dob = existerr;
		if( err_dob ){
			show_errmsg("dob", "notselected");
		}
	}
	
	else if(k == 'gender'){
		existerr = ckRequire(elm, is_require);	
	}
	
	else{

	}

//alert(k);
	
	//if existerr, update err.
	if( (! err) ){
			if( existerr )
				err = true;
	}	
	//alert("here");
});

//});

k = "agree";
resetflderror(k, "");
err = ckAgree(theForm, k, "T", err);


*/



}



function registerForm(F){
/*
	var textinputs = $("input[type=text]");
    var allInputs = $(":input");
    var formChildren = $("form > *");
*/

//var theForm;
//theForm = '#registerForm';

var allinputs = F + ' :input';

var k;



var num_err=0;
var num_err_dob=0;
var elm;
num_err += ckName(F, 'firstname', "T");
num_err += ckName(F, 'mname', "F");
num_err += ckName(F, 'lastname', "T");

num_err += ckEmail(F, 'email', "T");
num_err += ckCode(F, 'code', "T");

num_err += ckNewpassword(F, 'newpass', "T", 'cfmnewpass');

//num_err += ckRequire(elmText(theForm, 'gender'), "T", "notselected");
//num_err += ckSelect(F, 'gender', "T", "notselected");
num_err += ckSelectempty(F, 'gender', "T");

num_err += ckSelectdate(F, 'dob', "T",  num_err);

k = "agree";
resetflderror(k, "");
num_err += ckAgree(F, k, "T", num_err);


if( num_err > 0 ){
//alert("ck=" + num_err);
	return false;
}
else{
	//discard tos.
	//$("#tos").attr("value", "");
	return true;
}


/*
var err = false;
var existerr = false;
var is_require = "T";
var elm_newpass;
var elm_cfmnewpass;
var err_dob = false;

//$(theForm).submit(function(){
//$('#registerForm :input').each(function(n,elm){
$(allinputs).each(function(n,elm){
	k = $(elm).attr("name");
	is_require = "T";
	
	if( (k == 'firstname')
	|| (k == 'mname')
	|| (k == 'lastname')
	){
		if( k == 'mname' )
			is_require = "F";
			
		existerr = ckName(elm, is_require);

	}


	else if(k == 'email'){
		existerr = ckEmail(elm, is_require);	
	}
	else if(k == 'code'){
		existerr = ckCode(elm, is_require);	
	}
	else if(k == 'newpass'){
		elm_newpass = elm;	
	}
	else if(k == 'cfmnewpass'){
		elm_cfmnewpass = elm;
		existerr = ckNewpassword(elm_newpass, is_require, elm_cfmnewpass);
	}
	
	else if(k == 'year'
	|| (k == 'month')
	|| (k == 'day')	
	){
		//dob
		existerr = ckRequire(elm, is_require);
		err_dob = existerr;
		if( err_dob ){
			show_errmsg("dob", "notselected");
		}
	}
	
	else if(k == 'gender'){
		existerr = ckRequire(elm, is_require);	
	}
	
	else{

	}

//alert(k);
	
	//if existerr, update err.
	if( (! err) ){
			if( existerr )
				err = true;
	}	
	//alert("here");
});

//});

k = "agree";
resetflderror(k, "");
err = ckAgree(theForm, k, "T", err);


*/



}




function xloginForm(F){

var errmsg="";

errmsg += vLogin(F);

if( show_err(errmsg, F, "T", "F") )
	return false;

return true;
}

function xxvLogin(F){

var errmsg="";

errmsg += vEmail(F.email, "Email", "T");

var fld = F.pass;
var label = "Password";
var x = vPassword(fld, label, "T", "F", fld);
	if( x != "" ){
		errmsg += get_errmsg(fld, label, "Invalid.");
	}
	
	return errmsg;
}


function xxvPwd(F){

var errmsg="";

//errmsg += vEmail(F.email, "Email", "T");

var fld = F.pass;
var label = "Password";
var x = vPassword(fld, label, "T", "F", fld);
	if( x != "" ){
		errmsg += get_errmsg(fld, label, "Invalid.");
	}
	
	return errmsg;
}

function xxeditPwdForm(F){

var errmsg="";

errmsg += vPassword(F.newpass, "New Password", "T", "T", F.cfmnewpass);
errmsg += vPwd(F);

if( show_err(errmsg, F, "T", "T") )
	return false;
	
	var x = "";
	x += "Are you sure you want to change the password ?\n";
	x += "\n\n";
	return confirm(x);
}



function xxpinfoForm(F){

var errmsg="";

errmsg += vName(F.firstname, "Firstname", "T");
errmsg += vName(F.mname, "Middle Initial", "F");
errmsg += vName(F.lastname, "Lastname", "T");
//errmsg += vEmail(F.email, "Email", "T");

errmsg += require(F.year, "Year", "T");
errmsg += require(F.month, "Month", "T");
errmsg += require(F.day, "Day", "T");

//errmsg += vNumeric(F.age, "Age", "T", 2, 3, "SIGNUP_AGE");


	errmsg += require(F.gender, "Gender", "T");
var gender = F.gender.value;
//alert(gender);
if( gender == "F" )
	gender = "Female";
else if ( gender == "M" )
	gender = "Male";
else
	gender = "";
//alert(gender);


if( show_err(errmsg, F, "F", "F") )
	return false;
	
		var x="";
		//x += "Email: " + F.email.value + "\n";
		x += "First Name: " + F.firstname.value + "\n";
		x += "Middle Initial: " + F.mname.value + "\n";
		x += "Last Name: " + F.lastname.value + "\n";
		x += "Date of Birth(mm/dd/yyyy): " + F.month.value + "/" + F.day.value + "/" + F.year.value + "\n";
		//x += "Age: " + F.age.value + "\n";
x += "Gender: " + gender + "\n";
	x += "\n\n";
		return confirm("Is the following information correct ?\n\n" + x);
		//return true;

}



function xxeditEmailForm(F){

var errmsg="";

errmsg += vEmail(F.newemail, "New Email", "T");
//errmsg += vLogin(F);
/*
if( errmsg == "" ){
if( F.newemail.value == F.email.value ){
  	F.newemail.style.background = 'Yellow';
	F.email.style.background = 'Yellow';
	//overwrite the errmsg
	errmsg = get_errmsg(F.newemail, "New Email", "The new and old emails are identical.");
}
}
*/
if( errmsg == "" ){
if( F.newemail.value != F.cfmemail.value ){
  	F.newemail.style.background = 'Yellow';
	F.cfmemail.style.background = 'Yellow';
	//overwrite the errmsg
	errmsg = get_errmsg(F.newemail, "New Email", "The new and confirmed emails are not the same.");
}
}

if( errmsg == "" ){
if( F.pass.value == "" ){
	errmsg = get_errmsg(F.pass, "Password", "Password is not entered.");
}
}

if( show_err(errmsg, F, "F", "F") )
	return false;
	
return confirm("Are you sure you want to change your email as the followings?\n\n" + F.newemail.value);
}



//#########################
/*
function vAddr(F){

var errmsg="";


errmsg += vStreet(F.street1, "Street 1", "T");
errmsg += vStreet(F.street2, "Street 2", "F");
errmsg += vName(F.city, "City", "T");
errmsg += vCountry(F);
errmsg += vZipcode(F.zipcode, "Zip Code", "T");


return errmsg;
}


function editAddrphoneForm(F){


var errmsg="";
errmsg += vAddr(F);
errmsg += vPhone(F.phone, "Phone", "F");
//errmsg += vLogin(F);



if( show_err(errmsg, F, "F", "F") )
	return false;


	var x = "";
	x += "Please verify the following information.\n";
	x += "\nStreet 1: " + F.street1.value;
	x += "\nStreet 2: " + F.street2.value;
	x += "\nCity: " + F.city.value;

	if( F.country.value == "US" )
		x += "\nState: " + F.state.value;
	
	//else
		//x += "\nProvince: " + F.province.value;
	

	x += "\nZip Code: " + F.zipcode.value;
	x += "\nCountry: " + F.country.value;
	x += "\nPhone: " + F.phone.value;
	//x += "\nEmail: " + F.email.value;
	x += "\n\n";

	return confirm(x);	

}
*/

// -->
