Co prawda jeszcze nie uruchamiałem skryptu, ale przejrzałem wstępnie kod i muszę powiedzieć, że w kilku miejscach wygląda nieco dziwnie. Na przykład funkcje takie jak iso2ascii i podobne są skonstruowane o instrukcję switch() dla każdego ze znaków, a nie lepiej byłoby po prostu stworzyć tablicę ze znakami i zastępować je w ciągu wykorzystując funkcje str_replace()?
Inne uwagi jak na takie wstępne spojrzenie są takie, że kod jest strukturalny co utrudnia jego zrozumienie i rozbudowę. Sugerowałbym zaprojektowanie i stworzenie wersji w oparciu o kod zorientowany obiektowo, to się opłaci prędzej czy później.
Kolejna sprawa to wymieszanie kodu PHP z HTML. Sugerowałbym zaprojektowanie z podziałem na warstwy, oddzielić kod od prezentacji (tutaj można skorzystać z klas do szablonów typu Smarty, Open Power Template (choć w tym przypadku tylko dla PHP5 lub inne, ja korzystam ze Smarty jak na razie).
Tabele baz danych można by było również troche zoptymalizować.
To na razie tyle uwag, tak na szybko. W razie czego służe pomocą (choć sam nie jestem jakimś jeszcze wielkim ekspertem w tej dziedzinie) przy tworzeniu skryptów PHP.