<html>
<head>
<title>Create & update table</title>
<!-- ---------------- W4SPIDK --------------- -->
<%@ taglib uri="http://cav.co.il/taglibs/mumps" prefix="m" %>
<m:session namespace="USER">
<m:exec expr='S EEFROM="W3SPIDK" D ^%W1ARG,^W3CSS' />

<script>

<m:exec expr='D PARSE^%W1JS' />

<%@ include file="w1proc.jsp" %>

function ColJ()
{
 return Tbl().rows[0].cells.length
}

function KeySize()
{
 return "<m:out expr='$G(@$$^W4MAIN("TMPARG")@("KEYSIZE"),5)' />"
}


function Len(j)
{
 var prm="w4spidk.Len;"+j
 var a=<m:serverExec expr='S PRM=$$^W4PRMSRV(PRM) W +$$LEN^W4SPIDK(PRM)' varName='PRM' varValue='prm' />
 return a
}

function Tbl()
{
 return GetId("Tbl")
}

function InsertRow(cd)
{
 //alert("cd="+cd)
 var tb=Tbl()
 var sh=0;
 for (var i=1; i<tb.rows.length; i++)
 {
  if (cd===GetCdI(i)) { sh=i; break; }
 }
 //alert("sh="+sh)
 if (sh==0 ) return;

 if ( tb.rows[sh] === null ) return;

 var nm=document.getElementById("name"+cd)
 if (nm===null || nm=== undefined ) return ;
 var nmv=nm.value
 <m:if expr='($$VL^W4SPIDK("SCR")="SHULHAN")=0' >
 if (nmv.length<1) 
 { MsgA("FILLDATA"); nm.focus();return; }
 </m:if>

 InsRowSh(sh+1)
}


function InsRowSh(sh1,sm)
{ 
 var tb=Tbl()
 var colj=ColJ()
 var tr=tb.insertRow(sh1)
 var td;
 for (var j=0; j<colj; j++)
 { tr.insertCell(0) ; }

 for (var j=0; j<colj; j++)
 { tr.cells[j].innerHTML="&nbsp;" }

 var prm="w4spidk.InsRowSh"
 var a=<m:serverExec expr='W $$NEWCOD^W4SPIDK' varName='PRM' varValue='prm' />
 tr.cells[1].innerHTML='<input type="text" id="newcd" size="'+KeySize()+'" maxlength="'+KeySize()+'" value="'+a + '" onClick="this.select()" />' ;

 a='<input type="button" name="submcd" id="submcd" style="<m:out expr='$$FONTFM^W3CSS' />;color:green" value="<m:out expr='$$^%W1DICT("GO")' />" onClick="NewLine('+sh1+')" />'

 <m:if expr='$$D^W4SPIDK' >
  a=a+'&nbsp;<input type="button" name="delcd" id="delcd" style="<m:out expr='$$FONTFM^W3CSS' />;color:red" value="<m:out expr='$$^%W1DICT("DELETE")' />" onClick="DelRow('+sh1+')" />'
 </m:if>

 //alert("a="+a)
 tr.cells[2].innerHTML=a
 var newcd=document.getElementById("newcd")
 if (newcd !== null && newcd !== undefined)
  { newcd.focus(); }
}

function NewCode(sh1)
{
 var tb=Tbl()
 var tr=tb.rows[sh1]
 var a="w4spidk.NewCode"
 GetId("newcd").value=<m:serverExec expr='W $$NEWCOD^W4SPIDK' varName='A' varValue='a' /> 
}

function DelRow(sh1)
{
 var tb=Tbl()
 tb.deleteRow(sh1)
} 

var newname

