/*
Anarchy Media Player
http://an-archos.com Updated 26-May-2006
Makes any mp3, Flash flv or Quicktime mov links playable directly on your webpage while optionally hiding the download link. 
Based on a hack of the excellent Del.icio.us mp3 Playtagger javascript (http://del.icio.us/help/playtagger) as used in Taragana's Del.icio.us mp3 Player Plugin (http://blog.taragana.com/index.php/archive/taraganas-delicious-mp3-player-wordpress-plugin/) 
and using the PodPress flv player (http://www.mightyseek.com/podpress/) and WP Audio Player mp3 player (http://www.1pixelout.net/code/audio-player-wordpress-plugin)
distributed under GNU General Public License.

For non-WP pages call script in <HEAD>:
<script type="text/javascript" src="http://PATH TO PLAYER DIRECTORYanarchy.js"></script>
*/
// Configure plugin options below
var anarchy_url = 'images/player/' // http address for the directory containing the anarchy-media plugin folder (no trailing slash). Use mu-plugins for WPMu!
var accepted_domains=new Array("") 	// OPTIONAL - Restrict script use to your domains. Add root domain name (minus 'http' or 'www') in quotes, add extra domains in quotes and separated by comma.
var mp3downloadLink = 'none'	// Download for mp3 links: One of 'none' (to turn downloading off) or 'inline' to display the link.
var viddownloadLink = 'none'	// Download for flv and mov links: One of 'none' (to turn downloading off) or 'inline' to display the link.
var qtloop = 'true'		// Loop Quicktime movies: true or false.

// MP3 Flash player options
var playerloop = 'no'		// Loop the music ... yes or no?
// Hex colours for the Flash Player (minus the #)
var playerbg ='ffffff'				// Background colour
var playerleftbg = 'BBBBBB'			// Left background colour
var playerrightbg = 'BBBBBB'		// Right background colour
var playerrightbghover = '666666'	// Right background colour (hover)
var playerlefticon = '000000'		// Left icon colour
var playerrighticon = '000000'		// Right icon colour
var playerrighticonhover = 'FFFFFF'	// Right icon colour (hover)
var playertext = '333333'			// Text colour
var playerslider = '666666'			// Slider colour
var playertrack = '999999'			// Loader bar colour
var playerloader = '666666'			// Progress track colour
var playerborder = '333333'			// Progress track border colour

// Flash video player options
var flvwidth = '320' 	// Width of the flv player
var flvheight = '240'	// Height of the flv player (allow 20px for controller)

//Quicktime player options
var qtloop = 'true'		// Loop Quicktime movies: true or false.
var qtwidth = '320'		// Width of your Quicktime player
var qtheight = '240'	// Height of your Quicktime player (allow 16px for controller)

//WMV player options
var wmvwidth = '320'		// Width of your WMV player
var wmvheight = '240'	// Height of your WMV player (allow 45px for WMV controller or 16px if QT player - ignored by WinIE)

