function init() {
 document.write('<div id="dropdownmenu"></div>');
 document.write('<div id="tooltip"></div>');

 self.onmousedown = function() {
  document.getElementById('dropdownmenu').style.display='none';
  document.getElementById('tooltip').style.top='-50px';
 };

 try {
  applyTips();
  initNavi();
  initDropDowns();
  initHoverEffects();
  initPicPanes();
  initGalleries();
 } catch (e) {}

 window.setTimeout(function() {setToolHeights();},100);
 window.onload = function() {setToolHeights();};
}


function initGalleries() {
 var obj, i=0;
 while (obj = document.getElementsByTagName('div')[i++]) {
  if (obj.className.indexOf('gallery')==-1) continue;
  updateDisableStates(obj);
 }
}



function setToolHeights() {
 var obj, i=0;
 while (obj = document.getElementsByTagName('div')[i++]) {
  if (obj.className!='section' || ! obj.getElementsByTagName('div')[0] || obj.getElementsByTagName('div')[0].className!='tools') continue;
  obj.getElementsByTagName('div')[0].style.height = obj.offsetHeight + 'px';
 }
}

function initDropDowns() {
 var obj, i=0;
 while (obj = document.getElementsByTagName('div')[i++]) {
  if (obj.className.indexOf('dropdown')!=0) continue;
  applyDropDown(obj);
 }
}

picbrowserhiddenfield=false;
picbrowserimgelement = false;
picbrowserbigpics    =false;
function showPicBrowser(hiddenfield, imgelement, bigpics) {
 picbrowserhiddenfield = document.getElementById(hiddenfield);
 picbrowserimgelement = document.getElementById(imgelement);
 picbrowserbigpics = bigpics;
 document.getElementById('picbrowseroverlay').style.height= document.getElementById('base').offsetHeight + 20 +'px';
 document.getElementById('picbrowseroverlay').style.display='block';

 document.getElementById('picbrowser').style.top=Math.floor(getScrollTop() + (getInnerHeight() / 2) - 165) +'px';
 document.getElementById('picbrowser').style.display='block';

 setupPicList();

 document.getElementById('picbrowsergallery').style.display='block';

}
function closePicBrowser() {
 document.getElementById('picbrowseroverlay').style.display='none';
 document.getElementById('picbrowser').style.display='none';
}

function getScrollTop() {
 var y=0;
 if (self.pageYOffset){
  y = self.pageYOffset;
 } else if (document.documentElement && document.documentElement.scrollTop) {
  y = document.documentElement.scrollTop;
 } else {
  y = document.body.scrollTop;
 }
 return y;
}
function getInnerHeight() {
 var y=0;
 if (self.innerHeight) {
  y = self.innerHeight;
 } else if (document.documentElement && document.documentElement.clientHeight) {
  y = document.documentElement.clientHeight;
 } else if (document.body) {
  y = document.body.clientHeight;
 }
 return y;
}

function savePicSelection() {
 var obj, i=0; /*selectedpics=Array() */
 while (obj = document.getElementById('picbrowsergallery').getElementsByTagName('div')[i++]) {
  if (obj.className.indexOf('picpane')!=0) continue;
  if (obj.className=='picpane picselected') { /*selectedpics.push(obj.id);*/
   picbrowserhiddenfield.value=obj.id;
   if (picbrowserbigpics == 'small') {
    if (picbrowserimgelement && self.smallpics) {
     picbrowserimgelement.src = smallpics[currentCat][obj.id];
		}
   } else {
    if (picbrowserimgelement && self.bigpics) {
     picbrowserimgelement.src = bigpics[currentCat][obj.id];
		}
	 }
   break;
  }
 }
 /*picbrowserhiddenfield.value = ;selectedpics.join(',');*/
 closePicBrowser();
}


