1function parse_basic_js_template(routput_tpl,rvars_tpl) { 2 var rvars = rvars_tpl; 3 var routput = routput_tpl.trim(); 4 5 // Parse Embedded Templates 6 for(var k in rvars) { 7 if(typeof(rvars[k])=="object") { 8 var routparts = routput.split("<tpl-" + k + ">"); 9 var new_routput = routparts[0]; 10 for(var r=1; r<routparts.length; r++) { 11 var rinnerparts = routparts[r].split("</tpl-" + k + ">"); 12 if(rinnerparts.length > 1) { 13 var rinner_tpl = rinnerparts[0]; 14 for(var x in rvars[k]) { 15 var rinner_vars = rvars[k][x]; 16 17 //if(!('index' in rinner_vars)) { 18 // rinner_vars['index'] = x; 19 //} 20 21 if(typeof(rinner_vars)=="object") { 22 new_routput += parse_basic_js_template(rinner_tpl,rinner_vars); 23 } else { 24 var rpckeys = get_basic_js_template_var_keys(k,rinner_vars); 25 for(kk in rpckeys) { 26 var regex = new RegExp("\\[" + kk + "\\]", "g"); 27 new_routput += rinner_tpl.replace(regex,rpckeys[kk]);//rinner_vars); 28 } 29 } 30 } 31 new_routput += rinnerparts[1]; 32 } 33 } 34 routput = new_routput; 35 } 36 } 37 38 // Parse Conditional Displays 39 var routparts = routput.split('<display:'); 40 var new_routput = routparts[0]; 41 for(var r=1; r<routparts.length; r++) { 42 var rdisep = routparts[r].indexOf('>'); 43 var rdisplayvar = routparts[r].substring(0,rdisep); 44 var rdisplaystr = routparts[r].substring(rdisep + 1); 45 var rinnerparts = rdisplaystr.split("</display>"); 46 if(rinnerparts.length > 1) { 47 var rifyes = rinnerparts[0]; 48 var rifno = ""; 49 var relseparts = rinnerparts[0].split("<else>"); 50 if(relseparts.length > 1) { 51 rifyes = relseparts[0]; 52 rifno = relseparts[1]; 53 } 54 var relseparts = rifyes.split("<else:"); 55 var rifyes = relseparts[0]; 56 57 if(parse_basic_js_template_condition(rdisplayvar,rvars)) { 58 new_routput += rifyes; 59 } else { 60 var relse_condition_found = false; 61 for(var s=1; s<relseparts.length; s++) { 62 if(!relse_condition_found) { 63 var relsesep = relseparts[s].indexOf('>'); 64 var relsedisplayvar = relseparts[s].substring(0,relsesep); 65 var relsedisplaystr = relseparts[s].substring(relsesep + 1); 66 if(parse_basic_js_template_condition(relsedisplayvar,rvars)) { 67 rifno = relsedisplaystr; 68 } 69 } 70 } 71 new_routput += rifno; 72 } 73 new_routput += rinnerparts[1]; 74 } 75 } 76 routput = new_routput; 77 78 if(typeof current_foldername != "undefined") { 79 routput = routput.replace(/\[folder\]/ig,current_foldername); 80 } 81 82 var find_terms = new Array(); 83 var term_parts = routput.split("[term:"); 84 for(var t=1; t<term_parts.length; t++) { 85 var inner_term_parts = term_parts[t].split("]"); 86 if(inner_term_parts.length > 1) { 87 var inner_term_str = inner_term_parts[0]; 88 if(inner_term_str.length < 40) { 89 find_terms.push(inner_term_str); 90 } 91 } 92 } 93 for(var t=0; t<find_terms.length; t++) { 94 var regex = new RegExp("\\[term\:" + find_terms[t] + "\\]", "g"); 95 routput = routput.replace(regex,rterm(find_terms[t])); 96 } 97 if(typeof erstouchstart_method=="function") { 98 if(erstouchstart_method()=="ontouchstart") { 99 var regex = new RegExp(" onclick\\=\\'", "g"); 100 var new_click_code = " ontouchstart='basic_tpl_start_element_touch(this,event)' ontouchend='if(!basic_tpl_allow_element_touch(this,event)) return; "; 101 routput = routput.replace(regex,new_click_code); 102 } else { 103 var regex = new RegExp(" onclick\\=", "g"); 104 var new_click_code = " " + erstouchstart_method() + "="; 105 routput = routput.replace(regex,new_click_code); 106 } 107 } 108 109 // Parse Regular String Variables 110 for(var k in rvars) { 111 if(typeof(rvars[k])!="object") { 112 var rpckeys = get_basic_js_template_var_keys(k,rvars[k]); 113 for(kk in rpckeys) { 114 var regex = new RegExp("\\[" + kk + "\\]", "g"); 115 routput = routput.replace(regex,rpckeys[kk]);//rvars[k]); 116 } 117 } 118 } 119 return routput; 120} 121 122tpl_touch_obj_scrollTop = 0; 123tpl_touch_obj_top = 0; 124tpl_touch_pos_left = 0; 125tpl_touch_pos_top = 0; 126function basic_tpl_start_element_touch(elem_obj,event) { 127 event.stopPropagation(); 128 tpl_touch_obj_scrollTop = document.body.scrollTop; 129 tpl_touch_obj_top = getObjPosition(elem_obj,'top'); 130 tpl_touch_pos_left = event.pageX; 131 tpl_touch_pos_top = event.pageY; 132} 133function basic_tpl_allow_element_touch(elem_obj,event) { 134 var scrollTop_diff = Math.abs(document.body.scrollTop - tpl_touch_obj_scrollTop) * 1; 135 var objTop_diff = Math.abs(getObjPosition(elem_obj,'top') - tpl_touch_obj_top) * 1; 136 var posLeft_diff = Math.abs(event.pageX - tpl_touch_pos_left) * 1; 137 var posTop_diff = Math.abs(event.pageY - tpl_touch_pos_top) * 1; 138 if(scrollTop_diff < 2 && objTop_diff < 2 && posLeft_diff < 2 && posTop_diff < 2) { 139 return true; 140 } else { 141 return false;
142 } 143} 144function parse_basic_js_template_condition(rdisplayvar,rvars) { 145 var rdisplayvar_parts = rdisplayvar.split('='); 146 if(rdisplayvar_parts.length==2) { 147 rdisplayvar_k = rdisplayvar_parts[0]; 148 rdisplayvar_v = rdisplayvar_parts[1]; 149 150 if(rdisplayvar_k in rvars && rvars[rdisplayvar_k]==rdisplayvar_v) { 151 return true; 152 } 153 else { 154 return false; 155 } 156 } 157 else if((rdisplayvar in rvars && rvars[rdisplayvar]!="") || (typeof current_foldername != "undefined" && current_foldername==rdisplayvar && rdisplayvar.length >= 3)) { 158 return true; 159 } else { 160 return false; 161 } 162} 163function get_basic_js_template_var_keys(k,rinner_vars) { 164 var varkeys = new Array(); 165 varkeys[k] = rinner_vars; 166 if(typeof rinner_vars != "undefined") { 167 if(k.indexOf('cost') > -1 || k.indexOf('price') > -1 || k.indexOf('amount') > -1) { 168 varkeys['format:' + k] = display_money(rinner_vars); 169 } else if(k.indexOf('picture') > -1 || k.indexOf('image') > -1) { 170 varkeys['format:' + k] = display_picture_path(rinner_vars); 171 } else if(k.indexOf('time') > -1) { 172 varkeys['format:' + k] = display_time(rinner_vars.replace(/\:/ig,'')); 173 } 174 } 175 return varkeys; 176} 177function basic_display_time(d_tstr) { 178 return display_time(d_tstr.replace(/\:/ig,'')); 179} 180function display_money(num) { 181 if(num + '' == "" || num * 1 == "NaN") return ""; 182 var p = parseFloat(num).toFixed(2).split("."); 183 return "$" + p[0].split("").reverse().reduce(function(acc, num, i, orig) { 184 return num + (i && !(i % 3) ? "," : "") + acc; 185 }, "") + "." + p[1]; 186} 187function display_picture_path(pstr) { 188 if(pstr=="") return "/cp/resources/images/items/med/no_picture.png"; 189 else return pstr; 190} 191
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.