//*--------------------------------------------------------------------------*///*  computeruniverse.net DHTML-Scripts, dh_ functions, version 1.0
//*  (c) 2007 computeruniverse.net <info@computeruniverse.net>
//*
//*  Info: http://www.computeruniverse.net/info/impressum.asp
//*  Developed by: Sven Moderow
//*
//*--------------------------------------------------------------------------*/

function dh_popup_layer(width, height, closebtn) {
  if ($('shadow_layer')) $('shadow_layer').remove();
  if ($('popup_layer')) $('popup_layer').remove();
  var new_popup_layer = document.createElement('div');
  new_popup_layer.setAttribute('id', 'popup_layer');
  Element.extend(new_popup_layer);
  var left=browser_center_left(parseInt(width)).toFixed(0).toString()+'px';
  var top = browser_center_top(parseInt(height)).toFixed(0).toString() + 'px';
  dh_center_popup_layer();
  new_popup_layer.setStyle({
    position: 'absolute',
    left: left,
    top: top,
    width: width,
    height: height,
    zIndex: 100,  
    display: 'block',
    backgroundColor: 'white',
    borderWidth: '1px',
    borderStyle: 'solid',
    borderColor: 'black',
    padding: '8px'
  });
  if (navigator.appName == 'Microsoft Internet Explorer') new_popup_layer.innerText = ' '; //Fix for IE not firing events in tags within div's placed without text content!
  if (closebtn != 0) new Insertion.Top(new_popup_layer, '<img src="/images/'+themefolder+'close_15x15.gif" border="0" width="15" height="15" align="right" onClick="return dh_remove_popup_layer();" onMouseOver="this.src=\'/images/'+themefolder+'close_15x15_hot.gif\'; return true;" onMouseOut="this.src=\'/images/'+themefolder+'close_15x15.gif\'; return true;">');
  dh_iframe_fix(new_popup_layer);
  
  return new_popup_layer;
}

function dh_shadow_layer(width, height) {
  if ($('shadow_layer')) $('shadow_layer').remove();
  var new_shadow_layer = document.createElement('div');
  new_shadow_layer.setAttribute('id', 'shadow_layer');
  Element.extend(new_shadow_layer);
  var left=browser_center_left(parseInt(width)).toFixed(0).toString()+'px';
  var top = browser_center_top(parseInt(height)).toFixed(0).toString() + 'px';
  left=(parseInt(left)+3).toString()+'px';
  top=(parseInt(top)+3).toString()+'px';
  dh_center_popup_layer();
  new_shadow_layer.setStyle({
    position: 'absolute',
    left: left,
    top: top,
    width: width,
    height: height,
    zIndex: 99,  
    display: 'block',
    backgroundColor: '#A9A9A9',
    padding: '8px'
  });  
  
  return new_shadow_layer;
}

function dh_wait_layer(width, height, message) {
  if ($('shadow_layer')) $('shadow_layer').remove();
  if ($('wait_layer')) $('wait_layer').remove();
  var new_wait_layer = document.createElement('div');
  new_wait_layer.setAttribute('id', 'wait_layer');
  Element.extend(new_wait_layer);
  var left=browser_center_left(parseInt(width)).toFixed(0).toString()+'px';
  var top=browser_center_top(parseInt(height)).toFixed(0).toString()+'px';
  dh_center_popup_layer();
  new_wait_layer.setStyle({
    position: 'absolute',
    left: left,
    top: top,
    width: width,
    height: height,
    zIndex: 101,  
    display: 'block',
    backgroundColor: 'white',
    borderWidth: '1px',
    borderStyle: 'solid',
    borderColor: 'black',
    padding: '8px'
  });  
  if (message=='') message='<b>Bitte warten! / Please Wait!</b>';
  if (message != 'no') new Insertion.Top(new_wait_layer, '<table border="0" cellpadding="0" cellspacing="0" width="100%" height="85%"><tr><td width="100%" height="100%" align="center" valign="middle"><img src="/images/'+themefolder+'cuwait_32x32.gif" border="0" width="32" height="32"><br><br>'+message+'</td></tr></table>');
  dh_iframe_fix(new_wait_layer);
  var new_shadow_layer = dh_shadow_layer(width, height);
  document.body.appendChild(new_shadow_layer);
  document.body.appendChild(new_wait_layer);
  dh_iframe_name_fix();
  
  return new_wait_layer;
}

