


var isSite = false;
var UPLOAD_IMAGE_PATH = "";

if(isSite){
    UPLOAD_IMAGE_PATH = "http://192.168.1.2/Projects/moreworld/devserver/images/uploaded_images/ ";
}else{
    UPLOAD_IMAGE_PATH = "http://www.moreworld.com/images/uploaded_images/";
}

function trim(str_key){
    str_key = rtrim(str_key);
    str_key = ltrim(str_key);
    return str_key;
}

// function to right trim a string
function rtrim(str_key){
    while(str_key.charAt(str_key.length-1)==" "){
        str_key=str_key.substr(0,str_key.length-1);
    }    
    return str_key;
}

// function to left trim a string
function ltrim(str_key){
    while(str_key.charAt(0)==" "){
        str_key=str_key.substr(1);
    }    
    return str_key;
}

// function to check an year YYYY-MM-DD
function checkYear(strYear){    
    var dateStr = new String(strYear);
    dateStr = ltrim(dateStr);
    dateStr = rtrim(dateStr);
    
    //var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;
    var datePat = /^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9].*$/;
    days = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
    
    var matchArray = dateStr.match(datePat); // is the format ok?
    if (matchArray == null){
        alert("Enter date in YYYY-MM-DD format. eg 2003-01-21");
        return false;
    }
    else{
        var temp_year = 0;
        var temp_month = 0;
        var i = parseInt(dateStr.substr (0, 4));
        temp_year = i;
        if(i < 2005){
            alert("Please enter an year greater than 2005");
            return false;
        }
        
        i = parseInt(dateStr.substr (5, 2))
        if(dateStr.substr(5, 1) == "0"){
            i = parseInt(dateStr.substr(6, 1))
        }
        if(i < 1 || i > 12){
            alert("Please enter a valid month");
            return false;
        }
        temp_month = i;
        var d =days[i];
        
        i = parseInt(dateStr.substr(8))
        if((temp_year % 4 == 0) && (temp_month == 2)){
            if(i < 0 || i > 29){
                alert("Please enter a valid day curresponding to the current year and month.");
                return false;
            }
        }else if(i < 0 || i > d){
            alert("Please enter a valid day curresponding to the current year and month.");
            return false;
        }
    }
    return true;
}

// function to confirm database setup
function confirm_setup(){
    if(confirm("Tables already exists.\nThis action will drop all tables and data and it CANNOT BE UNDONE. \nAre you sure that you want to run Setup again?")){
        return true;
    }
    return false;
}
// function to open a new window
function openWin(windowURL, windowName, windowFeatures){
    window.open(windowURL, windowName, windowFeatures);
    return false;
}

// function to confirm record deletion
function confirmCleanUp(Link) {
   if (confirm("Are you sure you want to delete ?")) {
      location.href=Link;
   }
}

// to simulate the clicking of the browser back button
function fn_back(){
    window.history.back();
}    

// function to check YEAR with 4 digit
function isYear(snum)
{
    var reInteger = /^[1-9]\d{3}$/
    return reInteger.test(snum)
}
// function to check indiger field
function IsInteger(snum)
{
    var reInteger = /^\d+$/
    return reInteger.test(snum)
}

// function to check SSN US
function IsSSN(snum)
{
    var reSSN = /^(\d{3})(-)(\d{2})(-)(\d{4})$/    
    return reSSN.test(snum)
}

function IsSSNN(snum)
{
    var reSSN = /^(\d{3})(-)(\d{3})(-)(\d{4})$/    
    return reSSN.test(snum)
}


// function to check US phone - fomat 999-999-9999
function IsPhone(snum)
{
//    var rePhone = /^(\d{3})(-)(\d{3})(-)(\d{4})$/    
    // 8/17/2007 - Sun
//    var rePhone = /^[01]?[- .]?(\([2-9]\d{2}\)|[2-9]\d{2})[- .]?\d{3}[- .]?\d{4}$/    
    var rePhone = /^(\([2-9]\d{2}\)|[2-9]\d{2})[-.]?\d{3}[-]?\d{4}$/    
    return rePhone.test(snum)
}

// Check whether string s is empty.
function isEmpty(s)
{   
    if(trim(s) == ""){
        return true;
    }else{
        return false;
    }
}

// function to check Price value ( with two decimal places )
function isPrice(s)
{  
    var reFloat = /^[\d\.]((\d+(\.\d{0,2})?)|((\d*\.)?\d{0,2}))$/    
    return reFloat.test(s)           
}
// function to check float/decimal fileds
function isFloat(s)
{  
    var reFloat = /^((-)?(\d+(\.\d*)?)|((\d*\.)?\d+))$/
    return reFloat.test(s)           
}

