CKEditor.
The error came from some script in Application.js
This commit is contained in:
1 parent
964440fa86
commit
0969f6b6cc
660 files changed
+119303
-30
No files matched your search
@@ -0,0 +1,266 @@
|
||||
/* ******************************************
|
||||
* FileProgress Object
|
||||
* Control object for displaying file info
|
||||
* ****************************************** */
|
||||
|
||||
function FileThumb(element_id) {
|
||||
this.element = $('#' + element_id);
|
||||
this.init();
|
||||
}
|
||||
|
||||
FileThumb.prototype.init = function(){
|
||||
this.element.find('div.FCKThumb').each(function(){
|
||||
FileThumb.observe(this);
|
||||
});
|
||||
}
|
||||
|
||||
FileThumb.observe = function(element){
|
||||
var element = $(element);
|
||||
|
||||
element.unbind('mouseover');
|
||||
element.unbind('mouseout');
|
||||
element.unbind('click');
|
||||
|
||||
element.bind('mouseover', function(){ $(this).addClass('FCKSelectedBox') } );
|
||||
element.bind('mouseout', function(){ $(this).removeClass('FCKSelectedBox') } );
|
||||
element.find('div.FCKAsset').bind('click', function(){ setUrl( $(this).find('img.image').attr('alt') ); return false; } );
|
||||
}
|
||||
|
||||
function ToolBar(element_id){
|
||||
this.container = document.getElementById(element_id);
|
||||
this.buttons = new Array();
|
||||
|
||||
this.table = null;
|
||||
}
|
||||
|
||||
ToolBar.prototype.clear = function(){
|
||||
this.buttons = new Array();
|
||||
}
|
||||
|
||||
ToolBar.prototype.init = function(){
|
||||
this.table = document.createElement('table');
|
||||
this.table.appendChild(document.createElement("TBODY"));
|
||||
this.table.border = 0;
|
||||
this.table.setAttribute('cellspacing', 0);
|
||||
this.table.setAttribute('cellpadding', 0);
|
||||
this.table.className = "TB_Toolbar";
|
||||
|
||||
var row = this.table.tBodies[0].insertRow(0);
|
||||
var cell = row.insertCell(row.cells.length);
|
||||
|
||||
div = document.createElement('div');
|
||||
div.className = 'TB_Start';
|
||||
div.innerHTML = " "
|
||||
cell.appendChild(div);
|
||||
|
||||
this.init_buttons(row);
|
||||
|
||||
this.container.appendChild(this.table);
|
||||
}
|
||||
|
||||
ToolBar.prototype.init_buttons = function(row){
|
||||
|
||||
for(var i = 0; i < this.buttons.length; i++)
|
||||
{
|
||||
var cell = row.insertCell(row.cells.length);
|
||||
this.buttons[i].init();
|
||||
cell.appendChild(this.buttons[i].element);
|
||||
}
|
||||
}
|
||||
|
||||
function Button(title, text, image){
|
||||
this.title = title;
|
||||
this.text = text;
|
||||
this.image = image;
|
||||
|
||||
this.callback = function(){};
|
||||
this.element = null;
|
||||
}
|
||||
|
||||
Button.prototype.init = function(){
|
||||
this.element = document.createElement('div');
|
||||
this.element.title = this.title;
|
||||
this.element.className = "TB_Button";
|
||||
|
||||
table = document.createElement('table');
|
||||
table.appendChild(document.createElement("TBODY"));
|
||||
table.border = 0;
|
||||
table.setAttribute('cellspacing', 0);
|
||||
table.setAttribute('cellpadding', 0);
|
||||
|
||||
var row = table.tBodies[0].insertRow(0);
|
||||
var cell = row.insertCell(row.cells.length);
|
||||
|
||||
image = document.createElement('img');
|
||||
image.src = '/javascripts/ckeditor/images/' + this.image;
|
||||
image.className = 'TB_Button_Image';
|
||||
|
||||
cell.appendChild(image);
|
||||
|
||||
var cell = row.insertCell(row.cells.length);
|
||||
cell.className = 'TB_Button_Text';
|
||||
cell.innerHTML = this.text;
|
||||
row.appendChild(cell);
|
||||
|
||||
var cell = row.insertCell(row.cells.length);
|
||||
image = document.createElement('img');
|
||||
image.src = '/javascripts/ckeditor/images/spacer.gif';
|
||||
image.className = 'TB_Button_Padding';
|
||||
cell.appendChild(image);
|
||||
|
||||
this.element.appendChild(table);
|
||||
|
||||
this.element.onclick = this.callback;
|
||||
this.element.onmouseover = function addButtonHover() { this.className = "TB_Button_Off_Over"; }
|
||||
this.element.onmouseout = function removeButtonHover() { this.className = "TB_Button"; }
|
||||
}
|
||||
|
||||
function FileProgress(file, targetID) {
|
||||
this.fileProgressID = "divFileProgress";
|
||||
|
||||
this.fileProgressWrapper = document.getElementById(this.fileProgressID);
|
||||
if (!this.fileProgressWrapper) {
|
||||
this.fileProgressWrapper = document.createElement("div");
|
||||
this.fileProgressWrapper.className = "progressWrapper";
|
||||
this.fileProgressWrapper.id = this.fileProgressID;
|
||||
|
||||
this.fileProgressElement = document.createElement("div");
|
||||
this.fileProgressElement.className = "progressContainer";
|
||||
|
||||
var progressCancel = document.createElement("a");
|
||||
progressCancel.className = "progressCancel";
|
||||
progressCancel.href = "#";
|
||||
progressCancel.style.visibility = "hidden";
|
||||
progressCancel.appendChild(document.createTextNode(" "));
|
||||
|
||||
var progressText = document.createElement("div");
|
||||
progressText.className = "progressName";
|
||||
progressText.appendChild(document.createTextNode(file.name));
|
||||
|
||||
var progressBar = document.createElement("div");
|
||||
progressBar.className = "progressBarInProgress";
|
||||
|
||||
var progressStatus = document.createElement("div");
|
||||
progressStatus.className = "progressBarStatus";
|
||||
progressStatus.innerHTML = " ";
|
||||
|
||||
this.fileProgressElement.appendChild(progressCancel);
|
||||
this.fileProgressElement.appendChild(progressText);
|
||||
this.fileProgressElement.appendChild(progressStatus);
|
||||
this.fileProgressElement.appendChild(progressBar);
|
||||
|
||||
this.fileProgressWrapper.appendChild(this.fileProgressElement);
|
||||
|
||||
document.getElementById(targetID).appendChild(this.fileProgressWrapper);
|
||||
//fadeIn(this.fileProgressWrapper, 0);
|
||||
|
||||
} else {
|
||||
this.fileProgressElement = this.fileProgressWrapper.firstChild;
|
||||
this.fileProgressElement.childNodes[1].firstChild.nodeValue = file.name;
|
||||
}
|
||||
|
||||
this.height = this.fileProgressWrapper.offsetHeight;
|
||||
|
||||
}
|
||||
FileProgress.prototype.setProgress = function (percentage) {
|
||||
this.fileProgressElement.className = "progressContainer green";
|
||||
this.fileProgressElement.childNodes[3].className = "progressBarInProgress";
|
||||
this.fileProgressElement.childNodes[3].style.width = percentage + "%";
|
||||
};
|
||||
FileProgress.prototype.setComplete = function () {
|
||||
this.fileProgressElement.className = "progressContainer blue";
|
||||
this.fileProgressElement.childNodes[3].className = "progressBarComplete";
|
||||
this.fileProgressElement.childNodes[3].style.width = "";
|
||||
|
||||
};
|
||||
FileProgress.prototype.setError = function () {
|
||||
this.fileProgressElement.className = "progressContainer red";
|
||||
this.fileProgressElement.childNodes[3].className = "progressBarError";
|
||||
this.fileProgressElement.childNodes[3].style.width = "";
|
||||
|
||||
};
|
||||
FileProgress.prototype.setCancelled = function () {
|
||||
this.fileProgressElement.className = "progressContainer";
|
||||
this.fileProgressElement.childNodes[3].className = "progressBarError";
|
||||
this.fileProgressElement.childNodes[3].style.width = "";
|
||||
|
||||
};
|
||||
FileProgress.prototype.setStatus = function (status) {
|
||||
this.fileProgressElement.childNodes[2].innerHTML = status;
|
||||
};
|
||||
|
||||
FileProgress.prototype.toggleCancel = function (show, swfuploadInstance) {
|
||||
this.fileProgressElement.childNodes[0].style.visibility = show ? "visible" : "hidden";
|
||||
if (swfuploadInstance) {
|
||||
var fileID = this.fileProgressID;
|
||||
this.fileProgressElement.childNodes[0].onclick = function () {
|
||||
swfuploadInstance.cancelUpload(fileID);
|
||||
return false;
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
FileProgress.prototype.createThumbnail = function(serverData) {
|
||||
var object = jQuery.parseJSON(serverData);
|
||||
var container = document.getElementById('container');
|
||||
var asset = (typeof(object.asset) == 'undefined') ? object : object.asset;
|
||||
|
||||
var image_src = null;
|
||||
var image_alt = null;
|
||||
var file_size = null;
|
||||
var file_name = null;
|
||||
var file_date = null;
|
||||
|
||||
if (typeof asset == 'undefined')
|
||||
return;
|
||||
|
||||
image_alt = asset.url;
|
||||
file_size = asset.size;
|
||||
file_name = asset.filename;
|
||||
file_date = asset.format_created_at;
|
||||
|
||||
image_src = asset.url_thumb;
|
||||
image_alt = asset.url_content;
|
||||
|
||||
var thumb = document.createElement('DIV');
|
||||
thumb.className = 'FCKThumb';
|
||||
|
||||
var div = document.createElement('DIV');
|
||||
div.className = 'FCKAsset';
|
||||
|
||||
var table = document.createElement('TABLE');
|
||||
table.appendChild(document.createElement("TBODY"));
|
||||
table.border = 0;
|
||||
table.setAttribute('cellspacing', 0);
|
||||
table.setAttribute('cellpadding', 0);
|
||||
table.setAttribute('width', 100);
|
||||
table.setAttribute('height', 100);
|
||||
|
||||
var row = table.tBodies[0].insertRow(0);
|
||||
var cell = row.insertCell(row.cells.length);
|
||||
cell.setAttribute('align', 'center');
|
||||
cell.setAttribute('valign', 'middle');
|
||||
|
||||
cell.innerHTML = "<img src='" + image_src + "' alt='" + image_alt + "' title='" + file_name + "' class='image' onerror=\"this.src='/javascripts/ckeditor/images/ckfnothumb.gif'\" />"
|
||||
|
||||
var div_name = document.createElement('DIV');
|
||||
div_name.className = "FCKFileName";
|
||||
div_name.innerHTML = file_name;
|
||||
|
||||
var div_date = document.createElement('DIV');
|
||||
div_date.className = "FCKFileDate";
|
||||
div_date.innerHTML = file_date;
|
||||
|
||||
var div_size = document.createElement('DIV');
|
||||
div_size.className = "FCKFileSize";
|
||||
div_size.innerHTML = file_size;
|
||||
|
||||
div.appendChild(table);
|
||||
div.appendChild(div_name);
|
||||
div.appendChild(div_date);
|
||||
div.appendChild(div_size);
|
||||
thumb.appendChild(div);
|
||||
|
||||
container.appendChild(thumb);
|
||||
FileThumb.observe(thumb);
|
||||
};
|
||||
@@ -0,0 +1,181 @@
|
||||
function setUrl(url)
|
||||
{
|
||||
CKEDITOR.tools.callFunction(CKEditorFuncNum, url);
|
||||
window.close();
|
||||
}
|
||||
|
||||
function uploadButton(button)
|
||||
{
|
||||
$('#fj').toggle();
|
||||
}
|
||||
|
||||
function uploadStart(file) {
|
||||
try {
|
||||
/* I don't want to do any file validation or anything, I'll just update the UI and
|
||||
return true to indicate that the upload should start.
|
||||
It's important to update the UI here because in Linux no uploadProgress events are called. The best
|
||||
we can do is say we are uploading.
|
||||
*/
|
||||
var progress = new FileProgress(file, this.customSettings.progressTarget);
|
||||
progress.setStatus("Loading...");
|
||||
progress.setProgress(0);
|
||||
//progress.toggleCancel(true, this);
|
||||
}
|
||||
catch (ex) {}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function fileQueued(file) {
|
||||
try {
|
||||
var progress = new FileProgress(file, this.customSettings.progressTarget);
|
||||
progress.setStatus("Preparing...");
|
||||
progress.setProgress(0);
|
||||
progress.toggleCancel(true, this);
|
||||
|
||||
var e = document.getElementById('divFileProgressContainer');
|
||||
e.style.display = '';
|
||||
} catch (ex) {
|
||||
this.debug(ex);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function fileQueueError(file, errorCode, message) {
|
||||
try {
|
||||
if (errorCode === SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED) {
|
||||
alert("You have attempted to queue too many files.\n" + (message === 0 ? "You have reached the upload limit." : "You may select " + (message > 1 ? "up to " + message + " files." : "one file.")));
|
||||
return;
|
||||
}
|
||||
|
||||
var progress = new FileProgress(file, this.customSettings.progressTarget);
|
||||
progress.setError();
|
||||
progress.toggleCancel(false);
|
||||
|
||||
switch (errorCode) {
|
||||
case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
|
||||
progress.setStatus("File is too big.");
|
||||
this.debug("Error Code: File too big, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
|
||||
break;
|
||||
case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
|
||||
progress.setStatus("Cannot upload Zero Byte files.");
|
||||
this.debug("Error Code: Zero byte file, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
|
||||
break;
|
||||
case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
|
||||
progress.setStatus("Invalid File Type.");
|
||||
this.debug("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
|
||||
break;
|
||||
default:
|
||||
if (file !== null) {
|
||||
progress.setStatus("Unhandled Error");
|
||||
}
|
||||
this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
|
||||
break;
|
||||
}
|
||||
} catch (ex) {
|
||||
this.debug(ex);
|
||||
}
|
||||
}
|
||||
|
||||
function fileDialogComplete(numFilesSelected, numFilesQueued) {
|
||||
try {
|
||||
if (numFilesSelected > 0) {
|
||||
//document.getElementById(this.customSettings.cancelButtonId).disabled = false;
|
||||
}
|
||||
|
||||
this.startUpload();
|
||||
} catch (ex) {
|
||||
this.debug(ex);
|
||||
}
|
||||
}
|
||||
|
||||
function uploadProgress(file, bytesLoaded) {
|
||||
|
||||
try {
|
||||
var percent = Math.ceil((bytesLoaded / file.size) * 100);
|
||||
|
||||
var progress = new FileProgress(file, this.customSettings.upload_target);
|
||||
progress.setProgress(percent);
|
||||
if (percent === 100) {
|
||||
progress.setStatus("Create thumbnail...");
|
||||
progress.toggleCancel(false, this);
|
||||
} else {
|
||||
progress.setStatus("Loading...");
|
||||
progress.toggleCancel(true, this);
|
||||
}
|
||||
} catch (ex) {
|
||||
this.debug(ex);
|
||||
}
|
||||
}
|
||||
|
||||
function uploadSuccess(file, serverData) {
|
||||
try {
|
||||
var progress = new FileProgress(file, this.customSettings.progressTarget);
|
||||
progress.setComplete();
|
||||
progress.setStatus("Completed.");
|
||||
progress.toggleCancel(false);
|
||||
|
||||
progress.createThumbnail(serverData);
|
||||
|
||||
} catch (ex) {
|
||||
this.debug(ex);
|
||||
}
|
||||
}
|
||||
|
||||
function uploadComplete(file) {
|
||||
try {
|
||||
/* I want the next upload to continue automatically so I'll call startUpload here */
|
||||
if (this.getStats().files_queued > 0) {
|
||||
//this.startUpload();
|
||||
} else {
|
||||
var progress = new FileProgress(file, this.customSettings.upload_target);
|
||||
progress.setComplete();
|
||||
progress.setStatus("All pictures are successfully processed.");
|
||||
progress.toggleCancel(false);
|
||||
}
|
||||
} catch (ex) {
|
||||
this.debug(ex);
|
||||
}
|
||||
}
|
||||
|
||||
function uploadError(file, errorCode, message) {
|
||||
var progress;
|
||||
try {
|
||||
switch (errorCode) {
|
||||
case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
|
||||
try {
|
||||
progress = new FileProgress(file, this.customSettings.upload_target);
|
||||
progress.setCancelled();
|
||||
progress.setStatus("Canceled");
|
||||
progress.toggleCancel(false);
|
||||
}
|
||||
catch (ex1) {
|
||||
this.debug(ex1);
|
||||
}
|
||||
break;
|
||||
case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
|
||||
try {
|
||||
progress = new FileProgress(file, this.customSettings.upload_target);
|
||||
progress.setCancelled();
|
||||
progress.setStatus("Stoped");
|
||||
progress.toggleCancel(true);
|
||||
}
|
||||
catch (ex2) {
|
||||
this.debug(ex2);
|
||||
}
|
||||
case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
|
||||
break;
|
||||
default:
|
||||
alert(message);
|
||||
break;
|
||||
}
|
||||
} catch (ex3) {
|
||||
this.debug(ex3);
|
||||
}
|
||||
}
|
||||
|
||||
// This event comes from the Queue Plugin
|
||||
function queueComplete(numFilesUploaded) {
|
||||
var e = document.getElementById('divFileProgressContainer');
|
||||
e.style.display = 'none';
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
/*!
|
||||
* jQuery JavaScript Library v1.5.1
|
||||
* http://jquery.com/
|
||||
*
|
||||
* Copyright 2011, John Resig
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
* http://sizzlejs.com/
|
||||
* Copyright 2011, The Dojo Foundation
|
||||
* Released under the MIT, BSD, and GPL Licenses.
|
||||
*
|
||||
* Date: Wed Feb 23 13:55:29 2011 -0500
|
||||
*/
|
||||
(function(a,b){function cg(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cd(a){if(!bZ[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bZ[a]=c}return bZ[a]}function cc(a,b){var c={};d.each(cb.concat.apply([],cb.slice(0,b)),function(){c[this]=a});return c}function bY(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bX(){try{return new a.XMLHttpRequest}catch(b){}}function bW(){d(a).unload(function(){for(var a in bU)bU[a](0,1)})}function bQ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h==="string"&&(f[h.toLowerCase()]=a.converters[h]);l=k,k=e[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=f[m]||f["* "+k];if(!n){p=b;for(o in f){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=f[j[1]+" "+k];if(p){o=f[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&d.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bP(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bO(a,b,c,e){if(d.isArray(b)&&b.length)d.each(b,function(b,f){c||bq.test(a)?e(a,f):bO(a+"["+(typeof f==="object"||d.isArray(f)?b:"")+"]",f,c,e)});else if(c||b==null||typeof b!=="object")e(a,b);else if(d.isArray(b)||d.isEmptyObject(b))e(a,"");else for(var f in b)bO(a+"["+f+"]",b[f],c,e)}function bN(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bH,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l==="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bN(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bN(a,c,d,e,"*",g));return l}function bM(a){return function(b,c){typeof b!=="string"&&(c=b,b="*");if(d.isFunction(c)){var e=b.toLowerCase().split(bB),f=0,g=e.length,h,i,j;for(;f<g;f++)h=e[f],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bo(a,b,c){var e=b==="width"?bi:bj,f=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return f;d.each(e,function(){c||(f-=parseFloat(d.css(a,"padding"+this))||0),c==="margin"?f+=parseFloat(d.css(a,"margin"+this))||0:f-=parseFloat(d.css(a,"border"+this+"Width"))||0});return f}function ba(a,b){b.src?d.ajax({url:b.src,async:!1,dataType:"script"}):d.globalEval(b.text||b.textContent||b.innerHTML||""),b.parentNode&&b.parentNode.removeChild(b)}function _(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function $(a,b){if(b.nodeType===1){var c=b.nodeName.toLowerCase();b.clearAttributes(),b.mergeAttributes(a);if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(d.expando)}}function Z(a,b){if(b.nodeType===1&&d.hasData(a)){var c=d.expando,e=d.data(a),f=d.data(b,e);if(e=e[c]){var g=e.events;f=f[c]=d.extend({},e);if(g){delete f.handle,f.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)d.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function Y(a,b){return d.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function O(a,b,c){if(d.isFunction(b))return d.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return d.grep(a,function(a,d){return a===b===c});if(typeof b==="string"){var e=d.grep(a,function(a){return a.nodeType===1});if(J.test(b))return d.filter(b,e,!c);b=d.filter(b,e)}return d.grep(a,function(a,e){return d.inArray(a,b)>=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!=="*"?a+".":"")+b.replace(r,"`").replace(s,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,q=[],r=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;i<t.length;i++)g=t[i],g.origType.replace(p,"")===a.type?r.push(g.selector):t.splice(i--,1);f=d(a.target).closest(r,a.currentTarget);for(j=0,k=f.length;j<k;j++){m=f[j];for(i=0;i<t.length;i++){g=t[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,e=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,e=d(a.relatedTarget).closest(g.selector)[0];(!e||e!==h)&&q.push({elem:h,handleObj:g,level:m.level}Line truncated
|
||||
@@ -0,0 +1,40 @@
|
||||
/* Client-side access to querystring name=value pairs
|
||||
Version 1.3
|
||||
28 May 2008
|
||||
|
||||
License (Simplified BSD):
|
||||
http://adamv.com/dev/javascript/qslicense.txt
|
||||
*/
|
||||
function Querystring(qs) { // optionally pass a querystring to parse
|
||||
this.params = {};
|
||||
|
||||
if (qs == null) qs = location.search.substring(1, location.search.length);
|
||||
if (qs.length == 0) return;
|
||||
|
||||
// Turn <plus> back to <space>
|
||||
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
|
||||
qs = qs.replace(/\+/g, ' ');
|
||||
var args = qs.split('&'); // parse out name/value pairs separated via &
|
||||
|
||||
// split out each name=value pair
|
||||
for (var i = 0; i < args.length; i++) {
|
||||
var pair = args[i].split('=');
|
||||
var name = decodeURIComponent(pair[0]);
|
||||
|
||||
var value = (pair.length==2)
|
||||
? decodeURIComponent(pair[1])
|
||||
: name;
|
||||
|
||||
this.params[name] = value;
|
||||
}
|
||||
}
|
||||
|
||||
Querystring.prototype.get = function(key, default_) {
|
||||
var value = this.params[key];
|
||||
return (value != null) ? value : default_;
|
||||
}
|
||||
|
||||
Querystring.prototype.contains = function(key) {
|
||||
var value = this.params[key];
|
||||
return (value != null);
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
/**
|
||||
* Unobtrusive scripting adapter for jQuery
|
||||
*
|
||||
* Requires jQuery 1.4.3 or later.
|
||||
* https://github.com/rails/jquery-ujs
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
// Make sure that every Ajax request sends the CSRF token
|
||||
function CSRFProtection(xhr) {
|
||||
var token = $('meta[name="csrf-token"]').attr('content');
|
||||
if (token) xhr.setRequestHeader('X-CSRF-Token', token);
|
||||
}
|
||||
if ('ajaxPrefilter' in $) $.ajaxPrefilter(function(options, originalOptions, xhr){ CSRFProtection(xhr) });
|
||||
else $(document).ajaxSend(function(e, xhr){ CSRFProtection(xhr) });
|
||||
|
||||
// Triggers an event on an element and returns the event result
|
||||
function fire(obj, name, data) {
|
||||
var event = new $.Event(name);
|
||||
obj.trigger(event, data);
|
||||
return event.result !== false;
|
||||
}
|
||||
|
||||
// Submits "remote" forms and links with ajax
|
||||
function handleRemote(element) {
|
||||
var method, url, data,
|
||||
dataType = element.attr('data-type') || ($.ajaxSettings && $.ajaxSettings.dataType);
|
||||
|
||||
if (fire(element, 'ajax:before')) {
|
||||
if (element.is('form')) {
|
||||
method = element.attr('method');
|
||||
url = element.attr('action');
|
||||
data = element.serializeArray();
|
||||
// memoized value from clicked submit button
|
||||
var button = element.data('ujs:submit-button');
|
||||
if (button) {
|
||||
data.push(button);
|
||||
element.data('ujs:submit-button', null);
|
||||
}
|
||||
} else {
|
||||
method = element.attr('data-method');
|
||||
url = element.attr('href');
|
||||
data = null;
|
||||
}
|
||||
$.ajax({
|
||||
url: url, type: method || 'GET', data: data, dataType: dataType,
|
||||
// stopping the "ajax:beforeSend" event will cancel the ajax request
|
||||
beforeSend: function(xhr, settings) {
|
||||
if (settings.dataType === undefined) {
|
||||
xhr.setRequestHeader('accept', '*/*;q=0.5, ' + settings.accepts.script);
|
||||
}
|
||||
return fire(element, 'ajax:beforeSend', [xhr, settings]);
|
||||
},
|
||||
success: function(data, status, xhr) {
|
||||
element.trigger('ajax:success', [data, status, xhr]);
|
||||
},
|
||||
complete: function(xhr, status) {
|
||||
element.trigger('ajax:complete', [xhr, status]);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
element.trigger('ajax:error', [xhr, status, error]);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Handles "data-method" on links such as:
|
||||
// <a href="/users/5" data-method="delete" rel="nofollow" data-confirm="Are you sure?">Delete</a>
|
||||
function handleMethod(link) {
|
||||
var href = link.attr('href'),
|
||||
method = link.attr('data-method'),
|
||||
csrf_token = $('meta[name=csrf-token]').attr('content'),
|
||||
csrf_param = $('meta[name=csrf-param]').attr('content'),
|
||||
form = $('<form method="post" action="' + href + '"></form>'),
|
||||
metadata_input = '<input name="_method" value="' + method + '" type="hidden" />';
|
||||
|
||||
if (csrf_param !== undefined && csrf_token !== undefined) {
|
||||
metadata_input += '<input name="' + csrf_param + '" value="' + csrf_token + '" type="hidden" />';
|
||||
}
|
||||
|
||||
form.hide().append(metadata_input).appendTo('body');
|
||||
form.submit();
|
||||
}
|
||||
|
||||
function disableFormElements(form) {
|
||||
form.find('input[data-disable-with]').each(function() {
|
||||
var input = $(this);
|
||||
input.data('ujs:enable-with', input.val())
|
||||
.val(input.attr('data-disable-with'))
|
||||
.attr('disabled', 'disabled');
|
||||
});
|
||||
}
|
||||
|
||||
function enableFormElements(form) {
|
||||
form.find('input[data-disable-with]').each(function() {
|
||||
var input = $(this);
|
||||
input.val(input.data('ujs:enable-with')).removeAttr('disabled');
|
||||
});
|
||||
}
|
||||
|
||||
function allowAction(element) {
|
||||
var message = element.attr('data-confirm');
|
||||
return !message || (fire(element, 'confirm') && confirm(message));
|
||||
}
|
||||
|
||||
function requiredValuesMissing(form) {
|
||||
var missing = false;
|
||||
form.find('input[name][required]').each(function() {
|
||||
if (!$(this).val()) missing = true;
|
||||
});
|
||||
return missing;
|
||||
}
|
||||
|
||||
$('a[data-confirm], a[data-method], a[data-remote]').live('click.rails', function(e) {
|
||||
var link = $(this);
|
||||
if (!allowAction(link)) return false;
|
||||
|
||||
if (link.attr('data-remote') != undefined) {
|
||||
handleRemote(link);
|
||||
return false;
|
||||
} else if (link.attr('data-method')) {
|
||||
handleMethod(link);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
$('form').live('submit.rails', function(e) {
|
||||
var form = $(this), remote = form.attr('data-remote') != undefined;
|
||||
if (!allowAction(form)) return false;
|
||||
|
||||
// skip other logic when required values are missing
|
||||
if (requiredValuesMissing(form)) return !remote;
|
||||
|
||||
if (remote) {
|
||||
handleRemote(form);
|
||||
return false;
|
||||
} else {
|
||||
// slight timeout so that the submit button gets properly serialized
|
||||
setTimeout(function(){ disableFormElements(form) }, 13);
|
||||
}
|
||||
});
|
||||
|
||||
$('form input[type=submit], form button[type=submit], form button:not([type])').live('click.rails', function() {
|
||||
var button = $(this);
|
||||
if (!allowAction(button)) return false;
|
||||
// register the pressed submit button
|
||||
var name = button.attr('name'), data = name ? {name:name, value:button.val()} : null;
|
||||
button.closest('form').data('ujs:submit-button', data);
|
||||
});
|
||||
|
||||
$('form').live('ajax:beforeSend.rails', function(event) {
|
||||
if (this == event.target) disableFormElements($(this));
|
||||
});
|
||||
|
||||
$('form').live('ajax:complete.rails', function(event) {
|
||||
if (this == event.target) enableFormElements($(this));
|
||||
});
|
||||
})( jQuery );
|
||||
@@ -0,0 +1 @@
|
||||
var SWFUpload;if(SWFUpload==undefined){SWFUpload=function(settings){this.initSWFUpload(settings)}}SWFUpload.prototype.initSWFUpload=function(settings){try{this.customSettings={};this.settings=settings;this.eventQueue=[];this.movieName="SWFUpload_"+SWFUpload.movieCount++;this.movieElement=null;SWFUpload.instances[this.movieName]=this;this.initSettings();this.loadFlash();this.displayDebugInfo()}catch(ex){delete SWFUpload.instances[this.movieName];throw ex;}};SWFUpload.instances={};SWFUpload.movieCount=0;SWFUpload.version="2.2.0 2009-03-25";SWFUpload.QUEUE_ERROR={QUEUE_LIMIT_EXCEEDED:-100,FILE_EXCEEDS_SIZE_LIMIT:-110,ZERO_BYTE_FILE:-120,INVALID_FILETYPE:-130};SWFUpload.UPLOAD_ERROR={HTTP_ERROR:-200,MISSING_UPLOAD_URL:-210,IO_ERROR:-220,SECURITY_ERROR:-230,UPLOAD_LIMIT_EXCEEDED:-240,UPLOAD_FAILED:-250,SPECIFIED_FILE_ID_NOT_FOUND:-260,FILE_VALIDATION_FAILED:-270,FILE_CANCELLED:-280,UPLOAD_STOPPED:-290};SWFUpload.FILE_STATUS={QUEUED:-1,IN_PROGRESS:-2,ERROR:-3,COMPLETE:-4,CANCELLED:-5};SWFUpload.BUTTON_ACTION={SELECT_FILE:-100,SELECT_FILES:-110,START_UPLOAD:-120};SWFUpload.CURSOR={ARROW:-1,HAND:-2};SWFUpload.WINDOW_MODE={WINDOW:"window",TRANSPARENT:"transparent",OPAQUE:"opaque"};SWFUpload.completeURL=function(url){if(typeof(url)!=="string"||url.match(/^https?:\/\//i)||url.match(/^\//)){return url}var currentURL=window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:"");var indexSlash=window.location.pathname.lastIndexOf("/");if(indexSlash<=0){path="/"}else{path=window.location.pathname.substr(0,indexSlash)+"/"}return path+url};SWFUpload.prototype.initSettings=function(){this.ensureDefault=function(settingName,defaultValue){this.settings[settingName]=(this.settings[settingName]==undefined)?defaultValue:this.settings[settingName]};this.ensureDefault("upload_url","");this.ensureDefault("preserve_relative_urls",false);this.ensureDefault("file_post_name","Filedata");this.ensureDefault("post_params",{});this.ensureDefault("use_query_string",false);this.ensureDefault("requeue_on_error",false);this.ensureDefault("http_success",[]);this.ensureDefault("assume_success_timeout",0);this.ensureDefault("file_types","*.*");this.ensureDefault("file_types_description","All Files");this.ensureDefault("file_size_limit",0);this.ensureDefault("file_upload_limit",0);this.ensureDefault("file_queue_limit",0);this.ensureDefault("flash_url","swfupload.swf");this.ensureDefault("prevent_swf_caching",true);this.ensureDefault("button_image_url","");this.ensureDefault("button_width",1);this.ensureDefault("button_height",1);this.ensureDefault("button_text","");this.ensureDefault("button_text_style","color: #000000; font-size: 16pt;");this.ensureDefault("button_text_top_padding",0);this.ensureDefault("button_text_left_padding",0);this.ensureDefault("button_action",SWFUpload.BUTTON_ACTION.SELECT_FILES);this.ensureDefault("button_disabled",false);this.ensureDefault("button_placeholder_id","");this.ensureDefault("button_placeholder",null);this.ensureDefault("button_cursor",SWFUpload.CURSOR.ARROW);this.ensureDefault("button_window_mode",SWFUpload.WINDOW_MODE.WINDOW);this.ensureDefault("debug",false);this.settings.debug_enabled=this.settings.debug;this.settings.return_upload_start_handler=this.returnUploadStart;this.ensureDefault("swfupload_loaded_handler",null);this.ensureDefault("file_dialog_start_handler",null);this.ensureDefault("file_queued_handler",null);this.ensureDefault("file_queue_error_handler",null);this.ensureDefault("file_dialog_complete_handler",null);this.ensureDefault("upload_start_handler",null);this.ensureDefault("upload_progress_handler",null);this.ensureDefault("upload_error_handler",null);this.ensureDefault("upload_success_handler",null);this.ensureDefault("upload_complete_handler",null);this.ensureDefault("debug_handler",this.debugMessage);this.ensureDefault("custom_settings",{});this.customSettings=this.settings.custom_settings;if(!!this.settings.prevent_swf_caching){this.settings.flash_url=this.settings.flash_url+(this.settings.flash_url.indexOf("?")<0?"?":"&")+"preventswfcaching="+new Date().getTime()}if(!this.settings.preserve_relative_urls){this.settings.upload_url=SWFUpload.completeURL(this.settings.upload_url);this.settings.button_image_url=SWFUpload.completeURL(this.settings.button_image_url)}delete this.ensureDefault};SWFUpload.prototype.loadFlash=function(){var targetElement,tempParent;if(document.getElementById(this.movieName)!==null){throw"ID "+this.movieName+" is already in use. The Flash Object could not be added";}targetElement=document.getElementById(this.settings.button_placeholder_id)||this.settings.button_placeholder;if(targetElement==undefined){throw"Could not find the placeholder element: "+this.settings.button_placeholder_id;}tempParent=document.createElement("div");tempParent.innerHTML=this.getFlashHTML();targetElement.parentNode.replaceChild(tempParent.firstChild,targetElement);if(window[this.movieName]==undefined){window[this.movieName]=this.getMovieElement(Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
var SWFUpload;if(typeof(SWFUpload)==="function"){SWFUpload.queue={};SWFUpload.prototype.initSettings=(function(oldInitSettings){return function(){if(typeof(oldInitSettings)==="function"){oldInitSettings.call(this)}this.queueSettings={};this.queueSettings.queue_cancelled_flag=false;this.queueSettings.queue_upload_count=0;this.queueSettings.user_upload_complete_handler=this.settings.upload_complete_handler;this.queueSettings.user_upload_start_handler=this.settings.upload_start_handler;this.settings.upload_complete_handler=SWFUpload.queue.uploadCompleteHandler;this.settings.upload_start_handler=SWFUpload.queue.uploadStartHandler;this.settings.queue_complete_handler=this.settings.queue_complete_handler||null}})(SWFUpload.prototype.initSettings);SWFUpload.prototype.startUpload=function(fileID){this.queueSettings.queue_cancelled_flag=false;this.callFlash("StartUpload",[fileID])};SWFUpload.prototype.cancelQueue=function(){this.queueSettings.queue_cancelled_flag=true;this.stopUpload();var stats=this.getStats();while(stats.files_queued>0){this.cancelUpload();stats=this.getStats()}};SWFUpload.queue.uploadStartHandler=function(file){var returnValue;if(typeof(this.queueSettings.user_upload_start_handler)==="function"){returnValue=this.queueSettings.user_upload_start_handler.call(this,file)}returnValue=(returnValue===false)?false:true;this.queueSettings.queue_cancelled_flag=!returnValue;return returnValue};SWFUpload.queue.uploadCompleteHandler=function(file){var user_upload_complete_handler=this.queueSettings.user_upload_complete_handler;var continueUpload;if(file.filestatus===SWFUpload.FILE_STATUS.COMPLETE){this.queueSettings.queue_upload_count++}if(typeof(user_upload_complete_handler)==="function"){continueUpload=(user_upload_complete_handler.call(this,file)===false)?false:true}else if(file.filestatus===SWFUpload.FILE_STATUS.QUEUED){continueUpload=false}else{continueUpload=true}if(continueUpload){var stats=this.getStats();if(stats.files_queued>0&&this.queueSettings.queue_cancelled_flag===false){this.startUpload()}else if(this.queueSettings.queue_cancelled_flag===false){this.queueEvent("queue_complete_handler",[this.queueSettings.queue_upload_count]);this.queueSettings.queue_upload_count=0}else{this.queueSettings.queue_cancelled_flag=false;this.queueSettings.queue_upload_count=0}}}}
|
||||
Binary file not shown.
@@ -0,0 +1,111 @@
|
||||
/*
|
||||
SWFUpload.SWFObject Plugin
|
||||
|
||||
Summary:
|
||||
This plugin uses SWFObject to embed SWFUpload dynamically in the page. SWFObject provides accurate Flash Player detection and DOM Ready loading.
|
||||
This plugin replaces the Graceful Degradation plugin.
|
||||
|
||||
Features:
|
||||
* swfupload_load_failed_hander event
|
||||
* swfupload_pre_load_handler event
|
||||
* minimum_flash_version setting (default: "9.0.28")
|
||||
* SWFUpload.onload event for early loading
|
||||
|
||||
Usage:
|
||||
Provide handlers and settings as needed. When using the SWFUpload.SWFObject plugin you should initialize SWFUploading
|
||||
in SWFUpload.onload rather than in window.onload. When initialized this way SWFUpload can load earlier preventing the UI flicker
|
||||
that was seen using the Graceful Degradation plugin.
|
||||
|
||||
<script type="text/javascript">
|
||||
var swfu;
|
||||
SWFUpload.onload = function () {
|
||||
swfu = new SWFUpload({
|
||||
minimum_flash_version: "9.0.28",
|
||||
swfupload_pre_load_handler: swfuploadPreLoad,
|
||||
swfupload_load_failed_handler: swfuploadLoadFailed
|
||||
});
|
||||
};
|
||||
</script>
|
||||
|
||||
Notes:
|
||||
You must provide set minimum_flash_version setting to "8" if you are using SWFUpload for Flash Player 8.
|
||||
The swfuploadLoadFailed event is only fired if the minimum version of Flash Player is not met. Other issues such as missing SWF files, browser bugs
|
||||
or corrupt Flash Player installations will not trigger this event.
|
||||
The swfuploadPreLoad event is fired as soon as the minimum version of Flash Player is found. It does not wait for SWFUpload to load and can
|
||||
be used to prepare the SWFUploadUI and hide alternate content.
|
||||
swfobject's onDomReady event is cross-browser safe but will default to the window.onload event when DOMReady is not supported by the browser.
|
||||
Early DOM Loading is supported in major modern browsers but cannot be guaranteed for every browser ever made.
|
||||
*/
|
||||
|
||||
|
||||
/* SWFObject v2.1 <http://code.google.com/p/swfobject/>
|
||||
Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis
|
||||
This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
|
||||
*/
|
||||
var swfobject=function(){var b="undefined",Q="object",n="Shockwave Flash",p="ShockwaveFlash.ShockwaveFlash",P="application/x-shockwave-flash",m="SWFObjectExprInst",j=window,K=document,T=navigator,o=[],N=[],i=[],d=[],J,Z=null,M=null,l=null,e=false,A=false;var h=function(){var v=typeof K.getElementById!=b&&typeof K.getElementsByTagName!=b&&typeof K.createElement!=b,AC=[0,0,0],x=null;if(typeof T.plugins!=b&&typeof T.plugins[n]==Q){x=T.plugins[n].description;if(x&&!(typeof T.mimeTypes!=b&&T.mimeTypes[P]&&!T.mimeTypes[P].enabledPlugin)){x=x.replace(/^.*\s+(\S+\s+\S+$)/,"$1");AC[0]=parseInt(x.replace(/^(.*)\..*$/,"$1"),10);AC[1]=parseInt(x.replace(/^.*\.(.*)\s.*$/,"$1"),10);AC[2]=/r/.test(x)?parseInt(x.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof j.ActiveXObject!=b){var y=null,AB=false;try{y=new ActiveXObject(p+".7")}catch(t){try{y=new ActiveXObject(p+".6");AC=[6,0,21];y.AllowScriptAccess="always"}catch(t){if(AC[0]==6){AB=true}}if(!AB){try{y=new ActiveXObject(p)}catch(t){}}}if(!AB&&y){try{x=y.GetVariable("$version");if(x){x=x.split(" ")[1].split(",");AC=[parseInt(x[0],10),parseInt(x[1],10),parseInt(x[2],10)]}}catch(t){}}}}var AD=T.userAgent.toLowerCase(),r=T.platform.toLowerCase(),AA=/webkit/.test(AD)?parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,q=false,z=r?/win/.test(r):/win/.test(AD),w=r?/mac/.test(r):/mac/.test(AD);/*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/return{w3cdom:v,pv:AC,webkit:AA,ie:q,win:z,mac:w}}();var L=function(){if(!h.w3cdom){return }f(H);if(h.ie&&h.win){try{K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");J=C("__ie_ondomload");if(J){I(J,"onreadystatechange",S)}}catch(q){}}if(h.webkit&&typeof K.readyState!=b){Z=setInterval(function(){if(/loaded|complete/.test(K.readyState)){E()}},10)}if(typeof K.addEventListener!=b){K.addEventListener("DOMContentLoaded",E,null)}R(E)}();function S(){if(J.readyState=="complete"){J.parentNode.removeChild(J);E()}}function E(){if(e){return }if(h.ie&&h.win){var v=a("span");try{var u=K.getElementsByTagName("body")[0].appendChild(v);u.parentNode.removeChild(u)}catch(w){return }}e=true;if(Z){clearInterval(Z);Z=null}var q=o.length;for(var r=0;r<q;r++){o[r]()}}function f(q){if(e){q()}else{o[o.length]=q}}function R(r){if(typeof j.addEventListener!=b){j.addEventListener("load",r,false)}else{if(typeof K.addEventListener!=b){K.addEventListener("load",r,false)}else{if(typeof j.attachEvent!=b){I(j,"onload",r)}else{if(typeof j.onload=="function"){var q=j.onload;j.onload=function(){q();r()}}else{j.onload=r}}}}}function H(){var t=N.length;for(var q=0;q<t;q++){var u=N[q].id;if(h.pv[0]>0){var r=C(u);if(r){N[q].width=r.getAttribute("width")?r.getAttribute("width"):"0";N[q].height=r.getAttribute("height")?r.getAttribute("height"):"0";if(c(N[q].swfVersion)){if(h.webkit&&h.webkit<312){Y(r)}W(u,true)}else{if(N[q].expressInstall&&!A&&c("6.0.65")&&(h.win||h.mac)){k(N[q])}else{O(r)}}}}else{W(u,true)}}}function Y(t){var q=t.getElementsByTagName(Q)[0];if(q){var w=a("embed"),y=q.attributes;if(y){var v=y.length;for(var u=0;u<v;u++){if(y[u].nodeName=="DATA"){w.setAttribute("src",y[u].nodeValue)}else{w.setAttribute(y[u].nodeName,y[u].nodeValue)}}}var x=q.childNodes;if(x){var z=x.length;for(var r=0;r<z;r++){if(x[r].nodeType==1&&x[r].nodeName=="PARAM"){w.setAttribute(x[r].getAttribute("name"),x[r].getAttribute("value"))}}}t.parentNode.replaceChild(w,t)}}function k(w){A=true;var u=C(w.id);if(u){if(w.altContentId){var y=C(w.altContentId);if(y){M=y;l=w.altContentId}}else{M=G(u)}if(!(/%$/.test(w.width))&&parseInt(w.width,10)<310){w.width="310"}if(!(/%$/.test(w.height))&&parseInt(w.height,10)<137){w.height="137"}K.title=K.title.slice(0,47)+" - Flash Player Installation";var z=h.ie&&h.win?"ActiveX":"PlugIn",q=K.title,r="MMredirectURL="+j.location+"&MMplayerType="+z+"&MMdoctitle="+q,x=w.id;if(h.ie&&h.win&&u.readyState!=4){var t=a("div");x+="SWFObjectNew";t.setAttribute("id",x);u.parentNode.insertBefore(t,u);u.style.display="none";var v=function(){u.parentNode.removeChild(u)};I(j,"onload",v)}U({data:w.expressInstall,id:m,width:w.width,height:w.height},{flashvars:r},x)}}function O(t){if(h.ie&&h.win&&t.readyState!=4){var r=a("div");t.parentNode.insertBefore(r,t);r.parentNode.replaceChild(G(t),r);t.style.display="none";var q=function(){t.parentNode.removeChild(t)};I(j,"onload",q)}else{t.parentNode.replaceChild(G(t),t)}}function G(v){var u=a("div");if(h.win&&h.ie){u.innerHTML=v.innerHTML}else{var r=v.getElementsByTagName(Q)[0];if(r){var w=r.childNodes;if(w){var q=w.length;for(var t=0;t<q;t++){if(!(w[t].nodeType==1&&w[t].nodeName=="PARAM")&&!(w[t].nodeType==8)){u.appendChild(w[t].cloneNode(true))}}}}}return u}function U(AG,AE,t){var q,v=C(t);if(v){if(typeof AG.id==b){AG.id=t}if(h.ie&&h.win){var AF="";for(var AB in AG){if(AG[AB]!=Object.prototype[AB]){if(AB.toLowerCase()=="data"){AE.movie=AG[AB]}else{if(AB.toLowerCase()=="styleclass"){AF+=' class="'+AG[AB]+'"'}else{if(AB.toLowerCase()!="classid"){AF+=" "+AB+'="'+AG[AB]+'"'}}}}}var AD="";for(var AA in AE){Line truncated
|
||||
|
||||
|
||||
|
||||
var SWFUpload;
|
||||
if (typeof(SWFUpload) === "function") {
|
||||
SWFUpload.onload = function () {};
|
||||
|
||||
swfobject.addDomLoadEvent(function () {
|
||||
if (typeof(SWFUpload.onload) === "function") {
|
||||
SWFUpload.onload.call(window);
|
||||
}
|
||||
});
|
||||
|
||||
SWFUpload.prototype.initSettings = (function (oldInitSettings) {
|
||||
return function () {
|
||||
if (typeof(oldInitSettings) === "function") {
|
||||
oldInitSettings.call(this);
|
||||
}
|
||||
|
||||
this.ensureDefault = function (settingName, defaultValue) {
|
||||
this.settings[settingName] = (this.settings[settingName] == undefined) ? defaultValue : this.settings[settingName];
|
||||
};
|
||||
|
||||
this.ensureDefault("minimum_flash_version", "9.0.28");
|
||||
this.ensureDefault("swfupload_pre_load_handler", null);
|
||||
this.ensureDefault("swfupload_load_failed_handler", null);
|
||||
|
||||
delete this.ensureDefault;
|
||||
|
||||
};
|
||||
})(SWFUpload.prototype.initSettings);
|
||||
|
||||
|
||||
SWFUpload.prototype.loadFlash = function (oldLoadFlash) {
|
||||
return function () {
|
||||
var hasFlash = swfobject.hasFlashPlayerVersion(this.settings.minimum_flash_version);
|
||||
|
||||
if (hasFlash) {
|
||||
this.queueEvent("swfupload_pre_load_handler");
|
||||
if (typeof(oldLoadFlash) === "function") {
|
||||
oldLoadFlash.call(this);
|
||||
}
|
||||
} else {
|
||||
this.queueEvent("swfupload_load_failed_handler");
|
||||
}
|
||||
};
|
||||
|
||||
}(SWFUpload.prototype.loadFlash);
|
||||
|
||||
SWFUpload.prototype.displayDebugInfo = function (oldDisplayDebugInfo) {
|
||||
return function () {
|
||||
if (typeof(oldDisplayDebugInfo) === "function") {
|
||||
oldDisplayDebugInfo.call(this);
|
||||
}
|
||||
|
||||
this.debug(
|
||||
[
|
||||
"SWFUpload.SWFObject Plugin settings:", "\n",
|
||||
"\t", "minimum_flash_version: ", this.settings.minimum_flash_version, "\n",
|
||||
"\t", "swfupload_pre_load_handler assigned: ", (typeof(this.settings.swfupload_pre_load_handler) === "function").toString(), "\n",
|
||||
"\t", "swfupload_load_failed_handler assigned: ", (typeof(this.settings.swfupload_load_failed_handler) === "function").toString(), "\n",
|
||||
].join("")
|
||||
);
|
||||
};
|
||||
}(SWFUpload.prototype.displayDebugInfo);
|
||||
}
|
||||
Reference in new issue
Block a user