/*-------------------------------------------------------------------
 General stuff
-------------------------------------------------------------------*/
function gid(name) {
	return document.getElementById(name);
}


function print_r(x, max, sep, l) {

	l = l || 0;
	max = max || 10;
	sep = sep || ' ';

	if (l > max) {
		return "[WARNING: Too much recursion]\n";
	}

	var
		i,
		r = '',
		t = typeof x,
		tab = '';

	if (x === null) {
		r += "(null)\n";
	} else if (t == 'object') {

		l++;

		for (i = 0; i < l; i++) {
			tab += sep;
		}

		if (x && x.length) {
			t = 'array';
		}

		r += '(' + t + ") :\n";

		for (i in x) {
			try {
				r += tab + '[' + i + '] : ' + print_r(x[i], max, sep, (l + 1));
			} catch(e) {
				return "[ERROR: " + e + "]\n";
			}
		}

	} else {

		if (t == 'string') {
			if (x == '') {
				x = '(empty)';
			}
		}

		r += '(' + t + ') ' + x + "\n";

	}

	return r;

};//end function var_dump
 

function replBr(){
	    var txtar = document.getElementById('embedcode');
	    var txt = txtar.value;
	    var pattern = /\n/g;
	    txtar.value = txt.replace(pattern, "<br>");
	}
	function emptyForm(skip){
	    if(($('formw').serialize()=='')&&(skip == 0)){
		alert('Please choose at least one item from the list above');
		return false;
	    } else {
//		alert($('formw').serialize().match(/audio/)=='audio');
		$('embedcode').style.display = 'block';
		$('embedswitch').style.display = 'block';
		$('preview').style.display = 'block';
		if($('modified').value == '1'){
		//	console.log('modified TRUE');
			 $('save_template_button').disabled = true;
		    new Ajax.Request('/manager_wizard.php?next='+$('playertype').value, {
			method: 'post',
	    		asynchronous: false,
			parameters: $('formw').serialize(),
			onComplete: function(transport){
     			    //alert(transport.responseText);
//			    $('file').value = transport.responseText;
                            $('file').value = transport.responseText.replace(/\s\n/, '');
                            $('modified').value = '0';
							 $('save_template_button').disabled = false;
			}
		    })
		}
		return true;
	    }
	}
/*-------------------------------------------------------------------
 AJAX calls
-------------------------------------------------------------------*/
var lsReqUrl = "/embed/livesearch.php";
var emReqUrl = "/embed/addemail.php";
var lsSearchId = "searchinput";
var lsStartDelay = 200;
var lsShowDelay = 8000;
var lsTimer = null; 
var reqObj;
var resultId = "resultdiv";
function lsInit(){
	try {
	gid(lsSearchId).onkeypress = lsStart;
	if (lsShowDelay > 0) {
		gid(lsSearchId).onblur = function () {
			setTimeout('lsHideResults()',lsShowDelay) 
		}
	}
	} catch(err) {} 
}
function lsStart() {
	if (lsTimer) { window.clearTimeout(lsTimer); }
	lsTimer = window.setTimeout("lsDoSearch()",lsStartDelay);
}
function lsDoSearch() {
	var s = gid(lsSearchId).value;
	if (s == "")
		return false;
	var lsUrl = lsReqUrl + "?search=" + s;
	resultId = "resultdiv";
	getXML(lsUrl);
}
function emDoSubmit() {
	var e = gid('emInput').value;
	if(e.length < 5 || e.indexOf('@') < 2) { 
		alert("please insert a valid email address");
	} else { 
		var emUrl = emReqUrl + "?email=" + e;
		resultId = "emailres";
		getXML(emUrl);
	}
	return false;
}
function getXML(url){
	if (window.XMLHttpRequest) {
		reqObj = new XMLHttpRequest();
		reqObj.onreadystatechange = procReq;
		reqObj.open("GET",url,true);
		reqObj.send(null);
	} else if (window.ActiveXObject) {
		reqObj = new ActiveXObject("Microsoft.XMLHTTP");
		if (reqObj) {
			reqObj.onreadystatechange = procReq;
			reqObj.open("GET", url, true);
			reqObj.send();
		}
	}
}
function procReq(){
	if (reqObj.readyState == 4) {
		if (reqObj.status == 200) {
			var res = gid(resultId);
			if(reqObj.responseXML){
				response = reqObj.responseXML.documentElement;
				res.innerHTML = response.getElementsByTagName('result')[0].firstChild.data;
			} else {
				res.innerHTML = reqObj.responseText;
			}
			res.style.display = '';
		} else {
			alert("There was a problem retrieving the XML data:\n" + reqObj.statusText);
		}
	}
}
function lsHideResults(){
	gid("resultdiv").innerHTML = '.. or <a href="http://www.jeroenwijering.com/?page=sitemap" title="sitemap">check the sitemap</a>';
}





