function toggleStyle(elementId, style1, style2) { var element = document.getElementById(elementId); if (trim(element.className) == trim(style1)) { element.className = style2; } else { element.className = style1; } } function changeStyle(elementId, styleClass) { var element = document.getElementById(elementId); if (element.className != styleClass) { element.className = styleClass; } } function swapPanels(visibleElementId, invisibleElementId) { var element1 = document.getElementById(visibleElementId); var element2 = document.getElementById(invisibleElementId); if (element1 != null && element2 != null) { hideElement(element1); showElement(element2); } } function hideElement(domElement) { domElement.style.display = "none"; return true; } function showElement(domElement) { domElement.style.display = ""; } /* global document event handlers */ var documentOnBlur = document.onblur; var documentOnKeyPress = document.onkeypress; document.onblur = documentLostFocus; document.onkeypress = handleEnterKey; var focusElementId; var defaultSubmitId; function documentLostFocus(event) { focusElementId = null; if (documentOnBlur != null) { documentOnBlur(event); } } function handleEnterKey(e) { if (e == null) { e = window.event; } if (documentOnKeyPress != null) { if (!documentOnKeyPress(e)) { return false; } } var keynum; if(window.event) { // IE keynum = e.keyCode || e.charCode; } else if(e.which) { // Netscape/Firefox/Opera keynum = e.which; } if (keynum == 13 && defaultSubmitId != null) { var element = document.getElementById(defaultSubmitId); if (element != null) { if (element.tagName == 'A' || element.tagName == 'a') { element.onclick(); } else { element.click(); } } return false; } return true; } function restoreFocus() { if (focusElementId != null) { document.getElementById(focusElementId).focus(); } } function saveFocus(e) { target = e.target; if (target == null) { target = e.srcElement; } focusElementId = target.id; if (target.form != null) { target.form.onfocus(e); } return true; } function closeModal(modalPanelId) { focusElementId = null; Richfaces.hideModalPanel(modalPanelId) } function trim(str) { return str.replace(/^\s*|\s*$/g,""); } function checkForNull(val) { return (val == null || val == "") ; } function findChild(form, elementId) { var formId = form.id; for(i = 0; i < form.elements.length; i++) { if (form.elements[i].id == formId + ":" + elementId) { return form.elements[i]; } } } function clearOnFocus(inputElement, event) { inputElement.value = ''; saveFocus(event); inputElement.onfocus = 'saveFocus(event)'; } function paymentTypeChanged(paymentTypeElement) { if (paymentTypeElement == null) { return; } var newPaymentType = paymentTypeElement.value; var form = paymentTypeElement.form; if ((newPaymentType == 1 || newPaymentType == 2) && ((newPaymentType == 1 && cardTypeBackup == 2) || (newPaymentType == 2 && cardTypeBackup == 1) ) ) { findChild(form, 'ccNumber').value = ''; findChild(form, 'CVC').value = ''; } else { findChild(form, 'ccNumber').value = ccNumberBackup; findChild(form, 'CVC').value = '***'; } } A4J.AJAX.onExpired = function(loc, expiredMsg) { alert("Session has expired. Page will be reloaded."); document.location = loc; }; A4J.AJAX.onError = function(req, status, message) { if(status == 500) { alert("Error happened. Page will be reloaded."); document.location.reload(); } }; function cursortWait() { document.body.style.cursor = 'wait'; if (focusElementId != null) { document.getElementById(focusElementId).style.cursor = 'wait'; } } function cursortAuto() { document.body.style.cursor = 'auto'; if (focusElementId != null) { document.getElementById(focusElementId).style.cursor = 'auto'; } } function showFloatPanel() { Richfaces.showModalPanel("floatPanel", {top:"auto", left:"auto"}); } function hideFloatPanel() { Richfaces.hideModalPanel('floatPanel'); var ieVersion=RichFaces.getIEVersion(); if (ieVersion&&ieVersion<7) { s = document.getElementsByTagName("select"); for(i = 0; i < s.length; i++) { if(s[i].style.visibility == 'hidden') { s[i].style.visibility = ''; } } } } function zzz() { alert('zzz !'); } function validateCCForm(form, newCard) { if(checkForNull(findChild(form, 'firstName').value)) { alert("Please enter your first name !"); findChild(form, 'firstName').focus(); return false ; } if(checkForNull(findChild(form, 'lastName').value)) { alert("Please enter your last name !"); findChild(form, 'lastName').focus(); return false ; } if(checkForNull(findChild(form, 'address1').value)) { alert("Please enter your address!"); findChild(form, 'address1').focus(); return false ; } if(checkForNull(findChild(form, 'cityTown').value)) { alert("Please enter your city!"); findChild(form, 'cityTown').focus(); return false ; } if(checkForNull(findChild(form, 'postalCode').value)) { alert("Please enter your postal code!"); findChild(form, 'postalCode').focus(); return false; } var paymentTypeInput = findChild(form, 'paymentType'); if (paymentTypeInput != null) { if (checkForNull(paymentTypeInput.value) || paymentTypeInput.value == 0) { alert("Please choose how to pay !"); paymentTypeInput.focus(); return false; } if (paymentTypeInput.value != 1 && paymentTypeInput.value != 2) { return true; } } // cc number check // if this is a new card or cc number field was visited (onfocus != null) and not empty (user typed something after onfocus). if (newCard || ( ("'" + findChild(form, 'ccNumber').onfocus + "'").indexOf('clearOnFocus') == -1 && !checkForNull(findChild(form, 'ccNumber').value) ) ) { if(checkForNull(findChild(form, 'ccNumber').value)) { alert("Credit Card Number cannot be left blank"); findChild(form, 'ccNumber').focus(); return false ; } cardType = findChild(form, 'paymentType'); ccNumber = findChild(form, 'ccNumber'); if (cardType.value == 2 && !ccNumber.value.match("^5.*")) { // master card if (!confirm("It seems that your credit card is not a MasterCard. Please check and try again?")) { cardType.focus(); return false ; } } else if (cardType.value == 1 && !ccNumber.value.match("^4.*")) { if (!confirm("It seems that your credit card is not a Visa. Please check and try again?")) { cardType.focus(); return false ; } } var ccre16 = new RegExp('^[0-9]{16}$'); var ccre15 = new RegExp('^[0-9]{15}$'); if (cardType.value == 3 && !ccNumber.value.match(ccre15)) { alert("Credit card number must contain 15 digits"); ccNumber.focus(); return false ; } if ((cardType.value == 2 && !ccNumber.value.match(ccre16)) || (cardType.value == 1 && !ccNumber.value.match(ccre16))) { alert("Credit card number must contain 16 digits"); ccNumber.focus(); return false ; } } if (newCard || ( ("'" + findChild(form, 'CVC').onfocus + "'").indexOf('clearOnFocus') == -1 && !checkForNull(findChild(form, 'CVC').value) ) ) { // CVC was changed cardType = findChild(form, 'paymentType'); CVC = findChild(form, 'CVC'); var re = new RegExp('^ | $'); if(CVC.value.match(re)) { alert("The Security code cannot contain spaces before or after the number"); CVC.focus(); return false ; } re = new RegExp('^[0-9][0-9][0-9]$'); if(cardType == 1 && !CVC.value.match(re) ) { alert("Security code should contain 3 digits."); CVC.focus(); return false ; } if(cardType == 2 && !CVC.value.match(re) ) { alert("Security code should contain 3 digits."); CVC.focus(); return false ; } re = new RegExp('^[0-9][0-9][0-9][0-9]$'); if(cardType == 3 && !CVC.value.match(re) ) { alert("Security code should contain 4 digits."); CVC.focus(); return false ; } } return true ; } function validateCCFormServerSide(form, newCard) { // cc number check // if this is a new card or cc number field was visited (onfocus != null) and not empty (user typed something after onfocus). if (newCard || ( ("'" + findChild(form, 'ccNumber').onfocus + "'").indexOf('clearOnFocus') == -1 && !checkForNull(findChild(form, 'ccNumber').value) ) ) { cardType = findChild(form, 'paymentType'); ccNumber = findChild(form, 'ccNumber'); if (cardType.value == 2 && !ccNumber.value.match("^5.*")) { // master card if (!confirm("It seems that your credit card is not a MasterCard. Please check and try again.")) { cardType.focus(); return false ; } } else if (cardType.value == 1 && !ccNumber.value.match("^4.*")) { if (!confirm("It seems that your credit card is not a Visa. Please check and try again.")) { cardType.focus(); return false ; } } } if (newCard || ( ("'" + findChild(form, 'CVC').onfocus + "'").indexOf('clearOnFocus') == -1 && !checkForNull(findChild(form, 'CVC').value) ) ) { // CVC was changed cardType = findChild(form, 'paymentType'); CVC = findChild(form, 'CVC'); } return true ; } function lockConfirmPaymentButton(submitElementId) { if (document.getElementById('buyCreditInProgress') == null) { return true; } if (submitElementId != null) { submitElement = document.getElementById(submitElementId); submitElement.style.display='none'; submitElement.parentNode.style.display='none'; submitElement.parentNode.parentNode.style.display='none'; } document.getElementById('buyCreditInProgress').style.display='block'; return true; } function lockSubmitButton(buttonId) { submitButton = document.getElementById(buttonId); if (submitButton != null) { submitButton.disabled = true; } return true; } function focusInputField(formId, inputId) { var inputs = document.getElementsByTagName('input'); for(i=0; i < inputs.length; i++) { var elementId = inputs[i].id; if (inputs[i].id.match(".*" + formId + ".*" + inputId)) { inputs[i].focus(); break; } } }