// CSS styles
var mp3playerstyle = 'vertical-align:bottom; margin:10px 0 5px 2px;'	// Flash mp3 player css style
var mp3imgmargin = '0.5em 0.5em -4px 5px'									// Mp3 button image css margins
var vidplayerstyle = 'margin:0px; padding:0'				// Video player css style
var vidimgmargin = '5px'									// Video image placeholder css margins
/*
	No need to edit below unless you want to add Flash/QuickTime/WinMedia code for different players in which case make new Anarchy classes and edit the respective object tags.
*/
/* --------------------- Domain Check ----------------------- 
//Lite protection only, you can also use .htaccss if you're paranoid - see http://evolt.org/node/60180
var domaincheck=document.location.href //retrieve the current URL of user browser
var accepted_ok=false //set acess to false by default

if (domaincheck.indexOf("http")!=-1){ //if this is a http request
for (r=0;r<accepted_domains.length;r++){
if (domaincheck.indexOf(accepted_domains[r])!=-1){ //if a match is found
accepted_ok=true //set access to true, and break out of loop
break
}
}
}
else
accepted_ok=true

if (!accepted_ok){
alert("You\'re not allowed to directly link to this .js file on our server!")
history.back(-1)
}

/* --------------------- Flash MP3 audio player ----------------------- */
if(typeof(Anarchy) == 'undefined') Anarchy = {}
Anarchy.Mp3 = {
	playimg: null,
	player: null,
	go: function() {
		var all = document.getElementsByTagName('a')
		for (var i = 0, o; o = all[i]; i++) {
			if(o.href.match(/\.mp3$/i)) {
				o.style.display = mp3downloadLink
				var img = document.createElement('img')
				img.src = anarchy_url+'audio_mp3_play.gif'; img.title = 'Click to listen'
				img.style.margin = mp3imgmargin
				img.style.cursor = 'pointer'
				img.onclick = Anarchy.Mp3.makeToggle(img, o.href)
				o.parentNode.insertBefore(img, o)
	}}},
	toggle: function(img, url) {
		if (Anarchy.Mp3.playimg == img) Anarchy.Mp3.destroy()
		else {
			if (Anarchy.Mp3.playimg) Anarchy.Mp3.destroy()
			img.src = anarchy_url+'audio_mp3_stop.gif'; Anarchy.Mp3.playimg = img;
			Anarchy.Mp3.player = document.createElement('span')
			Anarchy.Mp3.player.innerHTML = '<br /><object style="'+mp3playerstyle+'" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"' +
			'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"' +
			'width="290" height="24" id="player" align="middle">' +
			'<param name="wmode" value="transparent" />' +
			'<param name="allowScriptAccess" value="sameDomain" />' +
			'<param name="flashVars" value="bg=0x'+playerbg+'&amp;leftbg=0x'+playerleftbg+'&amp;rightbg=0x'+playerrightbg+'&amp;rightbghover=0x'+playerrightbghover+'&amp;lefticon=0x'+playerlefticon+'&amp;righticon=0x'+playerrighticon+'&amp;righticonhover=0x'+playerrighticonhover+'&amp;text=0x'+playertext+'&amp;slider=0x'+playerslider+'&amp;track=0x'+playertrack+'&amp;loader=0x'+playerloader+'&amp;border=0x'+playerborder+'&amp;autostart=yes&amp;loop='+playerloop+'&amp;soundFile='+url+'" />' +
			'<param name="movie" value="'+anarchy_url+'player.swf" /><param name="quality" value="high" />' +
			'<embed style="'+mp3playerstyle+'" src="'+anarchy_url+'player.swf" flashVars="bg=0x'+playerbg+'&amp;leftbg=0x'+playerleftbg+'&amp;rightbg=0x'+playerrightbg+'&amp;rightbghover=0x'+playerrightbghover+'&amp;lefticon=0x'+playerlefticon+'&amp;righticon=0x'+playerrighticon+'&amp;righticonhover=0x'+playerrighticonhover+'&amp;text=0x'+playertext+'&amp;slider=0x'+playerslider+'&amp;track=0x'+playertrack+'&amp;loader=0x'+playerloader+'&amp;border=0x'+playerborder+'&amp;autostart=yes&amp;loop='+playerloop+'&amp;soundFile='+url+'" '+
			'quality="high" wmode="transparent" width="290" height="24" name="player"' +
			'align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"' +
			' pluginspage="http://www.macromedia.com/go/getflashplayer" /></object><br />'
			img.parentNode.insertBefore(Anarchy.Mp3.player, img.nextSibling)
	}},
	destroy: function() {
		Anarchy.Mp3.playimg.src = anarchy_url+'audio_mp3_play.gif'; Anarchy.Mp3.playimg = null
		Anarchy.Mp3.player.removeChild(Anarchy.Mp3.player.firstChild); Anarchy.Mp3.player.parentNode.removeChild(Anarchy.Mp3.player); Anarchy.Mp3.player = null
	},
	makeToggle: function(img, url) { return function(){ Anarchy.Mp3.toggle(img, url) }}
}

