;var MXI_DEBUG=false;(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];}
defs.push(module);}
callback.apply(null,defs);}
function define(id,dependencies,definition){if(typeof id!=='string'){throw'invalid module definition, module id must be defined and be a string';}
if(dependencies===undefined){throw'invalid module definition, dependencies must be specified';}
if(definition===undefined){throw'invalid module definition, definition function must be specified';}
require(dependencies,function(){modules[id]=definition.apply(null,arguments);});}
function defined(id){return!!modules[id];}
function resolve(id){var target=exports;var fragments=id.split(/[.\/]/);for(var fi=0;fi<fragments.length;++fi){if(!target[fragments[fi]]){return;}
target=target[fragments[fi]];}
return target;}
function 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]]={};}
target=target[fragments[fi]];}
target[fragments[fragments.length-1]]=modules[id];}}
define('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';}
return({}).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)===false){return;}}}else if(typeOf(obj)==='object'){for(key in obj){if(obj.hasOwnProperty(key)){if(callback(obj[key],key)===false){return;}}}}}};var isEmptyObj=function(obj){var prop;if(!obj||typeOf(obj)!=='object'){return true;}
for(prop in obj){return false;}
return true;};var inSeries=function(queue,cb){var i=0,length=queue.length;if(typeOf(cb)!=='function'){cb=function(){};}
if(!queue||!queue.length){cb();}
function callNext(i){if(typeOf(queue[i])==='function'){queue[i](function(error){++i<length&&!error?callNext(i):cb(error);});}}
callNext(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);}
var args=[].slice.call(arguments);args.shift();cbArgs[i]=args;count++;if(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);}
for(var i=0,length=array.length;i<length;i++){if(array[i]===needle){return i;}}}
return-1;};var arrayDiff=function(needles,array){var diff=[];if(typeOf(needles)!=='array'){needles=[needles];}
if(typeOf(array)!=='array'){array=[array];}
for(var i in needles){if(inArray(needles[i],array)===-1){diff.push(needles[i]);}}
return diff.length?diff:false;};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];}
return 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);}
return(prefix||'o_')+guid+(counter++).toString(32);};}());var trim=function(str){if(!str){return str;}
return String.prototype.trim?String.prototype.trim.call(str):str.toString().replace(/^\s*/,'').replace(/\s*$/,'');};var parseSizeStr=function(size){if(typeof(size)!=='string'){return size;}
var 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];}
return 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;}}}
for(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;}}
break;}}
if(!!matches)break;}
return 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;}}
return 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|[tizenoka]{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\:.+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;}
v1[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;}}
if(!operator){return compare;}
switch(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;}}
var can=(function(){var caps={define_property:(function(){return false;}()),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 true;}else if(window.XMLHttpRequest){var xhr=new XMLHttpRequest();xhr.open('get','/');if('responseType'in xhr){xhr.responseType=responseType;if(xhr.responseType!==responseType){return false;}
return true;}}}catch(ex){}
return false;},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 false;}()),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))/)){return false;}
var 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:true,events:false};Env.log=function(){function logObj(data){console.appendChild(document.createTextNode(data+"\n"));}
var data=arguments[0];if(Basic.typeOf(data)==='string'){data=Basic.sprintf.apply(this,arguments);}
if(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);}
if(Basic.inArray(Basic.typeOf(data),['object','array'])!==-1){logObj(data);}else{console.appendChild(document.createTextNode(data+"\n"));}}};}
return 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];}
this.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[];}
type=self.mimes[ext[ii]];if(type&&Basic.inArray(type,mimes)===-1){mimes.push(type);}
if(addMissingExtensions&&/^\w+$/.test(ext[ii])){mimes.push('.'+ext[ii]);}else if(!type){return[];}}}
return mimes;},mimes2exts:function(mimes){var self=this,exts=[];Basic.each(mimes,function(mime){if(mime==='*'){exts=[];return false;}
var 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*/);}
exts=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();}
return'';},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;}
return document.getElementById(id);};var hasClass=function(obj,name){if(!obj.className){return false;}
var 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;}
return{x:x,y:y};}
if(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};}
parent=node;while(parent&&parent!=root&&parent.nodeType){x+=parent.offsetLeft||0;y+=parent.offsetTop||0;parent=parent.offsetParent;}
parent=node.parentNode;while(parent&&parent!=root&&parent.nodeType){x-=parent.scrollLeft||0;y-=parent.scrollTop||0;parent=parent.parentNode;}
return{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;}}
return null;}
return{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;}
Basic.extend(RuntimeError,namecodes);RuntimeError.prototype=Error.prototype;return RuntimeError;}()),OperationNotAllowedException:(function(){function OperationNotAllowedException(code){this.code=code;this.name='OperationNotAllowedException';}
Basic.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;}
Basic.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};function FileException(code){this.code=code;this.name=_findKey(namecodes,code);this.message=this.name+": FileException "+this.code;}
Basic.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;}
Basic.extend(DOMException,namecodes);DOMException.prototype=Error.prototype;return DOMException;}()),EventException:(function(){function EventException(code){this.code=code;this.name='EventException';}
Basic.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_');}
type=Basic.trim(type);if(/\s/.test(type)){Basic.each(type.split(/\s+/),function(type){self.addEventListener(type,fn,priority,scope);});return;}
type=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]={};}
eventpool[this.uid][type]=list;},hasEventListener:function(type){var list=type?eventpool[this.uid]&&eventpool[this.uid][type]:eventpool[this.uid];return list?list:false;},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=[];}
if(!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=true,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;}
evt.async=tmpEvt.async||false;}else{throw new x.EventException(x.EventException.UNSPECIFIED_EVENT_TYPE_ERR);}}
if(type.indexOf('::')!==-1){(function(arr){uid=arr[0];type=arr[1];}(type.split('::')));}else{uid=this.uid;}
type=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);}
var 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)===false);},1);});}else{queue.push(function(cb){cb(handler.fn.apply(handler.scope,args)===false);});}});if(queue.length){Basic.inSeries(queue,function(err){result=!err;});}}
return 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;}});}});}
EventTarget.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:false,access_image_binary:false,display_media:false,do_cors:false,drag_and_drop:false,filter_by_extension:true,resize_image:false,report_upload_progress:false,return_response_headers:false,return_response_type:false,return_status_code:true,send_custom_headers:false,select_file:false,select_folder:false,select_multiple:true,send_binary_string:false,send_browser_cookies:true,send_multipart:true,slice_blob:false,stream_upload:false,summon_file_dialog:false,upload_filesize:true,use_http_method:true},caps);if(options.preferred_caps){defaultMode=Runtime.getMode(modeCaps,options.preferred_caps,defaultMode);}
if(MXI_DEBUG&&Env.debug.runtime){Env.log("\tdefault mode: %s",defaultMode);}
_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]()};}
if(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);}
self.removeInstance(uid);});}};}());Basic.extend(this,{initialized:false,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);}
if(Basic.typeOf(cap)==='object'){for(var key in cap){if(!this.can(key,cap[key],refCaps)){return false;}}
return true;}
if(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;}
return 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);}
return self.shimExec.apply(this,arguments);},destroy:function(){if(!self){return;}
var shimContainer=Dom.get(this.shimid);if(shimContainer){shimContainer.parentNode.removeChild(shimContainer);}
if(_shim){_shim.removeAllInstances();}
this.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=false;}}
Runtime.order='html5,html4';Runtime.getRuntime=function(uid){return runtimes[uid]?runtimes[uid]:false;};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);}};}
return null;};Runtime.parseCaps=function(capStr){var capObj={};if(Basic.typeOf(capStr)!=='string'){return capStr||{};}
Basic.each(capStr.split(','),function(key){capObj[key]=true;});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;}
return false;};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];}}
return null;};Runtime.getMode=function(modeCaps,requiredCaps,defaultMode){var mode=null;if(Basic.typeOf(defaultMode)==='undefined'){defaultMode='browser';}
if(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];}
if(!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);}
return(mode=false);}}
if(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===false){return false;}}
return defaultMode;};Runtime.capTrue=function(){return true;};Runtime.capFalse=function(){return false;};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;}
type=items.shift().toLowerCase();constructor=Runtime.getConstructor(type);if(!constructor){initialize(items);return;}
if(MXI_DEBUG&&Env.debug.runtime){Env.log("Trying runtime: %s",type);Env.log(options);}
runtime=new constructor(options);runtime.bind('Init',function(){runtime.initialized=true;if(MXI_DEBUG&&Env.debug.runtime){Env.log("Runtime '%s' initialized",runtime.type);}
setTimeout(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);}
runtime.destroy();initialize(items);});if(MXI_DEBUG&&Env.debug.runtime){Env.log("\tselected mode: %s",runtime.mode);}
if(!runtime.mode){runtime.trigger('Error');return;}
runtime.init();}
if(Basic.typeOf(options)==='string'){ruid=options;}else if(Basic.typeOf(options.ruid)==='string'){ruid=options.ruid;}
if(ruid){runtime=Runtime.getRuntime(ruid);if(runtime){runtime.clients++;return runtime;}else{throw new x.RuntimeError(x.RuntimeError.NOT_INIT_ERR);}}
initialize((options.runtime_order||Runtime.order).split(/\s*,\s*/));},disconnectRuntime:function(){if(runtime&&--runtime.clients<=0){runtime.destroy();}
runtime=null;},getRuntime:function(){if(runtime&&runtime.uid){return runtime;}
return runtime=null;},exec:function(){if(runtime){return runtime.exec.apply(this,arguments);}
return 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...");}
var self=this,container,browseButton,defaults;if(Basic.inArray(Basic.typeOf(options),['string','node'])!==-1){options={browse_button:options};}
browseButton=Dom.get(options.browse_button);if(!browseButton){throw new x.DOMException(x.DOMException.NOT_FOUND_ERR);}
defaults={accept:[{title:I18n.translate('All Files'),extensions:'*'}],name:'file',multiple:false,required_caps:false,container:browseButton.parentNode||document.body};options=Basic.extend({},defaults,options);if(typeof(options.required_caps)==='string'){options.required_caps=Runtime.parseCaps(options.required_caps);}
if(typeof(options.accept)==='string'){options.accept=Mime.mimes2extList(options.accept);}
container=Dom.get(options.container);if(!container){container=document.body;}
if(Dom.getStyle(container,'position')==='static'){container.style.position='relative';}
container=browseButton=null;RuntimeClient.call(self);Basic.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'});}}
shimContainer=browseButton=null;});runtime.exec.call(self,'FileInput','init',options);});self.connectRuntime(Basic.extend({},options,{required_caps:{select_file:true}}));},disable:function(state){var runtime=this.getRuntime();if(runtime){runtime.exec.call(this,'FileInput','disable',Basic.typeOf(state)==='undefined'?true:state);}},refresh:function(){self.trigger("Refresh");},destroy:function(){var runtime=this.getRuntime();if(runtime){runtime.exec.call(this,'FileInput','destroy');this.disconnectRuntime();}
if(Basic.typeOf(this.files)==='array'){Basic.each(this.files,function(file){file.destroy();});}
this.files=null;this.unbindAll();}});this.handleEventProps(dispatches);}
FileInput.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);}
var b64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var o1,o2,o3,h1,h2,h3,h4,bits,i=0,ac=0,dec="",tmp_arr=[];if(!data){return data;}
data+='';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);}
if(typeof(window.btoa)==='function'){return window.btoa(data);}
var b64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var o1,o2,o3,h1,h2,h3,h4,bits,i=0,ac=0,enc="",tmp_arr=[];if(!data){return data;}
do{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;}
blob=new Blob(null,{type:type,size:end-start});blob.detach(data.substr(start,blob.size));return blob;}
RuntimeClient.call(this);if(ruid){this.connectRuntime(ruid);}
if(!blob){blob={};}else if(Basic.typeOf(blob)==='string'){blob={data:blob};}
Basic.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);}
return this.getRuntime().exec.call(this,'Blob','slice',this.getSource(),start,end,type);},getSource:function(){if(!blobpool[this.uid]){return null;}
return blobpool[this.uid];},detach:function(data){if(this.ruid){this.getRuntime().exec.call(this,'Blob','destroy');this.disconnectRuntime();this.ruid=null;}
data=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));}
this.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;}}
return 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={};}
Blob.apply(this,arguments);if(!this.type){this.type=Mime.getFileMime(file.name);}
var name;if(file.name){name=file.name.replace(/\\/g,'/');name=name.substr(name.lastIndexOf('/')+1);}else 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];}}
Basic.extend(this,{name:name||Basic.guid('file_'),relativePath:'',lastModifiedDate:file.lastModifiedDate||(new Date()).toLocaleString()});}
File.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...");}
var self=this,defaults;if(typeof(options)==='string'){options={drop_zone:options};}
defaults={accept:[{title:I18n.translate('All Files'),extensions:'*'}],required_caps:{drag_and_drop:true}};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';}
if(typeof(options.accept)==='string'){options.accept=Mime.mimes2extList(options.accept);}
RuntimeClient.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();}
this.files=null;this.unbindAll();}});this.handleEventProps(dispatches);}
FileDrop.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;}
this.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;}
if(!(blob instanceof Blob)){this.trigger('error',new x.DOMException(x.DOMException.NOT_FOUND_ERR));this.trigger('loadend');return;}
this.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;}
this.readyState=FileReader.DONE;this.trigger('load');this.trigger('loadend');}else{this.connectRuntime(blob.ruid);this.exec('FileReader','read',op,blob);}}}
FileReader.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];}}
if(!uri.scheme){if(!currentUrl||typeof(currentUrl)==='string'){currentUrl=parseUrl(currentUrl||document.location.href);}
uri.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(/\/?$/,'/');}}
uri.path=path+(uri.path||'');}
if(!uri.port){uri.port=ports[uri.scheme]||80;}
uri.port=parseInt(uri.port,10);if(!uri.path){uri.path="/";}
delete 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('/');}
if(typeof url==='string'){url=parseUrl(url);}
return 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();};}
RuntimeTarget.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);},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]);}
return 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=[];}});}
return 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_');}
XMLHttpRequestUpload.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:false,status:0,statusText:"",responseType:"",responseXML:null,responseText:null,response:null},_async=true,_url,_method,_headers={},_user,_password,_encoding=null,_mimeType=null,_sync_flag=false,_send_flag=false,_upload_events_flag=false,_upload_complete_flag=false,_error_flag=false,_same_origin_flag=false,_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);}
if(/[\u0100-\uffff]/.test(method)||Encode.utf8_encode(method)!==method){throw new x.DOMException(x.DOMException.SYNTAX_ERR);}
if(!!~Basic.inArray(method.toUpperCase(),['CONNECT','DELETE','GET','HEAD','OPTIONS','POST','PUT','TRACE','TRACK'])){_method=method.toUpperCase();}
if(!!~Basic.inArray(_method,['CONNECT','TRACE','TRACK'])){throw new x.DOMException(x.DOMException.SECURITY_ERR);}
url=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);}
_user=user||urlp.user;_password=password||urlp.pass;_async=async||true;if(_async===false&&(_p('timeout')||_p('withCredentials')||_p('responseType')!=="")){throw new x.DOMException(x.DOMException.INVALID_ACCESS_ERR);}
_sync_flag=!_async;_send_flag=false;_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);}
if(/[\u0100-\uffff]/.test(header)||Encode.utf8_encode(header)!==header){throw new x.DOMException(x.DOMException.SYNTAX_ERR);}
header=Basic.trim(header).toLowerCase();if(!!~Basic.inArray(header,uaHeaders)||/^(proxy\-|sec\-)/.test(header)){return false;}
if(!_headers[header]){_headers[header]=value;}else{_headers[header]+=', '+value;}
return true;},getAllResponseHeaders:function(){return _responseHeaders||'';},getResponseHeader:function(header){header=header.toLowerCase();if(_error_flag||!!~Basic.inArray(header,['set-cookie','set-cookie2'])){return null;}
if(_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])};}});}
if(_responseHeadersBag.hasOwnProperty(header)){return _responseHeadersBag[header].header+': '+_responseHeadersBag[header].value;}}
return 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);}
mime=Basic.trim(mime.toLowerCase());if(/;/.test(mime)&&(matches=mime.match(/^([^;]+)(?:;\scharset\=)?(.*)$/))){mime=matches[1];if(matches[2]){charset=matches[2];}}
if(!Mime.mimes[mime]){throw new x.DOMException(x.DOMException.SYNTAX_ERR);}
_finalMime=mime;_finalCharset=charset;},send:function(data,options){if(Basic.typeOf(options)==='string'){_options={ruid:options};}else if(!options){_options={};}else{_options=options;}
if(this.readyState!==XMLHttpRequest.OPENED||_send_flag){throw new x.DOMException(x.DOMException.INVALID_STATE_ERR);}
if(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);}
if(!this.withCredentials){this.withCredentials=(_options.required_caps&&_options.required_caps.send_browser_cookies)&&!_same_origin_flag;}
_upload_events_flag=(!_sync_flag&&this.upload.hasEventListener());_error_flag=false;_upload_complete_flag=!data;if(!_sync_flag){_send_flag=true;}
_doXHR.call(this,data);},abort:function(){_error_flag=true;_sync_flag=false;if(!~Basic.inArray(_p('readyState'),[XMLHttpRequest.UNSENT,XMLHttpRequest.OPENED,XMLHttpRequest.DONE])){_p('readyState',XMLHttpRequest.DONE);_send_flag=false;if(_xhr){_xhr.getRuntime().exec.call(_xhr,'XMLHttpRequest','abort',_upload_complete_flag);}else{throw new x.DOMException(x.DOMException.INVALID_STATE_ERR);}
_upload_complete_flag=true;}else{_p('readyState',XMLHttpRequest.UNSENT);}},destroy:function(){if(_xhr){if(Basic.typeOf(_xhr.destroy)==='function'){_xhr.destroy();}
_xhr=null;}
this.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;}
if(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;}}}
function _doXHR(data){var self=this;_start_time=new Date().getTime();_xhr=new RuntimeTarget();function loadEnd(){if(_xhr){_xhr.destroy();_xhr=null;}
self.dispatchEvent('loadend');self=null;}
function exec(runtime){_xhr.bind('LoadStart',function(e){_p('readyState',XMLHttpRequest.LOADING);self.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');}
self.dispatchEvent(e);});_xhr.bind('UploadProgress',function(e){if(_upload_events_flag){self.upload.dispatchEvent({type:'progress',lengthComputable:false,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'));}
_responseHeaders=runtime.exec.call(_xhr,'XMLHttpRequest','getAllResponseHeaders');self.dispatchEvent('readystatechange');if(_p('status')>0){if(_upload_events_flag){self.upload.dispatchEvent(e);}
self.dispatchEvent(e);}else{_error_flag=true;self.dispatchEvent('error');}
loadEnd();});_xhr.bind('Abort',function(e){self.dispatchEvent(e);loadEnd();});_xhr.bind('Error',function(e){_error_flag=true;_p('readyState',XMLHttpRequest.DONE);self.dispatchEvent('readystatechange');_upload_complete_flag=true;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);}
if(typeof(_options.required_caps)==='string'){_options.required_caps=Runtime.parseCaps(_options.required_caps);}
_options.required_caps=Basic.extend({},_options.required_caps,{return_response_type:self.responseType});if(data instanceof FormData){_options.required_caps.send_multipart=true;}
if(!Basic.isEmptyObj(_headers)){_options.required_caps.send_custom_headers=true;}
if(!_same_origin_flag){_options.required_caps.do_cors=true;}
if(_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);}}
function _reset(){_p('responseText',"");_p('responseXML',null);_p('response',null);_p('status',0);_p('statusText',"");_start_time=_timeoutset_time=null;}}
XMLHttpRequest.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);if((mod=options.chunk_size%3)){options.chunk_size+=3-mod;}
_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");}
_reset.call(self);},destroy:function(){this.unbindAll();_runtime=null;this.disconnectRuntime();_reset.call(this);}});function _reset(){_size=_pos=0;_data=this.result=null;}
function _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);}
function _transport(){var self=this,chunk,bytesLeft=_size-_pos;if(_chunk_size>bytesLeft){_chunk_size=bytesLeft;}
chunk=Encode.btoa(_data.substr(_pos,_chunk_size));_runtime.exec.call(self,'Transporter','receive',chunk,_size);}}
Transporter.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:false,preserveHeaders:true,resample:false};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]});}
try{if(!this.size){throw new x.DOMException(x.DOMException.INVALID_STATE_ERR);}
if(this.width>Image.MAX_RESIZE_WIDTH||this.height>Image.MAX_RESIZE_HEIGHT){throw new x.ImageError(x.ImageError.MAX_RESOLUTION_ERR);}
this.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,true,preserveHeaders);},getAsCanvas:function(){if(!Env.can('create_canvas')){throw new x.RuntimeError(x.RuntimeError.NOT_SUPPORTED_ERR);}
var 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);}
return 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);}
return 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;}}
var dataUrl=img.getAsDataURL(type,quality);if(!dataUrl){throw new x.ImageError(x.ImageError.WRONG_FORMAT);}
if(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:true},runtime_order:'flash,silverlight',container:el});}}
try{if(!(el=Dom.get(el))){throw new x.DOMException(x.DOMException.INVALID_NODE_TYPE_ERR);}
if(!this.size){throw new x.DOMException(x.DOMException.INVALID_STATE_ERR);}
if(this.width>Image.MAX_RESIZE_WIDTH||this.height>Image.MAX_RESIZE_HEIGHT){}
var 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,false);}
return imgCopy;}catch(ex){this.trigger('error',ex.code);}},destroy:function(){if(this.ruid){this.getRuntime().exec.call(this,'Image','destroy');this.disconnectRuntime();}
this.unbindAll();}});this.handleEventProps(dispatches);this.bind('Load Resize',function(){_updateInfo.call(this);},999);function _updateInfo(info){if(!info){info=this.exec('Image','getInfo');}
this.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;}}
function _load(src){var srcType=Basic.typeOf(src);try{if(src instanceof Image){if(!src.size){throw new x.DOMException(x.DOMException.INVALID_STATE_ERR);}
_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);}
_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);}}
function _loadFromImage(img,exact){var runtime=this.connectRuntime(img.ruid);this.ruid=runtime.uid;runtime.exec.call(this,'Image','loadFromImage',img,(Basic.typeOf(exact)==='undefined'?true:exact));}
function _loadFromBlob(blob,options){var self=this;self.name=blob.name||'';function exec(runtime){self.ruid=runtime.uid;runtime.exec.call(self,'Image','loadFromBlob',blob);}
if(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);}
this.connectRuntime(Basic.extend({required_caps:{access_image_binary:true,resize_image:true}},options));}else{exec(this.connectRuntime(blob.ruid));}}
function _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,true);};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);}}
Image.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 true;}
return 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]);Runtime.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);}
Runtime.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=false;}
function stopPropagation(){this.cancelBubble=true;}
var addEvent=function(obj,name,callback,key){var func,events;name=name.toLowerCase();if(obj.addEventListener){func=callback;obj.addEventListener(name,func,false);}else if(obj.attachEvent){func=function(){var evt=window.event;if(!evt.target){evt.target=evt.srcElement;}
evt.preventDefault=preventDefault;evt.stopPropagation=stopPropagation;callback(evt);};obj.attachEvent('on'+name,func);}
if(!obj[uid]){obj[uid]=Basic.guid();}
if(!eventhash.hasOwnProperty(obj[uid])){eventhash[obj[uid]]={};}
events=eventhash[obj[uid]];if(!events.hasOwnProperty(name)){events[name]=[];}
events[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;}
for(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,false);}else if(obj.detachEvent){obj.detachEvent('on'+name,type[i].func);}
type[i].orig=null;type[i].func=null;type.splice(i,1);if(callback!==undef){break;}}}
if(!type.length){delete eventhash[obj[uid]][name];}
if(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;}
Basic.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';}
zIndex=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();}
e.preventDefault();},comp.uid);}
top=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 true;}}
if(file.webkitRelativePath){relativePath='/'+file.webkitRelativePath.replace(/^\//,'');}
file=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(true);this.parentNode.replaceChild(clone,this);clone.onchange=onChange;}
if(comp.files.length){comp.trigger('change');}};comp.trigger({type:'ready',async:true});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='';}
shim.removeInstance(this.uid);_options=shimContainer=shim=null;}});}
return(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;}}
this.slice=function(){return new Blob(this.getRuntime().uid,w3cBlobSlice.apply(this,arguments));};}
return(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;}
e.preventDefault();e.dataTransfer.dropEffect='copy';},comp.uid);Events.addEvent(dropZone,'drop',function(e){if(!_hasFiles(e)){return;}
e.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 false;}
var 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;}
function _addFile(file,relativePath){if(_isAcceptable(file)){var fileObj=new File(_ruid,file);fileObj.relativePath=relativePath||'';_files.push(fileObj);}}
function _extractExts(accept){var exts=[];for(var i=0;i<accept.length;i++){[].push.apply(exts,accept[i].extensions.split(/\s*,\s*/));}
return Basic.inArray('*',exts)===-1?exts:[];}
function _isAcceptable(file){if(!_allowedExts.length){return true;}
var ext=Mime.getFileExtension(file.name);return!ext||Basic.inArray(ext,_allowedExts)!==-1;}
function _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();}}
function _readEntries(entries,cb){var queue=[];Basic.each(entries,function(entry){queue.push(function(cbcb){_readEntry(entry,cbcb);});});Basic.inSeries(queue,function(){cb();});}
function _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();}}
function _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);}
getEntries(function(){_readEntries(entries,cb);});}}
return(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=false;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=false;_fr[op](blob.getSource());}else if(op==='readAsBinaryString'){_convertToBinary=true;_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));}}
return(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=false;_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=true;}
data=data.getSource();}else if(data instanceof FormData){if(data.hasBlob()){if(data.getBlob().isDetached()){data=_prepareMultipart.call(target,data);mustSendAsBinary=true;}else if((isGecko2_5_6||isAndroidBrowser)&&Basic.typeOf(data.getBlob().getSource())==='blob'&&window.FileReader){_preloadAndSend.call(target,meta,data);return;}}
if(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;}}
if(_xhr.upload){if(meta.withCredentials){_xhr.withCredentials=true;}
_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;}
if(_xhr.responseText){loaded=_xhr.responseText.length;}}catch(ex){total=loaded=0;}
target.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');}
break;}};}
if(!Basic.isEmptyObj(meta.headers)){Basic.each(meta.headers,function(value,header){_xhr.setRequestHeader(header,value);});}
if(""!==meta.responseType&&'responseType'in _xhr){if('json'===meta.responseType&&!Env.can('return_response_type','json')){_xhr.responseType='text';}else{_xhr.responseType=meta.responseType;}}
if(!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);}
_xhr.send(ui8a.buffer);}());}}
target.trigger('loadstart');},getStatus:function(){try{if(_xhr){return _xhr.status;}}catch(ex){}
return 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];}}
file.name=_filename;if(!file.type){file.type=Mime.getFileMime(_filename);}
return file;case'json':if(!Env.can('return_response_type','json')){return _xhr.status===200&&!!window.JSON?JSON.parse(_xhr.responseText):null;}
return _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){}
return'';},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);}
function _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){}}})();}}
function _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=false;rXML.validateOnParse=false;rXML.loadXML(rText);}
if(rXML){if((Env.browser==='IE'&&rXML.parseError!==0)||!rXML.documentElement||rXML.documentElement.tagName==="parsererror"){return null;}}
return rXML;}
function _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);}
_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;}}
return(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);}}
Basic.extend(BinaryReader.prototype,{littleEndian:false,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.");}
mv=this.littleEndian?0:-8*(size-1);for(i=0,sum=0;i<size;i++){sum|=(this.readByteAt(idx+i)<<Math.abs(mv+i*8));}
return 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.");}
mv=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('');},asArray:function(type,idx,count){var values=[];for(var i=0;i<count;i++){values[i]=this[type](idx+i);}
return 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();}
if(value instanceof ArrayBuffer){var arr=new Uint8Array(this.length()-size+value.byteLength);if(idx>0){arr.set(new Uint8Array(data.slice(0,idx)),0);}
arr.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;}
default:return data;}},length:function(){return data?data.byteLength:0;},clear:function(){_dv=data=null;}});}
function 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);}}
return 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);}
idx=2;while(idx<=_br.length()){marker=_br.SHORT(idx);if(marker>=0xFFD0&&marker<=0xFFD7){idx+=2;continue;}
if(marker===0xFFDA||marker===0xFFD9){break;}
length=_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)});}
idx+=length;}
_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;}
data=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,'');}
data=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);}}
return array;},set:function(name,segment){var array=[],i,ii,max;if(typeof(segment)==='string'){array.push(segment);}else{array=segment;}
for(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++;}
if(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:'Partial',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;}
if(Exif.ExifVersion&&Basic.typeOf(Exif.ExifVersion)==='array'){for(var i=0,exifVersion='';i<Exif.ExifVersion.length;i++){exifVersion+=String.fromCharCode(Exif.ExifVersion[i]);}
Exif.ExifVersion=exifVersion;}}
return Exif;},GPS:function(){var GPS=null;if(offsets.gpsIFD){try{GPS=extractTags.call(this,offsets.gpsIFD,tags.gps);}catch(ex){return null;}
if(GPS.GPSVersionID&&Basic.typeOf(GPS.GPSVersionID)==='array'){GPS.GPSVersionID=GPS.GPSVersionID.join('.');}}
return 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){}}
return null;},setExif:function(tag,value){if(tag!=='PixelXDimension'&&tag!=='PixelYDimension'){return false;}
return 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);}
this.littleEndian=(this.SHORT(idx)==0x4949);if(this.SHORT(idx+=2)!==0x002A){throw new x.ImageError(x.ImageError.INVALID_META_ERR);}
offsets.IFD0=offsets.tiffHeader+this.LONG(idx+=2);Tiff=extractTags.call(this,offsets.IFD0,tags.tiff);if('ExifIFDPointer'in Tiff){offsets.exifIFD=offsets.tiffHeader+Tiff.ExifIFDPointer;delete Tiff.ExifIFDPointer;}
if('GPSInfoIFDPointer'in Tiff){offsets.gpsIFD=offsets.tiffHeader+Tiff.GPSInfoIFDPointer;delete Tiff.GPSInfoIFDPointer;}
if(Basic.isEmptyObj(Tiff)){Tiff=null;}
var IFD1Offset=this.LONG(offsets.IFD0+this.SHORT(offsets.IFD0)*12+2);if(IFD1Offset){offsets.IFD1=offsets.tiffHeader+IFD1Offset;}
function 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;}
type=types[data.SHORT(offset+=2)];count=data.LONG(offset+=2);size=sizes[type];if(!size){throw new x.ImageError(x.ImageError.INVALID_META_ERR);}
offset+=4;if(size*count>4){offset=data.LONG(offset)+offsets.tiffHeader;}
if(offset+size*count>=this.length()){throw new x.ImageError(x.ImageError.INVALID_META_ERR);}
if(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;}}}
return hash;}
function 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;}}}
offset=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;}}
if(!valueOffset){return false;}
try{this.write(valueOffset,value,4);}catch(ex){return false;}
return true;}}
ExifParser.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);}
_hm=new JPEGHeaders(data);try{_ep=new ExifParser(_hm.get('app1')[0]);}catch(ex){}
_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 false;}
if(Basic.typeOf(tag)==='object'){Basic.each(tag,function(value,tag){_ep.setExif(tag,value);});}else{_ep.setExif(tag,value);}
_hm.set('app1',_ep.SEGMENT());},writeHeaders:function(){if(!arguments.length){return _hm.restore(data);}
return _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()};}
function _getDimensions(br){var idx=0,marker,length;if(!br){br=_br;}
while(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)};}
length=br.SHORT(idx+=2);idx+=length-2;}
return null;}
function _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;}}
return null;}
function _purge(){if(!_ep||!_hm||!_br){return;}
_ep.clear();_hm.purge();_br.clear();_info=_hm=_ep=_br=null;}}
return 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)};}
return null;}
function _purge(){if(!_br){return;}
_br.clear();data=_info=_hm=_ep=_br=null;}
_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};}}
return 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){}}
throw 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.naturalWidth,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;}
var 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;}
sy+=d;}
tmpCanvas=tmpCtx=null;}
function 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 false;}}
function 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;}
py=(ey+sy)>>1;}
canvas=null;var ratio=(py / ih);return(ratio===0)?1:ratio;}
return{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=false,_preserveHeaders=true;Basic.extend(this,{loadFromBlob:function(blob){var comp=this,I=comp.getRuntime(),asBinary=arguments.length>1?arguments[1]:true;if(!I.can('access_binary')){throw new x.RuntimeError(x.RuntimeError.NOT_SUPPORTED_ERR);}
_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);}
_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);}
info={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});}
return info;},downsize:function(){_downsize.apply(this,arguments);},getAsCanvas:function(){if(_canvas){_canvas.id=this.uid+'_canvas';}
return _canvas;},getAsBlob:function(type,quality){if(type!==this.type){_downsize.call(this,this.width,this.height,false);}
return 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;}
if('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));}
return _binStr;}
if('image/jpeg'!==type){_binStr=_toBinary(me.getAsDataURL(type,quality));}else{var dataUrl;if(!quality){quality=90;}
try{dataUrl=_canvas.toDataURL('image/jpeg',quality/100);}catch(ex){dataUrl=_canvas.toDataURL('image/jpeg');}
_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});}
_binStr=_imgInfo.writeHeaders(_binStr);}
_imgInfo.purge();_imgInfo=null;}}
_modified=false;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);}
return _canvas||_img;}
function _toBinary(str){return Encode.atob(str.substring(str.indexOf('base64,')+7));}
function _toDataUrl(str,type){return'data:'+(type||'')+';base64,'+Encode.btoa(str);}
function _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);}
function _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());}}
function _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;}
img=_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);}
if(scale>1&&!crop&&preserveHeaders){this.trigger('Resize');return;}
if(!_canvas){_canvas=document.createElement("canvas");}
destWidth=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);}
if(destHeight>height){y=Math.round((destHeight-height)/ 2);}}else{_canvas.width=destWidth;_canvas.height=destHeight;}
if(!_preserveHeaders){_rotateToOrientaion(_canvas.width,_canvas.height,orientation);}
_drawToCanvas.call(this,img,_canvas,-x,-y,destWidth,destHeight);this.width=_canvas.width;this.height=_canvas.height;_modified=true;self.trigger('Resize');}
function _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);}}
function _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;}
var 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;}}
function _purge(){if(_imgInfo){_imgInfo.purge();_imgInfo=null;}
_binStr=_img=_canvas=_blob=null;_modified=false;}}
return(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:false,display_media:Test(extensions.Image&&(Env.can('create_canvas')||Env.can('use_data_uri_over32kb'))),do_cors:false,drag_and_drop:false,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:false,return_response_headers:false,return_response_type:function(responseType){if(responseType==='json'&&!!window.JSON){return true;}
return!!~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:false,send_binary_string:false,send_custom_headers:false,send_multipart:true,slice_blob:false,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);}
Runtime.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%'});}}
form=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%'});input=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)"});}
input.onchange=function(){var file;if(!this.value){return;}
if(this.files){file=this.files[0];if(file.size===0){form.parentNode.removeChild(form);return;}}else{file={name:this.value};}
file=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();}
e.preventDefault();},comp.uid);}
_uid=uid;shimContainer=currForm=browseButton=null;}
Basic.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';}
zIndex=parseInt(Dom.getStyle(browseButton,'z-index'),10)||1;browseButton.style.zIndex=zIndex;shimContainer.style.zIndex=zIndex-1;}
top=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:true});},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='';}
shim.removeInstance(this.uid);_uid=_mimes=_options=shimContainer=shim=null;}});}
return(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=false;if(!_iframe){return;}
uid=_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=true;break;}}
inputs=[];if(!hasFile){form.parentNode.removeChild(form);}
form=null;}
setTimeout(function(){Events.removeEvent(_iframe,'load',target.uid);if(_iframe.parentNode){_iframe.parentNode.removeChild(_iframe);}
var shimContainer=target.getRuntime().getShimContainer();if(!shimContainer.children.length){shimContainer.parentNode.removeChild(shimContainer);}
shimContainer=_iframe=null;cb();},1);}
Basic.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:&quot;&quot;" style="display:none"></iframe>';_iframe=temp.firstChild;container.appendChild(_iframe);Events.addEvent(_iframe,'load',function(){var el;try{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;}}
cleanup.call(target,function(){target.trigger('load');});},target.uid);}
if(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);}
form.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);}}});}
form.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){}
return _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";}}
cleanup.call(this,function(){target.dispatchEvent('abort');});}});}
return(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;}
return o;})(this);