/* 
 * File: Popups.js
 * Description: handle onclick events to specified popup windows
 * Author: Dan Smart - www.dansmart.co.uk - dan@dansmart.co.uk
 * Created: 04/09/2009
 */

/*
 * Object:      Event
 * Description: allows cross-browser management of event handlers
 */
var Event = {
	add: function(obj,type,fn)
    {
		if (obj.attachEvent)
        {
			obj['e' + type + fn] = fn;
			obj[type + fn] = function() { obj['e' + type + fn](window.event); }
			obj.attachEvent('on' + type, obj[type + fn]);
		}
        else obj.addEventListener(type, fn, false);
	},
	remove: function(obj,type,fn)
    {
		if (obj.detachEvent)
        {
			obj.detachEvent('on' + type, obj[type + fn]);
			obj[type + fn] = null;
		}
        else obj.removeEventListener(type, fn, false);
	},
    preventDefault: function(event)
    {
      if (event.preventDefault)
      {
        event.preventDefault();
      }
      else
      {
        event.returnValue = false;
      }
    }
}

/*
 * Object:      Popup
 * Description: popup window manager
 */
var Popup =  {
  title: '',
  init: function (popup_id, close_id, title_str)
  {
    if (!popup_id || !close_id) return;
    var popup = document.getElementById(popup_id);
    this.title = title_str;

    Event.add(popup, 'click', function(event) { return Popup.open(event, this); });
  },
  open: function (event, popup_url)
  {
    // open the newsletter signup window
    window.open(popup_url, Popup.title, "menubar=no, width=550, height=330, toolbar=no, statusbar=no");
    
    // stop click handler
    Event.preventDefault(event);
    return false;
  }
}

/*
 * Function:    window_onload
 * Description: popup window manager
 */
function window_onload()
{
    Popup.init('newsletter_signup', 'close_popup', "Newsletter_Signup");
}

// assign onload handler
Event.add(window, 'load', window_onload);