// JavaScript Document
//scriptLoad("/templates/js/jquery.cookie.js");
scriptLoad("/templates/js/mortgagecalculator.js");
var ids = "";
var imWidth = 0;
//
jQuery(document).ready(function(){
	rightBlocks();
	propertyTabs();
	forgottenPass();
	results();
	quickSearchBox();
	propertySearchLoad();
	prepForgot();
	prepSiteLogin();
});

//
//  Site Forms -----------------------------------------------
function forgottenPass() {
	$(".forgotten").click(function () {
		$par = $(this).closest(".forgottenForm");
		$par.find(".incontent").toggle();
	});
}
//
var optionsFP = {
	target:        '',   // target element(s) to be updated with server response
	beforeSubmit:  showRequestFP,  // pre-submit callback
	success:       showResponseFP  // post-submit callback
};
function prepForgot() {
	if($('#forgotF1').length) {
		$('#forgotF1').validate({
			submitHandler: function(form) {
				optionsFP.target = "#forgotF1 .response";
				$(form).ajaxSubmit(optionsFP);
			}
		});
	}
	if($('#forgotF2').length) {
		$('#forgotF2').validate({
			submitHandler: function(form) {
				optionsFP.target = "#forgotF2 .response";
				$(form).ajaxSubmit(optionsFP);
			}
		});
	}
}
function showRequestFP(formData, jqForm, optionsFP) {
	$('.forgottenForm .response').text("");
	$('.forgottenForm .response').hide();
    return true;
}
// post-submit callback
function showResponseFP(responseText, statusText)  {
	$('.forgottenForm .response').show();
	return true;
}

var optionsLogin = {
	target:        '.siteLogin .response',   // target element(s) to be updated with server response
	beforeSubmit:  showRequestLogin,  // pre-submit callback
	success:       showResponseLogin  // post-submit callback
};

function estateLoginHeadOn() {
	var parentDiv = $("#header .estateagents");
	parentDiv.addClass("whiteBG");
	parentDiv.addClass("removeBottomCorners");
}
function estateLoginHeadOff() {
	var parentDiv = $("#header .estateagents");
	parentDiv.removeClass("whiteBG");
	parentDiv.removeClass("removeBottomCorners");
}

function prepSiteLogin() {
	$(".loginLayer").mouseover(function() {
		$(this).show();
		estateLoginHeadOn();
	});
	$(".loginLayer").mouseout(function() {
		$(this).hide();
		estateLoginHeadOff();
	});
	//
	$(".loginHover").mouseover(function() {
		$he = $(this).closest("#header");
		$he.find(".loginLayer").show();
		$(".estateagents").mouseover(function() {
			$he.find(".loginLayer").show();
		});	
	});
	$(".estateagents").mouseover(function() {
		estateLoginHeadOn();
	});
	$(".estateagents").mouseout(function() {
		estateLoginHeadOff();
		$he = $(this).closest("#header");
		$he.find(".loginLayer").hide();
	});
	if($("#siteLogin").length) {
		$("#siteLogin").validate({
			  submitHandler: function(form) {
				  	optionsLogin.target = "#siteLogin .response";
					$(form).ajaxSubmit(optionsLogin);
			  }
		});
	}
	if($("#siteLogin1").length) {
		$("#siteLogin1").validate({
			  submitHandler: function(form) {
				  	optionsLogin.target = "#siteLogin1 .response";
					$(form).ajaxSubmit(optionsLogin);
			  }
		});
	}
}
function showRequestLogin(formData, jqForm, optionsLogin) {
	$('.siteLogin .response').hide();
    return true;
}
// post-submit callback
function showResponseLogin(responseText, statusText)  {
	responseText = $.trim(responseText);
	if(responseText.lastIndexOf('.jsp') == responseText.length - '.jsp'.length) {
		window.location.href = responseText;	
	}
	else {
		$('.siteLogin .response').show();
	}
	return true;
}
//  End of Site Forms -----------------------------------------------



var esPath;
var enPath;
function gotoLang(lang) {
	$("#iplang").val(lang);
	$("#langForm").submit();
}

