/*
 * EstateVue Widgets
 * JavaScript Property Search Widget Library v.2.0
 * author Sigit N <info[at]antibiasa[dot]net>
 * August 2010
 * 
 * Copyright EstateVue 2010. All right reserved.
 */

var ev_elements = {};
if(typeof jQuery == 'undefined'){
	evLoadEvent(function(){
		initialize();
	});
} else {
	jQuery(document).ready(function(){
		initialize();
	});
}

function initialize(){
	preloadImage();
	ev_elements.property_type = getElement('property-type');
	ev_elements.minprice = getElement('lowest-price');
	ev_elements.maxprice = getElement('highest-price');
	ev_elements.bedroom = getElement('bedroom');
	ev_elements.bathroom = getElement('bathroom');
	ev_elements.area = getElement('area');
	ev_elements.province = getElement('province');
}

function setSelectedValue(id,e,el){
	getElement(id).innerHTML = e.innerHTML;
	togglecb(el);
}

function preloadImage(){
	var img_arr = [widget_site_url+'public/images/widgets/property_search/bg_big_hover.png',widget_site_url+'public/images/widgets/property_search/bg_small_hover.png',widget_site_url+'public/images/widgets/property_search/button_hover.png'];
	for(i=0;i<img_arr.length;i++){
		var img = new Image();
		img.src = img_arr[i];
	}
}

function searchProperty(){
	
	if(ev_elements.province.value == 'State/Prov.' || ev_elements.province.value == ''){
		alert('Please specify the province.');
		ev_elements.province.focus();
		return false;
	}
	var search_term = buildSearchTerms();
	if(search_term.str==''){
		alert('Please refine your search.');
		return false;
	}
	var regex = new RegExp(instance_url);
	if(regex.test(property_search_url)==true){
		var location = property_search_url + '#' + encodeURIComponent(search_term.str);
	} else {
		var location = property_search_url +  '?search=' + encodeURIComponent(search_term.str);
	}
	window.open(location);
}

function buildSearchTerms(){
	var search = {};
	var str = '';
	var type = ev_elements.property_type.innerHTML;
	var minprice = ev_elements.minprice.innerHTML.replace(/^\s*|\s*$/g,'');
	var maxprice = ev_elements.maxprice.innerHTML.replace(/^\s*|\s*$/g,'');
	var bedroom = ev_elements.bedroom.innerHTML.replace(/^\s*|\s*$/g,'');
	var bathroom = ev_elements.bathroom.innerHTML.replace(/^\s*|\s*$/g,'');
	var area = ev_elements.area.value;
	var province = ev_elements.province.value;
	
	if(area != 'Area / Region'){
		if(province != 'State/Prov'){
			area += ' ' + province;
			search.province = province;
			if(province.split(' ').length > 1) province = '"' + province + '"';
			str += 'province:' + province + ' ';
		}
		
		search.at = area;
		if(area.split(' ').length > 1) area = '"'+area+'"';
		str += 'at:'+area+' ';
	} else {
		str += 'at:"'+default_location+'" ';
	}
	
	if(/Lowest Price/.test(minprice) == false && /Highest Price/.test(maxprice) == false){
		search.price = minprice+'-'+maxprice;
		str += 'price:'+search.price+' ';
	} else if(/Lowest Price/.test(minprice) == false && /Highest Price/.test(maxprice) == true){
		search.price = minprice+'+';
		str += 'price:'+search.price+' ';
	} else if(/Lowest Price/.test(minprice) == true && /Highest Price/.test(maxprice) == false){
		search.price = maxprice+'-';
		str += 'price:'+search.price+' ';
	}
	
	if(bedroom != 'Any'){
		search.bedroom = bedroom+'+';
		str += 'bedroom:'+search.bedroom+' ';
	}
	
	if(bathroom != 'Any'){
		search.bathroom = bathroom+'+';
		str += 'bathroom:'+search.bathroom+' ';
	}

	if(type != 'Property Type'){
		search.type = type;
		if(type.split(' ').length > 1) type = '"'+type+'"';
		str += 'type:'+type+' ';
	}
	
	//str = str.replace(/:/ig,'%3A');
	
	return {'str':str,'json':search};
	
	
}


