/**
 * This array is used to remember mark status of rows in browse mode
 */
var marked_row = new Array;

function FensterOeffnen (Adresse)
{
  Fenster1 = window.open(Adresse, "Zweitfenster", "status=no,width=800,height=600,left=100,top=200");
  Fenster1.focus();
}  
function FensterMitScrollbarOeffnen (Adresse)
{
  Fenster1 = window.open(Adresse, "Zweitfenster", "status=no,width=800,height=600,left=100,top=200,scrollbars=yes");
  Fenster1.focus();
}  
function UploadWindow (Adresse)
{
  uploadwindow = window.open(Adresse, "uploadwindow", "status=no,width=800,height=600,left=100,top=200");
  uploadwindow.focus();  
} 

function fillTime(time, count)
{
  huns = time%100;
  secs = ((time-huns)/100)%60;
  mins = (time-secs*100-huns)/6000;
  
  if (huns<10) huns = "0"+huns;
  if (secs<10) secs = "0"+secs;
  if (mins<10) mins = "0"+mins;
  
  document.forms['change_entries'].elements[count*5+5].checked=true;
  document.forms['change_entries'].elements[count*5+6].value=mins;
  document.forms['change_entries'].elements[count*5+7].value=secs;  
  document.forms['change_entries'].elements[count*5+8].value=huns;

}

/**
 * Sets/unsets the pointer and marker in browse mode
 *
 * @param   object    the table row
 * @param   integer  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, 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;
    	}
	// 3.3 ... Opera changes colors set via HTML to rgb(r,g,b) format so fix it
	if (currentColor.indexOf("rgb") >= 0)
    	{
        	var rgbStr = currentColor.slice(currentColor.indexOf('(') + 1, currentColor.indexOf(')'));
		var rgbValues = rgbStr.split(",");
		currentColor = "#";
		var hexChars = "0123456789ABCDEF";
        	for (var i = 0; i < 3; i++)
        	{
            		var v = rgbValues[i].valueOf();
            		currentColor += hexChars.charAt(v/16) + hexChars.charAt(v%16);
        	}
    	}

	// 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;
            		marked_row[theRowNum] = true;
        	}
    	}
	// 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;
	        }
    	}


	// 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, 0);
                theCells[c].setAttribute('color', newColor, 0);
                
            } // end for
        }
        // 5.2 ... with other browsers
        else {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].style.backgroundColor = newColor;
                theCells[c].style.color= newColor;
            }
        }
    } // end 5

    return true;
} // end of the 'setPointer()' function