function NewLine(sh1)
{
 var tb=Tbl()
 var colj=ColJ()
 var tr=tb.rows[sh1]
 var cd=GetVl("newcd")
 var prm="w4spidk.NewLine;"+cd
 var a=<m:serverExec expr='S CD=$$^W4PRMSRV(PRM) W $$D^W4SPIDK(CD)' varName='PRM' varValue='prm' />

 if (a>0) { MsgA("DATAEXIST"); return ; }

 for (var i=1; i< tb.rows.length; i++)
 {
  if (cd === GetCdI(i) && i !== sh1)
    { MsgA("DATAEXIST"); return ; }
 }

 //alert("cd="+cd+"  sh1="+sh1)
 tr.cells[0].style.textAlign="center"
 var a='<span style="font-size:<m:out expr='$$^W3FSZ' />;color:green;cursor:pointer" onClick="InsertRow(\''+cd+'\')" > + </span><br /><span style="color:red;cursor:pointer;font-size:<m:out expr='$$^W3FSZ(18)' />" onClick="DeleteRow(\''+cd+'\')" > - </span>'
 tr.cells[0].innerHTML=a
 tr.cells[1].style.textAlign="right"
 tr.cells[1].innerHTML='&nbsp;'+cd+'&nbsp;'
 tr.cells[2].style.textAlign="center"
 tr.cells[2].innerHTML='<input id="name'+cd+'" type="text" size="'+Len(0)+'" maxlength="'+Len(0)+'" onChange="OnChange('+cd+')" />'

 for (var j=3; j< colj-1 ; j++ )
 { 
  tr.cells[j].style.textAlign="center"
  prm="w4spidk.NewLine;"+cd+";"+(j-2)
  a=<m:serverExec expr='S PRM=$$^W4PRMSRV(PRM) W $$INPUT^W4SPIDK(PRM)' varName='PRM' varValue='prm' />
  tr.cells[j].innerHTML=a
 } 

 tr.cells[colj-1].style.textAlign="center"
 tr.cells[colj-1].innerHTML='<input name="chn" id="chn'+cd+'" type="checkbox" disabled="disabled" checked="checked" />'

 newname=document.getElementById("name"+cd)
 if (newname !== null && newname !== undefined)
  { setTimeout("newname.focus()",300); }
}

function DeleteRow(cd)
{
 var tb=Tbl()
 var sh=0;
 for (var i=1; i<tb.rows.length; i++)
 {
  if (cd===GetCdI(i)) { sh=i; break; }
 }
 //alert("sh="+sh)
 if (sh==0 ) return;
 if ( tb.rows[sh] === null ) return;
 var bgclr=Parse("<m:out expr='$$BGTB^W3CSS($$COLOR^W3PRM)' />",":",2,2)
 for ( var j=1; j< tb.rows[sh].cells.length ; j++ )
 { if ( tb.rows[sh].cells[j].style.backgroundColor=="red" )
    {
      tb.rows[sh].cells[j].style.backgroundColor=bgclr
    }
   else { tb.rows[sh].cells[j].style.backgroundColor="red" ; OnChange(GetCdI(sh)); }
 }
 cd=cd+""
 var a=<m:serverExec expr='D DELROW^W4SPIDK(CD) W 1' varName='CD' varValue='cd' />
} 

function OnChange(cd)
{
 var chn=document.getElementById("chn"+cd)
 if (chn==null || chn== undefined ) return;
 chn.checked=true
}

function GetCdI(i)
{ 
 var tb=Tbl()
 if (tb===null || tb===undefined) return -1
 var cdel=tb.rows[i].cells[1];
 if (cdel===null || cdel===undefined) return -1;
 var cd=cdel.innerHTML;
 if ( cd.indexOf("&nbsp;")>-1 ) { cd=cd.replace(/\&nbsp\;/g,"") ;} 
 return cd
}

function OnLoad()
{
 SetScrollY()
}

</script>
</head>

<body onLoad="OnLoad()">
<m:exec expr='D ^W4SPIDK' />
<m:if expr='$$D^W4SPIDK=0' >
 <script>
  setTimeout('InsRowSh(1,5)',1000)
 </script>
</m:if>
</m:session>
</body>
</html>





