var dylg = (dylg ? dylg : {obj: {} });

dylg.obj.videoPlayer = {
    instance: null, // flash instance of player
    video: null, // file to load when preroll is done loading (the real video)
    link: null, // file to load when preroll is done loading (the real link)
    prerollConfig: {
        active: true, // active preroll campaign
        hasCompanion: false, // show companion or not
        type: 'internal', // type of preroll external or internal
        link: null, // link for the preroll 
        playing: false, // flag if the preroll is currently playing
        timerId: 0 // flag if the preroll is currently playing
    },
    /* handles xml response that tells us if there is a preroll */
    prerollResponse: function(xml) {
        var videoURL;
        var clickURL;
        if (xml) {
     	    var startPos = xml.indexOf('<location>');
     	    if (startPos >= 0) {
     	        startPos += 10;
     	        var endPos = xml.indexOf('</location>');
     	        videoURL = xml.substring(startPos,endPos);
     	    } //if
     	    
     	    var startPos = xml.indexOf('<link>');
     	    if (startPos >= 0) {
     	        startPos += 6;
     	        var endPos = xml.indexOf('</link>');
     	        clickURL = xml.substring(startPos,endPos);
     	    } //if
 	    } //if
 	    
 	    this.doPreroll({
 	        file: videoURL,
 	        link: clickURL
        });
    },
    doPreroll: function(options) {
       /* found preroll play it before current video */
 	    if (options.file && options.link) {
            this.prerollConfig.link = options.link;
 	        
 	        /* if no videos are set we use the one from the config */
 	        if (!this.video) {
 	            var config = this.instance.getConfig();
                this.video = config.file;
                this.link = config.link;
 	        } //if
            
            this.instance.sendEvent('LOAD', {file:options.file, link:options.link});
            this.prerollConfig.playing = true;
            
            /* hide controls */
            $('.videoPlayerWrapper').eq(0).height(240);
            
            if (options.duration) {
                $('div.prerollCounter')
                    .show()
                    .children('span').html(options.duration);
                 
                this.prerollConfig.timerId = setInterval('dylg.obj.videoPlayer.updateTimer()', 1000);
            } //if
            
            if (this.prerollConfig.hasCompanion || options.hasCompanion) {
                var scroller = $('.newsScroller').eq(0);
                var companionURL = 'http://www.doyoulookgood.com/adCompanion.php?random='+ ad_preroll_random;
                
                if(options.source){
                    companionURL += '&source='+ options.source;
                }
                
                scroller.css({
                    visibility: 'hidden'
                });
                
                $('.adCompanion iframe').attr('src', companionURL);
                
                $('.adCompanion').css({
                    top: scroller.offset().top + 5,
                    left: scroller.offset().left + 20
                }).show();
            } //if
            
            
 	    } //if
 	    
        setTimeout('dylg.obj.videoPlayer.play()', 200);   	    
        
    },
    endPreroll: function() {
        this.prerollConfig.playing = false;
        this.prerollConfig.link = null;
        this.instance.sendEvent('LOAD', {file:this.video,link:this.link});
        
        $('div.prerollCounter').hide();
        $('.videoPlayerWrapper').eq(0).height(260);
        
    },
    load: function (file, link) {
        // keep track of current video in case there is a preroll
        this.video = file;
        this.link = file;
        this.instance.sendEvent('LOAD', file);
    },
    play: function () {
        this.instance.sendEvent('PLAY');
    },
    updateTimer: function() {
        var timeLeft = $('div.prerollCounter span').html() - 1;
        if (timeLeft >= 0) {
            $('div.prerollCounter span').html(timeLeft);
        } else {
            clearInterval(this.prerollConfig.timerId);
        } //if
    },
    init: function() {
        if (videoAutoStart) {
            
            this.prerollConfig.active = false;
            
            
            $.getScript('http://ads.doyoulookgood.com/adjson.php?n=ac7276b2&zoneid=131' + (prerollGeoTarget ? '&geotarget=1' : '') );
        } //if
    },
    modelListener: function (obj) {
        var player = this.instance;
        switch (obj.newstate) {
            case 'BUFFERING':
                if (this.prerollConfig.active) {
                    this.prerollConfig.active = false;
                    this.instance.sendEvent('STOP');
                    
                    switch (this.prerollConfig.type) {
                        case 'external':
                            var serviceReader = $('#serviceReader').get(0);             
                            if (serviceReader) {
                     	        serviceReader.get();
                            } //if
                            break;
                        case 'internal':
                            $.getScript('http://ads.doyoulookgood.com/adjson.php?n=ac7276b2&zoneid=131'); 
                            break;
                    } // switch
                } //if
                break; 
           case 'PAUSED':
                if (this.prerollConfig.playing) {
//                    var newWin = window.open('/blank.html','_blank');
//                    if (newWin) {
//                       newWin.location = this.prerollConfig.link; 
//                    } //if
                    this.instance.sendEvent('LINK');
                    this.endPreroll();
                    
                    
                } else {
                    this.instance.sendEvent('LINK');
                } //if
                break; 
           case 'COMPLETED':
                if (this.prerollConfig.playing ) {
                    this.endPreroll();
                    setTimeout('dylg.obj.videoPlayer.play()', 200);
                } //if
           
                break; 
           case 'IDLE':
                break; 
           case 'PLAYING':
                break; 
        } //switch
    }  // listener
};

function doPrerollBanner(config) {
    dylg.obj.videoPlayer.doPreroll(config);
}

function bannerHandler(data) {
    if (data.html == '') {
       dylg.obj.videoPlayer.play();
    } else {
        $('body').append(data.html);
    } //if
}

function playerReady  (readyObj) {
    var playerObj = $('#'+ readyObj.id ).get(0);
    playerObj.addModelListener("STATE","dylg.obj.videoPlayer.modelListener");
    dylg.obj.videoPlayer.instance = playerObj;
    if (readyObj.id == 'vid') { // disabled for celafete microsite
        dylg.obj.videoPlayer.prerollConfig.active = false;
    } //if
    
    dylg.obj.videoPlayer.init();
} //playerReady
