//****************************************************************************
// 
// Skapa ALLTID en ny minifierad version om ändringar görs i denna!!
// Kolla även att åäö i strängar blir korrekta vid minifiering.
//
//****************************************************************************
var fromCookie=false;
var chkTrigger;
var mIDs = "";
var countyIsClicked = false;
$(document).ready(function(){
	//spara favoritsökning, 60 dagar persistent cookie
	$("#saveFavSearch").click(function(e){
		e.preventDefault();
		setHouseSearchCookie(60);
		this.innerHTML = "Favoritsökning sparad!"
	});
	//sökning från inställningar i cookie
	function doCookieHouseSearch(cName){
		try{
			var params = $.cookie(cName);
			params = params.split(";");
			for(i=0; i<params.length;i++){
				var param = params[i].split("|");
				var val = "";
				var handleLeft1 = "";
				var handleLeft2 = "";
				var handleWidth = "";
				switch(param[0].toString()){
					case "county":
						$(".MultiCounty").find("option").each(function(a,b){
							if(this.value.toString() == param[1].toString()){
								//för att trigga räknarna (proj,obj) innan sökning
								if(this.value.toString()!="0"){countyIsClicked=true;}
								$(".MultiCounty").val(this.value.toString()).change();
							}
						});
					break;
					case "muncipalityIDs":
						$("#hidMuncipalityIDs").val(param[1].toString());
						mIDs=param[1].toString();
					break;
					case "housingType":
						//hitta bostadstyp/-er
						val = param[1].split(",");
						if(val[0].toString() == "1")
							$(".ObjApartment input")[0].checked=true;
						else
							$(".ObjApartment input")[0].checked=false;
						if(val[1].toString() == "2")
							$(".ObjHouse input")[0].checked=true;
						else
							$(".ObjHouse input")[0].checked=false;
					break;
					case "category":
						//bostadskategori
						val = param[1].toString();
						if(val == "2")
							$(".ObjBonum input").trigger('click');
					break;
					case "price":
						//reglage för pris
						val = param[1].split(",");
						$("#priceSlide").slider('option','values',[parseInt(val[0].toString()),parseInt(val[1].toString())]);
						$(".MinPriceVal").text(formatValue(val[0].toString())+" kr");
						if(val[1].toString()=="8000000"){
							$(".MaxPriceVal").text(formatValue(val[1].toString())+" kr +");
						}else{
							$(".MaxPriceVal").text(formatValue(val[1].toString())+" kr");
						}
						handleLeft1 = val[2].toString();
						handleLeft2 = val[3].toString();
						handleWidth = handleLeft2.split('%')[0]-handleLeft1.split('%')[0];
						$("div#priceSlide a.ui-slider-handle")[0].style.left = handleLeft1;
						$("div#priceSlide a.ui-slider-handle")[1].style.left = handleLeft2;
						$("div#priceSlide div.ui-slider-range").attr("style","left:"+handleLeft1+";width:"+handleWidth+"%;");
						$(".HidMinPrice").val(val[0].toString());
						$(".HidMaxPrice").val(val[1].toString());
					break;
					case "rooms":
						//reglage för rum
						val = param[1].split(",");
						$("#roomSlide").slider('option','values',[parseInt(val[0].toString()),parseInt(val[1].toString())]);
						$(".MinRoomVal").text(formatValue(val[0].toString())+" st");
						if(slideMax=="5"){
							$(".MaxRoomVal").text(formatValue(val[1].toString())+" st +");
						}else{
							$(".MaxRoomVal").text(formatValue(val[1].toString())+" st");
						}
						handleLeft1 = val[2].toString();
						handleLeft2 = val[3].toString();
						handleWidth = handleLeft2.split('%')[0]-handleLeft1.split('%')[0];
						$("div#roomSlide a.ui-slider-handle")[0].style.left = handleLeft1;
						$("div#roomSlide a.ui-slider-handle")[1].style.left = handleLeft2;
						$("div#roomSlide div.ui-slider-range").attr("style","left:"+handleLeft1+";width:"+handleWidth+"%;");
						$(".HidMinRoom").attr("value",val[0].toString());
						$(".HidMaxRoom").attr("value",val[1].toString());
					break;
					case "area":
						//reglage för yta
						val = param[1].split(",");
						$("#areaSlide").slider('option','values',[parseInt(val[0].toString()),parseInt(val[1].toString())]);
						$(".MinAreaVal").html(formatValue(val[0].toString())+" m<sup>2</sup>");
						if(slideMax=="5"){
							$(".MaxAreaVal").html(formatValue(val[1].toString())+" m<sup>2</sup> +");
						}else{
							$(".MaxAreaVal").html(formatValue(val[1].toString())+" m<sup>2</sup>");
						}
						handleLeft1 = val[2].toString();
						handleLeft2 = val[3].toString();
						handleWidth = handleLeft2.split('%')[0]-handleLeft1.split('%')[0];
						$("div#areaSlide a.ui-slider-handle")[0].style.left = handleLeft1;
						$("div#areaSlide a.ui-slider-handle")[1].style.left = handleLeft2;
						$("div#areaSlide div.ui-slider-range").attr("style","left:"+handleLeft1+";width:"+handleWidth+"%;");
						$(".HidMinArea").attr("value",val[0].toString());
						$(".HidMaxArea").attr("value",val[1].toString());
					break;
					case "fee":
						//reglage för avgift
						val = param[1].split(",");
						$("#feeSlide").slider('option','values',[parseInt(val[0].toString()),parseInt(val[1].toString())]);
						$(".MinFeeVal").text(formatValue(val[0].toString())+" kr");
						if(slideMax=="5"){
							$(".MaxFeeVal").text(formatValue(val[1].toString())+" kr +");
						}else{
							$(".MaxFeeVal").text(formatValue(val[1].toString())+" kr");
						}
						handleLeft1 = val[2].toString();
						handleLeft2 = val[3].toString();
						handleWidth = handleLeft2.split('%')[0]-handleLeft1.split('%')[0];
						$("div#feeSlide a.ui-slider-handle")[0].style.left = handleLeft1;
						$("div#feeSlide a.ui-slider-handle")[1].style.left = handleLeft2;
						$("div#feeSlide div.ui-slider-range").attr("style","left:"+handleLeft1+";width:"+handleWidth+"%;");
						$(".HidMinFee").attr("value",val[0].toString());
						$(".HidMaxFee").attr("value",val[1].toString());
					break;
					case "properties":
						//utökade inställningar - balkong etc.
						val = param[1].split(",");
						$(".ChkProperties input").each(function(chk){
							val[chk] == "1" ? this.checked=true : this.checked=false;
						});
					break;
					case "tenureStatus":
						//utökade inställningar - upplåtelseform
						val = param[1].split(",");
						val[0]=="1" ? $(".TenureStatus input")[0].checked=true : $(".TenureStatus input")[0].checked=false;
						val[1]=="2" ? $(".TenureStatus input")[1].checked=true : $(".TenureStatus input")[1].checked=false;
					break;
					case "readyToMoveIn":
						//utökade inställningar - inflyttningsklar
						param[1]=="1" ? $(".ChkProjObjStatus input")[0].checked=true : $(".ChkProjObjStatus input")[0].checked=false;
					break;
				}
			}
			var st = setTimeout('setMunicipalitys(mIDs)',1400);
		}
		catch(e){
			//console.log(e.message);
		}
	};
	
	setMunicipalitys = function(municipalitys){
		//bara loop om antal kommuner > 1
		if(municipalitys.indexOf(",") != -1){
			municipalitys = municipalitys.split(",");
			$(municipalitys).each(function(ix){
				$(".multiSelectOptions").find('input:checkbox').each(function(a,b){
					if(b.value.toString()==municipalitys[ix].toString()){
						//checked måste vara true när click fångas i multiSelect-callback
						b.checked=true;
						$(b).parent('label').addClass('checked');
						//för att låta en kommun agera trigger utanför switch
						chkTrigger=b;
					}
				});
			});
			
		} else {
			$(".multiSelectOptions").find('input:checkbox').each(function(a,b){
				if(b.value.toString()==municipalitys.toString()){
					//checked måste vara true när click fångas i multiSelect-callback
					b.checked=true;
					$(b).parent('label').addClass('checked');
					//för att låta sista kommunen agera trigger utanför switch
					chkTrigger=b;
				}
			});
		}
		if(chkTrigger == undefined){
			chkTrigger = $("input.selectAll")[0];
		}
		fromCookie=true;
		$(chkTrigger).trigger('click');
		chkTrigger.checked=true;
	};

	var searchValues = new Array(8);
	var projectIDs = 0;
	
	var slideMin = "";
	var slideMax = "";
	
	var setSliderValues = function(){
		searchValues[0]=$("#priceSlide").slider('values',0).toString();
		searchValues[1]=$("#priceSlide").slider('values',1).toString();
		searchValues[2]=$("#roomSlide").slider('values',0).toString();
		searchValues[3]=$("#roomSlide").slider('values',1).toString();
		searchValues[4]=$("#areaSlide").slider('values',0).toString();
		searchValues[5]=$("#areaSlide").slider('values',1).toString();
		searchValues[6]=$("#feeSlide").slider('values',0).toString();
		searchValues[7]=$("#feeSlide").slider('values',1).toString();
	};
	
	var formatValue = function(val) {
		var valStr = "" + val;
		var formatStr = "";

		var i, j;
		for (i = valStr.length - 1, j = 1; i >= 0; i--, j++) {
			formatStr = valStr.charAt(i) + formatStr;
			if (j == 3) {
				j = 0;
				formatStr = " " + formatStr;
			}
		}
		return formatStr;
	};
	
	$(".MultiCounty").click(function(){
		countyIsClicked = true;
	});
	
	$(".MultiCounty").change(function(){
		$(".MultiCounty option:selected").each(function(){
			if(this.value != "0"){
				switch(this.value){
					case "BigCityS":
						//Stor-Stockholm är samma som Stockholms län. Hämtar därför län-id från drop-down och skickar det.
						for(iOpt=1; iOpt < $(".MultiCounty")[0].options.length;iOpt++){
							var strName = $(".MultiCounty")[0].options[iOpt].text;
							var strPattern = /stockholm/i;
							if(!(strName.search(strPattern)==-1) && !($(".MultiCounty")[0].options[iOpt].value == "BigCityS")){
								var _id = $(".MultiCounty")[0].options[iOpt].value;
								GetCountyMunicipalitys(parseInt(_id),parseInt(_id),false);
								break;
							}
						};
					break;
					
					case "BigCityG":
						//Hämtar län-id från drop-down och skickar det med BigCityID.
						for (iOpt = 1; iOpt < $(".MultiCounty")[0].options.length; iOpt++) {
							var strName = $(".MultiCounty")[0].options[iOpt].text;
							var strPattern = /götaland/i;
							if (!(strName.search(strPattern) == -1) && !($(".MultiCounty")[0].options[iOpt].value == "BigCityG")) {
								var _id = $(".MultiCounty")[0].options[iOpt].value;
								GetCountyMunicipalitys(parseInt(_id),20,true);
								break;
							}
						};
					break;
					
					case "BigCityM":
						//Hämtar län-id från drop-down och skickar det med BigCityID.
						for (iOpt = 1; iOpt < $(".MultiCounty")[0].options.length; iOpt++) {
							var strName = $(".MultiCounty")[0].options[iOpt].text;
							var strPattern = /skåne/i;
							if (!(strName.search(strPattern) == -1) && !($(".MultiCounty")[0].options[iOpt].value == "BigCityM")) {
								var _id = $(".MultiCounty")[0].options[iOpt].value;
								GetCountyMunicipalitys(parseInt(_id),30,true);
								break;
							}
						};
					break;
					
					default:
						GetCountyMunicipalitys(this.value,this.value,false);
					break;
				}
			}
			else{
				if(!$.cookie("housesearchsettings") && !fromCookie && $(".MiniSearch").val() == undefined)
					GetProjects(0,"0",housingType(),tenureStatus(),category());
				if(countyIsClicked){
					if(this.value == "0"){
						$(".multiSelect").attr("value","Alla kommuner");
						GetProjects(0,"0",housingType(),tenureStatus(),category());
					}else
						GetAllMunicipalitys();
				}
				else {
					if(this.value == "0"){
						var msTime = setTimeout("$('.multiSelect')[0].disabled = true",600);
					}
				}
			}
		});
	}).change();

	$(".SearchArea .MultiMunicipality").multiSelect({ oneOrMoreSelected:'*',selectAll:true,selectAllText:"Alla kommuner",noneSelected:"Välj kommun" },function(check){
		var arrIDs="";
		var countyID = GetMunicipalityID($(".MultiCounty").val());
		var hidIDs=$("#hidMuncipalityIDs").val();
		var chkID=$(check).val();
		var strMatch = hidIDs.search(chkID);
		
		if(chkID=="0"){
			//Klickat på 'Alla kommuner'
			if(check.parent().hasClass("checked")){
				check.parent().siblings().each(function(e){
					this.className = "";
					$(this).children()[0].checked = false;
					hidIDs="";//Rensa gamla kommuner nu när alla ska visas
				});
			}
			else{
				if(check[0].checked){
					check.parent().siblings().each(function(e){
						this.className = "";
						$(this).children()[0].checked = false;
					});
					if(!check.parent().hasClass("checked"))
						check.parent().addClass("checked");
				}
				else{
					//$(".multiSelectOptions").find('input:checkbox').val('0')[0].checked=false;
				}
			}
		}
		else{
			//Kryssa ur 'Alla kommuner' vid klick på annan kommun
			$(".multiSelectOptions").find('input:checkbox').each(function(a,b){
				if(a=="0" && b.value=="0"){
					b.checked=false;
					b.parentNode.className="";
				}
			});
			//Kör en runda till för att se om det fortfarande finns en vald kommun.
			var bChecked=false;
			$(".multiSelectOptions").find('input:checkbox').each(function(a,b){
				if(b.checked){
					bChecked=true;
				}
			});
			//Ingen kommun vald, markera val 'Alla kommuner'.
			if(!bChecked){
				$(".multiSelectOptions").find('input:checkbox.selectAll').val('0').trigger('click');
				$(".multiSelectOptions").find('input:checkbox.selectAll').val('0').parent().addClass("checked");
			}
		}
		
		switch(strMatch){
			case -1:
				if(hidIDs)
					arrIDs = hidIDs + "," + chkID;
				else
					arrIDs = chkID;
			break;
			
			default:
				var _arr = hidIDs.split(",");
				var i = 0;
                for(var i = 0;i< _arr.length; i++){
				//for(y in _arr){
					if(!_arr[i].match(chkID)){
						if(arrIDs)
							arrIDs = arrIDs + "," + _arr[i];
						else
							arrIDs = _arr[i];
					}else{
						//från kaka
						if(arrIDs)
							arrIDs = arrIDs + "," + _arr[i];
						else
							arrIDs = _arr[i];
					}
					//i++;
				}
			break;
		}
		$("#hidMuncipalityIDs").attr("value",arrIDs);
		if(arrIDs)
			GetProjects(countyID,arrIDs,housingType(),tenureStatus(),category());
		else
			GetProjects(countyID,"0",housingType(),tenureStatus(),category());
	});

	$(".ObjApartment,.ObjHouse,.TenureStatus input,.ObjBonum,.ChkProjObjStatus input").click(function() {
		var cID = GetMunicipalityID($(".MultiCounty").val());
		var mID = "0";
		if($("#hidMuncipalityIDs").val()){
			mID = $("#hidMuncipalityIDs").val();
		}
		GetProjects(cID,mID,housingType(),tenureStatus(),category());
	});
	/* ARRAYEN FÖR SLIDERS
		0 - min pris
		1 - max pris
		2 - min rum
		3 - max rum
		4 - min yta
		5 - max yta
		6 - min avg
		7 - max avg
	*/
	$("#priceSlide").slider({min:0,max:8000000,step:500000,range:true,values:[0,8000000],
		slide:function(event,ui){
			slideMin = ui.values[0];
			slideMax = ui.values[1];
			$(".MinPriceVal").text(formatValue(slideMin)+" kr");
			
			if(slideMax=="8000000")
				$(".MaxPriceVal").text(formatValue(slideMax)+" kr +");
			else
				$(".MaxPriceVal").text(formatValue(slideMax)+" kr");
			
			$(".HidMinPrice").attr("value",slideMin);
			$(".HidMaxPrice").attr("value",slideMax);
			
			searchValues[0]=slideMin.toString();
			searchValues[1]=slideMax.toString();
			searchValues[2]=$("#roomSlide").slider('values',0).toString();
			searchValues[3]=$("#roomSlide").slider('values',1).toString();
			searchValues[4]=$("#areaSlide").slider('values',0).toString();
			searchValues[5]=$("#areaSlide").slider('values',1).toString();
			searchValues[6]=$("#feeSlide").slider('values',0).toString();
			searchValues[7]=$("#feeSlide").slider('values',1).toString();
			
			GetSearchResult(-1,searchValues,objProperties(),readyToMoveIn());
		}
	});
	$("#roomSlide").slider({min:1,max:5,step:1,range:true,values:[1,5],
		slide:function(event,ui){
			slideMin = ui.values[0];
			slideMax = ui.values[1];
			$(".MinRoomVal").text(formatValue(slideMin)+" st");
			if(slideMax=="5")
				$(".MaxRoomVal").text(formatValue(slideMax)+" st +");
			else
				$(".MaxRoomVal").text(formatValue(slideMax)+" st");
			$(".HidMinRoom").attr("value",slideMin);
			$(".HidMaxRoom").attr("value",slideMax);
			
			searchValues[0]=$("#priceSlide").slider('values',0).toString();
			searchValues[1]=$("#priceSlide").slider('values',1).toString();
			searchValues[2]=slideMin.toString();
			searchValues[3]=slideMax.toString();
			searchValues[4]=$("#areaSlide").slider('values',0).toString();
			searchValues[5]=$("#areaSlide").slider('values',1).toString();
			searchValues[6]=$("#feeSlide").slider('values',0).toString();
			searchValues[7]=$("#feeSlide").slider('values',1).toString();
			
			GetSearchResult(-1,searchValues,objProperties(),readyToMoveIn());
		}
	});
	$("#areaSlide").slider({min:0,max:200,step:10,range:true,values:[0,200],
		slide:function(event,ui){
			slideMin = ui.values[0];
			slideMax = ui.values[1];
			$(".MinAreaVal").html(formatValue(slideMin)+" m<sup>2</sup>");
			if(slideMax=="200")
				$(".MaxAreaVal").html(formatValue(slideMax)+" m<sup>2</sup> +");
			else
				$(".MaxAreaVal").html(formatValue(slideMax)+" m<sup>2</sup>");
			$(".HidMinArea").attr("value",slideMin);
			$(".HidMaxArea").attr("value",slideMax);
			
			searchValues[0]=$("#priceSlide").slider('values',0).toString();
			searchValues[1]=$("#priceSlide").slider('values',1).toString();
			searchValues[2]=$("#roomSlide").slider('values',0).toString();
			searchValues[3]=$("#roomSlide").slider('values',1).toString();
			searchValues[4]=slideMin.toString();
			searchValues[5]=slideMax.toString();
			searchValues[6]=$("#feeSlide").slider('values',0).toString();
			searchValues[7]=$("#feeSlide").slider('values',1).toString();
			
			GetSearchResult(-1,searchValues,objProperties(),readyToMoveIn());
		}
	});
	$("#feeSlide").slider({min:0,max:10000,step:500,range:true,values:[0,10000],
		slide:function(event,ui){
			slideMin = ui.values[0];
			slideMax = ui.values[1];
			$(".MinFeeVal").text(formatValue(slideMin)+" kr");
			if(slideMax=="10000")
				$(".MaxFeeVal").text(formatValue(slideMax)+" kr +");
			else
				$(".MaxFeeVal").text(formatValue(slideMax)+" kr");
			$(".HidMinFee").attr("value",slideMin);
			$(".HidMaxFee").attr("value",slideMax);
			
			searchValues[0]=$("#priceSlide").slider('values',0).toString();
			searchValues[1]=$("#priceSlide").slider('values',1).toString();
			searchValues[2]=$("#roomSlide").slider('values',0).toString();
			searchValues[3]=$("#roomSlide").slider('values',1).toString();
			searchValues[4]=$("#areaSlide").slider('values',0).toString();
			searchValues[5]=$("#areaSlide").slider('values',1).toString();
			searchValues[6]=slideMin.toString();
			searchValues[7]=slideMax.toString();
			
			GetSearchResult(-1,searchValues,objProperties(),readyToMoveIn());
		}
	});
	$(".ShowExtSearchOptions").click(function(e){
		e.preventDefault();
		$(".ExtSearchOptions").toggleClass("Hidden");
		if($(".ExtSearchOptions").hasClass("Hidden"))
			$(this).removeAttr("style");
		else
			$(this).css("background","url(/templates/public/images/backgrounds/btnMinusBig.png) no-repeat 0 1px");
	});
	$(".ShowExtSearchOptions").hover(
		function(){
			$(this).css("background-position","0 -24px");
		},
		function(){
			$(this).css("background-position","0 1px");
		}
	);
	$(".ChkProperties input").click(function(){
		setSliderValues();
		GetSearchResult(-1,searchValues,objProperties(),readyToMoveIn());
	});
	
	$("a.ResetSearchForm").click(function(e){
		e.preventDefault();
		
		$(".MultiCounty").val("0").change();
		
		$(".multiSelect").attr("value","Alla kommuner")
		$("#hidMuncipalityIDs").attr("value",0);
		
		$(".ObjApartment input")[0].checked = true;
		$(".ObjHouse input")[0].checked = true;
		$(".ObjBonum input")[0].checked = false;
		
		$("#priceSlide").slider('values',0,[0]);
		$(".MinPriceVal").text("0 kr");
		$(".HidMinPrice").attr("value",0);
		$("#priceSlide").slider('values',1,[8000000])
		$(".MaxPriceVal").text("8 000 000 kr +");
		$(".HidMaxPrice").attr("value",8000000);
		$("#roomSlide").slider('values',0,[1]);
		$(".MinRoomVal").text("0 st");
		$(".HidMinRoom").attr("value",0);
		$("#roomSlide").slider('values',1,[5]);
		$(".MaxRoomVal").text("5 st +");
		$(".HidMaxRoom").attr("value",5);
		$("#areaSlide").slider('values',0,[0]);
		$(".MinAreaVal").html("0 m<sup>2</sup>");
		$(".HidMinArea").attr("value",0);
		$("#areaSlide").slider('values',1,[200]);
		$(".MaxAreaVal").html("200 m<sup>2</sup> +");
		$(".HidMaxArea").attr("value",200);
		$("#feeSlide").slider('values',0,[0]);
		$(".MinFeeVal").text("0 kr");
		$(".HidMinFee").attr("value",0);
		$("#feeSlide").slider('values',1,[10000]);
		$(".MaxFeeVal").text("10 000 kr +");
		$(".HidMaxFee").attr("value",10000);
		
		$(".ChkProperties input").each(function(chk){
			this.checked = false;
		});
		$(".ChkProjObjStatus input").each(function(chk){
			this.checked = false;
		});
		setSliderValues();
		GetProjects(0,"0",housingType(),tenureStatus(),category());
		GetAllMunicipalitys();
		$.cookie("housesearchsettings", null);
	});
	//Spara inställningar för sökning i cookie
	$(".BtnShowSearchResult").click(function(){
		location.hash = "";
		if($.cookie("housesearchsettings"))
			$.cookie("housesearchsettings",null)
		if(!$("#hidMuncipalityIDs").val())
			$("#hidMuncipalityIDs").val("0")
		//skickar null för att endast sätta sessioncookie
		setHouseSearchCookie(null);
	});
	//kolla efter kakor, annars default-sök
	if($.cookie("housesearchsettings")&&countyQueryStr == ""){
		doCookieHouseSearch("housesearchsettings");
	}
	else if($.cookie("favosearchsettings")){
		doCookieHouseSearch("favosearchsettings");
	}
});
function setHouseSearchCookie(cExpires){
	var cName;
	if(cExpires!=null)
		cName = "favosearchsettings";
	else
		cName = "housesearchsettings";
	$.cookie(cName,
		"county|" + $(".MultiCounty").val() +
		";muncipalityIDs|" + $("#hidMuncipalityIDs").val() +
		";housingType|" + housingType() +
		";category|" + category() +
		";price|" + $("#priceSlide").slider('values') + "," + 
		$("div#priceSlide a.ui-slider-handle")[0].style.left + "," +
		$("div#priceSlide a.ui-slider-handle")[1].style.left +
		";rooms|" + $("#roomSlide").slider('values') + "," +
		$("div#roomSlide a.ui-slider-handle")[0].style.left + "," +
		$("div#roomSlide a.ui-slider-handle")[1].style.left +
		";area|" + $("#areaSlide").slider('values') + "," +
		$("div#areaSlide a.ui-slider-handle")[0].style.left + "," +
		$("div#areaSlide a.ui-slider-handle")[1].style.left +
		";fee|" + $("#feeSlide").slider('values') + "," +
		$("div#feeSlide a.ui-slider-handle")[0].style.left + "," +
		$("div#feeSlide a.ui-slider-handle")[1].style.left +
		";properties|" + objProperties() +
		";tenureStatus|" + tenureStatus() +
		";readyToMoveIn|" + readyToMoveIn(), {expires:cExpires, path:'/'}
	);
}
var housingType = function(){
	var _apartment = "0";
	var _house = "0";
	var retStr = "";
	if($(".ObjApartment input")[0].checked)
		_apartment = "1";
	
	if($(".ObjHouse input")[0].checked)
		_house = "2";
	
	retStr = _apartment + "," + _house;
	return retStr;
};
var tenureStatus = function(){
	var _tenantOwning = "0";
	var _ownership = "0";
	var retStr = "";
	try {
		if($(".TenureStatus input")[0].checked)
			_tenantOwning = "1";
	
		if($(".TenureStatus input")[1].checked)
			_ownership = "2";
	}
	catch(e) {}

	retStr = _tenantOwning + "," + _ownership;
	return retStr;
};
var category = function(){
	var _category = "1";
	if($(".ObjBonum input")[0].checked)
		_category="2";
	return _category;
};
var objProperties = function(){
	var _props = new Array(3);
	$(".ChkProperties input").each(function(chk){
		_props[chk] = this.checked ? "1" : "0";
	});
	return _props;
};
function readyToMoveIn(){
	var _ready = "0";
	try {
		if($(".ChkProjObjStatus input")[0].checked)
			_ready = "1";
	}
	catch(e) {}
	return _ready;
};

