﻿//////////////////////////////////////
//                                  //
//        Wimpy Button Bridge       //
//             v 1.06               //
//            7/19/2011             //
//                                  //
//           ©2011 Plaino           //
//           Available at           //
//       www.wimpyplayer.com        //
//                                  //
//////////////////////////////////////

var wimpyButtonSwf			= "http://www.litmus.org.uk/wimpy/wimpy_button.swf";
var wimpyButtonImagePlay	= "http://www.litmus.org.uk/wimpy/b_play_small.png";
var wimpyButtonImagePause	= "http://www.litmus.org.uk/wimpy/b_pause_small.png";
var wimpyButtonReg			= "NyUyNyU3Q2I3eEhDeCU4MCU1Q0lsU1F6JTNDS2VKNFhKJTI5JTdDdXJtdnlXJTJD";
var wimpyButtonTheFile		= "";	// (Startup file) URL to file used to pre-populate the button with a media file.
var wimpyButtonAutoPlay		= "";	// "yes" or ""
var wimpyButtonLoopMe		= "";	// "yes" or ""
var wimpyButtonIcecast		= "";	// An integer or "". e.g. "20" -- Number of seconds between re-connections.
var wimpyButtonBufferAudio	= "";	// An integer or "". e.g. "3" -- Number of seconds worth of the media file to store before playing. (NOT related to icecast)



function wimpyButtonCheckLocal(){
	var loc = document.location.href;
	if(loc.substr(0,4) != "http"){
		var obj = document.getElementById("warningBox");
		obj.style.display = "block";
	}
}

function wimpyButtonTrackStarted(myFile_in){
	/*
	alert("Now Playing: " + myFile_in);
	//*/
}

function wimpyButtonTrackStopped(myFile_in){
	wimpyButtonState = 0;
	wimpyButtonResetGrapicStates();
	/*
	alert("Track Stopped: " + myFile_in);
	//*/
}

function wimpyButtonTrackDone(myFile_in){
	wimpyButtonState = 0;
	wimpyButtonResetGrapicStates();
	/*
	alert("Track Done: " + myFile_in);
	//*/
}


var wimpyButtonID = "wimpyButtonBridge";
var wimpyButtonUserAgent = navigator.appName.indexOf("Microsoft");
var wimpyButtonState = 0;
var wimpyButtonRAND = 0;
var wimpyButtonObjIDS = new Object();
var wimpyButtonCurrentFile = "";
var wimpyButtonAmIE = !+"\v1"

// NOTE: The "container" div is created dynamically and does NOT reference an existing DIV.
var wimpyButtonContainerID = "wimpyButtonBridgeTarget";


function wimpyButtonGetElement(id){
	return document.getElementById(id);
}

function wimpyButtonPause(){
	wimpyButtonState = 0;
	wimpyButtonGetElement(wimpyButtonID).js_wimpy_pause();
}
function wimpyButtonPlay(theFile){
	if(wimpyButtonState < 1){
		wimpyButtonState = 1;
		wimpyButtonCurrentFile = theFile;
		wimpyButtonGetElement(wimpyButtonID).js_wimpy_play(theFile);
	}
}
function wimpyButtonResetGrapicStates(){
	for(var prop in wimpyButtonObjIDS){
		var x = wimpyButtonGetElement(prop);
		x.src = wimpyButtonImagePlay;
	}
}
function wimpyButtonPlayPause(theFile){

	var evt = window.event || arguments.callee.caller.arguments[0];
	var obj = evt.target || evt.srcElement;
	if(!obj.id){
		obj.id = "wimpyButtonRAND" + (wimpyButtonRAND++);
	}
	wimpyButtonObjIDS[obj.id] = obj.id;
	for(var prop in wimpyButtonObjIDS){
		var x = wimpyButtonGetElement(prop);
		x.src = wimpyButtonImagePlay;
	}
	if(wimpyButtonCurrentFile != theFile && wimpyButtonState == 1){
		wimpyButtonState = 0;
	}
	
	if(wimpyButtonState == 1){
		obj.src = wimpyButtonImagePlay;
		wimpyButtonPause();
	} else {
		obj.src = wimpyButtonImagePause;
		wimpyButtonPlay(theFile);
	}
}

function wimpyButtonWrite(){

	wimpyButtonCheckLocal();

	var sizeW = "1";
	var sizeH = "1";

	var myNewline = "\n";

	var flashVars = "wimpyReg=" + wimpyButtonReg;

	if(wimpyButtonAutoPlay == "yes" || wimpyButtonAutoPlay == true){
		flashVars += "&autoplay=yes";
	}
	if(wimpyButtonLoopMe == "yes" || wimpyButtonLoopMe == true){
		flashVars += "&loopMe=yes";
	}

	if(wimpyButtonIcecast != ""){
		flashVars += "&icecast=" + wimpyButtonIcecast;
	}

	if(wimpyButtonBufferAudio != ""){
		flashVars += "&bufferAudio=" + wimpyButtonBufferAudio;
	}

	if(wimpyButtonTheFile != ""){
		flashVars += "&theFile=" + wimpyButtonTheFile;
	}
	
	
	var flashHTML = "";
	if(wimpyButtonAmIE){
		flashHTML += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + sizeW + '" height="' + sizeH + '" id="' + wimpyButtonID + '">' + myNewline;
	} else {
		flashHTML += '<object type="application/x-shockwave-flash" data="' + wimpyButtonSwf + '?' + flashVars + '" width="' + sizeW + '" height="' + sizeH + '" id="' + wimpyButtonID + '">' + myNewline;
	}

	flashHTML += '	<param name="movie" value="' + wimpyButtonSwf + '?' + flashVars + '" />' + myNewline;
	flashHTML += '	<param name="scale" value="noscale" />' + myNewline;
	flashHTML += '	<param name="salign" value="lt" />' + myNewline;
	flashHTML += '	<param name="allowScriptAccess" value="always" />' + myNewline;
	flashHTML += '	<param name="wmode" value="opaque" />' + myNewline;
	flashHTML += '	<param name="flashvars" value="' + flashVars + ' />' + myNewline;
	flashHTML += '</object>' + myNewline;
	//flashHTML += '<textarea name="textarea" id="textarea" wrap="VIRTUAL" cols="40" rows="10">'+flashHTML+'</textarea></p>' + myNewline;
	
	var newdiv = document.createElement('div');
	newdiv.setAttribute("id",wimpyButtonContainerID);
	newdiv.style.cssText = 'position:fixed;top:0px;left:0px;width:'+sizeW+'px;height:'+sizeW+'px;';
	newdiv.innerHTML = flashHTML;
	document.body.appendChild(newdiv);
	
}

function wimpyButtonOnLoadHandler(init_fxn){
    var old_init = window.onload;
    var new_init = init_fxn;
    window.onload = function(){
         if (typeof(old_init)=="function"){
            old_init();
         }
         new_init();
    }
    return this;
}

new wimpyButtonOnLoadHandler(wimpyButtonWrite);

