if( ! window.console) {
	window.console = {};
}
if(! window.console.info){
	window.console.info = function() {};
}

Effect.FadeOut = function(element) {
  element = $(element);
  var oldOpacity = element.getInlineOpacity();
  var options = Object.extend({
    from: element.getOpacity() || 1.0,
    to:   0.0,
    afterFinishInternal: function(effect) { 
      if (effect.options.to!=0) return;
      if(element.parentNode) 
    	  element.remove();
    }
  }, arguments[1] || { });
  return new Effect.Opacity(element,options);
};

Element.addMethods({
	fadeOut: function(element, options){
    	element = $(element);
    	Effect.FadeOut(element, options);
    	return element;
  	}
});


document.observe("dom:loaded", function() {
    
    // Sprachauswahl ausfahren
    if ($('language-chooser')) {
        $('language-chooser').observe('click', openLanguage);        
    }

    function openLanguage() {
        new Effect.Move($('language-select'), {
           y: 0,
           duration: 0.5,
           mode: 'absolute',
           transition: Effect.Transitions.sinoidal 
        });
    }
    
    var time_hint_buttons = $$('img.time_span');
    time_hint_buttons.invoke('observe', 'mouseover', function() {
        this.next().setStyle({display: 'block'});
    });
    time_hint_buttons.invoke('observe', 'mouseout', function() {
        this.next().setStyle({display: 'none'});
    });
    
    // Klick auf Thumbnails
    $$('table.sortable').each(function(thisTbl) {ts_makeSortable(thisTbl)});
    var media_buttons = $$('div.media_gallery a');
    
    function set_mediabuttons_click_handler() {
        media_buttons.invoke('stopObserving', 'click', show_detail_media);
        media_buttons.invoke('observe', 'click', show_detail_media);
    }
    
    function remove_mediabuttons_click_handler() {
        media_buttons.invoke('stopObserving', 'click', show_detail_media);
        media_buttons.invoke('observe', 'click', function(event) {event.stop()});
    }
    
    function show_detail_media(event) {
        event.stop();
    
        if(this.hasClassName("inactive")) {
            return;
        }
    
        remove_mediabuttons_click_handler();
        // this.stopObserving('click');
        var element = event.element();
        
        // Aktive Thumbnails deaktivieren
        var media_gallery_div = element.up("div.media_gallery");
        var gallery_size = media_gallery_div.up("div");
        
        if(gallery_size.hasClassName("media_gallery_large")) {
            var max_thumbs = 7;
            var visible_thumbs_width = 567;
            var flv_width = 675;
            var flv_height = 450;

        } else {
            var max_thumbs = 9;
            var visible_thumbs_width = 427;
            var flv_width = 400;
            var flv_height = 300;
        }
        
        

        var media_active = media_gallery_div.select("a.active").first();
        var media_as = media_gallery_div.select("a.thumb");

        // Wieviele Thumnails?
        var thumb_length = media_as.length;

        var pos_active = media_as.indexOf(media_active);
        var link = element.up("a");
        var direction = link.hasClassName("slide_forw") ? "forw" : "back";
        // Welche Aktion ausloesen?
        if (link.hasClassName("slide")) {
            // Klick auf Scroller
            scroll_thumbs(media_gallery_div, direction, thumb_length, max_thumbs, visible_thumbs_width);
        } else if (link.hasClassName("nav")) {
            // Klick auf Pfeile
            if (link.getAttribute('id') == "link_forw") {
                var item = media_as[pos_active + 1];
                if (item) {
                    var pos = pos_active + 1;
                    // Scrollen?
                    if (pos % max_thumbs == 0 && pos != thumb_length) {
                        scroll_thumbs(media_gallery_div,"forw", thumb_length, max_thumbs, visible_thumbs_width);
                    }
                }
            } else {

                var item = media_as[pos_active - 1];

                if (item) {

                    var pos = pos_active - 1;
                    // Scrollen?
                    if (pos % (max_thumbs - 1) == 0 && pos != 0) {
                        scroll_thumbs(media_gallery_div,"back", thumb_length, max_thumbs, visible_thumbs_width);
                    }
                }
            }
        } else {
            // Klick auf Thumbnails
            var item = link;
        }

        if (item) {
            if (media_active) {
                // Aktive Thumbnails deaktivieren
                media_active.removeClassName("active");
            }
            display_media_detail(media_gallery_div, item, thumb_length, media_as, flv_width, flv_height);
        }

    }

    function scroll_thumbs(media_gallery_div, direction, thumb_length, max_thumbs, visible_thumbs_width) {

        var container = media_gallery_div.down("div.thumbs");
        var block_width = container.down("div.thumb_block").getWidth();
    
        var _l = container.getStyle("left");
        

        if(_l) {
            var left = parseFloat(_l.split("p")[0]);
        } else {
            var left = 0;
        }

        var left = parseFloat(media_gallery_div.down('div.thumbs').getStyle("left").split("p")[0]);
        // Laenge sichtbare Thubnails
        var x_lenght = visible_thumbs_width;

        var cnt_thumbs = media_gallery_div.select('div.thumbs img').length
        // Laenge Thubnails gesamt
        // console.info("anzahl", Math.ceil( cnt_thumbs  / max_thumbs));
        var max_length = visible_thumbs_width * Math.ceil( cnt_thumbs  / max_thumbs);
        var x_pos = -x_lenght;
        
        if (direction == "back") {
            var x_pos = x_lenght;
            left += x_lenght;
        } else {
            left -= x_lenght;
        }
        
        new Effect.Move(container, {
                    x : x_pos,
                    y : 0,
                    mode : 'relative',
                    afterFinish: set_mediabuttons_click_handler
                });
                

        if (max_length + left  <= block_width) {
            change_slider_status(media_gallery_div, "forw", true);
        } else {
            change_slider_status(media_gallery_div, "forw", false);
        }

        if (left < 0) {
            change_slider_status(media_gallery_div, "back", false);
        } else {
            change_slider_status(media_gallery_div, "back", true);
        }

    }

    function change_slider_status(media_gallery_div, direction,off) {
        
        if (direction == "forw") {
            var slider = media_gallery_div.down("div.forw_slider");
            if (off) {
                slider.down("a").addClassName("inactive");
                slider.down('img').src = 'fileadmin/graphics/forward_off.png';
            } else {
                var icon_src = slider.down('img').getAttribute('name');
                slider.down('img').src = icon_src;
                slider.down("a").removeClassName("inactive");
            }

        } else {
            var slider = media_gallery_div.down("div.back_slider");
            if (off) {
                slider.down('img').src = 'fileadmin/graphics/back_off.png';
                slider.down("a").addClassName("inactive");
            } else {
                var icon_src = slider.down('img').getAttribute('name');
                slider.down('img').src = icon_src;
                slider.down("a").removeClassName("inactive");
            }

        }

    }

    function display_media_detail(media_gallery_div, item,thumb_length, media_as, flv_width, flv_height) {

        item.addClassName("active");
        
        var dur = 0.5;

        var pos_active = media_as.indexOf(item);
        change_button_status(media_gallery_div, item, pos_active, thumb_length);			
        
        var source = item.getAttribute('name');
        var title = item.getAttribute('title');
        var description = item.down('img').getAttribute('alt');

        var media_elem = media_gallery_div.down('div.media');
        media_elem.setStyle({overflow:'hidden'});
                
        var images = media_elem.select("img");
        var old_thing = images[0];
        images.slice(1).invoke("remove");
        
        var old_thing = media_elem.down("img"); // || media_elem.down("embed") || media_elem.down("object");
        if (source.indexOf(".flv") > 0 || source.indexOf(".f4v") > 0 ) {
            var media_elem_id = media_elem.identify();
            var so = new SWFObject("fileadmin/flash/flvPlayerGallery.swf?rnd="+ Math.random(), "spot", flv_width,flv_height, "8", "#fff");
            so.addParam("quality", "high");
            so.addVariable("fs", "1");
            so.addVariable("flvToPlay", "../../" + source);
            so.addVariable("autoplay", "true");
            so.write(media_elem_id);
            
           set_mediabuttons_click_handler();
        
        } else {
            
            var img = '<img src="' + source + '" alt="'+ description + '" title="' + title+ '" style="display:none;"/>';  // style="top:0px;position:relative;left:440px;"
            if(old_thing) {
                old_thing.absolutize();

                //media_elem.insert(img,{before:$("secondspan")});
                media_elem.down("span.secondspan").insert({before:img});
                img = media_elem.down("img", 1);
                

                old_thing.fadeOut({duration: dur});
                img.appear({duration: dur, afterFinish: set_mediabuttons_click_handler});
            
            }
            
            else  {
                media_elem.update("<span>&nbsp;</span>" + img+ "<span class='secondspan'>&nbsp;</span>");
                media_elem.down("img").appear({duration: dur, afterFinish: set_mediabuttons_click_handler});;
            }
        }

        media_gallery_div.down('.media_title').update(title);
        media_gallery_div.down('.media_description').update(description);
    }

    function change_button_status(media_gallery_div, item, pos_active, thumb_length) {
        var forward = media_gallery_div.down('div.forw');
        var backward = media_gallery_div.down('div.back');
        
        if (pos_active == thumb_length - 1) {
            forward.down('img').src = 'fileadmin/graphics/forward_off.png';
            forward.down("a").addClassName("inactive");
        } else {
            var icon_src = forward.down('img').getAttribute('name');
            forward.down('img').src = icon_src;
            forward.down("a").removeClassName("inactive");
        }

        if (pos_active < 1) {
            backward.down('img').src = 'fileadmin/graphics/back_off.png';
            backward.down("a").addClassName("inactive");
        } else {
            var icon_src = backward.down('img').getAttribute('name');
            backward.down('img').src = icon_src;
            backward.down("a").removeClassName("inactive");
        }
    }
    
    
    
    
     set_mediabuttons_click_handler();
}); // document.observe
                
                
                
                
Event.observe(window, 'load', function() {                 
    
                
    if(window._kono_header_xml && window._kono_pid && $('flashcontent')) {
        var so = new SWFObject("fileadmin/header/main.swf?rnd=" + Math.random(), "spot", "914", "300", "8", "#fff");
        so.addParam("quality","high");
        so.addVariable("fs", "1");
        so.addVariable("stageWidth", "914");
        so.addVariable("stageHeight", "300");
        so.addVariable("world_XML",  window._kono_header_xml);
        so.addVariable("page_ID", window._kono_pid);	
        so.addVariable("language",  window._kono_language);
        so.addVariable("preload_message" ,window._kono_preload_message);
        so.write("flashcontent");
        if(!( $("flashcontent").down('embed') || $("flashcontent").down('object'))) {
             $("flashcontent").update("<img src='"+window._kono_fallback_image+"' alt ='"+window._kono_fallback_image_alt+"'/>");
             $('speaker').up("a").remove();
        }
    }
    
    /*
    if(document.cookie) {
        var pos = document.cookie.indexOf("sound_status=");
        if(pos > -1) {
            pos += 13;
            var ende = document.cookie.indexOf(";", pos);
            if(ende == -1) {
                ende = document.cookie.length;
            }
            var sound_status = document.cookie.substring(pos, ende);
           if(sound_status == 'off') {
                toggleSound();
           }
        }
    }
    */
    //Bilder Preloaden
    window.preload_images = $$("div.thumbs img").map(function(img){
        var i = new Image();
        i.src = img.up("a").name;
        return i;
    });
    //console.info(images);
});   //              Event.observe   
                
                

