   var saveHeight;
   var showing = true;

	function submitForm(formId){
		var theForm = document.getElementById(formId);
		if(theForm != null){
			theForm.submit();
		}
		else{
			alert("Refresh page. Form cannot be found.");
		}
	}

   function locationChange(){
		var response = confirm("Changing location will empty your cart.");
		if(response){
			document.changeLocation.submit();
		}
		else{
			document.changeLocation.locationId.selectedIndex = 0;
		}
	}

   function toggleSlide() {
      if ( showing )
         { slideMenuUp(); showing = false; }
      else
         { slideMenuDown(); showing = true; }
   }

   function slideMenuUp() {
      var menu = $('demosMenu');
      saveHeight = menu.offsetHeight;

      menu.style.overflow = "hidden";
      new Rico.Effect.Size( menu, null, 1, 120, 8 );

      $('demoPanelLink').innerHTML = "Show demo panel";
   }

   function slideMenuDown() {
      var menu = $('demosMenu');
      new Rico.Effect.Size( menu, null, saveHeight, 120, 8, {complete:function() { $(menu).style.overflow = "visible"; }} );
      $('demoPanelLink').innerHTML = "Hide demo panel";
   }
 	 
 	function doMove() {
 	if (parseInt(thisMove.style.bottom) < 195) { 
	 thisMove.style.bottom = parseInt(thisMove.style.bottom)+65+'px';
   	setTimeout(doMove, 202);
	 }
	 else { thisMove.style.bottom = parseInt(thisMove.style.bottom)+5+'px';
					 
	  }
    }
   function slideUp(x) {
   thisMove = document.getElementById(x);
   if (parseInt(thisMove.style.bottom) > 195) {
   thisMove.style.bottom = '0px';
   
   }
   else {
   thisMove.style.position = "relative"; 
   thisMove.style.bottom = '0px';
   
   doMove();
   }
   }
   
   function infoBox() {
	   locationsBox.style.display = 'block';
	   var locationsBoxHeight = getLocationBoxHeight();
	   locationsBox.style.marginBottom = '-' + locationsBoxHeight + 'px';
   }
   
   function infoBoxOut() {
   	locationsBox.style.display = 'none';
   }
   
   	function getLocationBoxHeight() {
		x = document.getElementById('locations-box');
		return x.offsetHeight;
	}
	
	function viewHours(resInfoId){
		for(x=1; x<8; x++){
			day = document.getElementById("day_" + resInfoId + "_" + x);
			if(day != null){
				if(day.style.display == 'none'){
					day.style.display = '';
				}		
				else{
					day.style.display = 'none';
				}
			}
		}
		
		text = document.getElementById("reshours_" + resInfoId);
		if(text.innerHTML == 'view all'){
			text.innerHTML = 'view today\'s';
		}
		else{
			text.innerHTML = 'view all';
		}
	}
   
   function validateMenu(form){
		var elements = form.elements;
		var element_length = form.elements.length;
		
		for(i = 0; i < element_length; i++){
			if(elements[i].type == 'select-one' && elements[i].name != 'Extras'){
				if(elements[i].options[elements[i].selectedIndex].value == 0){
					alert(elements[i].name + " is required.");
					return false;
				}
			}
		}
		return true;
   	}

   	function getElementsByClass(searchClass,node,tag) {
		var classElements = new Array();
		if ( node == null )
			node = document;
		if ( tag == null )
			tag = '*';
		var els = node.getElementsByTagName(tag);
		var elsLen = els.length;
		var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
		for (i = 0, j = 0; i < elsLen; i++) {
			if ( pattern.test(els[i].className) ) {
				classElements[j] = els[i];
				j++;
			}
		}
		return classElements;
	}
	
	function showCredit(){
		var newCreditCard = document.getElementById('new-credit-card')
		if(newCreditCard != null){
			newCreditCard.style.display = "block";	
		}
	}
	function hideCredit(){
		var newCreditCard = document.getElementById('new-credit-card')
		if(newCreditCard != null){
			newCreditCard.style.display = "none";	
		}
	}
	
	function addressChangeAjax(select){
		newAddressId = select.options[select.selectedIndex].value;

		if(newAddressId != 0){
			var sendData = "newAddress=" + newAddressId;
			
			ajax = new ajaxRequest;
			ajax.send(false, "/checkout.food?event=doChangeAddress", sendData, "addressChange", newAddressId);
		}
	}	
			
	function addressChange(dom, newAddressId){						
		// change all address selects to the same value
		for(i = 0; i < totalRestaurants; i++){
			newAddressSelect = document.getElementById('newAddress-' + i);
			if(newAddressSelect != null){
				for(j = 0; j < newAddressSelect.options.length; j++){
					if(newAddressSelect.options[j].value == newAddressId)
						newAddressSelect.selectedIndex = j;
				}
			}
		}
	}
	
	function setDelivery(deliveryType, resId){
		var http_request = false;

	    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
	        http_request = new XMLHttpRequest();
	        if (http_request.overrideMimeType) {
	            http_request.overrideMimeType('text/xml');
	        }
	    } else if (window.ActiveXObject) { // IE
	        try {
	            http_request = new ActiveXObject("Msxml2.XMLHTTP");
	        } catch (e) {
	            try {
	                http_request = new ActiveXObject("Microsoft.XMLHTTP");
	            } catch (e) {}
	        }
	    }
	
	    if (!http_request) {
	        alert('Cannot create an XMLHTTP instance');
	        return false;
	    }
		
		http_request.onreadystatechange = function() { 
			if (http_request.readyState == 4) {
	            if (http_request.status != 200) {
	                alert('There was a problem with the request.');
	            }
	            if(http_request.status == 200){
	            	if(window.XMLHttpRequest){
	            		xmlDoc = document.implementation.createDocument("", "", null);
						
						var resp = http_request.responseText;
						var parser = new DOMParser();
						var dom = parser.parseFromString(resp, "text/xml");
						
						feeVal = dom.getElementsByTagName("fee");
						var fee = document.getElementById("checkoutStatusBar-fees");
						fee.firstChild.nodeValue = feeVal[0].childNodes[0].nodeValue;
						
						taxVal = dom.getElementsByTagName("tax");
						var tax = document.getElementById("checkoutStatusBar-tax");
						tax.firstChild.nodeValue = taxVal[0].childNodes[0].nodeValue;
						
						totalVal = dom.getElementsByTagName("total");
						var total = document.getElementById("checkoutStatusBar-total");
						total.firstChild.nodeValue = totalVal[0].childNodes[0].nodeValue;
						
						totalVal = dom.getElementsByTagName("checkout");
						var total = document.getElementById("checkout-total");
						total.firstChild.nodeValue = totalVal[0].childNodes[0].nodeValue;
	            	}
	            	else if(window.ActiveXObject){
	            		var resp = http_request.responseText;
						var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
						xmlDoc.async="false";
						xmlDoc.loadXML(resp);
						
						nodes = xmlDoc.documentElement.childNodes;
						
						feeVal = xmlDoc.getElementsByTagName("fee");
						var fee = document.getElementById("checkoutStatusBar-fees");
						fee.firstChild.nodeValue = feeVal[0].firstChild.data;
						
						taxVal = xmlDoc.getElementsByTagName("tax");
						var tax = document.getElementById("checkoutStatusBar-tax");
						tax.firstChild.nodeValue = taxVal[0].firstChild.data;
						
						totalVal = xmlDoc.getElementsByTagName("total");
						var total = document.getElementById("checkoutStatusBar-total");
						total.firstChild.nodeValue = totalVal[0].firstChild.data;
						
						totalVal = xmlDoc.getElementsByTagName("checkout");
						var total = document.getElementById("checkout-total");
						total.firstChild.nodeValue = totalVal[0].firstChild.data;
	            	}	
	            	
	            	if(deliveryType == 2){
	    				document.getElementById('choose-location-' + resId).style.display = 'block';
	    			}
	    			else{
	    				document.getElementById('choose-location-' + resId).style.display = 'none';
	    				eval('document.deliveryForm.restaurantInfo_' + resId + '.selectedIndex = 0');
	    			}
	    			
	    			if(!checkoutNeedAddress()){
						document.getElementById('address-control').style.display = 'none';
					}
					else{
						document.getElementById('address-control').style.display = 'block';
					}
	            }
	        }
		};
	    http_request.open('POST', 'checkout.food?event=doSetDelivery', true);
	    http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	    http_request.send('deliveryType=' + deliveryType + '&resId=' + resId);
	}	
	
	function checkoutNeedAddress(){
		var elements = document.deliveryForm.elements;
		var elementChecked = false;
		for(i = 0; i < elements.length; i++){		
			if(elements[i].name.indexOf('deliveryMethod') == 0){
				var btns = eval('document.deliveryForm.' + elements[i].name);
				btn = validateRadioButton(btns);
				if(btn == null || btn == 1) elementChecked = true;
			}
		}
		
		return elementChecked;
	}
	
	function validateRadioButton(btn) {
	    var cnt = -1;
	    for (var i=btn.length-1; i > -1; i--) {
	        if (btn[i].checked) {cnt = i; i = -1;}
	    }
	    if (cnt > -1) return btn[cnt].value;
	    else return null;
	}
		
	function validateDeliveryForm(){
		for(i = 0; i < totalRestaurants; i++){	
			input = document.getElementById('deliveryType-' + i);
			if(input.value == 0){
				alert('Please select either carry out, delivery, or dine in for each restaurant.');				
				return false;
			}	
			if(input.value == 1){
				select = document.getElementById('newAddress-' + i);
				if(select == null || select.options[select.selectedIndex].value == 0){
					alert('Please select an address or create a new address to deliver to.');
					return false;
				}
			}
			/*else{
				select = document.getElementById('restaurantInfo-' + i);
				if(select == null || select.options[select.selectedIndex].value == 0){
					alert('Please select a restuarant location to pickup your order from.');					
					return false;
				}
			}*/
		}
		
		
		
		return true;
	}	
	
	function validateDeliveryFormOld(){
		var elements = document.deliveryForm.elements;
		var elementChecked = false;		
		
		for(i = 0; i < elements.length; i++){		
			if(elements[i].name.indexOf('deliveryMethod') == 0){
				var btns = eval('document.deliveryForm.' + elements[i].name);
				btn = validateRadioButton(btns);
				
				if(btn == null){
					alert('Please select delivery or carry out for each restaurant.');
					return false;
				}
				else if(btn == 2){
					var loc = elements[i].name.indexOf("_");
					var resId = elements[i].name.substring(loc+1, elements[i].name.length);
					if(eval('document.deliveryForm.restaurantInfo_' + resId + '.selectedIndex == 0')){
						alert('Please select a carry out location for each restaurant.');	
						return false;
					}
				}
			}
		}
		return true;
	}
	
	function checkNewCreditCard(form){
		var formLocation = -1;
		for(i = 0; i < document.forms.length; i++){
			if(document.forms[i].name == "checkoutForm" && document.forms[i].action.indexOf("doProcess") != -1){
				formLocation = i;
			}
		}
		
		var elements = document.forms[formLocation].elements;
		
		for(i = 0; i < elements.length; i++){		
			if(elements[i].name.indexOf('paymentOption') == 0){
				var length = eval('document.forms['+formLocation+'].' + elements[i].name + '.length');
				for(j = 0; j < length; j++){
					if(eval('document.forms['+formLocation+'].' + elements[i].name + '[' + j + '].checked')){
						if(eval('document.forms['+formLocation+'].' + elements[i].name + '[' + j + '].value') == 'creditcard'){
							return true;
						}
					}
				}
			}
		}
		
		return false;
	}
	
	function validateNewCreditCard(form){
		var proceed = true;
		var msg = "";

		if(form.creditCardName.value.length == 0){
			proceed = false;
			msg = "Credit Card Name is required.\n";
		}
		if(form.creditCardNumber.value.length == 0){
			proceed = false;
			msg = msg + "Credit Card Number is required.\n";
		}
		if(form.creditCardType.value == 0){
			proceed = false;
			msg = msg + "Credit Card Type is required.\n";
		}
		if(form.creditCardCVV.value.length == 0){
			proceed = false;
			msg = msg + "Credit Card CVV is required.\n";
		}
		if(form.creditCardExpMonth.value == 0){
			proceed = false;
			msg = msg + "Credit Card Experation Month is required.\n";
		}
		if(form.creditCardExpYear.value == 0){
			proceed = false;
			msg = msg + "Credit Card Experation Year is required.\n";
		}
		
		var gotDefault = false;
		for(var i = 0; i < form.defaultPayment.length; i++){
			if(form.defaultPayment[i].checked){
				gotDefault = true;
			}
		}
		
		if(!gotDefault){
			proceed = false;
			msg = msg + "Please choose if you want this card to be your default card.\n";
		}
		
		if(!proceed){
			alert(msg);
		}
		
		return proceed;
	}
	
	function validateNewAddress(form){
		var proceed = true;
		var msg = "";
		
		if(form.addressLabel.value.length == 0){
			proceed = false;
			msg = "Address Label is required.\n";
		}		
		if(form.address.value.length == 0){
			proceed = false;
			msg = msg + "Address is required.\n";
		}
		if(form.address.value.length == 0){
			proceed = false;
			msg = msg + "Address is required.\n";
		}
		if(form.city.value.length == 0){
			proceed = false;
			msg = msg + "City is required.\n";
		}
		if(form.state.value.length == 0){
			proceed = false;
			msg = msg + "State is required.\n";
		}
		if(form.zipCode.value.length == 0){
			proceed = false;
			msg = msg + "Zip Code is required.\n";
		}
		
		var gotDefault = false;
		for(var i = 0; i < form.defaultAddress.length; i++){
			if(form.defaultAddress[i].checked){
				gotDefault = true;
			}
		}
		
		if(!gotDefault){
			proceed = false;
			msg = msg + "Please choose if you want this to be your default address.\n";
		}
		
		if(!proceed){
			alert(msg);
		}
		
		return proceed;	
	}
	
	function validateCheckout(form){
		if(validateDeliveryForm()){
			/*if(form.validateAddress.value == 1){
				if(!validateNewAddress(form)){
					return false;
				}
			}*/
			
			if(checkNewCreditCard(form)){
				if(validateNewCreditCard(form)){
					 return validateCheckoutForm(form);
				}
				else{ 
					return false;
				}
			}
		}else{
			return false;
		}
		
		return true;
	}

	function validateCreateUser(form){
		if(form.validateLocation != null && form.validateLocation.value == "yes"){
			if(form.location.selectedIndex == 0){
				alert('Please select a location.');
				return false;
			}
		}
		
		return validateCreateUserForm(form);
	}
	
	function validatePayment(form){
		if(form.type.selectedIndex == 0){
			alert('Please select a credit card type.');
			return false;
		}
		return validatePaymentForm(this);
	}

	function addEvent(obj, type, fn) {
		if (obj.addEventListener)
			obj.addEventListener(type, fn, false);
		else if (obj.attachEvent) {
			obj["e" + type + fn] = fn;
			obj[type + fn] = function() { obj["e" + type + fn] (window.event); }
			obj.attachEvent("on" + type, obj[type+fn]);
		}
	}
			
	function removeEvent(obj, type, fn) {
		if (obj.removeEventListener)
			obj.removeEventListener(type, fn, false);
		else if (obj.detachEvent) {
			obj.detachEvent("on" + type, obj[type+fn]);
			obj[type+fn] = null;
			obj["e" + type + fn] = null;
		}
	}
	
	 /**
	  * gets the contents of the form as a URL encoded String
	  * suitable for appending to a url
	  * @param formName to encode
	  * @return string with encoded form values , beings with &
	  */ 
	/* function getFormAsString(formName){
	 	
	 	//Setup the return String
	 	returnString ="";
	 	
	  	//Get the form values
	 	formElements=document.forms[formName].elements;
	 	
	 	//loop through the array , building up the url
	 	//in the form /strutsaction.do&name=value
	 	
	 	for ( var i=formElements.length-1; i>=0; --i ){
	 		//we escape (encode) each value
	 		if(formElements[i].checked || formElements[i].name == 'menuItemId' || formElements[i].name == 'specialId'){
		 		returnString=returnString+"&"+escape(formElements[i].name)+"="+escape(formElements[i].value);
	 		}
	 	}
	 	//returnString+="&lastEntered=" + escape(lastEntered);
		if(returnString[0])
	 	//return the values
	 	return returnString; 
	 }*/
	 
	 function getFormAsString(formName){

		  //Setup the return String
		  returnString ="";

		  //Get the form values
		  var formElements = document.forms[formName].elements;

		  //loop through the array, building up the url
		  //in the format '/strutsaction.do&name=value'
		 
		  for(var i=formElements.length-1;i>=0; --i ){
		        //we escape (encode) each value
		        if(formElements[i].type == "radio" || formElements[i].type == "checkbox"){
		        	if(formElements[i].checked){
				        returnString+="&" 
				        +escape(formElements[i].name)+"=" 
				        +escape(formElements[i].value);
				    }
			    } else if (formElements[i].type == "select-multiple") {
			    	for (var j = 0; j < formElements[i].childNodes.length; j++) {
			    		if (formElements[i].childNodes[j].selected)
			    			returnString += "&" + escape(formElements[i].name) + "=" + escape(formElements[i].childNodes[j].value);
			    	}
			    } else {
			    	returnString+="&" 
			        +escape(formElements[i].name)+"=" 
			        +escape(formElements[i].value);
			 	}
		 }
		        
		 if(returnString.charAt(0) == '&'){
			returnString.substring(1);
		 }
		 
		 //return the values
		 return returnString; 
	 }
	 
	 function checkMenuName(id, name){
		nameLength = name.length;
		if(nameLength >= 20){
			document.getElementById(id).style.fontSize = "13px";
		}
		if(nameLength >= 25){
			document.getElementById(id).style.fontSize = "12px";
		}
		if(nameLength >= 30){
			document.getElementById(id).style.fontSize = "9px";
		}	
		if(nameLength >= 35){
			document.getElementById(id).style.fontSize = "9px";
		}	
	 }	
	 
	 function checkAttributeLabel(id, name){
		nameLength = name.length;
		if(nameLength >= 13){
			document.getElementById(id).style.fontSize = "8px";
		}
	 }	
	 
	 function validateDefaultLocation(form){
		 if(form.location.selectedIndex == 0){
			alert('Please select a location.');
			return false;
		}
		return true;
	}
	
	var currentDate = new Date();
	currDate = currentDate.getDate();
	currMonth = currentDate.getMonth();
	currYear = currentDate.getYear();
	combine = "?date=" + currDate + "&month=" + currMonth + "&year=" + currYear;
	newCurrDate = currDate;
	newCurrMonth = currMonth + 1;
	if (newCurrDate < 10)
	{
		newCurrDate = "0" + newCurrDate;
	}
	if (newCurrMonth < 10)
	{
		newCurrMonth = "0" + newCurrMonth;
	}
	checkDate = newCurrMonth + "/" + newCurrDate + "/" + currYear;
	
	function openCalendar(formName, inputName, type)
	{
		if (type == "")
			type = "day";
			
		combine = "?formName=" + formName + "&inputName=" + inputName + "&type=" + type;
		if (eval("document." + formName + "." + inputName).value != "")
		{
			var newFullDate = eval("document." + formName + "." + inputName).value;
			currMonth = newFullDate.substring(5,7);
			currDate = newFullDate.substring(8,10);
			currYear = newFullDate.substring(0,4);
			combine += "&date=" + currDate + "&month=" + currMonth + "&year=" + currYear;
		}
		window.open("calendar.jsp" + combine,"myCalendar","width=366,height=215,status,resize=yes");
	}
	
	function addCalButton() {
		var elms = getElementsByClass("calDate");
		for (var i = 0; i < elms.length; i++) {
			var elm = elms[i];
			var elm2 = elm;
			while (elm2.nodeName != "FORM") {
				elm2 = elm2.parentNode;
			}
			var elm3 = elm.nextSibling;
			var aElm = document.createElement("a");
			aElm.href = "javascript: openCalendar('" + elm2.name + "','" + elm.name + "','')";
			var imgElm = document.createElement("img");
			imgElm.src = "images/calendar.gif";
			imgElm.style.border = "0";
			aElm.appendChild(imgElm);
			if (elm3 == null) {
				elm.parentNode.appendChild(aElm);
			} else {
				elm.parentNode.insertBefore(aElm,elm3);
			}
		}
	}

	addEvent(window,'load',addCalButton);
	
	function updateCheckoutQtyAjax(select, cartItemId, resId, oldQty, askToRemove, orderPage, totalRestaurants){
		qtyValue = select.selectedIndex;		
		var confirmAnswer = true;

		if(qtyValue == 0 && (askToRemove == null || askToRemove))
			confirmAnswer = confirm("Want to remove this item from your order?");
			
		if(qtyValue == 0 && confirmAnswer){
			remove = "true";
			qtyValue = 0;
		}
		else{
			if(qtyValue == 0)
				qtyValue = select.selectedIndex = oldQty;
			remove = "false";
		}
		
		var sendData = "cartItemId=" + cartItemId + "&resId=" + resId + "&qty=" + qtyValue + "&remove=" + remove;

		ajax = new ajaxRequest;
		if(orderPage){
			ajax.send(false, "/viewOrder.food?event=doUpdateQty", sendData, "updateCheckoutQty", cartItemId + "," + resId + "," + remove + "," + totalRestaurants);	
		}
		else{
			ajax.send(false, "/checkout.food?event=doUpdateQty", sendData, "updateCheckoutQty", cartItemId + "," + resId + "," + remove + "," + totalRestaurants);
		}
	}
	
	function updateCheckoutQty(dom, cartItemId, resId, remove, totalRestaurants){
		changeQtyInfo = dom.getElementsByTagName("change-qty")[0];
		
		if(changeQtyInfo != null){
			checkoutTotal = changeQtyInfo.getAttribute("cartTotal");
			if(checkoutTotal == 0.00){
				checkoutButtonDiv = document.getElementById("checkout-button-id");
				if(checkoutButtonDiv != null){
					checkoutButtonDiv.style.display = "none";
				}
				// TODO: Get rid of 9?
				window.location.href = "/start.food?event=doLocation"; //"start.food?event=toSimpleIndex";
				return;
			}
			
			deliveryMinimum = changeQtyInfo.getAttribute('deliveryMinimum');
			deliveryTabDiv = document.getElementById('restaurantDeliveryTab-' + resId);
			/*if(Number(checkoutTotal) < Number(deliveryMinimum)){
				deliveryTabDiv.className = "delivery this_off";
				removeEvent(deliveryTabDiv,'click',function(){switchDeliveryTypeAjax(resId, 1, false, totalRestaurants, true);});
			}
			else{
				deliveryTabDiv.className = "delivery";
				addEvent(deliveryTabDiv,'click',function(){switchDeliveryTypeAjax(resId, 1, false, totalRestaurants, true);});			
			}*/
						
			if(remove){
				restaurantItemsTable = document.getElementById("restaurantItems-" + resId);
				
				cartItemRow = document.getElementById("cartItem-" + resId + "-" + cartItemId);
				if(cartItemRow != null){
					cartItemRow.parentNode.removeChild(cartItemRow);
				}
				
				cartItemHeaderRow = document.getElementById("cartItemHeader-" + resId + "-" + cartItemId);				
				if(cartItemHeaderRow != null){				
					cartItemHeaderRow.parentNode.removeChild(cartItemHeaderRow);				
				}
			}
			else{
				newPrice = changeQtyInfo.getAttribute("newPrice");
				priceTd = document.getElementById("cartItemPrice-" + resId + "-" + cartItemId);
				
				while (priceTd.firstChild){
				    priceTd.removeChild(priceTd.firstChild);
				};
				
				priceTd.appendChild(document.createTextNode(newPrice));
			}
			restaurantSubtotal = changeQtyInfo.getAttribute("restaurantSubtotal");
			
			if(restaurantSubtotal == 0.00){
				document.getElementById("restaurantCart-" + resId).style.display = "none";
			}
			
			restaurantSubtotalDiv = document.getElementById("restaurantSubtotal-" + resId);
			
			if(restaurantSubtotalDiv != null){
				while (restaurantSubtotalDiv.firstChild){
				    restaurantSubtotalDiv.removeChild(restaurantSubtotalDiv.firstChild);
				};
				
				restaurantSubtotalDiv.appendChild(document.createTextNode(restaurantSubtotal));
			}
			
			checkoutTotal = changeQtyInfo.getAttribute("cartTotal");
			checkoutTotalDiv = document.getElementById("checkout-total");
			
			if(checkoutTotalDiv != null){
				while (checkoutTotalDiv.firstChild){
				    checkoutTotalDiv.removeChild(checkoutTotalDiv.firstChild);
				};
				
				checkoutTotalDiv.appendChild(document.createTextNode(checkoutTotal));
			}
			
			// top right nav values
			checkoutRightNavTotal = document.getElementById("checkoutRightNavTotal");
			
			if(checkoutRightNavTotal != null){
				while (checkoutRightNavTotal.firstChild){
				    checkoutRightNavTotal.removeChild(checkoutRightNavTotal.firstChild);
				};
				
				checkoutRightNavTotal.appendChild(document.createTextNode(checkoutTotal));
				
				checkoutTax = changeQtyInfo.getAttribute("cartTax");
				checkoutRightNavTax = document.getElementById("checkoutStatusBar-tax");
				
				while (checkoutRightNavTax.firstChild){
				    checkoutRightNavTax.removeChild(checkoutRightNavTax.firstChild);
				};
				
				checkoutRightNavTax.appendChild(document.createTextNode("tax: " + checkoutTax));				
				
				checkoutSubtotal = changeQtyInfo.getAttribute("cartSubtotal");
				checkoutRightNavSubtotal = document.getElementById("checkoutStatusBar-subtotal");		
				
				while (checkoutRightNavSubtotal.firstChild){
				    checkoutRightNavSubtotal.removeChild(checkoutRightNavSubtotal.firstChild);
				};
				
				checkoutRightNavSubtotal.appendChild(document.createTextNode("subtotal: " + checkoutSubtotal));	
			}
		}
	}
	
	function switchDeliveryTypeAjax(resId, deliveryType, override, totalRestaurants, hideDelivery){
		var sendData = "resId=" + resId + "&deliveryType=" + deliveryType;
		
		if (override)
			sendData += "&override=true";

		ajax = new ajaxRequest;
		ajax.send(false, "/checkout.food?event=doSetDelivery", sendData, "switchDeliveryType", deliveryType + "," + resId + "," + totalRestaurants + "," + hideDelivery);
	}
	
	function switchDeliveryType(dom, deliveryType, resId, totalRestaurants, hideDelivery){
		if(hideDelivery == null){
			hideDelivery = false;
		}
		
		changeTotals = dom.getElementsByTagName("totals")[0];
		if(changeTotals != null && changeTotals.getAttribute("errorMsg")==null){
			if(deliveryType == 1){
				document.getElementById("restaurantDelivery-" + resId).style.display = "block";
				document.getElementById("restaurantDeliveryTab-" + resId).className = "strong";
				document.getElementById("restaurantCarryOut-" + resId).style.display = "none";
				document.getElementById("restaurantCarryOutTab-" + resId).className = "";	
				document.getElementById("restaurantDineIn-" + resId).style.display = "none";
				document.getElementById("restaurantDineInTab-" + resId).className = "";
				
				var deliveryTab = document.getElementById("restaurantDeliveryTabText-" + resId);
				while(deliveryTab.firstChild){
					deliveryTab.removeChild(deliveryTab.firstChild);
				}
				
				deliveryTab.appendChild(document.createTextNode('Delivery'));
				
				var carryoutTab = document.getElementById("restaurantCarryOutTabText-" + resId);
				while(carryoutTab.firstChild){
					carryoutTab.removeChild(carryoutTab.firstChild);
				}
				
				carryoutTab.appendChild(document.createTextNode('Carry Out?'));
				
				var dineinTab = document.getElementById("restaurantDineInTabText-" + resId);
				while(dineinTab.firstChild){
					dineinTab.removeChild(dineinTab.firstChild);
				}
				
				dineinTab.appendChild(document.createTextNode('Dine In?'));
				
				var deliveryCheckoutText = document.getElementById('deliveryCheckoutText-' + resId);
				if(deliveryCheckoutText != null){
					deliveryCheckoutText.style.display = 'block';
				}
				
				var carryoutCheckoutText = document.getElementById('carryoutCheckoutText-' + resId);
				if(carryoutCheckoutText != null){
					carryoutCheckoutText.style.display = 'none';
				}
				
				var dineinCheckoutText = document.getElementById('dineinCheckoutText-' + resId);
				if(dineinCheckoutText != null){
					dineinCheckoutText.style.display = 'none';
				}
				
				if(hideDelivery){
					document.getElementById("restaurantCarryOutTab-" + resId).className = "this_off";
				}
				else{
					document.getElementById("restaurantCarryOutTab-" + resId).className = "";
				}
			}	
			else if(deliveryType == 3){
				document.getElementById("restaurantDelivery-" + resId).style.display = "none";
				document.getElementById("restaurantCarryOut-" + resId).style.display = "block";			
				document.getElementById("restaurantCarryOutTab-" + resId).className = "strong";		
				document.getElementById("restaurantDineIn-" + resId).style.display = "none";
				document.getElementById("restaurantDineInTab-" + resId).className = "";
				
				var deliveryTab = document.getElementById("restaurantDeliveryTabText-" + resId);
				while(deliveryTab.firstChild){
					deliveryTab.removeChild(deliveryTab.firstChild);
				}
				
				deliveryTab.appendChild(document.createTextNode('Delivery?'));
				
				var carryoutTab = document.getElementById("restaurantCarryOutTabText-" + resId);
				while(carryoutTab.firstChild){
					carryoutTab.removeChild(carryoutTab.firstChild);
				}
				
				carryoutTab.appendChild(document.createTextNode('Carry Out'));
				
				var dineinTab = document.getElementById("restaurantDineInTabText-" + resId);
				while(dineinTab.firstChild){
					dineinTab.removeChild(dineinTab.firstChild);
				}
				
				dineinTab.appendChild(document.createTextNode('Dine In?'));
				
				var deliveryCheckoutText = document.getElementById('deliveryCheckoutText-' + resId);
				if(deliveryCheckoutText != null){
					deliveryCheckoutText.style.display = 'none';
				}
				
				var carryoutCheckoutText = document.getElementById('carryoutCheckoutText-' + resId);
				if(carryoutCheckoutText != null){
					carryoutCheckoutText.style.display = 'block';
				}
				
				var dineinCheckoutText = document.getElementById('dineinCheckoutText-' + resId);
				if(dineinCheckoutText != null){
					dineinCheckoutText.style.display = 'none';
				}
				
				if(hideDelivery){
					document.getElementById("restaurantDeliveryTab-" + resId).className = "this_off";			
				}
				else{
					document.getElementById("restaurantDeliveryTab-" + resId).className = "";			
				}			
			}
			else{
				document.getElementById("restaurantDelivery-" + resId).style.display = "none";
				document.getElementById("restaurantCarryOut-" + resId).style.display = "none";			
				document.getElementById("restaurantCarryOutTab-" + resId).className = "";		
				document.getElementById("restaurantDineIn-" + resId).style.display = "block";
				document.getElementById("restaurantDineInTab-" + resId).className = "strong";		
				
				var deliveryTab = document.getElementById("restaurantDeliveryTabText-" + resId);
				while(deliveryTab.firstChild){
					deliveryTab.removeChild(deliveryTab.firstChild);
				}
				
				deliveryTab.appendChild(document.createTextNode('Delivery?'));
				
				var carryoutTab = document.getElementById("restaurantCarryOutTabText-" + resId);
				while(carryoutTab.firstChild){
					carryoutTab.removeChild(carryoutTab.firstChild);
				}
				
				carryoutTab.appendChild(document.createTextNode('Carry Out?'));
				
				var dineinTab = document.getElementById("restaurantDineInTabText-" + resId);
				while(dineinTab.firstChild){
					dineinTab.removeChild(dineinTab.firstChild);
				}
				
				dineinTab.appendChild(document.createTextNode('Dine In'));
				
				var deliveryCheckoutText = document.getElementById('deliveryCheckoutText-' + resId);
				if(deliveryCheckoutText != null){
					deliveryCheckoutText.style.display = 'none';
				}
				
				var carryoutCheckoutText = document.getElementById('carryoutCheckoutText-' + resId);
				if(carryoutCheckoutText != null){
					carryoutCheckoutText.style.display = 'none';
				}
				
				var dineinCheckoutText = document.getElementById('dineinCheckoutText-' + resId);
				if(dineinCheckoutText != null){
					dineinCheckoutText.style.display = 'block';
				}
				
				if(hideDelivery){
					document.getElementById("restaurantDeliveryTab-" + resId).className = "this_off";			
				}
				else{
					document.getElementById("restaurantDeliveryTab-" + resId).className = "";			
				}
			}
			
			checkoutTotal = changeTotals.getAttribute("cartTotal");
			checkoutTotalDiv = document.getElementById("checkout-total");
			
			if (checkoutTotalDiv != null) {
				while (checkoutTotalDiv.firstChild){
				    checkoutTotalDiv.removeChild(checkoutTotalDiv.firstChild);
				}
			
				checkoutTotalDiv.appendChild(document.createTextNode(checkoutTotal));
			}
			
			// top right nav values
			var checkoutRightNavTotal = document.getElementById("checkoutRightNavTotal-" + resId);
			
			while (checkoutRightNavTotal.firstChild){
			    checkoutRightNavTotal.removeChild(checkoutRightNavTotal.firstChild);
			};
			
			checkoutRightNavTotal.appendChild(document.createTextNode(changeTotals.getAttribute("resCartTotal")));
			
			checkoutTax = changeTotals.getAttribute("resCartTax");
			checkoutRightNavTax = document.getElementById("checkoutStatusBar-tax-" + resId);
			
			while (checkoutRightNavTax.firstChild){
			    checkoutRightNavTax.removeChild(checkoutRightNavTax.firstChild);
			};
			
			checkoutRightNavTax.appendChild(document.createTextNode("tax: " + checkoutTax));				
			
			checkoutSubtotal = changeTotals.getAttribute("resCartFee");
			checkoutRightNavSubtotal = document.getElementById("checkoutStatusBar-fees-" + resId);
			
			while (checkoutRightNavSubtotal.firstChild){
			    checkoutRightNavSubtotal.removeChild(checkoutRightNavSubtotal.firstChild);
			};
			
			checkoutRightNavSubtotal.appendChild(document.createTextNode("delivery: " + checkoutSubtotal));	
			
			inputType = document.getElementById('deliveryType-' + totalRestaurants);
			inputType.value = deliveryType;
			
		}
		else if (changeTotals != null && changeTotals.getAttribute("errorMsg") != null) {
			var answer = confirm(changeTotals.getAttribute("errorMsg"));
			if (answer) {
				switchDeliveryTypeAjax(resId, deliveryType, true, totalRestaurants);
				var selectElm = document.getElementById(changeTotals.getAttribute("errorOn") + "_qtyselect");
				selectElm.value = "0";
				updateCheckoutQtyAjax(selectElm, changeTotals.getAttribute("errorOn"), resId, 0, false);
			}
		}
		var futureOrder = document.getElementById("future_order_" + resId);
		if (futureOrder != null) {
			futureOrder.selectedIndex = 0;
			determineFutureOrder(futureOrder, resId, totalRestaurants);
		}
		futureOrder = document.getElementById("catering_order_" + resId);
		if (futureOrder != null) {
			futureOrder.selectedIndex = 0;
			determineCateringFutureOrder(futureOrder, resId, totalRestaurants);
		}
	}
	
	function sendFaxAjax(historyId){		
		var sendData = "id=" + historyId;
		
		ajax = new ajaxRequest;
		ajax.send(false, "/totals.food?event=doSendFax", sendData, "sendFax");
	}
	
	function sendFax(dom){
		alert('Fax has been sent');	
	}
	
	function updateCurrentCouponItem(step){
		couponMeterStep = document.getElementById('coupon_meter_step_id');
		
		while(couponMeterStep.firstChild){
			couponMeterStep.removeChild(couponMeterStep.firstChild);
		}
		
		couponMeterStep.appendChild(document.createTextNode('Step ' + step));
	}
	
	function couponMeterFill(){
		percent = (step/groupCount) * 100;
		document.getElementById('coupon_meter_fill_id').style.width = percent + "%";
	}
	
	function displayCheckoutErrorMessage(idNum, message){
		div = document.getElementById('not_enough_message_id-' + idNum);
		if(div != null){
			while (div.firstChild){
			    div.removeChild(div.firstChild);
			};
			
			div.appendChild(document.createTextNode(message));
		}
	}
	
	function determineFutureOrder(dom, resId, resNum, type) {
		if (dom.nodeName == "SELECT") {
			var futureOrderWrapper = document.getElementById("future_order_" + resId + "_options");
			if (futureOrderWrapper != null) {
				futureOrderWrapper.parentNode.removeChild(futureOrderWrapper);
			}
			if (dom.value == 1) { // Future
				type = document.getElementById("deliveryType-" + resNum).value;
				(new ajaxRequest).send(true, "checkout.food?event=futureOrder", "resId=" + resId + "&deliveryType=" + type, "determineFutureOrder", "'" + resId + "','" + resNum + "','" + type + "'");
			}
		} else {
			var wrapper = document.getElementById("future_order_" + resId + "_wrapper");
			
			var optionWrapper = document.createElement("div");
			optionWrapper.id = "future_order_" + resId + "_options";
			optionWrapper.className = "future_order_block";
			
			var blockElm = document.createElement("div");
			blockElm.className = "future_order_block";
			var textElm = document.createElement("div");
			textElm.className = "del_carry_option_text";
			textElm.appendChild(document.createTextNode("date"));
			blockElm.appendChild(textElm);
			var divElm = document.createElement("div");
			var selectElm = createInput("select", "future_order_" + resId + "_date");
			for (var i = 0; i < dom.daysValues.length; i++) {
				var optionElm = document.createElement("option");
				optionElm.value = dom.daysValues[i];
				optionElm.text = dom.daysPretty[i];
				try { selectElm.add(optionElm, null) } catch(ex) { selectElm.add(optionElm); }
			}
			addEvent(selectElm, "change", function() { determineFutureTime(this, resId, type); } );
			divElm.appendChild(selectElm);
			blockElm.appendChild(divElm);
			optionWrapper.appendChild(blockElm);
			
			blockElm = document.createElement("div");
			blockElm.className = "future_order_block";
			textElm = document.createElement("div");
			textElm.className = "del_carry_option_text";
			textElm.appendChild(document.createTextNode("time"));
			blockElm.appendChild(textElm);
			divElm = document.createElement("div");
			selectElm = createInput("select", "future_order_" + resId + "_time");
			var tempDate = new Date();
			var startPieces = dom.timeStart.split(":");
			tempDate.setHours(startPieces[0]);
			tempDate.setMinutes(Math.ceil(startPieces[1]/15)*15);
			tempDate.setSeconds(0);
			var stopDate = new Date();
			var stopPieces = dom.timeStop.split(":");
			stopDate.setHours(stopPieces[0]);
			stopDate.setMinutes(stopPieces[1]);
			stopDate.setSeconds(1);
			var first = true;
			while (tempDate < stopDate) {
				var optionElm = document.createElement("option");
				var minutes = tempDate.getMinutes();
				if (minutes < 10)
					minutes = "0" + minutes;
				optionElm.value = tempDate.getHours() + ":" + minutes;
				if (tempDate.getHours() == 12)
					optionElm.text = tempDate.getHours() + ":" + minutes + " PM";
				else if (tempDate.getHours() > 11)
					optionElm.text = (tempDate.getHours()-12) + ":" + minutes + " PM";
				else
					optionElm.text = tempDate.getHours() + ":" + minutes + " AM";
				if (first) {
					optionElm.text += " (" + dom.timeZone + ")";
					first = false;
				}
				try { selectElm.add(optionElm, null) } catch(ex) { selectElm.add(optionElm); }
				tempDate.setMinutes(tempDate.getMinutes() + 15);
			}
			divElm.appendChild(selectElm);
			blockElm.appendChild(divElm);
			optionWrapper.appendChild(blockElm);
			wrapper.appendChild(optionWrapper);
		}
	}
	
	function determineFutureTime(dom, resId, type) {
		if (dom.nodeName == "SELECT") {
			var futureOrderDate = document.getElementById("future_order_" + resId + "_date");
			(new ajaxRequest).send(true, "checkout.food?event=futureOrderTime", "resId=" + resId + "&deliveryType=" + type + "&futureDate=" + futureOrderDate.value, "determineFutureTime", "'" + resId + "','" + type + "'");
		} else {
			var selectElm = document.getElementById("future_order_" + resId + "_time");
			while (selectElm.childNodes.length > 0)
				selectElm.removeChild(selectElm.childNodes[0]);
			var tempDate = new Date();
			var startPieces = dom.timeStart.split(":");
			tempDate.setHours(startPieces[0]);
			tempDate.setMinutes(Math.ceil(startPieces[1]/15)*15);
			tempDate.setSeconds(0);
			var stopDate = new Date();
			var stopPieces = dom.timeStop.split(":");
			stopDate.setHours(stopPieces[0]);
			stopDate.setMinutes(stopPieces[1]);
			stopDate.setSeconds(1);
			var first = true;
			while (tempDate < stopDate) {
				var optionElm = document.createElement("option");
				var minutes = tempDate.getMinutes();
				if (minutes < 10)
					minutes = "0" + minutes;
				optionElm.value = tempDate.getHours() + ":" + minutes;
				if (tempDate.getHours() == 12)
					optionElm.text = tempDate.getHours() + ":" + minutes + " PM";
				else if (tempDate.getHours() > 11)
					optionElm.text = (tempDate.getHours()-12) + ":" + minutes + " PM";
				else
					optionElm.text = tempDate.getHours() + ":" + minutes + " AM";
				if (first) {
					optionElm.text += " (" + dom.timeZone + ")";
					first = false;
				}
				try { selectElm.add(optionElm, null) } catch(ex) { selectElm.add(optionElm); }
				tempDate.setMinutes(tempDate.getMinutes() + 15);
			}
		}
	}
	
	function determineCateringFutureOrder(dom, resId, resNum, type) {
		if (dom.nodeName == "SELECT") {
			var futureOrderWrapper = document.getElementById("catering_order_" + resId + "_options");
			if (futureOrderWrapper != null) {
				futureOrderWrapper.parentNode.removeChild(futureOrderWrapper);
			}
			if (dom.value == 1) { // Future
				type = document.getElementById("deliveryType-" + resNum).value;
				(new ajaxRequest).send(true, "checkout.food?event=futureOrder", "resId=" + resId + "&deliveryType=" + type, "determineCateringFutureOrder", "'" + resId + "','" + resNum + "','" + type + "'");
			}
		} else {
			var wrapper = document.getElementById("catering_order_" + resId + "_wrapper");
			
			var optionWrapper = document.createElement("div");
			optionWrapper.id = "catering_order_" + resId + "_options";
			optionWrapper.className = "future_order_block";
			
			var blockElm = document.createElement("div");
			blockElm.className = "future_order_block";
			var textElm = document.createElement("div");
			textElm.className = "del_carry_option_text";
			textElm.appendChild(document.createTextNode("date"));
			blockElm.appendChild(textElm);
			var divElm = document.createElement("div");
			var selectElm = createInput("select", "catering_order_" + resId + "_date");
			for (var i = 0; i < dom.daysValues.length; i++) {
				var optionElm = document.createElement("option");
				optionElm.value = dom.daysValues[i];
				optionElm.text = dom.daysPretty[i];
				try { selectElm.add(optionElm, null) } catch(ex) { selectElm.add(optionElm); }
			}
			addEvent(selectElm, "change", function() { determineCateringFutureTime(this, resId, type); } );
			divElm.appendChild(selectElm);
			blockElm.appendChild(divElm);
			optionWrapper.appendChild(blockElm);
			
			blockElm = document.createElement("div");
			blockElm.className = "future_order_block";
			textElm = document.createElement("div");
			textElm.className = "del_carry_option_text";
			textElm.appendChild(document.createTextNode("time"));
			blockElm.appendChild(textElm);
			divElm = document.createElement("div");
			selectElm = createInput("select", "catering_order_" + resId + "_time");
			var tempDate = new Date();
			var startPieces = dom.timeStart.split(":");
			tempDate.setHours(startPieces[0]);
			tempDate.setMinutes(Math.ceil(startPieces[1]/15)*15);
			tempDate.setSeconds(0);
			var stopDate = new Date();
			var stopPieces = dom.timeStop.split(":");
			stopDate.setHours(stopPieces[0]);
			stopDate.setMinutes(stopPieces[1]);
			stopDate.setSeconds(1);
			var first = true;
			while (tempDate < stopDate) {
				var optionElm = document.createElement("option");
				var minutes = tempDate.getMinutes();
				if (minutes < 10)
					minutes = "0" + minutes;
				optionElm.value = tempDate.getHours() + ":" + minutes;
				if (tempDate.getHours() == 12)
					optionElm.text = tempDate.getHours() + ":" + minutes + " PM";
				else if (tempDate.getHours() > 11)
					optionElm.text = (tempDate.getHours()-12) + ":" + minutes + " PM";
				else
					optionElm.text = tempDate.getHours() + ":" + minutes + " AM";
				if (first) {
					optionElm.text += " (" + dom.timeZone + ")";
					first = false;
				}
				try { selectElm.add(optionElm, null) } catch(ex) { selectElm.add(optionElm); }
				tempDate.setMinutes(tempDate.getMinutes() + 15);
			}
			divElm.appendChild(selectElm);
			blockElm.appendChild(divElm);
			optionWrapper.appendChild(blockElm);
			wrapper.appendChild(optionWrapper);
		}
	}
	
	function determineCateringFutureTime(dom, resId, type) {
		if (dom.nodeName == "SELECT") {
			var futureOrderDate = document.getElementById("catering_order_" + resId + "_date");
			(new ajaxRequest).send(true, "checkout.food?event=futureOrderTime", "resId=" + resId + "&deliveryType=" + type + "&futureDate=" + futureOrderDate.value, "determineCateringFutureTime", "'" + resId + "','" + type + "'");
		} else {
			var selectElm = document.getElementById("catering_order_" + resId + "_time");
			while (selectElm.childNodes.length > 0)
				selectElm.removeChild(selectElm.childNodes[0]);
			var tempDate = new Date();
			var startPieces = dom.timeStart.split(":");
			tempDate.setHours(startPieces[0]);
			tempDate.setMinutes(Math.ceil(startPieces[1]/15)*15);
			tempDate.setSeconds(0);
			var stopDate = new Date();
			var stopPieces = dom.timeStop.split(":");
			stopDate.setHours(stopPieces[0]);
			stopDate.setMinutes(stopPieces[1]);
			stopDate.setSeconds(1);
			var first = true;
			while (tempDate < stopDate) {
				var optionElm = document.createElement("option");
				var minutes = tempDate.getMinutes();
				if (minutes < 10)
					minutes = "0" + minutes;
				optionElm.value = tempDate.getHours() + ":" + minutes;
				if (tempDate.getHours() == 12)
					optionElm.text = tempDate.getHours() + ":" + minutes + " PM";
				else if (tempDate.getHours() > 11)
					optionElm.text = (tempDate.getHours()-12) + ":" + minutes + " PM";
				else
					optionElm.text = tempDate.getHours() + ":" + minutes + " AM";
				if (first) {
					optionElm.text += " (" + dom.timeZone + ")";
					first = false;
				}
				try { selectElm.add(optionElm, null) } catch(ex) { selectElm.add(optionElm); }
				tempDate.setMinutes(tempDate.getMinutes() + 15);
			}
		}
	}
	
