// NON-FLASH DIGIAL CLOCK
var clock;
setClock();

function setClock() {
	var weekday 	= new Array(7)
	weekday[0] 		= "SUN";
	weekday[1] 		= "MON";
	weekday[2] 		= "TUE";
	weekday[3] 		= "WED";
	weekday[4] 		= "THU";
	weekday[5] 		= "FRI";
	weekday[6] 		= "SAT";

	time=new Date(); // time object
	var minutes 	= time.getMinutes()
	var hours 		= time.getHours()

	if (hours<12) {
		ampm = "AM";
	} else {
		ampm = "PM";
	}
	while(hours >12) {
		hours = hours - 12;
	}
	if(minutes<10) {
		minutes = "0" + minutes;
	}

	clock = weekday[time.getDay()] + " " + hours + ":" + minutes + " "+ ampm;
}

var agt = navigator.userAgent.toLowerCase();
var is_ie = ((agt.indexOf("msie")) != -1);
var is_ie6 = ((agt.indexOf("msie 6")) != -1);

function changeStoreAddress(isDeliveryStore) {
    if (isDeliveryStore == '0') {
      document.forms['startOrder']['startOrder:deliveryOrPickup'][0].disabled = true;
      document.forms['startOrder']['startOrder:deliveryOrPickup'][1].checked = true;
    } else {
      document.forms['startOrder']['startOrder:deliveryOrPickup'][0].disabled = false;
    }
		if (document.forms['startOrder']['startOrder:deliveryOrPickup'][0].checked) {
			document.getElementById('changeStoreLink').style.display = "none";
		} else {
			document.getElementById('changeStoreLink').style.display = "inline";
		}
	}

function changeLocation(locationId, size, clear) {
    document.getElementById('oldLocationLink').style.display = "none";
    if (clear != 'back') {
      var currentLocationChoice = document.forms['startOrder']['startOrder:currentLocationChoice'].value;
      if (currentLocationChoice == '-1') {clear = 'clear';}
    } else {
      document.forms['startOrder']['startOrder:tAddress1'].value = document.forms['startOrder']['startOrder:hAddress1'].value;
      document.forms['startOrder']['startOrder:tAddress2'].value = document.forms['startOrder']['startOrder:hAddress2'].value;
      document.forms['startOrder']['startOrder:tCity'].value = document.forms['startOrder']['startOrder:hCity'].value;
      document.forms['startOrder']['startOrder:tState'].value = document.forms['startOrder']['startOrder:hState'].value;
      document.forms['startOrder']['startOrder:tZip'].value = document.forms['startOrder']['startOrder:hZip'].value;
      document.forms['startOrder']['startOrder:currentLocationName'].value = document.forms['startOrder']['startOrder:hName'].value;
      document.forms['startOrder']['startOrder:currentLocationChoice'].value = document.forms['startOrder']['startOrder:hChoice'].value;
			document.getElementById('changeLocationTable').style.display = "inline";
			document.getElementById('oldLocationLink').style.display = "none";
      document.getElementById('newLocationLink').style.display = "block";
    }
    if (clear == 'clear') {
      document.forms['startOrder']['startOrder:tAddress1'].value = '';
      document.forms['startOrder']['startOrder:tAddress2'].value = '';
      document.forms['startOrder']['startOrder:tCity'].value = '';
      document.forms['startOrder']['startOrder:tState'].selectedIndex = 0;
      document.forms['startOrder']['startOrder:tZip'].value = '';
      document.forms['startOrder']['startOrder:currentLocationName'].value = '';
      document.forms['startOrder']['startOrder:currentLocationChoice'].value = '-1';
			document.getElementById('changeLocationTable').style.display = "none";
			document.getElementById('oldLocationLink').style.display = "block";
      document.getElementById('newLocationLink').style.display = "none";
    }
}

/* Build Your Pizza */

	function showAmount(toppingId) {
		document.getElementById("toppingAmount" + toppingId).style.visibility = "visible";
	}
	function hideAmount(toppingId) {
		document.getElementById("toppingAmount" + toppingId).style.visibility = "hidden";
	}
	function updateToppings() {
		/* BASIC TOPPINGS  */
		document.forms[0].topping0[0].checked = true;
		document.forms[0].topping1[0].checked = true;
		showAmount(0);
		showAmount(1);

		/* ADDITIONAL TOPPINGS  */
		if (document.getElementById('buildType').value == "specialty") {
			document.forms[0].topping3[0].checked = true;
			document.forms[0].topping5[0].checked = true;
			document.forms[0].topping7[0].checked = true;
			document.forms[0].topping9[0].checked = true;
			showAmount(3);
			showAmount(5);
			showAmount(7);
			showAmount(9);
		}
	}