var SORT_COLUMN_INDEX;

function ts_makeSortable(table) {
	if (table.rows && table.rows.length > 0) {
		var firstRow = table.rows[0];
	}
	if (!firstRow) return;

	// We have a first row: assume it's the header, and make its contents clickable links
	for (var i=0;i<firstRow.cells.length;i++) {
		var cell = firstRow.cells[i];
		var txt = ts_getInnerText(cell);
		cell.innerHTML = '<a href="#" class="sortheader" onclick="ts_resortTable(this);return false;">'+txt+'<span class="sortarrow"></span></a>';
	}
}

function ts_getInnerText(el) {
	if (typeof el == "string") return el;
	if (typeof el == "undefined") { return el };
	if (el.innerText) return el.innerText;	//Not needed but it is faster
	var str = "";

	var cs = el.childNodes;
	var l = cs.length;
	for (var i = 0; i < l; i++) {
		switch (cs[i].nodeType) {
			case 1: //ELEMENT_NODE
			str += ts_getInnerText(cs[i]);
			break;
			case 3:	//TEXT_NODE
			str += cs[i].nodeValue;
			break;
		}
	}
	return str;
}

function ts_resortTable(lnk) {
	// get the span
	var span;
	for (var ci=0;ci<lnk.childNodes.length;ci++) {
		if (lnk.childNodes[ci].tagName && lnk.childNodes[ci].tagName.toLowerCase() == 'span') span = lnk.childNodes[ci];
	}
	var spantext = ts_getInnerText(span);
	var td = lnk.parentNode;
	var column = td.cellIndex;
	var table = getParent(td,'TABLE');

	// Work out a type for the column
	if (table.rows.length <= 1) return;
	var itm = ts_getInnerText(table.rows[1].cells[column]);
	sortfn = ts_sort_caseinsensitive;
	if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d\d\d$/)) sortfn = ts_sort_date;
	else if (itm.match(/^\d\d[\/.]\d\d[\/.]\d\d\d\d$/)) sortfn = ts_sort_date;
	else if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d$/)) sortfn = ts_sort_date;
	else if (itm.match(/^[£$]/)) sortfn = ts_sort_currency;
	else if (itm.match(/^[\d\.]+$/)) sortfn = ts_sort_numeric;
	SORT_COLUMN_INDEX = column;
	var firstRow = new Array();
	var newRows = new Array();
	for (i=0;i<table.rows[0].length;i++) { firstRow[i] = table.rows[0][i]; }
	for (j=1;j<table.rows.length;j++) { newRows[j-1] = table.rows[j]; }
	newRows.sort(sortfn);
	// Delete any other arrows there may be showing
	var allspans = document.getElementsByTagName("span");
	for (var ci=0;ci<allspans.length;ci++) {
		if (allspans[ci].className == 'sortarrow') {
			if (getParent(allspans[ci],"table") == getParent(lnk,"table")) { // in the same table as us?
				allspans[ci].innerHTML = '';
				$(allspans[ci]).up("a").removeClassName("active");
			}
		}
	}
	
	if (span.getAttribute("sortdir") == 'down') {
		ARROW = '';
		newRows.reverse();
		span.setAttribute('sortdir','up');
		$(span).up("a").addClassName("active");
	} else {
		ARROW = '';
		span.setAttribute('sortdir','down');
		$(span).up("a").addClassName("active");
	}

	// We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones
	// don't do sortbottom rows
	for (i=0;i<newRows.length;i++) { if (!newRows[i].className || (newRows[i].className && (newRows[i].className.indexOf('sortbottom') == -1))) table.tBodies[0].appendChild(newRows[i]);}
	// do sortbottom rows only
	for (i=0;i<newRows.length;i++) { if (newRows[i].className && (newRows[i].className.indexOf('sortbottom') != -1)) table.tBodies[0].appendChild(newRows[i]);}

	

	span.innerHTML = ARROW;

	var rows =  table.getElementsByTagName("tr");
	p = 0;
	for(var n = 1; n < rows.length; n++) {
		p = 1 - p;
		if(p==0) {
			rows[n].className= "even";
		} else {
			rows[n].className= "odd";
		}
	}
}

