function addtofav() {
	xmlHttp = createAjaxObject();
	if (!xmlHttp) { loff(); return false; }
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			if (xmlHttp.responseText == 'logout') { document.location.href='?'; return; }
			var mySplit = xmlHttp.responseText.split("<<>>");
			var myDetails = mySplit[1];
			var myHeader = mySplit[0];
			if (mySplit[2]) { document.getElementById('tm_favorites').innerHTML = mySplit[2]; }
			document.getElementById('dmsdetailsContent').innerHTML = myDetails;
			document.getElementById('dmsdetailsHeaderCell').innerHTML = myHeader;
			var ddiv = document.getElementById('dmsdetails');
			var left = posX - 10;
			var top = posY - 10;
			ddiv.style.left = left;
			ddiv.style.top = top;
			ddiv.style.display = '';
			loff();
			document.getElementById('cursor').style.display = 'none';
		}
	}
	
	var parameters = "task=addtofav";
	xmlHttp.open("POST","?",true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", parameters.length);
    xmlHttp.setRequestHeader("Connection", "close");
    xmlHttp.send(parameters);
	document.getElementById('cursor').style.display = '';
}
function GetModule(module, action, extra) {
	/* We have to update the following sections
	MENUSYSTEM - id=MENUSYSTEM
	TOPMENU - id=TOPMENU
	pages - id=pages
	displays - id=displays
	MODULES - id=MODULES
	content - id=CP_content
	*/
	lon();
	xmlHttp = createAjaxObject();
	if (!xmlHttp) { loff(); return false; }
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			if (xmlHttp.responseText == 'logout') { document.location.href='?'; return; }
			var mySplit = xmlHttp.responseText.split("<<>>");
			if (mySplit[0]) { document.getElementById('MENUSYSTEM').innerHTML = mySplit[0]; }
			if (mySplit[1]) { document.getElementById('TOPMENU').innerHTML = mySplit[1]; }
			// if (mySplit[2]) { document.getElementById('pagestop').innerHTML = mySplit[2]; document.getElementById('pagesbot').innerHTML = mySplit[2]; }
			// if (mySplit[3]) { document.getElementById('linesperpage').innerHTML = mySplit[3]; }
			if (mySplit[4]) { document.getElementById('displays').innerHTML = mySplit[4]; }
			if (mySplit[5]) { document.getElementById('MODULES').innerHTML = mySplit[5]; }
			if (mySplit[6]) { document.getElementById('SCREENTITLE').innerHTML = mySplit[6]; }
			// if (mySplit[7]) { document.getElementById('dataContainer').innerHTML = mySplit[7]; }
			if (mySplit[8]) { document.getElementById('CP_content').innerHTML = mySplit[8]; }
			if (mySplit[9]) { eval(mySplit[9]); }
			loff();
			document.getElementById('cursor').style.display = 'none';
		}
	}
	if (module) { module = '&module='+module; } else { module = '&module='; }
	if (action) { action = '&action='+action; } else { action = ''; }
	if (extra) { extra = '&extra='+extra; } else { extra = ''; }
	var parameters = 'ajax=getmodule'+module+action+extra;
	xmlHttp.open("POST","?",true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", parameters.length);
    xmlHttp.setRequestHeader("Connection", "close");
    xmlHttp.send(parameters);
}
	
function RP_confirm(uRl,fOrm,mSg) {
        var agree=confirm(mSg);
        if (agree) {
                lon();
                if (uRl) {
                        window.document.location.href=uRl;
                } else {
                        fOrm.submit();
                }
        } else { loff(); }
}
var topwindow;
function RP_getwindow(uRl, width, height) {
	var screenW = screen.width;
	var screenH = screen.height;
	var left = (screenW - width)/2;
	var top = (screenH - height)/2;
	if ((document.topwindow)&&(!document.topwindow.closed)) { document.topwindow.close(); }
	document.topwindow=window.open(uRl,'newWindow'+Math.round(1000*Math.random()),'width='+width+',height='+height+',toolbar=no,menubar=yes,scrollbars=yes,status=yes,resizable=yes,location=no,top='+top+',left='+left+',screenX='+left+',screenY='+top);
}
var indwindow;
function RP_getindwindow(uRl, width, height) {
	var screenW = screen.width;
	var screenH = screen.height;
	var left = (screenW - width)/2;
	var top = (screenH - height)/2;
	document.indwindow=window.open(uRl,'indWindow'+Math.round(1000*Math.random()),'width='+width+',height='+height+',toolbar=no,menubar=yes,scrollbars=yes,status=yes,resizable=yes,location=no,top='+top+',left='+left+',screenX='+left+',screenY='+top);
}

