(function($){$.fn.upload=function(a){a=$.extend({name:'file',enctype:'multipart/form-data',action:'',autoSubmit:true,onSubmit:function(){},onComplete:function(){},onSelect:function(){},params:{}},a);return new $.ocupload(this,a)},$.ocupload=function(f,g){var h=this;var i=new Date().getTime().toString().substr(8);var j=$('<iframe '+'id="iframe'+i+'" '+'name="iframe'+i+'"'+'></iframe>').css({display:'none'});var k=$('<form '+'method="post" '+'enctype="'+g.enctype+'" '+'action="'+g.action+'" '+'target="iframe'+i+'"'+'></form>').css({margin:0,padding:0});var l=$('<input '+'name="'+g.name+'" '+'type="file" '+'/>').css({position:'relative',display:'block',marginLeft:-175+'px',opacity:0});f.wrap('<div></div>');k.append(l);f.after(k);f.after(j);var m=f.parent().css({position:'relative',height:f.outerHeight()+'px',overflow:'hidden',cursor:'pointer',margin:0,padding:0});l.css('marginTop',-m.height()-10+'px');m.mousemove(function(e){l.css({top:e.pageY-m.offset().top+'px',left:e.pageX-m.offset().left+'px'})});l.change(function(){h.onSelect();if(h.autoSubmit){h.submit()}});$.extend(this,{autoSubmit:true,onSubmit:g.onSubmit,onComplete:g.onComplete,onSelect:g.onSelect,filename:function(){return l.attr('value')},params:function(a){var a=a?a:false;if(a){g.params=$.extend(g.params,a)}else{return g.params}},name:function(a){var a=a?a:false;if(a){l.attr('name',value)}else{return l.attr('name')}},action:function(a){var a=a?a:false;if(a){k.attr('action',a)}else{return k.attr('action')}},enctype:function(a){var a=a?a:false;if(a){k.attr('enctype',a)}else{return k.attr('enctype')}},set:function(c,d){var d=d?d:false;function option(a,b){switch(a){default:throw new Error('[jQuery.ocupload.set] \''+a+'\' is an invalid option.');break;case'name':h.name(b);break;case'action':h.action(b);break;case'enctype':h.enctype(b);break;case'params':h.params(b);break;case'autoSubmit':h.autoSubmit=b;break;case'onSubmit':h.onSubmit=b;break;case'onComplete':h.onComplete=b;break;case'onSelect':h.onSelect=b;break}}if(d){option(c,d)}else{$.each(c,function(a,b){option(a,b)})}},submit:function(){this.onSubmit();$.each(g.params,function(a,b){k.append($('<input '+'type="hidden" '+'name="'+a+'" '+'value="'+b+'" '+'/>'))});k.submit();j.unbind().load(function(){var a=document.getElementById(j.attr('name'));var b=$(a.contentWindow.document.body).text();h.onComplete(b)})}})}})(jQuery);