From: <Guardado por Windows Internet Explorer 8>
Subject: =?Windows-1252?Q?Resoluci=F3n_de_Directorio_N=B0_467/15?=
Date: Fri, 23 Sep 2016 12:23:13 -0300
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0000_01D21595.410FA360"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01D21595.410FA360
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://sgdweb2.ose-ad.winose.com.uy/igdoc/publicaciones.nsf/c2ec08410b28233a83257ca6006b7eed/83257cb300450de283257e3e0065bcb4?OpenDocument&Highlight=2,467%2F15

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Resoluci=F3n de Directorio N=B0 467/15</TITLE>
<META content=3D"text/html; charset=3Diso-8859-1" =
http-equiv=3DContent-Type>
<STYLE type=3Dtext/css>BODY {
	MARGIN: 5px; FONT-FAMILY: Arial, Helvetica, Verdana, sans-serif; =
FONT-SIZE: 12px
}
FONT {
	FONT-FAMILY: Arial, Helvetica, Verdana, sans-serif; FONT-SIZE: 12px
}
.TituloPagina {
	PADDING-LEFT: 30px; FONT-SIZE: 17px; FONT-WEIGHT: bold; PADDING-TOP: =
5px
}
.MostrarEspacios {
	WHITE-SPACE: pre
}
</STYLE>

<SCRIPT language=3DJavaScript type=3Dtext/javascript=20
src=3D"http://sgdweb2.ose-ad.winose.com.uy/igdoc/publicaciones.nsf/os3gri=
d.js?OpenJavascriptLibrary">=0A=
</SCRIPT>

<SCRIPT language=3DJavaScript type=3Dtext/javascript>=0A=
<!-- =0A=

function abrirAnexo(){
	if (anexoSeleccionado=3D=3D"")
		alert('Debe seleccionar un anexo');
	else{
		=
//window.open(document.forms[0].Protocolo.value+'://'+location.hostname+"=
:"+document.forms[0].Puerto.value+location.pathname+"/$file/"+anexoSelecc=
ionado);
		=
window.open("http"+'://'+location.hostname+":"+"80"+location.pathname+"/$=
file/"+anexoSeleccionado);
	}
}=0A=
// -->=0A=
</SCRIPT>

<SCRIPT language=3DJavaScript type=3Dtext/javascript>=0A=
<!-- =0A=
document._domino_target =3D "_self";=0A=
function _doClick(v, o, t) {=0A=
  var returnValue =3D false;=0A=
  var =
url=3D"/igdoc/publicaciones.nsf/c2ec08410b28233a83257ca6006b7eed/83257cb3=
00450de283257e3e0065bcb4?OpenDocument&Highlight=3D2,467%2F15&Click=3D" + =
v;=0A=
  if (o.href !=3D null) {=0A=
    o.href =3D url;=0A=
    returnValue =3D true;=0A=
  } else {=0A=
    if (t =3D=3D null)=0A=
      t =3D document._domino_target;=0A=
    window.open(url, t);=0A=
  }=0A=
  return returnValue;=0A=
}=0A=
// -->=0A=
</SCRIPT>
<LINK rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://sgdweb2.ose-ad.winose.com.uy/igdoc/publicaciones.nsf/Sesio=
n.css?OpenCssResource">
<META name=3DGENERATOR content=3D"MSHTML 8.00.6001.23543"></HEAD>
<BODY bgColor=3D#ffffff text=3D#000000>
<FORM action=3D"">
<TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 width=3D"100%">
  <TBODY>
  <TR vAlign=3Dtop>
    <TD bgColor=3D#ffffff vAlign=3Dcenter width=3D"1%"><IMG border=3D0 =
alt=3D""=20
      src=3D"http://sgdweb2.ose-ad.winose.com.uy/icons/ecblank.gif" =
width=3D55=20
      height=3D1><BR>
      <DIV align=3Dcenter><IMG=20
      =
src=3D"http://sgdweb2.ose-ad.winose.com.uy/igdoc/publicaciones.nsf/logoos=
e.jpg?OpenImageResource"=20
      width=3D48 height=3D33></DIV></TD>
    <TD bgColor=3D#ffffff width=3D"100%"><IMG border=3D0 alt=3D""=20
      src=3D"http://sgdweb2.ose-ad.winose.com.uy/icons/ecblank.gif" =
width=3D1=20
      height=3D1><BR><FONT size=3D2>Obras Sanitarias del =
Estado</FONT><BR><B><FONT=20
      color=3D#0082bf>Acuerdos de =
Directorio</FONT></B></TD></TR></TBODY></TABLE>
<DIV align=3Dcenter>
<TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0>
  <TBODY>
  <TR vAlign=3Dtop>
    <TD bgColor=3D#ffffff width=3D756>
      <DIV align=3Dcenter>
      <TABLE class=3Dcampo border=3D0 cellSpacing=3D0 cellPadding=3D0>
        <TBODY>
        <TR vAlign=3Dtop>
          <TD width=3D718>
            <TABLE class=3Dtitulo border=3D0 cellSpacing=3D0 =
cellPadding=3D0>
              <TBODY>
              <TR vAlign=3Dtop>
                <TD class=3DTituloPagina width=3D718>Resoluci=F3n de =
Directorio N=B0=20
                  467/15</TD></TR></TBODY></TABLE><BR>
            <TABLE class=3Dcampo border=3D0 cellSpacing=3D0 =
cellPadding=3D0>
              <TBODY>
              <TR vAlign=3Dtop>
                <TD width=3D134><B><FONT color=3D#004023 size=3D2=20
                  face=3DArial>Acta</FONT></B></TD>
                <TD width=3D584><FONT size=3D2 =
face=3DArial>2778</FONT><FONT size=3D2=20
                  face=3DArial> del </FONT><FONT size=3D2=20
                  face=3DArial>13/05/2015</FONT><FONT size=3D2 =
face=3DArial>=20
                  </FONT><B><FONT size=3D2 =
face=3DArial></FONT></B></TD></TR>
              <TR vAlign=3Dtop>
                <TD width=3D134><B><FONT color=3D#004023 size=3D2=20
                  face=3DArial>Tema</FONT></B></TD>
                <TD width=3D584><FONT size=3D2 face=3DArial>MODIFICAR =
LOS PUNTOS=20
                  4.1.1, 4.1.6, 4.1.7 Y 4.1.8. DEL PROCEDIMIENTO =
PR.CI.01, PARA=20
                  LA "RECEPCI=D3N DE QUEJAS Y DENUNCIAS POR =
DISCRIMINACI=D3N DE=20
                  G=C9NERO", EL QUE SE ADJUNTA Y ES PARTE INTEGRANTE DE =
LA=20
                  PRESENTE. MODIFICAR ASIMISMO EL NUMERAL 5.6 DEL =
PROCEDIMIENTO=20
                  PR.CI.02, =93GU=CDA PARA EL TRATAMIENTO DE CASOS DE =
ACOSO SEXUAL",=20
                  EL QUE SE ADJUNTA Y ES PARTE INTEGRANTE DE LA=20
                PRESENTE.</FONT></TD></TR>
              <TR vAlign=3Dtop>
                <TD width=3D134><B><FONT color=3D#004023 size=3D2=20
                  face=3DArial>Documento</FONT></B></TD>
                <TD width=3D584><FONT size=3D2=20
              face=3DArial>648/2015</FONT></TD></TR></TBODY></TABLE><BR>
            <TABLE class=3Dtitulo border=3D0 cellSpacing=3D0 =
cellPadding=3D0>
              <TBODY>
              <TR vAlign=3Dtop>
                <TD bgColor=3D#f7f7f7 width=3D718>
                  <DIV align=3Dcenter><B><FONT color=3D#004023=20
                  =
face=3DArial>Resoluci=F3n</FONT></B></DIV></TD></TR></TBODY></TABLE>
            <P style=3D"TEXT-ALIGN: justify"><SPAN=20
            style=3D"FONT-FAMILY: arial,helvetica,sans-serif; FONT-SIZE: =
medium">---VISTO:=20
            la R/D N=B0 1530/09 de fecha 29/X/09, por la cual se dispuso =
la=20
            creaci=F3n de la =93Comisi=F3n de Inequidades de =
G=E9nero=94.<BR></SPAN><SPAN=20
            style=3D"FONT-FAMILY: arial,helvetica,sans-serif; FONT-SIZE: =
medium">---RESULTANDO=20
            I: que dentro de los objetivos de la citada Comisi=F3n, se =
encuentra=20
            el de: =93Elaborar un procedimiento para la recepci=F3n =
sistem=E1tica de=20
            quejas y denuncias por discriminaci=F3n de g=E9nero y de =
acoso sexual=20
            para su seguimiento, en coordinaci=F3n con el Comit=E9 de =
Calidad con=20
            Equidad con el asesoramiento de Inmujeres=94. =
<BR></SPAN><SPAN=20
            style=3D"FONT-FAMILY: arial,helvetica,sans-serif; FONT-SIZE: =
medium">---RESULTANDO=20
            II: que por R/D N=BA 1304/10 de fecha 15/IX/10, se aprobaron =
los=20
            procedimientos PR.CI.01, para la Recepci=F3n de Quejas y =
Denuncias por=20
            Discriminaci=F3n de G=E9nero, PR.CI.02, Gu=EDa para el =
Tratamiento de=20
            Casos de Acoso Sexual y el REG. CI.02, Formulario de =
Solicitud de=20
            Entrevista, antes mencionados.<BR></SPAN><SPAN=20
            style=3D"FONT-FAMILY: arial,helvetica,sans-serif; FONT-SIZE: =
medium">---CONSIDERANDO=20
            I: que es necesario modificar el PR.CI.01, para la =
Recepci=F3n de=20
            Quejas y Denuncias por Discriminaci=F3n de G=E9nero, en los =
puntos=20
            4.1.1<STRONG>, </STRONG>4.1.6, 4.1.7 y =
4.1.8.<BR></SPAN><SPAN=20
            style=3D"FONT-FAMILY: arial,helvetica,sans-serif; FONT-SIZE: =
medium">---CONSIDERANDO=20
            II: que por otra parte, se entiende pertinente modificar el=20
            PR.CI.02, Gu=EDa para el Tratamiento de Casos de Acoso =
Sexual, en su=20
            Numeral 5.6.<BR></SPAN><SPAN=20
            style=3D"FONT-FAMILY: arial,helvetica,sans-serif; FONT-SIZE: =
medium">---CONSIDERANDO=20
            III: que en virtud de ello es necesario modificar en lo =
pertinente=20
            los citados Procedimientos.<BR></SPAN><SPAN=20
            style=3D"FONT-FAMILY: arial,helvetica,sans-serif; FONT-SIZE: =
medium">---ATENTO:=20
            a lo expuesto precedentemente.<BR></SPAN><SPAN=20
            style=3D"FONT-FAMILY: arial,helvetica,sans-serif; FONT-SIZE: =
medium"><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
            EL DIRECTORIO DE LA ADMINISTRACION<BR></SPAN><SPAN=20
            style=3D"FONT-FAMILY: arial,helvetica,sans-serif; FONT-SIZE: =
medium">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
            DE LAS OBRAS SANITARIAS DEL ESTADO;<BR></SPAN><SPAN=20
            style=3D"FONT-FAMILY: arial,helvetica,sans-serif; FONT-SIZE: =
medium">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
            R E S U E L V E:</SPAN></P>
            <P style=3D"TEXT-ALIGN: justify"><SPAN=20
            style=3D"FONT-FAMILY: arial,helvetica,sans-serif; FONT-SIZE: =
medium">---1=BA)=20
            MODIFICAR los puntos 4.1.1, 4.1.6, 4.1.7 y 4.1.8. del =
procedimiento=20
            PR.CI.01, para la Recepci=F3n de Quejas y Denuncias por =
Discriminaci=F3n=20
            de G=E9nero, el que se adjunta y es parte integrante de la =
presente=20
            Resoluci=F3n, los que quedaran redactados de la siguiente =
forma:=20
            =93<STRONG>4.1.1.</STRONG> Evaluar la necesidad de realizar =
entrevista=20
            previa lectura de descripci=F3n de la situaci=F3n. Si esta =
solicitud=20
            estuviera comprendida en los par=E1metros de Inequidad o=20
            Discriminaci=F3n de G=E9nero descriptos en el presente =
Procedimiento=20
            (5.1.9), se proceder=E1 a realizar la misma=94. =
=93<STRONG>4.1.6.=20
            </STRONG>Recomendar al Comit=E9 de Calidad con Equidad de =
G=E9nero, las=20
            acciones correctivas inmediatas que a juicio de la =
Comisi=F3n=20
            correspondieren para resolver el conflicto.=94 =
=934<STRONG>.1.7=20
            </STRONG>De existir presunci=F3n de la Comisi=F3n de una =
falta=20
            administrativa o delito, se aconsejar=E1 la remisi=F3n de lo =
informado a=20
            la Gerencia Jur=EDdico Notarial a los efectos que =
correspondan.=94=20
            =93<STRONG>4.1.8 </STRONG>Comunicar -en forma semestral al =
