Doh. Tagi <script> to się umieszcza w HTML-u. Kod JavaScript to tylko to, co jest pomiędzy tymi tagami. W plikach zewnętrznych (.js) już NIE wklepujesz tagów HTML. Nie piszesz też tych -- zupełnie niepotrzebnych w tym kontekście -- komentarzy JavaScript z CDATA. W pliku skrypt.js powinieneś mieć czysty kod JavaScript, czyli takie coś:
function stock()
{
}
(zauważ brak znaczników <script> z HTML-a oraz brak niepotrzebnych już komentarzy CDATA)
PS. Gdy dołączasz skrypt zewnętrzny, to nie wstawiaj tam komentarzy HTML. Nie ma to najmniejszego sensu. Czyli odwołanie się do skryptu HTML powinno wyglądać po prostu tak:
<script type="text/javascript" src="skrypt.js"></script>
Tu umieściłem wszystko w jednej linijce. Oczywiście, gdybyś znacznik zamykający </script> umieścił w następnej, to też byłoby OK. Po prostu niepotrzebne są te komentarze HTML-owe ().
edit: To może Ci napiszę po co w ogóle ta cała zabawa z CDATA i komentarzami HTML, bo widzę, że tego nie rozumiesz i wstawiasz/wklejasz te rzeczy na ślepo ;).
Chodzi o to, że starsze -- BAAARDZO stare -- przeglądarki nie obsługiwały JavaScriptu i nie rozpoznawały znaczników <script>. Gdy je napotykały, po prostu nic z nimi nie robiły, a tekst pomiędzy znacznikami (czyli kod JavaScript) wyświetlały na stronie. I były sytuacje, że komuś wyświetliło się na środku strony kilkaset linijek JavaScriptu. Dlatego ludzie wymyślili, ze kod JS otoczą komentarzami HTML (). Zawartość komentarzy nie jest wyświetlana na stronie, więc w najgorszym wypadku skrypt nie odpali, ale nie będzie straszył ludzi.
Z sekcjami CDATA kwestia jest podobna, choć tutaj już wkraczają do gry szczegóły parsowania (X)HTML-a. Normalnie w kodzie (X)HTML nie może sobie stać np. znak &. Musi on zostać zamieniony na encję &. W kodzie JavaScript pojawiają się co i rusz znaki &, bo w JavaScripcie jest operator logiczny AND, który zapisuje się za pomocą dwóch znaków & (czyli &&). Więc ludzie zaczęli otaczać kod JavaScript sekcjami CDATA, dzięki czemu parser zostawał poinformowany, że od początku aż do zamknięcia poprzez ma traktować ampersandy i inne znaki dosłownie.
Zauważ, że wszystko to nie ma najmniejszego sensu, gdy kod JavaScript masz w oddzielnym pliku z rozszerzeniem .js. Ten plik w ogóle nie śmieci w HTML-u. Nawet jeśli przeglądarka nie rozpoznawałaby znacznika <script>, to po prostu nie ściągnęłaby pliku ze skryptem. Kod JS nigdy nie zostałby wyświetlony użytkownikowi.
M.in. dlatego stosowanie zewnętrznych plików .js jest lepsze -- nie trzeba się bawić w takie duperele.