var quoteblockvisible = false;
var storagemenuvisible = false;
var movingmenuvisible = false;
var movstormenuvisible = false;
var textcleared = false;
var activeMenu = 0;
var button = new Image();
var buttondown = new Image();
var buttondisabled = new Image();
var calculatebutton = new Image();
var calculatebuttondown = new Image();
var closebutton = new Image();

button.src = "http://"+location.hostname+"/quote-units/pics/get-a-quote-button.png"; // pre-load the image
buttondown.src = "http://"+location.hostname+"/quote-units/pics/get-a-quote-button-down.png"; // pre-load the image
buttondisabled.src = "http://"+location.hostname+"/quote-units/pics/get-a-quote-button-disabled.png"; // pre-load the image
calculatebutton.src = "http://"+location.hostname+"/quote-units/pics/How-Many-Box-Button.png";
calculatebuttondown.src = "http://"+location.hostname+"/quote-units/pics/How-Many-Box-Button-Down.png";
closebutton.src = "http://"+location.hostname+"/quote-units/pics/How-Many-Box-Xpush-.png";

function initfields() {
  // initialize fields after page loads
  document.getElementById("initzip").value = (initZIP==""?(zip1==""?"ZIP Code":zip1):initZIP);
  document.getElementById("destzip").value = (zip2==""?"ZIP Code":zip2);
  document.getElementById("deliver_date").value = deliverdate;
  document.getElementById("monthsNeeded").selectedIndex = monthsneeded;
  document.getElementById("twelves").selectedIndex = unit12;
  document.getElementById("sixteens").selectedIndex = unit16;
  switch( discount ) {
  case 'S':
    document.getElementById("seniordiscount").checked = true; break;
  case 'M':
    document.getElementById("militarydiscount").checked = true; break;
  case 'C':
    document.getElementById("corpdiscount").checked = true; break;
  }
  document.getElementById("addcomments").value = customercomment;
  document.getElementById("custname").value = customername;
  document.getElementById("custarea").value = customerphone.substr(0,3);
  document.getElementById("custexch").value = customerphone.substr(3,3);
  document.getElementById("custphone").value = customerphone.substr(6,4);
  document.getElementById("email").value = customeremail;

  if( storage.search("Warehouse") != -1 ) {
    document.getElementById("storagelocation").selectedIndex = 1;
  } else {
    document.getElementById("storagelocation").selectedIndex = 0;
  }

  
  selectForm(formselected);
}

function phoneKey( id ) {
  // only allows digits entry
  var x = document.getElementById(id).value;
  var last = x.charAt(x.length-1);
  if( isNaN( last ) ) 
    document.getElementById(id).value = x.substr(0,x.length-1);
  else
    document.getElementById(id).value = x;

  // transition to the next field when full
  x = document.getElementById(id).value;
  switch( id ) {
  case 'custarea':
    if( x.length == 3 ) 
      document.getElementById('custexch').focus();
    break;
  case 'custexch':
    if( x.length == 3 ) 
      document.getElementById('custphone').focus();
    break;
  case 'custphone':
    if( x.length == 4 ) 
      document.getElementById('email').focus();
    break;
  }
}

function selectForm( which ) {
  // disable unused fields, enable required fields, set formtype
  switch( which ) {
  case 'moving':
    //alert("moving");
    document.getElementById("destzip").disabled = false;
    document.getElementById("storagelocation").disabled = true;
    document.getElementById("formtype").value = "moving";
    break;
  case 'movestore':
    //alert("movestore");
    document.getElementById("destzip").disabled = false;
    document.getElementById("storagelocation").disabled = false;
    document.getElementById("formtype").value = "movstor";
    break;
  case 'storage':
    //alert("storage");
    document.getElementById("destzip").disabled = true;
    document.getElementById("storagelocation").disabled = false;
    document.getElementById("formtype").value = "storage";
    break;
  }
}

// form element functions
function clearfield( field, initialvalue ) {
  if( field.value.search(initialvalue) != -1 )
    field.value = "";
}
function cleartext( field ) {
  if( !textcleared ) {
    field.value = "";
    textcleared = true;
  }
}

function privacystatement(which) {
  switch( which ) {
  case "on":
    document.getElementById("privacypopup").style.visibility = "visible";
    break;
  case "off":
    document.getElementById("privacypopup").style.visibility = "hidden";
    break;
  }
}

