function submit_zip() {
 var url = "/delivery_dates.htm?prod=" + document.forms["product"].elements["order_prod_num"].value
  + "&refcode=" + document.forms["product"].elements["order_ref_code"].value;
 document.forms["product"].elements["order_d_zip"].value = "";
 document.forms["product"].elements["client_addr_id"].value = "";
 document.getElementById("zip_code").disabled = true;
 if(document.getElementById("addr_book") != undefined) {
  document.getElementById("addr_book").disabled = true;
  if(document.getElementById("addr_book").value != "") {
   url += "&addr=" + document.getElementById("addr_book").value;
   document.getElementById("zip_code").value = "";
   document.getElementById("change_zip").style.display = "none";
   document.getElementById("change_addr").style.display = "block";
  }
  else {
   url += "&zip=" + document.getElementById("zip_code").value;
   document.getElementById("change_zip").style.display = "block";
   document.getElementById("change_addr").style.display = "none";
  }
 }
 else {
  url += "&zip=" + document.getElementById("zip_code").value;
  document.getElementById("change_zip").style.display = "block";
 }
 document.getElementById("zip_cont").style.display = "none";
 var xmlHttp = init_xmlhttp();
 xmlHttp.onreadystatechange = function() {
  if(xmlHttp.readyState == 4) {
   process_zip(xmlHttp.responseText);
  }
 }
 xmlHttp.open("GET", url, true);
 xmlHttp.send(null);
}
function init_xmlhttp() {
 var xmlHttp;
 try {
  xmlHttp = new XMLHttpRequest();
 }
 catch(e) {
  try {
   xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
  }
  catch(e) {
   try {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
   }
   catch (e) {
    return false;
   }
  }
 }
 return xmlHttp;
}
function process_zip(resp) {
 clear_errors();
 var lines = resp.split("\n");
 if(lines[0] == 1) {
  document.forms["product"].elements["order_d_zip"].value = document.getElementById("zip_code").value;
  if(document.getElementById("addr_book") != undefined) {
   document.forms["product"].elements["client_addr_id"].value = document.getElementById("addr_book").value;
  }
  calendar = new CalendarPopup("calcont");
  calendar.setCssPrefix("CAL");
  calendar.offsetX = 25;
  calendar.offsetY = 0;
  calendar.setReturnFunction("cal_return");
  var delivery_dates = document.getElementById("delivery_dates");
  for(var i = delivery_dates.options.length - 1; i >= 0; i--) {
   delivery_dates.options[i] = null;
  }
  var one_day = 1000 * 60 * 60 * 24;
  var date_first = null;
  var date_last = null;
  var date_cons = null;
  var date_cur = null;
  for(var i = 2; i < lines.length; i++) {
   var option_parts = lines[i].split("|");
   var option_value = option_parts[0];
   var option_text = option_parts[1];
   var optn = document.createElement("option");
   optn.text = option_text;
   optn.value = option_value;
   delivery_dates.options.add(optn);
   date_cur = str_to_date(option_value);
   if(i == 2) {
    date_first = new Date(date_cur.getTime());
    date_first.setDate(date_first.getDate() - 1);
   }
   if(i == (lines.length - 1)) {
    date_last = new Date(date_cur.getTime());
    date_last.setDate(date_last.getDate() + 1);
   }
   if(date_cons == null) {
    date_cons = new Date(date_cur.getTime());
   }
   else {
    while(date_cons < date_cur) {
     calendar.addDisabledDates(date_to_str(date_cons))
     date_cons.setDate(date_cons.getDate() + 1);
    }
   }
   date_cons.setDate(date_cons.getDate() + 1);
  }
  calendar.addDisabledDates(null, date_to_str(date_first));
  calendar.addDisabledDates(date_to_str(date_last), null);
  change_text(document.getElementById("same_day"), lines[1]);
  document.getElementById("delivery_date_row").style.display = "block";
  document.getElementById("item3").style.display = "block";
  document.getElementById("item3bot").style.display = "block";
  document.getElementById("item4").style.display = "block";
  document.getElementById("item4bot").style.display = "block";
  document.getElementById("delivery_dates").focus();
 }
 else {
  edit_zip();
  change_text(document.getElementById("error[zip_code]"), lines[1]);
  document.getElementById("error[zip_code]").style.display = "block";
 }
}
function str_to_date(str) {
 var date_parts = str.split("-");
 return new Date(date_parts[0], date_parts[1] - 1, date_parts[2]);
}
function date_to_str(date) {
 return date.getFullYear() + "-" + pad((date.getMonth() + 1)) + "-" + pad(date.getDate());
}
function pad(num) {
 num = "0" + num;
 return num.substring(num.length, num.length - 2);
}
function cal_return(y, m, d) {
 document.forms["product"].elements["order_d_date"].value = y + "-" + pad(m) + "-" + pad(d);
}
function edit_zip() {
 clear_errors();
 document.forms["product"].elements["order_d_zip"].value = "";
 document.forms["product"].elements["client_addr_id"].value = "";
 document.getElementById("delivery_date_row").style.display = "none";
 document.getElementById("item3").style.display = "none";
 document.getElementById("item3bot").style.display = "none";
 document.getElementById("item4").style.display = "none";
 document.getElementById("item4bot").style.display = "none";
 document.getElementById("zip_code").disabled = false;
 document.getElementById("change_zip").style.display = "none";
 if(document.getElementById("addr_book") != undefined) {
  document.getElementById("addr_book").disabled = false;
  document.getElementById("change_addr").style.display = "none";
 }
 document.getElementById("zip_cont").style.display = "block";
 document.getElementById("zip_code").focus();
 document.getElementById("zip_code").select();
}
function submit_form() {
 var params = "";
 var f = document.forms["product"];
 for(var i = 0; i < f.elements.length; i++) {
  if(((f.elements[i].type == "checkbox") && (f.elements[i].checked)) || (f.elements[i].type != "checkbox")) {
   params += f.elements[i].name + "=" + escape(f.elements[i].value) + "&";
  }
 }
 params = params.substring(0, params.length - 1);
 var xmlHttp = init_xmlhttp();
 xmlHttp.onreadystatechange = function() {
  if(xmlHttp.readyState == 4) {
   process_form(xmlHttp.responseText);
  }
 }
 xmlHttp.open("POST", "/delivery_validate.htm?refcode=" + document.forms["product"].elements["order_ref_code"].value, true);
 xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 xmlHttp.send(params);
}
function process_form(resp) {
 clear_errors();
 if(resp == "") {
  if(typeof(pageTracker) != "undefined") {
   setUrchinInputCode(pageTracker);
  }
  exit = false;
  document.forms["product"].submit();
  return;
 }
 var lines = resp.split("\n");
 var error_fields = new Array();
 for(var i = 0; i < lines.length; i++) {
  var error_parts = lines[i].split("|");
  var error_field = document.getElementById("error[" + error_parts["0"] + "]");
  var error_msg = error_parts[1];
  if(error_field != undefined) {
   change_text(error_field, error_msg);
   error_field.style.display = "block";
   error_fields.push(error_field);
  }
 }
 var error_y = get_top(error_fields[0]);
 if(error_y > 0) {
  window.scroll(0, error_y);
 }
}
function clear_errors() {
 var divs = document.getElementsByTagName("div");
 for(var i = 0; i < divs.length; i++) {
  var div = divs[i];
  if((div.id != undefined) && (div.id.substring(0, 6) == "error[")) {
   div.style.display = "none";
  }
 }
}
function get_top(obj) {
 var curtop = 0;
 if(obj.offsetParent) {
  while(true) {
   curtop += obj.offsetTop;
   if(!obj.offsetParent) {
    break;
   }
   obj = obj.offsetParent;
  }
 }
 else if(obj.y) {
  curtop += obj.y;
 }
 return curtop;
}
function deluxePopUp() {
 var url = "http://www.fromyouflowers.com/popups/deluxe_popup.htm";
 var width = 330;
 var height = 400;
 var winleft = 0;//(screen.width - width) / 2;
 var wintop = 0;//(screen.height - height) / 2;
 var winprops = 'height='+height+',width='+width+',top='+wintop+',left='+winleft+',scrollbars=no';
 var win = window.open(url, 'win', winprops);
}
function premiumPopUp() {
 var url = "http://www.fromyouflowers.com/popups/premium_popup.htm";
 var width = 400;
 var height = 440;
 var winleft = 0;//(screen.width - width) / 2;
 var wintop = 0;//(screen.height - height) / 2;
 var winprops = 'height='+height+',width='+width+',top='+wintop+',left='+winleft+',scrollbars=no';
 var win = window.open(url, 'win', winprops);
}
function zipPopUp() {
 var url = "/zip_code.htm";
 var width = 500;
 var height = 350;
 var winleft = 0;//(screen.width - width) / 2;
 var wintop = 0;//(screen.height - height) / 2;
 var winprops = 'height='+height+',width='+width+',top='+wintop+',left='+winleft+',scrollbars=yes';
 var win = window.open(url, 'win', winprops);
}
function emailPopUp(prod) {
 var url = "/email_a_friend.htm?prod=" + prod;
 var width = 625;
 var height = 430;
 var winleft = 0;//(screen.width - width) / 2;
 var wintop = 0;//(screen.height - height) / 2;
 var winprops = 'height='+height+',width='+width+',top='+wintop+',left='+winleft+',scrollbars=yes';
 var win = window.open(url, 'win', winprops);
}
function alcPopUp(prod) {
 var url = "/popups/alcohol_popup.htm";
 var width = 625;
 var height = 550;
 var winleft = 0;//(screen.width - width) / 2;
 var wintop = 0;//(screen.height - height) / 2;
 var winprops = 'height='+height+',width='+width+',top='+wintop+',left='+winleft+',scrollbars=yes';
 var win = window.open(url, 'win', winprops);
}
function zip_code_keypress(e) {
 var code;
 if(e.keyCode != undefined) {
  code = e.keyCode;
 }
 else {
  code = e.which;
 }
 if(code == 13) {
  submit_zip();
  return false;
 }
 return true;
}
function msg_keypress() {
 var card_msg = document.getElementById("message");
 if(card_msg.value.length > 175) {
  card_msg.value = card_msg.value.substring(0, 175);
 }
 document.getElementById("card_msg_rem").value = 175 - card_msg.value.length;
}
function spec_keypress() {
 var spec_inst = document.getElementById("spec_inst");
 if(spec_inst.value.length > 60) {
  spec_inst.value = spec_inst.value.substring(0, 60);
 }
 document.getElementById("spec_inst_rem").value = 60 - spec_inst.value.length;
}

