function showAuthForm() {
	document.write('<div id="auth_form" style="position:absolute;display:none">'+
'<div style="position:absolute;right:10px;top:5px"><a href=# title="Закрыть" onclick="$(\'#auth_form\').hide();return false;" style="text-decoration:none"><b>x</b></a></div>'+
'    <form action=http://move.su/login.php method="post">'+
'    <h2 class="auth">Вход на сайт</h2>'+
'    <p style="font-size:18px">Электр. почта:<br><input type="text" name="mail" class="log"></p>'+
'    <p style="font-size:18px">Пароль:<br><input type="password" name="pass" class="log"></p>'+
'    <div align="center"><input type="submit" class="subm" value="Войти"></div>'+
'    </form>'+
'    <a href="http://move.su/restorepass/">Восстановить пароль</a> | <a href="http://move.su/register/">Зарегистрироваться</a>'+
'    </form>'+
'</div>');
}
$.fn.droppy = function(options) {

  options = $.extend({speed: 250}, options || {});

  this.each(function() {

    var root = this, zIndex = 1000;

    function getSubnav(ele) {
      if (ele.nodeName.toLowerCase() == 'li') {
        var subnav = $('> ul', ele);
        return subnav.length ? subnav[0] : null;
      } else {
        return ele;
      }
    }

    function getActuator(ele) {
      if (ele.nodeName.toLowerCase() == 'ul') {
        return $(ele).parents('li')[0];
      } else {
        return ele;
      }
    }

    function hide() {
      var subnav = getSubnav(this);
      if (!subnav) return;
      $.data(subnav, 'cancelHide', false);
      setTimeout(function() {
        if (!$.data(subnav, 'cancelHide')) {
          $(subnav).slideUp(options.speed);
        }
      }, 50);
    }

    function show() {
      var subnav = getSubnav(this);
      if (!subnav) return;
      $.data(subnav, 'cancelHide', true);
      $(subnav).css({zIndex: zIndex++}).slideDown(options.speed);
      if (this.nodeName.toLowerCase() == 'ul') {
        var li = getActuator(this);
        $(li).addClass('hover');
        $('> a', li).addClass('hover');
      }
    }
	$('ul, li', this).click(show);
    $('ul', this).hover(show, function() {return true});
    $('li', this).hover(show, hide);
    $('li', this).hover(
      function() { $(this).addClass('hover'); $('> a', this).addClass('hover'); },
      function() { $(this).removeClass('hover'); $('> a', this).removeClass('hover'); }
    );

  });
};

var user_d = 1;
function loading_show(id) {
	$("#"+id).prepend("<div class=\"loading-overlay\"></div>");
	$("#"+id).prepend("<div class=\"loading\"><div>Загружаем…</div></div>");

	loading_set(id);

	$(window).resize(function() {
		loading_set(id);
	});
}
function bubbling_no(e) {
	e = bubbling_ie(e); /* for ie */
	if (!e.cancelBubble) e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
	return false;
}
function bounds(el) {
	var left = el.offsetLeft;
	var top = el.offsetTop;
	for (var parent = el.offsetParent; parent; parent = parent.offsetParent) {
		left += parent.offsetLeft;
		top += parent.offsetTop;
	}

	var offset = $(el).offset();
	left = offset.left;

	return {left: left, top: top+52, width: el.offsetWidth, height: el.offsetHeight};
}
function bubbling_ie(e) {
	if (!e) var e = window.event;
	return e;
}
var prethis, preel, preeff, prebubble;
function $_(n) {
	if(!n) return false;
	if(!document.getElementById(n)) return false;
	return document.getElementById(n)
}
function toggle_only(_this, el, eff) {
if ($_(el)) {
if (_this.className.indexOf("click-active") == -1) {
 $(_this).addClass("click-active");

 switch (eff) {
 case "fade":
 $("#"+el).fadeIn("fast");
 break;

 case "block":
 $("#"+el).css({ display:"block"});
 break;

 default:
 $("#"+el).slideDown("fast");
 }
 } else {
 toggle_hide(_this, el, eff);
 }
 }
 _this.blur();
}
function toggle_hide(_this, el, eff) {
    if (el=='rajon_list' || el=='region_list') $('select').css('visibility','visible');
	switch (eff) {
		case "fade":
			$("#"+el).fadeOut("fast");
			break;

		case "none":
			$("#"+el).css({ display:"none"});
			break;

		default:
			$("#"+el).slideUp("fast");
	}

	$(_this).removeClass("click-active");

	if (prebubble) prebubble.style.display = "none";
}

function toggle(e, _this, el, eff) {

	if (prethis && $_(preel) && prethis != _this) toggle_hide(prethis, preel, preeff);
	prethis = _this;
	preel = el;
	preeff = eff;
	bubbling_no(e);
	if ($_(el)) {
		if (_this.className.indexOf("click-active") == -1) {
			$(_this).addClass("click-active");

			switch (eff) {
				case "fade":
					$("#"+el).fadeIn("fast");
					break;

				default:
					$("#"+el).slideDown("fast");
			}

			$("#"+el).click(function(e) {
				bubbling_no(e);
			});

		} else {
			toggle_hide(_this, el, eff);
		}

		$(document).click(function() {
			toggle_hide(_this, el, eff);
		});
	}
	_this.blur();
}

function toggle_bubble(block, bubble) {
	block = block ? $_(block) : 0;
	prebubble = $_(bubble);
	if (block && bubble) {
		if (block.style.display == "none") prebubble.style.display = "block";
		else prebubble.style.display = "none";
	} else if (!block) {
		prebubble.style.display = "none";
	}
}

function toggle_form(e, _this, el, eff, shift, flag) {
	if ($_(preel) && preel != el) toggle_hide(prethis, preel, preeff);
    if (el=='rajon_list' || el=='region_list') $('select').css('visibility','hidden');
	prethis = _this;
	preel = el;
	preeff = eff;
	bubbling_no(e);
	if ($_(el)) {
		if ($_(el).style.display == "none") {
			$(_this).addClass("click-active");

			switch (eff) {
				case "fade":
					$("#"+el).fadeIn("fast");
					break;
                case "show":
                    $("#"+el).show();
					break;

				default:
					$("#"+el).slideDown("fast");
			}

			$("#"+el).click(function(e) {
				bubbling_no(e);
			});

		} else {
			//toggle_hide(_this, el, eff);
		}

		$_(el).style.top = (bounds(_this).top-(flag ? 52:0)) + "px";
		$_(el).style.left = ((shift ? bounds(_this).left + bounds(_this).width : bounds(_this).left)-(flag ? 52:0)) + "px";

		/*$(window).resize(function() {
			$_(el).style.top = (bounds(_this).top-(flag ? 52:0)) + "px";
			$_(el).style.left = ((shift ? bounds(_this).left + bounds(_this).width : bounds(_this).left)-(flag ? 52:0)) + "px";
		});*/

		$(document).click(function() {
			toggle_hide(_this, el, eff);
		});
	}
	_this.blur();
}
jQuery.fn.waitingJFrame = function () {
	// Overload this function in your code to place a waiting event
	// message, like : 	$(this).html("<b>loading...</b>");
    divLoading($(this).attr('id'));
}
function loading_set(id) {
	var w = $_(id).offsetWidth + "px";
	var h = $_(id).offsetHeight + "px";

	$("#"+id+" div.loading-overlay").css({ width:w, height:h });
}
function divLoading(id) {
    $("#"+id).prepend("<div class=\"loading-overlay\"></div>");
	$("#"+id).prepend("<div class=\"loading\"><div>Загружаем…</div></div>");

	loading_set(id);

	$(window).resize(function() {
		loading_set(id);
	});
}
function getnewavas(content) {
    eval("var newavas = "+content);
    for(var n = 0; n<newavas.length; n++) {
        var noexist = true;
        for (var l=0; l<photos.length;l++)
                if (photos[l][0] == newavas[n][0]) {
                    noexist = false;
                }

        if (noexist) {
            photos[photos.length] = newavas[n];
            var newdiv = $('<div class="user_thumbs" style="display:none" id="cr'+newavas[n][0]+'"><img src="/images/1/'+newavas[n][1]+'" class="thumb" big="/images/2/'+newavas[n][1]+'" cur_id="'+newavas[n][0]+'"></div>');
            newdiv.appendTo($('#thumbs'));
            newdiv.show("explode", { pieces: 9 }, 1000);
            //if ($_(preel)) toggle_hide(prethis, preel, preeff);
        }
    }
    if (newavas.length==1) {
        set_ava('#cr'+newavas[0][0]+' img');
        set_main(newavas[0][0]);
    }
    photos = newavas;
    thumbs();
}

function set_add_form() {
    $("#add_form").html('<div style="padding:7px 15px;"><form style="padding:0;margin:0;" action="/upload.php" method="post" id="upload_form_i" ><input type="file" name=image id=img class="btn" style="font-size:14px;margin-right:5px;font-family:Arial;background:#ADADAD;"><input type=button value=Caa?oceou  class="btn" onclick="uploadFile()"></form></div>');
}


function set_add_form1() {
    //$("#add_form").html('<div style="padding:7px 15px;"><form style="padding:0;margin:0;" action="/upload.php" method="post" id="upload_form_i" ><input type="file" name=image id=img class="btn" style="font-size:14px;margin-right:5px;font-family:Arial;background:#ADADAD;"><input type=button value=Caa?oceou  class="btn" onclick="uploadFile()"></form></div>');
    $('#add_form input[@type=file]').attr('value', '');
    $('#add_form .loading').remove();
    $('#add_form .loading-overlay').remove();
    $('#add_form div').show();
}