/* ----------------- Flash flv video player ----------------------- */

if(typeof(Anarchy) == 'undefined') Anarchy = {}
Anarchy.FLV = {
	playimg: null,
	player: null,
	go: function() {
		var all = document.getElementsByTagName('a')
		for (var i = 0, o; o = all[i]; i++) {
			if(o.href.match(/\.flv$/i)) {
				o.style.display = viddownloadLink
				var img = document.createElement('img')
				img.src = anarchy_url+'flv_play.gif'; img.title = 'Click to play video'
				img.style.margin = vidimgmargin
				img.style.padding = '0px'
				img.style.cursor = 'pointer'
				img.height = flvheight
				img.width = flvwidth
				img.onclick = Anarchy.FLV.makeToggle(img, o.href)
				o.parentNode.insertBefore(img, o)
	}}},
	toggle: function(img, url) {
		if (Anarchy.FLV.playimg == img) Anarchy.FLV.destroy()
		else {
			if (Anarchy.FLV.playimg) Anarchy.FLV.destroy()
			img.src = anarchy_url+'flv_play.gif'
			img.style.display = 'none'; Anarchy.FLV.playimg = img;
			Anarchy.FLV.player = document.createElement('span')
			Anarchy.FLV.player.innerHTML = '<object style="'+vidplayerstyle+'" type="application/x-shockwave-flash" wmode="transparent" data="'+anarchy_url+'flvplayer.swf?file='+url+'" height="'+flvheight+'" width="'+flvwidth+'">' +
			'<param name="movie" value="'+anarchy_url+'flvplayer.swf?file='+url+'"> <param name="wmode" value="transparent">' +
			'<embed src="'+anarchy_url+'flvplayer.swf?file='+url+'" ' + 
			'style="'+vidplayerstyle+'" ' +
			'width="'+flvwidth+'" height="'+flvheight+'" name="flvplayer" align="middle" ' + 
			'play="true" loop="false" quality="high" allowScriptAccess="sameDomain" ' +
			'type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">' + 
			'</embed></object>'
			img.parentNode.insertBefore(Anarchy.FLV.player, img.nextSibling)
	}},
	destroy: function() {
		Anarchy.FLV.playimg.src = anarchy_url+'flv_play.gif'
		Anarchy.FLV.playimg.style.display = 'inline'; Anarchy.FLV.playimg = null
		Anarchy.FLV.player.removeChild(Anarchy.FLV.player.firstChild); Anarchy.FLV.player.parentNode.removeChild(Anarchy.FLV.player); Anarchy.FLV.player = null
	},
	makeToggle: function(img, url) { return function(){ Anarchy.FLV.toggle(img, url) }}
}

/* ----------------- Quicktime mov video player ----------------------- */

if(typeof(Anarchy) == 'undefined') Anarchy = {}
Anarchy.MOV = {
	playimg: null,
	player: null,
	go: function() {
		var all = document.getElementsByTagName('a')
		for (var i = 0, o; o = all[i]; i++) {
			if(o.href.match(/\.mov$/i)) {
				o.style.display = viddownloadLink
				var img = document.createElement('img')
				img.src = anarchy_url+'flv_play.gif'; img.title = 'Click to play video'
				img.style.margin = vidimgmargin
				img.style.padding = '0px'
				img.style.cursor = 'pointer'
				img.height = qtheight
				img.width = qtwidth
				img.onclick = Anarchy.MOV.makeToggle(img, o.href)
				o.parentNode.insertBefore(img, o)
	}}},
	toggle: function(img, url) {
		if (Anarchy.MOV.playimg == img) Anarchy.MOV.destroy()
		else {
			if (Anarchy.MOV.playimg) Anarchy.MOV.destroy()
			img.src = anarchy_url+'flv_play.gif'
			img.style.display = 'none'; Anarchy.MOV.playimg = img;
			Anarchy.MOV.player = document.createElement('span')
			Anarchy.MOV.player.innerHTML = '<embed src="'+url+'"  style="'+vidplayerstyle+'" width="'+qtwidth+'" height="'+qtheight+'" loop="'+qtloop+'" autoplay="true" controller="true" border="0" pluginspage="http://www.apple.com/quicktime/download/indext.html" type="video/quicktime" kioskmode="true" scale="tofit"></embed> '
          img.parentNode.insertBefore(Anarchy.MOV.player, img.nextSibling)
	}},
	destroy: function() {
		Anarchy.MOV.playimg.src = anarchy_url+'flv_play.gif'
		Anarchy.MOV.playimg.style.display = 'inline'; Anarchy.MOV.playimg = null
		Anarchy.MOV.player.removeChild(Anarchy.MOV.player.firstChild); Anarchy.MOV.player.parentNode.removeChild(Anarchy.MOV.player); Anarchy.MOV.player = null
	},
	makeToggle: function(img, url) { return function(){ Anarchy.MOV.toggle(img, url) }}
}

