var preloadImages = new Array();

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function cmsCompatiblePreloadImages() {
	if (document.images && preloadImages) { 
		if (!document.MM_p) document.MM_p=new Array();
    	var i,j=document.MM_p.length;
    	for (i=0; i<preloadImages.length; i++) {
			if (preloadImages[i].indexOf("#")!=0) { 
				document.MM_p[j] = new Image; 
				document.MM_p[j++].src=preloadImages[i];
			}
		}
	}
}

function showPrintDialog() {
	window.print();
}

//Event.observe(window, 'load', cmsCompatiblePreloadImages, false);
//$(document).ready(cmsCompatiblePreloadImages);

function resizeImage(image, width, height, isMax) {
	if (image) {
		var origWidth = image.width;
		var origHeight = image.height;
		var ration = 1;
		if (width && width > 0 && height && height > 0) {
			if (isMax) {
				if (origWidth > origHeight) {
					ratio = width / origWidth;
				} else {
					ratio = height / origHeight;
				}
			} else {
				if (origWidth < origHeight) {
					ratio = width / origWidth;
				} else {
					ratio = height / origHeight;
				}
			}
		} else if (width && width > 0) {
			ratio = width / origWidth;
		} else if (height && height > 0) {
			ratio = height / origHeight;
		}
		percentage = ratio*100;
		var newWidth = Math.ceil(origWidth * ratio) + 3;
		var newHeight = Math.ceil(origHeight * ratio) + 3;
		$(image).css("width", "" + newWidth + "px");
		$(image).css("height", "" + newHeight + "px");
		$(image).css("position", "relative");
		if (!isMax) {
			if (newWidth > width) {
				$(image).css("left", "-" + Math.round((newWidth - width) / 2) + "px");
			}
			if (newHeight > height) {
				$(image).css("top", "-" + Math.round((newHeight - height) / 2) + "px");
			} else {
				alert("subifgi");
			}
		}
	}
}

/* noyb stuff *************************************************************************************/
function dcmadr(nnnn) {
	var a = "";
	for(i=0,m=nnnn.length;i < m;i++){
		if(i%3==0){
			a += String.fromCharCode(nnnn.substr(i, 3)-37);
		}
	}
	return a;
}

function dcmt(nnnn) {
	var a = dcmadr(nnnn);
	location.href=('m'+'ail'+'t'+'o:'+a);
}

/* education siblings drop-down menu stuff ********************************************************/
function loadPath(path) {
	if (path) {
		url = location.protocol + "//" + document.domain;
		if (location.protocol == 'http:' && location.port != 80) {
			url += ":" + location.port;
		} else if (location.protocol == 'https:' && location.port != 443) {
			url += ":" + location.port;
		}
		url += path;
		window.location.href = url;
	}
}

/* collapsible paragrpahs *************************************************************************/
function toggleCollapsibleParagraph(id) {
	var paragraph = document.getElementById(id);
	if (paragraph) {
		var currentClass = paragraph.getAttribute("class");
		if (!currentClass) {
			currentClass = paragraph.getAttribute("className");
		}
		if (currentClass == "closed") {
			paragraph.setAttribute("class", "open"); 
			paragraph.setAttribute("className", "open");
		} else {
			paragraph.setAttribute("class", "closed"); 
			paragraph.setAttribute("className", "closed");
		}
	}
}

/* home stage slider ******************************************************************************/
var currentActiveStageItem;
var autoRotationLag = 10000;
var autoRotationLagAfterClick = 15000;
var nextRotation;
var stageDetailImageURLs = new Array();
var lastItemY;
//var sliderReady = false;
var stageListItems;
var topItemOffset;
var bottomItemOffset;
var console;
var stagePlayer;
var needsScrolling = false;

function initStage() {
	if (BrowserDetect.browser != 'Explorer' || BrowserDetect.version >= 7) {
		if (document.getElementById('stageItemList').offsetHeight > 368) {
			needsScrolling = true;
		}
		$(function() {
			if (needsScrolling) {
				$('#stageScrollPane').css('width', '356px');
				$('#stageScrollPane').jScrollPane({animateTo:true, animateInterval:50, animateStep:5});				
				$('#stageItemList').css('position', 'relative');
				$('#stageItemList').css('right', '-5px');
			} else {
				$('#stageScrollPane').css('width', '346px');
			}
		});
		setTimeout(setupItemList, 50);
	}
	$('#stageItemList').addClass('jsactive');
	$("#nextStageImage").fadeOut(1);
	$("#stageImage").css('z-index', 100);
	$("#nextStageImage").css('z-index', 101);
}

function offsetForListElement(listElement) {
	if (listElement) {
		return $(listElement).offset().top - $("#stageScrollPane").offset().top;
	} else {
		return null;
	}
}

