il problema è qui:

Codice PHP:
if(@ereg("\.",$name))

   
$dot ".";  
   
$pos strpos($name$dot); 
   
//echo $pos." 
\n"; 
   if(
$pos > 3)
   { 
      echo "
The input cannot exceed more than 3 digits left of the decimal
\n"; 
      die; 
   } 

questo pezzo di codice controlla se a sinistra della virgola ci sono al più 3 caratteri.

Naturalmente il - viene visto come carattere, e se immetti un numero negativo di tre cifre alla funzione risulta che a sinistra della virgola ci sono 4 caratteri e quindi da errore.

Come risolvere?

ci sono diversi modi, te ne dico uno:

1) si controllano quanti caratteri ci sono a sinistra della virgola
2) se sono 4, si controlla che il primo sia un trattino. Se è un trattino si va avanti
3) se sono 3 si va avanti normalmente.