var hiddenSelects = [];
var hideSelectLayers = [];

/* prüft, on der gerade verwendete Browser der IE6 ist oder nicht */
function isIE6 () {
    
    
   return true;
   // Immer auf true gesetzt, da das Menü immer herausgelöst werden soll! Ansonsten variiert der Abstand wenn ein Banner eingebunden ist
   // return (window.XMLHttpRequest) ? false : true;
}

/* prüft, on der gerade verwendete Browser der IE7 ist oder nicht */
function isIE7 () {
	return (document.all && navigator.appVersion.indexOf("MSIE 7.")!=-1) ? true : false;
}

/* speichert ein Cookie mit verfallsdatum */
function setCookie (name,value,duration) {
	if (typeof(name) != 'string') {
		return false;
	}
	
	value = value+'';
	value = value.split(', ').join(','); // fix für Safari

	cookieString = name+'='+value;
	if (!isNaN(duration)) {
		cookieString += '; expires='+expireTime(duration)+'; path=/';
	}
	document.cookie = cookieString;
}

/* gibt den inhalt eines cookies zurück */
function getCookie (name) {
	var start, ende, v, i, f
	var c = document.cookie;
	
	if (!c || typeof(name) != 'string' || c.indexOf(name+'=') == -1) {
		return null;
	}
	start = c.indexOf(name+"=") + name.length + 1;
    ende = c.indexOf(";",start);
    if(ende == -1) ende = c.length;
    
	v = c.substring(start,ende);
	if (v.length && v.length < 25) {
		i = parseInt(v);
		f = parseFloat(v);
		
		if (i.toString(10) == v) {
			return i;	
		} else if (i.toString(10) == v) {
			return f;
		} else {
			return v;	
		}
	}
	return v;	
}

/* berechnet und formatiert den Wert für das Verfallsdatum eines cookies */
function expireTime (tage) {
	if (isNaN(tage)) {
		return '';	
	}
	var jetzt = new Date();
	var ablauf = new Date(jetzt.getTime() + (tage * 24 * 3600 * 1000));
	
	return ablauf.toGMTString();
}


/* versteckt die von Layern überlappten Selectboxes im IE6 */
function hideSelectboxes (obj) {
	if (isIE6()) {
		
		if (obj) {
			obj = $(obj);
			
			alreadyRegistered = false;
			for (var k=0; k<hideSelectLayers.length; k++) {
				if (hideSelectLayers[k] == obj) {
					alreadyRegistered = true; break;
				}
			}
			
			if (!alreadyRegistered) {
				hideSelectLayers.push(obj);
			}
		}
		
		var posibleUnhides = [];
		var newHides =[];
		var selects = document.getElementsByTagName("select");
		
		for (var o=0; o<hideSelectLayers.length; o++) {
			
			obj = hideSelectLayers[o];
			
			pos = Position.cumulativeOffset(obj);
			xMin = pos[0];
			yMin = pos[1];
			xMax = xMin + obj.offsetWidth;
			yMax = yMin + obj.offsetHeight;
	
			//alle Selectboxen durchgehen
			for (i=0; i < selects.length; i++) {
				pos = Position.cumulativeOffset(selects[i]);
				sel_xMin = pos[0];
				sel_yMin = pos[1];
				sel_xMax = sel_xMin + selects[i].offsetWidth;
				sel_yMax = sel_yMin + selects[i].offsetHeight;
	
				//Wenn überlappung, dann selectbox ausschalten
				if ( !(sel_xMin > xMax 
					|| xMin > sel_xMax
					|| sel_yMin > yMax
					|| yMin > sel_yMax) ) {
					if (selects[i].style.visibility != 'hidden') {
						selects[i].style.visibility = 'hidden';
					}
					newHides[i] = true;
				} else {
					if (hiddenSelects[i] && selects[i].style.visibility != 'visible') {
						posibleUnhides[i] = true;
					}
				}
			}
		}
		
		for (i=0; i < selects.length; i++) {
			if (posibleUnhides[i] && !newHides[i]) {
				selects[i].style.visibility = 'visible';
			}
		}
		
		hiddenSelects = newHides;
	}
}

