var userAgent = navigator.userAgent.toLowerCase();
var is_opera  = (userAgent.indexOf('opera') != -1);
var is_opera7  = (is_opera && document.readyState);
var is_saf    = ((userAgent.indexOf('applewebkit') != -1) || (navigator.vendor == 'Apple Computer, Inc.'));
var is_webtv  = (userAgent.indexOf('webtv') != -1);
var is_ie     = ((userAgent.indexOf('msie') != -1) && (!is_opera) && (!is_saf) && (!is_webtv));
var is_ie4    = ((is_ie) && (userAgent.indexOf('msie 4.') != -1));
var is_moz    = ((navigator.product == 'Gecko') && (!is_saf));
var is_kon    = (userAgent.indexOf('konqueror') != -1);
var is_ns     = ((userAgent.indexOf('compatible') == -1) && (userAgent.indexOf('mozilla') != -1) && (!is_opera) && (!is_webtv) && (!is_saf));
var is_ns4    = ((is_ns) && (parseInt(navigator.appVersion) == 4));
var is_mac    = (userAgent.indexOf('mac') != -1);

var is_regexp = (window.RegExp) ? true : false;
var pointer_cursor = (is_ie ? 'hand' : 'pointer');
var loginform = null;
var modeselect = null;

// Emulate document.getElementById
function findObject(idname) {
	if (document.getElementById) { return document.getElementById(idname); }
	else if (document.all) { return document.all[idname]; }
	else if (document.layers) { return document.layers[idname]; }
	else { return null; }
}

// Emulate document.getElementsByTagName
function findTags(parentobj, tag) {
	if (typeof parentobj.getElementsByTagName != 'undefined') { return parentobj.getElementsByTagName(tag); }
	else if (parentobj.all && parentobj.all.tags) { return parentobj.all.tags(tag); }
	else { return null; }
}

function toggleDisplay(tag, val) {
	if (sel = findTags(document, tag)) {
		for (var i = 0; i < sel.length; i++)
		sel[i].style.visibility = val;
	}
}

function LoginForm(ret,id) {
	if( is_opera && !is_opera7 ) return true;
	loginform = findObject('login-form');
	if (loginform != null) {
		if (m = findObject('login_mask')) {
			m.style.display = 'block';
			if (is_opera) m.style.background = 'none';
			m.style.height = self.document.body.offsetHeight + 'px';
			if (!is_moz) m.style.filter = 'alpha(opacity=60)';
		}
		if (modeselect = findObject('mode')) {
			modeselect.style.width = '70%';
		}
		toggleDisplay('SELECT', 'hidden');
		toggleDisplay('OBJECT', 'hidden');
		toggleDisplay('EMBED', 'hidden');
		toggleDisplay('IFRAME', 'hidden');
		loginform.style.top = document.body.clientHeight / 2 - 100 + document.body.scrollTop;
		if (!id) id = "";
		if (document.forms['login'].id) document.forms['login'].id.value = id;
		if (document.forms['login'].login) document.forms['login'].login.value = id;
		document.forms['login'].ret.value=ret || document.location.href;
		loginform.style.display = 'block';
		if (!is_moz) loginform.focus();

		if (((document.forms['login'].id) && (document.forms['login'].id.value != "")) || ((document.forms['login'].login) && (document.forms['login'].login.value != ""))) { setTimeout("document.forms['login'].pass.focus();", 100); }
		else {
			if (document.forms['login'].id) setTimeout("document.forms['login'].id.focus();", 100);
			if (document.forms['login'].login) setTimeout("document.forms['login'].login.focus();", 100);
		}
		return false;
	}
	return true;
}

function LoginFormClose() {
	if (loginform != null) loginform.style.display = 'none';
	toggleDisplay('SELECT', 'visible');
	toggleDisplay('OBJECT', 'visible');
	toggleDisplay('EMBED', 'visible');
	toggleDisplay('IFRAME', 'visible');
	if (modeselect != null) modeselect.style.width = '100%';
	if (m = findObject('login_mask')) m.style.display = 'none';
	return false;
}

