//////////////////////////////////////////////////////////////////////////////////////////
//
//    This JavaSript coding is created by Yubang for Valiation of html form fields
//	  The first part is genetic functions valiatioin of numbers, string, email, password. 
//	  The second part is to use these functions by creating a client form valiation	function.
//	  If you have some some problems or suggestions, please contact with Yubang.
//	  Thank you for use of this file.
//	  10th June, 2000.
//
//////////////////////////////////////////////////////////////////////////////////////////

//******************* Valiate Functions ******************************//

//<!--- sumit function form from a href link --->
function submitForm(mode){		
	document.forms[0].mode.value=mode;   
	document.forms[0].submit();
}

function emptyField(objectX, msg){
    if (objectX.value == "") {																	
			alert(msg+" !");      
      objectX.focus();
      return false;
    }
    return true;
}
function checkRadioWithBack(obj, msg, backmsg){
  isSelected=0; check=0;  
	for (i=0; i < obj.length; i++)
	{   
		if (obj[i].checked) {
        isSelected=1;   
        check=i;        
        break;
		} 
  }
	if(!isSelected)
  {   alert(msg+" !");       
      obj[0].focus();       
      return false;
  }
  else{
      //alert('obj[1].checked = '+obj[1].checked+' check='+check);
      if(obj[1].checked){ 
          alert(backmsg+" !");
		  obj[0].focus();       
		  return false;
          history.back();
      }   
  }
  return true;
}

function checkRadio(obj, msg){
  isSelected=0;
	for (i=0; i < obj.length; i++)
	{
		if (obj[i].checked) {
        isSelected=1;           
        break;
		} 
  }
	if(!isSelected)
  {   alert(msg+" !");       
      obj[0].focus();       
      return false;
  } 
  return true;
}
function checkRadioNoMsg(obj){
	for (i=0; i < obj.length; i++)
	{
		if (obj[i].checked) {       
			return false;
		} 
  }
  obj[0].focus();   
	return true;
}
function checkSelection(selectObj, msg){
    isSelected=0;    
    for(i=0;i<selectObj.length;i++){
      if(selectObj.options[i].selected){
        isSelected=1;
        break;
      }
    }
    if(!isSelected)
    {   alert(msg+" !"); 
        selectObj.focus();
        return false;
    }
    return true;
}
function checkPhoneFaxPostCode(inputObj, type, inti){
  if (inputObj.value==''){
		  alert("Please enter your "+type+" !");
		  inputObj.focus();
		  return false;
	}

  var inStr = inputObj.value;
  var digitalCh = "0123456789 -x)(";
  var altChars = 0;  
  if(inti==1) digitalCh = "0123456789";  
  for(i=0; i<inStr.length; i++){
		ch = inStr.charAt(i);
		for(j=0; j<digitalCh.length; j++){		
				if(ch == digitalCh.charAt(j)) break;		
				if(j==(digitalCh.length-1)){
					altChars++;				
				}	
		}
	}	
	if(altChars != 0){
		alert("Please enter a valid "+type+" !");      
    inputObj.focus();
		return false;	
	}
  return true;
}
function checkEmail(emailObj, msg){
    if (emailObj.value==''){
      if(msg==''){
		    alert('Please enter your Email address!');
      }
      else{
        alert(msg+" !"); 
      }
		  emailObj.focus();
		  return false;
	  }
    if (!validEmail(emailObj.value)) {																	
			alert("Please enter a valid Email address !");      
      emailObj.focus();
      return false;
    }
    return true;
}

function checkLoginName(logOjb, logLen){
    if (logOjb.value==''){
  		alert('Please enter your login name!');
	  	logOjb.focus();
		  return false;
  	}  
 	  if (logOjb.value.length < 4){
		  alert('Please enter more than three letters for your login name!');
  		logOjb.focus();
	  	return false;
    }
    return true;
}

function checkPsw(pswOjb, pswOjb2){
    if (pswOjb.value==''){
		  alert('Please enter your preferred password!');
		  pswOjb.focus();
		  return false;
	  }
  	if (pswOjb.value.length < 7){
	  	alert('Please enter more than six letters for your password!');
		  pswOjb.focus();
  		return false;
	  }
  	if (pswOjb2.value==''){
	  	alert('Your confirm password is required!');
		  pswOjb2.focus();
  		return false;
	  }
	 	if (pswOjb.value!=pswOjb2.value){
	  	alert('The passwords entered do not match.');
		  pswOjb.focus();
  		return false;
	  }
    return true;
}

