function sendRequest() {
  MM_showHideLayers('callmeform','','hide');
	document.getElementById("request_response").style='padding: 30px 10px 0px 148px;';
  MM_showHideLayers('request_response','','show');
  document.getElementById("request_response").innerHTML='Checking operator status. One moment, please!';
  var xmlHttp =  new XMLHttpRequest();
  if (xmlHttp==null) {
    alert ("Browser does not support HTTP Request");
    return false;
  } 
  var url="/callme/request.php";
  url=url+"?a=makeRequest";
  url=url+"&rName="+document.requestForm.rName.value;
  url=url+"&rPhone="+document.requestForm.rPhone.value;
  xmlHttp.onreadystatechange = function() {
      if (xmlHttp.readyState == 4 || xmlHttp.readyState=="complete") {
          // Your callback code goes here
          document.getElementById("request_response").innerHTML=xmlHttp.responseText;
      }
  }
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
  return;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_timelinePlay(tmLnName, myID, mEntrance) { //v1.2
  //Copyright 1997, 2000 Macromedia, Inc. All rights reserved.
  
    // see if there's an operator online or if we're taking call requests no matter what
  var xmlHttp =  new XMLHttpRequest();
  if (xmlHttp==null) {
    //alert ("Browser does not support HTTP Request");
    return false;
  } 
  var url="/callme/opcheck.php";
  xmlHttp.onreadystatechange = function() {
      if (xmlHttp.readyState == 4 || xmlHttp.readyState=="complete") {
        if (xmlHttp.responseText == "OK") {
          var i,j,tmLn,props,keyFrm,sprite,numKeyFr,firstKeyFr,propNum,theObj,firstTime=false;
          if (document.MM_Time == null) MM_initTimelines(mEntrance); //if *very* 1st time
          tmLn = document.MM_Time[tmLnName];
          if (myID == null) { myID = ++tmLn.ID; firstTime=true;}//if new call, incr ID
          if (myID == tmLn.ID) { //if Im newest
            setTimeout('MM_timelinePlay("'+tmLnName+'",'+myID+')',tmLn.delay);
            fNew = ++tmLn.curFrame;
            for (i=0; i<tmLn.length; i++) {
              sprite = tmLn[i];
              if (sprite.charAt(0) == 's') {
                if (sprite.obj) {
                  numKeyFr = sprite.keyFrames.length; firstKeyFr = sprite.keyFrames[0];
                  if (fNew >= firstKeyFr && fNew <= sprite.keyFrames[numKeyFr-1]) {//in range
                    keyFrm=1;
                    for (j=0; j<sprite.values.length; j++) {
                      props = sprite.values[j]; 
                      if (numKeyFr != props.length) {
                        if (props.prop2 == null) sprite.obj[props.prop] = props[fNew-firstKeyFr];
                        else        sprite.obj[props.prop2][props.prop] = props[fNew-firstKeyFr];
                      } else {
                        while (keyFrm<numKeyFr && fNew>=sprite.keyFrames[keyFrm]) keyFrm++;
                        if (firstTime || fNew==sprite.keyFrames[keyFrm-1]) {
                          if (props.prop2 == null) sprite.obj[props.prop] = props[keyFrm-1];
                          else        sprite.obj[props.prop2][props.prop] = props[keyFrm-1];
                } } } } }
              } else if (sprite.charAt(0)=='b' && fNew == sprite.frame) eval(sprite.value);
              if (fNew > tmLn.lastFrame) tmLn.ID = 0;
          } }
      }  // end if we to an OK response, initialize the popup timeline thingy
    }
  }
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
}



function MM_initTimelines(mEntrance) { //v4.0

  //MM_initTimelines() Copyright 1997 Macromedia, Inc. All rights reserved.
  var ns = navigator.appName == "Netscape";
  var ns4 = (ns && parseInt(navigator.appVersion) == 4);
  var ns5 = (ns && parseInt(navigator.appVersion) > 4);
  document.MM_Time = new Array(1);
  document.MM_Time[0] = new Array(1);
  document.MM_Time["Timeline1"] = document.MM_Time[0];
  document.MM_Time[0].MM_Name = "Timeline1";
  document.MM_Time[0].fps = 15;
  document.MM_Time[0][0] = new String("sprite");
  document.MM_Time[0][0].slot = 1;
  if (ns4)
      document.MM_Time[0][0].obj = document["flyover"];
  else if (ns5)
      document.MM_Time[0][0].obj = document.getElementById("flyover");
  else
      document.MM_Time[0][0].obj = document.all ? document.all["flyover"] : null;
  document.MM_Time[0][0].keyFrames = new Array(30, 44);
  document.MM_Time[0][0].values = new Array(3);
  if (ns5)
      document.MM_Time[0][0].values[0] = new Array("100px", "100px", "100px", "100px", "100px", "100px", "100px", "100px", "100px", "100px", "100px", "100px", "100px", "100px", "100px");
  else
      document.MM_Time[0][0].values[0] = new Array(100,100,100,100,100,100,100,100,100,100,100,100,100,100,100);
  document.MM_Time[0][0].values[0].prop = "left";
  if (ns5)
      document.MM_Time[0][0].values[1] = new Array("-180px", "-165px", "-150px", "-135px", "-119px", "-104px", "-89px", "-74px", "-59px", "-44px", "-29px", "-13px", "2px", "17px", "32px");
  else
      document.MM_Time[0][0].values[1] = new Array(-180,-165,-150,-135,-119,-104,-89,-74,-59,-44,-29,-13,2,17,32);
  document.MM_Time[0][0].values[1].prop = "top";
  if (!ns4) {
      document.MM_Time[0][0].values[0].prop2 = "style";
      document.MM_Time[0][0].values[1].prop2 = "style";
  }
  document.MM_Time[0][0].values[2] = new Array("0","0");
  document.MM_Time[0][0].values[2].prop = "zIndex";
  if (!ns4)
      document.MM_Time[0][0].values[2].prop2 = "style";
  document.MM_Time[0].lastFrame = 44;
  for (i=0; i<document.MM_Time.length; i++) {
      document.MM_Time[i].ID = null;
      document.MM_Time[i].curFrame = 0;
			if (mEntrance == "delay") {
				document.MM_Time[i].delay = 1000/document.MM_Time[i].fps;
			} else {
				//alert('Made it here!');
				document.MM_Time[i].delay = document.MM_Time[i].fps;
			}
  }
}

function checkForm() {
  if (!checkMe(document.requestForm.rName, "Your Name")) return false;
  if (!checkMe(document.requestForm.rPhone, "Phone #")) return false;
  if (!checkInternationalPhone(document.requestForm.rPhone.value)) {
    alert("Please enter a valid Phone #, including your area code.");
    document.requestForm.rPhone.focus();
    return false;
  }
  return true;
}

function checkMe(mfield, fname) {
  if (mfield.value == "") {
    alert(fname + " is required.");
    mfield.focus();
    return false;
  }
  return true;
}

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

