var emptyHelpField = function($jObject, emptyClassName) {
	$jObject.data("emptyClass", emptyClassName);
	$jObject.each(function() {
		var $this = $(this);
		if($this.attr("title")) {
			$this.data("emptyData", $this.attr("title"));
/*
			if(!$this.val()){
				valdiv = $('<div style="position: absolute;" id="title_' + $this.attr('id') + '" class="cf-text">')
					.addClass($this.data("emptyClass"))
					.html($this.data("emptyData"))
					.width($this.width())
					.click(function(){
						$this.focus();
					});
				$this.before(valdiv);
			}
			$this.bind("focus", function() {
				var $this = $(this);
				$('#title_' + $this.attr('id')).hide();
			}).bind("blur", function() {
				var $this = $(this);
				if($this.val() == "") $('#title_' + $this.attr('id')).show();
			});
*/


			if(!$this.val()) $this.val($this.data("emptyData"));
			if($this.val() == $this.data("emptyData")) $this.addClass($this.data("emptyClass"));
			$this.bind("focus", function() {
				var $this = $(this);
				$this.removeClass($this.data("emptyClass"));
				if($this.val() == $this.data("emptyData")) $this.val("");
			}).bind("blur", function() {
				var $this = $(this);
				if($this.val() == "") $this.addClass($this.data("emptyClass")).val($this.data("emptyData"));
			}).parents('form').submit(function() {
				if($.trim($this.val()) == $this.data("emptyData")) $this.val("");
				return;
			});
		}
		if($this.hasClass('cf-size')){
			var theLines = $this.val().replace((new RegExp("[.{"+this.cols+"}|\n]","g")),"\n").split("\n");
			this.rows = Math.min(10, Math.max(2, theLines.length));
		}
	});
};

$.extend($.fn, {
	helpButton: function(options) {
		return this.each(function() {
			$(this).data('helpButton', new HelpButton(this, options));
		});
	}
});

HelpButton = function(elem, options){
	this.elem = $(elem);
	this.elem.click(function(e) { e.stopPropagation(); });

	this.settings = $.extend(true, {
		width: 300,
		position: "top",
		relativeParentSelector: "dd.cf-val",
		absoluteClass: "popuper",
		lineHeight: 22,
		margin: 15,
		priority: {
			"top": ["top", "right", "bottom", "left"],
			"right": ["right", "bottom", "top", "left"],
			"bottom": ["bottom", "top", "right", "left"],
			"left": ["left", "right", "bottom", "top"]
		}
	}, options);

	this.button = $('<div class="help-button"></div>');
	this.corner = $('<div class="help-corner"></div>');
	this.button.data("helpButton", this).click(function() {
		$this = $(this);
		if($this.data("helpButton").elem.is(":hidden")) return $(this).data("helpButton").showPopup();
		else return $(this).data("helpButton").hidePopup();
	});
	this.object = this.elem.prev();
	this.relativeParent = this.elem.parents(this.settings.relativeParentSelector);

	$(document).click(function() {
		var popups = $(document).data("helpPopups");
		for(var i = 0; i < popups.length; i++) {
			popups[i].hidePopup();
		}
	});
	$(window).resize(function() {
		var popups = $(document).data("helpPopups");
		for(var i = 0; i < popups.length; i++) {
			popups[i].hidePopup();
		}
	});

	this.render();
};

