/*  media.js */
var video_name = "";
var file_path = "";
var feedback = "";
var match = "";
function embedVideo (options)
{
    //  sanity checks
    if (! options.id
    ||  ! options.width
    ||  ! options.height
    ||  ! options.element
    ) {
        throw new Error("Missing video options.");
    }
    if(options.use_production_url == true ||  options.use_production_url == "true") {
        if (options.youtube == true || options.youtube == "true")
        {
         file_path = options.path_url;
    var flashvars   = {        
	file:   file_path,
        image: "http://i4.ytimg.com/vi/"+options.img_id+"/0.jpg",
	    allowfullscreen: 'true',
	    'viral.onpause': 'false',
	    'viral.callout': 'none',
	    'viral.functions': 'recommendations'
    };
        }
        else
        {
             file_path = "http://s3.amazonaws.com/GTeach/var/guaranteach/video/" + options.id + ".flv";
    var flashvars   = {        
	file:   file_path,
        image: "/content/thumbnails/big_"+options.id+".png",
	    allowfullscreen: 'true',
	    'viral.onpause': 'false',
	    'viral.callout': 'none',
	    'viral.functions': 'recommendations'
    };
        } 
      }
    else {
        if (options.youtube == true || options.youtube == "true")
        {
         file_path = options.path_url;
    var flashvars   = {        
	file:   file_path,
        image: "http://i4.ytimg.com/vi/"+options.img_id+"/0.jpg",
	    allowfullscreen: 'true',
	    'viral.onpause': 'false',
	    'viral.callout': 'none',
	    'viral.functions': 'recommendations'
    };
        }
        else
        {
          file_path = "http://s3.amazonaws.com/GTeach/var/guaranteach/video/" + options.id + ".flv";
    var flashvars   = {        
	file:   file_path,
        image: "/content/thumbnails/big_"+options.id+".png",
	    allowfullscreen: 'true',
	    'viral.onpause': 'false',
	    'viral.callout': 'none',
	    'viral.functions': 'recommendations'
    };
        } 
         }
    // jwplayer
    video_name = options.video_id;
    match = options.match;
    feedback = options.feedback;
    
    var params  = {
        allowfullscreen:    "true",
        allowscriptaccess:  "always",
        wmode:              "transparent"
    };

    var attributes  = {
        id:     "media_player",
        name:   "media_player"
    };

        //"/mediaplayer/player.swf",
    swfobject.embedSWF(
        "/mediaplayer/player.swf",
        "media_player",
        options.width,
        options.height,
        "9",
        false,
        flashvars,
        params,
        attributes
    );
}

/*  media playback */

var mediaPlayer     = null;
var playbackStarted = false;
var playbackPaused = false;
var completedOnce = false;

function playerReady (player)
{
    mediaPlayer = document.getElementById(player.id);

    addPlayerListeners();
}

function addPlayerListeners ()
{
//alert("adding listeners");
    if (mediaPlayer) {
        mediaPlayer.addModelListener("STATE", "playerStateListener");
    }
    else {
        window.setTimeout(addPlayerListeners, 100); // hack?
    }
}

function playerStateListener (player)
{ 
   //alert(player.newstate);
    if (player.newstate == "PLAYING") {
        if (!playbackStarted && !playbackPaused) {        
            playbackStarted = true;
	        //add ajax call to send state "Playint"
	        ajax_update_lesson("Playing");
            $.post(
                "/surveyor/media_player",
                {
                    new_state:  "PLAYING"
                }
            );
        }
        else if (playbackStarted && playbackPaused) {
            ajax_update_lesson("Resumed");
            playbackPaused = false;
        }
        else if (playbackStarted && !playbackPaused){
            ajax_update_lesson("Slided");
        } 
        hideElt('media_paused_stopped');       
    }   
    
    if (player.newstate == "IDLE") {
        playbackPaused = false;
        playbackStarted = false;
        ajax_update_lesson("Stopped");        
    }
    
    if ("COMPLETED" == player.newstate && !completedOnce) {
	  ajax_update_lesson("Completed");
	  playbackStarted = false;
	  playbackPaused = false;
      if(feedback == "0"){
	      showElt('popup_feedback');
	      feedback = "true";
	    }
	  showElt('media_paused_stopped');
	  completedOnce=true;
    }
    if ("PAUSED" == player.newstate) {
    playbackPaused = true;
	ajax_update_lesson("Paused");
      //hideElt('media');
	  showElt('media_paused_stopped');
	}    
}

function setPlayerState (state) 
{
	mediaPlayer.sendEvent(state,"true");;
}

function ajax_update_lesson(video_status) {
	new Ajax.Request("/surveyor/update_lesson_history?id="+video_name+"&video_status="+video_status+"&match="+match, {asynchronous:true, evalScripts:true, parameters:'authenticity_token=' + encodeURIComponent('f7451406a5f3527c920b15eb7f63840280305729')}); 
	return false;
}

function checkFlash() 
{
    var playerVersion = swfobject.getFlashPlayerVersion();
	var majorVersion = playerVersion.major;

    if (majorVersion > 8) {
		return true;
	} else {
		return false;
	}
}

function embedFlash (id)
{
    var docelt = document.getElementById(id);
	docelt.innerHTML = "<span style='color: red;'>You must have Flash Player installed to view this video.<br/>Please <a href='http://get.adobe.com/flashplayer/' target='_blank'>click here</a> to install the latest version of Flash Player.</span>";
    docelt.style.display = "block";
    /*var img = document.createElement('img');
	img.setAttribute("src", "/images_ror/icons/getflash.jpg");
	img.onclick = function () { window.open('http://get.adobe.com/flashplayer/'); };
	docelt.appendChild(img);*/
}

function feedback_overlay(status)
{    
    if(status == "1") {
    showElt('popup_feedback_general');
    }
}

function myCode(title_text, video,offset_left, offset_top) {
	var window_width = 660;
	var window_height = 510;
    var window_left = offset_left - (1/2)*window_width;
	var window_top = offset_top + (1/2)*window_height;
	
    var win = new Window({className: "alphacube", title: title_text, top:window_top, left:window_left, width:window_width, height:window_height, url: "http://www.guaranteach.com/video/"+video, showEffectOptions: {duration:1.5}});
		win.show(); 
		window.scrollTo(0,window_top - 100);
}
