
/* classes/popup_link.js */

 var PopupLink = Class.create();
PopupLink.prototype = {
  initialize: function( element ) {
    this.element = $( element );
    this.element.popupClass = this.popupClassForElement( this.element );

    if( typeof this.element.popupClass != "undefined" ) {
      var popup_dimensions = this.parseDimensions();
      this.height = popup_dimensions[0];
      this.width  = popup_dimensions[1];

      this.clickHandler = this.doPopup.bindAsEventListener( this );

      Event.observe( this.element, 'click', this.clickHandler );
    }
  },

  doPopup: function( event ) {
    var dimensions = new Template( "height=#{height},width=#{width}" );
    if(event != null) Event.stop( event );
    this.popupWindow = window.open(
      this.element.href,
      "ToolbarPopup",
      dimensions.evaluate( { height: this.height, width: this.width } )
    );
  },

  parseDimensions: function() {
    var popup_class = this.element.popupClass;
    var coords = popup_class.split( '_' );
    return [coords[1], coords[2]]; // height, width
  },

  popupClassForElement: function( element ) {
    var classes = $w( element.className );
    var popup_class = classes.detect( function( c ) {
      return c.startsWith( "popup_" );
    });

    return popup_class;
  }
};
