//SEQUENCIES.JS >> Seqüències comunes

uriFragment = "http://www.diagonalflats.com/fragment.php";

/* Funcions */

function canviaUriCerca(){
	$.get(uriFragment, {
		mena: "dada",
		tema: "uriCercador",
		idioma: plana["idioma"],
		pais: $("#country").val(),
		lloc: $("#place").val(),
		zona: ($("#advanced:checked").val()) ? $("#zone").val() : ""
	}, function (uri){
		$("#cercador").attr("action", uri);
	});
}
	
function actualitzarSelectors (dataTriada, selector1, selector2) {
	
	dataTriada = new Date(dataTriada);
	
	var d      = dataTriada.getDate();
	var m      = dataTriada.getMonth() + 1;
	var y      = dataTriada.getFullYear();
	d          = (d < 10) ? "0" + d : d;
	m          = (m < 10) ? "0" + m : m;
	
	$(selector1).val(d);
	$(selector2).val(m + "-" + y);
	$(selector1).trigger("change");
}

function opcionsAvancades(){
	if($("#advanced:checked").val()){
		$("#veureZona").fadeIn();
		$("#veureServeis").fadeIn();
		$("#veureZona").css("display", "block");
		$("#veureServeis").css("display", "block");
	}
	else{
		$("#veureZona").fadeOut("fast", function () { $("#veureZona").css("display", "none");});
		$("#veureServeis").fadeOut("fast", function () {$("#veureServeis").css("display", "none");});
	}
	
	canviaUriCerca();
}

function ensenyaAmagaText(text){

	text = "#" +  text;
	
	if ($(text).hasClass("amagat")){
		$(text).removeClass("amagat");
		$(text).addClass("ensenyat");
	}
	else{
		$(text).removeClass("ensenyat");
		$(text).addClass("amagat");
	}
}


function netejaCamp(camp){
	camp  = "#" + camp;
	valor = $(camp).val();
	
	do{
		valorAbans = valor;
	
		valor = valor.replace("  ", " ");
		valor = valor.replace('"', "");
		valor = valor.replace(/^ /, "");
		valor = valor.replace(/ $/, "");
	}while (valor != valorAbans);
		
	$(camp).val(valor);
}

function netejaCampIdentitat(camp){
	valor = $("#" + camp).val();
	valor = valor.toUpperCase();
	$("#" + camp).val(valor);
	netejaCamp(camp);
}

function netejaCampCE(camp){
	camp     = "#" + camp;
	valor    = $(camp).val();
	valor    = valor.toLowerCase();
	arrova   = false;
	punt     = false;
	valorNou = "";
		
	for(i = 0; i < valor.length; i++){
	
		codi = valor.charCodeAt(i);
		car  = valor.charAt(i);
		
		if(car == "!" || car == "@" || car == "?" || (codi >= 35 && codi <= 38) || (codi >= 45 && codi <= 57) || (codi >= 94 && codi <= 126)){
			
			if(car == "@" && !arrova)
				arrova = true;
		
			if(car == "." && arrova)
				punt = valorNou.length;
				
			valorNou += car;
		}
	}

	$(camp).val((arrova && punt && (valorNou.length - punt > 2)) ? valorNou : "");				
}

function netejaCampTelefon(camp){
	camp     = "#" + camp;
	valor    = $(camp).val();
	valorNou = "";
	
	for(i = 0; i < valor.length; i++){
		codi = valor.charCodeAt(i);
		
		if(codi >= 48 && codi <= 57)
			valorNou += valor.charAt(i);
	}
	
	$(camp).val((valorNou.length > 5) ? valorNou : "");
}

/* Execució inicial */

