var l_mon   = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var l_days  = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var l_len  = new Array(2, 3, 4);
var l_yearbreak = 75;
var m_pos = 1;
var d_pos = 0;
var y_pos = 2;
var delim = "-";
var m_type = "N";
var NLSformat = "DD-MON-RRRR";
var numericDate = 0;
var today = new Date();
var day   = today.getDate();
var month = today.getMonth();
var year  = today.getFullYear();
var closeOnPick=true;
Calwindow = new Object;
Calwindow.closed=true;
var calwidth=420;
var calheight=260;
var calfile= jslib_dir + "cabo_calendar.asp?catLang=";
var dateErrorMsg="Sorry, the date you entered was not recognized.";
var calWindowTitle = "Select a Date";
function datecheck (P_date, P_NLS_format) {  
  var P_obj = false;
  if (typeof P_date == "string") P_value = P_date;
  else
  {
    P_obj = P_date;
    P_value = P_date.value; 
  } 
  if (P_value == null|P_value == ''| P_value == ' ') return ' ';
  if (P_NLS_format) evalNLS(P_NLS_format);
  else evalNLS(NLSformat);
  var l_length=P_value.length;
  var l_str = new Array(' ',' ',' ');
  var temp = new Array('','','');
  var l_swap='';
  var l_splitstr='';
  var l_index=0;
  var l_splitcount=1;
  var l_char='';
  var l_prevspace=true;
  var y_extra=0;
  var d_extra=0;
  var m_extra=0; 
  var l_delims = /\W/
  if (parseFloat(P_value) == P_value) {
    if (P_value.length <5) {
      P_value = P_value + "????????".substr(0,8-P_value.length);
    }
    else {
      if (P_value.length <= 6) {
      y_extra=0;
      d_extra=0;
      m_extra=0; 
      } 
      else {
        y_extra = P_value.length - 6 ;
        if (d_pos - y_pos > 0) d_extra = y_extra;
        if (m_pos - y_pos > 0) m_extra = y_extra;
      }
    }
    l_str[0]=P_value.substr(d_pos*2+d_extra,2);
    l_str[1]=P_value.substr(m_pos*2+m_extra,2);
    l_str[2]=P_value.substr(y_pos*2,2+y_extra);
    if (l_str[1] > 12)
    {  l_swap = l_str[0];
      l_str[0]=l_str[1];
      l_str[1]=l_swap; 
    }  
  }
  else {
    for (var count=0; count < l_length; ++count ) {
      l_char=P_value.charAt(count);
      if (l_char.search(l_delims)==0) {
         if (l_prevspace==false) { l_splitstr += l_char; }
          l_prevspace = true;
      }
      else  { l_prevspace=false;
          l_splitstr += l_char;
      }
    }
    l_length = l_splitstr.length;
    for( var count=0; count < l_length; ++count ) {
      l_char=l_splitstr.charAt(count);
      if (l_char.search(l_delims)==0) {
        l_index = l_index + 1; 
      }
      else { temp[l_index] += l_char;
    }  }
    l_str[0]=temp[d_pos];
    l_str[1]=temp[m_pos];
    l_str[2]=temp[y_pos];
    if (!l_str[2] > 31) 
    {
      if (l_str[0] > 31 && !isNaN(l_str[0])) {
        l_swap = l_str[2];
        l_str[2] = l_str[0];
        l_str[0] = l_swap;
      }

      if (l_str[1] > 31 && !isNaN(l_str[1])) {
        l_swap = l_str[2];
        l_str[2] = l_str[1];
        l_str[1] = l_swap;
      }
    }  
    var strip = ""
    for (i=0; i<l_str[0].length; i++)
    { if (!isNaN(l_str[0].charAt(i))) strip += l_str[0].charAt(i); }
    if (strip.length > 0) l_str[0] = parseFloat(l_str[0],10) + ''

    strip = ""
    for (i=0; i<l_str[1].length; i++)
    { if (!isNaN(l_str[1].charAt(i))) strip += l_str[1].charAt(i); }
    if (strip.length > 0) l_str[1] = parseFloat(l_str[1],10) + ''
  
    if (isNaN(l_str[0])) { 
      l_swap=l_str[0];
      l_str[0]=l_str[1];
      l_str[1]=l_swap; 
    } 
    else { 
      if (l_str[1] > 12) {
        l_swap = l_str[0];
        l_str[0]=l_str[1];
        l_str[1]=l_swap; 
    }  }
    if (isNaN(l_str[1])) {
      for (var count=0; count <= 11; ++count) {
        l_str[1] = l_str[1].substr(0,3);
        if (l_str[1].toUpperCase() == l_mon[count].toUpperCase() ) {
          l_str[1]=(count+1)+'';
            break; }
      }
      if (count == 12) { 
        l_str[1] = "??";
      }
      else { 
        if (l_str[1].length > l_len[1]) {
          l_str[1] = l_str[1].substr(0,l_len[1]);
        }
        else {
          while (l_str[1].length < l_len[1]) {
            l_str[1] = '0'+l_str[1];
      }  }  }
    } 
    else {
    if (l_str[1] > 12 || l_str[1] < 1) {
      l_str[1] = "??" }
    }
    if (l_str[0].length > l_len[0]) {
      l_str[0] = l_str[0].substr(0,l_len[0]);
    }
    else {
      while (l_str[0].length < l_len[0]) {
        l_str[0] = '0'+l_str[0]; 
    }  }  


}

if (isNaN(l_str[2])) l_str[2] = "????";
else l_str[2] = parseFloat(l_str[2]) + '';
    if (l_str[2].length > l_len[2]) 
    {
      l_str[2] = l_str[2].substr(0,l_len[2]);
    }
    else 
    {
      if (l_str[2].length == 3) 
    {
        l_str[2] = '1' + l_str[2];
    }
      else 
      {
        while (l_str[2].length < 2) 
        {
          l_str[2] = '0'+l_str[2]; 
        }  
      }  
    }
 if ((l_str[2].length <=2 || parseFloat(l_str[2])< 100 ) && l_str[2].indexOf("?") == -1 ) {
    l_str[2] = parseFloat(l_str[2])+'';
    while (l_str[2].length < 2) {
      l_str[2] = '0'+l_str[2];
    }
    if (l_str[2] < l_yearbreak) {
      l_str[2]='20'+l_str[2];
    }
    else {
      l_str[2]='19'+l_str[2]; 
  }  }
 if (!isNaN(l_str[2]) && !isNaN(l_str[1])) {
       if (((l_str[2] % 4 == 0) && (l_str[2] % 100 != 0)) || (l_str[2] % 400 == 0)) {
      l_days[1] = 29;
    } 
        else {
               l_days[1] = 28;
    }
    if (l_str[0] > l_days[l_str[1]-1]) l_str[0] = l_days[l_str[1]-1];
  }


 if (l_str[1].length > 2) l_str[1] = l_str[1].substring(l_str[1].length-2);
  while (l_str[1].length < 2) { l_str[1] = '0'+l_str[1]; }  
  numericDate = parseFloat(l_str[2]+l_str[1]+l_str[0]);
  numericDate = isNaN(numericDate)? 0 : numericDate;
  if (P_obj) P_obj.numericDate = numericDate;
  if (m_type == "C") {
    if (!isNaN(l_str[1]) && l_str[1] <= 12) {
      l_str[1]=l_mon[l_str[1]-1]; 
    }
    else   {
      for(var count=0; count <= 11; ++count) {
         if (l_str[1].toUpperCase() == l_mon[count].toUpperCase() ) {
          l_str[1]=l_mon[count];
            break;
      }  }
      if (count == 12) {
        l_str[1] = '???';
  }  }  }
  temp[d_pos] = l_str[0];
  temp[m_pos] = l_str[1];
  temp[y_pos] = l_str[2];
  l_splitstr=temp[0]+delim+temp[1]+delim+temp[2];
  if (P_obj) P_obj.value = l_splitstr;
  return l_splitstr;
}

