# ---------------------------------------------------------------------------
#     GRDLIB.PL
#
#      Ver: 8_4_8
# ---------------------------------------------------------------------------
# SSI Web - Web Surveying System
# Copyright Sawtooth Software, Inc. 1998-2015. All rights reserved.
# Orem, UT  USA  (801) 477-4700
#
# Any modification of this script will be considered violation of
# copyright (with the exception of the first line which can be
# modified to reflect the correct path to the Perl interpreter)
#
# Any use of this script or its code for purposes outside of
# the systems created by Sawtooth Software is prohibited.
# ---------------------------------------------------------------------------
 use strict; package grdlib8_4_8; our @ISA = qw(questionlib8_4_8); sub new { my ($__dub) = @_; $__dub->{'_bmc'} = "grid"; bless($__dub); return $__dub; } sub _bls { my ($__duv) = @_; $__duv->SUPER::_bls(); my $__duc = authlib8_4_8::_bss($__duv->{'_bkt'}->{'_ajl'}); my $__dud = authlib8_4_8::_bss($__duv->{'_bkt'}->{'_alu'}); my @__due = (); my $__duf = $__duv->{'_bkt'}; my $__dug = $__duf->{'_any'}; my $__duh = $__duf->{'_afl'}; my $__dui = 0; my $__duj = 0; my $__duk = 0; my $__dul = ""; my $__dum = ""; my $__dun = ""; my $__duo = 0; my $__dup = 0; if($__duh eq "rows") { $__dup = 1; } if (($__duc == 0 || @{$__duc} == 0) || ($__dud == 0 || @{$__dud} == 0)) { $__duv->{'_bky'} = 1; } else { $__duf->{'_cdv'} = $__duc; $__duf->{'_cdw'} = $__dud; } if ($authlib8_4_8::_bzy == 0 && (not exists $__duv->{'_bky'})) { if ($__dup) { if ($__dud && @{$__dud} == 1) { my $__duq = authlib8_4_8::_bsr($__duf->{'_alu'}); if ($__duq && exists ($__duq->{'_gt'})) { $__duj = $__dud->[0]; $__duk = $__duc; $__duo = $__duv->_cds($__dud->[0], $__duc); $__dul = "_c"; $__dum = "_r"; } } } else { if ($__duc && @{$__duc} == 1) { my $__duq = authlib8_4_8::_bsr($__duf->{'_ajl'}); if ($__duq && exists ($__duq->{'_gt'})) { $__duj = $__duc->[0]; $__duk = $__dud; $__duo = $__duv->_cds($__duc->[0], $__dud); $__dul = "_r"; $__dum = "_c"; } } } if ($__duo) { if ($__duj->{'_gi'}->{'_bft'}) { push(@__due, [$__duv->{'_bgt'} . $__dul . $__duj->{'_bcm'} . "_other", $__duj->{'_gi'}->{'_bft'}]); } foreach my $__dur (@{$__duk}) { if ($__dur->{'_gi'}->{'_bft'}) { push(@__due, [$__duv->{'_bgt'} . $__dum . $__dur->{'_bcm'} . "_other", $__dur->{'_gi'}->{'_bft'}]); } my $__dui = $__dug->[$__dur->{'_bcm'} - 1]; $__dun = ref($__dui); if ($__dun eq "RadioVar") { push (@__due, [$__dui->{'_bgt'}, $__duj->{'_bcm'}]); } elsif ($__dun eq "CheckVar" || $__dun eq "RankVar") { if ($__dup) { push(@__due, [$__dui->{'_bgt'} . "_c" . $__duj->{'_bcm'}, 1]); } elsif ($__dui->{'_bgt'} =~ m/(.+?)_(.+)$/mo) { my $__dus = $1; my $__dut = $2; push (@__due, [$__dus . "_r" . $__duj->{'_bcm'} . "_" . $__dut, 1]); } } elsif ($__dun eq "ComboVar") { my $__duu = authlib8_4_8::_bss($__dui->{'_bcs'}); if ($__duu) { if ($__dup) { push(@__due, [$__dui->{'_bgt'} . "_c" . $__duj->{'_bcm'}, $__duu->[0]->{'_bcm'}]); } elsif ($__dui->{'_bgt'} =~ m/(.+?)_(.+)$/mo) { my $__dus = $1; my $__dut = $2; push (@__due, [$__dus . "_r" . $__duj->{'_bcm'} . "_" . $__dut, $__duu->[0]->{'_bcm'}]); } } } elsif ($__dun eq "ConsumVar") { if ($__dup) { push(@__due, [$__dui->{'_bgt'} . "_c" . $__duj->{'_bcm'}, $__dui->{'_akj'}]); } elsif ($__dui->{'_bgt'} =~ m/(.+?)_(.+)$/mo) { my $__dus = $1; my $__dut = $2; push (@__due, [$__dus . "_r" . $__duj->{'_bcm'} . "_" . $__dut, $__dui->{'_akj'}]); } } } $__duv->{'_bla'} = \@__due; } } } sub _cds { my ($__dve, $__dvf, $__dvg) = @_; my $__duw = $__dve->{'_bkt'}->{'_any'}; my $__dux = 0; my $__duy = ""; my %__duz = ("RadioVar" => 1, "CheckVar" => 1, "ComboVar" => 1, "ConsumVar" => 1, "RankVar" => 1); my $__dva = 1; foreach my $__dvb (@{$__dvg}) { if ($__dvb->{'_gi'}) { unless ($__dvb->{'_gi'}->{'_bft'}) { $__dva = 0; } } } if ($__dvf->{'_gi'}) { unless ($__dvf->{'_gi'}->{'_bft'}) { $__dva = 0; } } if ($__dva) { foreach $__dux (@{$__duw}) { $__duy = ref($__dux); if ($__duz{$__duy}) { if ($__dux->{'_bdq'} || $__dux->{'_bgp'}) { if ($__duy eq "ComboVar" || $__dux->{'_bgu'} eq "combo") { my $__dvc = authlib8_4_8::_bss($__dux->{'_bcs'}); my $__dvd = authlib8_4_8::_bsr($__dux->{'_bcs'}); unless ($__dvc && @{$__dvc} == 1 && $__dvd && exists($__dvd->{'_gt'})) { $__dva = 0; last; } } } else { $__dva = 0; last; } } else { $__dva = 0; last; } } } return $__dva; } sub _blt { my ($__dvk) = @_; my $__dvh = ""; my $__dvi = ""; my $__dvj = $__dvk->{'_bkt'}; if (exists $__dvj->{'_aih'}) { $__dvi = ciwlib8_4_8::_bkb($__dvj->{'_aih'}, 0, 0); if ($__dvi) { $__dvh .= "\n#" . $__dvk->{'_bgt'} . "_div .grid_header_cell {" . $__dvi . "}\n"; } } if (exists $__dvj->{'_aim'}) { $__dvi = ciwlib8_4_8::_bkb($__dvj->{'_aim'}, 0, 0); if ($__dvi) { $__dvh .= "\n#" . $__dvk->{'_bgt'} . "_div .grid_footer_cell {" . $__dvi . "}\n"; } } if (exists $__dvj->{'_aiw'}) { $__dvi = ciwlib8_4_8::_bkb($__dvj->{'_aiw'}, 0, 0); if ($__dvi) { $__dvh .= "\n#" . $__dvk->{'_bgt'} . "_div .corner_label_cell {" . $__dvi . "}\n"; } } if (exists $__dvj->{'_ajb'}->{'_ajw'}) { $__dvi = ciwlib8_4_8::_bkb($__dvj->{'_ajb'}, 0, 0); if ($__dvi || exists $__dvj->{'_ajb'}->{'_ajv'}) { $__dvh .= "\n#" . $__dvk->{'_bgt'} . "_div .row_label_cell {" . $__dvi; if (exists $__dvj->{'_ajb'}->{'_ajv'}) { $__dvh .= " vertical-align: " . $__dvj->{'_ajb'}->{'_ajv'} . ";"; } $__dvh .= "}\n"; } if (exists $__dvj->{'_ajb'}->{'_bfu'}) { if (exists $__dvj->{'_ajb'}->{'_bfu'}->{'_bfw'}) { $__dvh .= "\n#" . $__dvk->{'_bgt'} . "_div .row_label_cell textarea {" . ciwlib8_4_8::_bkc($__dvj->{'_ajb'}->{'_bfu'}->{'_bfw'}) . "}\n"; } } } if (exists $__dvj->{'_ajq'}->{'_ajw'}) { $__dvi = ciwlib8_4_8::_bkb($__dvj->{'_ajq'}, 0, 0); if ($__dvi || exists $__dvj->{'_ajq'}->{'_ajv'}) { $__dvh .= "\n#" . $__dvk->{'_bgt'} . "_div .col_label_cell {" . $__dvi; if (exists $__dvj->{'_ajq'}->{'_ajv'}) { $__dvh .= " vertical-align: " . $__dvj->{'_ajq'}->{'_ajv'} . ";"; } $__dvh .= "}\n"; } if (exists $__dvj->{'_ajq'}->{'_bfu'}) { if (exists $__dvj->{'_ajq'}->{'_bfu'}->{'_bfw'}) { $__dvh .= "\n#" . $__dvk->{'_bgt'} . "_div .col_label_cell textarea {" . ciwlib8_4_8::_bkc($__dvj->{'_ajq'}->{'_bfu'}->{'_bfw'}) . "}\n"; } } } if (exists $__dvj->{'_bef'}) { if (exists $__dvj->{'_bef'}->{'_beg'}) { $__dvh .= "\n#" . $__dvk->{'_bgt'} . "_div .alt_color1 {background-color: #" . $__dvj->{'_bef'}->{'_beg'} . ";}\n"; } if (exists $__dvj->{'_bef'}->{'_beh'}) { $__dvh .= "\n#" . $__dvk->{'_bgt'} . "_div .alt_color2 {background-color: #" . $__dvj->{'_bef'}->{'_beh'} . ";}\n"; } } if (exists $__dvj->{'_bdk'}) { $__dvh .= "\n#" . $__dvk->{'_bgt'} . "_div .inner_table td {border-width: " . $__dvj->{'_bdk'} . "px; border-style: solid;}\n"; } if (exists $__dvj->{'_bdl'}) { $__dvh .= "\n#" . $__dvk->{'_bgt'} . "_div .inner_table .row_label_cell {padding: " . $__dvj->{'_bdl'} . "px;}\n"; $__dvh .= "\n#" . $__dvk->{'_bgt'} . "_div .inner_table .col_label_cell {padding: " . $__dvj->{'_bdl'} . "px;}\n"; $__dvh .= "\n#" . $__dvk->{'_bgt'} . "_div .inner_table .corner_label_cell {padding: " . $__dvj->{'_bdl'} . "px;}\n"; $__dvh .= "\n#" . $__dvk->{'_bgt'} . "_div .inner_table .input_cell {padding: " . $__dvj->{'_bdl'} . "px;}\n"; } if (exists $__dvj->{'_bfb'}) { $__dvh .= "\n#" . $__dvk->{'_bgt'} . "_div .inner_table {" . ciwlib8_4_8::_bkc($__dvj->{'_bfb'}) . "}\n"; } return $__dvh; } sub _bmf { my ($__dzu, $__dzv, $__dzw, $__dzx, $__dzy) = @_; my $__dvl = $__dzu->{'_bgt'}; my $__dvm = $__dzu->{'_bkt'}; my $__dvn = $__dvm->{'_afk'}; my $__dvo = $__dvm->{'_afl'}; my $__dvp = 0; my $__dvq = ""; my $__dvr = $__dvm->{'_any'}; my $__dvs = 0; my $__dvt = ""; my $__dvu = ""; my $__dvv = 0; my $__dvw = 0; my @__dvx = (); my %__dvy = (); my $__dvz = ""; if (exists $__dvm->{'_aih'}) { $__dvz = $__dvm->{'_aih'}; } my $__dwa = ""; if (exists $__dvm->{'_aim'}) { $__dwa = $__dvm->{'_aim'}; } my $__dwb = $__dvm->{'_cdv'}; my $__dwc = @{$__dwb}; my $__dwd = $__dvm->{'_ajb'}->{'_aru'}; my $__dwe = 0; if (exists($__dvm->{'_ajb'}->{'_aju'})) { $__dwe = 1; } my $__dwf = 0; if (exists($__dvm->{'_ajb'}->{'_bdr'})) { $__dwf = 1; } my $__dwg = 0; if (exists($__dvm->{'_ajq'}->{'_bdr'})) { $__dwg = 1; } my $__dwh = 0; if (exists($__dvm->{'_ajb'}->{'_ajw'})) { $__dwh = 1; } my $__dwi = $__dvm->{'_ajb'}->{'_ajv'}; my $__dwj = 0; if ($__dvo eq "rows") { $__dwj = $__dvm->{'_ajb'}->{'_ajl'}; } my $__dwk = ""; my $__dwl = ""; my @__dwm = (); my $__dwn = $__dvm->{'_cdw'}; my $__dwo = @{$__dwn}; my $__dwp = $__dvm->{'_ajq'}->{'_aru'}; my $__dwq = 0; if (exists($__dvm->{'_ajq'}->{'_aju'})) { $__dwq = 1; } my $__dwr = $__dvm->{'_ajq'}->{'randmin'}; my $__dws = $__dvm->{'_ajq'}->{'randmax'}; my $__dwt = 0; if (exists($__dvm->{'_ajq'}->{'_ajw'})) { $__dwt = 1; } my $__dwu = 0; if ($__dvo eq "cols") { $__dwu = $__dvm->{'_ajq'}->{'_alu'}; } my $__dwv = ""; my $__dww = ""; my $__dwx = ""; my @__dwy = (); my $__dwz = ""; if (exists $__dvm->{'_aiw'}) { $__dwz = $__dvm->{'_aiw'}; } my $__dxa = ""; my $__dxb = ""; my $__dxc = 0; my $__dxd = 0; my $__dxe = 0; my $__dxf = 0; my $__dxg = ""; my $__dxh = ""; my $__dxi = ""; my $__dxj = ""; my $__dxk = 0; my $__dxl = 0; my $__dxm = 0; my $__dxn = 0; my @__dxo = (); my $__dxp = 0; my $__dxq = 0; my $__dxr = ""; my %__dxs = (); my $__dxt = 0; my $__dxu = 0; my %__dxv = (); my $__dxw = 0; my $__dxx = 0; my $__dxy = 0; my $__dxz = 1; my $__dya = 0; my $__dyb = 0; my $__dyc = ""; my $__dyd = ""; my $__dye = ""; my $__dyf = 0; my @__dyg = (); my @__dyh = (); $__dxp = _cdt($__dwf, $__dwb, $__dzw, $__dzv, $__dwc); $__dxm = _cdt($__dwg, $__dwn, $__dzw, ($__dzv * 53), $__dwo); my $__dyi = 0; if (exists $__dvm->{'_ajb'}->{'_ajs'}) { $__dyi = $__dvm->{'_ajb'}->{'_ajs'}; if ($__dyi) { $__dyf = int($__dwo / $__dyi); $__dwo += $__dyf; $__dyf++; } } my $__dyj = 0; if (exists $__dvm->{'_ajq'}->{'_ajs'}) { $__dyj = $__dvm->{'_ajq'}->{'_ajs'}; if ($__dyj) { $__dwc += int($__dwc / $__dyj); } } if (exists $__dvm->{'_akv'} && ($__dzx || $authlib8_4_8::_bzy)) { if ($__dvo eq "rows") { if (_cdu($__dvr, $__dwb)) { $__dwo++; $__dxu = 1; } } else { if (_cdu($__dvr, $__dwn)) { $__dwc++; $__dxt = 1; } } } my $__dyk = 0; my $__dyl = 0; my $__dym = 100; my $__dyn = 0; my $__dyo = $__dwo; if ($__dwh) { if (exists $__dvm->{'_bdj'}) { $__dyk = $__dvm->{'_bdj'}; } else { $__dyk = 20; } $__dym -= $__dyk; if ($__dyf) { $__dyk = int($__dyk / $__dyf); $__dyo -= ($__dyf - 1); } } $__dyl = int($__dym / $__dyo); $__dxl = $__dwo; $__dxr .= "<table class=\"inner_table\" width=\"100%\""; if ($__dvm->{'_afq'}) { $__dxr .= " style=\"width: " . $__dvm->{'_afq'} . "px\""; } $__dxr .= ">"; if ($__dvz) { $__dxr .= "<tr>"; if ($__dwh) { $__dxb .= "<td width=\"" . $__dyk . "%\">&nbsp;</td>"; } if ($__dwd eq "left") { $__dxr .= $__dxb; } $__dxr .= "<td class=\"grid_header_cell\" width=\"" . $__dyl . "%\" colspan=\"" . $__dxl . "\">\n"; $__dxr .= "<div class=\"grid_header\">"; $__dxr .= $__dvz->{'_bft'}; $__dxr .= "</div></td>"; if ($__dwd eq "right") { $__dxr .= $__dxb; } $__dxr .= "</tr>"; $__dxb = ""; } my $__dyp = 0; if ($__dwt) { $__dwv .= "<tr class=\"column_header_row\">"; if ($__dwh) { $__dxa .= "<td class=\"corner_label_cell "; if ($__dvn eq "rows") { if ($__dwq && $__dwe) { if ((($__dwc % 2) == 0) && $__dwp eq "bottom") { $__dxa .= " alt_color2"; } else { $__dxa .= " alt_color1"; } } } else { if ($__dwe && $__dwq) { if ((($__dwo & 1) == 0) && $__dwd eq "right") { $__dxa .= " alt_color1"; } else { $__dxa .= " alt_color2"; } } } $__dxa .= "\" width=\"" . $__dyk . "%\">"; if ($__dwz) { $__dxa .= "<div class=\"corner_label_text\">" . $__dwz->{'_bft'} . "</div>"; } else { $__dxa .= "&nbsp;"; } $__dxa .= "</td>"; if ($__dwd eq "left") { $__dwv .= $__dxa; } } $__dyp = 0; my $__dyq = 0; for ($__dxc = 0; $__dxc < $__dwo; $__dxc++) { if (($__dyi > 0) && ($__dyq == $__dyi)) { if ($__dxc < $__dwo - 1) { $__dwv .= $__dxa; } $__dyq = 0; next; } else { $__dyq++; } $__dya = $__dxm->[$__dyp]; $__dyp++; $__dwv .= "<td class=\"col_label_cell"; if ($__dwq) { if ($__dvn eq "rows") { if ((($__dwc & 1) == 0) && $__dwp eq "bottom") { $__dwv .= " alt_color2"; } else { $__dwv .= " alt_color1"; } } else { if ($__dxc & 1) { $__dwv .= " alt_color2"; } else { $__dwv .= " alt_color1"; } } } $__dwv .= " grid_c" . $__dwn->[$__dya]->{'_bcm'}; $__dwv .= " " . $__dvl . "_c" . $__dwn->[$__dya]->{'_bcm'}; $__dwv .= "\" width=\"" . $__dyl . "%\"><div class=\"grid_options\">\n"; if ($__dxu && (($__dxc + 1) == $__dwo)) { $__dww = $__dvm->{'_akv'}; } else { $__dww = $__dwn->[$__dya]->{'_bft'}; if (exists($__dwn->[$__dya]->{'_gi'})) { $__dyb = $__dwn->[$__dya]->{'_gi'}; $__dyc = $__dvl . "_c" . $__dwn->[$__dya]->{'_bcm'} . "_other"; if (exists($__dyb->{'_bft'})) { $__dww .= "<input type=\"hidden\" name=\"" . $__dyc . "\" value=\"" . $__dyb->{'_bft'} . "\">"; } else { $__dvp = 1; $__dww .= ciwlib8_4_8::_bhz($__dyc, $__dyb, $__dvm, ""); } push(@__dyh, $__dya); } if(exists($__dwn->[$__dya]->{'_axu'})) { if ($__dvo eq "rows") { push @__dvx, $__dwn->[$__dya]->{'_bcm'}; } } } if ($__dww eq "") { $__dww = "&nbsp;"; } $__dwv .= $__dww; $__dwv .= "</div></td>"; } if ($__dwd eq "right") { $__dwv .= $__dxa; } $__dwv .= "</tr>"; } if ($__dwp eq "top") { $__dxr .= $__dwv; } if ($__dyj) { $__dye = $__dwv; $__dye =~ s/<input(.*?)_other(.*?)>//ig; } my $__dyr = 0; my $__dys = 0; my $__dyt = 0; my $__dyq = 0; my $__dyu = 0; my $__dyv = 0; for ($__dxc = 0; $__dxc < $__dwc; $__dxc++) { if (($__dyj > 0) && ($__dys == $__dyj)) { if ($__dxc < $__dwc - 1) { $__dxr .= $__dye; } $__dys = 0; next; } else { $__dys++; } if ($__dxt && (($__dxc + 1) == $__dwc)) { $__dyt = 1; } else { $__dya = $__dxp->[$__dyr]; $__dyr++; $__dxq = $__dwb->[$__dya]->{'_bcm'}; push @__dwm, $__dxq; $__dxq -= 1; } $__dxr .= "<tr id=\"" . $__dvl . "_r" . ($__dxq + 1) . "_row\" class=\"grid_row" . ($__dxq + 1) . "\">"; if ($__dwh) { $__dwk = "<td class=\"row_label_cell"; if ($__dwe) { if ($__dvn eq "rows") { if ($__dxc % 2) { $__dwk .= " alt_color1"; } else { $__dwk .= " alt_color2"; } } else { if (($__dwd eq "right") && (($__dwo & 1) == 0)) { $__dwk .= " alt_color1"; } else { $__dwk .= " alt_color2"; } } } $__dwk .= " grid_r" . ($__dxq + 1) . " " . $__dvl . "_r" . ($__dxq + 1); $__dwk .= "\" width=\"" . $__dyk . "%\"><div class=\"grid_options\">\n"; if ($__dyt) { $__dww = $__dvm->{'_akv'}; } else { $__dww = $__dwb->[$__dya]->{'_bft'}; if (exists($__dwb->[$__dya]->{'_gi'})) { $__dyb = $__dwb->[$__dya]->{'_gi'}; $__dyc = $__dvl . "_r" . $__dwb->[$__dya]->{'_bcm'} . "_other"; if (exists($__dyb->{'_bft'})) { $__dww .= "<input type=\"hidden\" name=\"" . $__dyc . "\" value=\"" . $__dyb->{'_bft'} . "\">"; } else { $__dvp = 1; $__dww .= ciwlib8_4_8::_bhz($__dyc, $__dyb, $__dvm, ""); } push(@__dyg, $__dya); } if(exists($__dwb->[$__dya]->{'_axu'})) { if ($__dvo eq "cols") { push @__dvx, $__dwb->[$__dya]->{'_bcm'}; } } } if ($__dww eq "") { $__dww = "&nbsp;"; } $__dwk .= $__dww; $__dwk .= "</div></td>"; } if ($__dwd eq "left") { $__dxr .= $__dwk; } if ($__dyi) { $__dyd = $__dwk; $__dyd =~ s/<input(.*?)_other(.*?)>//ig; } $__dyu = 0; $__dyq = 0; $__dyp = 0; for ($__dxd = 0; $__dxd < $__dwo; $__dxd++) { if (($__dyi > 0) && ($__dyq == $__dyi)) { if ($__dxd < $__dwo - 1) { $__dxr .= $__dyd; } $__dyq = 0; next; } else { $__dyq++; } if ($__dxu && (($__dxd + 1) == $__dwo)) { $__dyu = 1; } else { $__dya = $__dxm->[$__dyp]; $__dyp++; $__dxn = $__dwn->[$__dya]->{'_bcm'}; if ($__dxc == 0) { push @__dwy, $__dxn; } $__dxn -= 1; } if ($__dvo eq "rows") { $__dxf = $__dwj->[$__dxq]; $__dvs = $__dvr->[$__dxq]; $__dvu = $__dvs->{'_bgt'}; $__dvv = $__dxn + 1; $__dvu = $__dvu . "_c" . $__dvv; } else { $__dxf = $__dwu->[$__dxn]; $__dvs = $__dvr->[$__dxn]; $__dvu = $__dvs->{'_bgt'}; $__dvv = $__dxq + 1; $__dvu =~ s/(_c.*)$/_r$__dvv$1/; } $__dxg = ""; $__dxh = "left"; $__dxi = ""; $__dxj = ""; if (exists $__dxf->{'_akb'}) { $__dxg = "<span class=\"grid_cell_text\">" . $__dxf->{'_akb'} . "</span>"; } if (exists $__dxf->{'_akc'}) { $__dxh = $__dxf->{'_akc'}; } if (exists $__dxf->{'_akd'}) { $__dxi = $__dxf->{'_akd'}; } if (exists $__dxf->{'_ake'}) { $__dxj = $__dxf->{'_ake'}; } $__dxr .= "<td class=\"input_cell"; $__dvt = ref($__dvs); if ($__dvt eq "RadioVar" || $__dvt eq "CheckVar") { $__dxr .= " clickable"; } if ($__dvn eq "rows") { if ($__dxc & 1) { $__dxr .= " alt_color1"; } else { $__dxr .= " alt_color2"; } } else { if ($__dxd & 1) { $__dxr .= " alt_color2"; } else { $__dxr .= " alt_color1"; } } $__dxr .= " grid_r" . ($__dxq + 1); $__dxr .= " grid_c" . ($__dxn + 1); if ($__dvo eq "rows") { $__dxr .= " " . $__dvl . "_r" . ($__dxq + 1); } elsif ($__dvo eq "cols") { $__dxr .= " " . $__dvl . "_c" . ($__dxn + 1); } if ($__dxg) { $__dxw = 1; } else { $__dxw = 0; } if ($__dxw && ($__dyt || $__dyu)) { if (($__dvt ne "ConsumVar") && ($__dvt ne "NumericVar")) { $__dxw = 0; } } $__dxr .= "\" width=\"" . $__dyl . "%\" nowrap"; if ($__dxi || $__dxj) { $__dxr .= " style=\""; if ($__dxi) { $__dxr .= "text-align: " . $__dxi . ";"; } if ($__dxj) { $__dxr .= "vertical-align: " . $__dxj . ";"; } if ($authlib8_4_8::_bzy && exists $authlib8_4_8::_bzk->{'_ag'}) { if ($__dxi || $__dxj) { $__dxr .= "background-position: "; if ($__dxi) { $__dxr .= $__dxi; } else { $__dxr .= "center"; } if ($__dxj) { $__dxr .= " " . $__dxj; } else { $__dxr .= " center"; } $__dxr .= ";"; } } $__dxr .= "\""; } $__dxr .= ">"; if (exists $authlib8_4_8::_bzi{"hid_test_mode"}) { if (!$__dyt && !$__dyu) { if ($__dvt ne "RadioVar" && $__dvt ne "CheckVar") { $__dxr .= ciwlib8_4_8::_bjv($__dvu, 0, 1); } } } if ($__dxw && exists $authlib8_4_8::_bzk->{'_ag'}) { $__dxr .= "<table class=\"grid_cell_label_table\""; if ($__dxi) { $__dxr .= " style=\"" . ciwlib8_4_8::_bkc($__dxi) . "\""; } $__dxr .= "><tr>"; } if (($__dxh eq "left") && $__dxw) { if (exists $authlib8_4_8::_bzk->{'_ag'}) { $__dxr .= "<td>" . $__dxg . "</td>"; } else { $__dxr .= $__dxg; } } if ($__dxw && exists $authlib8_4_8::_bzk->{'_ag'}) { $__dxr .= "<td class=\"input_cell\">"; } if ($__dyt || $__dyu) { if ($__dvt eq "ConsumVar" || $__dvt eq "NumericVar") { my $__dyw = $__dvu; if ($__dyu) { $__dyw =~ s/_c\d+/_c\*/; $__dvu =~ s/_c\d+/_c_total/; $__dyv = \@__dwy; $__dxv{$__dxn + 1} = $__dxn + 1; $__dxs{$__dyw} = $__dyw; } else { $__dyw =~ s/_r\d+/_r\*/; $__dvu =~ s/_r\d+/_r_total/; $__dyv = \@__dwm; $__dxs{$__dyw} = $__dyw; } $__dvw = $__dvs->{'_aus'}; $__dxr .= ciwlib8_4_8::_bjb($__dvu, $__dvw); if (exists $__dvm->{'_bku'}) { my $__dyx = $__dvm->{'_bku'}->{$__dvu}; $__dxr =~ s/(id\s*=\s*"$__dvu")/$1 value="$__dyx"/mi; } } else { $__dxr .= "&nbsp;"; } } elsif (($__dvt eq "ComboVar") || (($__dvt eq "RankVar") && ($__dvs->{'_bgu'} eq "combo"))) { my $__dyy = 0; my $__dyz = authlib8_4_8::_bss($__dvs->{'_bcs'}); my $__dza = 0; my $__dzb = 0; if($__dyz) { $__dzb = @{$__dyz}; } my $__dzc = 0; if (($__dvt eq "RankVar") && ($__dvs->{'_bgu'} eq "combo")) { my $__dzd = 0; if ($__dvo eq "rows") { $__dzd = @{$__dwn}; } else { $__dzd = @{$__dwb}; } if (exists $__dvs->{'_aop'}) { authlib8_4_8::_btm($__dvs); if ($__dvs->{'_aop'} < $__dzd) { $__dzd = $__dvs->{'_aop'}; } } if ($__dzb > $__dzd) { @{$__dyz} = @{$__dyz}[0 .. ($__dzd - 1)]; $__dzb = @{$__dyz}; } } if (exists($__dvs->{'_bdr'})) { $__dzc = 1; } my $__dze = 0; my $__dzf = ""; if ($__dzc) { my $__dzg = 0; my $__dzh = 1; my $__dzi = 0; $__dzi = authlib8_4_8::_bsg($__dyz); if ($__dvo eq "rows") { $__dzg = $__dxq; } else { $__dzg = $__dxn; } $__dze = authlib8_4_8::_bsh($__dzw, $__dzb, (($__dzv + $__dzg) * 17), $__dzh, $__dzi); } else { @__dxo = () x $__dzb; for ($__dxe = 0; $__dxe < $__dzb; $__dxe++) { $__dxo[$__dxe] = $__dxe; } $__dze = \@__dxo; } $__dxr .= "<div id=\"" . $__dvu . "_error\">\n"; $__dxr .= "<select name=\"" . $__dvu . "\" id=\"" . $__dvu . "\">"; $__dxr .= "<option value=\"\">"; if (exists($__dvs->{'_bba'})) { $__dxr .= $__dvs->{'_bba'}; } $__dxr .= "</option>"; for ($__dxe = 0; $__dxe < $__dzb; $__dxe++) { $__dyy = $__dze->[$__dxe]; $__dza = $__dyz->[$__dyy]; if (exists ($__dza->{'_gi'})) { if (exists($__dza->{'_gi'}->{'_bft'})) { $__dzf .= "\n<input type=\"hidden\" name=\"" . $__dvu . "_" . $__dza->{'_bcm'} . "_other" . "\" value=\"" . $__dza->{'_gi'}->{'_bft'} . "\">\n"; } } $__dxr .= "<option value=\"" . $__dza->{'_bcm'} . "\""; if (exists $__dvm->{'_bku'}) { if ($__dvm->{'_bku'}->{$__dvu} == $__dza->{'_bcm'}) { $__dxr .= " selected"; } } $__dxr .= " id=\"" . $__dvu . "_" . $__dza->{'_bcm'} . "\">"; $__dxr .= $__dza->{'_bft'}; $__dxr .= "</option>"; } $__dxr .= "</select></div>\n" . $__dzf . "\n"; } elsif ($__dvt eq "OpenEndVar") { if ($__dvs->{'_bgu'} eq "free") { $__dxr .= "<textarea name=\"" . $__dvu . "\" wrap=\"virtual\" id=\"" . $__dvu . "\""; if (exists $__dvs->{'_akk'} || exists $__dvs->{'_agq'} || $__dxi) { $__dxr .= " style=\""; if (exists $__dvs->{'_akk'}) { $__dxr .= "width:" . $__dvs->{'_akk'} . "px;"; } if (exists $__dvs->{'_agq'}) { $__dxr .= "height:" . $__dvs->{'_agq'} . "px;"; } if ($__dxi) { $__dxr .= ciwlib8_4_8::_bkc($__dxi); } $__dxr .= "\""; } $__dxr .= ">"; if (exists $__dvm->{'_bku'}) { my $__dzj = $__dvm->{'_bku'}->{$__dvu}; $__dzj =~ s/\r\n/\n/g; $__dxr .= $__dzj; } $__dxr .= "</textarea>"; } else { $__dvw = $__dvs->{'_aop'}; $__dxr .= "<input name=\"" . $__dvu . "\" class=\"open_end_text_box text_input\" type=\"text\" maxlength=\"" . $__dvw . "\""; if (exists $__dvs->{'_akk'}) { $__dxr .= " style=\"width: " . $__dvs->{'_akk'} . "px;\""; } if (exists $__dvm->{'_bku'}) { $__dxr .= " value=\"" . $__dvm->{'_bku'}->{$__dvu} . "\""; } $__dxr .= " id=\"" . $__dvu . "\">"; } } elsif (($__dvt eq "NumericVar") || ($__dvt eq "ConsumVar") || (($__dvt eq "RankVar") && ($__dvs->{'_bgu'} eq "numeric"))) { if ($__dvt eq "RankVar") { if (exists $__dvs->{'_aop'}) { authlib8_4_8::_btm($__dvs); $__dvw = length(int($__dvs->{'_aop'})); } else { if ($__dvo eq "rows") { $__dvw = length(@{$__dwn}); $__dvs->{'_cdx'} = @{$__dwn} + 0; } else { $__dvw = length(@{$__dwb}); $__dvs->{'_cdx'} = @{$__dwb} + 0; } } } else { if (exists $__dvs->{'_aus'}) { $__dvw = authlib8_4_8::_brm($__dvs->{'_aus'}); } } $__dxr .= "<input name=\"" . $__dvu . "\" type=\"tel\" class=\"numeric_input\""; if ($__dvw) { $__dxr .= " size=\"" . $__dvw . "\""; } if (exists $__dvm->{'_bku'}) { $__dxr .= " value=\"" . $__dvm->{'_bku'}->{$__dvu} . "\""; } $__dxr .= " id=\"" . $__dvu . "\">"; } elsif ($__dvt eq "CheckVar") { $__dxr .= ciwlib8_4_8::_bkd($__dvu, 1, 0, $__dvm); if ($__dvo eq "rows") { $__dvy{$__dxq + 1} = ""; } else { $__dvy{$__dxn + 1} = ""; } } elsif ($__dvt eq "RadioVar") { $__dxr .= ciwlib8_4_8::_bkd($__dvs->{'_bgt'}, $__dvv, 1, $__dvm); } if ($__dxw && exists $authlib8_4_8::_bzk->{'_ag'}) { $__dxr .= "</td>"; } if (($__dxh eq "right") && $__dxw) { if ($__dxw && exists $authlib8_4_8::_bzk->{'_ag'}) { $__dxr .= "<td>" . $__dxg . "</td>"; } else { $__dxr .= $__dxg; } } if ($__dxw && exists $authlib8_4_8::_bzk->{'_ag'}) { $__dxr .= "</tr></table>"; } $__dxr .= "</td>"; } if ($__dwd eq "right") { $__dxr .= $__dwk; } $__dxr .= "</tr>"; } if ($__dwp eq "bottom") { $__dxr .= $__dwv; } if ($__dwa) { $__dxr .= "<tr>"; if ($__dwh) { $__dxb .= "<td width=\"" . $__dyk . "%\">&nbsp;</td>"; } if ($__dwd eq "left") { $__dxr .= $__dxb; } $__dxr .= "<td class=\"grid_footer_cell\" width=\"" . $__dyl . "%\" colspan=\"" . $__dxl . "\">\n"; $__dxr .= "<div class=\"grid_footer\">"; $__dxr .= $__dwa->{'_bft'}; $__dxr .= "</div></td>"; if ($__dwd eq "right") { $__dxr .= $__dxb; } $__dxr .= "</tr>"; } $__dxr .= "</table>"; if ($__dyv && ($authlib8_4_8::_bzy == 0)) { $__dxr .= ciwlib8_4_8::_biz($__dvl, $__dyv, \%__dxs, "_total"); } $__dwl = join(",", @__dwm); $__dwx = join(",", @__dwy); $__dxr .= "\n<input type=\"hidden\" name=\"hid_row_list_" . $__dvl . "\" value=\"" . $__dwl . "\">\n"; $__dxr .= "\n<input type=\"hidden\" name=\"hid_col_list_" . $__dvl . "\" value=\"" . $__dwx . "\">\n"; my $__dzk = join(",", @__dvx); if ($__dzk) { $__dxr .= "\n<input type=\"hidden\" name=\"hid_noneabove_" . $__dvl . "\" value=\"" . $__dzk . "\">\n"; if ($__dzx) { my @__dzl = sort {$a <=> $b} keys %__dvy; my $__dzm = ""; $__dxr .= "\n\n"; $__dxr .= "<script type=\"text/javascript\">\n"; my $__dzn = ""; my $__dzo = ""; for ($__dxc = 0; $__dxc < @__dzl; $__dxc++) { $__dzn = ""; $__dzo = ""; $__dzn .= "SSI_List_EventSetup("; if ($__dvo eq "rows") { $__dzo = $__dvl . "_r" . $__dzl[$__dxc] . "_c*"; $__dzn .= "\"" . $__dzo . "\", [" . $__dwx . "], "; } else { $__dzo = $__dvl . "_r*_c" . $__dzl[$__dxc]; $__dzn .= "\"" . $__dzo . "\", [" . $__dwl . "], "; } $__dzn .= "[" . $__dzk . "]);\n"; $__dxr .= $__dzn; } $__dxr .= "\n</script>\n"; $__dxr .= "\n\n"; } } if ($authlib8_4_8::_byb) { $__dxr .= "<!--LoadTestMode: <question><name>$__dvl</name><type>grid</type>"; $__dxr .= "<rowindices>$__dwl</rowindices>"; $__dxr .= "<colindices>$__dwx</colindices>"; $__dxr .= "<questdirection>$__dvo</questdirection>"; if (@__dyg > 0) { $__dxr .= "<rowotherindices>"; my $__dzp = $__dwb; foreach my $__dxc (@__dyg) { $__dxr .= "<otherspecify><index>" . $__dzp->[$__dxc]->{'_bcm'} . "</index>"; $__dxr .= "<min>" . $__dzp->[$__dxc]->{'_gi'}->{'_bgp'} . "</min>"; $__dxr .= "<max>" . $__dzp->[$__dxc]->{'_gi'}->{'_aop'} . "</max>"; if (exists $__dzp->[$__dxc]->{'_gi'}->{'_gm'}) { $__dxr .= "<multiline>" . $__dzp->[$__dxc]->{'_gi'}->{'_gm'} . "</multiline>"; } $__dxr .= "</otherspecify>"; } $__dxr .= "</rowotherindices>"; } if (@__dyh > 0) { $__dxr .= "<colotherindices>"; my $__dzp = $__dwn; foreach my $__dxc (@__dyh) { $__dxr .= "<otherspecify><index>" . $__dzp->[$__dxc]->{'_bcm'} . "</index>"; $__dxr .= "<min>" . $__dzp->[$__dxc]->{'_gi'}->{'_bgp'} . "</min>"; $__dxr .= "<max>" . $__dzp->[$__dxc]->{'_gi'}->{'_aop'} . "</max>"; if (exists $__dzp->[$__dxc]->{'_gi'}->{'_gm'}) { $__dxr .= "<multiline>" . $__dzp->[$__dxc]->{'_gi'}->{'_gm'} . "</multiline>"; } $__dxr .= "</otherspecify>"; } $__dxr .= "</colotherindices>"; } $__dxr .= "<vars>"; my $__dzq = 0; if ($__dvo eq "rows") { $__dzq = \@__dwm; } else { $__dzq = \@__dwy; } my $__dzr = @{$__dzq}; for ($__dxc = 0; $__dxc < $__dzr; $__dxc++) { $__dxr .= "<var>"; $__dvs = $__dvr->[$__dzq->[$__dxc] - 1]; $__dvt = ref($__dvs); $__dxr .= "<type>$__dvt</type><name>" . $__dvs->{'_bgt'} . "</name>"; if ($__dvt eq "RadioVar") { $__dxr .= "<required>" . (exists $__dvs->{'_bdq'} ? "true" : "false") . "</required>"; } elsif ($__dvt eq "ComboVar") { $__dxr .= "<indices>"; my $__dzs = authlib8_4_8::_bss($__dvs->{'_bcs'}); if($__dzs) { $__dxr .= join(",", map {$_->{'_bcm'}} @{$__dzs}); } $__dxr .= "</indices>"; $__dxr .= "<required>" . (exists $__dvs->{'_bdq'} ? "true" : "false") . "</required>"; } elsif ($__dvt eq "NumericVar") { $__dxr .= "<min>" . $__dvs->{'_bgp'} . "</min><max>" . $__dvs->{'_aop'} . "</max>"; $__dxr .= "<required>" . (exists $__dvs->{'_bdq'} ? "true" : "false") . "</required>"; $__dxr .= "<decimal>" . (exists $__dvs->{'_aoe'} ? "true" : "false") . "</decimal>"; if (exists $__dvs->{'_aod'}) { $__dxr .= "<na>" . $__dvs->{'_aod'} . "</na>"; } } elsif ($__dvt eq "OpenEndVar") { $__dxr .= "<min>" . $__dvs->{'_bgp'} . "</min><max>" . $__dvs->{'_aop'} . "</max>"; $__dxr .= "<type>" . $__dvs->{'_bgu'} . "</type>"; $__dxr .= "<required>" . (exists $__dvs->{'_bdq'} ? "true" : "false") . "</required>"; } elsif ($__dvt eq "CheckVar") { $__dxr .= "<min>" . $__dvs->{'_bgp'} . "</min><max>" . $__dvs->{'_aop'} . "</max>"; $__dxr .= "<exclusiveindices>$__dzk</exclusiveindices>"; } elsif ($__dvt eq "ConsumVar") { $__dxr .= "<min>" . $__dvs->{'_bgp'} . "</min><max>" . $__dvs->{'_aop'} . "</max>"; $__dxr .= "<required>" . (exists $__dvs->{'_bdq'} ? "true" : "false") . "</required>"; $__dxr .= "<consum>" . $__dvs->{'_akj'} . "</consum>"; $__dxr .= "<decimal>" . (exists $__dvs->{'_aoe'} ? "true" : "false") . "</decimal>"; $__dxr .= "<wholereq>" . (exists $__dvs->{'_aks'} ? "true" : "false") . "</wholereq>"; } elsif ($__dvt eq "RankVar") { if ($__dvs->{'_bgu'} eq "combo") { $__dxr .= "<subtype>combo</subtype><options>"; my $__dzs = authlib8_4_8::_bss($__dvs->{'_bcs'}); if($__dzs) { $__dxr .= join(",", map {$_->{'_bcm'}} @{$__dzs}) } $__dxr .= "</options>"; } else { $__dxr .= "<subtype>numeric</subtype>"; } $__dxr .= "<required>" . (exists $__dvs->{'_bdq'} ? "true" : "false") . "</required>"; if (exists $__dvs->{'_aop'}) { $__dxr .= "<max>" . $__dvs->{'_aop'} . "</max>"; } if (exists $__dvs->{'_bgp'}) { $__dxr .= "<min>" . $__dvs->{'_bgp'} . "</min>"; } } $__dxr .= "</var>"; } $__dxr .= "</vars></question>"; $__dxr .= "-->"; } my %__dzt = (); $__dzt{'_cdy'} = \@__dwm; $__dzt{'_cdz'} = \@__dwy; $__dzt{'_cea'} = $__dzk; if ($__dvp) { $__dzt{'_bmk'} = $__dvp; } $__dzu->{'_bmm'} = \%__dzt; return $__dxr; } sub _bmg { my($__eac, $__ead, $__eae, $__eaf) = @_; my $__dzz = $__eac->{'_bmm'}; my $__eaa = $__eac->{'_bgt'}; ciwlib8_4_8::_bjk($__eaa, authlib8_4_8::_bsf($__eac->{'_bkt'}, 0, $__dzz->{'_cdy'}, $__dzz->{'_cdz'}), $__eae, $__ead, $__eaf, $__dzz->{'_cea'}, 0); if (exists $__dzz->{'_bmk'}) { my $__eab = "SSI_Grid_Other(\"" . $__eaa . "\", "; $__eab .= "[" . join(",", @{$__dzz->{'_cdy'}}) . "], "; $__eab .= "[" . join(",", @{$__dzz->{'_cdz'}}) . "], " . $__eaf . ")"; push @{$__ead}, ($__eab); $__eae->{'_blm'} = 1; $__eae->{'_ceb'} = 1; } } sub _cdt { my ($__eao, $__eap, $__eaq, $__ear, $__eas) = @_; my $__eag = 0; my $__eah = 0; my $__eai = 0; my $__eaj = 0; my $__eak = 0; my @__eal = (); my $__eam = 0; my $__ean = 0; if ($__eao) { $__eam = 1; $__ean = authlib8_4_8::_bsg($__eap); } if ($__eas < $__ean) { $__ean = $__eas; } if ($__eam < $__ean) { $__eak = authlib8_4_8::_bsh($__eaq, $__eas, $__ear, $__eam, $__ean); } else { for ($__eaj = 0; $__eaj < $__eas; $__eaj++) { push @__eal, $__eaj; } $__eak = \@__eal; } return $__eak; } sub _cdu { my($__eaw, $__eax) = @_; my $__eat = 0; my $__eau = 0; my $__eav = ""; for ($__eat = 0; $__eat < @{$__eax}; $__eat++) { $__eav = ref($__eaw->[$__eax->[$__eat]->{'_bcm'} - 1]); if ($__eav eq "ConsumVar" || $__eav eq "NumericVar") { $__eau = 1; last; } } return $__eau; } return 1; 
