


var isFF = navigator.userAgent.indexOf("Firefox") != -1;
var isGecko = navigator.userAgent.toLowerCase().indexOf("gecko") != -1;
var isIE = navigator.appName == "Microsoft Internet Explorer";
var isOp = navigator.userAgent.indexOf('Opera') != -1;






function getByXajax(module, params, params2, fn)
{
var loading = false;

if (typeof(module) == 'string') module = module
	else {
		loading = document.getElementById(module[1]);
		module = module[0];		
	}

	if (xajax.doneLoadingFunction) xajax.doneLoadingFunction();
	
	if (!loading) loading = document.getElementById("_xajaxloading");
	if (loading) loading.style.display='block';

	if (!params2) params2="";
	
	if (loading) xajax.doneLoadingFunction = function () {
		loading.style.display='none';
		if (fn) fn();
	}
	xajax.call("mod_xajax_main", [module,params,params2], 1);
}






function addEvent(elm, evType, fn, useCapture) {
        if (elm.addEventListener) {
			elm.addEventListener(evType, fn, useCapture);
			return true;
		}
        else if (elm.attachEvent) {
            return elm.attachEvent('on' + evType, fn);
        }
        else {
            elm['on' + evType] = fn;
        }
}

function delEvent (elm, evType, fn, useCapture) {
	if (!fn) return;
	
	if (elm.removeEventListener) {
            elm.removeEventListener(evType, fn, useCapture);
			return true;
		}
        else if (elm.attachEvent) {
			var r = elm.detachEvent('on' + evType, fn);
			return r;
        }
        else {
			elm['on' + evType] = undefined;
        }
}



function getObj(id){
	return document.getElementById(id);
}



function geteObj (e) {
	if(document.all) {
	e = event; return e.srcElement} else {return e.target;}
}




function a(arg) {return alert(arg)}



function getCaretPos(obj)
{
	obj.focus();

	if(obj.selectionStart!==undefined) return obj.selectionStart//Gecko
	else if (document.selection)//IE
	{
		var sel = document.selection.createRange();
		var clone = sel.duplicate();
		sel.collapse(true);
		clone.moveToElementText(obj);
		clone.setEndPoint('EndToEnd', sel);
		return clone.text.length;
	}

	return 0;
}