function validEmail(email) {
			//this function also need TrimNumber() function
			invalidChars = " /:,;"
			if (TrimNumber(email) == "" || email.length < 6) {// cannot be empty and less than 6 characters
				return false
			}     
      email = TrimNumber(email);
			for (i=0; i<invalidChars.length; i++) {	// does it contain any invalid characters?
				badChar = invalidChars.charAt(i)
				if (email.indexOf(badChar,0) > -1) {
					return false
				}
			}
			atPos = email.indexOf("@",1)			// there must be one "@" symbol
			if (atPos == -1) {
				return false
			}
			if (email.indexOf("@",atPos+1) != -1) {	// and only one "@" symbol
				return false
			}
			periodPos = email.indexOf(".",atPos)
			if (periodPos == -1) {					// and at least one "." after the "@"
				return false
			}
			if (periodPos+3 > email.length)	{		// must be at least 2 characters after the "."
				return false
			}
			return true
}	
function checkPhoneFaxPostCode(inputObj, type, inti){
  if (inputObj.value==''){
		  alert("Please enter your "+type+" !");
		  inputObj.focus();
		  return false;
	}

  var inStr = inputObj.value;
  var digitalCh = "0123456789 -x)(";
  var altChars = 0;  
  if(inti==1) digitalCh = "0123456789";  
  for(i=0; i<inStr.length; i++){
		ch = inStr.charAt(i);
		for(j=0; j<digitalCh.length; j++){		
				if(ch == digitalCh.charAt(j)) break;		
				if(j==(digitalCh.length-1)){
					altChars++;				
				}	
		}
	}	
	if(altChars != 0){
		alert("Please enter a valid "+type+" !");      
    inputObj.focus();
		return false;	
	}
  return true;
}
function Check_ddmmyyyy(ddObj, mmObj, yyObj){
      oneDate = new Date();
      oneDate.setYear(yyObj.value);
      oneDate.setMonth((mmObj.value-1));
      oneDate.setDate(ddObj.value);
      Today = new Date();      
        //theYear = Today.getYear();     
        //alert("the year= "+theYear+" oneDate.date "+oneDate.getYear());
      if(!IsDate(ddObj)) return false;
      if(!IsMonth(mmObj)) return false;
      if(!IsYear(yyObj, "after")) return false;
      if(oneDate<Today){
        alert("You must enter a date after today!");
		    ddObj.focus();
  		  return false;
      }
      return true
}
function Check_birthDay(ddObj, mmObj, yyObj){
      oneDate = new Date();
      oneDate.setYear(yyObj.value);
      oneDate.setMonth((mmObj.value-1));
      oneDate.setDate(ddObj.value);
      Today = new Date();      
        //theYear = Today.getYear();     
        //alert("the year= "+theYear+" oneDate.date "+oneDate.getYear());
      if(!IsDate(ddObj)) return false;
      if(!IsMonth(mmObj)) return false;
      if(!IsYear(yyObj, "before")) return false;
      if(oneDate>Today){
        alert("You must enter your real birth day!");
		    ddObj.focus();
  		  return false;
      }
      return true
}
function IsMinute(Obj){
   var inStr = Obj.value;
   if (Obj.value==''){
		  alert("Please enter a digital minute!");
		  Obj.focus();
		  return false;
	 }
   if(!IsNumber(inStr)||inStr.length > 2||inStr > 60)
   {
      alert("Please enter a valid minute!");
      Obj.focus();
	  	return false;
    }
    return true;
}
function IsHour(Obj){
   var inStr = Obj.value;
   if (Obj.value==''){
		  alert("Please enter a digital hour!");
		  Obj.focus();
		  return false;
	 }
   if(!IsNumber(inStr)||inStr.length > 2||inStr > 12)
   {
      alert("Please enter a valid hour!");
      Obj.focus();
	  	return false;
    }
    return true;
}
function IsDate(Obj){
   var inStr = Obj.value;
   if (Obj.value==''){
		  alert("Please enter a digital date!");
		  Obj.focus();
		  return false;
	 }
   if(!IsNumber(inStr)||inStr.length > 2||inStr > 31)
   {
      alert("Please enter a valid date!");
      Obj.focus();
	  	return false;
    }
    return true;
}
function IsMonth(Obj){
   var inStr = Obj.value;
   if (Obj.value==''){
		  alert("Please enter a digital month!");
		  Obj.focus();
		  return false;
	 }
   if(!IsNumber(inStr)||inStr.length > 2||inStr > 12)
   {
      alert("Please enter a valid digital month!");
      Obj.focus();
	  	return false;
    }
    return true;
}
function IsYear(Obj, mode){
   var inStr = Obj.value;
   var Today = new Date();      
   if (Obj.value==''){
		  alert("Please enter a 4-digital year!");
		  Obj.focus();
		  return false;
	 }
   if(mode == 'after'){
      if(!IsNumber(inStr)||inStr.length != 4||inStr <Today.getYear()||inStr >(Today.getYear()+50))
      {
          alert("Please enter a valid 4-digital year!");
          Obj.focus();
	  	    return false;
       }
    }
    else{
       if(!IsNumber(inStr)||inStr.length != 4||inStr > Today.getYear())
      {
          alert("Please enter a valid 4-digital year!");
          Obj.focus();
	  	    return false;
       }    
    }
    return true;
}
function checkCCdate(mmObj, yyObj){
      oneDate = new Date();
      oneDate.setYear(yyObj.value);
      oneDate.setMonth((mmObj.value-1));
      oneDate.setDate(1);
      Today = new Date();      
        //theYear = Today.getYear();     
        //alert("the year= "+theYear+" oneDate.date "+oneDate.getYear());      
      if(oneDate<Today){
        alert("You must enter a valid expiry date!");
		    mmObj.focus();
  		  return false;
      }
      return true
}
function checkCreditCard(Obj){
  var inStr = Obj.value;
  if(!emptyField(Obj, "Please enter the card number")){
      return false;
  }
  if(!IsNumber(inStr)||inStr.length != 16)
   {
      alert("Please enter a valid card number!");
      Obj.focus();
	  	return false;
    }
    return true;
}
function IsNumber(inStr){
  var digitalCh = "0123456789";
  var altChars = 0;
  inStr = TrimNumber(inStr);
  for(i=0; i<inStr.length; i++){
		    ch = inStr.charAt(i);
				for(j=0; j<digitalCh.length; j++){		
				    if(ch == digitalCh.charAt(j)) break;		
				    if(j==(digitalCh.length-1)) altChars++;				
				}	
	}	
	if(altChars != 0){		
		return false;	
	}
  return true
}
function TrimNumber(String){			
			var tStart=0;
			var tEnd=0;
			var mStart=0;
			var mEnd=0;	
			for(i=0;tStart=1;i++){		
				if(String.charCodeAt(i)!=32){			
					mStart=i;
					tStart=1;			
					break;
				}
			}
	
			for(i=0;tEnd=1;i++){	  		
				if(String.charCodeAt(String.length-i-1)!=32){
					mEnd=String.length-i
					tEnd=1;
					break;
				}					
			}	
			var StartString=String.substring(0,mStart)
			var FirstTrim=String.replace(StartString,"")
			var LastString=String.substring(mEnd,String.length);
			var SecondTrim=FirstTrim.replace(LastString,"")	
			return SecondTrim;
}		
//trim the string
function TrimString(theString){		
			//alert(theString)	//debug alert
			var tStart=0;
			var tEnd=0;
			var mStart=0;
			var mEnd=0;	
			for(i=0;tStart=1;i++){		
				if(theString.charCodeAt(i)!=32){			
					mStart=i;
					tStart=1;			
					break;
				}
			}
			for(i=0;tEnd=1;i++){	  		
				if(theString.charCodeAt(theString.length-i-1)!=32){
					mEnd=theString.length-i
					tEnd=1;
					break;
				}					
			}	
			var StartString=theString.substring(0,mStart)
			var FirstTrim=theString.replace(StartString,"")
			var LastString=theString.substring(mEnd,theString.length);
			var SecondTrim=FirstTrim.replace(LastString,"")	
			return SecondTrim;
}		
		