currentCat = '';
function setupPicList() {
 var html='', cat, pic;
 /*var selectedpics = picbrowserhiddenfield.value.split(','); */

 currentCat = '';

 for (cat in archive) {
  html += '<div id="'+cat+'" class="archivecat">';
  for (pic in archive[cat]) {               /*in_array(selectedpics,pic)*/
   html+='<div id="'+pic+'" class="picpane'+(picbrowserhiddenfield.value==pic ? ' picselected':'')+'" style="background-image:url('+archive[cat][pic]+')" onclick="handlePicSelection(this)"><div class="overlay"></div><img class="statepic" src="defaultimg/picselected.gif" alt="" style="top:5px;right:7px;" /></div>';
   if (picbrowserhiddenfield.value==pic) currentCat = cat;
  }
  html += '<div class="clr"></div>';
  html += '</div>';
 }
 
 document.getElementById('picbrowsergallery').innerHTML=html;
 initPicPanes();
}

function in_array(a,v) {
 for (var k in a) {
  if (a[k]==v) return true;
 }
 return false;
}

function handlePicSelection(obj) {
 var objd, i=0;
 while (objd = document.getElementById('picbrowsergallery').getElementsByTagName('div')[i++]) {
  if (objd.className=='picpane picselected') objd.className='picpane';
 }
 
 if (obj.className=='picpane') {
  obj.className='picpane picselected';
 } else {
  obj.className='picpane';
 }
}


function changeCat(cat, linkobj) {
 currentCat = cat;
 var obj, i=0;
 while (obj = document.getElementById('picbrowsergallery').getElementsByTagName('div')[i++]) {
  if (obj.className!='archivecat') continue;
  obj.style.display='none';
 }
 document.getElementById(cat).style.display='block';

 i=0;
 while (obj = document.getElementById('picbrowser').getElementsByTagName('a')[i++]) {
  if (obj.className=='catselected') obj.className='';
 }
 linkobj.className='catselected';

 return false;
}

function initPicPanes() {
 var obj, i=0;
 while (obj = document.getElementsByTagName('div')[i++]) {
  if (obj.className.indexOf('picpane')!=0) continue;

  obj.onmouseover = function(e) {
   try {
    if (!e) e=window.event; var target = e.target || e.srcElement;
    while (! target || target.className.indexOf('picpane')!=0) target = target.parentNode;

    target.isover=true;
    revealChildren(target);
   } catch (e) {}
  };

  obj.onmouseout = function(e) {
   try {
    if (!e) e=window.event; var target = e.target || e.srcElement;
    while (! target || target.className.indexOf('picpane')!=0) target = target.parentNode;

    target.isover=false;
    var owner = target;
    if (target.timer) {window.clearTimeout(target.timer); target.timer=false; }
    target.timer = window.setTimeout(function() {if (! owner.isover) hideChildren(owner);}, 50);
   } catch (e) {}
  };

 }
}


function revealChildren(obj) {
 var child, i=0;
 while(child = obj.getElementsByTagName('*')[i++]) {
  if (child.className.indexOf('statepic')==0) continue;
  child.style.display='block';
 }
}
function hideChildren(obj) {
 var child, i=0;
 while(child = obj.getElementsByTagName('*')[i++]) {
  if (child.className.indexOf('statepic')==0) continue;
  child.style.display='none';
 }
}




function initHoverEffects() {
 var obj, i=0;
 while (obj = document.getElementsByTagName('input')[i++]) {
  if (obj.type!='submit' && obj.type!='button') continue;
  if (obj.parentNode.className=='upload') obj = obj.nextSibling;
  obj.onmouseover = function(e) {
   if (!e) e=window.event; var target = e.target || e.srcElement;
   if (target.type=='file') target = target.previousSibling;
   target.className = target.className.replace(/(button[a-z0-9]+)/,'$1_over');
  };
  obj.onmouseout = function(e) {
   if (!e) e=window.event; var target = e.target || e.srcElement;
   if (target.type=='file') target = target.previousSibling;
   target.className = target.className.replace(/_over/,'');
  };
 }
}



absLeft=0;
absTop=0;
function getAbsolutePos(obj) {
 absLeft=obj.offsetLeft;
 absTop=obj.offsetTop;
 var curobj = obj;
 while (curobj = curobj.offsetParent) {
  absLeft+=curobj.offsetLeft;
  absTop+=curobj.offsetTop;
 }
}

