/* common */
/*
	v01.0
*/

// var defaults
if (typeof(page_q_str) == 'undefined') {
	var page_q_str = "";
}
if (typeof(geo_suggest) == 'undefined') {
	var geo_suggest = "";
}
if (typeof(geo_level) == 'undefined') {
	var geo_level = "";
}


// CATALOGUE SETTINGS and SORTING
// -------------------------------------------------------------------
function sortSettings(nomSort,valSort,dirSort){
	document.location="?" + page_q_str + nomSort + "=" + valSort + "&desc_asc=" + dirSort + geo_suggest + geo_level;	
}
function viewModeSettings(nom,val){
	document.location="?" + nom + "=" + val + geo_suggest + geo_level;	
}

// INPUT SUGGEST STYLE 
// -------------------------------------------------------------------
function addVal(elem, value, method) {
	switch (method) {
		case "equ" :
			$("#"+elem).val(value);
			break;
		case "auto" :
			var str = $("#"+elem).val();
			var pattern = eval('/'+value+'/i');
			
			if ( pattern.test(str) ) {
				var new_str = str.replace(pattern, '');
				$("#"+elem).val(new_str);
			} else {
				$("#"+elem).val(str+value);
			}
			break;
	}
}
function visibilityControl(id, action) {
	var input_suggest = false;

	switch(action) {
		case "auto" :
			if ($("#"+id+"_result").css("visibility") == 'visible') {
				$("#"+id+"_result").css("visibility", "hidden");
				$("#"+id+" input.suggest, "+"#"+id+" span.suggest").removeClass("open");
				$("#suggest-box-overlay").remove();
			} else {
				$("div.suggest_box .result").css("visibility", "hidden");
				$("input.suggest, span.suggest").removeClass("open");
				
				$("#"+id+" input.suggest, "+"#"+id+" span.suggest").addClass("open");
				$("#"+id+"_result").css("visibility", "visible").hover(
					function () {
						if (input_suggest) {
							clearTimeout(input_suggest);
						}
				  	}, 
				  	function () {
						input_suggest = setTimeout(
							function(){ 
								$("#"+id+"_result").css("visibility", "hidden");
								$("#"+id+" input.suggest, "+"#"+id+" span.suggest").removeClass("open");
								$("#suggest-box-overlay").remove();
							}, 1000
						);
				  	}
				);
				// anywhere click hide
				$("body").append("<div id='suggest-box-overlay'></div>");
				$("#suggest-box-overlay").click(function () {
					$("#"+id+"_result").css("visibility", "hidden");
					$("#"+id+" input.suggest, "+"#"+id+" span.suggest").removeClass("open");
					$("#suggest-box-overlay").remove();
		    });
		
			}
			break;
		case "show" : $("#"+id+"_result").css("visibility", "visible"); break;
		case "hide" : $("#"+id+"_result").css("visibility", "hidden"); break;
	}
}
function input_value(id, value) {
	var existing_val = $( "#"+id).val();

	if (existing_val == value) {
		$( "#"+id).val("");
	} else if (!existing_val) {
		$( "#"+id).val(value);
	}
}

// TAB DEPENDANCES
// -------------------------------------------------------------------
function tab_linked (tab_id, tab_class) {
	var sel_id = ""+ tab_id +"";
			sel_id = sel_id.replace("http://lalande-immobilier.com"+ request_uri +'#','');
	$("."+ tab_class +":visible").hide();
	$("."+ sel_id ).show();
}
function tab_switch (tab_id) {
	var sel_id = ""+ tab_id +"";
	return sel_id.replace("http://lalande-immobilier.com"+ request_uri +'#','');
}

// SCROLLING
// -------------------------------------------------------------------
function scroll (element, o) {
	//var o = {items_per_page: 4, item_width: 133, item_margin: 25};

	$(element).each( function(i){
		var elem = this;
		var items_number = $(this).find('.items-container .item').length;
		var pages_number = items_number / o.items_per_page;
		var pages = [];
		var step = (o.item_width + o.item_margin) * o.items_per_page;

		$(this).after('<div class="ui-scroll-navig"></div>');

		for (i=1; i<=pages_number; i++) {
			var page = i;
			var active = (page == 1) ? 'active' : '';
			pages[page] = step * (page - 1) * -1;
			$(this).next('.ui-scroll-navig').append('<a href="javascript:void(\'\');" rel="'+ page +'" class="'+ active +'"><img src="/images/spacer.gif" width="1" height="1" border="0" /></a>');
		}

		$(this).next('.ui-scroll-navig').find('a').each(function(e){
			$(this).click(function(e){
				$(this).parent('.ui-scroll-navig').find('a').removeClass('active');
				$(this).addClass('active');
				$(elem).find('.items-container').animate({"left": pages[ $(this).attr('rel') ]+"px"}, "slow");
			});
		});

	});
}

