/**
 * Returns an sql REPLACE query
 *
 * @access   public
 * @static
 *
 * @param    String      $table              the table
 * @param    Mixed       $values             the values to be changed as an associative array as a string
 * @param    String      $smartQuotes        wrap Strings in quotes?
 * @param    String      $addon              inserted at the end
 * @param    String      $statementAddon     inserted after the REPLACE keyword
 *
 * @returns  String      sql query
 */
 function replace($table, $values, $smartQuotes = true, $addon = '', $statementAddon = '')
 {
     $str = 'REPLACE %s INTO %s %s VALUES (%s) %s';
     $cols = '';
     if (@is_array($values)) {
         $vals = '';
         foreach ($values as $val) {
             if ($smartQuotes) {
                 if (is_int($val)) {
                     $vals .= "{$val}, ";
                 } else {
                     $vals .= "'{$val}', ";
                 }
             } else {
                 $vals .= "{$val}, ";
             }
         }
         $vals = substr($vals, 0, -2);
         if (!QueryHelper::_onlyNumericKeys($values)) {
             $cols = '(' . implode(', ', array_keys($values)) . ')';
         }
     } else {
         $vals = $values;
     }
     $query = sprintf($str, $statementAddon, $table, $cols, $vals, $addon);
     return $query;
 }