System = function() {}

System.isDOM=document.getElementById?true:false
System.isOpera=System.isOpera5=window.opera && System.isDOM
System.isOpera6=System.isOpera && window.print
System.isOpera7=System.isOpera && document.readyState
System.isMSIE=System.isIE=document.all && document.all.item && !System.isOpera
System.isStrict=document.compatMode=='CSS1Compat'
System.isNN=System.isNC=navigator.appName=="Netscape"
System.isNN4=System.isNC4=System.isNN && !System.isDOM
System.isMozilla=System.isNN6=System.isNN && System.isDOM

System.getBody = function(w) {
	if(!w) w=window
	if(System.isStrict){
		return w.document.documentElement
	} else {
		return w.document.body
	}
}

System.getAbsolutePos = function(el) {
	var r = { x: el.offsetLeft, y: el.offsetTop };
	if (el.offsetParent) {
		var tmp = System.getAbsolutePos(el.offsetParent);
		r.x += tmp.x;
		r.y += tmp.y;
	}
	return r;
};

System.getWindowLeft = function(w){
	if(!w) w=window
	if(System.isMSIE || System.isOpera7) return w.screenLeft
	if(System.isNN || System.isOpera) return w.screenX
}

System.getWindowTop = function(w){
	if(!w) w=window
	if(System.isMSIE || System.isOpera7) return w.screenTop
	if(System.isNN || System.isOpera) return w.screenY
}

System.getWindowWidth = function(w){
	if(!w) w=window
	if(System.isMSIE) return System.getBody(w).clientWidth
	if(System.isNN || System.isOpera) return w.innerWidth
}

System.getWindowHeight = function(w){
	if(!w) w=window
	if(System.isMSIE) return System.getBody(w).clientHeight
	if(System.isNN || System.isOpera) return w.innerHeight
}

System.getDocumentWidth = function(w){
	if(!w) w=window
	if(System.isMSIE || System.isOpera7) return System.getBody(w).scrollWidth
	if(System.isNN) return w.document.width
	if(System.isOpera) return w.document.body.style.pixelWidth
}

System.getDocumentHeight = function(w){
	if(!w) w=window
	if(System.isMSIE || System.isOpera7) return System.getBody(w).scrollHeight
	if(System.isNN) return w.document.height
	if(System.isOpera) return w.document.body.style.pixelHeight
}

System.getScrollX = function(w){
	if(!w) w=window
	if(System.isMSIE || System.isOpera7) return System.getBody(w).scrollLeft
	if(System.isNN || System.isOpera) return w.pageXOffset
}

System.getScrollY = function(w){
	if(!w) w=window
	if(System.isMSIE || System.isOpera7) return System.getBody(w).scrollTop
	if(System.isNN || System.isOpera) return w.pageYOffset
}

System.dynamicScript = function(scr){
	var script=document.createElement("SCRIPT");
	script.type="text/javascript";
	document.getElementsByTagName('head').item(0).appendChild(script);
	script.text = scr;
}

System.dynamicScriptSrc = function(file){
	var script  = document.createElement('SCRIPT');
	script.src  = file;
	script.type = 'text/javascript';
	document.getElementsByTagName('head').item(0).appendChild(script);
}

System.regexpReplace = function(in_str, reg_exp, replace_str, opts) {
	if (in_str == null)
		return in_str;

	if (typeof(opts) == "undefined")
		opts = 'g';

	var re = new RegExp(reg_exp, opts);
	return in_str.replace(re, replace_str);
}

System.switcher = function(objname, val) {
	var obj = document.getElementById(objname);
	obj.style.display = val;
}

System.toggleDisplay = function(srcElement){
	if (srcElement.style.display == "none"){
		srcElement.style.display = "";
	} else {
		srcElement.style.display = "none";
	}
}

System.getElementById = function(id){
	if (document.getElementById) {
		return (document.getElementById(id));
	} else if (document.all) {
		return (document.all[id]);
	} else {
		if (System.isNN4) {
			return (document.layers[id]);
		}
	}
}

