(function(){function h(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 k(a,b){for(var c in b)if(b.hasOwnProperty(c))a.style[c]=b[c]}function j(a,b){a.className=a.className.replace(new RegExp("\\b"+b+"\\b"),"")}function i(a){a.parentNode.removeChild(a)}var m=document.documentElement.getBoundingClientRect?function(a){var b=a.getBoundingClientRect(),c=a.ownerDocument; a=c.body;c=c.documentElement;var d=c.clientTop||a.clientTop||0,f=c.clientLeft||a.clientLeft||0,e=1;if(a.getBoundingClientRect){e=a.getBoundingClientRect();e=(e.right-e.left)/a.clientWidth}if(e>1)f=d=0;return{top:b.top/e+(window.pageYOffset||c&&c.scrollTop/e||a.scrollTop/e)-d,left:b.left/e+(window.pageXOffset||c&&c.scrollLeft/e||a.scrollLeft/e)-f}}: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}},l=function(){var a=document.createElement("div"); return function(b){a.innerHTML=b;return a.removeChild(a.firstChild)}}(),n=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"&&h(a,"click",function(d){if(d&&d.preventDefault)d.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(){var a=this._button,b=this._settings.disabledClass; (new RegExp("\\b"+b+"\\b")).test(a.className)||(a.className+=" "+b);this._disabled=true;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)"}h(b,"change",function(){if(!(!b||b.value==="")){var d=b.value.replace(/.*(\/|\\)/,""); if(false===a._settings.onChange.call(a,d,-1!==d.indexOf(".")?d.replace(/.*[.]/,""):""))a._clearInput();else a._settings.autoSubmit&&a.submit()}});h(b,"mouseover",function(){var d=a._button,f=a._settings.hoverClass;(new RegExp("\\b"+f+"\\b")).test(d.className)||(d.className+=" "+f)});h(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;h(a._button,"mouseover",function(){if(!a._disabled){a._input||a._createInput();var b=a._input.parentNode,c=a._button,d,f;f=m(c);d=f.left;f=f.top;d={left:d,right:d+c.offsetWidth,top:f,bottom:f+c.offsetHeight};k(b,{position:"absolute",left:d.left+"px",top:d.top+"px",width:c.offsetWidth+"px",height:c.offsetHeight+"px"});b.style.visibility="visible"}})},_createIframe:function(){var a= n(),b=l('<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=l('<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 d in b.data)if(b.data.hasOwnProperty(d)){a=document.createElement("input");a.setAttribute("type","hidden");a.setAttribute("name", d);a.setAttribute("value",b.data[d]);c.appendChild(a)}return c},_getResponse:function(a,b){var c=false,d=this,f=this._settings;h(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 e=a.contentDocument?a.contentDocument:window.frames[a.id].document;if(!(e.readyState&&e.readyState!="complete"))if(!(e.body&&e.body.innerHTML=="false")){var g;if(e.XMLDocument)g=e.XMLDocument;else if(e.body){g=e.body.innerHTML; if(f.responseType&&f.responseType.toLowerCase()=="json"){if(e.body.firstChild&&e.body.firstChild.nodeName.toUpperCase()=="PRE")g=e.body.firstChild.firstChild.nodeValue;g=g?eval("("+g+")"):{}}}else g=e;f.onComplete.call(d,b,g);c=true;a.src="javascript:'<html></html>';"}}})},submit:function(){var a=this._settings;if(!(!this._input||this._input.value==="")){var b=this._input.value.replace(/.*(\/|\\)/,"");if(false===a.onSubmit.call(this,b,-1!==b.indexOf(".")?b.replace(/.*[.]/,""):""))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()}}}}})();