var tFullDetails = "View full details";
function results() {
	$(".propertyResult").mouseover(function () {
		$(this).addClass("propertyResultHover");
	});
	$(".propertyResult").mouseout(function () {
		$(this).removeClass("propertyResultHover");				
	});
}
//
function setMenu(id) {
	$("#nav"+id).addClass('sel');
}
//
var focusFieldArray = new Array();
function focusField(theField,theIndex) {
	focusFieldArray[theIndex] = theField.value;
	theField.value = "";
}
function unFocusField(theField,theIndex) {
	if(theField.value=="") {
		theField.value = focusFieldArray[theIndex];
	}
}
//
// Show and hide tab layers on property pages
function propertyTabs(showLayer) {
	if(showLayer=="#container-1")
	{
		$(showLayer).show();
		$("#container-2").hide();
	}
	else if(showLayer=="#container-2")
	{
		$(showLayer).show();
		$("#container-1").hide();
	}
}
//
function goto(path) {
	location.href=path;
}
function propertySearchForm() {
	document.propertysearchform.submit();
}
//
// Quick Search on the top 
function quickSearchBox() {
	$("#quickSearchForm").submit(function() {
		quickForm();
		return false;
	});
	var quickTextEn = "Enter town or province";
	var quickTextEs = "Escribe la ciudad o provincia";
	$("#quick").focus(function() {
		if(($(this).val()==quickTextEn) || ($(this).val()==quickTextEs)) {
			$(this).val("");
			$(this).addClass("selected");
		}
  		//alert('Handler for .change() called.');
	});
}
function quickForm() {
	var q = $('#quickSearchForm #quick').val();
	//$('#quickPropertyfind').addClass('quickSearching');
	$('#quickPropertyfind').hide();
	$('#quickSearchContainer .searchingImg').show();	 
	 $.ajax({
	   type: "POST",
	   url: "/templates/ajax/quickSearch.jsp",
	   data: "q="+q,
	   success: function(msg){
		   //alert(msg.length);
		   msg = $.trim(msg);
			//
		   if(msg.startsWith("<!--several-->")) {
			   var title = "<h2>We've found multiple locations please click on one:</h2>";
			   $('#quickSearchResult').html(title+msg);
				$('#quickPropertyfind').show();
				$('#quickSearchContainer .searchingImg').hide();	 			
		   }
		   else if(msg.length>4) {
				window.location = msg;
		   }
		   else {
				$('#quickSearchResult').html("<h2>Location not found, please try an alternative word</h2>"); 
				$('#quickPropertyfind').show();
				$('#quickSearchContainer .searchingImg').hide();	 
			
		   }
	   }
	 });
	 return false;
}
// End of Quick Search on the top 
//
var preloadImagery = "";
var preloadCall = 0;
function preloadImages(preimages) {
	preloadImagery = preloadImagery + preimages;
	preloadCall++;
	if(preloadCall==1) {
		jQuery(document).ready(function(){
			var tempImg = [];
			preloadarr=preloadImagery.split(";");
			for(var x=0;x<preloadarr.length;x++) {
				tempImg[x] = new Image()
				tempImg[x].src = preloadarr[x] ;
			}
			//alert("preload call" +preloadarr.length);
		});
	};
}
//
//
function resetAgencyForm() {
	$('#reference').val("");
	$("#property_status option[value='-1']").attr("selected", "selected");
	$("#property_price_min option[value='0']").attr("selected", "selected");
	$("#property_price_max option[value='0']").attr("selected", "selected");
	$("#property_bdrooms_min option[value='0']").attr("selected", "selected");
	$("#property_bdrooms_max option[value='0']").attr("selected", "selected");
}
function agencyProvinciaTown() {
	jQuery(document).ready(function(){
		$("#agencyProvincia").change(function()
		{
			var loc = $("OPTION:selected", this).val();
			 $.ajax({
			   type: "POST",
			   url: "/templates/ajax/getPueblosDropdown.jsp",
			   data: "action="+loc+"&all=true",
			   success: function(msg){
					$("#searchTown").html(msg);
			   }
			 });
		});
	});
}

