function trim(str) { 
 str.replace(/^\s*/, '').replace(/\s*$/, ''); 
 return str;
}

function format(val) {
 var i = parseFloat(val);
 if ( isNaN(i) ) { i = 0.00; }
 var minus = '';
 if ( i < 0 ) { minus = '-'; }
 i = Math.abs(i);
 i = parseInt((i + .005) * 100);
 i = i / 100;
 i = i.toFixed(2);
 s = new String(i);
// if ( s.indexOf('.') < 0 ) { s += '.00'; }
// if ( s.indexOf('.') == ( s.length - 2 ) ) { s += '0'; }
// if ( s.indexOf('.') == ( s.length - 1 ) ) { s += '00'; }
 s = minus + s;
 return s;
}

function formatid(val) {
 val = val.replace(/\s+/,"");
 return val;
}

function formatname(val) {
 val = trim( val );
 val = val.replace(/[^a-zA-Z0-9-_\s]/g,"");
 if ( val.length >= 80 ) { val = val.substring(0,80); }
 return val;
}

function formatint(val) {
 val = val.replace(/[^\d]/g,'');
 return val;
}

function formatnegint(val) {
 val = val.replace(/[^-\d]/g,'');
 return val;
}

function formatdate(val) {
 val = trim( val );
 val = val.replace(/-/g,"/");
 var dateElements = val.split("/");
 if ( dateElements[0] && dateElements[1] ) {
  if ( dateElements[0].length == 1 ) { dateElements[0] = "0" + dateElements[0]; }
  if ( dateElements[1].length == 1 ) { dateElements[1] = "0" + dateElements[1]; }
  if ( dateElements[2] ) {
   if ( dateElements[2].length == 1 ) { dateElements[2] = "0" + dateElements[2]; }
   else if ( dateElements[2].length != 2 ) {
    var temp = parseInt(dateElements[2]);
    if ( temp > 1900 ) { temp = temp - 1900; }
    if ( temp > 100 ) { temp = temp - 100; }
    if ( temp < 10 ) { temp = "0" + temp; }
    dateElements[2] = temp;
   }
  }
  else { dateElements[2] = "09"; }
  val = dateElements[0] + "/" + dateElements[1] + "/" + dateElements[2];
 }
 else { val = ""; }
 return val;
}

function formatmdate(val) {
 val = trim( val );
 val = val.replace(/-/g,"/");
 var dateElements = val.split("/");
 if ( dateElements[0] ) {
  if ( dateElements[0].length == 1 ) { dateElements[0] = "0" + dateElements[0]; }
  if ( dateElements[1] ) {
   if ( dateElements[1].length != 4 ) {
    var temp = parseInt( dateElements[1], 10 );
    if ( temp < 10 ) { temp = "200" + temp; }
    else if ( temp < 20 ) { temp = "20" + temp; }
    else if ( temp < 100 ) { temp = "19" + temp; }
    else if ( temp < 1000 ) { temp = "1" + temp; }
    else if ( temp > 9999 ) { temp = "2009"; }
    dateElements[1] = temp;
   }
  }
  else { dateElements[1] = "2009"; }
  val = dateElements[0] + "/" + dateElements[1];
 }
 else { val = ""; }
 return val;
}

function formattime(val) {
 val = trim( val );
 var startpos = val.length - 2;
 var ampm = val.substring(startpos);
 ampm = ampm.replace(/[\d]/g,'');
 ampm = ampm.toLowerCase();
 if ( ampm != "am" && ampm != "pm" ) {
  var startpos2 = val.length - 1;
  ampm = val.substring(startpos2);
  ampm = ampm.replace(/[\d]/g,'');
  ampm = ampm.toLowerCase();
  if ( ampm == "a" ) { ampm = "am"; }
  else if ( ampm == "p" ) { ampm = "pm"; }
 }
 var timeElements = val.split(":");
 timeElements[0] = timeElements[0].replace(/[^\d]/g,'');
 if ( timeElements[0] ) {
  var hour = parseInt( timeElements[0] );
  if ( ampm == "pm" ) { hour = hour + 12; }
  if ( hour >= 0 && hour  < 12 ) { if ( hour == 0 ) { hour = 12; } ampm = "am"; }
  else if ( hour  >= 12 && hour < 24 ) { hour = hour - 12; if ( hour == 0 ) { hour = 12; } ampm = "pm"; }
  else if ( hour == 24 ) { hour = 12; ampm = "am"; }
  else { val = ""; }
  if ( val != "" ) {
   var min = "";
   if ( timeElements[1] ) {  min = parseInt( timeElements[1] ); } else { min = "0"; }
   if ( min >= 60 ) { min = "0"; }
   if ( min >= 0 && min < 10 ) { min = "0" + min; }
   val = hour + ":" + min + ampm;
  }
 }
 else { val = ""; }
 return val;
}