function applyDropDown(div) {
 div.innerHTML='<input type="text" class="input" /><input type="hidden" name="'+div.id+'" />';
 div.input = div.firstChild;
 div.lastChild.value = self[div.id+'_selected'];
 div.input.readOnly = true;
 if (self[div.id+'_options'][ self[div.id+'_selected'] ]) div.input.value = self[div.id+'_options'][ self[div.id+'_selected'] ];
 
 if (div.input.value=='&nbsp;') div.input.value='';
 
 div.onmousedown = function(e) {
  if (document.getElementById('dropdownmenu').style.display=='block') {
   return;
  } else {
   if (! e) e=window.event;
   e.cancelBubble=true;
   if (e.stopPropagation) e.stopPropagation();
  }
  var owner = this;
  showMenu(this, self[this.id+'_options'], function(key, caption) {
   owner.lastChild.value = key;
   owner.input.value = (caption=='&nbsp;') ? '' : caption;
   if (self[owner.id+'_onchange']) self[owner.id+'_onchange'](key, caption);
  });
 };
}


lasthandler = '';
function showMenu(opener, options, handler) {
 lasthandler = handler;
 var code = '';
 for (var key in options) {
  code += '<a href="#" onmousedown="return selectThis(\''+key+'\',\''+options[key]+'\');">'+options[key]+'</a>';
 }

 document.getElementById('dropdownmenu').width='auto';
 document.getElementById('dropdownmenu').innerHTML = code;
 getAbsolutePos(opener);
 document.getElementById('dropdownmenu').style.left = absLeft+'px';
 document.getElementById('dropdownmenu').style.top = absTop+opener.offsetHeight+1+'px';
 document.getElementById('dropdownmenu').style.display = 'block';

 if (document.getElementById('dropdownmenu').offsetWidth < opener.offsetWidth) {
  document.getElementById('dropdownmenu').style.width=opener.offsetWidth+'px';
 }
}

function selectThis(key, caption) {
 lasthandler(key, caption);
 document.getElementById('dropdownmenu').style.display='none';
 return false;
}


function showStructure(menu, menuobj) {
 var obj, i=0;
 while (obj = document.getElementById('structure').getElementsByTagName('div')[i++]) {
  if (obj.className=='submenu') obj.style.display='none';
  if (obj.className=='menu menuactive') obj.className='menu';

 }
 document.getElementById(menu).style.display='block';
 document.getElementById(menu).style.minHeight = document.getElementById('mainmenu').offsetHeight + 'px';
 menuobj.className='menu menuactive';
}


function swap(objid) {
 if (document.getElementById('isreversed'+objid).value==1) {
  document.getElementById('isreversed'+objid).value=0;
  document.getElementById('section'+objid).className=document.getElementById('section'+objid).className.replace(/ ?reversed/,'');
 } else {
  document.getElementById('isreversed'+objid).value=1;
  document.getElementById('section'+objid).className+=' reversed';
 }
 return false;
}


function selectLayout(layout) {
 document.getElementById('selectedlayout').value = layout;
 if (layout=='vertical') {
  document.getElementById('layoutvertical').className='layout layout-vertical-selected';
  document.getElementById('layouthorizontal').className='layout layout-horizontal';
 } else {
  document.getElementById('layoutvertical').className='layout layout-vertical';
  document.getElementById('layouthorizontal').className='layout layout-horizontal-selected';
 }
 return false;
}


function selectTag(tagshape) {
 document.getElementById('tagshape').value = tagshape.id;
 if (tagshape.id=='rect') {
  document.getElementById('rect').className='tag rect-selected';
  document.getElementById('price').className='tag price';
 } else {
  document.getElementById('rect').className='tag rect';
  document.getElementById('price').className='tag price-selected';
 }
 return false;
}

function applyTips() {
 var obj, i=0;
 while (obj = document.getElementsByTagName('*')[i++]) {
  if (! obj.title) continue;
  obj.tiptext = obj.title;
  obj.title='';
  obj.onmouseover = function(e) {if (!e) e=window.event; showTip((e.target) ? e.target : e.srcElement);};
  obj.onmouseout = function(e) {if (!e) e=window.event; hideTip((e.target) ? e.target : e.srcElement);};
 }
}

function showTip(obj) {
 if (! obj.tiptext) return;

 tiptimer =  window.setTimeout(function() {
 document.getElementById('tooltip').innerHTML = obj.tiptext;
 getAbsolutePos(obj);
 document.getElementById('tooltip').style.left= (absLeft + Math.round(obj.offsetWidth / 2) - document.getElementById('tooltip').offsetWidth / 2) +'px';
 document.getElementById('tooltip').style.top= absTop + obj.offsetHeight + 14 +'px';
 }, 300);
}

function hideTip(obj) {
 if (! obj.tiptext) return;
 if (tiptimer) {
  window.clearTimeout(tiptimer);
  tiptimer=0;
 }
 document.getElementById('tooltip').style.top='-50px';
}



function activateSection(sect) {
 document.getElementById(sect+'-active').style.display='block';
 document.getElementById(sect+'-inactive').style.display='none';
 document.getElementById(sect).value = 1;
 return false;
}
function deactivateSection(sect) {
 document.getElementById(sect+'-inactive').style.display='block';
 document.getElementById(sect+'-active').style.display='none';
 document.getElementById(sect).value = 0;
 return false;
}

/* LIVE-Funktionen */
initClass = '';
resetTimer = false;
function initNavi() {
 var i=0, obj, menunr=1, m;

 while (obj = document.getElementById('navi').getElementsByTagName('ul')[i++]) {
  m = obj.className.match('navi([0-9]) *(active)?');
  if (m && m[2]=='active') {
   document.getElementById('navi').className = initClass = 'displaynavi'+m[1];
   obj.className='navi'+m[1];
   break;
  }
 }

 document.getElementById('navi').onmouseout = function(e) {
  if (document.getElementById('base').className!='horizontal') return;

  if (!e) e=window.event;
  var target = e.target || e.srcElement;
   if (resetTimer) return;
   resetTimer = window.setTimeout(function() {
    document.getElementById('navi').className = initClass;
   },500);
 };

 i=0;
 while (obj = document.getElementById('navi').getElementsByTagName('a')[i++]) {
  if (obj.parentNode.parentNode.parentNode.id=='navi') obj.menunr = menunr ++;
  obj.onmouseover = function(e) {
   if (document.getElementById('base').className!='horizontal') return;
   if (!e) e=window.event;
   var target = e.target || e.srcElement;
   if (resetTimer) { window.clearTimeout(resetTimer); resetTimer=false; }
   if (target.parentNode.parentNode.parentNode.id=='navi') {
    document.getElementById('navi').className = 'displaynavi'+target.menunr;
   }
  };

 }
}

function loadPic(obj, src, thumbobj) {
 document.getElementById(obj).style.backgroundImage = 'url('+src+')';
 
 if (thumbobj && thumbobj.parentNode) {
 	thumbobj.parentNode.currentpic = thumbobj.nr;
 	updatePicBrowser(thumbobj.parentNode);
 }
}

function checkEditParagraph() {
	check=true;	
	if (document.getElementById('editParagraphId').value != 0) {
		check=false;
	}
	return check;
}

function confirmDeleteParagraph() {
	check=checkEditParagraph();
	if (check) {
		check=confirm('Sind Sie sicher - wollen Sie diesen Absatz unwiderruflich löschen?');
	}
	return check;
}

function uploadPic(picflag) {
	document.getElementById('picupload_action').name='act_picupload';
	document.getElementById('picupload_action').value=picflag;
	saveRTE();
	document.Siteform.submit();
}

/*
 * Bildergalerie
 */
function getNextTag(elem) {
 elem = elem.nextSibling;
 while (elem.nodeType==3) elem = elem.nextSibling;
 return elem;
}
function getPrevTag(elem) {
 elem = elem.previousSibling;
 while (elem.nodeType==3) elem = elem.previousSibling;
 return elem;
}

function swapPositions(elem1, elem2) {
 if (! elem1 || ! elem2) return false;
 elem1.parentNode.insertBefore(elem1, elem2);
 showOrHidePics(elem1.parentNode);
}