$.extend(HelpButton.prototype, {
	showPopup: function(){
		$(document).trigger("click");
		this.elem.show();
		this.corner.show();
		this.positionCorrection();
		return false;
	},
	positionCorrection: function() {
		var elemLeft, elemTop;
		var $doc = $(document);
		var $win = $(window);
		var
			x0 = this.button.offset().left,
			y0 = this.button.offset().top,
			w0 = this.button.outerWidth(),
			h0 = this.button.outerHeight(),
			x = this.elem.offset().left,
			y = this.elem.offset().top,
			w = this.elem.outerWidth(),
			h = this.elem.outerHeight(),
			sT = $doc.scrollTop(),
			sL = $doc.scrollLeft(),
			W = $win.width(),
			H = $win.height();

		var freeSpaces = {
			"top": y0 - sT - this.settings.margin,
			"right": W + sL - x0 - w0 - this.settings.margin,
			"bottom": H + sT - y0 - h0 - this.settings.margin,
			"left": x0 - sL - this.settings.margin
		};
		if(freeSpaces["top"] < h && freeSpaces["bottom"] < h && freeSpaces["left"] < w && freeSpaces["right"] < w) {
			elemTop = H + sT - h;
		} else {
			var i = 0;
			var priority = this.settings.priority[this.settings.position];
			var notPos = true;
			while(i < priority.length && notPos) {
				if((priority[i] == "top" && freeSpaces[priority[i]] >= h - this.settings.margin)
					|| (priority[i] == "bottom" && freeSpaces[priority[i]] >= h - this.settings.margin)
					|| (priority[i] == "left" && freeSpaces[priority[i]] >= w - this.settings.margin)
					|| (priority[i] == "right" && freeSpaces[priority[i]] >= w - this.settings.margin)) {
					switch(priority[i]) {
						case "top":
							elemTop = freeSpaces["top"] - h + sT;
							elemLeft = x0 - (w - w0) / 2 + sL;
							if(elemLeft + w > W + sL) elemLeft = W + sL - w;
							if(elemLeft < sL) elemLeft = this.settings.margin + sL;
							if(elemLeft > x0 - this.settings.margin) elemLeft = x0 - this.settings.margin;
							this.corner.css({left: x0 - (12 - w0) / 2, top: y0 - this.settings.margin}).get(0).className = "help-corner help-corner-top";
						break;
						case "right":
							elemLeft = x0 + w0 + this.settings.margin;
							elemTop = y0 - (h - h0) / 2 + sT;
							if(elemTop + h > H + sT) elemTop = H + sT - h;
							if(elemTop < sT) elemTop = this.settings.margin + sL;
							if(elemTop > y0 - this.settings.margin) elemTop = y0 - this.settings.margin;
							this.corner.css({left: elemLeft - 10, top: y0 - (12 - h0) / 2}).get(0).className = "help-corner help-corner-right";
						break;
						case "bottom":
							elemTop = y0 + h0 + this.settings.margin;
							elemLeft = x0 - (w - w0) / 2 + sL;
							if(elemLeft + w > W + sL) elemLeft = W + sL - w;
							if(elemLeft < sL) elemLeft = this.settings.margin + sL;
							if(elemLeft > x0 - this.settings.margin) elemLeft = x0 - this.settings.margin;
							this.corner.css({left: x0 - (12 - w0) / 2, top: elemTop - 10}).get(0).className = "help-corner help-corner-bottom";
						break;
						case "left":
							elemLeft = freeSpaces["left"] - w + sL;
							elemTop = y0 - (h - h0) / 2 + sT;
							if(elemTop + h > H + sT) elemTop = H + sT - h;
							if(elemTop < sT) elemTop = this.settings.margin + sL;
							if(elemTop > y0 - this.settings.margin) elemTop = y0 - this.settings.margin;
							this.corner.css({left: x0 - this.settings.margin, top: y0 - (12 - h0) / 2}).get(0).className = "help-corner help-corner-left";
						break;
					}
					notPos = false;
				}
				i++
			}
		}
		this.elem.css({left: elemLeft, top: elemTop});
	},
	hidePopup: function(){
		this.elem.hide();
		this.corner.hide();
		return false;
	},
	render: function(){
		var $doc = $(document);
		if(!$doc.data("helpPopups")) $doc.data("helpPopups", new Array());
		$doc.data("helpPopups")[$doc.data("helpPopups").length] = this;
		this.elem.css({width: this.settings.width});
		this.relativeParent.append(this.button);
		$("body").append(this.elem).append(this.corner);
		this.elem.addClass(this.settings.absoluteClass);
		this.resetButton();
	},
	resetButton: function() {
		var buttonTop, buttonLeft;
		switch(this.object.get(0).nodeName.toLowerCase()) {
			case "input":
			case "select":
				if(this.object.attr("type") == "text" || this.object.attr("type") == "password") {
					buttonTop = this.object.offset().top - this.relativeParent.offset().top + (this.object.outerHeight() - this.button.outerHeight()) / 2;
				} else {
					buttonTop = (this.settings.lineHeight - this.button.outerHeight()) / 2 + this.object.offset().top - this.relativeParent.offset().top;
				}
			break;
			case "table":
				buttonTop = (this.object.find("td:first").height() - this.button.outerHeight()) / 2 + this.object.offset().top - this.relativeParent.offset().top;
			break;
			default:
				buttonTop = (this.settings.lineHeight - this.button.outerHeight()) / 2 + this.object.offset().top - this.relativeParent.offset().top;
		}
		buttonLeft = this.object.offset().left - this.relativeParent.offset().left + this.object.outerWidth() + 10;
		this.button.css({left: buttonLeft, top: buttonTop});
	}
});

