function PacificoLibrary() {
	this.verified = false;
	this.init = function() {
		$(".scroll-pane").jScrollPane({
			showArrows:true,
			verticalGutter:50,
			verticalDragMaxHeight:25
		});
		var context = this;
		$("#dob-month").bind("focus", function() { context.hideFieldDescriptor("month"); });
		$("#dob-month").bind("blur", function() { context.checkFieldDisplay("month"); });
		$("#dob-day").bind("focus", function() { context.hideFieldDescriptor("day"); });
		$("#dob-day").bind("blur", function() { context.checkFieldDisplay("day"); });
		$("#dob-year").bind("focus", function() { context.hideFieldDescriptor("year"); });
		$("#dob-year").bind("blur", function() { context.checkFieldDisplay("year"); });
	}
	this.hideFieldDescriptor = function(datePart) {
		$("#dob-" + datePart).css("background-position", "1000px 1000px");
	}
	this.checkFieldDisplay = function(datePart) {
		if ($("#dob-" + datePart).val().length == 0) {
			$("#dob-" + datePart).css("background-position", (datePart == "year" ? 15 : 0) + "px 10px");
		}
	}
	this.showTerms = function() {
		$(".verification-overlay").css("display", "none");
		$(".terms-overlay").css("top", 0);
	}
	this.closeTerms = function() {
		$(".terms-overlay").css("top", -4000);
		if (!this.verified) $(".verification-overlay").css("display", "block");
	}
	this.verifyAge = function() {
		var min_age = 21;
		var year = $("#dob-year").val();
		var month = $("#dob-month").val();
		var day = $("#dob-day").val();
		if (!isValidDate(month + "-" + day + "-" + year)) {
			alert("Invalid date");
		} else {
			var validBDay = new Date((parseInt(year) + 21), parseInt(month) - 1, day);
			var today = new Date();
			if ((today.getTime() - validBDay.getTime()) < 0) {
				alert("You must be 21 to enter this site");
			} else {
				this.verified = true;
				$(".verification-overlay").css("display", "none");
			}
		}
	}
	this.autoTab = function(field1, len, field2) {
		if (document.getElementById(field1).value.length == len) document.getElementById(field2).focus();
	}
}

function isValidDate(dateStr, format) {
   if (format == null) { format = "MDY"; }
   format = format.toUpperCase();
   if (format.length != 3) { format = "MDY"; }
   if ( (format.indexOf("M") == -1) || (format.indexOf("D") == -1) || 
      (format.indexOf("Y") == -1) ) { format = "MDY"; }
   if (format.substring(0, 1) == "Y") { // If the year is first
      var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
      var reg2 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
   } else if (format.substring(1, 2) == "Y") { // If the year is second
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/
   } else { // The year must be third
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
   }
   // If it doesn't conform to the right format (with either a 2 digit year or 4 digit year), fail
   if ( (reg1.test(dateStr) == false) && (reg2.test(dateStr) == false) ) { return false; }
   var parts = dateStr.split(RegExp.$1); // Split into 3 parts based on what the divider was
   // Check to see if the 3 parts end up making a valid date
   if (format.substring(0, 1) == "M") { var mm = parts[0]; } else 
      if (format.substring(1, 2) == "M") { var mm = parts[1]; } else { var mm = parts[2]; }
   if (format.substring(0, 1) == "D") { var dd = parts[0]; } else 
      if (format.substring(1, 2) == "D") { var dd = parts[1]; } else { var dd = parts[2]; }
   if (format.substring(0, 1) == "Y") { var yy = parts[0]; } else 
      if (format.substring(1, 2) == "Y") { var yy = parts[1]; } else { var yy = parts[2]; }
   if (parseFloat(yy) <= 50) { yy = (parseFloat(yy) + 2000).toString(); }
   if (parseFloat(yy) <= 99) { yy = (parseFloat(yy) + 1900).toString(); }
   var dt = new Date(parseFloat(yy), parseFloat(mm)-1, parseFloat(dd), 0, 0, 0, 0);
   if (parseFloat(dd) != dt.getDate()) { return false; }
   if (parseFloat(mm)-1 != dt.getMonth()) { return false; }
   return true;
}





















