/**
  * jsDateField::jsDateField()
  *
  * Constructor: create a new jsdatefield object
  *
  * @param object &$oForm: the form where the datefield is located on
  * @param string $sName: the name of the datefield
  * @param string $sMask:
  * @param boolean $bRequired:
  * @param string $sInterval:
  * @param boolean $bIncludeJS: do we include the js file
  * @return jsDateField
  * @author Teye Heimans
  */
 function jsDateField(&$oForm, $sName, $sMask = null, $bRequired = null, $sInterval = null, $bIncludeJS)
 {
     // call the constructor of the datefield
     parent::DateField($oForm, $sName, $sMask, $bRequired, $sInterval);
     // check if the mask contains all three fields..
     $str = $this->_getFieldsFromMask();
     // is the mask ok (can we use a js datefield ?
     $this->_isOk = strlen($str) == 3 && strpos($str, 'd') !== false && strpos($str, 'm') !== false && strpos($str, 'y') !== false;
     // when not OK, just return a datefield
     if (!$this->_isOk) {
         return;
     }
     static $bSetJS = false;
     // needed javascript included yet ?
     if (!$bSetJS) {
         $bSetJS = true;
         // add the needed javascript
         if ($bIncludeJS == true) {
             $oForm->_setJS(FH_FHTML_DIR . "js/calendar_popup.js", true);
             $oForm->_setJS("document.write(getCalendarStyles());\n" . "function getDateString( fldForm, fldYear, fldMonth, fldDay ) {\n" . "    var frm = document.getElementById(fldForm);\n" . "    var objY = frm.elements[fldYear];\n" . "    var objM = frm.elements[fldMonth];\n" . "    var objD = frm.elements[fldDay];\n" . "    var y    = objY.options[objY.selectedIndex].value;\n" . "    var m    = objM.options[objM.selectedIndex].value;\n" . "    var d    = objD.options[objD.selectedIndex].value;\n" . "    if (y=='' || m== '') { \n" . "        return null;\n" . "    }\n" . "    if (d=='') { \n" . "        d = 1;\n" . "    }\n" . "    return y+'-'+m+'-'+d;\n" . "}\n");
         }
     }
 }