/*
	general.js
	2010-07-15, 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, searchField) {
	if (!searchField) {
		var searchField = "searchInput_Field";
	}
	if (getElement(searchField)) {
		var searchInput_Field = getElement(searchField).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(searchField).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;
}


	function checkInt(el)
	{
		var val = (el.value + '').replace(/^[^0-9]+|[^0-9]+$/g, '').replace(/^([0-9]+).*$/, '$1');
		if (el.value * 1 != val)
			el.value = val;
	}

	function checkMaxWords(el, count)
	{
/*		var val = el.value + '';
		var reg = new RegExp("^((\\W*\\w+){1," + count + "}).*$");
		val = val.replace(reg, '$1');

		if (val != el.value)
			el.value = val;
*/
	}


	function parseJson(text)
	{
		var res;
		try {
			res = eval('(' + text + ')');
		} catch(e) {
			res = false;
		}

		return res;
	}


	function getXmlHttpObject()
	{
		if (window.XMLHttpRequest)
		{
			// code for IE7+, Firefox, Chrome, Opera, Safari
			try {
				return new XMLHttpRequest();
	
			} catch (e) {
	
				// code for IE6, IE5
				return new ActiveXObject("Microsoft.XMLHTTP");
			}
	
		} else {
	
			// code for IE6, IE5
			return new ActiveXObject("Microsoft.XMLHTTP");
		}
	
		return null;
	}

	function checkMaxlength(tag) 
	{
		if (tag.getAttribute("maxlength")) 
		{
			var maxlength = parseInt(tag.getAttribute("maxlength"));
			if (tag.value.length > maxlength) 
				tag.value = tag.value.substring(0, maxlength);
		}
	}