function swapLeft(elem,btn) {
 if (btn.className.indexOf('disabled')!=-1) return;
 var other = getPrevTag(elem);
 if (! other) return;

 swapPositions(elem, other);
 updateDisableStates(elem.parentNode);
 showPrev(elem.parentNode.nextSibling.getElementsByTagName('input')[1]);
 updateDisableStates(elem.parentNode);
}
function swapRight(elem,btn) {
 if (btn.className.indexOf('disabled')!=-1) return;
 var other = getNextTag(elem);
 if (! other) return;

 swapPositions(other, elem);
 updateDisableStates(elem.parentNode);
 showNext(elem.parentNode.nextSibling.getElementsByTagName('input')[3]);
 updateDisableStates(elem.parentNode);
}

function swapFirst(elem,btn) {
 if (btn.className.indexOf('disabled')!=-1) return;
 var other = elem.parentNode.firstChild;
 if (other.nodeType==3) other = getNextTag(other);
 if (! other) return;
 swapPositions(elem, other);
 updateDisableStates(elem.parentNode);
 showFirst(elem.parentNode.nextSibling.getElementsByTagName('input')[0]);
 updateDisableStates(elem.parentNode);

}
function swapLast(elem,btn) {
 if (btn.className.indexOf('disabled')!=-1) return;
 var clr = elem.parentNode.lastChild;
 if (clr.nodeType==3) clr = getPrevTag(clr);
 swapPositions(elem, clr);
 updateDisableStates(elem.parentNode);
 showLast(elem.parentNode.nextSibling.getElementsByTagName('input')[3]);
 updateDisableStates(elem.parentNode);

}

function deletePic(elem) {
 var gallery = elem.parentNode;
 elem.parentNode.removeChild(elem);
 self.onmousedown();
 updateDisableStates(gallery);
 setupLiveGallery(gallery);
 showCurrentPic(gallery);
}
function setupLiveGallery(gallery) {
 gallery.currentpic = 1;
 gallery.currentpage = 1;
 gallery.pagecount = Math.ceil((gallery.getElementsByTagName('div').length - 1) / 6);
 updatePicBrowser(gallery);
 showOrHidePics(gallery);
}
function showOrHidePics(gallery) {
 var i=0, pic;
 while (pic = gallery.getElementsByTagName('div')[i++]) {
  if (pic.className=='clr') continue;
  pic.nr = i;
  pic.style.display = (((gallery.currentpage-1) * 6) < i && i <= (gallery.currentpage * 6) ) ? 'block' : 'none';
 }
}
function updatePicBrowser(gallery) {
 var phtml = '';
 var startpage = gallery.currentpage - 2;
 if (startpage < 1) startpage = 1;
 if (gallery.currentpage > gallery.pagecount-3 && gallery.pagecount > 4) startpage = gallery.pagecount-4;
 var endpage = startpage + 4;
 if (endpage > gallery.pagecount) endpage = gallery.pagecount;


 if (! gallery.nextSibling || ! gallery.nextSibling.getElementsByTagName) return;

 for (var i=startpage; i <= endpage; i++) {
  phtml += '<a onclick="gallery=this.parentNode.parentNode.previousSibling;showPage(gallery,'+i+');gallery.currentpic = '+i+'*6-5;showCurrentPic(gallery);return false;" href="#"'+((gallery.currentpage==i)?' class="active"':'')+'>'+i+'</a>';
 }
 gallery.nextSibling.getElementsByTagName('span')[0].innerHTML = phtml;

 gallery.nextSibling.getElementsByTagName('input')[0].className = 
 gallery.nextSibling.getElementsByTagName('input')[1].className = (gallery.currentpic==1) ? 'disabled' : '';

 gallery.nextSibling.getElementsByTagName('input')[2].className = 
 gallery.nextSibling.getElementsByTagName('input')[3].className = (gallery.currentpic==gallery.getElementsByTagName('div').length -1) ? 'disabled' : '';

 gallery.nextSibling.getElementsByTagName('em')[0].style.display = (gallery.currentpage>3 && gallery.pagecount > 5) ? 'inline' : 'none';
 gallery.nextSibling.getElementsByTagName('em')[1].style.display = (gallery.currentpage<=gallery.pagecount-3 && gallery.pagecount > 5) ? 'inline' : 'none';
}

function showPage(gallery,page) {
 gallery.currentpage = page;
 updatePicBrowser(gallery);
 showOrHidePics(gallery);
}