//Fix for IE6 SELECT-Elements placing over layer!
function dh_iframe_fix(add_to_layer) {
  if (isIE6OrEarlier() == true) {
	var width = parseInt(add_to_layer.getStyle('width')) + 3;
	var height = parseInt(add_to_layer.getStyle('height')) + 3;
	if ($('iframe_fix')) $('iframe_fix').remove();
	var iframe_fix = document.createElement('iframe');
	iframe_fix.setAttribute('src', '/blank.asp'); //verhindert https/SSL-Fehlermeldungen im IE!
	iframe_fix.setAttribute('id', 'iframe_fix');
	iframe_fix.setAttribute('name', 'iframe_fix');
	iframe_fix.setAttribute('frameborder', '0');
	Element.extend(iframe_fix);
	iframe_fix.setStyle({
	  display: 'none',
	  display:/**/'block',
	  position: 'absolute',
	  left: 0,
	  top: 0,
	  width: width,
	  height: height,
	  zIndex: -100,
	  borderStyle: 'none',
	  filter: 'mask()'
	});  
	add_to_layer.appendChild(iframe_fix);
  }
  return true;
}

//Fix for IE not naming IFRAME correctly!
function dh_iframe_name_fix() {
  if (self.frames['iframe_fix']) {
	self.frames['iframe_fix'].id = 'iframe_fix';
    self.frames['iframe_fix'].name = 'iframe_fix';
  }
  return true;
}

function dh_load_layer(layer, url, query, wait_message, timeout_sec, call_onComplete) {
  var wait_timer;
  Element.extend(layer);
  new Ajax.Request(url, 
    {
	  method: 'post',
	  postBody: query,
      encoding: 'ISO-8859-1',
      asynchronous: true,      evalScripts: true,
      onCreate: function() { wait_timer = setTimeout('dh_wait_layer("'+layer.getStyle('width')+'", "'+layer.getStyle('height')+'", "'+wait_message+'")', 250); },
      onSuccess: function(transport) { 
        var ajax_response = transport.responseText || "";
        if (ajax_response!=""){
		  new Insertion.Bottom(layer, ajax_response);  
		  var new_shadow_layer = dh_shadow_layer(layer.getStyle('width'), layer.getStyle('height'));
		  document.body.appendChild(new_shadow_layer);		  
		  document.body.appendChild(layer);
		  dh_iframe_name_fix();
		  dh_center_popup_layer();		}
      },
      onComplete: function() {
        if (call_onComplete!="") eval(call_onComplete);
        clearTimeout(wait_timer);
		if ($('wait_layer')) $('wait_layer').remove();
		if (timeout_sec>0) setTimeout('dh_remove_popup_layer();', timeout_sec*1000);
	  }
    }
  );
    
  return true;
}
function dh_center_popup_layer() {
  if ($('popup_layer')) {
	var left=browser_center_left(parseInt($('popup_layer').getStyle('width'))).toFixed(0).toString()+'px';
	var top=browser_center_top(parseInt($('popup_layer').getStyle('height'))).toFixed(0).toString()+'px';  
	if ($('shadow_layer')) {
	  var shadow_left=(parseInt(left)+3).toString()+'px';
      var shadow_top=(parseInt(top)+3).toString()+'px';
	  $('shadow_layer').setStyle({
	    left: shadow_left, 
	    top: shadow_top
	  });
	}
	if ($('wait_layer')) {
	  $('wait_layer').setStyle({
	    left: left, 
	    top: top
	  });
	}
	$('popup_layer').setStyle({
	  left: left, 
	  top: top
	});
	setTimeout('dh_center_popup_layer();', 20);
  }
  return true;
}

function dh_remove_popup_layer() {
  if ($('shadow_layer')) $('shadow_layer').remove();	
  if ($('wait_layer')) $('wait_layer').remove();
  if ($('popup_layer')) $('popup_layer').remove();
  if ($('iframe_fix')) $('iframe_fix').remove();
  if ($('layer_overlay')) $('layer_overlay').remove();
  grayOut(false);
  grayOutMenus(false);
  return false;
}

function new_popup_layer(link, lang) {
  Element.extend(link);
  var new_popup_layer = dh_popup_layer('420px', '300px');
  var url = link.readAttribute('href')
  url += (url.indexOf('?') == -1) ? '?' : '&';
  url += 'window=popup&ajax=1';
  var wait_message = (lang!='english') ? '<b>Bitte warten! Inhalt wird aktualisiert...</b><br><br>Wenn Sie nicht weitergeleitet werden, bitte <a href=\''+link.readAttribute('href')+'\'>hier klicken</a>!' : '<b>Please wait! Content is loading...</b><br><br>If you are not forwarded, please <a href=\''+link.readAttribute('href')+'\'>click here</a>!';
  dh_load_layer(new_popup_layer, url, '', wait_message, 0, '');
  return false;
}

