/*
	jquery.rcz.js v0.1, last update: 8.6.2011 15:16:05
	Base library of Reality.CZ Web2011
	Copyright (c) 2010 Jiri Jezdinsky, <jezdinsky@reality.cz>
	Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)

	Dependencies: jquery-1.4.2+, jquery-ui-1.8.2+

	Inheritance methods for jQuery (Subclassing Widgets)
	Thanks to Daniel Wachsstock (Hacking at 0300, http://bililite.com/blog/)

	http://ajaxandxml.blogspot.com/2007/11/emulating-activeelement-property-with.html
	2008 Posted by Ivan Pepelnjak

	IF v1.0.2 (March 11, 2011) plugin for jQuery
	http://jquery-if.googlecode.com/
	Copyright (c) 2011 Todd Northrop

	Selector for jQuery
	http://james.padolsey.com/javascript/regex-selector-for-jquery/
	(c) 2009 James Padolsey

	Aspect Oriented Programming tools from Justin Palmer's article
	http://alternateidea.com/blog/articles/2006/12/4/avoiding-bloat-in-widgets
	Copyright (c) 2009 Daniel Wachsstock

	jQuery Infinite Carousel
	http://jqueryfordesigners.com/jquery-infinite-carousel/
	Copyright (c) 2009 Remy Sharp
*/

String.prototype.toAscii = function () { // toAscii(s) 
	var x;
	var inp = this.split('');
	for (var i = 0; i < inp.length; i++) {
		if ((x=this.toAscii.accents.indexOf(inp[i])) != -1)
			inp[i] = this.toAscii.ascii[x];
	}
	return inp.join('');
}
String.prototype.toAscii.accents = 'áÁăĂäÄâÂąĄčČćĆçÇďĎðÐéÉěĚëËęĘíÍîÎĺĹľĽłŁňŇńŃóÓöÖôÔőŐŕŔřŘšŠśŚşŞßťŤţŢúÚüÜůŮűŰýÝžŽźŹżŻ';
String.prototype.toAscii.ascii = ['a','A','a','A','a','A','a','A','a','A','c','C','c','C','c','C','d','D','d','D','e','E','e','E','e','E','e','E','i','I','i','I','l','L','l','L','l','L','n','N','n','N','o','O','o','O','o','O','o','O','r','R','r','R','s','S','s','S','s','S','s','t','T','t','T','u','U','u','U','u','U','u','U','y','Y','z','Z','z','Z','z','Z'];
String.prototype.deWebify = function () { // odstranění některých html entit
	return this.replace(/&nbsp;/g, ' ').replace(/&quot;/g, '"').replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&sup2;/g, '2');
}
Array.prototype.swap = function(a, b)
{
	var tmp = this[a];
	this[a] = this[b];
	this[b] = tmp;
}

var RCZ0, RCZ, AOP;
var EnglisH = 0; // (/\/en\//.test(document.location.href)) ? 1 : 0;
var ddDotaz = (EnglisH) ? "enter your question here" : "sem napište svůj dotaz";
var ddKoment = (EnglisH) ? "Enter your comment here" : "Místo pro Váš komentář";
var RCZ_IE = false, RCZ_IE8 = false, RCZ_IE7 = false, RCZ_IE6 = false;