function destroyThirdLayerBox(){
	var overlayGreyOutDiv = document.getElementById('overlay-grey-out-id');
	var overlayPopUpBox = document.getElementById('overlay-box-id');
	 
	if(overlayGreyOutDiv != null){
		overlayGreyOutDiv.removeMe();
	}	 
	if(overlayPopUpBox != null){
		overlayPopUpBox.removeMe();
	}
}

function generateThirdLayerBox(elementsArray, boxWidth){
	var body = document.body;
	        
    var overlayGreyOutDiv = document.createElement('div');
    overlayGreyOutDiv.id = 'overlay-grey-out-id';
    overlayGreyOutDiv.className = 'overlay_grey_out';
    
    var overlayPopUpBox = document.createElement('div');
    overlayPopUpBox.id = 'overlay-box-id';
    overlayPopUpBox.className = 'admin_pop_up';
    
    var overlayBoxDiv = document.createElement('div');
    overlayBoxDiv.className = 'admin_edit_fields';    
    overlayBoxDiv.style.position = 'absolute';
    overlayBoxDiv.style.top = '0px';
	overlayBoxDiv.style.width = boxWidth;
     
    var overlayBoxTopDiv = document.createElement('div');
    overlayBoxTopDiv.className = 'admin_box_top';
    overlayBoxTopDiv.appendChild(document.createElement('div'));
    
    var overlayBoxBodyDiv = document.createElement('div');
    overlayBoxBodyDiv.className = 'admin_box_body';
    
    var overlayBoxBody2Div = document.createElement('div');
    overlayBoxBody2Div.className = 'c';
    
    var overlayBoxBottomDiv = document.createElement('div');
    overlayBoxBottomDiv.className = 'admin_box_bottom';
    overlayBoxBottomDiv.appendChild(document.createElement('div'));
    
    var destroyLink = document.createElement('a');
    destroyLink.className = 'close_popup';
    destroyLink.href = 'javascript:destroyThirdLayerBox();';
        
    overlayBoxBody2Div.appendChild(destroyLink);    
    
    for(var i = 0; i < elementsArray.length; i++){
    	overlayBoxBody2Div.appendChild(elementsArray[i]);
    }
    
    overlayBoxBodyDiv.appendChild(overlayBoxBody2Div);
    
    overlayBoxDiv.appendChild(overlayBoxTopDiv);
    overlayBoxDiv.appendChild(overlayBoxBodyDiv);
    overlayBoxDiv.appendChild(overlayBoxBottomDiv);
    
    overlayPopUpBox.appendChild(overlayBoxDiv);
    
    body.appendChild(overlayGreyOutDiv);
    body.appendChild(overlayPopUpBox);

    var thirdBoxClear = document.createElement('div');
    thirdBoxClear.className = "third-box-clear";
    overlayBoxBody2Div.appendChild(thirdBoxClear);
}