function formatphone(val) {
 val = val.replace(/[^\d]/g,'');
 if ( val.length >= 10 ) { val = val.substring(0,10); val = val.substring(0,3) + "-" + val.substring(3,6) + "-" + val.substring(6); }
 else { val = ""; }
 return val;
}

function formatstate(val) {
 val = val.replace(/\s+/,"");
 if ( val.length >= 2 ) { val = val.substring(0,2); val = val.toUpperCase(); }
 else { val = ""; }
 return val;
}

function formatzip(val) {
 val = val.replace(/[^\d]/g,'');
 if ( val.length >= 5 ) { val = val.substring(0,5); }
 else { val = ""; }
 return val;
}

function formatemail(val) {
 val = val.replace(/\s+/,"");
 var apos = val.indexOf("@");
 var dotpos = val.lastIndexOf(".");
 if ( apos < 1 || dotpos - apos < 2 ) { val = ""; }
 val = val.toLowerCase();
 return val;
}

function formatweb(val) {
 val = val.replace(/\s+/,"");
 if ( val.substring(0,7) != 'http://' && val.substring(0,8) != 'https://' ) { val = 'http://' + val; }
 if ( !val.match(/^https?:\/\/[a-z0-9-\.]+\.[a-z]{2,4}\/?([^\s<>\#%"\,\{\}\\|\\\^\[\]`]+)?$/) ) { val = ''; }
 val = val.toLowerCase();
 return val;
}

function formaturlname(val) {
 val = val.replace(/[^a-z0-9-_]/g,"");
 if ( val.length >= 150 ) { val = val.substring(0,150); }
 return val;
}

function formatdollars(val) {
 if ( val != "" ) {
  val = val.replace(/,/, "");
  val = val.replace(/[^\d\.]/g,'');
  val = format( val );
  if ( val == "0.00" ) { val = ""; }
 }
 return val;
}

function formataccount(val) {
 val = val.replace(/[^\d]/g,'');
 if ( val == 0 ) { val = ''; }
 return val;
}

function formatccnum(val) {
 val = val.replace(/[^\d]/g,'');
 if ( val.length != 15 && val.length != 16 ) { val = ""; }
 return val;
}

function formatccexp(val) {
 val = val.replace(/[^\d/]/g,'');
 val = val.replace(/-/g,"/");
 var dateElements = val.split("/");
 if ( dateElements[0] && dateElements[1] ) {
  if ( dateElements[0].length == 1 ) { dateElements[0] = "0" + dateElements[0]; }
  if ( dateElements[1].length == 1 ) { dateElements[1] = "0" + dateElements[1]; }
  if ( dateElements[1].length > 2 ) {
   var startpos = dateElements[1].length - 2;
   dateElements[1] = dateElements[1].substring(startpos);
  }
  val = dateElements[0] + "/" + dateElements[1];
 }
 else if ( dateElements[0].length == 4 ) { val = dateElements[0].substring(0,2) + "/" + dateElements[0].substring(2); }
 else { val = ""; }
 return val;
}

function formatcvv2(val) {
 val = val.replace(/[^\d]/g,'');
 if ( val.length != 4 && val.length != 3 ) { val = ""; }
 return val;
}

function checkblank(val,errobj) {
 if ( document.getElementById ) {
  if ( val == "" ) { document.getElementById(errobj).innerHTML = "This field is required"; }
  else { document.getElementById(errobj).innerHTML = ""; }
 }
 return(1);
}
