
function $(objId)
	{
		return document.getElementById(objId);
	}

	function preloadMenuImage(strRoot) 
	{
		var d = document; 
		document.imgMenuImage = new Image; 
		document.imgMenuImage.src=strRoot+'images/m_03.jpg';
	}

	function openWindowPrint(strTarget)
	{
		window.open(strTarget, null, 'height=500,width=700,status=no,toolbar=yes,menubar=no,location=no,scrollbars=yes');
	}

	function openWindowRecomend(strRoot)
	{
		var objBody = document.body; 

		var objDivCover = document.createElement("DIV");
		objDivCover.id = "divCoverBody";
		objDivCover.style.width = "100%";
		objDivCover.style.height = objBody.parentNode.scrollHeight+'px';
		objDivCover.style.zIndex = "998";

		var objDivCoverBodyPhoto = document.createElement("DIV");
		objDivCoverBodyPhoto.id = "divCoverBodyPhoto";
		objDivCoverBodyPhoto.style.width = "100%";
		objDivCoverBodyPhoto.style.textAlign = "center";
		objDivCoverBodyPhoto.style.zIndex = "999";
		
		var objIframe = document.createElement("IFRAME");
		objIframe.style.marginTop = (window.document.documentElement.scrollTop + 50) + 'px';
		objIframe.style.backgroundColor = '#FFFFFF';
		objIframe.frameBorder = '0';
		objIframe.style.width = '405px';
		objIframe.style.height = '160px';
		objIframe.style.padding = '10px';
		objIframe.style.cursor = 'pointer';
		objIframe.src = strRoot+'recomend.php?url='+window.location.href;

		objBody.appendChild(objDivCover);
		objDivCoverBodyPhoto.appendChild(objIframe);
		objBody.appendChild(objDivCoverBodyPhoto);
	}


	function submitRTEForm(strFormId, strTextResponseId)
	{

		objForm = $(strFormId);
		objResponse = $(strTextResponseId);

		if (validateForm(strFormId))
		{
			
			objResponse.innerHTML = 'aguarde o envio...';
			
			var oHTTPRequest = createXMLHTTP(); 
			oHTTPRequest.open("post", "library/util/ajaxSubmitRTEForm.php", true);
			oHTTPRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			oHTTPRequest.onreadystatechange=function() 
			{
				if (oHTTPRequest.readyState==4)
				{
					objResponse.innerHTML = oHTTPRequest.responseText;
				}
			}
	
			strRequest = '';
			for (i=0; i<objForm.elements.length; i++) 
			{
				if(objForm.item(i).type != 'button' && objForm.item(i).type != 'reset')
				{
					strValue = objForm.elements.item(i).value;
					if(objForm.item(i).nodeName == 'SELECT' && objForm.item(i).multiple)
					{
						strValue = '';
						for (j=0; j<objForm.item(i).length; j++)
						{
							if (objForm.item(i).options[j].selected)
							{
								strValue += objForm.item(i).options[j].value + ', ';
							}
						}
					}
					strRequest += objForm.elements.item(i).id + '=' + strValue + '&';
				}
			}
			oHTTPRequest.send(strRequest);
		}
	}

	function createXMLHTTP() 
	{
		try 
		{
			ajax = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		catch(e) 
		{
			try 
			{
				ajax = new ActiveXObject("Msxml2.XMLHTTP");
				alert(ajax);
			}
			catch(ex) 
			{
				try 
				{
					ajax = new XMLHttpRequest();
				}
				catch(exc) 
				{
					alert("Esse browser não tem recursos para uso do Ajax");
					ajax = null;
				}
			}
			return ajax;
		}
		
		var arrSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
	
		for (var i=0; i < arrSignatures.length; i++) 
		{
			try 
			{
				var oRequest = new ActiveXObject(arrSignatures[i]);
				return oRequest;
			} 
			catch (oError) 
			{
		
			}
		}
		
		throw new Error("MSXML is not installed on your system.");
	}
	
	
//########################################################
//#################### Form Validation ###################
//########################################################

	function validateForm(targetForm)
	{
		form = $(targetForm);
		for (i=0; i<form.elements.length; i++) 
		{
			//if (form.elements.item(i).validation != 'none')	validationRemoveBlankSpace(form.elements.item(i));
			
			if (form.elements.item(i).style.display != 'none')
			{
				if (!validationRequieredField(form.elements.item(i)))
				{
					alert("O campo " + form.elements.item(i).id + " é de preenchimento obrigatório.");
					setFocus(form.elements.item(i));
					return false;
				} 
	
				if (!validationDateFormat(form.elements.item(i)))
				{
					alert("O campo " + form.elements.item(i).id + " deve ter o formato dd/mm/yyyy.");
					setFocus(form.elements.item(i));
					return false;
				}
	
				if (!validationEmailFormat(form.elements.item(i)))
				{
					alert("O campo " + form.elements.item(i).id + " deve ter um formato válido de e-mail.");
					setFocus(form.elements.item(i));
					return false;
				}
	
				if (!validationCurrencyFormat(form.elements.item(i)))
				{
					alert("O campo " + form.elements.item(i).id + " deve ter um formato válido de moeda.");
					setFocus(form.elements.item(i));
					return false;
				}
	
				if (!validationNumberFormat(form.elements.item(i)))
				{
					alert("O campo " + form.elements.item(i).id + " deve conter um número inteiro.");
					setFocus(form.elements.item(i));
					return false;
				}
	
				if (!validationDecimalFormat(form.elements.item(i)))
				{
					alert("O campo " + form.elements.item(i).id + " deve conter um número decimal.");
					setFocus(form.elements.item(i));
					return false;
				}

			}
		}
		return true;
	}

	function validationRequieredField(targetField)
	{
		isValid = true;
		if (targetField.className == 'requiredfield')
		{
			if (targetField.value == "" || targetField.value == " ")
			{
				isValid = false;
			}
			if (targetField.value == "0" && (targetField.getAttribute('validation') != "number" && targetField.getAttribute('validation') != "decimal") )
			{
				isValid = false;
			}
		}
		return isValid;
	}

	function validationDateFormat(targetField)
	{
		isValid = true;
		if (targetField.getAttribute('validation') != 'date')
		{
			return isValid;
		}
		if (targetField.value == '')
		{
			return isValid;
		}
		
		if (targetField.value.length > 10) isValid = false;
		if (targetField.value.length < 6) isValid = false;
		try
		{
			splitString = targetField.value.split("/")
			if (eval(splitString[0]) > 31) isValid = false;
			if (eval(splitString[1]) > 12) isValid = false;
			if (splitString[2] == '') isValid = false;
			if (eval(splitString[2]) < 1 || eval(splitString[2]) < 999) isValid = false;
		}
		catch (e)
		{
			 isValid = false;
		}		
		return isValid;
	}

	function validationEmailFormat(targetField)
	{
		isValid = true;
		if (targetField.getAttribute('validation') != 'email')
		{
			return isValid;
		}
		if (targetField.value == '')
		{
			return isValid;
		}

		var regExp = /^[a-z0-9]{1,}@[a-z0-9]{1,}\.[a-z]{2,3}(\.[a-z]{2,3})?\b/;
		if (!regExp.test(targetField.value)) isValid = false;

		return isValid;
	}

	function validationCurrencyFormat(targetField)
	{
		isValid = true;
		if (targetField.getAttribute('validation') != 'currency')
		{
			return isValid;
		}
		if (targetField.value == '')
		{
			return isValid;
		}

		var regExp = /^(R\$ *)?[0-9]{1,3}(\.[0-9]{3})*(\,[0-9]{1,2})?$/;
		if (!regExp.test(targetField.value)) isValid = false;

		return isValid;
	}

	function validationNumberFormat(targetField)
	{
		isValid = true;
		if (targetField.getAttribute('validation') != 'number')
		{
			return isValid;
		}
		try
		{
			if (eval(targetField.value) < 0) isValid = true;
		}
		catch (e)
		{
			 isValid = false;
		}
		return isValid;
	}

	function validationDecimalFormat(targetField)
	{
		isValid = true;
		if (targetField.getAttribute('validation') != 'decimal')
		{
			return isValid;
		}
		try
		{
			strAux = targetField.value.replace(",", ".");
			if (eval(strAux) < 0) isValid = true;
		}
		catch (e)
		{
			 isValid = false;
		}		
		return isValid;
	}

	function validationRemoveBlankSpace(targetField)
	{
		aux = targetField.value.length;
		for (j=0; j<aux; j++)
		{
			targetField.value = targetField.value.replace("  ", " ");
		}
	}

	function setFocus(targetField)
	{
		try
		{
			numAba = abaNumber;
		}
		catch (e)
		{
			numAba = 0;
		}
		if (numAba == 0)
		{
			targetField.focus();
			if (targetField.nodeName != 'SELECT') targetField.select();
		} 
		else
		{
			x=1;
			while (x<=numAba)
			{
				changeAba(x);
				try
				{
					targetField.focus();
					if (targetField.nodeName != 'SELECT') targetField.select();
					x = numAba+1;
				}
				catch (e)
				{
					x++;
				}
			}
		}
	}

