var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion()
{
	var version;
	var axo;
	var e;

	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
					
			// default to the first public version
			version = "WIN 6,0,21,0";

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

function GetSwfVer(){
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}

function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];

		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '';
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + '="' + objAttrs[i] + '" ';
    }
    str += '>';
    for (var i in params)
    {
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}
// JavaScript Document

// Copyright 2006-2007 javascript-array.com

var timeout	= 200;
var closetimer	= 0;
var ddmenuitem	= 0;

function mopen(id) { // open hidden layer
	mcancelclosetime(); // cancel close timer
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden'; // close old layer
	ddmenuitem = document.getElementById(id); // get new layer and show it
	ddmenuitem.style.visibility = 'visible';
}

function mclose() { // close showed layer
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
}

function mclosetime() { // go close timer
	closetimer = window.setTimeout(mclose, timeout);
}

function mcancelclosetime() { // cancel close timer
	if(closetimer) {
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

document.onclick = mclose; // close layer when click-out


function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  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 && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
var frameContent = "content";
var useCookiesNavId = 0;
var useCookiesPageId = 0;
var cacheMode = 0;
var debugMode = 0;
var optionsPopup = "scrollbars=yes,resizable=yes,menubar=yes,location=no,width=600,height=480";
var optionsPopup1 = "scrollbars=yes,resizable=yes,menubar=no,location=no,width=240,height=360";
var optionsPopup2 = "scrollbars=yes,resizable=yes,menubar=no,location=no,width=160,height=160";
var messageObligation = " ist ein Pflichtfeld!\n"; 

var ns  = (document.layers) ? 1 : 0;
var ie  = (document.all) ? 1 : 0;
var dom = (document.getElementById) ? 1 : 0;
var mac = (navigator.platform.indexOf("Mac") != -1) ? 1 : 0;

function redirectLanguage(subDir){

 if(subDir == "undefined" || subDir == null){
   subDir = "";
 }

 var userLanguage = getUserLanguage();
 if(userLanguage == "de"){
   document.location.href = "/de/" + subDir;
 }
 else if(userLanguage.indexOf("en") != -1){
   document.location.href = "/wEnglisch/" + subDir;
 }
 else{
   document.location.href = "/de/" + subDir;
 }  
}
  
function getUserLanguage(){

 var userLanguage;
 if(navigator.language){
  userLanguage = navigator.language;
 }
 else if(navigator.userLanguage){
  userLanguage = navigator.userLanguage;
 }

 if(debugMode == 1){
  alert(userLanguage);
 }

 return userLanguage
}
  
function getUserName(){

  var cookieStr = document.cookie;  
  var userName  = "";
  var checkIsLogedin = /wId=WSESSIONID/;
  
  if(checkIsLogedin.test(cookieStr) == true){
    cookieStr = cookieStr.replace('%2D', '');
    var checkUser       = /WSESSIONID\%40([\w|\d|\-|_|;|,|.| ]+)\%40([\w|\d|\-|_]*)\%40/;
    var checkUserPublic = /WSESSIONID\%40public_([\w|\d|\-|_|;|,|.| ]+)\%40([\w|\d|\-|_]*)\%40/;
    var checkUserPublicAlt = /WSESSIONID\%40public_([\w|\d|\-|_|;|,|.| ]+\%2[0E][\w|\d|\-|_|;|,|.| ]+)\%40([\w|\d|\-|_]*)\%40/;    
    if(checkUserPublic.test(cookieStr) == true){
      userName = RegExp.$1;
      userLang = RegExp.$2;     
    }
    else if(checkUserPublicAlt.test(cookieStr) == true){
      userName = RegExp.$1;
      userName = userName.replace(/\%20/ ,' ');
      userName = userName.replace(/\%2E/ ,'.');   
      userLang = RegExp.$2;     
    }
    else if(checkUser.test(cookieStr) == true){
      userName = RegExp.$1;
      userLang = RegExp.$2;     
    }    
  }
  return userName;  
}
  
function checkLoginInformation(){
  if(document.cookie.length < 1){
    document.write("<span class=\"mbr\">Bitte aktivieren Sie Cookies für diese Seiten!</span><br /><br />");
  }
  if(isDisabledPopups == 1){
    document.write('<span class=\"mbr\">Bitte deaktivieren Sie den Popup-Blocker für diese Seiten! <a href=\"http://dev.weblication.de/wDev/knowledgebase/articles/20060201_artikel_popup-blocker.php\" class=\"mbg\" target=\"_blank\" title=\"Hilfe zur Einstellung Popup-Blocker\">(Hilfe aufrufen)</a></span><br /><br />');
    document.write("<span class=\"mbr\">Melden Sie sich ab und ohne Popup-Blocker nochmals neu an!</span><br /><br />");
  }                        
  if(isErrorLogin == 1){
    document.write("<span class=\"mbr\">Falscher Benutzername oder falsches Passwort!</span><br /><br />");
  }
  if(isLogedin == 1){
    document.write("<span class=\"mbg\">Sie sind angemeldet als <strong>" + userName + "</strong>!</span><br /><br />");
  }
}

function openPopup(url){

 if(debugMode == 1){
  alert(url);
 }

 window.open(url, "popup", optionsPopup);
}

function openPopup1(url){

 if(debugMode == 1){
  alert(url);
 }

 window.open(url, "popup1", optionsPopup1);
}

function openPopup2(url){

 if(debugMode == 1){
  alert(url);
 }

 window.open(url, "popup2", optionsPopup2);
}

function changeLocation(url, target, navid){

  changeLocationUrl(url, target, navid);

}

function changeLocationUrl(url, target, navId){

 if(url    == "undefined" || url    == null || url == "#"){url    = "";}
 if(target == "undefined" || target == null){target = "";}
 if(navId  == "undefined" || navId  == null){navId  = "";}
 
 if(debugMode == 1){
  alert("url = " + url + "\ntarget = " + target + "\nnavId = " + navId);
 }
 
 if(url == ""){
   return;
 }
 
 url = url.replace('NAVIDJS', navId); 

 if(url != ""){
  if(useCookiesNavId == 1){
   if(navId != ""){
    document.cookie = "wNavId=" + navId + ";path=/;";
   }
  }

  if(useCookiesPageId == 1){
   var getPageId = /wPageId=(\d+)/;
   if(getPageId.test(url) == true){
    var wPageId = RegExp.$1;
    document.cookie = "wPageId=" + wPageId + ";path=/;";
   }
  }

  if(url == "#"){
   url = document.location.href;
   url = url.replace(/[\&|\?]navid=\d+/i, "");
  }

  if(navId != "" && target != "nonavid" && target != "nonavidblank"){
   var isNavigationStatic = /wNavStat_~_/;
   if(isNavigationStatic.test(url) == true){
    url = url.replace(/(\.[\w|\d]+)$/, navId + "$1");
   } 
   else{
    var hasNavid = /navid=\d+/;   
     if(hasNavid.test(url) == false){
      var hasParameters = /\?/;
      if(hasParameters.test(url) == false){
       url = url + '?' + 'navid=' + navId;
      }
      else{
       url = url + '&' + 'navid=' + navId;        
      } 
    }
   }
  }

  if(debugMode == 1){
   alert("url = " + url + "\ntarget = " + target + "\nnavId = " + navId);
  }
  
  if(target == "nonavidblank"){
    target = '_blank';
  }

  if(target == "top" || target == "_top"){
   top.location.href = url;
  }
  else if(target == "parent" || target == "_parent"){
   parent.location.href = url;
  }    
  else if(target == "blank" || target == "_blank"){
   window.open(url);
  }    
  else if(target == "popup" || target == "_popup"){
   window.open(url, "popup", optionsPopup);
  }    
  else if(target == "popup1" || target == "_popup1"){
   window.open(url, "popup1", optionsPopup1);
  }    
  else if(target == "popup2" || target == "_popup2"){
   window.open(url, "popup2", optionsPopup2);
  }    
  else{
   if(target == ""){
    target = frameContent;
   }
   if(target == "nonavid"){
     target = frameContent;
   }   
   if(frameContent != "top"){
    if(eval("top.frames['" + target + "']")){
     eval("top.frames['" + target + "'].location.href = url");
    }
             else{
     window.location.href = url;
    }  
   }
            else{
    window.location.href = url;
   } 
  }
 }
}

function changePic(picOldId, picNewObj){

 if(debugMode == 1){
  alert("picOldId = " + picOldId + "\npicNewObj = " + picNewObj);
 }
 
 if(document.images[picOldId]){
  if(document.images[picOldId].src && picNewObj){
   document.images[picOldId].src = picNewObj.src;
  }
 }
} 

function printDocument(){  

  if(document.all && navigator.appVersion.substring(22,23)==4) {
    self.focus();
    var OLECMDID_PRINT = 6;
    var OLECMDEXECOPT_DONTPROMPTUSER = 2;
    var OLECMDEXECOPT_PROMPTUSER = 1;
    var WebBrowser = '<object id="WebBrowser1" width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>';
    document.body.insertAdjacentHTML('beforeEnd',WebBrowser);
    WebBrowser1.ExecWB(OLECMDID_PRINT,OLECMDEXECOPT_DONTPROMPTUSER);
    WebBrowser1.outerHTML = '';
  }
  else{
    window.print();  
  }
}

function submitForm(form, cacheMode){

  var cookieStr = "";

  if(checkForm(form) == false){
    return;
  }
  else{
    if(cacheMode == 1){   
      cookieStr += "; path=/";  
      document.cookie = cookieStr; 
    }
    form.submit();
  }
}

function checkForm(form){

 var messageEmail      = " enthält keine gültige Email Adresse!\n"; 

  var isObligation = /\|\w*o\w*$/i;  
  var isEmail      = /\|\w*e\w*$/i;  
  var isCache      = /\|\w*c\w*$/i;  

  var checkEmail   = /.*\@.*\.\w+/i;
  var formElement;
  var formElementNameOrig;
  var elementStr;
  var alertStr = "";
  var radioButtonName = "";
 
  for(var i = 0; i <= form.elements.length - 1; i++){
    var formElement = form.elements[i];
    if(formElement && formElement.name){
      formElementNameOrig = formElement.name.replace(/\|\w+/, '');
      if(formElement.title == ""){
        elementStr = formElementNameOrig;
      }
      else{
        elementStr = formElement.title;
      }
      if(formElement.type == "text" || formElement.type == "textarea" || formElement.type == "select-one" || formElement.type == "select" ||  formElement.type == "password"){
         
        if(isObligation.test(formElement.name) == true){  
          if(formElement.value == ""){
            alertStr += elementStr + messageObligation;                     
          }
        } 
        if(isEmail.test(formElement.name) == true && formElement.value != ''){
          if (checkEmail.test(formElement.value) == false){
            alertStr += elementStr + messageEmail;                     
          }
        } 
        if(cacheMode == "1"){    
          if(isCache.test(formElement.name) == true){ 
            if(formElement.value != ""){
              cookieStr += "wFc_" + formElementNameOrig + "=" + formElement.value + ":";
            }
          }    
        }     
      }
	    else if(formElement.type == "checkbox"){
        formElementNameOrig = formElement.name.replace(/\|\w+/, ''); 	  
        if(isObligation.test(formElement.name) == true){  
          if(formElement.checked == false){
            alertStr += elementStr + messageObligation;                     
          }
        } 
	    }
      else if(formElement.type == "radio"){
        if(radioButtonName != formElement.name){
          radioButtonName = formElement.name;
          var radioButtons = document.getElementsByName(formElement.name);
          formElementNameOrig = formElement.name.replace(/\|\w+/, ''); 	  
          if(isObligation.test(formElement.name) == true){  
            var isChecked = false;
            for(j = 0; j < radioButtons.length; j++){
              if(radioButtons[j].checked == true){
                isChecked = true
              }
            }
            if(isChecked == false){
              alertStr += elementStr + messageObligation;                     
            }
          } 
        }
	    }
    }
  }

  if(alertStr != ""){
    alert(alertStr);  
    return false;
  }
  
  return true;
  
}

function initForm(form){

  var isCache      = /\|\w*c\w*$/i;
  var formElement;
  var formElementNameOrig;
  var cookieStr    = document.cookie;
  var elementValue = "";
  if(form){
    for(var i = 0; i <= form.elements.length - 1; i++){
      var formElement = form.elements[i];
      if(formElement){
        if(formElement.name){      
          if(isCache.test(formElement.name) == true){ 
            if(formElement.value == ""){
              formElementNameOrig = formElement.name.replace(/\|\w+/, ''); 
              var getElementValue = eval("/wFc_" + formElementNameOrig + "\=([^\:]+)\:/");
              if(getElementValue.test(cookieStr) == true){
                elementValue = RegExp.$1;
                formElement.value = elementValue;
              }  
            }
          }
        }
      }
    }
  }
  else{
 }
}

function startSearch(formName){
  if(formName){
    var form = formName
  }
  else{
    var form = document.frmSearch;
  }
  
  if(form.term.value == "" || form.term.value == " suchen"){
    alert("Sie haben noch keinen Suchbegriff eingegeben!");
    form.term.focus();
    return false;
  }
  
  var win = window.open ("", "winSearch","height=440,width=540,status=no,menubar=no,scrollbars=yes");
  var x = (screen.width-540)/2;
  win.moveTo(x,30);
  win.focus();
  form.submit();
}

var submenusIdOpen = new Array(0,0,0,0,0,0,0,0,0);	

function showLayer(layerId){

  if(ie){
    if(document.all[layerId]){
      document.all[layerId].style.visibility = 'visible';
    }  
  }
  else if(ns){
    if(document.layers[layerId]){
      document.layers[layerId].visibility = 'visible'; 
    } 
  }
  else if(dom){
    if(document.getElementById(layerId)){
      document.getElementById(layerId).style.visibility = 'visible';  
    }
  } 
  
}

function hideLayer(layerId){

  if(ie){
    if(document.all[layerId]){
      document.all[layerId].style.visibility = 'hidden';
    }  
  }
  else if(ns){
    if(document.layers[layerId]){
      document.layers[layerId].visibility = 'hide'; 
    } 
  }
  else if(dom){
    if(document.getElementById(layerId)){
      document.getElementById(layerId).style.visibility = 'hidden';  
    }
  } 
}
      
function openSubmenu(submenuId, submenuLevel){
  closeSubmenu(submenuId, submenuLevel);          
  submenusIdOpen[submenuLevel] = submenuId;	
  showLayer(submenuId);  
  showLayer('submenuCloserTop');
  showLayer('submenuCloserLeft');      
 
}

function closeSubmenu(submenuId, submenuLevel){
  for(var i=(submenuLevel);i<=submenusIdOpen.length;i++){
    if(submenusIdOpen[i] != 0 && submenusIdOpen[i] != submenuId){
      hideLayer(submenusIdOpen[i]);     
    }       
  }  
}

function closeSubmenuAll(){
  closeSubmenu("", 1)
  hideLayer('submenuCloserTop');
  hideLayer('submenuCloserLeft');  
  
}

function centerPopup(winName, width, height){
     var xValue = (screen.width / 2) - (width / 2);
     var yValue = (screen.height / 2) - (height / 2);

     winName.moveTo(xValue, yValue);
     winName.focus();
}

function showCMSBackend(){
    var url = '/cgi-bin/wWeblic.cgi';
    adminWin = window.open(url, 'winAdmin', 'width=900, height=700, resizable=yes, scrollbars=no');
    centerPopup(adminWin, 900, 700);
}/*
	Lightbox JS: Fullsize Image Overlays 
	by Lokesh Dhakar - http://www.huddletogether.com

	For more information on this script, visit:
	http://huddletogether.com/projects/lightbox/

	Licensed under the Creative Commons Attribution 2.5 License - http://creativecommons.org/licenses/by/2.5/
	(basically, do anything you want, just leave my name and link)
*/

var loadingImage = '/de/wLayout/design/images/lightbox/loading.gif';		
var closeButton = '/de/wLayout/design/images/lightbox/close.gif';		

function getPageScroll(){
	var yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	}

	arrayPageScroll = new Array('',yScroll) 
	return arrayPageScroll;
}

function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}

