function showdate(fieldx,dateformat) {
  var date = new Date();
  var d  = date.getDate();
  var day = (d <10) ? '0' + d : d;
  var m = date.getMonth() + 1;
  var month = (m <10) ? '0' + m : m;
  var yy = date.getYear();
  var year = (yy <1000) ? yy + 1900 : yy;
  if (dateformat=="mm/dd/yyyy")
    fieldx.value = month + "/" + day + "/" + year;
  else
    fieldx.value = day + "/" + month + "/" + year;
}

function showNextdate(fieldx,dateformat,NDay) {
  var predate = new Date();
  var date = new Date(predate.getTime() + NDay * 24 * 60 * 60 * 1000); 
  var d  = date.getDate();
  var day = (d <10) ? '0' + d : d;
  var m = date.getMonth() + 1;
  var month = (m <10) ? '0' + m : m;
  var yy = date.getYear();
  var year = (yy <1000) ? yy + 1900 : yy;
  if (dateformat=="mm/dd/yyyy")
    fieldx.value = month + "/" + day + "/" + year;
  else
    fieldx.value = day + "/" + month + "/" + year;
}

function showtime(fieldx){
  var now = new Date()
  var hours = now.getHours()
  var minutes = now.getMinutes()
  var timevalue="";
  
  if (hours < 10) 
    timevalue = "0" + hours
  else
    timevalue = hours;
  if (minutes < 10)
    timevalue += "0" + minutes
  else 
    timevalue += "" + minutes;       

  fieldx.value = timevalue;
}

function VDate(fieldx,title,dateformat){
  var TheValue,dateString,dateString1,error="";
  TheValue = fieldx.value;
  if (fieldx.value!="")
  {
    if (TheValue.charAt(1)=='/')
    {
      var correctdate;
      correctdate = '0' + TheValue.substring(0,1) + TheValue.substring(1,(TheValue.length));
      fieldx.value = correctdate;
      TheValue = fieldx.value;
    }
    if (TheValue.charAt(4)=='/')
    {
      var correctdate;
      correctdate = TheValue.substring(0,3) + '0' + TheValue.substring(3,9);
      fieldx.value = correctdate;
      TheValue = fieldx.value;
    }
    if (TheValue.charAt((TheValue.length-3))=='/')
    {
      var correctdate;
      correctdate = TheValue.substring(0,(TheValue.length-2)) + '20' + TheValue.substring((TheValue.length-2),(TheValue.length));
      fieldx.value = correctdate;
      TheValue = fieldx.value;
    }
    if (dateformat=="mm/dd/yyyy"){
      if (TheValue.charAt(2)!='/' || TheValue.charAt(5)!='/' || TheValue.length != 10 || parseFloat(TheValue.substring(0,2))>12 || parseFloat(TheValue.substring(3,5))==0 || parseFloat(TheValue.substring(0,2))==0 ||
      ((TheValue.indexOf('01/')==0 || TheValue.indexOf('03/')==0 || TheValue.indexOf('05/')==0 || TheValue.indexOf('07/')==0 || 
      TheValue.indexOf('08/')==0 || TheValue.indexOf('11/')==0 || TheValue.indexOf('12/')==0) && parseFloat(TheValue.substring(3,5)) > 31) || 
      ((TheValue.indexOf('04/')==0 || TheValue.indexOf('06/')==0 || TheValue.indexOf('09/')==0 || TheValue.indexOf('11/')==0 ) && parseFloat(TheValue.substring(3,5)) > 30) || 
      ((TheValue.indexOf('02/')==0) && TheValue.substring(6,10)%4==0 && parseFloat(TheValue.substring(3,5)) > 29) || 
      ((TheValue.indexOf('02/')==0) && TheValue.substring(6,10)%4!=0 && parseFloat(TheValue.substring(3,5)) > 28)){
        error = title + " contains invalid date format.";
      }
    }else{
      if (TheValue.charAt(2)!='/' || TheValue.charAt(5)!='/' || TheValue.length != 10 || parseFloat(TheValue.substring(3,5))>12 || parseFloat(TheValue.substring(0,2))==0 || parseFloat(TheValue.substring(3,5))==0 ||
      ((TheValue.indexOf('01/')==3 || TheValue.indexOf('03/')==3 || TheValue.indexOf('05/')==3 || TheValue.indexOf('07/')==3 || 
      TheValue.indexOf('08/')==3 || TheValue.indexOf('11/')==3 || TheValue.indexOf('12/')==3) && parseFloat(TheValue.substring(0,2)) > 31) || 
      ((TheValue.indexOf('04/')==3 || TheValue.indexOf('06/')==3 || TheValue.indexOf('09/')==3 || TheValue.indexOf('11/')==3 ) && parseFloat(TheValue.substring(0,2)) > 30) || 
      ((TheValue.indexOf('02/')==3) && TheValue.substring(6,10)%4==0 && parseFloat(TheValue.substring(0,2)) > 29) || 
      ((TheValue.indexOf('02/')==3) && TheValue.substring(6,10)%4!=0 && parseFloat(TheValue.substring(0,2)) > 28)){
        error = title + " contains invalid date format.";
      }
    } 
    if (error){
      alert(error);
      fieldx.value="";
      fieldx.focus();
    }
  }
}


