var vIE		= navigator.userAgent.indexOf('MSIE') != -1;
var vIE6	= navigator.userAgent.indexOf('MSIE 6') != -1;


/**
 *  Javascript für "Link in Lupe"
 * 
 *  Es wird das onclick Ereignis des übergeordneten Elements aufgerufen
 *
 *  Getestet mit:
 *  - FF 2.0.16
 *  - Safari 3.0.4
 *  - IE 7.0 (ietester)
 *  - IE 6.0 (ietester)
 *  - IE 8 Beta 1 (ietester)
 */
function openPreviousLink(elem) {
	elem.parentNode.getElementsByTagName('a')[0].onclick();
}


/**
 *  Javascript für "Link in Lupe"
 *  Bei Bildern in der News liegen die A-Tags der Bilder auf der
 *  gleichen DOM-Ebene wie das A-Tag mit der Lupe
 *  Daher wird der nächste vorhergehende A-Tag gesucht und dort
 *  das onclick-Ereignis ausgelöst.
 *  
 */
function openPreviousNewsLink(elem) {
	// letzten vorhergehenden Link finden
	elem = elem.previousSibling;
	while (null != elem) {
		if (elem.nodeName.toLowerCase() == 'a') {
			// return openPic(elem,'thePicture',''+vWidth+','+vSplit[3]+',status=0,menubar=0');
			elem.onclick();
		}
		elem = elem.previousSibling;
	}
}


// Funktion, um das Suchfeld bei Eingabe zu löschen und zu setzen
function toggleInputValue(el, val, mode) {
	input = document.getElementById(el.id);
	switch(mode) {
		case 0:
			if (input.value == val) input.value = '';
		break;
		case 1:
			if (input.value == '') input.value = val;

		break;
	}
}


/* Tab-Navigation Begin */
/*var dirF = 1;
var divF = 'general';

function manageForms(el) {
	if (divF=='') {
		new Effect.BlindDown(el);
		dirF = 1;
	} else if (el==divF && dirF==0) {
		new Effect.BlindDown(el);
		dirF = 1;
	} else if (divF!=el) {
		new Effect.BlindUp(divF, {afterFinish: function() {Effect.BlindDown(el);}});
		dirF = 1;
	}
	document.getElementById(el+'-a').className = 'act';
	document.getElementById(divF+'-a').className = 'no';
	divF = el;
}
*/
/* Tab-Navigation - Ansprechpartner End */


/**
 *  Cookie management
 */
function getCookie(cookieName) {
	strValue = false;
	if (strCookie = document.cookie) {
		if (arrCookie = strCookie.match(new RegExp(cookieName + '=([^;]*)', 'g'))) {
			strValue = RegExp.$1;
		}
	}
	return(strValue);
}


function setCookie(cookieName, cookieValue, intDays) {
	if (!cookieEnabled()) return false;
	
	var expires	= new Date();
	var date	= expires.getTime() + (intDays * 24 * 60 * 60 * 1000);
	expires.setTime(date);
	document.cookie = cookieName + '=' + cookieValue + ';expires='+expires.toGMTString()+';path=/';
	return true;
}


function delCookie(cookieName) {
	if (document.cookie) {
		document.cookie = cookieName + '=' + getCookie(cookieName) + ';expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/'; 
		return true;
	}
	return false;
}


function cookieEnabled() {
	if (typeof navigator.cookieEnabled!=undefined) return navigator.cookieEnabled;
	
	setCookie('test_cookie', 'foo', 1);
	if (!document.cookie) return false;
	
	delCookie('test_cookie');
	return true;        
}


/**
 *  Fontsizer
 */
var fontSize	= 3;
var cookieName	= 'fontSizer';

