1/*================================================================ 2lineupList 3 4jsonããåå¾ããå ¬æ¼ãã¼ã¿ãé åã§è¿ããã©ã°ã¤ã³ 5 6ãªãã·ã§ã³ 7 8lastn [æ°å¤] è¡¨ç¤ºä»¶æ° 9date [飿³é å] mode:now|next|past|now&next,date:æ¥ä»,closeDay:ä¼é¤¨æ¥ãæéä¸ãªã表示ãããã©ãã 10sorts [æåå] DESC | ASC 11path [æåå] jsonã®ãã¹ 12onComplete [function] å®äºå¾ã®ã³ã¼ã«ãã㯠13endmarker [bool] çµäºãã¼ã«ã¼ã追å ãã 14conditions [é å] çµãè¾¼ã¿ã®æ¡ä»¶ 15ï¼label:é ç®å,value:å 容,mode:true|false,matching:partiallyãªãé¨åä¸è´ï¼ 16 17================================================================*/ 18 19(function($) { 20 21 /*仿¥ã®æ¥ä»ããåå¾ 22 ----------------------------------------*/ 23 var nowDay = new Date(); 24 var y = nowDay.getFullYear(); 25 var m = ("00" + (nowDay.getMonth()+1)).slice(-2); 26 var d = ("00" + nowDay.getDate()).slice(-2); 27 var yyyymmdd = y + "/" + m + "/" + d; 28 29 /*stageå¤å® 30 ----------------------------------------*/ 31 var url = location.host; 32 if ( url.indexOf('stage') !== -1) { 33 var stage = 1; 34 } 35 36 /*================================================================================ 37 lineupListãã©ã°ã¤ã³ 38 ================================================================================*/ 39 $.fn.lineupList = function(options){ 40 var settings = $.extend({ 41 lastn : '', 42 date : '', 43 archive : false, 44 kodomo : false, 45 sorts : 'ASC', 46 path : '', 47 conditions : '', 48 onComplete: function() {} 49 }, options); 50 51 var $data = []; 52 var markerSetting = {}; 53 var $yomikomi_count = 0;//JSONãã¡ã¤ã«èªã¿è¾¼ã¿ã«ã¦ã³ã 54 var maeno = []; 55 56 //æ¥ä»ãã©ã¡ã¼ã¿ãããã°ä¸æ¸ã 57 var arg = new Object; 58 var pair=location.search.substring(1).split('&'); 59 for(var i=0;pair[i];i++) { 60 var kv = pair[i].split('='); 61 arg[kv[0]]=kv[1]; 62 } 63 if(arg.preview){ 64 yyyymmdd = arg.preview; 65 nowDay = new Date(yyyymmdd); 66 if(settings.date.date){ 67 settings.date.date = arg.preview; 68 } 69 } 70 71 var calendar_day=""; 72 if(settings.date.date && settings.calendar=="day"){ 73 calendar_day=settings.date.date.replace("-","/"); 74 } 75 76 return this.each(function(){ 77 setTimeout(function(){ 78 makeTopics(); 79 },0); 80 }); 81 82 83 /*---------------------------------------- 84 ãã¡ã¤ã«åã®æ°ã ãJSONèªã¿è¾¼ã¿é¢æ°ãå®è¡ãã 85 ----------------------------------------*/ 86 function makeTopics(){ 87 $.ajax({ 88 url:"/data/marker/marker.json", 89 type:'GET', 90 dataType:'json', 91 cache: false, 92 async:false 93 }).always(function(marker_json){ 94 //ãã¼ã«ã¼ã®è¨å®ãèªã¿è¾¼ã 95 markerSetting.data = marker_json.data; 96 markerSetting.sorts = marker_json.sort; 97 //ãã®å¾ãªã¹ããã¼ã¿ã使 98 if($.type(settings.path)=="string"){ 99 settings.onComplete 100 //jsonãã¡ã¤ã«èªã¿è¾¼ã¿ã®å ´å 101 var $filenameList = settings.path.split(','); 102 $.each($filenameList, function(i,val) { 103 yomikomi($filenameList.length,val); 104 }); 105 }else{ 106 //é åãã¼ã¿ã®å ´å 107 $.when( 108 make(settings.path) 109 ).done(function(){ 110 ArrayAdjustment($data) 111 }); 112 } 113 }); 114 } 115 116 /*---------------------------------------- 117 JSONèªã¿è¾¼ã¿é¢æ° 118 ----------------------------------------*/ 119 function yomikomi($filenameMax,filename){ 120 121 if($yomikomi_count<=$filenameMax){ 122 123 $.ajax({ 124 url:filename, 125 type:'GET', 126 dataType:'json', 127 cache: false, 128 async: false 129 130 /*èªã¿è¾¼ã¿æå 131 --------------------------------*/ 132 }).done(function(jsonArray){ 133 134 make(jsonArray); 135 136 /*æå失æå ±é 137 --------------------------------*/ 138 }).always(function(){ 139 $yomikomi_count++; 140 if($yomikomi_count>=$filenameMax){ 141 //æå¾ã«1度ã ãé 忴形颿°ãå®è¡ 142 ArrayAdjustment($data); 143 } 144 }); 145 } 146 } 147 148 /*---------------------------------------- 149 ãã¼ã¿æ´å½¢é¢æ° 150 ----------------------------------------*/ 151 function make(jsonArray){ 152 $.each(jsonArray, function(i,json) { 153 154 //ä¸èº«ãNULLã®æã¯ã¹ããã 155 if(i==""){ 156 return true; 157 } 158 159 var $OK = new Array(true); 160 var $num = 0; 161 var $date_first = new Date(json[$num]['date']+" 00:00:00"); 162 var $date_last = new Date(json[$num]['date_last']+" 23:59:59"); 163 164 //å ¬éæ¥ãéãã䏿¸ãã®æ å ±ããããã®å¤å®ï¼ããã°[1]ã使ç¨ï¼ 165 if(json.hasOwnProperty(1) && new Date(json[1]['start']) <= nowDay){ 166 $num = 1; 167 //ã¹ãã¼ã¸ã³ã°ã§ä¸æ¸ãã®æ å ±ããããã®å¤å®ï¼å ¬éæ¥ã¯åããªãï¼ 168 }else if(stage===1 && json.hasOwnProperty(1)){ 169 $num = 1; 170 }else{ 171 //ãªãå ´åã¯[0]ãä½¿ç¨ 172 $num = 0; 173 } 174 175 //å ¬éæ¥ã®å¤å® 176 if(json[$num]['start'] && new Date(json[$num]['start']) > nowDay){ 177 $OK.push(false); 178 } 179 180 //éå ¬éæ¥ã®å¤å® 181 if(json[$num]['end'] && new Date(json[$num]['end']) <= nowDay){ 182 $OK.push(false); 183 } 184 185 186 //æéæå® 187 if(settings.date.date && settings.date.closeDay===true && $date_first <= nowDay){ 188 if(json[$num]['date_last'] && $date_last < nowDay){ 189 $OK.push(false); 190 } 191 }else if(settings.date){ 192 if(settings.date.mode==="past"){ 193 if(json[$num]['date_last'] && $date_last >= nowDay){ 194 $OK.push(false); 195 } 196 }else if(settings.date.mode==="next"){ 197 if(json[$num]['date'] && $date_first <= nowDay){ 198 $OK.push(false); 199 } 200 }else if(settings.date.mode==="now&next"){ 201 if($date_last < nowDay){ 202 $OK.push(false); 203 } 204 }else if(settings.date.mode==="all"){ 205 }else{ 206 //mode==="now" 207 var kikan = settings.date.date.split(','); 208 var kikanFlg = false;
209 $.each(kikan, function(iii,day) { 210 if(json[$num]['date_all'] && json[$num]['date_all'].indexOf(day)!==-1){ 211 kikanFlg = true; 212 } 213 }); 214 if(kikanFlg!==true){ 215 $OK.push(false); 216 } 217 } 218 }else if(json[$num]['date_last'] && $date_last < nowDay){ 219 $OK.push(false); 220 } 221 222 /*æ¡ä»¶ãã£ã«ã¿ 223 --------------------------------*/ 224 var $OK_conditions2 = []; 225 var $falsenokazu = 0; 226 227 if(settings.conditions){ 228 229 settings.conditions.forEach(function(val,index){ 230 231 var $OK_conditions = []; 232 233 var c_label = val['label'];//çµãè¾¼ã¿ããé ç®å 234 if(Array.isArray(val['value'])){//å¤ 235 var c_value = val['value']; 236 }else{ 237 var c_value = val['value'].split(","); 238 } 239 if(val['andor']){var c_andor = val['andor']}else{var c_andor = "and"}//and|or 240 var c_mode = val['mode'];//é¤å¤|å«ã 241 var c_matching = val['matching'];//å®å ¨ä¸è´|é¨åä¸è´ 242 243 244 if(json[$num][c_label]){ 245 if(c_label=="marker"){ 246 var itm = []; 247 $.each(json[$num].marker, function(marker_id,marker_array) { 248 itm.push(marker_id); 249 }); 250 }else{ 251 if(Array.isArray(json[$num][c_label])){ 252 var itm = json[$num][c_label]; 253 }else{ 254 var itm = json[$num][c_label].split(","); 255 } 256 } 257 }else{ 258 var itm = []; 259 } 260 261 262 for (var iii = 0; iii < c_value.length; iii++) { 263 var matchingF = false; 264 if(c_matching==="partially"){ 265 //æ¤ç´¢æ¡ä»¶ï¼å«ã 266 kekka = itm.filter(function(obj) {return obj.indexOf(c_value[iii]) >= 0;}); 267 if(kekka.length > 0){matchingF = true;} 268 }else{ 269 //æ¤ç´¢æ¡ä»¶ï¼å®å ¨ä¸è´ 270 if ($.inArray(c_value[iii], itm) > -1){ 271 matchingF = true; 272 } 273 } 274 if (matchingF===true){ 275 $OK_conditions.push(true); 276 }else{ 277 $OK_conditions.push(false); 278 $falsenokazu++; 279 } 280 } 281 282 283 if(c_andor=="and" && c_mode==false){ 284 //å ¨ã¦é¤å¤ 285 //if(c_value.length!=$falsenokazu){ 286 if ($.inArray(true,$OK_conditions) > -1) { 287 $OK_conditions2.push(false); 288 }else{ 289 $OK_conditions2.push(true); 290 } 291 }else if(c_andor=="and" && c_mode==true){ 292 //å ¨ã¦å«ã 293 if ($.inArray(false,$OK_conditions) > -1) { 294 $OK_conditions2.push(false); 295 }else{ 296 $OK_conditions2.push(true); 297 } 298 }else if(c_andor=="or" && c_mode==false){ 299 //ã©ããé¤å¤ 300 if ($.inArray(true,$OK_conditions) > -1) { 301 $OK_conditions2.push(false); 302 }else{ 303 $OK_conditions2.push(true); 304 } 305 }else if(c_andor=="or" && c_mode==true){ 306 //ã©ããå«ã 307 if ($.inArray(true,$OK_conditions) < 0) { 308 $OK_conditions2.push(false); 309 }else{ 310 $OK_conditions2.push(true); 311 } 312 } 313 314 });//æ¡ä»¶æ°ã ãã«ã¼ã 315 316 if($.inArray(false,$OK_conditions2) > -1){ 317 $OK.push(false); 318 } 319 320 } 321 322 /*ãã¼ã«ã¼å¦çï¼æ¡ä»¶ãOKã®ãã®ã®ã¿ï¼ 323 --------------------------------*/ 324 if ($.inArray(false,$OK) === -1) { 325 326 if(calendar_day!=""){ 327 yyyymmdd2=calendar_day; 328 }else{ 329 yyyymmdd2=yyyymmdd; 330 } 331 332 //éå¬ä¸ã»åéä¸ã追å ï¼ä¸æ¢ä»¥å¤ï¼ 333 if (json[$num].date_all.indexOf(yyyymmdd) !== -1 && yyyymmdd==yyyymmdd2 && json[$num].marker && !json[$num].marker[9] && !json[$num].marker[95]) { 334 var kaisai = 1; 335 if (json[$num].marker[70]&&!json[$num].marker[5]) { 336 json[$num].marker[4]=markerSetting.data[4]; 337 }else if (json[$num].marker[37]||json[$num].marker[38]||json[$num].hall==="event") { 338 json[$num].marker[60]=markerSetting.data[60]; 339 }else if(json[$num].hall==="gallery"||json[$num].hall==="gallery-en"){ 340 json[$num].marker[39]=markerSetting.data[39]; 341 }else{ 342 json[$num].marker[59]=markerSetting.data[59]; 343 } 344 } 345 346 $.each(json[$num].marker, function(marker_id,marker_data) { 347 if($date_last < nowDay && marker_data.category==="3"){ 348 //çµäºå¯¾å¿ 349 if(marker_id!=9){ 350 delete json[$num].marker[marker_id]; 351 } 352 //}else if(marker_data.category==="4"){ 353 //delete json[$num].marker[marker_id]; 354 }else if(markerSetting.data[marker_id]){ 355 //ãã¼ã«ã¼ãè¨å®ã§ä¸æ¸ã 356 json[$num].marker[marker_id] = markerSetting.data[marker_id]; 357 } 358 }); 359 360 //çµäºã追å
361 if(/*settings.endmarker!==false &&*/$date_last < nowDay && !json[$num].marker[95]){ 362 //json[$num].marker[62]={"id": "62","color": "black","category": "3","name": "çµäº","hidden": "0"}; 363 json[$num].marker[62]=markerSetting.data[62]; 364 }else{ 365 //çºå£²ä¸ã追å 366 if(json[$num].ticket_sale && !json[$num].marker[9] && !json[$num].marker[10]&&!json[$num].marker[94]&&!json[$num].marker[72]){ 367 var ticket_sale = new Date(json[$num].ticket_sale); 368 if(ticket_sale < nowDay){ 369 json[$num].marker[1]=markerSetting.data[1]; 370 delete json[$num].marker[2];//ãäºåããåé¤ 371 delete json[$num].marker[3];//ãè¿æ¥çºå£²ããåé¤ 372 } 373 } 374 } 375 376 } 377 378 379 /*æ¡ä»¶ãæã£ããã¼ã¿ãé åã«å ¥ãã 380 --------------------------------*/ 381 if ($.inArray(false,$OK) === -1) { 382 //kodomoãtrueãªãkodomoãã¼ã¿ãåªå 表示 383 if(settings.kodomo===true && json[$num].kodomo){ 384 $.each(json[$num].kodomo, function(key,val) { 385 if (val.date_all.indexOf(settings.date.date) !== -1) { 386 json[$num].title = '<span class="promenade">'+json[$num].title+'</span>'+val.title; 387 json[$num].schedule = val.schedule; 388 json[$num].schedule_time = ""; 389 json[$num].link = json[$num].link+"#"+val.id; 390 } 391 392 }); 393 } 394 //éè¤ãã§ã㯠395 var Duplication = false; 396 $.each($data, function(index,checkArray) { 397 if(checkArray.key == json[$num].key){ 398 Duplication = true; 399 } 400 }); 401 if(Duplication==false){ 402 $data.push(json[$num]); 403 } 404 405 } 406 407 408 }); 409 } 410 411 /*---------------------------------------- 412 é åé çªæ´å½¢é¢æ° 413 ----------------------------------------*/ 414 function ArrayAdjustment($data){ 415 416 if($data.length > 0){ 417 418 //é åãæ¥ä»ã§ä¸¦ã³æ¿ãã 419 if(settings.sorts.toLowerCase()==='ASC'.toLowerCase()){ 420 var rules=[['date','asc'],['category','asc']]; 421 msort($data,rules); 422 }else if(settings.sorts.toLowerCase()==='DESC'.toLowerCase()){ 423 var rules=[['date','desc'],['category','desc']]; 424 msort($data,rules); 425 } 426 427 //lastnãè¨å®ããã¦ããå ´åã¯é åã®æ°ãããã¾ã§ã«æ¸ãã 428 if(settings.lastn){ 429 $data.splice(settings.lastn, 10000); 430 } 431 432 }else{ 433 //è¨äºã1ã¤ããªããã°NULLãè¿ã 434 $data = null; 435 } 436 437 //é åãè¿ãã¦çµäº 438 if(settings.onComplete){ 439 settings.onComplete($data); 440 } 441 } 442 443 } 444 445})(jQuery); 446 447/** 448 * å¤éã½ã¼ã颿° 449 */ 450function msort(datas,rules){ 451 if(!(datas instanceof Array))throw new Error('datas is not array.'); 452 if(!(rules instanceof Array))throw new Error('rules is not array.'); 453 454 //é åºçªå·ã®ãã©ã¡ã¼ã¿ãçæ 455 var p='_index_'+Math.floor(Math.random()*1000)+((new Date()).getTime()).toString(); 456 457 //ä¸¦ã³æ¿ããã対象ã®äºæ¬¡å é åãã«ã¼ã 458 for(var i1=0,n1=datas.length;i1<n1;i1++){ 459 var n2=rules.length; 460 461 //ä¸¦ã³æ¿ãã®é çªãæå®ããã¦ããªãã¨ãã«ãdatasããå¤ãåãåºãã¦ãé常ã®sortãããé åºæå®ãrules夿°å ã«ä¸æ¸ããã 462 for(var i2=0;i2<n2;i2++){ 463 var key=rules[i2][0]; 464 var rule=rules[i2][1]; 465 if(!(rule instanceof Array)){ 466 var tmp=new Array(n1); 467 for(var i3=0;i3<n1;i3++){ 468 tmp[i3]=datas[i3][key]; 469 } 470 tmp.sort(); 471 if(rule=='desc')tmp.reverse(); 472 rules[i2][1]=new Array(n1); 473 for(var i3=0;i3<n1;i3++){ 474 rules[i2][1][i3]=tmp[i3]; 475 } 476 } 477 } 478 479 //é åºãè¨ç®ããå ¬å¼ã«ãã£ã¦ãé åºçªå·ã®å¤ãä»£å ¥ãã 480 var indexs=new Array(n2); 481 for(var i2=0;i2<n2;i2++){ 482 var key=rules[i2][0]; 483 var rule=rules[i2][1]; 484 var index=rule.indexOf(datas[i1][key]); 485 indexs[i2]=(index>-1)?index:rule.length;
486 for(var i3=i2+1;i3<n2;i3++){ 487 var rule=rules[i3][1]; 488 if(rule instanceof Array){ 489 indexs[i2]*=rule.length+1; 490 } 491 } 492 } 493 datas[i1][p]=0; 494 for(var i2=0;i2<n2;i2++){ 495 datas[i1][p]+=indexs[i2]; 496 } 497 } 498 499 //é åºçªå·ã®å¤ã§ã½ã¼ããã 500 datas.sort(function(a,b){ 501 if(a[p]<b[p])return -1; 502 if(a[p]>b[p])return 1; 503 return 0; 504 }); 505}
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.