// function to check username fields
function usernameCheck (s){
  // this is done to avoid any special characters
  var reUsername = /^[a-zA-Z0-9][a-zA-Z0-9_]*$/
 
  if (isEmpty(s)){
       alert("Please enter a desired Username. Minimum 8 characters.\nNo spaces, blanks or special characters , except '_'.");
     return false;
  }
  else{
        var matchArray = s.match(reUsername); // is the format ok?
     if (matchArray == null) {
        alert("Username should contain only \nalphabets, digits or underscore '_'.\n '_' should not be the first character.");
        return false;
     }         
     else{
           if(s.length<8){        
            alert("Username should be minimum of 8 characters");    
            return false;
         }    
     }            
  }          
  return true;
}

// function to check username fields
function passwordCheck (s){
  // this is done to avoid any special characters
  var rePassword = /^[a-zA-Z0-9][a-zA-Z0-9~!@#$%^&*()]*$/
 
 if (isEmpty(s)){
       alert("Please enter a desired Password. Minimum 6 characters.\nNo spaces and blanks allowed.");
     return false;
  }
  else{
        var matchArray = s.match(rePassword); // is the format ok?
     if (matchArray == null) {
        alert("Password should contain only alphabets, digits\nor only these special characters ~!@#$%^&*()$ \nBut first character cannot be a special character..");
        return false;
     }         

    else{
           if(s.length<6){        
            alert("Password should be minimum of 6 characters");    
            return false;
         }
          if(s.length>15){        
            alert("Password should be maximum of 15 characters");    
            return false;
         }    

     }            
  }          
  return true;
}

// function to validate date field
function isValidDate(dateStr) {
// Checks for the following valid date formats:
// MM/DD/YY MM/DD/YYYY MM-DD-YY MM-DD-YYYY
// Also separates date into month, day, and year variables

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;

// To require a 4 digit year entry, use this line instead:
// var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;

var matchArray = dateStr.match (datePat); // is the format ok?
if (matchArray == null) {
    alert("Date is not in a valid format.Valid format is MM/DD/YYYY")
    return false;
}
//month = matchArray[3]; // parse date into variables
//day = matchArray[1];

month = matchArray[1]; // parse date into variables
day = matchArray[3];
year = matchArray[4];
if (month < 1 || month > 12) { // check month range
alert("Month must be between 1 and 12.");
return false;
}
if (day < 1 || day > 31) {
alert("Day must be between 1 and 31.");
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert("Month "+month+" doesn't have 31 days!")
return false
}
if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day>29 || (day==29 && !isleap)) {
alert("February " + year + " doesn't have " + day + " days!");
return false;
}
}
return true; // date is valid
}
// End date validation ------------------------------------->