function VEmail(fieldx,title){
  var atPos;
  if (fieldx.value!=""){
    TheValue = fieldx.value;
    atPos = TheValue.indexOf('@');
    if (atPos <1 || atPos == (TheValue.length - 1)){
      alert(title+" must contain valid email format.");
      fieldx.value="";
      fieldx.focus();
    }      
  } 
}

function FillInDate(fieldxyear,fieldxmonth,fieldxday,NDay) {
  var predate = new Date();
  var date = new Date(predate.getTime() + NDay * 24 * 60 * 60 * 1000); 
  var d  = date.getDate();
  var day = (d <10) ? '0' + d : d;
  var m = date.getMonth() + 1;
  var month = (m <10) ? '0' + m : m;
  var yy = date.getYear();
  var year = (yy <1000) ? yy + 1900 : yy;
  fieldxyear.value = year;
  fieldxmonth.value=month;
  fieldxday.value=day;
}

function checkFloat(fieldx,title){
  var theNum,subvalue,num;
  if (fieldx.value!=""){
    theNum = parseFloat(fieldx.value);
    if (fieldx.value != theNum) { 
      alert(title + " must contain a number");
      fieldx.value="";
      fieldx.focus();
    } else{
      if (theNum<0){
        alert(title + " must be a positive number");
        fieldx.value="";
        fieldx.focus();
      } else {
        fieldx.value = Math.round(fieldx.value*100)/100;
        fieldx.value = roundall(fieldx.value);  
      }
    }	
  }
}

function roundall(sValue){
  num = sValue.indexOf('.');
  if (num==-1)
    return (sValue + ".00");
  else{
    if (sValue.charAt(num+2)=="")
      return (sValue + "0");
    else 
      return sValue;
  } 
}

function checkInt(fieldx,title){
  var theNum,subvalue,num;
  if (fieldx.value!=""){
    theNum = parseInt(fieldx.value);
    if (fieldx.value != theNum){ 
      alert(title + " must be an integer");
      fieldx.value="";
      fieldx.focus();
    } else {
      if (theNum<0){
        alert(title + " must be a positive integer");
        fieldx.value="";
        fieldx.focus();
      }
    
    }
  }
}

function verifyIntTime(fieldx,title){
  if (fieldx.value!=""){
    theValue=fieldx.value;
    if (theValue.length < 4){ 
      alert(title + " must contain 4 digit number");
      fieldx.value="";
      fieldx.focus();
    }
    else{    
      theNum = parseInt(theValue,10);
      if ((theValue != theNum) || (theNum <0)){ 
        alert(title + " must be a positive integer");
        fieldx.value="";
        fieldx.focus();
      }
      else{
        if ((parseInt(theValue.substring(0,2)) > 23) ||  (parseInt(theValue.substring(2,4)) > 59)){
          alert(title + " must contain valid time format (0000-2359)");
          fieldx.value="";
          fieldx.focus();
        } else {
   	  if ((theValue.indexOf('.') > -1) || (theValue.indexOf(',') > -1)){	
            alert(title + " must contain valid time format (0000-2400)");
            fieldx.value="";
            fieldx.focus();}


	}

      }
    }
  }
}