/*-------------------------------------------------------------------
Wizard toggles and update
-------------------------------------------------------------------*/
var usedvars;
var flashvars;
var swfobjvars = {};
var xamlvars;

function toggleDisplay(itm) {
	if(gid(itm).style.display == 'block') {
		gid(itm).style.display = 'none';
	} else { 
		gid(itm).style.display = 'block';
	}
}
function showEmbed() {
	gid('embedcode').style.display = 'block';
	gid('embedswitch').style.display = 'block';
	gid('swfobjswitch').style.display = 'none';
	gid('swfobjcode').style.display = 'none';
}
function showSWFObj() {
	gid('embedcode').style.display = 'none';
	gid('embedswitch').style.display = 'none';
	gid('swfobjswitch').style.display = 'block';
	gid('swfobjcode').style.display = 'block';
}
function updatePreview() {
	getUsedVars();
	if(usedvars['source'].indexOf('xaml') > 0) {
		writeXAML();
		printXAML();
	} else {
		printEmbed();
		printSWFObj();
		writeSWFObj();
	}
	try { gid('tracecode').innerHTML = ''; } catch(err) {}
	return false;
}
function getUsedVars() {
	flashvars = "" ;
	xamlvars = "";
	cfg = new Object();
	usedvars = new Object();
	var ar1 = gid('varsform').getElementsByTagName('input');
	for (var i=0; i<ar1.length; i++) {
		if (ar1[i].value != '' && ar1[i].name != 'example') {
			usedvars[ar1[i].name] = ar1[i].value; 
		}
	}
	var ar2 = gid('varsform').getElementsByTagName('select');
	for (var i=0; i<ar2.length; i++) {
		if (ar2[i].value != '') {
			usedvars[ar2[i].name] = ar2[i].value; 
		}
	}
	for(var itm in usedvars) {
		if(itm != 'donations' && itm != 'source') {
			xamlvars += itm+":'"+usedvars[itm]+"',";
			if(itm != 'width' && itm != 'height' && itm != 'bgcolor' && itm != 'allowfullscreen') {
				cfg[itm] = usedvars[itm];
				flashvars += itm != 'tipjar.business' && itm != 'tipjar.title' && itm != 'tipjar.text' && itm != 'share_plugin' || usedvars['donations']=='true' ? "&amp;"+itm+"="+usedvars[itm] : '';
			}
		}
	}
	var plugs = $('playertype').value == 'live' ? ',yourlytics-1' : '';
	plugs += usedvars['share_plugin']=='true' ? ",viral-2" : '';
	
	plugs += ($('formw').serialize().match(/audio/)=='audio' && $('formw').serialize().match(/video/)!='video') ? "" : "" ;
	plugs += usedvars['donations']=='true' ? ",tipjar-1" : '';
//&amp;viral.oncomplete=false
	//flashvars += "&amp;zid=channel&amp;key="+clientid+"&amp;plugins=AdapTv_a"+plugs  +'&amp;viral.onpause=false'+($('playertype').value == 'live' ? "&amp;yourlytics.callback=http://www.sermonplayer.com/jw_callback.php":'');
	//flashvars += ((($('playertype').value == 'recent')||($('playertype').value == 'playlists')) ? 'chid='+cur_channel+'&amp;': '')+"zid=channel&amp;&amp;useadaptv=true&amp;key=4182sptv&amp;plugins=AdapTv_a"+plugs  +'&amp;viral.onpause=false'+($('playertype').value == 'live' ? "&amp;yourlytics.callback=http://www.mdsone.com/jw_callback.php":'');
	

	flashvars += (plugs != '' ? "&amp;plugins="+plugs.replace(',', '') : '')+'&amp;viral.callout=none'+($('playertype').value == 'live' ? "&amp;yourlytics.callback=http://www.sermonplayer.com/jw_callback.php":'');

	xamlvars = "{"+xamlvars.substr(0,xamlvars.length-1)+"}";
}
function writeSWFObj() {
//	usedvars['bgcolor'] = usedvars['bgcolor']==undefined ? false : usedvars['bgcolor'];
//	alert(usedvars['bgcolor']);
	var s1 = new SWFObject(usedvars['source'],"player",usedvars['width'],usedvars['height'],"9",'transparent',usedvars['allowfullscreen']);
//	s1.addVariable('plugins='+plugs);
	s1.addParam("allowfullscreen",usedvars['allowfullscreen']);
	s1.addParam("allowscriptaccess","always");
	s1.addParam("wmode","opaque");
        var embedCode = escape("<embed src=\""+usedvars['source']+"\" width=\""+usedvars['width']+"\" height=\""+usedvars['height']+"\" bgcolor=\"transparent\" allowscriptaccess=\"always\" allowfullscreen=\""+usedvars['allowfullscreen']+"\" flashvars=\""+flashvars.substr(5)+"\" />");
//        alert(flashvars+(usedvars['share_plugin']=='true' ? '&amp;embed.code='+embedCode : ''));
 	s1.addParam("flashvars",flashvars+(usedvars['share_plugin']=='true' ? '&amp;viral.embed='+embedCode : ''));
 s1.write("preview");
}
function printEmbed() {
//	var ebc = "&lt;embed<br/>src=\""+usedvars['source']+"\"<br/>width=\""+usedvars['width']+"\"<br/>height=\""+usedvars['height']+"\"<br/>bgcolor=\""+usedvars['bgcolor']+"\"<br/>allowscriptaccess=\"always\"<br/>allowfullscreen=\"true\"<br/>flashvars=\""+flashvars.substr(5)+"\"<br/>/&gt;";
//	var ebc1 = "\"&lt;embed\nsrc=\""+usedvars['source']+"\"\nwidth=\""+usedvars['width']+"\"\nheight=\""+usedvars['height']+"\"\nbgcolor=\""+usedvars['bgcolor']+"\"\nallowscriptaccess=\"always\"\nallowfullscreen=\""+usedvars['allowfullscreen']+"\"\nflashvars=\""+flashvars.substr(5)+"\"\n/&gt;\"";.
/*
*/
var embed_object = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" height="'+usedvars['height']+'" width="'+usedvars['width']+'" id="sn_player" align="middle">\n  <param name="allowFullScreen" value="'+usedvars['allowfullscreen']+'" />\n  <param name="allowScriptAccess" value="always" />\n  <param name="wmode" value="transparent" />\n  <param name="allownetworking" value="all" />\n  <param name="bgcolor" value="transparent" />\n  <param name="movie" value="'+usedvars['source']+'">\n  <PARAM name="flashvars" value="'+flashvars.substr(5)+'" />\n  <embed src="'+usedvars['source']+'" quality="high" height="'+usedvars['height']+'" width="'+usedvars['width']+'" id="sn_player" align="middle" allowScriptAccess="always" allowfullscreen="'+usedvars['allowfullscreen']+'" bgcolor="transparent" wmode="opaque" type="application/x-shockwave-flash" flashvars="'+flashvars.substr(5)+'" pluginspage="http://www.macromedia.com/go/getflashplayer">\n  </embed></object><a href="http://www.sermon.net" border="01">  <img src="http://www.sermon.net/images/poweredby.gif" border="0" height="1px" width="1px"></a>';

var embed_string =  '&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" height="'+usedvars['height']+'" width="'+usedvars['width']+'" id="sn_player" align="middle"&gt;\n  &lt;param name="allowFullScreen" value="'+usedvars['allowfullscreen']+'" /&gt;\n  &lt;param name="allowScriptAccess" value="always" /&gt;\n  &lt;param name="wmode" value="transparent" /&gt;\n  &lt;param name="allownetworking" value="all" /&gt;\n  &lt;param name="bgcolor" value="transparent" /&gt;\n  &lt;param name="movie" value="'+usedvars['source']+'"&gt;\n  &lt;PARAM name="flashvars" value="'+flashvars.substr(5) +(usedvars['share_plugin']=='true' ? "&viral.embed="+escape(embed_object) : "")+ '" /&gt;\n  &lt;embed src="'+usedvars['source']+'" quality="high" height="'+usedvars['height']+'" width="'+usedvars['width']+'" id="sn_player" align="middle" allowScriptAccess="always" allowfullscreen="'+usedvars['allowfullscreen']+'" bgcolor="transparent" wmode="opaque" type="application/x-shockwave-flash" flashvars="'+flashvars.substr(5) +(usedvars['share_plugin']=='true' ? "&viral.embed="+escape(embed_object) : "")+ '" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;\n  &lt;/embed&gt;&lt;/object&gt;&lt;a href="http://www.sermon.net" border="01"&gt;  &lt;img src="http://www.sermon.net/images/poweredby.gif" border="0" height="1px" width="1px"&gt;&lt;/a&gt;' ;
/*
        var ebc1 = escape("<embed  type='application/x-shockwave-flash' src=\""+usedvars['source']+"\" width=\""+usedvars['width']+"\" height=\""+usedvars['height']+"\" wmode=\"opaque\"  bgcolor=\"transparent\" allowscriptaccess=\"always\" allowfullscreen=\""+usedvars['allowfullscreen']+"\" flashvars=\""+flashvars.substr(5)+"\" />");
        
	var ebc = "&lt;embed  type=\"application/x-shockwave-flash\"\nsrc=\""+usedvars['source']+"\"\nwidth=\""+usedvars['width']+"\"\nheight=\""+usedvars['height']+"\"\nbgcolor=\"transparent\"\nallowscriptaccess=\"always\"\nallowfullscreen=\""+usedvars['allowfullscreen']+"\"\nflashvars=\""+flashvars.substr(5)+(usedvars['share_plugin']=='true' ? "&embed.code="+ebc1 : "")+"\"\n"+"/&gt;"; */
	
	
	try {
	    document.getElementById('embedcode').innerHTML =  embed_string; //ebcdocument.getElementById('preview').innerHTML;
	} catch(err) {    
	    alert(err.toString());
	}
}
function printSWFObj() {
	var swc = "&lt;script type=\"text/javascript\" src=\"http://www.jeroenwijering.com/embed/swfobject.js\"&gt;&lt;/script&gt;<br/>&nbsp;<br/>&lt;div id=\"player\"&gt;This text will be replaced&lt;/div&gt;<br/>&nbsp;<br/>&lt;script type=\"text/javascript\"&gt;<br/>var so = new SWFObject('"+usedvars['source']+"','mpl','"+usedvars['width']+"','"+usedvars['height']+"','9');<br/>so.addParam('allowscriptaccess','always');<br/>so.addParam('allowfullscreen','true');<br/>so.addParam('flashvars','"+flashvars+"');<br/>so.write('player');<br/>&lt;/script&gt;";
	try { document.getElementById('swfobjcode').innerHTML = swc;  } catch(err) {}
}
function writeXAML() {
	previewply.sendEvent('STOP');
	var cnt = gid('preview');
	var src = usedvars['source'];
	previewply = new jeroenwijering.Player(cnt,src,usedvars);
}
function printXAML() {
	var xlc = "&lt;script type='text/javascript' src=\"/embed/silverlight.js\"&gt;&lt;/script&gt;<br/>&lt;script type='text/javascript' src=\"/embed/wmvplayer.js\"&gt;&lt;/script&gt;<br/>&nbsp;<br/>&lt;div id=\"container\"&gt;&lt;/div&gt;<br/>&nbsp;<br/>&lt;script type=\"text/javascript\"&gt;<br/>&nbsp;var cnt = document.getElementById(\"container\");<br/>&nbsp;var src = '"+usedvars['source']+"';<br/>&nbsp;var cfg = "+xamlvars+";<br/>&nbsp;var ply = new jeroenwijering.Player(cnt,src,cfg);<br/>&lt;/script&gt;";
	document.getElementById('xamlcode').innerHTML = xlc;
}



