
function PageQuery(q) {

         if(q.length > 1) this.q = q.substring(1, q.length);

         else this.q = null;

         this.keyValuePairs = new Array();

         if(q) {

            for(var i=0; i < this.q.split("&").length; i++) {

             this.keyValuePairs[i] = this.q.split("&")[i];

            }

         }

         this.getKeyValuePairs = function() { return this.keyValuePairs; }

         this.getValue = function(s) {

              for(var j=0; j < this.keyValuePairs.length; j++) {

                  if(this.keyValuePairs[j].split("=")[0] == s)

                     return this.keyValuePairs[j].split("=")[1];

              }

              return false;

         }

         this.getParameters = function() {

              var a = new Array(this.getLength());

              for(var j=0; j < this.keyValuePairs.length; j++) {

                  a[j] = this.keyValuePairs[j].split("=")[0];

              }

              return a;

         }

         this.getLength = function() { return this.keyValuePairs.length; }

}



function queryString(key){

         var page = new PageQuery(window.location.search);

         return unescape(page.getValue(key));

}



function displayItem(key){

         if(queryString(key)=='false') {

            return '';

         }

         else{

              return(queryString(key));

         }

}



function echeck(str) {

                var at="@"

                var dot="."

                var lat=str.indexOf(at)

                var lstr=str.length

                var ldot=str.indexOf(dot)

                if (str.indexOf(at)==-1){

                   return false

                }

                if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){

                   return false;

                }

                if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){

                   return false;

                }

                if (str.indexOf(at,(lat+1))!=-1){

                   return false;

                }

                if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){

                   return false;

                }

                if (str.indexOf(dot,(lat+2))==-1){

                   return false;

                }

                if (str.indexOf(" ")!=-1){

                   return false;

                }

                return true;

}


// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

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++)
    {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function ValidatePhone(Phone){

        if ((Phone==null)||(Phone=="")){
                return false
        }
        if (checkInternationalPhone(Phone)==false){
                return false
        }
        return true
 }

function getQpart()
{
  // First, we load the URL into a variable
  var url = window.location.href;
  var quest="?"
  if (url.indexOf(quest)==-1){
     return '';
  }
  // Next, split the url by the ?
  var qparts = url.split("?");
  return qparts[1];
}

function formCheck(formobj){
        // name of mandatory fields

        var fieldRequired = Array("FirstName", "LastName", "DAreacode", "DPrefix", "DSuffix", "Email", "Email2");

        // field description to appear in the dialog box

        var fieldDescription = Array("First Name", "Last Name", "Daytime Area Code", "Daytime Phone Number Prefix", "Daytime Phone Number Suffix", "Email Address", "Email Address Confirmation");

        // dialog message

        var alertMsg = "Please complete the following fields:\n";

        var l_Msg = alertMsg.length;
        var phoneNum=formobj.DAreacode.value+formobj.DPrefix.value+formobj.DSuffix.value;
        formobj.query.value=getQpart();

        for (var i = 0; i < fieldRequired.length; i++){

                var obj = formobj.elements[fieldRequired[i]];

                if (obj){

                        switch(obj.type){

                        case "select-one":

                                if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){

                                        alertMsg += " - " + fieldDescription[i] + "\n";

                                }

                                break;

                        case "select-multiple":

                                if (obj.selectedIndex == -1){

                                        alertMsg += " - " + fieldDescription[i] + "\n";

                                }

                                break;

                        case "text":

                        case "textarea":

                                if (obj.value == "" || obj.value == null){

                                        alertMsg += " - " + fieldDescription[i] + "\n";

                                }

                                break;

                        default:

                        }

                        if (obj.type == undefined){

                                var blnchecked = false;

                                for (var j = 0; j < obj.length; j++){

                                        if (obj[j].checked){

                                                blnchecked = true;

                                        }

                                }

                                if (!blnchecked){

                                        alertMsg += " - " + fieldDescription[i] + "\n";

                                }

                        }

                }

        }

        if (echeck(formobj.Email.value)==false){

           formobj.Email.value=""

           formobj.Email.focus();

           alertMsg += " - Invalid email id\n";

        }
        if (echeck(formobj.Email2.value)==false){

           formobj.Email2.value=""

           formobj.Email2.focus();

           alertMsg += " - Invalid confirmation email id\n";

        }
        if (formobj.Email.value!=formobj.Email2.value){
           formobj.Email2.value=""

           formobj.Email2.focus();

           alertMsg += " - Your email address and confirmation address do not match\n";

        }
        if (ValidatePhone(phoneNum)==false){
            alertMsg += " - Your phone number is invalid\n";
        }
        if (alertMsg.length != l_Msg){

            alert(alertMsg);

                        return false

        }



        return true;

}
