/*in4meta - JS-Kernel-System
  ~~ CG 2004 ~~
*/

//variables

var pageVarCollection = new Array();
var i4mArrLangSupport = null;
var frameSetToggleInfo = null;
var blnInEditRights = false;
var isNetscapeBrowser = false;

// small browser check
if(navigator.appName == "Netscape"){ isNetscapeBrowser = true;}
	
// data types
function _type_frameSetToggle()
{ this.lastStorePos = 0;
  this.curStorePos = 0;
  this.curToggleState = 0;
  this.storeRef = null;
  this.storePos = 0;
  this.blnColsIsStore = false;
  this.inFadeProgress = false;
  this.parentFrameSet = null;
  this.isClosed = false;
  // const part for config
  this.const_stepMove = 25;
  this.isPercentMode = false;
  this.doNoAni = false;
  // root frameset
  this.rootFrameSet = null;
  this.rootFrameSetConfig = "";
  this.rootFrameSetIsColsStore = false;
}

function _type_langSupport()
{ this.i4mArrPackageLanguages = null;
  this.i4mArrPackagePages = null;
  this.i4mArrMissingLanguages = null;

  this.refObj_ShowLanguages = null;
  this.refObj_CreateLanguages = null;

  this.i4mArrLanguagesIDs = null;
  this.i4mArrLanguagesDescs = null;

  // html default templates
  this.template_ShowLanguages = "<img src='/include/images/%language%.gif' style='margin-right:2px;'>";
  this.template_ShowLanguages_CurLang = "<img src='/include/images/%language%.gif' onclick='%link%' style='margin-right:2px;'>";
  this.template_CreateLanguages = "<img src='%imgPath%' onclick='%link%'>";
  this.doSorting = true;
}

function splitSubmitData()
{
  var splitData = document.Formular.Eingabe.value;
  var strTemp = '';
  var const_maxDataSize = 33333;
  var nObj = null;
  var cntObjCreated = 0;
  var lPos = 0;

  while (0!=105) {
    strTemp = splitData.substr(lPos, const_maxDataSize);
    if (strTemp.length > 0)
    {
      cntObjCreated++;
      nObj = document.createElement('textarea');
      nObj.value = strTemp;
      nObj.style.display = 'none';
      nObj.name = 'submitData' + (cntObjCreated);
      document.Formular.appendChild(nObj);
      //splitData = splitData.substr(strTemp.length, splitData.length);
      lPos += strTemp.length;
    } else { break; }}

    document.Formular.cntSubDataFields.value = cntObjCreated;
    document.Formular.Eingabe.value = '';
}

// try 2 set the focus to control
// OverlayEdit
function setFocus2Control(ref2obj)
{
  var strEVAL = ref2obj + ".focus()";
  try
  {
     if(g_DHTMLObjectEdit)
     {
       if (inLoadingMode)
       { hook_onShowCompleteEvent(strEVAL); return true; }
     }
     // try to eval
     eval(strEVAL);
     return true;
   }
  catch (e)
  { // error stuff here
    alert("Error in setFocus2Control (" + ref2obj + ")");
  }
  return false;
}


/* sets the Redirect2UrlLink for mainForm
  Redirect to specified Url for example: after Update Process
*/
function setRedirect2URL(strUrl2Redirect,blnDoRedirect)
{
  document.Formular.redirect2Url.value = strUrl2Redirect;
  if (blnDoRedirect)
  { document.location.href = strUrl2Redirect;
  }
}

// get selected value from control
function getControlSelectedValue(ref2control)
{ var i = -1;
  var valRet = "";
  for(i=0;i<=ref2control.length;i++)
  { if(ref2control[i].checked)
    { valRet = ref2control[i].value;
      break;
    }
  }
  return valRet;
}

/* Code for Language - Management */

function InitializeLanguage(){
	//initialisiere Language-Arrays:
	//i4mArrLangSupport.i4mArrPackageLanguages: alle Sprachen des Pakets
	//i4mArrLangSupport.i4mArrPackagePages: alle Seiten des Pakets
	//i4mArrMissingLanguages: alle noch fehlenden Sprachen des Pakets
	var strHTMLCode = "", strLang = "", strLink = "", strLangDesc = "", curTemplate = null;


	i4mArrLangSupport = new _type_langSupport();

	if(typeof(arrLanguageReferer)!='undefined'){


	    i4mArrLangSupport.refObj_CreateLanguages = document.getElementById("ctrl_CreateLanguage");
	    i4mArrLangSupport.refObj_ShowLanguages = document.getElementById("ctrl_ShowLanguage");

		// load
     	// language sorting
        if (typeof(ShowLanguage_DoSorting) !='undefined')
        {
        	if (ShowLanguage_DoSorting == "0")
        	{
         		i4mArrLangSupport.doSorting	= false;
         	}
        }

	    // check if langsupport activated
		i4mArrLangSupport.i4mArrPackageLanguages=new Array(arrLanguageReferer.length);
		i4mArrLangSupport.i4mArrPackagePages=new Array(arrLanguageReferer.length);
		i4mArrLangSupport.i4mArrMissingLanguages=new Array(0);
		var i=0, j=0;
		for(i=0;i!=arrLanguageReferer.length;i++){
			i4mLangID=arrLanguageReferer[i].split(';')[0].toUpperCase();
			i4mLangPage=arrLanguageReferer[i].split(';')[1].toUpperCase();
			if (!i4mArrLangSupport.doSorting)
			{	// dont sort
                i4mArrLangSupport.i4mArrPackageLanguages[j]=i4mLangID;
	        	i4mArrLangSupport.i4mArrPackagePages[j]=i4mLangPage;
	        	j++;
			}
			else
			{	// do sorting

                if(i4mLangID==PageLanguage.toUpperCase())
                {
                    i4mArrLangSupport.i4mArrPackageLanguages[0]=i4mLangID;
                    i4mArrLangSupport.i4mArrPackagePages[0]=PageName;
                }
                else
                {
                    j++;
                    i4mArrLangSupport.i4mArrPackageLanguages[j]=i4mLangID;
                    i4mArrLangSupport.i4mArrPackagePages[j]=i4mLangPage;
                }
			}
		}
		if(PageLanguage!=''){
			i4mArrLangSupport.i4mArrLanguagesIDs=i4m_LanguageIDs.split(',');
			i4mArrLangSupport.i4mArrLanguagesDescs=i4m_LanguageNames.split(',');
			i4mstrPackageLanguages=','+i4mArrLangSupport.i4mArrPackageLanguages.join(',')+',';
			for(i=0;i!=i4mArrLangSupport.i4mArrLanguagesIDs.length;i++){
				if(i4mstrPackageLanguages.toLowerCase().indexOf(','+i4mArrLangSupport.i4mArrLanguagesIDs[i].toLowerCase()+',')==-1){
					i4mArrLangSupport.i4mArrMissingLanguages.push(i4mArrLangSupport.i4mArrLanguagesIDs[i].toUpperCase());
				}
			}
		}

       if (i4mArrLangSupport.refObj_ShowLanguages != null && typeof(template_ShowLanguages)!= 'undefined' && typeof(template_ShowLanguages_CurLang)!= 'undefined')
       {
         i4mArrLangSupport.template_ShowLanguages_CurLang = template_ShowLanguages_CurLang;
		 i4mArrLangSupport.template_ShowLanguages = template_ShowLanguages;

		// on langSupport
		if (i4mArrLangSupport.i4mArrPackageLanguages.length > 0)
		{ // show language handling
		  strHTMLCode = "";
		  for(i=0;i<i4mArrLangSupport.i4mArrPackageLanguages.length;i++)
		  {

		   strLang = i4mArrLangSupport.i4mArrPackageLanguages[i];
		   i4m_LanguageNames
		   //i==0
		   if(strLang == PageLanguage.toUpperCase())
		   {
		      // default template for current languages
		      strLink = "javascript:;"
		      curTemplate = i4mArrLangSupport.template_ShowLanguages_CurLang ;
		    } else
		    { // other languages
		      strLink = i4mArrLangSupport.i4mArrPackagePages[i];
		      curTemplate = i4mArrLangSupport.template_ShowLanguages;
		    }

		    strHTMLCode += languageSupport_replaceNode(curTemplate,strLink,strLang,getLangDesc(strLang));

		  }
		  i4mArrLangSupport.refObj_ShowLanguages.innerHTML = strHTMLCode;
		 }
		  // create language handling
		  if (typeof(application_const_servername_dynamisch) != "undefined" && i4mArrLangSupport.refObj_CreateLanguages != null && typeof(template_CreateLanguages)!='undefined')
		  {

		   i4mArrLangSupport.template_CreateLanguages = template_CreateLanguages;

		    if ((location.hostname + ":" + location.port) == application_const_servername_dynamisch)
		    { strHTMLCode = "";
			  for(i=0;i<i4mArrLangSupport.i4mArrMissingLanguages.length;i++)
			  { strLink = "javascript:popupnewpageassistent(\'sprache="+i4mArrLangSupport.i4mArrMissingLanguages[i]+"&sourcepage="+PageName+"\');"
			    strLang = i4mArrLangSupport.i4mArrMissingLanguages[i];
		    	strHTMLCode += languageSupport_replaceNode(i4mArrLangSupport.template_CreateLanguages,strLink,strLang,getLangDesc(strLang));
			  }
			  i4mArrLangSupport.refObj_CreateLanguages.innerHTML = strHTMLCode;
		    }
		  }


	  }
	}
}

