1var MXI_DEBUG=!1;(function(exports,undefined){"use strict";var modules={};function require(ids,callback){var module,defs=[];for(var i=0;i<ids.length;++i){module=modules[ids[i]]||resolve(ids[i]);if(!module){throw 'module definition dependecy not found: '+ids[i]} 2defs.push(module)} 3callback.apply(null,defs)} 4function define(id,dependencies,definition){if(typeof id!=='string'){throw 'invalid module definition, module id must be defined and be a string'} 5if(dependencies===undefined){throw 'invalid module definition, dependencies must be specified'} 6if(definition===undefined){throw 'invalid module definition, definition function must be specified'} 7require(dependencies,function(){modules[id]=definition.apply(null,arguments)})} 8function defined(id){return!!modules[id]} 9function resolve(id){var target=exports;var fragments=id.split(/[.\/]/);for(var fi=0;fi<fragments.length;++fi){if(!target[fragments[fi]]){return} 10target=target[fragments[fi]]} 11return target} 12function expose(ids){for(var i=0;i<ids.length;i++){var target=exports;var id=ids[i];var fragments=id.split(/[.\/]/);for(var fi=0;fi<fragments.length-1;++fi){if(target[fragments[fi]]===undefined){target[fragments[fi]]={}} 13target=target[fragments[fi]]} 14target[fragments[fragments.length-1]]=modules[id]}} 15define('moxie/core/utils/Basic',[],function(){var typeOf=function(o){var undef;if(o===undef){return'undefined'}else if(o===null){return'null'}else if(o.nodeType){return'node'} 16return({}).toString.call(o).match(/\s([a-z|A-Z]+)/)[1].toLowerCase()};var extend=function(target){var undef;each(arguments,function(arg,i){if(i>0){each(arg,function(value,key){if(value!==undef){if(typeOf(target[key])===typeOf(value)&&!!~inArray(typeOf(value),['array','object'])){extend(target[key],value)}else{target[key]=value}}})}});return target};var each=function(obj,callback){var length,key,i,undef;if(obj){if(typeOf(obj.length)==='number'){for(i=0,length=obj.length;i<length;i++){if(callback(obj[i],i)===!1){return}}}else if(typeOf(obj)==='object'){for(key in obj){if(obj.hasOwnProperty(key)){if(callback(obj[key],key)===!1){return}}}}}};var isEmptyObj=function(obj){var prop;if(!obj||typeOf(obj)!=='object'){return!0} 17for(prop in obj){return!1} 18return!0};var inSeries=function(queue,cb){var i=0,length=queue.length;if(typeOf(cb)!=='function'){cb=function(){}} 19if(!queue||!queue.length){cb()} 20function callNext(i){if(typeOf(queue[i])==='function'){queue[i](function(error){++i<length&&!error?callNext(i):cb(error)})}} 21callNext(i)};var inParallel=function(queue,cb){var count=0,num=queue.length,cbArgs=new Array(num);each(queue,function(fn,i){fn(function(error){if(error){return cb(error)} 22var args=[].slice.call(arguments);args.shift();cbArgs[i]=args;count++;
22if(count===num){cbArgs.unshift(null);cb.apply(this,cbArgs)}})})};var inArray=function(needle,array){if(array){if(Array.prototype.indexOf){return Array.prototype.indexOf.call(array,needle)} 23for(var i=0,length=array.length;i<length;i++){if(array[i]===needle){return i}}} 24return-1};var arrayDiff=function(needles,array){var diff=[];if(typeOf(needles)!=='array'){needles=[needles]} 25if(typeOf(array)!=='array'){array=[array]} 26for(var i in needles){if(inArray(needles[i],array)===-1){diff.push(needles[i])}} 27return diff.length?diff:!1};var arrayIntersect=function(array1,array2){var result=[];each(array1,function(item){if(inArray(item,array2)!==-1){result.push(item)}});return result.length?result:null};var toArray=function(obj){var i,arr=[];for(i=0;i<obj.length;i++){arr[i]=obj[i]} 28return arr};var guid=(function(){var counter=0;return function(prefix){var guid=new Date().getTime().toString(32),i;for(i=0;i<5;i++){guid+=Math.floor(Math.random()*65535).toString(32)} 29return(prefix||'o_')+guid+(counter++).toString(32)}}());var trim=function(str){if(!str){return str} 30return String.prototype.trim?String.prototype.trim.call(str):str.toString().replace(/^\s*/,'').replace(/\s*$/,'')};var parseSizeStr=function(size){if(typeof(size)!=='string'){return size} 31var muls={t:1099511627776,g:1073741824,m:1048576,k:1024},mul;size=/^([0-9\.]+)([tmgk]?)$/.exec(size.toLowerCase().replace(/[^0-9\.tmkg]/g,''));mul=size[2];size=+size[1];if(muls.hasOwnProperty(mul)){size*=muls[mul]} 32return Math.floor(size)};var sprintf=function(str){var args=[].slice.call(arguments,1);return str.replace(/%[a-z]/g,function(){var value=args.shift();return typeOf(value)!=='undefined'?value:''})};return{guid:guid,typeOf:typeOf,extend:extend,each:each,isEmptyObj:isEmptyObj,inSeries:inSeries,inParallel:inParallel,inArray:inArray,arrayDiff:arrayDiff,arrayIntersect:arrayIntersect,toArray:toArray,trim:trim,sprintf:sprintf,parseSizeStr:parseSizeStr}});define("moxie/core/utils/Env",["moxie/core/utils/Basic"],function(Basic){var UAParser=(function(undefined){var EMPTY='',UNKNOWN='?',FUNC_TYPE='function',UNDEF_TYPE='undefined',OBJ_TYPE='object',MAJOR='major',MODEL='model',NAME='name',TYPE='type',VENDOR='vendor',VERSION='version',ARCHITECTURE='architecture',CONSOLE='console',MOBILE='mobile',TABLET='tablet';var util={has:function(str1,str2){return str2.toLowerCase().indexOf(str1.toLowerCase())!==-1},lowerize:function(str){return str.toLowerCase()}};var mapper={rgx:function(){for(var result,i=0,j,k,p,q,matches,match,args=arguments;i<args.length;i+=2){var regex=args[i],props=args[i+1];if(typeof(result)===UNDEF_TYPE){result={};for(p in props){q=props[p];if(typeof(q)===OBJ_TYPE){result[q[0]]=undefined}else{result[q]=undefined}}} 33for(j=k=0;j<regex.length;j++){matches=regex[j].exec(this.getUA());if(!!matches){for(p=0;p<props.length;p++){match=matches[++k];q=props[p];if(typeof(q)===OBJ_TYPE&&q.length>0){if(q.length==2){if(typeof(q[1])==FUNC_TYPE){result[q[0]]=q[1].call(this,match)}else{result[q[0]]=q[1]}}else if(q.length==3){if(typeof(q[1])===FUNC_TYPE&&!(q[1].exec&&q[1].test)){result[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{result[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length==4){result[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{result[q]=match?match:undefined}} 34break}} 35if(!!matches)break} 36return result},str:function(str,map){for(var i in map){if(typeof(map[i])===OBJ_TYPE&&map[i].length>0){for(var j=0;j<map[i].length;j++){if(util.has(map[i][j],str)){return(i===UNKNOWN)?undefined:i}}}else if(util.has(map[i],str)){return(i===UNKNOWN)?undefined:i}} 37return str}};var maps={browser:{oldsafari:{major:{'1':['/8','/1','/3'],'2':'/4','?':'/'},version:{'1.0':'/8','1.2':'/1','1.3':'/3','2.0':'/412','2.0.2':'/416','2.0.3':'/417','2.0.4':'/419','?':'/'}}},device:{sprint:{model:{'Evo Shift 4G':'7373KT'},vendor:{'HTC':'APA','Sprint':'Sprint'}}},os:{windows:{version:{'ME':'4.90','NT 3.11':'NT3.51','NT 4.0':'NT4.0','2000':'NT 5.0','XP':['NT 5.1','NT 5.2'],'Vista':'NT 6.0','7':'NT 6.1','8':'NT 6.2','8.1':'NT 6.3','RT':'ARM'}}}};var regexes={browser:[[/(opera\smini)\/([\w\.-]+)/i,/(opera\s[mobiletab]+).+version\/([\w\.-]+)/i,/(opera).+version\/([\w\.]+)/i,/(opera)[\/\s]+([\w\.]+)/i],[NAME,VERSION],[/\s(opr)\/([\w\.]+)/i],[[NAME,'Opera'],VERSION],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/\s]?([\w\.]+)*/i,/(avant\s|iemobile|slim|baidu)(?:browser)?[\/\s]?([\w\.]*)/i,/(?:ms|\()(ie)\s([\w\.]+)/i,/(rekonq)\/([\w\.]+)*/i,/(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi)\/([\w\.-]+)/i],[NAME,VERSION],[/(trident).+rv[:\s]([\w\.]+).+like\sgecko/i],[[NAME,'IE'],VERSION],[/(edge)\/((\d+)?[\w\.]+)/i],[NAME,VERSION],[/(yabrowser)\/([\w\.]+)/i],[[NAME,'Yandex'],VERSION],[/(comodo_dragon)\/([\w\.]+)/i],[[NAME,/_/g,' '],VERSION],[/(chrome|omniweb|arora|[t
37izenoka]{5}\s?browser)\/v?([\w\.]+)/i,/(uc\s?browser|qqbrowser)[\/\s]?([\w\.]+)/i],[NAME,VERSION],[/(dolfin)\/([\w\.]+)/i],[[NAME,'Dolphin'],VERSION],[/((?:android.+)crmo|crios)\/([\w\.]+)/i],[[NAME,'Chrome'],VERSION],[/XiaoMi\/MiuiBrowser\/([\w\.]+)/i],[VERSION,[NAME,'MIUI Browser']],[/android.+version\/([\w\.]+)\s+(?:mobile\s?safari|safari)/i],[VERSION,[NAME,'Android Browser']],[/FBAV\/([\w\.]+);/i],[VERSION,[NAME,'Facebook']],[/version\/([\w\.]+).+?mobile\/\w+\s(safari)/i],[VERSION,[NAME,'Mobile Safari']],[/version\/([\w\.]+).+?(mobile\s?safari|safari)/i],[VERSION,NAME],[/webkit.+?(mobile\s?safari|safari)(\/[\w\.]+)/i],[NAME,[VERSION,mapper.str,maps.browser.oldsafari.version]],[/(konqueror)\/([\w\.]+)/i,/(webkit|khtml)\/([\w\.]+)/i],[NAME,VERSION],[/(navigator|netscape)\/([\w\.-]+)/i],[[NAME,'Netscape'],VERSION],[/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?([\w\.\+]+)/i,/(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix)\/([\w\.-]+)/i,/(mozilla)\/([\w\.]+).+rv\:.
37+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf)[\/\s]?([\w\.]+)/i,/(links)\s\(([\w\.]+)/i,/(gobrowser)\/?([\w\.]+)*/i,/(ice\s?browser)\/v?([\w\._]+)/i,/(mosaic)[\/\s]([\w\.]+)/i],[NAME,VERSION]],engine:[[/windows.+\sedge\/([\w\.]+)/i],[VERSION,[NAME,'EdgeHTML']],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m)\/([\w\.]+)/i,/(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i,/(icab)[\/\s]([23]\.[\d\.]+)/i],[NAME,VERSION],[/rv\:([\w\.]+).*(gecko)/i],[VERSION,NAME]],os:[[/microsoft\s(windows)\s(vista|xp)/i],[NAME,VERSION],[/(windows)\snt\s6\.2;\s(arm)/i,/(windows\sphone(?:\sos)*|windows\smobile|windows)[\s\/]?([ntce\d\.\s]+\w)/i],[NAME,[VERSION,mapper.str,maps.os.windows.version]],[/(win(?=3|9|n)|win\s9x\s)([nt\d\.]+)/i],[[NAME,'Windows'],[VERSION,mapper.str,maps.os.windows.version]],[/\((bb)(10);/i],[[NAME,'BlackBerry'],VERSION],[/(blackberry)\w*\/?([\w\.]+)*/i,/(tizen)[\/\s]([\w\.]+)/i,/(android|webos|palm\os|qnx|bada|rim\stablet\sos|meego|contiki)[\/\s-]?([\w\.]+)*/i,/linux;.+(sailfish);/i],[NAME,VERSION],[/(symbian\s?os|symbos|s60(?=;))[\/\s-]?([\w\.]+)*/i],[[NAME,'Symbian'],VERSION],[/\((series40);/i],[NAME],[/mozilla.+\(mobile;.+gecko.+firefox/i],[[NAME,'Firefox OS'],VERSION],[/(nintendo|playstation)\s([wids3portablevu]+)/i,/(mint)[\/\s\(]?(\w+)*/i,/(mageia|vectorlinux)[;\s]/i,/(joli|[kxln]?ubuntu|debian|[open]*suse|gentoo|arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?([\w\.-]+)*/i,/(hurd|linux)\s?([\w\.]+)*/i,/(gnu)\s?([\w\.]+)*/i],[NAME,VERSION],[/(cros)\s[\w]+\s([\w\.]+\w)/i],[[NAME,'Chromium OS'],VERSION],[/(sunos)\s?([\w\.]+\d)*/i],[[NAME,'Solaris'],VERSION],[/\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]+)*/i],[NAME,VERSION],[/(ip[honead]+)(?:.*os\s*([\w]+)*\slike\smac|;\sopera)/i],[[NAME,'iOS'],[VERSION,/_/g,'.']],[/(mac\sos\sx)\s?([\w\s\.]+\w)*/i,/(macintosh|mac(?=_powerpc)\s)/i],[[NAME,'Mac OS'],[VERSION,/_/g,'.']],[/((?:open)?solaris)[\/\s-]?([\w\.]+)*/i,/(haiku)\s(\w+)/i,/(aix)\s((\d)(?=\.|\)|\s)[\w\.]*)*/i,/(plan\s9|minix|beos|os\/2|amigaos|morphos|risc\sos|openvms)/i,/(unix)\s?([\w\.]+)*/i],[NAME,VERSION]]};var UAParser=function(uastring){var ua=uastring||((window&&window.navigator&&window.navigator.userAgent)?window.navigator.userAgent:EMPTY);this.getBrowser=function(){return mapper.rgx.apply(this,regexes.browser)};this.getEngine=function(){return mapper.rgx.apply(this,regexes.engine)};this.getOS=function(){return mapper.rgx.apply(this,regexes.os)};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS()}};this.getUA=function(){return ua};this.setUA=function(uastring){ua=uastring;return this};this.setUA(ua)};return UAParser})();function version_compare(v1,v2,operator){var i=0,x=0,compare=0,vm={'dev':-6,'alpha':-5,'a':-5,'beta':-4,'b':-4,'RC':-3,'rc':-3,'#':-2,'p':1,'pl':1},prepVersion=function(v){v=(''+v).replace(/[_\-+]/g,'.');v=v.replace(/([^.\d]+)/g,'.$1.').replace(/\.{2,}/g,'.');return(!v.length?[-8]:v.split('.'))},numVersion=function(v){return!v?0:(isNaN(v)?vm[v]||-7:parseInt(v,10))};v1=prepVersion(v1);v2=prepVersion(v2);x=Math.max(v1.length,v2.length);for(i=0;i<x;i++){if(v1[i]==v2[i]){continue} 38v1[i]=numVersion(v1[i]);v2[i]=numVersion(v2[i]);if(v1[i]<v2[i]){compare=-1;break}else if(v1[i]>v2[i]){compare=1;break}} 39if(!operator){return compare} 40switch(operator){case '>':case 'gt':return(compare>0);case '>=':case 'ge':return(compare>=0);case '<=':case 'le':return(compare<=0);case '==':case '=':case 'eq':return(compare===0);case '<>':case '!=':case 'ne':return(compare!==0);case '':case '<':case 'lt':return(compare<0);default:return null}} 41var can=(function(){var caps={define_property:(function(){return!1}()),create_canvas:(function(){var el=document.createElement('canvas');return!!(el.getContext&&el.getContext('2d'))}()),return_response_type:function(responseType){try{if(Basic.inArray(responseType,['','text','document'])!==-1){return!0}else if(window.XMLHttpRequest){var xhr=new XMLHttpRequest();xhr.open('get','/');if('responseType' in xhr){xhr.responseType=responseType;if(xhr.responseType!==responseType){return!1} 42return!0}}}catch(ex){} 43return!1},use_data_uri:(function(){var du=new Image();du.onload=function(){caps.use_data_uri=(du.width===1&&du.height===1)};setTimeout(function(){du.src="data:image/gif;base64,R0lGODlhAQABAIAAAP8AAAAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw=="},1);return!1}()),use_data_uri_over32kb:function(){return caps.use_data_uri&&(Env.browser!=='IE'||Env.version>=9)},use_data_uri_of:function(bytes){return(caps.use_data_uri&&bytes<33000||caps.use_data_uri_over32kb())},use_fileinput:function(){if(navigator.userAgent.match(/(Android (1.0|1.1|1.5|1.6|2.0|2.1))|(Windows Phone (OS 7|8.0))|(XBLWP)|(ZuneWP)|(w(eb)?OSBrowser)|(webOS)|(Kindle\/(1.0|2.0|2.5|3.0))
43/)){return!1} 44var el=document.createElement('input');el.setAttribute('type','file');return!el.disabled}};return function(cap){var args=[].slice.call(arguments);args.shift();return Basic.typeOf(caps[cap])==='function'?caps[cap].apply(this,args):!!caps[cap]}}());var uaResult=new UAParser().getResult();var Env={can:can,uaParser:UAParser,browser:uaResult.browser.name,version:uaResult.browser.version,os:uaResult.os.name,osVersion:uaResult.os.version,verComp:version_compare,global_event_dispatcher:"moxie.core.EventTarget.instance.dispatchEvent"};Env.OS=Env.os;if(MXI_DEBUG){Env.debug={runtime:!0,events:!1};Env.log=function(){function logObj(data){console.appendChild(document.createTextNode(data+"\n"))} 45var data=arguments[0];if(Basic.typeOf(data)==='string'){data=Basic.sprintf.apply(this,arguments)} 46if(window&&window.console&&window.console.log){window.console.log(data)}else if(document){var console=document.getElementById('moxie-console');if(!console){console=document.createElement('pre');console.id='moxie-console';document.body.appendChild(console)} 47if(Basic.inArray(Basic.typeOf(data),['object','array'])!==-1){logObj(data)}else{console.appendChild(document.createTextNode(data+"\n"))}}}} 48return Env});define("moxie/core/I18n",["moxie/core/utils/Basic"],function(Basic){var i18n={};return{addI18n:function(pack){return Basic.extend(i18n,pack)},translate:function(str){return i18n[str]||str},_:function(str){return this.translate(str)},sprintf:function(str){var args=[].slice.call(arguments,1);return str.replace(/%[a-z]/g,function(){var value=args.shift();return Basic.typeOf(value)!=='undefined'?value:''})}}});define("moxie/core/utils/Mime",["moxie/core/utils/Basic","moxie/core/I18n"],function(Basic,I18n){var mimeData=""+"application/msword,doc dot,"+"application/pdf,pdf,"+"application/pgp-signature,pgp,"+"application/postscript,ps ai eps,"+"application/rtf,rtf,"+"application/vnd.ms-excel,xls xlb,"+"application/vnd.ms-powerpoint,ppt pps pot,"+"application/zip,zip,"+"application/x-shockwave-flash,swf swfl,"+"application/vnd.openxmlformats-officedocument.wordprocessingml.document,docx,"+"application/vnd.openxmlformats-officedocument.wordprocessingml.template,dotx,"+"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,xlsx,"+"application/vnd.openxmlformats-officedocument.presentationml.presentation,pptx,"+"application/vnd.openxmlformats-officedocument.presentationml.template,potx,"+"application/vnd.openxmlformats-officedocument.presentationml.slideshow,ppsx,"+"application/x-javascript,js,"+"application/json,json,"+"audio/mpeg,mp3 mpga mpega mp2,"+"audio/x-wav,wav,"+"audio/x-m4a,m4a,"+"audio/ogg,oga ogg,"+"audio/aiff,aiff aif,"+"audio/flac,flac,"+"audio/aac,aac,"+"audio/ac3,ac3,"+"audio/x-ms-wma,wma,"+"image/bmp,bmp,"+"image/gif,gif,"+"image/jpeg,jpg jpeg jpe,"+"image/photoshop,psd,"+"image/png,png,"+"image/svg+xml,svg svgz,"+"image/tiff,tiff tif,"+"text/plain,asc txt text diff log,"+"text/html,htm html xhtml,"+"text/css,css,"+"text/csv,csv,"+"text/rtf,rtf,"+"video/mpeg,mpeg mpg mpe m2v,"+"video/quicktime,qt mov,"+"video/mp4,mp4,"+"video/x-m4v,m4v,"+"video/x-flv,flv,"+"video/x-ms-wmv,wmv,"+"video/avi,avi,"+"video/webm,webm,"+"video/3gpp,3gpp 3gp,"+"video/3gpp2,3g2,"+"video/vnd.rn-realvideo,rv,"+"video/ogg,ogv,"+"video/x-matroska,mkv,"+"application/vnd.oasis.opendocument.formula-template,otf,"+"application/octet-stream,exe";var Mime={mimes:{},extensions:{},addMimeType:function(mimeData){var items=mimeData.split(/,/),i,ii,ext;for(i=0;i<items.length;i+=2){ext=items[i+1].split(/ /);for(ii=0;ii<ext.length;ii++){this.mimes[ext[ii]]=items[i]} 49this.extensions[items[i]]=ext}},extList2mimes:function(filters,addMissingExtensions){var self=this,ext,i,ii,type,mimes=[];for(i=0;i<filters.length;i++){ext=filters[i].extensions.split(/\s*,\s*/);for(ii=0;ii<ext.length;ii++){if(ext[ii]==='*'){return[]} 50type=self.mimes[ext[ii]];if(type&&Basic.inArray(type,mimes)===-1){mimes.push(type)} 51if(addMissingExtensions&&/^\w+$/.test(ext[ii])){mimes.push('.'+ext[ii])}else if(!type){return[]}}} 52return mimes},mimes2exts:function(mimes){var self=this,exts=[];
52Basic.each(mimes,function(mime){if(mime==='*'){exts=[];return!1} 53var m=mime.match(/^(\w+)\/(\*|\w+)$/);if(m){if(m[2]==='*'){Basic.each(self.extensions,function(arr,mime){if((new RegExp('^'+m[1]+'/')).test(mime)){[].push.apply(exts,self.extensions[mime])}})}else if(self.extensions[mime]){[].push.apply(exts,self.extensions[mime])}}});return exts},mimes2extList:function(mimes){var accept=[],exts=[];if(Basic.typeOf(mimes)==='string'){mimes=Basic.trim(mimes).split(/\s*,\s*/)} 54exts=this.mimes2exts(mimes);accept.push({title:I18n.translate('Files'),extensions:exts.length?exts.join(','):'*'});accept.mimes=mimes;return accept},getFileExtension:function(fileName){var matches=fileName&&fileName.match(/\.([^.]+)$/);if(matches){return matches[1].toLowerCase()} 55return''},getFileMime:function(fileName){return this.mimes[this.getFileExtension(fileName)]||''}};Mime.addMimeType(mimeData);return Mime});define('moxie/core/utils/Dom',['moxie/core/utils/Env'],function(Env){var get=function(id){if(typeof id!=='string'){return id} 56return document.getElementById(id)};var hasClass=function(obj,name){if(!obj.className){return!1} 57var regExp=new RegExp("(^|\\s+)"+name+"(\\s+|$)");return regExp.test(obj.className)};var addClass=function(obj,name){if(!hasClass(obj,name)){obj.className=!obj.className?name:obj.className.replace(/\s+$/,'')+' '+name}};var removeClass=function(obj,name){if(obj.className){var regExp=new RegExp("(^|\\s+)"+name+"(\\s+|$)");obj.className=obj.className.replace(regExp,function($0,$1,$2){return $1===' '&&$2===' '?' ':''})}};var getStyle=function(obj,name){if(obj.currentStyle){return obj.currentStyle[name]}else if(window.getComputedStyle){return window.getComputedStyle(obj,null)[name]}};var getPos=function(node,root){var x=0,y=0,parent,doc=document,nodeRect,rootRect;node=node;root=root||doc.body;function getIEPos(node){var bodyElm,rect,x=0,y=0;if(node){rect=node.getBoundingClientRect();bodyElm=doc.compatMode==="CSS1Compat"?doc.documentElement:doc.body;x=rect.left+bodyElm.scrollLeft;y=rect.top+bodyElm.scrollTop} 58return{x:x,y:y}} 59if(node&&node.getBoundingClientRect&&Env.browser==='IE'&&(!doc.documentMode||doc.documentMode<8)){nodeRect=getIEPos(node);rootRect=getIEPos(root);return{x:nodeRect.x-rootRect.x,y:nodeRect.y-rootRect.y}} 60parent=node;while(parent&&parent!=root&&parent.nodeType){x+=parent.offsetLeft||0;y+=parent.offsetTop||0;parent=parent.offsetParent} 61parent=node.parentNode;while(parent&&parent!=root&&parent.nodeType){x-=parent.scrollLeft||0;y-=parent.scrollTop||0;parent=parent.parentNode} 62return{x:x,y:y}};var getSize=function(node){return{w:node.offsetWidth||node.clientWidth,h:node.offsetHeight||node.clientHeight}};return{get:get,hasClass:hasClass,addClass:addClass,removeClass:removeClass,getStyle:getStyle,getPos:getPos,getSize:getSize}});define('moxie/core/Exceptions',['moxie/core/utils/Basic'],function(Basic){function _findKey(obj,value){var key;for(key in obj){if(obj[key]===value){return key}} 63return null} 64return{RuntimeError:(function(){var namecodes={NOT_INIT_ERR:1,NOT_SUPPORTED_ERR:9,JS_ERR:4};function RuntimeError(code){this.code=code;this.name=_findKey(namecodes,code);this.message=this.name+": RuntimeError "+this.code} 65Basic.extend(RuntimeError,namecodes);RuntimeError.prototype=Error.prototype;return RuntimeError}()),OperationNotAllowedException:(function(){function OperationNotAllowedException(code){this.code=code;this.name='OperationNotAllowedException'} 66Basic.extend(OperationNotAllowedException,{NOT_ALLOWED_ERR:1});OperationNotAllowedException.prototype=Error.prototype;return OperationNotAllowedException}()),ImageError:(function(){var namecodes={WRONG_FORMAT:1,MAX_RESOLUTION_ERR:2,INVALID_META_ERR:3};function ImageError(code){this.code=code;this.name=_findKey(namecodes,code);this.message=this.name+": ImageError "+this.code} 67Basic.extend(ImageError,namecodes);ImageError.prototype=Error.prototype;return ImageError}()),FileException:(function(){var namecodes={NOT_FOUND_ERR:1,SECURITY_ERR:2,ABORT_ERR:3,NOT_READABLE_ERR:4,ENCODING_ERR:5,NO_MODIFICATION_ALLOWED_ERR:6,INVALID_STATE_ERR:7,SYNTAX_ERR:8};
67function FileException(code){this.code=code;this.name=_findKey(namecodes,code);this.message=this.name+": FileException "+this.code} 68Basic.extend(FileException,namecodes);FileException.prototype=Error.prototype;return FileException}()),DOMException:(function(){var namecodes={INDEX_SIZE_ERR:1,DOMSTRING_SIZE_ERR:2,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,INVALID_CHARACTER_ERR:5,NO_DATA_ALLOWED_ERR:6,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INUSE_ATTRIBUTE_ERR:10,INVALID_STATE_ERR:11,SYNTAX_ERR:12,INVALID_MODIFICATION_ERR:13,NAMESPACE_ERR:14,INVALID_ACCESS_ERR:15,VALIDATION_ERR:16,TYPE_MISMATCH_ERR:17,SECURITY_ERR:18,NETWORK_ERR:19,ABORT_ERR:20,URL_MISMATCH_ERR:21,QUOTA_EXCEEDED_ERR:22,TIMEOUT_ERR:23,INVALID_NODE_TYPE_ERR:24,DATA_CLONE_ERR:25};function DOMException(code){this.code=code;this.name=_findKey(namecodes,code);this.message=this.name+": DOMException "+this.code} 69Basic.extend(DOMException,namecodes);DOMException.prototype=Error.prototype;return DOMException}()),EventException:(function(){function EventException(code){this.code=code;this.name='EventException'} 70Basic.extend(EventException,{UNSPECIFIED_EVENT_TYPE_ERR:0});EventException.prototype=Error.prototype;return EventException}())}});define('moxie/core/EventTarget',['moxie/core/utils/Env','moxie/core/Exceptions','moxie/core/utils/Basic'],function(Env,x,Basic){function EventTarget(){var eventpool={};Basic.extend(this,{uid:null,init:function(){if(!this.uid){this.uid=Basic.guid('uid_')}},addEventListener:function(type,fn,priority,scope){var self=this,list;if(!this.hasOwnProperty('uid')){this.uid=Basic.guid('uid_')} 71type=Basic.trim(type);if(/\s/.test(type)){Basic.each(type.split(/\s+/),function(type){self.addEventListener(type,fn,priority,scope)});return} 72type=type.toLowerCase();priority=parseInt(priority,10)||0;list=eventpool[this.uid]&&eventpool[this.uid][type]||[];list.push({fn:fn,priority:priority,scope:scope||this});if(!eventpool[this.uid]){eventpool[this.uid]={}} 73eventpool[this.uid][type]=list},hasEventListener:function(type){var list=type?eventpool[this.uid]&&eventpool[this.uid][type]:eventpool[this.uid];return list?list:!1},removeEventListener:function(type,fn){type=type.toLowerCase();var list=eventpool[this.uid]&&eventpool[this.uid][type],i;if(list){if(fn){for(i=list.length-1;i>=0;i--){if(list[i].fn===fn){list.splice(i,1);break}}}else{list=[]} 74if(!list.length){delete eventpool[this.uid][type];if(Basic.isEmptyObj(eventpool[this.uid])){delete eventpool[this.uid]}}}},removeAllEventListeners:function(){if(eventpool[this.uid]){delete eventpool[this.uid]}},dispatchEvent:function(type){var uid,list,args,tmpEvt,evt={},result=!0,undef;if(Basic.typeOf(type)!=='string'){tmpEvt=type;if(Basic.typeOf(tmpEvt.type)==='string'){type=tmpEvt.type;if(tmpEvt.total!==undef&&tmpEvt.loaded!==undef){evt.total=tmpEvt.total;evt.loaded=tmpEvt.loaded} 75evt.async=tmpEvt.async||!1}else{throw new x.EventException(x.EventException.UNSPECIFIED_EVENT_TYPE_ERR)}} 76if(type.indexOf('::')!==-1){(function(arr){uid=arr[0];type=arr[1]}(type.split('::')))}else{uid=this.uid} 77type=type.toLowerCase();list=eventpool[uid]&&eventpool[uid][type];if(list){list.sort(function(a,b){return b.priority-a.priority});args=[].slice.call(arguments);args.shift();evt.type=type;args.unshift(evt);if(MXI_DEBUG&&Env.debug.events){Env.log("Event '%s' fired on %u",evt.type,uid)} 78var queue=[];Basic.each(list,function(handler){args[0].target=handler.scope;if(evt.async){queue.push(function(cb){setTimeout(function(){cb(handler.fn.apply(handler.scope,args)===!1)},1)})}else{queue.push(function(cb){cb(handler.fn.apply(handler.scope,args)===!1)})}});if(queue.length){Basic.inSeries(queue,function(err){result=!err})}} 79return result},bind:function(){this.addEventListener.apply(this,arguments)},unbind:function(){this.removeEventListener.apply(this,arguments)},unbindAll:function(){this.removeAllEventListeners.apply(this,arguments)},trigger:function(){return this.dispatchEvent.apply(this,arguments)},handleEventProps:function(dispatches){var self=this;this.bind(dispatches.join(' '),function(e){var prop='on'+e.type.toLowerCase();if(Basic.typeOf(this[prop])==='function'){this[prop].apply(this,arguments)}});Basic.each(dispatches,function(prop){prop='on'+prop.toLowerCase(prop);if(Basic.typeOf(self[prop])==='undefined'){self[prop]=null}})}})} 80EventTarget.instance=new EventTarget();return EventTarget});define('moxie/runtime/Runtime',["moxie/core/utils/Env","moxie/core/utils/Basic","moxie/core/utils/Dom","moxie/core/EventTarget"],function(Env,Basic,Dom,EventTarget){var runtimeConstructors={},runtimes={};function Runtime(options,type,caps,modeCaps,preferredMode){var self=this,_shim,_uid=Basic.guid(type+'_'),defaultMode=preferredMode||'browser';options=options||{};runtimes[_uid]=this;caps=Basic.extend({access_binary:!1,access_image_binary:!1,display_media:!1,do_cors:!1,drag_and_drop:!1,filter_by_extension:!0,resize_image:!1,report_upload_progress:!1,return_response_headers:!1,return_response_type:!1,return_status_code:!0,send_custom_headers:!1,select_file:!1,select_folder:!1,select_multiple:!0,send_binary_string:!1,send_browser_cookies:!0,send_multipart:!0,slice_blob:!1,stream_upload:!1,summon_file_dialog:!1,upload_filesize:!0,use_http_method:!0},caps);if(options.preferred_caps){defaultMode=Runtime.getMode(modeCaps,options.preferred_caps,defaultMode)} 81if(MXI_DEBUG&&Env.debug.runtime){Env.log("\tdefault mode: %s",defaultMode)} 82_shim=(function(){var objpool={};return{exec:function(uid,comp,fn,args){if(_shim[comp]){if(!objpool[uid]){objpool[uid]={context:this,instance:new _shim[comp]()}}
83if(objpool[uid].instance[fn]){return objpool[uid].instance[fn].apply(this,args)}}},removeInstance:function(uid){delete objpool[uid]},removeAllInstances:function(){var self=this;Basic.each(objpool,function(obj,uid){if(Basic.typeOf(obj.instance.destroy)==='function'){obj.instance.destroy.call(obj.context)} 84self.removeInstance(uid)})}}}());Basic.extend(this,{initialized:!1,uid:_uid,type:type,mode:Runtime.getMode(modeCaps,(options.required_caps),defaultMode),shimid:_uid+'_container',clients:0,options:options,can:function(cap,value){var refCaps=arguments[2]||caps;if(Basic.typeOf(cap)==='string'&&Basic.typeOf(value)==='undefined'){cap=Runtime.parseCaps(cap)} 85if(Basic.typeOf(cap)==='object'){for(var key in cap){if(!this.can(key,cap[key],refCaps)){return!1}} 86return!0} 87if(Basic.typeOf(refCaps[cap])==='function'){return refCaps[cap].call(this,value)}else{return(value===refCaps[cap])}},getShimContainer:function(){var container,shimContainer=Dom.get(this.shimid);if(!shimContainer){container=this.options.container?Dom.get(this.options.container):document.body;shimContainer=document.createElement('div');shimContainer.id=this.shimid;shimContainer.className='moxie-shim moxie-shim-'+this.type;Basic.extend(shimContainer.style,{position:'absolute',top:'0px',left:'0px',width:'1px',height:'1px',overflow:'hidden'});container.appendChild(shimContainer);container=null} 88return shimContainer},getShim:function(){return _shim},shimExec:function(component,action){var args=[].slice.call(arguments,2);return self.getShim().exec.call(this,this.uid,component,action,args)},exec:function(component,action){var args=[].slice.call(arguments,2);if(self[component]&&self[component][action]){return self[component][action].apply(this,args)} 89return self.shimExec.apply(this,arguments)},destroy:function(){if(!self){return} 90var shimContainer=Dom.get(this.shimid);if(shimContainer){shimContainer.parentNode.removeChild(shimContainer)} 91if(_shim){_shim.removeAllInstances()} 92this.unbindAll();delete runtimes[this.uid];this.uid=null;_uid=self=_shim=shimContainer=null}});if(this.mode&&options.required_caps&&!this.can(options.required_caps)){this.mode=!1}} 93Runtime.order='html5,html4';Runtime.getRuntime=function(uid){return runtimes[uid]?runtimes[uid]:!1};Runtime.addConstructor=function(type,constructor){constructor.prototype=EventTarget.instance;runtimeConstructors[type]=constructor};Runtime.getConstructor=function(type){return runtimeConstructors[type]||null};Runtime.getInfo=function(uid){var runtime=Runtime.getRuntime(uid);if(runtime){return{uid:runtime.uid,type:runtime.type,mode:runtime.mode,can:function(){return runtime.can.apply(runtime,arguments)}}} 94return null};Runtime.parseCaps=function(capStr){var capObj={};if(Basic.typeOf(capStr)!=='string'){return capStr||{}} 95Basic.each(capStr.split(','),function(key){capObj[key]=!0});return capObj};Runtime.can=function(type,caps){var runtime,constructor=Runtime.getConstructor(type),mode;if(constructor){runtime=new constructor({required_caps:caps});mode=runtime.mode;runtime.destroy();return!!mode} 96return!1};Runtime.thatCan=function(caps,runtimeOrder){var types=(runtimeOrder||Runtime.order).split(/\s*,\s*/);for(var i in types){if(Runtime.can(types[i],caps)){return types[i]}} 97return null};Runtime.getMode=function(modeCaps,requiredCaps,defaultMode){var mode=null;if(Basic.typeOf(defaultMode)==='undefined'){defaultMode='browser'} 98if(requiredCaps&&!Basic.isEmptyObj(modeCaps)){Basic.each(requiredCaps,function(value,cap){if(modeCaps.hasOwnProperty(cap)){var capMode=modeCaps[cap](value);if(typeof(capMode)==='string'){capMode=[capMode]} 99if(!mode){mode=capMode}else if(!(mode=Basic.arrayIntersect(mode,capMode))){if(MXI_DEBUG&&Env.debug.runtime){Env.log("\t\t%c: %v (conflicting mode requested: %s)",cap,value,capMode)} 100return(mode=!1)}} 101if(MXI_DEBUG&&Env.debug.runtime){Env.log("\t\t%c: %v (compatible modes: %s)",cap,value,mode)}});if(mode){return Basic.inArray(defaultMode,mode)!==-1?defaultMode:mode[0]}else if(mode===!1){return!1}} 102return defaultMode};Runtime.capTrue=function(){return!0};Runtime.capFalse=function(){return!1};Runtime.capTest=function(expr){return function(){return!!expr}};return Runtime});define('moxie/runtime/RuntimeClient',['moxie/core/utils/Env','moxie/core/Exceptions','moxie/core/utils/Basic','moxie/runtime/Runtime'],function(Env,x,Basic,Runtime){return function RuntimeClient(){var runtime;Basic.extend(this,{connectRuntime:function(options){var comp=this,ruid;function initialize(items){var type,constructor;if(!items.length){comp.trigger('RuntimeError',new x.RuntimeError(x.RuntimeError.NOT_INIT_ERR));runtime=null;return} 103type=items.shift().toLowerCase();constructor=Runtime.getConstructor(type);if(!constructor){initialize(items);return} 104if(MXI_DEBUG&&Env.debug.runtime){Env.log("Trying runtime: %s",type);Env.log(options)} 105runtime=new constructor(options);runtime.bind('Init',function(){runtime.initialized=!0;if(MXI_DEBUG&&Env.debug.runtime){Env.log("Runtime '%s' initialized",runtime.type)} 106setTimeout(function(){runtime.clients++;comp.trigger('RuntimeInit',runtime)},1)});runtime.bind('Error',function(){if(MXI_DEBUG&&Env.debug.runtime){Env.log("Runtime '%s' failed to initialize",runtime.type)} 107runtime.destroy();initialize(items)});if(MXI_DEBUG&&Env.debug.runtime){Env.log("\tselected mode: %s",runtime.mode)} 108if(!runtime.mode){runtime.trigger('Error');return} 109runtime.init()} 110if(Basic.typeOf(options)==='string'){ruid=options}else if(Basic.typeOf(options.ruid)==='string'){ruid=options.ruid} 111if(ruid){runtime=Runtime.getRuntime(ruid);if(runtime){runtime.clients++;return runtime}else{throw new x.RuntimeError(x.RuntimeError.NOT_INIT_ERR)}} 112initialize((options.runtime_order||Runtime.order).split(/\s*,\s*/))},disconnectRuntime:function(){if(runtime&&--runtime.clients<=0){runtime.destroy()} 113runtime=null},getRuntime:function(){if(runtime&&runtime.uid){return runtime} 114return runtime=null},exec:function(){if(runtime){return runtime.exec.apply(this,arguments)} 115return null}})}});define('moxie/file/FileInput',['moxie/core/utils/Basic','moxie/core/utils/Env','moxie/core/utils/Mime','moxie/core/utils/Dom','moxie/core/Exceptions','moxie/core/EventTarget','moxie/core/I18n','moxie/runtime/Runtime','moxie/runtime/RuntimeClient'],function(Basic,Env,Mime,Dom,x,EventTarget,I18n,Runtime,RuntimeClient){var dispatches=['ready','change','cancel','mouseenter','mouseleave','mousedown','mouseup'];function FileInput(options){if(MXI_DEBUG){Env.log("Instantiating FileInput...")} 116var self=this,container,browseButton,defaults;if(Basic.inArray(Basic.typeOf(options),['string','node'])!==-1){options={browse_button:options}} 117browseButton=Dom.get(options.browse_button);if(!browseButton){throw new x.DOMException(x.DOMException.NOT_FOUND_ERR)} 118defaults={accept:[{title:I18n.translate('All Files'),extensions:'*'}],name:'file',multiple:!1,required_caps:!1,container:browseButton.parentNode||document.body};options=Basic.extend({},defaults,options);if(typeof(options.required_caps)==='string'){options.required_caps=Runtime.parseCaps(options.required_caps)} 119if(typeof(options.accept)==='string'){options.accept=Mime.mimes2extList(options.accept)} 120container=Dom.get(options.container);if(!container){container=document.body} 121if(Dom.getStyle(container,'position')==='static'){container.style.position='relative'} 122container=browseButton=null;RuntimeClient.call(self);
122Basic.extend(self,{uid:Basic.guid('uid_'),ruid:null,shimid:null,files:null,init:function(){self.bind('RuntimeInit',function(e,runtime){self.ruid=runtime.uid;self.shimid=runtime.shimid;self.bind("Ready",function(){self.trigger("Refresh")},999);self.bind('Refresh',function(){var pos,size,browseButton,shimContainer;browseButton=Dom.get(options.browse_button);shimContainer=Dom.get(runtime.shimid);if(browseButton){pos=Dom.getPos(browseButton,Dom.get(options.container));size=Dom.getSize(browseButton);if(shimContainer){Basic.extend(shimContainer.style,{top:pos.y+'px',left:pos.x+'px',width:size.w+'px',height:size.h+'px'})}} 123shimContainer=browseButton=null});runtime.exec.call(self,'FileInput','init',options)});self.connectRuntime(Basic.extend({},options,{required_caps:{select_file:!0}}))},disable:function(state){var runtime=this.getRuntime();if(runtime){runtime.exec.call(this,'FileInput','disable',Basic.typeOf(state)==='undefined'?!0:state)}},refresh:function(){self.trigger("Refresh")},destroy:function(){var runtime=this.getRuntime();if(runtime){runtime.exec.call(this,'FileInput','destroy');this.disconnectRuntime()} 124if(Basic.typeOf(this.files)==='array'){Basic.each(this.files,function(file){file.destroy()})} 125this.files=null;this.unbindAll()}});this.handleEventProps(dispatches)} 126FileInput.prototype=EventTarget.instance;return FileInput});define('moxie/core/utils/Encode',[],function(){var utf8_encode=function(str){return unescape(encodeURIComponent(str))};var utf8_decode=function(str_data){return decodeURIComponent(escape(str_data))};var atob=function(data,utf8){if(typeof(window.atob)==='function'){return utf8?utf8_decode(window.atob(data)):window.atob(data)} 127var b64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var o1,o2,o3,h1,h2,h3,h4,bits,i=0,ac=0,dec="",tmp_arr=[];if(!data){return data} 128data+='';do{h1=b64.indexOf(data.charAt(i++));h2=b64.indexOf(data.charAt(i++));h3=b64.indexOf(data.charAt(i++));h4=b64.indexOf(data.charAt(i++));bits=h1<<18|h2<<12|h3<<6|h4;o1=bits>>16&0xff;o2=bits>>8&0xff;o3=bits&0xff;if(h3==64){tmp_arr[ac++]=String.fromCharCode(o1)}else if(h4==64){tmp_arr[ac++]=String.fromCharCode(o1,o2)}else{tmp_arr[ac++]=String.fromCharCode(o1,o2,o3)}}while(i<data.length);dec=tmp_arr.join('');return utf8?utf8_decode(dec):dec};var btoa=function(data,utf8){if(utf8){data=utf8_encode(data)} 129if(typeof(window.btoa)==='function'){return window.btoa(data)} 130var b64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var o1,o2,o3,h1,h2,h3,h4,bits,i=0,ac=0,enc="",tmp_arr=[];if(!data){return data} 131do{o1=data.charCodeAt(i++);o2=data.charCodeAt(i++);o3=data.charCodeAt(i++);bits=o1<<16|o2<<8|o3;h1=bits>>18&0x3f;h2=bits>>12&0x3f;h3=bits>>6&0x3f;h4=bits&0x3f;tmp_arr[ac++]=b64.charAt(h1)+b64.charAt(h2)+b64.charAt(h3)+b64.charAt(h4)}while(i<data.length);enc=tmp_arr.join('');var r=data.length%3;return(r?enc.slice(0,r-3):enc)+'==='.slice(r||3)};return{utf8_encode:utf8_encode,utf8_decode:utf8_decode,atob:atob,btoa:btoa}});define('moxie/file/Blob',['moxie/core/utils/Basic','moxie/core/utils/Encode','moxie/runtime/RuntimeClient'],function(Basic,Encode,RuntimeClient){var blobpool={};function Blob(ruid,blob){function _sliceDetached(start,end,type){var blob,data=blobpool[this.uid];if(Basic.typeOf(data)!=='string'||!data.length){return null} 132blob=new Blob(null,{type:type,size:end-start});blob.detach(data.substr(start,blob.size));return blob} 133RuntimeClient.call(this);if(ruid){this.connectRuntime(ruid)} 134if(!blob){blob={}}else if(Basic.typeOf(blob)==='string'){blob={data:blob}} 135Basic.extend(this,{uid:blob.uid||Basic.guid('uid_'),ruid:ruid,size:blob.size||0,type:blob.type||'',slice:function(start,end,type){if(this.isDetached()){return _sliceDetached.apply(this,arguments)} 136return this.getRuntime().exec.call(this,'Blob','slice',this.getSource(),start,end,type)},getSource:function(){if(!blobpool[this.uid]){return null} 137return blobpool[this.uid]},detach:function(data){if(this.ruid){this.getRuntime().exec.call(this,'Blob','destroy');this.disconnectRuntime();this.ruid=null} 138data=data||'';if(data.substr(0,5)=='data:'){var base64Offset=data.indexOf(';base64,');this.type=data.substring(5,base64Offset);data=Encode.atob(data.substring(base64Offset+8))} 139this.size=data.length;blobpool[this.uid]=data},isDetached:function(){return!this.ruid&&Basic.typeOf(blobpool[this.uid])==='string'},destroy:function(){this.detach();delete blobpool[this.uid]}});if(blob.data){this.detach(blob.data)}else{blobpool[this.uid]=blob}} 140return Blob});define('moxie/file/File',['moxie/core/utils/Basic','moxie/core/utils/Mime','moxie/file/Blob'],function(Basic,Mime,Blob){function File(ruid,file){if(!file){file={}} 141Blob.apply(this,arguments);if(!this.type){this.type=Mime.getFileMime(file.name)} 142var name;if(file.name){name=file.name.replace(/\\/g,'/');name=name.substr(name.lastIndexOf('/')+1)}
142else if(this.type){var prefix=this.type.split('/')[0];name=Basic.guid((prefix!==''?prefix:'file')+'_');if(Mime.extensions[this.type]){name+='.'+Mime.extensions[this.type][0]}} 143Basic.extend(this,{name:name||Basic.guid('file_'),relativePath:'',lastModifiedDate:file.lastModifiedDate||(new Date()).toLocaleString()})} 144File.prototype=Blob.prototype;return File});define('moxie/file/FileDrop',['moxie/core/I18n','moxie/core/utils/Dom','moxie/core/Exceptions','moxie/core/utils/Basic','moxie/core/utils/Env','moxie/file/File','moxie/runtime/RuntimeClient','moxie/core/EventTarget','moxie/core/utils/Mime'],function(I18n,Dom,x,Basic,Env,File,RuntimeClient,EventTarget,Mime){var dispatches=['ready','dragenter','dragleave','drop','error'];function FileDrop(options){if(MXI_DEBUG){Env.log("Instantiating FileDrop...")} 145var self=this,defaults;if(typeof(options)==='string'){options={drop_zone:options}} 146defaults={accept:[{title:I18n.translate('All Files'),extensions:'*'}],required_caps:{drag_and_drop:!0}};options=typeof(options)==='object'?Basic.extend({},defaults,options):defaults;options.container=Dom.get(options.drop_zone)||document.body;if(Dom.getStyle(options.container,'position')==='static'){options.container.style.position='relative'} 147if(typeof(options.accept)==='string'){options.accept=Mime.mimes2extList(options.accept)} 148RuntimeClient.call(self);Basic.extend(self,{uid:Basic.guid('uid_'),ruid:null,files:null,init:function(){self.bind('RuntimeInit',function(e,runtime){self.ruid=runtime.uid;runtime.exec.call(self,'FileDrop','init',options);self.dispatchEvent('ready')});self.connectRuntime(options)},destroy:function(){var runtime=this.getRuntime();if(runtime){runtime.exec.call(this,'FileDrop','destroy');this.disconnectRuntime()} 149this.files=null;this.unbindAll()}});this.handleEventProps(dispatches)} 150FileDrop.prototype=EventTarget.instance;return FileDrop});define('moxie/file/FileReader',['moxie/core/utils/Basic','moxie/core/utils/Encode','moxie/core/Exceptions','moxie/core/EventTarget','moxie/file/Blob','moxie/runtime/RuntimeClient'],function(Basic,Encode,x,EventTarget,Blob,RuntimeClient){var dispatches=['loadstart','progress','load','abort','error','loadend'];function FileReader(){RuntimeClient.call(this);Basic.extend(this,{uid:Basic.guid('uid_'),readyState:FileReader.EMPTY,result:null,error:null,readAsBinaryString:function(blob){_read.call(this,'readAsBinaryString',blob)},readAsDataURL:function(blob){_read.call(this,'readAsDataURL',blob)},readAsText:function(blob){_read.call(this,'readAsText',blob)},abort:function(){this.result=null;if(Basic.inArray(this.readyState,[FileReader.EMPTY,FileReader.DONE])!==-1){return}else if(this.readyState===FileReader.LOADING){this.readyState=FileReader.DONE} 151this.exec('FileReader','abort');this.trigger('abort');this.trigger('loadend')},destroy:function(){this.abort();this.exec('FileReader','destroy');this.disconnectRuntime();this.unbindAll()}});this.handleEventProps(dispatches);this.bind('Error',function(e,err){this.readyState=FileReader.DONE;this.error=err},999);this.bind('Load',function(e){this.readyState=FileReader.DONE},999);function _read(op,blob){var self=this;this.trigger('loadstart');if(this.readyState===FileReader.LOADING){this.trigger('error',new x.DOMException(x.DOMException.INVALID_STATE_ERR));this.trigger('loadend');return} 152if(!(blob instanceof Blob)){this.trigger('error',new x.DOMException(x.DOMException.NOT_FOUND_ERR));this.trigger('loadend');return} 153this.result=null;this.readyState=FileReader.LOADING;if(blob.isDetached()){var src=blob.getSource();switch(op){case 'readAsText':case 'readAsBinaryString':this.result=src;break;case 'readAsDataURL':this.result='data:'+blob.type+';base64,'+Encode.btoa(src);break} 154this.readyState=FileReader.DONE;this.trigger('load');this.trigger('loadend')}else{this.connectRuntime(blob.ruid);this.exec('FileReader','read',op,blob)}}} 155FileReader.EMPTY=0;FileReader.LOADING=1;FileReader.DONE=2;FileReader.prototype=EventTarget.instance;return FileReader});define('moxie/core/utils/Url',[],function(){var parseUrl=function(url,currentUrl){var key=['source','scheme','authority','userInfo','user','pass','host','port','relative','path','directory','file','query','fragment'],i=key.length,ports={http:80,https:443},uri={},regex=/^(?:([^:\/?#]+):)?(?:\/\/()(?:(?:()(?:([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?))?()(?:(()(?:(?:[^?#\/]*\/)*)()(?:[^?#]*))(?:\\?([^#]*))?(?:#(.*))?)/,m=regex.exec(url||'');while(i--){if(m[i]){uri[key[i]]=m[i]}} 156if(!uri.scheme){if(!currentUrl||typeof(currentUrl)==='string'){currentUrl=parseUrl(currentUrl||document.location.href)} 157uri.scheme=currentUrl.scheme;uri.host=currentUrl.host;uri.port=currentUrl.port;var path='';if(/^[^\/]/.test(uri.path)){path=currentUrl.path;if(/\/[^\/]*\.[^\/]*$/.test(path)){path=path.replace(/\/[^\/]+$/,'/')}else{path=path.replace(/\/?$/,'/')}} 158uri.path=path+(uri.path||'')} 159if(!uri.port){uri.port=ports[uri.scheme]||80} 160uri.port=parseInt(uri.port,10);if(!uri.path){uri.path="/"} 161delete uri.source;return uri};var resolveUrl=function(url){var ports={http:80,https:443},urlp=typeof(url)==='object'?url:parseUrl(url);return urlp.scheme+'://'+urlp.host+(urlp.port!==ports[urlp.scheme]?':'+urlp.port:'')+urlp.path+(urlp.query?urlp.query:'')};var hasSameOrigin=function(url){function origin(url){return[url.scheme,url.host,url.port].join('/')} 162if(typeof url==='string'){url=parseUrl(url)} 163return origin(parseUrl())===origin(url)};return{parseUrl:parseUrl,resolveUrl:resolveUrl,hasSameOrigin:hasSameOrigin}});define('moxie/runtime/RuntimeTarget',['moxie/core/utils/Basic','moxie/runtime/RuntimeClient',"moxie/core/EventTarget"],function(Basic,RuntimeClient,EventTarget){function RuntimeTarget(){this.uid=Basic.guid('uid_');RuntimeClient.call(this);this.destroy=function(){this.disconnectRuntime();this.unbindAll()}} 164RuntimeTarget.prototype=EventTarget.instance;return RuntimeTarget});define('moxie/file/FileReaderSync',['moxie/core/utils/Basic','moxie/runtime/RuntimeClient','moxie/core/utils/Encode'],function(Basic,RuntimeClient,Encode){return function(){RuntimeClient.call(this);Basic.extend(this,{uid:Basic.guid('uid_'),readAsBinaryString:function(blob){return _read.call(this,'readAsBinaryString',blob)}
164,readAsDataURL:function(blob){return _read.call(this,'readAsDataURL',blob)},readAsText:function(blob){return _read.call(this,'readAsText',blob)}});function _read(op,blob){if(blob.isDetached()){var src=blob.getSource();switch(op){case 'readAsBinaryString':return src;case 'readAsDataURL':return'data:'+blob.type+';base64,'+Encode.btoa(src);case 'readAsText':var txt='';for(var i=0,length=src.length;i<length;i++){txt+=String.fromCharCode(src[i])} 165return txt}}else{var result=this.connectRuntime(blob.ruid).exec.call(this,'FileReaderSync','read',op,blob);this.disconnectRuntime();return result}}}});define("moxie/xhr/FormData",["moxie/core/Exceptions","moxie/core/utils/Basic","moxie/file/Blob"],function(x,Basic,Blob){function FormData(){var _blob,_fields=[];Basic.extend(this,{append:function(name,value){var self=this,valueType=Basic.typeOf(value);if(value instanceof Blob){_blob={name:name,value:value}}else if('array'===valueType){name+='[]';Basic.each(value,function(value){self.append(name,value)})}else if('object'===valueType){Basic.each(value,function(value,key){self.append(name+'['+key+']',value)})}else if('null'===valueType||'undefined'===valueType||'number'===valueType&&isNaN(value)){self.append(name,"false")}else{_fields.push({name:name,value:value.toString()})}},hasBlob:function(){return!!this.getBlob()},getBlob:function(){return _blob&&_blob.value||null},getBlobName:function(){return _blob&&_blob.name||null},each:function(cb){Basic.each(_fields,function(field){cb(field.value,field.name)});if(_blob){cb(_blob.value,_blob.name)}},destroy:function(){_blob=null;_fields=[]}})} 166return FormData});define("moxie/xhr/XMLHttpRequest",["moxie/core/utils/Basic","moxie/core/Exceptions","moxie/core/EventTarget","moxie/core/utils/Encode","moxie/core/utils/Url","moxie/runtime/Runtime","moxie/runtime/RuntimeTarget","moxie/file/Blob","moxie/file/FileReaderSync","moxie/xhr/FormData","moxie/core/utils/Env","moxie/core/utils/Mime"],function(Basic,x,EventTarget,Encode,Url,Runtime,RuntimeTarget,Blob,FileReaderSync,FormData,Env,Mime){var httpCode={100:'Continue',101:'Switching Protocols',102:'Processing',200:'OK',201:'Created',202:'Accepted',203:'Non-Authoritative Information',204:'No Content',205:'Reset Content',206:'Partial Content',207:'Multi-Status',226:'IM Used',300:'Multiple Choices',301:'Moved Permanently',302:'Found',303:'See Other',304:'Not Modified',305:'Use Proxy',306:'Reserved',307:'Temporary Redirect',400:'Bad Request',401:'Unauthorized',402:'Payment Required',403:'Forbidden',404:'Not Found',405:'Method Not Allowed',406:'Not Acceptable',407:'Proxy Authentication Required',408:'Request Timeout',409:'Conflict',410:'Gone',411:'Length Required',412:'Precondition Failed',413:'Request Entity Too Large',414:'Request-URI Too Long',415:'Unsupported Media Type',416:'Requested Range Not Satisfiable',417:'Expectation Failed',422:'Unprocessable Entity',423:'Locked',424:'Failed Dependency',426:'Upgrade Required',500:'Internal Server Error',501:'Not Implemented',502:'Bad Gateway',503:'Service Unavailable',504:'Gateway Timeout',505:'HTTP Version Not Supported',506:'Variant Also Negotiates',507:'Insufficient Storage',510:'Not Extended'};function XMLHttpRequestUpload(){this.uid=Basic.guid('uid_')} 167XMLHttpRequestUpload.prototype=EventTarget.instance;var dispatches=['loadstart','progress','abort','error','load','timeout','loadend'];var NATIVE=1,RUNTIME=2;function XMLHttpRequest(){var self=this,props={timeout:0,readyState:XMLHttpRequest.UNSENT,withCredentials:!1,status:0,statusText:"",responseType:"",responseXML:null,responseText:null,response:null},_async=!0,_url,_method,_headers={},_user,_password,_encoding=null,_mimeType=null,_sync_flag=!1,_send_flag=!1,_upload_events_flag=!1,_upload_complete_flag=!1,_error_flag=!1,_same_origin_flag=!1,_start_time,_timeoutset_time,_finalMime=null,_finalCharset=null,_options={},_xhr,_responseHeaders='',_responseHeadersBag;Basic.extend(this,props,{uid:Basic.guid('uid_'),upload:new XMLHttpRequestUpload(),open:function(method,url,async,user,password){var urlp;if(!method||!url){throw new x.DOMException(x.DOMException.SYNTAX_ERR)} 168if(/[\u0100-\uffff]/.test(method)||Encode.utf8_encode(method)!==method
168){throw new x.DOMException(x.DOMException.SYNTAX_ERR)} 169if(!!~Basic.inArray(method.toUpperCase(),['CONNECT','DELETE','GET','HEAD','OPTIONS','POST','PUT','TRACE','TRACK'])){_method=method.toUpperCase()} 170if(!!~Basic.inArray(_method,['CONNECT','TRACE','TRACK'])){throw new x.DOMException(x.DOMException.SECURITY_ERR)} 171url=Encode.utf8_encode(url);urlp=Url.parseUrl(url);_same_origin_flag=Url.hasSameOrigin(urlp);_url=Url.resolveUrl(url);if((user||password)&&!_same_origin_flag){throw new x.DOMException(x.DOMException.INVALID_ACCESS_ERR)} 172_user=user||urlp.user;_password=password||urlp.pass;_async=async||!0;if(_async===!1&&(_p('timeout')||_p('withCredentials')||_p('responseType')!=="")){throw new x.DOMException(x.DOMException.INVALID_ACCESS_ERR)} 173_sync_flag=!_async;_send_flag=!1;_headers={};_reset.call(this);_p('readyState',XMLHttpRequest.OPENED);this.dispatchEvent('readystatechange')},setRequestHeader:function(header,value){var uaHeaders=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","content-transfer-encoding","date","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","user-agent","via"];if(_p('readyState')!==XMLHttpRequest.OPENED||_send_flag){throw new x.DOMException(x.DOMException.INVALID_STATE_ERR)} 174if(/[\u0100-\uffff]/.test(header)||Encode.utf8_encode(header)!==header){throw new x.DOMException(x.DOMException.SYNTAX_ERR)} 175header=Basic.trim(header).toLowerCase();if(!!~Basic.inArray(header,uaHeaders)||/^(proxy\-|sec\-)/.test(header)){return!1} 176if(!_headers[header]){_headers[header]=value}else{_headers[header]+=', '+value} 177return!0},getAllResponseHeaders:function(){return _responseHeaders||''},getResponseHeader:function(header){header=header.toLowerCase();if(_error_flag||!!~Basic.inArray(header,['set-cookie','set-cookie2'])){return null} 178if(_responseHeaders&&_responseHeaders!==''){if(!_responseHeadersBag){_responseHeadersBag={};Basic.each(_responseHeaders.split(/\r\n/),function(line){var pair=line.split(/:\s+/);if(pair.length===2){pair[0]=Basic.trim(pair[0]);_responseHeadersBag[pair[0].toLowerCase()]={header:pair[0],value:Basic.trim(pair[1])}}})} 179if(_responseHeadersBag.hasOwnProperty(header)){return _responseHeadersBag[header].header+': '+_responseHeadersBag[header].value}} 180return null},overrideMimeType:function(mime){var matches,charset;if(!!~Basic.inArray(_p('readyState'),[XMLHttpRequest.LOADING,XMLHttpRequest.DONE])){throw new x.DOMException(x.DOMException.INVALID_STATE_ERR)} 181mime=Basic.trim(mime.toLowerCase());if(/;/.test(mime)&&(matches=mime.match(/^([^;]+)(?:;\scharset\=)?(.*)$/))){mime=matches[1];if(matches[2]){charset=matches[2]}} 182if(!Mime.mimes[mime]){throw new x.DOMException(x.DOMException.SYNTAX_ERR)} 183_finalMime=mime;_finalCharset=charset},send:function(data,options){if(Basic.typeOf(options)==='string'){_options={ruid:options}}else if(!options){_options={}}else{_options=options} 184if(this.readyState!==XMLHttpRequest.OPENED||_send_flag){throw new x.DOMException(x.DOMException.INVALID_STATE_ERR)} 185if(data instanceof Blob){_options.ruid=data.ruid;_mimeType=data.type||'application/octet-stream'}else if(data instanceof FormData){if(data.hasBlob()){var blob=data.getBlob();_options.ruid=blob.ruid;_mimeType=blob.type||'application/octet-stream'}}else if(typeof data==='string'){_encoding='UTF-8';_mimeType='text/plain;charset=UTF-8';data=Encode.utf8_encode(data)} 186if(!this.withCredentials){this.withCredentials=(_options.required_caps&&_options.required_caps.send_browser_cookies)&&!_same_origin_flag} 187_upload_events_flag=(!_sync_flag&&this.upload.hasEventListener());_error_flag=!1;_upload_complete_flag=!data;if(!_sync_flag){_send_flag=!0} 188_doXHR.call(this,data)},abort:function(){_error_flag=!0;_sync_flag=!1;if(!~Basic.inArray(_p('readyState'),[XMLHttpRequest.UNSENT,XMLHttpRequest.OPENED,XMLHttpRequest.DONE])){_p('readyState',XMLHttpRequest.DONE);_send_flag=!1;if(_xhr){_xhr.getRuntime().exec.call(_xhr,'XMLHttpRequest','abort',_upload_complete_flag)}else{throw new x.DOMException(x.DOMException.INVALID_STATE_ERR)} 189_upload_complete_flag=!0}else{_p('readyState',XMLHttpRequest.UNSENT)}},destroy:function(){if(_xhr){if(Basic.typeOf(_xhr.destroy)==='function'){_xhr.destroy()} 190_xhr=null} 191this.unbindAll();if(this.upload){this.upload.unbindAll();this.upload=null}}});this.handleEventProps(dispatches.concat(['readystatechange']));this.upload.handleEventProps(dispatches);function _p(prop,value){if(!props.hasOwnProperty(prop)){return} 192if(arguments.length===1){return Env.can('define_property')?props[prop]:self[prop]}else{if(Env.can('define_property')){props[prop]=value}else{self[prop]=value}}} 193function _doXHR(data){var self=this;_start_time=new Date().getTime();_xhr=new RuntimeTarget();function loadEnd(){if(_xhr){_xhr.destroy();_xhr=null} 194self.dispatchEvent('loadend');self=null} 195function exec(runtime){_xhr.bind('LoadStart',function(e){_p('readyState',XMLHttpRequest.LOADING);
195self.dispatchEvent('readystatechange');self.dispatchEvent(e);if(_upload_events_flag){self.upload.dispatchEvent(e)}});_xhr.bind('Progress',function(e){if(_p('readyState')!==XMLHttpRequest.LOADING){_p('readyState',XMLHttpRequest.LOADING);self.dispatchEvent('readystatechange')} 196self.dispatchEvent(e)});_xhr.bind('UploadProgress',function(e){if(_upload_events_flag){self.upload.dispatchEvent({type:'progress',lengthComputable:!1,total:e.total,loaded:e.loaded})}});_xhr.bind('Load',function(e){_p('readyState',XMLHttpRequest.DONE);_p('status',Number(runtime.exec.call(_xhr,'XMLHttpRequest','getStatus')||0));_p('statusText',httpCode[_p('status')]||"");_p('response',runtime.exec.call(_xhr,'XMLHttpRequest','getResponse',_p('responseType')));if(!!~Basic.inArray(_p('responseType'),['text',''])){_p('responseText',_p('response'))}else if(_p('responseType')==='document'){_p('responseXML',_p('response'))} 197_responseHeaders=runtime.exec.call(_xhr,'XMLHttpRequest','getAllResponseHeaders');self.dispatchEvent('readystatechange');if(_p('status')>0){if(_upload_events_flag){self.upload.dispatchEvent(e)} 198self.dispatchEvent(e)}else{_error_flag=!0;
198self.dispatchEvent('error')} 199loadEnd()});_xhr.bind('Abort',function(e){self.dispatchEvent(e);loadEnd()});_xhr.bind('Error',function(e){_error_flag=!0;_p('readyState',XMLHttpRequest.DONE);self.dispatchEvent('readystatechange');_upload_complete_flag=!0;self.dispatchEvent(e);loadEnd()});runtime.exec.call(_xhr,'XMLHttpRequest','send',{url:_url,method:_method,async:_async,user:_user,password:_password,headers:_headers,mimeType:_mimeType,encoding:_encoding,responseType:self.responseType,withCredentials:self.withCredentials,options:_options},data)} 200if(typeof(_options.required_caps)==='string'){_options.required_caps=Runtime.parseCaps(_options.required_caps)} 201_options.required_caps=Basic.extend({},_options.required_caps,{return_response_type:self.responseType});if(data instanceof FormData){_options.required_caps.send_multipart=!0} 202if(!Basic.isEmptyObj(_headers)){_options.required_caps.send_custom_headers=!0} 203if(!_same_origin_flag){_options.required_caps.do_cors=!0} 204if(_options.ruid){exec(_xhr.connectRuntime(_options))}else{_xhr.bind('RuntimeInit',function(e,runtime){exec(runtime)});_xhr.bind('RuntimeError',function(e,err){self.dispatchEvent('RuntimeError',err)});_xhr.connectRuntime(_options)}} 205function _reset(){_p('responseText',"");_p('responseXML',null);_p('response',null);_p('status',0);_p('statusText',"");_start_time=_timeoutset_time=null}} 206XMLHttpRequest.UNSENT=0;XMLHttpRequest.OPENED=1;XMLHttpRequest.HEADERS_RECEIVED=2;XMLHttpRequest.LOADING=3;XMLHttpRequest.DONE=4;XMLHttpRequest.prototype=EventTarget.instance;return XMLHttpRequest});define("moxie/runtime/Transporter",["moxie/core/utils/Basic","moxie/core/utils/Encode","moxie/runtime/RuntimeClient","moxie/core/EventTarget"],function(Basic,Encode,RuntimeClient,EventTarget){function Transporter(){var mod,_runtime,_data,_size,_pos,_chunk_size;RuntimeClient.call(this);Basic.extend(this,{uid:Basic.guid('uid_'),state:Transporter.IDLE,result:null,transport:function(data,type,options){var self=this;options=Basic.extend({chunk_size:204798},options);
206if((mod=options.chunk_size%3)){options.chunk_size+=3-mod} 207_chunk_size=options.chunk_size;_reset.call(this);_data=data;_size=data.length;if(Basic.typeOf(options)==='string'||options.ruid){_run.call(self,type,this.connectRuntime(options))}else{var cb=function(e,runtime){self.unbind("RuntimeInit",cb);_run.call(self,type,runtime)};this.bind("RuntimeInit",cb);this.connectRuntime(options)}},abort:function(){var self=this;self.state=Transporter.IDLE;if(_runtime){_runtime.exec.call(self,'Transporter','clear');self.trigger("TransportingAborted")} 208_reset.call(self)},destroy:function(){this.unbindAll();_runtime=null;this.disconnectRuntime();_reset.call(this)}});function _reset(){_size=_pos=0;_data=this.result=null} 209function _run(type,runtime){var self=this;_runtime=runtime;self.bind("TransportingProgress",function(e){_pos=e.loaded;if(_pos<_size&&Basic.inArray(self.state,[Transporter.IDLE,Transporter.DONE])===-1){_transport.call(self)}},999);self.bind("TransportingComplete",function(){_pos=_size;self.state=Transporter.DONE;_data=null;self.result=_runtime.exec.call(self,'Transporter','getAsBlob',type||'')},999);self.state=Transporter.BUSY;self.trigger("TransportingStarted");_transport.call(self)} 210function _transport(){var self=this,chunk,bytesLeft=_size-_pos;if(_chunk_size>bytesLeft){_chunk_size=bytesLeft} 211chunk=Encode.btoa(_data.substr(_pos,_chunk_size));_runtime.exec.call(self,'Transporter','receive',chunk,_size)}} 212Transporter.IDLE=0;Transporter.BUSY=1;Transporter.DONE=2;Transporter.prototype=EventTarget.instance;return Transporter});define("moxie/image/Image",["moxie/core/utils/Basic","moxie/core/utils/Dom","moxie/core/Exceptions","moxie/file/FileReaderSync","moxie/xhr/XMLHttpRequest","moxie/runtime/Runtime","moxie/runtime/RuntimeClient","moxie/runtime/Transporter","moxie/core/utils/Env","moxie/core/EventTarget","moxie/file/Blob","moxie/file/File","moxie/core/utils/Encode"],function(Basic,Dom,x,FileReaderSync,XMLHttpRequest,Runtime,RuntimeClient,Transporter,Env,EventTarget,Blob,File,Encode){var dispatches=['progress','load','error','resize','embedded'];function Image(){RuntimeClient.call(this);Basic.extend(this,{uid:Basic.guid('uid_'),ruid:null,name:"",size:0,width:0,height:0,type:"",meta:{},clone:function(){this.load.apply(this,arguments)},load:function(){_load.apply(this,arguments)},downsize:function(opts){var defaults={width:this.width,height:this.height,type:this.type||'image/jpeg',quality:90,crop:!1,preserveHeaders:!0,resample:!1};if(typeof(opts)==='object'){opts=Basic.extend(defaults,opts)}else{opts=Basic.extend(defaults,{width:arguments[0],height:arguments[1],crop:arguments[2],preserveHeaders:arguments[3]})} 213try{if(!this.size){throw new x.DOMException(x.DOMException.INVALID_STATE_ERR)} 214if(this.width>Image.MAX_RESIZE_WIDTH||this.height>Image.MAX_RESIZE_HEIGHT){throw new x.ImageError(x.ImageError.MAX_RESOLUTION_ERR)} 215this.exec('Image','downsize',opts.width,opts.height,opts.crop,opts.preserveHeaders)}catch(ex){this.trigger('error',ex.code)}},crop:function(width,height,preserveHeaders){this.downsize(width,height,!0,preserveHeaders)},getAsCanvas:function(){if(!Env.can('create_canvas')){throw new x.RuntimeError(x.RuntimeError.NOT_SUPPORTED_ERR)} 216var runtime=this.connectRuntime(this.ruid);return runtime.exec.call(this,'Image','getAsCanvas')},getAsBlob:function(type,quality){if(!this.size){throw new x.DOMException(x.DOMException.INVALID_STATE_ERR)} 217return this.exec('Image','getAsBlob',type||'image/jpeg',quality||90)},getAsDataURL:function(type,quality){if(!this.size){throw new x.DOMException(x.DOMException.INVALID_STATE_ERR)} 218return this.exec('Image','getAsDataURL',type||'image/jpeg',quality||90)},getAsBinaryString:function(type,quality){var dataUrl=this.getAsDataURL(type,quality);return Encode.atob(dataUrl.substring(dataUrl.indexOf('base64,')+7))},embed:function(el,opts){var self=this,runtime;opts=Basic.extend({width:this.width,height:this.height,type:this.type||'image/jpeg',quality:90},opts||{});function render(type,quality){var img=this;if(Env.can('create_canvas')){var canvas=img.getAsCanvas();if(canvas){el.appendChild(canvas);canvas=null;img.destroy();self.trigger('embedded');return}} 219var dataUrl=img.getAsDataURL(type,quality);if(!dataUrl){throw new x.ImageError(x.ImageError.WRONG_FORMAT)} 220if(Env.can('use_data_uri_of',dataUrl.length)){el.innerHTML='<img src="'+dataUrl+'" width="'+img.width+'" height="'+img.height+'" />';img.destroy();self.trigger('embedded')}else{var tr=new Transporter();tr.bind("TransportingComplete",function(){runtime=self.connectRuntime(this.result.ruid);self.bind("Embedded",function(){Basic.extend(runtime.getShimContainer().style,{top:'0px',left:'0px',width:img.width+'px',height:img.height+'px'});runtime=null},999);runtime.exec.call(self,"ImageView","display",this.result.uid,width,height);img.destroy()});tr.transport(Encode.atob(dataUrl.substring(dataUrl.indexOf('base64,')+7)),type,{required_caps:{display_media:!0},runtime_order:'flash,silverlight',container:el})}} 221try{if(!(el=Dom.get(el))){throw new x.DOMException(x.DOMException.INVALID_
221NODE_TYPE_ERR)} 222if(!this.size){throw new x.DOMException(x.DOMException.INVALID_STATE_ERR)} 223if(this.width>Image.MAX_RESIZE_WIDTH||this.height>Image.MAX_RESIZE_HEIGHT){} 224var imgCopy=new Image();imgCopy.bind("Resize",function(){render.call(this,opts.type,opts.quality)});imgCopy.bind("Load",function(){imgCopy.downsize(opts)});if(this.meta.thumb&&this.meta.thumb.width>=opts.width&&this.meta.thumb.height>=opts.height){imgCopy.load(this.meta.thumb.data)}else{imgCopy.clone(this,!1)} 225return imgCopy}catch(ex){this.trigger('error',ex.code)}},destroy:function(){if(this.ruid){this.getRuntime().exec.call(this,'Image','destroy');this.disconnectRuntime()} 226this.unbindAll()}});this.handleEventProps(dispatches);this.bind('Load Resize',function(){_updateInfo.call(this)},999);function _updateInfo(info){if(!info){info=this.exec('Image','getInfo')} 227this.size=info.size;this.width=info.width;this.height=info.height;this.type=info.type;this.meta=info.meta;if(this.name===''){this.name=info.name}} 228function _load(src){var srcType=Basic.typeOf(src);try{if(src instanceof Image){if(!src.size){throw new x.DOMException(x.DOMException.INVALID_STATE_ERR)} 229_loadFromImage.apply(this,arguments)}else if(src instanceof Blob){if(!~Basic.inArray(src.type,['image/jpeg','image/png'])){throw new x.ImageError(x.ImageError.WRONG_FORMAT)} 230_loadFromBlob.apply(this,arguments)}else if(Basic.inArray(srcType,['blob','file'])!==-1){_load.call(this,new File(null,src),arguments[1])}else if(srcType==='string'){if(src.substr(0,5)==='data:'){_load.call(this,new Blob(null,{data:src}),arguments[1])}else{_loadFromUrl.apply(this,arguments)}}else if(srcType==='node'&&src.nodeName.toLowerCase()==='img'){_load.call(this,src.src,arguments[1])}else{throw new x.DOMException(x.DOMException.TYPE_MISMATCH_ERR)}}catch(ex){this.trigger('error',ex.code)}} 231function _loadFromImage(img,exact){var runtime=this.connectRuntime(img.ruid);this.ruid=runtime.uid;runtime.exec.call(this,'Image','loadFromImage',img,(Basic.typeOf(exact)==='undefined'?!0:exact))} 232function _loadFromBlob(blob,options){var self=this;self.name=blob.name||'';function exec(runtime){self.ruid=runtime.uid;runtime.exec.call(self,'Image','loadFromBlob',blob)} 233if(blob.isDetached()){this.bind('RuntimeInit',function(e,runtime){exec(runtime)});if(options&&typeof(options.required_caps)==='string'){options.required_caps=Runtime.parseCaps(options.required_caps)} 234this.connectRuntime(Basic.extend({required_caps:{access_image_binary:!0,resize_image:!0}},options))}else{exec(this.connectRuntime(blob.ruid))}} 235function _loadFromUrl(url,options){var self=this,xhr;xhr=new XMLHttpRequest();xhr.open('get',url);xhr.responseType='blob';xhr.onprogress=function(e){self.trigger(e)};xhr.onload=function(){_loadFromBlob.call(self,xhr.response,!0)};xhr.onerror=function(e){self.trigger(e)};xhr.onloadend=function(){xhr.destroy()};xhr.bind('RuntimeError',function(e,err){self.trigger('RuntimeError',err)});xhr.send(null,options)}} 236Image.MAX_RESIZE_WIDTH=8192;Image.MAX_RESIZE_HEIGHT=8192;Image.prototype=EventTarget.instance;return Image});define("moxie/runtime/html5/Runtime",["moxie/core/utils/Basic","moxie/core/Exceptions","moxie/runtime/Runtime","moxie/core/utils/Env"],function(Basic,x,Runtime,Env){var type="html5",extensions={};function Html5Runtime(options){var I=this,Test=Runtime.capTest,True=Runtime.capTrue;var caps=Basic.extend({access_binary:Test(window.FileReader||window.File&&window.File.getAsDataURL),access_image_binary:function(){return I.can('access_binary')&&!!extensions.Image},display_media:Test(Env.can('create_canvas')||Env.can('use_data_uri_over32kb')),do_cors:Test(window.XMLHttpRequest&&'withCredentials' in new XMLHttpRequest()),drag_and_drop:Test(function(){var div=document.createElement('div');return(('draggable' in div)||('ondragstart' in div&&'ondrop' in div))&&(Env.browser!=='IE'||Env.verComp(Env.version,9,'>'))}()),filter_by_extension:Test(function(){return(Env.browser==='Chrome'&&Env.verComp(Env.version,28,'>='))||(Env.browser==='IE'&&Env.verComp(Env.version,10,'>='))||(Env.browser==='Safari'&&Env.verComp(Env.version,7,'>='))}()),return_response_headers:True,return_response_type:function(responseType){if(responseType==='json'&&!!window.JSON){return!0} 237return Env.can('return_response_type',responseType)},return_status_code:True,report_upload_progress:Test(window.XMLHttpRequest&&new XMLHttpRequest().upload),resize_image:function(){return I.can('access_binary')&&Env.can('create_canvas')},select_file:function(){return Env.can('use_fileinput')&&window.File},select_folder:function(){return I.can('select_file')&&Env.browser==='Chrome'&&Env.verComp(Env.version,21,'>=')},select_multiple:function(){return I.can('select_file')&&!(Env.browser==='Safari'&&Env.os==='Windows')&&!(Env.os==='iOS'&&Env.verComp(Env.osVersion,"7.0.0",'>')&&Env.verComp(Env.osVersion,"8.0.0",'<'))},send_binary_string:Test(window.XMLHttpRequest&&(new XMLHttpRequest().sendAsBinary||(window.Uint8Array&&window.ArrayBuffer))),send_custom_headers:Test(window.XMLHttpRequest),send_multipart:function(){return!!(window.XMLHttpRequest&&new XMLHttpRequest().upload&&window.FormData)||I.can('send_binary_string')},slice_blob:Test(window.File&&(File.prototype.mozSlice||File.prototype.webkitSlice||File.prototype.slice)),stream_upload:function(){return I.can('slice_blob')&&I.can('send_multipart')},summon_file_dialog:function(){return I.can('select_file')&&((Env.browser==='Firefox'&&Env.verComp(Env.version,4,'>='))||(Env.browser==='Opera'&&Env.verComp(Env.version,12,'>='))||(Env.browser==='IE'&&Env.verComp(Env.version,10,'>='))||!!~Basic.inArray(Env.browser,['Chrome','Safari']))},upload_filesize:True},arguments[2]);
237Runtime.call(this,options,(arguments[1]||type),caps);Basic.extend(this,{init:function(){this.trigger("Init")},destroy:(function(destroy){return function(){destroy.call(I);destroy=I=null}}(this.destroy))});Basic.extend(this.getShim(),extensions)} 238Runtime.addConstructor(type,Html5Runtime);return extensions});define('moxie/core/utils/Events',['moxie/core/utils/Basic'],function(Basic){var eventhash={},uid='moxie_'+Basic.guid();function preventDefault(){this.returnValue=!1} 239function stopPropagation(){this.cancelBubble=!0} 240var addEvent=function(obj,name,callback,key){var func,events;name=name.toLowerCase();if(obj.addEventListener){func=callback;obj.addEventListener(name,func,!1)}else if(obj.attachEvent){func=function(){var evt=window.event;if(!evt.target){evt.target=evt.srcElement} 241evt.preventDefault=preventDefault;evt.stopPropagation=stopPropagation;callback(evt)};obj.attachEvent('on'+name,func)} 242if(!obj[uid]){obj[uid]=Basic.guid()} 243if(!eventhash.hasOwnProperty(obj[uid])){eventhash[obj[uid]]={}} 244events=eventhash[obj[uid]];if(!events.hasOwnProperty(name)){events[name]=[]} 245events[name].push({func:func,orig:callback,key:key})};var removeEvent=function(obj,name,callback){var type,undef;name=name.toLowerCase();if(obj[uid]&&eventhash[obj[uid]]&&eventhash[obj[uid]][name]){type=eventhash[obj[uid]][name]}else{return} 246for(var i=type.length-1;i>=0;i--){if(type[i].orig===callback||type[i].key===callback){if(obj.removeEventListener){obj.removeEventListener(name,type[i].func,!1)}else if(obj.detachEvent){obj.detachEvent('on'+name,type[i].func)} 247type[i].orig=null;type[i].func=null;type.splice(i,1);if(callback!==undef){break}}} 248if(!type.length){delete eventhash[obj[uid]][name]} 249if(Basic.isEmptyObj(eventhash[obj[uid]])){delete eventhash[obj[uid]];try{delete obj[uid]}catch(e){obj[uid]=undef}}};var removeAllEvents=function(obj,key){if(!obj||!obj[uid]){return} 250Basic.each(eventhash[obj[uid]],function(events,name){removeEvent(obj,name,key)})};return{addEvent:addEvent,removeEvent:removeEvent,removeAllEvents:removeAllEvents}});define("moxie/runtime/html5/file/FileInput",["moxie/runtime/html5/Runtime","moxie/file/File","moxie/core/utils/Basic","moxie/core/utils/Dom","moxie/core/utils/Events","moxie/core/utils/Mime","moxie/core/utils/Env"],function(extensions,File,Basic,Dom,Events,Mime,Env){function FileInput(){var _options;Basic.extend(this,{init:function(options){var comp=this,I=comp.getRuntime(),input,shimContainer,mimes,browseButton,zIndex,top;_options=options;mimes=_options.accept.mimes||Mime.extList2mimes(_options.accept,I.can('filter_by_extension'));shimContainer=I.getShimContainer();shimContainer.innerHTML='<input id="'+I.uid+'" type="file" style="font-size:999px;opacity:0;"'+(_options.multiple&&I.can('select_multiple')?'multiple':'')+(_options.directory&&I.can('select_folder')?'webkitdirectory directory':'')+(mimes?' accept="'+mimes.join(',')+'"':'')+' />';input=Dom.get(I.uid);Basic.extend(input.style,{position:'absolute',top:0,left:0,width:'100%',height:'100%'});browseButton=Dom.get(_options.browse_button);if(I.can('summon_file_dialog')){if(Dom.getStyle(browseButton,'position')==='static'){browseButton.style.position='relative'} 251zIndex=parseInt(Dom.getStyle(browseButton,'z-index'),10)||1;browseButton.style.zIndex=zIndex;shimContainer.style.zIndex=zIndex-1;Events.addEvent(browseButton,'click',function(e){var input=Dom.get(I.uid);if(input&&!input.disabled){input.click()} 252e.preventDefault()},comp.uid)} 253top=I.can('summon_file_dialog')?browseButton:shimContainer;Events.addEvent(top,'mouseover',function(){comp.trigger('mouseenter')},comp.uid);Events.addEvent(top,'mouseout',function(){comp.trigger('mouseleave')},comp.uid);Events.addEvent(top,'mousedown',function(){comp.trigger('mousedown')},comp.uid);Events.addEvent(Dom.get(_options.container),'mouseup',function(){comp.trigger('mouseup')},comp.uid);input.onchange=function onChange(e){comp.files=[];Basic.each(this.files,function(file){var relativePath='';if(_options.directory){if(file.name=="."){return!0}} 254if(file.webkitRelativePath){relativePath='/'+file.webkitRelativePath.replace(/^\//,'')} 255file=new File(I.uid,file);file.relativePath=relativePath;comp.files.push(file)});if(Env.browser!=='IE'&&Env.browser!=='IEMobile'){this.value=''}else{var clone=this.cloneNode(!0);this.parentNode.replaceChild(clone,this);clone.onchange=onChange} 256if(comp.files.length){comp.trigger('change')}};comp.trigger({type:'ready',async:!0});shimContainer=null},disable:function(state){var I=this.getRuntime(),input;if((input=Dom.get(I.uid))){input.disabled=!!state}},destroy:function(){var I=this.getRuntime(),shim=I.getShim(),shimContainer=I.getShimContainer();Events.removeAllEvents(shimContainer,this.uid);Events.removeAllEvents(_options&&Dom.get(_options.container),this.uid);Events.removeAllEvents(_options&&Dom.get(_options.browse_button),this.uid);if(shimContainer){shimContainer.innerHTML=''} 257shim.removeInstance(this.uid);_options=shimContainer=shim=null}})} 258return(extensions.FileInput=FileInput)});define("moxie/runtime/html5/file/Blob",["moxie/runtime/html5/Runtime","moxie/file/Blob"],function(extensions,Blob){function HTML5Blob(){function w3cBlobSlice(blob,start,end){var blobSlice;if(window.File.prototype.slice){try{blob.slice();return blob.slice(start,end)}catch(e){return blob.slice(start,end-start)}}else if((blobSlice=window.File.prototype.webkitSlice||window.File.prototype.mozSlice)){return blobSlice.call(blob,start,end)}else{return null}} 259this.slice=function(){return new Blob(this.getRuntime().uid,w3cBlobSlice.apply(this,arguments))}} 260return(extensions.Blob=HTML5Blob)});define("moxie/runtime/html5/file/FileDrop",["moxie/runtime/html5/Runtime",'moxie/file/File',"moxie/core/utils/Basic","moxie/core/utils/Dom","moxie/core/utils/Events","moxie/core/utils/Mime"],function(extensions,File,Basic,Dom,Events,Mime){function FileDrop(){var _files=[],_allowedExts=[],_options,_ruid;Basic.extend(this,{init:function(options){var comp=this,dropZone;_options=options;_ruid=comp.ruid;_allowedExts=_extractExts(_options.accept);dropZone=_options.container;Events.addEvent(dropZone,'dragover',function(e){if(!_hasFiles(e)){return} 261e.preventDefault();e.dataTransfer.dropEffect='copy'},comp.uid);Events.addEvent(dropZone,'drop',function(e){if(!_hasFiles(e)){return} 262e.preventDefault();_files=[];if(e.dataTransfer.items&&e.dataTransfer.items[0].webkitGetAsEntry){_readItems(e.dataTransfer.items,function(){comp.files=_files;comp.trigger("drop")})}else{Basic.each(e.dataTransfer.files,function(file){_addFile(file)});comp.files=_files;comp.trigger("drop")}},comp.uid);Events.addEvent(dropZone,'dragenter',function(e){comp.trigger("dragenter")},comp.uid);Events.addEvent(dropZone,'dragleave',function(e){comp.trigger("dragleave")},comp.uid)},destroy:function(){Events.removeAllEvents(_options&&Dom.get(_options.container),this.uid);_ruid=_files=_allowedExts=_options=null}});function _hasFiles(e){if(!e.dataTransfer||!e.dataTransfer.types){return!1} 263var types=Basic.toArray(e.dataTransfer.types||[]);return Basic.inArray("Files",types)!==-1||Basic.inArray("public.file-url",types)!==-1||Basic.inArray("application/x-moz-file",types)!==-1} 264function _addFile(file,relativePath){if(_isAcceptable(file)){var fileObj=new File(_ruid,file);fileObj.relativePath=relativePath||'';_files.push(fileObj)}} 265function _extractExts(accept){var exts=[];for(var i=0;i<accept.length;i++){[].push.apply(exts,accept[i].extensions.split(/\s*,\s*/))} 266return Basic.inArray('*',exts)===-1?exts:[]} 267function _isAcceptable(file){if(!_allowedExts.length){return!0} 268var ext=Mime.getFileExtension(file.name);return!ext||Basic.inArray(ext,_allowedExts)!==-1} 269function _readItems(items,cb){var entries=[];Basic.each(items,function(item){var entry=item.webkitGetAsEntry();if(entry){if(entry.isFile){_addFile(item.getAsFile(),entry.fullPath)}else{entries.push(entry)}}});if(entries.length){_readEntries(entries,cb)}else{cb()}} 270function _readEntries(entries,cb){var queue=[];Basic.each(entries,function(entry){queue.push(function(cbcb){_readEntry(entry,cbcb)})});Basic.inSeries(queue,function(){cb()})} 271function _readEntry(entry,cb){if(entry.isFile){entry.file(function(file){_addFile(file,entry.fullPath);cb()},function(){cb()})}else if(entry.isDirectory){_readDirEntry(entry,cb)}else{cb()}} 272function _readDirEntry(dirEntry,cb){var entries=[],dirReader=dirEntry.createReader();function getEntries(cbcb){dirReader.readEntries(function(moreEntries){if(moreEntries.length){[].push.apply(entries,moreEntries);getEntries(cbcb)}else{cbcb()}},cbcb)} 273getEntries(function(){_readEntries(entries,cb)})}} 274return(extensions.FileDrop=FileDrop)});define("moxie/runtime/html5/file/FileReader",["moxie/runtime/html5/Runtime","moxie/core/utils/Encode","moxie/core/utils/Basic"],function(extensions,Encode,Basic){function FileReader(){var _fr,_convertToBinary=!1;Basic.extend(this,{read:function(op,blob){var comp=this;comp.result='';_fr=new window.FileReader();_fr.addEventListener('progress',function(e){comp.trigger(e)});_fr.addEventListener('load',function(e){comp.result=_convertToBinary?_toBinary(_fr.result):_fr.result;comp.trigger(e)});_fr.addEventListener('error',function(e){comp.trigger(e,_fr.error)});_fr.addEventListener('loadend',function(e){_fr=null;comp.trigger(e)});if(Basic.typeOf(_fr[op])==='function'){_convertToBinary=!1;_fr[op](blob.getSource())}else if(op==='readAsBinaryString'){_convertToBinary=!0;
274_fr.readAsDataURL(blob.getSource())}},abort:function(){if(_fr){_fr.abort()}},destroy:function(){_fr=null}});function _toBinary(str){return Encode.atob(str.substring(str.indexOf('base64,')+7))}} 275return(extensions.FileReader=FileReader)});define("moxie/runtime/html5/xhr/XMLHttpRequest",["moxie/runtime/html5/Runtime","moxie/core/utils/Basic","moxie/core/utils/Mime","moxie/core/utils/Url","moxie/file/File","moxie/file/Blob","moxie/xhr/FormData","moxie/core/Exceptions","moxie/core/utils/Env"],function(extensions,Basic,Mime,Url,File,Blob,FormData,x,Env){function XMLHttpRequest(){var self=this,_xhr,_filename;Basic.extend(this,{send:function(meta,data){var target=this,isGecko2_5_6=(Env.browser==='Mozilla'&&Env.verComp(Env.version,4,'>=')&&Env.verComp(Env.version,7,'<')),isAndroidBrowser=Env.browser==='Android Browser',mustSendAsBinary=!1;_filename=meta.url.replace(/^.+?\/([\w\-\.]+)$/,'$1').toLowerCase();_xhr=_getNativeXHR();_xhr.open(meta.method,meta.url,meta.async,meta.user,meta.password);if(data instanceof Blob){if(data.isDetached()){mustSendAsBinary=!0} 276data=data.getSource()}else if(data instanceof FormData){if(data.hasBlob()){if(data.getBlob().isDetached()){data=_prepareMultipart.call(target,data);mustSendAsBinary=!0}else if((isGecko2_5_6||isAndroidBrowser)&&Basic.typeOf(data.getBlob().getSource())==='blob'&&window.FileReader){_preloadAndSend.call(target,meta,data);return}} 277if(data instanceof FormData){var fd=new window.FormData();data.each(function(value,name){if(value instanceof Blob){fd.append(name,value.getSource())}else{fd.append(name,value)}});data=fd}} 278if(_xhr.upload){if(meta.withCredentials){_xhr.withCredentials=!0} 279_xhr.addEventListener('load',function(e){target.trigger(e)});_xhr.addEventListener('error',function(e){target.trigger(e)});_xhr.addEventListener('progress',function(e){target.trigger(e)});_xhr.upload.addEventListener('progress',function(e){target.trigger({type:'UploadProgress',loaded:e.loaded,total:e.total})})}else{_xhr.onreadystatechange=function onReadyStateChange(){switch(_xhr.readyState){case 1:break;case 2:break;case 3:var total,loaded;try{if(Url.hasSameOrigin(meta.url)){total=_xhr.getResponseHeader('Content-Length')||0} 280if(_xhr.responseText){loaded=_xhr.responseText.length}}catch(ex){total=loaded=0} 281target.trigger({type:'progress',lengthComputable:!!total,total:parseInt(total,10),loaded:loaded});break;case 4:_xhr.onreadystatechange=function(){};if(_xhr.status===0){target.trigger('error')}else{target.trigger('load')} 282break}}} 283if(!Basic.isEmptyObj(meta.headers)){Basic.each(meta.headers,function(value,header){_xhr.setRequestHeader(header,value)})} 284if(""!==meta.responseType&&'responseType' in _xhr){if('json'===meta.responseType&&!Env.can('return_response_type','json')){_xhr.responseType='text'}else{_xhr.responseType=meta.responseType}} 285if(!mustSendAsBinary){_xhr.send(data)}else{if(_xhr.sendAsBinary){_xhr.sendAsBinary(data)}else{(function(){var ui8a=new Uint8Array(data.length);for(var i=0;i<data.length;i++){ui8a[i]=(data.charCodeAt(i)&0xff)} 286_xhr.send(ui8a.buffer)}())}} 287target.trigger('loadstart')},getStatus:function(){try{if(_xhr){return _xhr.status}}catch(ex){} 288return 0},getResponse:function(responseType){var I=this.getRuntime();try{switch(responseType){case 'blob':var file=new File(I.uid,_xhr.response);var disposition=_xhr.getResponseHeader('Content-Disposition');if(disposition){var match=disposition.match(/filename=([\'\"'])([^\1]+)\1/);if(match){_filename=match[2]}} 289file.name=_filename;if(!file.type){file.type=Mime.getFileMime(_filename)} 290return file;case 'json':if(!Env.can('return_response_type','json')){return _xhr.status===200&&!!window.JSON?JSON.parse(_xhr.responseText):null} 291return _xhr.response;case 'document':return _getDocument(_xhr);default:return _xhr.responseText!==''?_xhr.responseText:null}}catch(ex){return null}},getAllResponseHeaders:function(){try{return _xhr.getAllResponseHeaders()}catch(ex){} 292return''},abort:function(){if(_xhr){_xhr.abort()}},destroy:function(){self=_filename=null}});function _preloadAndSend(meta,data){var target=this,blob,fr;blob=data.getBlob().getSource();fr=new window.FileReader();fr.onload=function(){data.append(data.getBlobName(),new Blob(null,{type:blob.type,data:fr.result}));self.send.call(target,meta,data)};fr.readAsBinaryString(blob)} 293function _getNativeXHR(){if(window.XMLHttpRequest&&!(Env.browser==='IE'&&Env.verComp(Env.version,8,'<'))){return new window.XMLHttpRequest()}else{return(function(){var progIDs=['Msxml2.XMLHTTP.6.0','Microsoft.XMLHTTP'];for(var i=0;i<progIDs.length;i++){try{return new ActiveXObject(progIDs[i])}catch(ex){}}})()}} 294function _getDocument(xhr){var rXML=xhr.responseXML;var rText=xhr.responseText;if(Env.browser==='IE'&&rText&&rXML&&!rXML.documentElement&&/[^\/]+\/[^\+]+\+xml/.test(xhr.getResponseHeader("Content-Type"))){rXML=new window.ActiveXObject("Microsoft.XMLDOM");rXML.async=!1;rXML.validateOnParse=!1;rXML.loadXML(rText)} 295if(rXML){if((Env.browser==='IE'&&rXML.parseError!==0)||!rXML.documentElement||rXML.documentElement.tagName==="parsererror"){return null}} 296return rXML} 297function _prepareMultipart(fd){var boundary='----moxieboundary'+new Date().getTime(),dashdash='--',crlf='\r\n',multipart='',I=this.getRuntime();if(!I.can('send_binary_string')){throw new x.RuntimeError(x.RuntimeError.NOT_SUPPORTED_ERR)} 298_xhr.setRequestHeader('Content-Type','multipart/form-data; boundary='+boundary);fd.each(function(value,name){if(value instanceof Blob){multipart+=dashdash+boundary+crlf+'Content-Disposition: form-data; name="'+name+'"; filename="'+unescape(encodeURIComponent(value.name||'blob'))+'"'+crlf+'Content-Type: '+(value.type||'application/octet-stream')+crlf+crlf+value.getSource()+crlf}else{multipart+=dashdash+boundary+crlf+'Content-Disposition: form-data; name="'+name+'"'+crlf+crlf+unescape(encodeURIComponent(value))+crlf}});multipart+=dashdash+boundary+dashdash+crlf;return multipart}} 299return(extensions.XMLHttpRequest=XMLHttpRequest)});define("moxie/runtime/html5/utils/BinaryReader",["moxie/core/utils/Basic"],function(Basic){function BinaryReader(data){if(data instanceof ArrayBuffer){ArrayBufferReader.apply(this,arguments)}else{UTF16StringReader.apply(this,arguments)}} 300Basic.extend(BinaryReader.prototype,{littleEndian:!1,read:function(idx,size){var sum,mv,i;if(idx+size>this.length()){throw new Error("You are trying to read outside the source boundaries.")} 301mv=this.littleEndian?0:-8*(size-1);for(i=0,sum=0;i<size;i++){sum|=(this.readByteAt(idx+i)<<Math.abs(mv+i*8))} 302return sum},write:function(idx,num,size){var mv,i,str='';if(idx>this.length()){throw new Error("You are trying to write outside the source boundaries.")} 303mv=this.littleEndian?0:-8*(size-1);for(i=0;i<size;i++){this.writeByteAt(idx+i,(num>>Math.abs(mv+i*8))&255)}},BYTE:function(idx){return this.read(idx,1)},SHORT:function(idx){return this.read(idx,2)},LONG:function(idx){return this.read(idx,4)},SLONG:function(idx){var num=this.read(idx,4);return(num>2147483647?num-4294967296:num)},CHAR:function(idx){return String.fromCharCode(this.read(idx,1))},STRING:function(idx,count){return this.asArray('CHAR',idx,count).join('')}
303,asArray:function(type,idx,count){var values=[];for(var i=0;i<count;i++){values[i]=this[type](idx+i)} 304return values}});function ArrayBufferReader(data){var _dv=new DataView(data);Basic.extend(this,{readByteAt:function(idx){return _dv.getUint8(idx)},writeByteAt:function(idx,value){_dv.setUint8(idx,value)},SEGMENT:function(idx,size,value){switch(arguments.length){case 2:return data.slice(idx,idx+size);case 1:return data.slice(idx);case 3:if(value===null){value=new ArrayBuffer()} 305if(value instanceof ArrayBuffer){var arr=new Uint8Array(this.length()-size+value.byteLength);if(idx>0){arr.set(new Uint8Array(data.slice(0,idx)),0)} 306arr.set(new Uint8Array(value),idx);arr.set(new Uint8Array(data.slice(idx+size)),idx+value.byteLength);this.clear();data=arr.buffer;_dv=new DataView(data);break} 307default:return data}},length:function(){return data?data.byteLength:0},clear:function(){_dv=data=null}})} 308function UTF16StringReader(data){Basic.extend(this,{readByteAt:function(idx){return data.charCodeAt(idx)},writeByteAt:function(idx,value){putstr(String.fromCharCode(value),idx,1)},SEGMENT:function(idx,length,segment){switch(arguments.length){case 1:return data.substr(idx);case 2:return data.substr(idx,length);case 3:putstr(segment!==null?segment:'',idx,length);break;default:return data}},length:function(){return data?data.length:0},clear:function(){data=null}});function putstr(segment,idx,length){length=arguments.length===3?length:data.length-idx-1;data=data.substr(0,idx)+segment+data.substr(length+idx)}} 309return BinaryReader});define("moxie/runtime/html5/image/JPEGHeaders",["moxie/runtime/html5/utils/BinaryReader","moxie/core/Exceptions"],function(BinaryReader,x){return function JPEGHeaders(data){var headers=[],_br,idx,marker,length=0;_br=new BinaryReader(data);if(_br.SHORT(0)!==0xFFD8){_br.clear();throw new x.ImageError(x.ImageError.WRONG_FORMAT)} 310idx=2;while(idx<=_br.length()){marker=_br.SHORT(idx);if(marker>=0xFFD0&&marker<=0xFFD7){idx+=2;continue} 311if(marker===0xFFDA||marker===0xFFD9){break} 312length=_br.SHORT(idx+2)+2;if(marker>=0xFFE1&&marker<=0xFFEF){headers.push({hex:marker,name:'APP'+(marker&0x000F),start:idx,length:length,segment:_br.SEGMENT(idx,length)})} 313idx+=length} 314_br.clear();return{headers:headers,restore:function(data){var max,i,br;br=new BinaryReader(data);idx=br.SHORT(2)==0xFFE0?4+br.SHORT(4):2;for(i=0,max=headers.length;i<max;i++){br.SEGMENT(idx,0,headers[i].segment);idx+=headers[i].length} 315data=br.SEGMENT();br.clear();return data},strip:function(data){var br,headers,jpegHeaders,i;jpegHeaders=new JPEGHeaders(data);headers=jpegHeaders.headers;jpegHeaders.purge();br=new BinaryReader(data);i=headers.length;while(i--){br.SEGMENT(headers[i].start,headers[i].length,'')} 316data=br.SEGMENT();br.clear();return data},get:function(name){var array=[];for(var i=0,max=headers.length;i<max;i++){if(headers[i].name===name.toUpperCase()){array.push(headers[i].segment)}} 317return array},set:function(name,segment){var array=[],i,ii,max;if(typeof(segment)==='string'){array.push(segment)}else{array=segment} 318for(i=ii=0,max=headers.length;i<max;i++){if(headers[i].name===name.toUpperCase()){headers[i].segment=array[ii];headers[i].length=array[ii].length;ii++} 319if(ii>=array.length){break}}},purge:function(){this.headers=headers=[]}}}});define("moxie/runtime/html5/image/ExifParser",["moxie/core/utils/Basic","moxie/runtime/html5/utils/BinaryReader","moxie/core/Exceptions"],function(Basic,BinaryReader,x){function ExifParser(data){var __super__,tags,tagDescs,offsets,idx,Tiff;BinaryReader.call(this,data);tags={tiff:{0x0112:'Orientation',0x010E:'ImageDescription',0x010F:'Make',0x0110:'Model',0x0131:'Software',0x8769:'ExifIFDPointer',0x8825:'GPSInfoIFDPointer'},exif:{0x9000:'ExifVersion',0xA001:'ColorSpace',0xA002:'PixelXDimension',0xA003:'PixelYDimension',0x9003:'DateTimeOriginal',0x829A:'ExposureTime',0x829D:'FNumber',0x8827:'ISOSpeedRatings',0x9201:'ShutterSpeedValue',0x9202:'ApertureValue',0x9207:'MeteringMode',0x9208:'LightSource',0x9209:'Flash',0x920A:'FocalLength',0xA402:'ExposureMode',0xA403:'WhiteBalance',0xA406:'SceneCaptureType',0xA404:'DigitalZoomRatio',0xA408:'Contrast',0xA409:'Saturation',0xA40A:'Sharpness'},gps:{0x0000:'GPSVersionID',0x0001:'GPSLatitudeRef',0x0002:'GPSLatitude',0x0003:'GPSLongitudeRef',0x0004:'GPSLongitude'},thumb:{0x0201:'JPEGInterchangeFormat',0x0202:'JPEGInterchangeFormatLength'}};tagDescs={'ColorSpace':{1:'sRGB',0:'Uncalibrated'},'MeteringMode':{0:'Unknown',1:'Average',2:'CenterWeightedAverage',3:'Spot',4:'MultiSpot',5:'Pattern',6:'Parti
319al',255:'Other'},'LightSource':{1:'Daylight',2:'Fliorescent',3:'Tungsten',4:'Flash',9:'Fine weather',10:'Cloudy weather',11:'Shade',12:'Daylight fluorescent (D 5700 - 7100K)',13:'Day white fluorescent (N 4600 -5400K)',14:'Cool white fluorescent (W 3900 - 4500K)',15:'White fluorescent (WW 3200 - 3700K)',17:'Standard light A',18:'Standard light B',19:'Standard light C',20:'D55',21:'D65',22:'D75',23:'D50',24:'ISO studio tungsten',255:'Other'},'Flash':{0x0000:'Flash did not fire',0x0001:'Flash fired',0x0005:'Strobe return light not detected',0x0007:'Strobe return light detected',0x0009:'Flash fired, compulsory flash mode',0x000D:'Flash fired, compulsory flash mode, return light not detected',0x000F:'Flash fired, compulsory flash mode, return light detected',0x0010:'Flash did not fire, compulsory flash mode',0x0018:'Flash did not fire, auto mode',0x0019:'Flash fired, auto mode',0x001D:'Flash fired, auto mode, return light not detected',0x001F:'Flash fired, auto mode, return light detected',0x0020:'No flash function',0x0041:'Flash fired, red-eye reduction mode',0x0045:'Flash fired, red-eye reduction mode, return light not detected',0x0047:'Flash fired, red-eye reduction mode, return light detected',0x0049:'Flash fired, compulsory flash mode, red-eye reduction mode',0x004D:'Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected',0x004F:'Flash fired, compulsory flash mode, red-eye reduction mode, return light detected',0x0059:'Flash fired, auto mode, red-eye reduction mode',0x005D:'Flash fired, auto mode, return light not detected, red-eye reduction mode',0x005F:'Flash fired, auto mode, return light detected, red-eye reduction mode'},'ExposureMode':{0:'Auto exposure',1:'Manual exposure',2:'Auto bracket'},'WhiteBalance':{0:'Auto white balance',1:'Manual white balance'},'SceneCaptureType':{0:'Standard',1:'Landscape',2:'Portrait',3:'Night scene'},'Contrast':{0:'Normal',1:'Soft',2:'Hard'},'Saturation':{0:'Normal',1:'Low saturation',2:'High saturation'},'Sharpness':{0:'Normal',1:'Soft',2:'Hard'},'GPSLatitudeRef':{N:'North latitude',S:'South latitude'},'GPSLongitudeRef':{E:'East longitude',W:'West longitude'}};offsets={tiffHeader:10};idx=offsets.tiffHeader;__super__={clear:this.clear};Basic.extend(this,{read:function(){try{return ExifParser.prototype.read.apply(this,arguments)}catch(ex){throw new x.ImageError(x.ImageError.INVALID_META_ERR)}},write:function(){try{return ExifParser.prototype.write.apply(this,arguments)}catch(ex){throw new x.ImageError(x.ImageError.INVALID_META_ERR)}},UNDEFINED:function(){return this.BYTE.apply(this,arguments)},RATIONAL:function(idx){return this.LONG(idx)/this.LONG(idx+4)},SRATIONAL:function(idx){return this.SLONG(idx)/this.SLONG(idx+4)},ASCII:function(idx){return this.CHAR(idx)},TIFF:function(){return Tiff||null},EXIF:function(){var Exif=null;if(offsets.exifIFD){try{Exif=extractTags.call(this,offsets.exifIFD,tags.exif)}catch(ex){return null} 320if(Exif.ExifVersion&&Basic.typeOf(Exif.ExifVersion)==='array'){for(var i=0,exifVersion='';i<Exif.ExifVersion.length;i++){exifVersion+=String.fromCharCode(Exif.ExifVersion[i])} 321Exif.ExifVersion=exifVersion}} 322return Exif},GPS:function(){var GPS=null;if(offsets.gpsIFD){try{GPS=extractTags.call(this,offsets.gpsIFD,tags.gps)}catch(ex){return null} 323if(GPS.GPSVersionID&&Basic.typeOf(GPS.GPSVersionID)==='array'){GPS.GPSVersionID=GPS.GPSVersionID.join('.')}} 324return GPS},thumb:function(){if(offsets.IFD1){try{var IFD1Tags=extractTags.call(this,offsets.IFD1,tags.thumb);if('JPEGInterchangeFormat' in IFD1Tags){return this.SEGMENT(offsets.tiffHeader+IFD1Tags.JPEGInterchangeFormat,IFD1Tags.JPEGInterchangeFormatLength)}}catch(ex){}} 325return null},setExif:function(tag,value){if(tag!=='PixelXDimension'&&tag!=='PixelYDimension'){return!1} 326return setTag.call(this,'exif',tag,value)},clear:function(){__super__.clear();data=tags=tagDescs=Tiff=offsets=__super__=null}});if(this.SHORT(0)!==0xFFE1||this.STRING(4,5).toUpperCase()!=="EXIF\0"){throw new x.ImageError(x.ImageError.INVALID_META_ERR)} 327this.littleEndian=(this.SHORT(idx)==0x4949);if(this.SHORT(idx+=2)!==0x002A){throw new x.ImageError(x.ImageError.INVALID_META_ERR)} 328offsets.IFD0=offsets.tiffHeader+this.LONG(idx+=2);Tiff=extractTags.call(this,offsets.IFD0,tags.tiff);
328if('ExifIFDPointer' in Tiff){offsets.exifIFD=offsets.tiffHeader+Tiff.ExifIFDPointer;delete Tiff.ExifIFDPointer} 329if('GPSInfoIFDPointer' in Tiff){offsets.gpsIFD=offsets.tiffHeader+Tiff.GPSInfoIFDPointer;delete Tiff.GPSInfoIFDPointer} 330if(Basic.isEmptyObj(Tiff)){Tiff=null} 331var IFD1Offset=this.LONG(offsets.IFD0+this.SHORT(offsets.IFD0)*12+2);if(IFD1Offset){offsets.IFD1=offsets.tiffHeader+IFD1Offset} 332function extractTags(IFD_offset,tags2extract){var data=this;var length,i,tag,type,count,size,offset,value,values=[],hash={};var types={1:'BYTE',7:'UNDEFINED',2:'ASCII',3:'SHORT',4:'LONG',5:'RATIONAL',9:'SLONG',10:'SRATIONAL'};var sizes={'BYTE':1,'UNDEFINED':1,'ASCII':1,'SHORT':2,'LONG':4,'RATIONAL':8,'SLONG':4,'SRATIONAL':8};length=data.SHORT(IFD_offset);for(i=0;i<length;i++){values=[];offset=IFD_offset+2+i*12;tag=tags2extract[data.SHORT(offset)];if(tag===undefined){continue} 333type=types[data.SHORT(offset+=2)];count=data.LONG(offset+=2);size=sizes[type];if(!size){throw new x.ImageError(x.ImageError.INVALID_META_ERR)} 334offset+=4;if(size*count>4){offset=data.LONG(offset)+offsets.tiffHeader} 335if(offset+size*count>=this.length()){throw new x.ImageError(x.ImageError.INVALID_META_ERR)} 336if(type==='ASCII'){hash[tag]=Basic.trim(data.STRING(offset,count).replace(/\0$/,''));continue}else{values=data.asArray(type,offset,count);value=(count==1?values[0]:values);if(tagDescs.hasOwnProperty(tag)&&typeof value!='object'){hash[tag]=tagDescs[tag][value]}else{hash[tag]=value}}} 337return hash} 338function setTag(ifd,tag,value){var offset,length,tagOffset,valueOffset=0;if(typeof(tag)==='string'){var tmpTags=tags[ifd.toLowerCase()];for(var hex in tmpTags){if(tmpTags[hex]===tag){tag=hex;break}}} 339offset=offsets[ifd.toLowerCase()+'IFD'];length=this.SHORT(offset);for(var i=0;i<length;i++){tagOffset=offset+12*i+2;if(this.SHORT(tagOffset)==tag){valueOffset=tagOffset+8;break}} 340if(!valueOffset){return!1} 341try{this.write(valueOffset,value,4)}catch(ex){return!1} 342return!0}} 343ExifParser.prototype=BinaryReader.prototype;return ExifParser});define("moxie/runtime/html5/image/JPEG",["moxie/core/utils/Basic","moxie/core/Exceptions","moxie/runtime/html5/image/JPEGHeaders","moxie/runtime/html5/utils/BinaryReader","moxie/runtime/html5/image/ExifParser"],function(Basic,x,JPEGHeaders,BinaryReader,ExifParser){function JPEG(data){var _br,_hm,_ep,_info;_br=new BinaryReader(data);if(_br.SHORT(0)!==0xFFD8){throw new x.ImageError(x.ImageError.WRONG_FORMAT)} 344_hm=new JPEGHeaders(data);try{_ep=new ExifParser(_hm.get('app1')[0])}catch(ex){} 345_info=_getDimensions.call(this);Basic.extend(this,{type:'image/jpeg',size:_br.length(),width:_info&&_info.width||0,height:_info&&_info.height||0,setExif:function(tag,value){if(!_ep){return!1} 346if(Basic.typeOf(tag)==='object'){Basic.each(tag,function(value,tag){_ep.setExif(tag,value)})}else{_ep.setExif(tag,value)} 347_hm.set('app1',_ep.SEGMENT())},writeHeaders:function(){if(!arguments.length){return _hm.restore(data)} 348return _hm.restore(arguments[0])},stripHeaders:function(data){return _hm.strip(data)},purge:function(){_purge.call(this)}});if(_ep){this.meta={tiff:_ep.TIFF(),exif:_ep.EXIF(),gps:_ep.GPS(),thumb:_getThumb()}} 349function _getDimensions(br){var idx=0,marker,length;if(!br){br=_br} 350while(idx<=br.length()){marker=br.SHORT(idx+=2);if(marker>=0xFFC0&&marker<=0xFFC3){idx+=5;return{height:br.SHORT(idx),width:br.SHORT(idx+=2)}} 351length=br.SHORT(idx+=2);idx+=length-2} 352return null} 353function _getThumb(){var data=_ep.thumb(),br,info;if(data){br=new BinaryReader(data);info=_getDimensions(br);br.clear();if(info){info.data=data;return info}} 354return null} 355function _purge(){if(!_ep||!_hm||!_br){return} 356_ep.clear();_hm.purge();_br.clear();_info=_hm=_ep=_br=null}} 357return JPEG});define("moxie/runtime/html5/image/PNG",["moxie/core/Exceptions","moxie/core/utils/Basic","moxie/runtime/html5/utils/BinaryReader"],function(x,Basic,BinaryReader){function PNG(data){var _br,_hm,_ep,_info;_br=new BinaryReader(data);(function(){var idx=0,i=0,signature=[0x8950,0x4E47,0x0D0A,0x1A0A];for(i=0;i<signature.length;i++,idx+=2){if(signature[i]!=_br.SHORT(idx)){throw new x.ImageError(x.ImageError.WRONG_FORMAT)}}}());function _getDimensions(){var chunk,idx;chunk=_getChunkAt.call(this,8);if(chunk.type=='IHDR'){idx=chunk.start;return{width:_br.LONG(idx),height:_br.LONG(idx+=4)}} 358return null} 359function _purge(){if(!_br){return} 360_br.clear();data=_info=_hm=_ep=_br=null} 361_info=_getDimensions.call(this);Basic.extend(this,{type:'image/png',size:_br.length(),width:_info.width,height:_info.height,purge:function(){_purge.call(this)}});_purge.call(this);function _getChunkAt(idx){var length,type,start,CRC;length=_br.LONG(idx);type=_br.STRING(idx+=4,4);start=idx+=4;CRC=_br.LONG(idx+length);return{length:length,type:type,start:start,CRC:CRC}}} 362return PNG});define("moxie/runtime/html5/image/ImageInfo",["moxie/core/utils/Basic","moxie/core/Exceptions","moxie/runtime/html5/image/JPEG","moxie/runtime/html5/image/PNG"],function(Basic,x,JPEG,PNG){return function(data){var _cs=[JPEG,PNG],_img;_img=(function(){for(var i=0;i<_cs.length;i++){try{return new _cs[i](data)}catch(ex){}} 363throw new x.ImageError(x.ImageError.WRONG_FORMAT)}());Basic.extend(this,{type:'',size:0,width:0,height:0,setExif:function(){},writeHeaders:function(data){return data},stripHeaders:function(data){return data},purge:function(){data=null}});Basic.extend(this,_img);this.purge=function(){_img.purge();_img=null}}});define("moxie/runtime/html5/image/MegaPixel",[],function(){function renderImageToCanvas(img,canvas,options){var iw=img.naturalWi
363dth,ih=img.naturalHeight;var width=options.width,height=options.height;var x=options.x||0,y=options.y||0;var ctx=canvas.getContext('2d');if(detectSubsampling(img)){iw/=2;ih/=2} 364var d=1024;var tmpCanvas=document.createElement('canvas');tmpCanvas.width=tmpCanvas.height=d;var tmpCtx=tmpCanvas.getContext('2d');var vertSquashRatio=detectVerticalSquash(img,iw,ih);var sy=0;while(sy<ih){var sh=sy+d>ih?ih-sy:d;var sx=0;while(sx<iw){var sw=sx+d>iw?iw-sx:d;tmpCtx.clearRect(0,0,d,d);tmpCtx.drawImage(img,-sx,-sy);var dx=(sx*width/iw+x)<<0;var dw=Math.ceil(sw*width/iw);var dy=(sy*height/ih/vertSquashRatio+y)<<0;var dh=Math.ceil(sh*height/ih/vertSquashRatio);ctx.drawImage(tmpCanvas,0,0,sw,sh,dx,dy,dw,dh);sx+=d} 365sy+=d} 366tmpCanvas=tmpCtx=null} 367function detectSubsampling(img){var iw=img.naturalWidth,ih=img.naturalHeight;if(iw*ih>1024*1024){var canvas=document.createElement('canvas');canvas.width=canvas.height=1;var ctx=canvas.getContext('2d');ctx.drawImage(img,-iw+1,0);return ctx.getImageData(0,0,1,1).data[3]===0}else{return!1}} 368function detectVerticalSquash(img,iw,ih){var canvas=document.createElement('canvas');canvas.width=1;canvas.height=ih;var ctx=canvas.getContext('2d');ctx.drawImage(img,0,0);var data=ctx.getImageData(0,0,1,ih).data;var sy=0;var ey=ih;var py=ih;while(py>sy){var alpha=data[(py-1)*4+3];if(alpha===0){ey=py}else{sy=py} 369py=(ey+sy)>>1} 370canvas=null;var ratio=(py/ih);return(ratio===0)?1:ratio} 371return{isSubsampled:detectSubsampling,renderTo:renderImageToCanvas}});define("moxie/runtime/html5/image/Image",["moxie/runtime/html5/Runtime","moxie/core/utils/Basic","moxie/core/Exceptions","moxie/core/utils/Encode","moxie/file/Blob","moxie/file/File","moxie/runtime/html5/image/ImageInfo","moxie/runtime/html5/image/MegaPixel","moxie/core/utils/Mime","moxie/core/utils/Env"],function(extensions,Basic,x,Encode,Blob,File,ImageInfo,MegaPixel,Mime,Env){function HTML5Image(){var me=this,_img,_imgInfo,_canvas,_binStr,_blob,_modified=!1,_preserveHeaders=!0;Basic.extend(this,{loadFromBlob:function(blob){var comp=this,I=comp.getRuntime(),asBinary=arguments.length>1?arguments[1]:!0;if(!I.can('access_binary')){throw new x.RuntimeError(x.RuntimeError.NOT_SUPPORTED_ERR)} 372_blob=blob;if(blob.isDetached()){_binStr=blob.getSource();_preload.call(this,_binStr);return}else{_readAsDataUrl.call(this,blob.getSource(),function(dataUrl){if(asBinary){_binStr=_toBinary(dataUrl)} 373_preload.call(comp,dataUrl)})}},loadFromImage:function(img,exact){this.meta=img.meta;_blob=new File(null,{name:img.name,size:img.size,type:img.type});_preload.call(this,exact?(_binStr=img.getAsBinaryString()):img.getAsDataURL())},getInfo:function(){var I=this.getRuntime(),info;if(!_imgInfo&&_binStr&&I.can('access_image_binary')){_imgInfo=new ImageInfo(_binStr)} 374info={width:_getImg().width||0,height:_getImg().height||0,type:_blob.type||Mime.getFileMime(_blob.name),size:_binStr&&_binStr.length||_blob.size||0,name:_blob.name||'',meta:_imgInfo&&_imgInfo.meta||this.meta||{}};if(info.meta&&info.meta.thumb&&!(info.meta.thumb.data instanceof Blob)){info.meta.thumb.data=new Blob(null,{type:'image/jpeg',data:info.meta.thumb.data})} 375return info},downsize:function(){_downsize.apply(this,arguments)},getAsCanvas:function(){if(_canvas){_canvas.id=this.uid+'_canvas'} 376return _canvas},getAsBlob:function(type,quality){if(type!==this.type){_downsize.call(this,this.width,this.height,!1)} 377return new File(null,{name:_blob.name||'',type:type,data:me.getAsBinaryString.call(this,type,quality)})},getAsDataURL:function(type){var quality=arguments[1]||90;if(!_modified){return _img.src} 378if('image/jpeg'!==type){return _canvas.toDataURL('image/png')}else{try{return _canvas.toDataURL('image/jpeg',quality/100)}catch(ex){return _canvas.toDataURL('image/jpeg')}}},getAsBinaryString:function(type,quality){if(!_modified){if(!_binStr){_binStr=_toBinary(me.getAsDataURL(type,quality))} 379return _binStr} 380if('image/jpeg'!==type){_binStr=_toBinary(me.getAsDataURL(type,quality))}else{var dataUrl;if(!quality){quality=90} 381try{dataUrl=_canvas.toDataURL('image/jpeg',quality/100)}catch(ex){dataUrl=_canvas.toDataURL('image/jpeg')} 382_binStr=_toBinary(dataUrl);if(_imgInfo){_binStr=_imgInfo.stripHeaders(_binStr);if(_preserveHeaders){if(_imgInfo.meta&&_imgInfo.meta.exif){_imgInfo.setExif({PixelXDimension:this.width,PixelYDimension:this.height})}
383_binStr=_imgInfo.writeHeaders(_binStr)} 384_imgInfo.purge();_imgInfo=null}} 385_modified=!1;return _binStr},destroy:function(){me=null;_purge.call(this);this.getRuntime().getShim().removeInstance(this.uid)}});function _getImg(){if(!_canvas&&!_img){throw new x.ImageError(x.DOMException.INVALID_STATE_ERR)} 386return _canvas||_img} 387function _toBinary(str){return Encode.atob(str.substring(str.indexOf('base64,')+7))} 388function _toDataUrl(str,type){return'data:'+(type||'')+';base64,'+Encode.btoa(str)} 389function _preload(str){var comp=this;_img=new Image();_img.onerror=function(){_purge.call(this);comp.trigger('error',x.ImageError.WRONG_FORMAT)};_img.onload=function(){comp.trigger('load')};_img.src=str.substr(0,5)=='data:'?str:_toDataUrl(str,_blob.type)} 390function _readAsDataUrl(file,callback){var comp=this,fr;if(window.FileReader){fr=new FileReader();fr.onload=function(){callback(this.result)};fr.onerror=function(){comp.trigger('error',x.ImageError.WRONG_FORMAT)};fr.readAsDataURL(file)}else{return callback(file.getAsDataURL())}} 391function _downsize(width,height,crop,preserveHeaders){var self=this,scale,mathFn,x=0,y=0,img,destWidth,destHeight,orientation;_preserveHeaders=preserveHeaders;orientation=(this.meta&&this.meta.tiff&&this.meta.tiff.Orientation)||1;if(Basic.inArray(orientation,[5,6,7,8])!==-1){var tmp=width;width=height;height=tmp} 392img=_getImg();if(!crop){scale=Math.min(width/img.width,height/img.height)}else{width=Math.min(width,img.width);height=Math.min(height,img.height);scale=Math.max(width/img.width,height/img.height)} 393if(scale>1&&!crop&&preserveHeaders){this.trigger('Resize');return} 394if(!_canvas){_canvas=document.createElement("canvas")} 395destWidth=Math.round(img.width*scale);destHeight=Math.round(img.height*scale);if(crop){_canvas.width=width;_canvas.height=height;if(destWidth>width){x=Math.round((destWidth-width)/2)} 396if(destHeight>height){y=Math.round((destHeight-height)/2)}}else{_canvas.width=destWidth;_canvas.height=destHeight} 397if(!_preserveHeaders){_rotateToOrientaion(_canvas.width,_canvas.height,orientation)} 398_drawToCanvas.call(this,img,_canvas,-x,-y,destWidth,destHeight);this.width=_canvas.width;this.height=_canvas.height;_modified=!0;self.trigger('Resize')} 399function _drawToCanvas(img,canvas,x,y,w,h){if(Env.OS==='iOS'){MegaPixel.renderTo(img,canvas,{width:w,height:h,x:x,y:y})}else{var ctx=canvas.getContext('2d');ctx.drawImage(img,x,y,w,h)}} 400function _rotateToOrientaion(width,height,orientation){switch(orientation){case 5:case 6:case 7:case 8:_canvas.width=height;_canvas.height=width;break;default:_canvas.width=width;_canvas.height=height} 401var ctx=_canvas.getContext('2d');switch(orientation){case 2:ctx.translate(width,0);ctx.scale(-1,1);break;case 3:ctx.translate(width,height);ctx.rotate(Math.PI);break;case 4:ctx.translate(0,height);ctx.scale(1,-1);break;case 5:ctx.rotate(0.5*Math.PI);ctx.scale(1,-1);break;case 6:ctx.rotate(0.5*Math.PI);ctx.translate(0,-height);break;case 7:ctx.rotate(0.5*Math.PI);ctx.translate(width,-height);ctx.scale(-1,1);break;case 8:ctx.rotate(-0.5*Math.PI);ctx.translate(-width,0);break}} 402function _purge(){if(_imgInfo){_imgInfo.purge();_imgInfo=null} 403_binStr=_img=_canvas=_blob=null;_modified=!1}} 404return(extensions.Image=HTML5Image)});define("moxie/runtime/flash/Runtime",[],function(){return{}});define("moxie/runtime/silverlight/Runtime",[],function(){return{}});define("moxie/runtime/html4/Runtime",["moxie/core/utils/Basic","moxie/core/Exceptions","moxie/runtime/Runtime","moxie/core/utils/Env"],function(Basic,x,Runtime,Env){var type='html4',extensions={};function Html4Runtime(options){var I=this,Test=Runtime.capTest,True=Runtime.capTrue;Runtime.call(this,options,type,{access_binary:Test(window.FileReader||window.File&&File.getAsDataURL),access_image_binary:!1,display_media:Test(extensions.Image&&(Env.can('create_canvas')||Env.can('use_data_uri_over32kb'))),do_cors:!1,drag_and_drop:!1,filter_by_extension:Test(function(){return(Env.browser==='Chrome'&&Env.verComp(Env.version,28,'>='))||(Env.browser==='IE'&&Env.verComp(Env.version,10,'>='))||(Env.browser==='Safari'&&Env.verComp(Env.version,7,'>='))}()),resize_image:function(){return extensions.Image&&I.can('access_binary')&&Env.can('create_canvas')},report_upload_progress:!1,return_response_headers:!1,return_response_type:function(responseType){if(responseType==='json'&&!!window.JSON){return!0} 405return!!~Basic.inArray(responseType,['text','document',''])},return_status_code:function(code){return!Basic.arrayDiff(code,[200,404])},select_file:function(){return Env.can('use_fileinput')},select_multiple:!1,send_binary_string:!1,send_custom_headers:!1,send_multipart:!0,slice_blob:!1,stream_upload:function(){return I.can('select_file')},summon_file_dialog:function(){return I.can('select_file')&&((Env.browser==='Firefox'&&Env.verComp(Env.version,4,'>='))||(Env.browser==='Opera'&&Env.verComp(Env.version,12,'>='))||(Env.browser==='IE'&&Env.verComp(Env.version,10,'>='))||!!~Basic.inArray(Env.browser,['Chrome','Safari']))},upload_filesize:True,use_http_method:function(methods){return!Basic.arrayDiff(methods,['GET','POST'])}});Basic.extend(this,{init:function(){this.trigger("Init")},destroy:(function(destroy){return function(){destroy.call(I);destroy=I=null}}(this.destroy))});Basic.extend(this.getShim(),extensions)} 406Runtime.addConstructor(type,Html4Runtime);return extensions});define("moxie/runtime/html4/file/FileInput",["moxie/runtime/html4/Runtime","moxie/file/File","moxie/core/utils/Basic","moxie/core/utils/Dom","moxie/core/utils/Events","moxie/core/utils/Mime","moxie/core/utils/Env"],function(extensions,File,Basic,Dom,Events,Mime,Env){function FileInput(){var _uid,_mimes=[],_options;function addInput(){var comp=this,I=comp.getRuntime(),shimContainer,browseButton,currForm,form,input,uid;uid=Basic.guid('uid_');shimContainer=I.getShimContainer();if(_uid){currForm=Dom.get(_uid+'_form');if(currForm){Basic.extend(currForm.style,{top:'100%'})}} 407form=document.createElement('form');form.setAttribute('id',uid+'_form');form.setAttribute('method','post');form.setAttribute('enctype','multipart/form-data');form.setAttribute('encoding','multipart/form-data');Basic.extend(form.style,{overflow:'hidden',position:'absolute',top:0,left:0,width:'100%',height:'100%'});
407input=document.createElement('input');input.setAttribute('id',uid);input.setAttribute('type','file');input.setAttribute('name',_options.name||'Filedata');input.setAttribute('accept',_mimes.join(','));Basic.extend(input.style,{fontSize:'999px',opacity:0});form.appendChild(input);shimContainer.appendChild(form);Basic.extend(input.style,{position:'absolute',top:0,left:0,width:'100%',height:'100%'});if(Env.browser==='IE'&&Env.verComp(Env.version,10,'<')){Basic.extend(input.style,{filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=0)"})} 408input.onchange=function(){var file;if(!this.value){return} 409if(this.files){file=this.files[0];if(file.size===0){form.parentNode.removeChild(form);return}}else{file={name:this.value}} 410file=new File(I.uid,file);this.onchange=function(){};addInput.call(comp);comp.files=[file];input.setAttribute('id',file.uid);form.setAttribute('id',file.uid+'_form');comp.trigger('change');input=form=null};if(I.can('summon_file_dialog')){browseButton=Dom.get(_options.browse_button);Events.removeEvent(browseButton,'click',comp.uid);Events.addEvent(browseButton,'click',function(e){if(input&&!input.disabled){input.click()} 411e.preventDefault()},comp.uid)} 412_uid=uid;shimContainer=currForm=browseButton=null} 413Basic.extend(this,{init:function(options){var comp=this,I=comp.getRuntime(),shimContainer;_options=options;_mimes=options.accept.mimes||Mime.extList2mimes(options.accept,I.can('filter_by_extension'));shimContainer=I.getShimContainer();(function(){var browseButton,zIndex,top;browseButton=Dom.get(options.browse_button);if(I.can('summon_file_dialog')){if(Dom.getStyle(browseButton,'position')==='static'){browseButton.style.position='relative'} 414zIndex=parseInt(Dom.getStyle(browseButton,'z-index'),10)||1;browseButton.style.zIndex=zIndex;shimContainer.style.zIndex=zIndex-1} 415top=I.can('summon_file_dialog')?browseButton:shimContainer;Events.addEvent(top,'mouseover',function(){comp.trigger('mouseenter')},comp.uid);Events.addEvent(top,'mouseout',function(){comp.trigger('mouseleave')},comp.uid);Events.addEvent(top,'mousedown',function(){comp.trigger('mousedown')},comp.uid);Events.addEvent(Dom.get(options.container),'mouseup',function(){comp.trigger('mouseup')},comp.uid);browseButton=null}());addInput.call(this);shimContainer=null;comp.trigger({type:'ready',async:!0})},disable:function(state){var input;if((input=Dom.get(_uid))){input.disabled=!!state}},destroy:function(){var I=this.getRuntime(),shim=I.getShim(),shimContainer=I.getShimContainer();Events.removeAllEvents(shimContainer,this.uid);Events.removeAllEvents(_options&&Dom.get(_options.container),this.uid);Events.removeAllEvents(_options&&Dom.get(_options.browse_button),this.uid);if(shimContainer){shimContainer.innerHTML=''} 416shim.removeInstance(this.uid);_uid=_mimes=_options=shimContainer=shim=null}})} 417return(extensions.FileInput=FileInput)});define("moxie/runtime/html4/file/FileReader",["moxie/runtime/html4/Runtime","moxie/runtime/html5/file/FileReader"],function(extensions,FileReader){return(extensions.FileReader=FileReader)});define("moxie/runtime/html4/xhr/XMLHttpRequest",["moxie/runtime/html4/Runtime","moxie/core/utils/Basic","moxie/core/utils/Dom","moxie/core/utils/Url","moxie/core/Exceptions","moxie/core/utils/Events","moxie/file/Blob","moxie/xhr/FormData"],function(extensions,Basic,Dom,Url,x,Events,Blob,FormData){function XMLHttpRequest(){var _status,_response,_iframe;function cleanup(cb){var target=this,uid,form,inputs,i,hasFile=!1;if(!_iframe){return} 418uid=_iframe.id.replace(/_iframe$/,'');form=Dom.get(uid+'_form');if(form){inputs=form.getElementsByTagName('input');i=inputs.length;while(i--){switch(inputs[i].getAttribute('type')){case 'hidden':inputs[i].parentNode.removeChild(inputs[i]);break;case 'file':hasFile=!0;break}} 419inputs=[];if(!hasFile){form.parentNode.removeChild(form)} 420form=null} 421setTimeout(function(){Events.removeEvent(_iframe,'load',target.uid);if(_iframe.parentNode){_iframe.parentNode.removeChild(_iframe)} 422var shimContainer=target.getRuntime().getShimContainer();if(!shimContainer.children.length){shimContainer.parentNode.removeChild(shimContainer)} 423shimContainer=_iframe=null;cb()},1)} 424Basic.extend(this,{send:function(meta,data){var target=this,I=target.getRuntime(),uid,form,input,blob;_status=_response=null;function createIframe(){var container=I.getShimContainer()||document.body,temp=document.createElement('div');temp.innerHTML='<iframe id="'+uid+'_iframe" name="'+uid+'_iframe" src="javascript:""" style="display:none"></iframe>';_iframe=temp.firstChild;container.appendChild(_iframe);Events.addEvent(_iframe,'load',function(){var el;
424try{el=_iframe.contentWindow.document||_iframe.contentDocument||window.frames[_iframe.id].document;if(/^4(0[0-9]|1[0-7]|2[2346])\s/.test(el.title)){_status=el.title.replace(/^(\d+).*$/,'$1')}else{_status=200;_response=Basic.trim(el.body.innerHTML);target.trigger({type:'progress',loaded:_response.length,total:_response.length});if(blob){target.trigger({type:'uploadprogress',loaded:blob.size||1025,total:blob.size||1025})}}}catch(ex){if(Url.hasSameOrigin(meta.url)){_status=404}else{cleanup.call(target,function(){target.trigger('error')});return}} 425cleanup.call(target,function(){target.trigger('load')})},target.uid)} 426if(data instanceof FormData&&data.hasBlob()){blob=data.getBlob();uid=blob.uid;input=Dom.get(uid);form=Dom.get(uid+'_form');if(!form){throw new x.DOMException(x.DOMException.NOT_FOUND_ERR)}}else{uid=Basic.guid('uid_');form=document.createElement('form');form.setAttribute('id',uid+'_form');form.setAttribute('method',meta.method);form.setAttribute('enctype','multipart/form-data');form.setAttribute('encoding','multipart/form-data');I.getShimContainer().appendChild(form)} 427form.setAttribute('target',uid+'_iframe');if(data instanceof FormData){data.each(function(value,name){if(value instanceof Blob){if(input){input.setAttribute('name',name)}}else{var hidden=document.createElement('input');Basic.extend(hidden,{type:'hidden',name:name,value:value});if(input){form.insertBefore(hidden,input)}else{form.appendChild(hidden)}}})} 428form.setAttribute("action",meta.url);createIframe();form.submit();target.trigger('loadstart')},getStatus:function(){return _status},getResponse:function(responseType){if('json'===responseType){if(Basic.typeOf(_response)==='string'&&!!window.JSON){try{return JSON.parse(_response.replace(/^\s*<pre[^>]*>/,'').replace(/<\/pre>\s*$/,''))}catch(ex){return null}}}else if('document'===responseType){} 429return _response},abort:function(){var target=this;if(_iframe&&_iframe.contentWindow){if(_iframe.contentWindow.stop){_iframe.contentWindow.stop()}else if(_iframe.contentWindow.document.execCommand){_iframe.contentWindow.document.execCommand('Stop')}else{_iframe.src="about:blank"}} 430cleanup.call(this,function(){target.dispatchEvent('abort')})}})} 431return(extensions.XMLHttpRequest=XMLHttpRequest)});define("moxie/runtime/html4/image/Image",["moxie/runtime/html4/Runtime","moxie/runtime/html5/image/Image"],function(extensions,Image){return(extensions.Image=Image)});expose(["moxie/core/utils/Basic","moxie/core/utils/Env","moxie/core/I18n","moxie/core/utils/Mime","moxie/core/utils/Dom","moxie/core/Exceptions","moxie/core/EventTarget","moxie/runtime/Runtime","moxie/runtime/RuntimeClient","moxie/file/FileInput","moxie/core/utils/Encode","moxie/file/Blob","moxie/file/File","moxie/file/FileDrop","moxie/file/FileReader","moxie/core/utils/Url","moxie/runtime/RuntimeTarget","moxie/file/FileReaderSync","moxie/xhr/FormData","moxie/xhr/XMLHttpRequest","moxie/runtime/Transporter","moxie/image/Image","moxie/core/utils/Events"])})(this);(function(exports){"use strict";var o={},inArray=exports.moxie.core.utils.Basic.inArray;(function addAlias(ns){var name,itemType;for(name in ns){itemType=typeof(ns[name]);if(itemType==='object'&&!~inArray(name,['Exceptions','Env','Mime'])){addAlias(ns[name])}else if(itemType==='function'){o[name]=ns[name]}}})(exports.moxie);o.Env=exports.moxie.core.utils.Env;o.Mime=exports.moxie.core.utils.Mime;o.Exceptions=exports.moxie.core.Exceptions;exports.mOxie=o;if(!exports.o){exports.o=o} 432return o})(this) 433;
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.