/**
* AJAX Upload ( http://valums.com/ajax-upload/ )
* Copyright (c) Andris Valums
* Licensed under the MIT license ( http://valums.com/mit-license/ )
* Thanks to Gary Haran, David Mark, Corey Burns and others for contributions
*/
(function(){function g(a,b,c){if(a.addEventListener)a.addEventListener(b,c,false);else if(a.attachEvent)a.attachEvent("on"+b,function(){c.call(a)});else throw new Error("not supported or DOM not loaded");}function p(a){var b,c;c=q(a);b=c.left;c=c.top;return{left:b,right:b+a.offsetWidth,top:c,bottom:c+a.offsetHeight}}function k(a,b){for(var c in b)if(b.hasOwnProperty(c))a.style[c]=b[c]}function r(a,b){var c=p(a);k(b,{position:"absolute",left:c.left+"px",top:c.top+"px",width:a.offsetWidth+"px",height:a.offsetHeight+
"px"})}function l(a){return a.replace(/.*(\/|\\)/,"")}function m(a){return-1!==a.indexOf(".")?a.replace(/.*[.]/,""):""}function s(a,b){return(new RegExp("\\b"+b+"\\b")).test(a.className)}function n(a,b){s(a,b)||(a.className+=" "+b)}function j(a,b){a.className=a.className.replace(new RegExp("\\b"+b+"\\b"),"")}function i(a){a.parentNode.removeChild(a)}var q=document.documentElement.getBoundingClientRect?function(a){var b=a.getBoundingClientRect(),c=a.ownerDocument;a=c.body;c=c.documentElement;var e=
c.clientTop||a.clientTop||0,h=c.clientLeft||a.clientLeft||0,d=1;if(a.getBoundingClientRect){d=a.getBoundingClientRect();d=(d.right-d.left)/a.clientWidth}if(d>1)h=e=0;return{top:b.top/d+(window.pageYOffset||c&&c.scrollTop/d||a.scrollTop/d)-e,left:b.left/d+(window.pageXOffset||c&&c.scrollLeft/d||a.scrollLeft/d)-h}}:function(a){var b=0,c=0;do{b+=a.offsetTop||0;c+=a.offsetLeft||0;a=a.offsetParent}while(a);return{left:c,top:b}},o=function(){var a=document.createElement("div");return function(b){a.innerHTML=
b;return a.removeChild(a.firstChild)}}(),t=function(){var a=0;return function(){return"ValumsAjaxUpload"+a++}}();window.AjaxUpload=function(a,b){this._settings={action:"upload.php",name:"userfile",data:{},autoSubmit:true,responseType:false,hoverClass:"hover",disabledClass:"disabled",onChange:function(){},onSubmit:function(){},onComplete:function(){}};for(var c in b)if(b.hasOwnProperty(c))this._settings[c]=b[c];if(a.jquery)a=a[0];else if(typeof a=="string"){if(/^#.*/.test(a))a=a.slice(1);a=document.getElementById(a)}if(!a||
a.nodeType!==1)throw new Error("Please make sure that you're passing a valid element");a.nodeName.toUpperCase()=="A"&&g(a,"click",function(e){if(e&&e.preventDefault)e.preventDefault();else if(window.event)window.event.returnValue=false});this._button=a;this._input=null;this._disabled=false;this.enable();this._rerouteClicks()};AjaxUpload.prototype={setData:function(a){this._settings.data=a},disable:function(){n(this._button,this._settings.disabledClass);this._disabled=true;var a=this._button.nodeName.toUpperCase();
if(a=="INPUT"||a=="BUTTON")this._button.setAttribute("disabled","disabled");if(this._input)this._input.parentNode.style.visibility="hidden"},enable:function(){j(this._button,this._settings.disabledClass);this._button.removeAttribute("disabled");this._disabled=false},_createInput:function(){var a=this,b=document.createElement("input");b.setAttribute("type","file");b.setAttribute("name",this._settings.name);k(b,{position:"absolute",right:0,margin:0,padding:0,fontSize:"480px",cursor:"pointer"});var c=
document.createElement("div");k(c,{display:"block",position:"absolute",overflow:"hidden",margin:0,padding:0,opacity:0,direction:"ltr",zIndex:2147483583});if(c.style.opacity!=="0"){if(typeof c.filters=="undefined")throw new Error("Opacity not supported by the browser");c.style.filter="alpha(opacity=0)"}g(b,"change",function(){if(!(!b||b.value==="")){var e=l(b.value);if(false===a._settings.onChange.call(a,e,m(e)))a._clearInput();else a._settings.autoSubmit&&a.submit()}});g(b,"mouseover",function(){n(a._button,
a._settings.hoverClass)});g(b,"mouseout",function(){j(a._button,a._settings.hoverClass);b.parentNode.style.visibility="hidden"});c.appendChild(b);document.body.appendChild(c);this._input=b},_clearInput:function(){if(this._input){i(this._input.parentNode);this._input=null;this._createInput();j(this._button,this._settings.hoverClass)}},_rerouteClicks:function(){var a=this;g(a._button,"mouseover",function(){if(!a._disabled){a._input||a._createInput();var b=a._input.parentNode;r(a._button,b);b.style.visibility=
"visible"}})},_createIframe:function(){var a=t(),b=o('<iframe src="javascript:false;" name="'+a+'" />');b.setAttribute("id",a);b.style.display="none";document.body.appendChild(b);return b},_createForm:function(a){var b=this._settings,c=o('<form method="post" enctype="multipart/form-data"></form>');c.setAttribute("action",b.action);c.setAttribute("target",a.name);c.style.display="none";document.body.appendChild(c);for(var e in b.data)if(b.data.hasOwnProperty(e)){a=document.createElement("input");a.setAttribute("type",
"hidden");a.setAttribute("name",e);a.setAttribute("value",b.data[e]);c.appendChild(a)}return c},_getResponse:function(a,b){var c=false,e=this,h=this._settings;g(a,"load",function(){if(a.src=="javascript:'%3Chtml%3E%3C/html%3E';"||a.src=="javascript:'<html></html>';")c&&setTimeout(function(){i(a)},0);else{var d=a.contentDocument?a.contentDocument:window.frames[a.id].document;if(!(d.readyState&&d.readyState!="complete"))if(!(d.body&&d.body.innerHTML=="false")){var f;if(d.XMLDocument)f=d.XMLDocument;
else if(d.body){f=d.body.innerHTML;if(h.responseType&&h.responseType.toLowerCase()=="json"){if(d.body.firstChild&&d.body.firstChild.nodeName.toUpperCase()=="PRE")f=d.body.firstChild.firstChild.nodeValue;f=f?eval("("+f+")"):{}}}else f=d;h.onComplete.call(e,b,f);c=true;a.src="javascript:'<html></html>';"}}})},submit:function(){var a=this._settings;if(!(!this._input||this._input.value==="")){var b=l(this._input.value);if(false===a.onSubmit.call(this,b,m(b)))this._clearInput();else{a=this._createIframe();
var c=this._createForm(a);i(this._input.parentNode);j(this._button,this._settings.hoverClass);c.appendChild(this._input);c.submit();i(c);i(this._input);this._input=null;this._getResponse(a,b);this._createInput()}}}}})();