function emailCheck(emailStr, skipMsgs) {
    if (!skipMsgs){
        skipMsgs = false;
    }
    /* The following pattern is used to check if the entered e-mail address
       fits the user@domain format.  It also is used to separate the username
       from the domain. */
    var emailPat=/^(.+)@(.+)$/
    /* The following string represents the pattern for matching all special
       characters.  We don't want to allow special characters in the address.
       These characters include ( ) < > @ , ; : \ " . [ ]    */
    var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
    /* The following string represents the range of characters allowed in a
       username or domainname.  It really states which chars aren't allowed. */
    var validChars="\[^\\s" + specialChars + "\]"
    /* The following pattern applies if the "user" is a quoted string (in
       which case, there are no rules about which characters are allowed
       and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com
       is a legal e-mail address. */
    var quotedUser="(\"[^\"]*\")"
    /* The following pattern applies for domains that are IP addresses,
       rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
       e-mail address. NOTE: The square brackets are required. */
    var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
    /* The following string represents an atom (basically a series of
       non-special characters.) */
    var atom=validChars + '+'
    /* The following string represents one word in the typical username.
       For example, in john.doe@somewhere.com, john and doe are words.
       Basically, a word is either an atom or quoted string. */
    var word="(" + atom + "|" + quotedUser + ")"
    // The following pattern describes the structure of the user
    var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
    /* The following pattern describes the structure of a normal symbolic
       domain, as opposed to ipDomainPat, shown above. */
    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
    
    /* Finally, let's start trying to figure out if the supplied address is
       valid. */
    
    /* Begin with the coarse pattern to simply break up user@domain into
       different pieces that are easy to analyze. */
    var matchArray=emailStr.match(emailPat)
    if (matchArray==null) {
      /* Too many/few @'s or something; basically, this address doesn't
         even fit the general mould of a valid e-mail address. */
        if (skipMsgs!=true){
            alert("Email address seems incorrect (check @ and .'s)")
        }
        return false
    }
    var user=matchArray[1]
    var domain=matchArray[2]
    
    // See if "user" is valid
    if (user.match(userPat)==null) {
        // user is not valid
        if (skipMsgs!=true){
            alert("The username doesn't seem to be valid.")
        }
        return false
    }
    
    //check for characters that are not allowed in email address
     var iChars = "!$%^~&*()+=-[]\\\';,/{}|\":<>`?";

      for (var i = 0; i < emailStr.length; i++)
        {
        if (iChars.indexOf(emailStr.charAt(i)) != -1)
        {
            if (skipMsgs!=true){
                alert("Email address doesn't seem to be valid.")
            }
            return false;
        }
      }
    
    /* if the e-mail address is at an IP address (as opposed to a symbolic
       host name) make sure the IP address is valid. */
    var IPArray= domain.match(ipDomainPat)
    if (IPArray!=null) {
        // this is an IP address
          for (var i=1;i<=4;i++) {
            if (IPArray[i]>255) {
                if (skipMsgs!=true){
                    alert("Destination IP address is invalid!")
                }
                return false
            }
        }
        return true
    }
    
    // Domain is symbolic name
    var domainArray=domain.match(domainPat)
    if (domainArray==null) {
        if (skipMsgs!=true){
            alert("The Domain Name doesn't seem to be valid.")
        }
        return false
    }
    
    /* domain name seems valid, but now make sure that it ends in a
       three-letter word (like com, edu, gov) or a two-letter word,
       representing country (uk, nl), and that there's a hostname preceding
       the domain or country. */
    
    /* Now we need to break up the domain to get a count of how many atoms
       it consists of. */
    var atomPat=new RegExp(atom,"g")
    var domArr=domain.match(atomPat)
    var len=domArr.length
    if (domArr[domArr.length-1].length<2 ||
        domArr[domArr.length-1 ].length>3) {
       // the address must end in a two letter or three letter word.
        if (skipMsgs!=true){
           alert("The address must end in a three-letter domain, or two letter country.")
        }
       return false
    }
    
    // Make sure there's a host name preceding the domain.
    if (len<2) {
        if (skipMsgs!=true){
           var errStr="This E-mail address is missing a hostname!";
           alert(errStr);
        }
       return false
       }
       // If we've gotten this far, everything's valid!
    return true       
}
// end o


//to check multiple emails
function multipleEmailCheck(obj) {
        
        var strEmail=trim(obj.value);
        var arr= Array();    

        //check for enter key in email
        str="";
        for(i=0;i< strEmail.length;i++)
        {
    
             if(strEmail.charAt(i)!='\n')
             {
                str=str+strEmail.charAt(i);        
             }
        }
        strEmail=str;
    
        //if there is a comma at last then
        lastpos=strEmail.length-1;
        if(strEmail.charAt(lastpos)==',')
        {
            len=lastpos-1;
            strEmail=strEmail.substr (0,lastpos);
        }
    
        if(strEmail.indexOf(',')==-1)
            arr[0]=strEmail;
        else
            arr=strEmail.split(',');
    
        flag=true;
        for(i=0;i< arr.length;i++)
        {    
            
                if(!emailCheck(arr[i],true))
                {
                    flag=false;
                }
    
    
            if(!flag){
                return false;
            }
        }
            
            obj.value=strEmail;
    return true       
}
// end o

// A Domain check , which must start with http://www. or https://www.
// First argument will be the string to check
// Second argument will be the message to print out
function domainCheck(){
    var strDomain = "";
    var strTitle = "";
    
    if(arguments.length == 0){
        return false;
    }else{
        strDomain = arguments[0];
        strTitle = arguments.length > 1 ? arguments[1] : "URL";
    }
    
    if(isEmpty(strDomain)){
        alert("Please enter "+ strTitle +".");
        return false;
    }else if(strDomain.indexOf("http://www.") == -1 && strDomain.indexOf(" https://www.") == -1){
        alert(strTitle + " must start with 'http://www.' or 'https://www.' .");
        return false;
    }else{
        var strUrl ="";
        if(strDomain.indexOf("http://www.") == -1)
            strUrl = strDomain.substr(12);
        else
            strUrl = strDomain.substr(11);
        
        var domPat = /^([^.]+\.)+[a-zA-Z]{2,3}(\/.*)?$/;
        arrMat = strUrl.match(domPat);
        if(arrMat == null){
            alert("Enter a valid " + strTitle +".");
            return false;
        }
    }
    return true;
}
//coding for radio button

