jQuery.fn.my_datepicker = function(dp1,dp2,def){
	dp1 = jQuery(dp1);
	dp2 = jQuery(dp2);
	var defaults = {};
	defaults.img = '/images/calendar.png';
	if(typeof(def) != 'undefined'){
		defaults.img = ((typeof(def.img) == 'undefined')?defaults.img:def.img);
	}
	dp1.datepicker({
		minDate: +1,
		defaultDate: +1,
		dateFormat: 'dd/mm/yy',
		showOn: 'both',
		duration: 0,
		buttonImage: defaults.img,
		onClose: function(dateText, inst){
			if(dp1.datepicker('getDate') == undefined)
				return;
			var nd=new Date(dp1.datepicker('getDate'));
			var d = dp1.datepicker('getDate').getDate();
			nd.setDate(d+1);
			dp2.datepicker('setDate',nd);
		}
	});
	dp2.datepicker({
		minDate: +1,
		defaultDate: +1,
		dateFormat: 'dd/mm/yy',
		showOn: 'both',
		duration: 0,
		buttonImage: defaults.img,
		beforeShow: function(input){
			if(dp1.datepicker('getDate') == undefined)
				return;
			var nd=new Date(dp1.datepicker('getDate'));
			var d = dp1.datepicker('getDate').getDate();
			nd.setDate(d+1);
			dp2.datepicker('setDate',nd);
		},
		onClose: function(dateText, inst){
			if(!(dp1.datepicker('getDate') < dp2.datepicker('getDate'))){
				var nd=new Date(dp2.datepicker('getDate'));
				var d = dp2.datepicker('getDate').getDate();
				nd.setDate(d-1);
				dp1.datepicker('setDate',nd);
			}
		}
	});
};

