kuiJw = {
    init:function(options){
        if (options.id) {
        
        var playerWidth = $(options.id).getWidth(), playerHeight = options.height || kui.player.maxH;
        var jwParams = {
            flashplayer: "/images/flash/player.v5.swf",
            height: parseInt(playerHeight,10), 
            width: parseInt(playerWidth,10),
            "logo.file":"/images/pixel.png",
            "logo.prefix":"",
            align:options.align||'left',
            events: {
                onPlaylistItem:function(){
                    var item = this.getPlaylistItem();                    
                    kuiJw.track({
                        event:'load',
                        lnk_id:this.config.lnk_id||null,
                        mod_id:this.config.mod_id||null,
                        media_id:item.media_id||this.config.media_id||null,
                        duration:this.getPosition(),
                        total:this.getDuration()
                    });
                }, 
                onPlay:function(){ 
                    if (this.getDuration()>0) {
                        var item = this.getPlaylistItem();                    
                        kuiJw.track({
                            event:'play',
                            lnk_id:this.config.lnk_id||null,
                            mod_id:this.config.mod_id||null,
                            media_id:item.media_id||this.config.media_id||null,
                            duration:this.getPosition(),
                            total:this.getDuration()
                        });
                    }
                }, 
                onPause:function(){ 
                    var item = this.getPlaylistItem();                    
                    kuiJw.track({
                        event:'pause',
                        lnk_id:this.config.lnk_id||null,
                        mod_id:this.config.mod_id||null,
                        media_id:item.media_id||this.config.media_id||null,
                        duration:this.getPosition(),
                        total:this.getDuration()
                    });
                },
                onComplete:function(){ 
                    var item = this.getPlaylistItem();
                    kuiJw.track({
                        event:'complete',
                        lnk_id:this.config.lnk_id||null,
                        mod_id:this.config.mod_id||null,
                        media_id:item.media_id||this.config.media_id||null,
                        duration:this.getPosition(),
                        total:this.getDuration()
                    });
                }
            },
            modes: [ 
                { type: "flash", src: "/images/flash/player.v5.swf" }, 
                { type: "html5" }, 
                { type: "download" } 
            ]           
       };
       
        var jwDefaults = { 
            autostart:"false",
            stretching:"uniform",
            controlbar:"bottom",
            showfsbutton:"true",
            overstretch:"uniform",
            volume:"100",
            media_id:options.media_id||null,
            lnk_id:options.lnk_id||null,
            mod_id:options.mod_id||null                        
        };
        
        var setAjax = new Ajax.Request('/ajax/player', {
            parameters: Object.toQueryString({func:'get/config',mod_id:options.mod_id,lnk_id:options.lnk_id}),
            onComplete: function (req) {
                var json = req.responseJSON;
                if (json && (json.file || json.playlist)) {
                    if (json.playlist && Object.isString(json.playlist)) { json.playlist = json.playlist.evalJSON(); } 
                    jwDefaults = Object.extend(jwDefaults,json); 
                    jwParams = Object.extend(jwParams,jwDefaults);
                    
                    var mrg = (jwParams.align==='center') ? '0 auto' : '0';
                    if (jwParams.align==='right') {
                        nWidth = parseInt($(options.id).up('div.flashModule').getWidth()-jwParams.width,10);
                        mrg = '0 0 0 '+nWidth+'px';                        
                    }                                                             
                    $(options.id).up('div.wrap').setStyle({margin:mrg,width:jwParams.width+'px'});
                    $(options.id).up('div.flashModule').setStyle({height:jwParams.height+'px'});
                    
                    jwplayer(options.id).setup(jwParams);
                    if (jwplayer(options.id).renderingMode==='html5' && jwParams.controlbar_html5) { 
                        jwParams.controlbar ='over';
                        jwplayer(options.id).setup(jwParams); 
                    }                    
                } else {
                    if (json.swf && json.swf===true && json.src) {
                        swfobject.switchOffAutoHideShow();
                        kuiJw.track({
                            lnk_id:json.lnk_id||options.lnk_id||null,
                            mod_id:json.mod_id||options.mod_id||null,
                            media_id:json.media_id||options.media_id||null,
                            event:'load',
                            duration:null,
                            total:null     
                        });
                        if (window.console) { console.log(json.backcolor); }
                        swfobject.embedSWF(json.src, options.id, 
                            json.width||$(options.id).getWidth(), 
                            json.height||$(options.id).getHeight(), 
                            "9.0.0", 
                            "/scripts/expressInstall.swf", {}, { 
                                scale:"noscale", 
                                allowScriptAccess:"sameDomain",
                                menu:"false",
                                allowfullscreen:"true",
                                bgcolor:json.bgcolor||'#ffffff',
                                wmode:'transparent'
                            });
                    }
                }
            }.bind(this)
        });

    }},

    track:function(options){
        var setAjax = new Ajax.Request('/ajax/player', {
            parameters: Object.toQueryString({ 
                func:'track',
                lnk_id:options.lnk_id||null,
                mod_id:options.mod_id||null,
                media_id:options.media_id||null,
                event:options.event,
                duration:options.duration||null,
                total:options.total||null                
            })
        });
    }
};

