if(!window.console)var console={};if(!console.log)console.log=function(){};if(!console.warn)console.warn=console.log;if(!console.error)console.error=console.warn;MooTools.upgradeLog=function(){if(console[this.upgradeLogLevel])console[this.upgradeLogLevel].apply(console,arguments);};(function(){oldA=$A;window.$A=function(iterable,start,length){if(start!=undefined&&length!=undefined){MooTools.upgradeLog('1.1 > 1.2: $A no longer takes start and length arguments.');if(Browser.Engine.trident&&$type(iterable)=='collection'){start=start||0;if(start<0)start=iterable.length+ start;length=length||(iterable.length- start);var array=[];for(var i=0;i<length;i++)array[i]=iterable[start++];return array;}
start=(start||0)+((start<0)?iterable.length:0);var end=((!$chk(length))?iterable.length:length)+ start;return Array.prototype.slice.call(iterable,start,end);}
return oldA(iterable);};var strs=['Array','Function','String','RegExp','Number','Window','Document','Element','Elements'];for(var i=0,l=strs.length;i<l;i++){var type=strs[i];var natv=window[type];if(natv){var extend=natv.extend;natv.extend=function(props){MooTools.upgradeLog('1.1 > 1.2: native types no longer use .extend to add methods to prototypes but instead use .implement. NOTE: YOUR METHODS WERE NOT IMPLEMENTED ON THE NATIVE '+ type.toUpperCase()+' PROTOTYPE.');return extend.apply(this,arguments);};}}})();if(Browser.__defineGetter__){Browser.__defineGetter__('hasGetter',function(){return true;});}
if(Browser.hasGetter){window.__defineGetter__('ie',function(){MooTools.upgradeLog('1.1 > 1.2: window.ie is deprecated. Use Browser.Engine.trident');return(Browser.Engine.name=='trident')?true:false;});window.__defineGetter__('ie6',function(){MooTools.upgradeLog('1.1 > 1.2: window.ie6 is deprecated. Use Browser.Engine.trident and Browser.Engine.version');return(Browser.Engine.name=='trident'&&Browser.Engine.version==4)?true:false;});window.__defineGetter__('ie7',function(){MooTools.upgradeLog('1.1 > 1.2: window.ie7 is deprecated. Use Browser.Engine.trident and Browser.Engine.version');return(Browser.Engine.name=='trident'&&Browser.Engine.version==5)?true:false;});window.__defineGetter__('gecko',function(){MooTools.upgradeLog('1.1 > 1.2: window.gecko is deprecated. Use Browser.Engine.gecko');return(Browser.Engine.name=='gecko')?true:false;});window.__defineGetter__('webkit',function(){MooTools.upgradeLog('1.1 > 1.2: window.webkit is deprecated. Use Browser.Engine.webkit');return(Browser.Engine.name=='webkit')?true:false;});window.__defineGetter__('webkit419',function(){MooTools.upgradeLog('1.1 > 1.2: window.webkit is deprecated. Use Browser.Engine.webkit and Browser.Engine.version');return(Browser.Engine.name=='webkit'&&Browser.Engine.version==419)?true:false;});window.__defineGetter__('webkit420',function(){MooTools.upgradeLog('1.1 > 1.2: window.webkit is deprecated. Use Browser.Engine.webkit and Browser.Engine.version');return(Browser.Engine.name=='webkit'&&Browser.Engine.version==420)?true:false;});window.__defineGetter__('opera',function(){MooTools.upgradeLog('1.1 > 1.2: window.opera is deprecated. Use Browser.Engine.presto');return(Browser.Engine.name=='presto')?true:false;});}else{window[Browser.Engine.name]=window[Browser.Engine.name+ Browser.Engine.version]=true;window.ie=window.trident;window.ie6=window.trident4;window.ie7=window.trident5;}
Array.implement({copy:function(start,length){MooTools.upgradeLog('1.1 > 1.2: Array.copy is deprecated. Use Array.splice');return $A(this,start,length);},remove:function(item){MooTools.upgradeLog('1.1 > 1.2: Array.remove is deprecated. Use Array.erase');return this.erase(item);},merge:function(array){MooTools.upgradeLog('1.1 > 1.2: Array.merge is deprecated. Use Array.combine');return this.combine(array);}});Function.implement({bindAsEventListener:function(bind,args){MooTools.upgradeLog('1.1 > 1.2: Function.bindAsEventListener is deprecated. Use bindWithEvent.');return this.bindWithEvent.call(this,bind,args);}});Function.empty=function(){MooTools.upgradeLog('1.1 > 1.2: Function.empty is now just $empty.');};Hash.implement({keys:function(){MooTools.upgradeLog('1.1 > 1.2: Hash.keys is deprecated. Use Hash.getKeys');return this.getKeys();},values:function(){MooTools.upgradeLog('1.1 > 1.2: Hash.values is deprecated. Use Hash.getValues');return this.getValues();},hasKey:function(item){MooTools.upgradeLog('1.1 > 1.2: Hash.hasKey is deprecated. Use Hash.has');return this.has(item);},merge:function(properties){MooTools.upgradeLog('1.1 > 1.2: Hash.merge is deprecated. Use Hash.combine');return this.extend(properties);},remove:function(key){MooTools.upgradeLog('1.1 > 1.2: Hash.remove is deprecated. use Hash.erase');return this.erase(key);}});Object.toQueryString=function(obj){MooTools.upgradeLog('1.1 > 1.2: Object.toQueryString() is deprecated. use Hash.toQueryString() instead');$H(obj).each(function(item,key){if($type(item)=='object'||$type(item)=='array'){obj[key]=item.toString();}});return Hash.toQueryString(obj);};var Abstract=function(obj){MooTools.upgradeLog('1.1 > 1.2: Abstract is deprecated. Use Hash');return new Hash(obj);};Class.empty=function(){MooTools.upgradeLog('1.1 > 1.2: replace Class.empty with $empty');return $empty;};(function(){var proto=function(obj){var f=function(){return this;};f.prototype=obj;return f;};Class.prototype.extend=function(properties){MooTools.upgradeLog('1.1 > 1.2: Class.extend is deprecated. See the class Extend mutator.');var maker=proto(properties);var made=new maker();made.Extends=this;return new Class(made);};var __implement=Class.prototype.implement;Class.prototype.implement=function(){if(arguments.length>1&&Array.every(arguments,Object.type)){MooTools.upgradeLog('1.1 > 1.2: Class.implement no longer takes more than one thing at a time, either MyClass.implement(key, value) or MyClass.implement(object) but NOT MyClass.implement(new Foo, new Bar, new Baz). See also: the class Implements mutator.');Array.each(arguments,function(argument){__implement.call(this,argument);},this);return this;}
return __implement.apply(this,arguments);};})();(function(){var getPosition=Element.prototype.getPosition;var getCoordinates=Element.prototype.getCoordinates;function isBody(element){return(/^(?:body|html)$/i).test(element.tagName);};var getSize=Element.prototype.getSize;Element.implement({getSize:function(){MooTools.upgradeLog('1.1 > 1.2: NOTE: getSize is different in 1.2; it no longer returns values for size, scroll, and scrollSize, but instead just returns x/y values for the dimensions of the element.');var size=getSize.apply(this,arguments);return $merge(size,{size:size,scroll:this.getScroll(),scrollSize:this.getScrollSize()});},getPosition:function(relative){if(relative&&$type(relative)=="array"){MooTools.upgradeLog('1.1 > 1.2: Element.getPosition no longer accepts an array of overflown elements but rather, optionally, a single element to get relative coordinates.');relative=null;}
return getPosition.apply(this,[relative]);},getCoordinates:function(relative){if(relative&&$type(relative)=="array"){MooTools.upgradeLog('1.1 > 1.2: Element.getCoordinates no longer accepts an array of overflown elements but rather, optionally, a single element to get relative coordinates.');relative=null;}
return getCoordinates.apply(this,[relative]);}});Native.implement([Document,Window],{getSize:function(){MooTools.upgradeLog('1.1 > 1.2: NOTE: getSize is different in 1.2; it no longer returns values for size, scroll, and scrollSize, but instead just returns x/y values for the dimensions of the element.');var size;var win=this.getWindow();var doc=this.getDocument();doc=(!doc.compatMode||doc.compatMode=='CSS1Compat')?doc.html:doc.body;if(Browser.Engine.presto||Browser.Engine.webkit){size={x:win.innerWidth,y:win.innerHeight};}else{size={x:doc.clientWidth,y:doc.clientHeight};}
return $extend(size,{size:size,scroll:{x:win.pageXOffset||doc.scrollLeft,y:win.pageYOffset||doc.scrollTop},scrollSize:{x:Math.max(doc.scrollWidth,size.x),y:Math.max(doc.scrollHeight,size.y)}});}});})();Event.keys=Event.Keys;(function(){var toQueryString=Element.prototype.toQueryString;Element.implement({getFormElements:function(){MooTools.upgradeLog('1.1 > 1.2: Element.getFormElements is deprecated, use Element.getElements("input, textarea, select");');return this.getElements('input, textarea, select');},replaceWith:function(el){MooTools.upgradeLog('1.1 > 1.2: Element.replaceWith is deprecated, use Element.replaces instead.');el=$(el);this.parentNode.replaceChild(el,this);return el;},remove:function(){MooTools.upgradeLog('1.1 > 1.2: Element.remove is deprecated - use Element.dispose.');return this.dispose.apply(this,arguments);},getText:function(){MooTools.upgradeLog('1.1 > 1.2: Element.getText is deprecated - use Element.get("text").');return this.get('text');},setText:function(text){MooTools.upgradeLog('1.1 > 1.2: Element.setText is deprecated - use Element.set("text", text).');return this.set('text',text);},setHTML:function(){MooTools.upgradeLog('1.1 > 1.2: Element.setHTML is deprecated - use Element.set("html", HTML).');return this.set('html',arguments);},getHTML:function(){MooTools.upgradeLog('1.1 > 1.2: Element.getHTML is deprecated - use Element.get("html").');return this.get('html');},getTag:function(){MooTools.upgradeLog('1.1 > 1.2: Element.getTag is deprecated - use Element.get("tag").');return this.get('tag');},getValue:function(){MooTools.upgradeLog('1.1 > 1.2: Element.getValue is deprecated - use Element.get("value").');switch(this.getTag()){case'select':var values=[];$each(this.options,function(option){if(option.selected)values.push($pick(option.value,option.text));});return(this.multiple)?values:values[0];case'input':if(!(this.checked&&['checkbox','radio'].contains(this.type))&&!['hidden','text','password'].contains(this.type))break;case'textarea':return this.value;}
return false;},toQueryString:function(){MooTools.upgradeLog('1.1 > 1.2: warning Element.toQueryString is slightly different; inputs without names are excluded, inputs with type == submit, reset, and file are excluded, and inputs with undefined values are excluded.');return toQueryString.apply(this,arguments);}});})();Element.Properties.properties={set:function(props){MooTools.upgradeLog('1.1 > 1.2: Element.set({properties: {}}) is deprecated; instead of properties, just name the values at the root of the object (Element.set({src: url})).');$H(props).each(function(value,property){this.set(property,value);},this);}};Element.implement({setOpacity:function(op){MooTools.upgradeLog('1.1 > 1.2: Element.setOpacity is deprecated; use Element.setStyle("opacity", value).');return this.setStyle('opacity',op);}});Element.Properties.styles={set:function(styles){MooTools.upgradeLog('1.1 > 1.2: Element.set("styles") no longer accepts a string as an argument. Pass an object instead.');if($type(styles)=='string'){styles.split(";").each(function(style){this.setStyle(style.split(":")[0],style.split(":")[1]);},this);}else{this.setStyles(styles);}}};Fx.implement({custom:function(from,to){MooTools.upgradeLog('1.1 > 1.2: Fx.custom is deprecated. use Fx.start.');return this.start(from,to);},clearTimer:function(){MooTools.upgradeLog('1.1 > 1.2: Fx.clearTimer is deprecated. use Fx.cancel.');return this.cancel();},stop:function(){MooTools.upgradeLog('1.1 > 1.2: Fx.stop is deprecated. use Fx.cancel.');return this.cancel();}});Fx.Base=new Class({Extends:Fx,initialize:function(){MooTools.upgradeLog('1.1 > 1.2: Fx.Base is deprecated. use Fx.');this.parent.apply(this,arguments);}});Fx.Style=new Class({Extends:Fx.Tween,initialize:function(element,property,options){MooTools.upgradeLog('1.1 > 1.2: Fx.Style is deprecated. use Fx.Tween.');this.property=property;this.parent(element,options);},start:function(from,to){return this.parent(this.property,from,to);},set:function(to){return this.parent(this.property,to);},hide:function(){MooTools.upgradeLog('1.1 > 1.2: Fx.Style .hide() is deprecated; use Fx.Tween .set(0) instead');return this.set(0);}});Element.implement({effect:function(property,options){MooTools.upgradeLog('1.1 > 1.2: Element.effect is deprecated; use Fx.Tween or Element.tween.');return new Fx.Style(this,property,options);}});Fx.Styles=new Class({Extends:Fx.Morph,initialize:function(){MooTools.upgradeLog('1.1 > 1.2: Fx.Styles is deprecated. use Fx.Morph.');this.parent.apply(this,arguments);}});Element.implement({effects:function(options){MooTools.upgradeLog('1.1 > 1.2: Element.effects is deprecated; use Fx.Morph or Element.morph.');return new Fx.Morph(this,options);}});Fx.Scroll.implement({scrollTo:function(y,x){MooTools.upgradeLog('1.1 > 1.2: Fx.Scroll\'s .scrollTo is deprecated; use .start.');return this.start(y,x);}});var XHR=new Class({Extends:Request,options:{update:false},initialize:function(options){MooTools.upgradeLog('1.1 > 1.2: XHR is deprecated. Use Request.');this.parent(options);this.transport=this.xhr;},request:function(data){MooTools.upgradeLog('1.1 > 1.2: XHR.request() is deprecated. Use Request.send() instead.');return this.send(this.url,data||this.options.data);},send:function(url,data){if(!this.check(arguments.callee,url,data))return this;return this.parent({url:url,data:data});},success:function(text,xml){text=this.processScripts(text);if(this.options.update)$(this.options.update).empty().set('html',text);this.onSuccess(text,xml);},failure:function(){this.fireEvent('failure',this.xhr);}});var Ajax=new Class({Extends:XHR,initialize:function(url,options){MooTools.upgradeLog('1.1 > 1.2: Ajax is deprecated. Use Request.');this.url=url;this.parent(options);},success:function(text,xml){this.processScripts(text);response=this.response;response.html=text.stripScripts(function(script){response.javascript=script;});if(this.options.update)$(this.options.update).empty().set('html',response.html);if(this.options.evalScripts)$exec(response.javascript);this.onSuccess(text,xml);}});(function(){var send=Element.prototype.send;Element.implement({send:function(url){if($type(url)=="string")return send.apply(this,arguments);if($type(url)=="object"){MooTools.upgradeLog('1.1 > 1.2: Element.send no longer takes an options argument as its object but rather a url. See docs.');this.set('send',url);send.call(this);}
return this;}});})();JSON.Remote=new Class({options:{key:'json'},Extends:Request.JSON,initialize:function(url,options){MooTools.upgradeLog('JSON.Remote is deprecated. Use Request.JSON');this.parent(options);this.onComplete=$empty;this.url=url;},send:function(data){if(!this.check(arguments.callee,data))return this;return this.parent({url:this.url,data:{json:Json.encode(data)}});},failure:function(){this.fireEvent('failure',this.xhr);}});Cookie.set=function(key,value,options){MooTools.upgradeLog('1.1 > 1.2: Cookie.set is deprecated. Use Cookie.write');return new Cookie(key,options).write(value);};Cookie.get=function(key){MooTools.upgradeLog('1.1 > 1.2: Cookie.get is deprecated. Use Cookie.read');return new Cookie(key).read();};Cookie.remove=function(key,options){MooTools.upgradeLog('1.1 > 1.2: Cookie.remove is deprecated. Use Cookie.dispose');return new Cookie(key,options).dispose();};JSON.toString=function(obj){MooTools.upgradeLog('1.1 > 1.2: JSON.toString is deprecated. Use JSON.encode');return JSON.encode(obj);};JSON.evaluate=function(str){MooTools.upgradeLog('1.1 > 1.2: JSON.evaluate is deprecated. Use JSON.decode');return JSON.decode(str);};var Json=JSON;Native.implement([Element,Document],{getElementsByClassName:function(className){MooTools.upgradeLog('1.1 > 1.2: Element.filterByTag is deprecated.');return this.getElements('.'+ className);},getElementsBySelector:function(selector){MooTools.upgradeLog('1.1 > 1.2: Element.getElementsBySelector is deprecated. Use getElements()');return this.getElements(selector);}});Elements.implement({filterByTag:function(tag){MooTools.upgradeLog('1.1 > 1.2: Elements.filterByTag is deprecated. Use Elements.filter.');return this.filter(tag);},filterByClass:function(className){MooTools.upgradeLog('1.1 > 1.2: Elements.filterByClass is deprecated. Use Elements.filter.');return this.filter('.'+ className);},filterById:function(id){MooTools.upgradeLog('1.1 > 1.2: Elements.filterById is deprecated. Use Elements.filter.');return this.filter('#'+ id);},filterByAttribute:function(name,operator,value){MooTools.upgradeLog('1.1 > 1.2: Elements.filterByAttribute is deprecated. Use Elements.filter.');var filtered=this.filter('['+ name+(operator||'')+(value||'')+']');if(value)filtered=filtered.filter('['+ name+']');return filtered;}});var $E=function(selector,filter){MooTools.upgradeLog('1.1 > 1.2: $E is deprecated, use document.getElement.');return($(filter)||document).getElement(selector);};var $ES=function(selector,filter){MooTools.upgradeLog('1.1 > 1.2: $ES is deprecated. Use $$.');return($(filter)||document).getElements(selector);};(function(){if(!window.Tips)return;Tips.implement({initialize:function(){MooTools.upgradeLog('1.1 > 1.2: Tips DOM element layout has changed and your CSS classes may need to change.');var params=Array.link(arguments,{options:Object.type,elements:$defined});this.setOptions(params.options);if(this.options.offsets){MooTools.upgradeLog('1.1 > 1.2: Tips no longer have an "offsets" option; use "offset".');this.options.offset=this.options.offsets;}
document.id(this);this.addEvent('show',function(){this.tip.addClass('tool-tip');this.tip.getElement('.tip-title').addClass('tool-title');this.tip.getElement('.tip-text').addClass('tool-text');});this.parseTitle(params.elements);if(params.elements)this.attach(params.elements);},parseTitle:function(elements){elements.each(function(element){var title=element.get('title');if(title.test('::')){MooTools.upgradeLog('1.1 > 1.2: Tips no longer parse the title attribute for "::" for title/caption; use title and rel attributes instead.');element.store('tip:title',title.split('::')[0]);element.store('tip:text',title.split('::')[1]);element.set('title','');}});}});})();window.onDomReady=function(fn){return this.addEvent('domready',fn);};
