var Class=function(properties){ var klass=function(){ if(this.initialize&&arguments[0]!='noinit') return this.initialize.apply(this,arguments); else return this };
for(var property in this) klass[property]=this[property]; klass.prototype=properties; return klass };Class.empty=function(){}; Class.prototype={ extend:function(properties){ var pr0t0typ3=new this('noinit'); var parentize=function(previous,current){ if(!previous.apply||!current.apply)return false; return function(){this.parent=previous;return current.apply(this,arguments)} }; for(var property in properties){ var previous=pr0t0typ3[property]; var current=properties[property]; if(previous&&previous!=current)current=parentize(previous,current)||current;pr0t0typ3[property]=current } return new Class(pr0t0typ3) },
implement:function(properties){ for(var property in properties) this.prototype[property]=properties[property] } };Object.extend=function(){ var args=arguments; args=(args[1])?[args[0],args[1]]:[this,args[0]]; for(var property in args[1]) args[0][property]=args[1][property]; return args[0] };
var Class=function(properties){
var klass=function(){
if(this.initialize&&arguments[0]!='noinit')
return this.initialize.apply(this,arguments);
else return this
};
for(var property in this) klass[property]=this[property];
klass.prototype=properties;
return klass
};Class.empty=function(){};
Class.prototype={
extend:function(properties){
var pr0t0typ3=new this('noinit');
var parentize=function(previous,current){
if(!previous.apply||!current.apply)return false;
return function(){this.parent=previous;return current.apply(this,arguments)}
};
for(var property in properties){
var previous=pr0t0typ3[property];
var current=properties[property];
if(previous&&previous!=current)current=parentize(previous,current)||current;pr0t0typ3[property]=current
}
return new Class(pr0t0typ3)
},
implement:function(properties){
for(var property in properties) this.prototype[property]=properties[property]
}
};Object.extend=function(){
var args=arguments;
args=(args[1])?[args[0],args[1]]:[this,args[0]];
for(var property in args[1]) args[0][property]=args[1][property];
return args[0]
};
Object.Native=function(){for(var i=0;i<arguments.length;i++)arguments[i].extend=Class.prototype.implement};new Object.Native(Function,Array,String,Number,Class);
if(typeof HTMLElement=='undefined'){
var HTMLElement=Class.empty;
HTMLElement.prototype={}
}else{
HTMLElement.prototype.htmlElement=true
}
window.extend=document.extend=Object.extend;
var Window=window;function $type(obj){
if(obj===null||obj===undefined)return false;
var type=typeof obj;
if(type=='object'){
if(obj.htmlElement)return'element';
if(obj.push)return'array';
if(obj.nodeName){
switch(obj.nodeType){
case 1:return'element';
case 3:return obj.nodeValue.test(/\S/)?'textnode':'whitespace'
}
}
}
return type
};function $chk(obj){
return!!(obj||obj===0)};
function $pick(obj,picked){
return($type(obj))?obj:picked
};
function $random(min,max){
return Math.floor(Math.random()*(max-min+1)+min)
};
function $clear(timer){
clearTimeout(timer);
clearInterval(timer);
return null
};
if(window.ActiveXObject)
window.ie=window[window.XMLHttpRequest?'ie7':'ie6']=true;
else if(document.childNodes&&!document.all&&!navigator.taintEnabled)
window.khtml=true;
else if(document.getBoxObjectFor!=null)
window.gecko=true;
if(window.ie6)
try{
document.execCommand("BackgroundImageCache",false,true)
}catch(e){};
Array.prototype.forEach=Array.prototype.forEach||function(fn,bind){
for(var i=0;i<this.length;i++)fn.call(bind,this[i],i,this)
};
Array.prototype.filter=Array.prototype.filter||function(fn,bind){
var results=[];for(var i=0;i<this.length;i++){if(fn.call(bind,this[i],i,this))results.push(this[i])}return results
};
Array.prototype.map=Array.prototype.map||function(fn,bind){
var results=[];
for(var i=0;i<this.length;i++) results[i]=fn.call(bind,this[i],i,this);
return results
};
Array.prototype.every=Array.prototype.every||function(fn,bind){
for(var i=0;i<this.length;i++){
if(!fn.call(bind,this[i],i,this))
return false
}
return true
};
Array.prototype.some=Array.prototype.some||function(fn,bind){
for(var i=0;i<this.length;i++){
if(fn.call(bind,this[i],i,this))
return true
}
return false
};
Array.prototype.indexOf=Array.prototype.indexOf||function(item,from){
from=from||0;
if(from<0) from=Math.max(0,this.length+from);
while(from<this.length){
if(this[from]===item)
return from;
from++
}
return -1
};
Array.extend({
each:Array.prototype.forEach,
copy:function(start,length){
start=start||0;
if(start<0) start=this.length+start;
length=length||(this.length-start);
var newArray=[];
for(var i=0;i<length;i++) newArray[i]=this[start++];
return newArray
},
remove:function(item){
var i=0;
while(i<this.length){
if(this[i]===item)
this.splice(i,1);
else
i++
}
return this
},
test:function(item,from){
return this.indexOf(item,from)!=-1
},
extend:function(newArray){
for(var i=0;i<newArray.length;i++) this.push(newArray[i]);
return this
},
associate:function(keys){
var obj={},
length=Math.min(this.length,keys.length);
for(var i=0;i<length;i++) obj[keys[i]]=this[i];
return obj
}
});
function $A(array,start,length){
return Array.prototype.copy.call(array,start,length)
};
function $each(iterable,fn,bind){
return Array.prototype.forEach.call(iterable,fn,bind)
};
String.extend({
test:function(regex,params){
return((typeof regex=='string')?new RegExp(regex,params):regex).test(this)
},
toInt:function(){
return parseInt(this)
},
toFloat:function(){
return parseFloat(this)
},
camelCase:function(){
return this.replace(/-\D/g,function(match){return match.charAt(1).toUpperCase()})
},
hyphenate:function(){
return this.replace(/\w[A-Z]/g,function(match){return(match.charAt(0)+'-'+match.charAt(1).toLowerCase())})
},
capitalize:function(){
return this.toLowerCase().replace(/\b[a-z]/g,function(match){return match.toUpperCase()})
},
trim:function(){return this.replace(/^\s+|\s+$/g,'')},
clean:function(){return this.replace(/\s{2,}/g,' ').trim()},
rgbToHex:function(array){var rgb=this.match(/\d{1,3}/g);return(rgb)?rgb.rgbToHex(array):false},
hexToRgb:function(array){
var hex=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);
return(hex)?hex.slice(1).hexToRgb(array):false
}
});
Array.extend({
rgbToHex:function(array){
if(this.length<3)return false;
if(this[3]&&(this[3]==0)&&!array)
return'transparent';
var hex=[];
for(var i=0;i<3;i++){
var bit=(this[i]-0).toString(16);
hex.push((bit.length==1)?'0'+bit:bit)
}
return array?hex:'#'+hex.join('')
},
hexToRgb:function(array){
if(this.length!=3)return false;
var rgb=[];
for(var i=0;i<3;i++){
rgb.push(parseInt((this[i].length==1)?this[i]+this[i]:this[i],16))
}
return array?rgb:'rgb('+rgb.join(',')+')'
}
});
Number.extend({
toInt:function(){return parseInt(this)},
toFloat:function(){return parseFloat(this)}
});
Function.extend({
create:function(options){
var fn=this;
options=Object.extend({
'bind':fn,
'event':false,
'arguments':null,
'delay':false,
'periodical':false,
'attempt':false},options||{}
);
if($chk(options.arguments)&&$type(options.arguments)!='array') options.arguments=[options.arguments];
return function(event){
var args;
if(options.event){
event=event||window.event;
args=[(options.event===true)?event:new options.event(event)];
if(options.arguments)
args=args.concat(options.arguments)
}else args=options.arguments||arguments;
var returns=function(){return fn.apply(options.bind,args)};
if(options.delay) return setTimeout(returns,options.delay);
if(options.periodical)return setInterval(returns,options.periodical);
if(options.attempt){try{return returns()}catch(err){return err}}
return returns()
}
},
pass:function(args,bind){return this.create({'arguments':args,'bind':bind})},
attempt:function(args,bind){return this.create({'arguments':args,'bind':bind,'attempt':true})()},
bind:function(bind,args){return this.create({'bind':bind,'arguments':args})},
bindAsEventListener:function(bind,args){return this.create({'bind':bind,'event':true,'arguments':args})},
delay:function(ms,bind,args){return this.create({'delay':ms,'bind':bind,'arguments':args})()},
periodical:function(ms,bind,args){return this.create({'periodical':ms,'bind':bind,'arguments':args})()}
});
.....
后面略...应该够你用了.
http://mootools.net/downloadChoose compression type
选择
No Compression