var dtCh= "/";
var minYear=1900;
var maxYear=2200;

function isInteger(s){
	var i;
	for (i = 0; i < s.length; i++){   
		// Check that current character is number.
		var c = s.charAt(i);
		if (((c < "0") || (c > "9"))) return false;
	}
	// All characters are numbers.
	return true;
}

function stripCharsInBag(s, bag){
	var i;
        var returnString = "";
        // Search through string's characters one by one.
        // If character is not in bag, append to returnString.
        for (i = 0; i < s.length; i++){   
            var c = s.charAt(i);
            if (bag.indexOf(c) == -1) returnString += c;
        }
        return returnString;
    }
    
    function daysInFebruary (year){
        // February has 29 days in any year evenly divisible by four,
        // EXCEPT for centurial years which are not also divisible by 400.
        return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
    }
    function DaysArray(n) {
        for (var i = 1; i <= n; i++) {
            this[i] = 31
            if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
            if (i==2) {this[i] = 29}
        } 
        return this
    }

function isValidDateFormat(val) {
        var dtformat = /^\d{2}\/\d{2}\/\d{4}$/;
        return(dtformat.test(val));
    }

    function isValidDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		//"Not a valid format it should be dd/mm/yyyy"
		return false;
	}
	if (strMonth.length<1 || month<1 || month>12){
		//"Not a valid month"
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//"Not a valid day"
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		// Not enter a valid 4 digit year between "+minYear+" and "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		//Not a valid date")
		return false
	}
        return true
    }

function isValidName(val) {
        var reName=/^[a-zA-Z .]{1,}$/;
        //return(reName.test(val));
		return(true);
    }
    
    function isValidAddress(val) {
        var reName=/^[a-zA-Z0-9 ,:\(\)\-\.]{1,}$/;
       // return(reName.test(val));
	   return (true);
    }
function isValidTitle(val) {
        var reName=/^[a-zA-Z. ()]{1,}$/;
        return(reName.test(val));
    }
	function isValidOrganization(val) {
        var reName=/^[a-zA-Z ,:\(\)\-\.]{1,}$/;
        return(reName.test(val));
    }
    function isValidCity(val) {
        var reName=/^[a-zA-Z ]{1,}$/;
        return(reName.test(val));
    }

    function isValidCNIC(val, nationality) {
        if(nationality == "1") {
            var regExpCNIC = /^[0-9]{13}$/;
            return(regExpCNIC.test(val));
        }
        else {
            regExpPP=/^[a-zA-Z0-9]{5,20}$/;
            return(regExpPP.test(val));
        }
    }
function IsValidHome(val) {
    var numberFilter=/^[0]\d{9,10}$/;//validate ten digit numbers only
    return(numberFilter.test(val));   
    }

function IsValidMobile(val) {
    var numberFilter=/^[0]\d{9,10}$/;//validate eleven digit numbers only
    return(numberFilter.test(val));   
    }
	
function IsValidForeignerContact(val) {
    var numberFilter=/^\d{0,}$/;//validate eleven digit numbers only
    return(numberFilter.test(val));   
    }

function IsValidPhone(val) {
        var phformat1=/^\92-\d{3}-\d{7}$/;
        var phformat2=/^\92 \d{3} \d{7}$/;
        if(phformat1.test(val) || phformat2.test(val))
            return true;
        else
            return false;    
    }

function IsValidEmail(value) {
    var emailFilter=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[(2([0-4]\d|5[0-5])|1?\d{1,2})(\.(2([0-4]\d|5[0-5])|1?\d{1,2})){3} \])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return(emailFilter.test(value));
}
function IsValidIPAddress(value){
     var ipFilter=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;//validation for ip address xxx.xxx.xxx.xxx
     return(ipFilter.test(value));
 }
 function IsPassword(value){
     var passwordFilter=/^[A-Za-z]\w{6,}[A-Za-z]$/ ; //password must be 8 characters length,start and end must be letters
     return(passwordFilter.test(value));
 }
function IsNumber(value) {
    var numberFilter=/^\d{0,}$/;
    return(numberFilter.test(value));//number validation,check whether given value numbe ror not
}
function IsNumberAlt(value) {
    var numberFilter=/^[-+]?\d+(\.\d+)?$/;//number validation,check whether given value numbe ror not
    return(numberFilter.test(value));
}
function trimString(value) {
    return value.replace(/^\s*/, "").replace(/\s*$/, "");//trim before after field spaces
}
function IsNumber1(value) {
    var numberFilter=/^\d{0,6}$/;//check for numbers b/w 0-6
    return(numberFilter.test(value));
}
function IsNumber4(value) {
    var numberFilter=/^\d{4}$/;//validate b/w o-9999 only
    return(numberFilter.test(value));
}
function IsNumber5(value) {
    var numberFilter=/^\d{5}$/;//validate upto five digit numbers only
    return(numberFilter.test(value));
}
function IsNumber6(value) {
    var numberFilter=/^\d{6}$/;//validate upto six digit numbers only
    return(numberFilter.test(value));
}
function IsNumericNumbers(value) {
    var numberFilter=/^\d{1,}$/;//validate upto six digit numbers only
    return(numberFilter.test(value));
}
function IsNumber13(value) {
    var numberFilter=/^\d{13}$/;//validate thirteen digit numbers only
    return(numberFilter.test(value));
}	
function IsNumber16(value) {
    var numberFilter=/^\d{16}$/;//validate upto sixteen digit numbers only
    return(numberFilter.test(value));
}	
function IsNumber17(value) {
    var numberFilter=/^\d{17}$/;//validate upto seventeen digit numbers only
    return(numberFilter.test(value));
}		

function  IsAlphabets(value) {
var numberFilter=/^[a-zA-Z ]{1,}$/ ;//allow alphabets only
    return(numberFilter.test(value));
}


function isValidName(value) {
var numberFilter=/^[a-zA-Z ]{1,}$/ ;//allow alphabets only
    return(numberFilter.test(value));
}

function IsValidOccupation(value) {
    var numberFilter=/^[a-zA-Z_., ()]{1,}$/ ;//allow alphabets only
    return(numberFilter.test(value));
}

function IsAlphaNumeric(value) {
    var numberFilter=/^[a-zA-Z0-9]{1,}$/;//allow alpha numrics only
    return(numberFilter.test(value));
}
function IsValidText(value) {
    var numberFilter=/^[-a-zA-Z0-9,_. ]{0,}$/;//allow valid text
    return(numberFilter.test(value));
}
function IsValidText_WithoutSpace(value) {
    var numberFilter=/^[-a-zA-Z0-9,_.@]{0,}$/;//allow valid text without space 
    return(numberFilter.test(value));
}
function checkPercent(value) {
    var pexp = /^\d{0,3}(\.\d{0,2})?$///check for percent
    if (value && !pexp.test(value)) {
        return(false);
    }
    else {
        if(value > 100)
            return(false);
    }
    return (true);
}

function IsValidMac(value) {
    var dateFilter=/^[a-fA-F0-9]{2}[-][a-fA-F0-9][-][a-fA-F0-9]{2}[-][a-fA-F0-9]{2}[-][a-fA-F0-9]{2}[-][a-fA-F0-9]{2}$/;
    return(dateFilter.test(value));//check for mac xx.xx.xx.xx.xx
}
function IsValidZipCode(value) {
   var zipFilter = /^\d{7}?$/;//check for valid zip code
  // return (zipFilter.test(value));
  return true;
}