function indexForListElement(listElement) {
	if (listElement && stageListItems) {
		for (i=0; i<stageListItems.length; i++) {
			if (listElement.id == stageListItems[i].id) {
				return i;
			}
		}
	}
	return -1;
}

function setupItemList() {
	stageListItems = $('#stageScrollPane li');
	topItemOffset = offsetForListElement(stageListItems[0]);
	currentActiveStageItem = stageListItems[0];
	bottomItemOffset = offsetForListElement(stageListItems[stageListItems.length - 1]);
	stagePlayer = setTimeout(activateNextItem, autoRotationLag);
}


function highlightItem(element) {
	if (element && element.id) {
		$('#'+element.id).addClass("mouseOver");
	}
}

function resetItemHighlighting(element) {
	if (element && element.id) {
		$('#'+element.id).removeClass("mouseOver");
	}
}

function handleItemClick(element) {
	activateItem(element);
	clearTimeout(stagePlayer);
	stagePlayer = setTimeout(activateNextItem, autoRotationLagAfterClick);
}

function activateItem(element) {
	if (element) {
		// deactivate current item
		if (currentActiveStageItem) {
			$('#'+currentActiveStageItem.id).removeClass("active");
			currentActiveStageItem = null;
		}
		// activate new item
		$(element).addClass("active");
		currentActiveStageItem = element;
		
		// scroll to the newly selected element
//		var scrollToValue = parseInt($(element).offset().top - $("#stageScrollPane").offset().top - 20);
		var scrollToValue = parseInt(offsetForListElement(element) - 20);
		if (needsScrolling) {
			$('#stageScrollPane').each(
				function() {
					this.scrollTo(scrollToValue);
				}
			);
		}

		// set the right picture
		var stageImageElement = document.getElementById("stageImage");
		var nextStageImageElement = document.getElementById("nextStageImage");
		var liIndex = indexForListElement(element);
		if (stageImageElement && nextStageImageElement && stageDetailImageURLs && stageDetailImageURLs.length > liIndex) {
			// set the right image url
			nextStageImageElement.src = stageDetailImageURLs[liIndex];
			
			// let it fade in
			$("#nextStageImage").fadeIn(2000, cleanupAfterActivation);
		} else {
			alert("could not change image: "+ stageImageElement +", "+liIndex+", "+stageDetailImageURLs[liIndex]);
		}
	}
}

function cleanupAfterActivation() {
	var stageImageElement = document.getElementById("stageImage");
	var nextStageImageElement = document.getElementById("nextStageImage");
	stageImageElement.src = nextStageImageElement.src;
	$("#nextStageImage").fadeOut(1);
}

function activateNextItem() {
	if (stageListItems) {
		if (!currentActiveStageItem) {
			activateItem(stageListItems[0]);
			stagePlayer = setTimeout(activateNextItem, autoRotationLag);
		} else {
			var currItemIndex = indexForListElement(currentActiveStageItem);
			if (currItemIndex >= 0) {
				if (currItemIndex == (stageListItems.length - 1)) {
					activateItem(stageListItems[0]);
				} else {
					activateItem(stageListItems[currItemIndex + 1]);
				}
				stagePlayer = setTimeout(activateNextItem, autoRotationLag);
			}
		}
	}
}

/*function startAutoRotation() {
	activateNextItem();

	var stageSliderElement = document.getElementById("stageSlider");
	if (((new Date()).getTime() > nextRotation) && stageSliderElement && currentActiveStageItem) {
		var children = stageSliderElement.childNodes;
		var firstItem;
		var nextItem;
		var nextItemFlag = false;
		var liCounter = -1;
		for (i=0; i<children.length; i++) {
			currChild = children[i];
			if (currChild.nodeName.toLowerCase() == 'li') {
				liCounter++;
				if (nextItemFlag) {
					nextItem = currChild;
					break;
				}
				if (i == 0) {
					firstItem = currChild;
				}
				if (currChild == currentActiveStageItem) {
					nextItemFlag = true;
				}
			}
		}
		if (!nextItem) {
			nextItem = firstItem;
			liCounter = 0;
		}
		if (nextItem) {
			activateItem(nextItem);
			setTimeout(activateNextItem, autoRotationLag);
		}
	}
	
}*/
/* slide show *************************************************************************************/
// find out where we currently are:
/*var url = new String(window.location);
var segments = url.split("/", 4);
var rootContext = "";
if (segments[3]) {
	rootContext =  "/" + segments[3];
}
var shadowboxRootFolder = rootContext + "/docroot/sfgb/scripts/shadowbox";
Shadowbox.loadSkin('sfgb', shadowboxRootFolder + '/skin');
Shadowbox.loadPlayer(['img', 'flv', 'html'], shadowboxRootFolder + '/player');*/

var galleryTitle = "SfGB+B";
var gallerySubTitle = "Galerie";
var defaultGalleryTitle = "SfGB+B";
var defaultGallerySubTitle = "Galerie";
/* browser detection ******************************************************************************/
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();