//Lista kommuner och skapa dropdown (<select>).
function CreateMunicipalityDropDown(municipalityArray){
	var strInput="";
	var tempArr="";
	var i=0;
	strInput += '<div id="municipalitys"><select class="MultiMunicipality" width="150">';
	try{
		for(x in municipalityArray){
			tempArr = municipalityArray[i];
			tempArr = tempArr.split(",");
			strInput += '<option value="' +tempArr[0]+ '">'+tempArr[1]+'</option>';
			i++;
		}
	}
	catch(e){
		//municipalityArray är inte av typen 'Array', eller helt tom.
	}
	
	strInput += "</select></div>";
	$("#municipalitys").replaceWith(strInput);
	CreateMultiDropDown();
}

function CreateMultiDropDown(){
	$(".MultiMunicipality").multiSelect({ oneOrMoreSelected:'*',selectAll:true,selectAllText:"Alla kommuner",noneSelected:"Välj kommun" },function(check){
		var arrIDs="";
		var countyID = 0;
		
		switch($(".MultiCounty").val()){
			case "BigCityS":
				//Stor-Stockholm är valt. Hämtar Sthml-id från drop-down och skickar det.
				for (iOpt = 1; iOpt < $(".MultiCounty")[0].options.length; iOpt++) {
					var strName = $(".MultiCounty")[0].options[iOpt].text;
					var strPattern = /stockholm/i;
					if (!(strName.search(strPattern) == -1) && !($(".MultiCounty")[0].options[iOpt].value == "BigCityS")) {
						var _id = $(".MultiCounty")[0].options[iOpt].value;
						countyID = parseInt(_id);
					}
				};
			break;
			
			case "BigCityG":
				//Stor-Göteborg är valt. Hämtar Gbg-id från drop-down och skickar det.
				for (iOpt = 1; iOpt < $(".MultiCounty")[0].options.length; iOpt++) {
					var strName = $(".MultiCounty")[0].options[iOpt].text;
					var strPattern = /götaland/i;
					if (!(strName.search(strPattern) == -1) && !($(".MultiCounty")[0].options[iOpt].value == "BigCityG")) {
						var _id = $(".MultiCounty")[0].options[iOpt].value;
						countyID = parseInt(_id);
					}
				};
			break;
			
			case "BigCityM":
				//Stor-Malmö är valt. Hämtar Malmö-id från drop-down och skickar det.
				for (iOpt = 1; iOpt < $(".MultiCounty")[0].options.length; iOpt++) {
					var strName = $(".MultiCounty")[0].options[iOpt].text;
					var strPattern = /skåne/i;
					if (!(strName.search(strPattern) == -1) && !($(".MultiCounty")[0].options[iOpt].value == "BigCityM")) {
						var _id = $(".MultiCounty")[0].options[iOpt].value;
						countyID = parseInt(_id);
					}
				};
			break;
			
			default:
				//Man har valt ett län istället för storstad.
				countyID = parseInt($(".MultiCounty").val());
			break;
		}
		
		var hidIDs=$("#hidMuncipalityIDs").val();
		var chkID=$(check).val();
		var strMatch = hidIDs.search(chkID);
		
		//Värdet på kommunväljaren, 0 = Alla kommuner.
		if(chkID=="0"){
			if(check.parent().hasClass("checked")){
				check.parent().siblings().each(function(e){
					this.className = "";
					$(this).children()[0].checked = false;
					hidIDs="";//Rensa gamla kommuner nu när alla ska visas.
				});
			}
			else{
				if(check[0].checked){
					check.parent().siblings().each(function(e){
						this.className = "";
						$(this).children()[0].checked = false;
					});
					if(!check.parent().hasClass("checked"))
						check.parent().addClass("checked");
				}
				else{
					//$(".multiSelectOptions").find('input:checkbox').val('0')[0].checked=false;
					//Kolla upp
				}
			}
		}
		else{
			$(".multiSelectOptions").find('input:checkbox').each(function(a,b){
				//Kanske ska även 'a==0' här? Se samma funktion i OnLoad
				if(b.value=="0"){
					b.checked=false;
					b.parentNode.className="";
				}
			});
			//Kör en runda till för att se om det fortfarande finns en vald kommun.
			var bChecked=false;
			$(".multiSelectOptions").find('input:checkbox').each(function(a,b){
				if(b.checked){
					bChecked=true;
				}
			});
			//Ingen kommun vald, markera val 'Alla kommuner'.
			if(!bChecked){
				$(".multiSelectOptions").find('input:checkbox.selectAll').val('0').trigger('click');
				$(".multiSelectOptions").find('input:checkbox.selectAll').val('0').parent().addClass("checked");
			}
		}
		
		switch(strMatch){
			case -1:
				if(hidIDs)
					arrIDs = hidIDs + "," + chkID;
				else
					arrIDs = chkID;
			break;
			
			default:
				if(!hidIDs){
					arrIDs = chkID;
				}
				else{
					var _arr = hidIDs.split(",");
					for(var i = 0; i < _arr.length; i++){
						if(!_arr[i].match(chkID)){
							if(arrIDs)
								arrIDs = arrIDs + "," + _arr[i];
							else
								arrIDs = _arr[i];
						}else{
							//från kaka
							if(arrIDs)
								arrIDs = arrIDs + "," + _arr[i];
							else
								arrIDs = _arr[i];
						}
					}
				}
			break;
		}
		$("#hidMuncipalityIDs").attr("value",arrIDs);
		if(arrIDs && $(".MiniSearch").val() == undefined )
			GetProjects(countyID,arrIDs,housingType(),tenureStatus(),category());
		else
			GetProjects(countyID,"0",housingType(),tenureStatus(),category());
	});
}
function GetCountyMunicipalitys(countyID, bigCityID, isBigCity){
	RBExtern.WebHandlers.HandleSearchSlides.GetMunicipality(countyID, bigCityID, isBigCity, SucceededMuniCallback, FailedGCMCallback);
}
function SucceededMuniCallback(result){
	var mySelect = $(".multiSelectOptions");
	var muniArr = result.split("|");
	var i=0;
	
	var housingType = function(){
		var _apartment = "0";
		var _house = "0";
		var retStr = "";
		if($(".ObjApartment input")[0].checked)
			_apartment = "1";
		
		if($(".ObjHouse input")[0].checked)
			_house = "2";
		
		retStr = _apartment + "," + _house;
		return retStr;
	};
	var tenureStatus = function(){
		var _tenantOwning = "0";
		var _ownership = "0";
		var retStr = "";
		try {
			if($(".TenureStatus input")[0].checked)
				_tenantOwning = "1";
		
			if($(".TenureStatus input")[1].checked)
				_ownership = "2";
		}
		catch(e) {}
			
		retStr = _tenantOwning + "," + _ownership;
		return retStr;
	};
	var category = function(){
		var _category = "1";
		if($(".ObjBonum input")[0].checked)
			_category="2";
		return _category;
	};
	var splitMunicipalitys = function(fArr){
		var retArr = "";
		var tmpArr = "";
		for(var i = 0; i < fArr.length; i++) {
			tmpArr = fArr[i];
			if(retArr)
				retArr = retArr + "," + tmpArr.split(",")[0];
			else
				retArr = tmpArr.split(",")[0];
		}
		return retArr;
	};
	//Hämtar id på valt län och skicka till webservice
	switch($(".MultiCounty").val()){
		case "BigCityS":
			//Stor-Stockholm är valt. Hämtar därför län-id från drop-down och skickar det.
			for (iOpt = 1; iOpt < $(".MultiCounty")[0].options.length; iOpt++) {
				var strName = $(".MultiCounty")[0].options[iOpt].text;
				var strPattern = /stockholm/i;
				if (!(strName.search(strPattern) == -1) && !($(".MultiCounty")[0].options[iOpt].value == "BigCityS")) {
					var _id = $(".MultiCounty")[0].options[iOpt].value;
					GetProjects(parseInt(_id), splitMunicipalitys(muniArr), housingType(), tenureStatus(), category());
				}
			};
		break;
		
		case "BigCityG":
			//Stor-Göteborg är valt. Hämtar därför län-id från drop-down och skickar det.
			for (iOpt = 1; iOpt < $(".MultiCounty")[0].options.length; iOpt++) {
				var strName = $(".MultiCounty")[0].options[iOpt].text;
				var strPattern = /götaland/i;
				if (!(strName.search(strPattern) == -1) && !($(".MultiCounty")[0].options[iOpt].value == "BigCityG")) {
					var _id = $(".MultiCounty")[0].options[iOpt].value;
					GetProjects(parseInt(_id), splitMunicipalitys(muniArr), housingType(), tenureStatus(), category());
				}
			};
		break;
		
		case "BigCityM":
			//Stor-Malmö är valt. Hämtar därför län-id från drop-down och skickar det.
			for (iOpt = 1; iOpt < $(".MultiCounty")[0].options.length; iOpt++) {
				var strName = $(".MultiCounty")[0].options[iOpt].text;
				var strPattern = /skåne/i;
				if (!(strName.search(strPattern) == -1) && !($(".MultiCounty")[0].options[iOpt].value == "BigCityM")) {
					var _id = $(".MultiCounty")[0].options[iOpt].value;
					GetProjects(parseInt(_id), splitMunicipalitys(muniArr), housingType(), tenureStatus(), category());
				}
			};
		break;
		
		default:
			var cID = parseInt($(".MultiCounty").val());
			GetProjects(cID,"0",housingType(),tenureStatus(),category());
		break;
	}
	
	CreateMunicipalityDropDown(muniArr);
}
function GetMunicipalityID(sValue){
	switch(sValue){
		case "BigCityS":
			//Stor-Stockholm är samma som Stockholms län. Hämtar därför län-id från drop-down och skickar det.
			for(iOpt=1; iOpt < $(".MultiCounty")[0].options.length;iOpt++){
				var strName = $(".MultiCounty")[0].options[iOpt].text;
				var strPattern = /stockholm/i;
				if(!(strName.search(strPattern)==-1) && !($(".MultiCounty")[0].options[iOpt].value == "BigCityS")){
					var _id = $(".MultiCounty")[0].options[iOpt].value;
					return parseInt(_id);
					break;
				}
			};
		break;
		
		case "BigCityG":
			//Hämtar län-id från drop-down och skickar det med BigCityID.
			for (iOpt = 1; iOpt < $(".MultiCounty")[0].options.length; iOpt++) {
				var strName = $(".MultiCounty")[0].options[iOpt].text;
				var strPattern = /götaland/i;
				if (!(strName.search(strPattern) == -1) && !($(".MultiCounty")[0].options[iOpt].value == "BigCityG")) {
					var _id = $(".MultiCounty")[0].options[iOpt].value;
					return parseInt(_id);
					break;
				}
			};
		break;
		
		case "BigCityM":
			//Hämtar län-id från drop-down och skickar det med BigCityID.
			for (iOpt = 1; iOpt < $(".MultiCounty")[0].options.length; iOpt++) {
				var strName = $(".MultiCounty")[0].options[iOpt].text;
				var strPattern = /skåne/i;
				if (!(strName.search(strPattern) == -1) && !($(".MultiCounty")[0].options[iOpt].value == "BigCityM")) {
					var _id = $(".MultiCounty")[0].options[iOpt].value;
					return parseInt(_id);
					break;
				}
			};
		break;
		
		default:
			return parseInt($(".MultiCounty").val());
		break;
	}
}
function GetAllMunicipalitys(){
	RBExtern.WebHandlers.HandleSearchSlides.GetAllMunicipalities(SucceededAMCallback,FailedAMCallback);
}
function SucceededAMCallback(result,eventArgs){
	var muniArr = result.split("|");
	CreateMunicipalityDropDown(muniArr);
}

