Rimory.ui = {};
Rimory.ui.init = function () {
	// Форма за търсене
	$("#q").css("opacity","0.8")
		.bind("blur",  function() { $(this).css("opacity","0.8"); if(this.value == '') { $(this).removeClass("focus"); this.value = 'Search'; } } )
		.bind("focus", function() { $(this).css("opacity","1").addClass("focus"); if(this.value == 'Search') this.value = ''; } )
		.bind("keyup", function (event) { 
			if(event.keyCode == 27) this.blur(); 
			if(event.keyCode == 13) Rimory.ui.search();
		});
	if($("#q").val() == "") $("#q").val('Search');

	$("#country").css("opacity","0.8")
		.bind("blur",  function() { $(this).css("opacity","0.8"); })
		.bind("focus", function() { $(this).css("opacity","1") })
		.change(function () { Rimory.ui.search(); });
	//$("#search > a").click(function () { Rimory.ui.search(); this.blur(); });
	$("#search").click(function () { Rimory.ui.search(); this.blur(); });

	// Бутони в менюто
	$("#menu").children("li")
		.hover(
			function() { $(this).addClass("hover"); },
			function() { $(this).removeClass("hover"); }
		);

	// Приложения
	$("#menu .app").find("a").click(function (event) {

		Rimory.activate_state(this.href.replace(/^.*\/app\//g,"").replace(/\/$/g,""));
		event.preventDefault();
		this.blur();
		return false;

		if($(this).parent().attr("rel") == "more") {
			if($("#menu a[href*=/app/" + Rimory.map.state + "]").size()) {
				$("#menu .app").filter(".down").removeClass("down");
				Rimory.activate_state(false);
				if($("#map_form").is(":hidden")) {
					$("#map_form").show();
				}
				$(this).parent().addClass("down");
			}
			else {
				if($("#map_form").is(":visible")) {
					$(this).parent().removeClass("down");
					$("#map_form").slideUp();
				}
				else {
					$(this).parent().addClass("down");
					$("#map_form").slideDown();
				}
			}
		}
		else {
			if($(this).parent().attr("rel") == Rimory.map.state && false) {
				if($("#map_form").is(":visible")) {
					$(this).parent().removeClass("down");
					$("#map_form").slideUp();
				}
				else {
					$(this).parent().addClass("down");
					$("#map_form").slideDown();
				}
			}
			else {
				Rimory.activate_state(this.href.replace(/^.*\/app\//g,"").replace(/\/$/g,""));
			}
		}
		event.preventDefault();
		this.blur();
		return false;
	});
	$(".apps ul").find("a").click(function (event) {
		Rimory.activate_state(this.href.replace(/^.*\/app\//g,"").replace(/\/$/g,""));
		event.preventDefault();
		this.blur();
		return false;
	});
};

// SHOW HIDE PANELS
Rimory.ui.view = function () {
	if($("#filter").is(":visible")) {
		$("#view").removeClass("down");
		$("#filter").slideUp(function () {
			$("#map_form").animate({ right : "10px" }, 500);
		});
	}
	else {
		$("#view").addClass("down");
		$("#filter").slideDown();

		/*$("#map_form").animate({ right : "230px" }, 500, function () {
			$("#filter").slideDown();
		});*/
	}
};

Rimory.ui.apps = function () {
	var ok = true;
	if(Rimory.map.state != "_basic") var ok = Rimory.inst[Rimory.map.state].end();
	if(ok) {
		$("#menu li.down").not("#b_app").removeClass("down");
		if($("#map_form").is(":visible")) {
			$("#b_app").removeClass("down");
			$("#map_form").slideUp();
		}
		else {
			$("#b_app").addClass("down");
			$("#map_form").slideDown();
		}
	}
};

Rimory.ui.customView = function(del) {
	$("#custom_view").load("/custom_view/" + ( (typeof del).toLowerCase() != "undefined" ? "?del=" + del : ""), function () {
		Rimory.inst[Rimory.map.state].view_change();
		if($("#custom_view").find("li").size() == 1) {
			if($("#custom_view").is(":visible")) {
				$("#custom_view").slideUp();
			}
			$("#categories > a > .arrow").click();
			return;
		}

		$("#custom_view > a > .arrow").click();

		if($("#custom_view").is(":hidden")) {
			$("#custom_view").slideDown();
		}
		if($("#custom_view").find("li a.checked").size()) {
			if($("#custom_view").find("li a").size() == $("#custom_view").find("li a.checked").size()) 
				$("#custom_view").children("a").addClass("checked");
			else
				$("#custom_view").children("a").addClass("undetermined");
		}
	});
};

// SEARCH
Rimory.ui.search = function () {
	var a = $("#country").val();
	var b = $("#q").val().replace("Търси","").replace("Search","");
	if(a == 0) a = "";
	var srch = "";

	Rimory.map.hide_bubble();

	if(a.length && b.length) srch = a.replace(/_.+$/ig,"") + "," + b;
	else if(b.length) srch = b;
	else if(a.length) {
		a = a.split("_");
		Rimory.map.instance.setCenter(new GLatLng( parseFloat(a[1]), parseFloat(a[2]) ), 6);
		return;
	}
	else {
		Rimory.map.instance.setCenter(new GLatLng(20.0,20.0), 2)
		return;
	}
	if(srch.length) {
		Rimory.map.search(srch); 
		Rimory.search = true;

		$("#search").css("display","none");
		$("#q").next().css("display","block");
		$("#view_panel").children(".title").text("Search results");
		$("#view_panel > .content").children("ul, p").remove();
	}
};

// DOCUMENT LOADING
Rimory.ui.blend = function (on, no_state) {
	if(on) {
		var blend = $("<div id='blend'>&nbsp;</div>");
		$("html, body").css("overflow","hidden");
		blend.height($(document).height()).width($(document).width()).css("opacity","0.5");
		$("body").append(blend);
	}
	else {
		$("#blend, #document").remove();
		$("html, body").css("overflow","auto");
		Rimory.ui.url = false;
		document.location.hash = "#";
		if(Rimory.map.state && Rimory.map.state != "_basic") document.location.hash = "/app/" + Rimory.map.state;
		if(!no_state && Rimory.map && Rimory.map.instance) Rimory.map.getHash();
	}
};
Rimory.ui.document = function (url, sml) {
	Rimory.ui.blend(true);
	url += (url.indexOf("?") == -1) ? "?iframe" : "&iframe";
	$("body").append("<div id='document' " + (sml == true ? " class='small' " : "") + "><iframe src='" + url +"' class='data'></iframe></div>");
	return false;
}
Rimory.ui.document_height = function (h) {
	if(h > $(window).height() - 20) {
		h = $(window).height() - 40;
		var oo = $("#document > .data").get(0).contentWindow.document.getElementById("iframe_content");
		if(oo) {
			oo.style.height = (h - oo.previousSibling.offsetHeight - 4) + "px";
		}
		$("#document > .data").height(h);
	} 
	else $("#document > .data").height((h + 4));
	h = -h/2 + $(document).scrollTop();
	$("#document").css("marginTop", h + "px");
}