function discountSelect( which ) {
  switch( which ) {
  case 'senior':
    //document.getElementById("seniordiscount").checked = true;
    document.getElementById("militarydiscount").checked = false;
    document.getElementById("corpdiscount").checked = false;
    break;
  case 'military':
    document.getElementById("seniordiscount").checked = false;
    //document.getElementById("militarydiscount").checked = false;
    document.getElementById("corpdiscount").checked = false;
    break;
  case 'corp':
    document.getElementById("seniordiscount").checked = false;
    document.getElementById("militarydiscount").checked = false;
    //document.getElementById("corpdiscount").checked = false;
    break;
  }
}

function validate1( formtype ) {
  // validate form fields
  var results = true;
  var alertText = "";

  // form selection
  if( formtype == "none" || ( !document.getElementById("moving").checked && !document.getElementById("movstor").checked && !document.getElementById("storage").checked) ) {
    //alertText += "Select a service type (Moving, Moving&Storage, Storage)";
    alertText += "<li>Select Moving, Moving & Storage, or Storage</li>";
    results = false;
  }

  // zipcodes
  var zip = document.getElementById("initzip").value;
  if( isNaN(zip) || ( !isNaN(zip) && (zip.length != 5) ) || zip == '00000' ) {
    //alertText += "- Initial Delivery ZIP Code is missing, not a number, all zeroes, too short, or too long.<br />";
    alertText += "<li>Enter a valid Initial Delivery ZIP code</li>";
    results = false;
  }
  if( formtype == 'moving' || formtype == 'movstor'  ) {
    var zip = document.getElementById("destzip").value;
    if( isNaN(zip) || ( !isNaN(zip) && (zip.length != 5) ) || zip == '00000' ) {
      //alertText += "- Destination ZIP Code is missing, not a number, all zeroes, too short, or too long.<br />";
      alertText += "<li>Enter a valid Final Delivery ZIP code</li>";
      results = false;
    }
  }

  // how many and what size
  var twelves = document.getElementById("twelves").value;
  var sixteens = document.getElementById("sixteens").value;
  if( (twelves == 0) && (sixteens == 0) ) {
    //alertText += "- Select 1 or more 12' or 16' UNITS.<br />";
    alertText += "<li>Select number of UNITS Needed</li>";
    results = false;
  }

  // name
  if( document.getElementById("custname").value.length < 1 ) {
    //alertText += "- Enter your name.<br />";
    alertText += "<li>Enter your name</li>";
    results = false;
  }

  // phone or email
  var phone = document.getElementById("custarea").value + document.getElementById("custexch").value + document.getElementById("custphone").value;
  var email = document.getElementById("email").value;
  var isphone = validatePhone( phone );
  var isemail = validateEmail( email );
  if( !isphone && !isemail ) {
    //alertText += "- Phone and/or Email fields not filled in.<br />";
    alertText += "<li>Enter either a valid phone number or email address</li>";
    results = false;
  } 

  if( phone.length > 0 && !isphone && !isemail ) {
    alertText += "<li>Enter a valid phone number</li>";
    //alertText += "- Phone number must include areacode and number.<br />";
    results = false;
  }
 
  if( email.length > 0 && !isemail && !isphone ) {
    alertText += "<li>Enter a valid email address</li>";
    //alertText += "- Email address is not accepted, please re-enter.<br />";
    results = false;
  }
  
  // put error results on page
  if( !results ) {
    document.getElementById("errortext").innerHTML = "<ul>"+alertText+"</ul>";
    //window.scrollTo(0,0);
    document.getElementById("formerrorbox").style.visibility = "visible";
    //document.getElementById("formerror").innerHTML = alertText;
    //} else {
    //document.getElementById("formerror").innerHTML = "";
  }
  return( results );
}

function closeErrorPopup() {
  document.getElementById("formerrorbox").style.visibility = "hidden";
  document.getElementById("quotebutton").src = "http://"+location.hostname+"/quote-units/pics/get-a-quote-button.png";
  document.getElementById("quote-button").style.visibility = "visible";
}
function validatePhone(phonestr) {
  var results = true;
  if( phonestr.length == 0 ) {
    results = false;
  } else {
    if( (phonestr.length > 0) && (phonestr.length < 10) )
      results = false;
  }
  return( results );
}

