Options > Anarchy
Author: An-archos
Author URI: http://an-archos.com/
Version: 2.0
//
For non-WordPress pages call the anarchy.js script in the html head:
.
//
Acknowledgments: Anarchy.js is based on various hacks of excellent scripts - 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/) - Jeroen Wijering's Flv Player (http://www.jeroenwijering.com/?item=Flash_Video_Player) with Tradebit modifications (http://www.tradebit.com) - EMFF inspired WP Audio Player mp3 player (http://www.1pixelout.net/code/audio-player-wordpress-plugin). Flash embeds - Michael Bester's Kimili Flash Embed (http://www.kimili.com/plugins/kml_flashembed) utilising Geoff Stearns' excellent standards compliant Flash detection and embedding JavaScript (http://blog.deconcept.com/swfobject/).
//
Disclaimer: Use at your own risk. No warranty expressed or implied is provided.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
*/
require_once(dirname(__FILE__).'/../../../wp-config.php');
include_once('config.php');
include_once('autohyperlink-urls.php');
include_once('wysiwyg.php');
global $wp_db_version;
if ( 3664 >= $wp_db_version) {
include_once('buttonsnap.php');
}
load_plugin_textdomain('anarchy',$path = 'wp-content/plugins/anarchy_media');
/**********************************************************************
* Append Flash, Director and Video buttons to editor
**********************************************************************/
function anarchy_addbuttons() {
global $wp_db_version;
// Check for WordPress 2.1+
if ( 3664 <= $wp_db_version ) {
if ('true' == get_user_option('rich_editing')) {
add_filter("mce_plugins", "anarchy_mce_plugins", 10);
add_filter("mce_buttons", "anarchy_mce_buttons", 10);
add_action('tinymce_before_init','anarchy_external_plugins');
add_action('admin_footer', 'anarchy_add_quicktags');
} else {
add_action('admin_footer', 'anarchy_add_quicktags');
}
} else {
// Use buttonsnap
global $anarchy_url, $flashbutton, $directorbutton, $videobutton;
// Add a seperator before our items
buttonsnap_separator();
// Make our buttons
$thisfolder = $anarchy_url;
if ($flashbutton == 'true') {
buttonsnap_jsbutton($thisfolder . '/tmce/anarchyswf/images/flash.gif', 'Embed swf', "edInsertMedia('Flash SWF', 'swf', 'swf');");
}
if ($directorbutton == 'true') {
buttonsnap_jsbutton($thisfolder . '/tmce/anarchydcr/images/dir.gif', 'Embed dcr', "edInsertMedia('Director', 'dcr', 'dcr');");
}
if ($videobutton == 'true') {
buttonsnap_jsbutton($thisfolder . '/tmce/anarchymedia/images/media.gif', 'Embed players', "edInsertVideoSite();");
}
}
}
// tinyMCE functions
function anarchy_mce_plugins($plugins) {
array_push($plugins, "-anarchyswf","-anarchydcr","-anarchymedia","bold");
return $plugins;
}
function anarchy_mce_buttons($buttons) {
array_push($buttons, "separator", "anarchyswf", "anarchydcr","anarchymedia");
return $buttons;
}
function anarchy_external_plugins() {
global $anarchy_url, $flashbutton, $directorbutton, $videobutton;
if ($flashbutton == 'true') {
echo 'tinyMCE.loadPlugin("anarchyswf", "'.$anarchy_url.'/tmce/anarchyswf/");' . "\n";
}
if ($directorbutton == 'true') {
echo 'tinyMCE.loadPlugin("anarchydcr", "'.$anarchy_url.'/tmce/anarchydcr/");' . "\n";
}
if ($videobutton == 'true') {
echo 'tinyMCE.loadPlugin("anarchymedia", "'.$anarchy_url.'/tmce/anarchymedia/");' . "\n";
}
return;
}
// Add quicktags for html source editor
function anarchy_add_quicktags() {
global $flashbutton, $directorbutton, $videobutton;
echo <<
EOT;
}
// Load the javascript for the editor buttons
function anarchy_videoquicktags_javascript() {
global $anarchy_url;
echo '' . "\n";
}
// Add admin options page
function anarchy_add_options_page() {
add_options_page('Anarchy Options', 'AMP', 'manage_options', basename(dirname(__FILE__)) .'/anarchy-options.php', 'anarchy_options_page');
}
/*****************************************************************
* Start Vipers Quicktags - used for director dcr and legacy
*****************************************************************/
function vipers_videoquicktags_replacer($content) {
global $youtubewidth, $youtubeheight, $googlewidth, $googleheight, $ifilmwidth, $ifilmheight;
$standard_youtube = '[kml_flashembed movie="http://www.youtube.com/v/$1" width="'.$youtubewidth.'" height="'.$youtubeheight.'" wmode="transparent" /]
';
$standard_gvideo = '[kml_flashembed movie="http://video.google.com/googleplayer.swf?docId=$1" width="'.$googlewidth.'" height="'.$googleheight.'"/]
';
$searchfor = array(
'/\[youtube](.*?)\[\/youtube]/i',
'/\[youtube width="(.*?)" height="(.*?)"](.*?)\[\/youtube]/i',
'/\[googlevideo](.*?)\[\/googlevideo]/i',
'/\[googlevideo width="(.*?)" height="(.*?)"](.*?)\[\/googlevideo]/i',
'/\[ifilm](.*?)\[\/ifilm]/i',
'/\[ifilm width="(.*?)" height="(.*?)"](.*?)\[\/ifilm]/i',
'/\[swf width="(.*?)" height="(.*?)"](.*?)\[\/swf]/i',
'/\[dcr width="(.*?)" height="(.*?)"](.*?)\[\/dcr]/i',
);
$replacewith = array(
// YouTube
$standard_youtube,
'[kml_flashembed movie="http://www.youtube.com/v/$3" width="$1" height="$2" wmode="transparent" /]
',
// Google Video
$standard_gvideo,
'[kml_flashembed movie="http://video.google.com/googleplayer.swf?docId=$3" width="$1" height="$2"/]
',
// IFILM
'[kml_flashembed movie="http://www.ifilm.com/efp" width="'.$ifilmwidth.'" height="'.$ifilmheight.'" fvars="flvbaseclip=$1"/]
',
'[kml_flashembed movie="http://www.ifilm.com/efp" width="$1" height="$2" fvars="flvbaseclip=$3"/]
',
// Flash swf file
'[kml_flashembed movie="$3" width="$1" height="$2" /]
',
// DCR files
'
',
);
return preg_replace($searchfor, $replacewith, $content);
}
/*******************************************************************
* Start Anarchy.js
********************************************************************/
if( stristr($_SERVER['REQUEST_URI'], 'anarchy.js') ) {
header('Content-type: text/javascript');
?>
/*
Anarchy Media Player 2.0
http://an-archos.com/anarchy-media-player
Makes any mp3, Flash flv, Quicktime mov, mp4, m4v, m4a, m4b and 3gp as well as wmv, avi and asf links playable directly on your webpage while optionally hiding the download link. Flash movies, including YouTube etc, use SWFObject javascript embeds - usage examples at http://blog.deconcept.com/swfobject/#examples
Anarchy.js is based on various hacks of excellent scripts - 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/) - Jeroen Wijering's Flv Player (http://www.jeroenwijering.com/?item=Flash_Video_Player) with Tradebit modifications (http://www.tradebit.com) - EMFF inspired WP Audio Player mp3 player (http://www.1pixelout.net/code/audio-player-wordpress-plugin). Flash embeds via Geoff Stearns' excellent standards compliant Flash detection and embedding JavaScript (http://blog.deconcept.com/swfobject/).
Distributed under GNU General Public License.
For non-WP pages call script in :
*/
// Configure plugin options below
var anarchy_url = '' // http address for the anarchy-media plugin folder (no trailing slash).
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 viddownloadLink = '' // Download link for flv and wmv links: One of 'none' (to turn downloading off) or 'inline' to display the link. ***Use $qtkiosk for qt***.
// MP3 Flash player options
var playerloop = '' // Loop the music ... yes or no?
var mp3downloadLink = '' // Download for mp3 links: One of 'none' (to turn downloading off) or 'inline' to display the link.
// Hex colours for the MP3 Flash Player (minus the #)
var playerbg ='' // Background colour
var playerleftbg = '' // Left background colour
var playerrightbg = '' // Right background colour
var playerrightbghover = '' // Right background colour (hover)
var playerlefticon = '' // Left icon colour
var playerrighticon = '' // Right icon colour
var playerrighticonhover = '' // Right icon colour (hover)
var playertext = '' // Text colour
var playerslider = '' // Slider colour
var playertrack = '' // Loader bar colour
var playerloader = '' // Progress track colour
var playerborder = '' // Progress track border colour
// Flash video player options
var flvwidth = '' // Width of the flv player
var flvheight = '' // Height of the flv player (allow 20px for controller)
var flvfullscreen = '' // Show fullscreen button, true or false (no auto return on Safari, double click in IE6)
//Quicktime player options
var qtloop = '' // Loop Quicktime movies: true or false.
var qtwidth = '' // Width of your Quicktime player
var qtheight = '' // Height of your Quicktime player (allow 16px for controller)
var qtkiosk = '' // Allow downloads, false = yes, true = no.
// Required Quicktime version ='' - To set the minimum version go to Quicktime player section below and edit (quicktimeVersion >= ) lines 228 and 266.
//WMV player options
var wmvwidth = '' // Width of your WMV player
var wmvheight = '' // Height of your WMV player (allow 45px for WMV controller or 16px if QT player - ignored by WinIE)
// CSS styles
var mp3playerstyle = '' // Flash mp3 player css style
var mp3imgmargin = '' // Mp3 button image css margins
var vidimgmargin = '' // Video image placeholder css margins
/* ------------------ End configuration options --------------------- */
/* --------------------- 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' +
' ' +
' ' +
' ' +
' ' +
' '
img.parentNode.insertBefore(Anarchy.Mp3.player, img.nextSibling)
}},
destroy: function() {
Anarchy.Mp3.playimg.src = anarchy_url+'/images/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 = {
go: function() {
var all = document.getElementsByTagName('a')
for (var i = 0, o; o = all[i]; i++) {
if(o.href.match(/\.flv$/i) && o.className!="amplink") {
o.style.display = viddownloadLink
url = o.href
var flvplayer = document.createElement('span')
flvplayer.innerHTML = '' +
' ' +
'' +
' '
o.parentNode.insertBefore(flvplayer, o)
}}}}
/* ----------------------- QUICKTIME DETECT ---------------------------
// Bits of code by Chris Nott (chris[at]dithered[dot]com) and
// Geoff Stearns (geoff@deconcept.com, http://www.deconcept.com/)
--------------------------------------------------------------------- */
function getQuicktimeVersion() {
var n=navigator;
var nua=n.userAgent;
var saf=(nua.indexOf('Safari')!=-1);
var quicktimeVersion = 0;
if (saf) {
quicktimeVersion='9.0';
}
else {
var agent = navigator.userAgent.toLowerCase();
// NS3+, Opera3+, IE5+ Mac (support plugin array): check for Quicktime plugin in plugin array
if (navigator.plugins != null && navigator.plugins.length > 0) {
for (i=0; i < navigator.plugins.length; i++ ) {
var plugin =navigator.plugins[i];
if (plugin.name.indexOf("QuickTime") > -1) {
quicktimeVersion = parseFloat(plugin.name.substring(18));
}
}
}
else if (window.ActiveXObject) {
execScript('on error resume next: qtObj = IsObject(CreateObject("QuickTime.QuickTime.4"))','VBScript');
if (qtObj == true) {
quicktimeVersion = 100;
}
else {
quicktimeVersion = 0;
}
}
}
return quicktimeVersion;
}
/* ----------------------- Quicktime player ------------------------ */
if(typeof(Anarchy) == 'undefined') Anarchy = {}
Anarchy.MOV = {
playimg: null,
player: null,
go: function() {
var all = document.getElementsByTagName('a')
Anarchy.MOV.preview_images = { }
for (var i = 0, o; o = all[i]; i++) {
if(o.href.match(/\.mov$|\.mp4$|\.m4v$|\.m4b$|\.3gp$/i) && o.className!="amplink") {
o.style.display = 'none'
var img = document.createElement('img')
Anarchy.MOV.preview_images[i] = document.createElement('img') ;
Anarchy.MOV.preview_images[i].src = o.href + '.jpg' ;
Anarchy.MOV.preview_images[i].defaultImg = img ;
Anarchy.MOV.preview_images[i].replaceDefault = function() {
this.defaultImg.src = this.src ;
}
Anarchy.MOV.preview_images[i].onload = Anarchy.MOV.preview_images[i].replaceDefault ;
img.src = anarchy_url+'/images/vid_play.gif'
img.title = 'Click to play video'
img.style.margin = vidimgmargin
img.style.padding = '0px'
img.style.display = 'block'
img.style.border = 'none'
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+'/images/vid_play.gif'
img.style.display = 'none';
Anarchy.MOV.playimg = img;
Anarchy.MOV.player = document.createElement('p')
var quicktimeVersion = getQuicktimeVersion()
if (quicktimeVersion >= ) {
Anarchy.MOV.player.innerHTML = ' '
img.parentNode.insertBefore(Anarchy.MOV.player, img.nextSibling)
}
else
Anarchy.MOV.player.innerHTML = ' '
img.parentNode.insertBefore(Anarchy.MOV.player, img.nextSibling)
}},
destroy: function() {
},
makeToggle: function(img, url) { return function(){ Anarchy.MOV.toggle(img, url) }}
}
/* --------------------- MPEG 4 Audio Quicktime player ---------------------- */
if(typeof(Anarchy) == 'undefined') Anarchy = {}
Anarchy.M4a = {
playimg: null,
player: null,
go: function() {
var all = document.getElementsByTagName('a')
for (var i = 0, o; o = all[i]; i++) {
if(o.href.match(/\.m4a$/i) && o.className!="amplink") {
o.style.display = 'none'
var img = document.createElement('img')
img.src = anarchy_url+'/images/audio_mp4_play.gif'; img.title = 'Click to listen'
img.style.margin = mp3imgmargin
img.style.border = 'none'
img.style.cursor = 'pointer'
img.onclick = Anarchy.M4a.makeToggle(img, o.href)
o.parentNode.insertBefore(img, o)
}}},
toggle: function(img, url) {
if (Anarchy.M4a.playimg == img) Anarchy.M4a.destroy()
else {
if (Anarchy.M4a.playimg) Anarchy.M4a.destroy()
img.src = anarchy_url+'/images/audio_mp4_stop.gif'; Anarchy.M4a.playimg = img;
Anarchy.M4a.player = document.createElement('p')
var quicktimeVersion = getQuicktimeVersion()
if (quicktimeVersion >= ) {
Anarchy.M4a.player.innerHTML = ' '
img.parentNode.insertBefore(Anarchy.M4a.player, img.nextSibling)
}
else
Anarchy.M4a.player.innerHTML = ' '
img.parentNode.insertBefore(Anarchy.M4a.player, img.nextSibling)
}},
destroy: function() {
Anarchy.M4a.playimg.src = anarchy_url+'/images/audio_mp4_play.gif'; Anarchy.M4a.playimg = null
Anarchy.M4a.player.removeChild(Anarchy.M4a.player.firstChild); Anarchy.M4a.player.parentNode.removeChild(Anarchy.M4a.player); Anarchy.M4a.player = null
},
makeToggle: function(img, url) { return function(){ Anarchy.M4a.toggle(img, url) }}
}
/* ----------------------- WMV 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(/\.asf$|\.avi$|\.wmv$/i) && o.className!="amplink") {
o.style.display = viddownloadLink
var img = document.createElement('img')
img.src = anarchy_url+'/images/vid_play.gif'; img.title = 'Click to play video'
img.style.margin = '0px'
img.style.padding = '0px'
img.style.display = 'block'
img.style.border = 'none'
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+'/images/vid_play.gif'
img.style.display = 'none';
Anarchy.WMV.playimg = img;
Anarchy.WMV.player = document.createElement('span')
if(navigator.userAgent.indexOf('Mac') != -1) {
Anarchy.WMV.player.innerHTML = ' '
img.parentNode.insertBefore(Anarchy.WMV.player, img.nextSibling)
} else {
if (navigator.plugins && navigator.plugins.length) {
Anarchy.WMV.player.innerHTML = '' +
' '
img.parentNode.insertBefore(Anarchy.WMV.player, img.nextSibling)
} else {
Anarchy.WMV.player.innerHTML = ' ' +
' ' +
' ' +
' ' +
' ' +
' ' +
'' +
' ' +
' '
img.parentNode.insertBefore(Anarchy.WMV.player, img.nextSibling)
}}
}},
destroy: function() {
Anarchy.WMV.playimg.src = anarchy_url+'/images/vid_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.M4a.go)
Anarchy.addLoadEvent(Anarchy.WMV.go)
/**
* SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
*
* SWFObject is (c) 2006 Geoff Stearns and is released under the MIT License:
* http://www.opensource.org/licenses/mit-license.php
*
*/
if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16.push(key+"="+_18[key]);}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="";_19+=" ";var _1d=this.getParams();for(var key in _1d){_19+=" ";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+=" ";}_19+=" ";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.majorfv.major){return true;}if(this.minorfv.minor){return true;}if(this.rev=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);}if(Array.prototype.push==null){Array.prototype.push=function(_32){this[this.length]=_32;return this.length;};}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all["id"];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;
/* --------------------- Anarchy Video Quicktags --------------------- */
function edInsertVideoSite()
{
var videoURL = prompt('Please enter the full HTTP address (url) to your: \nmp3, mov etc. media file or your GOOGLE, YOUTUBE, METACAFE, iFILM, REVVER, MYSPACE, ATOMFILMS or GoEar web page. \n\nFor DAILYMOTION and BREAK videos and iTUNES IMIXES just copy and paste the code from their embeddable players.','Enter your player url here');
if (videoURL)
{
mediavid = new RegExp("^http:\/\/(.*)(\.mp3$|\.flv$|\.mov$|\.mp4$|\.m4v$|\.m4a$|\.m4b$|\.3gp$|\.wmv$|\.avi$|\.asf$)")
googlevid = new RegExp("video\.google\.(.*)?\/videoplay")
youtubevid = new RegExp("youtube\.com\/watch")
dailymotionvid = new RegExp("dailymotion\.com\/swf")
ifilmvid = new RegExp("ifilm\.com\/video\/")
metacafevid = new RegExp("metacafe\.com\/watch\/")
goearvid = new RegExp("goear\.com\/listen\.php")
myspacevid = new RegExp("vids\.myspace\.com\/index\.cfm")
revvervid = new RegExp(/one\.revver\.com\/watch\/|flash\.revver\.com\/player\/1\.0\/player\.swf/)
ipodplayer = new RegExp("ax\.phobos\.apple\.com\.edgesuite\.net\/flash\/feedreader\.swf")
atomvid = new RegExp("atomfilms\.com(:80)?\/film")
breakvid = new RegExp("embed\.break\.com\/")
if(mediavid.test(videoURL)) {
anarchy_settext('Download Title');
}
else if(googlevid.test(videoURL)) {
videoID1 = videoURL.replace(/\.(.*)\/videoplay/, '.google.com/googleplayer.swf')
videoID = videoID1.replace(/&(.*)?/, "")
anarchy_settext('[kml_flashembed movie="' + videoID + '" width="" height="" wmode="transparent" /]
');
}
else if(youtubevid.test(videoURL)) {
videoID1 = videoURL.replace(/watch\?v\=/, 'v/')
videoID = videoID1.replace(/&(.*)?/, "")
anarchy_settext('[kml_flashembed movie="' + videoID + '" width="" height="" wmode="transparent" /]
');
}
else if(dailymotionvid.test(videoURL)) {
videoID = videoURL.replace(/^(.*)src=\"(.*)\" type=\"(.*)$/i, "$2")
anarchy_settext('[kml_flashembed movie="' + videoID + '" width="" height="" wmode="transparent" /]
');
}
else if(ifilmvid.test(videoURL)) {
videoID1 = videoURL.replace(/http:\/\/www\.ifilm\.com\/video\/([a-z0-9])/i, "$1")
videoID = videoID1.replace(/\?(.*)?/, "")
anarchy_settext('[kml_flashembed movie="http://www.ifilm.com/efp" width="" height="" fvars="flvbaseclip=' + videoID + '" wmode="transparent" /]
');
}
else if(metacafevid.test(videoURL)) {
videoID1 = videoURL.replace(/watch/i, "fplayer")
videoID = videoID1.replace(/\/$/, ".swf")
anarchy_settext('[kml_flashembed movie="' + videoID + '" width="" height="" wmode="transparent" /]
');
}
else if(goearvid.test(videoURL)) {
videoID1 = videoURL.replace(/http:\/\/www\.goear\.com\/listen\.php\?v=([a-z0-9])/i, "$1")
videoID = videoID1.replace(/\&(.*)?/, "")
anarchy_settext('[kml_flashembed movie="http://www.goear.com/files/localplayer.swf" width="366" height="75" fvars="file=' + videoID + '" wmode="transparent" /]
');
}
else if(myspacevid.test(videoURL)) {
videoID = videoURL.replace(/http:\/\/vids\.myspace\.com\/index\.cfm\?fuseaction=vids\.individual&videoid=([a-z0-9])/i, "$1")
anarchy_settext('[kml_flashembed movie="http://lads.myspace.com/videos/vplayer.swf" width="" height="" fvars="m=' + videoID + ';type=video" wmode="transparent" /]
');
}
else if(revvervid.test(videoURL)) {
videoID = videoURL.replace(/^http:\/\/one\.revver\.com\/watch\/(.*)\/flv\/affiliate\/(.*)/i, "$1 ; affiliateId=$2")
videoID = videoID.replace(/^http:\/\/one\.revver\.com\/watch\/(.*)\/flv$/i, "$1 ; affiliateId=")
videoID = videoID.replace(/^http:\/\/one\.revver\.com\/watch\/(.*)$/i, "$1 ; affiliateId=")
videoID = videoID.replace(/^http:\/\/flash\.revver\.com\/player\/1\.0\/player\.swf\?mediaId=(.*)&affiliateId=(.*)/i, "$1 ; affiliateId=$2")
videoID = videoID.replace(/^(.*)flashvars=\"mediaId=(.*)&affiliateId=(.*)\" wmode(.*)$/i, "$2 ; affiliateId=$3")
anarchy_settext('[kml_flashembed movie="http://flash.revver.com/player/1.0/player.swf" width="" height="" fvars="mediaId=' + videoID + '" wmode="transparent" /]
');
}
else if(ipodplayer.test(videoURL)) {
videoID = videoURL.replace(/^(.*)src=\"(.*)\" quality=\"(.*)$/i, "$2")
anarchy_settext('[kml_flashembed movie="' + videoID + '" width="300" height="330" wmode="transparent" /]
');
}
else if(atomvid.test(videoURL)) {
videoID = videoURL.replace(/http:\/\/www\.atomfilms\.com(:80)?\/film\/(.*)/i, "$2")
videoID = videoID.replace(/\?(.*)?/, "")
videoID = videoID.replace(/\.jsp/, "")
anarchy_settext('[kml_flashembed movie="http://www.atomfilms.com:80/a/autoplayer/shareEmbed.swf" width="" height="" fvars="keyword=' + videoID + '" /]
');
}
else if(breakvid.test(videoURL)) {
videoID = videoURL.replace(/^(.*)src=\"(.*)\" type=\"(.*)$/i, "$2")
anarchy_settext('[kml_flashembed movie="' + videoID + '" width="" height="" wmode="transparent" /]
');
}
else {
alert("Anarchy doesn't recognise this URL")
}
}
}
function edInsertMedia(nicename, extension, tag)
{
if (tag == 'swf')
{
var URL = prompt('Please enter the FULL URL to the ' + nicename + ' movie file:\nExample: http://www.yoursite.com/mymovie.' + extension,'Enter URL here');
if (URL)
{
var width = prompt('How many pixels WIDE is this movie?');
if (width)
{
var height = prompt('How many pixels TALL is this movie?');
if (height)
{
anarchy_settext('[kml_flashembed movie="' + URL + '" width="' + width +'" height="' + height + '" wmode="transparent" /]
');
}
}
}
}
else {
var URL = prompt('Please enter the FULL URL to the ' + nicename + ' movie file:\nExample: http://www.yoursite.com/mymovie.' + extension,'Enter URL here');
if (URL)
{
var width = prompt('How many pixels WIDE is this movie?');
if (width)
{
var height = prompt('How many pixels TALL is this movie?');
if (height)
{
anarchy_settext('[' + tag + ' width="' + width + '" height="' + height + '"]' + URL + '[/' + tag + ']
');
}
}
}
}
}
function anarchy_settext(text) {
if (document.getElementById("quicktags").style.display == "none") {
window.tinyMCE.execInstanceCommand('content', 'mceInsertContent', false, text);
tinyMCE.execCommand("mceCleanup");
}
else {
edInsertContent(edCanvas, text);
}
if(window.tinyMCE) {
window.tinyMCE.execInstanceCommand('content', 'mceInsertContent', false, text);
tinyMCE.execCommand("mceCleanup");
}
else {
edInsertContent(edCanvas, text);
}
}
[\s\n\r]*)??(([\[<]KML_(FLASH|SWF)EMBED.*\/[\]>])|([\[<]KML_(FLASH|SWF)EMBED.*[\]>][\[<]\/KML_(FLASH|SWF)EMBED[\]>]))([\s\n\r]*<\/p>)??/Umi';
$result = preg_replace_callback($pattern,'kml_flashembed_parse_kfe_tags',$content);
return $result;
}
/***********************************************************************
* Parse out the KFE Tags
************************************************************************/
function kml_flashembed_parse_kfe_tags($match) {
$r = "";
# Clean up and untexturize tag
$strip = array('[KML_FLASHEMBED',
'][/KML_FLASHEMBED]',
'[kml_flashembed',
'][/kml_flashembed]',
'[KML_SWFEMBED',
'][/KML_SWFEMBED]',
'[kml_swfembed',
'][/kml_swfembed]',
'/]',
' ',
' ',
' ',
' ',
'/>',
'\n',
' ',
' ',
'',
'
'
);
$elements = str_replace($strip, '', $match[0]);
$elements = preg_replace("/=(\s*)\"/", "==`", $elements);
$elements = preg_replace("/=(\s*)″/", "==`", $elements);
$elements = preg_replace("/=(\s*)′/", "==`", $elements);
$elements = preg_replace("/=(\s*)”/", "==`", $elements);
$elements = preg_replace("/\"(\s*)/", "`| ", $elements);
$elements = preg_replace("/″(\s*)/", "`|", $elements);
$elements = preg_replace("/′(\s*)/", "`|", $elements);
$elements = preg_replace("/”(\s*)/", "`|", $elements);
$elements = preg_replace("/″(\s*)/", "`|", $elements);
$elements = preg_replace("/‘(\s*)/", "'", $elements);
$elements = preg_replace("/’(\s*)/", "'", $elements);
$attpairs = preg_split('/\|/', $elements, -1, PREG_SPLIT_NO_EMPTY);
$atts = array();
// Create an associative array of the attributes
for ($x = 0; $x < count($attpairs); $x++) {
$attpair = explode('==', $attpairs[$x]);
$attn = trim(strtolower($attpair[0]));
$attv = preg_replace("/`/", "", trim($attpair[1]));
$atts[$attn] = $attv;
}
if (isset($atts['movie']) && isset($atts['height']) && isset($atts['width'])) {
$atts['height'] = ($atts['height']{strlen($atts['height']) - 1} == "%") ? '"' . $atts['height'] . '"' : $atts['height'];
$atts['width'] = ($atts['width']{strlen($atts['width']) - 1} == "%") ? '"' . $atts['width'] . '"' : $atts['width'];
$atts['fversion'] = (isset($atts['fversion'])) ? $atts['fversion'] : 6;
if (isset($atts['fvars'])) {
$fvarpair_regex = "/(?", $atts['alttext']) : '';
// If we're not serving up a feed, generate the script tags
if ($GLOBALS['kml_request_type'] != "feed") {
$r = kml_flashembed_build_fo_script($atts);
} else {
$r = kml_flashembed_build_object_tag($atts);
}
}
return $r;
}
/***********************************************************************
* Build the Javascript from the tags
************************************************************************/
function kml_flashembed_build_fo_script($atts) {
if (is_array($atts)) extract($atts);
$out = array();
$ret = "";
$rand = mt_rand(); // For making sure this instance is unique
// Extract the filename minus the extension...
$swfname = (strrpos($movie, "/") === false) ?
$movie :
substr($movie, strrpos($movie, "/") + 1, strlen($movie));
$swfname = (strrpos($swfname, ".") === false) ?
$swfname :
substr($swfname, 0, strrpos($swfname, "."));
// ... to use as a default ID if an ID is not defined.
$id = (isset($id)) ? $id : "fm_" . $swfname;
// ... as well as an empty target if that isn't defined.
if (empty($target)) {
$targname = "fo_targ_" . $swfname . $rand;
$classname = (empty($targetclass)) ? "flashmovie" : $targetclass;
// Create a target div
$out[] = ''.$alttext.'
';
$target = $targname;
}
// Set variables for rendering JS
$movie = '"'.$movie.'",';
$id = '"'.$id.'",';
$width = '"'.$width.'",';
$height = '"'.$height.'",';
$fversion = '"'.$fversion.'",';
$bgcolor = (isset($bgcolor)) ? '"'.$bgcolor.'",' : '"",';
$useexpressinstall = (isset($useexpressinstall) && $useexpressinstall == 'true') ? true : false;
$quality = (isset($quality)) ? '"'.$quality.'",' : '"",';
$xiredirecturl = (isset($xiredirecturl)) ? '"'.$xiredirecturl.'",' : '"",';
$redirecturl = (isset($redirecturl)) ? '"'.$redirecturl.'",' : '"",';
$detectKey = (isset($detectKey)) ? '"'.$detectKey.'"' : '""';
$fvars = (isset($fvars)) ? $fvars : array();
$out[] = '';
$out[] = '';
// Add NoScript content
if (!empty($noscript)) {
$out[] = '';
$out[] = ' ' . $noscript;
$out[] = ' ';
}
$out[] = '';
$ret .= join("\n", $out);
return $ret;
}
/***********************************************************************
* Build a Satay Object for RSS feeds
************************************************************************/
function kml_flashembed_build_object_tag($atts) {
$out = array();
if (is_array($atts)) extract($atts);
// Build a query string based on the $fvars attribute
$querystring = (count($fvars) > 0) ? "?" : "";
for ($i = 0; $i < count($fvars); $i++) {
$thispair = trim($fvars[$i]);
$nvpair = explode("=",$thispair);
$name = trim($nvpair[0]);
$value = "";
for ($j = 1; $j < count($nvpair); $j++) { // In case someone passes in a fvars with additional "="
$value .= trim($nvpair[$j]);
$value = preg_replace('/&/', '&', $value);
if ((count($nvpair) - 1) != $j) {
$value .= "=";
}
}
// Prune out JS or PHP values
if (preg_match("/^\\$\\{.*\\}/i", $value)) { // JS
$endtrim = strlen($value) - 3;
$value = substr($value, 2, $endtrim);
$value = str_replace(';', '', $value);
} else if (preg_match("/^\\?\\{.*\\}/i", $value)) { // PHP
$endtrim = strlen($value) - 3;
$value = substr($value, 2, $endtrim);
$value = '"'.eval("return " . $value).'"';
} else {
$value = '"'.$value.'"';
}
$querystring .= $name . '=' . $value;
if ($i > count($fvars)) {
$querystring .= "&";
}
}
$out[] = '';
$out[] = '';
$out[] = ' ';
if (isset($play)) $out[] = ' ';
if (isset($loop)) $out[] = ' ';
if (isset($menu)) $out[] = ' ';
if (isset($scale)) $out[] = ' ';
if (isset($wmode)) $out[] = ' ';
if (isset($align)) $out[] = ' ';
if (isset($salign)) $out[] = ' ';
if (isset($base)) $out[] = ' ';
if (isset($allowscriptaccess)) $out[] = ' ';
$out[] = ' ';
$ret .= join("\n", $out);
return $ret;
}
/***********************************************************************
* Toolbar Button Functions
* Props to Alex Rabe for fuguring out the WP 2.1 buttonsnap workaround
* http://alexrabe.boelinger.com/?page_id=46
************************************************************************/
function kml_flashembed_addbuttons() {
global $wp_db_version;
// Check for WordPress 2.1+ and activated RTE
if ( 3664 <= $wp_db_version && 'true' == get_user_option('rich_editing') ) {
// add the button for wp21 in a new way
add_filter("mce_plugins", "kml_flashembed_button_plugin", 0);
add_filter('mce_buttons', 'kml_flashembed_button', 0);
add_action('tinymce_before_init','kml_flashembed_button_script');
} else {
// Do it in the old way with buttonsnap
$button_image_url = buttonsnap_dirname(__FILE__) . '/kfe/images/flash.gif';
buttonsnap_separator();
buttonsnap_ajaxbutton($button_image_url, __('Kimili Flash Embed', 'kfe'), 'kml_flashembed_insert_hook');
add_filter('kml_flashembed_insert_hook', 'kml_flashembed_insert_tag');
}
}
// used to insert button in wordpress 2.1x editor
function kml_flashembed_button($buttons) {
array_push($buttons, "separator", "kfe");
return $buttons;
}
// Tell TinyMCE that there is a plugin (wp2.1)
function kml_flashembed_button_plugin($plugins) {
array_push($plugins, "kfe");
return $plugins;
}
// Load the TinyMCE plugin : editor_plugin.js (wp2.1)
function kml_flashembed_button_script() {
$pluginURL = buttonsnap_dirname(__FILE__) . '/kfe/';
echo 'tinyMCE.loadPlugin("kfe", "'.$pluginURL.'");'."\n";
return;
}
function kml_flashembed_insert_tag($selectedtext) {
return '[kml_flashembed movie="'. $selectedtext . '" height="" width="" /]';
}
/***********************************************************************
* Trigger Function
************************************************************************/
function kmlDoObStart()
{
ob_start('kml_flashembed');
}
/***********************************************************************
* Add the calls to filters and anarchy.js
************************************************************************/
function kml_flashembed_add_flashobject_js() {
global $anarchy_url;
echo '';
}
if (preg_match("/(\/\?feed=|\/feed|\/wpmu-feed)/i",$_SERVER['REQUEST_URI'])) {
// RSS Feeds
$kml_request_type = "feed";
} else {
// Everything else
$kml_request_type = "nonfeed";
if (isset($wp_version)) {
add_action('wp_head', 'kml_flashembed_add_flashobject_js');
add_action('admin_head', 'anarchy_add_options_page');
add_action('edit_form_advanced', 'anarchy_videoquicktags_javascript');
add_action('edit_page_form', 'anarchy_videoquicktags_javascript');
remove_filter('the_content', 'wptexturize');
add_filter('the_content', 'vipers_videoquicktags_replacer', 11);
add_filter('the_content', 'wptexturize', 12);
add_action('init', 'anarchy_addbuttons');
}
}
// Apply all over except the admin section
if (strpos($_SERVER['REQUEST_URI'], 'wp-admin') === false ) {
add_action('template_redirect','kmlDoObStart');
}
?>