function focusClear(ctrl,valu) {
	if (ctrl.value == valu) ctrl.value=""
}
function focusClearRegEx(ctrl,pattern) {
	if ( eval("/"+pattern+"/.test(ctrl.value)") ) ctrl.value=""
}
function validatePrompt(Ctrl, PromptStr) {
	if (Ctrl != null) Ctrl.focus();
	if (PromptStr != "") alert(PromptStr);
	return;
}
function testNaNCtrl(ctrl, promptstr) {
	if (isNaN(ctrl.value)) {
		validatePrompt(ctrl, promptstr);
		return false;
	}
	return true;
}
function testEmptyCtrl(ctrl, promptstr) {
	if (jQuery.trim(ctrl.value) == "") {
		validatePrompt(ctrl, promptstr);
		return false;
	}
	return true;
}
function testEmptyOrValue(ctrl, testval, promptstr) {
	if ((ctrl.value == "") || (ctrl.value == testval)) {
		validatePrompt(ctrl, promptstr);
		return false;
	}
	return true;
}
function testValuesEq(ctrl, testval, promptstr) {
	if (ctrl.value != testval) {
		validatePrompt(ctrl, promptstr);
		return false;
	}
	return true;
}
function testValueRegEx(ctrl, pattern, promptstr) {
	if ( eval("/"+pattern+"/.test(ctrl.value)") ) return true;
	validatePrompt(ctrl, promptstr);
	return false;
}
function testPocetZnaku(ctrl, kolik, promptstr) {
	if (ctrl.value == "") return true;
	if ( ctrl.value.length == kolik ) return true;
	else validatePrompt(ctrl, promptstr);
	return false;
}
function testMinPocetZnaku(ctrl, kolik, promptstr) {
	if ( ctrl.value.length >= kolik ) return true;
	else validatePrompt(ctrl, promptstr);
	return false;
}
function testMailAddr(ctrl) {
	if (ctrl.value == "") return true;
	if ( /.+@.+\.\w+/.test(ctrl.value) ) return true;
	else {
		var errmsg = (EnglisH) ? "Invalid e-mail address!!!" : "Neplatná adresa e-mailu!!!";
		validatePrompt(ctrl, errmsg);
		return false;
	}
}
function testSingleMailAddr(ctrl) {
	if (ctrl.value == "") return true;
	if ( /^\s*[a-z0-9_\+-]+(\.[a-z0-9_\+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,4})\s*$/i.test(ctrl.value) ) {
		return true;
	} else {
		if ( /.*@.*@/.test(ctrl.value) ) {
			validatePrompt(ctrl, "Zřejmě se pokoušíte zadat dvě e-mailové adresy. To není možné, adresa smí být jen jedna!");
			return false;
		}
		if ( /^\s*[a-z0-9,!#\$%&'\*\+\/=\?\^_`\{\|}~-]+(\.[a-z0-9,!#\$%&'\*\+\/=\?\^_`\{\|}~-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,})\s*$/i.test(ctrl.value) ) {
			alert("E-mailová adresa je sice syntakticky správná, ale obsahuje nestandardní znaky. Raději ji ještě zkontrolujte.");
			ctrl.focus();
			return true;
		} else {
			validatePrompt(ctrl, "Neplatná e-mailová adresa!");
			return false;
	} }
}
function testMailKontakt(frm) {
	if (frm.username.value == "" && frm.address.value == "" && frm.phone.value == "" && frm.fax.value == "") {
		var errmsg = (EnglisH) ? "Enter at least one kind of contact!!!" : "Zadejte alespoň jeden kontaktní údaj!!!";
		validatePrompt(frm.username, errmsg);
		return false;
	}
	else return true;
}
function justNumbers(field) {
return field.replace(/[^0-9]/g,"");
// a takhle to bylo postaru:
	var tmp = "";
	for (var i = 0; i < field.length; i++) {
		var oneChar = field.substring(i, i + 1)
		if ((oneChar >= "0" && oneChar <= "9") || (oneChar == ".")) {
			tmp = tmp + oneChar;
		}
	}
	return(tmp);
}
function justNumbersDec(field) {
	return field.replace(/[^0-9,.]/g,"");
}
function submMail(frm) {
	var res;
	var errmsg = (EnglisH) ? "Please enter your name!" : "Zadejte prosím své jméno!";
	res = testEmptyCtrl(frm.realname, errmsg);
//	if (res) res = testEmptyOrValue(frm.dotazComments, ddDotaz, "Zadejte prosím text dotazu!!!");
	if (frm.dotazComments.value == ddDotaz) frm.dotazComments.value="";
	if (res) res = testMailAddr(frm.username);
	if (res) res = testMailAddr(frm.bcc);
	if (res) res = testMailKontakt(frm);
	return res;
}
function submNesr(frm) {
	var res;
	if (frm.problemComments.value == ddKoment) frm.problemComments.value="";
	var errmsg = (EnglisH) ? 'Please select type of inconsistency!' : 'Vyberte prosím typ nesrovnalosti!';
	res = testEmptyCtrl(frm.nesr, errmsg);
	return res;
}
function submPredat(frm) {
	var res;
	var errmsg = (EnglisH) ? "Please enter required e-mail address!!!" : "Zadejte prosím e-mail příjemce!!!";
	res = testEmptyCtrl(frm.prijemail, errmsg);
	if (res) res = testMailAddr(frm.prijemail);
	errmsg = (EnglisH) ? "Please enter your name!!!" : "Zadejte prosím své jméno!!!";
	if (res) res = testEmptyCtrl(frm.realname, errmsg);
	if (res) res = testMailAddr(frm.username);
	return res;
}
function openWindow(Url,Title,Width,Height) {
	window.open(Url,Title,'width='+Width+',height='+Height+',resizable=yes,scrollbars=yes,status=no').focus();
	return false;
}
function submKatMak1(frm) {
	if (!testEmptyCtrl(frm.zamereni,"Vyberte prosím požadované zaměření!")) return false;
	if (!testEmptyCtrl(frm.pusobnost,"Vyberte prosím požadovanou působnost!")) return false;
	return true;
}
function submKatMak2(frm) {
	if (!frm.makljm || frm.makljm.value == "") 
		if (!testEmptyCtrl(frm.pusobnost,"Vyberte prosím Vaši lokalitu!")) return false;
	return true;
}
function validateChkBox(ctrl, promptstr, MinCnt) { // *Lubos* Validace pro chkboxy s moznosti poctu vyplneni 
  var ChkCnt = 0;
	if (!MinCnt) MinCnt = 1;
  for(var i=0; i < ctrl.length; i++){
    if(ctrl[i].checked) ChkCnt++;
  }
	if (ChkCnt < MinCnt){
	  if (ctrl != null) ctrl[0].focus();
	  if (promptstr != "") alert(promptstr);    
    return false;
  }
	return true;
}

function qsort(pole, od, po) { // Quicksort pro pole markeru do mapy
	if (od === undefined) od = 0;
	if (po === undefined) po = pole.length;
	if (po-1 > od) {
		var pivot = Math.floor((po + od) / 2);
		var pvt = pole[pivot];
		pole.swap(pivot, po - 1);
		var temp = od;
		for (var ptr = od; ptr < po - 1; ++ptr) {
			if (pole[ptr].x <= pvt.x) {
				pole.swap(temp, ptr);
				++temp;
			}
		}
		pole.swap(po - 1, temp);
		pivot = temp;
		qsort(pole, od, pivot);
		qsort(pole, pivot + 1, po);
	}
}

function reverz(ctrl, od, kolik) {
	for (i=od; i < od+kolik; i++) {
		ctrl.form._DRUH[i].checked = !ctrl.checked;
	}
}

// http://ajaxandxml.blogspot.com/2007/11/emulating-activeelement-property-with.html
// 2008 Posted by Ivan Pepelnjak
function _dom_trackActiveElement(evt) {
  if (evt && evt.target) {
		try {
	    document.activeElement = evt.target == document ? null : evt.target;
		} catch(err) {
			// alert(err.message);
		}
	}
}
function _dom_trackActiveElementLost(evt) { 
	try {
	  document.activeElement = null;
	} catch(err) {
		// alert(err.message);
	}
}
try {
	if (document.addEventListener && document.activeElement === undefined) {
		document.addEventListener("focus",_dom_trackActiveElement,true);
		document.addEventListener("blur",_dom_trackActiveElementLost,true);
	}
} catch(err) {
	// nic
}

/*
	IF v1.0.2 (March 11, 2011) plugin for jQuery
	http://jquery-if.googlecode.com/
	Copyright (c) 2011 Todd Northrop
	http://www.speednet.biz/
	Dual licensed under the MIT or GPL Version 2 licenses.
*/
(function(a){a.fn.IF=function(c){var b=this;return b.pushStack((b._ELSE=!(a.isFunction(c)?c.apply(b):c))?[]:b,"IF",c)};a.fn.ELSE=function(b){var c=this.end();return c.pushStack(!c._ELSE||(c._ELSE=typeof b!=="undefined"&&!(a.isFunction(b)?b.apply(c):b))?[]:c,"ELSE",b)};a.fn.ENDIF=function(){return this.end()}})(jQuery);

(function($){

//	Regex Selector for jQuery - James Padolsey
//	Copyright (c) 2009 James Padolsey
//	http://james.padolsey.com/javascript/regex-selector-for-jquery/
//	example: $("div:regex(title,!$)").addClass('highlight');
//			Selects all the title attributes that end in an !
$.expr[':'].regex = function(elem, index, match) {
	var matchParams = match[3].split(','),
		validLabels = /^(data|css):/,
		attr = {
			method: matchParams[0].match(validLabels) ? matchParams[0].split(':')[0] : 'attr',
			property: matchParams.shift().replace(validLabels,'')
		},
		regexFlags = 'ig',
		regex = new RegExp(matchParams.join('').replace(/^\s+|\s+$/g,''), regexFlags);
	return regex.test($(elem)[attr.method](attr.property));
}

//	Case-Insensitive Content Selector Filter
//	Copyright (c) 2008 Rick Strahl
//	http://www.west-wind.com/weblog/posts/519980.aspx
//	example: $("#mydiv:containsNoCase(sql)").addClass("highlight");
$.expr[":"].containsNoCase = function(el, i, m) {
    return m[3] ? eval("/" + m[3] + "/i").test($(el).text()) : false;
};  


if ($.ui) {
// Aspect Oriented Programming tools from Justin Palmer's article
// http://alternateidea.com/blog/articles/2006/12/4/avoiding-bloat-in-widgets
// Copyright (c) 2009 Daniel Wachsstock
// MIT license
// http://bililite.com/inc/jquery.ui.subclass.js
	var AOP = {
		yield: null,
		returnValues: { },
		before: function(method, f) {
			var original = this[method];
			this[method] = function() {
						// split arguments to new passable array:
						// var args = Array.prototype.slice.call(arguments, 1);
						// ... instance.apply(instance, args);
				this.returnValues[method] = arguments;
				f.apply(this, arguments);
				return original.apply(this, arguments);
			};
		},
		after: function(method, f) {
			var original = this[method];
			this[method] = function() {
				this.returnValues[method] = original.apply(this, arguments);
				return f.apply(this, arguments);
			};
		},
		instead: function(method, f) {
			var original = this[method];
			this[method] = function() {
				var tmp = this.yield;
				this.yield = original;
				var ret = f.apply(this, arguments);
				this.yield = tmp;
				return ret;
			};
		}
	};
	$.widget("ui.widget", AOP);

// from http://groups.google.com/group/comp.lang.javascript/msg/e04726a66face2a2 and
// http://webreflection.blogspot.com/2008/10/big-douglas-begetobject-revisited.html
	var object = (function(F){
		return (function(o){
				F.prototype = o;
				return new F();
		});
	})(function () {});

// create a widget subclass
	var OVERRIDE = /xyz/.test(function() {xyz;}) ? /\b_super\b/ : /.*/; 
	$.ui.widget.subclass = function subclass(name){
		$.widget(name);
		name = name.split('.');
		var widget = $[name[0]][name[1]], superclass = this, superproto = superclass.prototype;
		
		
		var proto = arguments[0] = widget.prototype = object(superproto); // inherit from the superclass
		$.extend.apply(null, arguments); // and add other add-in methods to the prototype
		widget.subclass = subclass;

		// Subtle point: we want to call superclass init and destroy if they exist
		// (otherwise the user of this function would have to keep track of all that)
		for (key in proto) if (proto.hasOwnProperty(key)) switch (key){
			case '_create':
				var create = proto._create;
				proto._create = function() {
					superproto._create.apply(this);
					create.apply(this);
				};
			break;
			case '_init':
				var init = proto._init;
				proto._init = function() {
					superproto._init.apply(this);
					init.apply(this);
				};
			break;
			case 'destroy':
				var destroy = proto.destroy;
				proto.destroy = function() {
					destroy.apply(this);
					superproto.destroy.apply(this);
				};
			break;
			case 'options':
				var options = proto.options;
				proto.options = $.extend ({}, superproto.options, options);
			break;
			default:
				if ($.isFunction(proto[key]) && $.isFunction(superproto[key]) && OVERRIDE.test(proto[key])){
					proto[key] = (function(name, fn){
						return function() {
							var tmp = this._super;
							this._super = superproto[name];
							try { var ret = fn.apply(this, arguments); }   
							finally { this._super = tmp; }					
							return ret;
						};
					})(key, proto[key]);
				}
			break;
		}
	};

//		$.Widget.prototype._setOption.apply(self, arguments);
//		position = $.ui.dialog.prototype.options.position;
	$.widget( "ui.selslider", $.ui.slider, {
		_create: function() {
			var self = this;
			this.options.koef = 1;
//	volani puvodni funkce, pokud bude potreba:
//	$.ui.selslider.prototype._create.call(this);
		}
	});
}

var initializing = false;

// The base Class implementation (does nothing)
this.Class = function() {};

// Create a new Class that inherits from this class
Class.extend = function(prop) {
	var _super = this.prototype;
 
	// Instantiate a base class (but only create the instance,
	// don't run the init constructor)
	initializing = true;
	var prototype = new this();
	initializing = false;
 
	// Copy the properties over onto the new prototype
	for (var name in prop) {
		// Check if we're overwriting an existing function
		prototype[name] = typeof prop[name] == "function" &&
			typeof _super[name] == "function" && OVERRIDE.test(prop[name]) ?
			(function(name, fn){
				return function() {
					var tmp = this._super;
				 
					// Add a new ._super() method that is the same method
					// but on the super-class
					this._super = _super[name];
				 
					// The method only need to be bound temporarily, so we
					// remove it when we're done executing
					var ret = fn.apply(this, arguments);       
					this._super = tmp;
				 
					return ret;
				};
			})(name, prop[name]) :
			prop[name];
	}
 
	// The dummy class constructor
	function Class() {
		// All construction is actually done in the init method
		if ( !initializing && this.init )
			this.init.apply(this, arguments);
	}
 
	// Populate our constructed prototype object
	Class.prototype = prototype;
 
	// Enforce the constructor to be what we expect
	Class.constructor = Class;

	// And make this class extendable
	Class.extend = arguments.callee;
 
	return Class;
};

$.fn.ghostText = function(options) {
	options = $.extend({}, $.fn.ghostText.defaultOptions, options);
	return this.each(function() {
		if (this.title) {
			this.applyGhost = function(cls) {
				if (this.value == '' && document.activeElement!==this) {
					$(this).val(this.title).addClass(options.klas+cls);
					if (this.form) this.form.rel="ghostText";
				}
			};
			this.removeGhost = function() {
				if (this.value == this.title) {
					$(this).val('').removeClass(options.klas);
				}
			};
			this.removeGhost();
			this.applyGhost(" ghostText");
			$(this).focus(function(e){
				this.removeGhost();
			}).blur(function(e){
				this.applyGhost('');
			});
		}
	});
};
$.fn.ghostText.defaultOptions = {
	klas: "cogy"
};
$.ghostText = {
	vsechny: function(options) {
		$("input:text[title!=''],input:password[title!=''],textarea[title!='']").updnWatermark(options);
	}
};

// jQuery Infinite Carousel
// http://jqueryfordesigners.com/jquery-infinite-carousel/
// Copyright (c) 2009 Remy Sharp
// MIT license
$.fn.infiniteCarousel = function () {
	function repeat(str, num) {
		return new Array( num + 1 ).join( str );
	};
	return this.each(function () {
		var $ul = false,
			$wrapper = $('> div.wrapper', this).css('overflow', 'hidden'),
			$slider = $wrapper.find('> ul'),
			$items = $slider.find('> li'),
			$single = $items.filter(':first'),
			singleWidth = $single.outerWidth(),
			visible = Math.floor($wrapper.innerWidth() / singleWidth), // note: doesn't include padding or border
			currentPage = 1,
			pages = Math.ceil($items.length / visible);

		if (($items.length % visible) != 0) {
			$slider.append(repeat('<li class="empty" />', visible - ($items.length % visible)));
			$items = $slider.find('> li');
		}

		$items.filter(':first').before($items.slice(- visible).clone().addClass('cloned'));
		$items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
		$items = $slider.find('> li'); // reselect

		$wrapper.scrollLeft(singleWidth * visible);
		var $control;
		// if (this.id == 'hproller') $control = $wrapper.after('<div class="control"> <a href="#" class="back">&lt;&lt;</a> <a href="#" class="arrow item1">1</a> <a href="#" class="arrow item2">2</a> <a href="#" class="arrow item3">3</a> <a href="#" class="arrow item4">4</a> <a href="#" class="arrow item5">5</a> <a href="#" class="forward">&gt;&gt;</a> </div>').next();
		if (this.id == 'podobroller' && $items.length > 12) {
			$wrapper.after('<a class="roloarr back"></a><a class="roloarr forward"></a>');
		}

		function gotoPage(page) {
			var dir = page < currentPage ? -1 : 1,
				n = Math.abs(currentPage - page),
				left = singleWidth * dir * visible * n;

			$wrapper.filter(':not(:animated)').animate({ scrollLeft : '+=' + left }, 0, function () { // 2000, 'easeInOutSine', 
				if (page == 0) {
					$wrapper.scrollLeft(singleWidth * visible * pages);
					page = pages;
				} else if (page > pages) {
					$wrapper.scrollLeft(singleWidth * visible);
					page = 1;
				}

				currentPage = page;
				if ($ul) {
					$ul.find('a.selected').removeClass('selected');
					var $a = $ul.find('a').eq(currentPage-1);
					$a.addClass('selected');
					$('#rollerhref').attr('href', '/'+$a[0].hash.substr(1)+'/').html($a.text() + ' &#187;');
				}
/*				if (this.id == 'hproller') {
					$control.children('a').removeClass('selected');
					$($control.children('a')[currentPage]).addClass('selected');
				}*/
			});
			return false;
		}

		if (this.id == 'hproller') {
			$ul = $('#hprollertabs').find('ul.tabs');
			var j = 1;
			$ul.find('li a').each(function() {
				var i = j++;
				$(this).click(function () {
					return gotoPage(i);
				});
			});	
		}
/*		if (this.id == 'hproller') {
			$('a.back', $control).click(function () {
				return gotoPage(currentPage - 1);
			});
			$('a.forward', $control).click(function () {
				return gotoPage(currentPage + 1);
			});
			$('a.arrow', $control).click(function () {
				this.className.match(/item(\d)/);
				return gotoPage(parseInt(RegExp.$1));
			});
			$control.children('a:eq(1)').addClass('selected');
		}*/
		if (this.id == 'podobroller') {
			$('a.back', $(this)).click(function () {
				return gotoPage(currentPage - 1);
			});
			$('a.forward', $(this)).click(function () {
				return gotoPage(currentPage + 1);
			});
		}
		$(this).bind('next', function () {
			gotoPage(currentPage + 1);
		});

		// create a public interface to move to a specific page
		$(this).bind('goto', function (event, page) {
			gotoPage(page);
		});
	});
};

RCZ0 = Class.extend({
	options: {
		alrt: '', // zprava k zobrazeni pri natazeni stranky
		homepage: false, // vypisuju homepage?
		vypis: false,   // vypisuju nejaky vypis?
		detail: false,  // vypisuju detail?
		km: false,  // vypisuju katalog makleru?
		nbd: false,  // vypisuju NBD?
		poptavka: false,  // vypisuju poptavku?
		autoscrolling: false,
		maphled: '', // hledani z mapy?
		lokalita: 'Zadejte obec, okres nebo kraj',
		lokalita2: '+ ...',
		scrpt: '', // script name
		neomezeno: 'neomezeno', // text pro překlad
		mrprihl: false, // prihlasen do Moje Reality
		autocntr: null
	},

	init: function(options) {
		preLoad = 0;

		$.browser.iPad = ($('#iPadStyl').length > 0);
		if ($.browser.iPad) {
			$.fn.fancybox.defaults.centerOnScroll = false;
			if ($('#telo').height() < 1500) $('#footer').next().css('height',(1500-$('#telo').height())+'px');
			else $('#footer').next().remove();
		}
		if (this.options.alrt) alert(this.options.alrt);
		$.extend(this.options, options||{});
		var self = this;
		self.mojerealitya = true;
		var $mr = $('#mojerea'); //.css(top, $('#mojerealitya').height());
		$('#mojerealitya').bind('mousedown', function(event) {
			if (self.mojerealitya) {
				self.mojerealitya = false;
				$mr.position({
					of: $('#mojerealitya').parent(),
					my: 'left top',
					at: 'left bottom',
					offset: $(window).scrollTop().toString(),
					collision: 'none none'
				});
			}
			if ($('#mrtopnh').html() == '') {
				$('#mrtopnh').html('<div class="cor tac"><br /><br />Moment prosím, načítám...<br /><br /><br /></div>');
				$('#mrtopnh').load('/moje-reality/topmenu/', function(responseText, textStatus, XMLHttpRequest) {
					//alert('Load was performed.');
				});
				//$.fancybox.showActivity;
			}
			if ($mr.is(':hidden')) 
				$(document).one('click', function(event) {
					if ($mr.is(':visible')) $mr.hide('fast');
				});
			$mr.toggle('fast', function(event) {
				if (RCZ_IE && $mr.is(':visible')) $mr[0].style.filter = "progid:DXImageTransform.Microsoft.Shadow(color='#B0B0B0', Direction=135, Strength=5)";
				//removeClass('ui-drop-shadow').addClass('ui-drop-shadow');
			});
			return false;
		}).bind('click',function(e){
			if (RCZ_IE) this.blur();
//			e.preventDefault();
			return false;
		});
		if ($.fn.bgiframe) $mr.bgiframe();
/*
$mr.click(function(event) {
  $(document).one('click', function(event) {
    // Hide the popup
  });
  event.stopPropagation();
});
*/
//		$(document).click(function(event){
//			if ($mr.is(':visible')) $mr.hide('fast');
//		});
		$("#poslikoment,#poslikoment2").fancybox({
			scrolling: 'no',
			hideOnContentClick: false,
			titleShow: false,
			'onStart': function(data) {
				if ($("#playstop").length)
					if (! $("#playstop").hasClass('stopped'))
						$("#playstop").click();
			},
			onComplete: function() {
				$("#poslatkoment")[0].mailrefer.value = location.href;
			}
		});
		if (!$.browser.iPad)
			$("#poslikoment").mouseover(function(event) {
				if ($(this).width() < 40) $(this).addClass('podMysi').effect("scale", { percent: 334, direction: 'horizontal', scale: 'box', origin: ['middle','right'] }, 'fast', function() {$(this).width(114)});
			}).mouseout(function(event) {
				if ($(this).width() > 40) $(this).effect("scale", { percent: 30, direction: 'horizontal', scale: 'box', origin: ['middle','right'] }, 'fast', function() {$(this).width(34).removeClass('podMysi')});
			});
		$("#poslatkoment").live("submit", function() {
			$.fancybox.showActivity();
			$.ajax({
				type: "POST",
				cache: false,
				url: this.action,
				data: $(this).serializeArray(),
				success: function(data) {
					$.fancybox(data, { hideOnContentClick: true });
				}
			});
			return false;
		});
		$("#buttlogoff").live("click", function() {
			$.fancybox({
				hideOnContentClick: true,
				titleShow: false,
				content: '<table cellspacing="0" class="bublina"><tr><td>Byli jste úspěšně odhlášeni.</td></tr></table>',
				onComplete: function() {
					$.cookie('sid', null, { expires: -1, path: '/'});
					setTimeout(function() { $.fancybox.close(); }, 1000);
				},
				'onClosed': function(data) {
					setTimeout(function() { if (/moje-reality/.test(window.location.href)) window.location.href='/'; else window.location.reload(true); }, 200);
				}
			});
			return false;
		});
		$("#buttne").live("click", function() {
			$.fancybox.close();
			return false;
		});
		$("#mrlogout").click(function(event) {
//			if (confirm('Opravdu se chcete odhlásit?')) {
//				$.cookie('sid', null, { expires: -1, path: '/'});
//				setTimeout(function() { window.location.reload(true); }, 200);
//			}
			$.fancybox({
				hideOnContentClick: false,
				titleShow: false,
				content: '<table cellspacing="0" class="frmbub"><tr><td><p>Opravdu se chcete odhlásit?</p><p><input type="button" id="buttlogoff" value="Ano" class="button butt50 mr20 ui-corner-all" /><input type="button" id="buttne" value="Ne" class="button butt50 ui-corner-all" /></p></td></tr></table>'
			});
			return false;
		});
		if ($("#mrucetsel").length > 0) this.options.mrprihl = true;
		$("a.necitelny").live("click", function() {
			$.ajax({
				cache: false,
				url: this.href,
				processData: false,
				success: function(data, txt, xh) {
					$("#enigmapic").attr('src', '/info/enigma.png?SEC_KEY='+data);
					$("#SEC_KEY").val(data);
				}
			});
			return false;
		});
		$("#poslatmrregis").live("submit", function() {
			var res;
			if (this.mrregemail) {
				res = testEmptyCtrl(this.mrregemail, 'Nebyl zadán e-mail!');
				if (res) res = testSingleMailAddr(this.mrregemail);
				if (!res) return false;
			}
			if (this.mrregh) {
				res = testEmptyCtrl(this.mrregh, 'Nebylo zadáno heslo!');
				if (res) res = testMinPocetZnaku(this.mrregh, 4, 'Příliš krátké heslo! Minimum je 4 znaky.');
				if (!res) return false;
			}
			if (this.SEC_VALUE) {
				res = testEmptyCtrl(this.SEC_VALUE, "Opište prosím bezpečnostní kód!");
				if (!res) return false;
			}
			$.fancybox.showActivity();
			$.ajax({
				type: "POST",
				cache: false,
				url: this.action,
				data: $(this).serializeArray(),
				error: function(data, txt, er) {
					alert(txt);
				},
				success: function(data, txt, xh) {
					if (/class="bublina"/.test(data)) {
						if (! /id="rmError"/.test(data)) 
							if (/regist/.test(data)) setTimeout(function() { window.location.href = '/moje-reality/nastaveni/'; }, 2000);
							else setTimeout(function() { window.location.reload(true); }, 2000);
						$.fancybox(data, { hideOnContentClick: true });
					} else {
						$.fancybox(data);
					}
				}
			});
			return false;
		});
		this.options.mrlogfrm = {
			hideOnContentClick: false,
			titleShow: false,
			ajax: { type: "POST" },
			'onComplete': function(data) {
				var m = $("#mrregemail").get(0);
				if (m) m.focus();
				if ($('#mrpwreset').length) 
					if ($('#mrpwreset').attr('rel')) {
						$('#mrpwreset').fancybox({
							hideOnContentClick: false,
							titleShow: false,
							'onComplete': function(data) {
								var m2 = $("#mrregemail").get(0);
								if (m2) m2.focus();
							}
						});
						$('#mrpwreset').attr('rel', '');
					}
			}
		};
		$('.mrlogreg, #mrlogin').fancybox(this.options.mrlogfrm);
		$('#mrpopreg').live('click', function(event) {
			$('.mrlogreg').first().click();
			return false;
		});
		$("#hledevc").fancybox({
			scrolling: 'no',
			hideOnContentClick: false,
			titleShow: false,
			'onComplete': function(data) {
				$("#hledevcf input")[0].focus();
			}
		});
		$("#frmnabidky,#frmnabidky1").submit(function() {
			if (this.rel=="ghostText") $("input.ghostText", this).each(function() {
				this.removeGhost();
			});
			var res = testMinPocetZnaku(this.evc, 3, 'Zadejte prosím aspoň 3 znaky!');
			if (!res && this.rel=="ghostText") $("input.ghostText", this).each(function() {
				this.applyGhost('');
			});
			return res;
		});
		$("#frmnabidky1 input[name=evc]").ghostText();
		//$('#mojerea li:first div:first').live('click', function(event) {
		$('#mojerea li:first div:first').click(function(event) {
			$('#histSearches').css('display', 'none');
			$(this).next().removeClass('mrtabact');
			$('#histDetails').css('display', 'block');
			$(this).addClass('mrtabact');
			return false;
		});
		$('#mojerea li:first div.mrtab:last').click(function(event) {
			$('#histDetails').css('display', 'none')
			$(this).prev().removeClass('mrtabact');
			$('#histSearches').css('display', 'block')
			$(this).addClass('mrtabact');
			return false;
		});
		if (RCZ_IE) {
			$("#mojerea li.ui-corner-all2").cornerz({radius: 8, background: '#FBC723'});
			//$("div.ui-corner-all2").cornerz({radius: 8, background: '#F8F8F6'});
			$("#mrucet").cornerz({radius: 4});
		}
		$('#mrucetsel').linkselect({ // MUSI BYT AZ ZA cornerz!!!
			yAxis: "bottom", // titleAlign: "right", fixedWidth: true,
			offsetLeft: RCZ_IE ? 21 : 16,
			change: function (li, value, text) {
				if (value == '#')
					$.fancybox({
						hideOnContentClick: false,
						titleShow: false,
						content: '<table cellspacing="0" class="frmbub"><tr><td><p>Opravdu se chcete odhlásit?</p><p><input type="button" id="buttlogoff" value="Ano" class="button butt50 mr20 ui-corner-all" /><input type="button" id="buttne" value="Ne" class="button butt50 ui-corner-all" /></p></td></tr></table>'
					});
				else window.location.href=value;
			}
		}).find('li:first').css('border-top-color: #FFFFFF');
		self.initInfoPopups("a.fancy", true);
	},
	clickHideHledMap: function() { // zavírání mapy kliknutím vedle
		$('#mapCntnr, ul.ui-autocomplete').click(function(event) {
			return false;
		});
		$('#address').keypress(function(e) {
			if (e.which == 13) {
				return false;
			}
		});
		$(document).one('click', function(event) {
			$('#mapCntnr').hide();
		});
	},
	hlfrminit: function($hlfrm09, hp) {
		var self = this;
		if ($("#prpn").length) $hlfrm09[0].prpn[$("#prpn").val()-1].checked=true; // Firefox absurdity fix
		var $d = $("#druhtabs2").buttonset().children('label').first().removeClass('ui-corner-left').end().last().removeClass('ui-corner-right').end().addClass('ui-corner-top');
		if (RCZ_IE) {
			$("#hlfrm09d").cornerz({radius: 8});
		}
		var $pp = $("#prodpronradia div.boxpp").buttonset().children('label');
		if (RCZ_IE) {
			$d.cornerz({
				radius: 4,
				corners: "tl tr"
			});
			$pp.first('label').cornerz({
				radius: 4,
				corners: "tl bl",
				background: '#FBC723'
			});
			$pp.last().cornerz({
				radius: 4,
				corners: "tr br",
				background: '#FBC723'
			});
		}

/*		var $dt2 = $("#druhtabs2").buttonset();
		var $lbl1 = $dt2.children('label').first().removeClass('ui-corner-left').addClass('ui-corner-tl');
		$dt2.children('label').last().removeClass('ui-corner-right').addClass('ui-corner-tr');
		var $lbl2 = $dt2.children('label:eq(1)');
//		$lbl1.find('span').width()
		$("#prodpronradia").buttonset().children('label').first()
				.removeClass('ui-corner-left').addClass('ui-corner-bl').find('span')
					.width($lbl1.find('span').width())
				.end()
			.end().last()
				.removeClass('ui-corner-right').addClass('ui-corner-br').find('span')
					.width($lbl2.find('span').width());*/
		if (self.options.poptavka) { // je to poptavka?
			$hlfrm09.submit(function(event) { return false; });
			$('#realf').submit(function(event) { return self.hledFrmSubm($hlfrm09[0]); });
		} else {
			$hlfrm09.submit(function(event) { return self.hledFrmSubm(this); });
		}
/*			if (this.o.value == "") {
				if (confirm("Nevybrali jste žádnou lokalitu. Chcete prohledat celou Českou republiku?"))
					this.o.value = "*"
				else {
					this.obec.focus();
					return false;
				}
			}*/
//			$('#inpobec').removeAttr('autocomplete');
		$('#mapaPopis, #mapaPopis a').live('click', function(event) {
			if ($('#mapHled').html() == '') {
				$('#mapCntnr').show();
				self.mapInit();
				self.clickHideHledMap();
			} else if ($('#mapCntnr').is(':visible')) {
				//if (event.target.tagName != 'A') $('a', this).click();
				event.preventDefault();
				return;
			} else {
				$('#mapCntnr').toggle();
				self.clickHideHledMap();
			}
			return false;
		});
		$('#realf input[name="maphled"]').val(self.options.maphled);
		if (RCZ_IE) $('#mapCntnr').removeClass('ui-drop-shadow');
		if ($('#zadaniMapa').is(':visible')) $('#mapokr').toggle();
		$('#swtxt2map, #swmap2txt').click(function(event) {
			$('#zadaniMapa, #zadaniText').toggle();
			if (event.target.id == 'swtxt2map') {
				if (self.options.homepage) self.playPause(0);
				if ($('#realf input[name="mapzoom"]').val())
					$('#realf input[name="maphled"]').val('1');
				$('#mapCntnr').show();
				if ($('#mapHled').html() == '') self.mapInit();
				self.clickHideHledMap();
				if ($('#hlOkres').is(':visible')) $('#hlOkres').hide();
			} else {
				$('#realf input[name="maphled"]').val('');
			}
			$('#mapokr').toggle();
			return false;
		});
		this.initAutocomplete();
		if (self.options.poptavka) { // poptavka
			$('#chxByty').click(function(event){reverz(this,0,3)});
			$('#chxDomy').click(function(event){reverz(this,3,5)});
			$('#chxKomercni').click(function(event){reverz(this,8,6)});
			$('#chxPozemky').click(function(event){reverz(this,14,4)});
			$('#druhtabs2 input').click(function(event) {
				$('#chkdruh input').attr("checked",false);
        switch(this.value)
        {
          case '1': $('#chxByty').click();break;
          case '2': $('#chxDomy').click();break;
          //case '3': $('#_druh12').click();break;
          case '3': $('#_druh12').attr("checked",true);break;
          case '4': $('#chxPozemky').click();break;
          case '5': $('#chxKomercni').click();break;
          //case '6': $('#_druh13,#_druh20').click();break;
          case '6': $('#_druh13,#_druh20').attr("checked",true);break;
          case '7': $('#chkdruh input').attr("checked",true);break;
        }
				//reverz($('#chxDomy')[0],3,5);    
			});
			//po kliknuti zajisti prepnuti na vse
			$("input[name='_DRUH']:checkbox").click(function(event){$('#rd7').attr("checked",true).button( "refresh" );});
		} else { // hledání
			$('#druhtabs2 label:last').click(function(event) {
				if ($('#realf input[name="maphled"]').val()) {
					alert('Hledání z mapy je určeno jen pro Českou republiku');
					$(this).blur();
					$('#druhtabs2 input:checked').next().click();
					return false;
				}
			});
			var $t = $('#druhtabs2 input');
			if (hp) $t = $t.last();
			$t.click(function(e) {
				if ($('#'+this.name).val() != this.value) {
					$(this.form).submit();
				}
			});
		}
		this.initCenySlider();
		//this.toolTipPrepare();
	},
	
	toolTipPrepare: function() {
		var opts = { xOffset: 0, yOffset: 0, xPlus: 12, yPlus: 10, yHeight: 0 };
		$('.fg-tooltip-pointer-down-inner').each(function() {
			var bWidth = $('.fg-tooltip-pointer-down-inner').css('borderTopWidth');
			var bColor = $(this).parents('.fg-tooltip').css('backgroundColor')
			$(this).css('border-top', bWidth+' solid '+bColor);
		});	
		$('.fg-tooltip').hide(); //.css('left', '0');
		$('.tooltip').hover(function(event) {
			var o = $(this).offset();
			opts.yOffset = o.top - this.offsetTop;
			opts.xOffset = o.left - this.offsetLeft;
			var $t = $(this).prev();
			opts.yHeight = $t.height() + 34;
			if ($t.is(':animated')) $t.stop().hide().css('opacity', 1);
			$t.css('top', (event.pageY - opts.yOffset - opts.yPlus - opts.yHeight) + 'px')
				.css('left', (event.pageX - opts.xOffset - opts.xPlus) + 'px')
				.fadeIn(); //fadeIn
				opts.xOffset = opts.xOffset;
		}, function(event) {
			var $t = $(this).prev();
			if ($t.is(':animated')) $t.stop().show().css('opacity', 1);
			$t.fadeOut(); //fadeOut
			opts.xOffset = opts.xOffset;
		}).mousemove(function(event) {
			var $t = $(this).prev();
			$t.css('top', (event.pageY - opts.yOffset - opts.yPlus - opts.yHeight) + 'px')
				.css('left', (event.pageX - opts.xOffset - opts.xPlus) + 'px');
		});	
	},
	
	fValueModify: function($i, value) {	// úprava jedné podproměnné par. "f"
		var kod = value.substr(0, 1);
		var hodn = value.substr(1);
		var rgx = new RegExp(kod+"\\d+");
		if (hodn=='') {
			$i.val($i.val().replace(rgx, ''));
		} else {
			var v = $i.val();
			if (rgx.test(v)) $i.val(v.replace(rgx, value));
			else $i.val(v+value);
		}
	},
	hledFrmAutoSubm: function(self) { // autosubmit pri zmene ceny ve vypisu
		//alert('test');
		$("form#hlfrm09").submit();
	},
	hledFrmSubm: function(frm1) {	// helper pri submitu hledFrm
		var self = this;
		var $frm2 = $('#realf');
/*		$(':radio:checked', frm1).each(function() {
			//if (frm1.name == "d") $frm2.d.value = frm1.value;
			if ($frm2[this.name]) $frm2[this.name].value = this.value;
		});*/
		
// //		$frm2.p.value = (frm1.p[0].checked) ? 1 : 2;
//		if ($frm2.p.value == '') $frm2.p.value='1';
		/* cena se nebude predavat ve f, ale v url
		var $i = $('input#f');
		var value = String.fromCharCode(64+parseInt($frm2.p.value));
		if (/[AB]\d+/.test($i.val())) // pro jistotu, pri zmene prod/pron
			$i.val($i.val().replace(/[AB]/, value));
		else
			$i.val(value+frm1.cenaod.value+frm1.cenado.value+$i.val());
		this.fValueModify($i, value+frm1.cenaod.value+frm1.cenado.value);
		*/

//		$('form#hlfrm09 input[name^=f_]').each(function() {
//			v += this.value;
//		});
		//$frm2.o.value = frm1.o.value;
		//$.fancybox.showActivity();
		//window.onbeforeunload = function() { $.fancybox.hideActivity(); };
		//$(window).unload(function() { $.fancybox.hideActivity(); });
		if (frm1.x)
			if ($.trim(frm1.x.value) != '')
				if (!$frm2[0].x)
					$frm2.append('<input type="hidden" name="x" value="" />');
		if (!$('#realf input[name="maphled"]').val())
			$("#realf").find('input[name^="map"]').each(function() {
				this.value='';
			});	
		$('input', $frm2).each(function() {
			//if (this.name.substr(0, 3) != 'map') this.value = frm1[this.name].value;
			if (frm1[this.name]) this.value = frm1[this.name].value;
			this.disabled = (this.value == '');
		});
		var druhy = new Array('', '/byty', '/domy', '/rekreace', '/pozemky', '/komercni', '/ostatni', '', '/zahranici');
		var tmp = $(frm1).find('input[name=druh]:checked').val()
		if (tmp == '8') { // zahranici
//		alert(druhy[8] + '/');	
			window.location.href = druhy[8] + '/';
			return false;
		} else {
			var lok = $('#as-values-obec').val().replace(/(^,|,$)/g,'').replace(/,/g,'_').replace(/ /g,'-');
			if (!$frm2[0].maphled.value) {
				if (lok == '') {
					$.fancybox({
						hideOnContentClick: true,
						titleShow: false,
						content: '<div class="infopop w400"><p class="fsbg bld cor">Pozor, lokalita není zadána!</p><p>Začněte psát název lokality a z nabídky vyberte požadovanou obec (část obce), okres nebo kraj, případně celou Českou republiku. Lokalit můžete zadat více, po zadání první začněte psát název druhé a opět vyberte z nabídky. U obcí a částí obcí lze přidat také okolí (klepnutím na <img src="/images/design/hledfltr0.png" alt="" class="vam" /> u názvu). Druhy lokalit (včetně okolí) lze neomezeně kombinovat a nastavit tak přesně oblast Vašeho zájmu.</p><p><input type="button" id="buttne" value="Zavřít" class="button ui-corner-all" /></p></div>'
					});
					return false;
				}
			}
			$frm2.attr('action', function(i, attr) {
				if (!self.options.poptavka) attr = '/';
				attr += ((frm1.prpn[0].checked) ? 'prodej' : 'pronajem');
				attr += druhy[tmp];
				if ($frm2[0].maphled.value) {
					attr += '/V-teto-lokalite';
				} else {
//					if (lok != '') {
						attr += '/' + encodeURIComponent(lok);
/*					} else {
						attr += '/Ceska-republika';
					}*/
				}
				if (frm1.cenaod.value!='0' || frm1.cenado.value!='max')
					attr += '/cena-'+frm1.cenaod.value+'-'+frm1.cenado.value+'-'+frm1.jednotka.value;
				if (/(\/profil-\d+)\//.exec(window.location.pathname))
					attr += RegExp.$1;
				attr += '/';
				return attr;
			});
			if (self.options.poptavka) return false;
			else $frm2.submit();
		}
		return false;
	},
	formatCeny: function(cena) {
		if (cena >= 1e3) {
			cena = (cena >= 1e6) ? cena/1e6 + ' mil' : cena/1e3 + ' tis';
			cena = cena.replace(/\./, ',');
			cena += '.';
		}
		return cena;
	},

	initCenySlider: function() {
		var self = this;
		self.options.menakod = 2; // default kod=Kč/objekt
		self.options.cenakoefs = [100000, 	// default
			// prodeje 1-8
			500,	// Kč/m2
			100000, 	// Kč/objekt
			50,	// DM/m2
			5000, 	// DM/objekt
			30,	// $/m2
			5000, 	// $/objekt
			20,	// EUR/m2
			4000, 	// EUR/objekt
			100000, 	// 9 - nepouzito
			100000, 	// 10 - nepouzito
			// pronajmy 11-26
			50,	// Kč/rok/m2
			5,	// Kč/mes/m2
			10000, 	// Kč/rok/objekt
			1000, 	// Kč/mes/objekt
			5,	// DM/rok/m2
			1,	// DM/mes/m2
			1000, 	// DM/rok/objekt
			100, 	// DM/mes/objekt
			3,	// $/rok/m2
			1,	// $/mes/m2
			500, 	// $/rok/objekt
			50, 	// $/mes/objekt
			2,	// EUR/rok/m2
			1,	// EUR/mes/m2
			400, 	// EUR/rok/objekt
			40, 	// EUR/mes/objekt
			0 	// dummy
			// ******** ### ubytovani??? ### ******** //
		];
		self.options.jednotkyProdej = [
			{value: 2, text: 'Kč'},
			{value: 1, text: 'Kč/m&sup2;'},
			{value: 6, text: '$'},
			{value: 5, text: '$/m&sup2;'},
			{value: 8, text: '&euro;'},
			{value: 7, text: '&euro;/m&sup2;'}
		];
		self.options.jednotkyPronajem = [
			{value:  4, text: 'Kč/měs'},
			{value:  3, text: 'Kč/rok'},
			{value:  2, text: 'Kč/měs/m&sup2;'},
			{value:  1, text: 'Kč/rok/m&sup2;'},
			{value: 12, text: '$/měs'},
			{value: 11, text: '$/rok'},
			{value: 10, text: '$/měs/m&sup2;'},
			{value:  9, text: '$/rok/m&sup2;'},
			{value: 16, text: '&euro;/měs'},
			{value: 15, text: '&euro;/rok'},
			{value: 14, text: '&euro;/měs/m&sup2;'},
			{value: 13, text: '&euro;/rok/m&sup2;'}
		];
			
		var updateMeny = function(mena) {
			mena = parseInt(mena) || 2;
			if ($('#typpron').is(':checked')) mena += 10;
			self.options.menakod = mena;
		};
		$('#cenaselect').width('250px').find('.schovat').hide();
		$('#jednotka').linkselect({
			yAxis: "top",
			change: function (li, value, text) {
				updateMeny(value);
				var v = self.ceny.slider('option', 'values');
				self.ceny.slider('option', 'values', v);
				$('#'+this.id).delay(40).linkselect("blur");
			}
		}).find('li:first').css('border-top-color: #FFFFFF');
		updateMeny($("#jednotka").linkselect("val"));

		var max = 101;
		var cenakoef = self.options.cenakoefs[self.options.menakod] || 1e5;
		var cenaod = Math.floor(parseInt($('#cenaod').val()) / cenakoef);
		if (isNaN(cenaod)) cenaod = 0;
		if (cenaod>=max) cenaod = max-1;
		var cenado = $('#cenado').val();
		cenado = (isNaN(cenado) || cenado == 0) ? max : Math.floor(parseInt(cenado) / cenakoef);
		if (cenado<=cenaod) cenado = cenaod+1;
		var	updateCeny = function(cenaod, cenado) {
				var cenakoef = self.options.cenakoefs[self.options.menakod] || 1e5;
				$('#cenaod').val(cenakoef * cenaod);
				$('#lcenaod').html(cenaod<=0 ? '<span class="fss fwn">0</span>' : self.formatCeny(cenakoef * cenaod));
				$('#cenado').val(cenado>=max ? 'max' : cenakoef * cenado);
				$('#lcenado').html(cenado>=max ? '<span class="fss fwn">'+self.options.neomezeno+'</span>' : self.formatCeny(cenakoef * cenado));
		};
		this.ceny = $('#cenaPosuvnik').slider({
			range: true,
			min: 0,
			max: max,
			values: [cenaod, cenado],
			slide: function(event, ui) {
				if (ui.values[0] >= ui.values[1]) return false;
				updateCeny(ui.values[0], ui.values[1]);
			},
			change: function(event, ui) {
				updateCeny(ui.values[0], ui.values[1]);
			}
		}).slider('option', 'values', [cenaod, cenado]).removeClass('ui-corner-all');
		$('#cenaPosuvnik .ui-slider-handle').removeClass('ui-corner-all').addClass('ui-corner-all1')
		$("#prodpronradia").find('input').click(function(event) {
			$("#jednotka").linkselect("replaceOptions", this.value==2 ? self.options.jednotkyPronajem : self.options.jednotkyProdej);
			self.ceny.slider('option', 'values', [0, 101]);
		});
	},
							
	initSliderXXX: function(autocommit) {
		this.inheritance('slider');
		var self = this;
		var cenaod = $('#cenaod').val();
		var cenado = $('#cenado').val();
//		$('select').selectToUISlider();
		this.slider = $('p#cenaselect>select').selectToUISlider({
//			values: [13, 18],
			labels: 1,
			labelSrc: 'text',
			tooltip: false,
			slideCallback: function(event, ui, options) {
				$("#lcenaod").html(options.ttText(ui.values[0], options));
				$("#lcenado").html(options.ttText(ui.values[1], options));
				if (autocommit) {
					var frm1 = $('form#hlfrm09')[0];
					var frm2 = $('#realf')[0];
					//var p = (frm2.p.value == '2') ? '2' : '1';
					//p = String.fromCharCode(64+parseInt(p))+frm1.cenaod.value+frm1.cenado.value;
					//var rgx = new RegExp(p);
				}
			}
//			sliderOptions: {
//				animate: true,
//				change: function(event) {
////				doSubmitMyStuff();
//				}
//			}
		}).hide();
		$("#cenaselect").width('250px').find('input').attr('type', 'hidden');
//		$("#cena").html($("select#cenaod > option:selected").text() + ' - ' + $("select#cenado > option:selected").text());
		$("#lcenaod").html($("select#cenaod > option:selected").text());
		$("#lcenado").html($("select#cenado > option:selected").text());
/*		$('.ui-slider').slider().slider('instead','_slide', function(event, index, newVal) {
			if ( this.options.values && this.options.values.length === 2 && this.options.range === true && newVal != this.values( index ) ) {
				var otherVal = this.values( index ? 0 : 1 );
				if ( index == 0 && newVal >= otherVal)
					newVal = otherVal==this.options.min ? otherVal : otherVal-1;
				if ( index == 1 && newVal <= otherVal )
					newVal = otherVal==this.options.max ? otherVal : otherVal+1;
			}
			this.yield(event, index, newVal);
		});*/
		$('.ui-slider').slider().slider('before','_slide', function() {
			if ( this.options.values && this.options.values.length === 2 && this.options.range === true && arguments[2] != this.values( arguments[1] ) ) {
				var otherVal = this.values( arguments[1] ? 0 : 1 );
				if ( arguments[1] == 0 && arguments[2] >= otherVal)
					this.returnValues['_slide'][2] = otherVal==this.options.min ? otherVal : otherVal-1;
				if ( arguments[1] == 1 && arguments[2] <= otherVal )
					this.returnValues['_slide'][2] = otherVal==this.options.max ? otherVal : otherVal+1;
			}
//			this.yield(event, arguments[1], arguments[2]);
//			otherVal = otherVal;
		});
	},

	initAutocomplete: function() {
		var self = this;
		var mapkahref = function(area) {
			var krokr = area.href.match(/#(\w+)$/);
			if (krokr) {
				krokr[2] = krokr[1].substr(0,1);
				krokr[3] = (krokr[2] == 'o') ? $('#'+area.alt).attr('title') : '';
				krokr[4] = area.title.toAscii(); // .replace(/ /g, '-')
			}
			return krokr;
		};
		var oznacVybranyOkresKraj = function(id) {
			if (/^[ko]/.test(id)) {
				var c = '', ar = $('#hlOkresMap area[href$="#'+id+'"]');
				ar.each(function() { c += 'M' + this.coords.replace(/, /g, 'L') + 'Z'; });	
				c = self.options.paper.path(c).attr({fill: "#DB0000", stroke: "#870000", 'stroke-width': 1});
				self.options.paperokr[id+'sel'] = c.glow({width:7, opacity: 0.7, color: "#000"}); // offsetx:3, offsety:3, 
				self.options.paperokr[id+'sel'].push(c);
			}
		};
		var asOpt = {
			selectedItemProp: "label",
			selectedValuesProp: "value",
			searchObjProps: "label",
			queryParam: 'term',
			asHtmlID: 'obec',
			minChars: 2,
			keyDelay: 300,
			neverSubmit: true,
			autoSugg: this.options.autosug,
			emptyText: "Litujeme, žádná obec nebyla nalezena...",
/*			resultsComplete: function() {
				$('#zadejtelokalitu').html(new Date().toString()+'hotovo.');
			},*/
			formatList: function(data, elem) {
				var txt = data.okres=='' ? data.label : data.label + ' <span class="fsxs cogy">('+ data.okres +')</span>'
					return elem.html(txt);
			},
			selectionFormat: function(data, prop) {
				if (/^[cm]/.test(data.kod)) {
					var o, o2, okolstep;
					var castobce =(data.kod.substr(0, 1) == 'c');
					okolstep = (castobce) ? 2 : 5;
					var dir = data.value.replace(/\+\d+$/, '');
					var drop = '<select id="'+data.kod+'" title="prohledávání okolí" orig="'+dir+'">'+
					'<option value="'+dir+'" title="'+data.label;
					//if (castobce) drop += ', '+data.okres;
					drop += '">jen '+data.label+'</option>';
					for (var sel='', i = okolstep; i <= 6*okolstep; i+=okolstep) {
						sel = (dir+'+'+i == data.value) ? ' selected="selected"' : '';
						drop += '<option value="'+dir+'+'+i+'" title="'+data.label+' + okolí '+i+' km"'+sel+'>+ okolí '+i+' km</option>';
					}
					if (data.kod.substr(0, 1) == 'c') {
						o = data.value.replace(/^[^.]+\./, '');
						o2 = 'celá ' + data.okres; // .replace(/^část obce /, '');
					} else {
						o = data.okres;
						o2 = 'celý ' + o;
					}
					drop += '<option value="'+o.toAscii()+'" title="'+o2+'">'+o2+'</option>';
					drop += '</select>';
					return drop;
				} else
					return data[prop];
			},
			selectionShow: function(inp, prop) {
				return ! new RegExp(','+prop+'(\\+\\d+)?,').test(inp.val());
			},
			selectionRemoved: function(elem) {
				var krokr = elem[0].id.match(/-([^-]+)$/);
				if (/^[ko]/.test(krokr[1])) {
					if (self.options.paper) {
						self.options.paperokr[krokr[1]+'sel'].remove();
						delete self.options.paperokr[krokr[1]+'sel'];
				} }
				elem.remove();
			},
			selectionAdded: function(elem, data) {
				if (data.okres!=='') elem.attr('title', data.okres);
				if (/^[cm]/.test(data.kod)) {
					elem.find('select').linkselect({
						yAxis: "top",
						offsetLeft: -11,
						init: function ($select, $input, $a, $container, $scrollable, $title, $ul) {
							this.origval = $select.attr('orig').replace(/\+\d+/, "");
							$container.css({marginTop: '-2px'});
							var a=1;
						},
						change: function (li, value, text) {
							var $i = $('input#as-values-obec');
							$i.val($i.val().replace(new RegExp(','+this.origval+'(\\+\\d+)?,'), ','+value+','));
						}
					});
				} else if (/^[ko]/.test(data.kod)) {
					if (self.options.paper) oznacVybranyOkresKraj(data.kod);
				}
			}
		};
		if (this.options.preFill) asOpt.preFill = this.options.preFill;
		if (this.options.lokalita) asOpt.startText = this.options.lokalita;
		if (this.options.lokalita2) asOpt.startAnotherText = this.options.lokalita2;
		$('input.inpobec2').autoSuggest('/auto/', asOpt);
		this.options.paper = undefined;
		this.options.paperokr = {};
		$('#mapokr').click(function(event) {
			if ($('#hlOkres').is(':visible')) {
				event.preventDefault();
				return;
			} else {
				$('#hlOkres').slideDown('slow', function() { $('.fancybox-close', $(this)).css('display', 'inline'); });
				$('#zadaniText').click(function(event) {
					if (event.target.id != 'zadaniText') return false;
				});
				$(document).one('click', function(event) {
					$('.fancybox-close', $('#hlOkres')).css('display', 'none');
					$('#hlOkres').slideUp('slow');
					$('#zadaniText').unbind('click');
					//$('#mapokr').click();
				});
			}
			if (!self.options.paper) self.options.paper = Raphael('hlOkresSvg', 580, 350);
			if ($('#hlOkres>div:last').html() == '') {

				$('#hlOkres>div:last').load('/okresy.htm', function() {
					var area = $('#hlOkresMap area').click(function(event) {
						if (this.noHref) {
							//$('#hlOkres').slideUp('slow');
						} else {
							var krokr = mapkahref(this);
							if (krokr) {
								var pData = {"value":krokr[4], "label":this.title, "kod":krokr[1], "okres":krokr[3]};
								$("#"+asOpt.asHtmlID).trigger("add_custom_item", pData);
							}
						}
						return false;
					});
					if (!$.browser.iPad) {
						area.mouseover(function(event) {
							if (this.href) {
								if (!self.options.paperokr[this.href]) {
									var krokr = mapkahref(this);
									var c = self.options.paper.path('M' + this.coords.replace(/, /g, 'L') + 'Z').attr({stroke: "#004287", 'stroke-width': 1});
									self.options.paperokr[krokr[1]] = c.glow({width:7, opacity: 0.7, color: "#000"});
									self.options.paperokr[krokr[1]].push(c);
									var b = c.getBBox();
									b.y = b.y < 18 ? 8 : b.y - 10;
									var f = {fill: "#006EDB", 'font-family': 'Verdana', 'font-weight': 'bold', 'font-style': 'normal', stroke: "#fff", 'stroke-width': 3, 'stroke-opacity': 0.9, 'font-size': 11, 'text-anchor': 'start'};
									c = self.options.paper.text(b.x-1, b.y, this.title).attr(f);
									var b2 = c.getBBox();
									var lim = RCZ_IE ? 568 : 578;
									if (b2.x+b2.width >= lim) {
										b.x = lim - b2.width;
										c.attr({x: b.x-1});
									}
									self.options.paperokr[krokr[1]].push(c);
									f['stroke-opacity'] = 0;
									c = self.options.paper.text(b.x, b.y, this.title).attr(f);
									self.options.paperokr[krokr[1]].push(c);
								}
								self.options.paperokr[krokr[1]].show().toFront();
							}
						}).mouseout(function(event) {
							if (this.href) {
								var krokr = mapkahref(this);
								if (self.options.paperokr[krokr[1]]) {
									self.options.paperokr[krokr[1]].hide();
									//self.options.paperokr[krokr[1]+'gl'].forEach();
							} }
						});
					}
					$('#as-selections-obec>li').each(function() {
						var krokr = this.id.match(/-([^-]+)$/);
						oznacVybranyOkresKraj(krokr[1]);
					});	
				});
			}
			return false;
		});
		$('#pokro1, #pokro2').click(function(event) {
			if ($('#pokrocile').is(':visible')) {
				$('#pokrocile').slideUp('slow');
			} else {
				$('#pokrocile').slideDown('slow');
			}
			return false;
		});
/*		var zix = 98;
		$('.pokrhled', '#pokrocile').hover(function(event) {
			$(this).toggleClass('bgF0').find('.multak').css('left', 10+$('label:first', $(this)).width()+'px').toggle();
//			$('.multak', this).show('fast');
//		}, function(event) {
//			$('.multak', this).hide('fast');
		}).IF(RCZ_IE7).each(function() {
			$(this).css('zIndex', zix--);
		});*/
		//$("#pokrocile select").chosen(); 
	},

	// Inheritance methods for jQuery (Aspect Oriented Programming)
	// Thanks to Daniel Wachsstock (Hacking at 0300, http://bililite.com/blog/)
	inheritance: function(protoclass) {
		$.extend(eval('$.ui.'+protoclass+'.prototype'), AOP);
	},

	divClick: function(event) { // klik na DIV => klik na 1. href
		if (event.target.tagName != 'A') {
			var href = $('a:first', $(this)).attr('href');
			if (href) window.location.href = href;
		}
	},

	bookmarkTitle: function(el) { // title pro bookmarky
		if (el.title == '')
			$(el).attr('title', function(index, attr) {
				return ($(this).hasClass('bookmarked')) ? 'Moje reality.cz - smazání nabídky ze seznamu oblíbených' : 'Moje reality.cz - přidání nabídky do seznamu oblíbených';
			});
	},
	bookmarkFancyPrepare: function() { // priprava pro bookmarky
		var self = this;
		self.bookmarkAjaxObject = {
			cache: false,
			url: self.bookaddress,
			processData: false,
			success: function(data, txt, xh) {
				$.fancybox(data, {
					hideOnContentClick: true,
					'onComplete': function(data) {
						self.bookmarkElement.title = '';
						self.bookmarkTitle(self.bookmarkElement);
						if ($("#rmunBMed").length>0) $(self.bookmarkElement).removeClass('bookmarked');
						if ($("#rmBMed").length>0) $(self.bookmarkElement).addClass('bookmarked');
						if ($("#rmError").length==0)
							setTimeout(function() { $.fancybox.close(); }, 2000);
					},
					'onClosed': function(data) {
						if (/moje-reality/.test(location.pathname) && !self.options.detail) {
							setTimeout(function() {
								var p = $(self.bookmarkElement).parents('div')[1];
								$(p).slideUp('slow', function() {
									$(p).remove;
									p = null;
								});
							}, 600);
						}
					}
				});
			}
		};
		$("#buttbookm").live("click", function() {
			self.bookmarkAjaxObject.url = self.bookaddress;
			$.ajax(self.bookmarkAjaxObject);
			return false;
		});
	},
	bookmarkFancy: function(selektor) { // bookmark nabidek ve vypisech
		if (this.options.mrprihl) {
			var self = this;
			self.bookaddress = null;
			$(selektor).each(function() {
				if (this.id != 'profilcreate' && !/#$/.test(this.href)) {
					$(this).click(function(event) {
						self.bookmarkElement = this;
						self.bookaddress = this.href;
						$.fancybox.showActivity();
						if ($(this).hasClass('bookmarked')) {
							$.fancybox({
								hideOnContentClick: false,
								titleShow: false,
								content: '<table cellspacing="0" class="frmbub"><tr><td><p>Opravdu chcete smazat nabídku<br />ze seznamu oblíbených?</p><p><input type="button" id="buttbookm" value="Ano" class="button butt50 mr20 ui-corner-all" /><input type="button" id="buttne" value="Ne" class="button butt50 ui-corner-all" /></p></td></tr></table>'
							});
							return false;
						} else {
							self.bookmarkAjaxObject.url = self.bookaddress;
							$.ajax(self.bookmarkAjaxObject);
						}
						return false;
					});
					self.bookmarkTitle(this);
				}
			});
		} else
			$(selektor).fancybox(this.options.mrlogfrm);
	},

	initInfoPopups: function(id, hideOnClick, skrol) { // fancybox pro info popupy
		$(id).attr('href', function(i, attr) {
			return attr+'popup/';
		}).fancybox({
			opacity: true,
			transitionIn: 'elastic',
			transitionOut: 'elastic',
			hideOnContentClick: hideOnClick,
			titleShow: false
		});
	},

	mrSmazatProfil: function($trg) { // smazání profilu MR
		var self = this;
		var hr = $trg.attr('href');
		var l = hr.match(/profil-(\d+)/)[1];
		$trg.click(function(event) {
			$.fancybox({
				hideOnContentClick: false,
				transitionIn: 'elastic',
				titleShow: false,
//		overlayOpacity : 0.7,
//		overlayColor : '#ccc',
				content: '<table cellspacing="0" class="frmbub"><tr><td><p>Skutečně chcete vymazat tento profil?<br />Vymazání je nevratné!</p><p><a href="'+hr+'" id="buttprsmaz'+l+'" class="button butt50 vab mr20 ui-corner-all">Ano</a><input type="button" id="buttne" value="Ne" class="button butt50 vab ui-corner-all" /></p></td></tr></table>',
				'onComplete': function(data) {
					if (!self.options.smazProf[l])
					$("#buttprsmaz"+l).fancybox({
						scrolling: 'no',
						hideOnContentClick: true,
						titleShow: false,
						'onComplete': function(data) {
							setTimeout(function() { $.fancybox.close(); }, 2000);
						},
						'onClosed': function(data) {
							var trid = /\/(profil-\d+)\//.exec(data[0].href);
							if (trid) {
								var $tr = $("tr#tr-"+trid[1]);
								if ($tr.length)
									setTimeout(function() {
										$tr.hide('slow', function() { $tr.remove; $tr = null; });
									}, 600);
							}
						}
					});
					self.options.smazProf[l] = true;
				}
			});
			return false;
		});

	},
	mrPoZalozeniProfilu: function(href) { // akce po založení/editaci profilu
		var a = window.location.href;
		if (href && !/\/profil-\d+\//.test(a)) {
			a = a.replace(/\/([^\/]*)$/, href+"$1");
		} else { // výpisy
			a = a.replace(/\/profil-\d+\//, href);
		}
		setTimeout(function() { window.location.href = a; }, 1000);
	},
	mrUpravitProfil: function($trg, z) { // edit profilu MR
		var self = this;
		var zalozit = z;
		var formid = '#'+(z ? 'zalozit' : 'ulozit');
		var href = $trg.fancybox({
			scrolling: 'no',
			hideOnContentClick: false,
			transitionIn: 'elastic',
			transitionOut: 'elastic',
			titleShow: false,
			'onComplete': function(data) {
				self.mrSmazatProfil($(formid+"mrprof a.buttdel"));
//							setTimeout(function() { $.fancybox.close(); }, 2000);
			},
			'onClosed': function(data) {
				if (zalozit) self.mrPoZalozeniProfilu(href);
			}
		}).attr('href');
		href = /(\/profil-\d+\/)/.exec(href);
		if (href) href = href[1];
		$(formid+"mrprof").live("submit", function() {
			$.fancybox.showActivity();
			$.ajax({
				type: "POST",
				cache: false,
				url: this.action,
				data: $(this).serializeArray(),
				error: function(data, txt, er) {
					alert(txt);
				},
				success: function(data, txt, xh) {
					if (/class="bublina"/.test(data)) {
						if (! /id="rmError"/.test(data)) {
							if (zalozit)
								self.mrPoZalozeniProfilu(href);
							else 
								setTimeout(function() { window.location.reload(true); }, 2000);
						}
						$.fancybox(data, { hideOnContentClick: true });
					} else {
						$.fancybox(data);
					}
				}
			});
			return false;
		});
	},
	fakeShadow: function() {
		if (RCZ_IE) {
			$('#telo>div:first>div:first')
				.removeClass("ui-drop-shadow-soft")
				.after('<div class="stin stin3"></div>')
				.after('<div class="stin stin2"></div>')
				.after('<div class="stin stin1"></div>')
				.next().css('opacity', 0.12)
				.next().css('opacity', 0.17)
				.next().css('opacity', 0.12);
		}
	},
	KtlgCena: function() {} // prazdna funkce kvuli maklerum

});

})(jQuery)

// //If you want to use it to subclass existing widgets:
//$.ui.widget.subclass('ui.slidersubcls', $.ui.slider.prototype);
//$.ui.slidersubcls.subclass('ui.myslider', {...});

/****************************
 * jQuery: Novice to Ninja, Overwriting Existing Functionality
 *
(function($) {
	var _trim = $.trim;
	$.extend({
		trim:function(text, clear) {
			if (clear) return text.replace(/\s+/g,'');
			return _trim.call(this, text);
		}
	});
	$.extend($.expr[':'], {
		abovethefold: function(el) { 
			return $(el).offset().top < $(window).scrollTop() + $(window).height(); 
		}
	});
	// usage: $('p:abovethefold').css('color', 'red');
})(jQuery);
 *
 *****************************/

/***************************** UI inheritance - sample
var autocomplete = $.ui.autocomplete;
var _initSource = autocomplete.prototype._initSource;
autocomplete.prototype._initSource = function() {
	// ...
	return _initSource.call( this );
};
 *****************************/

/***************************** Debug to console
	function debug(lbl, txt) {
    if (window.console && window.console.log)
      window.console.log(lbl + ': ' + txt);
  };
 */

/*****************************
 * obsolete
	if ($.browser.opera) {
		var head = document.getElementsByTagName('head')[0];			
		var styl = document.createElement('link');
		styl.rel = 'stylesheet';
		styl.type = 'text/css';
		styl.href = '/css/styl10opera.css';
		head.appendChild(styl);
	} else {
			DD_roundies.addRule('ul#hltabs li', '5px 5px 0px 0px', true);
			DD_roundies.addRule('#kolecko', '100px', true);
	}
*****************************/