function switchFontSize(val) {
	var bd = $(document.getElementsByTagName('body')[0].id);
	switch (val) {
		case 'inc':
			if (fontSize+1 < 7) {
				bd.removeClassName('fs'+fontSize);
				fontSize++;
				bd.addClassName('fs'+fontSize);
			}
		break;
		case 'dec':
			if (fontSize-1 > 0) {
				bd.removeClassName('fs'+fontSize);
				fontSize--;
				bd.addClassName('fs'+fontSize);
			}
		break;
		default:
			bd.removeClassName('fs'+fontSize);
			fontSize = val;
			bd.addClassName('fs'+fontSize);
	}
	setCookie(cookieName, fontSize, 365);	
}


Event.observe(window, 'load', function() { 
	var newFontSize = getCookie(cookieName);
	if (newFontSize!='' && newFontSize > 0) switchFontSize(newFontSize);
});


/* ******************************************************************************* */
/* con_ajaxscroller                                                                                                                                  */
/* ******************************************************************************* */
/**
 * Hook function, called directly after clicking next- or prev-link or after timeout
 *
 * @param object cObj: clicked element (prev or next link)
 * @param string nextOrPrev: Link clicked ("next" or "prev")
 */
function hookGetItemAndPlaceStart(cObj, nextOrPrev) {
	contentObj = jQuery(cObj).closest(".tx-conajaxscroller-pi1").find(".ajaxscroller_content");
	if (nextOrPrev == "prev") {
		move = 2*contentObj.width() + "px";
	} else {
		move = -2*contentObj.width() + "px";
	}
	contentObj.animate({marginLeft: move}, {duration: "slow"});
	jQuery(cObj).closest(".tx-conajaxscroller-pi1").find(".ajaxscroller_loading").fadeIn();
}

/**
 * Hook function, called after successful AJAX request
 *
 * @param object cObj: clicked element (prev or next link)
 * @param string nextOrPrev: Link clicked ("next" or "prev")
 */
function hookGetItemAndPlaceSuccess(cObj, nextOrPrev) {
	contentObj = jQuery(cObj).closest(".tx-conajaxscroller-pi1").find(".ajaxscroller_content");
	if (nextOrPrev == "prev") {
		move = -2*contentObj.width() + "px";
	} else {
		move = 2*contentObj.width() + "px";
	}
	contentObj.css("margin-left", move).animate({marginLeft: "0px"});
	jQuery(cObj).closest(".tx-conajaxscroller-pi1").find(".ajaxscroller_loading").fadeOut();
}

var ajaxScrollerSelectBegin = 0;

jQuery(document).ready(function(){
    if ('undefined' == typeof ajaxScrollerAutoScroll ) { return; } // Plugin auf dieser Seite nicht implementiert
	// click on next/prev link
	jQuery(".ajaxscroller_prev").click(function(){
		getItemAndPlace(this, "prev");
	});
	jQuery(".ajaxscroller_next").click(function(){
		getItemAndPlace(this, "next");
	});

	// scroll automatic every x seconds
	if (ajaxScrollerAutoScroll > 0) {
		autoScroll();
	}

	if (ajaxScrollerStopAtLastElement > 0) {
		jQuery(".ajaxscroller_prev").hide();
	}
});

/**
 * Basic function for AJAX request
 *
 * @param object cObj: clicked element (prev or next link)
 * @param string nextOrPrev: Link clicked ("next" or "prev")
 */