var hiLightIt = function($obj, url) {
	var $doc = $(document);
	$("#cover").css({height: $doc.height(), display: "block"});
	if(typeof url != 'undefined') $obj.find('.returnUrl').val(url);
	if(!$obj.data("hilighted")) $obj.find('input[tabindex=1]').focus();
	$obj.data("hilighted", true);
	$obj.parent().css({zIndex: 1500});
	$doc.data("hilightedObj", $obj.parent());
	return false;
};

var prepareHiLight = function($obj) {
	if($obj) {
		var $doc = $(document);
		if(!$obj.data("modified")) {
			var $dummy = $("<div></div>");
			$dummy.css({width: $obj.width(), height: $obj.height()});
			$obj.before($dummy);
			$obj.data("dummy", $dummy);
			var offset = $dummy.offset();
			var $wrap = $('<div class="modify-wrapper"></div>');
			$wrap.css({left: offset.left, top: offset.top, width: $obj.outerWidth()}).append($obj);
			$obj.data("modified", true);
			$obj.data("modifiedObj", $wrap);
			$("body").append($wrap);
			if(!$doc.data("modifiedArray")) $doc.data("modifiedArray", [$obj]);
			else $doc.data("modifiedArray")[$doc.data("modifiedArray").length] = $obj;
		}
		var $cover = $("#cover");
		if($cover.size() == 0) {
			$cover = $('<div id="cover"></div>');
			$cover.click(function() {
				$(this).hide();
				if($doc.data("openedPopup")) { $doc.data("openedPopup").hide(); }
				$obj.data("hilighted", false);
				if($('#registerurl').length > 0)
				{
					$('#registerurl').attr('href', '/register');
				}
				if($doc.data("hilightedObj")) {
					$doc.data("hilightedObj").css({zIndex: 1});
				}
			});
			$("body").append($cover);
		}
		$(window).bind("resize", function() {
			if($doc.data("modifiedArray") && $doc.data("modifiedArray").length > 0) {
				for(var i = 0; i < $doc.data("modifiedArray").length; i++) {
					var offset = $doc.data("modifiedArray")[i].data("dummy").offset();
					$doc.data("modifiedArray")[i].data("modifiedObj").css({left: offset.left, top: offset.top});
				}
			}
		});
		$obj.data("hilighted", false);
	}
};