function radio_button_checker(form)
{
// set var radio_choice to false
var radio_choice = false;

// Loop from zero to the one minus the number of radio button selections
for (counter = 0; counter <form.frm_type.length; counter++)
{
// If a radio button has been selected it will return true
// (If not it will return false)
if (form.frm_type[counter].checked)
radio_choice = true;
}

if (!radio_choice)
{
// If there were no selections made display an alert box
alert("Please select a Type.")
return (false);
}
return (true);
}

//Validating image type before upload
function filenameCheck(ImageObject){
    var regExp_jpeg = /^(.+)[.][jJ][pP][eE][gG]$/;
    var regExp_gif = /^(.+)[.][gG][iI][fF]$/;
    var regExp_jpg = /^(.+)[.][jJ][pP][gG]$/;
    
    if(isEmpty(ImageObject.value)){
        alert("Select an Image File");
        return false;
        }        
    else if(!(regExp_jpeg.test(ImageObject.value) || regExp_gif.test(ImageObject.value ) ||
        regExp_jpg.test(ImageObject.value))){
        alert("Please enter a valid file with jpg, gif or jpeg format.")
        ImageObject.focus();
        return false;
    }
    else   
        return true;       
}
  function db_time_format(starttime,stoptime){
        var counter;
        var max;
        var rtime;
        var strat_time;
        var stop_time
        var str = new Array("12:00 AM","12:15 AM","12:30 AM","12:45 AM","01:00 AM","01:15 AM","01:30 AM","01:45 AM","02:00 AM" ,"02:15 AM","02:30 AM","02:45 AM","03:00 AM","03:15 AM","03:30 AM","03:35 AM","04:00 AM","04:15 AM","04:30 AM","04:45 AM","05:00 AM","05:15 AM","05:30 AM","05:45 AM","06:00 AM","06:15 AM","06:30 AM","06:45 AM","07:00 AM","07:15 AM","07:30 AM","07:45 AM","08:00 AM","08:15 AM","08:30 AM","08:45 AM","09:00 AM","09:15 AM","09:30 AM","09:45 AM","10:00 AM","10:15 AM","10:30 AM","10:45 AM","11:00 AM","11:15 AM","11:30 AM","11:45 AM","12:00 PM","12:15 PM","12:30 PM","12:45 PM","01:00 PM","01:15 PM","01:30 PM","01:45 PM","02:00 PM" ,"02:15 PM","02:30 PM","02:45 PM","03:00 PM","03:15 PM","03:30 PM","03:35 PM","04:00 PM","04:15 PM","04:30 PM","04:45 PM","05:00 PM","05:15 PM","05:30 PM","05:45 PM","06:00 PM","06:15 PM","06:30 PM","06:45 PM","07:00 PM","07:15 PM","07:30 PM","07:45 PM","08:00 PM","08:15 PM","08:30 PM","08:45 PM","09:00 PM","09:15 PM","09:30 PM","09:45 PM","10:00 PM","10:15 PM","10:30 PM","10:45 PM","11:00 PM","11:15 PM","11:30 PM","11:45 PM");
        max =96;
        var stri = new Array( "0000","0015","0030","0045","0100","0115","0130","0145","0200","0215","0230","0245","0300","0315","0330","0345","0400","0415","0430","0445","0500","0515","0530","0545","0600","0615","0630","0645","0700","0715","0730","0745","0800","0815","0830","0845","0900","0915","0930","0945","1000","1015","1030","1045","1100","1115","1130","1145","1200","1215","1230","1245","1300","1315","1330","1345","1400","1415","1430","1445","1500","1530","1530","1545","1600","1615","1630","1645","1700","1715","1730","1745","1800","1815","1830","1845","1900","1915","1930","1945","2000","2015","2030","2045","2100","2115","2130","2145","2200","2215","2230","2245","2300","2315","2330","2345");
        for (var counter=0; counter <max-1; counter++){
             if(starttime == str[counter]){
             strat_time=stri[counter];
             break;
             }
        }// end of for
        for (var count=0; count <max-1; count++){              
             if(stoptime == str[count]){
                stop_time=stri[count];
                break;
             }
        }// end of for
        if(stop_time<=strat_time)
            return 0;
        else
            return 1;
   }// end of db_time_format

   function date_compare(date1,date2){
            var TempArray1= new Array();
            TempArray1=date1.split('/');
            var TempArray2= new Array();
            TempArray2=date2.split('/');
            d1=new Date(TempArray1[2],TempArray1[1],TempArray1[0]);
            d2=new Date(TempArray2[2],TempArray2[1],TempArray2[0]);
            if (d1.getTime()<d2.getTime()) {
                return 1;
            }
            else if(d1.getTime()>d2.getTime()){
                return 0;
            }
            else if(d1.getTime()==d2.getTime()){
                return 2;        
            }
    }//end of date compare function


 //Phone validation check start
 function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    return true;
}

