estoy familiarizado con el error
unterminated string literal pero no lo veo en el codigo. es decir, el codigo me parece que esta bien. probablemente se debe al contenido devuelto por php, especialmente si este contiene algun caracter que conflige con las comillas de string en javascript. como bien dices, pasa el string por
addslashes.
Código:
<a href="#" onMouseOver="Tip('<?php echo addslashes(utf8_decode($data[3]));?>')" onmouseout="UnTip()"><?php echo utf8_decode(substr($data[3],0,30)); ?>.....</a>