(function(A){A.fn.upload=function(B){B=A.extend({name:"file",enctype:"multipart/form-data",action:"",autoSubmit:true,onSubmit:function(){},onComplete:function(){},onSelect:function(){},params:{}},B);return new A.ocupload(this,B)},A.ocupload=function(F,E){var D=this;var I=new Date().getTime().toString().substr(8);var G=A('<iframe id="iframe'+I+'" name="iframe'+I+'"></iframe>').css({display:"none"});var H=A('<form method="post" enctype="'+E.enctype+'" action="'+E.action+'" target="iframe'+I+'"></form>').css({margin:0,padding:0});var C=A('<input name="'+E.name+'" type="file" class="ignore"/>').css({position:"relative",display:"block",marginLeft:-175+"px",opacity:0});F.wrap("<div></div>");H.append(C);F.after(H);F.after(G);var B=F.parent().css({position:"relative",height:F.outerHeight()+"px",width:F.outerWidth()+"px",overflow:"hidden",cursor:"pointer",margin:0,padding:0});C.css("marginTop",-B.height()-10+"px");B.mousemove(function(J){C.css({top:J.pageY-B.offset().top+"px",left:J.pageX-B.offset().left+"px"})});C.change(function(){D.onSelect();if(D.autoSubmit){D.submit()}});A.extend(this,{autoSubmit:true,onSubmit:E.onSubmit,onComplete:E.onComplete,onSelect:E.onSelect,filename:function(){return C.attr("value")},params:function(J){var J=J?J:false;if(J){E.params=A.extend(E.params,J)}else{return E.params}},name:function(J){var J=J?J:false;if(J){C.attr("name",value)}else{return C.attr("name")}},action:function(J){var J=J?J:false;if(J){H.attr("action",J)}else{return H.attr("action")}},enctype:function(J){var J=J?J:false;if(J){H.attr("enctype",J)}else{return H.attr("enctype")}},set:function(L,K){var K=K?K:false;function J(N,M){switch(N){default:throw new Error("[jQuery.ocupload.set] '"+N+"' is an invalid option.");break;case"name":D.name(M);break;case"action":D.action(M);break;case"enctype":D.enctype(M);break;case"params":D.params(M);break;case"autoSubmit":D.autoSubmit=M;break;case"onSubmit":D.onSubmit=M;break;case"onComplete":D.onComplete=M;break;case"onSelect":D.onSelect=M;break}}if(K){J(L,K)}else{A.each(L,function(M,N){J(M,N)})}},submit:function(){this.onSubmit();A.each(E.params,function(J,K){H.append('<input type="hidden" name="'+J+'" value="'+K+'" class="ignore" />')});E.params=false;H.submit();G.unbind().load(function(){var K=document.getElementById(G.attr("name"));var J=A(K.contentWindow.document.body).text();D.onComplete(J)})}})}})(jQuery);