/* Copyright 2009 Marginally Clever Software, all rights reserved.
 * Dan Royer (dan@marginallyclever.com)
 */
function input_is_empty(x) {
  return x.value==null || x.value.length==0;
}

function input_password_confirm_mismatch(x) {
  return (x.value!='' || y.value!='') && x.value!=y.value;
}

function input_url_test(x) {
  return !input_is_empty(x.value) && !x.value.match(/^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/);
}

function input_email_test(x) {
  compare_to=x.value.replace(/^\s+|\s+$/g,'');
  return !input_is_empty(compare_to) && !compare_to.match(/^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*(\.[a-zA-Z]{2,4})$/);
}

function input_bool_not(x,match) {
  return x.options[x.selectedIndex].value!=match;
}


// name 2 url
function make_url_safe(str) {
  str=str.toLowerCase().replace(/^(\s|-)+|(-|\s)+$/g,"");  // trim whitespace
  str=str.replace(/[^a-zA-Z0-9_ -]/gi,"");  // get rid of illegal characters
  str=str.replace(/( +)/gi,"-");  // convert spaces to dashes.
  return str;
}


function form_url_edit(name,node) {
  node.style.display='none';
  var x=document.getElementById(name+'_view');
  x.style.display='none';

  var url=document.getElementById(name+'_url');
  url.style.display='inline';
  url.focus();

  url.onblur=function() {
    var x=document.getElementById(name+'_edit');
    x.style.display='inline';
    var x=document.getElementById(name+'_view');
    x.style.display='inline';
    x.innerHTML=make_url_safe(this.value);
    this.style.display='none';
  }
}

function name2URL_update(names,node) {
  document.getElementById(names+'_view').innerHTML=
  document.getElementById(names+'_url').value=make_url_safe(node.value);
}


// for dropselects
function form_start_add(f,id) {
  var hid=document.getElementById(id+'_hid');
  hid.style.display='block';
  var start=document.getElementById(id+'_start');
  start.style.display='none';
}
function form_select_add(f,id) {
  var hid=document.getElementById(id+'_hid');
  hid.style.display='none';
  var start=document.getElementById(id+'_start');
  start.style.display='inline';

  var newval=document.getElementById(id+'_newvalue');
  var sel=document.getElementById(id);
  var optn = document.createElement("OPTION");
  optn.text = newval.value;
  optn.value = 'newvalue';
  sel.options.add(optn);
  sel.selectedIndex=sel.options.length-1;
  page_changed();
}
function form_cancel_add(f,id) {
  var hid=document.getElementById(id+'_hid');
  hid.style.display='none';
  var start=document.getElementById(id+'_start');
  start.style.display='inline';
}