function newXMLHttpRequest() 
 {
    var xmlreq = false;
    // Create XMLHttpRequest object in non-Microsoft browsers
    if (window.XMLHttpRequest) 
    {
      xmlreq = new XMLHttpRequest();
    } 
    else if (window.ActiveXObject) 
    {
      try {
      // Try to create XMLHttpRequest in later versions
      // of Internet Explorer
      xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
     } 
     catch (e1) 
     {
      // Failed to create required ActiveXObject
      try {
        // Try version supported by older versions
        // of Internet Explorer
           xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
          } 
          catch (e2) 
          {
            // Unable to create an XMLHttpRequest by any means
           xmlreq = false;
          }
     }
  }
   return xmlreq;
}

function getReadyStateHandler(req, responseXmlHandler) 
 {
    //alert("getReadyStateHandler");
   // Return an anonymous function that listens to the XMLHttpRequest instance
   return function () 
   {
     // If the request's status is "complete"
     if (req.readyState == 4) 
     {
       // Check that we received a successful response from the server
       if (req.status == 200) 
       {
         // Pass the XML payload of the response to the handler function.
         //alert("getReadyStateHandler handler .....");
         responseXmlHandler(req.responseXML);
         //alert("getReadyStateHandler.......out");
       }
       else 
       {
         // An HTTP problem has occurred
         alert("HTTP error "+req.status+": "+req.statusText);
       }
     }
   }
 }

function getHashValue(cartXML){
  //alert('in getHashValue');
  var cart = cartXML.getElementsByTagName("status")[0];
  var items = cart.getElementsByTagName("item");
  for (var I = 0 ; I < items.length ; I++) 
    {
      var item = items[I];
      var hiddenid = item.getElementsByTagName("hid")[0].firstChild.nodeValue;
      //alert('hiddenid is'+hiddenid);
      document.formLogin.MCRHash.value = hiddenid;
    }
//   alert('We will be upgrading to a new system over the coming weeks.  You may experience slight disruptions to the website and redemption services during this upgrade and we seek your kind understanding of this matter.'); 
   document.formLogin.action="http://www.mncreward.com/MCRLoginH.aspx";
   document.formLogin.submit();
}

function validate_login()
{
   var error = "";
//   alert (error.length);	
   if (document.formLogin.MEMBER_ID.value == "")
   {
     error = "Please enter the Email Address." + "\n" ;
   }
   //if(!validateEmail(document.formLogin.MEMBER_ID.value))
   //{
     //error = "Please enter valid Email address." + "\n" ;
   //}
  //if( document.formLogin.MEMBER_ID.value != "")
  //{
  	//var x=document.formLogin.MEMBER_ID.value
	//var anum=/(^\d+$)|(^\d+\.\d+$)/
	//if (!anum.test(x))
	//{
	//error+= "Please enter numeric only for the Membership No." + "\n"; 
	//}
  	//if (trim(document.formLogin.MEMBER_ID.value).length != 16)
	//{
       	 //error += "Please enter valid Membership No." +"\n";
	//}	
 //}
if (document.formLogin.PASSWORD.value == "")
{
        error += "Please enter the Password." + "\n";
}
else
{
      var charpos = document.formLogin.PASSWORD.value.search("[^A-Za-z0-9]"); 
      if( document.formLogin.PASSWORD.value.length > 0 &&  charpos >= 0) 
      { 
	error += "Please enter only alpha-numeric characters for the Password." +"\n";
      }//if
      if( document.formLogin.PASSWORD.value.length < 8 ) 
      {
         error += "Please enter correct number of characters Minimum : 8 , Current : "+ document.formLogin.PASSWORD.value.length + "\n";         
      }
      if( document.formLogin.PASSWORD.value.length > 16 ) 
      {
         error += "Please enter correct number of characters Maximum : 16 , Current : "+ document.formLogin.PASSWORD.value.length + "\n";         
      }      
  }
  if( error == "" || error.length <= 0 )
 {
	//var hexPassword = hex_sha(document.formLogin.PASSWORD.value,"SHA-1");
	//document.formLogin.hidPWD.value = hexPassword; 	
	//var qString = "loginId="+ document.formLogin.MEMBER_ID.value + "&loginPwd="+ hexPassword;
	//document.formLogin.action = "http://stg.millenniumhotels.com/opencms/enmcrewardslogin.do";
	//document.formLogin.submit(); 
	
      var loginId = document.formLogin.MEMBER_ID.value;
      var hidPwd = document.formLogin.PASSWORD.value;
      var req = newXMLHttpRequest();
      req.onreadystatechange = getReadyStateHandler(req, getHashValue);
      req.open("POST", "http://www.mncrewards.com/opencms/mcrlogin", true);
      req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      req.send("action=gethash&loginId="+loginId+"&hidPwd="+hidPwd);
  }
  else
  {
	alert(error);
  }
}


function trim(inputString) {
// **** Remove leading and trailing spaces ****

	//Make sure input is string, otherwise return input
	if (typeof inputString != "string") {
		return inputString;
	}

	var retValue = inputString;
	var ch = retValue.substring(0, 1);

	while (ch == " ") {
	//Check for leading spaces and remove
	retValue = retValue.substring(1, retValue.length);
	ch = retValue.substring(0, 1);
	}

	ch = retValue.substring(retValue.length-1, retValue.length);
	while (ch == " ") {
	//Check for trailing spaces and remove
	retValue = retValue.substring(0, retValue.length-1);
	ch = retValue.substring(retValue.length-1, retValue.length);
	}

	return retValue;
}

function validateEmail( strValue) {
/************************************************
DESCRIPTION: Validates that a string contains a 
  valid email pattern. 
  
 PARAMETERS:
   strValue - String to be tested for validity
   
RETURNS:
   True if valid, otherwise false.
   
REMARKS: Accounts for email with country appended
  does not validate that email contains valid URL
  type (.com, .gov, etc.) and optionally,
  a valid country suffix.  Since email has many
  forms this expression only tests for near valid
  address.  Some additional validation may be
  required.
*************************************************/
var objRegExp  = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,3}(\.[a-z]{2}){0,2})$/i;
  //check for valid email
  return objRegExp.test(strValue);
}