function pause(numberMillis) {
	var now = new Date();
	var exitTime = now.getTime() + numberMillis;
	while (true) {
		now = new Date();
		if (now.getTime() > exitTime)
			return;
	}
}

function getKey(e){
	if (e == null) { // ie
		keycode = event.keyCode;
	} else { // mozilla
		keycode = e.which;
	}
	key = String.fromCharCode(keycode).toLowerCase();
	
	if(key == 'x'){ hideLightbox(); }
}

function listenKey () {	document.onkeypress = getKey; }
	
function showLightbox(objLink)
{
	var objOverlay = document.getElementById('overlay');
	var objLightbox = document.getElementById('lightbox');
	var objCaption = document.getElementById('lightboxCaption');
	var objImage = document.getElementById('lightboxImage');
	var objLoadingImage = document.getElementById('loadingImage');
	var objLightboxDetails = document.getElementById('lightboxDetails');
	
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();

	if (objLoadingImage) {
		objLoadingImage.style.top = (arrayPageScroll[1] + ((arrayPageSize[3] - 35 - objLoadingImage.height) / 2) + 'px');
		objLoadingImage.style.left = (((arrayPageSize[0] - 20 - objLoadingImage.width) / 2) + 'px');
		objLoadingImage.style.display = 'block';
	}

	objOverlay.style.height = (arrayPageSize[1] + 'px');
	objOverlay.style.display = 'block';

	imgPreload = new Image();

	imgPreload.onload=function(){
		objImage.src = objLink.href;

		var lightboxTop = arrayPageScroll[1] + ((arrayPageSize[3] - 35 - imgPreload.height) / 2);
		var lightboxLeft = ((arrayPageSize[0] - 20 - imgPreload.width) / 2);
		
		objLightbox.style.top = (lightboxTop < 0) ? "0px" : lightboxTop + "px";
		objLightbox.style.left = (lightboxLeft < 0) ? "0px" : lightboxLeft + "px";


		objLightboxDetails.style.width = imgPreload.width + 'px';
		
		if(objLink.getAttribute('title')){
			objCaption.style.display = 'block';
			objCaption.innerHTML = objLink.getAttribute('title');
		} else {
			objCaption.style.display = 'none';
		}
		
		if (navigator.appVersion.indexOf("MSIE")!=-1){
			pause(250);
		} 

		if (objLoadingImage) {	objLoadingImage.style.display = 'none'; }

		selects = document.getElementsByTagName("select");
        for (i = 0; i != selects.length; i++) {
                selects[i].style.visibility = "hidden";
        }
	
		objLightbox.style.display = 'block';

		arrayPageSize = getPageSize();
		objOverlay.style.height = (arrayPageSize[1] + 'px');
		
		listenKey();

		return false;
	}

	imgPreload.src = objLink.href;
	
}

