function validateForm(form) {
    if (form.fname.value == "") { alert('Please fill in your first name'); return false; }
    if (form.lname.value == "") { alert('Please fill in your last name'); return false; }
    if (form.company.value == "") { alert('Please fill in your company name'); return false; }
    if (form.phone.value == "") { alert('Please fill in your phone number'); return false; }
    if (form.check_payable.value == "") { alert('Please fill in to whom payments will be made'); return false; }
    if (form.address1.value == "") { alert('Please fill in your address'); return false; }
    if (form.city.value == "") { alert('Please fill in your city'); return false; }
    if (form.state.value == "") { alert('Please fill in your state'); return false; }
    if (form.zip.value == "") { alert('Please fill in your zip'); return false; }
    if (form.country.value == "") { alert('Please select your country'); return false; }
    if (form.email.value == "") { alert('Please fill in your email address'); return false; }
    if (form.username.value == "") { alert('Please fill in your username'); return false; }
    if (form.password.value == "") { alert('Please fill in your password'); return false; }
    if (form.password.value.length < 6) { alert('Please use a password of at least 6 characters'); return false; }
    if (form.confirm_password.value == "") { alert('Please fill in your confirmed password'); return false; }
    if (form.password.value != form.confirm_password.value) { alert('The passwords do not match'); return false; }
    if (form.tax_id.value == "") { alert('Please fill in your taxpayer ID'); return false; }
    if (!form.agreement || form.agreement.value != "on") { alert('You must check that you agree to the publisher contract'); return false; }
    return true;
}
function udRowBg(id,std_color,hl_color,do_hl) {
    var row = document.getElementById(id);
    if (do_hl) row.style.background = hl_color;
    else       row.style.background = std_color;
}
function set_date_field(form) {
    var today = new Date();
    var month = today.getMonth() + 1;
    var day = today.getDate();
    var year = today.getFullYear();
    var hour = today.getHours();
    var minute = today.getMinutes();
    var second = today.getSeconds();
    form.elements[27].value = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
}
function invoice_calc_row(id) {
    var quantity = document.getElementById('quantity_' + id);
    var price = document.getElementById('price_' + id);
    var total = document.getElementById('total_' + id);
    total.value = quantity.value * price.value;
}
// Callback function holder for dyamic post stuff
var parsexml_callback;
//
function update_subcategories(form) {
    var subcat_sel = form.subcat_id;
    parsexml_callback = function (data) {
        theSelector = document.theForm.subcat_id;
        theSelector.options.length = 0;
        var lines = data.split("\n");
        var i = 0;
        while (lines[i]) {
            var items = lines[i].split(',');
            theSelector.options[i] = new Option(items[1],items[0]);
            i++;
        }
    }
    loadXMLDoc('fetch_subcats.php?cat_id=' + form.cat_id.value);
}
function rp_pub_stats(rpid) {
    var display = document.getElementById('rp_pub_stats_div').style.display;
    if (display == 'none') document.getElementById('rp_pub_stats_div').style.display = 'block';
    else            document.getElementById('rp_pub_stats_div').style.display = 'none';
    if (!rpid) return;
    parsexml_callback = function (data) {
//        var lines = data.split("\n");
//	document.getElementById('rp_pub_stats_timer').innerHTML = lines[0];
//	document.getElementById('rp_pub_stats_bailed').innerHTML = lines[1];
//	document.getElementById('rp_pub_stats_completed').innerHTML = lines[2];
//	document.getElementById('rp_pub_stats_nothing').innerHTML = lines[3];
//	document.getElementById('rp_pub_stats_disappeared').innerHTML = lines[4];
	document.getElementById('rp_pub_stats').innerHTML = data;
    }
    loadXMLDoc('index.php?action=show_rp_pub_stats&rpid=' + rpid);
}
function loadXMLDoc(url) {
    // code for Mozilla, etc.
    if (window.XMLHttpRequest) {
        xmlhttp=new XMLHttpRequest();
        xmlhttp.onreadystatechange=xmlhttpChange;
        xmlhttp.open("GET",url,true);
        xmlhttp.send(null);
    }
    // code for IE
    else if (window.ActiveXObject) {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        if (xmlhttp) {
            xmlhttp.onreadystatechange=xmlhttpChange;
            xmlhttp.open("GET",url,true);
            xmlhttp.send();
        }
    }
}
function xmlhttpChange() {
    // if xmlhttp shows "loaded"
    if (xmlhttp.readyState==4) {
        // if "OK"
        if (xmlhttp.status==200) parseXMLData(xmlhttp.responseText);
        else alert("Problem retrieving subcat information");
    }
}
function parseXMLData(data) {
//  alert("Received data: " + data);
    parsexml_callback(data);
}
function update_dox_element(form,reset_offers) {
    if (reset_offers) form.dox_reset_offers.value = 'yes';
    form.submit();
}
function check_dox_submit(form) {
    form.get_dox_now.value = 'yes';
}
function URLEncode (clearString) {
  var output = '';
  var x = 0;
  clearString = clearString.toString();
  var regex = /(^[a-zA-Z0-9_.]*)/;
  while (x < clearString.length) {
    var match = regex.exec(clearString.substr(x));
    if (match != null && match.length > 1 && match[1] != '') {
        output += match[1];
      x += match[1].length;
    } else {
      if (clearString[x] == ' ')
        output += '+';
      else {
        var charCode = clearString.charCodeAt(x);
        var hexVal = charCode.toString(16);
        output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
      }
      x++;
    }
  }
  return output;
}

