var _sFormatTime = 'hh:mm:ss';
var _parsTime=new Array(3);
var _parsFormatTime=new Array(3);
var _parsDelimsTime=[':',':'];

// Format string should contain all three parts of date (month, day and year)
function parseFormatTime(vformat) {
  var flen=vformat.length;
  var ssind=vformat.indexOf("ss");
  var hhind=vformat.indexOf("hh");
  hhlen=2;
  if(hhind<0){
    hhind=vformat.indexOf("hh");
  }
  var mind=vformat.indexOf("mm");
  var mlen=2;
  if (ssind<0 || hhind<0 || mind<0){
    return;
  } else {
    if(ssind==0){
      _parsFormatTime[0]="ss";
      if(mind<hhind){
        _parsFormatTime[1]=vformat.substring(mind,mind+mlen);
        _parsFormatTime[2]=vformat.substring(hhind,hhind+hhlen);
        _parsDelimsTime[0]=vformat.substring(2,mind);
        _parsDelimsTime[1]=vformat.substring(mind+mlen,hhind);
      } else {
        _parsFormatTime[2]=vformat.substring(mind,mind+mlen);
        _parsFormatTime[1]=vformat.substring(hhind,hhind+hhlen);
        _parsDelimsTime[0]=vformat.substring(2,hhind);
        _parsDelimsTime[1]=vformat.substring(hhind+hhlen,mind);
      }
    } else if(mind==0){
      _parsFormatTime[0]=vformat.substring(0,mlen);
      if(ssind<hhind){
        _parsFormatTime[1]=vformat.substring(ssind,ssind+2);
        _parsFormatTime[2]=vformat.substring(hhind,hhind+hhlen);
        _parsDelimsTime[0]=vformat.substring(mlen,ssind);
        _parsDelimsTime[1]=vformat.substring(ssind+2,hhind);
      } else {
        _parsFormatTime[2]=vformat.substring(ssind,ssind+2);
        _parsFormatTime[1]=vformat.substring(hhind,hhind+hhlen);
        _parsDelimsTime[0]=vformat.substring(mlen,hhind);
        _parsDelimsTime[1]=vformat.substring(hhind+hhlen,ssind);
      }
    } else if(hhind==0){
      _parsFormatTime[0]=vformat.substring(0,hhlen);
      if(ssind<mind){
        _parsFormatTime[1]=vformat.substring(ssind,ssind+2);
        _parsFormatTime[2]=vformat.substring(mind,mind+mlen);
        _parsDelimsTime[0]=vformat.substring(hhlen,ssind);
        _parsDelimsTime[1]=vformat.substring(ssind+2,mind);
      } else {
        _parsFormatTime[2]=vformat.substring(ssind,ssind+2);
        _parsFormatTime[1]=vformat.substring(mind,mind+mlen);
        _parsDelimsTime[0]=vformat.substring(hhlen,mind);
        _parsDelimsTime[1]=vformat.substring(mind+mlen,ssind);
      }
    }
  }
}


function parseTime(vdate) {
  var ret=1;
  var ind=vdate.indexOf(_parsDelimsTime[0]);
  if(ind>0){
    if (parseSS(0,vdate.substring(0,ind))>0){
      ind+=_parsDelimsTime[0].length;
      var ind2=vdate.indexOf(_parsDelimsTime[1],ind);
      if(ind2>0) {
        if(parseSS(1,vdate.substring(ind,ind2))>0) {
          ind2+=_parsDelimsTime[1].length;
          if (parseSS(2,vdate.substring(ind2,vdate.length))<0) ret=-1;
        } else {
          ret=-1;
        }
      } else {
        ret=-1;
      }
    } else {
      ret=-1;
    }
  } else {
      ret=-1;
  }
  if (ret<0) _parsTime=new Array(3);
  return ret;
}

// this function include function from validate.js (Trim).
function parseSS(vind,vdd){
  var ret=1;
  if (vind<0 || vind>2 || vdd.length<1){
    ret=-1;
  } else {
    vdd=Trim(vdd);
    while (vdd.substring(0,1)=='0' && vdd.length>1) {
      vdd=vdd.substring(1,vdd.length);
    }
    if (isFinite(vdd) || (_parsFormatTime[vind].substring(0,2)=="MO"))
      switch (_parsFormatTime[vind]){
        case "ss" :
          _parsTime[0]=parseInt(vdd);
          if (_parsTime[0]>60 || _parsTime[0]<0) ret=-1;
          break;
        case "mm" :
          _parsTime[1]=parseInt(vdd);
          if (_parsTime[1]>60 || _parsTime[1]<0) ret=-1;
          break;
        case "hh" :
          _parsTime[2]=parseInt(vdd);
          if(_parsTime[2]<0 && _parsTime[2]>23){
            ret=-1;
          }
          break;
        default:
          ret=-1;
      }
    else
      ret=-1;
  }
  return ret;
}


function checkTime( value ) {
  var ret=false;
  if ( parseTime( value )<0 && value.length > 0 ) {
	ret = false;
  } else {
    ret = true;
  }
  return ret;
}

