
//getElement crossbrowser method
function _getElementById(sElement, oElement) {
	
	if ('undefined' == typeof oElement) {
		oElement = window;
	}
	
	if (document.getElementById) {
		return oElement.document.getElementById(sElement);
	} else if (document.all) {
		return oElement.document.all[sElement];
	} else {
		return oElement.document.layers[sElement];
	}
}

//all crossbrowser method
function _all(sElement, oElement) {
	
	if ('undefined' == typeof oElement) {
		oElement = window;
	}
	
	if (document.all) {
		return oElement.document.all[sElement];
	} else if (document.layers) {
		return oElement.document.layers[sElement];
	}
	
	return null;
}

//attach event, parameter sEvent - string event handler, for example: 'onMouseOver' (IE style)
//sHandler - строка функции обработчика (без скобок "()")
function _attachEvent(oElement, sEvent, sHandler) {
	
	if (oElement.attachEvent) {
		oElement.attachEvent(sEvent.toLowerCase(), eval(sHandler));
	} else if (oElement.addEventListener) {
		oElement.addEventListener(sEvent.toLowerCase().substring(2, sEvent.length), eval(sHandler), false);		
	} else {
		var oOb = eval(oElement +'.'+ sEvent);
		oOb = eval(sHandler);
	}
}

//xml_request method
function xml_request(q) {
	
	var p;
	try {   
		p = new XMLHttpRequest();
	} catch (e) {
		try {
			p = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			alert('Ваш браузер не поддерживает динамических запросов.\nОбновите браузер до более свежей версии.');
			return false;
		}
	}
	
	p.open("GET", q + (('undefined' != typeof sess)?('&'+ sess):''), false);
	p.send(null);
	
	if (200 == p.status) {
		try {
			return eval(p.responseText);
		} catch(e) {
			return p.responseText;
		}
	} else {
		alert('Во время запроса произошла ошибка.\nКод ошибки: '+ p.status);		
		return false;
	}
}

//source cossbrowser method
function _srcElement(oEvent) {
	
	if ('object' != typeof oEvent) {
		return 'undefined';
	}
	
	return oEvent.srcElement?oEvent.srcElement:oEvent.target;
}

