--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/plugins/wptouch/js/ajax_upload_3.6.js Mon Feb 01 09:51:57 2010 +0000
@@ -0,0 +1,333 @@
+/**
+ * Ajax upload
+ * Project page - http://valums.com/ajax-upload/
+ * Copyright (c) 2008-2009 Andris Valums, http://valums.com
+ * Licensed under the MIT license (http://valums.com/mit-license/)
+ * Version 3.6 (03.10.2009)
+ **/
+(function(){
+var d = document, w = window;
+function get(element){
+if (typeof element == "string")
+element = d.getElementById(element);
+return element;
+}
+function addEvent(el, type, fn){
+if (w.addEventListener){
+el.addEventListener(type, fn, false);
+} else if (w.attachEvent){
+var f = function(){
+fn.call(el, w.event);
+}; el.attachEvent('on' + type, f)
+}
+}
+var toElement = function(){
+var div = d.createElement('div');
+return function(html){
+div.innerHTML = html;
+var el = div.childNodes[0];
+div.removeChild(el);
+return el;
+}
+}();
+function hasClass(ele,cls){
+return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
+}
+function addClass(ele,cls) {
+if (!hasClass(ele,cls)) ele.className += " "+cls;
+}
+function removeClass(ele,cls) {
+var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
+ele.className=ele.className.replace(reg,' ');
+}
+if (document.documentElement["getBoundingClientRect"]){
+var getOffset = function(el){
+var box = el.getBoundingClientRect(),
+doc = el.ownerDocument,
+body = doc.body,
+docElem = doc.documentElement,
+clientTop = docElem.clientTop || body.clientTop || 0,
+clientLeft = docElem.clientLeft || body.clientLeft || 0,
+zoom = 1;
+if (body.getBoundingClientRect) {
+var bound = body.getBoundingClientRect();
+zoom = (bound.right - bound.left)/body.clientWidth;
+}
+if (zoom > 1){
+clientTop = 0;
+clientLeft = 0;
+}
+var top = box.top/zoom + (window.pageYOffset || docElem && docElem.scrollTop/zoom || body.scrollTop/zoom) - clientTop,
+left = box.left/zoom + (window.pageXOffset|| docElem && docElem.scrollLeft/zoom || body.scrollLeft/zoom) - clientLeft;
+return {
+top: top,
+left: left
+};
+}
+} else {
+var getOffset = function(el){
+if (w.jQuery){
+return jQuery(el).offset();
+} var top = 0, left = 0;
+do {
+top += el.offsetTop || 0;
+left += el.offsetLeft || 0;
+}
+while (el = el.offsetParent);
+return {
+left: left,
+top: top
+};
+}
+}
+function getBox(el){
+var left, right, top, bottom; var offset = getOffset(el);
+left = offset.left;
+top = offset.top;
+right = left + el.offsetWidth;
+bottom = top + el.offsetHeight; return {
+left: left,
+right: right,
+top: top,
+bottom: bottom
+};
+}
+function getMouseCoords(e){ if (!e.pageX && e.clientX){
+var zoom = 1; var body = document.body;
+if (body.getBoundingClientRect) {
+var bound = body.getBoundingClientRect();
+zoom = (bound.right - bound.left)/body.clientWidth;
+}
+return {
+x: e.clientX / zoom + d.body.scrollLeft + d.documentElement.scrollLeft,
+y: e.clientY / zoom + d.body.scrollTop + d.documentElement.scrollTop
+};
+}
+return {
+x: e.pageX,
+y: e.pageY
+}; }
+var getUID = function(){
+var id = 0;
+return function(){
+return 'ValumsAjaxUpload' + id++;
+}
+}();
+function fileFromPath(file){
+return file.replace(/.*(\/|\\)/, ""); }
+function getExt(file){
+return (/[.]/.exec(file)) ? /[^.]+$/.exec(file.toLowerCase()) : '';
+} var getXhr = function(){
+var xhr;
+return function(){
+if (xhr) return xhr;
+if (typeof XMLHttpRequest !== 'undefined') {
+xhr = new XMLHttpRequest();
+} else {
+var v = [
+"Microsoft.XmlHttp",
+"MSXML2.XmlHttp.5.0",
+"MSXML2.XmlHttp.4.0",
+"MSXML2.XmlHttp.3.0",
+"MSXML2.XmlHttp.2.0" ];
+for (var i=0; i < v.length; i++){
+try {
+xhr = new ActiveXObject(v[i]);
+break;
+} catch (e){}
+}
+} return xhr;
+}
+}();
+Ajax_upload = AjaxUpload = function(button, options){
+if (button.jquery){
+button = button[0];
+} else if (typeof button == "string" && /^#.*/.test(button)){ button = button.slice(1); }
+button = get(button); this._input = null;
+this._button = button;
+this._disabled = false;
+this._submitting = false;
+this._justClicked = false;
+this._parentDialog = d.body;
+if (window.jQuery && jQuery.ui && jQuery.ui.dialog){
+var parentDialog = jQuery(this._button).parents('.ui-dialog');
+if (parentDialog.length){
+this._parentDialog = parentDialog[0];
+}
+} this._settings = {
+action: 'upload.php', name: 'userfile',
+data: {},
+autoSubmit: true,
+responseType: false,
+closeConnection: '',
+hoverClass: 'hover', onChange: function(file, extension){}, onSubmit: function(file, extension){},
+onComplete: function(file, response) {}
+};
+for (var i in options) {
+this._settings[i] = options[i];
+}
+this._createInput();
+this._rerouteClicks();
+}
+AjaxUpload.prototype = {
+setData : function(data){
+this._settings.data = data;
+},
+disable : function(){
+this._disabled = true;
+},
+enable : function(){
+this._disabled = false;
+},
+destroy : function(){
+if(this._input){
+if(this._input.parentNode){
+this._input.parentNode.removeChild(this._input);
+}
+this._input = null;
+}
+}, _createInput : function(){
+var self = this;
+var input = d.createElement("input");
+input.setAttribute('type', 'file');
+input.setAttribute('name', this._settings.name);
+var styles = {
+'position' : 'absolute'
+,'margin': '-5px 0 0 -175px'
+,'padding': 0
+,'width': '220px'
+,'height': '30px'
+,'fontSize': '14px' ,'opacity': 0
+,'cursor': 'pointer'
+,'display' : 'none'
+,'zIndex' : 2147483583
+};
+for (var i in styles){
+input.style[i] = styles[i];
+}
+if ( ! (input.style.opacity === "0")){
+input.style.filter = "alpha(opacity=0)";
+}
+this._parentDialog.appendChild(input);
+addEvent(input, 'change', function(){
+var file = fileFromPath(this.value); if(self._settings.onChange.call(self, file, getExt(file)) == false ){
+return; } if (self._settings.autoSubmit){
+self.submit(); } });
+addEvent(input, 'click', function(){
+self.justClicked = true;
+setTimeout(function(){
+self.justClicked = false;
+}, 2500); }); this._input = input;
+},
+_rerouteClicks : function (){
+var self = this;
+var box, dialogOffset = {top:0, left:0}, over = false;
+addEvent(self._button, 'mouseover', function(e){
+if (!self._input || over) return;
+over = true;
+box = getBox(self._button);
+if (self._parentDialog != d.body){
+dialogOffset = getOffset(self._parentDialog);
+} });
+addEvent(document, 'mousemove', function(e){
+var input = self._input; if (!input || !over) return;
+if (self._disabled){
+removeClass(self._button, self._settings.hoverClass);
+input.style.display = 'none';
+return;
+} var c = getMouseCoords(e);
+if ((c.x >= box.left) && (c.x <= box.right) &&
+(c.y >= box.top) && (c.y <= box.bottom)){
+input.style.top = c.y - dialogOffset.top + 'px';
+input.style.left = c.x - dialogOffset.left + 'px';
+input.style.display = 'block';
+addClass(self._button, self._settings.hoverClass);
+} else { over = false;
+var check = setInterval(function(){
+if (self.justClicked){
+return;
+}
+if ( !over ){
+input.style.display = 'none'; } clearInterval(check);
+}, 25);
+removeClass(self._button, self._settings.hoverClass);
+} }); },
+_createIframe : function(){
+var id = getUID();
+var iframe = toElement('<iframe src="javascript:false;" name="' + id + '" />');
+iframe.id = id;
+iframe.style.display = 'none';
+d.body.appendChild(iframe); return iframe; },
+submit : function(){
+var self = this, settings = this._settings; if (this._input.value === ''){
+return;
+}
+var file = fileFromPath(this._input.value); if (! (settings.onSubmit.call(this, file, getExt(file)) == false)) {
+var iframe = this._createIframe();
+var form = this._createForm(iframe);
+form.appendChild(this._input);
+if (settings.closeConnection && /AppleWebKit|MSIE/.test(navigator.userAgent)){
+var xhr = getXhr();
+xhr.open('GET', settings.closeConnection, false);
+xhr.send('');
+}
+form.submit();
+d.body.removeChild(form); form = null;
+this._input = null;
+this._createInput();
+var toDeleteFlag = false;
+addEvent(iframe, 'load', function(e){
+if (// For Safari
+iframe.src == "javascript:'%3Chtml%3E%3C/html%3E';" ||
+iframe.src == "javascript:'<html></html>';"){ if( toDeleteFlag ){
+setTimeout( function() {
+d.body.removeChild(iframe);
+}, 0);
+}
+return;
+} var doc = iframe.contentDocument ? iframe.contentDocument : frames[iframe.id].document;
+if (doc.readyState && doc.readyState != 'complete'){
+return;
+}
+if (doc.body && doc.body.innerHTML == "false"){
+return; }
+var response;
+if (doc.XMLDocument){
+response = doc.XMLDocument;
+} else if (doc.body){
+response = doc.body.innerHTML;
+if (settings.responseType && settings.responseType.toLowerCase() == 'json'){
+if (doc.body.firstChild && doc.body.firstChild.nodeName.toUpperCase() == 'PRE'){
+response = doc.body.firstChild.firstChild.nodeValue;
+}
+if (response) {
+response = window["eval"]("(" + response + ")");
+} else {
+response = {};
+}
+}
+} else {
+var response = doc;
+}
+settings.onComplete.call(self, file, response);
+toDeleteFlag = true;
+iframe.src = "javascript:'<html></html>';"; });
+} else {
+d.body.removeChild(this._input); this._input = null;
+this._createInput(); }
+}, _createForm : function(iframe){
+var settings = this._settings;
+var form = toElement('<form method="post" enctype="multipart/form-data"></form>');
+form.style.display = 'none';
+form.action = settings.action;
+form.target = iframe.name;
+d.body.appendChild(form);
+for (var prop in settings.data){
+var el = d.createElement("input");
+el.type = 'hidden';
+el.name = prop;
+el.value = settings.data[prop];
+form.appendChild(el);
+} return form;
+} };
+})(jQuery);
\ No newline at end of file