Created
July 8, 2013 15:39
-
-
Save imbcmdth/5949924 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Script# Core Runtime | |
| // More information at http://projects.nikhilk.net/ScriptSharp | |
| // | |
| window.isUndefined=function(o){return(o===undefined);}; | |
| window.isNull=function(o){return(o===null);}; | |
| window.isNullOrUndefined=function(o){return(o===null)||(o===undefined);}; | |
| window.__scriptsharp='0.5.5.0'; | |
| document.getElementsBySelector=function(cssSelector,root){ | |
| var all=root?root.getElementsByTagName('*'):document.getElementsByTagName('*'); | |
| var matches=[]; | |
| var styleSheet=document.getElementsBySelector.styleSheet; | |
| if(!styleSheet){ | |
| var styleSheetNode=document.createElement('style'); | |
| styleSheetNode.type='text/css'; | |
| document.getElementsByTagName('head')[0].appendChild(styleSheetNode); | |
| styleSheet=styleSheetNode.styleSheet||styleSheetNode.sheet; | |
| document.getElementsBySelector.styleSheet=styleSheet; | |
| } | |
| if(window.navigator.userAgent.indexOf('MSIE')>=0){ | |
| styleSheet.addRule(cssSelector,'ssCssMatch:true',0); | |
| for(var i=all.length-1;i>=0;i--){ | |
| var element=all[i]; | |
| if(element.currentStyle.ssCssMatch){ | |
| matches[matches.length]=element; | |
| } | |
| } | |
| styleSheet.removeRule(0); | |
| } else{ | |
| var matchValue=document.getElementsBySelector.matchValue; | |
| if(!matchValue){ | |
| matchValue=(window.navigator.userAgent.indexOf('Opera')>=0)?'"ssCssMatch"':'ssCssMatch 1'; | |
| document.getElementsBySelector.matchValue=matchValue; | |
| } | |
| styleSheet.insertRule(cssSelector+' { counter-increment: ssCssMatch }',0); | |
| var docView=document.defaultView; | |
| for(var i=all.length-1;i>=0;i--){ | |
| var element=all[i]; | |
| if(docView.getComputedStyle(element,null).counterIncrement===matchValue){ | |
| matches[matches.length]=element; | |
| } | |
| } | |
| styleSheet.deleteRule(0); | |
| } | |
| if(matches.length>1){matches.reverse();} | |
| return matches; | |
| }; | |
| Object.__typeName='Object'; | |
| Object.__baseType=null; | |
| Object.parse=function(s){return eval(s);}; | |
| Object.getKeyCount=function(d){var count=0;for(var n in d){count++;} return count;}; | |
| Object.clearKeys=function(d){for(var n in d){delete d[n];}}; | |
| Object.keyExists=function(d,key){return d[key]!==undefined;}; | |
| Function.parse=function(s){if(!Function._parseCache){Function._parseCache={};} var fn=Function._parseCache[s];if(!fn){try{eval('fn = '+s);if(typeof(fn)!='function'){fn=null;} else{Function._parseCache[s]=fn;}} catch(ex){}} return fn;}; | |
| Function.prototype.invoke=function(){this.apply(null,arguments);}; | |
| Boolean.__typeName='Boolean'; | |
| Boolean.parse=function(s){return(s.toLowerCase()=='true');}; | |
| Number.__typeName='Number'; | |
| Number.parse=function(s){if(!s||!s.length){return 0;} if((s.indexOf('.')>=0)||(s.indexOf('e')>=0)||s.endsWith('f')||s.endsWith('F')){return parseFloat(s);} return parseInt(s);}; | |
| Number.prototype.format=function(format,useLocale){if(isNullOrUndefined(format)||(format.length==0)||(format=='i')){if(useLocale){return this.toLocaleString();} else{return this.toString();}} return this._netFormat(format,useLocale);}; | |
| Number._commaFormat=function(number,groups,decimal,comma){var decimalPart=null;var decimalIndex=number.indexOf(decimal);if(decimalIndex>0){decimalPart=number.substr(decimalIndex);number=number.substr(0,decimalIndex);} var negative=number.startsWith('-');if(negative){number=number.substr(1);} var groupIndex=0;var groupSize=groups[groupIndex];if(number.length<groupSize){return decimalPart?number+decimalPart:number;} var index=number.length;var s='';var done=false;while(!done){var length=groupSize;var startIndex=index-length;if(startIndex<0){groupSize+=startIndex;length+=startIndex;startIndex=0;done=true;} if(!length){break;} var part=number.substr(startIndex,length);if(s.length){s=part+comma+s;} else{s=part;} index-=length;if(groupIndex<groups.length-1){groupIndex++;groupSize=groups[groupIndex];}} if(negative){s='-'+s;} return decimalPart?s+decimalPart:s;}; | |
| Number.prototype._netFormat=function(format,useLocale){var nf=useLocale?CultureInfo.Current.numberFormat:CultureInfo.Neutral.numberFormat;var s='';var precision=-1;if(format.length>1){precision=parseInt(format.substr(1));} var fs=format.charAt(0);switch(fs){case'd':case'D':s=parseInt(Math.abs(this)).toString();if(precision!=-1){s=s.padLeft(precision,'0');} if(this<0){s='-'+s;} break;case'x':case'X':s=parseInt(Math.abs(this)).toString(16);if(fs=='X'){s=s.toUpperCase();} if(precision!=-1){s=s.padLeft(precision,'0');} break;case'e':case'E':if(precision==-1){s=this.toExponential();} else{s=this.toExponential(precision);} if(fs=='E'){s=s.toUpperCase();} break;case'f':case'F':case'n':case'N':if(precision==-1){precision=nf.numberDecimalDigits;} s=this.toFixed(precision).toString();if(precision&&(nf.numberDecimalSeparator!='.')){var index=s.indexOf('.');s=s.substr(0,index)+nf.numberDecimalSeparator+s.substr(index+1);} if((fs=='n')||(fs=='N')){s=Number._commaFormat(s,nf.numberGroupSizes,nf.numberDecimalSeparator,nf.numberGroupSeparator);} break;case'c':case'C':if(precision==-1){precision=nf.currencyDecimalDigits;} s=Math.abs(this).toFixed(precision).toString();if(precision&&(nf.currencyDecimalSeparator!='.')){var index=s.indexOf('.');s=s.substr(0,index)+nf.currencyDecimalSeparator+s.substr(index+1);} s=Number._commaFormat(s,nf.currencyGroupSizes,nf.currencyDecimalSeparator,nf.currencyGroupSeparator);if(this<0){s=String.format(nf.currencyNegativePattern,s);} else{s=String.format(nf.currencyPositivePattern,s);} break;case'p':case'P':if(precision==-1){precision=nf.percentDecimalDigits;} s=(Math.abs(this)*100.0).toFixed(precision).toString();if(precision&&(nf.percentDecimalSeparator!='.')){var index=s.indexOf('.');s=s.substr(0,index)+nf.percentDecimalSeparator+s.substr(index+1);} s=Number._commaFormat(s,nf.percentGroupSizes,nf.percentDecimalSeparator,nf.percentGroupSeparator);if(this<0){s=String.format(nf.percentNegativePattern,s);} else{s=String.format(nf.percentPositivePattern,s);} break;} return s;}; | |
| Math.truncate=function(n){return(n>=0)?Math.floor(n):Math.ceil(n);}; | |
| String.__typeName='String'; | |
| String.Empty=''; | |
| String.compare=function(s1,s2,ignoreCase){if(ignoreCase){if(s1){s1=s1.toUpperCase();} if(s2){s2=s2.toUpperCase();}} s1=s1||'';s2=s2||'';if(s1==s2){return 0;} if(s1<s2){return-1;} return 1;}; | |
| String.prototype.compareTo=function(s,ignoreCase){return String.compare(this,s,ignoreCase);}; | |
| String.prototype.endsWith=function(suffix){if(!suffix.length){return true;} if(suffix.length>this.length){return false;} return(this.substr(this.length-suffix.length)==suffix);}; | |
| String.equals=function(s1,s2,ignoreCase){return String.compare(s1,s2,ignoreCase)==0;}; | |
| String._format=function(format,values,useLocale){if(!String._formatRE){String._formatRE=/(\{[^\}^\{]+\})/g;} return format.replace(String._formatRE,function(str,m){var index=parseInt(m.substr(1));var value=values[index+1];if(isNullOrUndefined(value)){return'';} if(value.format){var formatSpec=null;var formatIndex=m.indexOf(':');if(formatIndex>0){formatSpec=m.substring(formatIndex+1,m.length-1);} return value.format.call(value,formatSpec,useLocale);} else{if(useLocale){return value.toLocaleString();} return value.toString();}});}; | |
| String.format=function(format){return String._format(format,arguments,false);}; | |
| String.fromChar=function(ch,count){var s=ch;for(var i=1;i<count;i++){s+=ch;} return s;}; | |
| String.prototype.htmlDecode=function(){if(!String._htmlDecRE){String._htmlDecMap={'&':'&','<':'<','>':'>','"':'"'};String._htmlDecRE=/(&|<|>|")/gi;} var s=this;s=s.replace(String._htmlDecRE,function(str,m){return String._htmlDecMap[m];});return s;}; | |
| String.prototype.htmlEncode=function(){if(!String._htmlEncRE){String._htmlEncMap={'&':'&','<':'<','>':'>','"':'"'};String._htmlEncRE=/([&<>"])/g;} var s=this;if(String._htmlEncRE.test(s)){s=s.replace(String._htmlEncRE,function(str,m){return String._htmlEncMap[m];});} return s;}; | |
| String.prototype.indexOfAny=function(chars,startIndex,count){var length=this.length;if(!length){return-1;} startIndex=startIndex||0;count=count||length;var endIndex=startIndex+count-1;if(endIndex>=length){endIndex=length-1;} for(var i=startIndex;i<=endIndex;i++){if(chars.indexOf(this.charAt(i))>=0){return i;}} return-1;}; | |
| String.prototype.insert=function(index,value){if(!value){return this;} if(!index){return value+this;} var s1=this.substr(0,index);var s2=this.substr(index);return s1+value+s2;}; | |
| String.isNullOrEmpty=function(s){return!s||!s.length;}; | |
| String.prototype.lastIndexOfAny=function(chars,startIndex,count){var length=this.length;if(!length){return-1;} startIndex=startIndex||length-1;count=count||length;var endIndex=startIndex-count+1;if(endIndex<0){endIndex=0;} for(var i=startIndex;i>=endIndex;i--){if(chars.indexOf(this.charAt(i))>=0){return i;}} return-1;}; | |
| String.localeFormat=function(format){return String._format(format,arguments,true);}; | |
| String.prototype.padLeft=function(totalWidth,ch){if(this.length<totalWidth){ch=ch||' ';return String.fromChar(ch,totalWidth-this.length)+this;} return this;}; | |
| String.prototype.padRight=function(totalWidth,ch){if(this.length<totalWidth){ch=ch||' ';return this+String.fromChar(ch,totalWidth-this.length);} return this;}; | |
| String.prototype.quote=function(){if(!String._quoteMap){String._quoteMap={'\\':'\\\\','\'':'\\\'','"':'\\"','\r':'\\r','\n':'\\n','\t':'\\t','\f':'\\f','\b':'\\b'};} if(!String._quoteRE){String._quoteRE=new RegExp("([\'\"\\\\\x00-\x1F\x7F-\uFFFF])","g");} else{String._quoteRE.lastIndex=0;} var s=this;if(String._quoteRE.test(s)){s=this.replace(String._quoteRE,function(str,m){var c=String._quoteMap[m];if(c){return c;} c=m.charCodeAt(0);return'\\u'+c.toString(16).toUpperCase().padLeft(4,'0');});} return'"'+s+'"';}; | |
| String.prototype.remove=function(index,count){if(!count||((index+count)>this.length)){return this.substr(0,index);} return this.substr(0,index)+this.substr(index+count);}; | |
| String.prototype._replace=String.prototype.replace;String.prototype.replace=function(oldValue,newValue){if(oldValue.constructor==String){newValue=newValue||'';return this.split(oldValue).join(newValue);} return String.prototype._replace.call(this,oldValue,newValue);}; | |
| String.prototype.startsWith=function(prefix){if(!prefix.length){return true;} if(prefix.length>this.length){return false;} return(this.substr(0,prefix.length)==prefix);}; | |
| String.prototype.trim=function(){return this.trimEnd().trimStart();}; | |
| String.prototype.trimEnd=function(){return this.replace(/\s*$/,'');}; | |
| String.prototype.trimStart=function(){return this.replace(/^\s*/,'');}; | |
| String.prototype.unquote=function(){return eval('('+this+')');}; | |
| Array.__typeName='Array'; | |
| Array.prototype.add=function(item){this[this.length]=item;}; | |
| Array.prototype.addRange=function(items){if(!items){return;} var length=items.length;for(var index=0;index<length;index++){this[this.length]=items[index];}}; | |
| Array.prototype.aggregate=function(seed,callback){var length=this.length;for(var index=0;index<length;index++){seed=callback(seed,this[index],index,this);} return seed;}; | |
| Array.prototype.clear=function(){if(this.length>0){this.splice(0,this.length);}}; | |
| Array.prototype.clone=function(){var length=this.length;var array=new Array(length);for(var index=0;index<length;index++){array[index]=this[index];} return array;}; | |
| Array.prototype.contains=function(item){var index=this.indexOf(item);return(index>=0);}; | |
| Array.prototype.dequeue=function(){return this.shift();}; | |
| Array.prototype.enqueue=function(item){this._queue=true;this.push(item);}; | |
| Array.prototype.peek=function(){if(this.length){var index=this._queue?0:this.length-1;return this[index];} return null;}; | |
| if(!Array.prototype.every){ | |
| Array.prototype.every=function(callback){ | |
| for(var i=this.length-1;i>=0;i--){ | |
| if(!callback(this[i],i,this)){ | |
| return false; | |
| } | |
| } | |
| return true; | |
| }; | |
| } | |
| Array.prototype.extract=function(index,count){if(!count){return this.slice(index);} return this.slice(index,index+count);}; | |
| if(!Array.prototype.filter){ | |
| Array.prototype.filter=function(callback){ | |
| var filtered=[]; | |
| for(var i=0;i<this.length;i++){ | |
| if(callback(this[i],i,this)){ | |
| filtered.add(this[i]); | |
| } | |
| } | |
| return filtered; | |
| }; | |
| } | |
| if(!Array.prototype.forEach){ | |
| Array.prototype.forEach=function(callback){ | |
| for(var i=0;i<this.length;i++){ | |
| callback(this[i],i,this); | |
| } | |
| }; | |
| } | |
| Array.prototype.groupBy=function(callback){var length=this.length;var groups=[];var keys={};for(var index=0;index<length;index++){var key=callback(this[index],index);if(String.isNullOrEmpty(key)){continue;} var items=keys[key];if(!items){items=[];items.key=key;keys[key]=items;groups.add(items);} items.add(this[index]);} return groups;}; | |
| Array.prototype.index=function(callback){var length=this.length;var items={};for(var index=0;index<length;index++){var key=callback(this[index],index);if(String.isNullOrEmpty(key)){continue;} items[key]=this[index];} return items;}; | |
| Array.prototype.indexOf=function(item){var length=this.length;if(length){for(var index=0;index<length;index++){if(this[index]===item){return index;}}} return-1;}; | |
| Array.prototype.insert=function(index,item){this.splice(index,0,item);}; | |
| Array.prototype.insertRange=function(index,items){this.splice(index,0,items);}; | |
| if(!Array.prototype.map){ | |
| Array.prototype.map=function(callback){ | |
| var mapped=new Array(this.length); | |
| for(var i=this.length-1;i>=0;i--){ | |
| mapped[i]=callback(this[i],i,this); | |
| } | |
| return mapped; | |
| }; | |
| } | |
| Array.parse=function(s){return eval('('+s+')');}; | |
| Array.prototype.remove=function(item){var index=this.indexOf(item);if(index>=0){this.splice(index,1);return true;} return false;}; | |
| Array.prototype.removeAt=function(index){return this.splice(index,1)[0];}; | |
| Array.prototype.removeRange=function(index,count){return this.splice(index,count);}; | |
| if(!Array.prototype.some){ | |
| Array.prototype.some=function(callback){ | |
| for(var i=this.length-1;i>=0;i--){ | |
| if(callback(this[i],i,this)){ | |
| return true; | |
| } | |
| } | |
| return false; | |
| }; | |
| } | |
| RegExp.__typeName='RegExp'; | |
| RegExp.parse=function(s){ | |
| if(s.startsWith('/')){ | |
| var endSlashIndex=s.lastIndexOf('/'); | |
| if(endSlashIndex>1){ | |
| var expression=s.substring(1,endSlashIndex); | |
| var flags=s.substr(endSlashIndex+1); | |
| return new RegExp(expression,flags); | |
| } | |
| } | |
| return null; | |
| }; | |
| Date.__typeName='Date'; | |
| Date.get_now=function(){return new Date();}; | |
| Date.get_today=function(){var d=new Date();return new Date(d.getFullYear(),d.getMonth(),d.getDate());}; | |
| Date.prototype.format=function(format,useLocale){if(isNullOrUndefined(format)||(format.length==0)||(format=='i')){if(useLocale){return this.toLocaleString();} else{return this.toString();}} if(format=='id'){if(useLocale){return this.toLocaleDateString();} else{return this.toDateString();}} if(format=='it'){if(useLocale){return this.toLocaleTimeString();} else{return this.toTimeString();}} return this._netFormat(format,useLocale);}; | |
| Date.prototype._netFormat=function(format,useLocale){var dtf=useLocale?CultureInfo.Current.dateFormat:CultureInfo.Neutral.dateFormat;var useUTC=false;if(format.length==1){switch(format){case'f':format=dtf.longDatePattern+' '+dtf.shortTimePattern;case'F':format=dtf.dateTimePattern;break;case'd':format=dtf.shortDatePattern;break;case'D':format=dtf.longDatePattern;break;case't':format=dtf.shortTimePattern;break;case'T':format=dtf.longTimePattern;break;case'g':format=dtf.shortDatePattern+' '+dtf.shortTimePattern;break;case'G':format=dtf.shortDatePattern+' '+dtf.longTimePattern;break;case'R':case'r':format=dtf.gmtDateTimePattern;useUTC=true;break;case'u':format=dtf.universalDateTimePattern;useUTC=true;break;case'U':format=dtf.dateTimePattern;useUTC=true;break;case's':format=dtf.sortableDateTimePattern;break;}} if(format.charAt(0)=='%'){format=format.substr(1);} if(!Date._formatRE){Date._formatRE=/dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|zzz|zz|z/g;} var re=Date._formatRE;var sb=new StringBuilder();var dt=this;if(useUTC){dt=new Date(Date.UTC(dt.getUTCFullYear(),dt.getUTCMonth(),dt.getUTCDate(),dt.getUTCHours(),dt.getUTCMinutes(),dt.getUTCSeconds(),dt.getUTCMilliseconds()));} re.lastIndex=0;while(true){var index=re.lastIndex;var match=re.exec(format);sb.append(format.slice(index,match?match.index:format.length));if(!match){break;} var fs=match[0];var part=fs;switch(fs){case'dddd':part=dtf.dayNames[dt.getDay()];break;case'ddd':part=dtf.shortDayNames[dt.getDay()];break;case'dd':part=dt.getDate().toString().padLeft(2,'0');break;case'd':part=dt.getDate();break;case'MMMM':part=dtf.monthNames[dt.getMonth()];break;case'MMM':part=dtf.shortMonthNames[dt.getMonth()];break;case'MM':part=(dt.getMonth()+1).toString().padLeft(2,'0');break;case'M':part=(dt.getMonth()+1);break;case'yyyy':part=dt.getFullYear();break;case'yy':part=(dt.getFullYear()%100).toString().padLeft(2,'0');break;case'y':part=(dt.getFullYear()%100);break;case'h':case'hh':part=dt.getHours()%12;if(!part){part='12';} else if(fs=='hh'){part=part.toString().padLeft(2,'0');} break;case'HH':part=dt.getHours().toString().padLeft(2,'0');break;case'H':part=dt.getHours();break;case'mm':part=dt.getMinutes().toString().padLeft(2,'0');break;case'm':part=dt.getMinutes();break;case'ss':part=dt.getSeconds().toString().padLeft(2,'0');break;case's':part=dt.getSeconds();break;case't':case'tt':part=(dt.getHours()<12)?dtf.amDesignator:dtf.pmDesignator;if(fs=='t'){part=part.charAt(0);} break;case'fff':part=dt.getMilliseconds().toString().padLeft(3,'0');break;case'ff':part=dt.getMilliseconds().toString().padLeft(3).substr(0,2);break;case'f':part=dt.getMilliseconds().toString().padLeft(3).charAt(0);break;case'z':part=dt.getTimezoneOffset()/60;part=((part>=0)?'-':'+')+Math.floor(Math.abs(part));break;case'zz':case'zzz':part=dt.getTimezoneOffset()/60;part=((part>=0)?'-':'+')+Math.floor(Math.abs(part)).toString().padLeft(2,'0');if(fs=='zzz'){part+=dtf.timeSeparator+Math.abs(dt.getTimezoneOffset()%60).toString().padLeft(2,'0');} break;} sb.append(part);} return sb.toString();}; | |
| Date._parse=Date.parse;Date.parse=function(s){return new Date(Date._parse(s));}; | |
| Error.__typeName='Error'; | |
| Error.create=function(message,userData,innerException){var e=new Error(message);if(userData){e.userData=userData;} if(innerException){e.innerException=innerException;} return e;}; | |
| if(!Debug._fail){ | |
| Debug._fail=function(message){ | |
| Debug.writeln(message); | |
| eval('debugger;'); | |
| }; | |
| } | |
| Debug.assert=function(condition,message){if(!condition){message='Assert failed: '+message;if(confirm(message+'\r\n\r\nBreak into debugger?')){Debug._fail(message);}}}; | |
| Debug._dumpCore=function(sb,object,name,indentation,dumpedObjects){if(object===null){sb.appendLine(indentation+name+': null');return;} switch(typeof(object)){case'undefined':sb.appendLine(indentation+name+': undefined');break;case'number':case'string':case'boolean':sb.appendLine(indentation+name+': '+object);break;default:if(Date.isInstance(object)||RegExp.isInstance(object)){sb.appendLine(indentation+name+': '+object);break;} if(dumpedObjects.contains(object)){sb.appendLine(indentation+name+': ...');break;} dumpedObjects.add(object);var type=Type.getInstanceType(object);var typeName=type.get_fullName();var recursiveIndentation=indentation+' ';if(IArray.isInstance(object)){sb.appendLine(indentation+name+': {'+typeName+'}');var length=object.getLength();for(var i=0;i<length;i++){Debug._dumpCore(sb,object.getItem(i),'['+i+']',recursiveIndentation,dumpedObjects);}} else{if(object.tagName){sb.appendLine(indentation+name+': <'+object.tagName+'>');var attributes=object.attributes;for(var i=0;i<attributes.length;i++){var attrValue=attributes[i].nodeValue;if(attrValue){Debug._dumpCore(sb,attrValue,attributes[i].nodeName,recursiveIndentation,dumpedObjects);}}} else{sb.appendLine(indentation+name+': {'+typeName+'}');for(var field in object){var v=object[field];if(!Function.isInstance(v)){Debug._dumpCore(sb,v,field,recursiveIndentation,dumpedObjects);}}}} dumpedObjects.remove(object);break;}}; | |
| Debug.dump=function(object,name){if((!name||!name.length)&&(object!==null)){name=Type.getInstanceType(object).get_fullName();} if(!name||!name.length){return;} var sb=new StringBuilder();Debug._dumpCore(sb,object,name,'',[]);Debug.writeLine(sb.toString());}; | |
| Debug.fail=function(message){Debug._fail(message);}; | |
| Debug.inspect=function(object,name){var dumped=false;if(window.debugService){dumped=window.debugService.inspect(name,object);} if(!dumped){Debug.dump(object,name);}}; | |
| Debug.writeLine=function(message){if(window.debugService){window.debugService.trace(message);return;} Debug.writeln(message);var traceTextBox=document.getElementById('_traceTextBox');if(traceTextBox){traceTextBox.value=traceTextBox.value+'\r\n'+message;}}; | |
| Debug.__typeName='Debug'; | |
| window.Type=Function; | |
| Type.__typeName='Type'; | |
| window.__Namespace=function(name){this.__typeName=name;}; | |
| __Namespace.prototype={__namespace:true,getName:function(){return this.__typeName;}}; | |
| Type.createNamespace=function(name){if(!window.__namespaces){window.__namespaces={};} if(!window.__rootNamespaces){window.__rootNamespaces=[];} if(window.__namespaces[name]){return;} var ns=window;var nameParts=name.split('.');for(var i=0;i<nameParts.length;i++){var part=nameParts[i];var nso=ns[part];if(!nso){ns[part]=nso=new __Namespace(nameParts.slice(0,i+1).join('.'));if(i==0){window.__rootNamespaces.add(nso);}} ns=nso;} window.__namespaces[name]=ns;}; | |
| Type.prototype.createClass=function(name,baseType,interfaceType){this.prototype.constructor=this;this.__typeName=name;this.__class=true;this.__baseType=baseType||Object;if(baseType){this.__basePrototypePending=true;} if(interfaceType){this.__interfaces=[];for(var i=2;i<arguments.length;i++){interfaceType=arguments[i];this.__interfaces.add(interfaceType);}}}; | |
| Type.prototype.createInterface=function(name){this.__typeName=name;this.__interface=true;}; | |
| Type.prototype.createEnum=function(name,flags){for(var field in this.prototype){this[field]=this.prototype[field];} this.__typeName=name;this.__enum=true;if(flags){this.__flags=true;}}; | |
| Type.prototype.setupBase=function(){if(this.__basePrototypePending){var baseType=this.__baseType;if(baseType.__basePrototypePending){baseType.setupBase();} for(var memberName in baseType.prototype){var memberValue=baseType.prototype[memberName];if(!this.prototype[memberName]){this.prototype[memberName]=memberValue;}} delete this.__basePrototypePending;}}; | |
| if(!Type.prototype.resolveInheritance){ | |
| Type.prototype.resolveInheritance=Type.prototype.setupBase; | |
| } | |
| Type.prototype.constructBase=function(instance,args){ | |
| if(this.__basePrototypePending){ | |
| this.setupBase(); | |
| } | |
| if(!args){ | |
| this.__baseType.apply(instance); | |
| } else{ | |
| this.__baseType.apply(instance,args); | |
| } | |
| }; | |
| Type.prototype.callBase=function(instance,name,args){var baseMethod=this.__baseType.prototype[name];if(!args){return baseMethod.apply(instance);} else{return baseMethod.apply(instance,args);}}; | |
| Type.prototype.get_baseType=function(){return this.__baseType||null;}; | |
| Type.prototype.get_fullName=function(){return this.__typeName;}; | |
| Type.prototype.get_name=function(){var fullName=this.__typeName;var nsIndex=fullName.lastIndexOf('.');if(nsIndex>0){return fullName.substr(nsIndex+1);} return fullName;}; | |
| Type.prototype.isInstance=function(instance){if(isNullOrUndefined(instance)){return false;} if((this==Object)||(instance instanceof this)){return true;} var type=Type.getInstanceType(instance);return this.isAssignableFrom(type);}; | |
| Type.prototype.isAssignableFrom=function(type){if((this==Object)||(this==type)){return true;} if(this.__class){var baseType=type.__baseType;while(baseType){if(this==baseType){return true;} baseType=baseType.__baseType;}} else if(this.__interface){var interfaces=type.__interfaces;if(interfaces&&interfaces.contains(this)){return true;} var baseType=type.__baseType;while(baseType){interfaces=baseType.__interfaces;if(interfaces&&interfaces.contains(this)){return true;} baseType=baseType.__baseType;}} return false;}; | |
| Type.isClass=function(type){return(type.__class==true);}; | |
| Type.isEnum=function(type){return(type.__enum==true);}; | |
| Type.isFlagsEnum=function(type){return((type.__enum==true)&&(type.__flags==true));}; | |
| Type.isInterface=function(type){return(type.__interface==true);}; | |
| Type.canCast=function(instance,type){return type.isInstance(instance);}; | |
| Type.safeCast=function(instance,type){if(type.isInstance(instance)){return instance;} return null;}; | |
| Type.getInstanceType=function(instance){var ctor=null;try{ctor=instance.constructor;} catch(ex){} if(!ctor||!ctor.__typeName){ctor=Object;} return ctor;}; | |
| Type.getType=function(typeName){if(!typeName){return null;} if(!Type.__typeCache){Type.__typeCache={};} var type=Type.__typeCache[typeName];if(!type){type=eval(typeName);Type.__typeCache[typeName]=type;} return type;}; | |
| Type.parse=function(typeName){return Type.getType(typeName);}; | |
| window.Enum=function(){}; | |
| Enum.createClass('Enum'); | |
| Enum.parse=function(enumType,s){var values=enumType.prototype;if(!enumType.__flags){for(var f in values){if(f===s){return values[f];}}} else{var parts=s.split('|');var value=0;var parsed=true;for(var i=parts.length-1;i>=0;i--){var part=parts[i].trim();var found=false;for(var f in values){if(f===part){value|=values[f];found=true;break;}} if(!found){parsed=false;break;}} if(parsed){return value;}} throw'Invalid Enumeration Value';}; | |
| Enum.toString=function(enumType,value){var values=enumType.prototype;if(!enumType.__flags||(value===0)){for(var i in values){if(values[i]===value){return i;}} throw'Invalid Enumeration Value';} else{var parts=[];for(var i in values){if(values[i]&value){if(parts.length){parts.add(' | ');} parts.add(i);}} if(!parts.length){throw'Invalid Enumeration Value';} return parts.join('');}}; | |
| window.Delegate=function(){}; | |
| Delegate.createClass('Delegate'); | |
| Delegate.Null=function(){}; | |
| Delegate._create=function(targets){var delegate=function(){if(targets.length==2){return targets[1].apply(targets[0],arguments);} else{for(var i=0;i<targets.length;i+=2){targets[i+1].apply(targets[i],arguments);} return null;}};delegate.invoke=delegate;delegate._targets=targets;return delegate;}; | |
| Delegate.create=function(object,method){if(!object){method.invoke=method;return method;} return Delegate._create([object,method]);}; | |
| Delegate.combine=function(delegate1,delegate2){if(!delegate1){if(!delegate2._targets){return Delegate.create(null,delegate2);} return delegate2;} if(!delegate2){if(!delegate1._targets){return Delegate.create(null,delegate1);} return delegate1;} var targets1=delegate1._targets?delegate1._targets:[null,delegate1];var targets2=delegate2._targets?delegate2._targets:[null,delegate2];return Delegate._create(targets1.concat(targets2));}; | |
| Delegate.remove=function(delegate1,delegate2){if(!delegate1||(delegate1===delegate2)){return null;} if(!delegate2){return delegate1;} var targets=delegate1._targets;var object=null;var method;if(delegate2._targets){object=delegate2._targets[0];method=delegate2._targets[1];} else{method=delegate2;} for(var i=0;i<targets.length;i+=2){if((targets[i]===object)&&(targets[i+1]===method)){if(targets.length==2){return null;} targets.splice(i,2);return Delegate._create(targets);}} return delegate1;}; | |
| Delegate.createExport=function(delegate,multiUse){var name='__'+(new Date()).valueOf();Delegate[name]=function(){if(!multiUse){Delegate.deleteExport(name);} delegate.apply(null,arguments);};return name;}; | |
| Delegate.deleteExport=function(name){if(Delegate[name]){delete Delegate[name];}}; | |
| Delegate.clearExport=function(name){if(Delegate[name]){Delegate[name]=Delegate.Null;}}; | |
| window.CultureInfo=function(name,numberFormat,dateFormat){this.name=name;this.numberFormat=numberFormat;this.dateFormat=dateFormat;}; | |
| CultureInfo.createClass('CultureInfo'); | |
| CultureInfo.Neutral=new CultureInfo('en-US',{naNSymbol:'NaN',negativeSign:'-',positiveSign:'+',negativeInfinityText:'-Infinity',positiveInfinityText:'Infinity',percentSymbol:'%',percentGroupSizes:[3],percentDecimalDigits:2,percentDecimalSeparator:'.',percentGroupSeparator:',',percentPositivePattern:'{0} %',percentNegativePattern:'-{0} %',currencySymbol:'$',currencyGroupSizes:[3],currencyDecimalDigits:2,currencyDecimalSeparator:'.',currencyGroupSeparator:',',currencyNegativePattern:'(${0})',currencyPositivePattern:'${0}',numberGroupSizes:[3],numberDecimalDigits:2,numberDecimalSeparator:'.',numberGroupSeparator:','},{amDesignator:'AM',pmDesignator:'PM',dateSeparator:'/',timeSeparator:':',gmtDateTimePattern:'ddd, dd MMM yyyy HH:mm:ss \'GMT\'',universalDateTimePattern:'yyyy-MM-dd HH:mm:ssZ',sortableDateTimePattern:'yyyy-MM-ddTHH:mm:ss',dateTimePattern:'dddd, MMMM dd, yyyy h:mm:ss tt',longDatePattern:'dddd, MMMM dd, yyyy',shortDatePattern:'M/d/yyyy',longTimePattern:'h:mm:ss tt',shortTimePattern:'h:mm tt',firstDayOfWeek:0,dayNames:['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],shortDayNames:['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],minimizedDayNames:['Su','Mo','Tu','We','Th','Fr','Sa'],monthNames:['January','February','March','April','May','June','July','August','September','October','November','December',''],shortMonthNames:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec','']});CultureInfo.Current=CultureInfo.Neutral;window.IArray=function(){};IArray.createInterface('IArray');window.IEnumerator=function(){};IEnumerator.createInterface('IEnumerator');IEnumerable=function(){};IEnumerable.createInterface('IEnumerable');window.ArrayEnumerator=function(array){this._array=array;this._index=-1;}; | |
| ArrayEnumerator.prototype={get_current:function(){return this._array[this._index];},moveNext:function(){this._index++;return(this._index<this._array.length);},reset:function(){this._index=-1;}}; | |
| ArrayEnumerator.createClass('ArrayEnumerator',null,IEnumerator);Array.__interfaces=[IArray,IEnumerable];Array.prototype.getLength=function(){return this.length;}; | |
| Array.prototype.getItem=function(index){return this[index];}; | |
| Array.prototype.getEnumerator=function(){return new ArrayEnumerator(this);}; | |
| window.IDisposable=function(){}; | |
| IDisposable.createInterface('IDisposable'); | |
| window.IServiceProvider=function(){}; | |
| IServiceProvider.createInterface('IServiceProvider'); | |
| window.IServiceContainer=function(){}; | |
| IServiceContainer.createInterface('IServiceContainer'); | |
| window.StringBuilder=function(s){if((s!==undefined)&&(s!==null)){this._parts=[s];} else{this._parts=[];}}; | |
| StringBuilder.prototype={ | |
| get_isEmpty:function(){ | |
| return(this._parts.length==0); | |
| }, | |
| append:function(s){ | |
| if((s!==undefined)&&(s!==null)){ | |
| this._parts.add(s); | |
| } | |
| },appendLine:function(s){ | |
| this.append(s); | |
| this.append('\r\n'); | |
| },clear:function(){ | |
| this._parts.clear(); | |
| },toString:function(){ | |
| return this._parts.join(''); | |
| } | |
| }; | |
| StringBuilder.createClass('StringBuilder'); | |
| window.EventArgs=function(){}; | |
| EventArgs.createClass('EventArgs'); | |
| EventArgs.Empty=new EventArgs(); | |
| if(!window.XMLHttpRequest){ | |
| window.XMLHttpRequest=function(){ | |
| var progIDs=['Msxml2.XMLHTTP','Microsoft.XMLHTTP']; | |
| for(var i=0;i<progIDs.length;i++){ | |
| try{ | |
| var xmlHttp=new ActiveXObject(progIDs[i]); | |
| return xmlHttp; | |
| } catch(ex){} | |
| } | |
| return null; | |
| }; | |
| } | |
| window.XMLDocumentParser=function(){}; | |
| XMLDocumentParser.createClass('XMLDocumentParser'); | |
| XMLDocumentParser.parse=function(markup){if(!window.DOMParser){var progIDs=['Msxml2.DOMDocument.3.0','Msxml2.DOMDocument'];for(var i=0;i<progIDs.length;i++){try{var xmlDOM=new ActiveXObject(progIDs[i]);xmlDOM.async=false;xmlDOM.loadXML(markup);xmlDOM.setProperty('SelectionLanguage','XPath');return xmlDOM;} catch(ex){}}} else{try{var domParser=new DOMParser();return domParser.parseFromString(markup,'text/xml');} catch(ex){}} return null;}; | |
| window.ScriptLoader=function(scriptURLs){Debug.assert((scriptURLs)&&(scriptURLs.length));this._scriptURLs=scriptURLs;this._scriptLoadIndex=-1;}; | |
| ScriptLoader.prototype={_scriptURLs:null,_loadedHandler:null,_errorHandler:null,_isIE:false,_onLoadHandler:null,_onErrorHandler:null,_scriptLoadIndex:0,_scriptElements:null,_loadedScripts:0,_inError:false,_loaded:false,dispose:function(){if(this._scriptElements){for(var i=0;i<this._scriptElements.length;i++){var scriptElement=this._scriptElements[i];if(this._isIE){scriptElement.detachEvent('onreadystatechange',this._onLoadHandler);} else{scriptElement.detachEvent('onload',this._onLoadHandler);scriptElement.detachEvent('onerror',this._onErrorHandler);}} this._scriptElements=null;}},load:function(loadInParallel,timeout,loadedHandler,errorHandler){Debug.assert(loadedHandler);Debug.assert(errorHandler);this._loadedHandler=loadedHandler;this._errorHandler=errorHandler;this._isIE=(window.navigator.userAgent.indexOf('MSIE')>=0);this._onLoadHandler=Delegate.create(this,this._onScriptLoad);if(!this._isIE){this._onErrorHandler=Delegate.create(this,this._onScriptError);} this._scriptElements=[];if(loadInParallel){for(var i=0;i<this._scriptURLs.length;i++){this._loadScript(this._scriptURLs[i]);}} else{this._scriptLoadIndex++;this._loadScript(this._scriptURLs[this._scriptLoadIndex]);} if(timeout){window.setTimeout(Delegate.create(this,this._onScriptError),timeout);}},_loadScript:function(scriptURL){var scriptElement=document.createElement('SCRIPT');if(this._isIE){scriptElement.attachEvent('onreadystatechange',this._onLoadHandler);} else{scriptElement.readyState='complete';scriptElement.attachEvent('onload',this._onLoadHandler);scriptElement.attachEvent('onerror',this._onErrorHandler);} scriptElement.type='text/javascript';scriptElement.src=scriptURL;this._scriptElements.add(scriptElement);document.getElementsByTagName('HEAD')[0].appendChild(scriptElement);},_onScriptError:function(){if((!this._inError)&&(!this._loaded)){this._inError=true;this._errorHandler.invoke(this,EventArgs.Empty);}},_onScriptLoad:function(){if(this._inError){return;} var scriptElement=window.event.srcElement;if(!scriptElement.readyState){scriptElement=window.event.currentTarget;} if((scriptElement.readyState!='complete')&&(scriptElement.readyState!='loaded')){return;} if(this._scriptLoadIndex!=-1){this._scriptLoadIndex++;if(this._scriptLoadIndex!=this._scriptURLs.length){this._loadScript(this._scriptURLs[this._scriptLoadIndex]);return;}} else{this._loadedScripts++;if(this._loadedScripts!=this._scriptURLs.length){return;}} this._loaded=true;this._loadedHandler.invoke(this,EventArgs.Empty);}}; | |
| ScriptLoader.createClass('ScriptLoader',null,IDisposable); | |
| window.ScriptHost=function(){}; | |
| ScriptHost.add_loaded=function(value){if(ScriptHost._loaded){value.invoke(null,EventArgs.Empty);} else{ScriptHost._loadedHandler=Delegate.combine(ScriptHost._loadedHandler,value);}}; | |
| ScriptHost.remove_loaded=function(value){ScriptHost._loadedHandler=Delegate.remove(ScriptHost._loadedHandler,value);}; | |
| ScriptHost.add_loading=function(value){ScriptHost._loadingHandler=Delegate.combine(ScriptHost._loadingHandler,value);}; | |
| ScriptHost.remove_loading=function(value){ScriptHost._loadingHandler=Delegate.remove(ScriptHost._loadingHandler,value);}; | |
| ScriptHost.add_unload=function(value){ScriptHost._unloadHandler=Delegate.combine(ScriptHost._unloadHandler,value);}; | |
| ScriptHost.remove_unload=function(value){ScriptHost._unloadHandler=Delegate.remove(ScriptHost._unloadHandler,value);}; | |
| ScriptHost.close=function(){if(ScriptHost._fxScripts!=null){ScriptHost._fxScripts.dispose();ScriptHost._fxScripts=null;} if(ScriptHost._coreScripts!=null){ScriptHost._coreScripts.dispose();ScriptHost._coreScripts=null;} if(ScriptHost._unloadHandler!=null){ScriptHost._unloadHandler.invoke(null,EventArgs.Empty);ScriptHost._unloadHandler=null;} if(ScriptHost._windowLoadHandler!=null){window.detachEvent('onload',ScriptHost._windowLoadHandler);ScriptHost._windowLoadHandler=null;} if(ScriptHost._windowUnloadHandler!=null){window.detachEvent('onunload',ScriptHost._windowUnloadHandler);ScriptHost._windowUnloadHandler=null;}}; | |
| ScriptHost.initialize=function(coreScriptURLs,fxScriptURLs){if(!ScriptHost._initialized){ScriptHost._initialized=true;if(ScriptHost._windowLoadHandler!=null){window.detachEvent('onload',ScriptHost._windowLoadHandler);ScriptHost._windowLoadHandler=null;} if((coreScriptURLs!=null)&&(coreScriptURLs.length!==0)){ScriptHost._coreScripts=new ScriptLoader(coreScriptURLs);} if((fxScriptURLs!=null)&&(fxScriptURLs.length!==0)){ScriptHost._fxScripts=new ScriptLoader(fxScriptURLs);} if((ScriptHost._coreScripts==null)&&(ScriptHost._fxScripts==null)){ScriptHost._onLoaded();} else{ScriptHost._loadScripts();}}}; | |
| ScriptHost._loadScripts=function(){if(ScriptHost._coreScripts!=null){ScriptHost._coreScripts.load(false,20*1000,Delegate.create(null,ScriptHost._onScriptsCompleted),Delegate.create(null,ScriptHost._onScriptsError));return;} else{ScriptHost._fxScripts.load(true,20*1000,Delegate.create(null,ScriptHost._onScriptsCompleted),Delegate.create(null,ScriptHost._onScriptsError));}}; | |
| ScriptHost._onLoaded=function(){if(typeof(window.main)==='function'){window.main();} if(ScriptHost._loadingHandler!=null){ScriptHost._loadingHandler.invoke(null,EventArgs.Empty);ScriptHost._loadingHandler=null;} if(ScriptHost._scriptlets!=null){for(var i=0;i<ScriptHost._scriptlets.length;i+=2){ScriptHost._scriptlets[i].main(ScriptHost._scriptlets[i+1]);} ScriptHost._scriptlets=null;} ScriptHost._loaded=true;if(ScriptHost._loadedHandler!=null){ScriptHost._loadedHandler.invoke(null,EventArgs.Empty);ScriptHost._loadedHandler=null;}}; | |
| ScriptHost._onScriptsCompleted=function(sender,e){if(sender===ScriptHost._coreScripts){ScriptHost._coreScripts.dispose();ScriptHost._coreScripts=null;if(ScriptHost._fxScripts!=null){ScriptHost._fxScripts.load(true,20*1000,Delegate.create(null,ScriptHost._onScriptsCompleted),Delegate.create(null,ScriptHost._onScriptsError));return;}} else{ScriptHost._fxScripts.dispose();ScriptHost._fxScripts=null;} ScriptHost._onLoaded();}; | |
| ScriptHost._onScriptsError=function(sender,e){}; | |
| ScriptHost._onWindowLoad=function(){ScriptHost.initialize(null,null);}; | |
| ScriptHost._onWindowUnload=function(){ScriptHost.close();}; | |
| ScriptHost.run=function(scriptletType,args){if(ScriptHost._loaded){scriptletType.main(args);} else{if(ScriptHost._scriptlets==null){ScriptHost._scriptlets=[];} ScriptHost._scriptlets.add(scriptletType);ScriptHost._scriptlets.add(args);}}; | |
| ScriptHost.createClass('ScriptHost'); | |
| ScriptHost._coreScripts=null; | |
| ScriptHost._fxScripts=null; | |
| ScriptHost._loadedHandler=null; | |
| ScriptHost._loadingHandler=null; | |
| ScriptHost._unloadHandler=null; | |
| ScriptHost._initialized=false; | |
| ScriptHost._loaded=false; | |
| ScriptHost._scriptlets=null; | |
| ScriptHost._windowLoadHandler=Delegate.create(null,ScriptHost._onWindowLoad); | |
| ScriptHost._windowUnloadHandler=Delegate.create(null,ScriptHost._onWindowUnload); | |
| window.attachEvent('onload',ScriptHost._windowLoadHandler); | |
| window.attachEvent('onunload',ScriptHost._windowUnloadHandler); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment