
window.name = "mainWindow";

	function adjustLayout()
	{
		// Get natural heights
		var cTop = xTop("columnContent");
		var lTop = xTop("columnLeft");
		var rTop = xTop("columnRight");
		var cHeight = xHeight("columnContent");
		var lHeight = xHeight("columnLeft");
		var rHeight = xHeight("columnRight");
		var hHeight = xHeight("headerContainer");
		//var fHeight = xHeight("footerContainer");

		// Get natural widths
		var docWidth = xClientWidth();
		var contWidth = xWidth("pageContainer");
		
		// Find the maximum height
		var maxHeight = Math.max(cHeight, Math.max(lHeight, rHeight));
		// Find the left edge
		var leftEdge = (docWidth - contWidth) / 2;

		// Assign maximum height to all columns
		xHeight("columnContent", maxHeight);
		xHeight("columnLeft", maxHeight);
		xHeight("columnRight", maxHeight);
		// Assign left edge to pageContainer
//		xLeft("pageContainer", leftEdge);

		maxHeight += hHeight + 10;
//		xTop("footerContainer", maxHeight);
//		xGetElementById("footerContainer").style.marginTop = maxHeight+"px";

		// Show the footer
		xShow("pageContainer");
		xShow("footerContainer");
//		alert("cTop = "+cTop+"\n"+"cHeight = "+cHeight+"\n"+"lHeight = "+lHeight+"\n"+"rHeight = "+rHeight+"\n"+"hHeight = "+hHeight);
	}

	Event.observe(window, 'load', function() {
//	window.onload = function()
//	{
		xAddEventListener(window, "resize", adjustLayout, false);
		adjustLayout();
	});
	




	function popupWindow(url) {
	  window.open(url,'','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=600,height=480,screenX=150,screenY=150,top=150,left=150');
	}

	var selected;

	function selectRowEffect(object, buttonSelect, fieldElem) {
	  if (!selected) {
	    if (document.getElementById) {
	      selected = document.getElementById('defaultSelected');
	    } else {
	      selected = document.all['defaultSelected'];
	    }
	  }
	
	  if (selected) selected.className = 'moduleRow';
	  object.className = 'moduleRowSelected';
	  selected = object;
	
	// one button is not an array
	  if (fieldElem[0]) {
	    fieldElem[buttonSelect].checked=true;
	  } else {
	    fieldElem.checked=true;
	  }
	/*
		if (document.checkout_address.address[0]) {
	    document.checkout_address.address[buttonSelect].checked=true;
	  } else {
	    document.checkout_address.address.checked=true;
	  }
	*/
	}

	function rowOverEffect(object) {
	  if (object.className == 'moduleRow') object.className = 'moduleRowOver';
	}

	function rowOutEffect(object) {
	  if (object.className == 'moduleRowOver') object.className = 'moduleRow';
	}

	function SetFocus(TargetFormName) {
	  var target = 0;
	  if (TargetFormName != "") {
	    for (i=0; i<document.forms.length; i++) {
	      if (document.forms[i].name == TargetFormName) {
	        target = i;
	        break;
	      }
	    }
	  }

	  var TargetForm = document.forms[target];
    
	  for (i=0; i<TargetForm.length; i++) {
	    if ( (TargetForm.elements[i].type != "image") && (TargetForm.elements[i].type != "hidden") && (TargetForm.elements[i].type != "reset") && (TargetForm.elements[i].type != "submit") ) {
	      TargetForm.elements[i].focus();
	
	      if ( (TargetForm.elements[i].type == "text") || (TargetForm.elements[i].type == "password") ) {
	        TargetForm.elements[i].select();
	      }
	
	      break;
	    }
	  }
	}

	function RemoveFormatString(TargetElement, FormatString) {
	  if (TargetElement.value == FormatString) {
	    TargetElement.value = "";
	  }

	  TargetElement.select();
	}

	function CheckDateRange(from, to) {
	  if (Date.parse(from.value) <= Date.parse(to.value)) {
	    return true;
	  } else {
	    return false;
	  }
	}

	function IsValidDate(DateToCheck, FormatString) {
	  var strDateToCheck;
	  var strDateToCheckArray;
	  var strFormatArray;
	  var strFormatString;
	  var strDay;
	  var strMonth;
	  var strYear;
	  var intday;
	  var intMonth;
	  var intYear;
	  var intDateSeparatorIdx = -1;
	  var intFormatSeparatorIdx = -1;
	  var strSeparatorArray = new Array("-"," ","/",".");
	  var strMonthArray = new Array("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");
	  var intDaysArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

	  strDateToCheck = DateToCheck.toLowerCase();
	  strFormatString = FormatString.toLowerCase();
  
	  if (strDateToCheck.length != strFormatString.length) {
	    return false;
	  }

	  for (i=0; i<strSeparatorArray.length; i++) {
	    if (strFormatString.indexOf(strSeparatorArray[i]) != -1) {
	      intFormatSeparatorIdx = i;
	      break;
	    }
	  }

	  for (i=0; i<strSeparatorArray.length; i++) {
	    if (strDateToCheck.indexOf(strSeparatorArray[i]) != -1) {
	      intDateSeparatorIdx = i;
	      break;
	    }
	  }

	  if (intDateSeparatorIdx != intFormatSeparatorIdx) {
	    return false;
	  }

	  if (intDateSeparatorIdx != -1) {
	    strFormatArray = strFormatString.split(strSeparatorArray[intFormatSeparatorIdx]);
	    if (strFormatArray.length != 3) {
	      return false;
	    }

	    strDateToCheckArray = strDateToCheck.split(strSeparatorArray[intDateSeparatorIdx]);
	    if (strDateToCheckArray.length != 3) {
	      return false;
	    }

	    for (i=0; i<strFormatArray.length; i++) {
	      if (strFormatArray[i] == 'mm' || strFormatArray[i] == 'mmm') {
	        strMonth = strDateToCheckArray[i];
	      }

	      if (strFormatArray[i] == 'dd') {
	        strDay = strDateToCheckArray[i];
	      }

	      if (strFormatArray[i] == 'yyyy') {
	        strYear = strDateToCheckArray[i];
	      }
	    }
	  } else {
	    if (FormatString.length > 7) {
	      if (strFormatString.indexOf('mmm') == -1) {
	        strMonth = strDateToCheck.substring(strFormatString.indexOf('mm'), 2);
	      } else {
	        strMonth = strDateToCheck.substring(strFormatString.indexOf('mmm'), 3);
	      }

	      strDay = strDateToCheck.substring(strFormatString.indexOf('dd'), 2);
	      strYear = strDateToCheck.substring(strFormatString.indexOf('yyyy'), 2);
	    } else {
	      return false;
	    }
	  }

	  if (strYear.length != 4) {
	    return false;
	  }

	  intday = parseInt(strDay, 10);
	  if (isNaN(intday)) {
	    return false;
	  }
	  if (intday < 1) {
	    return false;
	  }

	  intMonth = parseInt(strMonth, 10);
	  if (isNaN(intMonth)) {
	    for (i=0; i<strMonthArray.length; i++) {
	      if (strMonth == strMonthArray[i]) {
	        intMonth = i+1;
	        break;
	      }
	    }
	    if (isNaN(intMonth)) {
	      return false;
	    }
	  }
	  if (intMonth > 12 || intMonth < 1) {
	    return false;
	  }

	  intYear = parseInt(strYear, 10);
	  if (isNaN(intYear)) {
	    return false;
	  }
	  if (IsLeapYear(intYear) == true) {
	    intDaysArray[1] = 29;
	  }

	  if (intday > intDaysArray[intMonth - 1]) {
	    return false;
	  }
  
	  return true;
	}

	function IsLeapYear(intYear) {
	  if (intYear % 100 == 0) {
	    if (intYear % 400 == 0) {
	      return true;
	    }
	  } else {
	    if ((intYear % 4) == 0) {
	      return true;
	    }
	  }

	  return false;
	}

	function uCase( field ) {
		field.value = field.value.toUpperCase();
	}

	function lCase( field ) {
		field.value = field.value.toLowerCase();
	}
