  var d = document;
  var browserIs = '';
  var browservr = '';
  var cd = null;
  var ccb = "";
  var orpname = d.getElementById("op");
  var orpprice = d.getElementById("oc");
  var p_item = null;
  var p_number = null;
  var p_amount = null;
  var p_shipping = null;
  var p_shipname = null;
  var p_return = null;
  var insw = null;
  
  function showinstructs(sw) {
//alert("sw = " + sw + " insw = " + insw);
    if (!insw) return false;
    if (sw == 'on') {insw.style.display = 'block'} else {insw.style.display = 'none'}
    return false;
  }

  function chngunlckmes(pd) {
    if (!pd) return;
    var p =  pd.options[pd.selectedIndex].text;
    var m = (pd.value == "DPMT_PPP")? "DART Pro MT runs on Windows Vista and Window XP both." : "xxxx only runs on Window XP. It does not run on Windows Vista";
//alert("pd.value = " + pd.value);
    m = m.replace('xxxx',p);
    d.getElementById('winmes').innerHTML = m;
    return;
  }

  function regchng(pd) {
    if (!pd) return;
    var sw = (pd.value == "DPMT")? "block" : "none";
    d.getElementById('fdpmt').style.display = sw;
    return;
  }

  function subman(pi)  {
    var em = d.getElementById("PID");
    em.value = pi;   
    var fm = d.getElementById("manform");
    if (!checke()) return false
    location.search = "";
//alert("location.search = " + location.search);
    var me = d.getElementById("emessage");
    if(me) me.innerHTML = "";
    fm.submit();
    return true;
  }

  function checkb(cb) { 
//alert("ccb = " + ccb + "  cb.id = " + cb.id);
    if ((ccb != "") && (ccb != cb.id)) {
      var ob = d.getElementById(ccb);
      ob.checked = false;
    }
    cb.checked = true;
    ccb = cb.id;
    var pc = ccb.substring(1);
	prodchange(pc)
  }

  function prodchange(p) { 
    if (products[p][0].indexOf("Karaoke") != -1) delchange(d.getElementById("dwnload"));
    orpname.innerHTML = p_item.value = products[p][0]; 
    orpprice.innerHTML = p_amount.value = products[p][1]; 
    p_number.value = p;
    runTotal();
}

  function checkcall(b) {
//    showPayPalCall();
    if ((p_number.value == "") || (p_amount.value == "")) {
      alert("Product not selected. Please select a DART product.");
      return(false);
    }
    var c = d.getElementById("discode");
    if ((c) && (c.value != "")) {
      var a = d.getElementById("paypalform"); 
      a.target = "_self";
      a.action = "http://www.dartpro.com/PayPalBuy.asp";
    } else {
      var im = "/images/PayPalGoing.gif";
      if (b.src == im) return(false);
      b.src = im;
    }
    return(true);
  }

  function checke() {
    var em = d.getElementById("Email")
    var zp = d.getElementById("Zip")
    var emes = ""
    if (em.value == "") emes += "Email address not entered. Please enter Email address.";
    if (zp.value == "") {
      if (emes != "") emes += "\n"
      emes += "Zip code not entered. Please enter Zip code.";
    }
    if (emes == "") return true;
    alert(emes);
    return false;
  }

  function delchange(dc) { 
    var id = dc.id;
    var nm = (id == "dwnload")? "dwnd" : "dcd";
//alert("id = " + id + "  nm = " + nm);
    if ((nm == "dcd") && (p_item.value.indexOf("Karaoke") != -1)) {
      d.getElementById("dcd").checked = false;
      alert("Karaoke CD Versions no longer available.");
      return;
    }
    var nmname = nm + "name";
    var nmprice = nm + "price";
        nmprice = d.getElementById(nmprice).innerHTML;
        nmprice = nmprice.replace("$", "");
        nmprice = (!isNaN(parseFloat(nmprice)))? fixPrecision(parseFloat(nmprice)) : 0;
    var preturn = (id == "dwnload")? "http://www.DARTPro.com/unlock/UnlockPaypalBuy.asp" : "";
    var shipname = (id == "dwnload")? "unl" : "CD"; 
    p_return.value = preturn;
    p_shipname.value = shipname;
    d.getElementById("od").innerHTML = d.getElementById(nmname).innerHTML;
    d.getElementById("dc").innerHTML = p_shipping.value = nmprice;
    dc.checked = true;
    var od = (id == "dwnload")? "dcd" : "dwnload";
    d.getElementById(od).checked = false;
    var inst = d.getElementById("instinst");
    od = (id == "dwnload")? "Downloads" : "CDs";
    inst.innerHTML = 'Installation Instructions for ' + od;
    insw = (id == "dwnload")? d.getElementById("instrdwl") : d.getElementById("instrcd");
// alert("insw.id = " + insw.id);   
//    inst.className = "xxx";
    runTotal();
   }
    
  function fixPrecision(n) {
  if (isNaN(n)) return(n); 
  var l = 3;
  if ((n >= 10) && (n < 100)) ++l;
  if ((n >= 100) && (n < 1000)) l = l*1 + 2*1;
  if (n >= 1000)  l = l*1 + 3*1;
  var x = n.toPrecision(l);
  return(x);
  }
  
  function opchange(pc) { 
//alert("pc.value = " + pc.value);
//    var pid = d.getElementById("PID");
//    pid.value = pc.value;
    changeop(pc.value) 
  }
  
  function changeop(pc) { 
//alert("pc.value = " + pc.value);
    var p  = pc + 'ps';
    var sd = d.getElementById(p);
    if (cd) cd.style.display = "none"
    sd.style.display = "block"
    cd = sd;
  }
  function runTotal() { 
    var ordcharge = d.getElementById("dc");
    var ordtotal = d.getElementById("ot");
    var dc = parseFloat(ordcharge.innerHTML);
        dc = (isNaN(dc))? 0 : dc;
    var pc = parseFloat(orpprice.innerHTML);
        pc = (isNaN(pc))? 0 : pc;
    var tot = dc*1 + pc*1;
    ordtotal.innerHTML = "$" + fixPrecision(tot);
  }
  
   