function remove_popup_layer() {
	dh_remove_popup_layer();
	return false;
}

function grayOut(vis, options) {
  // Pass true to gray out screen, false to ungray
  // options are optional.  This is a JSON object with the following (optional) properties
  // opacity:0-100         // Lower number = less grayout higher = more of a blackout 
  // zindex: #             // HTML elements with a higher zindex appear on top of the gray out
  // bgcolor: (#xxxxxx)    // Standard RGB Hex color code
  // grayOut(true, {'zindex':'50', 'bgcolor':'#0000FF', 'opacity':'70'});
  // Because options is JSON opacity/zindex/bgcolor are all optional and can appear
  // in any order.  Pass only the properties you need to set.
  var options = options || {}; 
  var zindex = options.zindex || 50;
  var opacity = options.opacity || 70;
  var opaque = (opacity / 100);
  var bgcolor = options.bgcolor || '#000000';
  var dark=document.getElementById('darkenScreenObject');
  if (!dark) {
    // The dark layer doesn't exist, it's never been created.  So we'll
    // create it here and apply some basic styles.
    // If you are getting errors in IE see: http://support.microsoft.com/default.aspx/kb/927917
    var tbody = document.getElementsByTagName("body")[0];
    var tnode = document.createElement('div');           // Create the layer.
        tnode.style.position='absolute';                 // Position absolutely
        tnode.style.top='0px';                           // In the top
        tnode.style.left='0px';                          // Left corner of the page
        tnode.style.overflow='hidden';                   // Try to avoid making scroll bars            
        tnode.style.display='none';                      // Start out Hidden
        tnode.id='darkenScreenObject';                   // Name it so we can find it later
    tbody.appendChild(tnode);                            // Add it to the web page
    dark=document.getElementById('darkenScreenObject');  // Get the object.
  }
  if (vis) {
    // Calculate the page width and height 
    if( document.body && ( document.body.scrollWidth || document.body.scrollHeight ) ) {
        var pageWidth = document.body.scrollWidth+'px';
        var pageHeight = document.body.scrollHeight+'px';
    } else if( document.body.offsetWidth ) {
      var pageWidth = document.body.offsetWidth+'px';
      var pageHeight = document.body.offsetHeight+'px';
    } else {
       var pageWidth='100%';
       var pageHeight='100%';
    }
    //set the shader to cover the entire page and make it visible.
    dark.style.opacity=opaque;                      
    dark.style.MozOpacity=opaque;                   
    dark.style.filter='alpha(opacity='+opacity+')'; 
    dark.style.zIndex=zindex;        
    dark.style.backgroundColor=bgcolor;  
    dark.style.width=pageWidth;
    dark.style.height=pageHeight;
    dark.style.display='block';
    document.body.style.overflow = 'hidden';                       
  } else {
     dark.style.display='none';
     document.body.style.overflow = '';
  }
}