function IsValidExpiry(value) 
{
    var expFilter = /^\d{2}[/]\d{2}$/;
    if(expFilter.test(value)) 
    {
        //check for mm/yy formt
        monthpart = value.substring(0,2)
        yearpart = value.substring(3)
        if(checkForYear(yearpart) && checkforMonth(monthpart)) 
        {
                var dt= new Date();
                var thisyear = dt.getFullYear();
                thisyear = "" + thisyear;
                if(yearpart == thisyear.substring(2))
                {
                    var thismonth = dt.getMonth();
                    thismonth=thismonth+1;
                    if(parseInt(monthpart) <  thismonth)
                    {
                        return false;
                    }
                    else
                    {
                        return true;
                    }
                }
                else 
                {
                    return true;
                }
        }
        else 
        {
            return(false);
        }
    }
    else
    {
        return false;
    }
}    
    function checkforMonth(val) {
        if(parseInt(val) < 12 ) 
            return true
        else 
            return false
    }
    
    function checkForYear(val){
     var strYear = val;
     var datNow = new Date();
     var intYear = datNow.getFullYear()
     if(strYear.length==2) {
        if (parseInt(strYear) > 40){
          strYear = "19" + strYear;
          
          }
          else {
            intYear = "" + intYear;
            strYear = intYear.substring(0,2) + strYear;
            
          }
     }
     if(parseInt(strYear) < parseInt(intYear)){
          
          return false;
     }
     return true;
}


function showMessageDiv(field, msg) {
    $(field).parent('div').find('p.validationmsg').html(msg).show('slow');
    field.focus();
}
function showMessage(field, msg) {
    $(field).parent('td').find('p.validationmsg').html(msg).show('slow');
    field.focus();
}
function showMessage(field, msg, focustrue) {
    $(field).parent('td').find('p.validationmsg').html(msg).show('slow');
    //field.focus();
}
function ValidateContactPRForm(frm) {
    $('p.validationmsg').hide();
    if(frm.txtfirstName.value == '') {
        showMessage(frm.txtfirstName, 'Please Enter Your Name');
        return(false);
    }

    if(frm.txtEmailId.value == '') {
        showMessage(frm.txtEmailId, 'Please enter your email ID');
        return(false);
    }
    if(!IsValidEmail(frm.txtEmailId.value)) {
        showMessage(frm.txtEmailId, 'Please enter a valid email ID');
        return(false);
    }
    if(frm.txtEmailId.value == frm.txtConfirmId.value ){
        //
    } else {
        showMessage(frm.txtConfirmId, 'Please confirm your id');
        return(false);
    }

    return(true);
}

function ValidateContactform(frm) {
    $('p.validationmsg').hide();
    if(frm.txtfirstName.value == '') {
        showMessage(frm.txtfirstName, 'Please Enter Your Name');
        return(false);
    }

    if(!IsAlphabets(frm.txtfirstName.value) ) {
        showMessage(frm.txtfirstName, 'Please Enter Name in English');
        return(false);
    }

    if(frm.txtlastName.value == '') {
        showMessage(frm.txtlastName, 'Please enter your Last name');
        return(false);
    }

    if(!IsAlphabets(frm.txtlastName.value) ) {
        showMessage(frm.txtlastName, 'Please Enter Name in English');
        return(false);
    }

    if(!IsNumber(frm.txtmobileNumber.value) ) {
        showMessage(frm.txtmobileNumber, 'Please Enter numbers only');
        return(false);
    }

    if(!IsValidText(frm.txtCompany.value) ) {
        showMessage(frm.txtCompany, 'Please Enter Name in English');
        return(false);
    }

    if(!IsValidText(frm.txtCity.value) ) {
        showMessage(frm.txtCity, 'Please Enter city in English');
        return(false);
    }

    if(frm.selectCountry.value == '') {
        showMessage(frm.selectCountry, 'Please select country');
        return(false);
    }

    if(frm.txtEmailId.value == '') {
        showMessage(frm.txtEmailId, 'Please enter your email ID');
        return(false);
    }

    if(!IsValidEmail(frm.txtEmailId.value)) {
        showMessage(frm.txtEmailId, 'Please enter a valid email ID');
        return(false);
    }
    if(frm.txtEmailId.value == frm.txtConfirmId.value ){
        //
    } else {
        showMessage(frm.txtConfirmId, 'Please confirm your id');
        return(false);
    }

    if(!IsValidText(frm.txtAddress.value) ) {
        showMessage(frm.txtAddress, 'Enter Address in English');
        return(false);
    }
    if(!IsValidText(frm.comments.value) ) {
        showMessage(frm.comments, 'Enter Comments in English');
        return(false);
    }

    return(true);
}
function ValidateRequestContactform(frm) {
    $('p.validationmsg').hide();
    if(frm.first_name.value == '') {
        showMessage(frm.first_name, 'Please enter your first Name');
        return(false);
    }

    if(frm.last_name.value == '') {
        showMessage(frm.last_name, 'Please enter your last Name');
        return(false);
    }

    if(frm.email_id.value == '') {
        showMessage(frm.email_id, 'Please enter your email ID');
        return(false);
    }

    if(!IsValidEmail(frm.email_id.value)) {
        showMessage(frm.email_id, 'Please enter a valid email ID');
        return(false);
    }

    if(frm.mob_number.value == '') {
        showMessage(frm.mob_number, 'Please enter your mobile number');
        return(false);
    }

    if(frm.city.value == '') {
        showMessage(frm.city, 'Please enter your City');
        return(false);
    }

    if(frm.address.value == '') {
        showMessage(frm.address, 'Please enter your Adress');
        return(false);
    }
}
function ValidateContactCCform(frm) {
    $('p.validationmsg').hide();
    if(frm.first_name.value == '') {
        showMessage(frm.first_name, 'Please Enter Your Name');
        return(false);
    }

    if(frm.last_name.value == '') {
        showMessage(frm.last_name, 'Please Enter Your Name');
        return(false);
    }


    if(frm.email_id.value == '') {
        showMessage(frm.email_id, 'Please Enter Your email ID');
        return(false);
    }

    if(!IsValidEmail(frm.email_id.value)) {
        showMessage(frm.email_id, 'Please enter a valid email ID');
        return(false);
    }

    if(frm.mob_number.value == '') {
        showMessage(frm.mob_number, 'Please select Mobile Number');
        return(false);
    }

    if(frm.city.value == '') {
        showMessage(frm.city, 'Please Enter Your City');
        return(false);
    }

    if(frm.address.value == '') {
        showMessage(frm.address, 'Please Enter Your Adress');
        return(false);
    }
    return(true);
}

/* This fuction is to validate the login Page(login.jsp). */
function validateLoginForm(frm) {
    $('p.validationmsg').hide();	// Hide the Validation Message DIV tag for the total page..
    frm.username.value = trimString(frm.username.value);  // trim leading and tailing spaces.

    //Check user entered the user name or not
    if(frm.username.value == '') {
        showMessage(frm.username, 'Please enter your user name');
        return(false);
    }

    //Check user name has strings or not
    /*if(!IsAlphabets(frm.username.value)) {
        showMessage(frm.username, 'User Name should accept strings only');
        return(false);
    }*/

    frm.password.value = trimString(frm.password.value); // trim leading and tailing spaces.
    //Check user entered password or not				
    if(frm.password.value == '') {
        showMessage(frm.password, 'Please enter password');
        return(false);
    }

    //check password has alpha numeric or not
    /*if(!IsValidText(frm.password.value)){
        showMessage(frm.password,'Password should contain alpha numeric only');
        return(false);
    }*/
    return(true);
}	


function validateUsernameForm(frm) {
    $('p.validationmsg').hide();
    if(frm.user_name.value == '') {
        showMessage(frm.user_name, 'Please enter your User ID');
        return(false);
    }

    if(!IsValidEmail(frm.user_name.value)) {
        showMessage(frm.user_name, 'Please enter a valid user ID');
        return(false);
    }

    return(true);
}	
function validateSecretQAForm(frm) {
    $('p.validationmsg').hide();
    if(frm.secret_answer.value == '') {
        showMessage(frm.secret_answer, 'Please enter secret answer');
        return(false);
    }

    return(true);
}