/* DHTML WINDOW */
	function showDHTML(windowName) {
		showFullDHTML(windowName, 'wrapper');
	}

  function showFullDHTML(windowName, wrapperName) {
    /*
        Get Browser Window Sizes
    */
    var viewportSize = getViewportSize();
    var browserWidth = viewportSize[0];
    var browserHeight = viewportSize[1];
    /*
        Assign variables to popup windows and set them to "block"
    */
    var divMoreWin = document.getElementById (windowName);
    var divMoreIframe = document.getElementById(wrapperName);
    divMoreWin.style.display = "block";
    divMoreIframe.style.display = "block";
    /*
        Position the popup window and the corresponding IFRAME:
        leftpos = Left position of the popup window
        toppost = Top position of the popup window
        Note: IFRAME is needed for IE6. Otherwise, SELECT DROP-DOWNS WILL SHOW
        Also, we need to set the zIndex for Safari. (We can poentially do this in CSS.)
    */

    if (wrapperName == 'wrapperMO' || wrapperName == 'wrapperNC' || wrapperName == 'wrapperAC' || wrapperName == 'wrapperIW') {
        leftPos = parseInt((browserWidth/2) - 300);
    } else if (wrapperName == 'wrapperCNC' || wrapperName == 'wrapperMCR' || wrapperName == 'wrapperMCR10') {
        leftPos = parseInt((browserWidth/2) - 210);
    } else {
        leftPos = parseInt((browserWidth - 410)/2);
    }

    if (wrapperName == 'wrapperCNC' || wrapperName == 'wrapperMCR' || wrapperName == 'wrapperMCR10') {
      topPos = parseInt((browserHeight/2) - 300) + parseInt(getScrollY());
    } else {
      topPos = parseInt((browserHeight/2) - 125) + parseInt(getScrollY());
    }

    if (wrapperName == 'wrapperGS' || wrapperName == 'wrapperMO' || wrapperName == 'wrapperNC' || wrapperName == 'wrapperIW'  || wrapperName == 'wrapperCNC' || wrapperName == 'wrapperMCR' || wrapperName == 'wrapperMCR10' || wrapperName == 'wrapperLM'  || wrapperName == 'wrapperLMP' || wrapperName == 'wrapperCLM' || wrapperName == 'wrapperLLM' || wrapperName == 'wrapperSW'  || wrapperName == 'wrapperCR' || wrapperName == 'wrapperSZ') {
        topPos = 150  + parseInt(getScrollY());
    }
    if (wrapperName == 'wrapperAC') {
        topPos = 70  +  parseInt(getScrollY());
    }
    if (wrapperName == 'wrapperMCR' || wrapperName == 'wrapperMCR10') {
      topPos = 20 + parseInt(getScrollY());
    }
    if ((wrapperName == 'wrapperGS') && !is_ie6) {
        divMoreIframe.style.position = "fixed";
        divMoreWin.style.position = "fixed";
    }
    divMoreIframe.style.left = leftPos + "px";
    divMoreIframe.style.top = topPos + "px";
    divMoreIframe.style.zIndex = "900";

    divMoreWin.style.left = leftPos + "px";
    divMoreWin.style.top = topPos + "px";
    divMoreWin.style.zIndex = "1000";
  }

	function hideDHTML(windowName) {
		hideFullDHTML(windowName, 'wrapper');
	}
	function hideFullDHTML(windowName, wrapperName) {
		document.getElementById(windowName).style.display = "none";
		document.getElementById(wrapperName).style.display = "none";
	}

/* Navigate from Step1 */
	function goNext() {
		if (document.getElementById("tAddress2").style.display == "block") {
			location.href="step1_choose_store.asp";
		} else {
			location.href="step2_choose_pizza.asp";
		}
	}