Comit=E9 de=20
            Calidad con Equidad de G=E9nero, el n=FAmero y estado de las =
quejas y=20
            denuncias recibidas por la Comisi=F3n, as=ED como la =
planificaci=F3n de=20
            las acciones de difusi=F3n sobre: formas de inequidades de =
g=E9nero,=20
            normas y acciones preventivas.=94</SPAN><BR><SPAN=20
            style=3D"FONT-FAMILY: arial,helvetica,sans-serif; FONT-SIZE: =
medium">---2=BA)=20
            MODIFICAR asimismo el Numeral 5.6 del Procedimiento =
PR.CI.02, =93Gu=EDa=20
            para el Tratamiento de Casos de Acoso Sexual, el que se =
adjunta y es=20
            parte integrante de la presente Resoluci=F3n, el que =
quedar=E1 redactado=20
            de la siguiente forma: =93<STRONG>5.6 </STRONG>Se<STRONG>=20
            </STRONG>comunicar=E1 -en forma semestral- al Comit=E9 de =
Calidad con=20
            Equidad de G=E9nero, el n=FAmero y estado de las quejas y =
denuncias=20
            recibidas por la Comisi=F3n=94.</SPAN><BR><SPAN=20
            style=3D"FONT-FAMILY: arial,helvetica,sans-serif"><SPAN=20
            style=3D"FONT-SIZE: medium">---3=BA) DISPONER que por parte =
de la=20
            Gerencia de Comunicaci=F3n, se d=E9 amplia difusi=F3n a la =
presente=20
            Resoluci=F3n.<BR>---4=BA) COMUN=CDQUESE a la Gerencia de =
Comunicaci=F3n, a=20
            efectos de lo dispuesto en el Numeral anterior y =
oportunamente,=20
            mant=E9ngase a Despacho en la Secretar=EDa =
General.<BR></SPAN><SPAN=20
            style=3D"FONT-SIZE: medium">---5=BA) PUBL=CDQUESE en el =
Portal Intranet y=20
            en el Sitio Web de O.S.E..<BR></SPAN><SPAN=20
            style=3D"FONT-SIZE: medium">---POR EL=20
        =
DIRECTORIO:</SPAN></SPAN></P></TD></TR></TBODY></TABLE></DIV><BR></TD></T=
R></TBODY></TABLE></DIV><INPUT=20
value=3D467/15 type=3Dhidden name=3DNumero> <INPUT value=3D2778 =
type=3Dhidden name=3DActa>=20
<INPUT value=3D13/05/2015 type=3Dhidden name=3DFechaActa> <INPUT =
type=3Dhidden=20
name=3DTipo> <INPUT=20
value=3D'MODIFICAR LOS PUNTOS 4.1.1, 4.1.6, 4.1.7 Y 4.1.8. DEL =
PROCEDIMIENTO PR.CI.01, PARA LA "RECEPCI=D3N DE QUEJAS Y DENUNCIAS POR =
DISCRIMINACI=D3N DE G=C9NERO", EL QUE SE ADJUNTA Y ES PARTE INTEGRANTE =
DE LA PRESENTE. MODIFICAR ASIMISMO EL NUMERAL 5.6 DEL PROCEDIMIENTO =
PR.CI.02, =93GU=CDA PARA EL TRATAMIENTO DE CASOS DE ACOSO SEXUAL", EL =
QUE SE ADJUNTA Y ES PARTE INTEGRANTE DE LA PRESENTE.'=20
type=3Dhidden name=3DTema> <INPUT value=3D648/2015 type=3Dhidden=20
name=3DDocTrNro></FORM></BODY></HTML>

------=_NextPart_000_0000_01D21595.410FA360
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://sgdweb2.ose-ad.winose.com.uy/icons/ecblank.gif

R0lGODlhEAABAIAAAAAAAP///yH5BAEAAAEALAAAAAAQAAEAAAIEjI8ZBQA7

------=_NextPart_000_0000_01D21595.410FA360
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://sgdweb2.ose-ad.winose.com.uy/igdoc/publicaciones.nsf/logoose.jpg?OpenImageResource

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

------=_NextPart_000_0000_01D21595.410FA360
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://sgdweb2.ose-ad.winose.com.uy/igdoc/publicaciones.nsf/Sesion.css?OpenCssResource

.TablaActContenido {
	PADDING-BOTTOM: 2px; BACKGROUND-COLOR: #f1f5f8; PADDING-LEFT: 2px; =
PADDING-RIGHT: 2px; PADDING-TOP: 2px
}
.AnchoTotal {
	WIDTH: 100%
}
.BarraAccionesAct {
	FONT-FAMILY: Tahoma, Verdana, Arial; FONT-SIZE: 2pt
}
.TablaActEtiquetaH {
	BORDER-BOTTOM: #6a9eb8 1px solid; BORDER-LEFT: #6a9eb8 0px solid; =
PADDING-BOTTOM: 2px; BACKGROUND-COLOR: #80bae4; PADDING-LEFT: 4px; =
WIDTH: 90px; PADDING-RIGHT: 2px; FONT-FAMILY: Tahoma, Verdana, Arial; =
HEIGHT: 21px; COLOR: #ffffff; FONT-SIZE: 9pt; BORDER-TOP: #6a9eb8 0px =
solid; BORDER-RIGHT: #6a9eb8 0px solid; PADDING-TOP: 2px
}

------=_NextPart_000_0000_01D21595.410FA360
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://sgdweb2.ose-ad.winose.com.uy/igdoc/publicaciones.nsf/os3grid.js?OpenJavascriptLibrary

