﻿var play; //global variables for webtrends-tracking
var close;
var pause;
var status ="0%";
var next_video=false;
var video;
var flag0 = true;
var flag25 = true;
var flag50 = true;
var flag75 = true;
var flag100 = true;

function get_mediainfo(mediainfoIndex) {

  var a_info = [
		{ "mediaUrl": "http://go.microsoft.com/?linkid=8917806",
          "placeholderImage": "",
          "chapters": [
            ],
            "title": "Start des Windows Media Center",
            "subtitle": "",
            "metainfo": "03:23"
        },
		{  "mediaUrl": "http://go.microsoft.com/?linkid=8917807",
          "placeholderImage": "",
          "chapters": [
          ],
          "title": "Fernsehen nach Ihren Wünschen",
          "subtitle": "",
          "metainfo": "02:22"
        },

		{ "mediaUrl": "http://go.microsoft.com/?linkid=8917808",
          "placeholderImage": "",
          "chapters": [
          ],
          "title": "Jukebox und Fotoalbum",
          "subtitle": "",
          "metainfo": "02:17"
        },

		{ "mediaUrl": "http://go.microsoft.com/?linkid=8917809",
          "placeholderImage": "",
          "chapters": [
          ],
          "title": "Noch mehr Home Entertainment",
          "subtitle": "",
          "metainfo": "03:43"
        }
	];
    if(mediainfoIndex=="element_length") return a_info.length;
    
	if(mediainfoIndex<a_info.length){
		return a_info[mediainfoIndex];
	}
	else {
		throw Error.invalidOperation("No such mediainfo");
	}
}

function StartWithParent(parentId, appId) {
    new StartPlayer_0(parentId);
}

function StartPlayer_0(parentId) {

    this._hostname = EePlayer.Player._getUniqueName("xamlHost");
    Silverlight.createObjectEx( {   source: '/germany/windows/components/silverlight/mediaplayer/player.xaml',
									parentElement: $get(parentId ||"mplayer_0"),
                                    id:this._hostname,
                                    properties:{ width:'520', height:'277', version:'1.0', background:'transparent', isWindowless:'true' },
                                    events:{ onLoad:Function.createDelegate(this, this._handleLoad) } } );
    this._currentMediainfo = 0;
}
StartPlayer_0.prototype= {

    _handleLoad: function() {
        
        this._player = $create(   ExtendedPlayer.Player,
                                  { // properties
                                    autoPlay    : false,
                                    volume      : 1.0,
                                    muted       : false
                                  },
                                  { // event handlers
                                    mediaEnded: Function.createDelegate(this, this._onMediaEnded),
                                    mediaFailed: Function.createDelegate(this, this._onMediaFailed)
                                  },
                                  null, $get(this._hostname)  );
        this._playNextVideo();
    },


    _onMediaEnded: function(sender, eventArgs) {
        if (play) window.clearTimeout(play);
        window.setTimeout( Function.createDelegate(this, this._playNextVideo), 1000);
    },

    _onMediaFailed: function(sender, eventArgs) {
        alert(String.format( Ee.UI.Xaml.Media.Res.mediaFailed, this._player.get_mediaUrl() ) );
    },

    _playNextVideo: function() {
    
    
        var id = this._currentMediainfo++;
        var b_add = true;
        for(var i=0; i<a_watched.length;i++){
            if(a_watched[i]==id) b_add = false;
        }
        if(b_add) a_watched.push(id);
  
        if(this._currentMediainfo>=get_mediainfo("element_length")){
            this._currentMediainfo = 0;
        }
      
	      	this._player.set_mediainfo( get_mediainfo( id ) );

        if (play) window.clearTimeout(play);
        if (next_video) this._webtrends_tracking();
    },

    _playVideo: function(id) {
       
        var b_add = true;
        for(var i=0; i<a_watched.length;i++){
            if(a_watched[i]==id) b_add = false;
        }
        if(b_add) a_watched.push(id);
        this._currentMediainfo = Number(id)+1;
        this._player.set_mediainfo( get_mediainfo( id ) );

        this._player.set_autoPlay(true);

      		if (play) window.clearTimeout(play);
        this._webtrends_tracking();
    },

   _webtrends_tracking: function() {

        next_video=true;
         
        if (this._player.get_playState()=="Closed" || this._player.get_playState()=="Opening")
        {
            if (pause) window.clearTimeout(pause);
            if (play) window.clearTimeout(play);
            close  = window.setTimeout( Function.createDelegate(this, this._webtrends_tracking), 1000);
            flag0=true;flag25 = true;flag50 = true;flag75 = true;flag100 = true;
        }

        if (this._player.get_playState()=="Buffering")
        {
            if (pause) window.clearTimeout(pause);
            if (play) window.clearTimeout(play);
            close  = window.setTimeout( Function.createDelegate(this, this._webtrends_tracking), 1000);
        }

       if (this._player.get_playState()=="Playing")
       {    

            if (pause) window.clearTimeout(pause);
            if (close) window.clearTimeout(close);
            var prozent =((this._player.get_timeIndex()*100)/this._player._naturalduration);

            if (flag0==true && prozent>1) {status = "0%";WebTrends(video,status);flag0=false;}
            if (flag25==true && prozent>25) {status = "25%";WebTrends(video,status);flag25=false;}
            if (flag50==true && prozent>50) {status = "50%";WebTrends(video,status);flag50=false;}
            if (flag75==true && prozent>75) {status = "75%";WebTrends(video,status);flag75=false;}
            if (flag100==true && prozent>95) {status = "100%";WebTrends(video,status);flag100=false;}

            //alert(this._player.get_timeIndex());
            //alert(this._player.get_playState());
            //alert(this._player._naturalduration);

            play = window.setTimeout( Function.createDelegate(this, this._webtrends_tracking), 1);

            video = this._player.get_mediainfo().title;
        }

        if (this._player.get_playState()=="Paused")
        {
           pause = window.setTimeout( Function.createDelegate(this, this._webtrends_tracking), 1);
        }

//alert(this._player.get_playState());

      }
    }