System.disableAll = function(formname) {
	var frm = document.forms[formname];
	var elt = frm.elements[elname];
	if (elt&&elt.length) {
		for (i = 0; i < elt.length; i++) {
			elt.disable = true;
		}
	}
}
System.enableAll = function(formname) {
	var frm = document.forms[formname];
	var elt = frm.elements[elname];
	if (elt&&elt.length) {
		for (i = 0; i < elt.length; i++) {
			elt.disable = false;
		}
	}
}


System.checkBoxListValue = function(formname, elname) {
	var frm = document.forms[formname];
	var elt = frm.elements[elname];
	var re = new Array();
	var re_i=0;
	if (elt&&elt.length) {
		for (i = 0; i < elt.length; i++) {
			if (elt[i].checked) {
				re[re_i] = elt[i].value;
				re_i++;
			}
		}
		return re;
	} else {
		if (elt) {
			re[0] = elt.value;
			return re;
		} else {
			return "";
		}
	}
	return "";
}

System.checkSelectValue = function(elt) {
	var val = elt.options[elt.selectedIndex].value;
	return val;
}

// Functions used by text fiels to accept numbers only.
System.isDigit= function( e ) {
	e = e || event ;
	var iCode = ( e.keyCode || e.charCode ) ;

	event.returnValue =
		(
			( iCode >= 48 && iCode <= 57 )		// Numbers
			|| (iCode >= 37 && iCode <= 40)		// Arrows
			|| iCode == 8						// Backspace
			|| iCode == 46						// Delete
		) ;

	return event.returnValue ;
}

//Get form fields values
System.getFromFieldsValues = function(fields, formname) {
	var sendobj = {};
	var frm = document.forms[formname];
	for(fi in fields) {
		elt = frm.elements[fields[fi]];
		if(typeof(elt)=="object") {
			switch(elt.type) {
				case "text":
				sendobj[fields[fi]] = elt.value;
				break;

				case "checkbox":
					if(elt.checked) {
						varr = System.checkBoxListValue(formname, fields[fi]);
						sendobj[fields[fi]] = varr[0];							
					} else {
						sendobj[fields[fi]] = 0;
					}
			
				break;		
				

				case "select-one":
				sendobj[fields[fi]] = elt.value;
				break;							
			}
		}
		if((typeof(System.getElementById(fields[fi]+"[]")) == "object")&&(System.getElementById(fields[fi]+"[]")!=null)) {sendobj[fields[fi]+"[]"] = System.getElementById(fields[fi]+"[]").value;}
		if((typeof(System.getElementById(fields[fi]+"[day]")) == "object")&&(System.getElementById(fields[fi]+"[day]")!=null)) {sendobj[fields[fi]+"[day]"] = System.getElementById(fields[fi]+"[day]").value;}
		if((typeof(System.getElementById(fields[fi]+"[month]")) == "object")&&(System.getElementById(fields[fi]+"[month]")!=null)) {sendobj[fields[fi]+"[month]"] = System.getElementById(fields[fi]+"[month]").value;}
		if((typeof(System.getElementById(fields[fi]+"[year]")) == "object")&&(System.getElementById(fields[fi]+"[year]")!=null)) {sendobj[fields[fi]+"[year]"] = System.getElementById(fields[fi]+"[year]").value;}
		if((typeof(System.getElementById(fields[fi]+"[time]")) == "object")&&(System.getElementById(fields[fi]+"[time]")!=null)) {sendobj[fields[fi]+"[time]"] = System.getElementById(fields[fi]+"[time]").value;}
			
	}
	//trace(sendobj);	
	return sendobj;
}

function trace(str) {
	var res="";
	if(typeof(str) == "string") {
		res = str;
	} else if(typeof(str) == "object") {
		for(elt in str) {
			res += "Object."+elt+" = "+str[elt]+"\n";
		}
	}
	alert(res);	
}