function validateEmail(emailstr) {
  var results = true;
  if( emailstr.length == 0 ) { // || (phone.match("areacode+phone") != null && email.length == 0) ) {
    results = false;
  } else {
    if( emailstr.length > 0 ) {
      if( emailstr.indexOf("@") == "-1" || emailstr.indexOf(".") == "-1" || emailstr.indexOf("@") == 0 )
	results = false;
    }
  }
  return( results );
}

function resetForm() {
  document.getElementById("moving").checked = false;
  document.getElementById("movstor").checked = false;
  document.getElementById("storage").checked = false;
  document.getElementById("destzip").disabled = false;
  document.getElementById("storagelocation").disabled = false;
  document.getElementById("formtype").value = "none";
  
  document.getElementById("initzip").value = "ZIP Code";
  document.getElementById("destzip").value = "ZIP Code";
  document.getElementById("deliver_date").value = "dd/mm/yy"
  document.getElementById("monthsNeeded").selectedIndex = 0;
  document.getElementById("twelves").selectedIndex = 0;
  document.getElementById("sixteens").selectedIndex = 0;
  //document.getElementById("nodiscount").checked = true;
  document.getElementById("seniordiscount").checked = false;
  document.getElementById("militarydiscount").checked = false;
  document.getElementById("corpdiscount").checked = false;
  document.getElementById("addcomments").value = "Please enter any questions or comments regarding your service so we may better serve you.";
  document.getElementById("custname").value = "";
  document.getElementById("custarea").value = "";
  document.getElementById("custexch").value = "";
  document.getElementById("custphone").value = "";
  document.getElementById("email").value = "";
  document.getElementById("newsletter").checked = true;
  document.getElementById("storagelocation").selectedIndex = 0;
}

function submitForm1() {
  //alert("Do what?");
  // validate form fields
  //window.scrollTo(0,0);
  if( validate1(document.getElementById("formtype").value) ) {
    //alert("validates");
    //document.getElementById("quoteresults").innerHTML = '<center><p>Collecting a quote for you now! Please wait...</p><p><img src="pics/indicator_medium.gif" /></p></center>';
    //document.getElementById("quoteresultsbox").style.visibility = "visible";
    //document.getElementById("quoteresults").style.visibility = "visible";
    document.getElementById("quotespinnerbox").style.visibility = "visible";
    sendQuote();
  }
}

function buttonpressed() {
  document.getElementById("quotebutton").src = "http://"+location.hostname+"/quote-units/pics/get-a-quote-button-down.png";
}
function buttonreleased() {
  //document.getElementById("quotebutton").src = "http://"+location.hostname+"/quote-units/pics/get-a-quote-button-disabled.png";
  document.getElementById("quote-button").style.visibility = "hidden";
  submitForm1();
}

function closeXover( id ) {
  //document.getElementById("closeX").src = "http://"+location.hostname+"/quote-units/pics/How-Many-Box-Xpush.png";
  id.src = "http://"+location.hostname+"/quote-units/pics/How-Many-Box-Xpush.png";
}
function closeXout( id ) {
  //document.getElementById("closeX").src = "http://"+location.hostname+"/quote-units/pics/How-Many-Box-X.png";
  id.src = "http://"+location.hostname+"/quote-units/pics/How-Many-Box-X.png";
}

function calculateButtonPress(which) {
  switch( which ) {
  case 'down':
    document.getElementById("calculatebutton").src = "http://"+location.hostname+"/quote-units/pics/How-Many-Box-Button-Down.png";
    break;
  case 'up':
    document.getElementById("calculatebutton").src = "http://"+location.hostname+"/quote-units/pics/How-Many-Box-Button.png";
    numberofunits();
  }
}
function unitcalculate( which ) {
  //clearQuote();

  switch( which ) {
  case "on":
    document.getElementById("howmanybox").style.visibility = "visible";
    break;
  case "off":
    document.getElementById("howmanybox").style.visibility = "hidden";
    break;
  }
}

