var Globals = Globals || {};

// Bildervergrößerung laden
//-------------------------------------------------------
Slimbox.scanPage = function() {
    
    Globals.popupImages = $$('div.image, div.image-and-caption, div.picbox, div.tpl_member');
    var temp = $$();
    
    Globals.popupImages.each(function(img){
        var captionEl1 = img.getElement('div.caption');
        var captionEl = !!captionEl1 ? captionEl1.getElement('div.template-verylow, div.caption, div.template-low') : false;
		if(captionEl == null && !!captionEl1) captionEl = captionEl1;
        var imgEl = img.getElement('div.template-img');
        if(!!captionEl && captionEl.get('text').trim() == '')
            captionEl.destroy();
        if(!!imgEl && !!imgEl.getElement('img[data-popup]')) {
            imgEl.addClass('link');
            if(!!captionEl && !!captionEl.addClass){
                captionEl.addClass('link');
                $$(imgEl, captionEl).addEvents({
                    mouseenter: function(){
                        captionEl.addClass('over');
                    },
                    mouseleave: function(){
                        captionEl.removeClass('over');
                    }
                });
                temp.push(img);
            }
            else
                temp.push(img);
            
            img.getElements('div').setStyle('cursor', 'inherit');
            
            if(Browser.firefox)
                img.setStyle('cursor', '-moz-zoom-in');
            else if(Browser.safari || Browser.chrome)
                img.setStyle('cursor', '-moz-webkit-in');
            else
                img.setStyle('cursor', 'url(\'../grafiken/lupe.cur\'), pointer');
        }
    });
    Globals.popupImages = temp;
    
    Globals.popupImages.slimbox({overlayOpacity: 0.55, counterText: 'Bild {x} von {y}'}, function(img) {
        var captionEl1 = img.getElement('div.caption');
        var captionEl = !!captionEl1 ? captionEl1.getElement('div.template-verylow, div.caption, div.template-low') : false;
		if(captionEl == null && !!captionEl1) captionEl = captionEl1;
        var caption = !!captionEl ? captionEl.get('text') : '&#160;';
        var imgEl = img.getElement('div.template-img');
        var imgSrc = '';
        if(!!imgEl && !!imgEl.getElement('img[data-popup]')) {
            imgSrc = imgEl.getElement('img[data-popup]').get('data-popup');
        }
        return [
            imgSrc,
            caption
        ];
    });
};

window.addEvent('domready', Slimbox.scanPage);
//-------------------------------------------------------



// FLV-Player laden
//-------------------------------------------------------
FlvPlayer = {};
FlvPlayer.scanPage = function() {

    // IE6 Layout fix
    if(Browser.ie6){
        $$('div.caption-and-video').setStyles({
            width: 675,
            overflow: 'hidden'
        });
        $$('div.caption-and-video div.caption').setStyle('margin-left', 15);
    }
    
    var swf_file = 'swf/FLVPlayer.swf';
                
    if(Browser.Plugins.Flash.version < 9)
    {
        swf_file = 'swf/expressInstall.swf';
    }
    
    videos = $$('div.template-video span');
    
    videos.each(function(span){
        
        var flv = span.get('rel');
        var container = span.getParent();
        
        if (Browser.Plugins.Flash.version < 8) {
            container.empty().setStyles({
                'width': 472,
                'height': 288,
                'background': '#423731',
                'color': '#fff',
                'text-align': 'center',
                'line-height': 20
            }).set('html', 'Um das Video anzusehen, müssen Sie das Flash Player Plugin installiert haben!');
            return;
        }
        
        container.empty().setStyles({
            'width': 472,
            'height': 288,
            'background': '#423731'
        });
        
        new Swiff(swf_file, {
            'container': container,
            'width': 472,
            'height': 288,
            'params': {
                'bgcolor': '#69ba17',
                'allowFullScreen': 'true'
            },
            'vars': {
                'src': flv
            }
        });
    });
};
window.addEvent('domready', FlvPlayer.scanPage);
//-------------------------------------------------------

// Suche Highlighter
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
    // the highlightStartTag and highlightEndTag parameters are optional
    if ((!highlightStartTag) || (!highlightEndTag)) {

        highlightStartTag = "<font style='color:#FFFFFF; background-color:#DA001A;'>";
        highlightEndTag = "</font>";
    }

    var newText = "";
    var i = -1;
    var lcSearchTerm = searchTerm.toLowerCase();
    var lcBodyText = bodyText.toLowerCase();

    while (bodyText.length > 0) {
        i = lcBodyText.indexOf(lcSearchTerm, i+1);
        if (i < 0) {
            newText += bodyText;
            bodyText = "";
        } else {
            // skip anything inside an HTML tag
            if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
                // skip anything inside a <script> block
                if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<script", i)) {
                newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
                    bodyText = bodyText.substr(i + searchTerm.length);
                    lcBodyText = bodyText.toLowerCase();
                    i = -1;
                }
            }
        }
    }

    return newText;
}

function highlightSearchTerms(searchText, contentArea, highlightStartTag, highlightEndTag)
{
    searchText = decodeURIComponent(searchText);
    var matchGroups = searchText.match(/"([^"]+)"/gi);

    if (matchGroups.length > 0)
    {
        var searchArray = new Array(matchGroups.length);
        for (var i = 0; i < matchGroups.length; i++)
        {
            searchArray[i] = matchGroups[i].replace(/"/gi, "").replace(/\+/gi, " ");
        }

        if (contentArea == undefined) {
            //alert("Bereich exisitiert nicht.");
            return false;
        }

        var newText = contentArea.innerHTML;

        for (var i = 0; i < searchArray.length; i++)
        {
            newText = doHighlight(newText, searchArray[i], highlightStartTag, highlightEndTag);
        }

        contentArea.innerHTML = newText;
        return true;
    }
    else
    {
        return false;
    }
}

function $get(key, url) {
    if(arguments.length < 2) url = location.href;
    if(arguments.length > 0 && key != ""){
        if(key == "#"){
            var regex = new RegExp("[#]([^$]*)");
        } else if(key == "?"){
            var regex = new RegExp("[?]([^#$]*)");
        } else {
            var regex = new RegExp("[?&]"+key+"=([^&#]*)");
        }
        var results = regex.exec(url);
        return (results == null )? "" : results[1];
    } else {
        url = url.split("?");
        var results = {};
        if(url.length > 1){
            url = url[1].split("#");
            if(url.length > 1) results["hash"] = url[1];
            url[0].split("&").each(function(item,index){
                item = item.split("=");
                results[item[0]] = item[1];
            });
        }
        return results;
    }
}

window.addEvent('domready', function() {
    $$('.caption').each(function(item) {
		var captionText = item.innerHTML.replace(/^[ \t]+/, "");
        if(captionText == "" || captionText == "Bildunterschrift")
            item.setStyle('display', 'none');
    });
	
	$(document.body).getElements('img').each(function(item) {
		if(item.get('src').match(/placeholder/)) {
			item.set('style', 'display:none');
		}
	})

    if (location.href.search(/\/suche.php/) === -1)
    {
        var getVariable = $get();
        if (getVariable.q != undefined) highlightSearchTerms(getVariable.q, $('content'));
    }
	
	// fix headline at second position
	var hasHeaderPic = false;
	$('content').getElements('.subtemplate').each(function(item, index) {
		if(index == 0 && item.hasClass('tpl_pic')) {
			hasHeaderPic = true;
		}
		else if(hasHeaderPic && index == 1 && item.hasClass('tpl_headline')) {
			item.setStyle('margin-top', '20px');
			return true;
		}
		else if(index > 1) return true;
	});
	
});