// DIALOG
// -------------------------------------------------------------------
function centerWin(w,h) {
	var w = w + 30;
	$("#ui-dialog-window").css({marginLeft: '-' + parseInt((w / 2),10) + 'px', width: w + 'px'});
	if ( !(jQuery.browser.msie && typeof XMLHttpRequest == 'function')) { // take away IE6
		$("#ui-dialog-window").css({marginTop: '-' + parseInt((h / 2),10) + 'px'});
	}
}
function createWin() {

	var img_loader = "/images/loading-line.gif";

	//$("body").append("<iframe id='ui-dialog-hide-select'></iframe>");
	$("body").append("<div id='ui-dialog-overlay'></div>");
	$("body").append("<div id='ui-dialog-window'></div>");
	$("body").append("<div id='ui-dialog-load'><img src='"+img_loader+"' /></div>");//add loader to the page

	$('ui-dialog-load').show();
}
function loadedWin(modal,w,h, track) {
	$("#ui-dialog-load").remove();
	$("#ui-dialog-window").append("<div id='ui-dialog-ajax-content' class='ui-dialog-modal' style='width:"+ w +"px;height:"+ h +"px;'></div>");
	$("#ui-dialog-window").css({display:"block"});
	if (modal != 'modal') {
		$("#ui-dialog-overlay").click(function() { removeWin() });
	}
	if (pageTracker && track) {
		//alert('track');
		switch (track.type) {
			case "page" :
				pageTracker._trackPageview(track.page);
			break;
			
			case "event" :
				pageTracker._trackEvent(track.categorie, track.action, "");
			break;
		}
	}
	centerWin(w,h);
}
function removeWin() {
	$("#ui-dialog-hide-select, #ui-dialog-overlay, #ui-dialog-window").remove();
}

// MISE EN FORME
// -------------------------------------------------------------------
function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	
	if(isNaN(num))
		num = "0";
	
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	
	if(cents<10)
		cents = "0" + cents;

		for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
			num = num.substring(0,num.length-(4*i+3))+' '+
			num.substring(num.length-(4*i+3));
	
	return (((sign)?'':'-') + '' + num );
} 
function stringToUppercase(inputString){
  	return inputString.value = inputString.value.toUpperCase();
}
function capitalizeWords(inputString) {
 
	var tmpStr, tmpChar, preString, postString, strlen;
 
	tmpStr = inputString.value.toLowerCase();
	stringLen = tmpStr.length;
 
	if (stringLen > 0){
 
  		for (i = 0; i < stringLen; i++) {
 
			if (i == 0){
			  tmpChar = tmpStr.substring(0,1).toUpperCase();
			  postString = tmpStr.substring(1,stringLen);
			  tmpStr = tmpChar + postString;
			}
			else{
			  tmpChar = tmpStr.substring(i,i+1);
				  
			  if (tmpChar == " " && i < (stringLen-1)){
				tmpChar = tmpStr.substring(i+1,i+2).toUpperCase();
				preString = tmpStr.substring(0,i+1);
				postString = tmpStr.substring(i+2,stringLen);
				tmpStr = preString + tmpChar + postString;
			  }
		
			} // else
  		} // for
	} // if
 
	return inputString.value = tmpStr;
}

// NEW BROWSER WINDOW
// -------------------------------------------------------------------
function MM_openBrWindow(theURL,winName,features) { //v2.0
	win=window.open(theURL,winName,features);
	win.focus()
}

