document.documentElement.id = "js";

jQuery(function($) {
	if($.browser.msie) {
		try {
			document.execCommand('BackgroundImageCache', false, true);
		} catch(e) {}
	}
});

/* hoverScroll lite by Anton Platonov, contact me: platosha@gmail.com */
(function($) {
	$.hoverScroll = {
		defaults: {
			fps: 30,
			speed: 300
		}
	};
	$.hoverScroll.go = function(e) {
		var hs = e.hoverScroll;
		var o = hs.opts;
		var v = o.vars;
		var pos = v.pos;
		var dt = o.delay/1000;
		
		if(e.scrollLeft==0) {
			e.scrollLeft = v.sl;
		}
		
		if(v.phase<0) {
			v.phase=0;
			v.startX = e.scrollLeft;
		}
		
		var direction;
		if (pos<0.5) {
			direction = -1;
		} else if(pos>0.5) {
			direction = 1;
		} else {
			direction = 0;
		}
		var sw = e.scrollWidth;
		var sdistance = sw-e.offsetWidth-e.scrollLeft;
		if(v.phase==0 && direction==1 && sdistance==0 || e.scrollLeft==0 && direction==-1 || v.phase>0 || direction==0) {
			hs.stop();
			return;
		}
		if(v.phase==0) {
			v.dX = direction*o.speed;
			v.dS += v.dX*dt;
		}
		
		if(Math.abs(v.dS) >= 1) {
			e.scrollLeft += v.dS;
			v.dS = 0;
		}
		v.sl = e.scrollLeft;
		v.tID = setTimeout(function() {$.hoverScroll.go(e)} , o.delay);
	};
	
	$.fn.hoverScroll = function(options) {
		var opts = $.extend({}, $.hoverScroll.defaults, options);
		
		opts.delay = 1000/opts.fps;
		opts.vars = {
			dX: 0,
			dS: 0,
			tID: -1,
			phase: -1,
			startX: 0,
			sl: 0
		}
		
		return this.each(function() {
			var $this = $(this);
			tID = 0;
			this.hoverScroll = {}
			this.hoverScroll.element = this;
			this.hoverScroll.opts = opts;
				
			this.hoverScroll.going = function() {
				return opts.vars.tID>=0;
			}
			this.hoverScroll.brake = function() {
				opts.vars.phase = 1;
			}
			this.hoverScroll.stop = function() {
				clearTimeout(opts.vars.tID);
				opts.vars.tID = -1;
				opts.vars.pos = 0.5;
				opts.vars.phase = -1;
				opts.vars.dX = 0;
			};
			this.hoverScroll.forward = function() {
				opts.vars.pos = 1;
				opts.vars.phase = 0;
				if(opts.vars.tID<=0) {
					$.hoverScroll.go(this.element);
				}
			};
			this.hoverScroll.backward = function() {
				opts.vars.pos = 0;
				opts.vars.phase = 0;
				if(opts.vars.tID<=0) {
					$.hoverScroll.go(this.element);
				}
			};
		})
		.css({overflow: 'hidden'});
	};
})(jQuery);

/* Photo reports */
jQuery(function($) {
	var $rtape = $('.photoreports .phototape');
	var pt = $rtape.get(0);
	
	$rtape
		//.removeClass('phototape-no-js')
		.hoverScroll({
			fps: 50,
			speed: 200
		});
	$rtape.parent().children('.forward')
		.mouseover(function() {
			$(this).addClass('hover');
			pt.hoverScroll.forward();
		})
		.mouseout(function() {
			$(this).removeClass('hover');
			pt.hoverScroll.brake();
		});
	$rtape.parent().children('.backward')
		.mouseover(function() {
			$(this).addClass('hover');
			pt.hoverScroll.backward();
		})
		.mouseout(function() {
			$(this).removeClass('hover');
			pt.hoverScroll.brake();
		});
});

/* Rooms options */
jQuery(function($) {
	var $ro = $('.form-item-rooms');
	
	//$ro.addClass('form-item-rooms-js');
	
	$('.rooms-option', $ro)
		.each(function() {
			this.$input = $('input', this);
			this.$label = $('label', this);
			this.update = function() {
				if(this.$input.is(':checked')) {
					this.$label.addClass('active');
				} else {
					this.$label.removeClass('active');
				}
			};
			
			this.$input.change(function() { this.parentNode.update(); });
			this.$label.click(function() { this.parentNode.update(); });
			this.$input.click(function() { this.parentNode.update(); });
			this.$input.keypress(function() { this.parentNode.update(); });
			
			this.$input.focus(function() {
				this.parentNode.$label.parent().addClass('focus');
			});
			this.$input.blur(function() {
				this.parentNode.$label.parent().removeClass('focus');
			});
			
			this.update();
		});
});

