
	function $(objId)
	{
		return document.getElementById(objId);
	}

	function checkNewsletter()
	{
		if(!validationEmailFormat($('txtNewsletterEmail')) || $('txtNewsletterEmail').value == '')
		{
			alert('E-mail inválido');
			$('txtNewsletterEmail').focus();
			return false;
		}
	}
	function searchHeader(objForm)
	{
		if($('ddlSearchTipo').value == '0')
		{
			alert('Informe o tipo de imóvel desejado.');
			$('ddlSearchTipo').focus();
			return false;
		}
		if($('ddlSearchOperacao').value == '0')
		{
			alert('Informe a operação desejada.');
			$('ddlSearchOperacao').focus();
			return false;
		}
		if($('ddlSearchDormitorio').value == '0')
		{
			alert('Informe a quantidade de dormitórios desejada.');
			$('ddlSearchDormitorio').focus();
			return false;
		}
	}

	function distributeMenu() 
	{
		objMenu = $('ulMenu');
		arrLI = objMenu.getElementsByTagName("li");
		
		numMax = 710;
		numUtil = 0;
		
		for (i=0; i<arrLI.length; i++) 
		{
			numUtil += parseInt(arrLI[i].childNodes[0].clientWidth);
		}
		numPadding = Math.floor((numMax - numUtil) / arrLI.length / 2);
		for (i=0; i<arrLI.length; i++) 
		{
			arrLI[i].style.paddingLeft = numPadding + 'px';
			arrLI[i].style.paddingRight = numPadding + 'px';
		}
	}

	function init(strRoot) 
	{
		preloadMenuImage(strRoot);
		distributeMenu();
	}
	function preloadMenuImage(strRoot) 
	{
		imgMenuImage = new Image(1,1); 
		imgMenuImage.src=strRoot+'library/images/m_02.jpg';
	}

	function openAtendimento(strTarget)
	{
		window.open(strTarget, null, 'height=440,width=430,status=no,toolbar=no,menubar=no,location=no,scrollbars=no');
	}

	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 openWindowInfo(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 = '230px';
		objIframe.style.padding = '10px';
		objIframe.style.cursor = 'pointer';
		objIframe.src = strRoot+'info.php?url='+window.location.href;

		objBody.appendChild(objDivCover);
		objDivCoverBodyPhoto.appendChild(objIframe);
		objBody.appendChild(objDivCoverBodyPhoto);
	}

	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.");
	}


	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.elements[i].type != 'button' && objForm.elements[i].type != 'reset')
				{
					strValue = objForm.elements[i].value;
					if(objForm.elements[i].nodeName == 'SELECT' && objForm.elements[i].multiple)
					{
						strValue = '';
						for (j=0; j<objForm.elements(i).length; j++)
						{
							if (objForm.elements[i].options[j].selected)
							{
								strValue += objForm.elements[i].options[j].value + ', ';
							}
						}
					}
					strRequest += escape(objForm.elements[i].id) + '=' + escape(strValue) + '&';
				}
			}
	
			oHTTPRequest.send(strRequest);
		}
	}

	function ajaxFilterBairro(objParent, strTarget)
	{
		objTarget = $(strTarget);
		objParentValue = objParent.value;

		if (objParentValue == 0)
		{
			objTarget.innerHTML = '<label>Selecione a cidade.</label>';
		}
		else
		{
			objTarget.innerHTML = '<label>Aguarde, carregando...</label>';
	
			var oHTTPRequest = createXMLHTTP(); 
			oHTTPRequest.open("post", "library/util/ajaxFilterDropDownBairro.php", true);
			oHTTPRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			oHTTPRequest.onreadystatechange=function() 
			{
				if (oHTTPRequest.readyState==4)
				{
					objTarget.disabled = false;
					window.setTimeout(function(){
						objTarget.innerHTML = oHTTPRequest.responseText;
					}, 100);
				}
			}
			strPost = 	"strValueCompare=" 	+ objParentValue;
			oHTTPRequest.send(strPost);
		}
	}

//########################################################
//#################### Form Validation ###################
//########################################################

