var HOME_SLIDESHOW_INTERVAL = 6000;
var slideshow = null;
var videoIsPlaying = false;


$(document).ready(function() {

	if ($.browser.msie) {
		$(window).resize(function() {
			$('body').css('padding-bottom', '1px');
			$('body').css('padding-bottom', '0px');
		});
	}

	$('div.colTeaser_termine_date a.colTeaser_termine_date_more_link').click(function() {
		$('div.colTeaser_termine_date_short').hide();
		$('div.colTeaser_termine_date_complete').show();
	});

	$('div.home_bildContainerWrapper a.btnLeft').click(function() {
		if (!$('#home_bildContainer').hasClass('moving')) {
			slideshowPrev();
		}
	});

	$('div.home_bildContainerWrapper a.btnRight').click(function() {
		if (!$('#home_bildContainer').hasClass('moving')) {
			slideshowNext();
		}
	});

	$('div.home_bildContainerWrapper').mouseenter(function() {
		$(this).addClass('mouseOver');
		clearSlideshow();
	});

	$('div.home_bildContainerWrapper').mouseleave(function() {
		$(this).removeClass('mouseOver');
		activateSlideshow();
	});

	$('div.colContent_ensembleuebersicht div.actor_thumbnail_container').mouseenter(function() {
		$(this).find('div.actor_thumbnail_tooltip_box').show();
	});

	$('div.colContent_ensembleuebersicht div.actor_thumbnail_container').mouseleave(function() {
		$(this).find('div.actor_thumbnail_tooltip_box').hide();
	});

	$('a.roles_data_more_link').click(function() {
		$('div.roles_data_more_complete').show();
		$('div.roles_data_more_short').hide();
		$(this).hide();
	});

	$('div.infoLayer').click(function(e) {
		e.stopPropagation();
	});

	$('a.stueck_metaTools_info').click(function(e) {
		e.stopPropagation();
	});

	$('div.colTeaser_home_twoCol_kalender_box div.standard_klein_kalender div.mini_kalender_tooltip_box').click(function(e) {
		e.stopPropagation();
	});

	$('div.colTeaser_home_twoCol_kalender_box div.standard_klein_kalender td a').click(function(e) {
		e.stopPropagation();
	});

	checkSlideshowPosition();
	activateSlideshow();

});


function activateSlideshow() {
    clearSlideshow();
    slideshow = window.setInterval('slideshowAutoNext();', HOME_SLIDESHOW_INTERVAL);
}

function clearSlideshow() {
    window.clearInterval(slideshow);
}

function slideshowAutoNext() {
    if (!videoIsPlaying && !$('div.home_bildContainerWrapper').hasClass('mouseOver') && !isRightEndOfSlideshow()) {
        slideshowNext();
    }
}

function slideshowNext() {
    if (!$('#home_bildContainer').hasClass('moving')) {
        $('#home_bildContainer').addClass('moving');
        hideContent(getActiveItemID())
        $('#home_bildContainer').animate({ marginLeft: '-=460px' }, 700, function() {
            checkSlideshowPosition();
            showContent(getActiveItemID())
            $('#home_bildContainer').removeClass('moving');
        });
    }
}

function slideshowPrev() {
    if (!$('#home_bildContainer').hasClass('moving')) {
        $('#home_bildContainer').addClass('moving');
        hideContent(getActiveItemID());
        $('#home_bildContainer').animate({ marginLeft: '+=460px' }, 700, function() {
            checkSlideshowPosition();
            showContent(getActiveItemID())
            $('#home_bildContainer').removeClass('moving');
        });
    }
}

function getActiveItemID() {
    var pos = parseInt($('#home_bildContainer').css('marginLeft'));
    var idx = (-1 * pos) / 460;
    return "homeBild_" + idx;
}

function hideContent(id) {
    $("#" + id + "_Content").removeClass('active');
    $("#" + id + "_Headline").removeClass('active');
}

function showContent(id) {
    $("#" + id + "_Content").addClass('active');
    $("#" + id + "_Headline").addClass('active');
}

function checkSlideshowPosition() {
    if (isLeftEndOfSlideshow())
        $('#home_bildContainer').css('marginLeft', (2 * 460 - parseInt($('#home_bildContainer').css('width'))) + 'px');
    else if (isRightEndOfSlideshow())
        $('#home_bildContainer').css('marginLeft', '-460px');
}

function isRightEndOfSlideshow() {
    if (parseInt($('#home_bildContainer').css('marginLeft')) + parseInt($('#home_bildContainer').css('width')) <= 460)
        return true;
    else
        return false;
}

