var dreamFinderError = false;

(function($) {

	$.fn.priceFormat = function(options) {  

		var defaults = {  
			prefix: 'US$ ',
			centsSeparator: '.',  
			thousandsSeparator: ','
		};  
		var options = $.extend(defaults, options);
		
		return this.each(function() {
			
			var obj = $(this);

			function price_format () {

				// format definitions
				var prefix = options.prefix;
				var centsSeparator = options.centsSeparator;
				var thousandsSeparator = options.thousandsSeparator;
				var formatted = '';
				var thousandsFormatted = '';
				var str = obj.val();

				// skip everything that isn't a number
				// and skip left 0
				var isNumber = /[0-9]/;
				for (var i=0;i<(str.length);i++) {
					char = str.substr(i,1);
					if (formatted.length==0 && char==0) char = false;
					if (char && char.match(isNumber)) formatted = formatted+char;
				}
				
				// format to fill with zeros when < 100
				while (formatted.length<3) formatted = '0'+formatted;
				var centsVal = formatted.substr(formatted.length-2,2);
				var integerVal = formatted.substr(0,formatted.length-2);
			
				// apply cents pontuation
				formatted = integerVal+centsSeparator+centsVal;
			
				// apply thousands pontuation
				if (thousandsSeparator) {
					var thousandsCount = 0;
					for (var j=integerVal.length;j>0;j--) {
						char = integerVal.substr(j-1,1);
						thousandsCount++;
						if (thousandsCount%3==0) char = thousandsSeparator+char;
						thousandsFormatted = char+thousandsFormatted;
					}
					if (thousandsFormatted.substr(0,1)==thousandsSeparator) thousandsFormatted = thousandsFormatted.substring(1,thousandsFormatted.length);
					formatted = thousandsFormatted+centsSeparator+centsVal;
				}
				
				// apply the prefix
				if (prefix) formatted = prefix+formatted;
				
				// replace the value
				obj.val(formatted);
			
			}

			$(this).bind('keyup',price_format);
			if ($(this).val().length>0) price_format();

		});

	}; 		
		
})(jQuery);

/*** Slider ***/
function initFootageSlider(e) {
	var MIN_RANGE = 10;
	var MAX_RANGE = 700;
	$(function() {
		$("#footageArea").slider({
			range: true
			, min: 10
			, step: 10
			, max: 1000
			, values: [MIN_RANGE, MAX_RANGE]
			, slide: function(event, ui) {
				$("#minFootage").val(ui.values[0]);
				$("#maxFootage").val(ui.values[1]);	
				
				var footageInfo = document.getElementById("footageInfo");
				if(ui.values[1] == 1000) {
					footageInfo.innerHTML = "m² ou mais";
				}
				else {
					footageInfo.innerHTML = "m²";
				}
			}
		});
		$("#minFootage").val(MIN_RANGE);
		$("#maxFootage").val(MAX_RANGE);
	});
}
addEvent(window, "load", initFootageSlider);

function initPriceSlider(e) {
	$(function() {
		$( "#propertyPrice" ).slider({
			range: "min",
			value: 10000,
			min: 10000,
			step: 1000000,
			max: 500000000,
			slide: function( event, ui ) {
				$("#maxValue").val(ui.value).priceFormat({
					prefix: ''
					, centsSeparator: ','
					, thousandsSeparator: '.'
				});
				
				var valueMoreInfo = document.getElementById("valueMoreInfo");
				if(ui.value == 500000000) {
					valueMoreInfo.innerHTML = "ou mais";
				}
				else {
					valueMoreInfo.innerHTML = "";
				}
				
			}
		});
		$("#maxValue").val($("#propertyPrice").slider("value")).priceFormat({
			prefix: ''
			, centsSeparator: ','
			, thousandsSeparator: '.'
		});
	});
}
addEvent(window, "load", initPriceSlider);

function validateDreamFinder(e) {
	var frmProperty = document.getElementById("frmProperty");
	var btnResult = document.getElementById("btnResult");
	switch(btnResult.type) {
		case "submit" :
			addEvent(frmProperty, "submit", checkDreamFinderSubmitData);
		break;
		case "button" :
			addEvent(btnResult, "click", checkDreamFinderFormData);
		break;
	}
}
addEvent(window, "load", validateDreamFinder);

function checkDreamFinderSubmitData(e) {
	var propertyType = document.getElementById("propertyType");
	var idReff = document.getElementById("idReff");
	if(propertyType.value == "" && idReff.value == "") {
		alert("Informe o tipo do imóvel");
		return abort(e);
	}
}

function checkDreamFinderFormData(e) {
	var propertyType = document.getElementById("propertyType");
	var idReff = document.getElementById("idReff");
	if(propertyType.value == "" && idReff.value == "") {
		alert("Informe o tipo do imóvel");
		dreamFinderError = true;
	}
	else {
		dreamFinderError = false;
	}
}


var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-26125449-1']);
_gaq.push(['_trackPageview']);

(function() {
	var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = "true";
	ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
	var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