function isAlphanumeric(s){
    
    var reUsername = /^[\w ]+$/;
    var r1 = /^[\W]+$/;
    var num=/^[0-9]*$/;

    
    //var reUsername = /^[a-zA-Z0-9][a-zA-Z ]*$/
    var matchArray = s.match(reUsername); // is the format ok?
     if(matchArray == null) {
        //alert("City name should contain only alphabets.");
        return false;
     }         

    if(num.test(s))
    {
        return false;
    }
    return true;
}




function isAlphabet(s){
    var reUsername = /^[a-zA-Z][a-zA-Z ]*$/
    var matchArray = s.match(reUsername); // is the format ok?
     if (matchArray == null) {
        //alert("City name should contain only alphabets.");
        return false;
     }         

   
    return true;
}


function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}
function checkInternationalPhone(strPhone){
    var digits = "0123456789";
    var phoneNumberDelimiters = "()- ";
    var validWorldPhoneChars = phoneNumberDelimiters + "+";
    var minDigitsInIPhoneNumber = 10;
    var maxDigitsInIPhoneNumber = 15;
    s=stripCharsInBag(strPhone,validWorldPhoneChars);
    return (isInteger(s) && s.length >= minDigitsInIPhoneNumber && s.length <= maxDigitsInIPhoneNumber);
}




/*    boolean checkValidName(object obj [, string txtName] [, boolean showMsg])
    obj        - textbox object
    txtName - (Name if not specified)
    showMsg    - if true shows the alert message on error
    Function to check the Name validation (firstname, lastname or full name)
        If any validation fails it returns false after shown the alert message (if showMsg is set to true)
        It checks for the followinf validations rules
            - Name cannot be empty
            - It must contain only alphabets
            - The minimum length of name is 2 characters
            - The maximum length of name is 50 characters
    Date Created - 8/8/2007
    Sun
*/
    function checkValidName(obj, txtName, showMsg){
        if (!obj){
            alert("Object not found");
            return false;
        }
        if (!txtName){
            txtName = "Name";
        }
        if(isEmpty(obj.value)){
            if(showMsg){
                alert("Please enter " + txtName + ".");
            }
            obj.focus();
            return false;
        }
        if(!isAlphabet(obj.value)){
            if(showMsg){
                alert("Please enter only alphabets in the " + txtName + ".");
            }
            obj.focus();
            return false;
        }
        if (obj.value.length < 2){
            if(showMsg){
                alert("Minimum length of " + txtName + " is 2 Characters.");
            }
            obj.focus();
            return false;
        }
        if (obj.value.length > 50){
            if(showMsg){
                alert("Maximum length of " + txtName + " is 50 Characters.");
            }
            obj.focus();
            return false;
        }
        
      //Check for extra spaces     
      spaceonIndexno=0;
        for (var i = 0; i < obj.value.length; i++)
        {
        
        if (obj.value.charAt(i) == " ")
        {
            if(i==eval(spaceonIndexno+1))
            {
                if(showMsg){
                alert ("Please remove extra spaces from " +txtName);
                }
                obj.focus();
                return false;
            }
            
             spaceonIndexno=i;
        }
       }

        
        return true;
    }
/*
*/
/*    boolean checkValidPhoneNo(object obj [, string txtName] [, boolean showMsg])
    obj        - textbox object
    txtName - (Phone if not specified)
    showMsg    - if true shows the alert message on error
    Function to check the US Phone no validation
        If any validation fails it returns false after shown the alert message (if showMsg is set to true)

    Date Created - 8/9/2007
    Sun
*/
    function checkValidPhoneNo(obj, txtName, showMsg){
        if (!obj){
            alert("Object not found");
            return false;
        }
        if (!txtName){
            txtName = "Phone number";
        }
        if(isEmpty( obj.value)){
            if(showMsg){
                alert("Please enter " + txtName + ".");
            }
            obj.focus();
            return false;
        }
        if(!checkInternationalPhone1(obj.value)){
            if(showMsg){
               // var validPhones = "(425)555-0123\n425-555-0123\n425.555 0123";
			    //var validPhones = "425-555-0123";
                //alert("You have entered " + txtName + " in invalid format.\nValid phone number examples are:\n"+validPhones);
				alert("You have entered invalid phone number.");
            }
            obj.focus();
            return false;
        }
        return true;
    }