function isLeftEndOfSlideshow() {
    if (parseInt($('#home_bildContainer').css('marginLeft')) >= 0)
        return true;
    else
        return false;
}

function openPopupLayerAndShowImage(popupHtmlID, imageID) {
    showGaleryImage(popupHtmlID, imageID);

    $('#' + popupHtmlID).css('top', (getYScrollPos() + 50) + 'px');
    $('#' + popupHtmlID).show();
    
    openPopupLayer(popupHtmlID);
}

function showGaleryImage(popupHtmlID, imageID) {
    $('div.lightbox_bildContainer_bild').removeClass('active');
    $('div.lightbox_bildContainer_bildUntertitel').removeClass('active');

    if (imageID == '') {
        $('#' + popupHtmlID + ' div.lightbox_bildContainer_bild:first').addClass('active');
        $('#' + popupHtmlID + ' div.lightbox_bildContainer_bildUntertitel:first').addClass('active');
    }
    else
        $('div.popupLayer_content div.' + popupHtmlID + '_Item' + imageID).addClass('active');
}

function moveToNextImage(popupHtmlID) {
    for (i in bGalArr) {
        if (bGalArr[i].id == popupHtmlID) {
            var currentImage = bGalArr[i].aktBildID;
            var newImage = '';
            for (j in bGalArr[i].bilder) {
                if (bGalArr[i].bilder[j] == currentImage) {
                    if (j < bGalArr[i].bilder.length - 1)
                        newImage = bGalArr[i].bilder[parseInt(j) + 1];
                    else
                        newImage = bGalArr[i].bilder[0];
                    break;
                }
            }
            if (newImage != '')
            {
                bGalArr[i].aktBildID = newImage;
                showGaleryImage(popupHtmlID, newImage);
            }
        }
    }
}

function moveToPreviousImage(popupHtmlID) {
    for (i in bGalArr) {
        if (bGalArr[i].id == popupHtmlID) {
            var currentImage = bGalArr[i].aktBildID;
            var newImage = '';
            for (j in bGalArr[i].bilder) {
                if (bGalArr[i].bilder[j] == currentImage) {
                    if (j > 0)
                        newImage = bGalArr[i].bilder[parseInt(j) - 1];
                    else
                        newImage = bGalArr[i].bilder[bGalArr[i].bilder.length - 1];
                    break;
                }
            }
            if (newImage != '') {
                bGalArr[i].aktBildID = newImage;
                showGaleryImage(popupHtmlID, newImage);
            }
        }
    }
}


function openPopupLayer(popupHtmlID) {
    $('div#site_overlay_scrollbugfix').show();
    $('div#site_overlay').show();
    $('div#site_overlay').attr('onclick', "closePopupLayerById('" + popupHtmlID + "'); return false;"); /***/
    $('div#site_overlay_scrollbugfix').attr('onclick', "closePopupLayerById('" + popupHtmlID + "'); return false;"); /***/
}

function closePopupLayerByIcon(obj) {
    closePopupLayer($(obj).closest('div.popupLayer'));
}

function closePopupLayerById(popupHtmlID) {
    closePopupLayer($('#' + popupHtmlID));
}

function closePopupLayer(obj) {
    $(obj).hide();
    $('div#site_overlay').hide();
    $('div#site_overlay_scrollbugfix').hide();
    $('div#site_overlay').attr('onclick', '');
    $('div#site_overlay_scrollbugfix').attr('onclick', '');
}

function getYScrollPos() {
    var yScrollPos = 0;
    if (window.pageYOffset) yScrollPos = window.pageYOffset;
    else if (document.documentElement.scrollTop) yScrollPos = document.documentElement.scrollTop;
    return parseInt(yScrollPos);
}


var bGalArr = new Array();

function BGal(bGalID, aktBildID, bilder) {
    this.id = bGalID;
    this.aktBildID = aktBildID;
    this.bilder = bilder;
}


function addToPressemappe(obj, UrlBase, TargetID, ImageID) {
    var id = ImageID;
    var idx = ImageID.indexOf('#');
    if (idx > 0) id = ImageID.substr(idx + 1).toUpperCase();
    $('#colContent_pressegalerie_bild_' + id).find('div.image_selected').html('<a href="#pressemappe"><img width="20" height="20" border="0" src="' + UrlBase + 'skins/schauspiel/images/pressebild_icon_checked.png" alt="" /></a>');
    $('#bilderPopup01_Item' + id + '_Pressemappe').addClass('lightbox_bildContainer_pressemappe_inPressemappe');
    ajaxPostBack(TargetID, ImageID);
}