function formatdate (P_Day, P_Month, P_Year, P_Dateformat) {
  var temp = new Array('','','');
  var l_splitstr='';
  if (P_Dateformat) evalNLS (P_Dateformat);
  if (m_type == "C") P_Month=l_mon[parseFloat(P_Month)-1]; 
  temp[d_pos] = P_Day;
  temp[m_pos] = P_Month;
  temp[y_pos] = P_Year;
  l_splitstr=temp[0]+delim+temp[1]+delim+temp[2];
  return l_splitstr;
}

function evalNLS (P_Dateformat) {
  if (P_Dateformat) { NLSformat = P_Dateformat; }
  m_pos=NLSformat.indexOf('MON'); 
  m_type="C";
  l_len[1]=3;
  if (m_pos < 0) { m_pos=NLSformat.indexOf('MM');  m_type="N"; l_len[1]=2;}
  d_pos=NLSformat.indexOf('DD');
  y_pos=NLSformat.indexOf('RRRR');
  if (m_pos!=0) delim=NLSformat.charAt(m_pos - 1); 
    else delim = NLSformat.charAt(d_pos - 1);
  if (m_pos > 5) m_pos=2; else if (m_pos < 3) m_pos=0; else m_pos=1;
  if (d_pos > 5) d_pos=2; else if (d_pos < 3) d_pos=0; else d_pos=1;
  if (y_pos > 5) y_pos=2; else if (y_pos < 3) y_pos=0; else y_pos=1;
}
function checkForError (P_date, P_func) 
{ 
  if (P_date.value.indexOf('?') != -1) 
  {
    if (dateErrorMsg != null) alert(dateErrorMsg);
    P_date.focus();
  } else
  {
    //if (P_func) P_func(P_date.value,P_date.numericDate);
  }
}
function dateError (P_date, P_hide_Error)
{
  if (P_date.indexOf('?') != -1) 
  {
    if (P_hide_Error) { }
    else
    {
      if (dateErrorMsg != null) alert(dateErrorMsg);
    }
    return false;
  }
  return true;
}
function opencal(fieldobj,func,lang) {
//alert("DDDDDDD"+lang);
  var openleft=100;
  var opentop=100;
  if (Calwindow.close && !Calwindow.closed) {

    var attr = "resizable=no,width=" + calwidth + ",height=" + calheight; } 
  else {
  if (Nav4) {

    openleft = parseInt(window.screenX + ((window.outerWidth - calwidth) / 2),10);
    opentop = parseInt(window.screenY + ((window.outerHeight - calheight) / 2),10);
    var attr = "screenX=" + openleft + ",screenY=" + opentop;
    attr += ",resizable=no,width=" + calwidth + ",height=" + calheight; } 
  else {

    openleft = parseInt(((screen.width - calwidth) / 2),10);
    opentop = parseInt(((screen.height - calheight) / 2),10);
    
    var attr = "left=" + openleft + ",top=" + opentop;
    attr += ",resizable=no,width=" + calwidth + ",height=" + calheight; }
   }
  Calwindow=open(calfile + lang, 'Calendar', attr);
  window.fillfield = fieldobj;
  if (func) {window.afterfunc = func}
  if (Calwindow.opener == null) {
    Calwindow.opener = self; 
  }
}



function closecal() { 
  if (Calwindow.close && !Calwindow.closed) { 
    delete window.afterfunc;
    delete window.fillfield;
    Calwindow.close();
}  }


