/**
  * Saves a user detail
  * @param Default_Model_UserDetail $userDetail User detail to be saved
  */
 public function save(Default_Model_UserDetail $userDetail)
 {
     // check if key exists
     $select = $this->getDbTable()->select()->where('user_id = ?', $userDetail->getId())->where('key = ?', $userDetail->getKey());
     $row = $this->getDbTable()->fetchRow($select);
     if (is_null($row)) {
         // key doesn't exist, insert new key
         $data = array('user_id' => $userDetail->getId(), 'key' => $userDetail->getKey(), 'value' => $userDetail->getValue());
         $this->getDbTable()->insert($data);
     } else {
         // key exists, update key
         $data = array('value' => $userDetail->getValue());
         $where[] = $this->getDbTable()->getAdapter()->quoteInto('user_id = ?', $userDetail->getId());
         $where[] = $this->getDbTable()->getAdapter()->quoteInto('key = ?', $userDetail->getKey());
         $this->getDbTable()->update($data, $where);
     }
 }