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.moSize=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,
b){b=$type(b)?b:true;if(this.moImage===false){this.moImage=a;this.moSize=b===false?a.getSize():{x:parseInt(a.get("width"),10),y:parseInt(a.get("height"),10)};this.resizeImage();this.options.applyMargins===true&&this.applyMargins()}b===true&&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.moSize.x>this.options.width&&this.moSize.y>this.options.height){a=this.options.width/
this.moSize.x;this.moSize.x=this.options.width;this.moSize.y=Math.round(this.moSize.y*a)}if(this.options.width>this.moSize.x){a=this.options.width/this.moSize.x;a=Math.round(this.moSize.y*a);if(a>this.options.height){this.moSize.y=a;this.moSize.x=this.options.width}}if(this.options.height>this.moSize.y){a=this.options.height/this.moSize.y;a=Math.round(this.moSize.x*a);if(a>this.options.width){this.moSize.x=a;this.moSize.y=this.options.height}}this.moImage.set("height",this.moSize.y);this.moImage.set("width",
this.moSize.x)},applyMargins:function(){var a,b;a=parseInt(this.options.container.getStyle("margin-left").replace(/px$/,""),10)+parseInt(this.options.container.getStyle("margin-right").replace(/px$/,""),10);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":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$/,""),10)+parseInt(this.options.container.getStyle("margin-bottom").replace(/px$/,""),10);a=Math.round((this.moImage.get("height")-this.options.height-a)/2)*-1;a=Math.min(a,0)}this.moImage.setStyle("margin-top",a)}});

