// JavaScript Document
var xmlHttpUserVerification;
var xmlHttpEmailVerification;
var flagError = "0";
var flag = "";
var flagPassword = "";
var flagConfirmPassword = "";
var finalFlag = "";
var textContainer = "";
var flagEmail = "";

//var loadingMessage = "<table width=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\"<tr><td width=\"25%\" class=\"background-gray\"><div class=\"body\"><img src=\"http://www.certstation.com/images/loading-news.gif\"></div></td></tr></table> ";

var loadingMessage = "";

















function GetXmlHttpObject() {

    var xml = null;

    try {
        xml = new ActiveXObject("Msxml2.XMLHTTP");

    } catch (e) {

        try {

            xml = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (d) {

        }

    }

    if (xml == null) {

        xml = new XMLHttpRequest();
    }

    return xml;
}


function getUserVerification(){

    document.getElementById("divUserName").innerHTML=loadingMessage;
    xmlHttpUserVerification = GetXmlHttpObject();

    if (xmlHttpUserVerification == null) {
        alert('Your browser does not support xml http request');
        return;
    }

    var usernameToCheck = document.getElementById("username").value;
//    var url = "http://usp.hdaar.com/eval/checkUserName.jsp";
//   var url = "/eval/checkUserName.jsp";
//    var url = "/checkUserName.jsp";
    var url = "checkUserName.jsp";
    url = url+"?nocaching="+Math.random()+"&data=user_name&username="+usernameToCheck;


    xmlHttpUserVerification.onreadystatechange=showUserVerification;
    xmlHttpUserVerification.open("GET",url,true);
    xmlHttpUserVerification.send(null);

}


function showUserVerification() {

    if (xmlHttpUserVerification.readyState==4 || xmlHttpUserVerification.readyState=="complete") {
              /*var loggedout = xmlHttpUserVerification.responseText.replace(/\n/g,"");//logout();

              if(loggedout){
              refreshmethod();
              return;
              }
              else {

*/
textContainer = xmlHttpUserVerification.responseText.replace(/\n/g,"");
if (textContainer == "Username already exists! Please try some other name") {

              document.getElementById("divUserName").style.display = "block";
              document.getElementById("divUserName").innerHTML=xmlHttpUserVerification.responseText;
              flag = xmlHttpUserVerification.responseText;
              flag = flag.replace(/\n/g,"");

			  }
else {
document.getElementById("divUserName").style.display = "none";
flag = xmlHttpUserVerification.responseText;
flag = flag.replace(/\n/g,"");

}
   // }
/*
else {
document.getElementById("divUserName").innerHTML="";
document.getElementById("divUserName").style.display = "none";
return true;
}*/

}
}



function getEmailVerification(){

    document.getElementById("divUserName").innerHTML=loadingMessage;
    xmlHttpEmailVerification = GetXmlHttpObject();

    if (xmlHttpEmailVerification == null) {
        alert('Your browser does not support xml http request');
        return;
    }

    var emailToCheck = document.getElementById("email").value;
//    var url = "http://usp.hdaar.com/eval/checkUserName.jsp";
//   var url = "/eval/checkUserName.jsp";
//    var url = "/checkUserName.jsp";
    var url = "checkEmail.jsp";
    url = url+"?nocaching="+Math.random()+"&data=email_address&email="+emailToCheck;


    xmlHttpEmailVerification.onreadystatechange=showEmailVerification;
    xmlHttpEmailVerification.open("GET",url,true);
    xmlHttpEmailVerification.send(null);

}


function showEmailVerification() {


    if (xmlHttpEmailVerification.readyState==4 || xmlHttpEmailVerification.readyState=="complete") {

              /*var loggedout = xmlHttpUserVerification.responseText.replace(/\n/g,"");//logout();

              if(loggedout){
              refreshmethod();
              return;
              }
              else {

*/
textContainer = xmlHttpEmailVerification.responseText.replace(/\n/g,"");

if (textContainer == "Email already exists! Please try some other email") {


              document.getElementById("divEmail").style.display = "block";
              document.getElementById("divEmail").innerHTML=xmlHttpEmailVerification.responseText;
              flagEmail = xmlHttpEmailVerification.responseText;
              flagEmail = flagEmail.replace(/\n/g,"");


			  }
else {
document.getElementById("divEmail").style.display = "none";
flagEmail = xmlHttpEmailVerification.responseText;
flagEmail = flagEmail.replace(/\n/g,"");

}
   // }
/*
else {
document.getElementById("divUserName").innerHTML="";
document.getElementById("divUserName").style.display = "none";
return true;
}*/

}
}


function validateEmailField() {
getEmailVerification();
}

function validateUserNameField() {
	if( document.getElementById("username").value.length < 6 )
		{
			document.getElementById("error13").style.display = "block";


		}

		else {
			document.getElementById("error13").style.display = "none";
			getUserVerification();
		}
}

function validatePasswordField() {
        if( (document.getElementById("password").value.length >= 1) &&  (document.getElementById("password").value.length < 6))
		{
			document.getElementById("error15").style.display = "block";
                       // flagPassword = "1";


		}
		else {
			document.getElementById("error15").style.display = "none";

		}
}

function validateConfirmPasswordField() {
if (document.getElementById("confirmPassword").value != document.getElementById("password").value)
{
document.getElementById("error14").style.display = "block";
//flagConfirmPassword = "1";
}

else {
document.getElementById("error14").style.display = "none";

}
}


function validateForm2()
{
if (document.getElementById("website").value == "")
  {
   document.getElementById("error16").style.display = "block";
   flagError = "1";
  }
else if (document.getElementById("website").value != "")
  {
   var validation_return = validateURL(document.getElementById("website"));
//alert("validation_return ="+validation_return);
   if (validation_return == false)
   {
   document.getElementById("illerror16").style.display = "block";
   flagError = "1";
   }
  }

if (flagError == "1")
  {
flagError = "0";
return false;
  }
 else
  {
   return true;
  }

}


function validateForm()
{


 if (document.getElementById("firstname").value == "")
  {
   document.getElementById("error1").style.display = "block";
   flagError = "1";

  }
   else if (document.getElementById("firstname").value != "")
  {
   var validation_return = checkForSpecialCharactersRegistration(document.getElementById("firstname"));
   if (validation_return == true)
   {
   document.getElementById("illerror1").style.display = "block";
   flagError = "1";
   }
  }
 if (document.getElementById("lastname").value == "")
  {
   document.getElementById("error2").style.display = "block";
   flagError = "1";
  }
 else if (document.getElementById("lastname").value != "")
  {
   var validation_return = checkForSpecialCharactersRegistration(document.getElementById("lastname"));
   if (validation_return == true)
   {
   document.getElementById("illerror2").style.display = "block";
   flagError = "1";
   }
  }

if (document.getElementById("address").value != "")
  {
   var validation_return = checkForSpecialCharactersCompanyAddress(document.getElementById("address"));
   if (validation_return == true)
   {
   document.getElementById("illerror3").style.display = "block";
   flagError = "1";
   }
  }

 if (document.getElementById("email").value == "")
  {
   document.getElementById("error4").style.display = "block";
   flagError = "1";
  }
 else if (validateEmailAddress (document.getElementById("email")) == false) {
/* else if( (document.getElementById("email").value.indexOf(".") == -1) || (document.getElementById("email").value.indexOf("@") == -1) )
  {
   document.getElementById("error4-2").style.display = "block";
   flagError = "1";
*/

   document.getElementById("illerror4").style.display = "block";
   flagError = "1";
		}

if (document.getElementById("company").value != "")
  {
   var validation_return = checkForSpecialCharactersCompanyAddress(document.getElementById("company"));
   if (validation_return == true)
   {
   document.getElementById("illerror5").style.display = "block";
   flagError = "1";
   }
  }


if (document.getElementById("zipcode").value != "")
  {
   var validation_return = checkForSpecialCharactersZip(document.getElementById("zipcode"));
   if (validation_return == true)
   {
   document.getElementById("illerror6").style.display = "block";
   flagError = "1";
   }
  }

if (document.getElementById("country").value != "")
  {
   var validation_return = checkForSpecialCharactersRegistration(document.getElementById("country"));
   if (validation_return == true)
   {
   document.getElementById("illerror7").style.display = "block";
   flagError = "1";
   }
  }

if (document.getElementById("city").value != "")
  {
   var validation_return = checkForSpecialCharactersRegistration(document.getElementById("city"));
   if (validation_return == true)
   {
   document.getElementById("illerror8").style.display = "block";
   flagError = "1";
   }
  }



 if (document.getElementById("phone").value == "")
  {
   document.getElementById("error9").style.display = "block";
   flagError = "1";
  }

else if (document.getElementById("phone").value != "")
  {
   var validation_return = checkForSpecialCharactersPhone(document.getElementById("phone"));
   if (validation_return == true)
   {
   document.getElementById("illerror9").style.display = "block";
   flagError = "1";
   }
  }

 if (document.getElementById("username").value == "")
  {
   document.getElementById("error10").style.display = "block";
   flagError = "1";
  }
  else if( document.getElementById("username").value.length < 6 )
  {
   document.getElementById("error13").style.display = "block";
   flagError = "1";
  }
  else if (document.getElementById("username").value != "")
  {
   var validation_return = checkForSpecialCharactersUserName(document.getElementById("username"));
   if (validation_return == true)
   {
   document.getElementById("illerror10").style.display = "block";
   flagError = "1";
   }
  }

 if (flag != "")
  {
   flagError = "1";

  }
if (flagEmail != "")
{
flagError = "1";

}

 if (document.getElementById("password").value == "")
  {
   document.getElementById("error11").style.display = "block";
   flagError = "1";
  }

 else if( (document.getElementById("password").value.length > 1) &&  (document.getElementById("password").value.length < 6))
  {
   document.getElementById("error15").style.display = "block";
   flagError = "1";
  }

 else if (document.getElementById("password").value != "")
  {
   var validation_return = checkForSpecialCharactersZip(document.getElementById("password"));
   if (validation_return == true)
   {
   document.getElementById("illerror11").style.display = "block";
   flagError = "1";
   }
  }

 if (document.getElementById("confirmPassword").value != document.getElementById("password").value)
  {
   document.getElementById("error14").style.display = "block";
   flagError = "1";
  }
 if (!document.getElementById("agreement").checked)
  {
   document.getElementById("error12").style.display = "block";
   flagError = "1";
  }



 if (flagError == "1")// || flag != "" || flagPassword != "" || flagConfirmPassword != "")
  {

//flagPassword = "";
//flagConfirmPassword = "";
//flag = "";
flagError = "0";

//finalFlag = "1";
return false;
  }
 else
  {




   return true;
  }
}

function allGood(id,number)
{
 if(id)
  {

   document.getElementById("error"+number).style.display = "none";
   document.getElementById("illerror"+number).style.display = "none";
 /*if (id == "email")
  {
   if ((document.getElementById("email").value.indexOf(".")) && (document.getElementById("email").value.indexOf("@"))) {
   document.getElementById("error4-2").style.display = "none";
   }
  }*/
  }


}

function removeAjaxError()
{
 document.getElementById("divUserName").style.display = "none";
 document.getElementById("error10").style.display = "none";
 document.getElementById("illerror10").style.display = "none";
}

function removeAjaxEmailError()
{
 document.getElementById("divEmail").style.display = "none";
 document.getElementById("error4").style.display = "none";
 document.getElementById("illerror4").style.display = "none";
}

function checkOctetsForNumbers(field) {

                for (var i = 0; i < field.length; i++) {

                    for (var k = 0; k < field[i].length ; k++) {

                        var j = field[i].charCodeAt(k);

                        if (j < 48 || j > 57) { //ascii numbers range

                            return false;
                        }
                    }
                }
                return true;
            }

            function checkForSpecialCharacters (field) {

                var entry = field.value;

                for (var i = 0; i < entry.length; i++) {

                    var j = entry.charCodeAt(i);

                    if (j < 32) { // allowing . - /

                        return true;
                    }

                   if (j > 57 && j < 65) {

                        if (j != 58) { // allowing :
                            return true;
                        }
                    }

                    if (j > 91 && j < 96) {

                        if (j != 95) { // allowing _
                            return true;
                        }
                    }

                    if (j > 122) {
                        return true;
                    }
                }
                return false;
            }

             function checkForSpecialCharactersRegistration (field) {

                var entry = field.value;

                for (var i = 0; i < entry.length; i++) {

                    var j = entry.charCodeAt(i);

                  if (j < 32) { // allowing . SPACE

                        return true;
                    }

                   if (j >32 && j < 65) { // allowing . SPACE

                        return true;
                    }

                   if (j > 90 && j < 97) {

                            return true;

                    }

                    if (j > 122) {
                        return true;
                    }
                }

                return false;
            }


           function checkForSpecialCharactersZip (field) {

                var entry = field.value;

                for (var i = 0; i < entry.length; i++) {

                    var j = entry.charCodeAt(i);

                    if (j < 48) { // allowing . SPACE

                        return true;
                    }

                    if (j > 57 && j < 65) {

                        return true;

                    }

                   if (j > 90 && j < 97) {

                            return true;

                    }

                    if (j > 122) {
                        return true;
                    }
                }
                return false;
            }


            function checkForSpecialCharactersPhone (field) {

                var entry = field.value;

                for (var i = 0; i < entry.length; i++) {

                    var j = entry.charCodeAt(i);

                    if (j < 45) { // allowing . SPACE

                        return true;
                    }
                    if (j > 46 && j < 48) {
                        return true;
                    }
                    if (j > 57) {
                        return true;
                    }
                }
                return false;
            }

            function checkForSpecialCharactersUserName (field) {

                var entry = field.value;

                for (var i = 0; i < entry.length; i++) {

                    var j = entry.charCodeAt(i);

                    if (j < 45) { // allowing . SPACE

                        return true;
                    }
                    if (j > 46 && j < 48) { // allowing . SPACE

                        return true;
                    }
                    if (j > 57 && j < 65) { // allowing . SPACE

                        return true;
                    }
                    if (j > 90 && j < 95) { // allowing . SPACE

                        return true;
                    }
                    if (j > 95 && j < 97) { // allowing . SPACE

                        return true;
                    }
                    if (j > 122) { // allowing . SPACE

                        return true;
                    }
                }
                return false;
            }

            function checkForSpecialCharactersCompanyAddress (field) {

                var entry = field.value;

                for (var i = 0; i < entry.length; i++) {

                    var j = entry.charCodeAt(i);

                    if (j < 32) { // allowing . SPACE

                        return true;
                    }
                    if (j>32 && j < 35) { // allowing . SPACE

                        return true;
                    }
                    if (j>57 && j < 65) { // allowing . SPACE

                        return true;
                    }
                     if (j>125) { // allowing . SPACE

                        return true;
                    }
                }
                return false;
            }

            function validateEmailAddress (field) {


                if (spacesInEntry(field)) {

                   // alert ('Invalid Email Address! No spaces are allowed');
                    field.select();
                    field.focus();
                    return false;
                }


                var emailAddress = field.value.split("@");
                if (emailAddress.length != 2) {

                   // alert ('Invalid Email Address!');
                    field.select();
                    field.focus();
                    return false;
                } else {

                    if (emailAddress[0] == '') {

                        //alert ('Invalid Email Address!');
                        field.select();
                        field.focus();
                        return false;
                    }

                    emailAddress[0] = emailAddress[0].replace ( / /g, ""); // replace spaces globablly

                    if (emailAddress[0].length == 0) {

                       // alert ('Invalid Email Address!');
                        field.select();
                        field.focus();
                        return false;
                    }

                    if (checkEmailUserName(emailAddress[0]) == false) {
                        //alert ('Invalid username for the email address!');
                        field.select();
                        field.focus();
                        return false;
                    }
                }
                var domainAddress = emailAddress[emailAddress.length - 1].split(".");

                if (domainAddress.length < 2) {
                   // alert ('Invalid Email Address!');
                    field.select();
                    field.focus();
                    return false;
                } else {

                    for (var j = 0; j < domainAddress.length; j++) {

                        if (domainAddress[j] == '') {

                           // alert ('Invalid Email Address!');
                            field.select();
                            field.focus();
                            return false;
                        }
                    }
                }
                return true;
            }

            function spacesInEntry (field) {
                var entry = field.value;
                var originalLength = entry.length;

                var temp = entry.replace (/ /g, "");
                var tempLength = temp.length;

                if (originalLength != tempLength) {


                    return true;
                }
                return false;
            }

            function isNumber (str) {
//var checkFlag = true;
                if (str.length == 0) {
                    return false;
                }
                for (var i = 0; i < str.length; i++) {

                    var j = str.charCodeAt(i);

                    //if (j < 48 || j > 57) {

                    if (isCharacterNumerical(j) == true) {

                       return  true;

                    }


                }
                return false;
            }

            function isCharacterNumerical (charCode) {

                if (charCode < 48 || charCode > 57) {
                        return false;
                }
                return true;
            }

            function isCharacterAlpha (charCode) {

                var upperCase = false, lowerCase = false;

                    // A - Z : 65 - 90, a -z : 97 - 122

                    if (charCode >= 65 && charCode <= 90) {
                        upperCase = true;
                    }

                    if (charCode >= 97 && charCode <= 122) {
                        lowerCase = true;
                    }

                return lowerCase || upperCase;
            }

            function checkEmailUserName(emailId) {


            //letters(a-z),numbers(0-9),underscore(_),dot(.) and hyphen(-)


                for (var i = 0; i < emailId.length; i++) {

                    var j = emailId.charCodeAt(i);
                    if (j == 45 || j == 46 || j == 95) { // . - _ allowed
                        continue;
                    }
                    if (isCharacterAlpha(j) == false && isCharacterNumerical(j) == false) {
                        return false;

                    }

                }
                return true;
            }

function validateURL(field)
{
return /^(ftp|https?:\/\/)?(www\.){0,1}[a-z0-9\-\.]{3,}\.[a-z]{2,}[\:^0-9]{0,7}$/.test(field.value);
//return /^(ftp|https?):\/\/+(www\.)?[a-z0-9\-\.]{3,}\.[a-z]{3}$/.test(field.value);
//return /^[a-z0-9\-\.]{3,}\.[a-z]{3}$/.test(field.value);

}
