function tellerror(msg, url, linenumber){
	if(typeof(_superuser) != 'undefined' && _superuser) {
		alert('JavaScript Error:\n\n'+msg+'\n'+url+'\nLine '+linenumber)
	}
	return true
}
window.onerror = tellerror;

function include(script_filename) {
    document.write('<' + 'script');
    document.write(' language="javascript"');
    document.write(' type="text/javascript"');
    document.write(' src="' + script_filename + '">');
    document.write('</' + 'script' + '>');
}
include('/system/javascript/browser_detect.js');

function validate_email(str) {
	if(str.match(/^[_a-z0-9-\+]+(\.[_a-z0-9-\+]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/)) {
		return true;
	}
	return false;					
}

function scroll_to(obj) {
	Y = obj.offsetTop;
	Y = BrowserDetect.browser == 'Explorer' ? Y + 330 : Y;
	BrowserDetect.scrollY(Y - 20);	
}

function dump(obj) {
	var dump_text = '';
	try {
		for (x in obj) {
			try {
				var str = obj[x];
				if(x == 'innerHTML') { 
					str = str.replace(/</g, '&lt;');
					str = str.replace(/>/g, '&gt;');
					str = str.replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;');
					str = str.replace(/\n/g, '<br>\n');
				}
				dump_text += "<br><strong>" + x + "</strong> => " + str;
			} catch(e) {
				
			}
		}
	} catch(e) {
		alert("Error dumping object");
	}
	var WindowDump = window.open('','','left=0,top=0,width=610,height=600,toolbar=0,scrollbars=1,status=0');
	WindowDump.document.write(dump_text);
}

function xmlObject(text) {
	try {	// code for IE
		var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async = "false";
		xmlDoc.loadXML(text);
	} catch(e) {	// code for Mozilla, Firefox, Opera, etc.
		try {
			var parser = new DOMParser();
			var xmlDoc = parser.parseFromString(text,"text/xml");
		} catch(e) {
			alert(e);
			return;
		}
	}
	return xmlDoc;
}

// -------------------------------------------------------- Force Int Function ------------------- 
function force_int(e) {

	e = (e != undefined) ? e : window.event;
	if(window.event) { 		// IE
		keynum = e.keyCode
	} else if(e.which) {		// Netscape/Firefox/Opera	
		keynum = e.which
	} else {
		keynum = e.keyCode
	}
	var k = keynum;
	var keychar = String.fromCharCode(keynum);
	if(keychar.match(/^[0-9]$/)) {



		return true;
	} else if(k != 8 && k != 46 && k != 9 && k != 13 && k != 116 && k != 37 && k != 38 && k != 39 && k != 40) {
		return false;
	}
}
// -------------------------------------------------------- Force Int Function ------------------- 
function force_no_special_chars(e) {
	e = (e != undefined) ? e : window.event;
	if(window.event) { 		// IE
		keynum = e.keyCode
	} else if(e.which) {		// Netscape/Firefox/Opera	
		keynum = e.which
	} else {
		keynum = e.keyCode
	}
	var k = keynum;
	var keychar = String.fromCharCode(keynum);
	if(keychar.match(/^[0-9]$/) || keychar.match(/^[a-z]$/i)) {
		return keychar;
	} else if(k != 8 && k != 46 && k != 9 && k != 13 && k != 116 && k != 37 && k != 38 && k != 39 && k != 40) {
		return false;
	}
	return true;
}

function ajaxObject() {
	var ajax;
	try {
		// Firefox, Opera 8.0+, Safari
		ajax = new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			ajax=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				ajax=new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}
	return ajax;
}

//---------------------------------------- Start Loading ------------------------------------------------------
function start_loading() {
	try {
		show_dropdowns(false);
		document.getElementById('loading_message_box').style.top = "15%";
		document.getElementById('loading_message_box').style.left = ((BrowserDetect.width() - 250) / 2) + "px";
		document.getElementById('loading_message_box').style.top = BrowserDetect.scrollY() + 200 + "px";
		document.getElementById('loading_message_mask').style.width = BrowserDetect.width() + "px";
		document.getElementById('loading_message_mask').style.height = BrowserDetect.height() + "px";
		document.getElementById('loading_message').style.display = 'block';
	} catch(e) {}
}
//---------------------------------------- End Loading ------------------------------------------------------
function end_loading() {
	try {
		document.getElementById('loading_message').style.display = 'none';
		document.getElementById('content').style.display = 'block';
		show_dropdowns();
	} catch(e) {}
}
//---------------------------------------- Show dropdowns ------------------------------------------------------
function show_dropdowns(display) {
	if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version < 7) {
		if(display == undefined) {
			display = true;
		}
		var elements = document.documentElement.getElementsByTagName('select');
		for(var i = 0; i < elements.length; i++) {
			elements[i].style.visibility = display ? 'inherit' : 'hidden';
		}
	}
}

function valid_email(string) {
	return (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1);
}

function trim(str) {
	str = str.replace(/^\s*/, '');
	return str.replace(/\s*$/, '');	
}
