/*
	general.js
	2010-03-03, Oleksandr
*/
function getElement(id) {
	return document.getElementById(id);
}

function getHead() {
	return document.getElementsByTagName("head")[0];
}

function getBody() {
	return document.getElementsByTagName("body")[0];
}

function deleteElement(id) {
	getElement(id).parentNode.removeChild(getElement(id));
}

function setOnload(f) {
	var
		onloadPrevious = window.onload;
	if (typeof(window.onload) != "function") {
		window.onload = f;
	} else {
		window.onload = function() {
			onloadPrevious();
			f();
		}
	}
}

function searchCheck_Simple(searchStatus) {
	if (getElement("searchInput_Field")) {
		var searchInput_Field = getElement("searchInput_Field").value;
		if (
			trim(searchInput_Field) != ""
			&&
			searchInput_Field.toLowerCase() != (searchStatus ? searchStatus.toLowerCase() : "search")
		) {
			return true;
		} else {
			alert("Please, specify search string first and try again.");
			getElement("searchInput_Field").focus();
			return false;
		}
	}
}

function setCookie(name, value, expires, path, domain, secure) {
	document.cookie = name + "=" + escape(value) +
	((expires) ? "; expires=" + expires : "") +
	((path) ? "; path=" + path : "") +
	((domain) ? "; domain=" + domain : "") +
	((secure) ? "; secure" : "");
}

function getCookie(name) {
	var
		cookie = " " + document.cookie,
		search = " " + name + "=",
		setStr = null,
		offset = 0,
		end = 0;
	
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
}

function getCoordinates(id) {
	var
		id = getElement(id);

	var
		left = id.offsetLeft,
		top = id.offsetTop;
		
	for (var parent = id.offsetParent; parent; parent = parent.offsetParent) {
		left += parent.offsetLeft - parent.scrollLeft;
		top += parent.offsetTop - parent.scrollTop;
	}
	
	return {
		width: id.offsetWidth,
		height: id.offsetHeight,
		left: left,
		top: top
	};
}

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);
	else
		throw "Incompatible browser";
}

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);
	else
		throw "Incompatible browser";
}

function setAnchor() {
	if (getBody().getElementsByTagName("a").length) {
		var anchorArray = getBody().getElementsByTagName("a");
		for (var i = 0; i < anchorArray.length; i++) {
			if (
				(anchorArray[i].getAttribute("name") != "" && anchorArray[i].getAttribute("name") != null)
				&&
				(anchorArray[i].getAttribute("href") == "" || anchorArray[i].getAttribute("href") == null)
			) {
				anchorArray[i].className = (anchorArray[i].className == "") ? "anchor" : anchorArray[i].className + " anchor";
			}
		}
	}
}

function classOver(object, classAppend) {
	if (object) {
		if (getElement(object)) {
			object = getElement(object);
		}
		if (!classAppend) {
			var classAppend = "over";
		}
		if (!object.getAttribute("classPrevious")) {
			object.setAttribute("classPrevious", (object.className != "" && object.className != classAppend) ? object.className : "");
		}
		var
			classPrevious = object.getAttribute("classPrevious");
		if (object.className == "" || object.className == classPrevious) {
			object.className = (classPrevious == "") ? classAppend : classPrevious + " " + classAppend;
		} else {
			object.className = (classPrevious == "") ? "" : classPrevious;
		}
	}
}

function setFavorites() {
	document.all ? window.external.addFavorite(window.location.href, document.title) : alert('Press CTRL and D to add a bookmark to:\n' + document.title);
	return false;
}