/* ENABLE AND DISABLE FUTURE DATE */
function enableFuture(formName, nowOrFuture) {
    var disabled = true;
    document.getElementById('calendarLink').style.display = 'none';
    document.getElementById('calendarLinkDIS').style.display = 'inline';
    if (document.getElementById('nfLabelN')) {
    	document.getElementById('nfLabelN').innerHTML = '<strong>Now - Your order is ready as soon as possible</strong>';
	}
    document.getElementById('nfLabelF').innerHTML = 'Future - Your order is ready at a specific date/time in the future';
    if (document.getElementById('nowOrFutureN:now')) {
    	document.getElementById('nowOrFutureN:now').checked = true;
    }
    document.getElementById('nowOrFutureN:future').checked = false;
    if (nowOrFuture == 'Future') {
      disabled = false;
      document.getElementById('calendarLink').style.display = 'inline';
      document.getElementById('calendarLinkDIS').style.display = 'none';
      if (document.getElementById('nfLabelN')) {
    	  document.getElementById('nfLabelN').innerHTML = 'Now - Your order is ready as soon as possible';
      }
      document.getElementById('nfLabelF').innerHTML = '<strong>Future - Your order is ready at a specific date/time in the future</strong>';
      if (document.getElementById('nowOrFutureN:now')) {
    	  document.getElementById('nowOrFutureN:now').checked = false;
      }
      document.getElementById('nowOrFutureN:future').checked = true;
    }
    document.getElementById(formName + ":futureDate").disabled = disabled;
    document.getElementById(formName + ":futureHour").disabled = disabled;
    document.getElementById(formName + ":futureMinute").disabled = disabled;
    document.getElementById(formName + ":futureAMPM").disabled = disabled;
  }

function enableDelivery(formName, deliveryOrPickup, displayDeliveryAddress, serviceTimeText, storeId) {
    document.getElementById('dopDLabel').innerHTML = 'Delivery';
    document.getElementById('dopPLabel').innerHTML = "<strong>Carryout from your Domino's store" + (storeId ? " #" + storeId : "") + " <span id='serviceTimeP'>" + serviceTimeText + "</span></strong>";
    if (deliveryOrPickup == 'Delivery' || deliveryOrPickup == 'Entregar a') {
      document.getElementById('dopDLabel').innerHTML = "<strong>Delivery to " + displayDeliveryAddress + " <span id='serviceTimeD'>" + serviceTimeText + "</span>" + (storeId ? " from store #" + storeId : "") + "</strong>";
      document.getElementById('dopPLabel').innerHTML = "Carryout";
    }
}

/* ADD DRINKS TO SATISFY COUPON */

function addDrink() {
	document.getElementById('drink-item').style.display = 'block';
	document.getElementById('pizza-prompt').innerHTML = 'Your coupon of <strong>1 Large Pizza with 1 Topping, 1 Drink and 1 Order of Cheesy Bread</strong> is now complete. <ul class="coupon-nav"><li>- Click <strong>Place Order</strong> to complete the purchase</li></ul>';
	document.getElementById('place-order').style.display = 'block';
}

