// JavaScript Document

//Início do script do Texto Rotativo
var titulo = new Array("Pedido de Informa&ccedil;&otilde;es Oriflame - Gr&aacute;tis!","Preencha este formul&aacute;rio");
var target = "oriformTitulo"
var iDelayMilliseconds = 3000;

// the string number to start with (0 is first)
var iCurItem = 0;
var iNumItems = titulo.length;

document.getElementById(target).innerHTML = titulo[iCurItem];
iCurItem = (iCurItem + 1) % iNumItems;
setTimeout("showNextItem()", iDelayMilliseconds);

// Se tiveres mais que um texto rotativo, mudar o nome desta função e na quarta linha seguinte
function showNextItem() {
	document.getElementById(target).innerHTML = titulo[iCurItem];
	iCurItem = (iCurItem + 1) % iNumItems;
	setTimeout("showNextItem()", iDelayMilliseconds);
}

//Fim script do Texto Rotativo

function showForm() {
	document.getElementById("oriform").reset();
	document.getElementById("oriform").style.display="block";
	document.getElementById("oriformThanks").style.display="none";		
}

function isValidName(fieldID) {
	var name = document.getElementById(fieldID).value;
	if (name.length<2) {
		if (name!="") {
			alert('Inseriu um Nome invalido!')
			document.getElementById(fieldID).focus();
			return;
		}
	}
}

function isValidMorada(fieldID) {
	var name = document.getElementById(fieldID).value;
	if (name.length<2) {
		if (name!="") {
			alert('Inseriu uma Morada invalida!')
			document.getElementById(fieldID).focus();
			return;			
		}
	}
}

function isValidLocalidade(fieldID) {
	var name = document.getElementById(fieldID).value;
	if (name.length<2) {
		if (name!="") {
			alert('Inseriu uma Morada invalida!')
			document.getElementById(fieldID).focus();
			return;			
		}
	}
}

function isValidEmail(fieldID) {
	var email = document.getElementById(fieldID).value;
	var emailReg = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$";
    var regex = new RegExp(emailReg);
	if(!regex.test(email)) {
		if (email!="") {
			alert('Inseriu um E-mail invalido!')
			document.getElementById(fieldID).focus();
			return;			
		}
	}
}

function isValidCp(fieldID) {
	var cp=document.getElementById(fieldID).value;
	if (cp.length<3) {
		if (cp!="") {
			alert('Inseriu um Codigo Postal invalido!')
			document.getElementById(fieldID).focus();
			return;			
		}
	}
}

function isValidTlm(fieldID) {
//	var tlm = "^9[0-9]{8}";
	var tlm = "[0-9]{9}";
    var regex = new RegExp(tlm);
	var val=document.getElementById(fieldID).value;	
	if (val.length>0) {
		if (!regex.test(val)){
			if(val!=""){
				alert('Inseriu um Telemovel invalido!')
				document.getElementById(fieldID).focus();
				return;				
			}
		}
	}
	
}

function isValidFixo(fieldID) {
	var fixo = "^[1-9][0-9]{8}";
    var regex = new RegExp(fixo);
	var val=document.getElementById(fieldID).value;
	if (val.length>0) {
		if (!regex.test(val)) {
			if(val!=""){
				alert('Inseriu um Telefone invalido!')
				document.getElementById(fieldID).focus();
				return;				
			}
		}
	}
}

function clearField(fieldID) {
	if (document.getElementById(fieldID).value=="Obrigatorio") {
		document.getElementById(fieldID).value="";
		document.getElementById(fieldID).style.backgroundColor="#FFFFCC";
	
	} else
		document.getElementById(fieldID).style.backgroundColor="#FFFFCC";
}

function restoreField(fieldID) {
	if (document.getElementById(fieldID).value=="") {
		document.getElementById(fieldID).value=""
		document.getElementById(fieldID).style.backgroundColor="";
		
	} else
	 		document.getElementById(fieldID).style.backgroundColor="#FFFFFF";
}

function clearField2(fieldID) {
		document.getElementById(fieldID).style.backgroundColor="#FFFFCC";
}
function restoreField2(fieldID) {
	document.getElementById(fieldID).style.backgroundColor="#FFFFFF";
}