function removeFromPressemappe(ImageID) {
    $('#colContent_pressegalerie_bild_' + ImageID.toUpperCase()).find('div.image_selected').html('');
    $('#bilderPopup01_Item' + ImageID.toUpperCase() + '_Pressemappe').removeClass('lightbox_bildContainer_pressemappe_inPressemappe');
}

function clearPressemappe() {
    $('div.colContent_pressegalerie_bild').find('div.image_selected').html('');
    $('a.lightbox_bildContainer_pressemappe').removeClass('lightbox_bildContainer_pressemappe_inPressemappe');
}

function checkPressemappeHasBeenSent() {
    if ($('div.markerPressemappeHasBeenSent').length > 0) clearPressemappe();
}

/* Schedule */

function ShowScheduleDay(obj, identifier) {
	var pos = $(obj).position();
	$('div.colTeaser_home_twoCol_kalender_box div.standard_klein_kalender div.mini_kalender_tooltip_box').hide();
	$('div.colTeaser_home_twoCol_kalender_box div.standard_klein_kalender div.' + identifier).css('left', pos.left - 80);
	$('div.colTeaser_home_twoCol_kalender_box div.standard_klein_kalender div.' + identifier).show();
	$('div.colTeaser_home_twoCol_kalender_box div.standard_klein_kalender div.' + identifier).css('top', pos.top - $('div.colTeaser_home_twoCol_kalender_box div.standard_klein_kalender div.' + identifier).height());

	$('html').click(function() {
		$('div.colTeaser_home_twoCol_kalender_box div.standard_klein_kalender div.' + identifier).hide();
		$('html').unbind('click');
	});
}

/* ClientCallbacks */

function decodeBase64(input) {
	var output = "";
	var chr1, chr2, chr3 = "";
	var enc1, enc2, enc3, enc4 = "";
	var i = 0;
	var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

	// remove all characters that are not A-Z, a-z, 0-9, +, /, or =
	var base64test = /[^A-Za-z0-9\+\/\=]/g;
	if (base64test.exec(input)) {
		alert("There were invalid base64 characters in the input text.\n" +
              "Valid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\n" +
	              "Expect errors in decoding.");
	}

	input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

	do {
		enc1 = keyStr.indexOf(input.charAt(i++));
		enc2 = keyStr.indexOf(input.charAt(i++));
		enc3 = keyStr.indexOf(input.charAt(i++));
		enc4 = keyStr.indexOf(input.charAt(i++));

		chr1 = (enc1 << 2) | (enc2 >> 4);
		chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
		chr3 = ((enc3 & 3) << 6) | enc4;

		output = output + String.fromCharCode(chr1);

		if (enc3 != 64) {
			output = output + String.fromCharCode(chr2);
		}
		if (enc4 != 64) {
			output = output + String.fromCharCode(chr3);
		}

		chr1 = chr2 = chr3 = "";
		enc1 = enc2 = enc3 = enc4 = "";

	} while (i < input.length);

	return unescape(output);
}

function utf8_decode(str_data) {
	// Converts a UTF-8 encoded string to ISO-8859-1
	var tmp_arr = [], i = 0, ac = 0, c1 = 0, c2 = 0, c3 = 0;

	str_data += '';

	while (i < str_data.length) {
		c1 = str_data.charCodeAt(i);
		if (c1 < 128) {
			tmp_arr[ac++] = String.fromCharCode(c1);
			i++;
		} else if (c1 > 191 && c1 < 224) {
			c2 = str_data.charCodeAt(i + 1);
			tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
			i += 2;
		} else {
			c2 = str_data.charCodeAt(i + 1); c3 = str_data.charCodeAt(i + 2);
			tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
			i += 3;
		}
	}
	return tmp_arr.join('');
}

function changeTagesspielplan(value) {
	var idx = value.indexOf('#');
	if (idx > 0) {
		var id = value.substr(0, idx);
		value = value.substr(idx + 1);
		idx = value.indexOf('$');
		if (idx >= 0) {
			var script = decodeBase64(value.substr(0, idx));
			var html = decodeBase64(value.substr(idx + 1));
			$('#scheduleCalender_' + id).html(html);
			eval(script);
		}
	}
}

/* InfoLayer */

function showInfoLayer(obj, layerHtmlId) {
	$('div.infoLayer').hide();
	$(obj).blur();
	$('div#' + layerHtmlId).show();
	$(obj).click(function(event) { event.stopPropagation(); });

	$('html').click(function() {
		$('div.infoLayer').hide();
		$('html').unbind('click');
	});
}

function closeInfoLayer(obj) {
	$('div.infoLayer').hide();
	$('html').unbind('click');
}