/* ORDER TOTAL */

	function showTotal(){
		document.getElementById("order-total").style.display = "block";
	}

  function hideCalculateTotalLink(){
		document.getElementById("calculateTotalP").style.display = "none";
	}

  function displayUpdateOrderLink(){
		document.getElementById("orderSummaryForm:updateOrderLink").style.display = "block";
	}


  function setAMPMOptions(hour, minute, ampm, ampmexplicitchange) {
    var futureHoureCurr = document.getElementById('futureHoureCurr').value;
    var futureMinuteCurr = document.getElementById('futureMinuteCurr').value;
    var futureAMPMCurr = document.getElementById('futureAMPMCurr').value;
    if (hour == '12' && minute == '00') {
        document.getElementById('pricingEnabled:futureAMPM').options[1].text = 'Midnight';
        document.getElementById('pricingEnabled:futureAMPM').options[2].text = 'Noon';
        if (ampm == 'PM') {
          document.getElementById('pricingEnabled:futureAMPM').options[1].selected = false;
          document.getElementById('pricingEnabled:futureAMPM').options[2].selected = true;
        } else {
          document.getElementById('pricingEnabled:futureAMPM').options[1].selected = true;
          document.getElementById('pricingEnabled:futureAMPM').options[2].selected = false;
        }
    } else {
        document.getElementById('pricingEnabled:futureAMPM').options[1].text = 'AM';
        document.getElementById('pricingEnabled:futureAMPM').options[2].text = 'PM';
        if (!ampmexplicitchange && futureHoureCurr == '12' && futureMinuteCurr == '00') {
          if (ampm == 'PM') {
            document.getElementById('pricingEnabled:futureAMPM').options[1].selected = false;
            document.getElementById('pricingEnabled:futureAMPM').options[2].selected = true;
          } else {
            document.getElementById('pricingEnabled:futureAMPM').options[1].selected = true;
            document.getElementById('pricingEnabled:futureAMPM').options[2].selected = false;
          }
        }
    }
    document.getElementById('futureHoureCurr').value = hour;
    document.getElementById('futureMinuteCurr').value = minute;
    document.getElementById('futureAMPMCurr').value = ampm;
  }

  function isEnterKey(evt) {
    evt = (evt) ? evt : (window.event) ? window.event : "";
    var theKey;
    if (evt) {
      theKey = (evt.which) ? evt.which : evt.keyCode;
    }
    return (theKey == 13);
  }

  function submitOnEnter(fld, evt, formName, submitLinkId) {
    if (isEnterKey(evt)) {
      document.forms[formName][formName + ':_idcl'].value= formName + ':' + submitLinkId;
      document.forms[formName].submit();
      return false;
    }
    return true;
  }

  function isSafari() {
    var vendor = "" + navigator.vendor;
    if (navigator.userAgent.toLowerCase().indexOf('safari')!=-1 || vendor.toLowerCase().indexOf('apple')!=-1) {
      return true;
    } else {
      return false;
    }
  }

  function isFirefox() {
    var is_firefox = ((agt.indexOf("firefox")) != -1);
    if (is_firefox) {
      return true;
    } else {
      return false;
    }
  }

  function getSafariVersion() {
    // String found if this is a AppleWebKit based product
    var kitName = "applewebkit/";
    var tempStr = navigator.userAgent.toLowerCase();
    var pos = tempStr.indexOf(kitName);
    var isAppleWebkit = (pos != -1);

    if (isAppleWebkit) {
      // Grab the version
      var kitVersion = tempStr.substring(pos + kitName.length,tempStr.length);
      kitVersion = kitVersion.substring(0,kitVersion.indexOf(" "));
      if (parseInt(kitVersion) > 523) {
        return 3;
      } else {
        return 2;
      }
    } else {
      return -1;
    }
  }
		
  function showAddress(formName, unitCopy) {
    var agt = navigator.userAgent.toLowerCase();
    var is_ie = ((agt.indexOf("msie")) != -1);
    var displayVar = (is_ie) ? "block" : "table-row";

    if (unitCopy == null || unitCopy == '') {
      unitCopy = "<strong>Note:</strong> Enter 'None' if this does not apply.";
      var partnerMessage = '';
      if($OLO("partnerMessage")) partnerMessage = document.getElementById('partnerMessage').value;
      if (partnerMessage != '') unitCopy = partnerMessage;
    }

    var addrType = document.getElementById(formName + ':adderssType').selectedIndex;
    document.getElementById('addressLine2Row').style.display = 'none';
    document.getElementById('trUnitNumber').style.display = 'none';
    document.getElementById(formName + ':address2LabelText').innerHTML = '';
    document.getElementById(formName + ':address2LabelStar').innerHTML = '';
    document.getElementById(formName + ':address2LabelColon').innerHTML = '';
    if (formName == 'startOrder') {
      if ($OLO(formName + ':address2Prompt'))document.getElementById(formName + ':address2Prompt').innerHTML = '';
    }
    document.getElementById(formName + ':unitNumberLabelText').innerHTML = '';
    document.getElementById(formName + ':unitNumberPrompt').innerHTML = '';
    document.getElementById(formName + ':unitNumberLabelStar').innerHTML = '';
    document.getElementById(formName + ':unitNumberLabelColon').innerHTML = '';
    switch(addrType) {
      case 0:
        document.getElementById(formName + ':unitNumberLabelText').innerHTML = '';
        document.getElementById(formName + ':unitNumberLabelStar').innerHTML = '';
        if (document.getElementById("addrNote")) document.getElementById("addrNote").rowSpan = "2";
        break;
      case 1:
        document.getElementById('addressLine2Row').style.display = displayVar;
        document.getElementById('trUnitNumber').style.display = displayVar;
        document.getElementById(formName + ':address2LabelText').innerHTML = 'Apartment Name';
        document.getElementById(formName + ':address2LabelColon').innerHTML = ':';
        document.getElementById(formName + ':unitNumberLabelText').innerHTML = 'Suite/Apt #';
        document.getElementById(formName + ':unitNumberLabelStar').innerHTML = '';
        document.getElementById(formName + ':unitNumberLabelColon').innerHTML = ':';
        //document.getElementById(formName + ':unitNumberPrompt').innerHTML = "<strong>Note:</strong> Enter 'None' if this does not apply.";
        if (document.getElementById("addrNote")) document.getElementById("addrNote").rowSpan = "4";
        break;
      case 2:
        var businessNames = '';
        var streetPrompts = '';
        if($OLO("businessNames")) businessNames = document.getElementById('businessNames').value;
        if ($OLO("streetPrompts")) streetPrompts = document.getElementById('streetPrompts').value;
        document.getElementById('addressLine2Row').style.display = displayVar;
        document.getElementById('trUnitNumber').style.display = displayVar;
        document.getElementById(formName + ':address2LabelText').innerHTML = 'Business Name';
        document.getElementById(formName + ':address2LabelStar').innerHTML = '';
        document.getElementById(formName + ':address2LabelColon').innerHTML = ':';
   		if (businessNames != '') {
                document.getElementById(formName + ':address2Prompt').innerHTML = businessNames;
        }
        if (streetPrompts != '') {
            document.getElementById(formName + ':streetAddressPrompt').innerHTML = streetPrompts;
        }
        document.getElementById(formName + ':unitNumberLabelText').innerHTML = 'Suite/Apt #';
        document.getElementById(formName + ':unitNumberLabelStar').innerHTML = '';
        document.getElementById(formName + ':unitNumberLabelColon').innerHTML = ':';
        document.getElementById(formName + ':unitNumberPrompt').innerHTML = unitCopy;
        if (document.getElementById("addrNote")) document.getElementById("addrNote").rowSpan = "4";
        break;
      case 3:
        document.getElementById('addressLine2Row').style.display = displayVar;
        document.getElementById('trUnitNumber').style.display = displayVar;
        document.getElementById(formName + ':address2LabelText').innerHTML = 'Dormitory Name';
        document.getElementById(formName + ':address2LabelStar').innerHTML = '';
        document.getElementById(formName + ':address2LabelColon').innerHTML = ':';
        document.getElementById(formName + ':unitNumberLabelText').innerHTML = 'Room #';
        document.getElementById(formName + ':unitNumberLabelStar').innerHTML = '';
        document.getElementById(formName + ':unitNumberLabelColon').innerHTML = ':';
        document.getElementById(formName + ':unitNumberPrompt').innerHTML = "<strong>Note:</strong> Enter 'None' if this does not apply.";
        if (document.getElementById("addrNote")) document.getElementById("addrNote").rowSpan = "4";
        break;
      case 4:
        document.getElementById('addressLine2Row').style.display = displayVar;
        document.getElementById('trUnitNumber').style.display = displayVar;
        document.getElementById(formName + ':address2LabelText').innerHTML = 'Hotel Name';
        document.getElementById(formName + ':address2LabelStar').innerHTML = '';
        document.getElementById(formName + ':address2LabelColon').innerHTML = ':';
        document.getElementById(formName + ':unitNumberLabelText').innerHTML = 'Room #';
        document.getElementById(formName + ':unitNumberLabelStar').innerHTML = '';
        document.getElementById(formName + ':unitNumberLabelColon').innerHTML = ':';
        document.getElementById(formName + ':unitNumberPrompt').innerHTML = "<strong>Note:</strong> Enter 'None' if this does not apply.";
        if (document.getElementById("addrNote")) document.getElementById("addrNote").rowSpan = "4";
        break;
      case 5:
        document.getElementById('trUnitNumber').style.display = displayVar;
        document.getElementById(formName + ':unitNumberLabelText').innerHTML = 'Suite/Apt #';
        document.getElementById(formName + ':unitNumberLabelColon').innerHTML = ':';
        document.getElementById(formName + ':unitNumberPrompt').innerHTML = "<strong>Note:</strong> Enter 'None' if this does not apply.";
        if (document.getElementById("addrNote")) document.getElementById("addrNote").rowSpan = "3";
        break;
    }
  }