/* Moscow metro popup */
(function($) {
	$.fn.selectBox = function(options) {
		var opts = $.extend({}, $.fn.selectBox.defaults, options);
		return this.each(function() {
			var $this = $(this);
		});
	}
	
	$.fn.selectBox.defaults = {
		
	};
	
	$(function() {
		$.fn.selectBox.$cover = $('<div class="cover"></div>')
			.appendTo('body')
			.hide();
		
		$.fn.selectBox.$cover[0].resize = function() {
			var page = document.body;
			var w = (page.offsetWidth>document.body.scrollWidth) ? page.offsetWidth : document.body.scrollWidth;
			var h = (page.offsetHeight>document.body.scrollHeight) ? page.offsetHeight : document.body.scrollHeight;
			if(document.documentElement.clientHeight > h) h = document.documentElement.clientHeight;
			if(w < '990') w=990;
				$(this).width(w).height(h);
		};
		$(window).resize(function() {
			$.fn.selectBox.$cover[0].resize();
		});
		$.fn.selectBox.$cover[0].resize();
		
	});
})(jQuery);

jQuery(function($) {
	//$('.form-item-district').addClass('form-item-district-js');
	var $disa = $('.form-item-district a');
	var $dis = $('#f-district');
	
	$dis.attr('multiple', 'multiple');
	
	if(!$dis.length) return false;
	
	//$cover = $('<div class="cover"></div>').appendTo('body').hide();
	var $cover = $.fn.selectBox.$cover;
	
	
	$swrap = $('<div class="select-wrap"><div class="select-wrap-inner"></div>')
		.appendTo('body')
		.hide();
	var $select = $('<div class="select"></div>')
		.appendTo($('.select-wrap-inner', $swrap))
		.before($('<div class="shadow shadow-top"><div class="shadow shadow-corner-left"></div><div class="shadow shadow-corner-right"></div></div>'))
		.after($('<div class="shadow shadow-bottom"><div class="shadow shadow-corner-left"></div><div class="shadow shadow-corner-right"></div></div>'))
		.wrap($('<div class="shadow shadow-right"></div>'))
		.wrap($('<div class="shadow shadow-left"></div>'));
	
	if($.browser.msie && parseInt($.browser.version) <= 7 && DD_belatedPNG) {
		DD_belatedPNG.fix('.shadow');
	}
	
	$select.html('<table border="0"><tbody></tbody></table>');
	var $tsb = $('tbody', $select);
	
	$('.select table a.immediate').live('click', function() {
		if($(this).is('.selected')) {
			$(this).removeClass('selected');
		} else {
			$(this).addClass('selected');
		}
	});
	
	$dis.each(function() {
		this.update = function() {
			$('table a.immediate.selected', $select)
				.removeClass('selected');
			$('option:selected', this).each(function() {
				var i = $('option', this.parentNode).index(this);
				$('a.opt-' + i, $select)
					.addClass('selected');
			});
		}
		
		this.updatePopup = function() {
			$disa[0].textWas = $disa.text();
			
			var $tsb = $('tbody', $swrap);
			$tsb.empty();
			
			var $options = $('option', this);
			var ol = $options.length;
	
			var ncols = 7;
			var npercol = [];
			var opercol = [];
			var i, j;
			for(i=ncols; i--;) {
				npercol[i] = Math.floor(ol/ncols) + (i < ol%ncols);
			}
			$.each(npercol, function(i) {
				opercol[i] = (i==0) ? 0 : opercol[i-1] + npercol[i-1];
			});
			for(i=0; i<npercol[ncols-1]; i++) {
				$tr = $('<tr></tr>').appendTo($tsb);
				for(j=0; j<ncols; j++) {
					var oi = i + opercol[j];
					$tr.append('<td><a href="#opt-' + oi + '" class="immediate opt-' + oi + '">' + $options.eq(oi).text() + '</a></td>');
				}
			}
			if(npercol[0] > npercol[ncols-1]) {
				i=npercol[0]-1;
				$tr = $('<tr></tr>').appendTo($tsb);
				for(j=0; j<ncols; j++) {
					var oi = i + opercol[j];
					if(npercol[j]==npercol[0]) {
						$tr.append('<td><a href="#opt-' + oi + '" class="immediate opt-' + oi + '">' + $options.eq(oi).text() + '</a></td>');
					} else {
				$tr.append('<td>&nbsp;</td>');
					}
				}
			}
			this.update();
		}
		this.updatePopup();
	});
	
	
	$cover.click(function() {
		$(this).hide();
		$swrap.hide();
		if($.browser.msie && $.browser.version <= 6) {
			$('select.hidden-temp').show().removeClass('hidden-temp');
		}
	});
	$('<a href="#" class="act-close">&times;</a>')
		.appendTo($select)
		.click(function() {
			$cover.click();
			return false;
		});
	$('<button class="choose">Выбрать</button>')
		.appendTo($select)
		.click(function() {
			$('option', $dis).removeAttr('selected');
			var $selected = $('table a.immediate.selected', $select);
			$selected.each(function(){
				var i = this.hash.slice(5);
				$('option', $dis)
					.eq(i)
					.attr('selected', 'selected');
			});
			if($selected.length) $disa.text('Выбор сделан');
			else $disa.text($disa[0].textWas);
			$dis.get(0).updated = true;
			$cover.click();
			return false;
		});
	$disa.click(function() {
		if($("#pr_id").val()=="11"){
			$.fn.colorbox({href:"/metro.php",width:"700",height:"765",inline:false});
			return;
		}
		if($("#pr_id").val()=="190"){
			$.fn.colorbox({href:"/static/metro_spb.php",width:"660",height:"585",inline:false});
			return;
		}
		var cid=$("#cat_id").val()
		if($("#pr_id").val()=="14" && (cid=="4" || $("#cat_id").val()=="5" || cid=="6" || cid=="15")){
			$.fn.colorbox({href:"/metro_mo.php",width:"870",height:"670",inline:false});
			return;
		}
		if($("#pr_id").val()=="14" && (cid=="1" || $("#cat_id").val()=="2" || cid=="3" || cid=="7" || cid=="8" || cid=="10" || cid=="16")){
			$.fn.colorbox({href:"/metro_mor.php",width:"860",height:"725",inline:false});
			return;
		}
		if($(this).is('.disabled')) return false;
		$dis.get(0).update();
		$cover.show();
		if($.browser.msie && $.browser.version <= 6) {
			$('select:visible')
				.addClass('hidden-temp')
				.hide();
		}
		$swrap.css('top', (document.documentElement.clientHeight - $swrap.height())/2 + document.documentElement.scrollTop + 'px');
		$swrap.show();
		
		return false;
	});
});

