//************************************************************************************
// Copyright (C) 2006, Massimo Beatini
//
// This software is provided "as-is", without any express or implied warranty. In 
// no event will the authors be held liable for any damages arising from the use 
// of this software.
//
// Permission is granted to anyone to use this software for any purpose, including 
// commercial applications, and to alter it and redistribute it freely, subject to 
// the following restrictions:
//
// 1. The origin of this software must not be misrepresented; you must not claim 
//    that you wrote the original software. If you use this software in a product, 
//    an acknowledgment in the product documentation would be appreciated but is 
//    not required.
//
// 2. Altered source versions must be plainly marked as such, and must not be 
//    misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source distribution.
//
//************************************************************************************
// Modified by SundaySky (2008)
//************************************************************************************

//
// global variables
//
var sundaySkyGoogleToken = "UA-7278592-1";
var sundaySkyPlayer = null;
var sundayskyIsMozilla;
var sundayskyObjDiv = null;
var sundayskyOver = false;
var sundayskyOriginalEmbeddedHTML = "";
var sundayskySessionId = null;
var sundayskyURL = "http://www.sundaysky.com/univo/demo/englishzap/";
//var sundayskyURL = "http://213.8.106.75/SundaySky/"; // CHANGE ON PRODUCTION
//var sundayskyURL = "";
var eventNotifierAddress = "http://www.sundayskylogging2.com/DVGWeb/";
var sundayskyZapSpecificIsPlayerBuild=false;
var sundayskyVideoFile="";
var zapCommercialVideoFile="";
var zapCommercialLink;

function sundayskyInit()
{
    // check browser
    sundayskyIsMozilla = (document.all) ? 0 : 1;
	
	// Add mouse events
    sundayskyAddMouseEvents(document.getElementById("sundayskyplayer"), true);
    sundayskyAddMouseEvents(document.body, false);
	
	// Google Analytics
	try{
		var pageTracker = _gat._getTracker(sundaySkyGoogleToken);
		pageTracker._trackPageview();
		pageTracker._trackEvent("Video Play", "Potential Visit");
	} catch(err) {}

    // Send 'visit' event
    //sendEvent(sundayskyGetSessionId(),'0','','VISIT','');
}

// Display the sundaysky player in the "sundayskyplayer" div
function displaySundayskyPlayer(videoFile, options) {
	sundayskyVideoFile=videoFile;
	zapCommercialVideoFile=options.commercialFile;
	zapCommercialLink = options.commercialLink;
	
	if (!sundayskyZapSpecificIsPlayerBuild) 
	{
		document.getElementById("sundayskyplayer").innerHTML="<div id=\"sundayskyHeader\">" +
            "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">" +
                "<tr>" +
                    "<td id=\"sundayskyLeft\" ondblclick=\"void(0);\" onmouseover=\"sundayskyOver=true;\" onmouseout=\"sundayskyOver=false;\" />" +
                    "<td id=\"sundayskyClose\">" +
                        "<img id=\"sundayskyClosepic\" src=\"http://213.8.106.75/SundaySky/images/Xicon2.png\"" +
                            "onmousedown=\"sundayskySwapPicture(false)\" onmouseout=\"sundayskySwapPicture(true)\"" +
                            "style=\"margin: 2px; margin-right: 4px;\" alt=\"Close\" title=\"Close\" onclick=\"hideSundayskyPlayer();\" />" +
                    "</td>" +
                "</tr>" +
            "</table>" +
        "</div>" +
        "<table id=\"sundayskyPlayerbox\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">" +
            "<tr id=\"sundayskyPlayercontainer\">" +
                "<td id=\"sundayskyLeftBorder\" rowspan=\"2\">" +
                "</td>" +
                "<td id=\"sundayskyPlayercontainer\">" +
                    "<div id=\"sundayskyEmbeddedplayer\">" +
                        "<div id=\"sundayskyNoflash\">" +
                            "Get <a href=\"http://www.macromedia.com/go/getflashplayer\">Flash Player</a> to see" +
                            "this video." +
                       "</div>" +
                    "</div>" +
                "</td>" +
                "<td id=\"sundayskyRightBorder\" rowspan=\"2\">" +
                "</td>" +
            "</tr>" +
            "<tr>" +
                "<td id=\"sundayskyBottomBorder\">" +
                "</td>" +
            "</tr>" +
        "</table>";
		sundayskyZapSpecificIsPlayerBuild=true;
	}		
		
	if (!options.isEmbedded) {
		sundayskyDisplayHiddenPlayerContainer();
	}
	
	if (sundayskyOriginalEmbeddedHTML == "") {
		sundayskyOriginalEmbeddedHTML = document.getElementById("sundayskyEmbeddedplayer").parentNode.innerHTML;
	}
	
	// Load the sundaysky player in the "sundayskyplayer" div
	sundayskyLoadPlayer(options.videoFile, options.isEmbedded);
}

