//validations for subscription forms

var numb = '0123456789';
var lwr = 'abcdefghijklmnopqrstuvwxyz';
var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var r={'special':/[\W]/g};

//validate phone number
// 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 = 7;

function isValid(parm, val){
  if(parm == ""){ 
    return true;
  }
  for(i=0; i<parm.length; i++){
    if(val.indexOf(parm.charAt(i),0) == -1){
      return false;
    }else{
      return true;
    }
  }
}
function isNumber(parm){
  var parm=document.getElementById(parm).value;
  return isValid(parm,numb);
}

function isLower(parm){
  var parm=document.getElementById(parm).value;
  return isValid(parm,lwr);
}

function isUpper(parm){
  var parm=document.getElementById(parm).value;
  return isValid(parm,upr);
}

function isAlpha(parm){
  var parm=document.getElementById(parm).value;
  return isValid(parm,lwr+upr);
}
 
function isAlphanum(parm){
  var parm=document.getElementById(parm).value;
  return isValid(parm,lwr+upr+numb);
}


//validate special chars in input fields
function no_special(o,w){
     o.value=filterNum(o.value)

     function filterNum(str) {
          re = /\$|,|@|\/|!|#|~|`|\%|\*|\^|\&|\(|\)|\+|\=|\[|\-|\_|\]|\[|\}|\{|\;|\:|\'|\"|\<|\>|\?|\||\\|\!|\$|\./g;
          // remove special characters like "$" and "," etc...
          return str.replace(re, "");
     }


  //o.value = o.value.replace(r[w],'');
}

Array.prototype.inArray = function (value){
// Returns true if the passed value is found in the
// array. Returns false if it is not.
var i;
for (i=0; i < this.length; i++) 
{
	if (this[i] == value) 
	{
	return true;
	}
}
return false;
};

//check if entry is int
function isInteger(s)
{
      var i;
	s = s.toString();
      for (i = 0; i < s.length; i++){
         var c = s.charAt(i);
         if(isNaN(c)){
		//alert("Given value is not a number");
		return false;
	 }
	 if (((c < "0") || (c > "9"))){ 
	 	return false;
	 }
	   
      }
      return true;
}

// enable disbale register button
function apply(){

  document.getElementById("btn_register_now").disabled=true;
  document.getElementById("btn_register_now").style.cursor='not-allowed';
  
  if(document.getElementById("terms_ok").checked==true && document.getElementById("usa_ok").checked==true && document.getElementById("192_ok").checked==true)
  {
    document.getElementById("btn_register_now").disabled=false;
    document.getElementById("btn_register_now").style.cursor='pointer';
  }
  if(document.getElementById("terms_ok").checked==false && document.getElementById("usa_ok").checked==false && document.getElementById("192_ok").checked==false)
  {
    document.getElementById("btn_register_now").enabled=false;
    document.getElementById("btn_register_now").style.cursor='not-allowed';
  }
}


//validate email address
function isValidEmail(email, required) {
	
    if (required==undefined) {   // if not specified, assume it's required
        required=false;
    }
    if (email==null) {
        if (required) {
            return false;
        }
        return true;
    }
    if (email.length==0) {  
        if (required) {
            return false;
        }
        return true;
    }
    if (! allValidChars(email)) {  // check to make sure all characters are valid
        return false;
    }
    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
        return false;
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
        return false;
    } else if (email.indexOf("@") == email.length-1) {  // @ must not be the last character
        return false;
    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid
	return false;
    } else if (email.indexOf(".") == email.length-1) {  // . must not be the last character
	return false;
    } else if (email.charAt(email.lastIndexOf(".")+2) == "") {  // at least 2 char after .
    	return false;
    }else if (email.charAt(email.lastIndexOf("@")+1) == ".") {  // at least 2 char after .
    	return false;
    }
    return true;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}


function trim(s)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (c != " ") returnString += c;
    }
    return returnString;
}

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){
var bracket=3
strPhone=trim(strPhone)
if(strPhone.indexOf("+")>1) return false
if(strPhone.indexOf("-")!=-1)bracket=bracket+1
if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
var brchr=strPhone.indexOf("(")
if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function pars_the_string(string){
var parsed = true;
var validchars = "abcdefghijklmnopqrstuvwxyz ";

  for (var i=0; i < string.length; i++) {
    
    var letter = string.charAt(i).toLowerCase();

    if (validchars.indexOf(letter) == -1){
//      continue;
      parsed = false;
//      break;
      
    }
  }
  return parsed;
}

function check_the_string(id){
var string=document.getElementById(id).value;

  if(string==""){
    return false;
  }else if(!pars_the_string(string)){
    return false;
  }else if(string.length < 2){
    return false
  }
  
  return true;
  
}