function numberofunits() {
  var newHTML = new String();
  var largeunits =  new Number (0);
  var smallunits = new Number(0);
  var size = document.getElementById("squarefeet").value;
  //var rooms = document.getElementById("rooms").selectedIndex + 1;
  var garage = document.getElementById("garage").checked;
  var basement = document.getElementById("basement").checked;
  var result = document.getElementById("calculatedresult");

  /*
  switch ( document.getElementById("locationtype").value ) {
  case "house":
    if( size <= 1200 ) {
      smallunits = 1;
      largeunits = 0;
    } else if( size <= 1600 ) {
      smallunits = 1;
      largeunits = 1;
    } else if( size <= 2100 ) {
      smallunits = 0;
      largeunits = 2;
    } else if( size <= 3300 ) {
      smallunits = 0;
      largeunits = 3;
    } else if( size <= 5000 ) {
      smallunits = 0;
      largeunits = 4;
    } else {
      newHTML = "Please call for estimate";
      smallunits = 0;
      largeunits = 0;
    }
    if( smallunits > 0 || largeunits > 0 ) {
      if( (garage && !basement) || (!garage && basement) )
	smallunits++;
      if( garage && basement )
	largeunits++;
    }
    break;
  case "business":
    if( size <= 800 ) {
      smallunits = 1;
      largeunits = 0;
    } else if( size <= 850 ) {
      smallunits = 0;
      largeunits = 1;
    } else if( size <= 1399 ) {
      smallunits = 1;
      largeunits = 1;
    } else if( size <= 1679 ) {
      smallunits = 0;
      largeunits = 2;
    } else if( size <= 2199 ) {
      smallunits = 1;
      largeunits = 2;
    } else {
      newHTML = "Please call for estimate";
      smallunits = 0;
      largeunits = 0;
    }
    break;
  case "apartment":
    if( size <= 1000 ) {
      smallunits = 1;
      largeunits = 0;
    } else if( size <= 1099 ) {
      smallunits = 0;
      largeunits = 1;
    } else if( size <= 1749 ) {
      smallunits = 1;
      largeunits = 1;
    } else if( size <= 2000 ) {
      smallunits = 0;
      largeunits = 2;
    } else {
      newHTML = "Please call for estimate";
      smallunits = 0;
      largeunits = 0;
    }
    break;
  default:
    locationfactor = 1;
  }
  */

  if( size < 1500 ) {
    if( basement ) {
      smallunits = 0;
      largeunits = 1;
    } else {
      smallunits = 1;
      largeunits = 0;
    }
  } else if( size < 1800 ) {
    if( basement ) {
      smallunits = 1;
      largeunits = 1;
    } else {
      smallunits = 0;
      largeunits = 1;
    }
  } else if( size < 2000 ) {
    if( garage && !basement ) {
      smallunits = 1;
      largeunits = 1;
    } else if( basement ) {
      smallunits = 1;
      largeunits = 1;
    } else {
      smallunits = 0;
      largeunits = 1;
    }
  } else if( size < 3000 ) {
    if( garage && !basement ) {
      smallunits = 0;
      largeunits = 2;
    } else if( basement ) {
      smallunits = 1;
      largeunits = 2;
    } else {
      smallunits = 0;
      largeunits = 2;
    }
  } else if( size < 5000 ) {
    if( garage && !basement ) {
      smallunits = 0;
      largeunits = 3;
    } else if( basement ) {
      smallunits = 1;
      largeunits = 3;
    } else {
      smallunits = 0;
      largeunits = 3;
    }
  } else if( size < 6000 ) {
    if( garage && !basement ) {
      smallunits = 0;
      largeunits = 4;
    } else if( basement ) {
      smallunits = 0;
      largeunits = 4;
    } else {
      smallunits = 0;
      largeunits = 4;
    }
  } else {
    newHTML = "<center>Please call for estimate</center>";
    smallunits = 0;
    largeunits = 0;
  }
  
  if( (smallunits + largeunits) > 0 ) {
    newHTML = '<p class="smallheading">You will need: </p><p>';
    if( largeunits > 0 ) newHTML += largeunits + " - 16FT UNITS<br />";
    if( smallunits > 0 ) newHTML += smallunits + " - 12FT UNITS";
    newHTML += "</p>";
  }
  result.innerHTML = newHTML;


  document.getElementById("twelves").selectedIndex = smallunits;
  document.getElementById("sixteens").selectedIndex = largeunits;
  //document.getElementById("12_foot_containers_needed").selectedIndex = smallunits;
  //document.getElementById("16_foot_containers_needed").selectedIndex = largeunits;
  
}