/* This fuction is to validate the Modify Personal Info Page(changepinfo.jsp). */
function validateChangePersonalnfoForm(frm) {
    $('p.validationmsg').hide();// Hide the Validation Message DIV tag for the total page..

    frm.txtDateofbirth.value = trimString(frm.txtDateofbirth.value);  // trim leading and tailing spaces.
    //check user entered the date of birth or not
    if(frm.txtDateofbirth.value == '') {
        showMessage(frm.txtDateofbirth, 'Please select Date of Birth');
        return(false);
    }

   if(!isValidDateFormat(frm.txtDateofbirth.value)) {
		showMessage(frm.txtDateofbirth,'accpepted format: dd/mm/yyyy.');
        return(false);
   }

    //check the dob in dd/mm/yyyy format or not 
    if(!isValidDate(frm.txtDateofbirth.value)) {
        showMessage(frm.txtDateofbirth,'Please Enter valid Date');
        return(false);
    }

    var dts = frm.txtDateofbirth.value;
    var dt = Date.fromString(dts)
    var today = new Date();
    //check the dob is less than the current date or not
    if(dt >= today) {
        showMessage(frm.txtDateofbirth,'Please Enter valid Date');
        return(false);
    }

    frm.email.value = trimString(frm.email.value);  // trim leading and tailing spaces.
    //check user entered the email or not
    if(frm.email.value == '') {
        showMessage(frm.email, 'Please enter your email ID');
        return(false);
    }

    //check the email is in correct format or not
    if(!IsValidEmail(frm.email.value)) {
        showMessage(frm.email, 'Please enter a valid email ID');
        return(false);
    }

    /*var txtCtrl = document.getElementById("cnic");// trim leading and tailing spaces.
	txtCtrl.value = trimString(txtCtrl.value);*/

	
	if(!IsNumber13(frm.cnic.value)) {
		//alert(frm.cnic.value);
		
		var txtCtrl = document.getElementById("homephone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value == '') {
		 showMessage(txtCtrl, 'Please Enter Your Home Phone e.g. 0[9 or 10 digits]');
		 return(false);
		}
		if(txtCtrl.value != '') {
			if(!IsValidHome(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Home Phone e.g. 0[9 or 10 digits]");
				return(false);
			}
		}
		txtCtrl = document.getElementById("workphone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value != '') {
			if(!IsValidHome(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Work Phone e.g. 0[9 or 10 digits]");
				return(false);
			}
		}

		txtCtrl = document.getElementById("faxphone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value != '') {
			if(!IsValidHome(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Fax Phone e.g. 0[9 or 10 digits]");
				return(false);
			}
		}

		txtCtrl = document.getElementById("mobilephone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value == '') {
		 showMessage(txtCtrl, 'Please Enter Your Mobile Phone e.g. 0[9 or 10 digits]');
		 return(false);
		}
		if(txtCtrl.value != '') {
			if(!IsValidMobile(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Mobile Number e.g. 0[9 or 10 digits]");
					return(false);
			}
		}
	}else{
		var txtCtrl = document.getElementById("homephone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value == '') {
			showMessage(txtCtrl, 'Please Enter Your Home Phone e.g. 05182503401');
			return(false);
		 }
		if(txtCtrl.value != '') {
			if(!IsValidForeignerContact(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Home Phone e.g. 05182503401");
				return(false);
			}
		}	
		
		txtCtrl = document.getElementById("workphone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value != '') {
			if(!IsValidForeignerContact(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Work Phone e.g. 05182503401");
				return(false);
			}
		}

		txtCtrl = document.getElementById("faxphone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value != '') {
			if(!IsValidForeignerContact(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Fax Phone e.g. 05182503401");
				return(false);
			}
		}

		txtCtrl = document.getElementById("mobilephone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value == '') {
			showMessage(txtCtrl, 'Please Enter Your Mobile Number e.g. 03015500958');
			return(false);
		}
		if(txtCtrl.value != '') {
			if(!IsValidForeignerContact(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Mobile Number e.g. 03015500958");
				return(false);
			}
		}
	
	}

	
    frm.title.value = trimString(frm.title.value);  // trim leading and tailing spaces.
    //check the occupation has string or not
    if(!isValidTitle(frm.title.value) && (frm.title.value)!= '') {
        showMessage(frm.title, 'Job title does not accept any special characters.');
        return(false);
    }

    frm.company.value = trimString(frm.company.value);  // trim leading and tailing spaces.
    //check the company has string or not
    if(!isValidOrganization(frm.company.value)&& (frm.company.value)!= '') {
        showMessage(frm.company, 'Organization does not accept any special characters.');
        return(false);
    }

    return(true);
}

function validateChangeEmailForm(frm) {
    if(frm.email_address.value == '') {
        showMessage(frm.email_address, 'Please enter your email ID');
        return(false);
    }
    if(!IsValidEmail(frm.email_address.value)) {
        showMessage(frm.email_address, 'Please enter a valid email ID');
        return(false);
    }

    return(true);
}

function validateChangeAddForm(frm) {
    $('p.validationmsg').hide();
    if(frm.bank) {
        if(frm.bank.value == "") {
            showMessage(frm.bank, 'Enter Bank Code.');
            return(false);
        }
        if(!IsNumber(frm.bank.value) ) {
            showMessage(frm.bank, 'Please Enter Your Sixteen digit Financial Institution Number');
            return(false);
        }
    }
    if(frm.account_num) {
        if(frm.account_num.value == "") {
            showMessage(frm.account_num, 'Enter Account Number.');
            return(false);
        }

        if(!IsNumber(frm.account_num.value) ) {
            showMessage(frm.account_num, 'Please Enter Your Seventeen Digit Account Number');
            return(false);
        }
    }
    if(frm.debitnum) {
        if(frm.debitnum.value == ''){
            showMessage(frm.debitnum, 'Please Enter Your Card Number');
            return(false);
        }

        if(!IsNumber(frm.debitnum.value) ) {
            showMessage(frm.debitnum, 'Please Enter Your Sixteen digit Card Number');
            return(false);
        }
    }
    if(frm.cv) {
        if(frm.cv.value == ''){
            showMessage(frm.cv, 'Please Enter Your CVV Number');
            return(false);
        }

        if(!IsNumber(frm.cv.value) ) {
            showMessage(frm.cv, 'Please Enter Your Four Digit CVV Number');
            return(false);
        }
    }
    if(frm.debitexp) {
        if(frm.debitexp.value == '') {
            showMessage(frm.debitexp, 'Please Enter Your Card Expiration Date (MM/YY)');
            return(false);
        }

        if(!IsValidExpiry(frm.debitexp.value)) {
            showMessage(frm.debitexp, 'Please Enter Your Card Expiration Date (MM/YY)');
            return(false);
        }
    }
    var today = new Date();
    var dts = frm.debitexp.value;
    var parts = dts.split('/');

    if(frm.invoice_name) {
        if(frm.invoice_name.value == '') {
            showMessage(frm.invoice_name, 'Please Enter Your Billing Name');
            return(false);
        }	

        if(!IsAlphabets(frm.invoice_name.value) ) {
            showMessage(frm.invoice_name, 'Billing Name should accept strings only');
            return(false);
        }

        if(frm.bill_address1.value == '') {
            showMessage(frm.bill_address1, 'Please Enter Your Street Address');
            return(false);
        }


        if(!IsValidText(frm.bill_address1.value) ) {
            showMessage(frm.bill_address1, 'Address should accept strings only');
            return(false);
        }

        if(frm.bill_city.value == '') {
            showMessage(frm.bill_city, 'Please Enter Your City');
            return(false);
        }

        if(!IsAlphabets(frm.bill_city.value) ) {
            showMessage(frm.bill_city, 'City should accept strings only');
            return(false);
        }

        if(frm.bill_state.value == '') {
            showMessage(frm.bill_state, 'Please Select Your State');
            return(false);
        }

        if(!IsAlphabets(frm.bill_state.value) ) {
            showMessage(frm.bill_state, 'State should accept strings only');
            return(false);
        }
		
		frm.bill_zip.value = trimString(frm.bill_zip.value);
       /* if(frm.bill_zip.value == '') {
            showMessage(frm.bill_zip, 'Please Enter Your Zip Code');
            return(false);
        }
		*/
		 if(frm.bill_zip.value != '') {
        if(!IsValidZipCode(frm.bill_zip.value) ) {
            showMessage(frm.bill_zip, 'Please Enter Valid Zip Code');
            return(false);
        }
		 }
        if(frm.inv_email.value == '') {
            showMessage(frm.inv_email, 'Please Enter Your E-Mail');
            return(false);
        }

        if(!IsValidEmail(frm.inv_email.value) ) {
            showMessage(frm.inv_email, 'Email should be in xx@xx.xxx format only');
            return(false);
        }
    }
    return(true);
}

/* This fuction is to validate the T-Pin Page(resettpin.jsp). */
function validateTPinForm(frm) {
    $('p.validationmsg').hide();// Hide the Validation Message DIV tag for the total page..
    frm.tpin.value = trimString(frm.tpin.value);  // trim leading and tailing spaces.
    //check user entered the t-pin or not
    if(frm.tpin.value == '') {
        showMessage(frm.tpin, 'Please enter your T-PIN');
        return(false);
    }

    //check t-pin should have four digits or not
    if(!IsNumber4(frm.tpin.value) ) {
        showMessage(frm.tpin, 'T-PIN should accept four digits only.');
        return(false);
    }
    return(true);
}

/* This fuction is to validate the change password Page(chpwd.jsp). */
function validateChangePWDForm(frm) {
    $('p.validationmsg').hide();
    var listofser = frm.txtlists.value;
    var flag=false;
    for(i=0;i<listofser;i++)
    {
            //check corresponding check box is checked or not
        if (eval('frm.checkbox'+i+'.checked') == true){
            flag=true	

            //check user entered the new password or not
			var newpwd = eval('frm.new_passwd'+i+'.value')
				newpwd = trimString(newpwd);
            if( newpwd == '') {
                showMessage(eval('frm.new_passwd'+i), 'Please Enter Your New Password');
                return(false);
            }

                    var telcopoid= eval('frm.ipsvspoid_'+i+'.value');
               var telco=telcopoid.substring(7);
               if(telco.match("/service/telco")) {
                  var newpwd1 = eval('frm.new_passwd'+i+'.value')
		newpwd1 = trimString(newpwd1);    
          if(!IsNumber(newpwd1) ) {
             showMessage(eval('frm.new_passwd'+i), 'Please Enter Only Numbers');
             return(false);
              }
           if(!IsNumber16(newpwd1)) {
                showMessage(eval('frm.new_passwd'+i), 'Password Should be of 16 digit');
                  return(false);               
            }   
                
                  
           }
			var newpwdconfirm = eval('frm.confirm'+i+'.value');
			newpwdconfirm = trimString(newpwdconfirm)
            //check user entered the confirm password or not
            if( newpwdconfirm == '') 
            {
                showMessage(eval('frm.confirm'+i), 'Please Enter Confirm New Password');
                return(false);
            }

            //check new password and confirm password are same or not
            if(newpwdconfirm != newpwd) {
                showMessage(eval('frm.confirm'+i), 'Your passwords do not match.');
                return (false);
            }
        }
    }
    if(flag==false){
        alert('You didn\'t choose any of the checkboxes,Please choose your services, for which you are going to change the password.');
        return(false);
    }

    return(true);
}
/* This fuction is to validate the payment history Page(PayHistory.jsp). */
function validatePayHistory(frm) {
    $('p.validationmsg').hide();
    frm.startdt.value = trimString(frm.startdt.value);  // trim leading and tailing spaces.
    //check start date entered or not
    if(frm.startdt.value == '') {
        showMessage(frm.startdt, 'Please select start date');
        return(false);
    }

	if(!isValidDateFormat(frm.startdt.value)) {
		 showMessage(frm.startdt,'valid format: DD/MM/YYYY');
        return(false);
	}

    //check start date is in dd/mm/yyyy format or not
    if(!isValidDate(frm.startdt.value)) {
        showMessage(frm.startdt,'Please enter valid date');
        return(false);
    }

    frm.enddt.value = trimString(frm.enddt.value);  // trim leading and tailing spaces.
    //check end date entered or not
    if(frm.enddt.value == '') {
        showMessage(frm.enddt, 'Please Select End Date');
        return(false);
    }

	if(!isValidDateFormat(frm.enddt.value)) {
		 showMessage(frm.enddt,'valid format: DD/MM/YYYY');
        return(false);
	}

    //check end date is in dd/mm/yyyy format or not
    if(!isValidDate(frm.enddt.value)) {
        showMessage(frm.enddt,'Please Enter valid End Date');
        return(false);
    }

    var edt = Date.fromString(frm.enddt.value);
    var sdt = Date.fromString(frm.startdt.value);

    if(sdt.getMonth().value<0 && sdt.getMonth().value>11){ return(false); }

    if(sdt == 'NaN' ){showMessage(frm.startdt,'Enter date in DD/MM/YYYY formate only'); return(false);}

    if(edt == 'NaN' ){showMessage(frm.enddt,'Enter date in DD/MM/YYYY formate only'); return(false);}

    
    //check start date is less than the end date
    if ( sdt > edt ){
        showMessage(frm.startdt,'Start Date is greater than End Date');
        return(false);
    }
    return(true);
}



function validateUsageHistory(frm) {
    $('p.validationmsg').hide();
    frm.startdt.value = trimString(frm.startdt.value);  // trim leading and tailing spaces.
    //check start date entered or not
     alert("validateUsageHistory");
    if(frm.startdt.value == '') {
        showMessage(frm.startdt, 'Please select start date');
        return(false);
    }

	if(!isValidDateFormat(frm.startdt.value)) {
		 showMessage(frm.startdt,'valid format: DD/MM/YYYY');
        return(false);
	}

    //check start date is in dd/mm/yyyy format or not
    if(!isValidDate(frm.startdt.value)) {
        showMessage(frm.startdt,'Please enter valid date');
        return(false);
    }

    frm.enddt.value = trimString(frm.enddt.value);  // trim leading and tailing spaces.
    //check end date entered or not
    if(frm.enddt.value == '') {
        showMessage(frm.enddt, 'Please Select End Date');
        return(false);
    }

	if(!isValidDateFormat(frm.enddt.value)) {
		 showMessage(frm.enddt,'valid format: DD/MM/YYYY');
        return(false);
	}

    //check end date is in dd/mm/yyyy format or not
    if(!isValidDate(frm.enddt.value)) {
        showMessage(frm.enddt,'Please Enter valid End Date');
        return(false);
    }

    var edt = Date.fromString(frm.enddt.value);
    var sdt = Date.fromString(frm.startdt.value);

    if(sdt.getMonth().value<0 && sdt.getMonth().value>11){ return(false); }

    if(sdt == 'NaN' ){showMessage(frm.startdt,'Enter date in DD/MM/YYYY formate only'); return(false);}

    if(edt == 'NaN' ){showMessage(frm.enddt,'Enter date in DD/MM/YYYY formate only'); return(false);}

    var today_date = new Date();
    var diff_date = sdt - today_date;
    var num_years = diff_date/31536000000;
    
    var num_months = (diff_date % 31536000000)/2628000000;
    var num_days = ((diff_date % 31536000000) % 2628000000)/86400000;
    num_months = ((num_years) *12)
    
    if(num_months < - 6) {
        showMessage(frm.startdt,'Start date cannot be 6 months before date.');
        return(false);
    }
    
    //check start date is less than the end date
    if ( sdt > edt ){
        showMessage(frm.startdt,'Start Date is greater than End Date');
        return(false);
    }
      // Below content added on 15th-feb-2010 */  
    var noofdaysdiff = edt - sdt;
	noofdaysdiff = Math.round(noofdaysdiff/1000/60/60/24);
	if(noofdaysdiff > 30) {
		alert('Only 30days Usage History can be viewed at any point of time');
		return(false);
	}



    return(true);
}

function validateVoucherTopUpForm(frm) {
    $('p.validationmsg').hide();

    if(frm.tf_voucher_id.value == '') {
        showMessage(frm.tf_voucher_id, 'Please Select Voucher Id');
        return(false);
    }
    if(!IsAlphaNumeric(frm.tf_voucher_id.value) ) {
        showMessage(frm.tf_voucher_id, 'No special characters allowed');
        return(false);
    }
    if(frm.tf_voucher_pin.value == '') {
        showMessage(frm.tf_voucher_pin, 'Please Select Voucher Pin');
        return(false);
    }
    if(!IsNumber(frm.tf_voucher_pin.value) ) {
        showMessage(frm.tf_voucher_pin, 'Please Enter Numbers Only');
        return(false);
    }
    if(!IsNumber6(frm.tf_voucher_pin.value) ) {
        showMessage(frm.tf_voucher_pin, 'Please Enter Six Digit PinF');
        return(false);
    }

    return(true);
}

/* This fuction is to validate the new account Page(NewAccount.jsp). */
function validateNewAccountForm(frm) {
    $('p.validationmsg').hide();
    frm.firstname.value = trimString(frm.firstname.value);  // trim leading and tailing spaces.
    //check user entered the first name or not 	
    if(frm.firstname.value == '') {
        showMessage(frm.firstname,'Please Enter Your First Name');
        return(false);
    }

    //check first name has the string or not
    if(!isValidName(frm.firstname.value) ) {
        showMessage(frm.firstname, 'First Name should accept strings only');
        return(false);
    }

    frm.middlename.value = trimString(frm.middlename.value);  // trim leading and tailing spaces.
    //check middle name has the string or not
    if(!isValidName(frm.middlename.value) && frm.middlename.value != '') {
        showMessage(frm.middlename, 'Middle Name should accept strings only');
        return(false);
    }

    frm.lastname.value = trimString(frm.lastname.value);  // trim leading and tailing spaces.
    //check user entered the last name or not 	
    if(frm.lastname.value == ''){
        showMessage(frm.lastname,'Please Enter Your Last Name');
        return(false);
    }

    //check last name has string or not
    if(!isValidName(frm.lastname.value) ) {
        showMessage(frm.lastname, 'Last Name should accept strings only');
        return(false);
    }

    frm.email.value = trimString(frm.email.value);  // trim leading and tailing spaces.
    //check user entered the email or not
    if(frm.email.value == ''){
        showMessage(frm.email, 'Please Enter Your e-mail');
        return(false);
    }

    //check email is in correct format or not
    if(!IsValidEmail(frm.email.value)) {
        showMessage(frm.email, 'Please Enter Your Valid e-mail');
        return(false);
    }

	if( (frm.business_type.options[frm.business_type.selectedIndex].value == "1")  || (frm.business_type.options[frm.business_type.selectedIndex].value == "5")) {	

    frm.identity.value = trimString(frm.identity.value);  // trim leading and tailing spaces.
    //check user entered his cnic/passport or not
    if(frm.nationality.options[frm.nationality.selectedIndex].value == 1 && frm.identity.value=='' ){
        showMessage(frm.identity, 'Please Enter Your CNIC Number');
        return(false);
    }
	if(frm.nationality.options[frm.nationality.selectedIndex].value == 2 && frm.identity.value=='' ){ 
        showMessage(frm.identity, 'Please Enter Your Passport Number');
        return(false);		
    }
	if(! isValidCNIC( frm.identity.value, frm.nationality.options[frm.nationality.selectedIndex].value )) {
		if( frm.nationality.options[frm.nationality.selectedIndex].value == "1") {
				 showMessage(frm.identity, 'CNIC Format Expected: 0000000000000(13 digits)');
		        return(false);
		}
		if( frm.nationality.options[frm.nationality.selectedIndex].value == "2") {
				 showMessage(frm.identity, 'Please enter valid passport no.');
		        return(false);
		}
	}
    //check for dupilcate check done or not
    if(frm.txtDuplicateChk.value == '') {
        showMessage(frm.identity,"Please click on the 'Verify Identity' button to validate the User identity");
        return (false);
    }
	} else {
		// validations for corporate accounts
		frm.NTN.value = trimString(frm.NTN.value);
		if(frm.NTN.value == '' ) {
		 showMessage(frm.NTN,"Please enter NTN value");
		 return (false);
		}
	    //check for dupilcate check done or not
		if(frm.txtDuplicateChk.value == '') {
			showMessage(frm.identity,"Please click on the 'Verify Identity' button to validate the User identity");
			return (false);
		}
	}
    //check for blocked account
    if(frm.txtDuplicateChk.value == 'DUPLICATE' || frm.txtDuplicateChk.value == 'BLOCKED'  ) {
        showMessage(frm.identity,"User with this identity already exists / user is blocked. You cannot create account for this user.");
        return(false);
    }

	//basing on national/foreigner home and mobile number validations
	if(frm.nationality.options[frm.nationality.selectedIndex].value == 1){
		
		var txtCtrl = document.getElementById("homephone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value == '') {
			showMessage(txtCtrl, 'Please Enter Your Home Phone e.g. 0[9 or 10 digits]');
			return(false);
		}
		if(txtCtrl.value != '') {
			if(!IsValidHome(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Home Phone e.g. 0[9 or 10 digits]");
				return(false);
			}
		}
		
		txtCtrl = document.getElementById("workphone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value != '') {
			if(!IsValidHome(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Work Phone e.g. 0[9 or 10 digits]");
				return(false);
			}
		}
		
		txtCtrl = document.getElementById("faxphone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value != '') {
			if(!IsValidHome(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Fax Phone e.g. 0[9 or 10 digits]");
				return(false);
			}
		}
		
		txtCtrl = document.getElementById("mobilephone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value == '') {
			showMessage(txtCtrl, 'Please Enter Your Mobile Number e.g. 0[9 or 10 digits]');
			return(false);
		}
		if(txtCtrl.value != '') {
			if(!IsValidMobile(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Mobile Number e.g. 0[9 or 10 digits]");
				return(false);
			}
		}

	}else{
		var txtCtrl = document.getElementById("homephone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value == '') {
			showMessage(txtCtrl, 'Please Enter Your Home Phone e.g. 05182503401');
			return(false);
		 }
		if(txtCtrl.value != '') {
			if(!IsValidForeignerContact(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Home Phone e.g. 05182503401");
				return(false);
			}
		}	
		
		txtCtrl = document.getElementById("workphone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value != '') {
			if(!IsValidForeignerContact(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Work Phone e.g. 05182503401");
				return(false);
			}
		}

		txtCtrl = document.getElementById("faxphone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value != '') {
			if(!IsValidForeignerContact(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Fax Phone e.g. 05182503401");
				return(false);
			}
		}

		txtCtrl = document.getElementById("mobilephone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value == '') {
			showMessage(txtCtrl, 'Please Enter Your Mobile Number e.g. 03015500958');
			return(false);
		}
		if(txtCtrl.value != '') {
			if(!IsValidForeignerContact(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Mobile Number e.g. 03015500958");
				return(false);
			}
		}
	
	}


    frm.txtDateofbirth.value = trimString(frm.txtDateofbirth.value);  // trim leading and tailing spaces.
    //check user entered the dob or not
    if(frm.txtDateofbirth.value == ''){
        showMessage(frm.txtDateofbirth, 'Please Enter Your Date Of Birth');
        return(false);
    }
    if(!isValidDateFormat(frm.txtDateofbirth.value)) {
        showMessage(frm.txtDateofbirth,'Invalid date format. Accepted Format is: DD/MM/yyyy.');
        return(false);
    }
    //check the dob in dd/mm/yyyy format or not 
    if(!isValidDate(frm.txtDateofbirth.value)) {
        showMessage(frm.txtDateofbirth,'Please Enter valid Date.');
        return(false);
    }

    var dts = frm.txtDateofbirth.value;
    var dt = Date.fromString(dts)
    var today = new Date();
                //check the dob is less than the current date
    if(dt >= today) {
        showMessage(frm.txtDateofbirth,'Please Enter valid Date of Birth in DD/MM/yyyy format');
        return(false);
    }

    frm.title.value = trimString(frm.title.value);
	frm.company.value = trimString(frm.company.value);
    //check occupation has strings or not
	if ((frm.business_type.options[frm.business_type.selectedIndex].value == "1") ||  (frm.business_type.options[frm.business_type.selectedIndex].value == "5")){
	    if(!isValidTitle(frm.title.value) &&  frm.title.value != '') {
		    showMessage(frm.title,'Job tile should accept strings only');
			return(false);
	    }

		
	    //check organization has strings or not
		if(!isValidOrganization(frm.company.value) &&  frm.company.value != '') {
			showMessage(frm.company,'Organization should accept strings only');
	        return(false);
		}
	} else {
		if( frm.title.value == '') {
				showMessage(frm.title,'Please enter Job title.');
				return(false);
		}
		if(!isValidTitle(frm.title.value) &&  frm.title.value != '') {
		    showMessage(frm.title,'Job tile should accept strings only');
			return(false);
	    }
		if(frm.company.value == '') {
			showMessage(frm.title,'Please enter your Company name.');
				return(false);
		}
		if(!isValidOrganization(frm.company.value) &&  frm.company.value != '') {
			showMessage(frm.company,'Organization should accept strings only');
	        return(false);
		}
		frm.identity.value = frm.NTN.value ;
		frm.SUB_ID.value = trimString(frm.SUB_ID.value);
		if(frm.SUB_ID.value != '')
				frm.identity.value = frm.identity.value + "-" + frm.SUB_ID.value;
	}

    //check contract period selected or not 
    if(frm.contract_period.value == '') {
        showMessage(frm.contract_period,'Please Enter contract period in month(s)');
        return(false);
    }

    //check contract period selected or not 
    if(frm.contract_period.selectedIndex == 0) {
        showMessage(frm.contract_period,'Please select contract period in month(s)');
        return(false);
    }
    updatepkgdetails(frm.contract_period);
    //check contract end entered or not      
    if(frm.contract_end.value == '') {
        showMessage(frm.contract_period,'Please enter proper contract end date');
        return(false);
    }

    
    if(frm.bill.selectedIndex == 0 ) {
        frm.execptpercent.value = 0;
        frm.execpttype.selectedIndex = 0;
    } else {
    
    frm.execptpercent.value = trimString(frm.execptpercent.value);
    if(frm.execptpercent.value == '') {
        showMessage(frm.execptpercent,'Please Enter exemption percentage');
        return(false);
    }

    if(!checkPercent(frm.execptpercent.value)) {
        showMessage(frm.execptpercent,'Please Enter valid exemption percentage');
        return(false);
    }
    }
    //check service login type selected or not
    if(frm.svslogintype.selectedIndex == 0) {
        showMessage(frm.svslogintype,'Please select service login type');
        return(false);
    }

if(frm.planselected.options.length < 1)  {
    document.getElementById("divnumberofplans").innerHTML = "You Cannot proceed with creating the account since there are no plans available with this list.";
    return(false);
}

if( frm.planselected.options.length > 0 )  {
    if(frm.planselected.selectedIndex < 0) {
        document.getElementById("divnumberofplans").innerHTML = "You Cannot proceed with creating the account since there are no plans available with this list.";
        return(false);
    }
    else {
        return(true);
    }
} else {
    document.getElementById("divnumberofplans").innerHTML = "You Cannot proceed with creating the account since there are no plans available with this list.";
    return(false);

}

}
/* This fuction is to validate the new account next Page(NewAccount_next.jsp). */
function  newAcctNext(frm) {
    $('p.validationmsg').hide();
    var voipLinesexists = false;
    var noofvoiplines = 0;
    var voipLineNumbers = "";
    var j=frm.val.value;
    for(i=0;i<j;i++)
    {
        //check service user name entered or not
        if(eval('frm.login_'+i+'.value') == "") {
            showMessage(eval('frm.login_'+i), 'Enter User Name.');
            return(false);
        }
        if(eval('frm.login_'+ i +'.text') == 'ip') {
        //check service user name has strings only
            if(!IsValidText_WithoutSpace(eval('frm.login_'+ i +'.value'))){
                showMessage(eval('frm.login_'+ i), 'Enter User Name properly.');
                return(false);
            }
        }
        //alert(eval('frm.login_'+ i +'.value'));
        //alert(eval('frm.login_'+ i +'.text'));
        
        if(eval('frm.login_'+ i +'.value').indexOf('/device/num') > 0) { 
            voipLinesexists = true;
            noofvoiplines = noofvoiplines + 1;
            if(voipLineNumbers.indexOf('**' + eval('frm.login_'+ i +'.value') + '**') > -1) {
                showMessage(eval('frm.login_'+ i), 'You cannot select the same voip line for both services');
                return(false);
            } else {   
                voipLineNumbers = voipLineNumbers + '**' + eval('frm.login_'+ i +'.value') + '**';
            }
            
        }
        
        //alert(voipLinesexists);
        //alert(noofvoiplines);

        //check password entered or not
        if(eval('frm.pin_'+ i +'.value') == "") {
            showMessage(eval('frm.pin_'+ i), 'Enter Password.');
            return(false);
        }

        //check password has alpha numeric only 
        if(!IsValidText_WithoutSpace(eval('frm.pin_'+ i +'.value'))){
            showMessage(eval('frm.pin_'+ i), 'Enter Password properly.');
            return(false);
        }

        //check confirm password entered or not
        if(eval('frm.pinv_'+ i+'.value') == "") {
            showMessage(eval('frm.pinv_'+ i), 'Enter Confirm Password.');
            return(false);
        }

        //check confirm password has alpha numeric only
        if(!IsValidText_WithoutSpace(eval('frm.pinv_' + i + '.value'))){
            showMessage(eval('frm.pinv_'+i), 'Enter Confirm Password properly.');
            return(false);
        }

        //check both password and confirm password are same or not
        if(eval('frm.pin_'+ i +'.value') != eval('frm.pinv_'+ i +'.value')) {
            showMessage(eval('frm.pin_'+ i), 'Your passwords do not match. Please type again.');
            return (false);
        }
    }

    //check mac address entered or not
    frm.macaddress.value=trimString(frm.macaddress.value);
	frm.serialnumber.value=trimString(frm.serialnumber.value);
    if(frm.macaddress.value == "" && frm.serialnumber.value == "") {
        showMessage(frm.macaddress, 'Enter MAC address of the device.');
        return(false);
    }
    /*
    if(!IsValidMac(frm.macaddress.value)) {
        showMessage(frm.macaddress, 'Enter MAC valid address of the device.');
        return(false);
    }
    */
    //check the get mac details done or not
    if(frm.MacStatus.value == "") {
        showMessage(frm.macaddress, 'Click on the Get MAC Device details.');
        return(false);
    }

    //check the mac is available or not
    if(frm.MacStatus.value != "NEW") {
        showMessage(frm.macaddress, 'You cannot associate this divice for the account.');
        return(false);
    }
    alert(voipLinesexists);
    if(voipLinesexists == true) {
        alert(frm.VoIPEnabled.value);
        if(frm.VoIPEnabled.value == false) {
            showMessage(frm.macaddress, 'This device is NOT VoIP Enabled.Selected plan contains VoIP Service you cannot associate device to this Account.');
            return(false);
        }
        if(frm.NoOfVoIpPorts.value < noofvoiplines) {
            showMessage(frm.macaddress, 'This device is supported for this plan as No of ports available is less than the No. of VoIP Services.');
            return(false);
        }
    }
    if(frm.bank) {
        if(frm.bank.value == "") {
            showMessage(frm.bank, 'Enter Bank Code.');
            return(false);
        }

        if(!IsNumber(frm.bank.value) ) {
            showMessage(frm.bank, 'Please Enter Your Sixteen digit Financial Institution Number');
            return(false);
        }
    }
    if(frm.account_num) {
        if(frm.account_num.value == "") {
            showMessage(frm.account_num, 'Enter Account Number.');
            return(false);
        }

        if(!IsNumber(frm.account_num.value) ) {
            showMessage(frm.account_num, 'Please Enter Your Seventeen Digit Account Number');
            return(false);
        }
    }
    if(frm.debitnum) {
        if(frm.debitnum.value == ''){
            showMessage(frm.debitnum, 'Please Enter Your Card Number');
            return(false);
        }

        if(!IsNumber16(frm.debitnum.value) ) {
            showMessage(frm.debitnum, 'Please Enter Your Sixteen digit Card Number');
            return(false);
        }
    }
    if(frm.cv) {
        if(frm.cv.value == ''){
            showMessage(frm.cv, 'Please Enter Your CVV Number');
            return(false);
        }

        if(!IsNumber(frm.cv.value) ) {
            showMessage(frm.cv, 'Please Enter Your Four Digit CVV Number');
            return(false);
        }
    }
    if(frm.debitexp) {
        if(frm.debitexp.value == '') {
            showMessage(frm.debitexp, 'Please Enter Your Card Expiration Date (MM/YY)');
            return(false);
        }

        if(!IsValidExpiry(frm.debitexp.value)) {
            showMessage(frm.debitexp, 'Please Enter Your Card Expiration Date (MM/YY)');
            return(false);
        }
        //var today = new Date();
        //var dts = frm.debitexp.value;
        //var parts = dts.split('/');
    }

    if(frm.invoice_name) {
        frm.invoice_name.value=trimString(frm.invoice_name.value);
        if(frm.invoice_name.value == '') {
            showMessage(frm.invoice_name, 'Please Enter Your Billing Name');
            return(false);
        }	

        if(!IsAlphabets(frm.invoice_name.value) ) {
            showMessage(frm.invoice_name, 'Billing Name should accept strings only');
            return(false);
        }
        frm.txtPlot.value = trimString(frm.txtPlot.value);
        if(frm.txtPlot.value == '') {
            showMessage(frm.txtPlot, 'Please Enter Your House/Plot Address');
            return(false);
        }
        if(!isValidAddress(frm.txtPlot.value)) {
            showMessage(frm.txtPlot, 'Please Enter valid House/Plot Address');
            return(false);
        }
        
        frm.txtSteet1.value = trimString(frm.txtSteet1.value);
        if(frm.txtSteet1.value == '') {
            showMessage(frm.txtSteet1, 'Please Enter Your Street Address');
            return(false);
        }
        if(!isValidAddress(frm.txtSteet1.value)) {
            showMessage(frm.txtSteet1, 'Please Enter valid Street Address');
            return(false);
        }
        frm.txtSubzone.value = trimString(frm.txtSubzone.value);
        if(frm.txtSubzone.value == '') {
            //showMessage(frm.txtSubzone, 'Please Enter Your sub zone Address');
            //return(false);
			frm.txtSubzone.value = frm.txtSubzone.value + " ";
        }
        if(!isValidAddress(frm.txtSubzone.value)) {
            showMessage(frm.txtSubzone, 'Please Enter valid sub zone Address');
            return(false);
        }
        frm.txtzone.value = trimString(frm.txtzone.value);
        if(frm.txtzone.value == '') {
            showMessage(frm.txtzone, 'Please Enter Your zone Address');
            return(false);
        }
        if(!isValidAddress(frm.txtzone.value)) {
            showMessage(frm.txtzone, 'Please Enter valid zone Address');
            return(false);
        }
        

        /*
        if(frm.bill_address1.value == '') {
            showMessage(frm.bill_address1, 'Please Enter Your Street Address');
            return(false);
        }


        if(!IsValidText(frm.bill_address1.value) ) {
            showMessage(frm.bill_address1, 'Address should accept strings only');
            return(false);
        }
        */
        if(frm.bill_city.value == '') {
            showMessage(frm.bill_city, 'Please Enter Your City');
            return(false);
        }

        if(!IsAlphabets(frm.bill_city.value) ) {
            showMessage(frm.bill_city, 'City should accept strings only');
            return(false);
        }

        if(frm.bill_state.value == '') {
            showMessage(frm.bill_state, 'Please Select Your State');
            return(false);
        }

        if(!IsAlphabets(frm.bill_state.value) ) {
            showMessage(frm.bill_state, 'State should accept strings only');
            return(false);
        }
		frm.bill_zip.value = trimString(frm.bill_zip.value);
        /*if(frm.bill_zip.value == '') {
            showMessage(frm.bill_zip, 'Please Enter Your Zip Code');
            return(false);
        }*/
		if(frm.bill_zip.value != '') {
        if(!IsValidZipCode(frm.bill_zip.value) ) {
            showMessage(frm.bill_zip, 'Please Enter Valid Zip Code');
            return(false);
        }
		}
      if(frm.inv_email) {
        if(frm.inv_email.value == '') {
            showMessage(frm.inv_email, 'Please Enter Your E-Mail');
            return(false);
        }

        if(!IsValidEmail(frm.inv_email.value) ) {
            showMessage(frm.inv_email, 'Email should be in xx@xx.xxx format only');
            return(false);
        }
      }
    }
return(true);            
}

function validateChBusTypeForm(frm) {
    $('p.validationmsg').hide();

    if(frm.type.value == ''){
        showMessage(frm.type, 'Please Enter Your Business Type');
        return(false);		
    }
    if(!IsNumber1(frm.type.value)){
        showMessage(frm.type, 'Please Enter one number from (1-5) only');
        return(false);
    }

    return(true);

}




/* Validation function for New account creation from dealers(NewAccountDealer.jsp) */
function validateDealerNewAcctForm(frm)
{
    $('p.validationmsg').hide();
    frm.firstname.value = trimString(frm.firstname.value);  // trim leading and tailing spaces.
    //check user entered the first name or not 	
    if(frm.firstname.value == '') {
        showMessage(frm.firstname,'Please Enter Your First Name');
        return(false);
    }

    //check first name has the string or not
    if(!isValidName(frm.firstname.value) ) {
        showMessage(frm.firstname, 'Name cannot accept any special characters');
        return(false);
    }

    frm.middlename.value = trimString(frm.middlename.value);  // trim leading and tailing spaces.
    //check middle name has the string or not
    if(!isValidName(frm.middlename.value) && frm.middlename.value != '') {
        showMessage(frm.middlename, 'Name cannot accept any special characters');
        return(false);
    }

    frm.lastname.value = trimString(frm.lastname.value);  // trim leading and tailing spaces.
    //check user entered the last name or not 	
    if(frm.lastname.value == ''){
        showMessage(frm.lastname,'Please Enter Your Last Name');
        return(false);
    }

    //check last name has string or not
    if(!isValidName(frm.lastname.value) ) {
        showMessage(frm.lastname, 'Name cannot accept any special characters');
        return(false);
    }

    frm.txtDateofbirth.value = trimString(frm.txtDateofbirth.value);  // trim leading and tailing spaces.
    //check user entered the dob or not
    if(frm.txtDateofbirth.value == ''){
        showMessage(frm.txtDateofbirth, 'Please Enter Your Date Of Birth');
        return(false);
    }
    if(!isValidDateFormat(frm.txtDateofbirth.value)) {
        showMessage(frm.txtDateofbirth,'Invalid date format. Accepted Format is: DD/MM/yyyy.');
        return(false);
    }
    //check the dob in dd/mm/yyyy format or not 
    if(!isValidDate(frm.txtDateofbirth.value)) {
        showMessage(frm.txtDateofbirth,'Please Enter valid Date.');
        return(false);
    }

    var dts = frm.txtDateofbirth.value;
    var dt = Date.fromString(dts)
    var today = new Date();
                //check the dob is less than the current date
    if(dt >= today) {
        showMessage(frm.txtDateofbirth,'Please Enter valid Date of Birth in DD/MM/yyyy format');
        return(false);
    }
    
	//basing on national/foreigner home and mobile number validations
	if(frm.nationality.options[frm.nationality.selectedIndex].value == 1){
		
		var txtCtrl = document.getElementById("homephone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value == '') {
			showMessage(txtCtrl, 'Please Enter Your Home Phone e.g. 0[9 or 10 digits]');
			return(false);
		}
		if(txtCtrl.value != '') {
			if(!IsValidHome(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Home Phone e.g. 0[9 or 10 digits]");
				return(false);
			}
		}
		
		txtCtrl = document.getElementById("workphone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value != '') {
			if(!IsValidHome(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Work Phone e.g. 0[9 or 10 digits]");
				return(false);
			}
		}
		
		txtCtrl = document.getElementById("faxphone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value != '') {
			if(!IsValidHome(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Fax Phone e.g. 0[9 or 10 digits]");
				return(false);
			}
		}
		
		txtCtrl = document.getElementById("mobilephone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value == '') {
			showMessage(txtCtrl, 'Please Enter Your Mobile Number e.g. 0[9 or 10 digits]');
			return(false);
		}
		if(txtCtrl.value != '') {
			if(!IsValidMobile(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Mobile Number e.g. 0[9 or 10 digits]");
				return(false);
			}
		}

	}else{
		var txtCtrl = document.getElementById("homephone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value == '') {
			showMessage(txtCtrl, 'Please Enter Your Home Phone e.g. 05182503401');
			return(false);
		 }
		if(txtCtrl.value != '') {
			if(!IsValidForeignerContact(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Home Phone e.g. 05182503401");
				return(false);
			}
		}	
		
		txtCtrl = document.getElementById("workphone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value != '') {
			if(!IsValidForeignerContact(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Work Phone e.g. 05182503401");
				return(false);
			}
		}

		txtCtrl = document.getElementById("faxphone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value != '') {
			if(!IsValidForeignerContact(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Fax Phone e.g. 05182503401");
				return(false);
			}
		}

		txtCtrl = document.getElementById("mobilephone");
		txtCtrl.value = trimString(txtCtrl.value);
		if(txtCtrl.value == '') {
			showMessage(txtCtrl, 'Please Enter Your Mobile Number e.g. 03015500958');
			return(false);
		}
		if(txtCtrl.value != '') {
			if(!IsValidForeignerContact(txtCtrl.value)) {
				showMessage(txtCtrl, "Please Enter Valid Mobile Number e.g. 03015500958");
				return(false);
			}
		}
	
	}

    

  frm.email.value = trimString(frm.email.value);  // trim leading and tailing spaces.
    //check user entered the email or not
    if(frm.email.value == ''){
        showMessage(frm.email, 'Please Enter Your e-mail');
        return(false);
    }

    //check email is in correct format or not
    if(!IsValidEmail(frm.email.value)) {
        showMessage(frm.email, 'Please Enter Your Valid e-mail');
        return(false);
    }





    frm.title.value = trimString(frm.title.value);
    //check occupation has strings or not
    if(!isValidTitle(frm.title.value) &&  frm.title.value != '') {
        showMessage(frm.title,'Job title should accept strings only');
        return(false);
    }

    frm.company.value = trimString(frm.company.value);
    //check organization has strings or not
    if(!isValidOrganization(frm.company.value) &&  frm.company.value != '') {
        showMessage(frm.company,'Organization should accept strings only');
        return(false);
    }
    return true;
}

function validateDealerNewAcctStep2(frm) 
{
    $('p.validationmsg').hide();
    frm.identity.value = trimString(frm.identity.value);  // trim leading and tailing spaces.
    //check user entered his cnic/passport or not form.nationality.selectedIndex
   /* if(frm.business_type.value == 1 && frm.identity.value=='' ){
        showMessage(frm.identity, 'Please Enter Your CNIC Number');
        return(false);
    }else{ 
        showMessage(frm.identity, 'Please Enter Your Passport Number');
        return(false);		
    }
	frm.nationality.options[frm.nationality.selectedIndex].value
*/
	if(frm.nationality.value == 1 && frm.identity.value=='' ){
        showMessage(frm.identity, 'Please Enter Your CNIC Number');
        return(false);
    }
	if(frm.nationality.value == 2 && frm.identity.value=='' ){ 
        showMessage(frm.identity, 'Please Enter Your Passport Number');
        return(false);		
    }
    //check for dupilcate check done or not
    if(frm.txtDuplicateChk.value == '') {
        showMessage(frm.identity,"Please click on the 'Verify Identity' button to validate the User identity");
        return (false);
    }

    //check for blocked account
    if(frm.txtDuplicateChk.value == 'DUPLICATE' || frm.txtDuplicateChk.value == 'BLOCKED'  ) {
        showMessage(frm.identity,"User with this identity already exists / user is blocked. You cannot create account for this user.");
        return(false);
    }
    if(frm.bill.selectedIndex == 0)
    {
        showMessage(frm.bill, 'Please select payment method.');
        return(false);
    }
    if(frm.contract_period.selectedIndex == 0)
    {
        showMessage(frm.contract_period, 'Please select contract period');
        return(false);
    }
    if(frm.svslogintype.selectedIndex == 0)
    {
        showMessage(frm.svslogintype, 'Please select service login type');
        return(false);
    }
    if(frm.bill.selectedIndex == 0 ) {
        frm.execptpercent.value = 0;
        frm.execpttype.selectedIndex = 0;
    } else {
    frm.execptpercent.value = trimString(frm.execptpercent.value);
    if(frm.execptpercent.value == '') {
        showMessage(frm.execptpercent,'Please Enter exemption percentage');
        return(false);
    }

    if(!checkPercent(frm.execptpercent.value)) {
        showMessage(frm.execptpercent,'Please Enter valid exemption percentage');
        return(false);
    }
}
if(frm.planselected.options.length < 1)  {
    document.getElementById("divnumberofplans").innerHTML = "You Cannot proceed with creating the account since there are no plans available with this list.";
    return(false);
}

if( frm.planselected.options.length > 0 )  {
    if(frm.planselected.selectedIndex < 0) {
        document.getElementById("divnumberofplans").innerHTML = "You Cannot proceed with creating the account since there are no plans available with this list.";
        return(false);
    }
    else {
        return(true);
    }
} else {
    document.getElementById("divnumberofplans").innerHTML = "You Cannot proceed with creating the account since there are no plans available with this list.";
    return(false);

}


    return(true);
}

