/* 
@author Joaquin Marti Garcia 
@link http://www.joaquinmarti.com
@email joaquinmarti@gmail.com
*/

var DIURSA = {
	
/* ===================================== HOME COVER =====================================*/

	load_home_cover : function() {
		if (!$('div#home_cover').length) return;
		
		$('div#home_cover').flash({ 
			swf: 'static/media/swf/slideshow/slideshow.swf',
			width: 1000,
			height: 260,
			wmode: 'transparent',
			flashvars: {
				xmlFile: '/home-slideshow'
			}   
		});
	},

/* ===================================== HOME RENTING ====================================*/

	addSpanOpacity : function() {
		$('.bg_opacity').prepend('<span></span>');
	},

/* ===================================== HOME NEWS =====================================*/

	toggle_news : function() {
		$('li#sales_news ul').css('display', 'none');
		
		$('li#renting_news h3').click(function() {
			$('li#renting_news ul').fadeIn();
			$('li#sales_news ul').fadeOut();
			$('li#renting_news').addClass('active');
			$('li#sales_news').removeClass('active');
		}).css('cursor', 'pointer');
		
		$('li#sales_news h3').click(function() {
			$('li#sales_news ul').fadeIn();
			$('li#renting_news ul').fadeOut();
			$('li#sales_news').addClass('active');
			$('li#renting_news').removeClass('active');			
		}).css('cursor', 'pointer');
	},
	
/* ===================================== ROUNDED CORNERS =====================================*/
	
	rounded_corners : function() {
		$('.rounded_corners').each(function() {
			$(this).append('<span class="rc nw"></span><span class="rc ne"></span><span class="rc sw"></span><span class="rc se"></span>');
		});
	},
	
/* ===================================== HIDE ELEMENTS =====================================*/
	
	hide_elements : function() {
		$('div#selling_search_form fieldset.submit').addClass('hidden');
		$('div#renting_search_form fieldset.submit').addClass('hidden');
	},

/* ===================================== SALES =====================================*/

	show_hide_results : function() {
		$('div#selling_results ul li h3 a').each(function() {
			$(this).click(function() {
				if ($(this).parents('li').eq(0).hasClass('selected')) {
					$(this).parents('li').eq(0).removeClass('selected');
				}
				else {
					$(this).parents('li').eq(0).addClass("selected");
				}
				return false;
			});
		});
	},
	
/* ===================================== RENTING =====================================*/
	
	renting_highlighted : function() {
		
		if (!$('div#renting_highlighted').length) return;
		
		$('div#renting_highlighted ul.highlighted li span').each(function() {
			$(this).css('cursor', 'pointer');
			$(this).click(function() {
				$('div#renting_highlighted ul.highlighted li').removeClass("selected");
				$(this).parents('li').eq(0).addClass("selected");
			});
		});
		
		
	},
	
/* ===================================== DETAILS =====================================*/

	pic_viewer : function() {
		
		if (!$('div.photos').length) return;
			
		$('div.photos ul li a').each(function() {
			$(this).click(function() {
				ruta = $('div.photos div.big img').attr('src').substring(0,  $('div.photos div.big img').attr('src').lastIndexOf('/') + 1);
				$('div.photos div.big a').attr('href', ruta+"gr_"+$(this).attr('class'))
				$('div.photos div.big img.med').attr('src', ruta+"md_"+$(this).attr('class'));	
				return false;
			});
		});
		
	},
	
	floors_viewer : function() {
		
		if (!$('div.floors').length) return;
		
		$('div.floors ul li a').each(function() {
			$(this).click(function() {
				
				ruta = $('div#plane_detail a').attr('href').substring(0,  $('div#plane_detail a').attr('href').lastIndexOf('/') + 1);
				$('div#plane_detail a').attr('href', ruta+"gr_"+$(this).attr('class')+".jpg")
				$('div#plane_detail a img').attr('src', ruta+"md_"+$(this).attr('class')+".jpg");	
				
				$('div.pdf p a').attr('href', ruta+$(this).attr('class')+".pdf");

				return false;
			});
		});		
		
	},
	
	qualities_viewer : function() {
		if (!$('div.qualities').length) return;
		
		$('div.quality_detail div:not(:first-child)').css('display', 'none');
		
		$('div.qualities ul li a').each(function() {
			$(this).click(function() {
				
				$('div.quality_detail div').css('display', 'none');
				$('div.quality_detail div'+$(this).attr('href')).css('display', 'block');
				
				return false;
			});
		});
		
	},
	
	init_status : function() {
	
		
		$('input#info_email').bind("focus", function() {
			if ($('input#info_email').val() == "Escriba su e-mail aquí") {
				$('input#info_email').attr('value', '');
			}
		});
		
		$('input#info_email').bind("blur", function() {
			if ($('input#info_email').val() == "") {
				$('input#info_email').attr('value', 'Escriba su e-mail aquí');
			}
		});
		
	},

/* ===================================== DIURSA =====================================*/

	init_delegations : function() {
		if (!$('div#delegaciones').length) return;
		
		$('div#delegaciones ul li div.direccion').css('display', 'none');
		
		$('div#delegaciones ul li div.delegacion').each(function() {
			$(this).css('cursor', 'pointer');
			$(this).click(function() {
				$('div#delegaciones ul li div.direccion').css('display', 'none');
				$('div#delegaciones ul li div.delegacion').removeClass('selected');
				
				$(this).parents('li').eq(0).find('div.direccion').css('display', 'block');
				$(this).addClass('selected');
			});
		});
		
	}

};