/**
 * Function to adjust what gets shown in the form on the "location" page. It's basically a
 * copy of the showAddress function above, but specifically for the order location page.
 * @param formName Name of the form, which is probably just going to be 'startOrder'.
 * @param unitCopy Optional parameter to override the note that gets displayed with the unit number field
 * @return Nothing
 */
function showStartOrderAddress(formName, unitCopy) {
	if (unitCopy == null || unitCopy == '') {
		unitCopy = "<strong>Note:</strong> Enter 'None' if this does not apply.";
	}
	
	// Set some defaults
	$('#addressLine2Row').hide();
	$('#trUnitNumber').hide();
	$('#startOrder\\:unitNumberPrompt').html('');
	
	// Figure out which address type is selected
	var addrType = document.getElementById(formName + ':adderssType').value;
	
	// Some general settings
	if (addrType == "Apartment" || addrType == "Business" || addrType == "Hotel" || addrType == "Dormitory") {
		$('#addressLine2Row').show();
        $('#trUnitNumber').show();
	} else if (addrType == "Other") {
		$('#trUnitNumber').show();
	}
	
    switch(addrType) {
    case "House":
    	break;
    case "Apartment":
    	$("#startOrder\\:address2LabelText").html("Apartment Name:");
    	$("#startOrder\\:unitNumberLabelText").html("Suite/Apt #:");
    	break;
    case "Business":
    	$("#startOrder\\:address2LabelText").html("Business Name:");
    	$("#startOrder\\:unitNumberLabelText").html("Suite/Apt #:");
    	$("#startOrder\\:unitNumberPrompt").html(unitCopy);
    	break;
    case "Hotel":
    	$("#startOrder\\:address2LabelText").html("Hotel Name:");
    	$("#startOrder\\:unitNumberLabelText").html("Room #:");
    	$("#startOrder\\:unitNumberPrompt").html("<strong>Note:</strong> Enter 'None' if this does not apply.");
    	break;
    case "Dormitory":
    	$("#startOrder\\:address2LabelText").html("Dormitory Name:");
    	$("#startOrder\\:unitNumberLabelText").html("Room #:");
    	$("#startOrder\\:unitNumberPrompt").html("<strong>Note:</strong> Enter 'None' if this does not apply.");
    	break;
    case "Other":
    	$("#startOrder\\:unitNumberLabelText").html("Room #:");
    	$("#startOrder\\:unitNumberPrompt").html("<strong>Note:</strong> Enter 'None' if this does not apply.");
    	break;
    }
}

/**
 * Function to handle changing the service type on the order location page. Handles
 * a click on the image, activating the correct service image, and setting the correct
 * value for the hidden radio buttons that are a part of the form.
 * @param link Link that was clicked
 * @param serviceType The service type for the link that was clicked
 * @return false
 */
function changeNewLocationService(link, serviceType) {
	$(link).parent().parent().find("a").each(function(i) {
		this.className = "";
	});
	link.className = "active";
	$(document.forms['startOrder']['startOrder:deliveryOrPickup']).each(function(i) {
		if (this.value == serviceType) {
			if (!this.checked) {
				this.checked = true;
			}
		}
	});
	
	if (serviceType == "Delivery") {
		$("#locationPickupHeader").hide();
		$("#locationDeliveryHeader").show();
	} else {
		$("#locationDeliveryHeader").hide();
		$("#locationPickupHeader").show();
	}
	
	return false;
}

/**
 * Function to handle changing the address type via the user clicking on an image. Activates
 * the correct image, sets the hidden address type drop down value, and shows the correct form.
 * @param link Link that was clicked
 * @param addressType Name of the address type. Expects "CampusBase" or something else.
 * @param initializing Boolean value - set to true if being called in page initilization, which
 * 		means certain functionality will be skipped so that it isn't called twice.
 * @return false
 */