/*
*/
/*    boolean checkValidAddress(object obj [, string txtName] [, boolean showMsg])
    obj        - textbox object
    txtName - (Address if not specified)
    showMsg    - if true shows the alert message on error
    Function to check the Address validation
        If any validation fails it returns false after shown the alert message (if showMsg is set to true)
        It checks for the following validations rules
            - Address cannot be empty
            - Allowed Characters are - All alphabets, #, (comma), (), .(dot), :, -
            - The minimum length of name is 2 characters
            - The maximum length of name is 50 characters

    Date Created - 8/9/2007
    Sun
*/
    function checkValidAddress(obj, txtName, showMsg){
        if (!obj){
            alert("Object not found");
            return false;
        }
        if (!txtName){
            txtName = "Address";
        }
/*        if(isEmpty(obj.value)){
            if(showMsg){
                alert("Please enter " + txtName + ".");
            }
            obj.focus();
            return false;
        }
*/    
    if (obj.value.length < 2){
            if(showMsg){
                alert("Minimum length of " + txtName + " is 2 Characters.");
            }
            obj.focus();
            return false;
        }
        if (obj.value.length > 250){
            if(showMsg){
                alert("Maximum length of " + txtName + " is 150 Characters.");
            }
            obj.focus();
            return false;
        }
        s = obj.value;
        var reUsername = /^[A-Za-z0-9\t\n\r\f\v()# .,:-]*$/
        var matchArray = s.match(reUsername);
        if (matchArray == null) {
            if(showMsg){
                alert("You have entered " + txtName + " in invalid format.");
            }
            obj.focus();
            return false;
        }
        
      //Check for extra spaces     
      spaceonIndexno=0;
        for (var i = 0; i < obj.value.length; i++)
        {
        
        if (obj.value.charAt(i) == " ")
        {
            if(i==eval(spaceonIndexno+1))
            {
                if(showMsg){
                alert ("Please remove extra spaces from " +txtName);
                }
                 obj.focus();
                return false;
            }
            
             spaceonIndexno=i;
        }
       }

        return true;
    }

function check_usphone(phonenumber,useareacode)
{
    if(!useareacode)useareacode=1;
    if((phonenumber.match(/^[ ]*[(]{0,1}[ ]*[0-9]{3,3}[ ]*[)]{0,1}[-]{0,1}[ ]*[0-9]{3,3}[ ]*[-]{0,1}[ ]*[0-9]{4,4}[ ]*$/)==null) && ((useareacode!=1) && (phonenumber.match (/^[ ]*[0-9]{3,3}[ ]*[-]{0,1}[ ]*[0-9]{4,4}[ ]*$/)==null))) return false;
    return true;
}






 //Phone validation check end
 
 
 function stripCharsInBag1(s, bag)
{   var i;
    var flag=0;
    
    var returnString = "";
    
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1)
        {   
            flag=1;
            returnString += c;
        }
        
        else if(i==0 && c=="(" && s.charAt(4)==")")
            flag=1;
        else if(i==4 && c==")" && s.charAt(0)=="(")
            flag=1;
        
        else if(i==8 && c=="-" && s.charAt(0)=="(" && s.charAt(4)==")")
            flag=1;

        else if(i==3 && c=="-" && s.charAt(7)=="-" || i==7 && c=="-" && s.charAt(3)=="-")
            flag=1;
                
        else{
            flag=0;
            break;
        }
    }


    if(flag==0)
        return 0;
    else
        return returnString;
}