$(document).ready(function(){
	
	// COMMOM UI
	// -------------------------------------------------------------------
	$(".tabs > ul").tabs();
	$(".accordion").accordion({header: '.head', autoHeight: true, navigation: true });
	
	
	// COMMOM MOTEUR DE RECHERES
	// -------------------------------------------------------------------
	
	// affiche les valeurs selectionnes dans INPUT
	$("div.suggest_box").each(function (i) { 
    var id = this.id;
		$("#"+id+"_list .box_occurrence").each(function (j) {
			var str = $("#"+this.id+" label").text();

			$("#"+this.id+" input:checked").each(function () {
				if ( $(this).attr("type") == "radio") {
					addVal(id+"_enter", str, "equ");
				} else {
					addVal(id+"_enter", str+", ", "auto");
				}
	    });

			$("#"+this.id+" input").click(function () {
				if ( $(this).attr("type") == "radio") {
					addVal(id+"_enter", str, "equ");
				} else {
					addVal(id+"_enter", str+", ", "auto");
				}
	    });

    });
	});
	
	// cache / affiche le div des occurrences
	$("div.suggest_box").each(function (i) { 
    var id = this.id;
		$("#"+id+" img, #"+id+"_enter").click(function () {
			visibilityControl(id, "auto"); 
    });
	});

	// cache / affiche la valeur par default pour le GEO SUGGEST
	$("#geo_suggest, #geo_suggest_agences, #rss_geo_suggest").bind("focus", function(i){
		input_value(this.id, this.title);
	});
	$("#geo_suggest, #geo_suggest_agences, #rss_geo_suggest").bind("blur", function(i){
		input_value(this.id, this.title);
	});
	
	// "Enter" key submit prevent
	$("#search-annonces, #search-agences").bind("keypress", function(e){
		var key;
    if (window.event) {
			key = window.event.keyCode; //IE
		} else {
			key = e.which;     					//Firefox
		}
    if (key == 13) {
			return false;
		} else {
			return true;
		}
	});
	
});
/* search */
 // var defaults
	if (typeof(budget_grad) == 'undefined') {
		var budget_grad = 1;
	}
	if (typeof(budget_scel) == 'undefined') {
		var budget_scel = false;
	}

 function search_geo (json, com_exst) {

	var j = 1;
	var k = 0;
	var elem_par_col = Math.round( json.nb_lines / 2) - 2;
	
	$("#search-tab-geo .cnt").append('<div id="C1" style="float:left; width:132px;"></div>');
	$("#search-tab-geo .cnt").append('<div style="float:left;"><img src="/images/spacer.gif" width="5" alt="" /></div>');
	$("#search-tab-geo .cnt").append('<div id="C2" style="float:left; width:132px;"></div>');
	$("#search-tab-geo .cnt").append('<div style="clear:both;"><img src="/images/spacer.gif" heght="1" alt="" /></div>');
	
	$.each(json.com_object, function(i, val) {
		k++;
		if (k == elem_par_col) {
			j++;
			k=1;
		}
		if (com_exst[''+ val.code_insee +'']) {
			$("#C"+j).append('<div class="com_input"><input name="search[01][and:code_insee_in:geo][]" type="checkbox" value="'+i+'" rel="'+val.com+'" checked="checked" /><label for="" title="'+i+'">'+val.com+'</label></div>');
		} else {
			$("#C"+j).append('<div class="com_input"><input name="search[01][and:code_insee_in:geo][]" type="checkbox" value="'+i+'" rel="'+val.com+'" /><label for="" title="'+i+'">'+val.com+'</label></div>');			
		}
	});

 }

 $(document).ready(function(){
	
	// MOTEUR DE RECHERES (ACTIONS)
	// -------------------------------------------------------------------

	// geo suggest if selected
	if ($("#geo_suggest").val() != $("#geo_suggest").attr("title")) {
		$("#geo_suggest").bind("click", function(i){
			var j = 1;
			$(this).val("");
			$(this).removeClass("geo_suggest_selected");
			$("#geo_nearby_result input").each( function(i){
				if (j==1) {
					var str = $("#"+this.id+" + label").text();
					$(this).attr("checked","checked");
					addVal("geo_nearby_enter", str, "equ");
				}
				$(this).attr({name: "search[01][and:com_url:geo]"});
				j++;
			});
		}).addClass("geo_suggest_selected");
	}

	// affiche les valeurs selectionnes
	$("div.suggest_box").each(function (i) { 
    var id = this.id;
		$("#"+id+"_list .box_occurrence").each(function (j) {
			var str = $("#"+this.id+" label").text();

			$("#"+this.id+" input:checked").each(function () {
				if ( $(this).attr("type") == "radio") {
					addVal(id+"_enter", str, "equ");
				} else {
					addVal(id+"_enter", str+", ", "auto");
				}
	    });

			$("#"+this.id+" input").click(function () {
				if ( $(this).attr("type") == "radio") {
					addVal(id+"_enter", str, "equ");
				} else {
					addVal(id+"_enter", str+", ", "auto");
				}
	    });

    });
	});

	// geo ajax suggest
	$("#geo_suggest").autocomplete( { // url was first farametre befor function
		url: "/_jquery_parser.php?dir=com",
		minChars: 2,
		width: 210,
		matchContains: true,
		autoFill: false,
		formatItem: function(data, i, n) {
			return data.com+" ("+data.code_postal+")";
		},
		formatResult: function(data) {
			return data.com+" ("+data.code_postal+")";
		}
	});
	$("#geo_suggest").autocomplete("result", function(event, data, formatted) {
		$("#geo_nearby_result input").each( function(i){
			$(this).attr({name: "search[01][and:com_url:geo]["+data.dep+":"+data.com_url+":fr]"});
		});
	});
	
	// search-tab / communes
	$("#search-tab-geo .top u").click(function () {
		$("#search-tab-geo").toggleClass("search-tab-open");
		if ( !com_json ) {
			$.getJSON("/_jquery_parser.php?type=json&dir=com&file=geo_com-json.php", 
				{ sql_join:  '_geo_utf8.com_prestige p USING(code_insee)',
				 	sql_where: "p.switch_a=2" }, 
				function(json){
					$("#search-tab-geo .cnt").toggleClass("loading");
					com_json = json;
			  	search_geo(json, "");
			 	}
			);
		}
	});	
	
	// search-tab / budget
	$("#search-tab-budget .top u").click(function () {
		$("#search-tab-budget").toggleClass("search-tab-open");
	});
	$("#slider-budget").slider({ 
		min: 0,
		max: 10000000 / budget_grad,
		stepping : 500000 / budget_grad,
		//steps: 10, 
		range: true, 
		slide: function(e,ui) { 
			
			var defaults = [];

			defaults["fr"] = {
				no_limit: "Illimité",
				from: "de ",
				to: " à ",
				ml: " m. €",
				k: " €"
			};

			defaults["ru"] = {
				no_limit: "Не ограничен",
				from: "от ",
				to: " до  ",
				ml: " мл. €",
				k: " K €"
			};
			
			var opt = defaults["fr"];
			
			var slider_a = Math.floor($(this).slider('value', 0));
			var slider_b = Math.round($(this).slider('value', 1));
			
			if (slider_b == (10000000 / budget_grad)) {
				if (slider_a == 0) {
					$("#budget_from").val(0);
					$("#budget_to").val(1000000000);
					$("#search-tab-budget .info").text(opt.no_limit);
				} else {
					$("#budget_from").val(slider_a);
					$("#budget_to").val(1000000000);
					if (budget_scel == 'k')
						$("#search-tab-budget .info").text(opt.from + (slider_a / (1)) + opt.k);
					else
						$("#search-tab-budget .info").text(opt.from + (slider_a / (1000000)) + opt.ml);
				}
			} else {
				$("#budget_from").val(slider_a);
				$("#budget_to").val(slider_b);
				if (budget_scel == 'k')
					$("#search-tab-budget .info").text(opt.from + (slider_a / (1)) + opt.to + (slider_b / (1)) + opt.k );
				else
					$("#search-tab-budget .info").text(opt.from + (slider_a / (1000000)) + opt.to + (slider_b / (1000000)) + opt.ml );
			}
			
		} 
	});
	
 });
