// wrap in a function to be executed imediately pass in $ namespace
(function($) {
	// helper functions	  
	var helpers = {};
	
	// private functions
	var functions = {
	  popup : function (page, name, width, height, scrollbars, resizable, left, top) {
		var win = null;
		var p = page || '';
		var n = name || '';
		var w = width || 600;
		var h = height || 500;
		var s = scrollbars || 'yes';
		var r = resizable || 'yes';
		var l = !left || isNaN(left) ? ((screen.width) ? (screen.width - w) / 2 : 0) : left;
		var t = !top || isNaN(top) ? ((screen.height) ? (screen.height - h) / 2 : 0) : top;
		var settings = 'height=' + h + ',width=' + w + ',top=' + t + ',left=' + l + ',scrollbars=' + s + ',resizable=' + r + ',status=yes';
		win = window.open(p, n, settings);
	  }	  	
	};
	// private methods
	var methods = {
	  popup : function(options) {

		options = $.extend({
		  delimiter: '|',
		  externalClass: 'external',
		  popupClass: 'popup'
		}, options || {});
		  
		return this.each(function(i) {
		  var a = $(this);
		  var rel = a.attr('rel');
		  var settings = {};
		  if (rel) {
			var rs = rel.split(options.delimiter);
			if (rs[0] == 'external') {
			  a.attr({
			    target: '_blank',
			    title: 'Load in new window: ' + a.attr('href')
			  }).addClass(options.externalClass);
			} else if (rs[0] == 'popup') {
			  settings.w = rs[1];
			  settings.h = rs[2];
			  settings.s = rs[3];
			  settings.r = rs[4];
			  settings.l = rs[5];
			  settings.t = rs[6];
			  a.attr({
			    title: 'Link loads in Popup Window'
			  }).addClass(options.popupClass);			  
			  
			  a.bind('click', function() {
				functions.popup(a.attr('href'), 'popup_' + i, settings.w, settings.h, settings.s, settings.r, settings.l, settings.t);
				return false;
			  });
			}
		  }									
		});
	  }	
	};
	// add new private functions
	$.each(functions, function(i) {
	  $[i] = this;
	});
    // add new private methods
	$.each(methods, function(i) {
	  $.fn[i] = this;
	});
	// when the dom is ready execute on all a tags
	$(function() {
	  $('a').popup();		   
	});
// pass jquery object in when executing
})(jQuery);
