function Email()
{
	this.oAjaxThreads = new Array();
	this.msgContainer = "";
	this.inputConfirm = "";
}

Email.prototype.getNextThread = function()
{
	var i = 0;
	
	if (this.oAjaxThreads.length == 0)
	{
		var oAjax = new AJAX();
		this.oAjaxThreads.push(oAjax);		
	}

	while (this.oAjaxThreads[i] && this.oAjaxThreads[i].working && i < this.oAjaxThreads.length )
	{
		i++;
	}
	
	if (!this.oAjaxThreads[i])
	{
		var oAjax = new AJAX();
		this.oAjaxThreads.push(oAjax);		
	}
	
	return this.oAjaxThreads[i];
}

Email.prototype.validate = function()
{
	var msg = '';
	var error = false;
	
	if(document.getElementById('foreName').value == '')
	{
		
		msg += 'You have not filled field ForeName'+'\n';
		error = true; 
	}	
	
	if(document.getElementById('surName').value == '')
	{
		msg += 'You have not filled field SurName'+'\n';
		error = true;
	}

	if(error)
	{
		alert(msg);
		return;
	}
	else
	{
		document.getElementById('finishNewsLetter').submit();
		return;
	}
}

Email.prototype.newsletter = function(obj, msgContainer, inputConfirm)
{
	obj = document.getElementById('newEmail');
	if(!msgContainer)
	{
		msgContainer = 'verify_email';
	}
	
	if(!inputConfirm)
	{
		inputConfirm = 'confirmEmail';
	}
	
	this.msgContainer = msgContainer;
	this.inputConfirm = inputConfirm;
	
	if(obj.value.indexOf(" ") >= "0")
	{
		document.getElementById(this.msgContainer).style.color = '#FF0000';
		document.getElementById(this.msgContainer).innerHTML = 'the email field must not have spaces !';
		document.getElementById(this.inputConfirm).setAttribute('value','2');
	}
	else
	{
		var email = obj.value;
		var oAjax =  this.getNextThread();
		oAjax.url = '/newsletter/verifyEmail';
		oAjax.method = 'post';
		oAjax.data = 'email='+email;
		oAjax.addRequestListener(this, this.finishUniqueEmail, false);
		oAjax.open();		
	}	
}

Email.prototype.signup = function(email,foreName,surName)
{
	var oAjax = this.getNextThread();
	oAjax.url = '/newsletter/signup/';
	oAjax.method = 'post';
	oAjax.data = 'email='+email+'&foreName='+foreName+"&surName="+surName;
	oAjax.open();
	document.getElementById('idNews').style.display = 'none';
	document.getElementById('newsletterMsg').style.display = '';
	document.getElementById('newEmail').value ='';
}

Email.prototype.finishUniqueEmail = function(xmlDocument, text)
{
	var oParser = new XMLParser(xmlDocument);
    var email = oParser.getNodeValue('email');
  	document.getElementById(this.msgContainer).style.display = '';
	if(!email || email =="0")
	{
		document.getElementById('newsletterMsg').style.display = 'none';
		document.getElementById(this.msgContainer).style.display = 'none';
		document.getElementById('idNews').style.display = '';
			
		var newEmail = document.getElementById('newEmail').value;
		var divId = document.getElementById('idNews');
		var div = document.createElement('div');
		div.className = "divProduct";
		divId.appendChild(div);
		div.setAttribute('id','newsletterDiv');
		var form = document.createElement('form');
		div.appendChild(form);
		form.setAttribute('method', 'post');
		form.setAttribute('action', '/newsletter/signup/');
		var table = document.createElement("table");
		div.appendChild(form);
		form.appendChild(table);
		var tbody = document.createElement("tbody");
		table.appendChild(tbody);
		
		var trDelete = document.createElement('tr');
		tbody.appendChild(trDelete);
		var trEmail = document.createElement('tr');
		tbody.appendChild(trEmail);
		var trForename = document.createElement('tr');
		tbody.appendChild(trForename);
		var trSurname = document.createElement('tr');
		tbody.appendChild(trSurname);
		var trSubmit = document.createElement('tr');
		tbody.appendChild(trSubmit);
		
		
		var tdDelete = document.createElement('td');
		var tdDeleteEmpty = document.createElement('td');
		var a = document.createElement("a");
		a.setAttribute("href", "javascript:void(0);");
		a.onclick = function(){ document.getElementById('idNews').style.display = 'none'; };
		a.className = "newsletterButtonDelete";
		a.innerHTML = "X";
		tdDelete.appendChild(a);
		trDelete.appendChild(tdDeleteEmpty);
		trDelete.appendChild(tdDelete);
		
		
		var tdTextEmail = document.createElement('td');
		tdTextEmail.innerHTML += "Email:";	
		var tdEmail = document.createElement('td');
		var input = document.createElement("input");
		input.setAttribute("type", "text");
		input.setAttribute("id", "email");
		input.setAttribute("name", "email");
		input.setAttribute("value", newEmail);
		tdEmail.appendChild(input);
		trEmail.appendChild(tdTextEmail);
		trEmail.appendChild(tdEmail);
	
		var tdTextForename = document.createElement('td');
		tdTextForename.innerHTML += "Forename:";
		var tdForename = document.createElement('td');
		var input = document.createElement("input");
		input.setAttribute("type", "text");
		input.setAttribute("id", "foreName");
		input.setAttribute("name", "foreName");
		tdForename.appendChild(input);
		trForename.appendChild(tdTextForename);
		trForename.appendChild(tdForename);
		
		var tdTextSurname = document.createElement('td');
		tdTextSurname.innerHTML += "Surname:";	
		var tdSurname = document.createElement('td');
		var input = document.createElement("input");
		input.setAttribute("type", "text");
		input.setAttribute("id", "surName");
		input.setAttribute("name", "surName");
		tdSurname.appendChild(input);
		trSurname.appendChild(tdTextSurname);
		trSurname.appendChild(tdSurname);	
	
		var tdSubmit = document.createElement('td');
		var tdSubmitEmpty = document.createElement('td');
		var input = document.createElement("input");
		input.setAttribute("type", "bottom");
		input.className = "newsletterButtonOk";
		input.setAttribute("value", "");
		input.onclick = function(){ oEmail.signup(document.getElementById('email').value,document.getElementById('foreName').value,document.getElementById('surName').value) };
		tdSubmit.appendChild(input);
		trSubmit.appendChild(tdSubmitEmpty);
		trSubmit.appendChild(tdSubmit);
		
	}
	else
	{
		document.getElementById('newsletterMsg').style.display = 'none';
		document.getElementById(this.inputConfirm).setAttribute('value','1');
		document.getElementById(this.msgContainer).style.color = '#FF0000';
		document.getElementById(this.msgContainer).innerHTML = ' has already been taken.';
	}
}

Email.prototype.hideMessage = function()
{
	document.getElementById('newsletterMsg').style.display = 'none';
}


var oEmail = new Email();	
