/******
 * Copyright: Bernardini & Schnyder GmbH
 * Author: Sebastian Haller
 * Date: 2006
 */

// allow only numbers to be entered in sone fields
function goodchars(e, chars)
{
	var key, keychar;

	if (window.event)
		key = window.event.keyCode;
	else if (e)
		key = e.which;
	else
		return true;

	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();
	chars = chars.toLowerCase();

	if (chars.indexOf(keychar) != -1)
		return true;

	// control keys
	if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
		return true;

	return false;
}

// new window
function newwindow(url, name, w, h, features) {
	if(screen.width)
	{
		var winl = (screen.width-w)/2;
		var wint = (screen.height-h)/2;
	}
	else
	{
		winl = 0;
		wint = 0;
	}
	if (winl < 0)
		winl = 0;
	if (wint < 0)
		wint = 0;
	//var settings = 'scrollbars=yes, resizable=yes, ';
	var settings = '';
	settings += 'height=' + h + ', ';
	settings += 'width=' + w + ', ';
	//settings += 'top=' + wint + ', ';
	//settings += 'left=' + winl + ', ';
	settings += features;
	win = window.open(url, name, settings);
	win.resizeTo(w, h);
	win.focus();
	// do not uncomment this. it is used in links containing
	// a href for users without javascript and an onclick="return newwindow(...);" for users with javascript
	// we do not want the href action to be excuted on success!
	return false;
}

// used to confirm a link before sending request (i.e. for delete links)
function confirmlink(text, obj)
{
	var is_confirmed = confirm(text);
	if (is_confirmed)
		obj.href += '&js_confirmed=1';

	return is_confirmed;
}

// changes content of a div
function setcontent(obj, content)
{
	document.getElementById(obj).innerHTML = content;
	return false;
}

// hide div
function hidediv(obj)
{
	o = document.getElementById(obj);
	o.style.display='none';
}

// show div
function showdiv(obj)
{
	o = document.getElementById(obj);
	o.style.display='block';
}/** * This array is used to remember mark status of rows in browse mode */var marked_row = new Array;/** * Sets/unsets the pointer and marker in browse mode * * @param   object    the table row * @param   interger  the row number * @param   string    the action calling this script (over, out or click) * @param   string    the default background color * @param   string    the color to use for mouseover * @param   string    the color to use for marking a row * * @return  boolean  whether pointer is set or not */function setPointer(theRow, theAction){	if(theAction == 'over')	{		theRow.setAttribute('bgcolor', '#92AC30', 0);	}	else	{		theRow.setAttribute('bgcolor', '#ffffff', 0);	}	   return true;} // end of the 'setPointer()' functionfunction setPointer2(theRow, theRowNum, theAction, theDefaultColor, thePointerColor, theMarkColor){    var theCells = null;    // 1. Pointer and mark feature are disabled or the browser can't get the    //    row -> exits    if ((thePointerColor == '' && theMarkColor == '')        || typeof(theRow.style) == 'undefined') {        return false;    }    // 2. Gets the current row and exits if the browser can't get it    if (typeof(document.getElementsByTagName) != 'undefined') {        theCells = theRow.getElementsByTagName('td');    }    else if (typeof(theRow.cells) != 'undefined') {        theCells = theRow.cells;    }    else {        return false;    }    // 3. Gets the current color...    var rowCellsCnt  = theCells.length;    var domDetect    = null;    var currentColor = null;    var newColor     = null;    // 3.1 ... with DOM compatible browsers except Opera that does not return    //         valid values with "getAttribute"    if (typeof(window.opera) == 'undefined'        && typeof(theCells[0].getAttribute) != 'undefined') {        currentColor = theCells[0].getAttribute('bgcolor');        domDetect    = true;    }    // 3.2 ... with other browsers    else {        currentColor = theCells[0].style.backgroundColor;        domDetect    = false;    } // end 3    	 // 4. Defines the new color    // 4.1 Current color is the default one    if (currentColor == '' || currentColor.toLowerCase() == theDefaultColor.toLowerCase()) {        if (theAction == 'over' && thePointerColor != '') {            newColor              = thePointerColor;        }        else if (theAction == 'click' && theMarkColor != '') {            newColor              = theMarkColor;        }	}    // 4.1.2 Current color is the pointer one    else if (currentColor.toLowerCase() == thePointerColor.toLowerCase()             && (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])) {        if (theAction == 'out') {            newColor              = theDefaultColor;        }        else if (theAction == 'click' && theMarkColor != '') {            newColor              = theMarkColor;            marked_row[theRowNum] = true;        }	}    // 4.1.3 Current color is the marker one    else if (currentColor.toLowerCase() == theMarkColor.toLowerCase()) {        if (theAction == 'click') {            newColor              = (thePointerColor != '')                                  ? thePointerColor                                  : theDefaultColor;            marked_row[theRowNum] = (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])                                  ? true                                  : null;        }	} // end 4    // 5. Sets the new color...    if (newColor) {        var c = null;        // 5.1 ... with DOM compatible browsers except Opera        if (domDetect) {            for (c = 0; c < rowCellsCnt; c++) {                theCells[c].setAttribute('bgcolor', newColor, 1);            } // end for        }        // 5.2 ... with other browsers        else {            for (c = 0; c < rowCellsCnt; c++) {                theCells[c].style.backgroundColor = newColor;            }        }    } // end 5    return true;} // end of the 'setPointer()' function/** * * */function setLocation($url){	document.location.href=$url;}