function playerReady(thePlayer) {
	sundaySkyPlayer = thePlayer;
	loadFilesToPlay();
}

function loadFilesToPlay() {
	if (sundaySkyPlayer) { 
		var tmp = document.getElementById("sundayskyEmbeddedplayer");
		if (tmp) {
			var playList = zapSpecificPlayListBuilder(sundayskyVideoFile,zapCommercialVideoFile);
			tmp.sendEvent("LOAD",playList);
			tmp.sendEvent("Play","true");
		}
	} 
	else 
	{
		setTimeout("loadFilesToPlay()",100);
	}
}

function zapSpecificPlayListBuilder(videoFile,commercialFile){
	//alert("loading");
	var playList = new Array();
	var i = 0;
	if ((commercialFile!="")&&(commercialFile!=null))
	{
		playList[i] = {
			file:commercialFile,
			title:"Commercial",
			type:"video"
		}
		if(zapCommercialLink){
			playList[i].link = zapCommercialLink
		}
		i++
	}
	
	playList[i] = {
		file:videoFile,
		file:videoFile,
		title:"SundaySky Movie",
		type:"video",
		displayclick : "play"
	}
	return playList;
}

function sundayskyLoadPlayer(videoFile, isEmbedded) {
	var flashvars = {};
	flashvars.showdigits = "total";
	flashvars.autostart = (isEmbedded ? "false" : "true");
	
//	flashvars.file = videoFile;
	//flashvars.type = "video";
    flashvars.skin = sundayskyURL + "ZapSundayskySkin";
	flashvars.plugins = sundayskyURL + "ZapSundaySkyPlugin"; 
	flashvars.mute = "false";
	//flashvars.ignore_stop = "true";
	flashvars.dvg_event_notification_url = eventNotifierAddress + "service/EventNotifierService?wsdl";
	
	flashvars.dvg_send_notifications = "true";
	
	flashvars.google_token_id = sundaySkyGoogleToken; //Globar var 
		
	// PlayList vars
	//flashvars.playlist="bottom";
	//flashvars.playlistsize=80;
	flashvars.repeat="always";

	flashvars.shuffle="false";
	
	flashvars.google_debug_mode="false";
	flashvars.bufferlength = 3;
	flashvars.displayclickhandcursor = "false";
	flashvars.enablejs = "true";	
	flashvars.javascriptid = "sundayskyEmbeddedplayer";
	flashvars.dvg_session_id = sundayskyGetSessionId();
	flashvars.aboutlink = "http://www.sundaysky.com";
	flashvars.abouttext = "About Sundaysky";
	
	


	var params = {};
	params.allowfullscreen = "true";
	params.wmode = "window";
	params.allowscriptaccess = "always";

	var attributes = {};

	swfobject.embedSWF(sundayskyURL+"player.swf", 
					   "sundayskyEmbeddedplayer", 
					   "352", 
					   "316",
					   "9.0.0", 
					   false, 
					   flashvars, 
					   params, 
					   attributes);
}

// Get the current width of the window 
function sundayskyGetWidth() {
	var width = 0;
	
	if (window.innerWidth) {
		//Non-IE
		width = window.innerWidth;
	} else if( document.documentElement && 
			  ( document.documentElement.clientWidth || 
			    document.documentElement.clientHeight ) ) {
		//IE 6+ 
		width = document.documentElement.clientWidth;
	} else if( document.body && 
	 		  ( document.body.clientWidth || 
			  	document.body.clientHeight ) ) {
		//IE 4 
		width = document.body.clientWidth;
	}
	
	return width;
}

//Get the current height of the window
function sundayskyGetHeight() {
	var height = 0;
	if(window.innerWidth) {
		//Non-IE
		height = window.innerHeight;
	} else if( document.documentElement && 
			  ( document.documentElement.clientWidth || 
			  	document.documentElement.clientHeight ) ) {
		//IE 6+ 
		height = document.documentElement.clientHeight;
	} else if( document.body && ( 
			  document.body.clientWidth || 
			  document.body.clientHeight ) ) {
		//IE 4 
		height = document.body.clientHeight;
	}
	
	return height;
}



