var moz = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined');
var ie = (typeof window.ActiveXObject != 'undefined'); 

function getByName(f, n) {
	for(var i=0;i<f.elements.length;i++) {
		if(f.elements[i].name==n) {
			return f.elements[i];
		}
	}
	return false;
}
function getFromName(nam, idx) {
	var res=new Array();
	var i=0;
	res[i]=new String("");
	for(var j=0;j<nam.length;j++) {
		if(nam.charAt(j)=="_") {
			i++;
			res[i]=new String("");
		} else {
			res[i]+=nam.charAt(j);
		}
	}
	return res[idx];
}

function browserWidth() {
	var w=(ie?document.body.clientWidth:window.innerWidth);
	return w;
}
function browserHeight() {
	var h=(ie?document.body.clientHeight:window.innerHeight);
	return h;
}


function findPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}
function findPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function parseVal(v) {
	var t = parseFloat(v);
	return isNaN(t) ? 0 : t;
}

// XML Functions
function checkNode(n, c) {
	if(!n.selectSingleNode(c)) {
		var el = n.ownerDocument.createElement(c)
		n.appendChild(el);
	}
}

function setValue(n, c, v) {
	checkNode(n, c);
	var t = n.selectSingleNode(c);
	while(t.hasChildNodes()) {
		t.removeChild(t.firstChild);
	}
	t.appendChild(n.ownerDocument.createTextNode(v));
}

function getValue(n, d) {
	return n ? (n.hasChildNodes() ? n.firstChild.nodeValue : d) : d;
}

function commonAddListener(e, a, f) {
	if(ie) {e.attachEvent("on"+a, f);} else {e.addEventListener(a, f, false);}
}

function commonRemoveListener(e, a, f) {
	if(ie) {e.detachEvent("on"+a, f);} else {e.removeEventListener(a, f, false);}
}

function emptySelect(sEl) {
	for(var i=sEl.options.length-1;i>=0;i--) {
		sEl.options[i] = null;
	}
}