(function($) {
  $.modal = {}
  $.modal.show  = function(message) {

    $.fn.push = function(html) { return this.append(html).children(":last"); };

    var DIALOG_WIDTH = 500;
    var DIALOG_HEIGHT = 195;
    var CUSHION_LENGTH = 0;
    FADE_DURATION = 400;
    var mask = $("<div/>")
      .animate({opacity: 0.85}, FADE_DURATION)
      .css({
        position: "fixed",
        top: -CUSHION_LENGTH,
        left: -CUSHION_LENGTH,
        background: "#999",
        zIndex: 999998,
        height: 2*CUSHION_LENGTH+$(window).height(),
        width: 2*CUSHION_LENGTH+$(window).width(),
        opacity: 0.01
      })
      .click(function(ev) {
        close(ev);
      })
      .appendTo($(document.body));

    var dialog = $("<div/>")
      .fadeIn(FADE_DURATION)
      .addClass("subscribe")
			.css({
        width: DIALOG_WIDTH,
        height: DIALOG_HEIGHT,
        zIndex: 999999,
        top: $(window.body).scrollTop()+$(window).height()/2-DIALOG_HEIGHT/2,
        left: $(window).width()/2-DIALOG_WIDTH/2
      })
      .push("<div/>")
        .css({
          margin: "10px"
        })
        .html(message)
      .end()
      .push("<div/>")
        .css({
          position: "absolute",
          top: "-1.2em",
          right: "-20px",
          cursor: "pointer"
        })
        .html("<img src='/assets/images/subscribe-close.png' />")
        .click(function(ev) {
          close(ev);
        })
      .end()
      .appendTo($(document.body));

    $(window.body).keyup(function(ev) { 
      if (ev.charCode==27 || ev.keyCode==27) close(ev);
    });

    function close(ev) {
      ev.stopPropagation();
      dialog.remove();
      mask.remove();
      //dialog.slideUp(FADE_DURATION, function() { dialog.remove(); });
      //mask.fadeOut(FADE_DURATION, function() { mask.remove(); });
    }

  }
})(jQuery);

function isValidEmailAddress(emailAddress) {
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	return pattern.test(emailAddress);
}

function postSubscriptionForm() {

	var name = $('#name').val();
	var email = $('#emailaddress').val();
	var success = true;

	if (name == '' || name == 'name') {
		success = false;
		$('#namespan').css('display','inline');		
	} else {
		$('#namespan').css('display','none');			
	}
	
	if (!isValidEmailAddress(email)) {
		success = false;
		$('#emailspan').css('display','inline');		
	} else {
		$('#namespan').css('display','none');	
	}
	
	if (success) {
			
	
		$('#form-holder').css('display','none');
		$('#form-result').css('display','block');	
	
		// cannot post to firstclass as js and cross-domain not allowed
		// pass to coldfusion proxy to do the post -> http://firstclass.focusintegrated.co.uk/t/r/s/tjlin/
		$.post('/cfc-proxy/proxy.cfm',$("#subscribeform").serialize());
	}
}
