function showDiv(divid)
{
  document.getElementById(divid).style.display="block";
}

function hideDiv(divid)
{
  document.getElementById(divid).style.display="none";
}

function confirmDelete(IDField,IDFieldValue)
{
  var deleteit=window.confirm('Are you sure you want to delete this?')
  if (deleteit)
  {
    window.location='?Action=Delete&' + IDField + '=' + IDFieldValue;
  } 
}
function changeMap()
{
  document.getElementById('DistributorMap').src = "img/exhibits-map.gif";
}

function ajaxManager() {
  var args = ajaxManager.arguments;
  switch (args[0]) {
    case "load_page":
        if (document.getElementById) {
          var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
        }
        if (x) {
          x.onreadystatechange = function() {
            if (x.readyState == 4 && x.status == 200) {
              el = document.getElementById(args[2]);
              el.innerHTML = x.responseText;
            }
          }
          x.open("GET", args[1], true);
          x.send(null);
        }
      break;
    case "start_up":  
      document.getElementById(args[2]).style.display = "inline";
      ajaxManager('load_page', args[1], args[2]);
      break;
    case "close_down":
      document.getElementById(args[1]).innerHTML = "";
      document.getElementById(args[1]).style.display = "none";
      break;
  }
}
  

function isNotEmpty(elem) {
  var str = elem.value;
  if(str == null || str.length == 0)
   return false;
  else
   return true;
}

 // THIS FUNCTION PERFORMS VALIDATION BASED ON A SET OF CUSTOM HTML ATTRIBUTES
function validate(form) {
  var attrVal, attrReg, attrEq, attrFail, strTemp;
  var f = document.forms[0];

  for (var i = 0; i < form.length; i++) {
    attrVal = form[i].getAttribute("validate");

    switch (attrVal) {
      case 'required' :
        if (!isNotEmpty(form[i])) {
          attrFail = form[i].getAttribute("failure");

          if (attrFail)
            alert(attrFail);
          else
            alert('You must complete all required form fields.');
          
          if (form[i].type != "hidden") {
            form[i].focus();
          }
          return false;
        }
        break;

      case 'regex' :

        attrReg = form[i].getAttribute("regex");

        if (attrReg != null && attrReg.length != 0) {
          var regex = new RegExp(attrReg);
          strTemp = form[i].value;
          if (!strTemp.match(regex)) {
            attrFail = form[i].getAttribute("failure");

            if (attrFail)
              alert(attrFail);
            else
              alert('Invalid data format at field "' + form[i].name + '".');
            if (form[i].type != "hidden") {
              form[i].focus();
            }
            return false;
          }
        }
        break;

      case 'regopt' :

        attrReg = form[i].getAttribute("regex");

        if (attrReg != null && attrReg.length != 0) {
          var regex = new RegExp(attrReg);
          strTemp = form[i].value;
          if (strTemp != "") {
            if (!strTemp.match(regex)) {
              attrFail = form[i].getAttribute("failure");

              if (attrFail)
                alert(attrFail);
              else
                alert('Invalid data format at field "' + form[i].name + '".');
              if (form[i].type != "hidden") {
                form[i].focus();
              }
              return false;
            }
          }
        }
        break;

      case 'regdate' :

        attrReg = form[i].getAttribute("regex");

        if (f.bc_sdate.value != "" || f.bc_edate.value != "") {
          var regex = new RegExp(attrReg);
          strTemp1 = f.bc_sdate.value;
          strTemp2 = f.bc_edate.value;

          if (!strTemp1.match(regex)) {
            alert("Start Date must be in format: MM/DD/YYYY");
            f.bc_sdate.focus();
            return false;
          } else if (!strTemp2.match(regex)) {
            alert("End Date must be in format: MM/DD/YYYY");
            f.bc_edate.focus();
            return false;
          } else if (Date.parse(strTemp1) > Date.parse(strTemp2)) {
            alert("Start Date cannot occur after end Date.");
            f.bc_sdate.focus();
            return false;
          }

        }
        break;

      case 'regdate2' :

        attrReg = form[i].getAttribute("regex");

          var regex = new RegExp(attrReg);
          strTemp1 = f.bc_sdate.value;
          strTemp2 = f.bc_edate.value;

          if (!strTemp1.match(regex)) {
            alert("Start Date must be in format: MM/DD/YYYY");
            f.bc_sdate.focus();
            return false;
          } else if (!strTemp2.match(regex)) {
            alert("End Date must be in format: MM/DD/YYYY");
            f.bc_edate.focus();
            return false;
          } else if (Date.parse(strTemp1) > Date.parse(strTemp2)) {
            alert("Start Date cannot occur after end Date.");
            f.bc_sdate.focus();
            return false;
          }

        break;

      case 'equals' :
        attrEq = form[i].getAttribute("equals");
        var objEq = document.getElementById(attrEq);
        if (objEq) {
          if (form[i].value != objEq.value) {
            attrFail = form[i].getAttribute("failure");

            if (attrFail)
              alert(attrFail);
            else
              alert('Form fields do not match');
            if (form[i].type != "hidden") {
              form[i].focus();
            }
            return false;
          }
        }
        break;
    }

  }

  if (document.getElementById('subButton')) {
    document.getElementById('subButton').disabled = true;
  }
  return true;
}



function confDel(message) {
  var s=confirm(message);

    if (s) {
      return true ;
    } else {
      return false ;
    }
}


function v_setup(eee) {

  var str = eee.value;
  var error = false;
  
  if (str != null && str.length != 0) {
    if (
      str.length > 7 && 
      str != "quadro" && 
      str != "Quadro" && 
      str != "intro" && 
      str != "Intro" && 
      str != "beacon" && 
      str != "Beacon"
      ) 
    {
      eee.value="";
      error = true;
    }
  } else {
    error = true;
  }
  if (error) {
    alert ('Setup instructions before Order #25551 are available through your local Classic Exhibits distributor.\n\nPlease enter your Order # (ex: 25333). Or enter "Intro," "Quadro," or "Beacon" for those unique products.\n\nSetup instructions are uploaded every Friday between 2-4 pm PST.');
    eee.focus();
    return false;
  }
}