function getParent(el, pTagName) {
	if (el == null) return null;
	else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase())	// Gecko bug, supposed to be uppercase
	return el;
	else
	return getParent(el.parentNode, pTagName);
}
function ts_sort_date(a,b) {
	// y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX
	aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]);
	bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]);
	if (aa.length == 10) {
		dt1 = aa.substr(6,4)+aa.substr(3,2)+aa.substr(0,2);
	} else {
		yr = aa.substr(6,2);
		if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; }
		dt1 = yr+aa.substr(3,2)+aa.substr(0,2);
	}
	if (bb.length == 10) {
		dt2 = bb.substr(6,4)+bb.substr(3,2)+bb.substr(0,2);
	} else {
		yr = bb.substr(6,2);
		if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; }
		dt2 = yr+bb.substr(3,2)+bb.substr(0,2);
	}
	if (dt1==dt2) return 0;
	if (dt1<dt2) return -1;
	return 1;
}

function ts_sort_currency(a,b) {
	aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');
	bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');
	return parseFloat(aa) - parseFloat(bb);
}

function ts_sort_numeric(a,b) {
	aa = parseFloat(ts_getInnerText(a.cells[SORT_COLUMN_INDEX]));
	if (isNaN(aa)) aa = 0;
	bb = parseFloat(ts_getInnerText(b.cells[SORT_COLUMN_INDEX]));
	if (isNaN(bb)) bb = 0;
	return aa-bb;
}

