(function(){var k=document,l=window;function f(d){if(typeof d=="string"){d=k.getElementById(d)}return d}function h(r,q,d){if(l.addEventListener){r.addEventListener(q,d,false)}else{if(l.attachEvent){var s=function(){d.call(r,l.event)};r.attachEvent("on"+q,s)}}}var g=function(){var d=k.createElement("div");return function(q){d.innerHTML=q;var r=d.childNodes[0];d.removeChild(r);return r}}();function i(q,d){return q.className.match(new RegExp("(\\s|^)"+d+"(\\s|$)"))}function c(q,d){if(!i(q,d)){q.className+=" "+d}}function m(r,d){var q=new RegExp("(\\s|^)"+d+"(\\s|$)");r.className=r.className.replace(q," ")}if(document.documentElement.getBoundingClientRect){var o=function(d){var u=d.getBoundingClientRect(),y=d.ownerDocument,v=y.body,q=y.documentElement,s=q.clientTop||v.clientTop||0,w=q.clientLeft||v.clientLeft||0,z=1;if(v.getBoundingClientRect){var t=v.getBoundingClientRect();z=(t.right-t.left)/v.clientWidth}if(z>1){s=0;w=0}var x=u.top/z+(window.pageYOffset||q&&q.scrollTop/z||v.scrollTop/z)-s,r=u.left/z+(window.pageXOffset||q&&q.scrollLeft/z||v.scrollLeft/z)-w;return{top:x,left:r}}}else{var o=function(d){if(l.jQuery){return jQuery(d).offset()}var r=0,q=0;do{r+=d.offsetTop||0;q+=d.offsetLeft||0}while(d=d.offsetParent);return{left:q,top:r}}}function j(r){var t,d,s,q;var u=o(r);t=u.left;s=u.top;d=t+r.offsetWidth;q=s+r.offsetHeight;return{left:t,right:d,top:s,bottom:q}}function b(s){if(!s.pageX&&s.clientX){var r=1;var d=document.body;if(d.getBoundingClientRect){var q=d.getBoundingClientRect();r=(q.right-q.left)/d.clientWidth}return{x:s.clientX/r+k.body.scrollLeft+k.documentElement.scrollLeft,y:s.clientY/r+k.body.scrollTop+k.documentElement.scrollTop}}return{x:s.pageX,y:s.pageY}}var a=function(){var d=0;return function(){return"ValumsAjaxUpload"+d++}}();function p(d){return d.replace(/.*(\/|\\)/,"")}function n(d){return(/[.]/.exec(d))?/[^.]+$/.exec(d.toLowerCase()):""}var e=function(){var d;return function(){if(d){return d}if(typeof XMLHttpRequest!=="undefined"){d=new XMLHttpRequest()}else{var q=["Microsoft.XmlHttp","MSXML2.XmlHttp.5.0","MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.3.0","MSXML2.XmlHttp.2.0"];for(var r=0;r<q.length;r++){try{d=new ActiveXObject(q[r]);break}catch(s){}}}return d}}();Ajax_upload=AjaxUpload=function(d,r){if(d.jquery){d=d[0]}else{if(typeof d=="string"&&/^#.*/.test(d)){d=d.slice(1)}}d=f(d);this._input=null;this._button=d;this._disabled=false;this._submitting=false;this._justClicked=false;this._parentDialog=k.body;if(window.jQuery&&jQuery.ui&&jQuery.ui.dialog){var s=jQuery(this._button).parents(".ui-dialog");if(s.length){this._parentDialog=s[0]}}this._settings={action:"upload.php",name:"userfile",data:{},autoSubmit:true,responseType:false,closeConnection:"",hoverClass:"hover",onChange:function(t,u){},onSubmit:function(t,u){},onComplete:function(t,u){}};for(var q in r){this._settings[q]=r[q]}this._createInput();this._rerouteClicks()};AjaxUpload.prototype={setData:function(d){this._settings.data=d},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 r=this;var q=k.createElement("input");q.setAttribute("type","file");q.setAttribute("name",this._settings.name);var d={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 s in d){q.style[s]=d[s]}if(!(q.style.opacity==="0")){q.style.filter="alpha(opacity=0)"}this._parentDialog.appendChild(q);h(q,"change",function(){var t=p(this.value);if(r._settings.onChange.call(r,t,n(t))==false){return}if(r._settings.autoSubmit){r.submit()}});h(q,"click",function(){r._justClicked=true;setTimeout(function(){r._justClicked=false},2500)});this._input=q},_rerouteClicks:function(){var q=this;var r,d={top:0,left:0},s=false;h(q._button,"mouseover",function(t){if(!q._input||s){return}s=true;r=j(q._button);if(q._parentDialog!=k.body){d=o(q._parentDialog)}});h(document,"mousemove",function(v){var u=q._input;if(!u||!s){return}if(q._disabled){m(q._button,q._settings.hoverClass);u.style.display="none";return}var w=b(v);if((w.x>=r.left)&&(w.x<=r.right)&&(w.y>=r.top)&&(w.y<=r.bottom)){u.style.top=w.y-d.top+"px";u.style.left=w.x-d.left+"px";u.style.display="block";c(q._button,q._settings.hoverClass)}else{s=false;var t=setInterval(function(){if(q._justClicked){return}if(!s){u.style.display="none"}clearInterval(t)},25);m(q._button,q._settings.hoverClass)}})},_createIframe:function(){var q=a();var d=g('<iframe src="javascript:false;" name="'+q+'" />');d.id=q;d.style.display="none";k.body.appendChild(d);return d},submit:function(){var r=this,t=this._settings;if(this._input.value===""){return}var s=p(this._input.value);if(!(t.onSubmit.call(this,s,n(s))==false)){var q=this._createIframe();var u=this._createForm(q);u.appendChild(this._input);if(t.closeConnection&&/AppleWebKit|MSIE/.test(navigator.userAgent)){var v=e();v.open("GET",t.closeConnection,false);v.send("")}u.submit();k.body.removeChild(u);u=null;this._input=null;this._createInput();var d=false;h(q,"load",function(y){if(q.src=="javascript:'%3Chtml%3E%3C/html%3E';"||q.src=="javascript:'<html></html>';"){if(d){setTimeout(function(){k.body.removeChild(q)},0)}return}var x=q.contentDocument?q.contentDocument:frames[q.id].document;if(x.readyState&&x.readyState!="complete"){return}if(x.body&&x.body.innerHTML=="false"){return}var w;if(x.XMLDocument){w=x.XMLDocument}else{if(x.body){w=x.body.innerHTML;if(t.responseType&&t.responseType.toLowerCase()=="json"){if(x.body.firstChild&&x.body.firstChild.nodeName.toUpperCase()=="PRE"){w=x.body.firstChild.firstChild.nodeValue}if(w){w=window["eval"]("("+w+")")}else{w={}}}}else{var w=x}}t.onComplete.call(r,s,w);d=true;q.src="javascript:'<html></html>';"})}else{k.body.removeChild(this._input);this._input=null;this._createInput()}},_createForm:function(d){var r=this._settings;var s=g('<form method="post" enctype="multipart/form-data"></form>');s.style.display="none";s.action=r.action;s.target=d.name;k.body.appendChild(s);for(var t in r.data){var q=k.createElement("input");q.type="hidden";q.name=t;q.value=r.data[t];s.appendChild(q)}return s}}})();
