//<![CDATA[


var sF = {
	// we run the init function once the dom is ready
	init: function() {
	
		// add listeners to various elements
		sF.addListeners();	

	}, 
	
	addListeners: function() {
    
    if (document.getElementById('lettings')) {
    	sF.lettings = document.getElementById('lettings');
    	sF.addEvent(sF.lettings, 'click', sF.getForm, false);
    }
    if (document.getElementById('sales')) {
    	sF.sales = document.getElementById('sales');
    	sF.addEvent(sF.sales, 'click', sF.getForm, false);
    }
    if (document.getElementById('filter_region')) {
    	sF.filter_region = document.getElementById('filter_region');
    	sF.addEvent(sF.filter_region, 'change', sF.updateFromRegion, false);
    }
	
	
		var updateForm = false;
    if (document.getElementById('zones')) {
    	sF.zones = document.getElementById('zones');
    	updateForm = true;
    }
    if (document.getElementById('areas')) {
    	sF.areas = document.getElementById('areas');
    	updateForm = true;
    }
    if (document.getElementById('rental_price_period')) {
    	sF.rental_price_period = document.getElementById('rental_price_period');
    }
    
    
    
    // run this function on page ready
    if (updateForm) {
    	sF.updateFromRegion();
    }
    
	},
	
	
	updateFromRegion: function() {
	
		
		if (sF.filter_region.value == 'london') {
			document.getElementById('slider').style.height = '290px';
			if (sF.areas) {
				sF.ajaxFunctionAreas('london');
			}
			if (sF.zones) {
				sF.ajaxFunctionZones('london');
			}
			if (sF.rental_price_period) {
				sF.rental_price_period.innerHTML = '(price per week)';
			}
			
		} else if (sF.filter_region.value == 'glasgow') {
			document.getElementById('slider').style.height = '290px';
			if (sF.areas) {
				sF.ajaxFunctionAreas('glasgow');
			}
			if (sF.zones) {
				sF.ajaxFunctionZones('glasgow');
			}
			if (sF.rental_price_period) {
				sF.rental_price_period.innerHTML = '(price per month)';
			}
			
		} else if (sF.filter_region.value == 'linlithgow') {
			document.getElementById('slider').style.height = '150px';
			if (sF.areas) {
				sF.ajaxFunctionAreas('linlithgow');
			}
			if (sF.zones) {
				sF.ajaxFunctionZones('linlithgow');
			}
			if (sF.rental_price_period) {
				sF.rental_price_period.innerHTML = '(price per month)';
			}
		} else if (sF.filter_region.value == 'edinburgh') {
			document.getElementById('slider').style.height = '290px';
			if (sF.areas) {
				sF.ajaxFunctionAreas('edinburgh');
			}
			if (sF.zones) {
				sF.ajaxFunctionZones('edinburgh');
			}
			if (sF.rental_price_period) {
				sF.rental_price_period.innerHTML = '(price per month)';
			}
		}else {
			document.getElementById('slider').style.height = '150px';
			if (sF.areas) {
				sF.ajaxFunctionAreas('any');
			}
			if (sF.zones) {
				sF.ajaxFunctionZones('any');
			}
			if (sF.rental_price_period) {
				sF.rental_price_period.innerHTML = '(PCM)';
			}
		}
		
		
		if(Cookie.get('open')) {
			setTimeout("sF.mySlide.slideIn()",700);
		}
	},
	
	
	getForm: function(e) {
		var target = sF.find_target(e);		
		
		// alert(target.parentNode.href);	
		target.parentNode.href= "#";
		// alert(target.parentNode.href);	
		
		sF.ajaxFunction(target.parentNode.id);
		
		return false;
	},
							
	setUpSlide: function() {
		sF.mySlide = new Fx.Slide('slider');
		if(Cookie.get('open')) {
			Cookie.set('open', '1', {path: '/'});
	    if (document.getElementById('filter_area')) {
	    	document.getElementById('filter_area').style.height = '135px';
	    }
	    if (document.getElementById('filter_zone')) {
	    	document.getElementById('filter_zone').style.height = '135px';
	    }
			sF.mySlide.show();
		} else {
			Cookie.remove('open', {path: '/'});
	    if (document.getElementById('filter_area')) {
	    	setTimeout("document.getElementById('filter_area').style.height = '0'", 300);
	    }
	    if (document.getElementById('filter_zone')) {
	    	setTimeout("document.getElementById('filter_zone').style.height = '0'", 300);
	    }
			sF.mySlide.hide();
		}
	},			
		
	slideSlide: function() {
		if(Cookie.get('open')) {
			Cookie.remove('open', {path: '/'});
	    if (document.getElementById('filter_area')) {
	    	setTimeout("document.getElementById('filter_area').style.height = '0'", 300);
	    }
	    if (document.getElementById('filter_zone')) {
	    	setTimeout("document.getElementById('filter_zone').style.height = '0'", 300);
	    }
			sF.mySlide.slideOut();
		} else {
			Cookie.set('open', '1', {path: '/'});
	    if (document.getElementById('filter_area')) {
	    	document.getElementById('filter_area').style.height = '135px';
	    }
	    if (document.getElementById('filter_zone')) {
	    	document.getElementById('filter_zone').style.height = '135px';
	    }
	    setTimeout("sF.mySlide.slideIn()",100);
		}
	},

	
	ajaxFunction: function(form){
		var ajaxRequest;  
		
		try{
			// Opera 8.0+, Firefox, Safari
			ajaxRequest = new XMLHttpRequest();
		} catch (e){
			// Internet Explorer Browsers
			try{
				ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try{
					ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e){
					// Something went wrong
					alert("Your browser broke!");
					return false;
				}
			}
		}
		// Create a function that will receive data sent from the server
		ajaxRequest.onreadystatechange = function(){
			if(ajaxRequest.readyState == 4){
				var response = ajaxRequest.responseText;
					//alert(response);
					//return;
					if(response == 'Error') {
						alert('error');
					} else {
						document.getElementById('outer-form-cont').innerHTML = response;
						sF.init();
						sF.setUpSlide();
						//alert(response);	
					  
				  }
			}
		}
		
		// add random num so page don't cache!
  	var random_num = (Math.round((Math.random()*5999)+1));
		var url = "/site/includes/content/getFormContent_ajax.php?form="+form+"&rdm="+escape(random_num);

		ajaxRequest.open("GET", url, true);
		ajaxRequest.send(null); 
	},

	
	ajaxFunctionAreas: function(region){
		var ajaxRequest;  
		
		try{
			// Opera 8.0+, Firefox, Safari
			ajaxRequest = new XMLHttpRequest();
		} catch (e){
			// Internet Explorer Browsers
			try{
				ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try{
					ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e){
					// Something went wrong
					alert("Your browser broke!");
					return false;
				}
			}
		}
		// Create a function that will receive data sent from the server
		ajaxRequest.onreadystatechange = function(){
			if(ajaxRequest.readyState == 4){
				var response = ajaxRequest.responseText;
					//alert(response);
					//return;
					if(response == 'Error') {
						//alert('error');
					} else {
						sF.areas.innerHTML = response;
						//alert(response);	
					  
				  }
			}
		}
		
		// add random num so page don't cache!
  	var random_num = (Math.round((Math.random()*5999)+1));
		var url = "/site/includes/content/gen_areas.php?region="+region+"&rdm="+escape(random_num);

		ajaxRequest.open("GET", url, true);
		ajaxRequest.send(null); 
	},

	
	ajaxFunctionZones: function(region){
		var ajaxRequest;  
		
		try{
			// Opera 8.0+, Firefox, Safari
			ajaxRequest = new XMLHttpRequest();
		} catch (e){
			// Internet Explorer Browsers
			try{
				ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try{
					ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e){
					// Something went wrong
					alert("Your browser broke!");
					return false;
				}
			}
		}
		// Create a function that will receive data sent from the server
		ajaxRequest.onreadystatechange = function(){
			if(ajaxRequest.readyState == 4){
				var response = ajaxRequest.responseText;
					//alert(response);
					//return;
					if(response == 'Error') {
						//alert('error');
					} else {
						sF.zones.innerHTML = response;
						//alert(response);	
					  
				  }
			}
		}
		
		// add random num so page don't cache!
  	var random_num = (Math.round((Math.random()*5999)+1));
		var url = "/site/includes/content/gen_zones.php?region="+region+"&rdm="+escape(random_num);

		ajaxRequest.open("GET", url, true);
		ajaxRequest.send(null); 
	},
	
  
  // function to add event listener, also caches events so they can be removed when the
	// page unloads to avoid memory leaks in IE
  addEvent: function(elm, evType, fn, useCapture) {
		// for W3C DOM complience
    if (elm.addEventListener) {
      elm.addEventListener(evType, fn, useCapture);
      return true;
    } 
		// for IE...
		else if (elm.attachEvent) {
      var r = elm.attachEvent('on' + evType, fn);
      //EventCache.add(elm, evType, fn);
      return r;
    } else {
			// for anyone else not IE or Moz... Safari etc
      elm['on' + evType] = fn;
    }
  },
	
	// cross-browser get target
	find_target: function(e) 	{
		var target; 	
		// for IE, target is held in window.event array
		if (window.event && window.event.srcElement) 
			target = window.event.srcElement;
		else if (e && e.target)
			target = e.target;
		if (!target)
			return null;
			
		return target;
	}
  
  
}
// run when dom is ready - we don't need to wait for the images to load.
sF.addEvent(window, 'load', sF.init, false);
	
//]]>