function uploadFile2() {

    $("#upload_form_i2").unbind("submit");
     $('#upload_form_i2').ajaxForm({
        beforeSubmit: function(a,f,o) {
            divLoading("add_form");
        },
        success: function(data) {
            $.get('/avas.php', getnewavas);
            $('#add_form').empty();
           var ndiv = $('<div style="padding:7px 15px;width:385px;text-align:center;color:#f90;display:none;font-size:14px"></div>').html(data);
            ndiv.appendTo("#add_form");
            ndiv.fadeIn("slow");
            window.setTimeout(function() {
                set_add_form();
		    }, 2000);
            $(document).click(function() {
                set_add_form();
		    });
        }
    });
    $("#upload_form_i2").submit();
};
function uploadFile() {

    $("#upload_form_i").unbind("submit");
     $('#upload_form_i').ajaxForm({
        beforeSubmit: function(a,f,o) {
            divLoading("add_form");
        },
        success: function(data) {
            $('#photos_list').loadJFrame('/photos_list.php');
            $('#add_form div').hide();
           var ndiv = $('<div style="padding:7px 15px;width:385px;text-align:center;color:#f90;display:none;font-size:14px"></div>').html(data);
            ndiv.appendTo("#add_form");
            ndiv.fadeIn("slow");
            window.setTimeout(function() {
				ndiv.remove();
                set_add_form1();
		    }, 2000);
        },
		error: function() {
			alert('Ошибка загрузки файла. Возможные причины: \nразмер файла превышает 2Мб; \nобрыв соединения в момент передачи файла.');
			set_add_form1();
		}
    });
    $("#upload_form_i").submit();
};
function set_ava(el) {
    $('img.thumb').each(function() {
                $(this).removeClass("thumb_active");
            });
            $(el).addClass("thumb_active");
            img = new Image();
			img.onload = function(){
				img.onload = null;
				$("div.photo img").attr("src", img.src);
			};
			img.src = $(el).attr("big");

}
function set_main(id) {
    var img = $('#cr'+id+' img');
    $('#cr'+main_ava_id+' img').removeClass("thumb_main");
    img.removeClass("thumb_active");
    $.get('/set_main.php?id='+id, function() {
    img.addClass("thumb_main");
    main_ava_id=id;
    });
}
function thumbs() {
    $('img.thumb').click(function(e) {
            set_ava(this);
            prev_id = current_id;
            current_id = $(this).attr("cur_id");
            toggle_form(e, this, 'ava_form');

    });
}
function del_ava() {
    $('#cr'+current_id).hide("explode", { pieces: 9 }, 1000);
    $.get('/del_ava.php?id='+current_id, function() {
    toggle_hide('#cr'+current_id+' img', 'ava_form');
    current_id = prev_id;
    $.get('/avas.php', getnewavas);

    if (photos.length > 2) {
        set_ava('#cr'+photos[0][0]+' img');
        if (current_id == main_ava_id && main_ava_id!=photos[0][0]) {set_main(photos[0][0]);}
    } else if (photos.length > 1) {
        set_ava('#cr'+photos[1][0]+' img');
        if (current_id == main_ava_id) {set_main(photos[1][0]);}
    } else {$("div.photo img").attr("src", '/images/empty_profile.jpg');main_ava_id=0;}

    });
}


function main_ava() {
    set_main(current_id);
}
function previewItem(url, title) {
    $('#itempreview .title').html(title);
    $('#itempreview').show("slow");
    $('#itempreview .cont1').loadJFrame(url, function() {$('#itempreview .cont').jScrollPane({showArrows:true});});
}


function tounpublic(el, from) {
    var access = true;
    if (from != -1) {
        access = confirm('Вы уверены, что хотите перенести данное объявление в неопубликованное?');
    }
    if (access)
    $.get('/tounpublic.php?from='+from+'&id='+el, function(data) {
        if (data==1 || data==0) {
            var div = $('#item_'+el);
            var width=div.outerWidth();
            var height=div.outerHeight();

            div.css({
                'width':width+'px',
                'height':height-10+'px'
            });
            div.hide("highlight", {  }, 1000, function() {
                if (data==0) $('#itemslist').html('<div class="noedit">Объявлений не обнаружено</div>');
            });
        } else alert('Ошибка: '+data+'! Повторите попытку. Если ошибка возникнет вновь, свяжитесь с тех.поддержкой - move@move.su');
		$('#linkCont').load('/linkcount.php', function() {
			var fr = from;
			if (fr!=-1)
				$('#pub'+useritems).removeClass("this").addClass("title");
			else $('#pub_1').removeClass("this").addClass("title");
		});
    });
}
function todel(el, from) {
    var access = true;
    access = confirm('Вы уверены, что хотите УДАЛИТЬ данное объявление?');

    if (access)
    $.get('/tounpublic.php?from='+from+'&id='+el+'&del', function(data) {
        if (data==1 || data==0) {
            var div = $('#item_'+el);
            var width=div.outerWidth();
            var height=div.outerHeight();

            div.css({
                'width':width+'px',
                'height':height-10+'px'
            });
            div.hide("highlight", {  }, 1000, function() {
                if (data==0) $('#itemslist').html('<div class="noedit">Объявлений не обнаружено</div>');
            });
        } else alert('Ошибка: '+data+'! Повторите попытку. Если ошибка возникнет вновь, свяжитесь с тех.поддержкой - move@move.su');
		$('#linkCont').load('/linkcount.php', function() {
			var fr = from;
			if (fr!=-1)
				$('#pub'+useritems).removeClass("this").addClass("title");
			else $('#pub_1').removeClass("this").addClass("title");
		});
    });
}
$(document).ready(function() {
    thumbs();
});
function checkerrors() {
	var error = '';
	$('#c_name').removeClass('error');
	$('#c_mail').removeClass('error');
	var name = $.trim($('#c_name').attr('value'));
	if (name.length < 3 || name.length > 30) {
		error += 'Имя должно содержать от 3 до 30 символов\n';
		$('#c_name').addClass('error');
	}

	var mail = $.trim($('#c_mail').attr('value'));
	if (mail.length < 3 || mail.length > 40) {
		error+= 'Эл. почта должна содержать от 3 до 40 символов\n';
		$('#c_mail').addClass('error');
	}

	if (!( /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(mail))) {
		error+='Эл. почта содержит неверное значение';
		$('#c_mail').addClass('error');
	}

	if (error == '') {
	} else {
		alert(error);
		return false;
	}

return true;
}
var search_vars = {
    rooms: '',
    region_o: '1',
    rajon_text: 'возле любой станции метро',
    region: '',
    region_count: 0
};
var user_d = 0;
var rajon_position = 0;

function addToLi(_this, text, pripiska) {
    var id=($(_this).parent().parent().parent().parent().parent().parent().parent().attr("id"));
        toggle_hide(_this, id);
        id = id.replace('_list','');
        $('#'+id+'_select').html($(_this).html());
        $('#'+id+'_select').attr("value", $(_this).attr("value"));
}

var currentSearchHandler = null;
var maxHandler = 0;
var chooseReg = null;
var rajon_id = 0;
var singleSelect = false;
var note_region_o = 'везде';
var note_place = 'везде';
var loadSelectPlaces = false;

function loadNote(pid, chosereg) {
	if (typeof(chosereg) == 'undefined') chosereg = true;

	$('#choseplace').html ('<div class="note">Загружаю список...</div>');
	if (chosereg) $('#chosereg').html ('<div class="note">Загружаю список...</div>');

	$('#choseplace').load('/ajax/reg_places.php?pid='+pid, function() {
		if (chosereg)
			$('#chosereg').load('/ajax/regions.php?pid='+pid, function() {
				setActionToRegNotes();
			});
		else {
			setActionToRegNotes(chosereg);
		}
	});
}

function setActionToRegNotes(chosereg) {
	if (typeof(chosereg) == 'undefined') chosereg = true;

	$('#chosereg .note, #choseplace .note').hover(function() {
		$('#chosereg .note, #choseplace .note').removeClass('notehover');
		$(this).addClass('notehover');
	}, function() {
		$(this).removeClass('notehover');
	})

	if (chosereg)
		$('#chosereg .note').click(function() {
			firstFormShow = true;
			$('.note').removeClass('noteselected');
			$(this).addClass('noteselected');
			var reg_id = $(this).attr('reg_id');
			chooseReg = reg_id;
			setSelected($(this).attr('title'), (singleSelect?'не указано':'везде'));
			loadNote(reg_id, ($(this).attr('reg')==1?true:false));
		});

	$('#choseplace .note').click(function() {
		firstFormShow = true;
		if (!singleSelect) {
			if($(this).is('.noteselected'))
				$(this).removeClass('noteselected');
			else $(this).addClass('noteselected');
		} else {
			$('#choseplace .noteselected').removeClass('noteselected');
			$(this).addClass('noteselected');
		}

		getSelectedNotesAndSetSelected();
	});
}

function getSelectedNotesAndSetSelected() {
	var num = 0;
	var selectedPlace = (singleSelect?'не указано':'везде');
	$('#choseplace .noteselected').each(function(){
		selectedPlace = $(this).html();
		num++;
	});

	if (num > 1) setSelected(false, 'в '+num+' районах');
	else setSelected(false, selectedPlace);
}

