firebug will most likely help you discover any issues you are having. also, i think your javascript is incorrect. if think you need to use document.getElementByName.
instead of document.drop_list - use document.getElementByName('category') and document.getElementByName('subcategory')
i would modify the function like so (it also looks like you're missing some brackets:
function SelectSubcategory(){
// ON selection of category this function should fire
var cetegory = document.getElementByName('category');
var subcategory= document.getElementByName('subcategory');
removeAllOptions(subcategory);
addOption(subcategory, "", "", "");
if(category.value =="Hotel"){
addOption(subcategory, "Room only", "Room only" ) ;
addOption(subcategory, "Breakfast", "Breakfast" ) ;
addOption(subcategory, "Breakfast & Evening", "Breakfast & Evening");
}
if(category.value =="Chalet"){
addOption(subcategory, "Chalet only", "Chalet only" ) ;
addOption(subcategory, "Breakfast", "Breakfast" ) ;
addOption(subcategory, "Breakfast & Carvery", "Breakfast & Carvery");
}
}
i'd also have to see the addOption and removeAllOptions functions to ensure they are correct.
honestly, this could have been done a lot easier with jquery.