¡buenas!
Cita: ajax.send("busqueda="+bus)
ajax.send("busqueda2="+bus2) // esto al parecer no existe pq no me funka :P
he hojeado muy por encima el código y esto fue lo primero que me llamo la atención. no es que no existe, sino que tu problema es de procedimiento. cuando obtienes un objeto ajax (en realidad, xmlhttprequest), dicho objeto tiene diferentes estados: UNSENT, OPENED, HEADERS_RECEIVED, LOADING, y DONE [1]. cada uno tiene que ir por su orden y no es posible volver a uno anterior una vez llegado a ese estado o saltarse alguno. el punto es que estas intentando enviar dos veces la petición y no es posible volver a reenviar otra petición una vez el objeto alcance su último estado a no ser que reinicies el objeto (método abort). simplemente, lo que debes hacer es crear todos los parámetros de una vez formando una URL válida antes de enviar la petición. es decir, parametro=valor&variable=otro_valor&...
[1] -
http://www.w3.org/TR/XMLHttpRequest/...est-readystate ninguno, simplemente esta usando puro javascript.