/*-------------------------------------------------------------------
Player 3 javascript API
-------------------------------------------------------------------*/
function sendEvent(swf,typ,prm) { 
	thisMovie(swf).sendEvent(typ,prm); 
};
function getUpdate(typ,pr1,pr2,swf) {
	if(typ == "state" && swf == "jstest") {
		gid('stateshow').innerHTML = pr1;
	}
};
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);
};
/*-------------------------------------------------------------------
Player 4 javascript API
-------------------------------------------------------------------*/
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('player').getConfig();
	configobj = cfg;
	printData(cfg);
}
function printPlaylist() {
	tracing = false;
	var ply = thisMovie('player').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) {
	printTrace("PLAYER READY (id:"+obj['id']+",version:"+obj['version']+",client:"+obj['client']+')');
};
function submitSend() {
	var typ = gid('eventtype').value;
	var prm = gid('eventdata').value;
	thisMovie('player').sendEvent(typ,prm);
	return false;
};
function submitSubs() {
	var sbs = gid('subscription').value;
	var evt = sbs.substr(1);
	var typ = sbs.substr(0,1);
	if(typ == 'm') {
		thisMovie('player').addModelListener(evt,'tracer.trace');
	} else if (typ== 'c') {
		thisMovie('player').addControllerListener(evt,'tracer.trace');
	} else if (typ == 'v') {
		thisMovie('player').addViewListener(evt,'tracer.trace');
	}
	return false;
};
var tracer = new Object();
tracer.trace = function(cfg) {
	var txt = "";
	for(var itm in cfg) {
		txt += itm+": "+cfg[itm]+"\r\n";
	}
	alert(txt);
}


/*-------------------------------------------------------------------
Silverlight detection javascript
-------------------------------------------------------------------*/
function isSilverlightInstalled() {
	var isSilverlightInstalled = false;
	try {
		try {
			var slControl = new ActiveXObject('AgControl.AgControl');
			isSilverlightInstalled = true;
		} catch (e) {
			if ( navigator.plugins["Silverlight Plug-In"] ) {
				isSilverlightInstalled = true;
			}
		}
	}
	catch (e){}
	urchinTracker('/silverlight/'+isSilverlightInstalled);
}