var AJAX = {
	
/* ===================================== SALES SEARCH =====================================*/
	
	init_sales_search : function() {
		if (!$('div#selling_search_form').length) return;
		
		$('label.label_lugar select#lugar').bind("change", function(object) {
			if ($('label.label_tipo select#tipo').val() > 0) {
				AJAX.sales_search($('label.label_lugar select#lugar').val(), $('label.label_tipo select#tipo').val(), $('input#vpo').is(':checked'), $('input#vivienda_libre').is(':checked'));
			}
		});
		
		$('label.label_tipo select#tipo').bind("change", function(object) {
			if ($('label.label_lugar select#lugar').val() > 0) {
				AJAX.sales_search($('label.label_lugar select#lugar').val(), $('label.label_tipo select#tipo').val(), $('input#vpo').is(':checked'), $('input#vivienda_libre').is(':checked'));
			}		
		});
		
		$('input#vpo').bind("click", function(object) {
			if ($('label.label_lugar select#lugar').val() > 0 && $('label.label_tipo select#tipo').val() > 0) {
				AJAX.sales_search($('label.label_lugar select#lugar').val(), $('label.label_tipo select#tipo').val(), $('input#vpo').is(':checked'), $('input#vivienda_libre').is(':checked'));
			}		
		});
		
		$('input#vivienda_libre').bind("click", function(object) {
			if ($('label.label_lugar select#lugar').val() > 0 && $('label.label_tipo select#tipo').val() > 0) {
				AJAX.sales_search($('label.label_lugar select#lugar').val(), $('label.label_tipo select#tipo').val(), $('input#vpo').is(':checked'), $('input#vivienda_libre').is(':checked'));
			}		
		});
		
	},
	
	sales_search : function(lugar, tipo, vpo, vivienda_libre) {
		
		if (vpo) vpo = 1;
		else vpo = 0;
		
		if (vivienda_libre) vivienda_libre = 1;
		else vivienda_libre = 0;
		
		$('div#selling_results').html("");
		$('div#selling_results').append('<span class="searching">Searching</span>');
		$.ajax({
			type: "GET",
			url: "/sales_search",
			data: "lugar="+lugar+"&tipo="+tipo+"&vpo="+vpo+"&vivienda_libre="+vivienda_libre+"&ajax=1",
			success: function(html) {
				$('div#selling_results').html("");
				$('div#selling_results').append(html);
				DIURSA.show_hide_results();
			}
		});
	},
	
/* ===================================== RENTING SEARCH =====================================*/

	init_renting_search : function() {
		if (!$('div#renting_search_form').length) return;
		
		$('label.label_lugar select#lugar').bind("change", function(object) {
			if ($('label.label_tipo select#tipo').val() > 0) {
				AJAX.renting_search($('label.label_lugar select#lugar').val(), $('label.label_tipo select#tipo').val(), $('input#vpo').is(':checked'), $('input#vivienda_libre').is(':checked'), $('input#opcion_compra').is(':checked'));
			}
		});
		
		$('label.label_tipo select#tipo').bind("change", function(object) {
			if ($('label.label_lugar select#lugar').val() > 0) {
				AJAX.renting_search($('label.label_lugar select#lugar').val(), $('label.label_tipo select#tipo').val(), $('input#vpo').is(':checked'), $('input#vivienda_libre').is(':checked'), $('input#opcion_compra').is(':checked'));
			}		
		});
		
		$('input#vpo').bind("click", function(object) {
			if ($('label.label_lugar select#lugar').val() > 0 && $('label.label_tipo select#tipo').val() > 0) {
				AJAX.renting_search($('label.label_lugar select#lugar').val(), $('label.label_tipo select#tipo').val(), $('input#vpo').is(':checked'), $('input#vivienda_libre').is(':checked'), $('input#opcion_compra').is(':checked'));
			}		
		});
		
		$('input#vivienda_libre').bind("click", function(object) {
			if ($('label.label_lugar select#lugar').val() > 0 && $('label.label_tipo select#tipo').val() > 0) {
				AJAX.renting_search($('label.label_lugar select#lugar').val(), $('label.label_tipo select#tipo').val(), $('input#vpo').is(':checked'), $('input#vivienda_libre').is(':checked'), $('input#opcion_compra').is(':checked'));
			}		
		});
		
		$('input#opcion_compra').bind("click", function(object) {
			if ($('label.label_lugar select#lugar').val() > 0 && $('label.label_tipo select#tipo').val() > 0) {
				AJAX.renting_search($('label.label_lugar select#lugar').val(), $('label.label_tipo select#tipo').val(), $('input#vpo').is(':checked'), $('input#vivienda_libre').is(':checked'), $('input#opcion_compra').is(':checked'));
			}		
		});
	},

	renting_search : function(lugar, tipo, vpo, vivienda_libre, opcion_compra) {
		
		if (vpo) vpo = 1;
		else vpo = 0;
		
		if (vivienda_libre) vivienda_libre = 1;
		else vivienda_libre = 0;
		
		if (opcion_compra) opcion_compra = 1;
		else opcion_compra = 0;
		
		$('div#renting_results').html("");
		$('div#renting_results').append('<span class="searching">Searching</span>');
		$.ajax({
			type: "GET",
			url: "/renting_search",
			data: "lugar="+lugar+"&tipo="+tipo+"&vpo="+vpo+"&vivienda_libre="+vivienda_libre+"&opcion_compra="+opcion_compra+"&ajax=1",
			success: function(html) {
				$('div#renting_results').html("");
				$('div#renting_results').append(html);
			}
		});		
	},

/* ===================================== SEARCH SECTION =====================================*/

	init_search : function() {	
		if (!$('div#search_form').length) return;

		$('div#search_form form').submit(function() {

			if ($('select#accion').val() != null && $('select#tipo').val() > 0 && $('select#lugar').val() > 0) {
				AJAX.search($('select#accion').val(), $('select#tipo').val(), $('select#lugar').val(), $('select#precio').val(), $('select#tamano').val(), $('select#dormitorios').val(), $('select#tipos_vivienda').val());
			}

			return false;
		});
		
		$('select#precio').bind("change", function(object) {
			if ($('select#accion').val() != null && $('select#tipo').val() > 0 && $('select#lugar').val() > 0) {
				AJAX.search($('select#accion').val(), $('select#tipo').val(), $('select#lugar').val(), $('select#precio').val(), $('select#tamano').val(), $('select#dormitorios').val(), $('select#tipos_vivienda').val());
			}
		});

		$('select#tamano').bind("change", function(object) {
			if ($('select#accion').val() != null && $('select#tipo').val() > 0 && $('select#lugar').val() > 0) {
				AJAX.search($('select#accion').val(), $('select#tipo').val(), $('select#lugar').val(), $('select#precio').val(), $('select#tamano').val(), $('select#dormitorios').val(), $('select#tipos_vivienda').val());
			}
		});
		
		$('select#dormitorios').bind("change", function(object) {
			if ($('select#accion').val() != null && $('select#tipo').val() > 0 && $('select#lugar').val() > 0) {
				AJAX.search($('select#accion').val(), $('select#tipo').val(), $('select#lugar').val(), $('select#precio').val(), $('select#tamano').val(), $('select#dormitorios').val(), $('select#tipos_vivienda').val());
			}
		});
		
		$('select#tipos_vivienda').bind("change", function(object) {
			if ($('select#accion').val() != null && $('select#tipo').val() > 0 && $('select#lugar').val() > 0) {
				AJAX.search($('select#accion').val(), $('select#tipo').val(), $('select#lugar').val(), $('select#precio').val(), $('select#tamano').val(), $('select#dormitorios').val(), $('select#tipos_vivienda').val());
			}
		});

	},
	
	search : function(accion, tipo, lugar, precio, tamano, dormitorios, tipos_vivienda) {
		$('div#results').html("");
		$('div#results').append('<span class="searching">Searching</span>');
		$.ajax({
			type: "GET",
			url: "/search",
			data: "accion="+accion+"&tipo="+tipo+"&lugar="+lugar+"&precio="+precio+"&tamano="+tamano+"&dormitorios="+dormitorios+"&tipos_vivienda="+tipos_vivienda+"&ajax=1",
			success: function(html) {
				$('div#results').html("");
				$('div#results').append(html);
				DIURSA.show_hide_results();
			}
		});
	}
};

