// NemoCMS javascript library

function CreateHTTPRequest(callback) {
	var obj = null
	var ieXMLHttpRequest = new Array('MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP')

	if ( window.XMLHttpRequest ) {
		try	{
			obj = new XMLHttpRequest()
			if ( typeof obj.overrideMimeType != 'undefined' ) { 
				obj.overrideMimeType('text/xml')
			}
		}
		catch (e) {}
	} 
	else if ( window.ActiveXObject ) {
		for (var i = 0; i < ieXMLHttpRequest.length; ++i) {
			if ( !obj ) {
				try {
					obj = new ActiveXObject(ieXMLHttpRequest[i])
					if ( obj ) {
						break
					}
				}
				catch (e) {}
			}
		}
	}
	
	var callback_func = callback
	if (obj && (callback_func != '')) {
		callback_func += '('
		if (arguments.length > 1) {
			var args = ''
			for (var i=1; i<arguments.length; i++) {
				var a = arguments[i]
				if (typeof(a) == 'string') {
					a = "'" + a.replace(/\'/g, "\\'") + "'"
				}
				args += ((args != '') ? ',' : '') + a
			}
			callback_func += args
		}
		callback_func += ')'

		obj.onreadystatechange = function() {
			if ( obj.readyState == 4 ) {				
				try {
					eval(callback_func)
				}
				catch (e) {}
			}
		}
	}
	
	return obj
}

function SubmitHTTPRequest(aRequestObj, anURL, aMethod, aPostStr) {
	var dt = new Date();
	var anURL = AppendURL('js=' + dt.getTime(), anURL);
	aRequestObj.open(aMethod, anURL, true);
	if (aMethod == 'POST') {
		aRequestObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	}
	aRequestObj.send(aPostStr);
}

function GetRequestResult(aRequestObj) {
	var xmldoc = aRequestObj.responseXML
	var out = (xmldoc) ? xmldoc.getElementsByTagName('out').item(0) : false
	if ( out ) {
		var text = out.firstChild.data
		var url = out.getAttribute('next')
	} else if ( aRequestObj.responseText ) {
		var out_re = /<out[^>]+next="(.*?)"/gi
		var out_ary = out_re.exec(submit_request.responseText)
		var url = (out_ary && out_ary[1]) ? out_ary[1] : null

		out_re = /<out.*?>((.*\n?)*)<\/out>/gi
		out_ary = out_re.exec(submit_request.responseText)
		var text = (out_ary && out_ary[1]) ? out_ary[1] : null
	} else {
		return false
	}

	if ( text == '1' ) {		
		if ( url != null ) {
			document.location = url
		} else if (window.lang_success) {
			alert(lang_success)
		}
	} else {
		alert(text)
	}
	return true
}

function SuccessOnRequest(aRequestObj) {
	var s = aRequestObj.responseText;
	s = s.substring(s.length - 1);
	return (s == '1') ? true : false
}

function FindPos(id) {
	var x=0
	var y=0 
	var temp

	var el = document.getElementById(id)
	if ( el ) {  
	    if( el.offsetParent ) {
			temp = el
			//Looping parent elements to get the offset of them as well
			while ( temp.offsetParent )	{ 
				temp = temp.offsetParent
				x += temp.offsetLeft
				y += temp.offsetTop
			}
		}
		x += el.offsetLeft
		y += el.offsetTop
	}
	//Returning the x and y as an array
	return [x, y]
}

function AppendURL(appendix) {
	var base_url = '' + ((arguments.length > 1) ? arguments[1] : document.location)
	base_url += ((base_url.indexOf('?') >= 0) ? '&' : '?') + appendix
	return base_url
}