function ts_sort_caseinsensitive(a,b) {
	aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).toLowerCase();
	bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).toLowerCase();
	if (aa==bb) return 0;
	if (aa<bb) return -1;
	return 1;
}

function ts_sort_default(a,b) {
	aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]);
	bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]);
	if (aa==bb) return 0;
	if (aa<bb) return -1;
	return 1;
}  




//Soundsteuerung Zoo-Header
function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
    } else {
        return document[movieName];
    }
    }
    
    var sound_status = true;
    function toggleSound() {
        if (sound_status == true) {
            sound_status = false;
            thisMovie("spot").toggleSound(sound_status);
            $("speaker").src = "/fileadmin/graphics/icons/speaker_off.png";
        } else{
            sound_status = true;
            thisMovie("spot").toggleSound(sound_status);
            $("speaker").src = "/fileadmin/graphics/icons/speaker_on.png";
        }
    }
    
    function updateSoundButton(value) {
        if (value == "true") {
            sound_status = true;
            $("speaker").src = "/fileadmin/graphics/icons/speaker_on.png";
        } else {
            sound_status = false;
            $("speaker").src = "/fileadmin/graphics/icons/speaker_off.png";
        }
    }

/*function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
    } else {
        return document[movieName];
    }
}

var sound_status = true;
function toggleSound() {
  if(thisMovie("spot")) {
        if (sound_status) {
            sound_status = false;
            $("speaker").src = "fileadmin/graphics/icons/speaker_off.png";
            document.cookie = 'sound_status=off; expires='+new Date(new Date().getTime() + 19200000).toGMTString()+'; path=/'; 
        } else{
            sound_status = true;
            $("speaker").src = "fileadmin/graphics/icons/speaker_on.png";
            document.cookie = 'sound_status=on; expires='+new Date(new Date().getTime() + 19200000).toGMTString()+'; path=/'; 
        }
        thisMovie("spot").toggleSound(sound_status);
    }
}
*/              

