function TPModal(el, options) {
  var ModalOptionsLeft = { 
  	position: 'relative', 
  	width: 519, 
  	height: 260,
  	offsetTop: -312,
  	offsetLeft: 10,
	  overlayDisplay: true,
		containerClassName: "loginDialog",
		fade: true
	};
  var ModalOptionsRight = { 
  	position: 'relative', 
  	width: 519, 
  	height: 260,
  	offsetTop: -312,
  	offsetLeft: -446,
	  overlayDisplay: true,
		containerClassName: "loginDialog right",
		fade: true
	};
	
  // Check how close link is to right
  var ModalOptions = el.viewportOffsetRight() < 570 ? ModalOptionsRight : ModalOptionsLeft;
  return new Control.Modal.Dialog(el, Object.extend(ModalOptions, options) );
}

OzExBookNow = {};
OzExBookNow.processLinks = function() {
  var updateLinks = function(li) {
    var reg = /Product/;
    var className = li.classNames().find(function(i) { return reg.test(i); });
    $$('ul.BookNow li.'+className).each(function(i) { 
      i.update("<a href='tp/' class='button inTravelPlanner added'>View "+Dict.get('TP.Name')+"</a>");
      new Control.Modal(i,{
		    hover: true, position: 'relative', fade: true, offsetLeft: 0, offsetTop: -66, contents: '<div class="top"></div><div class="body">Added to MyOzEx.</div><div class="bottom"></div>'
      });
    });
  };
  var executeLink = function(li) {
    var link = li.down('a');
    var count = $('login').down(".count");
    count.update(parseInt(count.textContent) + 1);
    new Ajax.Request(link.href, {
      onSuccess: updateLinks.bind(null, li)
    });
  };
  $$('li.plan').each(function(li) {
    var link = null;
    if(link = li.down('a.travelPlanner')) {
      link.onclick = function() {
        var loggedIn = false;
        var modal;
        if(link.hasClassName("register")) {
          modal = TPModal(link, {
            request: {
              onSuccess: function(req) {
                modal.update(req.responseText+"<a href='#' onclick='Control.Modal.close(); return false'>Close</a>");
                new Ajax.Updater("login", "Page/TPLoginForm");
                updateLinks(li);
              },
              onFailure: function(req) {
                modal.update(req.responseText);
              }
            }
          });
          
        } else {
          executeLink(li);
        }
      return false;
      } 
    } else {
      //link = i.down('a.added');
      //do whatever needs to be done on the added link;
    }
  });
  
}
Event.observe(window, "load", OzExBookNow.processLinks);  