/* alerte.callback */

$(document).ready(function(){
	$("#callback").bind("submit", function(e){
		
		// Default configuration properties.
		var defaults = [];

		defaults["fr"] = {
			erreurs: "Les erreurs suivantes sont survenus :\n",
			erreur_prenom: "- spécifiez votre prénom\n",
			erreur_nom: "- spécifiez votre nom\n",
			erreur_tel: "- spécifiez au moins un numéro de téléphone\n"
		};
		
		defaults["ru"] = {
			erreurs: "Возникли следующие ошибки :\n",
			erreur_prenom: "- укажите ваше имя\n",
			erreur_nom: "- укажите вашу фамилию\n",
			erreur_tel: "- укажите хотя бы один телефон\n"
		};
		
		var opt = defaults["fr"];
		
		var str = opt.erreurs;
		var vals = {};
		var check = true;
		var check_tel_a = true;
		var check_tel_b = true;
					
		$("#callback :input").each(function(e){
			
			vals[this.name] = this.value;
			
			if ( this.name == "data[prenom]" && this.value == "" ) {
				str += opt.erreur_prenom;
				check = false;
			} else if ( this.name == "data[nom]" && this.value == "" ) {
				str += opt.erreur_nom;
				check = false;
			} else if ( this.name == "data[portable]" && ( this.value == "" || this.value == $(this).attr('title') ) ) {
				check_tel_a = false;
			} else if ( this.name == "data[tel_bureau]" && ( this.value == "" || this.value == $(this).attr('title') ) ) {
				check_tel_b = false;
			}
			
		});
					
		if (check_tel_a == false && check_tel_b == false) {
			str += opt.erreur_tel;
			check = false;
		}
		
		if ( check == true ) {
			$("#callback-submit").attr('disabled','disabled');
			$.get("/_jquery_parser.php?dir=com&file=alerte_callback.php", 
				vals,
				function(data){
					//alert(data);
					$("#callback").parent('div').html('<div class="line">'+ data+ '</div>');
				}
			);
			
		} else {
			alert(str);
			return false;
		}
		
		return false;
		
	}); //bind
}); // ready

/* loc.common */
$(document).ready(function(){
	
	$('.tabs-custom > ul').tabs({
		select: function(e, ui) {
			var tab_id = ""+ ui.tab +"";
			if (tab_id == "http://lalande-immobilier.com"+ request_uri +"#tab-href") {
				location.href = $.data(ui.tab, 'load.tabs');
				return false;
			} 
		}
	});
	$('#tab-transaction .ui-tabs-nav').bind('tabsselect', function(event, ui) {
		tab_linked(ui.tab, "tab-transaction");
	});
	
});
