function request()
{
	var form = document.data;
	
	var send = true;

	var fields = new Array('firstname', 'lastname', 'email', 'phone', 'cellphone', 'company', 'position', 'address', 'lang');
	
	for(var i = 0; i<fields.length; i++)
	{
		var field = fields[i];
		var input = form[field];
		var value = input.value;

		if(value == '' || value == missingfield || value == wrongemail) 
		{
			input.style.color = '#000000';
			input.style.background = '#FFD900';
			input.value = missingfield;
			send = false;
		}
		else if(field == 'email' && !checkEmail(input)) 
		{
			input.style.color = '#000000';
			input.style.background = '#FFD900';
			email = input.value;
			input.value = wrongemail;
			send = false;
		}
	}
		
	var numdates = form.numdates.value;
	
	var dates_a = new Array();
	
	var sendbox = false;
	
	for(var i = 0; i < numdates; i++)
	{
		var checkbox = form["date"+i];
		if(checkbox.checked) 
		{
			sendbox = true;
			dates_a.push(checkbox.value);
		}
	}	
	
	if(!sendbox) fillElement('request_feedback', select_checkbox);
	
	var dates = dates_a.join(' / ');		
		
	if(send && sendbox)
	{
		url = 'request.php?idconference='+form.idconference.value+'&firstname='+form.firstname.value+'&lastname='+form.lastname.value+'&email='+form.email.value+'&phone='+form.phone.value+'&cellphone='+form.cellphone.value+'&company='+form.company.value+'&position='+form.position.value+'&address='+form.address.value+'&lang='+form.lang.value+'&dates='+dates+'&conference='+form.conference.value;
		//alert(url);
		//window.location = url;
		//fillElement('subscribe_response', '<img src="medias/art/loading.gif">');
		makeRequest(url, onRequest, null, true);
	}
}

function onRequest(xmldoc, arg)
{
	var form = document.data;
	
	var request_node = xmldoc.getElementsByTagName('request')[0];
		
	var success = 0;
	var msg = "";
	
	if(request_node.getElementsByTagName('success')[0].firstChild != null) success = Number(request_node.getElementsByTagName('success')[0].firstChild.data);
	if(request_node.getElementsByTagName('msg')[0].firstChild != null) msg = request_node.getElementsByTagName('msg')[0].firstChild.data;
	
	fillElement('request_feedback', msg);
	
	//var form = document.data;
	
	//form.email.value = msg;

	if(success == 1)
	{
		form.idconference.value = '';
		form.firstname.value = '';
		form.lastname.value = '';
		form.email.value = '';
		form.phone.value = '';
		form.cellphone.value = '';
		form.company.value = '';
		form.position.value = '';
		form.address.value = '';
		
		var numdates = form.numdates.value;
		
		for(var i = 0; i < numdates; i++)
		{
			var checkbox = form["date"+i];
			if(checkbox.checked) checkbox.checked = false;
		}
	}
}

function recover(input) 
{
	var value = input.value;
	
	input.style.background = '#E6E6E6';
	input.style.color = '#000000';
	//input.focus();
	if(value == missingfield) 
	{
		input.value = '';
	}
	else if(value == wrongemail) input.value = email;
}

function changeColor(input)
{
	input.style.background = '#FFFFFF';
	input.style.color = '#000000';
}


function fillElement(parent, content)
{
	var parentDiv = document.getElementById(parent);
	parentDiv.innerHTML = content;
}

function getFieldValue(form, nameField)
{
	return form[nameField].value;
}

function makeRequest(url, onEnd, arg, return_xml)
{
   var http_request = false;

   if (window.XMLHttpRequest) { // Mozilla, Safari,...
       http_request = new XMLHttpRequest();
       if (http_request.overrideMimeType) {
           http_request.overrideMimeType('text/xml');
       }
   } 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('Unfortunatelly you browser doesn\'t support this feature.');
       return false;
   }
   
   http_request.onreadystatechange = function() 
   {
       if (http_request.readyState == 4) 
	   {
           if (http_request.status == 200) 
		   {
             //alert(http_request.responseText);
			  if (return_xml) 
			   {
				   onEnd(http_request.responseXML, arg);
               } else {
                  onEnd(http_request.responseText, arg);
               }
           } else {
               alert('There was a problem with the request.(Code: ' + http_request.status + ')');
           }
       }
   }

	http_request.open('GET', url, true);
	http_request.send(null);
}

function checkEmail(input) 
{
	var emailarray = input.value.split('@');
	var valid = false;
	if(emailarray.length == 2){
		var first = emailarray[0];
		var second = emailarray[1];
		if(first.length >0 && second.length>0)
		{
			if(checkchars(first) && checkchars(second))
			{
				var dotarray = second.split('.');
				
				l = dotarray.length;
				
				if(l >= 2)
				{
					valid = true;
					for(i = 0; i<l; i++ )
					{
						minchars = 1;
						if(i == l - 1) minchars = 2;
						
						if(dotarray[i].length < minchars)
						{
							valid = false;
							break;
						}   

					}
				}
			}
		}
	}
	return(valid);
}

function checkchars(string) 
{
	var validchars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890-_.';	
	var valid = true;
	for(var i=0; i<string.length; i++){
		var index = validchars.indexOf(string.charAt(i));
		if(index == -1){
			valid = false;
			break;
		}
	}
	return(valid);
}
