function calcTime(zone, offset) {
	// create Date object for current location
	var d = new Date();
	
	// account for Daylight Savings Time...a ridiculous remnant of our past that continues to haunt us
	var dst = 0;
	offset = parseInt(offset) + dst;
	
	utc = d.getTime() + (d.getTimezoneOffset() * 60000);
	nd = new Date(utc + (3600000*offset));
	
	return(nd);
}

function timeleft() {
	var displaycountdown = 1;
	
	var calitime = calcTime("Pacific Standard Time",-8);		// what is the current time in California?
	var shipon = "";		// today, tomorrow, or Monday
	var year = parseInt(calitime.getFullYear());		// target always reached in current  4-digit year
	var month = parseInt(calitime.getMonth());		// current month...value between 0 and 11
	var day = parseInt(calitime.getDay());		// day of the week between 0 and 6
	var hour = parseInt(calitime.getHours());		// between 0 and 23
	if (day > 0 && day < 6 && hour < 11) {		// Monday through Friday before 11am
		shipon = " today.";
		day = parseInt(calitime.getDate());		// change day to be current day of the month
	}
	else if (day > 0 && day < 5 && hour >= 11) {		// Monday through Thursday after 11am
		shipon = " tomorrow.";
		day = parseInt(calitime.getDate()) + 1;		// change day to be next day of the month
	}
	else if (day == 5 && hour >=11) {		// Friday after 11am
		shipon = " on Monday.";
		day = parseInt(calitime.getDate()) + 3;		// change day to be next Monday of the month
	}
	else if (day == 0 || day == 6) {		// Saturday or Sunday
		shipon = " on Monday.";
		if (day == 0) {
			day = parseInt(calitime.getDate()) + 1; // change day to be the following Monday
		}
		else if (day == 6) {
			day = parseInt(calitime.getDate()) + 2; // change day to be the following Monday
		}
	}
	else {		// if there is unexpected data, turn the thing off rather than watch it break
		displaycountdown = 0;
	}
	hour = 11;		// between 0 and 23
	var minute = 0;		// between 0 and 59
	var second = 0;		// between 0 and 59
	var timetextleft = "<div style=\"font-weight:bold;white-space:nowrap;\">Order in the next ";		// text that appears next to the time on the left
	var timetextright = (" and we'll ship " + shipon + "</div>");		// text that appears next to the time on the right
	var end = new Date(year,month,day,hour,minute,second);

	var now = new Date();
	var sec = second - now.getSeconds();
	var min = minute - now.getMinutes();
	var hr = hour - now.getHours();
	var dy = day - now.getDate();
	var mnth = month - now.getMonth();
	var yr = year - now.getFullYear();
	var daysinmnth = 32 - new Date(now.getFullYear(),now.getMonth(), 32).getDate();
	
	// calculate time remaining correctly
	if(sec < 0){
		sec = (sec+60)%60;
		min--;
	}
	if(min < 0){
		min = (min+60)%60;
		hr--;	
	}
	if(hr < 0){
		hr = (hr+24)%24;
		dy--;	
	}
	if(dy < 0){
		dy = 0;		// (dy+daysinmnth)%daysinmnth;
		mnth--;	
	}
	if(mnth < 0){
		mnth = 0;		// (mnth+12)%12;
		yr--;
	}	
	var sectext = (sec == 1) ? " second " : " seconds ";
	var mintext = (min == 1) ? " minute " : " minutes ";
	var hrtext = (hr == 1) ? " hour, " : " hours, ";
	var dytext = (dy == 1) ? " day, " : " days, ";
	var mnthtext = (mnth == 1) ? " month, " : " months, ";
	var yrtext = (yr == 1) ? " year, " : " years, ";

	if(displaycountdown == 0){
		return false;
	}
	else{
		/*var timingmsg = timetextleft + yr + yrtext + mnth + mnthtext + dy + dytext + hr + hrtext + min + mintext + sec + sectext + timetextright;*/
		var timingmsg = timetextleft;
		if (dy > 0) {
			timingmsg += "<span style=\"color:#ff820d;\">" + dy + dytext + "</span>";
		}
		if (hr > 0) {
			timingmsg += "<span style=\"color:#ff820d;\">" + hr + hrtext + "</span>";
		}
		if (min > 0) {
			timingmsg += "<span style=\"color:#ff820d;\">" + min + mintext + "</span>";
		}
		if (dy == 0 && hr == 0 && min == 0) {
			timingmsg += "<span style=\"color:#ff820d;\">" + sec + sectext + "</span>";
		}
		timingmsg += timetextright;
		document.getElementById("shipTimeMsg").innerHTML = timingmsg;
	}
	
	timerID = setTimeout("timeleft()", 1000); 
}

timeleft();