$(document).ready(function() {

	/* Diursa interaction */
	DIURSA.load_home_cover();
	DIURSA.addSpanOpacity();
	DIURSA.toggle_news();
	DIURSA.rounded_corners();
	DIURSA.hide_elements();
	DIURSA.pic_viewer();
	DIURSA.floors_viewer();
	DIURSA.qualities_viewer();
	DIURSA.renting_highlighted();
	DIURSA.init_status();
	DIURSA.init_delegations();
	
	/* Ajax actions */
	AJAX.init_sales_search();
	AJAX.init_renting_search();
	AJAX.init_search();
	
	/* Init plugins */
	$("a[rel=lightbox]").fancybox({ 'overlayOpacity': '0.7' });
	
	$("a[rel=lightbox_send]").fancybox({ 
		'overlayOpacity': '0.7',
		'frameHeight' : 130,
		'frameWidth' : 400,
		'hideOnContentClick': false,
		'callbackOnShow' : function() {
			$('div#send_to_a_friend #send_email').remove();
			$('div#fancy_div #send_email').focus();
		},
		'callbackOnClose' : function() {
			$('label[for=send_email]').append('<input type="text" id="send_email" name="send_email" />');
		}
	});
	
	$("a[rel=lightbox_calc]").fancybox({ 
		'overlayOpacity': '0.7',
		'frameHeight' : 250,
		'frameWidth' : 400,
		'hideOnContentClick' : false,
		'callbackOnShow' : function() {
			$('div#calc #calc_total').remove();
			$('div#calc #calc_interest').remove();
			$('div#calc #calc_amortization').remove();
			$('div#calc #calc_quota').remove();
			CALC.initCalc();
		},
		'callbackOnClose' : function() {
			$('label[for=calc_total] strong').after('<input type="text" id="calc_total" name="calc_total" />');
			$('label[for=calc_interest] strong').after('<input type="text" id="calc_interest" name="calc_interest" />');
			$('label[for=calc_amortization] strong').after('<input type="text" id="calc_amortization" name="calc_amortization" />');
			$('label[for=calc_quota] strong').after('<input type="text" id="calc_quota" name="calc_quota" />');
		}
	});
	
	
});