function getLangDesc(searchLangID)
{
  var retLangStr = "", cntI = 0;

  for(cntI=0;cntI<i4mArrLangSupport.i4mArrLanguagesIDs.length;cntI++)
  {
  	if (i4mArrLangSupport.i4mArrLanguagesIDs[cntI] == searchLangID)
  	{

  		retLangStr = i4mArrLangSupport.i4mArrLanguagesDescs[cntI];
  		break;
   	}
  }

  // i4mArrLanguagesDescs
  return retLangStr;
}

// replace the template
function languageSupport_replaceNode(templateSrc,strLink,strLang,strLangDesc)
{ templateSrc = templateSrc.replace(/%link%/g,strLink);
  templateSrc = templateSrc.replace(/%language%/g,strLang);
  templateSrc = templateSrc.replace(/%languagedesc%/g,strLangDesc);
  return templateSrc;
}

function i4mInit(){

	if (typeof(i4m_Edit)!='undefined'){
		if(i4m_Edit == 1){
		blnInEditRights = true;
if(typeof(application_const_applications)!='undefined'){
pageVarCollection["i4mMeta_applications"]=application_const_applications;
}else{pageVarCollection["i4mMeta_applications"]='';}
if(typeof(application_const_applicationpath)!='undefined'){pageVarCollection["i4mMeta_applicationpath"]=application_const_applicationpath;}else{pageVarCollection["i4mMeta_applicationpath"]='';}
if(typeof(application_const_subapplications)!='undefined'){pageVarCollection["i4mMeta_subapplications"]=application_const_subapplications;}else{pageVarCollection["i4mMeta_subapplications"]='';}
if(typeof(application_const_rubrik_startpath)!='undefined'){pageVarCollection["i4mMeta_rubrik_startpath"]=application_const_rubrik_startpath;}else{pageVarCollection["i4mMeta_rubrik_startpath"]='';}
if(typeof(application_const_servername_statisch)!='undefined'){pageVarCollection["i4mMeta_servername_statisch"]=application_const_servername_statisch;}else{pageVarCollection["i4mMeta_servername_statisch"]='';}
if(typeof(application_const_servername_dynamisch)!='undefined'){pageVarCollection["i4mMeta_servername_dynamisch"]=application_const_servername_dynamisch;}else{pageVarCollection["i4mMeta_servername_dynamisch"]='';}

if(typeof(session_isallowtreehide)!='undefined'){pageVarCollection["i4mMeta_isallowtreehide"]=session_isallowtreehide;}else{pageVarCollection["i4mMeta_isallowtreehide"]='true';}
if(typeof(session_isallownewpageassistent)!='undefined'){i4mMeta_isallownewpageassistent=session_isallownewpageassistent;}else{i4mMeta_isallownewpageassistent='true';}


if(typeof(session_isallowwebpreview)!='undefined'){pageVarCollection["i4mMeta_allowWebPreview"]=session_isallowwebpreview;}else{pageVarCollection["i4mMeta_allowWebPreview"]='false';}

			if (typeof(pageVarCollection["i4mMeta_isallowtreehide"])!='undefined'){
				if (pageVarCollection["i4mMeta_isallowtreehide"]=='true'){
					i4mElement=document.getElementById('i4mTreeShowHide');
					if(i4mElement!=null){
					i4mElement.style.display='inline';
				   		tree_getFrameSetInfo();
						//BaumAuf-BaumZu einblenden
						setTreeOpenCloseButtonCfg(1,true);
					}
				}
			}


			// webPreview

			if (typeof(i4mMeta_preViewTemplate)!='undefined'){
				if (i4mMeta_preViewTemplate.length > 0 && pageVarCollection["i4mMeta_allowWebPreview"] == 'true')
				{
					if(i4mMeta_pageStatus.toUpperCase() >= i4mMeta_pageTestWebLevel.toUpperCase())
					{
						i4mWebpreview.style.display = 'inline';
					}
				}

			}


			if (typeof(meta_id)!='undefined'){
				var id=meta_id.split(",");
				if (id[0].length > 0){
					//wenn mind. 1 Rubrik zugewiesen, dann zeige Managementbutton an
					i4mElement=document.getElementById('i4mManagement');
					if(i4mElement!=null){i4mElement.style.display='inline';

			//zeige Newpage-Button an

			i4mElement=document.getElementById('i4mNewpage');
			if(i4mElement!=null){
			if (typeof(i4mMeta_isallownewpageassistent)!='undefined'){
				if(i4mMeta_isallownewpageassistent!='false'){
					if(pageVarCollection["i4mMeta_applicationpath"].length==0 || PageName.toLowerCase().indexOf(pageVarCollection["i4mMeta_applicationpath"])==-1){;
						if(typeof(i4m_CanCreateDocument)!='undefined')
						{	if (i4m_CanCreateDocument == 1)
							{
								i4mElement.style.display='inline';
							}
						}
					}
				}
			}}
			if(location.search.indexOf("popupnewpageassistent=true")>-1){
				popupnewpageassistent(location.search);
			}

					}
				}
			}

		}
	}

	// try to initialize language
	InitializeLanguage();
	
	if (blnInEditRights)
	{	// lets start up with mouse api
		initMouseHandlerApi();
	}
}

// global Event - fires when pageIsCompleteRendered
function fireevent_PageLoadComplete()
{
	// call standard init function
	i4mInit();
	// Custom Functions
	if(typeof(i4mPageLoadComplete_Custom1)!='undefined')i4mPageLoadComplete_Custom1();
	if(typeof(i4mPageLoadComplete_Custom2)!='undefined')i4mPageLoadComplete_Custom2();
	if(typeof(i4mPageLoadComplete_Custom3)!='undefined')i4mPageLoadComplete_Custom3();
	if(typeof(i4mPageLoadComplete_Custom4)!='undefined')i4mPageLoadComplete_Custom4();
	if(typeof(i4mPageLoadComplete_Custom5)!='undefined')i4mPageLoadComplete_Custom5();
}

function managementbutton() {
	id=meta_id.split(",");
	if (id[0].length > 0){
		//der Seite ist mind. 1 Rubrik zugewiesen
		var js_managementpage="management.htm";
		var app="";
		var subapp="";
		var separator="";
		var rubrikstartpath="";
		var arrApp=pageVarCollection["i4mMeta_applications"].toLowerCase().split(',');
		var arrAppPath=pageVarCollection["i4mMeta_applicationpath"].toLowerCase().split(',');
		var arrSubApp=pageVarCollection["i4mMeta_subapplications"].toLowerCase().split(',');
		rubrikstartpath=pageVarCollection["i4mMeta_rubrik_startpath"];
		rubrikstartpath=rubrikstartpath.replace(/\//g,"");
		if(rubrikstartpath!=''){rubrikstartpath="/"+rubrikstartpath;}
		for(i=0;i<arrApp.length;i++){
			arrAppSubPath=arrAppPath[i].split(';');
			for(j=0;j<arrAppSubPath.length;j++){
				if(PageName.toLowerCase().indexOf(arrAppSubPath[j].toLowerCase())>-1&&arrAppPath[i]>' '){
					app=arrApp[i]; separator="-";
					for(k=0;k<arrSubApp.length;k++){
						if(PageName.toLowerCase().indexOf(arrSubApp[k].toLowerCase())>-1){
							subapp=arrSubApp[k].replace(/\//g,'')
						}
					}
				}
			}
		}
		GoToLink(rubrikstartpath+"/sys_management/" + app + separator + js_managementpage + "?id=" + id[0] + "&path=" + meta_path + "&app="+app+"&subapp="+subapp);
	}
}

function setTreeOpenCloseButtonCfg(toggleMode,blnInitCall)
{
	var oLink = document.getElementById('li1');
	var oImage = document.getElementById('i1');

	if (toggleMode == 0 || !top.treeFrame || (frameSetToggleInfo.isClosed && blnInitCall) )
	{
	  oImage.src = '/include/images/verkleinern.gif';
	  oLink.title= strMsg_Minimize;
	  if(!top.treeFrame)
	  { oLink.href = 'javascript:top.location.href="/include/baum.asp?seite="+this.location.href;';
	  } else
	  { oLink.href = 'javascript:manageShowHideTreeFrame()';
	  frameSetToggleInfo.curToggleState = 1;
    }
	} else
	{ oImage.src = '/include/images/vergroessern.gif';
	  oLink.title= strMsg_Maximize;
	  oLink.href = 'javascript:manageShowHideTreeFrame()';
	  frameSetToggleInfo.curToggleState = 0;
	}

	oLink = null;
    oImage = null;
}

function tree_getFrameSetInfo(){
  var treeFrameRef = null, curNuode = null, parentFrameSet = null, treeFrameSet = null;
  var strTemp = "", pos1 = -1;

  if(!top.treeFrame){ return false; }

  treeFrameRef = parent.document.getElementsByName("treeFrame");

  if (frameSetToggleInfo == null){
    frameSetToggleInfo = new _type_frameSetToggle();
    // do init stuff
    // check if the treeFrameScroller is disabled
    if(typeof(session_disableframescroller)!='undefined'){if (session_disableframescroller=='true'){frameSetToggleInfo.doNoAni=true;}}
  }

  if (treeFrameRef != null)
  {
    treeFrameSet = treeFrameRef[0].parentNode;
    parentFrameSet = treeFrameSet.parentNode;

    retNodePos = 0;

    curNode = treeFrameSet.previousSibling;
    while (curNode != null)
    { retNodePos++;
      curNode = curNode.previousSibling;
    }
    curNode = null;

    //cols || rows ?
    strTemp = parentFrameSet.cols;
    if (strTemp.length == 0)
    { strTemp =  parentFrameSet.rows; blnColsIsStore = false; }
    else
    { blnColsIsStore = true; }

    frameSetToggleInfo.parentFrameSet = parentFrameSet;
    frameSetToggleInfo.storePos = retNodePos;
    frameSetToggleInfo.blnColsIsStore = blnColsIsStore;
    frameSetToggleInfo.storeRef = strTemp.split(",");

    // root frameSet detection
    if (parentFrameSet.parentNode.tagName.toLowerCase() == "frameset")
    {
      frameSetToggleInfo.rootFrameSet = parentFrameSet.parentNode;

      blnColsIsStore = false;
      strTemp = frameSetToggleInfo.rootFrameSet.cols;
      if (strTemp.length == 0)
      { strTemp = frameSetToggleInfo.rootFrameSet.rows; blnColsIsStore = false; }
      else
      { blnColsIsStore = true; }

      frameSetToggleInfo.rootFrameSetIsColsStore = blnColsIsStore;
      frameSetToggleInfo.rootFrameSetConfig = strTemp;
    }

    frameSetToggleInfo.lastStorePos = parentFrameSet.getAttribute("orgPos");
    if (frameSetToggleInfo.lastStorePos == null)
    { frameSetToggleInfo.lastStorePos = frameSetToggleInfo.storeRef[retNodePos];
      parentFrameSet.setAttribute("orgPos", frameSetToggleInfo.storeRef[retNodePos]);
    }

    strTemp = frameSetToggleInfo.lastStorePos;
    pos1 = strTemp.search(/%/);
    if (pos1 > -1)
    { strTemp = strTemp.substring(0,pos1);
      frameSetToggleInfo.isPercentMode = true;
      frameSetToggleInfo.const_stepMove = 4;
      frameSetToggleInfo.lastStorePos = strTemp;
    } else
    {
      if (isNaN(strTemp))
      { frameSetToggleInfo.doNoAni = true;
      }
    }

    // check if tree size is minimized
    frameSetToggleInfo.isClosed = false;
    strTemp = frameSetToggleInfo.storeRef[retNodePos];

    if (strTemp.length > 0)
    {  if (strTemp.substr(0,1) == 0)
       { frameSetToggleInfo.isClosed = true;
       }
    }

  }

  parentFrameSet = null;
  return true;
}

/* CG manageShowHideOfTreeFrame - algorithm
*/
function manageShowHideTreeFrame()
{
  var parentFrameSet = null;
  var i = -1, retNodePos = -1, strTemp = "", arrPosStore = null, blnColsIsStore = false, newFrameSetConfig = "";;

  try
  {

    if (!frameSetToggleInfo.inFadeProgress){

    parentFrameSet = frameSetToggleInfo.parentFrameSet;
    retNodePos = frameSetToggleInfo.storePos;
    blnColsIsStore = frameSetToggleInfo.blnColsIsStore;
    arrPosStore = frameSetToggleInfo.storeRef;

    if (frameSetToggleInfo.rootFrameSet != null)
    {
      newFrameSetConfig = frameSetToggleInfo.rootFrameSetConfig.split(",");

      if (frameSetToggleInfo.curToggleState == 0)
      {
        // manage the head and footer frames - generic
        for (i=0;i<parentFrameSet.parentNode.childNodes.length;i++)
        {
          subNodeRef = parentFrameSet.parentNode.childNodes[i];
          if (subNodeRef.tagName.toLowerCase() == "frame")
          { // record the frames
            newFrameSetConfig[i] = "0";
          }
          subNodeRef = null;
        }
      } else if (frameSetToggleInfo.curToggleState == 1)
      {
      }

      if (frameSetToggleInfo.rootFrameSetIsColsStore)
      { frameSetToggleInfo.rootFrameSet.cols = newFrameSetConfig.join(",");
      } else
      { frameSetToggleInfo.rootFrameSet.rows = newFrameSetConfig.join(",");
      }

      newFrameSetConfig = null;
    }


     if (frameSetToggleInfo.curToggleState == 0)
     {
       frameSetToggleInfo.curStorePos = frameSetToggleInfo.lastStorePos;
       setTreeOpenCloseButtonCfg(0,false);
     }
     else if (frameSetToggleInfo.curToggleState == 1)
     {
       frameSetToggleInfo.curStorePos = 0;
       setTreeOpenCloseButtonCfg(1,false);
     }

     frameSetToggleInfo.inFadeProgress = true;

  	 fadeTheTree();
  	}

  }
  catch(e)
  { alert("system.js - manageShowHideTreeFrame() - Error");
  }

  parentFrameSet = null;
}


function fadeTheTree()
{
  var blnStopFade = false, strTemp = 0;

  switch (frameSetToggleInfo.curToggleState)
  { case 1:
       if (!frameSetToggleInfo.doNoAni)
       { frameSetToggleInfo.curStorePos = Number(frameSetToggleInfo.curStorePos) - frameSetToggleInfo.const_stepMove;
         if (frameSetToggleInfo.curStorePos <= 0)
         { blnStopFade = true;
         frameSetToggleInfo.curStorePos = 0; }
       } else
       { blnStopFade = true; frameSetToggleInfo.curStorePos = 0;
       }
    break;

    case 0:
       if (!frameSetToggleInfo.doNoAni)
       { frameSetToggleInfo.curStorePos = Number(frameSetToggleInfo.curStorePos) + frameSetToggleInfo.const_stepMove;
         if (frameSetToggleInfo.curStorePos >= frameSetToggleInfo.lastStorePos)
         { blnStopFade = true;
           frameSetToggleInfo.curStorePos = frameSetToggleInfo.lastStorePos; }
       }else
       { blnStopFade = true; frameSetToggleInfo.curStorePos = frameSetToggleInfo.lastStorePos;
       }
    break;
  }

  if (frameSetToggleInfo.isPercentMode){ strTemp = "%"; }
  frameSetToggleInfo.storeRef[frameSetToggleInfo.storePos] = Number(frameSetToggleInfo.curStorePos) + strTemp;

  strTemp = frameSetToggleInfo.storeRef.join(",");

  if (!frameSetToggleInfo.blnColsIsStore)
  { frameSetToggleInfo.parentFrameSet.rows = strTemp; }
  else { frameSetToggleInfo.parentFrameSet.cols = strTemp; }

  if(!blnStopFade){
    setTimeout("fadeTheTree()",5);
  } else
  {  frameSetToggleInfo.inFadeProgress = false;
  }
}


function webpreviewcall()
{
  var link= i4mMeta_preViewTemplate + '?templatecaller=' + i4m_Seite_URL + '&TemplWeb=Test';
  window.open(link,'Preview','width=1000,height=700,left=0,top=0,scrollbars,resizable,dependent=yes');
}

function popupnewpageassistent(parameter){
	//Defaultvalues
	var sprache='';
	var template='';
	var standardseitenname='';
	var dokumenttyp='';
	var titel='';
	var beschreibung='';
	var navigation='';
	var sourcepage='';
	var viewrights='';
	var seite='';
	var pfadweb='';
	var application='';
	var subportal='';


	//Vorbefuellung
	seite=PageName;
	pfadweb=meta_path;
	if (typeof(i4mMeta_subweb_applikation) != 'undefined'){
 		application=i4mMeta_subweb_applikation;
 	}

	subportal='';
	if (typeof(i4mMeta_subweb_subportal) != 'undefined') {
 		subportal=i4mMeta_subweb_subportal.toLowerCase();
	}

	//wenn Parameter uebergeben, dann Variablen mit Parameteruebergabe fuellen
	if (typeof(parameter)!='undefined'){
		var i4mArrParameter=parameter.split('&');
		for(i=0;i<i4mArrParameter.length;i++){
			if(i4mArrParameter[i].toLowerCase().indexOf("sprache=")==0){sprache=i4mArrParameter[i].split('=')[1].toLowerCase();}
			if(i4mArrParameter[i].toLowerCase().indexOf("template=")==0){template=i4mArrParameter[i].split('=')[1].toLowerCase();}
			if(i4mArrParameter[i].toLowerCase().indexOf("standardseitenname=")==0){standardseitenname=i4mArrParameter[i].split('=')[1].toLowerCase();}
			if(i4mArrParameter[i].toLowerCase().indexOf("subportal=")==0){subportal=i4mArrParameter[i].split('=')[1].toLowerCase();}
			if(i4mArrParameter[i].toLowerCase().indexOf("application=")==0){application=i4mArrParameter[i].split('=')[1].toLowerCase();}
			if(i4mArrParameter[i].toLowerCase().indexOf("dokumenttyp=")==0){dokumenttyp=i4mArrParameter[i].split('=')[1].toLowerCase();}
			if(i4mArrParameter[i].toLowerCase().indexOf("titel=")==0){titel=i4mArrParameter[i].split('=')[1].toLowerCase();}
			if(i4mArrParameter[i].toLowerCase().indexOf("beschreibung=")==0){beschreibung=i4mArrParameter[i].split('=')[1].toLowerCase();}
			if(i4mArrParameter[i].toLowerCase().indexOf("navigation=")==0){navigation=i4mArrParameter[i].split('=')[1].toLowerCase();}
			if(i4mArrParameter[i].toLowerCase().indexOf("sourcepage=")==0){sourcepage=i4mArrParameter[i].split('=')[1].toLowerCase();}
			if(i4mArrParameter[i].toLowerCase().indexOf("pfadweb=")==0){pfadweb=i4mArrParameter[i].split('=')[1].toLowerCase();}
			if(i4mArrParameter[i].toLowerCase().indexOf("viewrights=")==0){viewrights=i4mArrParameter[i].split('=')[1].toLowerCase();}
		}
	}

	//Action
	var serverstatisch=pageVarCollection["i4mMeta_servername_statisch"].split(":");
	var serverdynamisch=pageVarCollection["i4mMeta_servername_dynamisch"].split(":");
	if(serverstatisch[0]!=serverdynamisch[0] && location.search.indexOf("popupnewpageassistent=true")==-1){
		//Weiterleitung zum Redserver mit Loopschutz
		GoToLink(seite+'?popupnewpageassistent=true&user='+i4m_User+'&sprache='+sprache+'&template='+template+'&standardseitenname='+standardseitenname+'&application='+application+'&subportal='+subportal+'&dokumenttyp='+dokumenttyp+'&titel='+titel+'&beschreibung='+beschreibung+'&navigation='+navigation+'&sourcepage='+sourcepage+'&pfadweb='+pfadweb+'&viewrights='+viewrights+'');
	}else{
		//Aufruf Newpage-Assistent
		id=meta_id.split(",");
		w=window.open('/include/extensions/NewpageAssistent/Newpage_Assistent_Start.asp?user='+i4m_User+'&template='+template+'&standardseitenname='+standardseitenname+'&pfadweb='+pfadweb+'&application='+application+'&subportal='+subportal+'&dokumenttyp='+dokumenttyp+'&rubrikid='+id[0]+'&titel='+titel+'&beschreibung='+beschreibung+'&sprache='+sprache+'&sourcepage='+sourcepage+'&viewrights='+viewrights+'&navigation='+navigation,'Assistent','width=700,height=600,left=200,top=100,no,no,dependent=yes');
	}
}

function datum(){
  var heute = new Date();
  var day=heute.getDate();
  var month=heute.getMonth();
  var year=heute.getFullYear();
  if(day<10){day='0'+day}
  if(month<10){month='0'+month;}
  return(day+'.'+month+'.'+year);
}



function openwindow(url,width,height){
  if(typeof(width)=='undefined'){var width=650;}
  if(typeof(height)=='undefined'){var height=700;}
  WThema = window.open(url,'AuswahlThema','width='+width+',height='+height+',scrollbars,resizable,dependent=yes,left=100,top=0');
}

function OpenWindow(url,width,height){
  openwindow(url,width,height);
}


//////////////////////////////////////
// embedded Mouse Handler API (CG 05)
//
//
/*
  CG - 2005
  Central Mouse Api (move, up, down)
*/


var _arrMouseUpFunc = new Array();
var _arrMouseDownFunc = new Array();
var _arrMouseMoveFunc = new Array();

var mouseApiInfo = new _mouseInfo();

function _mouseInfo()
{
	this.mousePosX = 0;
	this.mousePosY = 0;
	this.mouseOffsetX = 0;
	this.mouseOffsetY = 0;
	this.mouseButton = 0;
}

function initMouseHandlerApi()
{
	// patching some events
	document.onmousemove = _mouseApiMouse_Move;
	document.onmousedown = _mouseApiMouse_Down;
	document.onmouseup = _mouseApiMouse_Up;
}

function deInitMouseHandlerApi()
{
	_arrMouseUpFunc = null;
	_arrMouseDownFunc = null;
	_arrMouseMoveFunc = null;

	// reseting some events
	document.onmousemove = null;
	document.onmousedown = null;
	document.onmouseup = null;
}

function _mouseApiMouse_Move(eventObj)
{
	_mouseApi_GetMouseInfo(eventObj);
	_mouseApi_EventFire(_arrMouseMoveFunc);
}

function _mouseApiMouse_Down(eventObj)
{	_mouseApi_GetMouseInfo(eventObj);
	_mouseApi_EventFire(_arrMouseDownFunc);
}

function _mouseApiMouse_Up(eventObj)
{
	_mouseApi_GetMouseInfo(eventObj);
	_mouseApi_EventFire(_arrMouseUpFunc);
}

// get mouse infos
function _mouseApi_GetMouseInfo(eventObj)
{
	if (eventObj != null)
	{
		// event obj
		
		with(mouseApiInfo)
		{
			mousePosX = eventObj.pageX + window.pageXOffset;
			mousePosY = eventObj.pageY + window.pageYOffset;
			mouseOffsetY = eventObj.layerY;
			mouseOffsetX = eventObj.layerX;
		}
	}
	else
	{
		
		with(mouseApiInfo)
		{
			var scrollLeft=document.body.scrollLeft;
			var scrollTop=document.body.scrollTop;
			if(scrollLeft==0)scrollLeft=document.documentElement.scrollLeft;
			if(scrollTop==0)scrollTop=document.documentElement.scrollTop;
			mousePosX = window.event.clientX + scrollLeft;
			mousePosY = window.event.clientY + scrollTop;
			mouseOffsetY = window.event.offsetY;
			mouseOffsetX = window.event.offsetX;
		}
	}

}

function _mouseApi_EventFire(xArr)
{
	var cntI = 0;
	for(cntI=0;cntI<xArr.length;cntI++)
	{	// exec js function
		_mouseApiExec(xArr[cntI]);
	}
}

function addMouseApiEvent_Up(nFunc)
{
	_arrMouseUpFunc.push(nFunc);
}

function addMouseApiEvent_Down(nFunc)
{
	_arrMouseDownFunc.push(nFunc);
}

function addMouseApiEvent_Move(nFunc)
{
	_arrMouseMoveFunc.push(nFunc);
}

function _mouseApiExec(strExec)
{
	try
	{
		eval(strExec);
	}
	catch (errX)
	{
		alert("Mouse Api Exec Error: " + errX);
	}
}


///////////////////////////////////
/// CG - DOM SPIDER
//

var elementNodeArray = null;

function recordIn4metaObjectFields(ref2object,ArrayRecordInputTypes)
{
  var arr1 = new Array(), newArr;
  var a, i, curNode, curType, curValue, curName, curID, curTagName, xObj = null, xRef = null, curValueCheckSum = "";
  var strNoCheckValue;
  var blnNoCheck = false, cntI = 0;

  elementNodeArray = new Array();
  getElementsRecursive(ref2object,ArrayRecordInputTypes);

  for (i=0;i<elementNodeArray.length;i++)
  {
    curNode = elementNodeArray[i];


  // exclude some nodes from scanning
  if ((curNode.tagName.toUpperCase() != "IFRAME" && curNode.name != "Editframe"))
  {
    curTagName = curNode.tagName;
    curType = curNode.type;
		//dont check special Fields
		blnNoCheck = false;
		strNoCheckValue = curNode.getAttribute("checkforchange");
		if (strNoCheckValue != null)
		{
		  blnNoCheck = (strNoCheckValue.toLowerCase() == 'false');
		}

    if ((typeof(curType) != "object")){
			if(!blnNoCheck){
			  for (a=0;a<ArrayRecordInputTypes.length;a++)
			  {
			    // check if tagName and type are the same
			    if ((ArrayRecordInputTypes[a][0].toLowerCase() == curTagName.toLowerCase()) && (ArrayRecordInputTypes[a][1].toLowerCase() == curType.toLowerCase() || ArrayRecordInputTypes[a][1].length == 0))
			    {

   				curID = String(curNode.getAttribute("id"));
			  	CurName = String(curNode.getAttribute("name"));
				curValue = String(curNode.getAttribute("value"));
			    curValueCheckSum = "";

			      // just a lill workaround / some browsers dont refresh there dom fast enough
			      if (curID.length > 0)
			      {
			        xObj = document.getElementById(curID);
			        if (xObj != null)
                    {
                        if (curType.toLowerCase().lastIndexOf("select") == 0)
                        {
                          // this is a select box read the selectedIndex
                          // special handling

                          curValue = xObj.selectedIndex;

                          for(cntI=0;cntI<xObj.length;cntI++)
                          {
                            xRef = xObj.options[cntI];
                            curValueCheckSum += (xRef.text + xRef.value);
                            xRef = null;
                          }
                        } else
                        {
                          curValue = xObj.value;
                          curValueCheckSum = "";
                        }
                    }
			       }
				   // ok we record this in our object array
				   newArr = new Array(curType,curID,CurName,curValue,curNode, curValueCheckSum);
				   arr1[arr1.length] = newArr;

			      break;
			    }
			  }
      }
    }
  }
  else
  {
      for (a=0;a<ArrayRecordInputTypes.length;a++)
      {
        if (ArrayRecordInputTypes[a][0].toLowerCase() == "editor")
        {
          if (typeof(document.Editframe) != "undefined")
          {
          	curValue = document.Editframe.GetDocumentHTML();
	        // ok we can record this
    	    newArr = new Array("EDITOR","EDITOR","EDITOR",curValue,curNode,"");
        	arr1[arr1.length] = newArr;
          }
        }
      }
  }
  }

  return arr1;
}

function getElementsRecursive(startNode,xArrRecTypes)
{
  var cntI = 0, cntA = 0;
  var cArr1 = null, xTmpArr = null;;

  for(cntI=0;cntI<xArrRecTypes.length;cntI++)
  {
  	cArr1 = xArrRecTypes[cntI];
  	strTagName = cArr1[0];

	xTmpArr = startNode.getElementsByTagName(strTagName);
	for (cntA=0;cntA<xTmpArr.length;cntA++)
	{
  		elementNodeArray.push(xTmpArr[cntA]);
  	}
    xTmpArr = null;
  	cArr1 = null;
  }
}