function clearMappngSearch() {
	$("#mapSearched").hide();
	$("#mapping").val("");
	$("#distance").val("");
}
function propertySearch(ttype) {
	jQuery(document).ready(function(){
		var provincia = $("#provincia OPTION:selected", this).val();
		 $.ajax({
		   type: "POST",
		   url: "/templates/ajax/getPueblosDropdown.jsp",
		   data: "action="+provincia+"&all="+ttype,
		   success: function(msg){
				$("#searchTown").html(msg);
				if(provincia=="0") {
					$("#pueblos").attr("disabled","disabled");
				} else {
					$("#pueblos").attr("disabled","");
				}
		   }
		 });
		propertyNumber();
	});
}
function propertyNumber() {
	var agent = $('input[name=agent_id]').val();
	var mapping = $("#mapping").val();
	var distance = $("#distance").val();
	var provincia = $("#provincia OPTION:selected").val();
	var pueblo = $("#pueblos OPTION:selected").val();
	if(pueblo==undefined)
		pueblo = "";
	var propertyCategory = $("#property_category OPTION:selected").val();
	var propertyPriceMin = $("#property_price_min OPTION:selected").val();
	var propertyPriceMax = $("#property_price_max OPTION:selected").val();
	var propertyBdroomsMin = $("#property_bdrooms_min OPTION:selected").val();
	var propertyBdroomsMax = $("#property_bdrooms_max OPTION:selected").val();
	//
	var q = "agency_id="+agent+"&provincia="+provincia+"&pueblos="+pueblo+"&property_category="+propertyCategory+"&property_price_min="+propertyPriceMin+"&property_price_max="+propertyPriceMax+ "&property_bdrooms_min="+propertyBdroomsMin+"&property_bdrooms_max="+propertyBdroomsMax+"&mapping="+mapping+"&distance="+distance;
	var s = "/templates/ajax/searchNumber.jsp";
	//alert(s+"?"+q);
	//$("#propertiesdebug").html(s+"?"+q);
	//
	$.ajax({
		type: "POST",
		url: "/templates/ajax/searchNumber.jsp",
		data: q,
		success: function(msg){
			if(msg.startsWith("0")) {
				$("#propertyfind").hide();
			}
			else
			{
				$("#propertyfind").show();
			}
			$("#propertiesfound").html(msg);
		}
	});
	return 0;
}
//The block needs an id to remember the setting
String.prototype.startsWith = function(str)
{return (this.match("^"+str)==str)}
//
function rightBlocks() {
	var $b = $(".rightColumn .block");
	//$(".content",$b).hide();
	$("h2",$b).click(function()
	{
		var block = $(this).parent();
		var content = $(".content",block);
		content.toggle();
		var blockId = block.attr('id');
		var q = "key="+blockId+"&value="+content.is(':visible');
		$.ajax({
			type: "POST",
			url: "/templates/ajax/blocks.jsp",
			data: q,
			success: function(msg){
			}
		});		
	});
}

function loadThumb(imagepath) {
	//alert(imagepath);
	var img = new Image();
	$(img).load(function () {
		//alert("loaded");
		//$(this).css('display', 'none'); // .hide() doesn't work in Safari when the element isn't on the DOM already
		$(this).hide();
		$('.largePropertyImage').html(this);
		$(this).show();
		//$(this).fadeIn();
	}).error(function () {
		// notify the user that the image could not be loaded
	}).attr('src', imagepath);
	
}
//
function propertySearchLoad() {
	$("#provincia").change(function () {
		clearMappngSearch();
		var sel = $("#provincia OPTION:selected").val();
		provinciaSelected(sel);
	});
}
//
// MAP Functions
function mapSelect(ccCode) {
	clearMappngSearch();
	//alert("hell");
	var indexCC = Array.find(provinciaCode,ccCode);
	var provinciaIdVal = "";
	provinciaIdVal = "provincia_"+provinciaId[indexCC];
	provinciaSelected(provinciaIdVal)
	//alert(ccCode);
	//alert(provinciaIdVal);
}
function provinciaSelected(provinciaOption) {
	var $pro = $("#provincia");
	$pro.val(provinciaOption);
	$.ajax({
	   type: "POST",
	   url: "/templates/ajax/getPueblosDropdown.jsp",
	   data: "action="+provinciaOption,
	   success: function(msg){
			$("#searchTown").html(msg);
			propertyNumber();
	   }
	});
}

Array.find = function(ary, element){
	for(var i=0; i<ary.length; i++){
		if(ary[i] == element){
			return i;
		}
	}
	return -1;
}