//Objects
function GetSearchResult(projectIDs,searchValues,objProperties,readyToMoveIn){
	if(projectIDs == -1){
		projectIDs = $(".HidProjectIDs").val();
	}
	RBExtern.WebHandlers.HandleSearchSlides.GetSearchResult(projectIDs,searchValues,objProperties,readyToMoveIn,SucceededObjCallback,FailedGSRCallback);
}
function SucceededObjCallback(result,eventArgs){
    var displayResult = document.getElementById("objResult");
    displayResult.innerHTML = result;
    $(".HidResObj").attr("value",result);
	if(countyIsClicked){
		$(".multiSelect")[0].disabled = false;
	}
	else{
		$(".multiSelect")[0].disabled = true;
	}
	if(fromCookie){
		//trigga sök-klick
		location.hash = "";
		var tt = setTimeout("$('.BtnShowSearchResult').trigger('click')",500);
		fromCookie=false;
    }
}

//Projects
function GetProjects(countyID, arrIDs, typeIDs, tenureStatusIDs, category) {
    //alert(readyToMoveIn());
	RBExtern.WebHandlers.HandleSearchSlides.GetProjects(countyID,arrIDs,typeIDs,tenureStatusIDs,category, readyToMoveIn(), SucceededProjCallback,FailedGPCallback);
}
function SucceededProjCallback(result,eventArgs){
	if($(".MiniSearch").val() == undefined){
		var searchValues = new Array(8);
		var projArr = "";
		var displayResult = document.getElementById("projResult");
	
		var objProperties = function(){
			var _props = new Array(3);
			$(".ChkProperties input").each(function(chk){
				_props[chk] = this.checked ? "1" : "0";
			});
			return _props;
		};
		var readyToMoveIn = function(){
			var _ready = 0;
			if($(".ChkProjObjStatus input")[0].checked)
				_ready = 1;
			return _ready;
		};
	
		searchValues[0]=$("#priceSlide").slider('values',0).toString();
		searchValues[1]=$("#priceSlide").slider('values',1).toString();
		searchValues[2]=$("#roomSlide").slider('values',0).toString();
		searchValues[3]=$("#roomSlide").slider('values',1).toString();
		searchValues[4]=$("#areaSlide").slider('values',0).toString();
		searchValues[5]=$("#areaSlide").slider('values',1).toString();
		searchValues[6]=$("#feeSlide").slider('values',0).toString();
		searchValues[7]=$("#feeSlide").slider('values',1).toString();
	
		projArr = result.split("|");
	
		displayResult.innerHTML = projArr.length;
    
		$(".HidResProj").attr("value",projArr.length);
    
		$(".HidProjectIDs").attr("value",result);
		//Anropa endast om vi fått något resultat. Annars är träffar = 0
		if(result){
			GetSearchResult(result,searchValues,objProperties(),readyToMoveIn());
		}
		else{
			var displayObjResult = document.getElementById("objResult");
			displayObjResult.innerHTML = "0";
			displayResult.innerHTML = "0";
			$(".HidResObj").attr("value","");
			$(".HidResProj").attr("value","");
		}
	}
	else{
		//Startsidan
		if(countyIsClicked)
			$(".multiSelect")[0].disabled = false;
		else
			$(".multiSelect")[0].disabled = true;
	}
	if($(".MultiCounty").val()=="0"){
		var msTime = setTimeout("$('.multiSelect')[0].disabled = true",600);
	}
	else{
		var msTime = setTimeout("$('.multiSelect')[0].disabled = false",600);
	}
}
//Felhantering - endast för utveckling.
function FailedGCMCallback(error) {
    //alert("GetCountyMunicipalitys() misslyckades. \n Felet var: " + error.get_message());
}
function FailedGSRCallback(error) {
    //alert("GetSearchResult() misslyckades. \n Felet var: " + error.get_message());
}
function FailedGPCallback(error) {
    //alert("GetProjects() misslyckades. \n Felet var: " + error.get_message());
}
function FailedAMCallback(error) {
    //alert("GetAllMunicipalitys() misslyckades. \n Felet var: " + error.get_message());
}

