svghmi/gen_index_xhtml.xslt
branchsvghmi
changeset 3128 32a4675af377
parent 3124 f263359d8108
child 3134 af558c9a5141
equal deleted inserted replaced
3127:d4dfd47f8156 3128:32a4675af377
   190                     <xsl:value-of select="$pathminmax"/>
   190                     <xsl:value-of select="$pathminmax"/>
   191                   </xsl:message>
   191                   </xsl:message>
   192                 </xsl:when>
   192                 </xsl:when>
   193               </xsl:choose>
   193               </xsl:choose>
   194               <xsl:choose>
   194               <xsl:choose>
   195                 <xsl:when test="regexp:test($path,'^\.[a-zA-Z0-9_]+')">
   195                 <xsl:when test="regexp:test($path,'^\.[a-zA-Z0-9_]+$')">
   196                   <xsl:attribute name="type">
   196                   <xsl:attribute name="type">
   197                     <xsl:text>PAGE_LOCAL</xsl:text>
   197                     <xsl:text>PAGE_LOCAL</xsl:text>
   198                   </xsl:attribute>
   198                   </xsl:attribute>
   199                 </xsl:when>
   199                 </xsl:when>
   200                 <xsl:when test="regexp:test($path,'^[a-zA-Z0-9_]+')">
   200                 <xsl:when test="regexp:test($path,'^[a-zA-Z0-9_]+$')">
   201                   <xsl:attribute name="type">
   201                   <xsl:attribute name="type">
   202                     <xsl:text>HMI_LOCAL</xsl:text>
   202                     <xsl:text>HMI_LOCAL</xsl:text>
   203                   </xsl:attribute>
   203                   </xsl:attribute>
   204                 </xsl:when>
   204                 </xsl:when>
   205                 <xsl:otherwise>
   205                 <xsl:otherwise>
   231         </xsl:for-each>
   231         </xsl:for-each>
   232       </widget>
   232       </widget>
   233     </xsl:if>
   233     </xsl:if>
   234   </xsl:template>
   234   </xsl:template>
   235   <xsl:variable name="_parsed_widgets">
   235   <xsl:variable name="_parsed_widgets">
       
   236     <widget type="VarInitPersistent">
       
   237       <arg value="0"/>
       
   238       <path value="lang"/>
       
   239     </widget>
   236     <xsl:apply-templates mode="parselabel" select="$hmi_elements"/>
   240     <xsl:apply-templates mode="parselabel" select="$hmi_elements"/>
   237   </xsl:variable>
   241   </xsl:variable>
   238   <xsl:variable name="parsed_widgets" select="exsl:node-set($_parsed_widgets)"/>
   242   <xsl:variable name="parsed_widgets" select="exsl:node-set($_parsed_widgets)"/>
   239   <func:function name="func:widget">
   243   <func:function name="func:widget">
   240     <xsl:param name="id"/>
   244     <xsl:param name="id"/>
   970     <xsl:text>
   974     <xsl:text>
   971 </xsl:text>
   975 </xsl:text>
   972     <xsl:variable name="translations" select="ns:GetTranslations($translatable_strings)"/>
   976     <xsl:variable name="translations" select="ns:GetTranslations($translatable_strings)"/>
   973     <xsl:text>var langs = [</xsl:text>
   977     <xsl:text>var langs = [</xsl:text>
   974     <xsl:for-each select="$translations/langs/lang">
   978     <xsl:for-each select="$translations/langs/lang">
       
   979       <xsl:text>"</xsl:text>
   975       <xsl:value-of select="."/>
   980       <xsl:value-of select="."/>
       
   981       <xsl:text>"</xsl:text>
   976       <xsl:if test="position()!=last()">
   982       <xsl:if test="position()!=last()">
   977         <xsl:text>,</xsl:text>
   983         <xsl:text>,</xsl:text>
   978       </xsl:if>
   984       </xsl:if>
   979     </xsl:for-each>
   985     </xsl:for-each>
   980     <xsl:text>];
   986     <xsl:text>];
   981 </xsl:text>
   987 </xsl:text>
   982     <xsl:text>var translations = [
   988     <xsl:text>var translations = [
   983 </xsl:text>
   989 </xsl:text>
   984     <xsl:for-each select="$translatable_texts">
   990     <xsl:for-each select="$translatable_texts">
   985       <xsl:variable name="n" select="position()"/>
   991       <xsl:variable name="n" select="position()"/>
   986       <xsl:text>  ["</xsl:text>
   992       <xsl:variable name="current_id" select="@id"/>
   987       <xsl:value-of select="@id"/>
   993       <xsl:variable name="text_unlinked_uses" select="$result_svg_ns//svg:text[@original = $current_id]/@id"/>
   988       <xsl:text>",[</xsl:text>
   994       <xsl:text>  [[</xsl:text>
       
   995       <xsl:for-each select="@id | $text_unlinked_uses">
       
   996         <xsl:text>id("</xsl:text>
       
   997         <xsl:value-of select="."/>
       
   998         <xsl:text>")</xsl:text>
       
   999         <xsl:if test="position()!=last()">
       
  1000           <xsl:text>,</xsl:text>
       
  1001         </xsl:if>
       
  1002       </xsl:for-each>
       
  1003       <xsl:text>],[</xsl:text>
   989       <xsl:for-each select="$translations/messages/msgid[$n]/msg">
  1004       <xsl:for-each select="$translations/messages/msgid[$n]/msg">
   990         <xsl:text>"</xsl:text>
  1005         <xsl:text>"</xsl:text>
   991         <xsl:for-each select="line">
  1006         <xsl:for-each select="line">
   992           <xsl:value-of select="."/>
  1007           <xsl:value-of select="."/>
   993           <xsl:if test="position()!=last()">
  1008           <xsl:if test="position()!=last()">
  1124 </xsl:text>
  1139 </xsl:text>
  1125     <xsl:text>var last_remote_index = hmitree_types.length - 1;
  1140     <xsl:text>var last_remote_index = hmitree_types.length - 1;
  1126 </xsl:text>
  1141 </xsl:text>
  1127     <xsl:text>var next_available_index = hmitree_types.length;
  1142     <xsl:text>var next_available_index = hmitree_types.length;
  1128 </xsl:text>
  1143 </xsl:text>
       
  1144     <xsl:text>let cookies = new Map(document.cookie.split("; ").map(s=&gt;s.split("=")));
       
  1145 </xsl:text>
  1129     <xsl:text>
  1146     <xsl:text>
  1130 </xsl:text>
  1147 </xsl:text>
  1131     <xsl:text>const local_defaults = {
  1148     <xsl:text>const local_defaults = {
  1132 </xsl:text>
  1149 </xsl:text>
  1133     <xsl:for-each select="$parsed_widgets/widget[@type = 'VarInit']">
  1150     <xsl:for-each select="$parsed_widgets/widget[starts-with(@type,'VarInit')]">
  1134       <xsl:if test="count(path) != 1">
  1151       <xsl:if test="count(path) != 1">
  1135         <xsl:message terminate="yes">
  1152         <xsl:message terminate="yes">
  1136           <xsl:text>VarInit </xsl:text>
  1153           <xsl:text>VarInit </xsl:text>
  1137           <xsl:value-of select="@id"/>
  1154           <xsl:value-of select="@id"/>
  1138           <xsl:text> must have only one variable given.</xsl:text>
  1155           <xsl:text> must have only one variable given.</xsl:text>
  1143           <xsl:text>VarInit </xsl:text>
  1160           <xsl:text>VarInit </xsl:text>
  1144           <xsl:value-of select="@id"/>
  1161           <xsl:value-of select="@id"/>
  1145           <xsl:text> only applies to HMI variable.</xsl:text>
  1162           <xsl:text> only applies to HMI variable.</xsl:text>
  1146         </xsl:message>
  1163         </xsl:message>
  1147       </xsl:if>
  1164       </xsl:if>
  1148       <xsl:text>"</xsl:text>
  1165       <xsl:text>    "</xsl:text>
  1149       <xsl:value-of select="path/@value"/>
  1166       <xsl:value-of select="path/@value"/>
  1150       <xsl:text>":</xsl:text>
  1167       <xsl:text>":</xsl:text>
  1151       <xsl:value-of select="arg[1]/@value"/>
  1168       <xsl:choose>
       
  1169         <xsl:when test="@type = 'VarInitPersistent'">
       
  1170           <xsl:text>cookies.has("</xsl:text>
       
  1171           <xsl:value-of select="path/@value"/>
       
  1172           <xsl:text>")?cookies.get("</xsl:text>
       
  1173           <xsl:value-of select="path/@value"/>
       
  1174           <xsl:text>"):</xsl:text>
       
  1175           <xsl:value-of select="arg[1]/@value"/>
       
  1176         </xsl:when>
       
  1177         <xsl:otherwise>
       
  1178           <xsl:value-of select="arg[1]/@value"/>
       
  1179         </xsl:otherwise>
       
  1180       </xsl:choose>
       
  1181       <xsl:text>
       
  1182 </xsl:text>
       
  1183       <xsl:if test="position()!=last()">
       
  1184         <xsl:text>,</xsl:text>
       
  1185       </xsl:if>
       
  1186     </xsl:for-each>
       
  1187     <xsl:text>};
       
  1188 </xsl:text>
       
  1189     <xsl:text>
       
  1190 </xsl:text>
       
  1191     <xsl:text>const persistent_locals = new Set([
       
  1192 </xsl:text>
       
  1193     <xsl:for-each select="$parsed_widgets/widget[@type='VarInitPersistent']">
       
  1194       <xsl:text>   "</xsl:text>
       
  1195       <xsl:value-of select="path/@value"/>
       
  1196       <xsl:text>"</xsl:text>
  1152       <xsl:if test="position()!=last()">
  1197       <xsl:if test="position()!=last()">
  1153         <xsl:text>,</xsl:text>
  1198         <xsl:text>,</xsl:text>
  1154       </xsl:if>
  1199       </xsl:if>
  1155       <xsl:text>
  1200       <xsl:text>
  1156 </xsl:text>
  1201 </xsl:text>
  1157     </xsl:for-each>
  1202     </xsl:for-each>
  1158     <xsl:text>};
  1203     <xsl:text>]);
       
  1204 </xsl:text>
       
  1205     <xsl:text>var persistent_indexes = new Map();
  1159 </xsl:text>
  1206 </xsl:text>
  1160     <xsl:text>var cache = hmitree_types.map(_ignored =&gt; undefined);
  1207     <xsl:text>var cache = hmitree_types.map(_ignored =&gt; undefined);
  1161 </xsl:text>
  1208 </xsl:text>
  1162     <xsl:text>
  1209     <xsl:text>
  1163 </xsl:text>
  1210 </xsl:text>
  1191 </xsl:text>
  1238 </xsl:text>
  1192     <xsl:text>    }
  1239     <xsl:text>    }
  1193 </xsl:text>
  1240 </xsl:text>
  1194     <xsl:text>    let defaultval = local_defaults[varname];
  1241     <xsl:text>    let defaultval = local_defaults[varname];
  1195 </xsl:text>
  1242 </xsl:text>
  1196     <xsl:text>    if(defaultval != undefined) 
  1243     <xsl:text>    if(defaultval != undefined) {
  1197 </xsl:text>
  1244 </xsl:text>
  1198     <xsl:text>        cache[new_index] = defaultval; 
  1245     <xsl:text>        cache[new_index] = defaultval; 
       
  1246 </xsl:text>
       
  1247     <xsl:text>        if(persistent_locals.has(varname))
       
  1248 </xsl:text>
       
  1249     <xsl:text>            persistent_indexes.set(new_index, varname);
       
  1250 </xsl:text>
       
  1251     <xsl:text>    }
  1199 </xsl:text>
  1252 </xsl:text>
  1200     <xsl:text>    return new_index;
  1253     <xsl:text>    return new_index;
  1201 </xsl:text>
  1254 </xsl:text>
  1202     <xsl:text>}
  1255     <xsl:text>}
  1203 </xsl:text>
  1256 </xsl:text>
  1504 </xsl:text>
  1557 </xsl:text>
  1505     <xsl:text>
  1558     <xsl:text>
  1506 </xsl:text>
  1559 </xsl:text>
  1507     <xsl:text>    }
  1560     <xsl:text>    }
  1508 </xsl:text>
  1561 </xsl:text>
       
  1562     <xsl:text>
       
  1563 </xsl:text>
       
  1564     <xsl:text>    activate_activable(eltsub) {
       
  1565 </xsl:text>
       
  1566     <xsl:text>        eltsub.inactive.style.display = "none";
       
  1567 </xsl:text>
       
  1568     <xsl:text>        eltsub.active.style.display = "";
       
  1569 </xsl:text>
       
  1570     <xsl:text>    }
       
  1571 </xsl:text>
       
  1572     <xsl:text>
       
  1573 </xsl:text>
       
  1574     <xsl:text>    inactivate_activable(eltsub) {
       
  1575 </xsl:text>
       
  1576     <xsl:text>        eltsub.active.style.display = "none";
       
  1577 </xsl:text>
       
  1578     <xsl:text>        eltsub.inactive.style.display = "";
       
  1579 </xsl:text>
       
  1580     <xsl:text>    }
       
  1581 </xsl:text>
  1509     <xsl:text>}
  1582     <xsl:text>}
  1510 </xsl:text>
  1583 </xsl:text>
  1511     <xsl:text>
  1584     <xsl:text>
  1512 </xsl:text>
  1585 </xsl:text>
  1513   </xsl:template>
  1586   </xsl:template>
  1514   <xsl:variable name="excluded_types" select="str:split('Page VarInit')"/>
  1587   <xsl:variable name="excluded_types" select="str:split('Page VarInit VarInitPersistent')"/>
  1515   <xsl:key name="TypesKey" match="widget" use="@type"/>
  1588   <xsl:key name="TypesKey" match="widget" use="@type"/>
  1516   <declarations:hmi-classes/>
  1589   <declarations:hmi-classes/>
  1517   <xsl:template match="declarations:hmi-classes">
  1590   <xsl:template match="declarations:hmi-classes">
  1518     <xsl:text>
  1591     <xsl:text>
  1519 </xsl:text>
  1592 </xsl:text>
  3822     <xsl:text>            b.height.baseVal.value = m.height;
  3895     <xsl:text>            b.height.baseVal.value = m.height;
  3823 </xsl:text>
  3896 </xsl:text>
  3824     <xsl:text>        }
  3897     <xsl:text>        }
  3825 </xsl:text>
  3898 </xsl:text>
  3826     <xsl:text>        highlight_selection(){
  3899     <xsl:text>        highlight_selection(){
       
  3900 </xsl:text>
       
  3901     <xsl:text>            if(this.last_selection == undefined) return;
  3827 </xsl:text>
  3902 </xsl:text>
  3828     <xsl:text>            let highlighted_row = this.last_selection - this.menu_offset;
  3903     <xsl:text>            let highlighted_row = this.last_selection - this.menu_offset;
  3829 </xsl:text>
  3904 </xsl:text>
  3830     <xsl:text>            if(highlighted_row &lt; 0) return;
  3905     <xsl:text>            if(highlighted_row &lt; 0) return;
  3831 </xsl:text>
  3906 </xsl:text>
  5121 </xsl:text>
  5196 </xsl:text>
  5122     <xsl:text>         if(this.Shift_sub &amp;&amp; this.shift != this._shift){
  5197     <xsl:text>         if(this.Shift_sub &amp;&amp; this.shift != this._shift){
  5123 </xsl:text>
  5198 </xsl:text>
  5124     <xsl:text>             this._shift = this.shift;
  5199     <xsl:text>             this._shift = this.shift;
  5125 </xsl:text>
  5200 </xsl:text>
  5126     <xsl:text>             (this.shift?widget_active_activable:widget_inactive_activable)(this.Shift_sub);
  5201     <xsl:text>             (this.shift?this.activate_activable:this.inactivate_activable)(this.Shift_sub);
  5127 </xsl:text>
  5202 </xsl:text>
  5128     <xsl:text>         }
  5203     <xsl:text>         }
  5129 </xsl:text>
  5204 </xsl:text>
  5130     <xsl:text>         if(this.CapsLock_sub &amp;&amp; this.caps != this._caps){
  5205     <xsl:text>         if(this.CapsLock_sub &amp;&amp; this.caps != this._caps){
  5131 </xsl:text>
  5206 </xsl:text>
  5132     <xsl:text>             this._caps = this.caps;
  5207     <xsl:text>             this._caps = this.caps;
  5133 </xsl:text>
  5208 </xsl:text>
  5134     <xsl:text>             (this.caps?widget_active_activable:widget_inactive_activable)(this.CapsLock_sub);
  5209     <xsl:text>             (this.caps?this.activate_activable:this.inactivate_activable)(this.CapsLock_sub);
  5135 </xsl:text>
  5210 </xsl:text>
  5136     <xsl:text>         }
  5211     <xsl:text>         }
  5137 </xsl:text>
  5212 </xsl:text>
  5138     <xsl:text>     }
  5213     <xsl:text>     }
  5139 </xsl:text>
  5214 </xsl:text>
  6732 </xsl:text>
  6807 </xsl:text>
  6733           <xsl:text>});
  6808           <xsl:text>});
  6734 </xsl:text>
  6809 </xsl:text>
  6735           <xsl:text>
  6810           <xsl:text>
  6736 </xsl:text>
  6811 </xsl:text>
       
  6812           <xsl:text>var translated = false;
       
  6813 </xsl:text>
       
  6814           <xsl:text>
       
  6815 </xsl:text>
       
  6816           <xsl:text>function switch_langnum(langnum) {
       
  6817 </xsl:text>
       
  6818           <xsl:text>    if(langnum == current_lang) {
       
  6819 </xsl:text>
       
  6820           <xsl:text>        return;
       
  6821 </xsl:text>
       
  6822           <xsl:text>    }
       
  6823 </xsl:text>
       
  6824           <xsl:text>
       
  6825 </xsl:text>
       
  6826           <xsl:text>    if (!translated) {
       
  6827 </xsl:text>
       
  6828           <xsl:text>        translated = true;
       
  6829 </xsl:text>
       
  6830           <xsl:text>        for (let translation of translations) {
       
  6831 </xsl:text>
       
  6832           <xsl:text>            let [objs] = translation;
       
  6833 </xsl:text>
       
  6834           <xsl:text>            translation.push(Array.prototype.map.call(objs[0].children, x=&gt;x.textContent).join("\n")); 
       
  6835 </xsl:text>
       
  6836           <xsl:text>        }
       
  6837 </xsl:text>
       
  6838           <xsl:text>    }
       
  6839 </xsl:text>
       
  6840           <xsl:text>
       
  6841 </xsl:text>
       
  6842           <xsl:text>    for (let translation of translations) {
       
  6843 </xsl:text>
       
  6844           <xsl:text>        let [objs, msgs, orig] = translation;
       
  6845 </xsl:text>
       
  6846           <xsl:text>        let msg = langnum == 0 ? orig : msgs[langnum - 1];
       
  6847 </xsl:text>
       
  6848           <xsl:text>        for (let obj of objs) {
       
  6849 </xsl:text>
       
  6850           <xsl:text>            msg.split('\n').map((line,i) =&gt; {obj.children[i].textContent = line;});
       
  6851 </xsl:text>
       
  6852           <xsl:text>        }
       
  6853 </xsl:text>
       
  6854           <xsl:text>    }
       
  6855 </xsl:text>
       
  6856           <xsl:text>    current_lang = langnum;
       
  6857 </xsl:text>
       
  6858           <xsl:text>}
       
  6859 </xsl:text>
       
  6860           <xsl:text>var lang_local_index = hmi_local_index("lang");
       
  6861 </xsl:text>
       
  6862           <xsl:text>subscribers(lang_local_index).add({
       
  6863 </xsl:text>
       
  6864           <xsl:text>    indexes: [lang_local_index],
       
  6865 </xsl:text>
       
  6866           <xsl:text>    new_hmi_value: function(index, value, oldval) {
       
  6867 </xsl:text>
       
  6868           <xsl:text>        switch_langnum(value);
       
  6869 </xsl:text>
       
  6870           <xsl:text>    }
       
  6871 </xsl:text>
       
  6872           <xsl:text>});
       
  6873 </xsl:text>
       
  6874           <xsl:text>var current_lang = 0;
       
  6875 </xsl:text>
       
  6876           <xsl:text>switch_langnum(cache[lang_local_index]);
       
  6877 </xsl:text>
  6737           <xsl:text>
  6878           <xsl:text>
  6738 </xsl:text>
  6879 </xsl:text>
  6739           <xsl:text>function update_subscriptions() {
  6880           <xsl:text>function update_subscriptions() {
  6740 </xsl:text>
  6881 </xsl:text>
  6741           <xsl:text>    let delta = [];
  6882           <xsl:text>    let delta = [];
  6810 </xsl:text>
  6951 </xsl:text>
  6811           <xsl:text>    if(index &gt; last_remote_index){
  6952           <xsl:text>    if(index &gt; last_remote_index){
  6812 </xsl:text>
  6953 </xsl:text>
  6813           <xsl:text>        updates[index] = value;
  6954           <xsl:text>        updates[index] = value;
  6814 </xsl:text>
  6955 </xsl:text>
       
  6956           <xsl:text>
       
  6957 </xsl:text>
       
  6958           <xsl:text>        if(persistent_indexes.has(index)){
       
  6959 </xsl:text>
       
  6960           <xsl:text>            let varname = persistent_indexes.get(index);
       
  6961 </xsl:text>
       
  6962           <xsl:text>            console.log(varname+"="+value+"; max-age=3153600000");
       
  6963 </xsl:text>
       
  6964           <xsl:text>            document.cookie = varname+"="+value+"; max-age=3153600000";
       
  6965 </xsl:text>
       
  6966           <xsl:text>        }
       
  6967 </xsl:text>
       
  6968           <xsl:text>
       
  6969 </xsl:text>
       
  6970           <xsl:text>        
       
  6971 </xsl:text>
  6815           <xsl:text>        requestHMIAnimation();
  6972           <xsl:text>        requestHMIAnimation();
  6816 </xsl:text>
  6973 </xsl:text>
  6817           <xsl:text>        return;
  6974           <xsl:text>        return;
  6818 </xsl:text>
  6975 </xsl:text>
  6819           <xsl:text>    }
  6976           <xsl:text>    }
  6928 </xsl:text>
  7085 </xsl:text>
  6929           <xsl:text>}
  7086           <xsl:text>}
  6930 </xsl:text>
  7087 </xsl:text>
  6931           <xsl:text>
  7088           <xsl:text>
  6932 </xsl:text>
  7089 </xsl:text>
  6933           <xsl:text>/*
       
  6934 </xsl:text>
       
  6935           <xsl:text>function change_hmi_value(index, opstr) {
       
  6936 </xsl:text>
       
  6937           <xsl:text>    let old_val = cache[index];
       
  6938 </xsl:text>
       
  6939           <xsl:text>    let new_val = eval_operation_string(old_val, opstr);
       
  6940 </xsl:text>
       
  6941           <xsl:text>    if(new_val != undefined &amp;&amp; old_val != new_val)
       
  6942 </xsl:text>
       
  6943           <xsl:text>        send_hmi_value(index, new_val);
       
  6944 </xsl:text>
       
  6945           <xsl:text>    // TODO else raise
       
  6946 </xsl:text>
       
  6947           <xsl:text>    return new_val;
       
  6948 </xsl:text>
       
  6949           <xsl:text>}
       
  6950 </xsl:text>
       
  6951           <xsl:text>*/
       
  6952 </xsl:text>
       
  6953           <xsl:text>
       
  6954 </xsl:text>
       
  6955           <xsl:text>var current_visible_page;
  7090           <xsl:text>var current_visible_page;
  6956 </xsl:text>
  7091 </xsl:text>
  6957           <xsl:text>var current_subscribed_page;
  7092           <xsl:text>var current_subscribed_page;
  6958 </xsl:text>
  7093 </xsl:text>
  6959           <xsl:text>var current_page_index;
  7094           <xsl:text>var current_page_index;
  7253           <xsl:text>    current_modal = undefined;
  7388           <xsl:text>    current_modal = undefined;
  7254 </xsl:text>
  7389 </xsl:text>
  7255           <xsl:text>};
  7390           <xsl:text>};
  7256 </xsl:text>
  7391 </xsl:text>
  7257           <xsl:text>
  7392           <xsl:text>
  7258 </xsl:text>
       
  7259           <xsl:text>function widget_active_activable(eltsub) {
       
  7260 </xsl:text>
       
  7261           <xsl:text>    if(eltsub.inactive_style === undefined)
       
  7262 </xsl:text>
       
  7263           <xsl:text>        eltsub.inactive_style = eltsub.inactive.getAttribute("style");
       
  7264 </xsl:text>
       
  7265           <xsl:text>    eltsub.inactive.setAttribute("style", "display:none");
       
  7266 </xsl:text>
       
  7267           <xsl:text>    if(eltsub.active_style !== undefined)
       
  7268 </xsl:text>
       
  7269           <xsl:text>            eltsub.active.setAttribute("style", eltsub.active_style);
       
  7270 </xsl:text>
       
  7271           <xsl:text>};
       
  7272 </xsl:text>
       
  7273           <xsl:text>function widget_inactive_activable(eltsub) {
       
  7274 </xsl:text>
       
  7275           <xsl:text>    if(eltsub.active_style === undefined)
       
  7276 </xsl:text>
       
  7277           <xsl:text>        eltsub.active_style = eltsub.active.getAttribute("style");
       
  7278 </xsl:text>
       
  7279           <xsl:text>    eltsub.active.setAttribute("style", "display:none");
       
  7280 </xsl:text>
       
  7281           <xsl:text>    if(eltsub.inactive_style !== undefined)
       
  7282 </xsl:text>
       
  7283           <xsl:text>            eltsub.inactive.setAttribute("style", eltsub.inactive_style);
       
  7284 </xsl:text>
       
  7285           <xsl:text>};
       
  7286 </xsl:text>
  7393 </xsl:text>
  7287         </script>
  7394         </script>
  7288       </body>
  7395       </body>
  7289     </html>
  7396     </html>
  7290   </xsl:template>
  7397   </xsl:template>