var provinciaId = new Array();
var provinciaCode = new Array();
provinciaId[0] = 1;provinciaCode[0] = 'ES-VI';provinciaId[1] = 2;provinciaCode[1] = 'ES-AB';provinciaId[2] = 3;provinciaCode[2] = 'ES-A';provinciaId[3] = 4;provinciaCode[3] = 'ES-AL';provinciaId[5] = 6;provinciaCode[5] = 'ES-AV';provinciaId[6] = 7;provinciaCode[6] = 'ES-BA';provinciaId[7] = 8;provinciaCode[7] = 'ES-B';provinciaId[8] = 9;provinciaCode[8] = 'ES-BU';provinciaId[9] = 10;provinciaCode[9] = 'ES-CC';provinciaId[10] = 11;provinciaCode[10] = 'ES-CA';provinciaId[12] = 13;provinciaCode[12] = 'ES-CS';provinciaId[13] = 14;provinciaCode[13] = 'ES-CE';provinciaId[14] = 15;provinciaCode[14] = 'ES-CR';provinciaId[15] = 16;provinciaCode[15] = 'ES-CO';provinciaId[16] = 17;provinciaCode[16] = 'ES-CU';provinciaId[17] = 18;provinciaCode[17] = 'ES-GI';provinciaId[18] = 19;provinciaCode[18] = 'ES-GR';provinciaId[19] = 20;provinciaCode[19] = 'ES-GU';provinciaId[20] = 21;provinciaCode[20] = 'ES-null';provinciaId[21] = 22;provinciaCode[21] = 'ES-H';provinciaId[22] = 23;provinciaCode[22] = 'ES-HU';provinciaId[23] = 24;provinciaCode[23] = 'ESPM';provinciaId[24] = 25;provinciaCode[24] = 'ES-J';provinciaId[25] = 26;provinciaCode[25] = 'ES-C';provinciaId[26] = 27;provinciaCode[26] = 'ES-LO';provinciaId[27] = 28;provinciaCode[27] = 'ESGC';provinciaId[28] = 29;provinciaCode[28] = 'ES-LE';provinciaId[29] = 30;provinciaCode[29] = 'ES-L';provinciaId[30] = 31;provinciaCode[30] = 'ES-LU';provinciaId[31] = 32;provinciaCode[31] = 'ES-M';provinciaId[32] = 33;provinciaCode[32] = 'ES-MA';provinciaId[33] = 34;provinciaCode[33] = 'ES-null';provinciaId[35] = 36;provinciaCode[35] = 'ES-NA';provinciaId[36] = 37;provinciaCode[36] = 'ES-OR';provinciaId[37] = 38;provinciaCode[37] = 'ES-P';provinciaId[38] = 39;provinciaCode[38] = 'ES-PO';provinciaId[39] = 40;provinciaCode[39] = 'ESTF';provinciaId[40] = 41;provinciaCode[40] = 'ES-SA';provinciaId[41] = 42;provinciaCode[41] = 'ES-SG';provinciaId[42] = 43;provinciaCode[42] = 'ES-SE';provinciaId[43] = 44;provinciaCode[43] = 'ES-SO';provinciaId[44] = 45;provinciaCode[44] = 'ES-T';provinciaId[45] = 46;provinciaCode[45] = 'ES-TE';provinciaId[46] = 47;provinciaCode[46] = 'ES-T';provinciaId[47] = 48;provinciaCode[47] = 'ES-V';provinciaId[48] = 49;provinciaCode[48] = 'ES-VA';provinciaId[49] = 50;provinciaCode[49] = 'ES-null';provinciaId[50] = 51;provinciaCode[50] = 'ES-ZA';provinciaId[51] = 52;provinciaCode[51] = 'ES-Z';

provinciaId[52] = 35;provinciaCode[52] = 'ES-MU';provinciaId[53] = 5;provinciaCode[53] = 'ES-O';provinciaId[54] = 12;provinciaCode[54] = 'ES-S';

// END OF MAP FUNCTIONS

function setMenu(id) {
	$("#nav"+id).addClass('sel');
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

//<a href="mypage.html?detectflash=false">Bypass link</a>
var startSlide = 0;
function loadSWFObject(div_id, src, movie_id, w, h, v, bgcolor) {
	//
	var so = new SWFObject(src, movie_id, w, h, v, bgcolor);
	so.addParam("quality", "high");
	so.addParam("scale", "exactfit");
	so.addParam("salign", "LT");
	//so.addParam("menu", "false");
	so.addParam("wmode", "transparent");
	so.addParam("swLiveConnect", "true");
	so.addParam("name", div_id);
	so.addParam("allowScriptAccess", "sameDomain");
	so.addVariable("slidexml", slidexml);
	so.addVariable("startSlide", startSlide);

	so.write(div_id);
}

function getURLParam(strParamName){
  var strReturn = "";
  var strHref = window.location.href;
  if ( strHref.indexOf("?") > -1 ){
    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if (
		aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
  }
  return unescape(strReturn);
}
function staticLoadScript(url)
{
   document.write('<script src="', url, '" type="text/JavaScript"><\/script>');
}
function scriptLoad(a, c) {
    var b = document.createElement("script");
    b.type = "text/javascript";
    b.async = true;
    if (b.readyState) {
        b.onreadystatechange = function() {
            if (b.readyState == "loaded" || b.readyState == "complete") {
                b.onreadystatechange = null;
                if (c) {
                    c();
                }
            }
        };
    } else {
        b.onload = function() {
            if (c) {
                c();
            }
        };
    }
    b.src = a;
    document.getElementsByTagName("head")[0].appendChild(b);
}

