
var clsuffix = JS_SUB_SECTION;

if ( clsuffix != "" ) {
    clsuffix = "_" + clsuffix
}



var initflag = 0;
var playbuffcnt = 0;
var prevsegment = -1;
var prevpos  = 0;
var currpos  = -1;
var bufferstart = 0;
var bufferend = 0;
var bufferval = -1;
var buffering = false;


var vidsuspend = 0; 
var vidend = 0;
var pausecnt  = 0;
var stopcnt  = 0;
var medianame = null;
var playerversion = "SilverLight";

var player = document.getElementById("SilverLightPlayer");
var mediaelement = null;

if (player != null) {
    mediaelement = player.content.FindName("VideoWindow");
    
    if (mediaelement != null) {
        mediaelement.AddEventListener("mediaEnded", mediaEnded); 
        mediaelement.AddEventListener("CurrentStateChanged", currentStateChanged);
        mediaelement.AddEventListener("bufferingProgressChanged", bufferingProgressChanged);
        
        medianame = mediaelement.Source;       
        setInterval("time();", 1000);
    }
    
}


function reset() {

    initflag = 0;
    playbuffcnt = 0;
    prevsegment = -1;
    prevpos  = 0;
    currpos  = -1;
    bufferstart = 0;
    bufferend = 0;
    bufferval = -1;
    buffering = false;
}

function time() {
    
    
    prevpos = currpos;
    currpos = parseInt(mediaelement.Position.GetValue("Seconds"));
    
    if ( !isNaN(currpos) ) {
        if (prevpos != currpos) {                
            
            var segsize   = 10;
            var segment = parseInt(currpos/segsize)*segsize;
            
            if ( segment != prevsegment && segment < 3600 && vidsuspend == 0) {
                prevsegment = segment;
              
				var arrEvar=new Array(18);
				arrEvar[11]=segment + "-" + (segment + 9); 	
				arrEvar[12]=playbuffcnt + "";
				arrEvar[13]=Math.round((bufferend - bufferstart)/1000) + "";
				arrEvar[14]=pausecnt + "";
				arrEvar[15]=stopcnt + "";
				arrEvar[16]=medianame;
				arrEvar[17]=playerversion;
				var arrEvt=new Array(12);
				arrEvt[11]=true;
                OMNTRLinkTracking(true, "video_segment" + clsuffix, (segment + "-" + (segment + 9)), arrEvar, arrEvt, 'msnportalaucatcampaign');
            }            
        }
        
    }
    

}


function currentStateChanged(sender, eventArgs) {   
    
    var newstate = sender.CurrentState;
    
    
    switch (newstate) {
    case "Stopped":            
    
            vidsuspend = 1;
            
            if (vidend == 0) { 
                stopcnt = stopcnt +1;                                        
                OMNTRLinkTracking(true, "video_stop" + clsuffix, stopcnt.toString(), null, null, 'msnportalaucatcampaign');
            }            
            break;            
        case "Paused":   
                
            vidsuspend = 1;        
            if (vidend == 0) { 
                pausecnt = pausecnt +1;
                OMNTRLinkTracking(true, "video_pause" + clsuffix, pausecnt.toString(), null, null, 'msnportalaucatcampaign');
            }                
            break;            
        case "Playing":                    
            
            vidend = 0;
            vidsuspend = 0;
            
            if (initflag == 0) {
                initflag = 1;

                OMNTRLinkTracking(true, "video_views" + clsuffix, playerversion, null, null, 'msnportalaucatcampaign');
            }            
            break;         
        default:
        
    }
    
    

}

function bufferingProgressChanged(sender, eventArgs) {

        var bufferprogress = sender.BufferingProgress*100;        
        
                  
        bufferval = sender.BufferingProgress*100;
        
        if (bufferval != 100 && buffering == false && vidend == 0) {
            buffering = true     

            playbuffcnt = playbuffcnt + 1;                       
            bufferstart = new Date().getTime();              
            
            OMNTRLinkTracking(true, "video_buffers" + clsuffix, playbuffcnt.toString(), null, null, 'msnportalaucatcampaign');                 
        } else if (bufferval == 100 && buffering == true && vidend == 0) {
            bufferend = new Date().getTime();
            if (bufferstart != 0) {                    
                var buffertime = Math.round((bufferend - bufferstart)/1000); 

                if (buffertime > 0) {            

                    buffering = false;
                    if (buffertime < 120) {                
                        OMNTRLinkTracking(true, "video_buffer_duration" + clsuffix, (buffertime.toString() + ' seconds'), null, null, 'msnportalaucatcampaign');
                    } else {
                        OMNTRLinkTracking(true, "video_buffer_duration" + clsuffix, "over 120 seconds", null, null, 'msnportalaucatcampaign');                     
                    }
                }
            }
        }
        
}

function mediaEnded(sender, eventArgs) {
        
        if (vidend != 1 ) {
            reset();
            vidend = 1;
            vidsuspend = 1;                        
            OMNTRLinkTracking(true, "video_end" + clsuffix, playerversion, null, null, 'msnportalaucatcampaign');
        }
}