/******************************************************************
 (c) 2006 Diplix Solutions, C.Schmidhuber
******************************************************************/

/*****************************************************************
 config
*****************************************************************/
var dbg_enable = false;  // en-/disable debugger

/*****************************************************************
 simple funcs
*****************************************************************/
function openwin(NAME,URL,x,y,doscroll)
{
    window.open(URL, NAME, "width=" + x + ",height=" + y + ",resizable,scrollbars="+doscroll);
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function sHL() {
  var i,p,v,obj,args=sHL.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}
/*****************************************************************
 layout funcs 
*****************************************************************/

/* js fix for poor ie css:hover support -> mouseover in base_navlayers LI-tags
		remember to add window.onload=enable_ie_hover into the document */  
enable_ie_hover = function() 
{ 
	dbg_msg("enable_ie_hover: entered",true);
	if (document.all && document.getElementById) 
	{ 
		dbg_msg("enable_ie_hover: compatible IE detected",true);
		navRoot = document.getElementById("base-navlayers");
		if (!navRoot) 
		{
			dbg_message('enable_ie_hover: navRoot is NULL. exiting',true);
			return;
		}
		for (i=0; i<navRoot.childNodes.length; i++) 
		for (s=0; s<navRoot.childNodes[i].childNodes.length;s++)
		for (l=0; l<navRoot.childNodes[i].childNodes[s].childNodes.length;l++)
		{ 
			node = navRoot.childNodes[i].childNodes[s].childNodes[l];
			dbg_msg('node: '+i+' / '+s+' / '+l+' : '+node.nodeName,true);
			if (node.nodeName=="LI") 
			{ 
				node.onmouseover= function() { this.className += " ieover"; } 
				node.onmouseout=  function() { this.className = this.className.replace (" ieover", ""); } 
			} 
		}  
	} else dbg_msg("enable_ie_hover: no IE detected - nothing to do",true);
	dbg_msg("enable_ie_hover: success",true);
} 


/* timeout for mouseover layers */
var time;
function layers_reset(activate)
{ 
 if (time) clearTimeout(time);
 if (activate == 1) time = setTimeout('layers_hide()',500);
}

/* hide all nav layers */
function layers_hide()
{		
	dbg_msg('layers_hide: started',true);
	layer_root = document.getElementById("base-navlayers");
	if (layer_root.childNodes.length>0)
	{
		for (c = 0; c < layer_root.childNodes.length;c++)
		{
			node = layer_root.childNodes[c];
			if (node.nodeName == 'DIV') 
			{
				sHL( node.getAttribute('id'), '', 'hide');
			}
		}
	}		
	dbg_msg('layers_hide: success',true);
}

/* set left pos of nav layer to matching topleven nav pos */
/* NOTE: not working with ie5 currently ! */
function position_layers()
{
	dbg_msg('positiony_layers:start',true);
	var a = new Array();
	// load x pos in array
	lroot = document.getElementById("base-topnavi-li");
	if (lroot.childNodes.length>0)
	for (c = 0; c < lroot.childNodes.length;c++)
	{
		node = lroot.childNodes[c];
		if (node.nodeName == 'LI')
		{ 
			a.push(node.offsetLeft);
		}
	}
	dbg_msg(a.length +' elemente',true);
	
	// change layer x pos to value from array
	s = 0;
	layer_root = document.getElementById("base-navlayers");
	if (layer_root.childNodes.length>0)
	{
		for (c = 0; c < layer_root.childNodes.length;c++)
		{
			node = layer_root.childNodes[c];
			if (node.nodeName == 'DIV') 
			{
				l = document.getElementById(node.getAttribute('id'));
				if (l) { l.style.left = (a[s] -5) + 'px'; }
				s++;
			}
		}
	}		
	dbg_msg('positiony_layers:success',true);
}

/* correct y-position of main layer when using home template*/
function position_home()
{
	var lla = document.getElementById("homeoverlaydiv");
	var y;
	if (!lla) return;
	
	if (self.innerHeight) {y = self.innerHeight;}
	else if (document.documentElement && document.documentElement.clientHeight) {y = document.documentElement.clientHeight;}
	else if (document.body) {y = document.body.clientHeight;}
	if (y<600) return;
	y = (y-470)/2;
	
	lla.style.top = y + 'px';
}

/*****************************************************************
 window onload initialization
*****************************************************************/
function initdxcmsjs()
{
	enable_ie_hover(); 
	position_layers();
	position_home();
} 
window.onload = initdxcmsjs;
/*****************************************************************
 dev funcs 
*****************************************************************/
/* Simple JS Debugger */
function dbg_msg(str, append)
{
	if (!dbg_enable) return;
  var dbgObj = document.getElementById("dbg");
  sHL('dbg','','show');
  dbgObj.innerHTML = append? (dbgObj.innerHTML + str + '<br>'): str+'<br>';
}
