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;
}


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 = "/furth/" + subDir;
 }
 else if(userLanguage.indexOf("en") != -1){
   document.location.href = "/wEnglisch/" + subDir;
 }
 else{
   document.location.href = "/furth/" + 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 false; // bei Aufruf ueber <button type="submit" ... und onSubmit-Event im Form-Tag
    return;          // bei Aufruf ueber <a href="javascript:submitForm(document.frmContact);" ... oder onclick="submitForm();" ...
  }
  else{
    if(cacheMode == 1){   
      cookieStr += "; path=/";  
      document.cookie = cookieStr; 
    }
    form.submit();
  }
}

function checkForm(form){

 var messageEmail      = " enthält keine gültige Email Adresse!\n"; //erscheint wenn ein Pflichtfeld nicht ausgefüllt wurde

  var isObligation = /\|\w*o\w*$/i;  //Pflichtfeld, wenn Feldname am Schluss |o  enthaelt   (z.B.: "Strasse|o")
  var isEmail      = /\|\w*e\w*$/i;  //Emailfeld wenn Feldname am Schluss |e enthaelt       (z.B.: "eMail|e")
  var isCache      = /\|\w*c\w*$/i;  //Wird fuer weitere Formulare gespeichert am Schluss |c enthaelt       (z.B.: "eMail|c")
          //Pflicht- und Emailfeld, wenn am Schluss |oe oder |eo (z.B.: "eMail|eo") 

  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){ // 23.05.2008: Wie folgt geändert, damit auch fieldset berücksichtigt werden kann (ph)
    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){  // 13.08.2007: Wird nun auf nicht leeren Inhalt geprüft, damit das Feld auch als Nicht-Pflichtfeld definiert werden kann (ph)
        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;  //Wird fuer weitere Formulare gespeichert am Schluss |c enthaelt       (z.B.: "eMail|c")

  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{
    //alert("Formular wurde nicht gefunden!\n Wurde es schon geladen?");
  }
}

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]);     
    }       
  }  
  //hideLayer('submenuCloserTop');
  //hideLayer('submenuCloserLeft');  
}

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);
}