function checkInternationalPhone1(strPhone){
    var digits = "0123456789";
    var phoneNumberDelimiters = "()- ";
    var validWorldPhoneChars = phoneNumberDelimiters + "+";
    var minDigitsInIPhoneNumber = 10;
    strPhone=stripCharsInBag(strPhone," ");
    s=stripCharsInBag1(strPhone,validWorldPhoneChars);
    return (isInteger(s) && s.length == minDigitsInIPhoneNumber);
}

    //for city
    function checkValidCity(obj, txtName, showMsg){
        if (!obj){
            alert("Object not found");
            return false;
        }
        if (!txtName){
            txtName = "City";
        }

        if(!isAlphabet( obj.value)){
            if(showMsg){
                alert("Please enter only alphabets in the " + txtName + ".");
            }
            obj.focus();
            return false;
        }
        
        if (obj.value.length < 2){
            if(showMsg){
                alert("Minimum length of " + txtName + " is 2 Characters.");
            }
            obj.focus ();
            return false;
        }
        
        if (obj.value.length >100){
            if(showMsg){
                alert("Maximum length of " + txtName + " is 100 Characters.");
            }
            obj.focus();
            return false;
        }
        
      //Check for extra spaces     
      spaceonIndexno=0;
        for (var i = 0; i < obj.value.length; i++)
        {
        
        if (obj.value.charAt(i) == " ")
        {
            if(i==eval(spaceonIndexno+1))
            {
                if(showMsg){
                alert ("Please remove extra spaces from " +txtName);
                }
                obj.focus();
                return false;
            }
            
             spaceonIndexno=i;
        }
       }        
        return true;
    }




    //for description or message
    function checkValidDescription(obj, txtName, showMsg,maxlength,minilen){
        var r1 = /^[\W]+$/;
        var re = /^[\w ]+$/;
        var num=/^[0-9]*$/;
        
        if (!obj){
            alert("Object not found");
            return false;
        }
        if (!txtName){
            txtName = "Description";
        }

        
        if (obj.value.length < minilen){
            if(showMsg){
                alert("Minimum length of " + txtName + " is "+minilen+" Characters.");
            }
            obj.focus();
            return false;
        }
        
        if (obj.value.length > maxlength){
            if(showMsg){
                alert("Maximum length of " + txtName + " is "+maxlength+" Characters.");
            }
        }

        if((r1.test(obj.value))|| (num.test(obj.value)) && (obj.value.length > minilen) )
        {
        if(showMsg){
            alert("Please enter alphanumerics in "+ txtName +".");
                
        }
            obj.focus();
            return false;
        }
        
      //Check for extra spaces     
      spaceonIndexno=0;
        for (var i = 0; i < obj.value.length ; i++)
        {
        
        if (obj.value.charAt(i) == " ")
        {
            if(i==eval(spaceonIndexno+1))
            {
                if(showMsg){
                alert ("Please remove extra spaces from " +txtName);
                }
                obj.focus();
                return false;
            }
            
             spaceonIndexno=i;
        }
       }        
        return true;
    }


    function checkValidZip(obj, txtName, showMsg){
        if (!obj){
            alert("Object not found");
            return false;
        }
        if (!txtName){
            txtName = "Zip";
        }

        if(!IsInteger(obj.value)){
            if(showMsg){
                alert("Please enter only Integers in the " + txtName + ".");
            }
            obj.focus ();
            return false;
        }
        
            
    
        if((obj.value.length>0) && (obj.value.length<5)){
            if(showMsg)    {
                alert("Please enter the Zip code having 5 digits.");
            }
            obj.focus();
            return false;
         }


        
      //Check for extra spaces     
      spaceonIndexno=0;
        for (var i = 0; i < obj.value.length ; i++)
        {
        if (obj.value.charAt(i) == " ")
        {
            if(showMsg){
            alert ("Please remove spaces from " +txtName);
            }
            obj.focus ();
            return false;
        }
       }        
        
        return true;
    }



    function checkValidCompanyName(obj, txtName, showMsg){

        if (!obj){
            alert("Object not found");
            return false;
        }
        if (!txtName){
            txtName = "Name";
        }
        if(isEmpty(obj.value)){
            if(showMsg){
                alert("Please enter " + txtName + ".");
            }
            obj.focus();
            return false;
        }
        if(!isAlphanumeric(obj.value)){
            if(showMsg){
                alert("Please enter only alphanumerics in the " + txtName + ".");
            }
            obj.focus();
            return false;
        }
        if (obj.value.length < 2){
            if(showMsg){
                alert("Minimum length of " + txtName + " is 2 Characters.");
            }
            obj.focus();
            return false;
        }
        if (obj.value.length > 100){
            if(showMsg){
                alert("Maximum length of " + txtName + " is 100 Characters.");
            }
            obj.focus();
            return false;
        }
        
      //Check for extra spaces     
      spaceonIndexno=0;
        for (var i = 0; i < obj.value.length; i++)
        {
        
        if (obj.value.charAt(i) == " ")
        {
            if(i==eval(spaceonIndexno+1))
            {
                if(showMsg){
                alert ("Please remove extra spaces from " +txtName);
                }
                obj.focus();
                return false;
            }
            
             spaceonIndexno=i;
        }
       }

        
        return true;
    }
	
	function checkemail(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		
		if (str.indexOf(at)==-1)
		{
		   alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
		{
		   alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
		{
		   alert("Invalid E-mail ID")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1)
		 {
		    alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
		 {
		   alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1)
		 {
		    alert("Invalid E-mail ID")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1)
		 {
		    alert("Invalid E-mail ID")
		    return false;
		 }

		 return true
}				
		 
function IsValidTime(timeStr) {
// Checks if time is in HH:MM:SS AM/PM format.
// The seconds and AM/PM are optional.

var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;

var matchArray = timeStr.match(timePat);
if (matchArray == null) {
alert("Time is not in a valid format.");
return false;
}
hour = matchArray[1];
minute = matchArray[2];
second = matchArray[4];
ampm = matchArray[6];

if (second=="") { second = null; }
if (ampm=="") { ampm = null }

if (hour < 0  || hour > 23) {
alert("Hour must be between 1 and 12. (or 0 and 23 for military time)");
return false;
}

if (hour <= 12 && ampm == null) {
if (confirm("Please indicate which time format you are using.  OK = Standard Time, CANCEL = Military Time")) {
alert("You must specify AM or PM.");
return false;
   }
}
if  (hour > 12 && ampm != null) {
alert("You can't specify AM or PM for military time.");
return false;
}
if (minute<0 || minute > 59) {
alert ("Minute must be between 0 and 59.");
return false;
}
if (second != null && (second < 0 || second > 59)) {
alert ("Second must be between 0 and 59.");
return false;
}
return true;
}
		 
function emailCheck (emailStr) {

/* The following variable tells the rest of the function whether or not
to verify that the address ends in a two-letter country or well-known
TLD.  1 means check it, 0 means don't. */

var checkTLD=1;

/* The following is the list of known TLDs that an e-mail address must end with. */

var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;

/* The following pattern is used to check if the entered e-mail address
fits the user@domain format.  It also is used to separate the username
from the domain. */

var emailPat=/^(.+)@(.+)$/;

/* The following string represents the pattern for matching all special
characters.  We don't want to allow special characters in the address. 
These characters include ( ) < > @ , ; : \ " . [ ] */

var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";

/* The following string represents the range of characters allowed in a 
username or domainname.  It really states which chars aren't allowed.*/

var validChars="\[^\\s" + specialChars + "\]";

/* The following pattern applies if the "user" is a quoted string (in
which case, there are no rules about which characters are allowed
and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com
is a legal e-mail address. */

var quotedUser="(\"[^\"]*\")";

/* The following pattern applies for domains that are IP addresses,
rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
e-mail address. NOTE: The square brackets are required. */

var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;

/* The following string represents an atom (basically a series of non-special characters.) */

var atom=validChars + '+';

/* The following string represents one word in the typical username.
For example, in john.doe@somewhere.com, john and doe are words.
Basically, a word is either an atom or quoted string. */

var word="(" + atom + "|" + quotedUser + ")";

// The following pattern describes the structure of the user

var userPat=new RegExp("^" + word + "(\\." + word + ")*$");

/* The following pattern describes the structure of a normal symbolic
domain, as opposed to ipDomainPat, shown above. */

var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

/* Finally, let's start trying to figure out if the supplied address is valid. */

/* Begin with the coarse pattern to simply break up user@domain into
different pieces that are easy to analyze. */

var matchArray=emailStr.match(emailPat);

if (matchArray==null) {

/* Too many/few @'s or something; basically, this address doesn't
even fit the general mould of a valid e-mail address. */

alert("Email address seems incorrect (check @ and .'s)");
return false;
}
var user=matchArray[1];
var domain=matchArray[2];

// Start by checking that only basic ASCII characters are in the strings (0-127).

for (i=0; i<user.length; i++) {
if (user.charCodeAt(i)>127) {
alert("Ths username contains invalid characters.");
return false;
   }
}
for (i=0; i<domain.length; i++) {
if (domain.charCodeAt(i)>127) {
alert("Ths domain name contains invalid characters.");
return false;
   }
}

// See if "user" is valid 

if (user.match(userPat)==null) {

// user is not valid

alert("The username doesn't seem to be valid.");
return false;
}

/* if the e-mail address is at an IP address (as opposed to a symbolic
host name) make sure the IP address is valid. */

var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {

// this is an IP address

for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
alert("Destination IP address is invalid!");
return false;
   }
}
return true;
}

// Domain is symbolic name.  Check if it's valid.
 
var atomPat=new RegExp("^" + atom + "$");
var domArr=domain.split(".");
var len=domArr.length;
for (i=0;i<len;i++) {
if (domArr[i].search(atomPat)==-1) {
alert("The domain name does not seem to be valid.");
return false;
   }
}

/* domain name seems valid, but now make sure that it ends in a
known top-level domain (like com, edu, gov) or a two-letter word,
representing country (uk, nl), and that there's a hostname preceding 
the domain or country. */

if (checkTLD && domArr[domArr.length-1].length!=2 && 
domArr[domArr.length-1].search(knownDomsPat)==-1) {
alert("The address must end in a well-known domain or two letter " + "country.");
return false;
}

// Make sure there's a host name preceding the domain.

if (len<2) {
alert("This address is missing a hostname!");
return false;
}

// If we've gotten this far, everything's valid!
return true;
}