function getItemAndPlace(cObj, nextOrPrev) {
	if (ajaxScrollerStopAtLastElement > 0) {
		// jQuery(".ajaxscroller_prev, .ajaxscroller_next").fadeOut();
	}
	// stop timeout
	if (ajaxScrollerAutoScroll > 0) {
		window.clearTimeout(autoScroller);
	}
	// calculate next record
	if (nextOrPrev == "prev") {
		ajaxScrollerSelectBegin = ajaxScrollerSelectBegin - ajaxScrollerMax;
	} else {
		ajaxScrollerSelectBegin = ajaxScrollerSelectBegin + ajaxScrollerMax;
	}
	if (ajaxScrollerSelectBegin >= ajaxScrollerMaxRowCount) {
		ajaxScrollerSelectBegin = 0;
	}
	if (ajaxScrollerSelectBegin < 0) {
		ajaxScrollerSelectBegin = ajaxScrollerMaxRowCount - ajaxScrollerMax;
	}
	// hook for effects
	hookGetItemAndPlaceStart(cObj, nextOrPrev);
	// AJAX request
	jQuery.ajax({
		url: "index.php",
		data: ({id : ajaxScrollerPid, type : ajaxScrollerTypeNum, begin : ajaxScrollerSelectBegin}), // AST, 21.12.2010: , no_cache : 1
		dataType: "json",
		success: function(ret){
			// place new content
			jQuery(cObj).closest(".tx-conajaxscroller-pi1").find(".ajaxscroller_content").html(ret.content);
			// scroll automatic every x seconds
			if (ajaxScrollerAutoScroll > 0) {
				autoScroll();
			}
			// hide / show next and prev buttons
			if (ajaxScrollerStopAtLastElement > 0) {
			/*
				if (ajaxScrollerSelectBegin > 0) {
					jQuery(".ajaxscroller_prev").fadeIn();
				} else {
					jQuery(".ajaxscroller_prev").fadeOut();
				}
				if (ajaxScrollerSelectBegin >= ajaxScrollerMaxRowCount - 1) {
					jQuery(".ajaxscroller_next").fadeOut();
				} else {
					jQuery(".ajaxscroller_next").fadeIn();
				}
			*/
			}
			// hook for effects
			hookGetItemAndPlaceSuccess(cObj, nextOrPrev);
		}
	});
}
/**
 * Timeout for next automatic scrolling
 */
function autoScroll() {
	autoScroller = window.setTimeout('getItemAndPlace(jQuery(".ajaxscroller_next"))', ajaxScrollerAutoScroll * 1000)
}



var defaultAjaxScrollerAutoScroll = -1;
function stopScroller() {
  defaultAjaxScrollerAutoScroll = ajaxScrollerAutoScroll;
  ajaxScrollerAutoScroll = 0;  
  window.clearTimeout(autoScroller);
}
function startScroller() {
  if (-1 != defaultAjaxScrollerAutoScroll) {
    ajaxScrollerAutoScroll = defaultAjaxScrollerAutoScroll;
  }
  autoScroller = window.setTimeout('getItemAndPlace(jQuery(".ajaxscroller_next"))', ajaxScrollerAutoScroll * 1000);
  getItemAndPlace(jQuery(".ajaxscroller_next"));
}

function toggleScroller(button) {
	if (jQuery(button).attr('class')  == 'ajaxscroller_pause') {
		jQuery(button).addClass('ajaxscroller_start');
		jQuery(button).removeClass('ajaxscroller_pause');
		jQuery(button).removeAttr('title');
		jQuery(button).attr('title','Start');
		stopScroller();
	} else {
		jQuery(button).addClass('ajaxscroller_pause');
		jQuery(button).removeClass('ajaxscroller_start');
		jQuery(button).removeAttr('title');
		jQuery(button).attr('title','Pause');
		startScroller();
	}
}


/*
 * efa Verbindungssuche
 */
function setDateTime(el, unit) {
	var date	= new Date();
	var y		= date.getFullYear();
	var m		= date.getMonth();
	var d		= date.getDate();
	var h		= date.getHours();
	var i		= date.getMinutes();
	
	m+=1;
	m	 		= m< 10?'0'+m:m;
	d	 		= d< 10?'0'+d:d;
	h	 		= h< 10?'0'+h:h;
	i 			= i<10?'0'+i:i;
	
	switch(unit) {
		case 'h':
			$(el).value = h;
		break;
		case 'i':
			$(el).value = i;
		break;
		case 'd':
			for (x=0; x<$(el).options.length; x++) {
				if ($(el).options[x].value == d) $(el).selectedIndex = x;
			}
		break;
		case 'm':
			for (x=0; x<$(el).options.length; x++) {
				if ($(el).options[x].value == m) $(el).selectedIndex = x;
			}
		break;
		case 'y':
			for (x=0; x<$(el).options.length; x++) {
				if ($(el).options[x].value == y) $(el).selectedIndex = x;
			}
		break;
	}
}
