function tablaBasica(a){this.id=a;this.table=$(a);this.numRow=0;this.addRow=function(e,l,b){if(!Object.isArray(e)){var g=new Array();e.each(function(i){g.push($H(i.value).values())});e=g}if(Object.isElement($(this.id+"_tbody"))!=true){tbody=new Element("tbody",{id:this.id+"_tbody"});this.table.insert(tbody)}else{tbody=$(this.id+"_tbody")}var h="row";if(this.numRow==0){h=h+" cabecera"}if(this.numRow/2==Math.ceil(this.numRow/2)){h=h+" rowPar"}else{h=h+" rowImpar"}var q=new Element("tr",{id:this.id+"_row_"+this.numRow});q.addClassName(h);if(this.numRow>0){Event.observe(q,"mouseover",function(){this.className+=" hoverIE"});Event.observe(q,"mouseout",function(){this.parentNode.parentNode.select("tr").each(function(i){i.className=i.className.replace("hoverIE","")});this.className=this.className.replace("hoverIE","")})}for(var f=0;f<e.length;f++){var c=false;if(typeof l!="undefined"){var c=true;if(typeof b!="undefined"){for(var d=0;d<b.length;d++){if(b[d]==f){c=false}}}}var o=e[f];var n="row_"+this.numRow+"_col_"+f;var m=new Element("td",{id:this.id+"_row_"+this.numRow+"_col_"+f});m.addClassName("col_"+f+" "+n);var p=new Element("span");if(c){var k=l.replace(/"/g,"\\'");p.innerHTML="<span ondblclick=\"document.location='"+k+'\';" style="cursor: pointer;">'+o+"</span>"}else{p.innerHTML=o}m.insert(p);q.insert(m)}tbody.insert(q);this.numRow++};this.delRow=function(c){var b=0;this.table.select("tr").each(function(d){if(b==c){d.remove()}b++})};this.dropTable=function(){this.table.select("tr").each(function(b){b.remove()});this.numRow=0}}function tablaSQL(a){this.tabla=new tablaBasica(a);this.cabeceras=new Array();this.modifyFechas=true;this.controles=true;this.nameControles="Controles";this.controles=new Array();this.linkAllLine=false;this.linkAllLineExcept=new Array();this.setCabeceras=function(b){this.cabeceras=b};this.setModifyFechas=function(b){this.modifyFechas=b};this.setControles=function(b){this.controles=b};this.setNameControles=function(b){this.nameControles=b};this.setControles=function(b){this.controles=b};this.setLinkAllLine=function(c,b){this.linkAllLine=c;if(typeof b!="undefined"){this.linkAllLineExcept=b}};this.dropTable=function(){this.tabla.dropTable()};this.printTable=function(h,e,m){this.dropTable();if(Object.isArray(h)){if(h.length<=0){return false}if(!Object.isArray(h[0])){if(this.cabeceras.length==0){this.cabeceras=$H(h[0]).keys()}var f=new Array();h.each(function(i){f.push($H(i).values())});h=f}}else{h=$H(h);if(h.keys().length<=0){return false}if(this.cabeceras.length==0){this.cabeceras=$H(h.get(0)).keys()}var f=new Array();h.each(function(i){f.push($H(i.value).values())});h=f}if(typeof e=="undefined"){e=0}if(typeof m!="undefined"){this.cabeceras=this.__hiddenCols(this.cabeceras,m)}var l=this.cabeceras.slice();if(this.controles!==false&&this.controles!=null){l.push(this.nameControles)}this.tabla.addRow(l);for(var k=0;k<h.length;k++){if(typeof m!="undefined"){var l=this.__hiddenCols(h[k],m)}else{var l=h[k].slice()}if(this.modifyFechas){for(var c=0;c<l.length;c++){var b=l[c];if(b==null){continue}if(b.length==10&&b[4]=="-"&&b[7]=="-"){l[c]=b.substr(8,2)+"/"+b.substr(5,2)+"/"+b.substr(0,4)}if(b.length==19&&b[4]=="-"&&b[7]=="-"&&b[13]==":"&&b[16]==":"){l[c]=b.substr(8,2)+"/"+b.substr(5,2)+"/"+b.substr(0,4)+b.substr(10)}}}if(this.controles!==false&&this.controles!=null){var d="<center><table cellspacing=0 cellpadding=0><tr>";if(this.controles.length>0){for(var c=0;c<this.controles.length;c++){if(typeof this.controles[c][0]!="undefined"&&typeof this.controles[c][1]!="undefined"){var j=this.__createLink(this.controles[c][1],h[k],e);d+="<td><a href='"+j+"'><img src='"+this.controles[c][0]+"' border=0></a>&nbsp;</td>"}}}d+="</tr></table></center>";l.push(d)}if(this.linkAllLine!=false&&this.linkAllLine!=""){var g=this.linkAllLineExcept;var j=this.__createLink(this.linkAllLine,h[k],e);g.push(l.length-1);this.tabla.addRow(l,j,g)}else{this.tabla.addRow(l)}}};this.__hiddenCols=function(e,f){var g=new Array();if(Object.isArray(f)){var c=0;for(var d=0;d<e.length;d++){var b=false;f.each(function(h){if(h==d){b=true}});if(!b){g[c]=e[d];c++}}}else{var c=0;for(var d=0;d<e.length;d++){if(f!=d){g[c]=e[d];c++}}}return g};this.__createLink=function(d,e,b){if(!Object.isArray(b)){var c=e[b]}else{var c="";b.each(function(f){c+=e[f]+", "});c=c.substr(0,c.length-2)}return d.replace("**key**",c)}};