i;i++)n=t.keys[i],s=t[n],s&&(/^(\d|[1-9]\d+)$/.test(s)?s=parseint(s,10):/^\d*\.\d+$/.test(s)&&(s=parsefloat(s)),r.meta[e][n]=s)}),!r.meta||!r.meta.thumb||r.meta.thumb.data instanceof n||(r.meta.thumb.data=new n(e.uid,r.meta.thumb.data))),r.width=parseint(o.width,10),r.height=parseint(o.height,10),r.size=parseint(o.size,10),r.type=o.type,r.name=o.name,r}})}),i(ue,[u,f,m,c],function(e,t,n,i){function r(t){var r=this,s=n.captest,u=n.captrue;n.call(this,t,o,{access_binary:s(window.filereader||window.file&&file.getasdataurl),access_image_binary:!1,display_media:s(a.image&&(i.can("create_canvas")||i.can("use_data_uri_over32kb"))),do_cors:!1,drag_and_drop:!1,filter_by_extension:s(function(){return"chrome"===i.browser&&i.vercomp(i.version,28,">=")||"ie"===i.browser&&i.vercomp(i.version,10,">=")||"safari"===i.browser&&i.vercomp(i.version,7,">=")}()),resize_image:function(){return a.image&&r.can("access_binary")&&i.can("create_canvas")},report_upload_progress:!1,return_response_headers:!1,return_response_type:function(t){return"json"===t&&window.json?!0:!!~e.inarray(t,["text","document",""])},return_status_code:function(t){return!e.arraydiff(t,[200,404])},select_file:function(){return i.can("use_fileinput")},select_multiple:!1,send_binary_string:!1,send_custom_headers:!1,send_multipart:!0,slice_blob:!1,stream_upload:function(){return r.can("select_file")},summon_file_dialog:function(){return r.can("select_file")&&("firefox"===i.browser&&i.vercomp(i.version,4,">=")||"opera"===i.browser&&i.vercomp(i.version,12,">=")||"ie"===i.browser&&i.vercomp(i.version,10,">=")||!!~e.inarray(i.browser,["chrome","safari"]))},upload_filesize:u,use_http_method:function(t){return!e.arraydiff(t,["get","post"])}}),e.extend(this,{init:function(){this.trigger("init")},destroy:function(e){return function(){e.call(r),e=r=null}}(this.destroy)}),e.extend(this.getshim(),a)}var o="html4",a={};return n.addconstructor(o,r),a}),i(ce,[ue,e,u,h,n,d,c],function(e,t,n,i,r,o,a){function s(){function e(){var o=this,l=o.getruntime(),d,h,f,p,m,g;g=n.guid("uid_"),d=l.getshimcontainer(),s&&(f=i.get(s+"_form"),f&&n.extend(f.style,{top:"100%"})),p=document.createelement("form"),p.setattribute("id",g+"_form"),p.setattribute("method","post"),p.setattribute("enctype","multipart/form-data"),p.setattribute("encoding","multipart/form-data"),n.extend(p.style,{overflow:"hidden",position:"absolute",top:0,left:0,width:"100%",height:"100%"}),m=document.createelement("input"),m.setattribute("id",g),m.setattribute("type","file"),m.setattribute("name",c.name||"filedata"),m.setattribute("accept",u.join(",")),n.extend(m.style,{fontsize:"999px",opacity:0}),p.appendchild(m),d.appendchild(p),n.extend(m.style,{position:"absolute",top:0,left:0,width:"100%",height:"100%"}),"ie"===a.browser&&a.vercomp(a.version,10,"<")&&n.extend(m.style,{filter:"progid:dximagetransform.microsoft.alpha(opacity=0)"}),m.onchange=function(){var n;if(this.value){if(this.files){if(n=this.files[0],0===n.size)return void p.parentnode.removechild(p)}else n={name:this.value};n=new t(l.uid,n),this.onchange=function(){},e.call(o),o.files=[n],m.setattribute("id",n.uid),p.setattribute("id",n.uid+"_form"),o.trigger("change"),m=p=null}},l.can("summon_file_dialog")&&(h=i.get(c.browse_button),r.removeevent(h,"click",o.uid),r.addevent(h,"click",function(e){m&&!m.disabled&&m.click(),e.preventdefault()},o.uid)),s=g,d=f=h=null}var s,u=[],c;n.extend(this,{init:function(t){var n=this,a=n.getruntime(),s;c=t,u=t.accept.mimes||o.extlist2mimes(t.accept,a.can("filter_by_extension")),s=a.getshimcontainer(),function(){var e,o,u;e=i.get(t.browse_button),a.can("summon_file_dialog")&&("static"===i.getstyle(e,"position")&&(e.style.position="relative"),o=parseint(i.getstyle(e,"z-index"),10)||1,e.style.zindex=o,s.style.zindex=o-1),u=a.can("summon_file_dialog")?e:s,r.addevent(u,"mouseover",function(){n.trigger("mouseenter")},n.uid),r.addevent(u,"mouseout",function(){n.trigger("mouseleave")},n.uid),r.addevent(u,"mousedown",function(){n.trigger("mousedown")},n.uid),r.addevent(i.get(t.container),"mouseup",function(){n.trigger("mouseup")},n.uid),e=null}(),e.call(this),s=null,n.trigger({type:"ready",async:!0})},disable:function(e){var t;(t=i.get(s))&&(t.disabled=!!e)},destroy:function(){var e=this.getruntime(),t=e.getshim(),n=e.getshimcontainer();r.removeallevents(n,this.uid),r.removeallevents(c&&i.get(c.container),this.uid),r.removeallevents(c&&i.get(c.browse_button),this.uid),n&&(n.innerhtml=""),t.removeinstance(this.uid),s=u=c=n=t=null}})}return e.fileinput=s}),i(le,[ue,f],function(e,t){return e.filereader=t}),i(de,[ue,u,h,x,f,n,y,i],function(e,t,n,i,r,o,a,s){function u(){function e(e){var t=this,i,r,a,s,u=!1;if(l){if(i=l.id.replace(/_iframe$/,""),r=n.get(i+"_form")){for(a=r.getelementsbytagname("input"),s=a.length;s--;)switch(a[s].getattribute("type")){case"hidden":a[s].parentnode.removechild(a[s]);break;case"file":u=!0}a=[],u||r.parentnode.removechild(r),r=null}settimeout(function(){o.removeevent(l,"load",t.uid),l.parentnode&&l.parentnode.removechild(l);var n=t.getruntime().getshimcontainer();n.children.length||n.parentnode.removechild(n),n=l=null,e()},1)}}var u,c,l;t.extend(this,{send:function(d,h){function f(){var n=m.getshimcontainer()||document.body,r=document.createelement("div");r.innerhtml='',l=r.firstchild,n.appendchild(l),o.addevent(l,"load",function(){var n;try{n=l.contentwindow.document||l.contentdocument||window.frames[l.id].document,/^4(0[0-9]|1[0-7]|2[2346])\s/.test(n.title)?u=n.title.replace(/^(\d+).*$/,"$1"):(u=200,c=t.trim(n.body.innerhtml),p.trigger({type:"progress",loaded:c.length,total:c.length}),y&&p.trigger({type:"uploadprogress",loaded:y.size||1025,total:y.size||1025}))}catch(r){if(!i.hassameorigin(d.url))return void e.call(p,function(){p.trigger("error")});u=404}e.call(p,function(){p.trigger("load")})},p.uid)}var p=this,m=p.getruntime(),g,v,w,y;if(u=c=null,h instanceof s&&h.hasblob()){if(y=h.getblob(),g=y.uid,w=n.get(g),v=n.get(g+"_form"),!v)throw new r.domexception(r.domexception.not_found_err)}else g=t.guid("uid_"),v=document.createelement("form"),v.setattribute("id",g+"_form"),v.setattribute("method",d.method),v.setattribute("enctype","multipart/form-data"),v.setattribute("encoding","multipart/form-data"),m.getshimcontainer().appendchild(v);v.setattribute("target",g+"_iframe"),h instanceof s&&h.each(function(e,n){if(e instanceof a)w&&w.setattribute("name",n);else{var i=document.createelement("input");t.extend(i,{type:"hidden",name:n,value:e}),w?v.insertbefore(i,w):v.appendchild(i)}}),v.setattribute("action",d.url),f(),v.submit(),p.trigger("loadstart")},getstatus:function(){return u},getresponse:function(e){if("json"===e&&"string"===t.typeof(c)&&window.json)try{
return json.parse(c.replace(/^\s*]*>/,"").replace(/<\/pre>\s*$/,""))}catch(n){return null}return c},abort:function(){var t=this;l&&l.contentwindow&&(l.contentwindow.stop?l.contentwindow.stop():l.contentwindow.document.execcommand?l.contentwindow.document.execcommand("stop"):l.src="about:blank"),e.call(this,function(){t.dispatchevent("abort")})}})}return e.xmlhttprequest=u}),i(he,[ue,j],function(e,t){return e.image=t}),a([u,c,l,d,h,f,p,m,g,v,w,y,e,_,b,x,r,a,i,t,s,o,n])}(this);;(function(e){"use strict";var t={},n=e.moxie.core.utils.basic.inarray;return function r(e){var i,s;for(i in e)s=typeof e[i],s==="object"&&!~n(i,["exceptions","env","mime"])?r(e[i]):s==="function"&&(t[i]=e[i])}(e.moxie),t.env=e.moxie.core.utils.env,t.mime=e.moxie.core.utils.mime,t.exceptions=e.moxie.core.exceptions,e.moxie=t,e.o||(e.o=t),t})(this);
;(function(e,t,n){function s(e){function r(e,t,r){var i={chunks:"slice_blob",jpgresize:"send_binary_string",pngresize:"send_binary_string",progress:"report_upload_progress",multi_selection:"select_multiple",dragdrop:"drag_and_drop",drop_element:"drag_and_drop",headers:"send_custom_headers",urlstream_upload:"send_binary_string",cansendbinary:"send_binary",triggerdialog:"summon_file_dialog"};i[e]?n[i[e]]=t:r||(n[e]=t)}var t=e.required_features,n={};if(typeof t=="string")o.each(t.split(/\s*,\s*/),function(e){r(e,!0)});else if(typeof t=="object")o.each(t,function(e,t){r(t,e)});else if(t===!0){e.chunk_size>0&&(n.slice_blob=!0);if(e.resize.enabled||!e.multipart)n.send_binary_string=!0;o.each(e,function(e,t){r(t,!!e,!0)})}return n}var r=e.settimeout,i={},o={version:"2.1.8",stopped:1,started:2,queued:1,uploading:2,failed:4,done:5,generic_error:-100,http_error:-200,io_error:-300,security_error:-400,init_error:-500,file_size_error:-600,file_extension_error:-601,file_duplicate_error:-602,image_format_error:-700,memory_error:-701,image_dimensions_error:-702,mimetypes:t.mimes,ua:t.ua,typeof:t.typeof,extend:t.extend,guid:t.guid,get:function(n){var r=[],i;t.typeof(n)!=="array"&&(n=[n]);var s=n.length;while(s--)i=t.get(n[s]),i&&r.push(i);return r.length?r:null},each:t.each,getpos:t.getpos,getsize:t.getsize,xmlencode:function(e){var t={"<":"lt",">":"gt","&":"amp",'"':"quot","'":"#39"},n=/[<>&\"\']/g;return e?(""+e).replace(n,function(e){return t[e]?"&"+t[e]+";":e}):e},toarray:t.toarray,inarray:t.inarray,addi18n:t.addi18n,translate:t.translate,isemptyobj:t.isemptyobj,hasclass:t.hasclass,addclass:t.addclass,removeclass:t.removeclass,getstyle:t.getstyle,addevent:t.addevent,removeevent:t.removeevent,removeallevents:t.removeallevents,cleanname:function(e){var t,n;n=[/[\300-\306]/g,"a",/[\340-\346]/g,"a",/\307/g,"c",/\347/g,"c",/[\310-\313]/g,"e",/[\350-\353]/g,"e",/[\314-\317]/g,"i",/[\354-\357]/g,"i",/\321/g,"n",/\361/g,"n",/[\322-\330]/g,"o",/[\362-\370]/g,"o",/[\331-\334]/g,"u",/[\371-\374]/g,"u"];for(t=0;t0?"&":"?")+n),e},formatsize:function(e){function t(e,t){return math.round(e*math.pow(10,t))/math.pow(10,t)}if(e===n||/\d/.test(e))return o.translate("n/a");var r=math.pow(1024,4);return e>r?t(e/r,1)+" "+o.translate("tb"):e>(r/=1024)?t(e/r,1)+" "+o.translate("gb"):e>(r/=1024)?t(e/r,1)+" "+o.translate("mb"):e>1024?math.round(e/1024)+" "+o.translate("kb"):e+" "+o.translate("b")},parsesize:t.parsesizestr,predictruntime:function(e,n){var r,i;return r=new o.uploader(e),i=t.runtime.thatcan(r.getoption().required_features,n||e.runtimes),r.destroy(),i},addfilefilter:function(e,t){i[e]=t}};o.addfilefilter("mime_types",function(e,t,n){e.length&&!e.regexp.test(t.name)?(this.trigger("error",{code:o.file_extension_error,message:o.translate("file extension error."),file:t}),n(!1)):n(!0)}),o.addfilefilter("max_file_size",function(e,t,n){var r;e=o.parsesize(e),t.size!==r&&e&&t.size>e?(this.trigger("error",{code:o.file_size_error,message:o.translate("file size error."),file:t}),n(!1)):n(!0)}),o.addfilefilter("prevent_duplicates",function(e,t,n){if(e){var r=this.files.length;while(r--)if(t.name===this.files[r].name&&t.size===this.files[r].size){this.trigger("error",{code:o.file_duplicate_error,message:o.translate("duplicate file error."),file:t}),n(!1);return}}n(!0)}),o.uploader=function(e){function g(){var e,t=0,n;if(this.state==o.started){for(n=0;n0?math.ceil(e.loaded/e.size*100):100,b()}function b(){var e,t;d.reset();for(e=0;e0?math.ceil(d.uploaded/f.length*100):0:(d.bytespersec=math.ceil(d.loaded/((+(new date)-p||1)/1e3)),d.percent=d.size>0?math.ceil(d.loaded/d.size*100):0)}function w(){var e=c[0]||h[0];return e?e.getruntime().uid:!1}function e(e,n){if(e.ruid){var r=t.runtime.getinfo(e.ruid);if(r)return r.can(n)}return!1}function s(){this.bind("filesadded filesremoved",function(e){e.trigger("queuechanged"),e.refresh()}),this.bind("cancelupload",o),this.bind("beforeupload",c),this.bind("uploadfile",k),this.bind("uploadprogress",l),this.bind("statechanged",a),this.bind("queuechanged",b),this.bind("error",_),this.bind("fileuploaded",m),this.bind("destroy",d)}function x(e,n){var r=this,i=0,s=[],u={runtime_order:e.runtimes,required_caps:e.required_features,preferred_caps:l,swf_url:e.flash_swf_url,xap_url:e.silverlight_xap_url};o.each(e.runtimes.split(/\s*,\s*/),function(t){e[t]&&(u[t]=e[t])}),e.browse_button&&o.each(e.browse_button,function(n){s.push(function(s){var a=new t.fileinput(o.extend({},u,{accept:e.filters.mime_types,name:e.file_data_name,multiple:e.multi_selection,container:e.container,browse_button:n}));a.onready=function(){var e=t.runtime.getinfo(this.ruid);t.extend(r.features,{chunks:e.can("slice_blob"),multipart:e.can("send_multipart"),multi_selection:e.can("select_multiple")}),i++,c.push(this),s()},a.onchange=function(){r.addfile(this.files)},a.bind("mouseenter mouseleave mousedown mouseup",function(r){v||(e.browse_button_hover&&("mouseenter"===r.type?t.addclass(n,e.browse_button_hover):"mouseleave"===r.type&&t.removeclass(n,e.browse_button_hover)),e.browse_button_active&&("mousedown"===r.type?t.addclass(n,e.browse_button_active):"mouseup"===r.type&&t.removeclass(n,e.browse_button_active)))}),a.bind("mousedown",function(){r.trigger("browse")}),a.bind("error runtimeerror",function(){a=null,s()}),a.init()})}),e.drop_element&&o.each(e.drop_element,function(e){s.push(function(n){var s=new t.filedrop(o.extend({},u,{drop_zone:e}));s.onready=function(){var e=t.runtime.getinfo(this.ruid);r.features.dragdrop=e.can("drag_and_drop"),i++,h.push(this),n()},s.ondrop=function(){r.addfile(this.files)},s.bind("error runtimeerror",function(){s=null,n()}),s.init()})}),t.inseries(s,function(){typeof n=="function"&&n(i)})}function t(e,r,i){var s=new t.image;try{s.onload=function(){if(r.width>this.width&&r.height>this.height&&r.quality===n&&r.preserve_headers&&!r.crop)return this.destroy(),i(e);s.downsize(r.width,r.height,r.crop,r.preserve_headers)},s.onresize=function(){i(this.getasblob(e.type,r.quality)),this.destroy()},s.onerror=function(){i(e)},s.load(e)}catch(o){i(e)}}function n(e,n,r){function f(e,t,n){var r=a[e];switch(e){case"max_file_size":e==="max_file_size"&&(a.max_file_size=a.filters.max_file_size=t);break;case"chunk_size":if(t=o.parsesize(t))a[e]=t,a.send_file_name=!0;break;case"multipart":a[e]=t,t||(a.send_file_name=!0);break;case"unique_names":a[e]=t,t&&(a.send_file_name=!0);break;case"filters":o.typeof(t)==="array"&&(t={mime_types:t}),n?o.extend(a.filters,t):a.filters=t,t.mime_types&&(a.filters.mime_types.regexp=function(e){var t=[];return o.each(e,function(e){o.each(e.extensions.split(/,/),function(e){/^\s*\*\s*$/.test(e)?t.push("\\.*"):t.push("\\."+e.replace(new regexp("["+"/^$.*+?|()[]{}\\".replace(/./g,"\\$&")+"]","g"),"\\$&"))})}),new regexp("("+t.join("|")+")$","i")}(a.filters.mime_types));break;case"resize":n?o.extend(a.resize,t,{enabled:!0}):a.resize=t;break;case"prevent_duplicates":a.prevent_duplicates=a.filters.prevent_duplicates=!!t;break;case"browse_button":case"drop_element":t=o.get(t);case"container":case"runtimes":case"multi_selection":case"flash_swf_url":case"silverlight_xap_url":a[e]=t,n||(u=!0);break;default:a[e]=t}n||i.trigger("optionchanged",e,t,r)}var i=this,u=!1;typeof e=="object"?o.each(e,function(e,t){f(t,e,r)}):f(e,n,r),r?(a.required_features=s(o.extend({},a)),l=s(o.extend({},a,{required_features:!0}))):u&&(i.trigger("destroy"),x.call(i,a,function(e){e?(i.runtime=t.runtime.getinfo(w()).type,i.trigger("init",{runtime:i.runtime}),i.trigger("postinit")):i.trigger("error",{code:o.init_error,message:o.translate("init error.")})}))}function c(e,t){if(e.settings.unique_names){var n=t.name.match(/\.([^.]+)$/),r="part";n&&(r=n[1]),t.target_name=t.id+"."+r}}function k(e,n){function h(){u-->0?r(p,1e3):(n.loaded=f,e.trigger("error",{code:o.http_error,message:o.translate("http error."),file:n,response:m.responsetext,status:m.status,responseheaders:m.getallresponseheaders()}))}function p(){var d,v,g={},y;if(n.status!==o.uploading||e.state===o.stopped)return;e.settings.send_file_name&&(g.name=n.target_name||n.name),s&&a.chunks&&c.size>s?(y=math.min(s,c.size-f),d=c.slice(f,f+y)):(y=c.size,d=c),s&&a.chunks&&(e.settings.send_chunk_number?(g.chunk=math.ceil(f/s),g.chunks=math.ceil(c.size/s)):(g.offset=f,g.total=c.size)),m=new t.xmlhttprequest,m.upload&&(m.upload.onprogress=function(t){n.loaded=math.min(n.size,f+t.loaded),e.trigger("uploadprogress",n)}),m.onload=function(){if(m.status>=400){h();return}u=e.settings.max_retries,y=c.size?(n.size!=n.origsize&&(c.destroy(),c=null),e.trigger("uploadprogress",n),n.status=o.done,e.trigger("fileuploaded",n,{response:m.responsetext,status:m.status,responseheaders:m.getallresponseheaders()})):r(p,1)},m.onerror=function(){h()},m.onloadend=function(){this.destroy(),m=null},e.settings.multipart&&a.multipart?(m.open("post",i,!0),o.each(e.settings.headers,function(e,t){m.setrequestheader(t,e)}),v=new t.formdata,o.each(o.extend(g,e.settings.multipart_params),function(e,t){v.append(t,e)}),v.append(e.settings.file_data_name,d),m.send(v,{runtime_order:e.settings.runtimes,required_caps:e.settings.required_features,preferred_caps:l,swf_url:e.settings.flash_swf_url,xap_url:e.settings.silverlight_xap_url})):(i=o.buildurl(e.settings.url,o.extend(g,e.settings.multipart_params)),m.open("post",i,!0),m.setrequestheader("content-type","application/octet-stream"),o.each(e.settings.headers,function(e,t){m.setrequestheader(t,e)}),m.send(d,{runtime_order:e.settings.runtimes,required_caps:e.settings.required_features,preferred_caps:l,swf_url:e.settings.flash_swf_url,xap_url:e.settings.silverlight_xap_url}))}var i=e.settings.url,s=e.settings.chunk_size,u=e.settings.max_retries,a=e.features,f=0,c;n.loaded&&(f=n.loaded=s?s*math.floor(n.loaded/s):0),c=n.getsource(),e.settings.resize.enabled&&e(c,"send_binary_string")&&!!~t.inarray(c.type,["image/jpeg","image/png"])?t.call(this,c,e.settings.resize,function(e){c=e,n.size=e.size,p()}):p()}function l(e,t){y(t)}function a(e){if(e.state==o.started)p=+(new date);else if(e.state==o.stopped)for(var t=e.files.length-1;t>=0;t--)e.files[t].status==o.uploading&&(e.files[t].status=o.queued,b())}function o(){m&&m.abort()}function m(e){b(),r(function(){g.call(e)},1)}function _(e,t){t.code===o.init_error?e.destroy():t.code===o.http_error&&(t.file.status=o.failed,y(t.file),e.state==o.started&&(e.trigger("cancelupload"),r(function(){g.call(e)},1)))}function d(e){e.stop(),o.each(f,function(e){e.destroy()}),f=[],c.length&&(o.each(c,function(e){e.destroy()}),c=[]),h.length&&(o.each(h,function(e){e.destroy()}),h=[]),l={},v=!1,p=m=null,d.reset()}var u=o.guid(),a,f=[],l={},c=[],h=[],p,d,v=!1,m;a={runtimes:t.runtime.order,max_retries:0,chunk_size:0,multipart:!0,multi_selection:!0,file_data_name:"file",flash_swf_url:"js/moxie.swf",silverlight_xap_url:"js/moxie.xap",filters:{mime_types:[],prevent_duplicates:!1,max_file_size:0},resize:{enabled:!1,preserve_headers:!0,crop:!1},send_file_name:!0,send_chunk_number:!0},n.call(this,e,null,!0),d=new o.queueprogress,o.extend(this,{id:u,uid:u,state:o.stopped,features:{},runtime:null,files:f,settings:a,total:d,init:function(){var e=this;typeof a.preinit=="function"?a.preinit(e):o.each(a.preinit,function(t,n){e.bind(n,t)}),s.call(this);if(!a.browse_button||!a.url){this.trigger("error",{code:o.init_error,message:o.translate("init error.")});return}x.call(this,a,function(n){typeof a.init=="function"?a.init(e):o.each(a.init,function(t,n){e.bind(n,t)}),n?(e.runtime=t.runtime.getinfo(w()).type,e.trigger("init",{runtime:e.runtime}),e.trigger("postinit")):e.trigger("error",{code:o.init_error,message:o.translate("init error.")})})},setoption:function(e,t){n.call(this,e,t,!this.runtime)},getoption:function(e){return e?a[e]:a},refresh:function(){c.length&&o.each(c,function(e){e.trigger("refresh")}),this.trigger("refresh")},start:function(){this.state!=o.started&&(this.state=o.started,this.trigger("statechanged"),g.call(this))},stop:function(){this.state!=o.stopped&&(this.state=o.stopped,this.trigger("statechanged"),this.trigger("cancelupload"))},disablebrowse:function(){v=arguments[0]!==n?arguments[0]:!0,c.length&&o.each(c,function(e){e.disable(v)}),this.trigger("disablebrowse",v)},getfile:function(e){var t;for(t=f.length-1;t>=0;t--)if(f[t].id===e)return f[t]},addfile:function(e,n){function c(e,n){var r=[];t.each(s.settings.filters,function(t,n){i[n]&&r.push(function(r){i[n].call(s,t,e,function(e){r(!e)})})}),t.inseries(r,n)}function h(e){var i=t.typeof(e);if(e instanceof t.file){if(!e.ruid&&!e.isdetached()){if(!l)return!1;e.ruid=l,e.connectruntime(l)}h(new o.file(e))}else e instanceof t.blob?(h(e.getsource()),e.destroy()):e instanceof o.file?(n&&(e.name=n),u.push(function(t){c(e,function(n){n||(f.push(e),a.push(e),s.trigger("filefiltered",e)),r(t,1)})})):t.inarray(i,["file","blob"])!==-1?h(new t.file(null,e)):i==="node"&&t.typeof(e.files)==="filelist"?t.each(e.files,h):i==="array"&&(n=null,t.each(e,h))}var s=this,u=[],a=[],l;l=w(),h(e),u.length&&t.inseries(u,function(){a.length&&s.trigger("filesadded",a)})},removefile:function(e){var t=typeof e=="string"?e:e.id;for(var n=f.length-1;n>=0;n--)if(f[n].id===t)return this.splice(n,1)[0]},splice:function(e,t){var r=f.splice(e===n?0:e,t===n?f.length:t),i=!1;return this.state==o.started&&(o.each(r,function(e){if(e.status===o.uploading)return i=!0,!1}),i&&this.stop()),this.trigger("filesremoved",r),o.each(r,function(e){e.destroy()}),i&&this.start(),r},dispatchevent:function(e){var t,n,r;e=e.tolowercase(),t=this.haseventlistener(e);if(t){t.sort(function(e,t){return t.priority-e.priority}),n=[].slice.call(arguments),n.shift(),n.unshift(this);for(var i=0;i]+)>", "g");
var result = null;
$.each(g.rules, function (endpoint, rules) {
$.each(rules, function (index, rule) {
rule.params = [];
while ((result = pattern.exec(rule.rule)) !== null) {
var matchresult = result[1];
var splitresult = matchresult.split(':');
var param = '';
if (splitresult.length == 1) {
param = matchresult;
} else {
param = splitresult[1];
}
rule.params.push(param);
}
});
});
function urlfor(endpoint, parameters, external) {
var url = null,
params = [],
maxmatchdegree = 0.0,
keys;
if ($.type(parameters) === "boolean") {
external = parameters
}
parameters = ($.type(parameters) !== 'undefined') ? parameters : {};
external = ($.type(external) !== 'undefined') ? external : false;
if (g.rules[endpoint] === undefined) {
throw new error("uncorrect endpoint in urlfor(\"" + endpoint + "\", " +
json.stringify(parameters) + ")");
}
keys = $.map(parameters, function (value, key) {
return key;
});
$.each(g.rules[endpoint], function (index, rule) {
var match = true,
currentmatchdegree = 0.0;
$.each(rule.params, function (index, param) {
if ($.inarray(param, keys) === -1) {
match = false;
return false;
}
});
if (match) {
currentmatchdegree = parsefloat(rule.params.length) / keys.length;
if (currentmatchdegree > maxmatchdegree || url === null) {
maxmatchdegree = currentmatchdegree;
url = rule.rule;
params = rule.params;
}
}
});
if (url) {
$.each(keys, function (index, key) {
if ($.inarray(key, params) > -1) {
url = url.replace(new regexp("<[^:]*:?" + key + ">"), parameters[key]);
} else {
if (url.indexof("?") === -1) {
url += "?";
}
if (!endswith(url, '?')) {
url += "&";
}
url += key + "=" + parameters[key];
}
});
} else {
throw new error("uncorrect parameters in urlfor(\"" + endpoint + "\", " +
json.stringify(parameters) + ")");
}
if (external) {
url = g.domain + url
}
return url;
}
function endswith(str, suffix) {
return str.indexof(suffix, str.length - suffix.length) !== -1;
}
function registercontext(context) {
if (typeof g === 'undefined') {
throw new error("global variable g is not defined.");
}
$.each(context, function (key, value) {
if (g.hasownproperty(key)) {
throw new error("the key '" + key + "' already exists in the global variable g.");
}
g[key] = value;
});
}
function $page(selector) {
return $('#main').find(selector);
}
window.$page = $page;
window.urlfor = urlfor;
window.registercontext = registercontext;
})();