function setSelected(_note_region_o, _note_place) {
	if (_note_region_o)	$('#note_region_o').html(_note_region_o);
	if (_note_place)	$('#note_place').html(_note_place);
}

function setActionsForSearchNotes() {
	$('#note_tips .note').hover(function() {
		if (!$(this).is('notehover')) {
			$('#note_tips .note').removeClass('notehover');
			$(this).addClass('notehover');
			currentSearchHandler = $(this).attr('handler');
		}
	}, function() {
	});

	$('#note_tips .note').click(function() {
		setSearchResult();
	});
}

function showTip(ev) {
	var keyword = $('#note_keyword').attr('value');
	if (keyword == 'введите местоположение')
		keyword = '';

	if (keyword.length > 2) {
		$('#note_tips').show();

		var ARRUP = 38;
		var ARRDN = 40;
		var ESC   = 27;
		var ENTER = 13;

		var key = (window.event) ? window.event.keyCode : ev.keyCode;

		switch (key) {
			case ESC:
				$('#note_tips').hide();
			break;

			case ARRUP:
				currentSearchHandler--;
				if (currentSearchHandler==-1) currentSearchHandler = 0;
				$('#note_tips .note').removeClass('notehover');
				$('#note_tips div[@handler="'+currentSearchHandler+'"]').addClass('notehover');
			break;

			case ARRDN:
				currentSearchHandler++;
				if (currentSearchHandler>maxHandler) currentSearchHandler = maxHandler;
				$('#note_tips .note').removeClass('notehover');
				$('#note_tips div[@handler="'+currentSearchHandler+'"]').addClass('notehover');
			break;

			case ENTER:
				setSearchResult();
			break;

			default:
				keyword = encodeURI(keyword);
				$('#note_tips').load('/ajax/note_tips.php?keyword='+keyword);
			break;
		}
	}
	else $('#note_tips').hide();
}

function setSearchResult() {
	var el = $('#note_tips div[@handler="'+currentSearchHandler+'"]');
	var searchId = el.attr('searchId');
	var searchPId = el.attr('searchPId');

	$('#choseplace').html ('<div class="note">Загружаю список...</div>');
	$('#chosereg').html ('<div class="note">Загружаю список...</div>');

	$('#choseplace').load('/ajax/reg_places.php?pid='+searchPId, function() {
		$('#chosereg').load('/ajax/regions.php?pid='+searchPId, function() {
			setActionToRegNotes();
			$('#chosereg .note[@reg_id="'+searchPId+'"]').addClass('noteselected');
			$('#choseplace .note[@noteId="'+searchId+'"]').addClass('noteselected');
			chooseReg = searchPId;
			setSelected($('#chosereg .note[@reg_id="'+searchPId+'"]').attr('title'), (singleSelect?'не указано':'везде'));
			getSelectedNotesAndSetSelected();
			$('#note_tips').hide();
		});
	});
}

function setChooseResults() {
	if (!singleSelect) {
		search_vars.region_o = chooseReg;
		search_vars.region = '';
		$('#choseplace .noteselected').each(function(){
			selectedId = $(this).attr('noteId');
			search_vars.region += '_'+selectedId+'_';
		});

		var searchString = $('#note_region_o').html()+' - '+$('#note_place').html();
		$('#select_text').html(searchString);
	} else {
		var title = 'не указано';
		   $('#choseplace .noteselected').each(function(){
			selectedId = $(this).attr('noteId');
			title = $(this).html();

		});
		$('#f_rajon').attr('value', selectedId);
		$('#rajon_1').html(title);
	}

}

function showSearchForm(_this) {

if (!firstFormShow) {
	setResultsForSearchForm();
	}
	var mappos = {};
	mappos['top'] = bounds(_this).top;
	if (singleSelect) {
		mappos['top'] = 550;
		$('select').css('visibility', 'hidden');
	}
	$('#rajon_list').css({top: (mappos['top']-230)+'px'}).show();
}


function s_t (id, logo) {
	$img = new Image();
	$img.src = "http://move.su/images/small/"+logo;

	$("body").append("<div class=\'sp_t\' id=\'sp_t_"+id+"\' style=\'display:none\'><img src=http://move.su/images/small/"+logo+" border=0></div>");
	var tooltip = $("#sp_t_"+id);
	$("#spec_"+id).mouseover(function() {
		tooltip.show()
	}).mousemove(function(kmouse){
		tooltip.css({left:kmouse.pageX+15, top:kmouse.pageY+15});
	}).mouseout(function(){
		tooltip.hide();
	});
}
function hideRooms() {
	$('#roomz').hide();$('.r_check').removeClass('r_check').addClass('digs').children().addClass('this');search_vars.rooms='';
}
function hideRoad() {
	$('#road_select').attr('value', '0').html('Любое');
	$('#road').hide();	
}
function showForForm() {
 document.write(
'<div class="framed" style="position:absolute;display:none" id="action_list">'+
'        <div class="f_tt"></div>'+
'        <div class="f_r"><div class="f_rr"></div>'+
'            <div class="f_b"><div class="f_bb"><div></div></div>'+
'                <div class="f_l"><div class="f_ll"><div></div></div>'+
'                    <div class="f_c">'+
'                       <ul class="select">'+
'                           <li><span class="this" value="0">купить</span></li>'+
'                           <li><span class="this" value="1">продать</span></li>'+
'                            <li><span class="this" value="2">сдать</span></li>'+
'                           <li><span class="this" value="3">арендовать</span></li>'+
'                       </ul>'+
'                    </div>'+
'                </div>'+
'            </div>'+
'        </div>'+
'    </div>'+
'<div class="framed" style="position:absolute;display:none" id="type_list">'+
'        <div class="f_tt"></div>'+
'        <div class="f_r"><div class="f_rr"></div>'+
'            <div class="f_b"><div class="f_bb"><div></div></div>'+
'                <div class="f_l"><div class="f_ll"><div></div></div>'+
'                    <div class="f_c">'+
'                       <ul class="select">'+
'                           <li><span class="this" value="1" onclick="$(\'#roomz\').show();hideRoad();">квартиру</span></li>'+
'                           <li><span class="this" value="2" onclick="hideRooms();$(\'#road\').show();">дом, дачу</span></li>'+
'                            <li><span class="this" value="3" onclick="hideRooms();$(\'#road\').show();">земельный участок</span></li>'+
'                           <li><span class="this" value="4" onclick="hideRooms();hideRoad();">коммерческую недвижимость</span></li>'+
'                            <li><span class="this" value="5" onclick="hideRooms();hideRoad();">гараж</span></li>'+
'                            <li><span class="this" value="6" onclick="hideRooms();$(\'#road\').show();">элитную недвижимость</span></li>'+
'                       </ul>'+
'                    </div>'+
'                </div>'+
'            </div>'+
'        </div>'+
'    </div>'+
'<div class="framed" style="position:absolute;display:none" id="valuta_list">'+
'        <div class="f_tt"></div>'+
'        <div class="f_r"><div class="f_rr"></div>'+
'            <div class="f_b"><div class="f_bb"><div></div></div>'+
'                <div class="f_l"><div class="f_ll"><div></div></div>'+
'                    <div class="f_c">'+
'                       <ul class="select">'+
'                           <li><span class="this" value="2">рублей</span></li>'+
'                           <li><span class="this" value="0">долларов</span></li>'+
'                            <li><span class="this" value="1">евро</span></li>'+
'                       </ul>'+
'                    </div>'+
'                </div>'+
'            </div>'+
'        </div>'+
'    </div>'+
'<div class="framed" style="position:absolute;display:none;width:400px" id="road_list">'+
'        <div class="f_tt"></div>'+
'        <div class="f_r"><div class="f_rr"></div>'+
'            <div class="f_b"><div class="f_bb"><div></div></div>'+
'                <div class="f_l"><div class="f_ll"><div></div></div>'+
'                    <div class="f_c">'+
'                       <ul class="select">'+
'                           <li style="float:left;width:40%"><span class="this" value="0">Любое</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="1">Алтуфьевское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="2">Боровское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="3">Варшавское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="4">Волоколамское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="5">Горьковское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="6">Дмитровское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="7">Домодедовское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="8">Егорьевское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="9">Ильинское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="10">Казанское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="11">Калужское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="12">Каширское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="13">Киевское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="14">Куркинское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="15">Ленинградское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="16">Минское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="17">Можайское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="18">Ново-Рижское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="19">Ново-Рязанское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="20">Носовихинское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="21">Осташковское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="22">Пятницкое</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="23">Рогачевское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="24">Рублево-Успенское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="25">Рязанское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="26">Симферопольское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="27">Сколковское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="28">Щелковское</span></li>'+
'                           <li style="float:left;width:40%"><span class="this" value="29">Ярославское</span></li>'+
'                       </ul><br clear="both"'+
'                    </div>'+
'                </div>'+
'            </div>'+
'        </div>'+
'    </div>'
);
}
/*
 * jQuery Form Plugin
 * version: 2.16 (17-OCT-2008)
 * @requires jQuery v1.2.2 or later
 *
 * Examples and documentation at: http://malsup.com/jquery/form/
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Revision: $Id$
 */
