
/**
 * Cross-browser DHTML element passing. Thanks to
 * http://www.quirksmode.org/index.html?/js/cross_dhtml.html
 */
function getObj(name)
{
  if (document.getElementById)
  {
  	this.obj = document.getElementById(name);
		if( this.obj )
			this.style = document.getElementById(name).style;
  }
  else if (document.all)
  {
  	this.obj = document.all[name];
		if( this.obj )
	  	this.style = document.all[name].style;
  }
  else if (document.layers)
  {
   	this.obj = document.layers[name];
   	this.style = document.layers[name];
  }
}

function getElement( name )
{
  	var myObj = new getObj( name );
	return myObj.obj;
}

/**
 * Interface to getObj which can be called as a function, i.e.:
 * 	var a = returnGetObj( "myID" )
 * instead of:
 *	var a = new getObj( "myID" )
 */
function returnGetObj( name ) {
	var myObj = new getObj( name );
	return myObj;
}

// simpele debug functie om een object te tonen
function alertObject( obj ) {
	var message = "object type:" + typeof(obj) + "\n----------------\n";
	for( var i in obj ) {
		message += i + "=" + obj[i] + "\n";
	}
	alert( message );
}

// simpele debug functie om een object te tonen
function writeObject( obj ) {
	var message = "<div style='padding: 1em;background-color: white;border: 2px solid yellow; color: black; font-family: Courier; font-size: 1em'>";
	message += "object type:" + typeof(obj) + "<br />----------------<br />";
	for( var i in obj ) {
		message += i + "=" + obj[i] + "<br />";
	}
	message += "</div>";
	document.write( message );
}
// javascript heeft geen instanceof --> opgezocht
// --> blijkbaar NS-only :(
function instanceOf(object, constructorFunction) {
  while (object != null) {
    if (object == constructorFunction.prototype) {return true}
	 object = object.__proto__;
  }
  return false;
}

/**
 * show or hide a block level element by setting its display style attribute to "none"
 * or "block".
 * @domElementName string id of the DOM element
 * @type "block" or "inline", whichever you prefer
 * @display boolean optional, show or hide element. otherwise its visibility is toggled.
 */
function toggleDisplay( domElementName, type, display ) {
	element = new getObj( domElementName );
	if( !element.style ) return false;	
	if( type == null ) type = "block";
	if( display == true ) {
		element.style.display = type;
	}
	else if( display == false ) {
		element.style.display = "none";
	}
	else if( display == null ) {
		// toggle
		if( element.style.display == type || element.style.display == "" )
		element.style.display = "none";
		else if( element.style.display == "none" )
		element.style.display = type;
	}
}

/**
 * Paint a table:
 * - alternating row colors
 * - borders
 * 
 *	WARNING!! DEPRECATED! USE: setTableAltRows() from interactive_table.js
 *
 */
function altrows(domID,oddclass,evenclass,tableclass) {
	var table = new getObj(domID);
	if( table == null ) return;
	if( tableclass == null ) tableclass = "realtable";
	if ((' '+table.obj.className+' ').indexOf("realtable") == -1){
		table.obj.className += " "+tableclass;
	}
	rows = table.obj.getElementsByTagName("tr") ;
	// check of het niet de heading is
	lookingForOdd = true;
	for( i = 0; i < rows.length; i++ ) {
		// check of deze row wel in de gekozen tabel zit, en niet in een nested table
		if( rows[i].parentNode.parentNode == table.obj &&
			//check of het niet een heading row is) 
			rows[i].getElementsByTagName("th").length == 0)
			{
			if( lookingForOdd ) {
				rows[i].className = "oddrow";
			}
			else { 
				rows[i].className = "evenrow";
			}
			lookingForOdd = !lookingForOdd;
		}
	}
}

function getScreenHeight(){
	var y;
	if (self.innerHeight) // all except Explorer
	{
		y = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
		// Explorer 6 Strict Mode
	{
		y = document.documentElement.clientHeight;
	}
	else if (document.body) // other Explorers
	{
		y = document.body.clientHeight;
	}
	return y;
}


function getScreenWidth(){
	var x;
	if (self.innerWidth) // all except Explorer
	{
		x = self.innerWidth;
	}
	else if (document.documentElement && document.documentElement.clientWidth)
		// Explorer 6 Strict Mode
	{
		x = document.documentElement.clientWidth;
	}
	else if (document.body) // other Explorers
	{
		x = document.body.clientWidth;
	}
	return x;
}

var fadeBox;	
var done = false;

function showBackOfficeUserDialog(message){
	dialog = getElement("backOfficeUserDialog");
	dialog.firstChild.firstChild.nodeValue = message;
	//x = getScreenWidth()/2-200;
	///dialog.style.left = x + "px";
	fadeBox = new fx.Height("backOfficeUserDialog",{duration:500, onComplete: function(){
		if (!done) setTimeout("fadeBox.toggle();", 2000);
		done = true;
	}});
	fadeBox.hide();
	dialog.style.display = "block";	
	fadeBox.toggle();
}