//########################################################
//#################### Form Validation ###################
//########################################################

	function submitForm(targetForm)
	{
		if (validateForm(targetForm))
		{
			form = $(targetForm);
			form.submit();
		}
	}

	function getFieldName(strName)
	{
		return strName;
	}

	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 " + getFieldName(form.elements.item(i).id) + " é de preenchimento obrigatório.");
					setFocus(form.elements.item(i));
					return false;
				} 
	
				if (!validationMinLength(form.elements.item(i)))
				{
					alert("O campo " + getFieldName(form.elements.item(i).id) + " deve ter no mínimo " + form.elements.item(i).getAttribute('minLength') + " caracteres.");
					setFocus(form.elements.item(i));
					return false;
				}
	
				if (!validationMaxLength(form.elements.item(i)))
				{
					alert("O campo " + getFieldName(form.elements.item(i).id) + " deve ter no máximo " + form.elements.item(i).getAttribute('maxLength') + " caracteres.");
					setFocus(form.elements.item(i));
					return false;
				}
	
				if (!validationDateFormat(form.elements.item(i)))
				{
					alert("O campo " + getFieldName(form.elements.item(i).id) + " deve ter o formato dd/mm/aaaa.");
					setFocus(form.elements.item(i));
					return false;
				}
	
				if (!validationEmailFormat(form.elements.item(i)))
				{
					alert("O campo " + getFieldName(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 " + getFieldName(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 " + getFieldName(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 " + getFieldName(form.elements.item(i).id) + " deve conter um número decimal.");
					setFocus(form.elements.item(i));
					return false;
				}

				if (!validationCheckRequired(form.elements.item(i)))
				{
					alert("O campo " + getFieldName(form.elements.item(i).id) + " deve ser assinalado.");
					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 validationMinLength(targetField)
	{
		isValid = true;
		if (targetField.getAttribute('minLength') != '' && targetField.value.length > 0)
		{
			numMinLength = parseInt(targetField.getAttribute('minLength'));
			if (targetField.value.length < numMinLength)
			{
				isValid = false;
			}
		}
		return isValid;
	}

	function validationMaxLength(targetField)
	{
		isValid = true;
		if (targetField.getAttribute('maxLength') != '')
		{
			numMaxLength = parseInt(targetField.getAttribute('maxLength'));
			if (targetField.value.length > numMaxLength)
			{
				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-z0-9]{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 validationCheckRequired(targetField)
	{
		isValid = true;
		if (targetField.getAttribute('validation') != 'checkRequired')
		{
			return isValid;
		}
		if (!targetField.checked)
		{
			 isValid = false;
		}		
		return isValid;
	}

	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++;
				}
			}
		}
	}



//########################################################
//##################### Inputs Mask ######################
//########################################################

	function setMask(objTextBox, strMask, evtKeyPress) 
	{
		if (document.all)  // Internet Explorer
		{
			nTecla = evtKeyPress.keyCode;
		}
		else // Other
		{
			nTecla = evtKeyPress.which;
		}
	
		strValue = objTextBox.value;
		numLength = strValue.length;
	
		nextChar = strMask.charAt(numLength); 
		
		if (nTecla == 8 || nTecla == 46)
		{
			return nTecla;
		}
		else
		{
	
			if (nextChar != "9" && nextChar != "x" && nextChar != "X")
			{
				objTextBox.value = objTextBox.value + nextChar;
				nextChar = strMask.charAt(numLength+1); 
			}
	
			switch (nextChar) {
				case "9":
					if (nTecla > 47 && nTecla < 58) 
					{
						return nTecla;
					}
					else 
					{
						return false;
					}
					break
				case "x":
					if ((nTecla > 96 && nTecla < 123) || (nTecla > 64 && nTecla < 91)) 
					{
						objTextBox.value = objTextBox.value + String.fromCharCode(nTecla).toLowerCase();
						return false;
					}
					else 
					{
						return false;
					}
					break
				case "X":
					if ((nTecla > 96 && nTecla < 123) || (nTecla > 64 && nTecla < 91)) 
					{
						objTextBox.value = objTextBox.value + String.fromCharCode(nTecla).toUpperCase();
						return false;
					}
					else 
					{
						return false;
					}
					break
			}
		}
	}
	
	function setMaskCurrency(objTextBox, evtKeyPress) 
	{
		if (document.all)  // Internet Explorer
		{
			nTecla = evtKeyPress.keyCode;
		}
		else // Other
		{
			nTecla = evtKeyPress.which;
		}
	
		if (nTecla == 8 || nTecla == 46)
		{
			//return nTecla;
		}
		else
		{
	
			if (nTecla > 47 && nTecla < 58) 
			{
				var string = objTextBox.value;
	
				rExp = /[^0-9]/gi;
				string = string.replace(rExp,"");
	
				if (string == '') string = '0';
	
				string = (parseInt(string,10)).toString();
	
				stringLength = string.length;
	
				for (i=1; i<Math.ceil((stringLength-1)/3); i++)
				{
					stringLengthNew = string.length;
					sub01 = string.substring(0, stringLengthNew-(i*3)-1-(i-1));
					sub02 = string.substring(stringLengthNew-(i*3)-1-(i-1), stringLengthNew);
					string = sub01 + '.' + sub02;
				}
				stringLengthNew = string.length;
				sub01 = string.substring(0, stringLengthNew-1);
				if (sub01 == '') sub01 = '0';
				sub02 = string.substring(stringLengthNew-1, stringLengthNew);
				string = sub01 + ',' + sub02;
				
				objTextBox.value = string;
	
				return nTecla;
			}
			else
			{
				return false;
			}
			
		}
	
	}