function setBrowser() {
  var x = navigator;
  var b_ac = x.appCodeName;
  var b_mv = x.appMinorVersion;
  var b_an = x.appName;
  var b_av = x.appVersion;
  var b_ce = x.cookieEnabled;
  var b_cc = x.cpuClass;
  var b_ol = x.onLine;
  var b_pf = x.platform;
  var b_ua = x.userAgent;
  var b_bl = x.browserLanguage;
  var b_sl = x.systemLanguage;
  var b_ul = x.userLanguage;
  var b_vn = x.vendor;
//  var b_je = x.javaEnabled;
  browserIs = '(undefined)';
  if (b_vn) {var i = b_vn.indexOf("Apple");   if (i != -1) browserIs = 'Safari'}
  var i = b_ua.indexOf("MSIE");     if (i != -1) browserIs = 'Explorer';
  var i = b_ua.indexOf("Windows");  if (i != -1) browserIs = 'WINExplorer';
  var i = b_ua.indexOf("Netscape"); if (i != -1) browserIs = 'Netscape';
  var i = b_ua.indexOf("Firefox");  if (i != -1) browserIs = 'Firefox';
  var i = b_ua.indexOf("Opera");    if (i != -1) browserIs = 'Opera';
//  if (browserIs == 'Netscape') browserIs = (b_ua.indexOf("Macintosh") != -1)? "MacNetscape" : "WINNetscape";
  browservr = null;
  var p = b_av.indexOf("MSIE");
  if (p != -1) {
    var p = p*1 + 4;
    if(p != -1) browservr = parseFloat(b_av.substring(p));
  }
//alert("b_ua = " + b_ua);
}

  function showPayPalCall() {
    alert("p_item = " + p_item.value + "  item_name = " + d.getElementById("item_name").value + "\n" +
          "p_number = " + p_number.value + "  item_number = " + d.getElementById("item_number").value + "\n" +
          "p_amount = " + p_amount.value + "  pp_amount = " + d.getElementById("pp_amount").value + "\n" +
          "p_shipping = " + p_shipping.value + "  pp_shipping = " + d.getElementById("pp_shipping").value + "\n" +
          "p_shipname = " + p_shipname.value + "  pp_os0 = " + d.getElementById("pp_os0").value + "\n" +
          "p_return = " + p_return.value + "  pp_return = " + d.getElementById("pp_return").value
         );
  }
  
  function start() { 
    setBrowser();
    var o = d.getElementById('DARTproducts');
    if(o) {
      o.selectedIndex = 0;
	  changeop("CD3");
	  return;
    }
    if (d.getElementById('pageProductsCart')) {insw = d.getElementById('instrcd');return}
    if (d.getElementById('instrdwl')) insw = d.getElementById('instrdwl');
    var o = d.getElementById('fdpmt');
    if (o) {regchng(d.getElementById('Product'));return}
    var o = d.getElementById('paypalform');
    if (o) {
      p_item = d.getElementById("item_name");
      p_number = d.getElementById("item_number");
      p_amount = d.getElementById("pp_amount");
      p_shipping = d.getElementById("pp_shipping");
      p_shipname = d.getElementById("pp_os0");
      p_return = d.getElementById("pp_return");
      var defd = (del == "DWL")? "dwnload" : "dcd";
      delchange(d.getElementById(defd));
      if (pid != -1) prodchange(pid);
    } else {
//showPayPalCall()
      var o = d.getElementById('paypaldiscount');
      if (o) window.onload=o.submit();
    }
  }
//alert("o = " + o);

  start()

