function _parseRequest($name, $param)
 {
     $result = array();
     $paraFound = false;
     foreach ($param['reqTypes'] as $req_type) {
         switch (strtoupper($req_type)) {
             case 'POST':
                 if (isset($_POST[$name])) {
                     $paraValue = $this->removeMagicQuotes($_POST[$name]);
                     $paraFound = true;
                 }
                 break;
             case 'GET':
                 if (isset($_GET[$name])) {
                     $paraValue = $this->removeMagicQuotes($_GET[$name]);
                     $paraFound = true;
                 }
                 break;
             case 'COOKIE':
                 if (isset($_COOKIE[$name])) {
                     $paraValue = $this->removeMagicQuotes($_COOKIE[$name]);
                     $paraFound = true;
                 }
                 break;
             case 'SESSION':
                 if (isset($_SESSION[$name])) {
                     $paraValue = $_SESSION[$name];
                     $paraFound = true;
                 }
                 break;
             default:
         }
         if ($paraFound) {
             $result['RawRequest'] = $paraValue;
             break;
         }
     }
     if ($param['mustExist'] && !$paraFound) {
         $result['ErrorMsg'] = new NBFrameRequestErr('Required parameter[' . $name . '] should not be empty.');
     }
     if (!$paraFound) {
         if ($param['defaultValue'] !== NBFRAME_NO_DEFAULT_PARAM) {
             $paraValue = $param['defaultValue'];
         } elseif ($param['valType'] == 'string-yn') {
             $paraValue = 'N';
         } elseif ($param['valType'] == 'check-01') {
             $paraValue = '0';
         } elseif ($param['valType'] == 'array-int') {
             $paraValue = array();
         }
     }
     if (isset($paraValue)) {
         if (!empty($param['valType'])) {
             switch ($param['valType']) {
                 case 'raw':
                     // do nothing
                     break;
                 case 'var':
                     if (preg_match('/^[a-zA-Z0-9_]+$/', trim($paraValue), $matches)) {
                         $paraValue = $matches[0];
                     } else {
                         $paraValue = '';
                     }
                     break;
                 case 'file':
                     if (preg_match('/^[a-zA-Z0-9_.\\-]+$/', trim($paraValue), $matches)) {
                         $paraValue = $matches[0];
                     } else {
                         $paraValue = '';
                     }
                     break;
                 case 'string-yn':
                     $paraValue = $paraValue == 'Y' ? 'Y' : 'N';
                     break;
                 case 'check-01':
                     $paraValue = $paraValue == '1' ? '1' : '0';
                     break;
                 case 'array-int':
                     settype($paraValue, 'array');
                     array_walk($paraValue, array(&$this, '_array_int_callback'));
                     break;
                 case 'array-datetime':
                     if (is_array($paraValue)) {
                         if (isset($paraValue['date']) && isset($paraValue['hour']) && isset($paraValue['minute'])) {
                             $tmp = explode('-', $paraValue['date']);
                             NBFrame::setPHPServerTimeZone();
                             $paraValue = mktime(0, 0, 0, $tmp[1], intval($tmp[2]), intval($tmp[0])) + intval($paraValue['hour']) + intval($paraValue['minute']);
                             $paraValue = NBFrame::convLocalToServerTime($paraValue);
                         } else {
                             $paraValue = 0;
                         }
                     } else {
                         if ($paraValue != $param['defaultValue']) {
                             $paraValue = 0;
                         }
                     }
                     break;
                 default:
                     settype($paraValue, $param['valType']);
             }
         }
         $result['Request'] = $paraValue;
     }
     if (isset($result['RawRequest'])) {
         $this->mRawRequests[$name] = $result['RawRequest'];
     }
     if (isset($result['ErrorMsg'])) {
         $this->mErrorMsgs[] = $result['ErrorMsg'];
     }
     if (isset($result['Request'])) {
         $this->mRequests[$name] = $result['Request'];
     }
     return $result;
 }