;(function($) {

/*
    Usage Note:
    -----------
    Do not use both ajaxSubmit and ajaxForm on the same form.  These
    functions are intended to be exclusive.  Use ajaxSubmit if you want
    to bind your own submit handler to the form.  For example,

    $(document).ready(function() {
        $('#myForm').bind('submit', function() {
            $(this).ajaxSubmit({
                target: '#output'
            });
            return false; // <-- important!
        });
    });

    Use ajaxForm when you want the plugin to manage all the event binding
    for you.  For example,

    $(document).ready(function() {
        $('#myForm').ajaxForm({
            target: '#output'
        });
    });

    When using ajaxForm, the ajaxSubmit function will be invoked for you
    at the appropriate time.
*/

/**
 * ajaxSubmit() provides a mechanism for immediately submitting
 * an HTML form using AJAX.
 */
$.fn.ajaxSubmit = function(options) {
    // fast fail if nothing selected (http://dev.jquery.com/ticket/2752)
    if (!this.length) {
        log('ajaxSubmit: skipping submit process - no element selected');
        return this;
    }

    if (typeof options == 'function')
        options = { success: options };

    options = $.extend({
        url:  this.attr('action') || window.location.toString(),
        type: this.attr('method') || 'GET'
    }, options || {});

    // hook for manipulating the form data before it is extracted;
    // convenient for use with rich editors like tinyMCE or FCKEditor
    var veto = {};
    this.trigger('form-pre-serialize', [this, options, veto]);
    if (veto.veto) {
        log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');
        return this;
   }

    var a = this.formToArray(options.semantic);
    if (options.data) {
        options.extraData = options.data;
        for (var n in options.data) {
          if(options.data[n] instanceof Array) {
            for (var k in options.data[n])
              a.push( { name: n, value: options.data[n][k] } )
          }
          else
             a.push( { name: n, value: options.data[n] } );
        }
    }

    // give pre-submit callback an opportunity to abort the submit
    if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) {
        log('ajaxSubmit: submit aborted via beforeSubmit callback');
        return this;
    }

    // fire vetoable 'validate' event
    this.trigger('form-submit-validate', [a, this, options, veto]);
    if (veto.veto) {
        log('ajaxSubmit: submit vetoed via form-submit-validate trigger');
        return this;
    }

    var q = $.param(a);

    if (options.type.toUpperCase() == 'GET') {
        options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
        options.data = null;  // data is null for 'get'
    }
    else
        options.data = q; // data is the query string for 'post'

    var $form = this, callbacks = [];
    if (options.resetForm) callbacks.push(function() { $form.resetForm(); });
    if (options.clearForm) callbacks.push(function() { $form.clearForm(); });

    // perform a load on the target only if dataType is not provided
    if (!options.dataType && options.target) {
        var oldSuccess = options.success || function(){};
        callbacks.push(function(data) {
            $(options.target).html(data).each(oldSuccess, arguments);
        });
    }
    else if (options.success)
        callbacks.push(options.success);

    options.success = function(data, status) {
        for (var i=0, max=callbacks.length; i < max; i++)
            callbacks[i].apply(options, [data, status, $form]);
    };

    // are there files to upload?
    var files = $('input:file', this).fieldValue();
    var found = false;
    for (var j=0; j < files.length; j++)
        if (files[j])
            found = true;

    // options.iframe allows user to force iframe mode
   if (options.iframe || found) {
       // hack to fix Safari hang (thanks to Tim Molendijk for this)
       // see:  http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d
       if ($.browser.safari && options.closeKeepAlive)
           $.get(options.closeKeepAlive, fileUpload);
       else
           fileUpload();
       }
   else
       $.ajax(options);

    // fire 'notify' event
    this.trigger('form-submit-notify', [this, options]);
    return this;


    // private function for handling file uploads (hat tip to YAHOO!)
    function fileUpload() {
        var form = $form[0];

        if ($(':input[@name=submit]', form).length) {
            alert('Error: Form elements must not be named "submit".');
            return;
        }

        var opts = $.extend({}, $.ajaxSettings, options);
		var s = jQuery.extend(true, {}, $.extend(true, {}, $.ajaxSettings), opts);

        var id = 'jqFormIO' + (new Date().getTime());
        var $io = $('<iframe id="' + id + '" name="' + id + '" />');
        var io = $io[0];

        if ($.browser.msie || $.browser.opera)
            io.src = 'javascript:false;document.write("");';
        $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });

        var xhr = { // mock object
            aborted: 0,
            responseText: null,
            responseXML: null,
            status: 0,
            statusText: 'n/a',
            getAllResponseHeaders: function() {},
            getResponseHeader: function() {},
            setRequestHeader: function() {},
            abort: function() {
                this.aborted = 1;
                $io.attr('src','about:blank'); // abort op in progress
            }
        };

        var g = opts.global;
        // trigger ajax global events so that activity/block indicators work like normal
        if (g && ! $.active++) $.event.trigger("ajaxStart");
        if (g) $.event.trigger("ajaxSend", [xhr, opts]);

		if (s.beforeSend && s.beforeSend(xhr, s) === false) {
			s.global && jQuery.active--;
			return;
        }
        if (xhr.aborted)
            return;

        var cbInvoked = 0;
        var timedOut = 0;

        // add submitting element to data if we know it
        var sub = form.clk;
        if (sub) {
            var n = sub.name;
            if (n && !sub.disabled) {
                options.extraData = options.extraData || {};
                options.extraData[n] = sub.value;
                if (sub.type == "image") {
                    options.extraData[name+'.x'] = form.clk_x;
                    options.extraData[name+'.y'] = form.clk_y;
                }
            }
        }

        // take a breath so that pending repaints get some cpu time before the upload starts
        setTimeout(function() {
            // make sure form attrs are set
            var t = $form.attr('target'), a = $form.attr('action');
            $form.attr({
                target:   id,
                method:   'POST',
                action:   opts.url
            });

            // ie borks in some cases when setting encoding
            if (! options.skipEncodingOverride) {
                $form.attr({
                    encoding: 'multipart/form-data',
                    enctype:  'multipart/form-data'
                });
            }

            // support timout
            if (opts.timeout)
                setTimeout(function() { timedOut = true; cb(); }, opts.timeout);

            // add "extra" data to form if provided in options
            var extraInputs = [];
            try {
                if (options.extraData)
                    for (var n in options.extraData)
                        extraInputs.push(
                            $('<input type="hidden" name="'+n+'" value="'+options.extraData[n]+'" />')
                                .appendTo(form)[0]);

                // add iframe to doc and submit the form
                $io.appendTo('body');
                io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
                form.submit();
            }
            finally {
                // reset attrs and remove "extra" input elements
                $form.attr('action', a);
                t ? $form.attr('target', t) : $form.removeAttr('target');
                $(extraInputs).remove();
            }
        }, 10);

        function cb() {
            if (cbInvoked++) return;

            io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);

            var operaHack = 0;
            var ok = true;
            try {
                if (timedOut) throw 'timeout';
                // extract the server response from the iframe
                var data, doc;

                doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;

                if (doc.body == null && !operaHack && $.browser.opera) {
                    // In Opera 9.2.x the iframe DOM is not always traversable when
                    // the onload callback fires so we give Opera 100ms to right itself
                    operaHack = 1;
                    cbInvoked--;
                    setTimeout(cb, 100);
                    return;
                }

                xhr.responseText = doc.body ? doc.body.innerHTML : null;
                xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
                xhr.getResponseHeader = function(header){
                    var headers = {'content-type': opts.dataType};
                    return headers[header];
                };

                if (opts.dataType == 'json' || opts.dataType == 'script') {
                    var ta = doc.getElementsByTagName('textarea')[0];
                    xhr.responseText = ta ? ta.value : xhr.responseText;
                }
                else if (opts.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) {
                    xhr.responseXML = toXml(xhr.responseText);
                }
                data = $.httpData(xhr, opts.dataType);
            }
            catch(e){
                ok = false;
                $.handleError(opts, xhr, 'error', e);
            }

            // ordering of these callbacks/triggers is odd, but that's how $.ajax does it
            if (ok) {
                opts.success(data, 'success');
                if (g) $.event.trigger("ajaxSuccess", [xhr, opts]);
            }
            if (g) $.event.trigger("ajaxComplete", [xhr, opts]);
            if (g && ! --$.active) $.event.trigger("ajaxStop");
            if (opts.complete) opts.complete(xhr, ok ? 'success' : 'error');

            // clean up
            setTimeout(function() {
                $io.remove();
                xhr.responseXML = null;
            }, 100);
        };

        function toXml(s, doc) {
            if (window.ActiveXObject) {
                doc = new ActiveXObject('Microsoft.XMLDOM');
                doc.async = 'false';
                doc.loadXML(s);
            }
            else
                doc = (new DOMParser()).parseFromString(s, 'text/xml');
            return (doc && doc.documentElement && doc.documentElement.tagName != 'parsererror') ? doc : null;
        };
    };
};

/**
 * ajaxForm() provides a mechanism for fully automating form submission.
 *
 * The advantages of using this method instead of ajaxSubmit() are:
 *
 * 1: This method will include coordinates for <input type="image" /> elements (if the element
 *    is used to submit the form).
 * 2. This method will include the submit element's name/value data (for the element that was
 *    used to submit the form).
 * 3. This method binds the submit() method to the form for you.
 *
 * The options argument for ajaxForm works exactly as it does for ajaxSubmit.  ajaxForm merely
 * passes the options argument along after properly binding events for submit elements and
 * the form itself.
 */
