function getObj(obj) { // Retrieve Object
	if (document.getElementById && document.getElementById(obj)) { 
		return document.getElementById(obj);
	} else if (document.all && document.all[obj]) {
		return document.all[obj];
	} else if (document.layers && document.layers[obj]) {
		return document.layers[obj];
	} else {
		return null;
	}
}; var $ = getObj; // $ is an alias of getObj

function getColl(obj) { // Retrieve an Objects Collection
	var val = null;
	if (document.getElementsByName  && document.getElementsByName(obj)) {
		//                                               Object for FF,IE,OP,Chrome                                  function for Safari!! Bah!
		if (((typeof(document.getElementsByName(obj)) == 'object') || (typeof(document.getElementsByName(obj)) == 'function')) && document.getElementsByName(obj)[0] && (document.getElementsByName(obj)[0].type == 'radio')) {
			var rd = document.getElementsByName(obj);
			for(var i=0;i<rd.length;i++) {
				if (rd[i] && rd[i].checked) {
					val = rd[i].value;
				};
			}
		//                                               Object for FF,IE,OP,Chrome                                  function for Safari!! Bah!
		} else if (((typeof(document.getElementsByName(obj)) == 'object') || (typeof(document.getElementsByName(obj)) == 'function')) && document.getElementsByName(obj)[0] && (document.getElementsByName(obj)[0].type == 'checkbox')) {
			var rd = document.getElementsByName(obj);
			var ary = new Array();
			var j = 0;
			for(var i=0;i<rd.length;i++) {
				if (rd[i] && rd[i].checked) {
					ary[j] = rd[i];
					j++;
				};
			};
			if (ary.length > 0) {
				val = ary;
			};
		};
	};
	return val;
}; var $$ = getColl; // $$ is an alias of getCol

function getXWsize() {
	var w = 0;
	if (self.innerHeight) { // FF, OP, etc
		w = window.innerWidth;
	} else if (document.documentElement && document.documentElement.clientWidth) { // IE6
		w = document.documentElement.clientWidth;
	} else if (document.body) { // IE, IE7
		w = document.body.clientWidth;
	}
	return w;
}

function getYHsize() {
	var h = 0;
	if (self.innerHeight) { // FF, OP, etc
		h = window.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // IE6
		h = document.documentElement.clientHeight;
	} else if (document.body) { // IE, IE7
		h = document.body.clientHeight;
	}
	return h;
}

function getXSsize() {
	var w = 0;
	if (window.innerHeight && window.scrollMaxY) {	
		w = document.body.scrollWidth;
	} else if (document.body.scrollWidth > document.body.offsetWidth) {
		w = document.body.scrollWidth;
	} else {
		w = document.body.offsetWidth;
	}
	return w;
}

function getYSsize() {
	var h = 0;
	if (window.innerHeight && window.scrollMaxY) {	
		h = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight) {
		h = document.body.scrollHeight;
	} else {
		h = document.body.offsetHeight;
	}
	return h;
}

function getYoffset() {
	var off = 0;
	if (self.innerHeight) {
		off = window.pageYOffset;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		off = document.documentElement.scrollTop;
	} else if (document.body) {
		off = document.body.scrollTop;
	};
	return off;
}

function ModalDIV(itext) // Tested with: IE8, FF 3.0.11, Opera 9.64, Safari 4.0.2, Chrome 2.0.172.33
{
	var thebody = document.getElementsByTagName("body").item(0);
	var mdiv = document.createElement("div");
	mdiv.setAttribute('id', 'ModalDIV');
	mdiv.style.position = 'absolute';
	//mdiv.style.backgroundImage="url('images/darkbluealpha.png')";
	mdiv.style.backgroundImage="url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAABGdBTUEAALGPC/xhBQAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjM2qefiJQAAABlJREFUGFdjZGBQe8iACUCC6BhDAKyTSJUArAYVlRQwX9AAAAAASUVORK5CYII=')";
	mdiv.style.left = '0px';
	mdiv.style.top = '0px';
	mdiv.style.width = getXSsize()+'px';
	mdiv.style.height = getYSsize()+'px';
	mdiv.style.visibility = 'visible';
	mdiv.style.color = '#FFFFFF';
	mdiv.style.zIndex = '9999999';
	mdiv.innerHTML = (typeof(itext) != 'undefined')?itext:'';
	mdiv.onclick = function() { this.parentNode.removeChild(this);  }; //alternative: this.style.visibility = 'hidden';
	thebody.appendChild(mdiv);
	// NOTE: '$' function is equivalent to 'document.getElementById'
	if (window.onresize != null) { // Handle window resize event
		var old_onresize = window.onresize; // backup old event handler if one
		window.onresize = function(e) { old_onresize(e); $('ModalDIV').style.width = getXSsize()+'px'; $('ModalDIV').style.height = getYSsize()+'px'; };
	} else {
		window.onresize = function(e) {$('ModalDIV').style.width = getXSsize()+'px'; $('ModalDIV').style.height = getYSsize()+'px'; };
	};
	if (typeof(itext) == 'undefined') return mdiv;
}

function HideModalDIV() {
	$("ModalDIV").parentNode.removeChild($("ModalDIV"));
	//alternative: $("ModalDIV").style.visibility = 'hidden';
}

function showModalImage(src, caption, footer) {
	var modal = ModalDIV();
	var imgdiv = document.createElement("div");
	var icap = (typeof(caption) != 'undefined')?"<h3>"+caption+"</h3>":'';
	var ifot = (typeof(footer) != 'undefined')?"<b><i>"+footer+"</i></b><br/>":'';
	var ihtml = (typeof(src) != 'undefined')?"<p>"+icap+"<img onload='if (this.width > 640) {this.width=640;} else if (this.height>480) {this.height=480;}' src='"+src+"' border=0/><br/>"+ifot+"</p><p>[Click to close]</p>":'Immagine non disponibile';
	imgdiv.setAttribute('id', 'ImageZoom');
	imgdiv.style.position = 'absolute';
	imgdiv.style.left = '0px';
	imgdiv.style.top = getYoffset()+'px';
	imgdiv.style.width = getXWsize()+'px';
	imgdiv.style.height = getYHsize()+'px';
	imgdiv.style.visibility = 'visible';
	imgdiv.style.zIndex = '9999999';
	imgdiv.style.color = '#FFFFFF';
	imgdiv.innerHTML = ihtml;
	modal.appendChild(imgdiv);
	
}

function showModalHTML(ihtml) {
	var md = ModalDIV();
	md.onclick = null;
	var txtdiv = document.createElement("div");
	txtdiv.setAttribute('id', 'RegUser');
	txtdiv.style.position = 'absolute';
	txtdiv.style.left = '0px';
	txtdiv.style.top = getYoffset()+'px';
	txtdiv.style.width = getXWsize()+'px';
	txtdiv.style.height = getYHsize()+'px';
	txtdiv.style.visibility = 'visible';
	txtdiv.style.zIndex = '9999999';
	txtdiv.style.color = '#FFFFFF';
	txtdiv.innerHTML = (typeof(ihtml) != 'undefined')?ihtml:'';
	md.appendChild(txtdiv);
	if (typeof(ihtml) == 'undefined') return md;
}

