(function($, window, undefined) {
    /*
     * Globaler Portalcache
     */
    $.portal = (function(win, portal, $) {
        var me = portal;
        if (!me.ua) {
            me.core         = 1.2;
            me.win          = $(win);
            me.doc          = $(document);
            me.body         = $('body');
            me.wrapper      = $('#wrapper');
            me.content      = $('#content');
            me.basePath     = $('base').attr('href');

            me.ua           = $.browser;
            me.isIE         = me.ua.msie;
            me.isIE6        = me.body.hasClass('ie6');
            me.doesPopunder = !( me.ua.mozilla && me.ua.version >= '2.0' ) && !me.ua.opera && !( me.isIE && win.performance ) && !me.ua.webkit;
        }
        return me;
    })( window, jQuery.portal = jQuery.portal || {}, jQuery );

    var SITENAMESPACE = {
        common : {
            init : function(){
                var p = $.portal;
                //Erkennung von Schriftglättung bei Bedarf
                //$.typeHelpers.insertClasses();
                //domready stuff fuer alle Seiten
                //Standardtooltips initialisieren
                if($("a.toolTipper, span.toolTipper, img.toolTipper", p.wrapper).length){
                    $("a.toolTipper, span.toolTipper, img.toolTipper", p.wrapper).toolTipper();
                }
                $('ul.mainNav li').navi();       
                
				$("a.youtubeThumb").click(function() {
					var youtubeUrl = $(this).attr('href').replace(new RegExp('watch\\?v=', 'i'), 'v/');
					$.fancybox({
						'padding' : 0,
						'autoScale' : false,
						'transitionIn'  : 'none',
						'transitionOut' : 'none',
						'titleShow' : false,
						'overlayColor' : '#000',
						'width' : 680,
						'height' : 495,
						'href' : youtubeUrl + '?autoplay=1&autohide=1&rel=0&modestbranding=1&version=3&controls=0',
						'type' : 'swf',
						'swf' : {
							'wmode' : 'transparent',
							'allowfullscreen' : 'true'
						}
					});
					return false;
				});

				$("a.imageThumb").click(function() {
					$.fancybox({
						'padding' : 0,
						'autoScale' : false,
						'transitionIn'  : 'none',
						'transitionOut' : 'none',
						'overlayColor' : '#000',
						'href' : $(this).attr('href'),
						'titleShow' : false
					});
					return false;
				});
            },
            finalize : function() {
                log('common finalize');
            }
        },
        ie6 : {
            init : function(){
                //Formularinputklassen generieren für besseres Styling für Demo,
                //sonst wahrscheinlich mit festen Klassen sinnvoller
                $('input').addClass(function(){
                    return this.type;
                });

            //pngfix für IE6, falls gewünscht
            //DD_belatedPNG.fix('.png');
            }
        }
    };

    //prueft ob Objekt und dazugehoerige Funktion existieren und fuehrt sie erst dann aus
    var UTIL = {
 
        fire : function(func,funcname){
 
            var namespace = SITENAMESPACE;
 
            funcname = (funcname === undefined) ? 'init' : funcname;
            if (func !== '' && namespace[func] && typeof namespace[func][funcname] === 'function'){
                namespace[func][funcname]();
            }
 
        },
 
        loadEvents : function(){
 
            var bodyId = document.body.id;
 
            // hit up common first.
            UTIL.fire('common');
 
            // do all the classes too.
            $.each(document.body.className.split(/\s+/),function(i,classnm){
                UTIL.fire(classnm);
                UTIL.fire(classnm,bodyId);
            });
 
            UTIL.fire('common','finalize');
 
        }
 
    };
 
    // kick it all off here
    $(UTIL.loadEvents);

})(jQuery, window, undefined);
