var loaderVisible = false;
var confirmVisible = false;
var buttonVisible = false;

function validateEmail( emailAddress)
{
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   if(reg.test(emailAddress) == true) {
     var button = document.getElementById("button");
	 button.style.cursor = "pointer";
	// button.setAttribute("onmouseover","this.src='images/content/button_mouseover.png';");
	// button.setAttribute("onmouseout","this.src='images/content/button.png';");
	 
	 button.style.opacity = '1.0'; 
	 button.style.filter = 'alpha(opacity=100)';
	 document.getElementById('loader').style.display = 'none';
	 document.getElementById('confirm').style.display = 'block';
	 // --
	 loaderVisible = false;
	 confirmVisible = true;
	 return true
   }
   else
   {
	   if( !loaderVisible && emailAddress != "")
	   {
		  if( confirmVisible )
		  {
				var button = document.getElementById('button');
	 			button.style.opacity = '0.5'; 
	 			button.style.filter = 'alpha(opacity=50)';
	 			document.getElementById('loader').style.display = 'block';
	 			document.getElementById('confirm').style.display = 'none';
	 			
				loaderVisible = true;
				document.getElementById("button").style.cursor = "auto";
				document.getElementById("button").setAttribute( "onmouseover", "" );
				document.getElementById("button").setAttribute( "onmouseout", "" );
				confirmVisible = false;
		  }
		  else 
		  {
				document.getElementById('loader').style.display = 'block';
				
		  		loaderVisible = true;  
		  }
		  
	   }
	   else if ( loaderVisible && emailAddress == "" || confirmVisible)
	   {
		  document.getElementById('loader').style.display = 'none';
		  
		  loaderVisible = false;
	   }
       return false;   
   }
}

function onFocusHandler( object )
{
	if( object.value == "Enter e-mail address" )
	{
		object.value = "";
	}
}

function onBlurHandler( object )
{
	if( validateEmail( object.value ) == false || object.value == "")
	{
		object.value = "Enter e-mail address";
	 	var button = document.getElementById('button');
		button.style.opacity = '0.5'; 
	 	button.style.filter = 'alpha(opacity=50)';
	 	document.getElementById('loader').style.display = 'none';
	 	document.getElementById('confirm').style.display = 'none';
	
		document.getElementById("button").style.cursor = "auto";
		document.getElementById("button").setAttribute( "onmouseover", "" );
		document.getElementById("button").setAttribute( "onmouseout", "" );
		loaderVisible = false;
	}
}



var http_request = false;
function makePOSTRequest(url, parameters) {
	http_request = false;
 document.getElementById('confirm').style.display = 'none';
  document.getElementById('loader').style.display = 'block';
  if (window.XMLHttpRequest) { 
	 http_request = new XMLHttpRequest();
	 if (http_request.overrideMimeType) {
	
		http_request.overrideMimeType('text/html');
	 }
  } else if (window.ActiveXObject) { // IE
	 try {
		http_request = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
		try {
		   http_request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	 }
  }
  if (!http_request) {
	 alert('Cannot create XMLHTTP instance');
	 return false;
  }
  
  http_request.onreadystatechange = alertContents;
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);
}

function alertContents() 
{
  if (http_request.readyState == 4) 
  {
	 if (http_request.status == 200) 
	 {
		
		var result = parseInt(http_request.responseText);
		
		document.getElementById('loader').style.display = 'none';
		
		
		switch (result)
		{
		case 0:
			document.getElementById('response').innerHTML = "Failure, please try again";
		break;
		
		case 1:
		
			 document.getElementById('registrationWidget').style.display = 'none';
			 document.getElementById('registrationWidget_thanks').style.display = 'block';
		break;
		
		case 2:
			document.getElementById('response').innerHTML = "Invalid email"; 
			
		break;
			
		case 3:
			document.getElementById('response').innerHTML = "Please enter email"; 
		
		break;
		
		default:
		document.getElementById('response').innerHTML = "unknown response";   
		

		}
		
		        
	 } 
	 else 
	 {
		alert('There was a problem with the request.');
	 }
  }
}

function get(obj) {
  var poststr = "email=" + encodeURI( document.getElementById("emailField").value ) +
  "&listid=" + encodeURI( document.getElementById("listid").value ) +
  "&source_field=" + encodeURI( document.getElementById("source_field").value );
  makePOSTRequest('lib2/emailregister.php', poststr);
}
function onFocusHandler( object )
{
	if( object.value == "enter your e-mail" )
	{
		object.value = "";
	}
}


