/*-------------------------------------------------------------------
Player javascript API
-------------------------------------------------------------------*/

var counter = 0;
var time;
var swf;
// this function is caught by the JavascriptView object of the player.

function sendEvent(swf,typ,prm) { thisMovie(swf).sendEvent(typ,prm); };

function stopit(swf){


sendEvent(swf,'playpause');

clearInterval(time);


}



// these functions is called by the JavascriptView object of the player.
function getUpdate(typ,pr1,pr2,swf) { 


	if(typ == "time") { currentPosition = pr1; pr2 == undefined ? null: currentRemaining = Math.round(pr2); }
	else if(typ == "volume") { currentVolume = pr1; } 
	else if(typ == "item") { currentItem = pr1; setTimeout("getItemData(currentItem,\"" + swf + "\")",100);}
	else if(typ == "state") {
	 currentState = pr1; 
	        
	 if (currentState == 2) { //(0:ready/paused, 1:loading, 2:playing, 3:finished)
	    if (window["hasloaded" + swf]  == false){
            //alert(window["hasloaded" + swf]);


            //alert(eval("hasloaded" + swf) + "--" + "hasloaded" + swf);
                //time = setInterval("stopit(\"" + swf + "\")",100);
	        
	        
	        
	        
	    }
	   
	 }
	 }
	else if(typ == "load") { currentLoad = pr1; }
	else if(typ == "size") { currentXsize = "X=" + pr1; pr2 == undefined ? null: currentYsize = "Y=" + Math.round(pr2); } 

	var tmp = document.getElementById("pid"); if ((tmp)&&(swf != "null")) { tmp.innerHTML = "(received from the player with the id: <i><b>"+swf+"</b></i>)"; } 
		
	var tmp = document.getElementById("time"); if (tmp) { tmp.innerHTML = "<b>Time:</b> " + currentPosition + "&nbsp;&nbsp;<b>Remaining:</b> " + currentRemaining; } 
	var tmp = document.getElementById("volume"); if (tmp) { tmp.innerHTML = "<b>Volume:</b> " + currentVolume; } 
	var tmp = document.getElementById("item"); if (tmp) { tmp.innerHTML = "<b>Item:</b> " + currentItem; } 
	var tmp = document.getElementById("stateshow"); if (tmp) { tmp.innerHTML = "<b>State:</b> " + currentState + "&nbsp;&nbsp; (0:ready/paused, 1:loading, 2:playing, 3:finished)"; } 
	var tmp = document.getElementById("load"); if (tmp) { tmp.innerHTML = "<b>Load:</b> " + currentLoad; }
	var tmp = document.getElementById("size"); if (tmp) { tmp.innerHTML = "<b>Size:</b> " + currentXsize + ", " + currentYsize; } 
};

function getItemData(idx,swf) {
	var obj = thisMovie(swf).itemData(idx);
//counter = counter + 1;

	var tmp = document.getElementById("file"); if (tmp) { tmp.innerHTML = "<b>File:</b> " + counter; } 
	var tmp = document.getElementById("title"); if (tmp) { tmp.innerHTML = "<b>Title:</b> " +  obj["title"]; } 
	var tmp = document.getElementById("link"); if (tmp) { tmp.innerHTML = "<b>Link:</b> " + obj["link"]; } 
	var tmp = document.getElementById("type"); if (tmp) { tmp.innerHTML = "<b>Type:</b> " + obj["type"]; } 
	var tmp = document.getElementById("id"); if (tmp) { tmp.innerHTML = "<b>Id:</b> " + obj["id"]; } 
	var tmp = document.getElementById("image"); if (tmp) { tmp.innerHTML = "<b>Image:</b> " + obj["image"]; } 
	var tmp = document.getElementById("author"); if (tmp) { tmp.innerHTML = "<b>Author:</b> " + obj["author"]; } 
	var tmp = document.getElementById("captions"); if (tmp) { tmp.innerHTML = "<b>Captions:</b> " + obj["captions"]; } 
	var tmp = document.getElementById("audio"); if (tmp) { tmp.innerHTML = "<b>Audio:</b> " + obj["audio"]; } 
	var tmp = document.getElementById("start"); if (tmp) { tmp.innerHTML = "<b>Start:</b> " + obj["start"]; }  
	var tmp = document.getElementById("category"); if (tmp) { tmp.innerHTML = "<b>Category:</b> " + obj["category"]; } 
	var tmp = document.getElementById("description"); if (tmp) { tmp.innerHTML = "<b>Description:</b> " + obj["description"]; } 
	var tmp = document.getElementById("latitude"); if (tmp) { tmp.innerHTML = "<b>Latitude:</b> " + obj["latitude"]; } 
	var tmp = document.getElementById("longitude"); if (tmp) { tmp.innerHTML = "<b>Longitude:</b> " + obj["longitude"]; } 
	var tmp = document.getElementById("city"); if (tmp) { tmp.innerHTML = "<b>City:</b> " + obj["city"]; } 
	var tmp = document.getElementById("date"); if (tmp) { tmp.innerHTML = "<b>Date:</b> " + obj["date"]; }  
};



function loadFile(swf,obj) {
	thisMovie(swf).loadFile(obj); 
};
function getLength(swf) { 
	var len = thisMovie(swf).getLength(); 
	//alert('the length of the playlist is: '+len);
};
function addItem(swf,obj,idx) {
	thisMovie(swf).addItem(obj,idx);
};
function removeItem(swf,idx) {
	thisMovie(swf).removeItem(idx);
};
function itemData(swf,idx) { 
	var obj = thisMovie(swf).itemData(idx);
	var txt = "";
	for(var i in obj) { 
		txt += i+": "+obj[i]+"\n";
	}
	//alert(txt);
};
function thisMovie(movieName) {
	if(navigator.appName.indexOf("Microsoft") != -1) {
		return window[movieName];
	} else {
		return document[movieName];
	}
};
var tracing = true;
function printTrace(str) {
	if(tracing == true) {
		var itm = gid('tracecode');
		var txt = itm.innerHTML + str + '\n';
		itm.innerHTML = txt;
		itm.scrollTop = itm.scrollHeight;
	}
};
function toggleTrace() {
	if (tracing == true) { 
		tracing = false;
	} else { 
		tracing = true;
		var itm = gid('tracecode');
		itm.innerHTML = '';
	}
};
var configobj;
var playlistobj;
function printConfig() {
	tracing = false; 
	var cfg = thisMovie('jsFrambu').getConfig();
	configobj = cfg;
	printData(cfg);
}
function printPlaylist() {
	tracing = false;
	var ply = thisMovie('jsFrambu').getPlaylist();
	playlistobj = ply;
	var txt = "";
	for(var i=0; i<ply.length; i++) {
		txt += i+":\r\n";
		for(var itm in ply[i]) {
			txt += "-> "+itm+": "+ply[i][itm]+"\r\n";
		}
	}
	var itm = gid('tracecode');
	itm.innerHTML = txt;
}
function printData(cfg) { 
	var txt = "";
	for(var itm in cfg) {
		txt += itm+": "+cfg[itm]+"\r\n";
	}
	var itm = gid('tracecode');
	itm.innerHTML = txt;
}
function playerReady(obj) { 
	alert("Player ready!\n- id:"+obj['id']+"\n- version:"+obj['version']+"\n- client:"+obj['client']);
};