function changeLocationAddressType(link, addressType, initializing) {
	$(link).parent().parent().find("a").each(function(i) {
		this.className = "";
	});
	link.className = "active";

	if (addressType && addressType == "CampusBase") {
		hideStreetAddress();
		showCampusAddress();
		getStates('/home/', 'Campus');
	} else {
		hideCampusAddress();
		showStreetAddress();
		document.getElementById('startOrder:adderssType').value = addressType;
		if (!initializing) {
			showStartOrderAddress('startOrder');
			// Hide all error rows
			$("#streetAddressTable tr.error").hide();
		}
	}
	
	return false;
}

/**
 * Function to initialize the location address type image that is selected. Retrieves
 * the address type from the hidden form value and uses that to activate the correct
 * image and show the correct form. Uses the changeLocationAddressType function to
 * accomplish this.
 * 
 * @return Nothing
 */
function initializeLocationAddressType() {
	var link = null;
	
	var addressType = document.getElementById('startOrder:adderssType').value;
	
	var el = document.getElementById('addressTypeChosen');
	if (el && el.value == 'C') {
		addressType = "CampusBase";
	}
	
	switch (addressType) {
	case "House":
		link = document.getElementById('house');
		break;
	case "Apartment":
		link = document.getElementById('apartment');
		break;
	case "Business":
		link = document.getElementById('business');
		break;
	case "Hotel":
		link = document.getElementById('hotel');
		break;
	case "Dormitory":
		link = document.getElementById('dorm');
		break;
	case "Other":
		link = document.getElementById('other');
		break;
	case "CampusBase":
		link = document.getElementById('campusBase');
		break;
	}
	
	if (link) changeLocationAddressType(link, addressType, true);
}

/**
 * If the specified location field has the initial value in it, clear
 * the field.
 * @param field The form element to be cleared
 * @return Nothing
 */
function clearLocationField(field) {
	if (field == null) return;
	
	if (field.id == "startOrder:tAddress1" && field.value == "Address") {
		field.value = "";
	} else if (field.id == "startOrder:unitNumber" &&
			(field.value == "Suite/Apt #" || field.value == "Room #")) {
		field.value = "";
	} else if (field.id == "startOrder:tCity" && field.value == "City") {
		field.value = "";
	} else if (field.id == "startOrder:tZip" && field.value == "Zip code") {
		field.value = "";
	} else if (field.id == "startOrder:currentLocationName" && field.value == "Name this for next time") {
		field.value = "";
	} else if (field.id == "startOrder:addressLine2" &&
			(field.value == "Apartment Name" || field.value == "Business Name" ||
					field.value == "Hotel Name" || field.value == "Dormitory Name")) {
		field.value = "";
	}
}

/**
 * Submit the location form.
 * @return false
 */
function submitLocationForm() {
	document.forms['startOrder']['startOrder:_idcl'].value='startOrder:locationOrderNowBtn';
	document.forms['startOrder'].submit();
	return false;
}

/**
 * Check for the user pressing the enter key on the form so that the appropriate
 * action can be taken before submitting the form.
 * @param fld Field that the user pressed the key in
 * @param evt The event
 * @return false if form is submitting, true otherwise
 */
function submitLocationFormOnEnter(fld, evt) {
	if (isEnterKey(evt)) {
		submitLocationForm();
		return false;
	}
	return true;
}

function makeOrderFutureOrder(formName, myCurrPage) {
	document.forms[formName]['goTo'].value = myCurrPage;
	document.forms[formName]['pricingEnabled:nowOrFutureN'].value = 'Future';
	document.forms[formName][formName+':_idcl'].value = formName+':setFutureOrderLink';
	document.forms[formName].submit();
	return false;
}

// From prototype.js @ www.conio.net | Returns an object reference to one or more strings
// ignore the fact that there are no arguments to this method -- javascript doesn't care how many you send (not strongly typed)
// The method checks the actual # of arguments -- returns a single object or an array
function $OLO() {
    var elements = new Array();

    for (var i = 0; i < arguments.length; i++) {
        var element = arguments[i];

        if (typeof element == 'string')
            element = document.getElementById(element);

        if (arguments.length == 1)
            return element;

        elements.push(element);
    }

    return elements;
}

