var Opera= ( navigator.userAgent.indexOf("Opera" ) != -1 );
var MSIE = ( navigator.userAgent.indexOf( "MSIE" ) != -1 ) && !Opera;
var Gecko= ( navigator.userAgent.indexOf("Gecko/") != -1 ) && !Opera;

function addEvent(obj, eventName, fn){

    var prev = obj[eventName];
    obj[eventName] = prev ? function() { fn() ; prev() } : fn;
}

window.addonload = function(fn) { addEvent(window, 'onload', fn) };

function createXMLHttpRequest(){
	if(window.XMLHttpRequest){             // Mozilla, Firefox, Safari, IE7
		return new XMLHttpRequest();
	}else if(window.ActiveXObject){       // IE5, IE6
		try{
			return new ActiveXObject("Msxml2.XMLHTTP");    // MSXML3
		}catch(e){
			return new ActiveXObject("Microsoft.XMLHTTP"); // MSXML2
		}
	}else{
		return null;
	}
}


function TableDecoration(){

	var tbody = document.getElementsByTagName('tbody');

	for( var i=0; tbody[i]; i++ ){

		var p = true;
		var tr = tbody[i].getElementsByTagName('tr');

		for( var j=0; tr[j]; j++){
			if(p=!p) tr[j].className = tr[j].className ? 'even' : tr[j].className + ' even';
			else     tr[j].className = tr[j].className ? 'odd' : tr[j].className + ' odd';
		}
	}
}

function removeWhitespaceNodes(node){
	var i=0;
	while(node.childNodes[i]){
		if(node.childNodes[i].nodeType==3){
			if( node.childNodes[i].nodeValue.match(/^[\b\t\n]+$/) ){
				node.removeChild(node.childNodes[i]);
				continue;
			}
			
		}else if(node.childNodes[i].nodeType==1){
			removeWhitespaceNodes(node.childNodes[i]);
		}
		i++;
	}
}

function removeAllWhitespaceNodes(){
	removeWhitespaceNodes(document.body);
}

window.addonload( removeAllWhitespaceNodes );

function set_selected(name,def){
	var obj = document.getElementsByName(name);
	if(obj && obj[0]){
		var o = obj[0].getElementsByTagName('option');
		var i;
		for(i=0;o[i];i++){
			if(o[i].getAttribute('value')==def) break;
		}
		obj[0].selectedIndex=i;
	}
}