function grayOutMenus(vis, options) {
  // Pass true to gray out screen, false to ungray
  // options are optional.  This is a JSON object with the following (optional) properties
  // opacity:0-100         // Lower number = less grayout higher = more of a blackout 
  // zindex: #             // HTML elements with a higher zindex appear on top of the gray out
  // bgcolor: (#xxxxxx)    // Standard RGB Hex color code
  // grayOut(true, {'zindex':'50', 'bgcolor':'#0000FF', 'opacity':'70'});
  // Because options is JSON opacity/zindex/bgcolor are all optional and can appear
  // in any order.  Pass only the properties you need to set.
  var options = options || {}; 
  var zindex = options.zindex || 50;
  var opacity = options.opacity || 70;
  var opaque = (opacity / 100);
  var bgcolor = options.bgcolor || '#000000';
  var pnode = null;
  var tnode = null;
  var darktop = document.getElementById('darkenTopScreenObject');
  if (!darktop) {
    // The dark layer doesn't exist, it's never been created.  So we'll
    // create it here and apply some basic styles.
    // If you are getting errors in IE see: http://support.microsoft.com/default.aspx/kb/927917
    pnode = document.getElementById('cutop_container');
    tnode = document.createElement('div');           // Create the layer.
    tnode.style.position='absolute';                 // Position absolutely
    tnode.style.top=0;								 // Top corner of layer
    tnode.style.left=0;								 // Left corner of layer
    tnode.style.width='100%';						 // width of layer
    tnode.style.height='103%';						 // height of layer
    tnode.style.overflow='hidden';                   // Try to avoid making scroll bars            
    tnode.style.display='none';                      // Start out Hidden
    tnode.id='darkenTopScreenObject';                // Name it so we can find it later
    pnode.appendChild(tnode);                        // Add it to the web page
    darktop=document.getElementById('darkenTopScreenObject');  // Get the object.
  }
  var darkleft = document.getElementById('darkenLeftScreenObject');
  if (!darkleft) {
    // The dark layer doesn't exist, it's never been created.  So we'll
    // create it here and apply some basic styles.
    // If you are getting errors in IE see: http://support.microsoft.com/default.aspx/kb/927917
    pnode = document.getElementById('culeft_container');
    tnode = document.createElement('div');           // Create the layer.
    tnode.style.position='absolute';                 // Position absolutely
    tnode.style.top=0;								 // Top corner of layer
    tnode.style.left=0;								 // Left corner of layer
    tnode.style.width='100%';						 // width of layer
    tnode.style.height='100%';						 // height of layer
    tnode.style.overflow='hidden';                   // Try to avoid making scroll bars            
    tnode.style.display='none';                      // Start out Hidden
    tnode.id='darkenLeftScreenObject';             // Name it so we can find it later
    pnode.appendChild(tnode);                        // Add it to the web page
    darkleft=document.getElementById('darkenLeftScreenObject');  // Get the object.
  }    
  var darkbottom = document.getElementById('darkenBottomScreenObject');
  if (!darkbottom) {
    // The dark layer doesn't exist, it's never been created.  So we'll
    // create it here and apply some basic styles.
    // If you are getting errors in IE see: http://support.microsoft.com/default.aspx/kb/927917
    pnode = document.getElementById('cufooter_container');
    if (!pnode) pnode = document.getElementById('cufooter_containerB');
    tnode = document.createElement('div');           // Create the layer.
    tnode.style.position='absolute';                 // Position absolutely
    tnode.style.top=0;								 // Top corner of layer
    tnode.style.left=0;								 // Left corner of layer
    tnode.style.width='100%';						 // width of layer
    tnode.style.height='100%';						 // height of layer
    tnode.style.overflow='hidden';                   // Try to avoid making scroll bars            
    tnode.style.display='none';                      // Start out Hidden
    tnode.id='darkenBottomScreenObject';             // Name it so we can find it later
    pnode.appendChild(tnode);                        // Add it to the web page
    darkbottom=document.getElementById('darkenBottomScreenObject');  // Get the object.
  }   
  if (vis) {
    // Calculate the page width and height 
    if( document.body && ( document.body.scrollWidth || document.body.scrollHeight ) ) {
        var pageWidth = document.body.scrollWidth+'px';
        var pageHeight = document.body.scrollHeight+'px';
        var pageHeightLeft = document.body.scrollHeight-120 + 'px';
    } else if( document.body.offsetWidth ) {
      var pageWidth = document.body.offsetWidth+'px';
      var pageHeight = document.body.offsetHeight+'px';
      var pageHeightLeft = document.body.offsetHeight-120 + 'px';
    } else {
       var pageWidth='100%';
       var pageHeight='100%';
       var pageHeightLeft='100%';
    }   
    //set the shader to cover the entire page and make it visible.
    darktop.style.opacity=opaque;                      
    darktop.style.MozOpacity=opaque;                   
    darktop.style.filter='alpha(opacity='+opacity+')'; 
    darktop.style.zIndex=zindex;
    darktop.style.backgroundColor=bgcolor;  
    darktop.style.display='block';               
    darkleft.style.opacity=darktop.style.opacity;
    darkleft.style.MozOpacity=darktop.style.MozOpacity;
    darkleft.style.filter=darktop.style.filter;
    darkleft.style.zIndex=darktop.style.zIndex;
    darkleft.style.backgroundColor=darktop.style.backgroundColor;
    darkleft.style.height=pageHeightLeft;
    darkleft.style.display=darktop.style.display;   
    darkbottom.style.opacity=darktop.style.opacity;
    darkbottom.style.MozOpacity=darktop.style.MozOpacity;
    darkbottom.style.filter=darktop.style.filter;
    darkbottom.style.zIndex=darktop.style.zIndex;
    darkbottom.style.backgroundColor=darktop.style.backgroundColor;
    darkbottom.style.display=darktop.style.display;    
  } else {
     darktop.style.display='none';
     darkleft.style.display='none';
     darkbottom.style.display='none';
  }
}