jQuery.fn.getPoni4ki = function() {
	if(typeof(poni4ka) == 'undefined')
		return;
	for(i in poni4ka){
		var prjena_poni4ka = new String;
		for(ii in poni4ka[i])
			prjena_poni4ka += String.fromCharCode(poni4ka[i][ii]/i);

		jQuery('.ap'+i).attr('href', prjena_poni4ka);
	}
};
function getEventTrigeretBy(e){
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
	return targ;
}
function doSearch(men4e, e){
	var t1 = '.submitform';
	var t2 = '#menuSeachbox-small';
	var t3 = '#menuSeachbox-middle';
	var cont,pref = '';
	var se = getEventTrigeretBy(e);
	if((jQuery(t1).attr('id') != undefined) && (se == jQuery(t1+' a').get(0))){
		cont = t1;
		pref = '/search';
	}
	if((jQuery(t2).attr('id') != undefined) && (se == jQuery(t2+' a').get(0))){
		cont = t2;
		pref = '';
	}
	if((jQuery(t3).attr('id') != undefined) && (se == jQuery(t3+' a').get(0))){
		cont = t3;
		pref = '';
	}
	var ws = cont+' input,'+cont+' select';
	jQuery(ws).filter(function(){
		var element_ = jQuery(this);
		var csv = element_.attr('name')+'__';
		var csb = element_.attr('value');
		csb = csb.replace(/\//ig, '-');
		var ev = 'men4e = men4e.replace(/'+csv+'/ig, "'+csb+'");';
		eval(ev);
	});
	men4e = pref+men4e;
	window.location = men4e;
	return false;
}
function registerClick(target,params){
	jQuery.get('/'+target, params, function(data){
		
	});
}
/*fiter*/
function getApartmetn(array_id){
	if(typeof(filter_elements[array_id]) == 'undefined')
		return false;
	return filter_elements[array_id];
}
function countApartments(apartments){
	var counter = 0;
	for(i in apartments){
		counter++;
	}
	return counter;
}
function getFunctionName(func) {
	if ( typeof func == "function" || typeof func == "object" )
		var fName = (""+func).match(/function\s*([\w\$]*)\s*\(/);
	if ( fName !== null )
		return fName[1];
}
function apart_type(apartments){
	var ownName = getFunctionName(arguments.callee);
	var at = new Array;
	var element = jQuery('.'+ownName).each(function(){
		var el = jQuery(this);
		if(el.attr('checked') == true){
			at[el.attr('value')] = true;
		}
	});
	if(at.length == 0)
		return apartments;
	for(i in apartments){
		var apartinf = getApartmetn(apartments[i]);
		if(at[apartinf.apart_type] != true){
			delete(apartments[i]);
		}
	}
	return apartments;
}
function items_list(apartments){
	var ownName = getFunctionName(arguments.callee);
	jQuery('.'+ownName).each(function(){
		var element = jQuery(this);
		if(element.attr('checked') != true)
			return;
		eval('var val = ['+element.attr('value')+'];');
		for(i in apartments){
			var apartinfo = getApartmetn(apartments[i]);
			var valuematch = false;
			for(ii in val){
				if(typeof(apartinfo.items_list[val[ii]]) != 'undefined'){
					valuematch = true;
					break;
				}
			}
			if(valuematch == false)
				delete(apartments[i]);
		}
	});
	return apartments;
}
function price(apartments){
	var ownName = getFunctionName(arguments.callee);
	var elements = jQuery('.'+ownName).get();
	var min = elements[0].value;
	var max = elements[1].value;
	for(i in apartments){
		var apart = getApartmetn(apartments[i]);
		if((apart.price>=min) && (apart.price<=max))
			continue;
		delete(apartments[i]);
	}
	return apartments;
}
function living_space(apartments){
	var ownName = getFunctionName(arguments.callee);
	var elements = jQuery('.'+ownName).get();
	var min = elements[0].value;
	var max = elements[1].value;
	for(i in apartments){
		var apart = getApartmetn(apartments[i]);
		if((apart.living_space>=min) && (apart.living_space<=max))
			continue;
		delete(apartments[i]);
	}
	return apartments;
}
jQuery.fn.filterInit = function(args){
	var root_element = jQuery(this);
	var apartments = new Array();
	for(ii in filter_elements){
		apartments[apartments.length] = ii;
	}
	for(i in args){
		eval_ = "if(typeof("+args[i]+") == 'function')apartments = "+args[i]+"(apartments);";
		eval(eval_);
		if(countApartments(apartments)==0)
			break;
	}
	root_element.text(countApartments(apartments));
};
jQuery.fn.filterBind = function(args){
	var root_element = jQuery(this);
	//binding
	for(i in args){
		root_element.find('.'+args[i]).bind((jQuery.browser.msie ? "propertychange" : "change"), function(){
			jQuery('.advanced_search h5 b').filterInit(args);
		});
	}
	jQuery('.advanced_search h5 b').filterInit(args);
};
jQuery.fn.filterReset = function(args){
	for(i in args){
		jQuery('.'+args[i]).each(function(){
			if((args[i] == 'items_list') || (args[i] == 'apart_type')){
				jQuery(this).attr('checked', false);
			}else if((args[i] == 'price') || (args[i] == 'living_space')){
				var price = jQuery('.'+args[i]).get();
				slider_1.trigger('slider_reset');
				slider_2.trigger('slider_reset');
			}
		});
	}
	jQuery('.advanced_search h5 b').filterInit(args);
};
/*end fiter*/
function getSlider(id, min_, max_, eval_, sel_min, sel_max){
	var sldp1 = jQuery(id+'-1');
	var sldp1_c = sldp1.parent();
	var sldp2 = jQuery(id+'-2');
	var sldp2_c = sldp2.parent();
	if(typeof(sel_min) == 'undefined')
		sel_min = min_;
	if(typeof(sel_min) == 'undefined')
		sel_max = max_;
	var slider = jQuery(id).slider({
		range: true,
		min: min_,
		max: max_,
		values: [sel_min, sel_max],
		slide: function(event, ui) {
			var ui_obj = jQuery(ui.handle);
			if(ui.values[0] != sldp1.attr('value')){
				sldp1.attr('value',ui.values[0]);
				var l = ui_obj.offset().left;
				var t = ui_obj.offset().top+18;
				sldp1_c.css({left:l+'px',top:t+'px'});
			}
			if(ui.values[1] != sldp2.attr('value')){
				var l = ui_obj.offset().left;
				var t = ui_obj.offset().top+18;
				sldp2.attr('value',ui.values[1]);
				sldp2_c.css({left:l+'px',right:'auto',top:t+'px'});
			}
		},
		stop: function(event, ui){
			if((typeof(eval_) != 'undefined') && (eval_ != ''))
				eval(eval_);
		}
	});
	var elts = slider.find('a');
	var elts1off = jQuery(elts[0]).offset();
	var elts2off = jQuery(elts[1]).offset();
	sldp1_c.css({left:elts1off.left+'px',top:(elts1off.top+18)+'px'});
	sldp2_c.css({left:elts2off.left+'px',top:(elts2off.top+18)+'px'});
	slider.bind('slider_reset', function(event){
		var slider_ = jQuery(slider);
		var slids = slider_.find('a').get();
		var l1 = jQuery(slids[0]).offset().left;
		var t1 = jQuery(slids[0]).offset().top;
		var l2 = jQuery(slids[1]).offset().left;
		var t2 = jQuery(slids[1]).offset().top;
		slider_.slider('option', 'values', [slider_.slider('option', 'min'),slider_.slider('option', 'max')]);
		slider_.slider('enable');
		sldp1_c.css({left:l1+'px'});
		sldp1.attr('value', slider_.slider('option', 'min'));
		sldp2_c.css({left:l2+'px'});
		sldp2.attr('value', slider_.slider('option', 'max'));
	});
	return slider;
}
jQuery.fn.submitFilter = function (args){
	var solnica = jQuery('input[name="milk_bottle"]').val();
	var posoleno = solnica.match(/([^\/]+)/ig);
	for(i in posoleno){
		var issoleno = posoleno[i];
		var element = issoleno.match(/__([\s\S]+)__/ig);
		if(element != null){
			element = element.toString().replace(/__+/ig, '');
			var buba4ko = '';
			jQuery('.'+element).each(function(){
				el = jQuery(this);
				if(el.attr('type') == 'checkbox'){
					if(el.attr('checked') == true)
						buba4ko += el.val()+',';
				}else{
					buba4ko += el.val()+',';
				}
			});
			if(buba4ko == ''){
				var ev = 'solnica = solnica.replace(/\\/[^\\/]+__*'+element+'__/i, "");';
				eval(ev);
			}else{
				var ev = 'solnica = solnica.replace(/__'+element+'__/i, "'+buba4ko+'");';
				eval(ev);
			}
		}
	}
	window.location = solnica;
};
function getAddgallery(){
	var galleries = jQuery('.ad-gallery').css({visibility:'hidden'});
	galleries.adGallery({
		loader_image: '/images/ad-gallery/loader.gif',
		width: 652,
		height: 400,
		thumb_opacity: 0.7,
		start_at_index: 0,
		animate_first_image: false,
		animation_speed: 400,
		effect: 'slide-hori',
	ttmp:'tmp'});
	jQuery('.closebut,.albumshow').click(function(e){
		if(jQuery('.ad-gallery').css('visibility') == 'visible')
			jQuery('.ad-gallery').css({visibility:'hidden'});
		else
			jQuery('.ad-gallery').css({visibility:'visible'});
	});
}

function showClientRatings(shell, req, event){
	req.lang = lid;
	jQuery.get('/actions.php', req, function(data){
		var content = jQuery('<div></div>');
		content.append(data);
		content.attr('class', shell).css({position:"absolute"});
		content.css({position:"absolute", visibility:"visible"});
		content.fadeTo(0, 0.01);
		jQuery('body').append(content);
		var tg = jQuery(event.target);
		content.css({top:(tg.offset().top+tg.outerHeight())+'px',left:(tg.offset().left-tg.outerWidth())+'px'}).fadeTo(300, 1);
	});
}
function escapeQuotes(str){
	str = str.replace(/'/ig, "\\'");
	str = str.replace(/\n/ig, "\\n");
	return str;
}
var allerady_requested = false;
function doBook(url_suffix){
	if(allerady_requested == true)
		return;
	var redy_url = {};
	var cc = '.cright';
	if(url_suffix == '_phone_request')
		cc = '.crightphone';
	var objects = jQuery(cc+' input,'+cc+' select,'+cc+' textarea').css({background:"#F9F9F9"}).get();
	var obj_len = objects.length;
	for(i=0;i<obj_len;i++){
		var element = jQuery(objects[i]);
		if((element.attr('class') == 'maybe') && (element.attr('value') == '')){
			element.css({background:"#DBC4C0"});
			return false;
		}
		if(element.attr('type') == 'checkbox'){
			eval('redy_url.'+element.attr('name')+"='"+element.attr('checked')+"';");
		}else{
			String :valuestr = escapeQuotes(element.attr('value'));
			valuestr = valuestr.replace(/[']/g,' ');
			eval('redy_url.'+element.attr('name')+"='"+valuestr+"';");
		}
	}
	var container = jQuery('#panecenter');
	var vurtel = jQuery('<div id="booking_status_paneimg"></div>');
	vurtel.hide(0);
	vurtel.empty().html('<img alt="" src="/images/loading.gif"/>');
	container.after(vurtel);
	vurtel.fadeIn(500);
	allerady_requested = true;
	var myfin_url = '/do_book'+url_suffix+'.php';
	redy_url.lang = lid;
	jQuery.ajax({
		type: "GET",
		url: myfin_url,
		data: redy_url,
		async: true,
		success: function(data){
			vurtel.fadeOut(500, function(){
				jQuery(this).remove();
				eval(data);
				allerady_requested = false;
			});
		}
	});
}
function callback_fb_error(num){
	var err_c = jQuery('<div class="errorc'+num+'">'+fastrequest_error[num]+'</div>');
	err_c.fadeIn(0);
	jQuery('.ffc p').after(err_c);
	err_c.fadeTo(10000, 0.01, function(){
		jQuery(this).hide(500, function(){
			jQuery(this).remove();
		});
	});
}
jQuery.fn.initStreetView = function (lat,lng){
	var holderElement = this;
	jQuery('#gmap-holder').html('');
	jQuery.getScript('http://www.google.com/jsapi?key='+google_api_key, function(){
		google.load(
			"maps",
			"2.x",
			{
				"callback":function(){
					var streetToView = new GLatLng(lat,lng);
					panoramaOptions = { latlng:streetToView };
					jQuery('a.mapview-switch-3dv').hide(0).click(function(){jQuery(holderElement).initStreetView(lat,lng)});
					jQuery('a.mapview-switch-sv').show(0);
					myPano = new GStreetviewPanorama(holderElement.get(0), panoramaOptions);
					GEvent.addListener(myPano, "error", function(){
						jQuery(jQuery('a.mapview-switch-sv').get(0)).trigger('click');
						jQuery('a.mapview-switch-3dv').hide(0);
					});
				}
			}
		);
	});
}