/*
lib.js for Dorfgastein

Author:			  manfred.schneiderbauer@world-direct.at
Version:      1.132
Last Changed:	2007-11-0
*/


/** begin CSS MENU functions, hansjoerg.broederbauer@world-direct.at **/

var currentSheet, doc = window.document, activators = {
	onhover:{on:'onmouseover', off:'onmouseout'},
	onactive:{on:'onmousedown', off:'onmouseup'}
}

function parseStylesheets() {
	var sheets = doc.styleSheets, l = sheets.length;
	for(var i=0; i<l; i++)
		parseStylesheet(sheets[i]);
}
	function parseStylesheet(sheet) {
		if(sheet.imports) {
			try {
				var imports = sheet.imports, l = imports.length;
				for(var i=0; i<l; i++) parseStylesheet(sheet.imports[i]);
			} catch(securityException){}
		}

		try {
			var rules = (currentSheet = sheet).rules, l = rules.length;
			for(var j=0; j<l; j++) parseCSSRule(rules[j]);
		} catch(securityException){}
	}

	function parseCSSRule(rule) {
		var select = rule.selectorText, style = rule.style.cssText;
		if(!(/(^|\s)(([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active)/i).test(select) || !style) return;

		var pseudo = select.replace(/[^:]+:([a-z-]+).*/i, 'on$1');
		var newSelect = select.replace(/(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, '.$2' + pseudo);
		var className = (/\.([a-z0-9_-]*on(hover|active))/i).exec(newSelect)[1];
		var affected = select.replace(/:hover.*$/, '');
		var elements = getElementsBySelect(affected);

		currentSheet.addRule(newSelect, style);
		for(var i=0; i<elements.length; i++)
			new HoverElement(elements[i], className, activators[pseudo]);
	}

function HoverElement(node, className, events) {
	if(!node.hovers) node.hovers = {};
	if(node.hovers[className]) return;
	node.hovers[className] = true;
	node.attachEvent(events.on,
		function() { node.className += ' ' + className; });
	node.attachEvent(events.off,
		function() { node.className =
			node.className.replace(new RegExp('\\s+'+className, 'g'),''); });
}

function getElementsBySelect(rule) {
	var parts, nodes = [doc];
	parts = rule.split(' ');
	for(var i=0; i<parts.length; i++) {
		nodes = getSelectedNodes(parts[i], nodes);
	}	return nodes;
}
	function getSelectedNodes(select, elements) {
		var result, node, nodes = [];
		var classname = (/\.([a-z0-9_-]+)/i).exec(select);
		var identify = (/\#([a-z0-9_-]+)/i).exec(select);
		var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, '');
		for(var i=0; i<elements.length; i++) {
			result = tagName? elements[i].all.tags(tagName):elements[i].all;
			for(var j=0; j<result.length; j++) {
				node = result[j];
				if((identify && node.id != identify[1]) || (classname && !(new RegExp('\\b' +
					classname[1] + '\\b').exec(node.className)))) continue;
				nodes[nodes.length] = node;
			}
		}	return nodes;
	}

if (isIE6up && !isIE7up){
	if (window.addEventListener) {
	    window.addEventListener("onload", parseStylesheets, 0);
	} else if (window.attachEvent) {
	    var retVal = window.attachEvent("onload", parseStylesheets);
	}
}

/** end CSS MENU functions, hansjoerg.broederbauer@world-direct.at **/

// remove the last separator line in the content DIV
function removeLastContentSep(){try{
 getElementsByClass('div','ContentSepLine')[getElementsByClass('div','ContentSepLine').length-1].style.display='none';
}catch(error){}}

// init and exec left menu OMO
function leftMenuOMO(init,mode,obj){
 if(init) // init
  {
    var allLeftLis=document.getElementsByTagName('li');
    for(var i=0;i<allLeftLis.length;i++)
      {
       if(allLeftLis[i].className.indexOf('leftlist-item')!=-1)
        {
          //allLeftLis[i].onmouseover=function(){leftMenuOMO(false,true,this);}
          //allLeftLis[i].onmouseout=function(){leftMenuOMO(false,false,this);}
        }
      }
  }else{ // exec
    if(obj.className.indexOf('cur')==-1&&obj.className.indexOf('act')==-1) // if the item is not active...
      {
      if(mode) // over
        {
          if(obj.className.indexOf('item2')!=-1) // 2nd menu level
            {
            obj.getElementsByTagName('a')[0].style.color='#3f72a5';
            obj.getElementsByTagName('img')[0].style.visibility='visible';
            }else{ // 1st menu level
            obj.getElementsByTagName('a')[0].style.color='white';
            obj.style.backgroundColor='#6699cc';
            }
        }else{ // out
          if(obj.className.indexOf('item2')!=-1) // 2nd menu level
            {
            obj.getElementsByTagName('a')[0].style.color='#727272';
            obj.getElementsByTagName('img')[0].style.visibility='hidden';
            }else{ // 1st menu level
            obj.getElementsByTagName('a')[0].style.color='';
            obj.style.backgroundColor='';
            }
        }
      }
  }
}

// title images slideshow
function titleSlideshow(){
var imgs=d('dvFlashSlideshow');
var allImgsArr=imgs.getElementsByTagName('img');
// define display
var imgContainer='<div style="position:absolute;left:0px;top:0px;background-color:#ffffff;" id="dvSlide_0"><a><img width="450" height="271" src="/fileadmin/dev/img/clib/s.gif"></a></div>';
var ic=1;
// collect relevant images
for(var i=0;i<allImgsArr.length;i++)
  {
   if(allImgsArr[i].src.indexOf('upload')!=-1||allImgsArr[i].src.indexOf('typo3temp/pics')!=-1)
    {
    imgContainer+= '<div id="dvSlide_'+ic+'" style="position:absolute;top:0px;left:0px;">';
    if(allImgsArr[i].parentNode.tagName.toLowerCase()=='a')
      {
       imgContainer+='<a href="'+allImgsArr[i].parentNode.href+'" target="'+allImgsArr[i].parentNode.target+'">';
      }
    imgContainer+='<img ';
    if(allImgsArr[i].title)
      {
       imgContainer+=' title="'+allImgsArr[i].title+'"';
      }
    if(allImgsArr[i].alt)
      {
       imgContainer+=' alt="'+allImgsArr[i].alt+'"';
      }
    imgContainer+=' src="'+allImgsArr[i].src+'" border="0" width="450" height="271">';
    if(allImgsArr[i].parentNode.tagName.toLowerCase()=='a')
      {
       imgContainer+='</a>';
      }
    imgContainer+='</div>';
    ic++;
    }
  }
imgs.innerHTML=imgContainer;

var cLo=document.createElement('img');cLo.src='/fileadmin/dev/img/corner-grey_lo.gif';cLo.style.position='absolute';cLo.style.left='10px';cLo.style.top='12px';cLo.style.zIndex=2; if(isIE55up){cLo.style.top=0;}; if(isIE7up){cLo.style.top='11px';};
d('startpage-left').appendChild(cLo);
var cLu=document.createElement('img');cLu.src='/fileadmin/dev/img/corner-grey_lu.gif';cLu.style.position='absolute';cLu.style.left='10px';cLu.style.top='269px';cLu.style.zIndex=2; if(isIE55up){cLu.style.top='257px';}
if(isIE7up){cLu.style.top='268px';}
d('startpage-left').appendChild(cLu);

window.slidesLoaded=0;
// attach onload handlers to first 2 slideshow images
imgs.getElementsByTagName('img')[1].onload=function(){window.slidesLoaded++;}
if(imgs.getElementsByTagName('img')[2])
  {
   // attach only if there is a second image; otherwise, mark it as loaded at once
   imgs.getElementsByTagName('img')[2].onload=function(){window.slidesLoaded++;}
  } else {
   window.slidesLoaded++;
  }
titleSlideshow_Wait();
}
// wait for the first two images to be loaded
function titleSlideshow_Wait(){
  if(window.slidesLoaded<2)
    {
     window.setTimeout("titleSlideshow_Wait();",250);
    } else {
     titleSlideshow_Run(0);
    }
}

// start slide show
function titleSlideshow_Run(iterator){
window.outDv=d('dvSlide_'+Number(iterator));
if(d('dvSlide_'+Number(iterator+1)))
  {
  window.inDv=d('dvSlide_'+Number(iterator+1));
  } else {
  window.inDv=d('dvSlide_1');
  }

iterator++;
if(iterator>d('dvFlashSlideshow').getElementsByTagName('img').length-1){iterator=1;}

// execute transition
titleSlideshow_Transit(0);
// re-run
window.inDv.style.zIndex=2; window.inDv.style.visibility='visible';
if(window.titleSlideshowHasRun)
  {
  //d('dvFlashSlideshow').style.visibility='visible';
  window.outDv.style.zIndex=1; window.outDv.style.visibility='visible';
  }else{
  window.titleSlideshowHasRun=true;
  }
if(d('dvFlashSlideshow').getElementsByTagName('img').length>2)
  {
  window.setTimeout("titleSlideshow_Run("+iterator+");",6000);
  }
}
function titleSlideshow_Transit(step){

if(isIE5up)
  {
  window.inDv.style.filter='progid:DXImageTransform.Microsoft.Alpha(opacity='+step+')';
  window.outDv.style.filter='progid:DXImageTransform.Microsoft.Alpha(opacity='+100-step+')';
  } else {
  window.inDv.style.opacity=step/100;
  window.outDv.style.opacity=(100-step)/100;
  }

if(window.CPUSpeed>=2500){step=step+1.5;}
if(window.CPUSpeed<2500&&window.CPUSpeed>=1250){step=step+1;}
if(window.CPUSpeed<1250){step=step+5;}

step=step+2;
// flip z-index in the middle
if(step==50)
  {
   window.inDv.style.zIndex=2;
   window.outDv.style.zIndex=1;
  }
// continue fading
if(step<=100)
  {
   window.setTimeout("titleSlideshow_Transit("+step+");",25);
  } else {
   window.inDv.style.filter=''; window.inDv.style.opacity=''; window.inDv.style.MozOpacity=''; window.inDv.style.KhtmlOpacity='';
   window.outDv.style.filter=''; window.outDv.style.opacity=''; window.outDv.style.MozOpacity=''; window.outDv.style.KhtmlOpacity='';
   window.outDv.style.visibility='hidden';
  }
}

// lift menu above start page slideshow
function liftMenu(){if(isIE55up){
 var menu=d('dvTopNavigation'); var i=0;
 try{var allLis=menu.getElementsByTagName('li');}catch(error){}
 try{var allUls=menu.getElementsByTagName('ul');}catch(error){}
 try{var allAs=menu.getElementsByTagName('a');}catch(error){}
 try{var allSpans=menu.getElementsByTagName('span');}catch(error){}
 try{var allDivs=menu.getElementsByTagName('div');}catch(error){}
 try{for(i=0;i<allLis.length;i++){allLis[i].style.zIndex=100;}}catch(error){}
 try{for(i=0;i<allUls.length;i++){allUls[i].style.zIndex=100;}}catch(error){}
 try{for(i=0;i<allAs.length;i++){allAs[i].style.zIndex=100;}}catch(error){}
 try{for(i=0;i<allAs.length;i++){allAs[i].style.position='relative';}}catch(error){}
 try{for(i=0;i<allSpans.length;i++){allSpans[i].style.zIndex=100;}}catch(error){}
 try{for(i=0;i<allDivs.length;i++){allDivs[i].style.zIndex=100;}}catch(error){}
}}

// correct footer on start page
function correctFooterWidthOnIE(){if(!d('dvFlashSlideshow')){try{
 if(isIE55up&&!isIE7up){d('dvNavigationBottom').style.width='800px';}
 //d('dvContentServiceNavigation').style.left='502px';
}catch(error){}}}

// style buttons
function styleButtons(){
var allInps=document.getElementsByTagName('input'); var b=''; var w=0; var tbc=''; // collect elements
for(var i=0;i<allInps.length;i++)
  {
  b=allInps[i];
  if(b.type=='button'||b.type=='submit'||b.type=='reset'||b.type=='file') // if it's a button-like element...
    {
    w=b.offsetWidth; // get offset width; below the class corresponding to the width is chosen
    if(w<50){tbc=60;}
    if(w>49&&w<110){tbc=120;}
    if(w>109){tbc=240;}
    b.className='button_'+tbc;
    }
  if(b.type=='checkbox'||b.type=='radio') // restyle radio and checkbox elements
    {
      allInps[i].style.backgroundColor='transparent';
      allInps[i].style.border=0;
    }
  }
}

// quirk: insert sep line in quickpoll
function insertQuickpollSep(){
if(getElementsByClass('td','pollquestion')[0])
  {
  getElementsByClass('td','pollquestion')[0].innerHTML+='<div class=quickPollSep></div>';
  }
if(getElementsByClass('div','pollquestion')[0])
  {
  getElementsByClass('div','pollquestion')[0].innerHTML+='<div class=quickPollSep style="width:215px;overflow:hidden;"></div>';
  }
}

// delayed execute certain function calls
function delayExec(){
  window.setTimeout("liftMenu();",400);
  window.setTimeout("removeLastContentSep();",500);
  window.setTimeout("correctHeaderPos();",525);
  window.setTimeout("correctQuickpollButton();",550);
  window.setTimeout("correctSurveyTableTitles();",575);
  window.setTimeout("styleButtons();",600);
  window.setTimeout("correctStartPagePollLayout();",625);
  window.setTimeout("correctTextpicWOHeadline();",650);
  window.setTimeout("showZusatzspalteStandardContent();",675);
  window.setTimeout("leftMenuOMO(true);",700);
  window.setTimeout("insertQuickpollSep();",800);
  window.setTimeout("correctFooterWidthOnIE();",900);
  window.setTimeout("fitThumbnailsBgHeight();",1025);
  window.setTimeout("moveFooterOnIE7();",1100);
  window.setTimeout("rgsmoothgallery_moveLightboxUp();",1125);
  window.setTimeout("removeUnnecessaryClassNames();",1150);
}
clib_onload("delayExec()");

// due to an IE7 box model bug, we need to move the footer 17 px downwards @ start page
function moveFooterOnIE7(){if(isIE7up&&d('startpage-left')){
 d('dvNavigationBottom').style.top='197px';
}}

// change submit button text in quickPoll
function correctQuickpollButton(){try{
  d('dvQuickpoll').getElementsByTagName('input')[d('dvQuickpoll').getElementsByTagName('input').length-1].value='Abstimmen';
}catch(error){}}

// correct header position in content element 'textimage - image on top left'
function correctHeaderPos(){try{
  var elColl=getElementsByClass('div','csc-textpic csc-textpic-intext-left-nowrap'); // collect elements
  for(var i=0;i<elColl.length;i++)
    {
    elColl[i].getElementsByTagName('h1')[0].style.left='-'+Number(elColl[i].getElementsByTagName('img')[0].offsetWidth+12)+'px'; // move the h1 as far left as the image below is wide
    elColl[i].getElementsByTagName('h1')[0].style.visibility='visible'; // show the h1 (was hidden before)
    }
}catch(error){}}

// correct survey table title texts
function correctSurveyTableTitles(){try{
var sts=getElementsByClass('tr','surveyrow_odd'); var tds=''; var ii; // collect title rows
for(var i=0;i<sts.length;i++)
  {
  tds=sts[i].getElementsByTagName('td');
  for(ii=0;ii<tds.length;ii++)
    {
     if(tds[ii].innerHTML.length==1) // get all rows with only one char in them (most likely the title numbers)
      {
       if(!isIE55up) // move them right
        {
        tds[ii].style.borderLeft='3px solid #f2f2f2'; // on IE
        }else{
        tds[ii].style.borderLeft='6px solid #f2f2f2'; // on other browsers
        }
      }
    }
  }
}catch(error){}}

// correct start page poll layout on result page
function correctStartPagePollLayout(){if(location.href.indexOf('savevote')!=-1){try{
var h2=d('startpage-poll-content').getElementsByTagName('h2')[0];
h2.style.top='2px';
if(isIE55up&&!isIE7up) // on IE 5.5 & 6
  {
  h2.style.position='relative';
  h2.style.left='-18px';
  h2.style.width='225px';
  }
  if(!isIE55up&&!isIE7up) // on other browsers
  { // on other browsers
  h2.style.left='-9px';
  }
  if(isIE7up) // on IE 7
  {
  h2.style.left='-18px';
  }
}catch(error){}}}

/* begin rgsmoothgallery extending functions */
// move the lightbox up
function rgsmoothgallery_moveLightboxUp(){
try{
    d('lbCenter').style.top='0px';
    if(d('lbCenter').offsetHeight!=0)
      {
      d('lbBottom').style.top=d('lbCenter').offsetHeight+'px';
      }
    }catch(error){}
window.setTimeout("rgsmoothgallery_moveLightboxUp();",500);
}
/* end rgsmoothgallery extending functions */

// correct textpic content element without headline
function correctTextpicWOHeadline(){
var allEls=getElementsByClass('div','csc-textpic csc-textpic-intext-left-nowrap');
for(var i=0;i<allEls.length;i++){if(allEls[i].getElementsByTagName('h1').length==0){allEls[i].getElementsByTagName('img')[0].style.borderTop=0;}}
allEls=getElementsByClass('div','csc-textpic csc-textpic-intext-right-nowrap');
for(i=0;i<allEls.length;i++){if(allEls[i].getElementsByTagName('h1').length==0){allEls[i].getElementsByTagName('img')[0].style.borderTop=0;}}
}

// show "zusatzspalte" contents on start page instead of quickpoll if content is present
function showZusatzspalteStandardContent(){if(d('dvQuickpoll')){
  try{
  if(d('dvQuickpoll').getElementsByTagName('p')[0]&&d('dvQuickpoll').getElementsByTagName('p')[0].className=='bodytext'&&d('dvQuickpoll').getElementsByTagName('p')[0].innerHTML!='')
    {
     getElementsByClass('div','tx-quickpoll-pi1')[0].style.display='none';
     d('dvQuickpoll').getElementsByTagName('p')[0].style.width='210px';
     if(isIE55up){d('dvQuickpoll').getElementsByTagName('p')[0].style.width='220px';}
    }
  }catch(error){}
  d('startpage-poll').style.visibility='visible';
}}

function fitThumbnailsBgHeight(){
 if(getElementsByClass('div','carouselInner').length!=0)
  {
    d('rgThumbnails').style.height=Number(d('dvContentMain').offsetHeight-350)+'px';
  }
}

// remove disturbing class names we don't need and which are buried somewhere in the t3 source
function removeUnnecessaryClassNames(){
var allEl=document.getElementsByTagName('a');
for(var i=0;i<allEl.length;i++)
  {
    if(allEl[i].className=='internal-link'){allEl[i].className='';}
  }
}