function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
	i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break;
  }
  return 'null';
}
function SetCookie (name,value,expires,path,domain,secure) {
  document.cookie = name + "=" + escape (value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
}
function DeleteCookie (name,path,domain) {
  if (GetCookie(name)) {
    document.cookie = name + "=" +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}
function checkCookies() {
  var x_cookieName = "JSESSIONID";
  var cvalue = GetCookie(x_cookieName);
  if (cvalue == 'null') {
    SetCookie(x_cookieName, "test");
    var cvalue = GetCookie(x_cookieName);
    DeleteCookie(x_cookieName);
    if (cvalue == 'null') {
      window.location.pathname = "/olo/common/noCookies.jsp";
    }
  }
}

var myWind;
function doNew(productNumber) {
  if (myWind && !myWind.closed) {
    myWind.close();
  }
  myWind = window.open("modifyOption.jsp?productNumber=" + productNumber, "subWindow", "height=200, width=200, resizable");
}

function popUp(URL) {
  day = new Date();
  id = day.getTime();
  eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=800,height=500,left = 100,top = 50');");
}
function popupURL(url) {
  if (url != null && url != '') {
    popUp(url);
  }
}

/* Get ScrollY - Cross Browser */
function getScrollY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
      //Netscape compliant
      scrOfY = window.pageYOffset;
      scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
      //DOM compliant
      scrOfY = document.body.scrollTop ;
      scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop )) {
      //IE6 standards compliant mode
      scrOfY = document.documentElement.scrollTop;
      scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfY ];
}

function getViewportSize(){
  var size=[0,0];
  if(typeof window.innerWidth != 'undefined') {
    size=[window.innerWidth,window.innerHeight];
  } else if (typeof document.documentElement!='undefined' && typeof document.documentElement.clientWidth!='undefined' && typeof document.documentElement.clientWidth!=0){
    size=[document.documentElement.clientWidth,document.documentElement.clientHeight];
  } else {
    size=[document.getElementsByTagName ('body')[0].clientWidth,document.getElementsByTagName('body')[0].clientHeight];
  }
  return size;
}

function IsImageOk(img, doAlways) {
  if (doAlways || getSafariVersion() == -1 || getSafariVersion() == 3) {
    if (!img.complete) {return false;}
    if (typeof img.naturalWidth != "undefined" && img.naturalWidth == 0) {return false;}
  }
  return true;
}

function showPopUpForm(frameId, divId, listSize) {
    var viewportSize = getViewportSize();
    var browserWidth = viewportSize[0];
    var browserHeight = viewportSize[1];
    /*
        Assign variables to popup windows and set them to "block"
    */
    var divMoreWin = document.getElementById (divId);
    var divMoreIframe = document.getElementById(frameId);
    divMoreWin.style.display = "block";
    divMoreIframe.style.display = "block";
    /*
        Position the popup window and the corresponding IFRAME:
        leftpos = Left position of the popup window
        toppost = Top position of the popup window
        Note: IFRAME is needed for IE6. Otherwise, SELECT DROP-DOWNS WILL SHOW
        Also, we need to set the zIndex for Safari. (We can poentially do this in CSS.)
    */

    leftPos = parseInt((browserWidth - 410)/2);
    if (frameId == 'storeClosedWrapper' || frameId == 'storeClosedWrapper')  {
      leftPos = leftPos - 75;
    }
    topPos = parseInt((browserHeight/2) - 125) + parseInt(getScrollY());
    topPos = 150  + parseInt(getScrollY());

    divMoreIframe.style.left = leftPos + "px";
    divMoreIframe.style.top = topPos + "px";
    divMoreIframe.style.zIndex = "900";

    divMoreWin.style.left = leftPos + "px";
    divMoreWin.style.top = topPos + "px";
    divMoreWin.style.zIndex = "1000";


    divMoreWin.style.height = listSize * 35 + 125;
    divMoreIframe.style.height = divMoreWin.style.height;

    /* Make the pop-up and the IFRAME visible */
    divMoreWin.style.visibility = "visible";
    divMoreIframe.style.visibility = "visible";
    divMoreWin.style.display = "";
    divMoreIframe.style.display = "";
}

function popUpDisplayNone(frameId, divId) {
  document.getElementById(frameId).style.display = 'none';
  document.getElementById(divId).style.display = 'none';
}

function disableEnter (event) {

	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if (keyCode == 13) {
		return false;
	}
	else{
		return true;
	}

}

function validateRequiredField(value, invalidValue, errorMessage) {
  if (value==null || value == "" || value == invalidValue) {
    alert(errorMessage);
    return false;
  } else {
    return true;
  }
}
