var IE = navigator.userAgent.indexOf("MSIE") != -1 && navigator.userAgent.indexOf("Opera") == -1;
var IE56 = (/MSIE (5|6)/.test(navigator.userAgent));

function addHandler(object, event, handler) {
	if (typeof object.addEventListener != 'undefined')
		object.addEventListener(event, handler, false);
	else if (typeof object.attachEvent != "undefined")
		object.attachEvent("on" + event, handler);
}

Function.prototype.bind = function(object) {
	var method = this
	return function() {
		return method.apply(object, arguments) 
	}
}

function removeHandler(object, event, handler)
{
	if (typeof object.removeEventListener != "undefined")
		object.removeEventListener(event, handler, false);
	else if (typeof object.detachEvent != "undefined")
		object.detachEvent("on" + event, handler);
}

function showSearchForm() {
	document.getElementById("searchFormPanel").style.display = "block";
	document.getElementById("searchTextBox").focus();
	CssClasses(document.getElementById("searchPicker")).add("searchPickerHighlight");
	addHandler(document.body, "mousedown", hideSearchForm);
}
function hideSearchForm(evt) {
	var evt = evt || event;
	var elem = evt.target || evt.srcElement;
	if(elem.parentNode.parentNode.id != "searchFormPanel")
	{
		document.getElementById("searchFormPanel").style.display = "none";
		CssClasses(document.getElementById("searchPicker")).remove("searchPickerHighlight");
		removeHandler(document.body, "mousedown", hideSearchForm);
	}
}

// класс-обёртка, явным образом обычно не создаётся
function CssClassesHandler(object) {this.object = object}

CssClassesHandler.prototype = {
	object : null,

	// возвращает все классы элемента в виде массива строк
	all : function() {
		return this.object.className.split(/\s+/);
	},

	// назначен ли элементу данный класс?
    exists : function(className) {
		var classes = this.all();
		for(var i = 0; i < classes.length; i++)
			if(classes[i] == className) return true;
		return false;
	},

    // назначает элементу класс
    add : function(className) {
		var classes = this.all();
		for(var i = 0; i < classes.length; i++)
			if(classes[i] == className) return;
		this.object.className = this.object.className + " " + className;
	},

    // удаляет класс из назначенных элементу
    remove : function(className) {
		var classes = this.all();
		var cn = "";
		for(var i = 0; i < classes.length; i++)
			if(classes[i] != className) cn = cn + " " + classes[i];
		this.object.className = cn.substr(1);
	},

    // назначает/удаляет класс в зависимости от булевского параметра state
    set : function(className, state) {
		if(state)
			this.add(className);
		else
			this.remove(className);
	},

    // назначает элементу класс, если он ещё не назначен, в противном случае удаляет
    flip : function(className) {
		if(this.exists(className))
			this.remove(className);
		else
			this.add(className);
	}
}

// функция, создающая класс-обёртку для данного элемента
function CssClasses(object) {
	return new CssClassesHandler(object);
}

function processEmptyMenuLinks() {
	//if(!IE) return;
	var menuLinks = document.getElementById("menu").getElementsByTagName("A");
	for(var i = 0; i < menuLinks.length; i++) {
		if(menuLinks[i].getAttribute("href") == null || menuLinks[i].getAttribute("href") == "") {
			addHandler(menuLinks[i], "click", preventEmptyMenuLinksClick);
			menuLinks[i].setAttribute("href", "#");
			menuLinks[i].style.cursor = "default";
			if(menuLinks[i].parentNode.parentNode.className != "menu")
				menuLinks[i].style.color = "#444";
		}
	}
}

function preventEmptyMenuLinksClick(evt) {
	var evt = evt || event;
	var elem = evt.target || evt.srcElement;
	elem.blur();
	if (typeof evt.preventDefault != "undefined")
		evt.preventDefault();
 	return false;
 }

function LIover(elem) {CssClasses(elem).add("hover")}
function LIout(elem) {CssClasses(elem).remove("hover")}

function attachOverOutEvents() {
	var LIs = document.getElementById("menu").getElementsByTagName("LI");
	for(var i = 0; i < LIs.length; i++) {
		if(LIs[i].className == "folder") {
			addHandler(LIs[i], "mouseover", function(){LIover(this)}.bind(LIs[i]));
			addHandler(LIs[i], "mouseout", function(){LIout(this)}.bind(LIs[i]));
		}
	}
}


function PicPreView(photo){
	Open='window.open("","newwin","toolbar=no,location=0,status=1,menubar=no,directories=0,scrollbars=1,resizable=1,top=0,left=0")';
	NewWindow=eval(Open);
	NewWindow.document.open();
	NewWindow.document.write('<html>\n<head>\n<title>Фото</title>\n</head>\n');
	NewWindow.document.write('<body marginheight="0" marginwidth="0">\n');
	NewWindow.document.write('<img src="'+photo+'" onClick="self.close();">\n');
	NewWindow.document.write('</body>\n</html>\n');
	NewWindow.document.close();
	return;
}

function do_menu_func(f,a) {
if (a)
	if(confirm(a+" вы уверены?")) 
       	document.forms[f].submit();
	else 
    	return false; 
else
	document.forms[f].submit();
}
