var HoverBehavior = Class.create();
HoverBehavior.prototype = {
  initialize: function() {
    $A(document.styleSheets).each( function(stylesheet) {
      $A(stylesheet.rules).each( function(rule) {
        if( rule.selectorText.match(/:hover/i) ) {
          stylesheet.addRule( rule.selectorText.replace(/:hover/ig, '.hover'), rule.style.cssText );
        }
      });
    });

    $A(arguments).each( function(arg) {
      $$(arg).each( function(tag) {
        Event.observe(tag, 'mouseover', function() { Element.addClassName(tag, 'hover'); });
        Event.observe(tag, 'mouseout', function() { Element.removeClassName(tag, 'hover'); });
      });
    });
  }
};
sliders = {
	descriptionSlider : undefined,
	attachmentsSlider : undefined,
	openWindow : function(content, title) {
		win = new Window({className: "dialog", title: title, width:920, height:740, destroyOnClose: true, recenterAuto:false, minimizable:false, maximizable:false, resizable:false, showEffectOptions: {duration: 0.2}, hideEffectOptions: {duration: 0.2}}); 
		win.getContent().update(content);
		win.showCenter();
		win.toFront();
		sliders.descriptionSlider = new Draggable('descriptionHandler', {constraint: 'vertical', change: sliders.slideDown});
		sliders.attachmentsSlider = new Draggable('attachmentsHandler', {constraint: 'vertical', change: sliders.attachmentsSlideDown});
	},
	slideDown : function () {
		handler = $('descriptionHandler')
		topOffset = parseInt(handler.style.top);
		if(topOffset < 0) {
			handler.setStyle({top: '0px'});
		}
		if(topOffset == 76 || topOffset > 76) {
			sliders.descriptionSlider.destroy();
			handler.setStyle({top: '76px'});
			sliders.descriptionSlider = new Draggable('descriptionHandler', {constraint: 'vertical', change: sliders.slideUp});
		}
		descriptionContentHeight = $('descriptionContent').getDimensions().height;
		descriptionHeight = $('description').getDimensions().height;
		contentOffset = descriptionContentHeight-descriptionHeight;
		if(contentOffset > 0  && topOffset > 0 && topOffset < 76) {
			$('descriptionContent').setStyle({position: 'relative', top: '-'+(Math.round(contentOffset*(topOffset/76)))+'px'});	
		}
	},
	slideUp : function () {
		handler = $('descriptionHandler')
		topOffset = parseInt(handler.style.top);
		if(topOffset > 76) {
			handler.setStyle({top: '76px'});
		}
		if(topOffset == 0 || topOffset < 0) {
			sliders.descriptionSlider.destroy();
			handler.setStyle({top: '0px'});
			sliders.descriptionSlider = new Draggable('descriptionHandler', {constraint: 'vertical', change: sliders.slideDown});
		}
		descriptionContentHeight = $('descriptionContent').getDimensions().height;
		descriptionHeight = $('description').getDimensions().height;
		contentOffset = descriptionContentHeight-descriptionHeight;
		if(contentOffset > 0 && topOffset > 0 && topOffset < 76) {
			$('descriptionContent').setStyle({position: 'relative', top: '-'+(Math.round(contentOffset*(topOffset/76)))+'px'});	
		}
	},
	attachmentsSlideDown : function () {
		handler = $('attachmentsHandler')
		topOffset = parseInt(handler.style.top);
		if(topOffset < 0) {
			handler.setStyle({top: '0px'});
		}
		if(topOffset == 159 || topOffset > 159) {
			sliders.attachmentsSlider.destroy();
			handler.setStyle({top: '159px'});
			sliders.attachmentsSlider = new Draggable('attachmentsHandler', {constraint: 'vertical', change: sliders.attachmentsSlideUp});
		}
		descriptionContentHeight = $('attachmentsContent').getDimensions().height;
		descriptionHeight = $('attachments').getDimensions().height;
		contentOffset = descriptionContentHeight-descriptionHeight;
		if(contentOffset > 0  && topOffset > 0 && topOffset < 159) {
			$('attachmentsContent').setStyle({position: 'relative', top: '-'+(Math.round(contentOffset*(topOffset/159)))+'px'});	
		}
	},
	attachmentsSlideUp : function () {
		handler = $('attachmentsHandler')
		topOffset = parseInt(handler.style.top);
		if(topOffset > 159) {
			handler.setStyle({top: '159px'});
		}
		if(topOffset == 0 || topOffset < 0) {
			sliders.attachmentsSlider.destroy();
			handler.setStyle({top: '0px'});
			sliders.attachmentsSlider = new Draggable('attachmentsHandler', {constraint: 'vertical', change: sliders.attachmentsSlideDown});
		}
		descriptionContentHeight = $('attachmentsContent').getDimensions().height;
		descriptionHeight = $('attachments').getDimensions().height;
		contentOffset = descriptionContentHeight-descriptionHeight;
		if(contentOffset > 0 && topOffset > 0 && topOffset < 159) {
			$('attachmentsContent').setStyle({position: 'relative', top: '-'+(Math.round(contentOffset*(topOffset/159)))+'px'});	
		}
	}
}
