function $(id) {return document.getElementById(id)}
function $t(o,id) {return o.getElementsByTagName(id)}
function $b(id) {return document.createElement(id)}
function $ct(t) {return document.createTextNode(t)}
function $ae(o,eName,f) {
	if(window.addEventListener){ // Mozilla, Netscape, Firefox
		o.addEventListener(eName, f, false);
	} else { // IE
		o.attachEvent('on'+eName, f);
	}
}
function $clone(id) {
	var o=$(id)
	var c=null
	if (o) {
		var c=o.cloneNode(true)
		c.style.display=""
	}
	return c
}
function setEditValueV(ids,vs) {
	for(var i=0;i<ids.length;i++) {
		setEditValue(ids[i],(i<vs.length)?vs[i]:"")
	}
}
function setErrValue(id,value) {
	var o=$("e"+id)
	if (o) {o.innerHTML=value}
}
function setDataCal(id,value) {
	if (value=="") {
		var d=new Date()
		var r=d.getFullYear()+"-"+((d.getMonth()<9)?"0"+(d.getMonth()+1):(d.getMonth()+1))+"-"+((d.getDate()<10)?"0"+d.getDate():d.getDate())
		var o=$(id)
		if (o) {o.value=r}
	}
	cambiaData(0,id)
}
function cambiaData(delta,id) {
	var r=getFldValue(id)
	var d=new Date()
	var vs=r.split("-")
	d.setFullYear(vs[0])
	d.setMonth(vs[1]*1-1)
	d.setDate(vs[2]*1+delta)
	var r=d.getFullYear()+"-"+((d.getMonth()<9)?"0"+(d.getMonth()+1):(d.getMonth()+1))+"-"+((d.getDate()<10)?"0"+d.getDate():d.getDate())
	var o=$(id)
	if (o) {o.value=r}

	var r=((d.getDate()<10)?"0"+d.getDate():d.getDate())+"-"+((d.getMonth()<9)?"0"+(d.getMonth()+1):(d.getMonth()+1))+"-"+d.getFullYear()
	var o=$(id+"txt")
	if (o) {o.innerHTML=r}
}

function setEditValue(id,value) {
	var o=$(id)
	if(o&&o.tagName=="INPUT"&&o.type=="radio") {o=null}
	if (o) {
		if (o.tagName=="TD"||o.tagName=="DIV"||o.tagName=="SPAN") {
			if (o.className=="multiple") {
				var vv=";"+value+";"
				var c=$t(o,"INPUT")
				for(var i=0;i<c.length;i++) {
					if (c[i].type=="checkbox") {c[i].checked=(vv.indexOf(";"+c[i].value+";")!=-1)}
				}
			} else {
				o.innerHTML=value
			}
		} else {
			if(o.type=="checkbox") {
				o.checked=(value!="")
			} else {

				if (o.type=="textarea") {
					o.value=value.replace(/\|{3}/g,"\n")
				} else {	
					o.value=value
					if (o.className=="datavalue") {setDataCal(id,value)}
				}
			}
		}
		setErrValue(id,"")
	} else {
		setEditRadio(id,value)
		setErrValue(id,"")
	}
}
function setEditRadio(id,value) {
	var vo=document.getElementsByName(id)
	for(var i=0;i<vo.length;i++) {
		if(vo[i].tagName=="INPUT") {
			if (vo[i].type=="radio") {
				//if (vo[i].value==value) {vo[i].checked=true}
				vo[i].checked=(vo[i].value==value)
			}
		}
	}
}
function getEscValueV(ids) {
	var r=""
	for(var i=0;i<ids.length;i++) {
		r+=getEscValue(ids[i],(i==0)?"":"&")
	}
	return r
}

function getEscValue(id,p) {
	var o=$(id)
	if(o&&o.tagName=="INPUT"&&o.type=="radio") {o=null}
	if (o) {
		if (o.tagName=="TD"||o.tagName=="DIV"||o.tagName=="SPAN") {
			if (o.className=="multiple") {
				var r=""
				var c=$t(o,"INPUT")
				for(var i=0;i<c.length;i++) {
					if ((c[i].type=="checkbox")&&c[i].checked) {
						if (r!="") {r+=";"}
						r+=c[i].value
					}
				}
				return p+id+"="+escape(r)
			} else {
				return ""
			}
		} else {
			if(o.type=="checkbox") {
				return p+id+"="+escape(o.checked?o.value:"")
			} else {
				return p+id+"="+escape(o.value)
			}
		}
	} else {
		var vo=document.getElementsByName(id)
		if (vo.length!=0) {
			for(var i=0;i<vo.length;i++) {
				if (vo[i].tagName=="INPUT") {
					if (vo[i].type=="radio") {
						if (vo[i].checked) {return p+id+"="+escape(vo[i].value)}
					}
				}
			}
			return p+id+"="
		}
	}
	return ""
}

