var xmlhttp;
var respond  = '';
var callback = '';
var master_callback = '';		// <-- izpulnqva se pri vsichki ajax funkcii
var home_page_url = '';




/**
 * 		COUNT SEARCH RESULT
 */
function count_search_result() {
	
	show_ajax_loading();
	
	var url 	= "/ajax/count_search_result.php";
	var params	= {
		clang			:	clang,
		location		:	$('select[name=location]').val(),
		sub_locations	:	$('#sub_locations').val(),
		prop_type		:	$('#prop_type').val(),
		action			:	$('#action').val(),
		price_from		:	$('input[name=price_from]').val(),
		price_to		:	$('input[name=price_to]').val(),
		area_from		:	$('input[name=area_from]').val(),
		area_to			:	$('input[name=area_to]').val(),
		sub_type		:	$('select[name=sub_type]').val(),
		sub_sub_type	:	$('select[name=sub_sub_type]').val(),
		bedrooms		:	$('select[name=bedrooms]').val(),
		broker_id		:	$('#broker_id').val(),
		has_broker_id	:	$('#has_broker_id').val()
	};
	
	$.get(url, params,
	function(data) {
		$('#tooltip').html(data);
		
		if( parseInt(data) == 0 ) {
			$('#search_button').attr('disabled', 'true').addClass('disabled');
		}
		else {
			$('#search_button').removeAttr('disabled').removeClass('disabled');
		}
		
		hide_ajax_loading();
	});
	
}






/**
 * 		search by id
 */
function search_by_id(item_id) {
	
	show_ajax_loading();
	
	var url 	= "/ajax/search_by_id.php";
	var params	= {
		clang		:	clang,
		item_id		:	item_id
	};
	
	$.get(url, params,
	function(data) {
		hide_ajax_loading();
		
		if( parseInt(data) > 0 ) {
			var url = '/search_by_id.php?clang=' + clang + '&offer_id=' + data;
			document.location.href = url;
		}
		else {
			if( clang == 'bg' ) {
				alert('Няма намерени резултати.')
			}
			else {
				alert('No results found');
			}
		}
		
	});
	
}






/**
 * 		send request functions
 */

function send_to_friend() {
	
	if( !validate_send_to_friernd() ) return false;
	
	show_ajax_loading();
	
	var url 	= "/ajax/send_to_friend.php";
	var params	= {
		clang			:	clang,
		item_id			:	$('#item_id').val(),
		sender_name		:	$('#stf_your_name').val(),
		sender_email	:	$('#stf_your_email').val(),
		receiver_name	:	$('#stf_rec_name').val(),
		receiver_email	:	$('#stf_ref_email').val()
	};
	
	$.get(url, params,
	function(data) {
		$('#stf_container').html(data);
		$('#stf_container').delay(3000).hide('slow');
		hide_ajax_loading();
	});
	
}



function send_sms_subscribe() {
	
	show_ajax_loading();
	
	var url 	= "/ajax/send_sms_subscribe.php";
	var params	= {
		clang		:	clang,
		name		:	$('#sms_name').val(),
		family		:	$('#sms_family').val(),
		phone		:	$('#sms_mobile').val()
	};
	
	$.get(url, params,
	function(data) {
		$('#sms_subscribe_container').html(data);
		$('#sms_subscribe').delay(2000).hide('slow');
		hide_ajax_loading();
	});
	
}


function send_offer_request() {
	
	show_ajax_loading();
	
	var url 	= "/ajax/send_offer_request.php";
	var params	= {
		clang		:	clang,
		city		:	$('#request_city').val(),
		title		:	$("input[name=request_title]:checked").val(),
		name		:	$('#request_first_name').val(),
		family		:	$('#request_last_name').val(),
		email		:	$('#request_email').val(),
		phone		:	( ( $('#request_phone').val() != $('#request_phone').attr('title') ) ? $('#request_phone').val() : '' ),
		message		:	( ( $('#request_message').val() != $('#request_message').attr('title') ) ? $('#request_message').val() : '' ),
		ref_no		:	$('#item_ref_num').val(),
		broker_id	:	$('#broker_id').val(),
		broker_email:	$('#broker_email').val()
	};
	
	$.get(url, params,
	function(data) {
		$('#offer_request_container').html(data);
		hide_ajax_loading();
	});
	
}

