// JavaScript Document
// Author : Muhammad Irfan 
// Date : 03/09/2002

	/*
	function used to validate the Content with Regular Expression
	param fld = field's Object
	return :true / false
	*/
	function valid(fld) // varying number of arguments
	{
	  var i;
	  // scan regular expressions
	  //third argument of valid method is Regular expression
	  for (i=1;i<valid.arguments.length;i++) 
		{
		var rx;
		rx=new RegExp(valid.arguments[i]);
		if (rx.exec(fld.value)!=null ) 
		   return true;  // ok
		}
	  // no matches...
	  //alert(errm);
	  
	  return false;
	}
	
	 /*
	 function to validate the contents of text only Fields
	 param fld = field's Object
	 return true/false
	*/
	function validateName(fld)
	{
	  rv=valid(fld,"^ *[a-zA-Z- ]+$");
	  return rv;
	}
	 
	function validateNameAndNumber(fld)
	{
	  rv=valid(fld,"^ *[a-zA-Z0-9 ]+$");
	  return rv;
	}
	
	function validateLoan(fld)
	{
	  rv=valid(fld,"^ *[a-zA-Z0-9/ ]+$");
	  return rv;
	}
	
	function validateNumber(fld)
	{
	  rv=valid(fld,"^ *[0-9 ]+$");
	  return rv;
	}
	/*
	function to validate the contents of Telephone number Fields
	param fld = field's Object
	return true/false
	*/
	  function validatePhone(fld)
	  {
		rv=valid(fld,"^ *[0-9 ()-]+$");
		  
		return rv;
	  } 
	  /*
	 function to validate the contents of email Fields
	 param fld = field's Object
	 return true/false
	*/
	  function validateEmail(fld)
	  {
	  rv=valid(fld,"^ *[-a-zA-Z0-9_]+\.?[-a-zA-Z0-9_]+@[-a-zA-Z0-9_]+\\.[a-zA-Z][a-zA-Z][a-zA-Z]?\.?[a-zA-Z]+$");
				  
	  return rv;
	  }
	  
	  function validateFloatNumber(fld)
	  {
	  rv=valid(fld,"^ *[0-9]+\.?[0-9]+$");
				  
	  return rv;
	  }
	  
	  var isError = false;//variable used as a flag to determine there was any error or not
			  
	  /*
	  function to validate customer field's contents before submission
	  */
	  function validateCustomerFields(myForm) {
		isError = false;
				
		if( !(validateName(myForm.txtFullName)) ){
			alert("Please Enter Proper Full Name");
			setFocus(myForm.txtFullName);
		}
		else if(!(isEmpty(myForm.txtShortName)) && !(validateName(myForm.txtShortName)) )	{
			alert("Please Enter Proper Short Name");
			setFocus(myForm.txtShortName);
		}
		else if(!(isEmpty(myForm.txtFatherName)) && !(validateName(myForm.txtFatherName)) )	{
			alert("Please Enter Proper Father Name");
			setFocus(myForm.txtFatherName);
		}
		else if(!(isEmpty(myForm.txtMotherName)) && !(validateName(myForm.txtMotherName)) )	{
			alert("Please Enter Proper Mother/Maiden Name");
			setFocus(myForm.txtMotherName);
		}
		else if( !(isEmpty(myForm.txtDOB)) && checkValidDate(myForm.txtDOB)!=0) {
			setFocus(myForm.txtDOB);
		}
		else if( !(isEmpty(myForm.txtPhoneOff)) && !(validatePhone(myForm.txtPhoneOff)) )	{
			alert("Please Enter Proper Number in Phone (Office) Field");
			setFocus(myForm.txtPhoneOff);
		}
		else if(!(isEmpty(myForm.txtPhoneRes)) && !(validatePhone(myForm.txtPhoneRes)) )	{
			alert("Please Enter Proper Number in Phone (Residence) Field");
			setFocus(myForm.txtPhoneRes);
		}
		else if( !(isEmpty(myForm.txtFax)) && !(validatePhone(myForm.txtFax)) )	{
			alert("Please Enter Proper Number in Fax Field");
			setFocus(myForm.txtFax);
		}
		else if( !(isEmpty(myForm.txtMobile)) && !(validatePhone(myForm.txtMobile)) )	{
			alert("Please Enter Proper Number in Cell Phone Field");
			setFocus(myForm.txtMobile);
		}
		else if( !(isEmpty(myForm.txtEmail)) && !(validateEmail(myForm.txtEmail)) )	{
			alert("Please Enter Proper Email Address");
			setFocus(myForm.txtEmail);
		}
		else if( isEmpty(myForm.txtAddressRes) )	{
			alert("Please Enter Residence Address");
			setFocus(myForm.txtAddressRes);
		}
		else if( isEmpty(myForm.txtAddressCores) )	{
			alert("Please Enter Correspondence Address");
			setFocus(myForm.txtAddressCores);
		}
		else if( !(isEmpty(myForm.txtNICOld)) && !(validatePhone(myForm.txtNICOld)) )	{
			alert("Please Enter Proper NIC Number in NIC(OLD) Field");
			setFocus(myForm.txtNICOld);
		} 
		else if( !(isEmpty(myForm.txtNICNew)) && !(validatePhone(myForm.txtNICNew)) )	{
			alert("Please Enter Proper NIC Number in NIC (New) Field");
			setFocus(myForm.txtNICNew);
		} 
		else if(!(isEmpty(myForm.txtProfibility)) && !(validateNumber(myForm.txtProfibility))   ) 
		{
			alert("Please Enter Proper Profability value ")
			setFocus(myForm.txtProfibility);
		}
		else if(!(isEmpty(myForm.txtProfibility)) && ((myForm.txtProfibility.value > 100) || (myForm.txtProfibility.value < 0))  ) 
		{
			alert("Please Enter Proper Profability value ")
			setFocus(myForm.txtProfibility);
		}	
		
		
		//check flag and return value on this basis
		if(isError==false){
			return true;
		}
		else
			return false;
	}
	
	//function to check whether the field object's value is empty  
			
	function isEmpty(field){
		if(field.value=="" ) return true;
		else	return false;
	}
	/*
	function to set focus back on field with error also clear the contents of this field
	*/
	
	function setFocus(field) {
		field.value = "";
		field.focus();
		isError =true;
	}
	
	  /*
	  function to validate account field's contents before submission
	  */
	  function validateAccountFields(myForm) {
		isError = false;
		
		
		if( !(validateNameAndNumber(myForm.txtAccountNumber)) ){
			alert("Please Enter Proper Account Number");
			setFocus(myForm.txtAccountNumber);
		}
		else if( !(validateName(myForm.txtAccountTitle)) )	{
			alert("Please Enter Proper Account Title");
			setFocus(myForm.txtAccountTitle);
		}
		else if(!(isEmpty(myForm.txtAccountOfficerCode)) && !(validateNameAndNumber(myForm.txtAccountOfficerCode)) )	{
			alert("Please Enter Proper Relationship Manager");
			setFocus(myForm.txtAccountOfficerCode);
		}
		else if(!(isEmpty(myForm.txtAccountSegment)) &&!(validateNameAndNumber(myForm.txtAccountSegment)) )	{
			alert("Please Enter Proper Account Segment");
			setFocus(myForm.txtAccountSegment);
		}
		
		else if( !(isEmpty(myForm.txtAccountOpeningDate)) && checkValidDate(myForm.txtAccountOpeningDate)!=0) {
			setFocus(myForm.txtAccountOpeningDate);
		}
		else if( !(isEmpty(myForm.txtAccountStatementFrequency)) && !(validateNumber(myForm.txtAccountStatementFrequency.value)) && ((myForm.txtAccountStatementFrequency.value > 100) || (myForm.txtAccountStatementFrequency.value < 0))  ) 
		{
			alert("Please Enter Proper Statement Frequency value between 0-100")
			setFocus(myForm.txtAccountStatementFrequency);
		}
		else if( !(isEmpty(myForm.txtAccountLastStatementDate)) && checkValidDate(myForm.txtAccountLastStatementDate)!=0) {
			setFocus(myForm.txtAccountLastStatementDate);
		}
		else if( !(isEmpty(myForm.txtAccountNextStatementDate)) && checkValidDate(myForm.txtAccountNextStatementDate)!=0) {
			setFocus(myForm.txtAccountNextStatementDate);
		}
		else if( !(isEmpty(myForm.txtAccountPhoneResidence)) && !(validatePhone(myForm.txtAccountPhoneResidence)) )	{
			alert("Please Enter Proper Number in Phone Residence Field");
			setFocus(myForm.txtAccountPhoneResidence);
		}
		else if( !(isEmpty(myForm.txtAccountPhoneOffice)) && !(validatePhone(myForm.txtAccountPhoneOffice)) )	{
			alert("Please Enter Proper Number in Cell Phone Office Field");
			setFocus(myForm.txtAccountPhoneOffice);
		}
		
		//check flag and return value on this basis
		if(isError==false){
			return true;
		}
		else
			return false;
	}
	
	/*
	//	function to validate credit card number
	*/
	function validateCreditCard(fld)
	{
	  rv=valid(fld, "^ *([0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9])$");
	  return rv;
	} 
	
	/*
	  function to validate card field's contents before submission
	  */
	  function validateCardFields(myForm) {
		isError = false;
		
		
		if( !(validateCreditCard(myForm.txtCardNumber)) ){
			alert("Please Enter Proper Credit Card Number");
			setFocus(myForm.txtCardNumber);
		}
		else if( !(validateName(myForm.txtCreditCardName)) )	{
			alert("Please Enter Proper Credit Card Name");
			setFocus(myForm.txtCreditCardName);
		}
		else if(isEmpty(myForm.txtCardExpiryDate) ) {
			alert("Please Enter Proper Card Expiry Date");
			setFocus(myForm.txtCardExpiryDate);
		}
		else if(checkValidDate(myForm.txtCardExpiryDate)!=0) {
			setFocus(myForm.txtCardExpiryDate);
		}
		else if(!(validateFloatNumber(myForm.txtCardLimit)) )	{
			alert("Please Enter Proper Card Limit");
			setFocus(myForm.txtCardLimit);
		}
		else if(isEmpty(myForm.txtCardOpeningDate) ) {
			alert("Please Enter Proper Card Issue Date");
			setFocus(myForm.txtCardOpeningDate);
		}
		else if( checkValidDate(myForm.txtCardOpeningDate)!=0) {
			setFocus(myForm.txtCardOpeningDate);
		}
		else if( !(isEmpty(myForm.txtCardFirstName)) && !(validateName(myForm.txtCardFirstName)) ){
			alert("Please Enter Proper First Name");
			setFocus(myForm.txtCardFirstName);
		}
		else if( !(isEmpty(myForm.txtCardMiddleName)) && !(validateName(myForm.txtCardMiddleName)) ){
			alert("Please Enter Proper Middle Name Name");
			setFocus(myForm.txtCardMiddleName);
		}
		else if(!(isEmpty(myForm.txtCardLastName)) && !(validateName(myForm.txtCardLastName)) )	{
			alert("Please Enter Proper Last Name");
			setFocus(myForm.txtCardLastName);
		}
		else if(!(isEmpty(myForm.txtCardMotherMaidenName)) && !(validateName(myForm.txtCardMotherMaidenName)) )	{
			alert("Please Enter Proper Mother/Maiden Name");
			setFocus(myForm.txtCardMotherMaidenName);
		}
		else if( !(isEmpty(myForm.txtCardDateOfBirth)) && checkValidDate(myForm.txtCardDateOfBirth)!=0) {
			setFocus(myForm.txtCardDateOfBirth);
		}
		else if( !(isEmpty(myForm.txtCardPhoneOffice)) && !(validatePhone(myForm.txtCardPhoneOffice)) )	{
			alert("Please Enter Proper Number in Phone (Office) Field");
			setFocus(myForm.txtCardPhoneOffice);
		}
		else if( !(isEmpty(myForm.txtCardOfficePhoneExt)) && !(validateNumber(myForm.txtCardOfficePhoneExt)) )	{
			alert("Please Enter Proper Number in Phone (Office) Extension Field");
			setFocus(myForm.txtCardOfficePhoneExt);
		}
		else if( !(isEmpty(myForm.txtCardFax)) && !(validatePhone(myForm.txtCardFax)) )	{
			alert("Please Enter Proper Number in Fax Field");
			setFocus(myForm.txtCardFax);
		}
		else if( !(isEmpty(myForm.txtCardNIC)) && !(validatePhone(myForm.txtCardNIC)) )	{
			alert("Please Enter Proper Number in NIC field");
			setFocus(myForm.txtCardNIC);
		}
		else if( !(isEmpty(myForm.txtCardPassportNumber)) && !(validateNameAndNumber(myForm.txtCardPassportNumber)) )	{
			alert("Please Enter Proper Passport Number");
			setFocus(myForm.txtCardPassportNumber);
		}
		else if( !(isEmpty(myForm.txtCardPhoneResidence)) && !(validatePhone(myForm.txtCardPhoneResidence)) )	{
			alert("Please Enter Proper Number in Phone (Residence)  Field");
			setFocus(myForm.txtCardPhoneResidence);
		}
		else if( !(isEmpty(myForm.txtCardCellPhone)) && !(validatePhone(myForm.txtCardCellPhone)) )	{
			alert("Please Enter Proper Number in Cell Phone Field");
			setFocus(myForm.txtCardCellPhone);
		}
		else if( !(isEmpty(myForm.txtCardPriCardNumber)) &&  !(validateCreditCard(myForm.txtCardPriCardNumber)) ){
			alert("Please Enter Proper Primary Credit Card Number");
			setFocus(myForm.txtCardPriCardNumber);
		}
		else if( !(isEmpty(myForm.txtCardPrimaryCardHolderName)) &&  !(validateName(myForm.txtCardPrimaryCardHolderName)) )	{
			alert("Please Enter Proper Primary Credit Card Name");
			setFocus(myForm.txtCardPrimaryCardHolderName);
		}
		else if( !(isEmpty(myForm.txtCardRWPCH)) &&  !(validateName(myForm.txtCardRWPCH)) )	{
			alert("Please Enter Proper Relationship With Primary Card Holder ");
			setFocus(myForm.txtCardRWPCH);
		}
		else if( !(validateNumber(myForm.txtBillingMonth)) || (myForm.txtBillingMonth.value > 12) || (myForm.txtBillingMonth.value < 0)  ) 
		{
			alert("Please Enter Proper Billing Month")
			setFocus(myForm.txtBillingMonth);
		}
		else if( checkValidDate(myForm.txtPaymentDate) !=0 ) 
		{
			setFocus(myForm.txtPaymentDate);
		}
		else if( checkValidDate(myForm.txtStatementDate) != 0) 
		{
			setFocus(myForm.txtStatementDate);
		}	
		
		
		//check flag and return value on this basis
		if(isError==false){
			return true;
		}
		else
			return false;
	}
	
	/*
	  function to validate Loans field's contents before submission
	  */
	  function validateLoanFields(myForm) {
		isError = false;
		
		
		if( !(validateNameAndNumber(myForm.txtLoanNumber)) ){
			alert("Please Enter Proper Loan Number");
			setFocus(myForm.txtLoanNumber);
		}
		else if( !(validateName(myForm.txtLoanName)) )	{
			alert("Please Enter Proper Loan Name");
			setFocus(myForm.txtLoanName);
		}
		else if( !(validateNameAndNumber(myForm.txtLoanAccountNumber)) ){
			alert("Please Enter Proper Loan Account Number");
			setFocus(myForm.txtLoanAccountNumber);
		}
		else if( !(validateNameAndNumber(myForm.txtLoanApplicationCode)) ) 
		{
			alert("Please Enter Proper Application Code")
			setFocus(myForm.txtLoanApplicationCode);
		}
		else if( !(validateNumber(myForm.txtLoanTotalPeriod)) || (myForm.txtLoanTotalPeriod.value > 100) || (myForm.txtLoanTotalPeriod.value < 0)  ) 
		{
			alert("Please Enter Proper Loan Total Period ")
			setFocus(myForm.txtLoanTotalPeriod);
		}
		else if(!(validateFloatNumber(myForm.txtLoanTotalApprovedAmount)) )	{
			alert("Please Enter Proper Total Approved Amount");
			setFocus(myForm.txtLoanTotalApprovedAmount);
		}
		else if(!(validateFloatNumber(myForm.txtLoanInstallmentAmount)) )	{
			alert("Please Enter Proper Loan Installement Amount");
			setFocus(myForm.txtLoanInstallmentAmount);
		}
		else if( isEmpty(myForm.txtLoanDispbursementDate)  ) 
		{
			alert("Please Enter Proper Disbursement Date");
			setFocus(myForm.txtLoanDispbursementDate);
		}
		else if( checkValidDate(myForm.txtLoanDispbursementDate) !=0 ) 
		{
			setFocus(myForm.txtLoanDispbursementDate);
		}
		else if( !(validateName(myForm.txtLoanFatherName)) )	{
			alert("Please Enter Proper Father Name");
			setFocus(myForm.txtLoanFatherName);
		}
		else if( checkValidDate(myForm.txtLoanDateOfBirth) !=0 ) 
		{
			setFocus(myForm.txtLoanDateOfBirth);
		}
		else if( !(isEmpty(myForm.txtLoanPhoneOffice)) && !(validatePhone(myForm.txtLoanPhoneOffice)) )	{
			alert("Please Enter Proper Number in Phone (Office) Field");
			setFocus(myForm.txtLoanPhoneOffice);
		}
		else if( !(isEmpty(myForm.txtLoanPhoneOfficeExt)) && !(validateNumber(myForm.txtLoanPhoneOfficeExt)) )	{
			alert("Please Enter Proper Number in Phone (Office) Extension Field");
			setFocus(myForm.txtLoanPhoneOfficeExt);
		}
		else if( !(isEmpty(myForm.txtLoanFax)) && !(validatePhone(myForm.txtLoanFax)) )	{
			alert("Please Enter Proper Number in Fax Field");
			setFocus(myForm.txtLoanFax);
		}
		else if( !(isEmpty(myForm.txtLoanPhoneResidence1)) && !(validatePhone(myForm.txtLoanPhoneResidence1)) )	{
			alert("Please Enter Proper Number in Phone (Residence 1)  Field");
			setFocus(myForm.txtLoanPhoneResidence1);
		}
		else if( !(isEmpty(myForm.txtLoanPhoneResidence2)) && !(validatePhone(myForm.txtLoanPhoneResidence2)) )	{
			alert("Please Enter Proper Number in Phone (Residence 2)  Field");
			setFocus(myForm.txtLoanPhoneResidence2);
		}
		else if( !(isEmpty(myForm.txtLoanCity)) && !(validateName(myForm.txtLoanCity)) )	{
			alert("Please Enter Proper City Name");
			setFocus(myForm.txtLoanCity);
		}
		else if( !(validateName(myForm.txtLoanDesignation)) )	{
			alert("Please Enter Proper Designation/Job Title ");
			setFocus(myForm.txtLoanDesignation);
		}
		else if( !(validatePhone(myForm.txtLoanNIC)) )	{
			alert("Please Enter Proper Number in NIC field");
			setFocus(myForm.txtLoanNIC);
		}
		else if( !(isEmpty(myForm.txtLoanCellPhone)) && !(validatePhone(myForm.txtLoanCellPhone)) )	{
			alert("Please Enter Proper Number in Cell Phone Field");
			setFocus(myForm.txtLoanCellPhone);
		}
		else if( checkValidDate(myForm.txtPaymentDate) !=0 ) 
		{
			setFocus(myForm.txtPaymentDate);
		}
		
		//check flag and return value on this basis
		if(isError==false){
			return true;
		}
		else
			return false;
	}