/**
 * @author Marco Süß
 */
var VideoPlayer = function(config) {
	var self = this;

    self.swfId = 'playerSwf';
    self.swfContainerId = 'player';

	Object.extend(self, config);

	self.toggleErrorMsg = function(dontDisplayFlashError) {
		if ($('no_js')) $('no_js').toggle();

        if (dontDisplayFlashError) return;
		if ($('no_flash')) $('no_flash').toggle();
	}

	self.insertPlayer = function() {
		self.player = new SWFObject("/static/jscripts/player/mediaplayer.swf", self.swfId, "704", "392", "8");

		self.player.addParam('bgcolor', self.bgColor ? self.bgColor : '#ffffff');
		self.player.addParam('wmode', 'window');
		self.player.addVariable("file", self.video);
        self.player.addVariable("image", self.image);
		//self.player.addVariable("backcolor", "0xffffff");
		//self.player.addVariable("frontcolor", "0x000000");
		//self.player.addVariable("lightcolor", "0xCF2D3E");
		self.player.addVariable("width", "704");
		self.player.addVariable("height", "392");
		self.player.addVariable("rotatetime", "1");
		self.player.addVariable("shuffle", "false");
						//window.setTimeout(function(){alert(VideoPlayer.self.swf)},1000);
		//self.player.addVariable('screencolor', '0xCF2D3E');
		//if( self.autoStart ){
				self.player.addVariable("autostart", "true")
		//} else{
				//self.player.addVariable("autostart", "false");
		//}
		self.player.addVariable('overstretch', 'true');
		if(self.repeat) self.player.addVariable('repeat', self.repeat);
		self.player.addVariable('enablejs', 'true');
    self.player.addVariable('usefullscreen', 'false');
		self.player.write(self.swfContainerId);

		self.swf = $(self.swfId);

		//self.swf.sendEvent("stop");
		//if( self.autoStart ){
		//	alert("11")
		//	window.setTimeout(function(){self.swf.sendEvent("play")},1000)
		//}

	}

    /* Shall we really display the Player or just disable
     * those stupid errormsgs?
     */
    if (self.doRenderPlayer) {
        self.toggleErrorMsg();
        self.insertPlayer(false);
    }
    else {
        self.toggleErrorMsg(true);
    }
}

function displayInformationInPlayer(evt) {
    console.log(evt);
    evt.stop();
    $('player').addClassName('throbber');
    var inner, name, player;
    if(evt.element().tagName == 'EM' || evt.element().tagName == 'I') {
        inner = evt.element().parentNode.innerHTML;
    }
    else {
        inner = evt.element().innerHTML;
    }
    name = inner.match(/^([^<]*)/);
    //console.log(name[1].trim());
    name = name[1].trim().replaceUmlauts().removeEntities().onlyWord().dc();
    //thePlayer.innerHTML = '<p>' + name + '</p>';
    updatePlayer(name);
}

function updatePlayer(name) {
    var url = '/person/' + name;
    var thePlayer = $('player');
    var playerWrapper = $$('#player div')[0];
    thePlayer.removeClassName('alternate');
    playerWrapper.update();
    thePlayer.scrollToSmooth();
    playerWrapper.className = '';
    playerWrapper.addClassName('wrapper');
    playerWrapper.addClassName('kuenstler');
    playerWrapper.addClassName(name);
    new Ajax.Updater(playerWrapper, url, {
        onComplete: function(xhr) {
            $$('#player a.edit').each(function(el){
                var href = new String(el.href);
                el.href = '#';
                Event.observe(el, 'click', function(e){
                    e.stop();
                    thePlayer.morph('height: 435px');
                    i = new Element('iframe', { src: href + '?htmlwrap=1', id: "editIframe" });
                    playerWrapper.update(i);
                    playerWrapper.className = 'editor';
                    Event.observe(i, 'load', function(loade){
                        i.stopObserving('load');
                        loade.stop();
                        var iframeDocument;
                		if (i.contentDocument) {
                			iframeDocument = i.contentDocument;
                		} else if (i.contentWindow) {
                			iframeDocument = i.contentWindow.document;
                		} else {
                			iframeDocument = window.frames[i.id].document;
                		}
                        var submitButton = iframeDocument.getElementById('editorSubmitButton');
                        Event.observe(submitButton, 'click', function(sclicke){
                            Event.observe(i, 'load', function(afterSaveLoadE){
                                afterSaveLoadE.stop();
                                thePlayer.morph('height: 392px');
                                updatePlayer(name);
                            });
                            i.hide();
                        });
                    });
                });
            });
            /*Event.observe(playerWrapper, 'mouseover', function(evt){
                evt.stop();
                //if( evt.currentTarget != evt.target ) return;
                if (thePlayer.hasClassName('alternate')) {
                    thePlayer.removeClassName('alternate');
                }
                else {
                    thePlayer.addClassName('alternate');
                }
                console.log('alternate: '+name);
               //thePlayer.toggleClassName('alternate');
            });*/
        }
    });
}

function replaceHeadlinesSifr(){
	sIFR.replaceElement(named({sSelector:"h1",sBrowser:"all",
								sFlashSrc:[{version:8,src:"/static/jscripts/sifr/sifr_vendetta-v8.swf"},
										   {version:6,src:"/static/jscripts/sifr/sifr_vendetta.swf"}
								],
								sFlashVars:"offsetLeft=-2",
								sWmode:"transparent"}));

if (!window.console || !console.firebug) {
    var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
    "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];

    window.console = {};
    for (var i = 0; i < names.length; ++i)
        window.console[names[i]] = function() {}
}
}

