//style Sheet Functions========================================================= //============================================================================== function setActiveStyleSheet(title) { var i, a, main; for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) { a.disabled = true; if(a.getAttribute("title") == title) a.disabled = false; } } } function getActiveStyleSheet() { var i, a; for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title"); } return null; } function getPreferredStyleSheet() { var i, a; for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("rel").indexOf("alt") == -1 && a.getAttribute("title") ) return a.getAttribute("title"); } return null; } function createCookie(name,value,days) { if (days) { var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); } else expires = ""; document.cookie = name+"="+value+expires+"; path=/"; } function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; } //General Functions============================================================= //============================================================================== //Add guest functions ========================================================== //============================================================================== // clearForm ------------------------------------------------------------------- // ----------------------------------------------------------------------------- function clearForm() { var firstName = $('guestFirstName'); var lastName = $('guestLastName'); var company = $('guestCompany'); var email = $('guestEmail'); var phone = $('guestPhone'); var foodOptionR = $('guestFoodOptionR'); var foodOptionV = $('guestFoodOptionV'); firstName.value = ''; lastName.value = ''; company.value = ''; email.value = ''; phone.value = ''; foodOptionR.checked = 'true'; } // createHiddenInput // createHiddenInput ------------------------------------------------------------ // creates a hidden input with name/value // ----------------------------------------------------------------------------- function createHiddenInput(name, value) { var input = document.createElement('input'); input.setAttribute('type','hidden'); input.setAttribute('name', name); input.setAttribute('id', name); input.setAttribute('value', value); return input; } // createHiddenInput // createX --------------------------------------------------------------------- // creates and X button // ----------------------------------------------------------------------------- function createX(id) { var div = document.createElement('div'); //div.setAttribute('class', 'delete'); var a = document.createElement('a'); var text = document.createTextNode('X'); //var img = createImg('images/icon-delete.gif', 'Delete'); //a.appendChild(img); a.appendChild(text); a.setAttribute('href', '#'); a.setAttribute('class', 'deleteGuest'); a.setAttribute('id', 'deleteGuest-' + id); div.appendChild(a); return div; } // createX // createGuestListItem() // ----------------------------------------------------------------------------- // adds a li to an existing ul or creates the ul if it doesn't exist. // ----------------------------------------------------------------------------- function createGuestListItem() { var id = $('guestId').value; var firstName = $('guestFirstName'); var lastName = $('guestLastName'); var company = $('guestCompany'); var email = $('guestEmail'); var phone = $('guestPhone'); var foodOptionR = $('guestFoodOptionR'); var foodOptionV = $('guestFoodOptionV'); //sort out food options if(foodOptionR.checked) { var foodOption = foodOptionR.value; } else { var foodOption = foodOptionV.value; } var li = document.createElement('li'); li.setAttribute('id', 'guest-' + id); var text = document.createTextNode(firstName.value + ' ' + lastName.value); var x = createX(id); var iFirstName = createHiddenInput('guestFirstName-' + id, firstName.value); var iLastName = createHiddenInput('guestLastName-' + id, lastName.value); var iCompany = createHiddenInput('guestCompany-' + id, company.value); var iEmail = createHiddenInput('guestEmail-' + id, email.value); var iPhone = createHiddenInput('guestPhone-' + id, phone.value); var iFoodOption = createHiddenInput('guestFoodOption-' + id, foodOption); li.appendChild(iFirstName); li.appendChild(iLastName); li.appendChild(iCompany); li.appendChild(iEmail); li.appendChild(iPhone); li.appendChild(iFoodOption); li.appendChild(text); li.appendChild(x); return li; } // createGuestListItem // addListItem // ----------------------------------------------------------------------------- // adds a li to an existing ul or creates the ul if it doesn't exist. // ----------------------------------------------------------------------------- function addListItem() { var div = $('guestList'); if(div.innerHTML == '') { var tUl = document.createElement('ul'); div.appendChild(tUl); } // add an item to the list var ul = div.getElementsByTagName('ul')[0]; var item = createGuestListItem(); ul.appendChild(item); //add one to the number of guests attending var id = $('numberOfGuests'); id.innerHTML = 1 + parseInt($('numberOfGuests').innerHTML); //increase global id var gid = $('guestId'); gid.value = 1 + parseInt($('guestId').value); //clear and toggle form and do stuff with behavior Effect.toggle('guestForm', 'blind'); Behaviour.apply(); clearForm(); //getElementsByTagName('input'); } // addListItem // deleteListItem // ----------------------------------------------------------------------------- // adds a li to an existing ul or creates the ul if it doesn't exist. // ----------------------------------------------------------------------------- function deleteListItem(id) { var li = $('guest-' + id); var ul = li.parentNode; ul.removeChild(li); //subtract one from the number of guests attending var id = $('numberOfGuests'); id.innerHTML = parseInt($('numberOfGuests').innerHTML) - 1; } // deleteListItem // validateForm // ----------------------------------------------------------------------------- // makes sure the required for fields are filled out // ----------------------------------------------------------------------------- function validateForm(cn) { var requiredLabels = document.getElementsByClassName(cn); var tempArray = new Array(); for(var i = 0; i < requiredLabels.length; i ++) { var input = $(requiredLabels[i].htmlFor); if(input.value == '') { //alert(input.id); tempArray.push(requiredLabels[i]); } } if(tempArray.length < 1) { return true; } else { var strError = ''; for(var j = 0; j < tempArray.length; j ++) { strError = strError + ', ' + tempArray[j].innerHTML; } alert("Please fill out the following required fields \n\n " + strError); return false; } } // validateForm // prepareFormForPayPal // ----------------------------------------------------------------------------- // clears form and sets the action to PayPal // ----------------------------------------------------------------------------- function prepareFormForPayPal() { $('ccName').disabled = 'disabled'; $('ccNumber').disabled = 'disabled'; $('ccExpMonth').disabled = 'disabled'; $('ccExpYear').disabled = 'disabled'; $('ccCVV').disabled = 'disabled'; $('ccAddress1').disabled = 'disabled'; $('ccAddress2').disabled = 'disabled'; $('ccCity').disabled = 'disabled'; $('ccState').disabled = 'disabled'; $('ccZip').disabled = 'disabled'; //get form and decide the action var form = $('paymentForm'); if(form.hasClassName('renewal')) { $('paymentForm').action = 'server.php?m=renewal-paypal'; } else { $('paymentForm').action = 'server.php?m=paypal'; } } // prepareFormForPayPal // openUpForm // ----------------------------------------------------------------------------- // opens form and sets the action to normal // ----------------------------------------------------------------------------- function openUpForm() { $('ccName').disabled = false; $('ccNumber').disabled = false; $('ccExpMonth').disabled = false; $('ccExpYear').disabled = false; $('ccCVV').disabled = false; $('ccAddress1').disabled = false; $('ccAddress2').disabled = false; $('ccCity').disabled = false; $('ccState').disabled = false; $('ccZip').disabled = false; //get form and decide the action var form = $('paymentForm'); if(form.hasClassName('renewal')) { $('paymentForm').action = 'renewal-paymentReceipt.php'; } else { $('paymentForm').action = 'paymentReceipt.php'; } } // openUpForm //Behaviour rules=============================================================== //============================================================================== var myrules = { '#firstSubmit' : function(element){ element.onclick = function(){ if(validateForm('required')) { $('informationForm').submit(); return false; } } }, '#secondSubmit' : function(element){ element.onclick = function(){ if(validateForm('required')) { $('informationForm').submit(); return false; } } }, '#addGuest' : function(element){ element.onclick = function(){ Effect.toggle('guestForm', 'blind'); return false; } }, '#addGuestButton' : function(element){ element.onclick = function(){ if(validateForm('guestRequired')) { addListItem(); } return false; } }, '#cancelGuestButton' : function(element){ element.onclick = function(){ Effect.toggle('guestForm', 'blind'); clearForm(); } }, /*'#guestList li div a' : function(element){ element.onclick = function(){ var id = element.id.split('-')[1]; deleteListItem(id); return false; } },*/ '#guestList li div' : function(element){ element.onclick = function(){ var a = element.getElementsByTagName('a'); a = a[0]; var id = a.id.split('-')[1]; deleteListItem(id); return false; } }, '.radio' : function(element){ element.onclick = function(){ var li = element.parentNode; var ul = li.parentNode; var radios = ul.getElementsByTagName('input'); for(i = 0; i < radios.length; i ++) { var tLi = radios[i].parentNode; if(Element.hasClassName(tLi, 'selected')) { Element.removeClassName(tLi, "selected"); } } Element.addClassName(li, "selected"); return true; } }, '#ccType' : function(element){ element.onchange = function(){ if(element.value == 'PayPal') { prepareFormForPayPal(); } else { openUpForm(); } } }, '#specialSessionYes' : function(element){ element.onchange = function(){ var value = Form.Element.getValue(element); if(value == 'Yes') { var display = $('sessions').getStyle('display'); if(display == 'none') { if($('seatingQuestions').getStyle('display') != 'none') { new Effect.BlindUp($('seatingQuestions'), {duration: .3, queue: 'end'}); } new Effect.BlindDown($('sessions'), {duration: .3, queue: 'end'}); new Effect.ScrollTo('sessions', {duration: .5, queue: 'end'}); } } } }, '#specialSessionNo' : function(element){ element.onchange = function(){ var value = Form.Element.getValue(element); if(value == 'No') { var display = $('seatingQuestions').getStyle('display'); if(display == 'none') { if($('sessions').getStyle('display') != 'none') { new Effect.BlindUp($('sessions'), {duration: .3, queue: 'end'}); } new Effect.BlindDown($('seatingQuestions'), {duration: .3, queue: 'end'}); new Effect.ScrollTo('seatingQuestions', {duration: .5, queue: 'end'}); } } } } }; Behaviour.register(myrules); Behaviour.addLoadEvent(function() { }); //General ====================================================================== //============================================================================== window.onunload = function(e) { var title = getActiveStyleSheet(); createCookie("style", title, 365); } var cookie = readCookie("style"); var title = cookie ? cookie : getPreferredStyleSheet(); setActiveStyleSheet(title);