/* Search Ajax Client */

AjaxSearch = {

	init:function() 
	{
		if (!document.getElementById || !document.createTextNode) {return;}			// Check for compatibility

		$("#searching").ajaxStart(function(){
			$(this).fadeIn("fast");
		   $(this).show();
		 });
		
			$("#searching").ajaxStop(function(){
				$(this).fadeOut("fast");
			   $(this).hide();
			 });
		
		hrefArr = window.location.href.split("?");
		tempArr = hrefArr[0].split("/"); 
		urlPart = tempArr[tempArr.length -2];

		$.ajax({
	   		type	: "GET",
			url		: "/pms/site/frontserver/retrievefilter",
			dataType: "html",
			success	: function(savedFilterQuery)
			{
				te	= savedFilterQuery.split("&");
				te1 = te[0].split("=");
				
				
				
				if ( (te1[1] == 'investments') && (urlPart == 'lettings') ){
				
				} else if(((te1[1] == urlPart) || ( urlPart == 'lettings') )  ) {
				
						/* If Page has search query then process immediately */
						if (savedFilterQuery.length > 1)
						{
							postStr = savedFilterQuery;

							if (postStr)
							{
								$.ajax({
				   					type	 : "POST",
									url		 : "/pms/site/frontserver/filter",
									data	 : postStr,
									dataType : "html",
									success	 : function(msg)
									{
										$("#searchdisplay").empty();
										$("#searchdisplay").hide();
										$("#searchdisplay").append(msg);
										$("#searchdisplay").fadeIn("fast");
									}
								});
							}
						}				
				} else {
					$.ajax({
	   					type	 : "POST",
						url		 : "/pms/site/frontserver/filter",
						data	 : "flag=investments",
						dataType : "html",
						success	 : function(msg)
						{
							$("#searchdisplay").empty();
							$("#searchdisplay").hide();
							$("#searchdisplay").append(msg);
							$("#searchdisplay").fadeIn("fast");
						}
					});
				}
			}
		});
		
		$.ajax({
   			type	: "GET",
   			url		: "/pms/site/frontserver/getTowns",
			dataType: "html",
   			success	: function(msg)
			{
				$("#townsSelect").empty()
				$("#townsSelect").append(msg);
			}
		});
		
		$.ajax({
			type	: "GET",
			url		: "/pms/site/frontserver/getSalesType",
			dataType: "html",
			success	: function(msg)
			{
				$("#salestypeSelect").empty()
				$("#salestypeSelect").append(msg);
			}
		});
		
		$("[rel=getFilter]").change( function(e) { AjaxSearch.getFilterQuery(e); } );
	},
	
	getFilterQuery:function(e)
	{
		function implode( glue, pieces ) {
		   return ( ( pieces instanceof Array ) ? pieces.join ( glue ) : pieces );
		}
		
		function urlencode( str ) {
		   var histogram = {}, histogram_r = {}, code = 0, tmp_arr = [];
		    var ret = str.toString();

		    var replacer = function(search, replace, str) {
		        var tmp_arr = [];
		        tmp_arr = str.split(search);
		        return tmp_arr.join(replace);
		    };
		}
		
		var sel = document.getElementById(e.target.id).childNodes;
		for (x=0; x < sel.length; x++)
		{
			if (sel[x].value == e.target.value)
			{
				request = sel[x].getAttribute("rel");
			}
		}

		hrefArr = window.location.href.split("?");
		tempArr = hrefArr[0].split("/"); 
		urlPart = tempArr[tempArr.length -2];
		
		switch (urlPart)
		{
			case "lettings" 	: searchCat = "lettings";	break;
			case "investments"	: searchCat = "investments";break;
			default				: searchCat = "lettings";	break;
		} 
		
		/* Query Filters attached to drop down menus */
		if (e.target.id == 'filter_propertyuse') 	{ postStr = 'flag='+searchCat+'&table=property&filterrequest='+request+'&filtername=propertyuse&filtervalue='+e.target.value; 					}
		if (e.target.id == 'filter_orderby') 		{ postStr = 'flag='+searchCat+'&table=property&filterrequest='+request+'&filtertype=orderby&filtername=disp_name&filtervalue='+e.target.value; }
		if (e.target.id == 'salestypeSelect')	 	{ postStr = 'flag='+searchCat+'&table=property&filterrequest='+request+'&filtername=salestype&filtervalue='+e.target.value; 	}
		if (e.target.id == 'townsSelect') 			{ postStr = 'flag='+searchCat+'&table=property&filterrequest='+request+'&filtername=area_tb_id&filtervalue='+e.target.value; 		}
		if (e.target.id == 'priceSelect') 			{ postStr = 'flag='+searchCat+'&table=property&filterrequest='+request+'&filtername=price&filtervalue='+e.target.value; 						}
		if (e.target.id == 'tenureSelect') 			{ postStr = 'flag='+searchCat+'&table=property&filterrequest='+request+'&filtername=tenuretype&filtervalue='+e.target.value; 					}
		if (e.target.id == 'useSelect') 			{ postStr = 'flag='+searchCat+'&table=property&filterrequest='+request+'&filtername=propertyuse&filtervalue='+e.target.value; 					}
		if (e.target.id == 'salesSelect') 			{ postStr = 'flag='+searchCat+'&table=property&filterrequest='+request+'&filtername=salesstatus&filtervalue='+e.target.value; 					}

		//document.write(searchCat);

	

		$.ajax({
		   	type	: "POST",
			url		: "/pms/site/frontserver/savefilter",
			data	: postStr,
			dataType: "html",
			success	: function(msg)
			{
				$("#searching").hide();
		     	$("#searchdisplay").empty();
				$("#searchdisplay").hide();
				$("#searchdisplay").append(msg);
				$("#searchdisplay").fadeIn("slow");
				if (tempArr[tempArr.length -1] != "search")
				{
					tempArr[tempArr.length -1] = '';
					window.location.href = "http://www.jacksoncriss.co.uk/search/"+searchCat;
				//	window.location.href = "http://jacksoncriss.dev/search/"+searchCat;
				
				} 		
			}
		});
	}
}

$(document).ready(AjaxSearch.init);