var GayImage=new Class({Implements:Options,options:{imageSource:false,width:80,height:80,valign:"middle",container:false,onComplete:false,inject:"top",applyMargins:true,nudgeLeft:0,nudgeTop:0},initialize:function(a){this.setOptions(a);this.maSize=this.moImage=false},load:function(){if(!(this.options.imageSource===false||this.options.container===false))if(this.moImage!==false)this.setImage(this.moImage);else new Asset.image(this.options.imageSource,{onload:this.setImage.bind(this)})},setImage:function(a){if(this.moImage===
false){this.moImage=a;this.maSize=$H({x:parseInt(a.get("width")),y:parseInt(a.get("height"))});this.resizeImage();this.options.applyMargins===true&&this.applyMargins()}this.moImage.inject(this.options.container,this.options.inject);$type(this.options.onComplete)=="function"&&this.options.onComplete(this.moImage)},resizeImage:function(){var a;if(this.maSize.x>this.options.width&&this.maSize.y>this.options.height){a=this.options.width/this.maSize.x;this.maSize.x=this.options.width;this.maSize.y=Math.round(this.maSize.y*
a)}if(this.options.width>this.maSize.x){a=this.options.width/this.maSize.x;a=Math.round(this.maSize.y*a);if(a>this.options.height){this.maSize.y=a;this.maSize.x=this.options.width}}if(this.options.height>this.maSize.y){a=this.options.height/this.maSize.y;a=Math.round(this.maSize.x*a);if(a>this.options.width){this.maSize.x=a;this.maSize.y=this.options.height}}this.moImage.set("height",this.maSize.y);this.moImage.set("width",this.maSize.x)},applyMargins:function(){var a;a=parseInt(this.options.container.getStyle("margin-left").replace(/px$/,
""))+parseInt(this.options.container.getStyle("margin-right").replace(/px$/,""));a=Math.round((this.moImage.get("width")-this.options.width-a)/2)*-1+this.options.nudgeLeft;a=Math.min(a,0);this.moImage.setStyle("margin-left",a+"px");switch(this.options.valign){case "top":a=0;break;case "face":var b=-1*(this.moImage.get("height")-this.options.height);a=-1*Math.round(this.moImage.get("height")/6);a=Math.max(a,b);break;default:a=parseInt(this.options.container.getStyle("margin-top").replace(/px$/,""))+
parseInt(this.options.container.getStyle("margin-bottom").replace(/px$/,""));a=Math.round((this.moImage.get("height")-this.options.height-a)/2)*-1;a=Math.min(a,0)}this.moImage.setStyle("margin-top",a)}});