$(document).ready(function() {
/*
	$(".sf-highlight input").click(function() {
		var $this = $(this);
		//console.log('click', $this.attr("checked"));
		if($this.attr("checked"))
			$this.parents("tr").addClass("sfc-highlight");
		else
			$this.parents("tr").removeClass("sfc-highlight");
	});
*/
	$(".sf-highlight input").each(function() {
		var $this = $(this);
		//console.log('each', $this.attr("checked"));
		if($this.attr("checked"))
			$this.parents("tr").addClass("sfc-highlight");
		else
			$this.parents("tr").removeClass("sfc-highlight");
	});
	$(".sf-highlight input").change(function() {
		var $this = $(this);
		//console.log('change', $this.attr("checked"));
		if($this.attr("checked"))
			$this.parents("tr").addClass("sfc-highlight");
		else
			$this.parents("tr").removeClass("sfc-highlight");
	});

	$("#cover").click(function() {
		var $doc = $(document);
		$(this).hide();
		if($doc.data("openedPopup")) { $doc.data("openedPopup").hide(); }
		$obj.data("hilighted", false);
	});

	if($(".auth-form").size() > 0) prepareHiLight($(".auth-form"));

	$(".auth-form").click(function() {
		hiLightIt($(this));
	});

	$(window).bind("resize", function() {
		if(typeof correctPos != 'undefined') correctPos($(".auth-form"));
	});


	$('.map-link').live('click', function(){
		var address = $(this).attr('title');

		var win = window.open('','openYAD','width=500,height=500');
			win.document.writeln('<html><head>');
			win.document.writeln('<scri'+'pt src="http://api-maps.yandex.ru/1.1/index.xml?key=AKHY-0oBAAAAm4fwSwIAG9b3IeWno3WSKEgywWn5uWZV1hgAAAAAAAAAAAC_EvybxHAv_8teJbwF5W6od4trfg==" type="text/javascript"></scr'+'ipt>');
			win.document.writeln('</head><body>');
			win.document.writeln('<div id="YMapsID" style="width:480px; height:480px;"></div>');
			win.document.writeln('<scr'+'ipt language="JavaScript">');
			win.document.writeln('	var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);');
			win.document.writeln('	var geocoder = new YMaps.Geocoder("' + address + '");');
			win.document.writeln('	YMaps.Events.observe(geocoder, geocoder.Events.Load, function (geocoder) {');
			win.document.writeln('		if (geocoder.length()){');
			win.document.writeln('			map.setBounds(geocoder.get(0).getBounds());');
			win.document.writeln('			map.openBalloon(geocoder.get(0).getGeoPoint(), "' + address + '");');
			win.document.writeln('		}');
			win.document.writeln('	});');
			win.document.writeln('</scr'+'ipt>');
			win.document.writeln('</body></html>');
		return false;
	});

	$("#region-select").each(function() {
		var $this = $(this);
		var $link = $this.prev();
		var $input = $this.parent().find(':input');

		$("body").append($this);
		$link.data("box", $this).click(function(event) {
			if(!event) event = window.event;
			var $this = $(this);
			var $doc = $(document);
			if(!$doc.data("regionSelect")) {
				$doc.data("regionSelect", $this.data("box"));
				$this.data("box").css({left: $this.offset().left - 20, top: $this.offset().top + 25}).show();
			} else {
				$doc.data("regionSelect").hide();
				$doc.data("regionSelect", null);
			}
			return false;
		});
		$this.click(function(event) {
			if(!event) event = window.event;
			event.stopPropagation();
		});
		$(document).bind("click", function() {
			var $doc = $(document);
			if($doc.data("regionSelect")) {
				$doc.data("regionSelect").hide();
				$doc.data("regionSelect", null);
			}
		});
		$('.tree_link a').click(function(){
			var name = $(this).html();
			var id = $(this).attr('rel');

			$link.html(name);
			$input.val(id);

			var $doc = $(document);
			if($doc.data("regionSelect")) {
				$doc.data("regionSelect").hide();
				$doc.data("regionSelect", null);
			}
			jQuery.ajax({
				'type':'GET',
				'data':{'id':id},
				'url':'/search/geoplace'
			});
			return false;
		});
	});

	$(".sf-tabs input").click(function() {
		this.blur();
		var $li = $(this).parents("li");
		$li.addClass("active-").siblings().removeClass("active-");
		$(".sf-base").eq($li.index()).show().siblings(".sf-base").hide();

		$d = $(".sf-base").eq($li.index()).siblings(".sf-base").find('.sf-request > input').val();
		$n = $(".sf-base").eq($li.index()).find('.sf-request > input').val($d).focus();
//		console.log($d);
	});

	$(".nm-head a.dashed").live('click', function() {
		this.blur();
		var $this = $(this);
		var $body = $this.parents(".nm-head").next();
		$body.toggle();
		if($this.html() == "прочитать") $this.html("свернуть");
		else $this.html("прочитать");
		return false;
	});

	$(".list-table tr").live({
		mouseenter: function() {
			$(this).addClass("hover-");
		},
		mouseleave: function() {
			$(this).removeClass("hover-");
		}
	});

	$(".vacancy-list tr").live({
		mouseenter: function() {
			$(this).addClass("vacancy-hover");
		},
		mouseleave: function() {
			$(this).removeClass("vacancy-hover");
		}
	});

	$("a.moc-expand").live('click', function() {
		if($(this).attr('rel') == 1){
			$(this).text('развернуть');
			$(".message-one").removeClass("message-expand");
			$(this).attr('rel', 0);
		}else{
			$(this).text('свернуть');
			$(".message-one").addClass("message-expand");
			$(this).attr('rel', 1);
		}
//		$(".message-one").toggleClass("message-expand");
		return false;
	});

	$("a.moc-title").live('click', function() {
		this.blur();
		$(this).parents(".message-one").toggleClass("message-expand");
		return false;
	});

	$(".moc-body a.dashed").live('click', function() {
		this.blur();
		$(this).parents(".message-one").removeClass("message-expand");
		return false;
	});

	emptyHelpField($(".sf-request input"), "sf-empty");
	emptyHelpField($(".cf-val textarea"), "cf-empty");

	$('.cf-size').each(function(){
		var theLines = $(this).val().replace((new RegExp("[.{"+this.cols+"}|\n]","g")),"\n").split("\n");
		this.rows = Math.min(10, Math.max(2, theLines.length));
	});
	$('.cf-size').live('focus keyup blur', function(){
		var theLines = $(this).val().replace((new RegExp("[.{"+this.cols+"}|\n]","g")),"\n").split("\n");
		this.rows = Math.min(10, Math.max(2, theLines.length));
	});

	$(".check-all").click(function() {
		$(this).parents("table").find("input[type=checkbox]").attr({checked: $(this).attr("checked") == "checked"});
	});

	$(".search-form .search-example").click(function() {
		this.blur();
		var $this = $(this);
		$this.parent().parent().prev().find(".sf-request input").val($this.html()).removeClass("sf-empty").change();
		return false;
	});

  $(".fixed-list .esl- a").click(function() {
	this.blur();
	$(".search-form .sf-base").addClass("sf-extended");
	$(".search-form .sf-request input").select().focus();
	$(document).scrollTop(0);
	return false;
  });

	$(".cf-applicant-ch input").click(function() { $(this).parents(".client-form").removeClass("cf-company").addClass("cf-applicant"); $(".form-help").each(function() {$(this).data("helpButton").resetButton()}); });
	$(".cf-company-ch input").click(function() { $(this).parents(".client-form").removeClass("cf-applicant").addClass("cf-company"); $(".form-help").each(function() {$(this).data("helpButton").resetButton()}); });

	$(".popup-help").helpButton({});

	$(".pp-work- .more-.show- a").click(function() {
		$(this).parent().parent().addClass("pp-opened-");
		return false;
	});
	$(".pp-work- .more-.hidden- a").click(function() {
		$(this).parent().parent().removeClass("pp-opened-");
		return false;
	});

//	$('.vvl-detaled- a.title-').each(function(){
//		var $this = $(this);
//		var $color = $(this).css('color')
//		$(this).css({'text-decoration': 'none', 'border-bottom': '1px dotted ' + $color });
//	});
	$(".vvl-detaled- a.title-").live('click', function(){//, .vvl-detaled-.show-
		var $doc = $(document);
		var $this = $(this);
		var $id = $this.attr('id').replace(/(s|l)+\-/, '');
		var $a = $('#s-' + $id);
		var $li = $('#l-' + $id);
		var $action = $li.hasClass('show-') ? 'show' : 'hide';

		if($doc.data('data-' + $id + '-' + $action))
			$li.replaceWith($doc.data('data-' + $id + '-' + $action));
		else
			jQuery.ajax({
				'type':'POST',
				'data':{'view':$action},
				'url':'/vacancy/detaled/' + $id,
				'success':function(html){
					$doc.data('data-' + $id + '-' + $action, html);
					$li.replaceWith(html);
					//$.get($a[0].href);
				}
			});
		
		return false;
	});//.attr('href', javascript:void(0));
	
	
	var favoriteLink = function($this, type, action) {
		if(type == 'vacancy') var prefix = 'vvl';
		if(type == 'resume') var prefix = 'vrl';

		var $fav = $this.parent();
		var $id = $fav.attr('id').replace('f-', '');
		var $li = $('#l-' + $id);

		jQuery.ajax({
			'type':'POST',
			'data':{'type':type,'action':action},
			'url':$this.attr('href'),
			'success':function(html){
				if(action == 'add'){
					$li.addClass(prefix + '-fav-');
					$this.html('убрать из избранного');
					$fav.removeClass('favorite-').addClass('remove-');
				}
				if(action == 'remove'){
					$li.removeClass(prefix + '-fav-');
					$this.html('в избранное');
					$fav.removeClass('remove-').addClass('favorite-');
				}
			}
		});
	};
	$('.vrlo-add .favorite- a').live('click', function(){
		favoriteLink($(this), 'resume', 'add');
		return false;
	});
	$('.vvlo-add .favorite- a').live('click', function(){
		favoriteLink($(this), 'vacancy', 'add');
		return false;
	});
	$('.vrlo-add .remove- a').live('click', function(){
		favoriteLink($(this), 'resume', 'remove');
		return false;
	});
	$('.vvlo-add .remove- a').live('click', function(){
		favoriteLink($(this), 'vacancy', 'remove');
		return false;
	});

	$(".visitor-vacancy-list .vvl-one").each(function() {
		$(this).data("bg", $(this).css("background-color"));
		//console.log($(this).data("bg"));
	}).live({
		mouseenter: function() {
			var $this = $(this);
			$this.addClass("vvl-hover-");
			setTimeout("showLinks("+ $this.index() +")", 0);
		},
		mouseleave: function() {
			var $this = $(this);
			$this.removeClass("vvl-hover-");//.animate({backgroundColor: $this.data("bg")}, "fast")
			$this.stop().find(".favorite-").stop().animate({opacity: 0}, "fast", function() { $this.find(".favorite- a").css({display: "none"}); });
		}
	});

	$(".popup a.p-close, .popup .p-close-but, .popup .p-close-link").live("click", function() {
		$(this).parents(".popup").hide();
		$("#cover").hide();
		return false;
	});

	$(".sf-base a.extended-search-link").click(function() {
		this.blur();
		$(this).parents(".sf-base").toggleClass("sf-extended");
		window.location.href = "#top";
//		var val = Math.abs($('#sf-extended-search').val() - 1);
//		$('#sf-extended-search').val(val);

		return false;
	});
/*
	$(".ssf-base .sf-request input").bind('keyup change blur', function(e) {
		$(this).parents(".sf-base").find(".sf-request input").val($(this).val());
	});
*/	
	$(".fl-box input").live('click', function(e) {
		this.blur();
		$(this).parents(".sf-base").addClass("sf-extended");
		$(this).parents(".sf-base").find(".sf-request input").focus();
		window.location.href = "#top";
		return false;
	});
	$('.r66bottom').replaceWith($('.r66text'));

	$('a[registerurl]').click(function() {
		$('#registerurl').attr('href', $(this).attr('registerurl'));
	});

	$('.advh').click(function(){ $('.cloud-how').toggle(); return false; });
	$('.cloud-how a').click(function(){
		var value = $(this).attr('rel');
		var text = $(this).text();
	
		$('#SearchForm_resume_advsearch_how').val(value);
		$('.advh').text(text);
		
		$('.cloud-how').hide();
		return false;
	});
	$('.advw').click(function(){ $('.cloud-where').toggle(); return false; });
	$('.cloud-where a').click(function(){
		var value = $(this).attr('rel');
		var text = $(this).text();
	
		$('#SearchForm_resume_advsearch_where').val(value);
		$('.advw').text(text);
		
		$('.cloud-where').hide();
		return false;
	});
	
	$("#left-fixed-block").verticalFloat({controlObj: $(".fixed-list .body-") ? $(".fixed-list .body-") : null});
});
var controlFloatBar = function($obj, $control, $fixed) {
	var height = $control.offset().top;// + $control.height();
	var $doc = $(document);
	var i;
	for(i = 0; i < $obj.size(); i++) {
		if($doc.scrollTop() > height) {
			if($fixed) $obj.eq(i).parents(".sf-base").find('.search-form-fixed').addClass('sfb-fixed').css({width: $obj.eq(i).parents(".sf-base").find('.sfb-canvas').width()});
			
	//		if($fixed) $obj.parents(".sf-base").find('.search-form-fixed').addClass('sfb-fixed');//.css({width: "auto"});
			$obj.eq(i).css({display: "block", opacity: 1});
		} else {
			if($fixed) $obj.eq(i).parents(".sf-base").find('.search-form-fixed').removeClass('sfb-fixed').css({width: "auto"});
			$obj.eq(i).css({display: "none"});
		}
	}
};

var showPopup = function($popup) {
  var $doc = $(document);
  var $win = $(window);
  $doc.data("openedPopup", $popup);
  $popup.css({left: ($win.width() - $popup.width()) / 2, top: ($win.height() - $popup.height()) / 2, display: "block"});
  $("#cover").css({height: $doc.height(), display: "block"});
  $popup.find(".p-close-but").eq(0).focus();
};

(function($) {
	$.showPopup = function(options) {
		//console.log(options);
		var settings = jQuery.extend({
			title: '',
			message: '',
			
			id: "popup",
			className: "popup",
			closeText: 'Ok',
			closeClass: 'p-close',
			closeButton: true,
			closeButtonClass: "p-close-but",
			closeLinkClass: "p-close-link"
			//afterClose: function(popup){ ... },
		}, options);


		// inject needed elements in DOM
		var $cover = $("#cover");
		if($cover.size() == 0) {
			$cover = $('<div id="cover"></div>');
			$cover.click(function() {
				var $doc = $(document);
				$(this).hide();
				if($doc.data("openedPopup")) { $doc.data("openedPopup").hide(); }
			});
			jQuery("body").append($cover);
		}

		var $popup = $("#" + settings.id);
		if($popup.size() == 0) {
			var $popup  = $(
				'<div' + (settings.id !== false ? ' id="' + settings.id + '"' : '') + ' class="' + settings.className + '">' +
				'	<a class="' + settings.closeClass + '" href="#">' + settings.closeText + '</a>' +
				'	<h3 class="popupTitle"></h3>' +
				'	<p class="popupMessage"></p>' +
				(settings.closeButton ? '	<div class="p-buttons"><input class="' + settings.closeButtonClass + '" type="button" value="' + settings.closeText + '"></div>' : '') +
				'</div>'
			);
			jQuery("body").append($popup);
		}
		$popup.find('.popupMessage').html(settings.message);
		if(settings.title) $popup.find('.popupTitle').html(settings.title).show();
		else $popup.find('.popupTitle').hide();

		var $doc = $(document);
		var $win = $(window);
		
		if(settings.closeButton && settings.afterClose != undefined && typeof settings.afterClose != 'string'){
			$popup.find("." + settings.closeButtonClass).click(function(){return settings.afterClose($popup); });
		}
		
		$doc.data("openedPopup", $popup);
		$popup.css({left: ($win.width() - $popup.width()) / 2 + $doc.scrollLeft(), top: ($win.height() - $popup.height()) / 2 + $doc.scrollTop(), display: "block"});
		$("#cover").css({height: $doc.height(), display: "block"});
		$popup.find("." + settings.closeButtonClass).eq(0).focus();
	};
})(jQuery);