function createInput(type,name,checked, maxLength) {
	var elm;
	var classNme = name + "_input";
	var cal = false;
	if (type == "cal") {
		classNme += " calDate";
		type = "text";
		cal = true;
	}
	if (type == "select") {
		try {
			elm = document.createElement('<select name="' + name + '" id="' + name + '" class="' + classNme + '">');
		} catch (e) { }
		if (!elm || elm.nodeName != type.toUpperCase()) {
			elm = document.createElement('select');
			elm.name = name;
			elm.id = name;
			elm.className = classNme;
		}
	} else if (type == "textarea") {
		try {
			elm = document.createElement('<textarea name="' + name + '" id="' + name + '" class="' + classNme + '">');
		} catch (e) { }
		if (!elm || elm.nodeName != type.toUpperCase()) {
			elm = document.createElement('textarea');
			elm.name = name;
			elm.id = name;
			elm.className = classNme;
		}
	} else {
		try {
			syntax = '<input type="' + type + '" name="' + name + '" id="' + name + '" ';
			if (checked)
				syntax += 'checked="checked" ';
			if (maxLength)
				syntax += 'maxLength="' + maxLength + '" ';
			if (cal)
				syntax += 'readonly="true" ';
			syntax += " class='" + classNme + "'>";
			elm = document.createElement(syntax);
		} catch (e) { }
		if (!elm || elm.nodeName != "INPUT") {
			elm = document.createElement('input');
			elm.type = type;
			elm.name = name;
			elm.id = name;
			if (checked)
				elm.checked = true;
			if (maxLength)
				elm.maxLength = maxLength;
			elm.className = classNme;
			if (cal) {
				elm.readOnly = true;
			}
		}
	}
	if (cal)
		elm.style.backgroundColor = "#eee";
	return elm;
}