function VDateRange(day1,month1,year1,day2,month2,year2){
  var error="";
  if (((month1=="04" || month1=="06" || month1=="09" || month1=="11") && day1=="31") || (year1%4==0 && month1=="02" && eval(day1)>29) || (year1%4!=0 && month1=="02" && eval(day1)>28)) 
    error += '- Invalid From Date Format.\n';
  if (((month2=="04" || month2=="06" || month2=="09" || month2=="11") && day2=="31") || (year2%4==0 && month2=="02" && eval(day2)>29) || (year2%4!=0 && month2=="02" && eval(day2)>28))
    error += '- Invalid To Date Format.\n';
  if (error){ 
    alert('The following error(s) occurred:\n'+error);  
    return false;  
  }
  else
    return;
}

function upperC(fieldx){
  if (fieldx.value!="")
    fieldx.value = fieldx.value.toUpperCase()
}

function listdate() {
  var date = new Date();
  var d  = date.getDate();
  var day = (d <10) ? '0' + d : d;
  var m = date.getMonth() + 1;
  var month = (m <10) ? '0' + m : m;
  var yy = date.getYear();
  var year = (yy <1000) ? yy + 1900 : yy;
  return year+""+month+""+day;
}

function toggle(theDiv,state){
     var obj = getBrowserType(theDiv);
     if(obj){
          obj.visibility = state;
     } else {
          return false;
     }
}

function getBrowserType(theDiv){
     if(document.getElementById){ // DOM
          return document.getElementById(theDiv).style;
     } else if(document.all){ // IE4
          return document.all(theDiv).style;
     } else if(document.layers){ // NS4
          return document.layers[theDiv];
     } else {
          return false; //No browser supported
     }
}

function makeArray() {
     for (i = 0; i<makeArray.arguments.length; i++)
          this[i + 1] = makeArray.arguments[i];
}

function getmonthdate(NDay){
var months = new makeArray('Jan','Feb','Mar',
    'Apr','May','Jun','Jul','Aug','Sep',
    'Oct','Nov','Dec');

var daysofweek = new makeArray('Sun',
                               'Mon',
                               'Tue',
                               'Wed',
                               'Thu',
                               'Fri',
                               'Sat');



var predate = new Date();
var date = new Date(predate.getTime() + NDay * 24 * 60 * 60 * 1000); 
var d  = date.getDate();
var day = (d <10) ? '0' + d : d;
var month = date.getMonth() + 1;
var yy = date.getYear();
var year = (yy < 1000) ? yy + 1900 : yy;
 return daysofweek[DayOfWeek(d,month,year)] + " " + day + "-" + months[month] + "-" + year;
}

function DayOfWeek(day,month,year) {
    var a = Math.floor((14 - month)/12);
    var y = year - a;
    var m = month + 12*a - 2;
    var d = (day + y + Math.floor(y/4) - Math.floor(y/100) +
             Math.floor(y/400) + Math.floor((31*m)/12)) % 7;
    return d + 1;
}

function getwholeweek(oList,datevalue,datestring){
  var i,datestr;
  if (datevalue!=""){
    var pickupdate = new Date(datestring.substring(6,10),datestring.substring(0,2)-1,datestring.substring(3,5));
    var now = new Date();
    var today = new Date(now.getYear(),now.getMonth(),now.getDate());  
    if (pickupdate<today)
      oList.options[oList.options.length] = new Option(datevalue,datevalue);
  }
  for (i=0;i<=6;i++){
    datestr = getmonthdate(i);
    oList.options[oList.options.length] = new Option(datestr,datestr);    
    if (datevalue==datestr)
      oList.selectedIndex = oList.options.length -1;      
  }
}

function getdescwholeweek(oList,datevalue,datestring){
  var i,datestr;
  if (datevalue!=""){
    
    if (datevalue=="0")
	{oList.options[oList.options.length] = new Option("","");}
    else {  var pickupdate = new Date(datestring.substring(6,10),datestring.substring(0,2)-1,datestring.substring(3,5));
	    var now = new Date();
	    var today = new Date(now.getYear(),now.getMonth(),now.getDate());  
	    if (pickupdate<today)
	      oList.options[oList.options.length] = new Option(datevalue,datevalue);
	}	
  }
  for (i=0;i>=-6;i--){
    datestr = getmonthdate(i);
    oList.options[oList.options.length] = new Option(datestr,datestr);    
    if (datevalue==datestr)
      oList.selectedIndex = oList.options.length -1;      
  }
}
