/** * This module is used for inputEx examples : * * - Search all
tags * - decode the HTML entities to get the code * - evalulate & highlight the examples using SyntaxHighlighter * * @module inputex-examples */ YUI.add('inputex-examples', function (Y) { window.Y = Y; Y.on("domready",function() { var examples = [], i, length, textarea, code; // i'm not proud of using n._node ... but the method getDOMNode (http://developer.yahoo.com/yui/3/api/Node.html#method_getDOMNode) is not implemented yet Y.all('pre').each(function(n){ examples.push(n._node);},this); for(i = 0, length = examples.length ; i < length ; i += 1) { textarea = examples[i]; try { // get example code and filter html entities code = html_entity_decode(textarea.innerHTML); // wrap in anonymous to create a separate context for local variables // (avoid collision between variables from different examples !) code = "(function () {"+code+"}());"; var inputEx = Y.inputEx; eval(code); } catch(ex) { if(console) { console.log("Error while executing example "+(i+1), ex); } // debug: throw ex; } } SyntaxHighlighter.highlight(); }); // Decode html entities var html_entity_decode = function (text) { text = text.replace(/"/g,'"'); // 34 22 text = text.replace(/&/g,'&'); // 38 26 text = text.replace(/'/g,"'"); // 39 27 text = text.replace(/</g,'<'); // 60 3C text = text.replace(/>/g,'>'); // 62 3E text = text.replace(/ˆ/g,'^'); // 94 5E text = text.replace(/‘/g,'‘'); // 145 91 text = text.replace(/’/g,'’'); // 146 92 text = text.replace(/“/g,'“'); // 147 93 text = text.replace(/”/g,'”'); // 148 94 text = text.replace(/•/g,'•'); // 149 95 text = text.replace(/–/g,'–'); // 150 96 text = text.replace(/—/g,'—'); // 151 97 text = text.replace(/˜/g,'˜'); // 152 98 text = text.replace(/™/g,'™'); // 153 99 text = text.replace(/š/g,'š'); // 154 9A text = text.replace(/›/g,'›'); // 155 9B text = text.replace(/œ/g,'œ'); // 156 9C text = text.replace(/ť/g,''); // 157 9D text = text.replace(/ž/g,'ž'); // 158 9E text = text.replace(/Ÿ/g,'Ÿ'); // 159 9F text = text.replace(/ /g,' '); // 160 A0 text = text.replace(/¡/g,'¡'); // 161 A1 text = text.replace(/¢/g,'¢'); // 162 A2 text = text.replace(/£/g,'£'); // 163 A3 text = text.replace(/¤/g,' '); // 164 A4 text = text.replace(/¥/g,'¥'); // 165 A5 text = text.replace(/¦/g,'¦'); // 166 A6 text = text.replace(/§/g,'§'); // 167 A7 text = text.replace(/¨/g,'¨'); // 168 A8 text = text.replace(/©/g,'©'); // 169 A9 text = text.replace(/ª/g,'ª'); // 170 AA text = text.replace(/«/g,'«'); // 171 AB text = text.replace(/¬/g,'¬'); // 172 AC text = text.replace(//g,''); // 173 AD text = text.replace(/®/g,'®'); // 174 AE text = text.replace(/¯/g,'¯'); // 175 AF text = text.replace(/°/g,'°'); // 176 B0 text = text.replace(/±/g,'±'); // 177 B1 text = text.replace(/²/g,'²'); // 178 B2 text = text.replace(/³/g,'³'); // 179 B3 text = text.replace(/´/g,'´'); // 180 B4 text = text.replace(/µ/g,'µ'); // 181 B5 text = text.replace(/¶/g,'¶'); // 182 B6 text = text.replace(/·/g,'·'); // 183 B7 text = text.replace(/¸/g,'¸'); // 184 B8 text = text.replace(/¹/g,'¹'); // 185 B9 text = text.replace(/º/g,'º'); // 186 BA text = text.replace(/»/g,'»'); // 187 BB text = text.replace(/¼/g,'¼'); // 188 BC text = text.replace(/½/g,'½'); // 189 BD text = text.replace(/¾/g,'¾'); // 190 BE text = text.replace(/¿/g,'¿'); // 191 BF text = text.replace(/À/g,'À'); // 192 C0 text = text.replace(/Á/g,'Á'); // 193 C1 text = text.replace(/Â/g,'Â'); // 194 C2 text = text.replace(/Ã/g,'Ã'); // 195 C3 text = text.replace(/Ä/g,'Ä'); // 196 C4 text = text.replace(/Å/g,'Å'); // 197 C5 text = text.replace(/Æ/g,'Æ'); // 198 C6 text = text.replace(/Ç/g,'Ç'); // 199 C7 text = text.replace(/È/g,'È'); // 200 C8 text = text.replace(/É/g,'É'); // 201 C9 text = text.replace(/Ê/g,'Ê'); // 202 CA text = text.replace(/Ë/g,'Ë'); // 203 CB text = text.replace(/Ì/g,'Ì'); // 204 CC text = text.replace(/Í/g,'Í'); // 205 CD text = text.replace(/Î/g,'Î'); // 206 CE text = text.replace(/Ï/g,'Ï'); // 207 CF text = text.replace(/Ð/g,'Ð'); // 208 D0 text = text.replace(/Ñ/g,'Ñ'); // 209 D1 text = text.replace(/Ò/g,'Ò'); // 210 D2 text = text.replace(/Ó/g,'Ó'); // 211 D3 text = text.replace(/Ô/g,'Ô'); // 212 D4 text = text.replace(/Õ/g,'Õ'); // 213 D5 text = text.replace(/Ö/g,'Ö'); // 214 D6 text = text.replace(/×/g,'×'); // 215 D7 text = text.replace(/Ø/g,'Ø'); // 216 D8 text = text.replace(/Ù/g,'Ù'); // 217 D9 text = text.replace(/Ú/g,'Ú'); // 218 DA text = text.replace(/Û/g,'Û'); // 219 DB text = text.replace(/Ü/g,'Ü'); // 220 DC text = text.replace(/Ý/g,'Ý'); // 221 DD text = text.replace(/Þ/g,'Þ'); // 222 DE text = text.replace(/ß/g,'ß'); // 223 DF text = text.replace(/à/g,'à'); // 224 E0 text = text.replace(/á/g,'á'); // 225 E1 text = text.replace(/â/g,'â'); // 226 E2 text = text.replace(/ã/g,'ã'); // 227 E3 text = text.replace(/ä/g,'ä'); // 228 E4 text = text.replace(/å/g,'å'); // 229 E5 text = text.replace(/æ/g,'æ'); // 230 E6 text = text.replace(/ç/g,'ç'); // 231 E7 text = text.replace(/è/g,'è'); // 232 E8 text = text.replace(/é/g,'é'); // 233 E9 text = text.replace(/ê/g,'ê'); // 234 EA text = text.replace(/ë/g,'ë'); // 235 EB text = text.replace(/ì/g,'ì'); // 236 EC text = text.replace(/í/g,'í'); // 237 ED text = text.replace(/î/g,'î'); // 238 EE text = text.replace(/ï/g,'ï'); // 239 EF text = text.replace(/ð/g,'ð'); // 240 F0 text = text.replace(/ñ/g,'ñ'); // 241 F1 text = text.replace(/ò/g,'ò'); // 242 F2 text = text.replace(/ó/g,'ó'); // 243 F3 text = text.replace(/ô/g,'ô'); // 244 F4 text = text.replace(/õ/g,'õ'); // 245 F5 text = text.replace(/ö/g,'ö'); // 246 F6 text = text.replace(/÷/g,'÷'); // 247 F7 text = text.replace(/ø/g,'ø'); // 248 F8 text = text.replace(/ù/g,'ù'); // 249 F9 text = text.replace(/ú/g,'ú'); // 250 FA text = text.replace(/û/g,'û'); // 251 FB text = text.replace(/ü/g,'ü'); // 252 FC text = text.replace(/ý/g,'ý'); // 253 FD text = text.replace(/þ/g,'þ'); // 254 FE text = text.replace(/ÿ/g,'ÿ'); // 255 FF return text; }; }, '@VERSION@', {requires: ['inputex']});