var layer = Class.create();

layer.prototype = {
	
	initialize: function(options) {
		
		this.toggler = options.toggler;
		this.layer = options.layer;
		this.onShow = options.onShow;
		
		Event.observe(this.toggler, 'click', this.toggle.bindAsEventListener(this), false);
	},
	
	toggle: function(event){
		this.positionElement();
		$(this.layer).toggle();
		if($(this.layer).visible()){
			this.onShow();
		}
	},
	
	positionElement: function(){
		$(this.layer).clonePosition(this.toggler,{
			offsetTop: $(this.toggler).getHeight() + 7,
			offsetLeft: -7,
			setWidth: 'false',
			setHeight: 'false'
		});
	}
		
}

var HPPrintLayer = Class.create();

HPPrintLayer.prototype = {
   
    initialize: function(options) {
       
        this.toggler = options.toggler;
        this.layer = options.layer;
        this.offsetY = options.offsetY;
        this.offsetX = options.offsetX;
        this.layerHeight = options.layerHeight;
        this.layerWidth = options.layerWidth;
        this.effect = this.effect;
       
        Event.observe(this.toggler, 'mouseover', this.toggle.bindAsEventListener(this), false);
        Event.observe(this.toggler, 'mouseout', this.toggle.bindAsEventListener(this), false);
        Event.observe(this.layer, 'click', this.toggleClick.bindAsEventListener(this), false);
    },
   
    toggle: function(event){
        this.positionElement();
        //ieFix
        $(this.layer).style.width = this.layerWidth;
        $(this.layer).style.height = this.layerHeight;

        if($(this.layer).visible()){
            Effect.toggle.delay(1.5, $(this.layer), this.effect);
        }
        else{
            Effect.toggle($(this.layer), this.effect);
        }
    },

    toggleClick: function(event){
    this.positionElement();
    //ieFix
    $(this.layer).style.width = this.layerWidth;
    $(this.layer).style.height = this.layerHeight;
    Effect.toggle($(this.layer), this.effect);
    },
   
    positionElement: function(){
        $(this.layer).clonePosition(this.toggler,{
            offsetTop: this.offsetY + $(this.toggler).getHeight(),
            offsetLeft: this.offsetX + $(this.toggler).getWidth(),
            setWidth: 'false',
            setHeight: 'false'
        });
    }
       
}