function createBasicPopUp(headerText, element){
	destroyBasicPopUp();
	var wrapper = document.getElementById('wrapper');
	
	
	var mainDiv = document.createElement('div');
	mainDiv.id = "mainPopupId";
	mainDiv.className = "mainPopupDiv";
	
	var closeButtonDiv = document.createElement('div');
	closeButtonDiv.className = "close_button_div";
	mainDiv.appendChild(closeButtonDiv);	

	var header = document.createElement('div');
	header.appendChild(document.createTextNode(headerText));
	closeButtonDiv.appendChild(header);
		
	var closeButton = document.createElement('div');
	closeButton.className = "close_popup_img";
	closeButtonDiv.appendChild(closeButton);
	addEvent(closeButton, 'click', function(){destroyBasicPopUp();});
	
	var popUpWrapper = document.createElement('div');
	popUpWrapper.id = "popUpWrapperId";
	popUpWrapper.className = 'pop_up_wrapper'; 
	mainDiv.appendChild(popUpWrapper);
	
	popUpWrapper.appendChild(element);
	
	wrapper.appendChild(mainDiv);
}

function destroyBasicPopUp(){
	var wrapper = document.getElementById('wrapper');
	var mainDiv = document.getElementById("mainPopupId");
	if(mainDiv != null)
		wrapper.removeChild(mainDiv);
}

