var tds = Array.prototype.slice.call(document.getElementsByTagName("td"));
var ps = Array.prototype.slice.call(document.getElementsByTagName("p"));
var ths = Array.prototype.slice.call(document.getElementsByTagName("th"));

var arr = tds.concat(ps,ths);
	 	
for(i = 0; i < arr.length; i=i+1){
	if(arr[i].className.indexOf("nowrap") > -1){
		var as = Array.prototype.slice.call(arr[i].getElementsByTagName('a'));
		var spans = Array.prototype.slice.call(arr[i].getElementsByTagName('span'));
		var arr2 = as.concat(spans);
		
	 	if(arr[i].tagName.toLowerCase() == 'p'){
			arr[i].style.display = 'inline-block';
		}
		
		/* Length of the longest title */
		var maxlength = 0;
		/* Ratio between elements, normally give each element the same weight. */
		var factor = 0;
		for(j = 0; j < arr2.length; j=j+1){
	 		arr2[j].innerHTML = '<acronym title="'+arr2[j].innerHTML+'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</acronym>';	
	 		if(arr2[j].childNodes[0].title.length > maxlength){
				maxlength = arr2[j].childNodes[0].title.length;
			}
			if(arr2[j].className.indexOf("small") > -1){
				factor = 1;
			}
		}
		
		var ho = arr[i].clientHeight;
		for(j = 0; j < arr2.length; j=j+1){
		 	arr2[j].childNodes[0].innerHTML = arr2[j].childNodes[0].title;
		}
		for(k = maxlength; k > 0; k=k-1){	
				for(j = 0; j < arr2.length; j=j+1){
				 	if(k+j*factor < arr2[j].childNodes[0].title.length){
						arr2[j].childNodes[0].innerHTML = arr2[j].childNodes[0].title.substring(0,k+j*factor)+'...';
					}	
					if(arr[i].clientHeight < ho+10){
					 	break;
					}
				}
			if(arr[i].clientHeight < ho+10){	
				for(j = 0; j < arr2.length; j=j+1){
				 	if(k+j*factor >= arr2[j].childNodes[0].title.length){
		 				arr2[j].innerHTML = arr2[j].childNodes[0].title;		
					}
				}
				break;
			}
		}
		
	 	if(arr[i].tagName.toLowerCase() == 'p'){
			arr[i].style.display = 'block';
		}
	}
}

var arr = document.images;
for(i = 0; i < arr.length; i=i+1){
	arr[i].title = arr[i].alt;
}

var inputs = Array.prototype.slice.call(document.getElementsByTagName("input"));
var textareas = Array.prototype.slice.call(document.getElementsByTagName("textarea"));
var arr = inputs.concat(textareas);
for(i = 0; i < arr.length; i=i+1){
	if(arr[i].title && arr[i].title != '' && !arr[i].onfocus && !arr[i].onblur){
		arr[i].onfocus = function(){ on_focus(this); }
		arr[i].onblur  = function(){ on_blur(this); }
		if(arr[i].value != arr[i].title){
			arr[i].style.fontStyle = 'normal';
		}
	}
}
