function initializeBanginis() {
	jQuery('a[rel*=lightbox]').lightBox();
	initializeHoveredBlock("__select_city__");
	initializeRentForm();
	initializeSubscription();
	defaultValueByFocus("quick_search_key");
	defaultValueByFocus("subscribe_email");
	initializeCityMenu();
	if ($("#slideshow").length > 0) {
		slideshow.get("promotions");
	}
	if ($("#slideshow2").length > 0) {
		slideshow.get("shops");
	}
	initializeCityChoose();
	initializeCityIndex();
}

function postForm(elForm, uri, elTarget) {
	var listener = {"el" : elTarget === undefined ? elForm.parent() : elTarget}
	listener.success = function(response) {
		this.el.html(response);
	}
	$.ajax(
		{
			type : "POST", url : uri, data : elForm.serialize(),
			context : listener, success : listener.success
		}
	);
	return void(0);
}

function defaultValueByFocus(id) {
	var el = $("#" + id);
	if (!el.length || !el.attr("default_value")) {
		return false;
	}
	var listener = {};
	listener.focus = function(event) {
		var el = event.data.el;
		if (el.attr("value") == el.attr("default_value")) {
			el.attr("value", "");
		}
	}
	listener.blur = function(event) {
		var el = event.data.el;
		if (el.attr("value") == "") {
			el.attr("value", el.attr("default_value"));
		}
	}
	var data = {"el" : el};
	el.bind("focus", data, listener.focus);
	el.bind("blur", data, listener.blur);
	listener.blur({"data" : data});
}

function setMapCity(id, uri) {
	var el = $("#city_" + id);
	var data = {"elTooltip" : $("#tooltip_city_" + id)};

	var listener = {};
	listener.over = function(event) {
		event.data.elTooltip.show();
	}
	listener.out = function(event) {
		event.data.elTooltip.hide();
	}

	el.bind("mouseover", data, listener.over);
	el.bind("mouseout", data, listener.out);
	data.elTooltip.bind("mouseover", data, listener.over);
	data.elTooltip.bind("mouseout", data, listener.out);
	el.attr("href", uri)
}

__flash_map_uri__ = null;
__last_request__ = null;
function setShopId(id) {
	var listener = {"id" : id}
	listener.success = function(response) {
		if (__last_request__ != this.id) {
			return false;
		}
		$("#shop_info_main").html(response);
		var el = $("#__temp__");
		$("#shop_info_extended").html(el.html());
		el.remove();
	}
	__last_request__ = id;
	$.ajax({url: __flash_map_uri__ + id, context: listener, success: listener.success});
}

function initializeHoveredBlock(id) {
	var el = $("#" + id);
	if (!el.length) {
		return false
	}

	var listener = {"el" : el};
	listener.over = function(event) {
		event.data.el.addClass("hover");
	}
	listener.out = function(event) {
		event.data.el.removeClass("hover");
	}

	el.bind("mouseover", listener, listener.over);
	el.bind("mouseout", listener, listener.out);
}

function initializeRentForm() {
	var el = $("#__form_field_object_other__");
	if (!el.length) {
		return false
	}
	var listener = {"el" : el, "elCheckbox" : el.parent().children("input")};
	listener.change = function(event) {
		event.data.el.attr("disabled", !event.data.elCheckbox.attr("checked"))
	}

	listener.elCheckbox.bind("change", listener, listener.change);
}

function initializeSubscription() {
	$( "#subscribe" ).dialog(
		{autoOpen: false, modal: true, draggable:false, width: 400, resizable: false}
	);
	$("#subscribe-button").click(function() {
		$("#subscribe").dialog("open");
		return false;
	});
}
function initializeCityMenu() {
	var nodes = $("#__menu_city_top__ li.has-childs");
	var l = nodes.length;
	for (var i = 0; i < l; i++) {
		initializeCitySubMenu($(nodes[i]));
	}
}
function initializeCitySubMenu(el) {
	var listener = {"el" : el.find("div.submenu2"), duration : 100};
	listener.over = function(event) {
		var el = event.data.el;
		el.stop();
		if (!el.attr("real_height")) {
			el.attr("real_height", el.height());
		}
		el.height(0);
		el.parent().addClass("hover");
		el.animate({"height" : el.attr("real_height")}, this.duration);
	}
	listener.onComplete = function(event) {
		$(this).parent().removeClass("hover");
	}
	listener.out = function(event) {
		var el = event.data.el;
		el.stop();
		el.height(el.attr("real_height"));
		el.animate({"height" : 0, duration : this.duration}, {complete : event.data.onComplete});
	}

	el.bind("mouseenter", listener, listener.over);
	el.bind("mouseleave", listener, listener.out);
}
function initializeCityChoose() {	
	var listener = {"el" : $("#confirm")};
	if (listener.el.length < 1) {
		return false;
	}
	listener.onClick = function(event) {
		event.data.el.dialog("open");
		return false;
	}
	listener.onGo = function(remember) {
		var uri = this.el.attr("href") + ',remember.' + remember;
		if ($("#dont-show").attr("checked")) {
			uri += ",hidepopup.1";
		}
		document.location = uri;
		return false;
	}
	listener.onYes = function(event) {
		return event.data.onGo(1);
		
	}
	listener.onNo = function(event) {
		return event.data.onGo(0);
	}
	listener.el.dialog({autoOpen: false, modal: true, draggable:false, width: 400, resizable: false});
	$(".city").bind("click", listener, listener.onClick);
	listener.el.find(".yes").bind("click", listener, listener.onYes);
	listener.el.find(".no").bind("click", listener, listener.onNo);
}
function initializeCityIndex() {
	var el = $(".column-blocks-inner");
	if (el.length < 1) {
		return false;
	}
	var nodes = el.children();
	var l = nodes.length;
	var height = 0;
	for (var i = 0; i < l; i++) {
		height = Math.max(height, $(nodes[i]).height());
	}	
	$(".column-blocks-inner .present").attr("style", "height: " + (height - 20) + "px !important");
}