var opt_no_frames = false;
var opt_integrated_mode = false;
var sDisplay = "";
var IE = document.all?true:false;
if(IE) { sDisplay = "block"; }	
else { sDisplay = "table-row"; }
function Toggle(sHow, trName) {
	if (sHow) {
		ShowRows(trName);
	} else {
		HideRows(trName);
	}
}
function ShowRows(trID) {
	var oRow = document.getElementById(trID);
	oRow.style.display = sDisplay;
}
function HideRows(trID) {
	var oRow = document.getElementById(trID);
	oRow.style.display = "none";
}
function check(form, box) {
	var cbdiv = document.getElementById('maincbDiv');
	if (cbdiv.className == 'unchecked') { 
		box.checked = true;
		cbdiv.className = 'checked';
	} else {
		box.checked = false;
		cbdiv.className = 'unchecked';
	}
	
	for (var i=0;i<form.length;i++) {
		if (form.elements[i].type == 'checkbox') { 
			var ids = form.elements[i].id.split('_');
			if (ids[1]) { 
				var tr = document.getElementById('tr_'+ids[1]);
				if (tr) { if (box.checked) { rowHighlight(tr); } else { rowUnhighlight(tr); } }
			}
		}
	}
}
function scheck(form, box) {
	for (var i=0;i<form.length;i++) {
		if (form.elements[i].type == 'checkbox') { form.elements[i].checked = box.checked; }
	}
}
function checkall() { 
	var cbdiv = document.getElementById('maincbDiv');
	if (cbdiv) { 
		cbdiv.className = 'checked';
		document.form1.maincb.checked = true;
	}
	var form = document.form1;
	for (var i=0;i<form.length;i++) {
		if (form.elements[i].type == 'checkbox') { 
			var ids = form.elements[i].id.split('_');
			if (ids[1]) { 
				var tr = document.getElementById('tr_'+ids[1]);
				if (tr) { rowHighlight(tr); } 
			}
		}
	}
}
function checknone() { 
	var cbdiv = document.getElementById('maincbDiv');
	if (cbdiv) { 
		cbdiv.className = 'unchecked';
		document.form1.maincb.checked = false;
	}
	var form = document.form1;
	for (var i=0;i<form.length;i++) {
		if (form.elements[i].type == 'checkbox') { 
			var ids = form.elements[i].id.split('_');
			if (ids[1]) { 
				var tr = document.getElementById('tr_'+ids[1]);
				if (tr) { rowUnhighlight(tr); } 
			}
		}
	}
}
function invertselection() { 
	var selectall = true;
	var form = document.form1;
	for (var i=0;i<form.length;i++) {
		if (form.elements[i].type == 'checkbox') { 
			var ids = form.elements[i].id.split('_');
			if (ids[1]) { 
				var tr = document.getElementById('tr_'+ids[1]);
				if (tr) { selected = rowToggleHighlight(tr); if (selected == 0) { selectall = false; } } 
			}
		}
	}
	var cbdiv = document.getElementById('maincbDiv');
	if (cbdiv) { 
		if (!selectall) { 
			cbdiv.className = 'unchecked';
			document.form1.maincb.checked = false;
		} else {
			cbdiv.className = 'checked';
			document.form1.maincb.checked = true;
		}
	}
}
	
