/*
Name: Javascript Functions
Version: 1.0
Description: BJavascript Functions para o site
Author: Alex Koti
Author URI: http://alexkoti.com
 */


jQuery(document).ready(function($){
	
	/**
	 * NÃO FUNCIONA COM JQUERY NOVO >>> precisa da versão 1.4  :(
	 * 
	 */
	if( $('#search_bar #network, #sidebar #network').length ){
		$('#network').scrollFollow({container: 'site_content'});
	}
	
	
	if( $('.boros_slider').length ){
		$('.boros_slider').borosSlider({
			loop: false,
			slideshow: false,
			easing: 'boros',
			offset: 1
		});
	}
	
	/**
	 * IMAGE LOADER
	 * Como funciona:
	 * 'new_img' chama os dados para new Image, mas ele apenas ativará o acesso aos dados da imagem, que ficará em cache do navegador
	 * No onload desse 'new_img', que não será adicionado à página, será atiavado o callback, que de fato irá inserir a nova imagem no content, e como
	 * a imagem já te´ra sido carregada pelo 'new_img' - a renderização será imediata.
	 * 
	 */
	// thumbs
	$('.boros_slider_strip .slide a').click(function(){
		//atualizar rel das setas
		var rel = $(this).attr('rel');
		
		$('.slider_image_prev').attr('rel', Number(rel) - 1);
		$('.slider_image_next').attr('rel', Number(rel) + 1);
		$('.boros_slider_strip').find('a').removeClass('selected');
		$('.boros_slider_strip').find('a[rel="'+rel+'"]').addClass('selected');
		
		var url = $(this).attr('rev');
		var descr = $(this).attr('title');
		var url_large = $(this).attr('href');
		
		//mostrar loading
		$('#image_loading').fadeIn(function(){
			new_img = new Image();
			$(new_img).load(function(){
				$('#slider_image').attr('src', url);
				if(descr!=""){
					$('#foto_descricao').css("display","block");
					$('#foto_descricao').html(descr);
				}else{
					$('#foto_descricao').css("display","none");
					$('#foto_descricao').html(descr);
				}
				$('#slider_image').parent().attr('href', url_large);
				$('#image_loading').fadeOut();
			}).error(function(){
				alert('Não foi possível carregar a imagem. Tente novamente.');
			}).attr('src', url);
		});
		$('#slider_image_large').attr('rel', rel);
		arrow_status();
		
		return false;
	});
	// image nav
	$('.slider_image_nav').click(function(){
		var btn = $(this);
		var rel = $(this).attr('rel');
		$('.boros_slider_strip').find('a').removeClass('selected');
		$('.boros_slider_strip').find('a[rel="'+rel+'"]').addClass('selected');
		
		if( (rel != 0) && (rel <= $('.slide').length) ){
			//$('#medium_'+rel).trigger('click');
			$('.boros_slider_strip .slide a[rel="'+rel+'"]').trigger('click');
			
			if( $(this).is('.slider_image_prev') ){
				$('.slider_image_prev').attr('rel', Number(rel) - 1);
				$('.slider_image_next').attr('rel', Number(rel) + 1);
			}
			else{
				$('.slider_image_prev').attr('rel', Number(rel) - 1);
				$('.slider_image_next').attr('rel', Number(rel) + 1);
			}
			$('#slider_image_large').attr('rel', rel);
			arrow_status();
		}
	});
	function arrow_status(){
		var slides_length = $('.slide').length;
		$('.slider_image_nav').removeClass('btn_faded').each(function(){
			var newrel = $(this).attr('rel');
			if( (newrel == 0) || (newrel == slides_length+1))
				$(this).addClass('btn_faded');
		});
	}
	//lightbox
	if( $('.boros_slider_nav .btn_large').length ){
		$('.boros_slider_nav .btn_large').colorbox({
			rel:'group1',
			current: "{current} de {total}"
		});
	}
	$('#slider_image_large').click(function(){
		var rel = $(this).attr('rel');
		$('#large_'+rel).trigger('click');
		return false;
	});
	
	
	/**
	 * AJAX SEARCH
	 * 
	 */
	//aplicar ações
	
	function apply_ajax(){
		//resultados de compra ou locação
		
		$('#home_search_form input:not(.ipt_submit_search)').click(function(){
			var form_data = get_form_params();
			send_ajax( form_data );
			
		});
		$('#home_search_form select').change(function(){
			var form_data = get_form_params();
			send_ajax( form_data );
		});
		$('#btn_1').click(function(){
			$('#hs_bairros').slideToggle(function(){
				$('#btn_1').toggleClass('closed');
			});
		});
	}
	
	function send_ajax( form_data ){
		/**
		 * 
		 */
		$.ajax({
			type: 'POST',
			url: 'busca.php',
			data: form_data,
			dataType: 'html',
			beforeSend: function(){
				$('#ajax_results').append('<div id="loader"><div></div></div>');
			},
			success: function( loaded ){
				$('#ajax_results').html(loaded);
				apply_ajax();
			}
		});
	}
	
	function get_form_params(){
		//dados padrão
		var data = {};
		data.hs_tipo_transac 	= $('[name="hs_tipo_transac"]:checked').val();
		data.hs_tipo_uso 		= $('[name="hs_tipo_uso"]:checked').val();
		data.hs_tipo_imovel 	= $('[name="hs_tipo_imovel"]').val();
		data.hs_dorms 			= $('[name="hs_dorms"]').val();
		data.hs_area 			= $('[name="hs_area"]').val();
		data.hs_preco_min 		= $('[name="hs_preco_min"]').val();
		data.hs_preco_max 		= $('[name="hs_preco_max"]').val();
		
		/**
		 * Montar a lista de bairros, se houver. Será montada duas listas:
		 * array 'bairro' - todos os bairros juntos, será passado 'bairro=valor1&bairro=valor2' etc
		 * valores unicos - ex 'bairro_1=valor1&bairro_2=valor2'
		 * 
		 */
		if( $('#hs_bairros [type=checkbox]').length ){
			data.bairro = new Array();
			$('#hs_bairros [type=checkbox]:checked').each(function(index){
				data.bairro.push( $(this).val() );
				
				var bname = 'bairro_' + index;
				data[bname] = $(this).val();
			});
		}
		return data;
	}
	$('#btn_1').addClass('closed');
	$('#hs_bairros').hide();
	apply_ajax();
	$('#results_qtd1,#results_qtd2').change(function(){
		window.location="?"+$(this).val();
	});
	
	/**
	 * Timer imagens home
	 */
	var change_imgs_time = 8000;
	function change_imgs(){
		var last = $('#home_destaque_image img:last').fadeOut(2000, function(){
			$(this).detach().prependTo('#home_destaque_image').show();
		});
		setTimeout( change_imgs, change_imgs_time);
	}
	setTimeout( change_imgs, change_imgs_time);
	
	
	/**
	 * Balão home
	 */
	$('#box_home_1').click(function(){
		$('body').scrollTo( { top:370, left:0}, 800 );
		$('#balao').fadeIn();
		return false;
	});
	
	
	/**
	 * Envie por email
	 */
	$('#action_email, #box_envie_fechar').click(function(){
		$('#box_envie').fadeToggle();
		return false;
	});
	
	$('#enviar_email').click(function(){
		$.post("email/email.php", { envie_nome:$("#envie_nome").val(), envie_email:$("#envie_email").val(), envie_dest_nome:$("#envie_dest_nome").val(), envie_dest_email:$("#envie_dest_email").val(), envie_cod:$("#envie_cod").val() },
	   function(data) {
		 if(data=="OK"){
			 $('#box_envie').fadeToggle();
			 alert('O e-mail foi enviado.');
		 }else{
			alert(data); 
		 }
	   });
		
	});
	
	/**
	 * Pop print
	 */
	$('#action_print').click(function(){
		javascript:window.open('email/print.php?cod='+$(this).attr("rel"),'print','toolbar=yes,location=no,status=no,menubar=yes,scrollbars=no,resizable=no,width=600,height=510');
		return false;
	});
});


/******************************************************************************
PLUGINS ***********************************************************************
*******************************************************************************/

/**
 * jQuery.ScrollTo - Easy element scrolling using jQuery.
 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 5/25/2009
 * @author Ariel Flesler
 * @version 1.4.2
 *
 * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
 */
;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);
