var onLoadFuncs = new Array();
var verticalPagers = new Array();
function addOnLoad(func) {
	onLoadFuncs.push(func);
}

function init() {
	if(typeof sIFR == "function"){
		//sIFR.replaceElement("h2", named({sFlashSrc: "/media/hdc3/projekte/Pedro/js/sifr/vandenkeere.swf", sColor: "#000", sCase: "upper", sWmode: "transparent"}));
	}
	while(func = onLoadFuncs.pop()) {
		if (typeof func == 'function'){
	    	func();
	    }
	}
	_initVerticalPagers();
}


/**
* simulates target blank in an accessible way
*
* use links: <a href="http://www.triple-i.de" onclick="return TargetBlank(this.href)">Link</a>
*
* @param	string		url
* @return	boolean		always false
*/
function TargetBlank (url) {
	var newwindow	= window.open(url, "newwindow"+Math.random(),"menubar=yes,location=yes,status=yes,scrollbars=yes,toolbar=yes,resizable=yes");
	newwindow.focus();
	return false;
}

var subNav = new Array();

function opensub(subNavId) {
	var elem = $(subNavId);
	style = elem.getStyle('display');


	// Andere ausblenden
	var navcols = $$('.navcol');
	new Effect.Appear(subNavId, { duration: 0.3, queue: 'navigation' });

	subNav[subNavId] = 'open';
}
function onleave(subNavId) {
	subNav[subNavId] = 'close';
	window.setTimeout("closeSub('"+subNavId+"')",250);
}
function closeSub(subNavId) {
	if(subNav[subNavId] == 'close') {
		var elem = $(subNavId);
		style = elem.getStyle('display');
		if(style != 'none') new Effect.Fade(subNavId, { duration: 0.3, queue: 'navigation' });
	}
}


/**
 * Hoehe eines Elements berechnen
 * @param object	HTML Element Object
 * @uses Prototype 1.5
 */
function CalcHeight(Element) {
	var height = 0;
	if(Element !== null) {
		height =  Element.clientHeight;
		if(Element.getStyle) {
			height += parseFloat(Element.getStyle("margin-top"));
			height += parseFloat(Element.getStyle("margin-bottom"));
			height += parseFloat(Element.getStyle("padding-top"));
			height += parseFloat(Element.getStyle("padding-bottom"));
		} else {
			if(Element.marginTop) 		height += parseFloat(Element.marginTop);
			if(Element.marginBottom) 	height += parseFloat(Element.marginBottom);
			if(Element.paddingTop) 		height += parseFloat(Element.paddingTop);
			if(Element.paddingBottom) 	height += parseFloat(Element.paddingBottom);
		}
	}
	return height;
}

function CalcWidth(Element) {
	var width = 0;
	if(Element !== null) {
		width =  Element.clientWidth
		if(Element.getStyle) {
			width += parseFloat(Element.getStyle("margin-left"))
			width += parseFloat(Element.getStyle("margin-right"))
			width += parseFloat(Element.getStyle("padding-left"))
			width += parseFloat(Element.getStyle("padding-right"));
		} else {
			if(Element.marginLeft) 		width += parseFloat(Element.marginLeft);
			if(Element.marginRight) 	width += parseFloat(Element.marginRight);
			if(Element.paddingLeft) 	width += parseFloat(Element.paddingLeft);
			if(Element.paddingRight) 	width += parseFloat(Element.paddingRight);
		}
	}
	return width;
}



function buttonStateHandler(button, enabled) {
	if (button == "prev-arrow")
   		$('prev-arrow').style.visibility = enabled ? "" : "hidden"
 	else
   		$('next-arrow').style.visibility = enabled ? "" : "hidden"
}


function animHandler(carouselID, status, direction) {
	// Disable Fading

	var region = $(carouselID).down(".carousel-clip-region")
	if (status == "before") {
		Effect.Fade(region, {to: 0.3, queue: { position:'end', scope: "carousel" }, duration: 0.2})
	}
	if (status == "after") {
		Effect.Fade(region, {to: 1, queue: { position:'end', scope: "carousel" }, duration: 0.2})
	}
}
function initVerticalPager(id) {
	verticalPagers.push(id);
};
function _initVerticalPagers() {
	while(id = verticalPagers.pop()) {
		pager = new VerticalPager(id, {
							animParameters:{duration:0.5},
							buttonStateHandler:pagerButtonStateHandler,
							nextElementID:id+'-pager-next',
							prevElementID:id+'-pager-prev'
						});
	}
}
function initPager(id) {
	pager = new VerticalPager(id, {
						animParameters:{duration:0.5},
						buttonStateHandler:pagerButtonStateHandler,
						nextElementID:id+'-pager-next',
						prevElementID:id+'-pager-prev'
					});
};