function showCurrentPic(gallery) {
 gallery.getElementsByTagName('div')[gallery.currentpic-1].onclick();
 updatePicBrowser(gallery);
}



function showNext(btn) {
 if (btn.className=='disabled') return false;
 var gallery = btn.parentNode.previousSibling;

 if (gallery.currentpic % 6 == 0) {
  showPage(gallery,gallery.currentpage+1);
 }
 
 gallery.currentpic++;
 showCurrentPic(gallery);

 return false;
}
function showPrev(btn) {
 if (btn.className=='disabled') return false;
 var gallery = btn.parentNode.previousSibling;

 gallery.currentpic--;

 if (gallery.currentpic % 6 == 0) {
  showPage(gallery,gallery.currentpage-1);
 }

 showCurrentPic(gallery);

 return false;
}
function showFirst(btn) {
 if (btn.className=='disabled') return false;
 var gallery = btn.parentNode.previousSibling;

 gallery.currentpic=1;
 showCurrentPic(gallery);

 showPage(gallery,1);
 return false;
}
function showLast(btn) {
 if (btn.className=='disabled') return false;
 var gallery = btn.parentNode.previousSibling;

 gallery.currentpic=gallery.getElementsByTagName('div').length - 1;
 showCurrentPic(gallery);

 showPage(gallery,gallery.pagecount);
 return false;
}


function updateDisableStates(gallery) {
 try {
 	 if (! gallery.currentpage) setupLiveGallery(gallery);
 } catch(e) {}

 if (gallery.getElementsByTagName('div').length<=1) {
  gallery.style.display='none';
  return;
 }

 var savinfo=[];
 var pic, i=0;
 while (pic = gallery.childNodes[i++]) {
  if (pic.nodeType!=1 || pic.className=='clr') continue;
  if (! pic.getElementsByTagName('input')[1]) return;
  pic.getElementsByTagName('input')[1].className =
  pic.getElementsByTagName('input')[2].className =
  pic.getElementsByTagName('input')[3].className =
  pic.getElementsByTagName('input')[4].className = 'imagebutton';

  savinfo.push(pic.id);
 }

 gallery.style.display='none';

 var firstpic = gallery.firstChild;

 if (firstpic.nodeType==3) firstpic = getNextTag(firstpic);

 if (firstpic) firstpic.getElementsByTagName('input')[1].className =
 firstpic.getElementsByTagName('input')[2].className = 'imagebutton disabled';


 var lastpic = gallery.lastChild;
 if (lastpic.nodeType==3) lastpic = getPrevTag(lastpic);
 if (lastpic.className=='clr') lastpic = lastpic.previousSibling;
 if (lastpic.nodeType==3) lastpic = getPrevTag(lastpic);

 
 if (lastpic) lastpic.getElementsByTagName('input')[3].className =
 lastpic.getElementsByTagName('input')[4].className ='imagebutton disabled';

 gallery.style.display='block';

 gallery.nextSibling.nextSibling.value = savinfo.join(',');
 }
 


function showFileSelection(inp) {
 window.setTimeout(function() {
 var file = inp.value;
 p = file.split('\\'); file = p[p.length-1];
 p = file.split('/'); file = p[p.length-1];
 p = file.split(':'); file = p[p.length-1];

 if (! file) return;

 var div;
 if (inp.parentNode.nextSibling && inp.parentNode.nextSibling.className=='fileselection') {
  div = inp.parentNode.nextSibling;
 } else {

  div = document.createElement('p');
  div.className='fileselection';
  inp.parentNode.parentNode.insertBefore(div, inp.parentNode);
  inp.parentNode.parentNode.insertBefore(inp.parentNode, div);
 }

 div.innerHTML = '<a onclick="return false;" style="overflow: hidden;cursor:default;text-decoration:none;" class="download_link">'+file+'</a>';
 }, 100);
}

if (navigator.appVersion.indexOf('MSIE 5')!=-1) {
 document.write('<style type="text/css">.horizontal #navi a {width: 101px !important;}</style>');
}

function deleteFile(inp, filename) {
	inp.previousSibling.style.textDecoration='line-through';
	inp.nextSibling.value=filename;
	return false;
}