function hideLightbox()
{
	objOverlay = document.getElementById('overlay');
	objLightbox = document.getElementById('lightbox');

	objOverlay.style.display = 'none';
	objLightbox.style.display = 'none';

	selects = document.getElementsByTagName("select");
    for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "visible";
	}

	document.onkeypress = '';
}

function initLightbox()
{
	
	if (!document.getElementsByTagName){ return; }
	var anchors = document.getElementsByTagName("a");

	// loop through all anchor tags
	for (var i=0; i<anchors.length; i++){
		var anchor = anchors[i];

		if (anchor.getAttribute("href") && (anchor.getAttribute("rel") == "lightbox")){
			anchor.onclick = function () {showLightbox(this); return false;}
		}
	}
	
	var objBody = document.getElementsByTagName("body").item(0);
	
	var objOverlay = document.createElement("div");
	objOverlay.setAttribute('id','overlay');
	objOverlay.onclick = function () {hideLightbox(); return false;}
	objOverlay.style.display = 'none';
	objOverlay.style.position = 'absolute';
	objOverlay.style.top = '0';
	objOverlay.style.left = '0';
	objOverlay.style.zIndex = '90';
 	objOverlay.style.width = '100%';
	objBody.insertBefore(objOverlay, objBody.firstChild);
	
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();

	var imgPreloader = new Image();
	
	imgPreloader.onload=function(){

		var objLoadingImageLink = document.createElement("a");
		objLoadingImageLink.setAttribute('href','#');
		objLoadingImageLink.onclick = function () {hideLightbox(); return false;}
		objOverlay.appendChild(objLoadingImageLink);
		
		var objLoadingImage = document.createElement("img");
		objLoadingImage.src = loadingImage;
		objLoadingImage.setAttribute('id','loadingImage');
		objLoadingImage.style.position = 'absolute';
		objLoadingImage.style.zIndex = '150';
		objLoadingImageLink.appendChild(objLoadingImage);

		imgPreloader.onload=function(){};

		return false;
	}

	imgPreloader.src = loadingImage;

	var objLightbox = document.createElement("div");
	objLightbox.setAttribute('id','lightbox');
	objLightbox.style.display = 'none';
	objLightbox.style.position = 'absolute';
	objLightbox.style.zIndex = '100';	
	objBody.insertBefore(objLightbox, objOverlay.nextSibling);
	
	var objLink = document.createElement("a");
	objLink.setAttribute('href','#');
	objLink.setAttribute('title','Click to close');
	objLink.onclick = function () {hideLightbox(); return false;}
	objLightbox.appendChild(objLink);

	var imgPreloadCloseButton = new Image();

	imgPreloadCloseButton.onload=function(){

		var objCloseButton = document.createElement("img");
		objCloseButton.src = closeButton;
		objCloseButton.setAttribute('id','closeButton');
		objCloseButton.style.position = 'absolute';
		objCloseButton.style.zIndex = '200';
		objLink.appendChild(objCloseButton);

		return false;
	}

	imgPreloadCloseButton.src = closeButton;

	var objImage = document.createElement("img");
	objImage.setAttribute('id','lightboxImage');
	objLink.appendChild(objImage);
	
	var objLightboxDetails = document.createElement("div");
	objLightboxDetails.setAttribute('id','lightboxDetails');
	objLightbox.appendChild(objLightboxDetails);

	var objCaption = document.createElement("div");
	objCaption.setAttribute('id','lightboxCaption');
	objCaption.style.display = 'none';
	objLightboxDetails.appendChild(objCaption);

	var objKeyboardMsg = document.createElement("div");
	objKeyboardMsg.setAttribute('id','keyboardMsg');
	objKeyboardMsg.innerHTML = 'Dr&uuml;cken Sie <a href="#" onclick="hideLightbox(); return false;"><kbd>x</kbd></a> um das Fenster zu schlie&szlig;en';
	objLightboxDetails.appendChild(objKeyboardMsg);
}

function addLoadEvent(func)
{	
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
    	window.onload = func;
	} else {
		window.onload = function(){
		oldonload();
		func();
		}
	}

}

addLoadEvent(initLightbox);	// run initLightbox onLoad