$.fn.ajaxForm = function(options) {
    return this.ajaxFormUnbind().bind('submit.form-plugin',function() {
        $(this).ajaxSubmit(options);
        return false;
    }).each(function() {
        // store options in hash
        $(":submit,input:image", this).bind('click.form-plugin',function(e) {
            var form = this.form;
            form.clk = this;
            if (this.type == 'image') {
                if (e.offsetX != undefined) {
                    form.clk_x = e.offsetX;
                    form.clk_y = e.offsetY;
                } else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin
                    var offset = $(this).offset();
                    form.clk_x = e.pageX - offset.left;
                    form.clk_y = e.pageY - offset.top;
                } else {
                    form.clk_x = e.pageX - this.offsetLeft;
                    form.clk_y = e.pageY - this.offsetTop;
                }
            }
            // clear form vars
            setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 10);
        });
    });
};

// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm
$.fn.ajaxFormUnbind = function() {
    this.unbind('submit.form-plugin');
    return this.each(function() {
        $(":submit,input:image", this).unbind('click.form-plugin');
    });

};

/**
 * formToArray() gathers form element data into an array of objects that can
 * be passed to any of the following ajax functions: $.get, $.post, or load.
 * Each object in the array has both a 'name' and 'value' property.  An example of
 * an array for a simple login form might be:
 *
 * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
 *
 * It is this array that is passed to pre-submit callback functions provided to the
 * ajaxSubmit() and ajaxForm() methods.
 */
$.fn.formToArray = function(semantic) {
    var a = [];
    if (this.length == 0) return a;

    var form = this[0];
    var els = semantic ? form.getElementsByTagName('*') : form.elements;
    if (!els) return a;
    for(var i=0, max=els.length; i < max; i++) {
        var el = els[i];
        var n = el.name;
        if (!n) continue;

        if (semantic && form.clk && el.type == "image") {
            // handle image inputs on the fly when semantic == true
            if(!el.disabled && form.clk == el)
                a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
            continue;
        }

        var v = $.fieldValue(el, true);
        if (v && v.constructor == Array) {
            for(var j=0, jmax=v.length; j < jmax; j++)
                a.push({name: n, value: v[j]});
        }
        else if (v !== null && typeof v != 'undefined')
            a.push({name: n, value: v});
    }

    if (!semantic && form.clk) {
        // input type=='image' are not found in elements array! handle them here
        var inputs = form.getElementsByTagName("input");
        for(var i=0, max=inputs.length; i < max; i++) {
            var input = inputs[i];
            var n = input.name;
            if(n && !input.disabled && input.type == "image" && form.clk == input)
                a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
        }
    }
    return a;
};

/**
 * Serializes form data into a 'submittable' string. This method will return a string
 * in the format: name1=value1&amp;name2=value2
 */
$.fn.formSerialize = function(semantic) {
    //hand off to jQuery.param for proper encoding
    return $.param(this.formToArray(semantic));
};

/**
 * Serializes all field elements in the jQuery object into a query string.
 * This method will return a string in the format: name1=value1&amp;name2=value2
 */
$.fn.fieldSerialize = function(successful) {
    var a = [];
    this.each(function() {
        var n = this.name;
        if (!n) return;
        var v = $.fieldValue(this, successful);
        if (v && v.constructor == Array) {
            for (var i=0,max=v.length; i < max; i++)
                a.push({name: n, value: v[i]});
        }
        else if (v !== null && typeof v != 'undefined')
            a.push({name: this.name, value: v});
    });
    //hand off to jQuery.param for proper encoding
    return $.param(a);
};

/**
 * Returns the value(s) of the element in the matched set.  For example, consider the following form:
 *
 *  <form><fieldset>
 *      <input name="A" type="text" />
 *      <input name="A" type="text" />
 *      <input name="B" type="checkbox" value="B1" />
 *      <input name="B" type="checkbox" value="B2"/>
 *      <input name="C" type="radio" value="C1" />
 *      <input name="C" type="radio" value="C2" />
 *  </fieldset></form>
 *
 *  var v = $(':text').fieldValue();
 *  // if no values are entered into the text inputs
 *  v == ['','']
 *  // if values entered into the text inputs are 'foo' and 'bar'
 *  v == ['foo','bar']
 *
 *  var v = $(':checkbox').fieldValue();
 *  // if neither checkbox is checked
 *  v === undefined
 *  // if both checkboxes are checked
 *  v == ['B1', 'B2']
 *
 *  var v = $(':radio').fieldValue();
 *  // if neither radio is checked
 *  v === undefined
 *  // if first radio is checked
 *  v == ['C1']
 *
 * The successful argument controls whether or not the field element must be 'successful'
 * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls).
 * The default value of the successful argument is true.  If this value is false the value(s)
 * for each element is returned.
 *
 * Note: This method *always* returns an array.  If no valid value can be determined the
 *       array will be empty, otherwise it will contain one or more values.
 */
$.fn.fieldValue = function(successful) {
    for (var val=[], i=0, max=this.length; i < max; i++) {
        var el = this[i];
        var v = $.fieldValue(el, successful);
        if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length))
            continue;
        v.constructor == Array ? $.merge(val, v) : val.push(v);
    }
    return val;
};

/**
 * Returns the value of the field element.
 */
$.fieldValue = function(el, successful) {
    var n = el.name, t = el.type, tag = el.tagName.toLowerCase();
    if (typeof successful == 'undefined') successful = true;

    if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||
        (t == 'checkbox' || t == 'radio') && !el.checked ||
        (t == 'submit' || t == 'image') && el.form && el.form.clk != el ||
        tag == 'select' && el.selectedIndex == -1))
            return null;

    if (tag == 'select') {
        var index = el.selectedIndex;
        if (index < 0) return null;
        var a = [], ops = el.options;
        var one = (t == 'select-one');
        var max = (one ? index+1 : ops.length);
        for(var i=(one ? index : 0); i < max; i++) {
            var op = ops[i];
            if (op.selected) {
                // extra pain for IE...
                var v = $.browser.msie && !(op.attributes['value'].specified) ? op.text : op.value;
                if (one) return v;
                a.push(v);
            }
        }
        return a;
    }
    return el.value;
};

/**
 * Clears the form data.  Takes the following actions on the form's input fields:
 *  - input text fields will have their 'value' property set to the empty string
 *  - select elements will have their 'selectedIndex' property set to -1
 *  - checkbox and radio inputs will have their 'checked' property set to false
 *  - inputs of type submit, button, reset, and hidden will *not* be effected
 *  - button elements will *not* be effected
 */
$.fn.clearForm = function() {
    return this.each(function() {
        $('input,select,textarea', this).clearFields();
    });
};

/**
 * Clears the selected form elements.
 */
$.fn.clearFields = $.fn.clearInputs = function() {
    return this.each(function() {
        var t = this.type, tag = this.tagName.toLowerCase();
        if (t == 'text' || t == 'password' || tag == 'textarea')
            this.value = '';
        else if (t == 'checkbox' || t == 'radio')
            this.checked = false;
        else if (tag == 'select')
            this.selectedIndex = -1;
    });
};

/**
 * Resets the form data.  Causes all form elements to be reset to their original value.
 */
$.fn.resetForm = function() {
    return this.each(function() {
        // guard against an input with the name of 'reset'
        // note that IE reports the reset function as an 'object'
        if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType))
            this.reset();
    });
};

/**
 * Enables or disables any matching elements.
 */
$.fn.enable = function(b) {
    if (b == undefined) b = true;
    return this.each(function() {
        this.disabled = !b
    });
};

/**
 * Checks/unchecks any matching checkboxes or radio buttons and
 * selects/deselects and matching option elements.
 */
$.fn.selected = function(select) {
    if (select == undefined) select = true;
    return this.each(function() {
        var t = this.type;
        if (t == 'checkbox' || t == 'radio')
            this.checked = select;
        else if (this.tagName.toLowerCase() == 'option') {
            var $sel = $(this).parent('select');
            if (select && $sel[0] && $sel[0].type == 'select-one') {
                // deselect all other options
                $sel.find('option').selected(false);
            }
            this.selected = select;
        }
    });
};

// helper fn for console logging
// set $.fn.ajaxSubmit.debug to true to enable debug logging
function log() {
    if ($.fn.ajaxSubmit.debug && window.console && window.console.log)
        window.console.log('[jquery.form] ' + Array.prototype.join.call(arguments,''));
};

})(jQuery);
var editcanvas;
var edittoolbar;
var btns = new Array();
var open_tags = new Array();
var dir = "http://move.su/images/i/";

function btn(id, btn_name, btn_title, tag_open, tag_close, btn_type) {
	this.id = id;
	this.btn_name = btn_name;
	this.btn_title = btn_title;
	this.tag_open = tag_open;
	this.tag_close = tag_close;
	this.btn_type = btn_type;		// set to -1 if tag does not need to be closed
}

