var Dom = YAHOO.util.Dom;
var Event = YAHOO.util.Event;
var http = "",
	object_id = 0,
	language = "",
	admin_template = "",
	no_types_text = "",
	no_clients_text = "",
	no_works_text = "";

Event.onDOMReady(function () {
	Dom.getElementsByClassName("news-title-row-link", 'div', document, function (element) {
		var span = Dom.getFirstChild(element);
		var link = Dom.getLastChild(element);
		link.innerHTML = span.innerHTML + link.innerHTML;
		element.removeChild(span);
	});
	
	if (Dom.inDocument('works_left_menu')) {
		Dom.setStyle('works_left_menu', "display", "none");
		Dom.setStyle('works_right_menu', "display", "none");

		var hash = window.location.hash;
		for_what = hash.substr(1);
		setPageStyle(for_what);
		Dom.get("language_link").href = Dom.get("language_link").href + hash;
		loadList("works_left_menu", for_what, hash, object_id, "loadList('works_right_menu', 'works', '" + hash + "', " + object_id + ", '');");
		
		Event.addListener("another_works", "click", function () {
			setPageStyle("clients");
			Dom.get("language_link").href = Dom.get("language_link").href + "#clients";
			loadList("works_left_menu", "clients", "#clients", object_id, "loadList('works_right_menu', 'works', '#clients', " + object_id + ", '');");
		});
	}
});

function setPageStyle(for_what) {
	var types_childs = Dom.getChildren("by_types");
	var clients_childs = Dom.getChildren("by_clients");
	if (for_what == "clients") {
		Dom.setStyle(clients_childs[0], "display", "inline");
		Dom.setStyle(clients_childs[1], "display", "none");
		Dom.setStyle(types_childs[0], "display", "none");
		Dom.setStyle(types_childs[1], "display", "inline");
		Dom.setStyle("another_works", "display", "none");
	} else {
		Dom.setStyle(types_childs[0], "display", "inline");
		Dom.setStyle(types_childs[1], "display", "none");
		Dom.setStyle(clients_childs[0], "display", "none");
		Dom.setStyle(clients_childs[1], "display", "inline");
		Dom.setStyle("another_works", "display", "block");
	}
}

function reLoadList(div_id, for_what, callback) {
	loadList(div_id, for_what, "", callback);
}

function showLoadingText(forDiv, hide) {
	if (hide) {
		Dom.setStyle(Dom.getPreviousSibling(forDiv), "display", "none");
		Dom.setStyle(forDiv, "display", "block");
	} else {
		Dom.setStyle(forDiv, "display", "none");
		Dom.setStyle(Dom.getPreviousSibling(forDiv), "display", "block");
	}
}

function loadList(div_id, for_what, hash, object_id, callback) {
	for_what = for_what || "types";
	hash = hash || "#types";

	if (div_id != "works_right_menu") {
		showLoadingText('works_left_menu');
	}
	showLoadingText('works_right_menu');
	if (hash != "#types") {
		Dom.get(div_id).innerHTML = "";
	} else {
		showLoadingText(div_id, true);
		if (callback) {
			eval(callback);
		}
		return;
	}

	YAHOO.util.Connect.asyncRequest("POST", http + "action.php" + (admin_template != "" ? "?admin_template=" + admin_template : ""), {
			success: function(o) {
				try {
					response = YAHOO.lang.JSON.parse(o.responseText);
				} catch (x) {
					alert("JSON Parse failed!");
					return;
				}
				if (response.success)
				{
					records = response.records;
					showLoadingText(div_id, true);
					var contentHTML = "";
					for (i=0; i<records.length; i++) { 
						contentHTML +=	'<div class="works-row' + (records[i].selected == 1 ? ' selected' : '') + '">'+
											'<div class="works-row-link">'+
												'<a class="link-in-menu" href="' + records[i].link + hash + '" title="' + records[i].object_link_title + '">' + records[i].value + '</a>'+
											'</div>'+
										'</div>';
					}
					Dom.get(div_id).innerHTML = contentHTML;
					if (callback) {
						eval(callback);
					}
				}
				else
				{
					var empty_list_text = "";
					eval("empty_list_text = no_" + for_what + "_text");
					Dom.getPreviousSibling(div_id).innerHTML = empty_list_text;
					Dom.setStyle(Dom.getPreviousSibling(div_id), "display", "block");
				}
			},
			failure: function(o) {}
		},
		"action=get_json_list&for=" + for_what + "&hash=" + hash.substr(1) + "&object_id=" + object_id + "&language=" + language
	);
}