function questionpop( that, happened, which ) {
  //var pointerID = document.getElementById("questionpointer");
  var popupID = document.getElementById("questionbox");
  var popAnswer = document.getElementById("answertext");
  var v = "visible";
  var top = 0; //happened.clientY; //that.offsetTop;
  var left = 0; //that.offsetLeft+15;


  //var left = happened.clientX + 15; //that.offsetLeft;
  //var top = that.offsetTop;
  //var top = happened.currentTarget.offsetTop; //that.offsetTop;
  //var left = happened.currentTarget.offsetWidth + 15; //that.offsetLeft;

  var O;

  switch( which ) {
  case 'moving':
    popAnswer.innerHTML = 'Select "Moving" if you are moving your loaded UNIT directly to a new location.';
    O = document.getElementById("movequestion");
    break;
  case 'movstor': 
    popAnswer.innerHTML = 'Select "Moving & Storage" if you plan to store your UNIT at our storage facility and then have us either move it to a new location or redelivery to initial location.';
    O = document.getElementById("movstorquestion");
    break;
  case 'storage': 
    popAnswer.innerHTML = 'Select "Storage" if you plan to keep your UNIT at your location or store it at our secure storage facility.';
    O = document.getElementById("storagequestion");
    break;
  case 'senior': 
    popAnswer.innerHTML = 'Discounts may be available for customers 65 years and older.';
    O = document.getElementById("seniorquestion");
    break;
  case 'military': 
    popAnswer.innerHTML = 'Discounts may be available for Active Duty Military.';
    O = document.getElementById("militaryquestion");
    break;
  case 'corp': 
    popAnswer.innerHTML = 'Corporate discounts may be available for businesses.';
    O = document.getElementById("corpquestion");
    break;
  case 'out':
    v = "hidden";
    //pointerID.style.visibility = v;
    popupID.style.visibility = v;
    return;
    break;
  }
  var browser = navigator.appName;
  if( browser.search('Microsoft') != -1 ) {
    // exploder
    if( O.offsetParent ) {
      do {
	if( left == 0 ) left += O.offsetLeft;
	if( top == 0 ) top += O.offsetTop;
      } while( O = O.offsetParent );
      left += 15;
      top += 3;
      //top -= 6;
      /*
	left = O.offsetLeft;
	top = O.offsetTop;
      */
    } else {
    alert("no offsetParent");
    }
  } else {
    left = O.offsetLeft+18;
    top = O.offsetTop+2;
  }


  //pointerID.style.top = top;
  //pointerID.style.left = left;
  //pointerID.style.visibility = v;
  popupID.style.top = top;
  popupID.style.left = left+14;
  popupID.style.visibility = v;
}

function closequote() {
  document.getElementById("quoteresults").style.visibility = "hidden";
  document.getElementById("quotebox").style.visibility = "hidden";
  document.getElementById("quotebox").style.top = "20px";
  //window.scrollTo(0,0);
}

function saveQuoteTable() {
  var str = document.getElementById("quoteresults").innerHTML;
  var url = "?q=quotetable&id="+document.getElementById("quoteID").value+"&table="+str;
  quoteUpdates( url );
}

function quoteUpdates( args ) {
  xmlHttp = GetXmlHttpObject();
  if (xmlHttp==null) {
    alert ("Browser does not support HTTP Request");
    return;
  }
  var url = "http://"+location.hostname+"/quote-units/quote-code/updatequote.php";
  url = url + args;
  url = url + "&sid=" + Math.random();
  xmlHttp.onreadystatechange = quoteUpdateResults;
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
}

function quoteUpdateResults() {
  // nothing to do here yet...
  if ( xmlHttp.readyState == 4 || xmlHttp.readyState == "complete" ) {
  }  
}

function questionDone() {
  //alert("Questionaire complete");
  xmlHttp = GetXmlHttpObject();
  if (xmlHttp==null) {
    alert ("Browser does not support HTTP Request");
    return;
  }
  var str = "";
  for( var i=1; i<7; i++ )
    str += "&q"+i+"="+ (document.getElementById("q"+i).checked?"true":"false");
  str += "&q7="+document.getElementById("q7").value;
  //alert(str);

  var url = "http://"+location.hostname+"/quote-units/quote-code/savequestion.php";
  url = url + "?q=quotequestionaire&id="+document.getElementById("quoteID").value + str;
  url = url + "&sid=" + Math.random();
  //alert("sendThis: "+url);
  xmlHttp.onreadystatechange = questionResults;
  xmlHttp.open("GET",url,true);
  //xmlHttp.open("GET",url,false); //waits for response before continuing
  xmlHttp.send(null);
  //alert("Your message is being processed...");
}

function questionResults() { 
  if ( xmlHttp.readyState == 4 || xmlHttp.readyState == "complete" ) {
    closequote();
  }
}