//btns[btns.length] = new btn('btn_link', dir + 'hyperlink.gif', 'Р“РёРїРµСЂСЃСЃС‹Р»РєР°', '', '</a>', 'img');
btns[btns.length] = new btn('btn_bold', dir + 'bold.gif', 'Жирный', '<strong>', '</strong>', 'img');
btns[btns.length] = new btn('btn_italic', dir + 'italic.gif', 'Курсив', '<i>', '</i>', 'img');
btns[btns.length] = new btn('btn_underline', dir + 'underline.gif', 'Подчеркнутый', '<u>', '</u>', 'img');
btns[btns.length] = new btn('btn_strike', dir + 'strike.gif', 'Перечеркнутый', '<strike>', '</strike>', 'img');
btns[btns.length] = new btn('btn_sup', dir + 'sup.gif', 'Верхний индекс', '<sup>', '</sup>', 'img');
btns[btns.length] = new btn('btn_sub', dir + 'sub.gif', 'Нижний индекс', '<sub>', '</sub>', 'img');
btns[btns.length] = new btn('btn_em', dir + 'em.gif', 'Aкцентировать', '<em>', '</em>', 'img');
btns[btns.length] = new btn('btn_cleanup', 'Закрыть все парные теги', 'Закрыть все парные теги', '', '', 'img');


btns[btns.length] = new btn('btn_laquo', '« »', '', '«', '»', 'lnk');
btns[btns.length] = new btn('btn_bdquo', '„ “', '', '„', '“', 'lnk');
btns[btns.length] = new btn('btn_ldquo', '“ ”', '', '“', '”', 'lnk');
btns[btns.length] = new btn('btn_hellip', '…', '', '…', '', 'lnk');
btns[btns.length] = new btn('btn_mdash', '—', '', '—', '', 'lnk');
btns[btns.length] = new btn('btn_ndash', '–', '', '–', '', 'lnk');
btns[btns.length] = new btn('btn_amp', '&amp;', '', '&amp;', '', 'lnk');
btns[btns.length] = new btn('btn_nbsp', 'nbsp', '', '&nbsp;', '', 'lnk');
btns[btns.length] = new btn('btn_copy', '©', '', '©', '', 'lnk');
btns[btns.length] = new btn('btn_reg', '®', '', '®', '', 'lnk');
btns[btns.length] = new btn('btn_trade', '™', '', '™', '', 'lnk');
btns[btns.length] = new btn('btn_euro', '€', '', '€', '', 'lnk');
btns[btns.length] = new btn('btn_pound', '&pound;', '', '&pound;', '', 'lnk');
btns[btns.length] = new btn('btn_8470', '№', '', '№', '', 'lnk');
btns[btns.length] = new btn('btn_lt', '&lt;', '', '&lt;', '', 'lnk');
btns[btns.length] = new btn('btn_gt', '&gt;', '', '&gt;', '', 'lnk');
btns[btns.length] = new btn('btn_deg', '°', '', '°', '', 'lnk');
btns[btns.length] = new btn('btn_sup2', '&sup2;', '', '&sup2;', '', 'lnk');
btns[btns.length] = new btn('btn_sup3', '&sup3;', '', '&sup3;', '', 'lnk');
/*
btns[btns.length] = new btn('btn_sup3', '&spades;', '', '&spades;', '', 'lnk');
btns[btns.length] = new btn('btn_sup3', '&clubs;', '', '&clubs;', '', 'lnk');
btns[btns.length] = new btn('btn_sup3', '&hearts;', '', '&hearts;', '', 'lnk');
btns[btns.length] = new btn('btn_sup3', '&diams;', '', '&diams;', '', 'lnk');
*/

function show_btns(button, i) {
	var items = '';
	if (button.id == 'btn_laquo') {
		items += '</div><div><a href="#" class="html-symbols" id="' + button.id + '" id="btn_symbols" onclick="toggle_only(this, \'html-symbols\'); return false;" title="символы">символы</a> ';
		items += '<div id="html-symbols" class="html-symbols clear-after" style="display: none;">';
	}

	if (button.btn_type == 'img') {
		if (button.id == 'btn_link') {
			items += '<img id="' + button.id + '" src="' + button.btn_name + '" onclick="insert_lnk(editcanvas, ' + i + ');" alt="" title="' + button.btn_title + '" />';
		} else if (button.id == 'btn_cleanup') {
			items += '<img id="btn_cleanup" src="' + dir + 'cleanup.gif" onclick="close_tags();" alt="" title="' + button.btn_title + '" /> ';
		} else {
			if (button.tag_open.indexOf('title') != -1) {
				items += '<img id="' + button.id + '" src="' + button.btn_name + '" onclick="insert_tag2(editcanvas, ' + i + ');" alt="" title="' + button.btn_title + '" />';
			} else {
				items += '<img id="' + button.id + '" src="' + button.btn_name + '" onclick="insert_tag(editcanvas, ' + i + ');" alt="" title="' + button.btn_title + '" />';
			}
		}
	} else {
		items += '<a href="#" id="' + button.id + '" onclick="insert_tag(editcanvas, ' + i + '); return false;" title="' + button.btn_title + '">' + button.btn_name + '</a> ';
	}
	return items;
}

function add_tag(button) {
	if (btns[button].tag_close != '') {
		open_tags[open_tags.length] = button;
	}
}

function remove_tag(button) {
	for (i = 0; i < open_tags.length; i++) {
		if (open_tags[i] == button) {
			open_tags.splice(i, 1);
		}
	}
}

function check_tags(button) {
	var tag = 0;
	for (i = 0; i < open_tags.length; i++) {
		if (open_tags[i] == button) {
			tag++;
		}
	}
	if (tag > 0) {
		return true; // tag found
	}
	else {
		return false; // tag not found
	}
}

function close_tags() {
	var count = open_tags.length;
	for (o = 0; o < count; o++) {
		insert_tag(editcanvas, open_tags[open_tags.length - 1]);
	}
}


function html_toolbar(c, t) {
	editcanvas = $_(c);
	edittoolbar = $_(t);
	if (editcanvas && editcanvas) {
		var items = '<div class="html-toolbar"><div class="html-btns clear-after">';
		for (i = 0; i < btns.length; i++) {
			items += show_btns(btns[i], i);
		}
		edittoolbar.innerHTML = items + '</div>';
	}
}


function insert_tag(html_field, i, tag_tmp) {
	tag_tmp = (!tag_tmp) ? btns[i].tag_open : tag_tmp;
	// ie
	if (document.selection) {
		html_field.focus();
	    sel = document.selection.createRange();
		if (sel.text.length > 0) {
			sel.text = tag_tmp + sel.text + btns[i].tag_close;
		}
		else {
			if (!check_tags(i) || btns[i].tag_close == '') {
				sel.text = tag_tmp;
				add_tag(i);
			}
			else {
				sel.text = btns[i].tag_close;
				remove_tag(i);
			}
		}
		html_field.focus();
	}
	// mozilla,netscape
	else if (html_field.selectionStart || html_field.selectionStart == '0') {
		var startPos = html_field.selectionStart;
		var endPos = html_field.selectionEnd;
		var cursorPos = endPos;
		var scrollTop = html_field.scrollTop;

		if (startPos != endPos) {
			html_field.value = html_field.value.substring(0, startPos)
			              + tag_tmp
			              + html_field.value.substring(startPos, endPos)
			              + btns[i].tag_close
			              + html_field.value.substring(endPos, html_field.value.length);
			cursorPos =+ tag_tmp.length + btns[i].tag_close.length;
		}
		else {
			if (!check_tags(i) || btns[i].tag_close == '') {
				html_field.value = html_field.value.substring(0, startPos)
				              + tag_tmp
				              + html_field.value.substring(endPos, html_field.value.length);
				add_tag(i);
				cursorPos = startPos + tag_tmp.length;
			}
			else {
				html_field.value = html_field.value.substring(0, startPos)
				                 + btns[i].tag_close
				                 + html_field.value.substring(endPos, html_field.value.length);
				remove_tag(i);
				cursorPos = startPos + btns[i].tag_close.length;
			}
		}
		html_field.focus();
		html_field.selectionStart = cursorPos;
		html_field.selectionEnd = cursorPos;
		html_field.scrollTop = scrollTop;
	}
	else {
		if (!check_tags(i) || btns[i].tag_close == '') {
			html_field.value =+ tag_tmp;
			add_tag(i);
		}
		else {
			html_field.value =+ btns[i].tag_close;
			remove_tag(i);
		}
		html_field.focus();
	}
}

function insert_tag2(html_field, i) {
	if (!check_tags(i)) {
		var title = prompt('title: ' , '');
		if (title) {
			tag_tmp = btns[i].tag_open.substr(0, btns[i].tag_open.length - 2) + title + '">';
			insert_tag(html_field, i, tag_tmp);
		} else {
			tag_tmp = btns[i].tag_open.substr(0, btns[i].tag_open.length - 10) + '>';
			insert_tag(html_field, i, tag_tmp);
		}
	}
	else {
		insert_tag(html_field, i);
	}
}


