

// Example: obj = findObj("image1");
function findObj(theObj, theDoc)
{
  var p, i, foundObj;
  
  if(!theDoc) theDoc = document;
  if( (p = theObj.indexOf("?")) > 0 && parent.frames.length)
  {
    theDoc = parent.frames[theObj.substring(p+1)].document;
    theObj = theObj.substring(0,p);
  }
  if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj];
  for (i=0; !foundObj && i < theDoc.forms.length; i++) 
    foundObj = theDoc.forms[i][theObj];
  for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) 
    foundObj = findObj(theObj,theDoc.layers[i].document);
  if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);
  
  return foundObj;
}

/*
* Gallery
*/

function Gallery()
{
	this.selected_num = null;
	this.imageCache_arr = new Array();
	this.video_arr = new Array();

	/*
	* @param	pages	Number
	* @param	tumbs	Boolean
	*/
	this.init = function(pages,thumbs)
	{
		this.pages_num = pages;
		this.thumbs_bool = thumbs;
		this.pager = findObj("gallery_pager");
		this.onPagerClick(1);
		if (this.thumbs_bool) this.onThumbClick(1);
	}
	
	/*
	* 
	* @param	num		Number
	* @param	video	String (url of video)
	*/
	this.addVideo = function(num,video)
	{
		this.video_arr[num] = video;
	}
	
	/*
	* Handles the click on page link an updates the pager.
	* @param	page	Number
	*/
	this.onPagerClick = function(page)
	{
		var newPager = 'Previous';
		if (page>1)
		{
			newPager = '<a href=\"javascript:gallery.onPagerClick(' + (page-1) + ');\">' + newPager + '</a>'
			
		}
		newPager += '&nbsp;&nbsp;. . .&nbsp;&nbsp;';
		var classPart = (this.thumbs_bool)? "gallery_thumbs_" : "gallery_media_";
		for (var i=1; i<=this.pages_num; i++)
		{
			if (i==page) {
				findObj(classPart + i).style.display = "block";
				newPager += '<span class=\"current\">' + i + '</span>';
			} else {
				findObj(classPart + i).style.display = "none";
				newPager += '<a href=\"javascript:gallery.onPagerClick(' + i + ');\">' + i + '</a>';
			}
			if (i<this.pages_num)
			{
				newPager += '&nbsp;&nbsp;';
			}
		}
		newPager += '&nbsp;&nbsp;. . .&nbsp;&nbsp;';
		if (page<this.pages_num)
		{
			newPager += '<a href=\"javascript:gallery.onPagerClick(' + (page+1) + ');\">Next</a>'
		} else {
			newPager += 'Next'
		}
		if (this.pages_num==1) newPager = '';
		if (this.pager!=null) this.pager.innerHTML = newPager;
		if (!this.thumbs_bool)
		{
			this.selected_num = page;
			this.showVideo(page);
		}
	}
	
	/*
	* Handler for thumbnail rollover event.
	* @param	thumb	Number
	*/
	this.onThumbOver = function(thumb)
	{
		if (this.selected_num!=null) findObj("gallery_media_" + this.selected_num).style.display = "none";
		findObj("gallery_media_" + thumb).style.display = "block";
	}
	
	// Handler for thumbnail rollout event.
	this.onThumbOut = function(thumb)
	{
		findObj("gallery_media_" + thumb).style.display = "none";
		if (this.selected_num!=null) findObj("gallery_media_" + this.selected_num).style.display = "block";
	}
	
	/*
	* Handler for thumbnail click event.
	* @param	thumb	Number of image
	* @param	video	String (url of video, optional)
	*/
	this.onThumbClick = function(thumb)
	{
		if (this.selected_num!=null) findObj("gallery_media_" + this.selected_num).style.display = "none";
		if (this.imageCache_arr[this.selected_num]!=undefined) findObj("gallery_media_" + this.selected_num).innerHTML = this.imageCache_arr[this.selected_num];
		this.selected_num = thumb;
		var selectedMedia = findObj("gallery_media_" + this.selected_num);
		findObj("gallery_media_" + this.selected_num).style.display = "block";
		if (this.video_arr[thumb]!=undefined)
		{
			this.imageCache_arr[thumb] = selectedMedia.innerHTML;
			this.showVideo(thumb);
		}
	}
	
	this.showVideo = function(num)
	{
		var video = this.video_arr[num];
		if (video!=undefined)
		{
			var contentPath = (String(window.location.hostname)=='')? String(document.location).substr(0,String(document.location).indexOf('projects')) : '';
			for (var i=0; i<document.images.length; i++)
			{
				if (document.images[i].id==('gallery_image_' + this.selected_num))
				{
					var selectedImage = document.images[i];
					break;
				}
			}
			var so = new SWFObject(contentPath + "fileadmin/basics/flvplayer.swf", "player", document.images[i].width, (Number(document.images[i].height)+20), "8", "#FFFFFF");
			so.addParam("allowfullscreen", false);
			so.addVariable("file", contentPath + video);
			so.addVariable("image", document.images[i].src);
			so.addVariable("showfsbutton", "false");
			so.addVariable("showicons", "false");
			so.addVariable("showdigits", "true");
			so.addVariable("volume", "80");
			so.write("gallery_image_container_" + this.selected_num);
		}
	}
}

var gallery = new Gallery();

/*
* Handling the switching between international texts.
*/
var langNames_obj = new Object();
langNames_obj.en = "English";
langNames_obj.de = "Deutsch";
langNames_obj.fr = "Fran&ccedil;ais";
var availLang_arr = new Array();

/*
* lng: String, choosen language like "en", "de", "fr"
* avl: optional String with available languages like "en_de_fr"
*/
function selectLang(lng,avl)
{
	if(avl!=undefined)
	{
		availLang_arr = avl.split("_");
	}
	var selector = '[';
	for (var i=0; i<availLang_arr.length; i++)
	{
		if (lng==availLang_arr[i]) {
			findObj('text_'+availLang_arr[i]).style.display = "block";
			findObj('header_'+availLang_arr[i]).style.display = "block";
			selector += '<span class=\"current\">' + langNames_obj[availLang_arr[i]] + '</span>';
		} else {
			findObj('text_'+availLang_arr[i]).style.display = "none";
			findObj('header_'+availLang_arr[i]).style.display = "none";
			selector += '<a href=\"javascript:selectLang(\'' + availLang_arr[i] + '\');\">' + langNames_obj[availLang_arr[i]] + '</a>';
		}
		if (i<availLang_arr.length-1)
		{
			selector += ' | ';
		}
	}
	selector += ']';
	findObj('text_selector').innerHTML = selector;
}