Po kolei:
else if(imie.search('[0-9]')>1)
search zwraca indeks poczatku pierwszego trafienia lub -1 jeśli nic nie znajdzie. Sprawdzanie czy zwraca liczbe większą od 1 jest kiepskie, bo jeśli zaczniesz od cyfry to search zwróci 0. Jeśli chcemy sprawdzić czy zawiera to:
if(imie.search('[0-9]')!=-1)
nazwisko tak samo
if((imie!="")&&(imie.search('[0-9]')==0)&&(nazw!="")&&(nazw.search('[0-9]')==0))
odpowiedz ta sama, teraz sprawdzasz czy imie i nazwisko zaczyna sie od liczby
else if(mail_wz.test(email))
{
lab1.innerHTML=("Mail niepoprawny");
niedbałość, jeśli przejdzie test regexa to przecież jest poprawny
else if((haslo.length>=8)&&(haslo.search("[0-9]")>0))
to samo, search zwraca -1 jak nie znajdzie
var kod_wz="/^\d\d-\d\d\d$/";
to nie działa bo jest zwykłym stringiem, a ma być wyrażeniem regularnym, wywal cudzysłowy to zadziała.