var isIE ;

if (navigator.appName.indexOf("Microsoft Internet")==-1) //FF
{
	isIE = false;
	classAttribute = "class"
}
else // IE
{
	isIE = true;
	classAttribute = "className"
}


function buildQstring( form_ )
{
	var qString = "";
	var elements = form_.elements
	
	for( var i = 0 ; i < elements.length ; i++ )
	{
		
		if( elements.item(i) && elements.item(i).tagName.toLowerCase() == "input" && elements.item(i).nodeType == 1 )
		{
			if( elements.item(i).getAttribute("name") != null &&  elements.item(i).value != null )
			{
				
				qString += elements.item(i).getAttribute("name") +"=" + elements.item(i).value +"&";
			}
		}

	}
	return qString
}
function xAppendChild( node , toChild )
{
	document.getElementById( toChild ).innerHTML = ""
	
	if( isIE )
		document.getElementById( toChild ).insertBefore( node , null );
	else
		document.getElementById( toChild ).appendChild( node );
	
	
}


function createTextInfo( string_ , whereTo )
{
	var p = document.createElement("p");
		
	p.innerHTML = string_;
	
	xAppendChild( p , whereTo )
	
}


function submitNewsLetterForm(form_)
{
	var xDoc= new XML();
	
	if( form_.nameNews.value == "" )
	{
		createTextInfo( "Tem de preencher o seu nome" , "newsErrorContainer" )
		return false
	}
	
	if( form_.emailNews.value == "" )
	{
		createTextInfo( "Tem de preencher o seu email" , "newsErrorContainer" )
		return false
	}
	else
	{
		var tmpMsg = String( CheckEmail( form_.emailNews.value ) );
		if( tmpMsg != "true" )
		{
			createTextInfo( tmpMsg , "newsErrorContainer" )
			return false;
		}
		
	}

	if( form_.nameNews.value != "" && form_.emailNews.value != "" )
	{
		xDoc.fromAsyncRequest( "genMailSender.htm" , submitNewsLetterFormResponse ,"Content-type=text/xml;charset=UTF-8", "POST" , buildQstring( form_ ) );
	}
	
	return false;
}

function submitNewsLetterFormResponse( oResp )
{
	document.getElementById("newsErrorContainer").innerHTML = "";
	document.getElementById("newsletter").innerHTML = '<span class="newsletterImg">&nbsp;</span>' +oResp.responseText 
}


function submitContactForm( form_ )
{
	var xDoc= new XML();
	
	
	if( form_.contactName.value == "" )
	{
		createTextInfo( "Tem de preencher o seu nome" , "contactErrorContainer" )
		return false
	}
	
	if( form_.contactPhone.value == "" && form_.contactEmail.value == "" )
	{
		createTextInfo( "Tem de preencher o seu telefone e/ou email" , "contactErrorContainer" )
		return false
	}


	xDoc.fromAsyncRequest( "genMailSender.htm" , submitContactFormResponse ,"Content-type=text/xml;charset=UTF-8", "POST" , buildQstring( form_ ) );

	return false;
}

function submitContactFormResponse( oResp )
{
	document.getElementById("contactErrorContainer").innerHTML = "";
	document.getElementById("contactContainer").innerHTML = '' +oResp.responseText 
}




//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function ObrigaIntroducaoNumeros(ponto,formulario,elemento)
{
	var key = window.event.keyCode;
	var valor = document.forms[formulario].elements[elemento].value;
	
	if(key!=0)
	{
		if(key<48 || key>57)
		{
			if(key==44)
			{
				if(ponto)
				{
					if(valor!='')
					{
						if(valor.match(/,/)!=null)
						{
							window.event.returnValue=false;
						}
					}
					else
					{
						window.event.returnValue=false;
					}
				}
				else
				{
					window.event.returnValue=false;
				}
			}
			else
			{
				window.event.returnValue=false;
			}
		}
	}
}