/* * * * * * * * * * * * */
/* För sök på startsidan */

/* * * * * * * * * * * * */
$(document).ready(function(){

	$(".MiniSearch .MultiMunicipality").multiSelect({ oneOrMoreSelected:'*',selectAll:true,selectAllText:"Alla kommuner",noneSelected:"Välj kommun" },function(check){
		var arrIDs="";
		var countyID = GetMunicipalityID($(".MultiCounty").val());
		var hidIDs=$("#hidMuncipalityIDs").val();
		var chkID=$(check).val();
		var strMatch = hidIDs.search(chkID);
		
		if(chkID=="0"){
			//Klickat på 'Alla kommuner'
			if(check.parent().hasClass("checked")){
				check.parent().siblings().each(function(e){
					this.className = "";
					$(this).children()[0].checked = false;
					hidIDs="";//Rensa gamla kommuner nu när alla ska visas
				});
			}
			else{
				if(check[0].checked){
					check.parent().siblings().each(function(e){
						this.className = "";
						$(this).children()[0].checked = false;
					});
					if(!check.parent().hasClass("checked"))
						check.parent().addClass("checked");
				}
				else{
					alert("kolla upp");
					//$(".multiSelectOptions").find('input:checkbox').val('0')[0].checked=false;
				}
			}
		}
		else{
			//Kryssa ur 'Alla kommuner' vid klick på annan kommun
			$(".multiSelectOptions").find('input:checkbox').each(function(a,b){
				if(a=="0" && b.value=="0"){
					b.checked=false;
					b.parentNode.className="";
				}
			});
			//Kör en runda till för att se om det fortfarande finns en vald kommun.
			var bChecked=false;
			$(".multiSelectOptions").find('input:checkbox').each(function(a,b){
				if(b.checked){
					bChecked=true;
				}
			});
			//Ingen kommun vald, markera val 'Alla kommuner'.
			if(!bChecked){
				$(".multiSelectOptions").find('input:checkbox.selectAll').val('0').trigger('click');
				$(".multiSelectOptions").find('input:checkbox.selectAll').val('0').parent().addClass("checked");
			}
		}
		
		switch(strMatch){
			case -1:
				if(hidIDs)
					arrIDs = hidIDs + "," + chkID;
				else
					arrIDs = chkID;
			break;
			
			default:
				var _arr = hidIDs.split(",");
				var i=0;
				for(y in _arr){
					if(!_arr[i].match(chkID)){
						if(arrIDs)
							arrIDs = arrIDs + "," + _arr[i];
						else
							arrIDs = _arr[i];
					}else{
						//från kaka
						if(arrIDs)
							arrIDs = arrIDs + "," + _arr[i];
						else
							arrIDs = _arr[i];
					}
					i++;
				}
			break;
		}
		$("#hidMuncipalityIDs").attr("value",arrIDs);
	});
	//sätt kaka innan vi navigerar till söksidan
	$(".MiniSearch .SearchButton").click(function(){
		if($.cookie("housesearchsettings"))
			$.cookie("housesearchsettings",null)
		setMiniSearchCookie();
	});
});
// sätt kaka från startsidan
function setMiniSearchCookie(){
	if($("#hidMuncipalityIDs").val()=="")
		$("#hidMuncipalityIDs").val("0");
	else{
		if($(".MultiCounty").val()=="0"){
			$("#hidMuncipalityIDs").val("0");
		}
	}
	$.cookie("housesearchsettings",
		"county|" + $(".MultiCounty").val() +
		";muncipalityIDs|" + $("#hidMuncipalityIDs").val() +
		";housingType|" + housingType() +
		";category|" + category() +
		";price|" + [0,8000000] + "," + 
		"0%" + "," + "100%" +
		";rooms|" + [1,5] + "," +
		"0%" + "," + "100%" +
		";area|" + [0,200] + "," +
		"0%" + "," + "100%" +
		";fee|" + [0,10000] + "," +
		"0%" + "," + "100%" +
		";properties|" + ["0","0","0"] +
		";tenureStatus|" + "1,2" +
		";readyToMoveIn|" + "0"
	);
}