function sundayskyDisplayHiddenPlayerContainer() {

	var width  = sundayskyGetWidth();
	var height = sundayskyGetHeight();
	var div = sundayskyObjById('sundayskyplayer');
	var left = (document.documentElement.scrollLeft + (width - div.clientWidth ) / 2);
	var top = (document.documentElement.scrollTop + (height - div.clientHeight) / 2);

    div.style.left = left + 'px';
    div.style.top = top + 'px';
	div.style.visibility = "visible";
}

function sundayskyObjById( id )
{
	var returnVar;
    if (document.getElementById)
        returnVar = document.getElementById(id);
    else if (document.all)
        returnVar = document.all[id];
    else if (document.layers)
        returnVar = document.layers[id];
    return returnVar;
}


// Hide the sundaysky player - return to previous state.
function hideSundayskyPlayer() {
	var player = sundayskyObjById("sundayskyEmbeddedplayer");
	var parent = player.parentNode;
	parent.removeChild(player);

	parent.innerHTML = sundayskyOriginalEmbeddedHTML;
	
	var div = document.getElementById('sundayskyplayer');
	document.getElementById('sundayskyplayer').style.visibility = 'hidden';
	
	div.style.left = 0;
	div.style.top = 0;
}

function sundayskySwapPicture(out) {
	if (out) {
		document.getElementById("sundayskyClosepic").src = sundayskyURL+"images/Xicon2.png";
	} else {
		document.getElementById("sundayskyClosepic").src = sundayskyURL+"images/Xicon1.png";
	}
}

function sundayskyMouseDown(e) 
{
    if (sundayskyOver)
    {
		sundayskyObjDiv = document.getElementById('sundayskyplayer');
        if (sundayskyIsMozilla) {
            X = e.pageX;
            Y = e.pageY;	
            return false;
        }
        else {
            X = event.clientX;
            Y = event.clientY;
        }
    }
}


function sundayskyMouseMove(e) 
{
    if (sundayskyObjDiv) {
		var newX, newY;
        if (sundayskyIsMozilla) {
			newX = (e.pageX-X) + parseInt(sundayskyObjDiv.style.left);
			newY = (e.pageY-Y) + parseInt(sundayskyObjDiv.style.top);
            X = e.pageX;
            Y = e.pageY;
		}
		else {
			newX = event.clientX-X + sundayskyObjDiv.style.pixelLeft;
			newY = event.clientY-Y + sundayskyObjDiv.style.pixelTop;
            X = event.clientX;
			Y = event.clientY;
		}

        if (sundayskyIsMozilla) {
            sundayskyObjDiv.style.top = newY + 'px';
            sundayskyObjDiv.style.left = newX + 'px';
            return false;
        }
        else 
        {
            sundayskyObjDiv.style.pixelLeft = newX;
            sundayskyObjDiv.style.pixelTop = newY;
            return false;
        }
    }
}

function sundayskyMouseUp() 
{
    sundayskyObjDiv = null;
}

function sundayskyAddMouseEvents(div, down)
{
	if (down)
		div.onmousedown = sundayskyMouseDown;
    div.onmousemove = sundayskyMouseMove;
    div.onmouseup = sundayskyMouseUp;
}

function sundayskyGetSessionId()
{
	if (sundayskySessionId == null)
		sundayskySessionId = sundayskyGuid();
	return sundayskySessionId;
}


function displayEmbeddedSundayskyPlayer(videoFile)
{
	sundayskyLoadPlayer(videoFile, true);
}

function sundayskyS4() {
	return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
}

function sundayskyGuid() {
	return (sundayskyS4()+sundayskyS4()+"-"+sundayskyS4()+"-"+sundayskyS4()+"-"+sundayskyS4()+"-"+sundayskyS4()+sundayskyS4()+sundayskyS4());
}


function sendEvent(sessionId,eventId,jobId,eventType,parameters)
{
      request_script = document.createElement("script");
      var now = new Date();

      request_script.src = eventNotifierAddress + "EventNotifier?sessionId="+sessionId+
            "&eventId="+eventId+"&jobId="+jobId+"&eventType="+eventType+
            "&time="+now.getTime()+"&parameters="+parameters+"&referer="+document.URL;
      
      document.getElementsByTagName("head")[0].appendChild(request_script);
}