var windowP = false;
function windowPopup(url, name, config){
	windowP = window.open(url, name, config);//this.href, 'response', 'width=1024,height=750,toolbar=0,location=0,directories=0,menubar=0,scrollbars=auto,resizable=1,status=0');
	
	windowP.focus();
	//$(windowP.window).unload(function() { alert('hello'); });
var watchClose = setInterval(function() {
	if (windowP.closed) {
	 clearTimeout(watchClose);
	$.getJSON('/vacancy/alert/', function(data) {
	if(data) {
		$.showPopup(data);
	}
});
	}
 }, 200);


	return false;
}

var showLinks = function(i) {
  var $currentHover = $(".vvl-hover-");
  if($currentHover.index() == i) {
	$currentHover.find(".favorite- a").css({display: "inline"});
	$currentHover.find(".favorite-").stop().animate({opacity: 1}, "fast");
   // $currentHover.stop().animate({backgroundColor: "#e5ffc1"}, "fast");
  }
};

$.extend($.fn, {
	verticalFloat: function(options) {
		return this.each(function() {
			$(this).data('verticalFloat', new VerticalFloat(this, options));
		});
	}
});

VerticalFloat = function(elem, options){
	this.elem = $(elem);
	
	this.settings = $.extend(true, {
		topShift: 0,
		controlObj: null
	}, options);
	
	this.set();
};