function getFldValue(id) {
	var o=$(id)
	if(o&&o.tagName=="INPUT"&&o.type=="radio") {o=null}
	if (o) {
		if (o.tagName=="TD"||o.tagName=="DIV"||o.tagName=="SPAN") {
			if (o.className=="multiple") {
				var r=""
				var c=$t(o,"INPUT")
				for(var i=0;i<c.length;i++) {
					if(c[i].type=="checkbox"&&c[i].checked) {
						if (r!="") {r+=";"}
						r+=c[i].value
					}
				}
				return r
			} else {
				return ""
			}
		} else {
			return (o.type=="checkbox")?(o.checked?o.value:""):(o.value)
		}
	} else {
		var vo=document.getElementsByName(id)
		if (vo.length!=0) {
			for(var i=0;i<vo.length;i++) {
				if (vo[i].tagName=="INPUT") {
					if (vo[i].type=="radio") {
						if (vo[i].checked) {return vo[i].value}
					}
				}
			}
			return ""
		}
		return ""
	}
}

function abilita(id,modo) {
	var o=$(id)
	if(o&&o.tagName=="INPUT"&&o.type=="radio") {o=null}
	if (o) {
		if (o.tagName=="DIV"||o.tagName=="TH"||o.tagName=="TD") {
			sc(o,(modo)?"":"disabled",(modo)?"disabled":"")
		} else {
			o.disabled=!modo
		}
	} else {
		var vo=document.getElementsByName(id)
		for(var i=0;i<vo.length;i++) {
			if (vo[i].tagName=="INPUT") {
				if (vo[i].type=="radio") {vo[i].disabled=!modo}
			}
		}
	}
}

function sc(o,ncn,ocn) {
	if (o) {
		if (ocn!=undefined) {
			if(ocn!="") {
				var re=new RegExp("\\b"+ocn+"\\b","gi")
				o.className=o.className.replace(re,"")
			}
		}
		if (ncn!="") {
			var re=new RegExp("\\b"+ncn+"\\b","gi")
			var i=o.className.search(re)
			if (i==-1) {o.className=o.className.replace(/\s*$/,'')+" "+ncn}
		}
		//alert(o.className)
	}
}

var vxc=new Array()
var vxr=false

function callAction(ve) {
	vxc.push(ve)
///	wl("callA")
	if (!vxr) {callX()}
}

function callX() {
	if (vxc.length==0) {return}
	vxr=true
	ve=vxc.pop()
	var isXML=false
	var isIE=false
//	wl("callX")
	var callback=ve[1]
	
	isXML=(window.XMLHttpRequest?true:false)
	isIE=(window.ActiveXObject?true:false)
	if (isIE) {
		try {
			req = new ActiveXObject("Microsoft.XMLHTTP")
			isIE=(req?true:false)
		} catch (e) {
       		isIE = false;
		}
	}
	if (isIE) {isXML=true}
	if (isXML) {
		if (isIE) {
			var Req = new ActiveXObject("Microsoft.XMLHTTP");
		} else {
		    var Req = new XMLHttpRequest();
		}
		if (ve[0]=="P") {
			Req.onreadystatechange = mycallback
		    Req.open("POST", ve[2], true)
			Req.setRequestHeader('Accept','jsxfalcosoft')
			Req.setRequestHeader('Content-Type','charset=iso-8859-1')
			Req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			Req.send(ve[3]);
		} else {
			Req.onreadystatechange = mycallback
		    Req.open("GET", ve[2]+"?"+ve[3], true);
			Req.setRequestHeader('Accept','jsxfalcosoft')
			Req.setRequestHeader('Content-Type','charset=iso-8859-1')
			Req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    		Req.send(null);
		}
	} else {
		document.location=ve[2]+"?"+ve[3]
	}
	function mycallback() {
        if (Req.readyState != 4) return;
        if (Req.status == 200) {
			if (ve[4]=="T") {
				callback(true, Req.responseText,ve[2],ve[3])
			} else {
				if (ve[4]=="X") {
					callback(true, Req,ve[2],ve[3])
			   } else {
					callback(true, Req.responseXML,ve[2],ve[3])
			   }
			}
        } else {
			callback(false, Req.status + ": " + Req.statusText,ve[2],ve[3])
		}
		if(vxc.length!=0) {
			callX()
		} else {
			vxr=false
		}
    }
}