$(document).ready(function() {
	
	$("#sos").click(function() { $.jqURL.loc("/sos/sos.html",{w:4153,h:450,wintype:"_blank"}); });
	
	if($(".popupwindow")[0] != undefined)
		$(".popupwindow").popupwindow();

	/* Calendaris cercador */

	$("#in").datePicker({
		startDate:$("#dataPrimera").val(),
		endDate:$("#dataDarrera").val()
	});	
	
	$("#out").datePicker({
		startDate:$("#dataPrimera").val(),
		endDate:$("#dataDarrera").val()
	});
	
	$("#in").bind("click", function(){
			actualitzarSelectors($(this).dpGetSelected()[0], "#in_d", "#in_mY");
			$(this).dpDisplay();
			return false;
		}
	).bind("dateSelected", function(e, selectedDate, $td, state){
			actualitzarSelectors(selectedDate, "#in_d", "#in_mY");
		}
	).bind("dpClosed", function(e, selected){
			actualitzarSelectors(selected[0], "#in_d", "#in_mY");
		}
	);
	
	$("#out").bind("click", function(){
			actualitzarSelectors($(this).dpGetSelected()[0], "#out_d", "#out_mY");
			$(this).dpDisplay();
			return false;
		}
	).bind("dateSelected", function(e, selectedDate, $td, state){
			actualitzarSelectors(selectedDate, "#out_d", "#out_mY");
		}
	).bind("dpClosed", function(e, selected){
			actualitzarSelectors(selected[0], "#out_d", "#out_mY");
		}
	);
	
	$("#in_d, #in_mY")
		.bind("change", function(){
			var month = /^\d{1,2}/.exec($("#in_mY").val());
			var year = /\d{4}$/.exec($("#in_mY").val());
			var d = new Date(
				 year,
				 month - 1,
				 $("#in_d").val()
			);
			$("#in").dpSetSelected(d.asString());
			$("#in").val(d.asString());
		}
	);

	$("#out_d, #out_mY")
		.bind(
			"change",
			function(){
				var month = /^\d{1,2}/.exec($("#out_mY").val());
				var year = /\d{4}$/.exec($("#out_mY").val());
				var d = new Date(
							 year,
							 month - 1,
							 $("#out_d").val()
					);
				$("#out").dpSetSelected(d.asString());
				$("#out").val(d.asString());
			}
	);
	
	$("#in_d").trigger("change");
	$("#out_d").trigger("change");
	
	$("#in_d, #in_mY")
		.bind(
			"change",
			function(){
				var month = /^\d{1,2}/.exec($("#in_mY").val());
				var year = /\d{4}$/.exec($("#in_mY").val());
				var d = new Date(
							 year,
							 month - 1,
							 $("#in_d").val()
					);
				$("#in").val(d.asString());
			}
	);

	$("#out_d, #out_mY")
		.bind(
			"change",
			function(){
				var month = /^\d{1,2}/.exec($("#out_mY").val());
				var year = /\d{4}$/.exec($("#out_mY").val());
				var d = new Date(
							 year,
							 month - 1,
							 $("#out_d").val()
					);
				$("#out").val(d.asString());
			}
	);
	
	$("#in_d").trigger("change");
	$("#out_d").trigger("change");
		
	/* Càrrega de canvis de lloc i país del cercador */
	
	$("#country").val(plana["pais"]);
	$("#place").val(plana["lloc"]);
	$("#zone").val(($("#advanced").val()) ? $("#zone").val() : "");

	$("#place").change( function (){
		$("#zone").load(uriFragment, {
			mena: "selector",
			tema: "zones",
			idioma: plana["idioma"],
			id: "zonaTriada",
			pais: $("#country").val(),
			lloc: $("#place").val()
		}, function (){
			$("#zone").val($("#zonaTriada").val());
			canviaUriCerca();
		});
		
		$("#adults").load(uriFragment, {
			mena: "selector",
			tema: "adults",
			idioma: plana["idioma"],
			id: "adultsTriat",
			triat: $("#adults").val(),
			pais: $("#country").val(),
			lloc: $("#place").val()
		}, function (){
			$("#adults").val($("#adultsTriat").val());
		});
	});
	
	$("#country").change( function (){
		$("#place").load(uriFragment, {
			mena: "selector",
			tema: "llocs",
			idioma: plana["idioma"],
			id: "llocTriat",
			pais: $("#country").val()
		}, function (){
			$("#place").val($("#llocTriat").val());
			$("#place").change();
		});
	});	
	
	/* Opcions avançades del cercador */

	$("#advanced").click( function (){
		opcionsAvancades();
	});
	
	opcionsAvancades();
});