function CheckEmail (emailStr) {
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);

	if (matchArray==null) {
		return "Email incorrecto. Verifique se contem os simbolos: @ e .";
	}
	
	var user=matchArray[1];
	var domain=matchArray[2];
	
	for (i=0; i<user.length; i++)
	{
		if (user.charCodeAt(i)>127) {
			return "O nome do utilizador contem caracteres inválidos";
	   }
	}
	
	for (i=0; i<domain.length; i++)
	{
		if (domain.charCodeAt(i)>127) {
			return "O nome do domínio contem caracteres inválidos";
	   }
	}
	
	if (user.match(userPat)==null) {
		return "Utilizador inválido";
	}
	
	var IPArray=domain.match(ipDomainPat);
	
	if (IPArray!=null)
	{
		for (var i=1;i<=4;i++)
		{
			if (IPArray[i]>255)
				return "Destination IP address is invalid!";
	   	}
		return true;
	}
	
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			return "Domínio inválido.";
	   }
	}
	
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
		return "O Endereço deve conter um domínio conhecido ou duas letras referentes ao País";
	}
	
	if (len<2) {
		return "This address is missing a hostname!";
	}
	
	return true;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function submitContactFreeForm( form_ )
{
	var xDoc= new XML();
	
	
	if( form_.contactName.value == "" )
	{
		createTextInfo( "Tem de preencher o seu nome" , "contactFreeErrorContainer" )
		return false
	}
	
	if( form_.contactPhone.value == "" )
	{
		createTextInfo( "Tem de preencher o seu telefone" , "contactFreeErrorContainer" )
		return false
	}


	xDoc.fromAsyncRequest( "genFreeMailSender.htm" , submitContactFreeFormResponse ,"Content-type=text/xml;charset=UTF-8", "POST" , buildQstring( form_ ) );

	return false;
}

function submitContactFreeFormResponse( oResp )
{
	document.getElementById("contactFreeErrorContainer").innerHTML = "";
	document.getElementById("contactFreeContainer").innerHTML = '' +oResp.responseText 
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function submitContactReqForm( form_ )
{
	var xDoc= new XML();
	
	
	if( form_.contactName.value == "" )
	{
		createTextInfo( "Tem de preencher o seu nome" , "contactReqErrorContainer" )
		return false
	}
	
	if( form_.contactPhone.value == "" )
	{
		createTextInfo( "Tem de preencher o seu telefone" , "contactReqErrorContainer" )
		return false
	}
	if( form_.fileToUpload.value != '' )
		{
			var docTypes = form_.fileToUpload.getAttribute("accept").split(",");
			var validFile = false;
			for( var i = 0; i < docTypes.length ; i++ )
			{
				var r = new RegExp( docTypes[i] , "gi");
				if( form_.fileToUpload.value.substr( form_.fileToUpload.value.lastIndexOf('.') ).match(r) )
				{
					validFile = true;
					break;
				}
			}
			if( !validFile )
			{
				valid = false;
				createTextInfo( "Por favor introduza um ficheiro válido. ('"+form_.fileToUpload.getAttribute("accept")+"')" , "contactReqErrorContainer" )
				return false
				//sErr = "Por favor introduza um ficheiro válido. ('"+oForm.fileToUpload.getAttribute("accept")+"') ";
			}
		}


	xDoc.fromAsyncRequest( "genFreeMailSender.htm" , submitContactReqFormResponse ,"Content-type=multipart/form-data;charset=UTF-8", "POST" , buildQstring( form_ ) );

	return false;
}
function checkFile( _target )
{
	var acceptable = _target.getAttribute("accept");
	if( _target.value != '' )
	{
		var docTypes = acceptable.split(",");
		for(var i = 0; i <docTypes.length; i++){var r = new RegExp( docTypes[i] , "gi");
			if( _target.value.substr( _target.value.lastIndexOf('.') ).match(r) ){
				return true;
			}
		}
	}
	return false;
}



function submitContactReqFormResponse( oResp )
{
	document.getElementById("contactReqErrorContainer").innerHTML = "";
	document.getElementById("contactReqContainer").innerHTML = '' +oResp.responseText 
}




