/**************************************************

Joshua K Roberson
Extra and random small but useful functions

**************************************************/

// Popup window
// IE7 has a security setting that displays address bar even if turned off
function extras_popUp(URL, w, h, scroll) {
  day = new Date();
  id = day.getTime();
  if(w == 0 || w > screen.width)  w = screen.width;
  if(h == 0 || h > screen.height) h = screen.height;
  LeftPos = (screen.width) ? (screen.width-w)/2 : 0;
  TopPos  = (screen.height) ? (screen.height-h)/2 : 0;
  settings = 'resizable=1,toolbar=0,location=0,statusbar=0,menubar=0,width='+w+',height='+h+',top='+TopPos+',left='+LeftPos+',scrollbars='+scroll;
  eval("page" + id + " = window.open(URL, '" + id + "', '"+settings+"');");
  return false;
}


// Show longer list when "more" link clicked
function extras_toogleDisplay(id_hide, id_show) {
  var id1 = id_hide;
  var id2 = id_show;
  var div1 = null;
  var div2 = null;

  if(document.getElementById) {
    div1 = document.getElementById(id1);
    div2 = document.getElementById(id2);
  } else if(document.all) {
    div1 = document.all[id1];
    div2 = document.all[id2];
  } else if(document.layers) {
    div1 = document.layers[id1];
    div2 = document.layers[id2];
  }

  div1.style.display = 'none';
  div2.style.display = 'block';
}


/* EXTEND STRING METHODS */
String.prototype.trim = function() {
  return this.replace(/^\s+|\s+$/g,"");
}

String.prototype.isEmail = function() {
  var regexp = /^([_a-z0-9\-]+)(\.[_a-z0-9\-]+)*@([a-z0-9\-]+)(\.[a-z0-9\-]+)*(\.[a-z]{2,4})$/i;
  return regexp.test(this);
}


/* EXTEND PRESUBMIT METHODS */
function preSubmit_formatInput(obj) {
  for(var i=0; i<obj.elements.length; i++) {
    if( (typeof obj.elements[i].value)=="string" ) {
      obj.elements[i].value = obj.elements[i].value.trim();
    }
  }
} // preSubmit_formatInput()
// preSubmit.proto = preSubmit_formatInput;

// If message, display and return false, else disable submit and return true
function preSubmit_finish(obj, message_head, message_list, elementId) {
  if(message_head != "") {
    var form_message = message_head + "<br />\n";
    for(var key in message_list) { // foreach equivalent
      if( typeof message_list[key] == "string" ) {
        var value = message_list[key];
        form_message += "- " + value + "<br />\n";
      }
    }
    //alert(form_message);
    document.getElementById(elementId).innerHTML = form_message;
    return false;
  } else {
    for(var i=0; i<obj.elements.length; i++) {
      if( (obj.elements[i].type)=="submit" ) {
        obj.elements[i].value = "Processing"; // Display different submit button text
        obj.elements[i].disabled = true; // Lock submit button, not passed to PHP
      }
    }
    return true;
  }
} // preSubmit_finish()
// preSubmit.proto = preSubmit_finish;