$.extend(VerticalFloat.prototype, {
	set: function(){
		var $doc = $(document);
		$doc.data("verticalFloatBlock", this.elem);
		this.startTop = this.elem.offset().top;
		if($.browser.msie && $.browser.version < 9) {
			$(window).bind("scroll", function() {
				$(document).data("verticalFloatBlock").data("verticalFloat").relocate();
			});
		} else {
			$doc.bind("scroll", function() {
				$(document).data("verticalFloatBlock").data("verticalFloat").relocate();
			});
		}
		this.relocate();
	},
	relocate: function() {
		if(this.settings.controlObj.size() > 0) this.settings.topShift = this.settings.controlObj.height();
		var scrollTop = parseInt($(document).scrollTop());
		if(scrollTop + this.settings.topShift <= this.startTop) {
			this.elem.removeClass("fixed").css({top: "auto"});
		} else if((parseInt(scrollTop) + this.settings.topShift > parseInt(this.startTop)) && (parseInt(scrollTop) - parseInt(this.settings.topShift) + parseInt(this.elem.outerHeight()) < this.elem.parent().parent().height())) {
			this.elem.removeClass("stucked").addClass("fixed").css({top: this.settings.topShift});
		} else if (scrollTop - this.settings.topShift + parseInt(this.elem.outerHeight()) >= this.elem.parent().parent().height()) {
			this.elem.removeClass("fixed").addClass("stucked").css({top: this.elem.parent().parent().height() - this.elem.outerHeight()});
		}
	}
});
