  function errorMessage(str,error,flag){
    if(flag==null || flag==false)alert(str+" "+error);
    return false;
  }

  function isEmpty(str){
    var not=-1;
    for(i=0;i<str.length;i++)
      if(str.charAt(i)!=' ')not=i;
    if(not == -1)return true;
    else return false;
  }

  function isIPAddress(address,flag){
		var countOfPoints = 0;
    var startPost=0;
    var point="";
    for(i=0;i<address.length;i++){
			if(address.charAt(i)=='.'){
				countOfPoints++;
        if(point > 255)
					return errorMessage(address," is not IP address!",flag);
        point="";
			}else
				point+=address.charAt(i);
      if(address.charAt(i)!='0' && address.charAt(i)!='1' && address.charAt(i)!='3' && address.charAt(i)!='4' &&
				address.charAt(i)!='5' && address.charAt(i)!='6' && address.charAt(i)!='7' && address.charAt(i)!='8' &&
        address.charAt(i)!='2' && address.charAt(i)!='9' && address.charAt(i)!='.')
					return errorMessage(address," is not IP address!",flag);
    }
    if(countOfPoints < 2)
			return errorMessage(address," is not IP address!",flag);
    return true;
	}

	function isEmailAddress(email,flag){
		var dogPosition=0;
    for(i=0;i<email.length;i++)
       if(email.charAt(i)=='@')dogPosition=i;
    if(dogPosition == 0)return errorMessage(email," is not E-Mail address!",flag);
    return true;
  }

  function trim(str){
     var otv="";
     var i=0,j=str.length,i1=0;
     while(str.charAt(i++)==' ');
     while(str.charAt(--j)==' ');
     for(i1=i-1;i1<j+1;i1++)otv+=str.charAt(i1);
     return otv;
  }

  function isDomainName(domain1,flag){
    var domain = trim(domain1);
    if(domain.charAt(0)=='-')return errorMessage(domain,"Please enter your domain name without prefix - !");

    //make sure the last char is not '-'
    var size = domain.length;
    if ( domain.charAt(size-1) == '-' )return errorMessage(domain,"is not a domain name!",flag);
    if (domain != '' && domain.length<=2)return errorMessage(domain," Two letter domain not available in UK !",flag);

     for(i=0;i<domain.length;i++){
       if(!( (domain.charAt(i)>=0  && domain.charAt(i)<=9) ||
             (domain.charAt(i)>='a' && domain.charAt(i)<='z')||
             (domain.charAt(i)>='A' && domain.charAt(i)<='Z') ||
             (domain.charAt(i)=='-' && domain.charAt(i-1)!='-' || ((domain.charAt(0) == 'x' || domain.charAt(0) == 'X' ) && (domain.charAt(1)== 'N' || domain.charAt(1)== 'n' )  && domain.charAt(2)=='-' && domain.charAt(3)=='-' ) )
             )||domain.charAt(i)==' ')return errorMessage(domain,"Please re-enter you domain name without the suffix",flag);
     }
     return true;
  }

	function isDomainName2(domain1,flag){
    var domain = trim(domain1);
    if(domain.charAt(0)=='-')return errorMessage(domain,"Please enter your domain name without prefix - !");

    //make sure the last char is not '-'
    var size = domain.length;
    if ( domain.charAt(size-1) == '-' )return errorMessage(domain," is not a domain name!",flag);
    if (domain != '' && domain.length<=2)return errorMessage(domain," Two letter domain not available in UK !",flag);

     for(i=0;i<domain.length;i++){
       if(!( (domain.charAt(i)>=0  && domain.charAt(i)<=9) ||
             (domain.charAt(i)>='a' && domain.charAt(i)<='z')||
             (domain.charAt(i)>='A' && domain.charAt(i)<='Z') ||
             (domain.charAt(i)=='-' && domain.charAt(i-1)!='-' || ((domain.charAt(0) == 'x' || domain.charAt(0) == 'X' ) && (domain.charAt(1)== 'N' || domain.charAt(1)== 'n' )  && domain.charAt(2)=='-' && domain.charAt(3)=='-' ) )
             )||domain.charAt(i)==' ')return false;
     }
     return true;
  }

	function validDomainName(domainName, tld) {
		var res = false;
		if (tld == "name") {
			if (!validDotNameDomainName(domainName)) {
				res = true;
			}
		} else {
			if (!validOtherDomainName(domainName)) {
				res = true;
			}
		}
		return res;
	}

	function validOtherDomainName(aDomainName) {
		var res = false;
		var domainName = aDomainName.toLowerCase();
		<!--var domainNamePattern = /^[0-9A-Za-z][0-9A-Za-z-]*[0-9A-Za-z]$/;-->
		var domainNamePattern = /^[^ \.\!\"\$\^\&\*\(\)\_\+\=\{\}\@\#\'\:\;\?\/\>\<\,\-][^ \.\!\"\$\^\&\*\(\)\_\+\=\{\}\@\#\'\:\;\?\/\>\<\,]*[^ \.\!\"\$\^\&\*\(\)\_\+\=\{\}\~\@\#\'\:\;\?\/\>\<\,\-]$/;
		if (domainName.search(domainNamePattern) == -1) {
			res = true;
		}
		return res;
	}


function validDotNameDomainName(aDomainName) {
		var res = false;
		var domainName = aDomainName.toLowerCase();
		var domainNamePattern = /^[0-9A-Za-z][0-9A-Za-z-]*[0-9A-Za-z](\.[0-9A-Za-z][0-9A-Za-z-]*[0-9A-Za-z]$|$)/;
		if (domainName.search(domainNamePattern) == -1) {
			res = true;
			
		}
		return res;
	}

  function isNameServer(domain1,flag){
    var domain = trim(domain1);
    if(domain.charAt(0)=='-')return errorMessage(domain,"is not Name Server!",flag);
     for(i=1;i<domain.length;i++){
       if(!( (domain.charAt(i)>=0  && domain.charAt(i)<=9) ||
             (domain.charAt(i)>='a' && domain.charAt(i)<='z')||
             (domain.charAt(i)>='A' && domain.charAt(i)<='Z') ||
             (domain.charAt(i)=='-' && domain.charAt(i-1)!='-')||
             (domain.charAt(i)=='.' && domain.charAt(i-1)!='.')
             )||domain.charAt(i)==' ')return errorMessage(domain,"is not Name Server!",flag);
     }
     if(domain.indexOf('.')<2)return errorMessage(domain,"is not Name Server!",flag);
     return true;
  }

function isURL(domain1,flag){
		var res = false;
		var domainName = trim(domain1.toLowerCase());
		var domainNamePattern = /^((ftp:\/\/|http:\/\/)?[a-zA-Z0-9])([\-]?[a-zA-Z0-9])*(\.[a-zA-Z0-9]+([\-]?[a-zA-Z0-9])*)+/;
		if (domainName.search(domainNamePattern) == -1) {
		  res = errorMessage(domainName,"is not a valid URL",flag);			
		} else {
			res = true;
		}
	  return res;
	}


  function isWildCard(domain1,flag){
    var domain = trim(domain1);
    if(domain.charAt(0)=='-')return errorMessage(domain," is not Wildcard!",flag);
     for(i=1;i<domain.length;i++){
       if(!( (domain.charAt(i)>=0  && domain.charAt(i)<=9) ||
             (domain.charAt(i)>='a' && domain.charAt(i)<='z')||
             (domain.charAt(i)>='A' && domain.charAt(i)<='Z') ||
             (domain.charAt(i)=='-' && domain.charAt(i-1)!='-') ||
             (domain.charAt(i)=='*') || (domain.charAt(i)=='?')
             )||domain.charAt(i)==' ') return errorMessage(domain," is not Wildcard!",flag);
     }
     return true;
  }

  function isNotEmpty(str,flag){
    if(str.length == 0)return errorMessage("Error : ","this field is EMPTY!",flag);
    var b=0;
    for(i=0;i<str.length;i++)
      if(str.charAt(i)!=' ')b++;
    if(b==0)return errorMessage("Error : ","this field is EMPTY!",flag);
    return true;
  }
	function isTelephoneNumber(myTel, canBeNull) {
		myRe = /^\+[0-9]{1,3}\.[0-9]{1,12}$/;
		retVal = true;
		//myTel = document.aForm.tel.value
		myAnswer = myRe.test(myTel);
				if (myAnswer) { //num ok
						//window.alert("Tel/Fax number:" + myTel + " is ok e.g: +44.2073366777" );
						retVal = true;
				} else {
						return errorMessage(myTel," is not an international telephone number!",canBeNull);
					 //window.alert("Tel/Fax number:" + myTel + " in wrong format e.g: +44.2073366777" );
					 //retVal = false;
				}//if
		return retVal;
	}
		function isNameDomainName(aDomainName) {
		var domainName = aDomainName.toLowerCase();
		var domainNamePattern = /^[0-9A-Za-z][0-9A-Za-z-]*[0-9A-Za-z]\.[0-9A-Za-z][0-9A-Za-z-]*[0-9A-Za-z]$/;
		if (domainName.search(domainNamePattern) == -1) {
			alert(domainName + " is an invalid dot name domain name.");
			return false;
		}
		return true;
	}
