/**
 * Checks to see if the entered email address has already been taken.
 **/

var xmlSection = jsXML.createDOMDocument("", "ValidEmail");
var xmlDisplaySection = jsXML.createDOMDocument("", "ValidDisplayName");
var emailFld = null;
var screenNameField = null;
var req = null;
var ssoChkDspUrl = "/SSO/DisplayNameExistService.do?displayname=";
var ssoChkEmailUrl = "/registration/CheckEmailAction.do?email=";

function checkEmailAddress(emailField)
{
 //var xmlSection = jsXML.createDOMDocument("<bean:message key=\"sitename\" />", "ValidEmail");
 var mytext = emailField.value;
 if(mytext == null || mytext == '' || mytext.length == 0)
 {
   return false;
 }
 emailFld = emailField;
 if(isSafari)
 {
    invokeAjaxCall(ssoChkEmailUrl + mytext);
 }
 xmlSection.load("/registration/CheckEmailAction.do?email=" + mytext);
 return setTimeout("checkValid()", 2000);
}

function checkValid()
{
 var xmlDoc = xmlSection.xml;
 //alert (xmlDoc);
 //alert("Root Node:" + xmlSection.documentElement.nodeName );
 var tmp = xmlSection.getElementsByTagName('CheckEmailAction');
 //alert( tmp[0].firstChild.firstChild.nodeValue );
 //alert(tmp.length);
 if((tmp.length > 0) && (tmp[0].firstChild.firstChild.nodeValue == 'true') )
 {
 	alert("We're sorry but the e-mail address you've entered is already in our system. If you think you may already be a registered member, please use the Sign In link");
   emailFld.value = '';
   return false;
 }
 else
 {
   return true;
 }
}

function checkDisplayName(field)
{
   var displayName = field.value;
   if(displayName == null || displayName == '' || displayName.length == 0)
   {
      //alert("Display name is not entered");
      return false;
   }
   else if(displayName.length > 50)
   {
      alert("The screen name can have maximum fifty characters");
      field.value = '';
      return false;
   }
   screenNameField = field;
   if(isSafari)
   {
      invokeAjaxCall(ssoChkDspUrl + displayName);
   }
   xmlDisplaySection.load("/SSO/DisplayNameExistService.do?displayname=" + displayName);
   return setTimeout("verifyValid()", 2000);
}

function verifyValid()
{
   var xmlDocument = xmlDisplaySection.xml;
   //alert(xmlDocument);
   var tmp = xmlDisplaySection.getElementsByTagName('DisplayNameExistService');
   //alert( tmp[0].firstChild.firstChild.nodeValue );
   if((tmp.length > 0) && (tmp[0].firstChild.firstChild.nodeValue == 'Abusive DisplayName Found') )
   {
      alert("The screen name " + screenNameField.value + " contains word(s) we find offensive");
      screenNameField.value = '';
      return false;
   }

   if((tmp.length > 0) && (tmp[0].firstChild.firstChild.nodeValue == 'DisplayName Found'))
   {
      alert("That screen name belongs to another user in our system. Please try again.");
      screenNameField.value = '';
      return false;
   }
   return true;
}

function invokeAjaxCall(url)
{
   if (window.XMLHttpRequest && !(window.ActiveXObject)) {
       //alert("You are using Safar browser, URL " + url);
       req = new XMLHttpRequest();
       req.onreadystatechange = processReqChange;
       req.open("POST", url, true);
       req.send();
   }
}

function processReqChange()
{
   if (req.readyState == 4)
   {
      if (req.status == 200)
      {
         //alert(req.responseText);
         var objDOMParser = new DOMParser();
         var objDoc = objDOMParser.parseFromString(req.responseText, "text/xml");
         //alert(objDoc.documentElement.nodeName);
         //alert("value " + objDoc.firstChild.firstChild.firstChild.nodeValue);
         if(objDoc.documentElement.nodeName == 'CheckEmailAction')
         {
            if(objDoc.firstChild.firstChild.firstChild.nodeValue == 'true')
            {
               alert("We're sorry but the e-mail address you've entered is already in our system. If you think you may already be a registered member, please use the Sign In link");
               emailFld.value = '';
               return false;
            }
            else
            {
               return true;
            }
         }
         else if(objDoc.documentElement.nodeName == 'DisplayNameExistService')
         {
            if(objDoc.firstChild.firstChild.firstChild.nodeValue == 'Abusive DisplayName Found')
            {
               alert("The screen name " + screenNameField.value + " contains word(s) we find offensive");
               screenNameField.value = '';
               return false;
            }

            if(objDoc.firstChild.firstChild.firstChild.nodeValue == 'DisplayName Found')
            {
               alert("That screen name belongs to another user in our system. Please try again.");
               screenNameField.value = '';
               return false;
            }
            return true;
         }
      }
      else
      {
         //alert("There was a problem retrieving the XML data:\n" + req.statusText);
      }
   }
}

