/**
 * @author nbalsaras
 */

// FORM VALIDATION

var at = /@/;
var multiOwnedElement;

function validateForm(form) {
	if(form.password.value == ''){
		var errorBlock = document.getElementsByClassName('error')[0];
		if(errorBlock.getElementsByTagName('h5')[0] == undefined){
			newH5 =document.createElement('h5');
			newTxt = document.createTextNode('Sorry, there was a problem with your request:');
			newH5.appendChild(newTxt);
			errorBlock.appendChild(newH5);
		}
		
		newUl = document.createElement('ul');
		errorBlock.appendChild(newUl);
		
		newLi = document.createElement('li');
		newTxt = document.createTextNode('You must enter a password');
		newLi.appendChild(newTxt);
		errorBlock.getElementsByTagName('ul')[0].appendChild(newLi);
		
		return false;
	}
	else
	
	if (at.test(form.email.value)) {
		var mygetrequest=new ajaxRequest()
		mygetrequest.onreadystatechange=function(){
			if (mygetrequest.readyState==4){
				if (mygetrequest.status==200 || window.location.href.indexOf("http")==-1){
					if (mygetrequest.responseText != 'multiple') {
						form.submit();
					}
					else {
						postError('multiOwners');
					}
				}
				else{
					alert("An error has occured making the request");
				}
			}
		}
		var emailvalue=encodeURIComponent(document.getElementById("email").value);
		var httpL=encodeURIComponent('http://');
		mygetrequest.open("GET", "/login_checkemail.asp?email="+emailvalue, true);
		mygetrequest.send(null);
	}
	else{
		form.submit();
	}
	return false;
}

function postError(errorType){
	document.getElementById('javaAlert').style.display = 'block';
	var alertBlock = document.getElementById('javaAlert').getElementsByTagName('div')[0];
	
	// If IE6, fix up element height
	if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		document.getElementById('javaAlert').style.height = document.documentElement.clientHeight;
	}
	
	newH3 = document.createElement('h4')
	newTxt = document.createTextNode('Please confirm your Member number:');
	newH3.appendChild(newTxt);
	alertBlock.appendChild(newH3);
	
	if(errorType == 'multiOwners'){
		newP = document.createElement('p')
		newTxt = document.createTextNode('More than one Member was found for your email address. Please enter your Member number to continue.');
		newP.appendChild(newTxt);
		alertBlock.appendChild(newP);
		
		newForm = document.createElement('form');
		newForm.setAttribute('action', '/default.asp?login=1');
		newForm.setAttribute('method', 'post');
		newP = document.createElement('p');
		newP.setAttribute('style', 'padding:0 20px;');
		newP.setAttribute('class', 'textField');
		newLabel = document.createElement('label');
		newLabel.setAttribute('for', 'regonumber');
		newInput = document.createElement('input');
		newInput.setAttribute('type', 'text');
		newInput.setAttribute('id', 'regonumber');
		newInput.setAttribute('name', 'regonumber');
		newTxt = document.createTextNode('Member number');
		newLabel.appendChild(newTxt);
		newP.appendChild(newLabel);
		newP.appendChild(newInput);
		newForm.appendChild(newP);
		
		newP = document.createElement('p');
		newP.setAttribute('class', 'textField');
		newP.setAttribute('style', 'padding:0 20px;');
		newLabel = document.createElement('label');
		newLabel.setAttribute('for', 'password2');
		newInput = document.createElement('input');
		newInput.setAttribute('type', 'password');
		newInput.setAttribute('id', 'password2');
		newInput.setAttribute('name', 'password2');
		newInput.setAttribute('value', document.getElementById("password").value);
		newTxt = document.createTextNode('Password');
		newLabel.appendChild(newTxt);
		newP.appendChild(newLabel);
		newP.appendChild(newInput);
		newForm.appendChild(newP);
		
		newP = document.createElement('p');
		newP.setAttribute('class', 'submit');
		newInput = document.createElement('input');
		newInput.setAttribute('type', 'submit');
		newInput.setAttribute('id', 'login2');
		newInput.setAttribute('name', 'login2');
		newInput.setAttribute('value', 'Login');
		newP.appendChild(newInput);
		newForm.appendChild(newP);
		
		alertBlock.appendChild(newForm);
	}
	
	alertBlock.style.marginTop = Math.round((-50)-(alertBlock.offsetHeight/2)) + "px";
}




function ajaxRequest(){
 var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"] //activeX versions to check for in IE
 if (window.ActiveXObject){ //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
  for (var i=0; i<activexmodes.length; i++){
   try{
    return new ActiveXObject(activexmodes[i])
   }
   catch(e){
    //suppress error
   }
  }
 }
 else if (window.XMLHttpRequest) // if Mozilla, Safari etc
  return new XMLHttpRequest()
 else
  return false
}



onload=function(){ // getElementByClassName for IE6
	if (document.getElementsByClassName == undefined) {
		document.getElementsByClassName = function(className)
		{
			var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
			var allElements = document.getElementsByTagName("*");
			var results = [];
	
			var element;
			for (var i = 0; (element = allElements[i]) != null; i++) {
				var elementClass = element.className;
				if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
					results.push(element);
			}
	
			return results;
		}
	}
}