
var validation = {
    addCall : function () {
        $('form').submit(validation.listener);
        validation.addListener();
    },
    addListener : function () {
        lmbValidator.addErrorListener("lmbValidationErrorDisplayer", lmbValidationErrorDisplayer.showFirstErrorAlertNoCSS);
        lmbValidator.addErrorListener("zipCode", pages.page1.redirectInternational);
        lmbValidator.addErrorListener("emailAddress", domain.domainCapture);
    },
    listener : function (event) {
        if (typeof event == "undefined") {
            event = window.event;
        }

        if (!lmbValidator.validateForm(document.forms[0])) {
            utility.suppressEvent(event);
            return false;
        }
    }
}

var pageInit = {
    attachPopup : function () {
        $(window).unload(popup.openExitForm);
    },
    attachSuppression : function () {
        $('form').submit(pages.suppressPopups);
    },
    revealPage : function () {
        $('#pageContainer').css({display : "block"});
    },
    attachAutoTab : function () {
        $(':input.areaCode, :input.phoneExchange').each(
            function() {
                $(this).keyup(utility.autoTab);
            });
    },
    attachNewTarget : function() {
        //Add a target _blank through js to avoid w3c validation errors.
        $('div.footerLinks a').attr(
            {target: '_blank'}
        );

        $('div.optinText a').attr(
            {target: '_blank'}
        );        
    }
}


var domain = {
  lastFailed : '',
  domainParse : /^[^@]+@(.+)$/,
  addCall: function() {
    $('form').submit(domain.setDomainHidden);      
  },
  domainCapture : function(error) {
    if (error.errorCode == 'EMAIL_DOMAIN_MX') {
    	res = domain.domainParse.exec($('input:text[name=emailAddress]').attr('value'));
    	if (res != null && res.length > 1) {
    	  domain.lastFailed = res[1];
    	}
    }
  },
  setDomainHidden : function() {
    if (domain.lastFailed != '' && $('input:hidden[name=sameDomain]').length > 0) {
      res = domain.domainParse.exec($('input:text[name=emailAddress]').attr('value'));
      if (res != null && res.length > 1) {
        if (res[1] == domain.lastFailed) {
          $('input:hidden[name=sameDomain]').attr('value','true');
        }
      }
    }
    return true;
  }
}

function disableAllSubmitButtons() {
  var allInputs = document.getElementsByTagName("input");
  for(var i = 0; i < allInputs.length; i++) {
    if(allInputs.item(i).type.toLowerCase() == "submit") {
      lmbUtil.addEventListener(allInputs.item(i), "click", function() {
        this.disabled = true;
      });
    }
  }
}

var browserOrigin = function(){
	var browser;
	$.each($.browser, function(i, val) {
		if(val==true){
			browser=i;
		}
	});
	return browser;
};

$(function() {
    pageInit.revealPage();
    pageInit.attachSuppression();
    domain.addCall();
    validation.addCall();
    pageInit.attachPopup();
    pageInit.attachAutoTab();
    pageInit.attachNewTarget();
    var browser=browserOrigin();
    if(browser!='safari'){
    	disableAllSubmitButtons();
    }
});