function getIndexByElement(elem) {
    for (var i = 0; i < elem.form.elements.length; i++) {
        if (elem == elem.form.elements[i]) return i;
    }
    return null;
}
var startrange = -1;
var checkname = '';
var shiftdown = 0;
var checkstate = 0;
function shift_check(tr) {
	var st;
	var en;
	
	var ids = tr.id.split('_');
	var box = document.getElementById('item_'+ids[1]);
	if (!box) { return; }
	
	if (startrange >= 0 && shiftdown) { // Start the range selection
		if ((box.checked)&&(checkstate)) { var chk = true; }
		else if ((!box.checked)&&(!checkstate)) { var chk = false; }
		else { checkname = box.name; startrange = getIndexByElement(box); checkstate = box.checked?1:0; }
		var endrange = getIndexByElement(box);
		if (endrange > startrange) { 
			st = startrange;
			en = endrange;
		} else {
			st = endrange;
			en = startrange;
		}
		for(var i=st;i<=en;i++) { 
			var bx = box.form.elements[i];
			if (bx.type=='checkbox') { 
				var ids = bx.id.split('_');
				if (ids[1]) { 
					var tr = document.getElementById('tr_'+ids[1]);
					if (tr) { if (chk) { rowHighlight(tr); } else { rowUnhighlight(tr); } }
				} 
			}
		}
	} 
	else if (box.checked) { checkname = box.name; startrange = getIndexByElement(box); checkstate = 1; } 
	else if (!box.checked) { checkname = box.name; startrange = getIndexByElement(box); checkstate = 0; }
}
function shift_down(e) {
	var e = e || window.event;
	if (e.shiftKey) { shiftdown = 1; } else { shiftdown = 0; }
}
function shift_up(e) {
	shiftdown = 0;
}
document.onkeydown = shift_down;
if (document.layers)
document.captureEvents(Event.KEYPRESS);
document.onkeyup = shift_up;
if (document.layers)
document.captureEvents(Event.KEYUP);

// Selector javascript code
function performSelection(sel, lfld, vfld, width, height, selargs) {
	if (!width) { width = 750; }
	if (!height) { height = 450; }
	lname = lfld.name;
	vname = vfld.name;
	val = vfld.value;
	RP_getwindow('?selectordef='+val+'&task=&sort=&page=1&rev=0&searchstr=&lines=&filter=0&selector='+sel+'&lname='+lname+'&vname='+vname+'&selectorargs='+selargs, width, height);
}

/* Ajax functions */
function createAjaxObject() {
	var xmlHttp;
  	try { // Firefox, Opera 8.0+, Safari
   		xmlHttp=new XMLHttpRequest();
    } catch (e) { // Internet Explorer
    	try {
      		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      	} catch (e) {
      		try	{
        		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        	} catch (e)  {
        		alert(NOAJAX);
        		return false;
        	}
      	}
    }
	return xmlHttp;
}
function printScreen() {
	setTimeout('window.print()', 1500);
}
function startHighlight(tr) { // This function highlights 1 or more rows as you mouse over them
	
	rowToggleHighlight(tr);
	sHL = true;
}
function endHighlight(tr) { 
	var ids = tr.id.split('_');
	sHL = false;
}
function doHighlight(tr) {
	if (tr) {
		if (sHL) { 
			if (sHT == 'h') { rowHighlight(tr); }
			else if (sHT == 'u') { rowUnhighlight(tr); }
		}
	}
}
		
function rowToggleHighlight(tr) {
	var ids = tr.id.split('_');
	
	if (tr.className == 'highlightbg') { 
		rowUnhighlight(tr);
		return(0);
	} else {
		rowHighlight(tr);
		return(1);
	}
}
function rowHighlight(tr) { 
	var ids = tr.id.split('_');
	sHT = 'h';
	tr.className = 'highlightbg';
	document.getElementById('cbdiv_'+ids[1]).className = 'checked';
	document.getElementById('item_'+ids[1]).checked = true;
}
function rowUnhighlight(tr) {
	var ids = tr.id.split('_');
	sHT = 'u';
	tr.className = tr.getAttribute('rowclass');
	document.getElementById('cbdiv_'+ids[1]).className = 'unchecked';
	document.getElementById('item_'+ids[1]).checked = false;
}
function dmsdetailsClose() {
	var ddiv = document.getElementById('dmsdetails');
	ddiv.style.display = 'none';
}
function getRandomNumber(range)
{
	return Math.floor(Math.random() * range);
}

function getRandomChar()
{
	var chars = "0123456789abcdefghijklmnopqurstuvwxyzABCDEFGHIJKLMNOPQURSTUVWXYZ";
	return chars.substr( getRandomNumber(62), 1 );
}

function randomID(size)
{
	var str = "";
	for(var i = 0; i < size; i++)
	{
		str += getRandomChar();
	}
	return str;
}
function dhtmlLoadScript(url)
{
   var e = document.createElement("script");
   e.src = url;
   e.type="text/javascript";
   document.getElementsByTagName("head")[0].appendChild(e);
}