function send_footer_request() {
	
	show_ajax_loading();
	
	var url 	= "/ajax/send_footer_request.php";
	var params	= {
		clang		:	clang,
		city		:	$('#fr_city').val(),
		type		:	$('#fr_type').val(),
		action		:	$('input[name=fr_action]:checked').val(),
		price_from	:	$('#fr_price_from').val(),
		price_to	:	$('#fr_price_to').val(),
		name		:	$('#fr_name').val(),
		family		:	$('#fr_second_name').val(),
		email		:	$('#fr_email').val(),
		phone		:	( ( $('#fr_tel').attr('value') != $('#fr_tel').attr('title') ) ? $('#fr_tel').val() : '' ),
		receive_nl	:	$('#fr_wish_to_receive:checked').val(),
		receive_sms	:	$('#fr_wish_to_receive_sms:checked').val()
	};
	
	//console.log(params); return false;
	
	$.get(url, params,
	function(data) {
		$('#send_request .balloon2_middle').html(data);
		$('#send_request').delay(5000).hide('slow');
		hide_ajax_loading();
	});
	
}




/**
 * home page search functions
 */

function home_page_search() {
	
	//alert("home_page_search() called"); return;
	
	xmlhttp = GetXmlHttpObject();
	if(xmlhttp == null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	respond 	= 'home_page_offers';
	callback  	= 'hp_search_callback();';
	
	
	
	var location		= $('select[name=location]').val();
	var sub_locations	= '';
	$('input[name^=sub_locs]:checked').each(function() {
		sub_locations	+= (sub_locations == '') ? '' : ',';
		sub_locations	+= $(this).val();
	});
	var prop_type		= $('#property_type').val();
	var action			= $('#action_type').val();
	var price_range		= $('select[name=price_range]').val();
	var area_range		= $('select[name=area_range]').val();
	var sub_type		= $('select[name=sub_type]').val();
	var sub_sub_type	= $('select[name=sub_sub_type]').val();
	var bedrooms		= $('select[name=bedrooms]').val();
	var page_num		= $('#page_num').val();
	
	//alert($('input[name^=sub_locs]:checked').length); return;
	
	var url = "/ajax/home_page_search.php";
	url = url + "?clang="			+	clang;
	url = url + "&location="		+	location;
	url = url + "&sub_locations="	+	( ( sub_locations == '' ) ? 'all' : sub_locations );
	url = url + "&prop_type="		+	prop_type;
	url = url + "&action="			+	action;
	url = url + "&price_range="		+	price_range;
	url = url + "&area_range="		+	area_range;
	url = url + "&sub_type="		+	( ( typeof(sub_type) 	 == 'undefined' ) ? 'all' : sub_type );
	url = url + "&sub_sub_type="	+	( ( typeof(sub_sub_type) == 'undefined' ) ? 'all' : sub_sub_type );
	url = url + "&bedrooms="		+	( ( typeof(bedrooms)	 == 'undefined' ) ? 'all' : bedrooms );
	url = url + "&page_num="		+	page_num;
	
	home_page_url = str_replace('&page_num=' + page_num, '', url);
	
	//alert(url); return;
	
	show_ajax_loading();
	
	xmlhttp.onreadystatechange = stateChanged;
	xmlhttp.open("GET", url, true);
	xmlhttp.send(null);
	
}

function hp_search_callback() {
	var offers_count = $('#hps_offers_count').val();
	$('span.props_counter').html(offers_count);
	
	var search_link	= $('span.props_counter').parent();
	var href		= str_replace('/ajax/home_page_search.php', '/search.php', home_page_url);
	
	// tiq mi preebaxa ajax-a :(
	if( !first_load ) document.location.href = href;
	
	search_link.attr('href', href);
	$('#search_button').attr('href', href);
	
	if( $('#pages_count').val() <= 1 ) $('.offer1_arrow_right').css('visibility', 'hidden');
	else $('.offer1_arrow_right').css('visibility', 'visible');
	
	if( $('#page_num').val() == $('#pages_count').val() ) $('.offer1_arrow_right').css('visibility', 'hidden');
	
	
	
	$('select').hyjack_select(hj_options);
	
	// fix hyjack options height
	fix_hyjack_options_height();
	
	first_load = false;
}



function reload_sub_locations() {
	
	//alert("reload_sub_locations() called"); return;
	
	xmlhttp = GetXmlHttpObject();
	if(xmlhttp == null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	respond 	= 'sub_location_inner';
	callback  	= 'update_hj(); reload_sub_types();';
	
	var location_id = $('select[name=location]').val();
	
	var url = "/ajax/reload_sub_locations.php";
	url = url + "?clang="		+	clang;
	url = url + "&location_id="	+	location_id;
	
	show_ajax_loading();
	
	xmlhttp.onreadystatechange = stateChanged;
	xmlhttp.open("GET", url, true);
	xmlhttp.send(null);
	
}



function reload_sub_types() {
	
	//alert("reload_sub_locations() called"); return;
	
	xmlhttp = GetXmlHttpObject();
	if(xmlhttp == null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	respond 	= 'sub_type_container';
	callback  	= 'reload_sub_sub_types();';
	
	var prop_type = $('#property_type').val();
	
	var url = "/ajax/reload_sub_types.php";
	url = url + "?clang="		+	clang;
	url = url + "&prop_type="	+	prop_type;
	
	show_ajax_loading();
	
	xmlhttp.onreadystatechange = stateChanged;
	xmlhttp.open("GET", url, true);
	xmlhttp.send(null);
	
}



function reload_sub_sub_types() {
	
	//alert("reload_sub_sub_types() called"); return;
	
	xmlhttp = GetXmlHttpObject();
	if(xmlhttp == null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	respond 	= 'sub_sub_type_container';
	callback  	= 'reload_bedrooms();';
	
	var prop_type = $('#property_type').val();
	var sub_type = $('select[name=sub_type]').val();
	
	var url = "/ajax/reload_sub_sub_types.php";
	url = url + "?clang="		+	clang;
	url = url + "&prop_type="	+	prop_type;
	url = url + "&sub_type="	+	sub_type;
	
	show_ajax_loading();
	
	xmlhttp.onreadystatechange = stateChanged;
	xmlhttp.open("GET", url, true);
	xmlhttp.send(null);
	
}



function reload_bedrooms() {
	
	//alert("reload_bedrooms() called"); return;
	
	xmlhttp = GetXmlHttpObject();
	if(xmlhttp == null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	respond 	= 'bedrooms_container';
	callback  	= 'home_page_search();';
	
	var prop_type = $('#property_type').val();
	
	var url = "/ajax/reload_bedrooms.php";
	url = url + "?clang="		+	clang;
	url = url + "&prop_type="	+	prop_type;
	
	show_ajax_loading();
	
	xmlhttp.onreadystatechange = stateChanged;
	xmlhttp.open("GET", url, true);
	xmlhttp.send(null);
	
}



function reload_price_intervals() {
	
	//alert("reload_bedrooms() called"); return;
	
	xmlhttp = GetXmlHttpObject();
	if(xmlhttp == null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	respond 	= 'price_container';
	callback  	= 'home_page_search();';
	
	var action	= $('#action_type').val();
	
	var url = "/ajax/reload_price_intervals.php";
	url = url + "?clang="		+	clang;
	url = url + "&action="		+	action;
	
	show_ajax_loading();
	
	xmlhttp.onreadystatechange = stateChanged;
	xmlhttp.open("GET", url, true);
	xmlhttp.send(null);
	
}


function load_panorama(owner_id) {
	
	xmlhttp = GetXmlHttpObject();
	if(xmlhttp == null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	respond 	= 'cs_container';
	callback  	= 'remove_picture()';
	
	
	var url = "/ajax/load_panorama.php";
	url = url + "?owner_id="		+	owner_id;
	
	show_ajax_loading();
	
	xmlhttp.onreadystatechange = stateChanged;
	xmlhttp.open("GET", url, true);
	xmlhttp.send(null);
	
	
}

function remove_picture() {

	$('#us_more_photos').remove();
	$('#arrow_prev_vip').hide();
	$('#arrow_next_vip').hide();	
}



/**
 * ajax functions
 */

function stateChanged() {
	//alert(xmlhttp.readyState);
	
	if (xmlhttp.readyState == 4) {
		
		if( x = document.getElementById(respond) ) x.innerHTML = xmlhttp.responseText;
		
		hide_ajax_loading();
		
		if(callback != '') {
			eval(callback);
		}
		
		if(master_callback != '') {
			eval(master_callback);
		}
		
	}
}



function GetXmlHttpObject() {
	if (window.XMLHttpRequest) {
		// code for IE7+, Firefox, Chrome, Opera, Safari
		return new XMLHttpRequest();
	}
	if (window.ActiveXObject) {
		// code for IE6, IE5
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
	return null;
}


/**
 * other functions
 */

function show_ajax_loading() {
	
	$('#ajax_loading').show();
	
}

function hide_ajax_loading() {
	
	$('#ajax_loading').hide();
	
}

$(document).ready(function() {
	var ajax_loading = $('#ajax_loading');
	var ajax_loading_width  = ajax_loading.innerWidth();
	var ajax_loading_height = ajax_loading.innerHeight();
	
	$(document).mousemove(function(e) {
		ajax_loading.css('left', e.pageX);
		ajax_loading.css('top',  e.pageY - ajax_loading_height);
		
		//ajax_loading.css('left', e.pageX - ajax_loading_width/2);
		//ajax_loading.css('top',  e.pageY - ajax_loading_height/2);
	});
});




