function insert_lnk(html_field, i) {
	if (!check_tags(i)) {
		var url = prompt('URL: ' , 'http://');
		if (url) {
			btns[i].tag_open = '<a href="' + url + '">';
			insert_tag(html_field, i);
		}
	}
	else {
		insert_tag(html_field, i);
	}
}
(function($) {

	/** jGrowl Wrapper - Establish a base jGrowl Container for compatibility with older releases. **/
	$.jGrowl = function( m , o ) {
		// To maintain compatibility with older version that only supported one instance we'll create the base container.
		if ( $('#jGrowl').size() == 0 ) $('<div id="jGrowl"></div>').addClass($.jGrowl.defaults.position).appendTo('body');
		// Create a notification on the container.
		$('#jGrowl').jGrowl(m,o);
	};


	/** Raise jGrowl Notification on a jGrowl Container **/
	$.fn.jGrowl = function( m , o ) {
		if ( $.isFunction(this.each) ) {
			var args = arguments;

			return this.each(function() {
				var self = this;

				/** Create a jGrowl Instance on the Container if it does not exist **/
				if ( $(this).data('jGrowl.instance') == undefined ) {
					$(this).data('jGrowl.instance', new $.fn.jGrowl());
					$(this).data('jGrowl.instance').startup( this );
				}

				/** Optionally call jGrowl instance methods, or just raise a normal notification **/
				if ( $.isFunction($(this).data('jGrowl.instance')[m]) ) {
					$(this).data('jGrowl.instance')[m].apply( $(this).data('jGrowl.instance') , $.makeArray(args).slice(1) );
				} else {
					$(this).data('jGrowl.instance').create( m , o );
				}
			});
		};
	};

	$.extend( $.fn.jGrowl.prototype , {

		/** Default JGrowl Settings **/
		defaults: {
			pool: 			0,
			header: 		'',
			group: 			'',
			sticky: 		false,
			position: 		'top-right', // Is this still needed?
			glue: 			'after',
			theme: 			'default',
			corners: 		'10px',
			check: 			250,
			life: 			3000,
			speed: 			'normal',
			easing: 		'swing',
			closer: 		true,
			closeTemplate: '&times;',
			closerTemplate: '<div>[ закрыть все ]</div>',
			log: 			function(e,m,o) {},
			beforeOpen: 	function(e,m,o) {},
			open: 			function(e,m,o) {},
			beforeClose: 	function(e,m,o) {},
			close: 			function(e,m,o) {},
			animateOpen: 	{
				opacity: 	'show'
			},
			animateClose: 	{
				opacity: 	'hide'
			}
		},

		notifications: [],

		/** jGrowl Container Node **/
		element: 	null,

		/** Interval Function **/
		interval:   null,

		/** Create a Notification **/
		create: 	function( message , o ) {
			var o = $.extend({}, this.defaults, o);

			this.notifications[ this.notifications.length ] = { message: message , options: o };

			o.log.apply( this.element , [this.element,message,o] );
		},

		render: 		function( notification ) {
			var self = this;
			var message = notification.message;
			var o = notification.options;

			var notification = $('<div class="jGrowl-notification' + ((o.group != undefined && o.group != '') ? ' ' + o.group : '') + '"><div class="close">' + o.closeTemplate + '</div><div class="header">' + o.header + '</div><div class="message">' + message + '</div></div>')
				.data("jGrowl", o).addClass(o.theme).children('div.close').bind("click.jGrowl", function() {
					$(this).parent().trigger('jGrowl.close');
				}).parent();

			( o.glue == 'after' ) ? $('div.jGrowl-notification:last', this.element).after(notification) : $('div.jGrowl-notification:first', this.element).before(notification);

			/** Notification Actions **/
			$(notification).bind("mouseover.jGrowl", function() {
				$(this).data("jGrowl").pause = true;
			}).bind("mouseout.jGrowl", function() {
				$(this).data("jGrowl").pause = false;
			}).bind('jGrowl.beforeOpen', function() {
				o.beforeOpen.apply( self.element , [self.element,message,o] );
			}).bind('jGrowl.open', function() {
				o.open.apply( self.element , [self.element,message,o] );
			}).bind('jGrowl.beforeClose', function() {
				o.beforeClose.apply( self.element , [self.element,message,o] );
			}).bind('jGrowl.close', function() {
				$(this).trigger('jGrowl.beforeClose').animate(o.animateClose, o.speed, o.easing, function() {
					$(this).remove();
					o.close.apply( self.element , [self.element,message,o] );
				});
			}).trigger('jGrowl.beforeOpen').animate(o.animateOpen, o.speed, o.easing, function() {
				$(this).data("jGrowl").created = new Date();
			}).trigger('jGrowl.open');

			/** Optional Corners Plugin **/
			if ( $.fn.corner != undefined ) $(notification).corner( o.corners );

			/** Add a Global Closer if more than one notification exists **/
			if ( $('div.jGrowl-notification:parent', this.element).size() > 1 && $('div.jGrowl-closer', this.element).size() == 0 && this.defaults.closer != false ) {
				$(this.defaults.closerTemplate).addClass('jGrowl-closer').addClass(this.defaults.theme).appendTo(this.element).animate(this.defaults.animateOpen, this.defaults.speed, this.defaults.easing).bind("click.jGrowl", function() {
					$(this).siblings().children('div.close').trigger("click.jGrowl");

					if ( $.isFunction( self.defaults.closer ) ) self.defaults.closer.apply( $(this).parent()[0] , [$(this).parent()[0]] );
				});
			};
		},

		/** Update the jGrowl Container, removing old jGrowl notifications **/
		update:	 function() {
			$(this.element).find('div.jGrowl-notification:parent').each( function() {
				if ( $(this).data("jGrowl") != undefined && $(this).data("jGrowl").created != undefined && ($(this).data("jGrowl").created.getTime() + $(this).data("jGrowl").life)  < (new Date()).getTime() && $(this).data("jGrowl").sticky != true &&
					 ($(this).data("jGrowl").pause == undefined || $(this).data("jGrowl").pause != true) ) {
					$(this).trigger('jGrowl.close');
				}
			});

			if ( this.notifications.length > 0 && (this.defaults.pool == 0 || $(this.element).find('div.jGrowl-notification:parent').size() < this.defaults.pool) ) {
				this.render( this.notifications.shift() );
			}

			if ( $(this.element).find('div.jGrowl-notification:parent').size() < 2 ) {
				$(this.element).find('div.jGrowl-closer').animate(this.defaults.animateClose, this.defaults.speed, this.defaults.easing, function() {
					$(this).remove();
				});
			};
		},

		/** Setup the jGrowl Notification Container **/
		startup:	function(e) {
			this.element = $(e).addClass('jGrowl').append('<div class="jGrowl-notification"></div>');
			this.interval = setInterval( function() {
				jQuery(e).data('jGrowl.instance').update();
			}, this.defaults.check);

			if ($.browser.msie && parseInt($.browser.version) < 7 && !window["XMLHttpRequest"]) $(this.element).addClass('ie6');
		},

		/** Shutdown jGrowl, removing it and clearing the interval **/
		shutdown:   function() {
			$(this.element).removeClass('jGrowl').find('div.jGrowl-notification').remove();
			clearInterval( this.interval );
		}
	});

	/** Reference the Defaults Object for compatibility with older versions of jGrowl **/
	$.jGrowl.defaults = $.fn.jGrowl.prototype.defaults;

})(jQuery);
function NiftyCheck() {
  if(!document.getElementById || !document.createElement) {
    return false;
  }
  var b = navigator.userAgent.toLowerCase();
  if (b.indexOf("msie 5") > 0 && b.indexOf("opera") == -1) {
    return false;
  }
  return true;
}

function Rounded(className, sizex, sizey, sizex_b, sizey_b) {
	var bk;
	if (!NiftyCheck()) return;
	if (typeof(sizex_b) == 'undefined')
		sizex_b = sizex;
	if (typeof(sizey_b) == 'undefined')
		sizey_b = sizey;
	var v = getElements(className);
	var l = v.length;
	for (var i = 0; i < l; i++) {
		color = get_current_style(v[i],"background-color","transparent");
		bk = get_current_style(v[i].parentNode,"background-color","transparent");
		AddRounded(v[i], bk, color, sizex, sizey, true);
		AddRounded(v[i], bk, color, sizex_b, sizey_b, false);
	}
}

Math.sqr = function (x) {
  return x*x;
};

function Blend(a, b, alpha) {

  var ca = Array(
    parseInt('0x' + a.substring(1, 3)),
    parseInt('0x' + a.substring(3, 5)),
    parseInt('0x' + a.substring(5, 7))
  );
  var cb = Array(
    parseInt('0x' + b.substring(1, 3)),
    parseInt('0x' + b.substring(3, 5)),
    parseInt('0x' + b.substring(5, 7))
  );
  return '#' + ('0'+Math.round(ca[0] + (cb[0] - ca[0])*alpha).toString(16)).slice(-2).toString(16)
             + ('0'+Math.round(ca[1] + (cb[1] - ca[1])*alpha).toString(16)).slice(-2).toString(16)
             + ('0'+Math.round(ca[2] + (cb[2] - ca[2])*alpha).toString(16)).slice(-2).toString(16);

  return '#' + ('0'+Math.round(ca[0] + (cb[0] - ca[0])*alpha).toString(16)).slice(-2).toString(16)
             + ('0'+Math.round(ca[1] + (cb[1] - ca[1])*alpha).toString(16)).slice(-2).toString(16)
             + ('0'+Math.round(ca[2] + (cb[2] - ca[2])*alpha).toString(16)).slice(-2).toString(16);
}