//macht alle invisible gesetzen Selectboxen wieder sichtbar (für IE6)
function unhideSelectboxes (obj) {
	if (isIE6()) {		
	
		if (obj) {
			obj = $(obj);
			
			var newHideSelectLayers = [];
			
			for (var k=0; k<hideSelectLayers.length; k++) {				
				if (hideSelectLayers != obj) {
					newHideSelectLayers.push(hideSelectLayers[k]);
				}
			}
		}
		
		hideSelectLayers = newHideSelectLayers;
		hideSelectboxes();
	}
}


/*====== Anzeige des aktuellen Datums und der Zeit im Kopf und im Content ======*/
var KalenderWochentag = new Array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
var KalenderMonate = new Array("Januar","Februar","M&auml;rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
var KalenderTage = new Array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
var datumZeitAusgabe;
var datumAusgabe

function startTime () {
	datumZeitAusgabe = $('dateandtime');
	if (datumZeitAusgabe) {
		updateDateAndTime();
		window.setInterval('updateDateAndTime',5000);	
	}
}

function updateDateAndTime () {
	if (datumZeitAusgabe) {
		var d = new Date();
		var code = KalenderTage[d.getDay()]+', '+d.getDate().toPaddedString(2)+'. '+KalenderMonate[d.getMonth()]+' '+d.getFullYear()+', '+d.getHours().toPaddedString(2)+':'+d.getMinutes().toPaddedString(2)+' Uhr';
		datumZeitAusgabe.innerHTML = code;
	}
}

 // registerOnLoadFunction (startTime);


/*====== Funktionen zur Schiftgrößenanpassung in der Hauptspalte ======*/
var fontSizes = {big:'14px', normal:'12px', small:'11px'};
var initialStyleWritten = false;

function setFontSizeBig () {	
	setCookie('fontSize','big',999);
	setFontSize(fontSizes.big);
	setFontSizeButtons('big');
}
function setFontSizeNormal () { 
	setCookie('fontSize','normal',999);
	setFontSize(fontSizes.normal);
	setFontSizeButtons('normal');
}
function setFontSizeSmall () {
	setCookie('fontSize','small',999);
	setFontSize(fontSizes.small);
	setFontSizeButtons('small');
}

function setFontSize (size) {
    var buehne = $('buehne');
	if (buehne) {
		buehne.style.fontSize = size;
	} else {
		window.setTimeout('setFontSize("'+size+'")',50);
	}
}

function setInitialFontSize () { 
	var lastSize = getCookie('fontSize');
	var size = fontSizes.normal;
	
	if (lastSize && (lastSize=='big' || lastSize=='small')) { 
		if (lastSize == 'big') { 
			setFontSizeBig();
			size = fontSizes.big;
		} else { 
			setFontSizeSmall();
			size = fontSizes.small;
		}
	} else { 
		setFontSizeNormal();
	}
	if (!initialStyleWritten) { 
		// document.write('<style type="text/css">#buehne{font-size:'+size+';}</style>');
		initialStyleWritten = true;
	}
}

function setFontSizeButtons (size) { 
	var col1 = $('topbarLinkliste');
	var i=0; 
	if (col1) { 
    if(size=='small'){
      document.getElementById('fontSizeLinkSmall').className = "fontSizeLinkSmallOver";
      document.getElementById('fontSizeLinkNormal').className = "fontSizeLinkNormal"; 
      document.getElementById('fontSizeLinkBig').className = "fontSizeLinkBig"; 
      }
    else if(size=='normal'){		
      document.getElementById('fontSizeLinkNormal').className = "fontSizeLinkNormalOver";
      document.getElementById('fontSizeLinkSmall').className = "fontSizeLinkSmall"; 
      document.getElementById('fontSizeLinkBig').className = "fontSizeLinkBig"; 
      }
		else if(size=='big'){
      document.getElementById('fontSizeLinkBig').className = "fontSizeLinkBigOver";
      document.getElementById('fontSizeLinkSmall').className = "fontSizeLinkSmall"; 
      document.getElementById('fontSizeLinkNormal').className = "fontSizeLinkNormal"; 
      }
  }
}

// setInitialFontSize ();
registerOnLoadFunction (setInitialFontSize);


/*====== Funktionen zum öffnen/schließen einer Suchbox ======*/
function toggleSuchboxDetails (button, blockID) {
	var block = $(blockID);
	if (button && block) {
		button.blur();
		if (!button.initialText) {
			button.initialText = button.innerHTML;
		}
		
		if (block.style.display == 'none') {
			button.className = 'suchboxCloser';
			button.innerHTML = '&nbsp;';
			if (block.currentEffekt) {
					block.currentEffekt.cancel();
			}
			block.currentEffekt = new Effect.BlindDown(blockID, {duration:0.5});
		} else {
			button.className = 'suchboxOpener';
			button.innerHTML = button.initialText;
			if (block.currentEffekt) {
					block.currentEffekt.cancel();
			}
			block.currentEffekt = new Effect.BlindUp(blockID, {duration:0.5});
		}
		
	}
}

/*====== Funktionen zum öffnen/schließen einer Kommentar ======*/
function toggleKommentarbox (buttonID, blockID, openOnly) {
	var block = $(blockID);
	var button = $(buttonID);
	
	if (block && button) {
		button.blur();
		
		if (block.style.display == 'none') {
			button.className = 'kommentarboxCloser';
			if (block.currentEffekt) {
					block.currentEffekt.cancel();
			}
			block.currentEffekt = new Effect.BlindDown(blockID, {duration:0.5});
		} else {
			if (!openOnly) {
				button.className = 'kommentarboxOpener';
				if (block.currentEffekt) {
						block.currentEffekt.cancel();
				}
				block.currentEffekt = new Effect.BlindUp(blockID, {duration:0.5});
			}
		}
	}
}


/*====== Funktionen zum öffnen/schließen einer Medadatenbox ======*/
function toggleMediadatenBox (buttonID, blockID) {
	var block = $(blockID);
	var button = $(buttonID);
	
	if (block && button) {
		button.blur();
		
		if (block.style.display == 'none') {
			button.className = 'mediadatenTitelLinkClose';
			if (block.currentEffekt) {
					block.currentEffekt.cancel();
			}
			block.currentEffekt = new Effect.BlindDown(blockID, {duration:0.5});
		} else {
			button.className = 'mediadatenTitelLink';
			if (block.currentEffekt) {
					block.currentEffekt.cancel();
			}
			block.currentEffekt = new Effect.BlindUp(blockID, {duration:0.5});
		}
	}
}

/*====== Funktionen zum durchblättern der Bilder in einer Infoboxen Galerie ======*/
function initInfoGalerie (gal) {
	var g = $(gal);
	if (g) {
		g.imgHolder = g.getElementsByClassName('imagesList')[0];
		g.myImages = g.imgHolder.getElementsByTagName('div');
		g.myImagesCount = g.myImages.length;
		g.bildnavi = g.getElementsByClassName('bildnavi')[0];
		g.navLinks = g.bildnavi.getElementsByTagName('a');
		g.anzeige = g.bildnavi.getElementsByClassName('bildnummer')[0];
		
		g.anzeige.innerHTML = (g.myImagesCount) ? ('1 / '+g.myImagesCount) : '0 / 0';
		g.navLinks[0].myGalerie = g;
		g.navLinks[1].myGalerie = g;
		g.navLinks[0].onclick = infoGalerieBack;
		g.navLinks[1].onclick = infoGalerieNext;
		g.navLinks[0].className = 'backLinkDisabled';
		g.navLinks[1].className = (g.myImagesCount > 1)? 'forwardLink' : 'forwardLinkDisabled';
		
	}
}

function infoGaleriSwitchIMage(obj, vorwaerts) {
	if (obj.myGalerie) {
		g = obj.myGalerie;
		
		var current = 0;
		for (var i=0; i<g.myImagesCount; ++i) {
			if (g.myImages[i].style.display != 'none') {
				current = i;
				break;
			}
		}
		
		if ((!vorwaerts && current>0 ) || (vorwaerts && current<g.myImagesCount-1)) {
			g.myImages[current].style.display = 'none';
			current += vorwaerts ? +1 : -1;
			g.myImages[current].style.display = 'block';
		}
		
		g.navLinks[0].className = (g.myImagesCount > 1 && current>0) ? 'backLink' : 'backLinkDisabled';
		g.navLinks[1].className = (g.myImagesCount > 1 && current<g.myImagesCount-1)? 'forwardLink' : 'forwardLinkDisabled';
		g.anzeige.innerHTML = (g.myImagesCount) ? ((current+1)+' / '+g.myImagesCount) : '0 / 0';
	}
}

function infoGalerieBack () {
	infoGaleriSwitchIMage(this, false);
}

function infoGalerieNext () {
	infoGaleriSwitchIMage(this, true);
}

/* BildergaleriePopup */
function openPopup (url, name, width, height, params) {
	if (url) {
		if (!name) name = 'defaultPopup';
		if (isNaN(width) || width<10 ) width = 640;
		if (isNaN(height) || height<10) height = 550;
		if (!params) params = '';		
		else if (params.charAt(0) != ',') params  = ', '+params;
		
		window.open(url, name, "width="+width+", height="+height+",scrollbars=no, resizable=yes"+params);
	}
}

/* BildergaleriePopup */
function openGaleriePopup (url, params) {
	if (url) {
		openPopup(url, "Bildergallerie", 640, 550, params);
	}
}


// registerOnLoadFunction (initMyHorizontNavi);

/*====== Bewertungsfunktion ======*/
function initBewertungen () {
	var c1= $('col1');
	if (c1) {
		var cookie = getCookie('bewertungen');
		var cookieData = (cookie) ? cookie.evalJSON() : {};
		var bewertungen = c1.getElementsByClassName('bewertungAbgeben');
		
		for (var i=0; i<bewertungen.length; ++i){
			initBewertung(bewertungen[i],cookieData);
		}
	}
}
function initBewertung (obj, cookieData) {
	obj = $(obj);
	if (obj && !obj.bewertungInitialized) {
		obj.bewertungInitialized = true;

		var imgs = obj.getElementsByTagName('img');
		var form = obj.getElementsByTagName('form');
		var f = form[0];
		var submitData = '';
		var bewertungID = 'none';
		
		/* Alle Elemente des Formulars als zu einem POST-Data-String zusammenpacken*/
		for (var k=0; k<f.elements.length; ++k) {
			if (f.elements[k].name != 'bewertung') {
				submitData += f.elements[k].name + '=' + f.elements[k].value+'&';
			}
			if (f.elements[k].name == 'itemsQuellenID') {
				bewertungID = f.elements[k].value;
			}
		}
		submitData += 'bewertung=';		
		
		for (var i=0; i<imgs.length; ++i) {
			imgs[i].starList = imgs;
			imgs[i].outSrc = imgs[i].src;
			imgs[i].overSrc = imgs[i].src.split('off.png').join('on.png');
			imgs[i].myNum = i;
			imgs[i].bewertungID = bewertungID;
			imgs[i].targetURL = f.action;
			imgs[i].submitData = submitData + (i+1);
			imgs[i].cookieData = cookieData;
			imgs[i].onmouseover = bewertungMouseover;
			imgs[i].onmouseout = bewertungMouseout;
			imgs[i].onclick = bewertungSend;
		}
		
		/* User hat schon bewertet --> Sterne entsprechend dem Voting initialisieren */
		if (cookieData[bewertungID]) {
			for (var i=0; i<imgs.length; ++i) {
				imgs[i].bewertungAbgegeben = true;
				imgs[i].src = (i<cookieData[bewertungID]) ? imgs[i].overSrc : imgs[i].outSrc;
				imgs[i].style.cursor = 'auto';
			}
		}		
	}
}
// registerOnLoadFunction (initBewertungen);

function bewertungMouseover () {
	if (!this.bewertungAbgegeben) {
		for (var i=0; i<=this.myNum; ++i) {
			this.starList[i].src = this.overSrc;
		}
	}
}
function bewertungMouseout () {
	if (!this.bewertungAbgegeben) {
		for (var i=0; i<this.starList.length; ++i) {
			this.starList[i].src = this.outSrc;
		}
	}
}
// Hilfsvariable fuer die RedirectURL
var redirectUrlNachBewerten;

function bewertungSend () {
	if (!this.bewertungAbgegeben) {
		for (var i=0; i<this.starList.length; ++i) {
			this.starList[i].bewertungAbgegeben = true;
			this.starList[i].style.cursor = 'auto';
		}
		
		var cookieData = this.cookieData;
		cookieData[this.bewertungID] = this.myNum+1;
		
		setCookie('bewertungen',Object.toJSON(cookieData),999);

		// prueft auf die Variable urlKampagne
		// wird in Top Flop gesetzt um nach der Bewertung 
		// auf die Kanpagne zu springen
		erg = this.submitData.match(/urlKampagne=([^#]+)#/);
		if(erg){
			redirectUrlNachBewerten = erg[1];
		}else{
			redirectUrlNachBewerten = '';
		}
		
		new Ajax.Request(this.targetURL, {postBody:this.submitData, method:'post', onSuccess:ajaxResult,onFailure:function () {}});
	}
}


function ajaxResult (data) {
	//for debugging
	
	if (data && data.responseText) {
		//	alert(data.responseText);
		// wenn noch nicht belegt
		if(redirectUrlNachBewerten==''){
			redirectUrlNachBewerten = window.location.href.split('#')[0];
		} 
		//if(window.location.href.match(/\?/)){
		if(redirectUrlNachBewerten.match(/\?/)){
			window.setTimeout('window.location.href = redirectUrlNachBewerten+"&refresh=1";',openCloseDuration*1000+200);
		}
		else{
			window.setTimeout('window.location.href = redirectUrlNachBewerten+"?refresh=1";',openCloseDuration*1000+200);
		}
	}
	/* 
	else {
		alert("keine Antwort");
	}
	*/
}


/*====== social Bookmarking ======*/
/* erzeugt die Links für das Social Bookmarking */
function initSocialBookmarking () {
	var bmContainer = $('socialBookmarks');	
	if (bmContainer) {
		var bookmarks = bmContainer.getElementsByClassName('sBookmark');
		var pageTitle = document.getElementsByTagName("title")[0].innerHTML;
		var heading = document.getElementsByTagName("h1")[0].innerHTML;
		var title = encodeURIComponent(heading + ' - ' + pageTitle); 	// zu bookmarkender Titel der Seite
//		var url = document.location.href.split('?')[0]; 				// zu bookmarkende URL (oohne URL-Parameter)
		var url = document.location.href; 				
		var site, newUrl, siteParts;
		
		for (var i=0; i<bookmarks.length; ++i) {
			siteParts = bookmarks[i].href.split('/');
			site = siteParts[siteParts.length-1];
			switch (site) {
				case 'wong' : newUrl = 'http://www.mister-wong.de/index.php?action=addurl&bm_url='+url+'&bm_description='+title; break;
				case 'yahoo' : newUrl = 'http://myweb2.search.yahoo.com/myresults/bookmarklet?u='+url+'&t='+title; break;
				case 'delicious' : newUrl = 'http://del.icio.us/post?url='+url+'&title='+title; break;
				case 'blinklist' : newUrl = 'http://www.blinklist.com/index.php?Action=Blink/addblink.php&Description=&Url='+url+'&Title='+title; break;
				case 'folkd' : newUrl = 'http://www.folkd.com/submit/page/'+url; break;
				case 'furl' : newUrl = 'http://www.furl.net/storeIt.jsp?u='+url+'&t='+title; break;
				case 'google' : newUrl = 'http://www.google.com/bookmarks/mark?op=add&hl=de&bkmk='+url+'&title='+title; break;
				case 'linkarena' : newUrl = 'http://linkarena.com/bookmarks/addlink/?url='+url+'&title='+title+'&desc=&tags='; break;
				case 'yigg' : newUrl = 'http://www.yigg.de/neu?exturl='+url+'&exttitle='+title; break;
				case 'webnews' : newUrl = 'http://www.webnews.de/einstellen?url='+url+'&title='+title; break;
				case 'oneview' : newUrl = 'http://beta.oneview.de:80/quickadd/neu/addBookmark.jsf?URL='+url+'&title='+title; break;
			}
			bookmarks[i].href = newUrl;
		}
	}
}
// registerOnLoadFunction (initSocialBookmarking);