function createInputDiv(inputTitle, type, name, value, checked, maxlength, optionArrayText, optionArrayValue, dontLimit, multipleSelected){
	var div = document.createElement('div');
	div.className = "pop_up_form_style";
	var nameSpan = document.createElement('span');
	if (dontLimit)
		nameSpan.style.width = "100%";
	nameSpan.appendChild(document.createTextNode(inputTitle + ":"	));
 	var input = null;
	
	if(type == "radio"){
		var numOfRadios = optionArrayText.length;
		var radioParentDiv = document.createElement('div');
		radioParentDiv.className = "pop_up_form_radio_parent";
		div.appendChild(radioParentDiv);
		
		for(i = 0; i < numOfRadios; i++){
			if(checked != null && checked == optionArrayValue[i]){
				input = createInput(type, name, true, maxlength);
				input.checked = true;
			}
			else{
				input = createInput(type, name, null, maxlength);	
			}
			input.id = name + "_" + optionArrayValue[i];
			
			input.value = optionArrayValue[i];
			var radioSpan = document.createElement('span');
			radioSpan.className = "pop_up_form_radio";
			
			radioParentDiv.appendChild(radioSpan);
			radioSpan.appendChild(input);
			radioSpan.appendChild(document.createTextNode(optionArrayText[i]));
		}
	}	
	else if(type == "select" || type == "selectmultiple"){
		input = createInput("select", name, null, maxlength);
		if (type == "selectmultiple") {
			input.multiple=true;
			input.size=5;
		}
		
		var optionArraySize = optionArrayText.length;
		for(i = 0; i < optionArraySize; i++){
			var option = document.createElement('option');							
			option.value = optionArrayValue[i];
			option.text = optionArrayText[i];
			
			if (type == "selectmultiple" && multipleSelected[i] == "true")
				option.selected = true;
			
			try{
				input.add(option, null);
			}
			catch(ex){
				input.add(option);
			}
			
			if(checked != null && checked == optionArrayValue[i]){
				input.selectedIndex = i;
			}
		}
		div.appendChild(input);
	}
	else{
		input = createInput(type, name, checked, maxlength);
		if(value != null){
			input.value = value;
		}
		if (type == "checkbox")
			input.style.width = "15px";
		div.appendChild(input);
	}
	
	div.appendChild(nameSpan);
	 
	return div;
}