function AddRounded(el, bk, color, sizex, sizey, top) {
  if (!sizex && !sizey)
	return;
  var i, j;
  var d = document.createElement("div");
  d.style.backgroundColor = bk;
  var lastarc = 0;
  for (i = 1; i <= sizey; i++) {
    var coverage, arc2, arc3;
    // Find intersection of arc with bottom of pixel row
    arc = Math.sqrt(1.0 - Math.sqr(1.0 - i / sizey)) * sizex;
    // Calculate how many pixels are bg, fg and blended.
    var n_bg = sizex - Math.ceil(arc);
    var n_fg = Math.floor(lastarc);
    var n_aa = sizex - n_bg - n_fg;
    // Create pixel row wrapper
    var x = document.createElement("div");
    var y = d;
    x.style.margin = "0px " + n_bg + "px";
	x.style.height='1px';
	x.style.overflow='hidden';
    // Make a wrapper per anti-aliased pixel (at least one)
    for (j = 1; j <= n_aa; j++) {
      // Calculate coverage per pixel
      // (approximates circle by a line within the pixel)
      if (j == 1) {
        if (j == n_aa) {
          // Single pixel
          coverage = ((arc + lastarc) * .5) - n_fg;
        }
        else {
          // First in a run
          arc2 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j + 1) / sizex)) * sizey;
          coverage = (arc2 - (sizey - i)) * (arc - n_fg - n_aa + 1) * .5;
          // Coverage is incorrect. Why?
          coverage = 0;
        }
      }
      else if (j == n_aa) {
        // Last in a run
        arc2 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j + 1) / sizex)) * sizey;
        coverage = 1.0 - (1.0 - (arc2 - (sizey - i))) * (1.0 - (lastarc - n_fg)) * .5;
      }
      else {
        // Middle of a run
        arc3 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j) / sizex)) * sizey;
        arc2 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j + 1) / sizex)) * sizey;
        coverage = ((arc2 + arc3) * .5) - (sizey - i);
      }

      x.style.backgroundColor = Blend(bk, color, coverage);
	  if (top)
	      y.appendChild(x);
      else
	      y.insertBefore(x, y.firstChild);
      y = x;
      var x = document.createElement("div");
		x.style.height='1px';
		x.style.overflow='hidden';
      x.style.margin = "0px 1px";
    }
    x.style.backgroundColor = color;
    if (top)
	    y.appendChild(x);
    else
		y.insertBefore(x, y.firstChild);
    lastarc = arc;
  }
  if (top)
	  el.insertBefore(d, el.firstChild);
  else
	  el.appendChild(d);
}

function getElements(className) {
	var elements = [];
	var el = document.getElementsByTagName('DIV');
	var regexp=new RegExp("\\b"+className+"\\b");
	for (var i = 0; i < el.length; i++)
	{
		if (regexp.test(el[i].className))
			elements.push(el[i]);
	}
	return elements;
}

function get_current_style(element,property,not_accepted)
{
  var ee,i,val,apr;
  try
  {
    var cs=document.defaultView.getComputedStyle(element,'');
    val=cs.getPropertyValue(property);
  }
  catch(ee)
  {
    if(element.currentStyle)
  	{
	    apr=property.split("-");
	    for(i=1;i<apr.length;i++) apr[i]=apr[i].toUpperCase();
	    apr=apr.join("");
	    val=element.currentStyle.getAttribute(apr);
   }
  }
  if((val.indexOf("rgba") > -1 || val==not_accepted) && element.parentNode)
  {
	 if(element.parentNode != document)
		 val=get_current_style(element.parentNode,property,not_accepted);
	 else
		 val = '#FFFFFF';
  }
  if (val.indexOf("rgb") > -1 && val.indexOf("rgba") == -1)
	  val = rgb2hex(val);
  if (val.length == 4)
	  val = '#'+val.substring(1,1)+val.substring(1,1)+val.substring(2,1)+val.substring(2,1)+val.substring(3,1)+val.substring(3,1);
  return val;
}

function rgb2hex(value)
{
	var x = 255;
	var hex = '';
	var i;
	var regexp=/([0-9]+)[, ]+([0-9]+)[, ]+([0-9]+)/;
	var array=regexp.exec(value);
	for(i=1;i<4;i++) hex += ('0'+parseInt(array[i]).toString(16)).slice(-2);
	return '#'+hex;
}


var cry_form = false;

$(document).ready(function() {
	if (loadSelectPlaces) {
		$.get('/ajax/chooseReg.php', function (data) {
			$('body').append(data);
				$('#note_tips').click(function(e) {
				bubbling_no(e);
			});

			$(document).click(function() {
				$('#note_tips').hide();
			});

			loadNote(rajon_id);
			setSelected(note_region_o, note_place);
		});

	    $('.rooms_').click(function() {
	        var child = $(this).children();
	        if ($(this).is('.digs')) {
	            child.removeClass('this');
	            $(this).removeClass('digs');
	            $(this).addClass('r_check');
	            search_vars.rooms += '_'+child.html()+'_';
	        } else {
	            child.addClass('this');
	            $(this).removeClass('r_check');
	            $(this).addClass('digs');
	            search_vars.rooms = search_vars.rooms.replace('_'+child.html()+'_', '');
	        }
	        return false;
	    });
	    $('.framed ul.select li span').click(function(){
	        var _this = this;
	          addToLi(_this);
	    });
	    $('#search_button').click(function(){

			search_vars.rooms = '';
			$('.rooms_').each(function() {
				var el = $(this).children();
				if ($(this).is('.r_check'))
					search_vars.rooms+='_'+el.html()+'_';
			});
	        var action=$('#action_select').attr("value");//Получим тип сделки
	        var type = $('#type_select').attr("value");
			var road = $('#road_select').attr("value");
	        var valuta =  $('#valuta_select').attr("value");
	        var price_ot = $('#price_ot').attr("value");
	        var price_do = $('#price_do').attr("value");
	        var query = '?type='+action+'&road='+road+'&cat='+type+'&valuta='+valuta+'&price1='+price_ot+'&price2='+price_do+'&region='+search_vars.region+'&rooms='+search_vars.rooms+'&region_opt='+search_vars.region_o;
	        document.location.href="http://move.su/search_items/"+query;
	    });
	}

	$('.it_pic').each(function() {
		var title = $(this).attr('title');
		$(this).removeAttr('title');

		$(this).append ('<div class="ttp">'+title+'</div>');

		$(this).hover (function() {
			$('div', this).show();
		}, function() {
			$('div', this).hide();
		}).click(function(e) {
			bubbling_no(e);
			if ($(this).hasClass('active')) {
				$(this).removeClass('active');
				var cl = $(this).attr('class');
				cl = cl.replace('_active', '');
				$(this).attr('class', cl);

				if ($(this).hasClass('cry')) {
					$('#cry_from').hide();
				}

				if ($(this).hasClass('izbr')) {
					$.ajax({
					url: '/bookmark.php',
					data:{'del_id': $(this).attr('item_id')},
					error: function () {
						$.jGrowl('error, try again');
					},
					success: function (data) {
						$('#izbr_items').html(''+Math.floor(data));
						$.jGrowl("Объявление удалено из избранного");
					}
					});
				}
			}
			else {
				if ($(this).hasClass('cry')) {
					$('.cry_active').each(function() {
						$(this).removeClass('active');
						var cl = $(this).attr('class');
						cl = cl.replace('_active', '');
						$(this).attr('class', cl);
					});

					var mappos = {};
					mappos = $(this).position();

					$('#item_id').val($(this).attr('item_id'));

					$('#cry_from').css({left: (mappos['left']) + 'px',
										top: (mappos['top'] + 61) + 'px'
					}).slideDown("fast");

					$('#cry_from').click(function(e) {
						bubbling_no(e);
					});
				}

				if ($(this).hasClass('izbr')) {
					$.ajax({
					url: '/bookmark.php',
					data:{'item_id': $(this).attr('item_id')},
					error: function () {
						$.jGrowl('error, try again');
					},
					success: function (data) {
						$('#izbr_items').html(''+Math.floor(data));
						$.jGrowl("Объявление добавлено в избранное");
					}
					});
				}

				$(this).attr('class', $(this).attr('class')+'_active');
				$(this).addClass('active');
			}
		});
	});

	$(document).click(function() {
		$('#cry_from').hide();
		$('.cry_active').each(function() {
			$(this).removeClass('active');
			var cl = $(this).attr('class');
			cl = cl.replace('_active', '');
			$(this).attr('class', cl);
		});
	});

	if (cry_form) {
		Rounded('cry_form', 9, 9);
		html_toolbar("form-item", "html-toolbar");
		$('#cry_form').ajaxForm(
			{
				beforeSubmit: function() {
					$('#crybtn').attr('value', 'Отправляю...').attr("disabled","disabled");
					var img = new Image();
					img.onload = function() {
						img.onload = null;
						$('.form-btns').append ('<span class="iiii" style="padding-left:20px;"><img src=/i/78.gif></span>');
					}
					img.src = '/i/78.gif';
				},
				success: function(data) {
					if (data!='error code') {
						$('#crybtn').attr('value', 'Пожаловаться').removeAttr('disabled');
						$('.loading').hide();
						$('.loading-overlay').hide();
						$('#cry_from').hide();
						$('.cry_active').each(function() {
							$(this).removeClass('active');
							var cl = $(this).attr('class');
							cl = cl.replace('_active', '');
							$(this).attr('class', cl);
						});
						$.jGrowl('Жалоба отправлена');
					} else {
						$('#crybtn').attr('value', 'Пожаловаться').removeAttr('disabled');
						alert('Вы не указали email или ввели неверный код подтверждения');
					}
					$('.iiii').hide();
			}
		});
	}

});

function setBookmarkItem(id) {
	$('.izbr[@item_id='+id+']').removeClass('izbr').addClass('izbr_active').addClass('active');
}