/** * Email Class * * @author Daniel Arsenault */ function Email() { /* Constructor */ }; // {{{ Constants Email.ERROR_SEND_MAIL = parseInt('00000001', 2); Email.ERROR_FIRST_NAME = parseInt('00000010', 2); Email.ERROR_LAST_NAME = parseInt('00000100', 2); Email.ERROR_EMAIL = parseInt('00001000', 2); Email.ERROR_COMPANY = parseInt('00010000', 2); Email.ERROR_MESSAGE = parseInt('00100000', 2); Email.ERROR_OBJECT = parseInt('01000000', 2); Email.RFC2822_PATTERN = new RegExp(/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/); Email.waitClass = { filter: 'alpha(opacity=30)', moz_opacity: '0.30', opacity: '0.30' } // {{{ Static Methods Email.send = function() { Email.disableForm(); Email.showWaitMsg(); /* Process form */ var contactForm = YAHOO.util.Dom.get('contactForm'); YAHOO.util.Connect.setForm(contactForm); YAHOO.util.Connect.asyncRequest('POST', window.location, Email.callback); }; Email.showWaitMsg = function() { YAHOO.util.Dom.get('cuDoneMsg').style.display = 'none'; YAHOO.util.Dom.get('cuWaitMsg').style.display = 'block'; YAHOO.util.Dom.get('cuPopupContainer').style.display = 'block'; } Email.showDoneMsg = function() { var cuOkButton = YAHOO.util.Dom.get('cuOkButton'); YAHOO.util.Event.addListener(cuOkButton, 'click', Email.enableForm); YAHOO.util.Event.addListener(cuOkButton, 'click', Email.hideMessages); YAHOO.util.Dom.get('cuWaitMsg').style.display = 'none'; YAHOO.util.Dom.get('cuDoneMsg').style.display = 'block'; YAHOO.util.Dom.get('cuPopupContainer').style.display = 'block'; } Email.hideMessages = function() { var cuOkButton = YAHOO.util.Dom.get('cuOkButton'); YAHOO.util.Event.removeListener(cuOkButton, 'click'); YAHOO.util.Dom.get('cuWaitMsg').style.display = 'none'; YAHOO.util.Dom.get('cuDoneMsg').style.display = 'none'; YAHOO.util.Dom.get('cuPopupContainer').style.display = 'none'; } Email.disableForm = function() { var cuFieldSet = YAHOO.util.Dom.get('cuFieldSet'); var aSendButton = YAHOO.util.Dom.get('sendButton'); var iSendButton = YAHOO.util.Dom.get('sendButtonNS'); YAHOO.util.Event.removeListener(aSendButton, 'click'); YAHOO.util.Event.removeListener(iSendButton, 'click'); YAHOO.util.Dom.setStyle(cuFieldSet, 'fliter', Email.waitClass.filter); // Grey form YAHOO.util.Dom.setStyle(cuFieldSet, '-moz-opacity', Email.waitClass.moz_opacity); // Grey form YAHOO.util.Dom.setStyle(cuFieldSet, 'opacity', Email.waitClass.opacity); // Grey form YAHOO.util.Dom.setStyle(aSendButton, 'fliter', Email.waitClass.filter); // Grey form YAHOO.util.Dom.setStyle(aSendButton, '-moz-opacity', Email.waitClass.moz_opacity); // Grey form YAHOO.util.Dom.setStyle(aSendButton, 'opacity', Email.waitClass.opacity); // Grey form }; Email.enableForm = function() { var cuFieldSet = YAHOO.util.Dom.get('cuFieldSet'); var aSendButton = YAHOO.util.Dom.get('sendButton'); var iSendButton = YAHOO.util.Dom.get('sendButtonNS'); YAHOO.util.Event.addListener(aSendButton, 'click', Email.send); YAHOO.util.Event.addListener(iSendButton, 'click', Email.send); YAHOO.util.Dom.setStyle(cuFieldSet, 'fliter', ''); // Grey form YAHOO.util.Dom.setStyle(cuFieldSet, '-moz-opacity', ''); // Grey form YAHOO.util.Dom.setStyle(cuFieldSet, 'opacity', ''); // Grey form YAHOO.util.Dom.setStyle(aSendButton, 'fliter', ''); // Grey form YAHOO.util.Dom.setStyle(aSendButton, '-moz-opacity', ''); // Grey form YAHOO.util.Dom.setStyle(aSendButton, 'opacity', ''); // Grey form }; Email.showError = function(errorResponse) { var errorCode = { sendMail: new Boolean(errorResponse & Email.ERROR_SEND_MAIL), firstName: new Boolean(errorResponse & Email.ERROR_FIRST_NAME), lastName: new Boolean(errorResponse & Email.ERROR_LAST_NAME), email: new Boolean(errorResponse & Email.ERROR_EMAIL), company: new Boolean(errorResponse & Email.ERROR_COMPANY), message: new Boolean(errorResponse & Email.ERROR_MESSAGE), object: new Boolean(errorResponse & Email.ERROR_OBJECT) }; // Update First Name Error var divFirstName = YAHOO.util.Dom.get('d_fname'); YAHOO.util.Dom.removeClass(divFirstName, 'error'); if(true == errorCode.firstName) { YAHOO.util.Dom.addClass(divFirstName, 'error'); } // Update Last Name Error var divLastName = YAHOO.util.Dom.get('d_lname'); YAHOO.util.Dom.removeClass(divLastName, 'error'); if(true == errorCode.lastName) { YAHOO.util.Dom.addClass(divLastName, 'error'); } // Update Email Error var divEmail = YAHOO.util.Dom.get('d_email'); YAHOO.util.Dom.removeClass(divEmail, 'error'); if(true == errorCode.email) { YAHOO.util.Dom.addClass(divEmail, 'error'); } // Update Company Error var divCompany = YAHOO.util.Dom.get('d_company'); YAHOO.util.Dom.removeClass(divCompany, 'error'); if(true == errorCode.company) { YAHOO.util.Dom.addClass(divCompany, 'error'); } // Update Message Error var divMessage = YAHOO.util.Dom.get('d_message'); YAHOO.util.Dom.removeClass(divMessage, 'error'); if(true == errorCode.message) { YAHOO.util.Dom.addClass(divMessage, 'error'); } // Update Object Error var divObject = YAHOO.util.Dom.get('d_object'); YAHOO.util.Dom.removeClass(divObject, 'error'); if(true == errorCode.object) { YAHOO.util.Dom.addClass(divObject, 'error'); } }; Email.showResult = function(errorResponse) { var errorCode = { sendMail: new Boolean(errorResponse & Email.ERROR_SEND_MAIL), firstName: new Boolean(errorResponse & Email.ERROR_FIRST_NAME), lastName: new Boolean(errorResponse & Email.ERROR_LAST_NAME), email: new Boolean(errorResponse & Email.ERROR_EMAIL), company: new Boolean(errorResponse & Email.ERROR_COMPANY), message: new Boolean(errorResponse & Email.ERROR_MESSAGE), object: new Boolean(errorResponse & Email.ERROR_OBJECT) }; Email.hideMessages(); // Update Mail Error if(0 !== errorResponse && (true == errorCode.sendMail || isNaN(errorResponse))) { alert('/* Display Unexpected Error Message */'); } if(0 == errorResponse) { Email.showDoneMsg(); YAHOO.util.Dom.get('contactForm').reset(); } else {Email.enableForm();} }; Email.callbackSuccess = function(o) { /* Process successful communication result */ var errorResponse = parseInt(o.responseText); Email.showError(errorResponse); Email.showResult(errorResponse); }; Email.callbackFailure = function(o) { /* Process communication failure */ alert(/* Process communication failure */); Email.enableForm(); }; Email.callback = { failure: Email.callbackFailure, success: Email.callbackSuccess, arguments: [] }; Email.init = function(e) { styleSwitcherInit(e); var jsFlag = YAHOO.util.Dom.get('jsFlag'); var sendButton = YAHOO.util.Dom.get('sendButton'); jsFlag.value = '1'; YAHOO.util.Event.purgeElement (sendButton, 'click'); YAHOO.util.Event.addListener(sendButton, 'click', Email.send); };