function pagerButtonStateHandler(button, enabled) {
   	$(button).style.visibility = enabled ? "" : "hidden"
}

function start_slideshow(start_frame, end_frame, delay) {
	setTimeout(switch_slides(start_frame,start_frame,end_frame, delay), delay);
}

function switch_slides(frame, start_frame, end_frame, delay) {
	switchtime = 1500;
	fadetime = '1.5';
    return (function() {

        Effect.Fade('slideshow' + frame,{ duration: fadetime });
        oldframe = frame;
        if (frame == end_frame) { frame = start_frame; } else { frame = frame + 1; }

    	//alert('ausblenden slideshow' + oldframe + ' - einblenden slideshow' + frame);
        setTimeout("Effect.Appear('slideshow" + frame + "', { duration: " + fadetime+ " });", switchtime);
        setTimeout(switch_slides(frame, start_frame, end_frame, delay), delay + switchtime);
    })
}

function toggleGallery(domid,elemenId) {
	// check other galleries
	var galleries = $$('.hideme');
	for(var index=0; index < galleries.length; ++index ) {
		if(galleries[index].id != domid && galleries[index].hasClassName('active')) {
			new Effect.BlindUp(galleries[index].id,{queue:'gallery',duration:'0.2'
				/*
				,
				beforeStart: function(s) {
					var elements = $$('#' + domid + ' div.pane');
					elements.each(function(elem) {
						alert(elem);
						elem.style.display='block';
					});
				}
				*/
			})
			galleries[index].removeClassName('active');
		}
	}
	var gallerie = $(domid);
	if(gallerie.hasClassName('active')) {
		new Effect.BlindUp(domid,{queue:'gallery',duration:'0.2'
			/*
			,
			beforeStart: function(s) {
				var elements = $$('#' + domid + ' div.pane');
				elements.each(function(elem) {
					elem.style.display='none';
				});
			}
			*/
		});
		gallerie.removeClassName('active');
	} else {
		new Effect.BlindDown(domid,{queue:'gallery',duration:'0.2'
			/*
			,
			afterFinish: function(elem) {
				var elements = $$('#' + domid + ' div.pane');
				elements.each(function(elem) {
					elem.style.display='block';
				});
			}
			*/
		});
		gallerie.addClassName('active');
	}
}

var galleryStatus = new Array();

function loadGallery(id,domid,pagerId) {
	if(galleryStatus.indexOf(domid) == -1) {
		galleryStatus[id] = domid;
		var pager_id = 'gallery_'.id;
		toggleGallery(domid,id);

		new Ajax.Updater(domid, '/html/ajax_gallery.php?id=' + id, {
			onComplete: function(transport) {
		  		initLightbox();
				pager = new HorizontalPager(pagerId, {
									animParameters:{duration:0.5},
									buttonStateHandler:pagerButtonStateHandler,
									nextElementID:pagerId+'-pager-next',
									prevElementID:pagerId+'-pager-prev'

								});
			}
		});
	} else {
		toggleGallery(domid,id);
	}
}
function sizeElement(ElemId) {
	var e = $(ElemId);
	var tmp = $$('body');
	var body = tmp[0];
	e.style.height = body.getHeight();
	e.style.width = body.getWidth();
}
function center(Element) {
	var domNode = $(Element);
	var elementHeight = 300;
	var elementWidth = 400;

	var tmp = $$('body');
	var body = tmp[0];

	var bodyHeight = body.getHeight();
	var bodyWidth = body.getWidth();

	domNode.style.marginLeft = parseInt((bodyWidth - elementWidth) / 2) + 'px';
	domNode.style.marginTop = parseInt((bodyHeight - elementHeight) / 2) + 'px';
}

function openVideoPlayer(ElemId) {
	new Effect.Appear(ElemId);
}
function closeVideoPlayer(ElemId) {
	new Effect.Fade(ElemId);
}