/*=0D	OS3Grid v0.6=0D=0D	by Fabio Rotondo - fsoft ( at ) =
sourceforge.net=0D=0D	0.6: 	- get_col_attrs ()=0D		  set_row_attr ()=0D		=
  get_row_attrs ()=0D		  length ()=0D=0D		  GLOBAL: os3grid_get_grid =
()=0D			  os3grid_set_cell_value()=0D=0D		  "render" callback passes the =
full_id as the second argument=0D=0D*/=0D=0D// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D// GLOBAL STUFF - =
Init global data class=0D// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0Dfunction =
os3_grid_global_data ()=0D{=0D	this.grid_arr =3D new Array ();=0D	=
this.sort_field =3D 0;=0D	this.sort_inverted =3D 0;=0D}=0D=0D// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D// PUBLIC =
FUNCTIONS=0D// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0Dfunction =
os3grid_get_grid ( id ) =0D{=0D	return _os3_grid_global_data.grid_arr [ =
id ];=0D}=0D=0Dfunction os3grid_set_cell_value ( full_id, val )=0D{=0D	=
var v =3D full_id.split ( ":" );=0D        var g =3D os3grid_get_grid ( =
v [ 0 ] );=0D	if ( ! g ) return 0=0D        var r =3D g.get_row ( v [ 2 =
] );=0D=0D        r [ v [ 1 ] ] =3D val;=0D=0D	return g=0D}=0D=0Dvar =
_os3_grid_global_data =3D new os3_grid_global_data ();=0Dvar =
_os3g_resize_cell;=0Dvar _os3g_resize_start_x =3D -1;=0Dvar =
ant_sel;=0Dvar primera =3D true;=0D// Flag T/F to know if the current =
browser is the almighty bugged Internet Exploder.=0Dvar _os3g_is_ie =3D =
( document.all !=3D null );=0D=0D// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D// Grid Resize =
Functions=0D// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0Dfunction =
grid_resize_cell_down ( id )=0D{=0D	_os3g_resize_cell =3D =
document.getElementById ( id );=0D=0D	document.onmousemove =3D =
grid_resize_callback;=0D	if ( ! _os3g_is_ie ) =0D	{=0D		=
document.captureEvents(Event.MOUSEMOVE);=0D	} else {=0D		while ( ! =
_os3g_resize_cell )=0D		{=0D			_os3g_resize_cell =3D =
document.getElementById ( id );=0D			if ( confirm ( "The buggy Internet =
Explorer cannot get the ID: " + id + ". Try again?\nBTW: You should =
really consider to switch to Mozilla Firefox (www.getfirefox.com)" ) =
=3D=3D false ) break;=0D		}=0D	}=0D}=0D=0Dfunction grid_resize_cell_up =
()=0D{=0D	if ( ! _os3g_resize_cell ) return;=0D=0D	document.onmousemove =
=3D null;=0D=0D	// later=0D	if ( ! _os3g_is_ie )=0D	{=0D		=
document.releaseEvents(Event.MOUSEMOVE);=0D	}=0D=0D	if ( =
_os3g_resize_cell.old_className ) _os3g_resize_cell.className =3D =
_os3g_resize_cell.old_className;=0D	_os3g_resize_start_x =3D -1;=0D=0D	=
// Save the new column width inside _column_width array;=0D	var res =3D =
_os3g_resize_cell.id.split ( "_th" );=0D	var name =3D res [ 0 ];=0D	var =
num  =3D res [ 1 ];=0D=0D	var grid =3D _os3_grid_global_data.grid_arr [ =
name ];=0D	var attrs =3D grid.get_col_attrs ( num );=0D=0D	attrs [ =
"os3_width" ] =3D _os3g_resize_cell.width;=0D=0D	_os3g_resize_cell =3D =
null;=0D}=0D=0Dfunction grid_resize_callback ( e )=0D{=0D	var cur_x, =
cur_y;=0D=0D	if ( ( ! _os3g_is_ie ) && ( e.pageX ) )=0D		cur_x =3D =
e.pageX;=0D	else =0D		cur_x =3D event.x;=0D=0D	if ( _os3g_resize_start_x =
=3D=3D -1 ) =0D	{=0D		_os3g_resize_start_x =3D 1;=0D		=
_os3g_resize_start_x =3D cur_x - _os3g_resize_cell.offsetWidth;=0D	=
}=0D=0D	if ( cur_x <=3D _os3g_resize_start_x ) cur_x =3D =
_os3g_resize_start_x +1;=0D=0D	_os3g_resize_cell.width =3D ( cur_x - =
_os3g_resize_start_x );=0D}=0D=0D// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D// Grid Edit =
Functions=0D// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0Dfunction =
grid_edit_abort_or_blur ( input, cell_id, evt )=0D{=0D        evt =3D =
(evt) ? evt : event;=0D=0D	var ccode =3D ( evt.charCode ) ? evt.charCode =
: ( ( evt.which ) ? evt.which : evt.keyCode );=0D        var ch =3D =
String.fromCharCode ( ccode );=0D=0D	// User confirmed input by pressing =
"enter key"=0D	if ( ccode =3D=3D 13 ) return input.blur ();=0D=0D	// =
User aborted input=0D	if ( ccode =3D=3D 27 )=0D	{=0D		var v =3D =
cell_id.split ( ":" );=0D		var grid =3D _os3_grid_global_data.grid_arr [ =
v [ 0 ] ];=0D		input.value =3D grid.rows [ v [ 2 ] ] [ "data" ] [ v [ 1 =
] ];=0D		input.blur ();=0D	}=0D=0D	return true;=0D}=0D=0Dfunction =
grid_edit_end ( input, cell_id )=0D{=0D	var v =3D cell_id.split ( ":" =
);=0D	var grid =3D _os3_grid_global_data.grid_arr [ v [ 0 ] ];=0D	var =
oldv =3D grid.rows [ v [ 2 ] ] [ "data" ] [ v [ 1 ] ];=0D	var attrs =3D =
grid.get_col_attrs ( v [ 1 ] );=0D=0D	if ( oldv !=3D input.value )=0D	=
{=0D		if ( attrs [ "os3_validator" ] )=0D			if ( attrs [ "os3_validator" =
] ( input.value ) =3D=3D false )=0D			{=0D				alert ( "Invalid input: " =
+ input.value );=0D				return input.focus ();=0D			}=0D=0D		grid.rows [ =
v [ 2 ] ] [ "data" ] [ v [ 1 ] ] =3D input.value;=0D		if ( grid.onchange =
) grid.onchange ( grid, v [ 1 ], v [ 2 ], input.value );=0D		if ( =
grid.sort_on_edit ) grid.sort ();=0D	}=0D=0D	return grid.render =
();=0D}=0D=0Dfunction grid_cell_txt_edit ( cell )=0D{=0D	var v =3D =
cell.id.split ( ":" );=0D	var grid =3D _os3_grid_global_data.grid_arr [ =
v [ 0 ] ];=0D	var val;=0D	var s, el, size;=0D	var attrs =3D =
grid.get_col_attrs ( v [ 2 ] );=0D	var type =3D attrs [ "os3_type" =
];=0D=0D	if ( ! type ) type =3D 'str';=0D=0D	val =3D String ( grid.rows =
[ v [ 2 ] ] [ "data" ] [ v [ 1 ] ] );=0D=0D	s  =3D '<input type=3D"text" =
id=3D"grid_edit_cell" value=3D"' + val + '" ';=0D	s +=3D ' =
onblur=3D"grid_edit_end ( this, \'' + cell.id + '\' )" ';=0D	s +=3D ' =
onfocus=3D"this.select()" ';=0D=0D=0D	if ( attrs [ "os3_chars" ] )=0D		s =
+=3D 'onkeypress=3D"return grid_edit_filter_chars ( event, \'' + attrs [ =
"os3_chars" ] + '\' )" ';=0D=0D	s +=3D ' =
onkeydown=3D"grid_edit_abort_or_blur(this, \'' + cell.id + '\', event)" =
';=0D	s +=3D ' size=3D"'+ val.length + '" ';=0D	s +=3D ' =
class=3D"g_edit_box" ';=0D	if ( type =3D=3D 'int' ) s +=3D ' =
style=3D"text-align: right;" ';=0D	s +=3D '/>';=0D=0D	cell.innerHTML =3D =
s;=0D=0D	el =3D document.getElementById ( "grid_edit_cell" );=0D	=
el.focus ();=0D}=0D=0Dfunction grid_edit_filter_chars ( evt, valids ) =
{=0D        evt =3D (evt) ? evt : event;=0D=0D        if ( evt.charCode =
< 32 ) return true;=0D                                                   =
                                                                         =
                       =0D        var ccode =3D ( evt.charcode ) ? =
evt.charcode : ( ( evt.which ) ? evt.which : evt.keycode );=0D        =
var ch =3D String.fromCharCode ( ccode ).toLowerCase ();=0D=0D	valids =
=3D valids.toLowerCase ();=0D=0D        if ( valids.indexOf ( ch ) =
=3D=3D -1 ) return false;=0D=0D        return true;=0D}=0D=0D=0Dfunction =
grid_header_mdown ( header )=0D{=0D	if ( header.className =3D=3D =
'g_header_down' ) return;=0D=0D	header.old_className =3D =
header.className;=0D	header.className =3D 'g_header_down';=0D	=
=0D}=0D=0Dfunction grid_header_mup ( header )=0D{=0D	if ( =
header.old_className ) header.className =3D =
header.old_className;=0D}=0D=0Dfunction grid_header_click ( header =
)=0D{=0D	var name, num, res, grid;=0D	=0D	res =3D header.id.split ( =
"_gh" );=0D	name =3D res [ 0 ];=0D	num  =3D res [ 1 ];=0D=0D	grid =3D =
_os3_grid_global_data.grid_arr [ name ];=0D=0D	grid.set_sort_field ( num =
);=0D=0D	grid.sort ()=0D}=0D=0Dfunction grid_row_over ( row )=0D{=0D	var =
old_col =3D row.style.backgroundColor;=0D	var hover_col =3D =
_os3_grid_global_data.grid_arr [ row.firstChild.id.split ( ":" ) [ 0 ] =
].cols [ "hover" ];=0D=0D	if ( _os3g_resize_cell ) grid_resize_cell_up =
();=0D=0D	if ( ( row.selected ) || ( old_col =3D=3D hover_col ) ) =
return;=0D=0D	row.old_color =3D old_col;=0D	row.style.backgroundColor =
=3D hover_col;=0D}=0D=0Dfunction grid_row_out ( row )=0D{=0D	if ( ! =
row.selected ) row.style.backgroundColor =3D =
row.old_color;=0D}=0D=0Dfunction grid_cell_click ( cell )=0D{=0D=0D	var =
v =3D cell.id.split ( ":" );=0D=0D	var grid =3D =
_os3_grid_global_data.grid_arr [ v [ 0 ] ];=0D	var val;=0D	var row =3D =
cell.parentNode;	=0D=0D	val =3D grid.rows [ v [ 2 ] ] [ "data" ] [ v [ 1 =
] ];=0D=0D	sel =3D grid._cell_click ( grid, cell, v [ 2 ], v [ 1 ], val =
);=0D=0D	if (primera){=0D		ant_sel =3D cell;=0D		if ( sel )=0D		{=0D			=
cell.old_border =3D cell.style.borderColor;=0D			cell.style.border =
=3D"1px solid "+ grid.cols [ "rowsel" + ( v [ 2 ] % 2 ) ];=0D		} else=0D	=
		cell.style.border=3D "1px none "+cell.old_border;=0D		=
primera=3Dfalse;=0D	}else{=0D		ant_sel.style.border =3D "none";=0D		if ( =
sel )=0D		{=0D			cell.old_border =3D cell.style.borderColor;=0D			=
cell.style.border =3D"1px solid "+ grid.cols [ "rowsel" + ( v [ 2 ] % 2 =
) ];=0D		} else=0D			cell.style.border=3D "1px none =
"+cell.old_border;=0D		ant_sel=3Dcell;=0D	}	=0D=0D	cell.selected =3D =
sel; 	=0D=0D}=0D=0D// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D// Row selection =
function=0D// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0Dfunction =
grid_row_click ( cell, grid_id, row_num )=0D{=0D	var grid =3D =
_os3_grid_global_data.grid_arr [ grid_id ];=0D	var row =3D =
cell.parentNode;=0D =0D	if ( row.selected )=0D	{=0D		row.selected =3D =
false;=0D		grid_row_out ( row );=0D	} else {=0D		row.selected =3D =
true;=0D		row.style.backgroundColor =3D grid.cols [ "rowsel" + ( row_num =
% 2 ) ];=0D	}=0D=0D	grid.rows_selected [ row_num ] =3D =
row.selected;=0D=0D	if ( grid.onrowselect ) grid.onrowselect ( grid, =
row_num, row.selected );=0D}=0D=0D// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D// Internal =
Functions=0D// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0Dfunction =
os3_grid_int_sort ( a, b )=0D{=0D	var res =3D 0;=0D	var v1, v2;=0D=0D	v1 =
=3D parseInt ( a [ "data" ][ _os3_grid_global_data.sort_field ] );=0D	v2 =
=3D parseInt ( b [ "data" ][ _os3_grid_global_data.sort_field ] );=0D=0D	=
if  ( v1 < v2 ) res =3D -1;=0D	else if ( v1 > v2 ) res =3D 1;=0D=0D	if ( =
_os3_grid_global_data.sort_inverted ) res *=3D -1;=0D=0D	return =
res;=0D}=0D=0Dfunction os3_grid_str_sort ( a, b )=0D{=0D	var res =3D =
0;=0D	var v1, v2;=0D=0D	v1 =3D a [ "data" ][ =
_os3_grid_global_data.sort_field ];=0D	v2 =3D b [ "data" ][ =
_os3_grid_global_data.sort_field ];=0D=0D	if ( v1 < v2 ) res =3D -1;=0D	=
else if ( v1 > v2 ) res =3D 1;=0D=0D	if ( =
_os3_grid_global_data.sort_inverted ) res *=3D -1;=0D=0D	return =
res;=0D}=0D=0Dfunction _os3g_set_headers ()=0D{=0D	this.headers =3D =
arguments;=0D}=0D=0Dfunction _os3g_set_sort_field ( num )=0D{=0D	if ( =
num =3D=3D this.sort_field ) =0D		this.sort_inverted =3D ! =
this.sort_inverted;=0D	else=0D	{=0D		this.sort_field =3D num;=0D		=
this.sort_inverted =3D false;=0D	}=0D}=0D=0Dfunction =
_os3g_set_cell_click ( fname )=0D{=0D	this._cell_click =3D fname;=0D=0D	=
if ( this.id && this.autorender ) this.render ();=0D}=0D=0Dfunction =
_os3g_set_size ( w, h )=0D{=0D	this._width =3D w;=0D	this._height =3D =
h;=0D	if ( this.id && this.autorender ) this.render =
();=0D}=0D=0Dfunction _os3g_set_scrollbars ( sbars )=0D{=0D	=
this._scrollbars =3D sbars;=0D	if ( this.id && this.autorender ) =
this.render ();=0D}=0D=0Dfunction _os3g_set_border ( bsize, style, color =
)=0D{=0D	this._border =3D bsize;=0D	if ( style ) this._border_style =3D =
style;=0D	if ( color ) this._border_color =3D color;=0D=0D	if ( this.id =
&& this.autorender ) this.render ();=0D}=0D=0Dfunction =
_os3g_set_sortable ( sortable )=0D{=0D	this._sortable =3D sortable =
;=0D=0D	if ( this.id && this.autorender ) this.render =
();=0D}=0D=0Dfunction _os3g_set_highlight ( hl )=0D{=0D	this._row_hl =3D =
hl ;=0D=0D	if ( this.id && this.autorender ) this.render =
();=0D}=0D=0Dfunction _os3g_sort ()=0D{=0D	if ( this.sort_field =3D=3D =
-1 ) return;=0D=0D	var attrs =3D this.get_col_attrs ( this.sort_field =
);=0D	var ctype =3D attrs [ "os3_type" ];=0D	var sfunc;=0D=0D	if ( ! =
ctype ) ctype =3D "str";=0D	sfunc =3D { "str" : os3_grid_str_sort,=0D	  	=
  "int" : os3_grid_int_sort,=0D	  	  "date": os3_grid_str_sort } [ ctype =
];=0D=0D	_os3_grid_global_data.sort_field =3D this.sort_field;=0D	=
_os3_grid_global_data.sort_inverted =3D this.sort_inverted;=0D	=
this.rows.sort ( sfunc );=0D	this.render ( this.id );=0D}=0D=0Dfunction =
_os3g_add_row ()=0D{=0D	var arr;=0D=0D	arr =3D { "data" : arguments, =
"style" : this.current_style };=0D=0D	this.rows.push ( arr =
);=0D}=0D=0Dfunction _os3g_get_str ()=0D{=0D	var t, len;=0D	var s =3D =
'<table class=3D"g_table">';=0D	var id, td_id;=0D	var attrs;=0D=0D	// =
Row selections are discarted on rendering=0D	this.rows_selected =3D new =
Array ();=0D=0D	if ( this.headers )=0D	{=0D		s +=3D '<tr>';=0D		if ( =
this._show_row_num ) s+=3D '<td><div =
class=3D"g_header">&nbsp</div></td>';=0D=0D		len =3D =
this.headers.length;=0D=0D		for ( t =3D 0; t < len; t ++ )=0D		{=0D			=
attrs =3D this.get_col_attrs ( t );=0D		=0D			td_id =3D this.id + "_th" =
+ t;=0D			id =3D this.id + "_gh" + t;=0D=0D			s +=3D '<td id=3D"' + =
td_id + '" ';=0D			if ( attrs [ "os3_width" ] ) s +=3D 'style=3D"width: =
' + attrs [ "os3_width" ] + 'px;" ';=0D			s +=3D'><div id=3D"' + id + '" =
class=3D"g_header"';=0D			if ( this._click_cb [ t ] )=0D			{=0D				if ( =
this._click_cb [ t ] !=3D -1 ) =0D				{=0D					s +=3D ' onclick=3D"' + =
this._click_cb [ t ] +  '"';=0D					s +=3D ' =
onmousedown=3D"grid_header_mdown(this)"';=0D					s +=3D ' =
onmouseup=3D"grid_header_mup(this)"';=0D					// s +=3D ' =
onmouseout=3D"grid_header_mup(this)" ';=0D				}=0D			} else if ( =
this._sortable ) {=0D					s +=3D ' =
onclick=3D"grid_header_click(this)"';=0D					s +=3D ' =
onmousedown=3D"grid_header_mdown(this)"';=0D					s +=3D ' =
onmouseup=3D"grid_header_mup(this)"';=0D					//s +=3D ' =
onmouseout=3D"grid_header_mup(this)" ';=0D			}=0D=0D			s +=3D '>'+ =
this.headers [ t ] + "</div></td>"; =0D=0D			if ( this.resize_cols )=0D		=
		s +=3D '<td class=3D"g_resize" =
onmousedown=3D"grid_resize_cell_down(\'' + td_id + '\')" =
onmouseup=3D"grid_resize_cell_up()"></td>';=0D		}=0D		s +=3D '</tr>';=0D	=
}=0D=0D	var r, i, rlen, bgc, align, hl, style, rowcol, fullrow, v;=0D=0D	=
len =3D this.rows.length;=0D	rlen =3D this.rows[0]['data'].length;	// =
All rows must be equal size=0D	for ( t =3D 0; t < len; t ++ )=0D	{=0D		=
fullrow =3D this.rows [ t ];=0D		r 	=3D fullrow [ 'data' ];=0D		style	=
=3D fullrow [ 'style' ];=0D		rowcol  =3D fullrow [ 'color' ];=0D=0D		if =
( rowcol )=0D			bgc =3D ' bgcolor=3D"' + rowcol + '"';=0D		else =0D			=
bgc =3D ' bgcolor=3D"' + this.cols [ style + ( t % 2 ) ] + '"';=0D=0D		=
if ( this._row_hl )=0D			hl =3D ' onmouseover=3D"grid_row_over(this)" =
onmouseout=3D"grid_row_out(this)" ';=0D		else=0D			hl =3D '';=0D			=0D		=
s +=3D '<tr ' + hl + bgc + '>';=0D		if ( this._show_row_num ) =0D		{=0D		=
	s+=3D '<td class=3D"g_header"';=0D			if ( this._row_sel )=0D			{=0D				=
s +=3D ' onmousedown=3D"grid_header_mdown(this)"';=0D				s +=3D ' =
onmouseup=3D"grid_header_mup(this)"';=0D				s +=3D ' =
onclick=3D"grid_row_click(this,\'' + this.id + '\',' + t + ')"';=0D			=
}=0D=0D			s +=3D ' id=3D"' + this.id + ':' + t + '"';=0D=0D			s+=3D '>' =
+ ( this.start_counter + t ) + '</td>';=0D		}=0D=0D		for ( i =3D 0; i < =
rlen; i ++ )=0D		{=0D			attrs =3D this.get_col_attrs ( i );=0D=0D			var =
ca =3D attrs [ "os3_align" ];=0D			var ctype =3D attrs [ "os3_type" =
];=0D			var cell_id =3D this.id + ":" + i + ":" + t;=0D=0D			if ( ca =
)=0D				align =3D 'align=3D"' + ca + '"';=0D			else if ( ctype && ( =
ctype !=3D 'str' ) )=0D				align =3D 'align=3D"right"';=0D			else=0D				=
align =3D "";=0D			=0D			s +=3D '<td class=3D"g_cell" valign=3D"top" ' + =
align;=0D			if ( this.resize_cols ) s +=3D ' colspan=3D"2"';=0D			if ( =
attrs [ "os3_edit" ] ) s +=3D ' ondblclick=3D"grid_cell_' + attrs [ =
"os3_edit" ] + '_edit(this)" ';=0D			if ( this._cell_click ) s +=3D ' =
onclick=3D"grid_cell_click(this)" ';=0D			s +=3D ' id=3D"' + cell_id + =
'"';=0D			s +=3D '>'; =0D			if ( attrs [ "os3_render" ] )=0D				v =3D =
attrs [ "os3_render" ] ( r [ i ], cell_id );=0D			else=0D				v =3D r [ i =
];=0D			s +=3D v;=0D			s +=3D '</td>';=0D		}=0D		s +=3D '</tr>';=0D	=
}=0D=0D	s +=3D "</table>";=0D	=0D	return s;=0D}=0D=0Dfunction =
_os3g_render ( objId )=0D{=0D	if ( objId =3D=3D undefined ) objId =3D =
this.id;=0D=0D	this.id =3D objId;=0D	var obj =3D document.getElementById =
( objId );=0D=0D	obj.innerHTML =3D this.get_str ();=0D=0D	if ( =
this._scrollbars )=0D		obj.style.overflow =3D "auto";=0D	else=0D		=
obj.style.overflow =3D "visible";	// was "none"=0D=0D=0D	if ( =
this._width )  obj.style.width =3D this._width;=0D	if ( this._height ) =
obj.style.height =3D this._height;=0D	if ( this._border ) =0D	{=0D		if ( =
this._border_style ) obj.style.border =3D this._border_style;=0D		if ( =
this._border_color ) obj.style.borderColor =3D this._border_color;=0D		=
obj.style.borderWidth =3D this._border + "px";=0D	}=0D	=0D	// Bind =
element to the os3_grid_array=0D	_os3_grid_global_data.grid_arr [ objId =
] =3D this;=0D=0D	if ( this.onrender ) this.onrender ( this =
);=0D}=0D=0Dfunction _os3g_set_row_attr ( row_num, name, val )=0D{=0D	if =
( ( row_num =3D=3D undefined ) || ( row_num =3D=3D -1 )  ) row_num =3D =
this.rows.length -1;=0D=0D	var attrs =3D this.get_row_attrs ( row_num =
);=0D=0D	attrs [ name ] =3D val;=0D}=0D=0Dfunction _os3g_set_row_color ( =
col, row_num )=0D{=0D	if ( ( row_num =3D=3D undefined ) || ( row_num =
=3D=3D -1 )  ) row_num =3D this.rows.length -1;=0D=0D	this.rows [ =
row_num ] [ 'color' ] =3D col;=0D}=0D=0Dfunction _os3g_set_row_style ( =
style, row_num )=0D{=0D	if ( ( row_num =3D=3D undefined ) || ( row_num =
=3D=3D -1 )  ) row_num =3D this.rows.length -1;=0D	=0D	this.rows [ =
row_num ] [ 'style' ] =3D style;=0D}=0D=0Dfunction _os3g_set_col_align ( =
col, align )=0D{=0D	var attrs =3D this.get_col_attrs ( col );=0D	attrs [ =
"os3_align" ] =3D align;=0D}=0D=0Dfunction _os3g_set_col_editable ( col, =
edit )=0D{=0D	var attrs =3D this.get_col_attrs ( col );=0D	attrs [ =
"os3_edit" ] =3D edit;=0D}=0D=0D=0Dfunction _os3g_get_value ( x, y =
)=0D{=0D	return this.rows [ y ] [ x ];=0D}=0D=0Dfunction =
_os3g_set_col_valid_chars ( col, chars )=0D{=0D	var attrs =3D =
this.get_col_attrs ( col );=0D	attrs [ "os3_chars" ] =3D =
chars;=0D}=0D=0Dfunction _os3g_set_col_validation ( col, func )=0D{=0D	=
var attrs =3D this.get_col_attrs ( col );=0D	attrs [ "os3_validator" ] =
=3D func;=0D}=0D=0Dfunction _os3g_set_row_select ( rsel )=0D{=0D	=
this._row_sel =3D rsel;=0D	if ( this._row_sel ) this._show_row_num =3D =
true;=0D=0D	if ( this.id && this.autorender ) this.render =
();=0D}=0D=0Dfunction _os3g_show_row_num ( show )=0D{=0D	=
this._show_row_num =3D true;=0D	if ( this.id && this.autorender ) =
this.render ();=0D}=0D=0Dfunction _os3g_set_col_type ( col, type =
)=0D{=0D	var attrs =3D this.get_col_attrs ( col );=0D	attrs [ "os3_type" =
] =3D type;=0D}=0D=0Dfunction _os3g_set_col_render ( col, render =
)=0D{=0D	var attrs =3D this.get_col_attrs ( col );=0D	attrs [ =
"os3_render" ] =3D render;=0D}=0D=0D=0Dfunction _os3g_get_row ( row =
)=0D{=0D	return this.rows [ row ] [ "data" ];=0D}=0D=0Dfunction =
_os3g_set_click_cb ( col, callback )=0D{=0D	this._click_cb [ col ] =3D =
callback;=0D=0D	if ( this.id && this.autorender ) this.render =
();=0D}=0D=0Dfunction _os3g_set_style ( style )=0D{=0D	=
this.current_style =3D style;=0D=0D	if ( this.id && this.autorender ) =
this.render ();=0D}=0D=0Dfunction _os3g_get_col_attrs ( col )=0D{=0D	var =
attrs =3D this._column_attrs [ col ];=0D	if ( attrs ) return ( attrs =
);=0D=0D	return this._column_attrs [ col ] =3D new Array =
();=0D}=0D=0Dfunction _os3g_get_row_attrs ( row_num )=0D{=0D	if ( ( =
row_num =3D=3D undefined ) || ( row_num =3D=3D -1 )  ) row_num =3D =
this.rows.length -1;=0D=0D	var attrs =3D this.rows [ row_num ] [ =
'os3_attrs' ];=0D=0D	if ( attrs ) return attrs;=0D=0D	return this.rows [ =
row_num ] [ 'os3_attrs' ] =3D new Array ();=0D}=0D=0Dfunction =
_os3g_length ()=0D{=0D	return ( this.rows.length );=0D}=0D=0D=0Dfunction =
OS3Grid ( auto_render )=0D{=0D	// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D	// Public =
attribs=0D	// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D=0D	this.id =3D =
0;=0D=0D	this.start_counter =3D 0;=0D=0D	// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D	// PUBLIC =
FLAGS=0D	// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D=0D	// Flag =
T/F. If True, any modification (done with set_* funcs) will immediately =
renderd on grid=0D	this.autorender =3D auto_render;	=0D=0D	// Flag T/F. =
If True, grid will be re-sorted on value changes=0D	this.sort_on_edit =
=3D false;=0D=0D	// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D	// PUBLIC =
CALLBACKS=0D	// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D	// Function to =
be called when data in grid changes=0D	this.onchange =3D false;=0D=0D	// =
Function to be called after the grid redraws=0D	this.onrender =3D =
false;=0D=0D	// Callback to be called when the user selects / deselects =
a row=0D	this.onrowselect =3D false;=0D=0D	// Flag T/F. If True, user =
can resize column at runtime=0D	this.resize_cols =3D false;=0D	=0D	// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D	// PUBLIC =
ATTRIBUTES=0D	// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D=0D	// Array =
rows_selected=0D	this.rows_selected =3D false;	// This array keeps track =
of selected rows=0D=0D=0D	// Colors=0D	this.cols =3D { "hover" 	: =
"#8ec4cf",=0D		     "rowsel0"	: "#ffa07f",=0D		     "rowsel1"	: =
"#df8c6f",=0D		     "normal0"	: "#ffffff",=0D		     "normal1"	: =
"#dfdfdf",=0D		     "error0"	: "#ff0033",=0D		     "error1"	: =
"#cc0033",=0D		     "warn0"	: "#ffff99",=0D		     "warn1"	: =
"#ffff66",=0D		     "note0"	: "#ffffff",=0D		     "note1"	: "#4eee94"=0D	=
	    };=0D=0D	// Default style=0D	this.current_style =3D =
"normal";=0D=0D=0D	// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D	// Private =
Stuff - Do not directly modify these values!=0D	// =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D	this.headers =
=3D 0;=0D	this.rows =3D new Array ();=0D	this.sort_field =3D -1;=0D	=
this.sort_inverted =3D false;=0D		=0D	this._row_style =3D new Array =
();=0D=0D	this._column_attrs =3D new Array ();=0D=0D	// This array =
stores the custom click callbacks=0D	this._click_cb =3D new Array ();=0D	=
=0D	// Flag T/F. If True, the grid is sortable (by clicking on the =
headers)=0D	this._sortable =3D false;=0D=0D	// Flag T/F. If True, =
scrollbars are used.=0D	this._scrollbars =3D false;=0D=0D	// Force grid =
container width=0D	this._width =3D 0;=0D=0D	// Force grid container =
height=0D	this._height =3D 0;=0D=0D	// Grid container border size (in =
pixels)=0D	this._border =3D 0;=0D=0D	// Grid container border style =
(solid, dashed, dotted...)=0D	this._border_style =3D 0;=0D=0D	// Grid =
container block color=0D	this._border_color =3D 0;=0D=0D	// Function =
callback for every cell click=0D	this._cell_click =3D 0;=0D=0D	// =
Function callback for every row click=0D	this._row_click =3D 0;=0D=0D	// =
Flag T/F. If True rows will be highlighted when the mouse scrolls over =
them.=0D	this._row_hl =3D false;=0D=0D	// Flag T/F. If True rows number =
are shown and rows are selectable by clicking on them.=0D	=
this._show_row_num =3D false;=0D=0D	// Flag T/F. If True rows number are =
shown and rows are selectable by clicking on them.=0D	this._row_sel =3D =
false;=0D=0D	// Public methods=0D	this.add_row 		=3D _os3g_add_row;=0D	=
this.get_col_attrs	=3D _os3g_get_col_attrs;		=0D	this.get_row 		=3D =
_os3g_get_row;=0D	this.get_row_attrs	=3D _os3g_get_row_attrs;	=0D	=
this.get_str 		=3D _os3g_get_str;=0D	this.getv		=3D _os3g_get_value;=0D	=
this.length		=3D _os3g_length;			=0D	this.render 		=3D _os3g_render;=0D	=
this.set_border 	=3D _os3g_set_border;=0D	this.set_cell_click 	=3D =
_os3g_set_cell_click;=0D	this.set_click_cb	=3D _os3g_set_click_cb;=0D	=
this.set_col_align	=3D _os3g_set_col_align;=0D	this.set_col_editable	=3D =
_os3g_set_col_editable;=0D	this.set_col_render	=3D =
_os3g_set_col_render;=0D	this.set_col_type	=3D _os3g_set_col_type;=0D	=
this.set_col_valid_chars =3D _os3g_set_col_valid_chars;=0D	=
this.set_col_validation =3D _os3g_set_col_validation;=0D	=
this.set_headers    	=3D _os3g_set_headers;=0D	this.set_highlight	=3D =
_os3g_set_highlight;=0D	this.set_row_attr	=3D _os3g_set_row_attr;	=0D	=
this.set_row_color	=3D _os3g_set_row_color;=0D	this.set_row_select	=3D =
_os3g_set_row_select;=0D	this.set_row_style	=3D _os3g_set_row_style;=0D	=
this.set_scrollbars 	=3D _os3g_set_scrollbars;=0D	this.set_size 		=3D =
_os3g_set_size;=0D	this.set_sort_field 	=3D _os3g_set_sort_field;=0D	=
this.set_sortable	=3D _os3g_set_sortable;=0D	this.set_style		=3D =
_os3g_set_style;=0D	this.show_row_num	=3D _os3g_show_row_num;=0D	=
this.sort 		=3D _os3g_sort;=0D}=0D
------=_NextPart_000_0000_01D21595.410FA360--