jQuery(function($) {
	var $typea = $('.form-item-type a');
	$typea.toggle(function() {
		$(this).parent().children('fieldset').slideDown('fast');
		
		$(this).addClass('up');
		return false;
	}, function() {
		$(this).parent().children('fieldset').slideUp('fast');
		if(!$('input:checked', this.parentNode).length)
			$('span', this).text('Выбрать тип');
		else 
			$('span', this).text('Выбор сделан');
		$(this).removeClass('up');
		return false;
	});
});

/* Custom delayed document.write(). Someday it will be enough stable to use it. */
/*document.forcewrite = document.write;
document.write = function(content) {
	if($.isReady) {
		if(window.$dwc) {
			window.$dwc.before(content);
		} else {
			document.body.append(content);
		}
	} else {
		document.forcewrite('<textarea style="display:none" class="dw-replaceme">' + content + '</textarea>');
	}
}
jQuery(window).load(function() {
	if(!window.lsID) window.lsID=0;
	$('textarea.dw-replaceme').each(function() {
		var content = $(this).val();
		var $content = $(content.replace('</script>', '</script><span class="lsid-' + window.lsID + '" style="display:none"></span>'));
		window.lsID++;
		var ta = this;
		$content.each(function(i) {
			if($(this).is('span[class^=lsid]')) {
				window.$dwc=$(this);
			}
		});
		$(this).replaceWith($content);
	});
});*/

/* Photo galleries init example */
jQuery(function($) {
	if($.browser.opera && parseFloat($.browser.version) < 9.5) {
		$.nyroModalSettings({
			showContent: function(elts, settings, callback) {
				//elts.content.css('overflow', 'hidden');
				elts.content.height(settings.height+16);
				$('a', elts.content).hide();
				elts.contentWrapper
					.css({
						marginLeft: settings.marginLeft,
						marginTop: settings.marginTop
					})
					.fadeIn('normal', callback);
			},
			endShowContent: function(elts, settings) {
				elts.content.height('auto');
				$('a', elts.content).show();
			},
			hideContent: function(elts, settings, callback) {
				elts.contentWrapper
				.fadeOut('fast', callback);
			}
		});
	}
	if($.fn.nyroModal) {
		$(".realty-object-gallery .image a[href*='jpg']")
			.attr('rel', 'gal')
			.addClass('nyroModal')
			.nyroModal();
		$('a.act-send')
			.nyroModal({
				autoSizable: false,
				minWidth: 480,
				minHeight: 270
			});
	}
});

/// СРАВНИЛКА
function OpenSrav(url){
	  var vv=window.open('/flat/compare.html?'+url,'kvadrom_compare','height=700,width=400,resizable=yes,scrollbars=yes,location=no,menubar=no,toolbar=no');
	  vv.focus();
}
function OpenBlok(url){
	  $.get('/notepad.html?'+url,function(data){
	  	eval(data);
	  });
}