function inserir_registo() {
	var thanks ="";
	var serverAddress = "/form/parse_form_ajax_1.php";
	var params="inserir=registo";	
	
	values_obri = new Array("nome","morada","cp","localidade","telemovel");
	values_obri_text_error = new Array("o seu Nome","a sua Morada","o seu Codigo Postal","a sua Localidade","o seu Telemovel");
	values_facu = new Array("email","telefone","prof","username","form_name");
	
	for (var i=0; i<values_obri.length; i++) {
		var val = document.getElementById(values_obri[i]).value;
		if (val=="") {
			alert("Introduza " + values_obri_text_error[i] + "!");
			document.getElementById(values_obri[i]).focus();
		    return ;
		} else
			params += "&" + values_obri[i] + "=" + encodeURIComponent(val) ;
	}

	var interesse="";
	for (var i=0; i<=2; i++) {
		if (document.oriform.interesse[i].checked)
			interesse+=document.oriform.interesse[i].value + " ";
	}
	if (interesse!="")
		params += "&interesse=" + encodeURIComponent(interesse) ;
	else
		params += "&interesse=0" ;
		
	var conhece="";
	for (var i=0; i<=2; i++) {
		if (document.oriform.conhece[i].checked)
			conhece+=document.oriform.conhece[i].value + " ";
	}	
	if (conhece!="")
		params += "&conhece=" + encodeURIComponent(conhece) ;
	else
		params += "&conhece=0" ;

	for (var i=0; i<values_facu.length; i++) {
		var val = document.getElementById(values_facu[i]).value;
		if (val!="")
			params += "&" + values_facu[i] + "=" + encodeURIComponent(val) ;
		else
			params += "&" + values_facu[i] + "=0" ;
	}

	var nparams=13;
	var xmlHttp = createXmlHttpRequestObject();
	// only continue if xmlHttp isn't void
	if (xmlHttp) {
	    // try to connect to the server
	    try {
    	  	// continue only if the XMLHttpRequest object isn't busy
        	// and the cache is not empty
		    if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) {				
		        // make a server request to validate the extracted data
        		xmlHttp.open("POST", serverAddress, true);
				xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				xmlHttp.setRequestHeader("Content-length", params.length);
//			    xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.onreadystatechange = function () {
					if (xmlHttp.readyState == 4) {
					  if (xmlHttp.status == 200) {
					    try {
							// retrieve the server's response 
							var response = xmlHttp.responseText;
							// server error?
							if (response.indexOf("ERRNO") >= 0 || response.indexOf("error:") >= 0 || response.length == 0)
								throw(response.length == 0 ? "Server error." : response);
							// get response in XML format (assume the response is valid XML)
							responseXml = xmlHttp.responseXML;
							// get the document element
							//xmlDoc = responseXml.documentElement;
							//var result = xmlDoc.getElementsByTagName("result")[0].firstChild.data;
							//var error = xmlDoc.getElementsByTagName("error")[0].firstChild.data;
							//var thanks = xmlDoc.getElementsByTagName("thanks")[0].firstChild.data;
						
							document.getElementById("oriform").style.display="none";
							document.getElementById("oriformThanks").innerHTML = response;
							document.getElementById("oriformThanks").style.display="block";	
	
					    } catch(e) {
						    displayError(e.toString());
					    }
					  } else {
					  	displayError(xmlHttp.statusText);
					  }
					}												
				    }
		        xmlHttp.send(params);
	  		  }
    		} catch (e) {
	  			// display an error when failing to connect to the server
				displayError(e.toString());
    		}
		}

//	obj = document.getElementById("oriform");
//    document.body.removeChild(obj);
//	document.getElementById("oriformContainer").innerHTML = 'Olá';
}


// creates an XMLHttpRequest instance
function createXmlHttpRequestObject() {
  // will store the reference to the XMLHttpRequest object
  var xmlHttp;
  // this should work for all browsers except IE6 and older
  try   {
    // try to create XMLHttpRequest object
    xmlHttp = new XMLHttpRequest();
  }  catch(e)  {
    // assume IE6 or older
    var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
                                    "MSXML2.XMLHTTP.5.0",
                                    "MSXML2.XMLHTTP.4.0",
                                    "MSXML2.XMLHTTP.3.0",
                                    "MSXML2.XMLHTTP",
                                    "Microsoft.XMLHTTP");
    // try every id until one works
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) {
      try { 
        // try to create XMLHttpRequest object
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
      } catch (e) {} // ignore potential error
    }
  }
  // return the created object or display an error message
  if (!xmlHttp)
    displayError("Error creating the XMLHttpRequest object.");
  else 
    return xmlHttp;
}


function displayError($message)
{
	// when set to true, display detailed AJAX error messages
var showErrors = true;

  // ignore errors if showErrors is false
  if (showErrors)
  {
    // turn error displaying Off
    showErrors = false;
    // display error message
 
    alert("Error encountered: \n" + $message);
    // retry validation after 10 seconds
//    setTimeout("validate();", 10000);
  }
}