/* ----------------- WMV video player ----------------------- */

if(typeof(Anarchy) == 'undefined') Anarchy = {}
Anarchy.WMV = {
	playimg: null,
	player: null,
	go: function() {
		var all = document.getElementsByTagName('a')
		for (var i = 0, o; o = all[i]; i++) {
			if(o.href.match(/\.wmv$/i)) {
				o.style.display = viddownloadLink
				var img = document.createElement('img')
				img.src = anarchy_url+'flv_play.gif'; img.title = 'Click to play video'
				img.style.margin = vidimgmargin
				img.style.padding = '0px'
				img.style.cursor = 'pointer'
				img.height = qtheight
				img.width = qtwidth
				img.onclick = Anarchy.WMV.makeToggle(img, o.href)
				o.parentNode.insertBefore(img, o)
	}}},
	toggle: function(img, url) {
		if (Anarchy.WMV.playimg == img) Anarchy.WMV.destroy()
		else {
			if (Anarchy.WMV.playimg) Anarchy.WMV.destroy()
			img.src = anarchy_url+'flv_play.gif'
			img.style.display = 'none'; Anarchy.WMV.playimg = img;
			Anarchy.WMV.player = document.createElement('span')
			Anarchy.WMV.player.innerHTML = '<object  id="MediaPlayer" style="'+vidplayerstyle+'" classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" width='+wmvwidth+' height='+wmvheight+' codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,7,1112" standby="Loading Microsoft Windows Media Player components..." type="application/x-oleobject"> ' +
          '<param name="FileName" value="'+url+'"> ' +
          '<param name="autoStart" value="true"> ' +
          '<param name="showControls" value="true"> ' +
		  '<param name="transparentatStart" value="false"> ' +
		  '<param name="animationatStart" value="false"> ' +
          '<embed type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" Name="MediaPlayer" src="'+url+'" width="'+wmvwidth+'" height="'+wmvheight+'" AutoStart="true" ShowStatusBar="0" volume="-1"></embed> ' +
          '</object>'
          img.parentNode.insertBefore(Anarchy.WMV.player, img.nextSibling)
	}},
	destroy: function() {
		Anarchy.WMV.playimg.src = anarchy_url+'flv_play.gif'
		Anarchy.WMV.playimg.style.display = 'inline'; Anarchy.WMV.playimg = null
		Anarchy.WMV.player.removeChild(Anarchy.WMV.player.firstChild); Anarchy.WMV.player.parentNode.removeChild(Anarchy.WMV.player); Anarchy.WMV.player = null
	},
	makeToggle: function(img, url) { return function(){ Anarchy.WMV.toggle(img, url) }}
}

/* ----------------- Trigger players onload ----------------------- */

Anarchy.addLoadEvent = function(f) { var old = window.onload
	if (typeof old != 'function') window.onload = f
	else { window.onload = function() { old(); f() }}
}

Anarchy.addLoadEvent(Anarchy.Mp3.go)
Anarchy.addLoadEvent(Anarchy.FLV.go)
Anarchy.addLoadEvent(Anarchy.MOV.go)
Anarchy.addLoadEvent(Anarchy.WMV.go)