function listen(event,elem,func){elem=$(elem);if(elem.addEventListener)
elem.addEventListener(event,func,false);else if(elem.attachEvent)
elem.attachEvent('on'+event,function(){func(new W3CDOM_Event(elem))});else throw'No es posible añadir evento';}
function W3CDOM_Event(currentTarget){this.currentTarget=currentTarget;this.preventDefault=function(){window.event.returnValue=false}
return this;}
function $(elem){if(document.getElementById){if(typeof elem=="string"){elem=document.getElementById(elem);if(elem===null)throw'No se ha podido coger el elemento: '+elem+' no existe';}else if(typeof elem!="object"){throw'No se ha podido coger el elemento: tipo de datos invalido';}}else throw'No se ha podido coger el elemento: DOM no soportado';return elem;}
function Oculta(id){if($(id))$(id).style.display="none";}
function Muestra(id){if($(id))$(id).style.display="";}
function XHConn()
{var xmlhttp,bComplete=false;try{xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");}
catch(e){try{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
catch(e){try{xmlhttp=new XMLHttpRequest();}
catch(e){xmlhttp=false;}}}
if(!xmlhttp)return null;this.connect=function(sURL,sMethod,sVars,fnDone)
{if(!xmlhttp)return false;bComplete=false;sMethod=sMethod.toUpperCase();try{if(sMethod=="GET"){xmlhttp.open(sMethod,sURL+"?"+sVars,true);sVars="";}
else{xmlhttp.open(sMethod,sURL,true);xmlhttp.setRequestHeader("Method","POST "+sURL+" HTTP/1.1");xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");}
xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4&&!bComplete){bComplete=true;fnDone(xmlhttp);}};xmlhttp.send(sVars);}
catch(z){return false;}
return true;};return this;}