// ROW
function setRows() {
	var lo = findObject('list-block');
	if (lo == null) return false;
	var tr = findTags(document, 'tr');
	for (var i = 0; i < tr.length; i++) {
		if (tr[i].className.indexOf("datarow") != -1) {
			tr[i].onmouseover = function() { this.className = "datarow_hover"; }
			tr[i].onmouseout = function() { this.className = "datarow"; }
		}
	}
}

function clearBR(obj) {
	var str = obj.value;
	str = str.replace(/[\r\n]+/g," ");
	if (str != obj.value) obj.value = str;
}

// input limit
function checkLimit(obj) {
	var maxlen = obj.getAttribute('maxlength');
	if (maxlen == null) return true;

	var ticker = findObject(obj.getAttribute('name') + '_ticker');
	if (ticker == null) return true;

	var str = obj.value;
	var len = str.length;
	if (len > maxlen) obj.value = str.substring(0, maxlen);

	ticker.style.display = "block";
	if (ticker.tagName.toLowerCase() == 'input') ticker.value = maxlen - obj.value.length;
	ticker.innerHTML = maxlen - obj.value.length;

	return true;
}

function setLimit() {
	var ta = findTags(document, 'textarea');
	for (var i = 0; i < ta.length; i++) {
		var maxlength = ta[i].getAttribute('maxlength');
		var clearbr = (ta[i].getAttribute('wrap') == 'on')?1:0;
		var ticker = findObject(ta[i].getAttribute('name') + '_ticker');
		if ((maxlength) && (ticker)) {
			if (ta[i].onkeyup == "undefined" || ta[i].onkeyup == null) {
				if (clearbr) ta[i].onkeyup = function() { clearBR(this); checkLimit(this); }
				else ta[i].onkeyup = function() { checkLimit(this); }
			} else {
				(function() {
					var oldOnkeyup = ta[i].onkeyup;
					if (clearbr) ta[i].onkeyup = function() { oldOnkeyup(); clearBR(this); checkLimit(this); }
					else ta[i].onkeyup = function() { oldOnkeyup(); checkLimit(this); }
				})();
			}
			if (ta[i].onchange == "undefined" || ta[i].onchange == null) {
				if (clearbr) ta[i].onchange = function() { clearBR(this); checkLimit(this); }
				else ta[i].onchange = function() { checkLimit(this); }
			} else {
				(function() {
					var oldOnchange = ta[i].onchange;
					if (clearbr) ta[i].onchange = function() { oldOnchange(); clearBR(this); checkLimit(this); }
					else ta[i].onchange = function() { oldOnchange(); checkLimit(this); }
				})();
			}
			checkLimit(ta[i]);
		}
	}
	var il = findTags(document, 'input');
	for (var i = 0; i < il.length; i++) {
		var maxlength = il[i].getAttribute('maxlength');
		var ticker = findObject(il[i].getAttribute('name') + '_ticker');
		if ((maxlength) && (ticker)) {
			if (il[i].onkeyup == "undefined" || il[i].onkeyup == null) {
				il[i].onkeyup = function() { checkLimit(this); }
			} else {
				(function() {
					var oldOnkeyup = il[i].onkeyup;
					il[i].onkeyup = function() { oldOnkeyup(); checkLimit(this); }
				})();
			}
			if (il[i].onchange == "undefined" || il[i].onchange == null) {
				il[i].onchange = function() { checkLimit(this); }
			} else {
				(function() {
					var oldOnchange = il[i].onchange;
					il[i].onchange = function() { oldOnchange(); checkLimit(this); }
				})();
			}
			checkLimit(il[i]);
		}
	}
}
// error
function printError(name, mess) {
	var error = findObject(name + '_error');
	if (error == null) return true;
	error.innerHTML = mess;
	error.style.display = 'block';

	var obj = findObject(name);
	if (obj != null) obj.style.background = "#FFE8FF";
}

function showError(name, mess) {
	if ((name) && (mess)) setTimeout(function() {printError(name, mess)}, 100);
}


// INIT
function _init() {
	setRows();
	setLimit();
}

if (typeof window.onload == "undefined" || window.onload == null) {
	window.onload = _init;
} else {
	(function() {
		var oldOnload = window.onload;
		window.onload = function() { oldOnload(); _init(); }
	})();
}

