1// Cannot be minified because of Recaptch-related code. 2$.ajaxSetup({ cache: false }); 3 4var accountant = accountant || {}; 5 6var accountant = (function () { 7 8 // http://stackoverflow.com/questions/3514784/what-is-the-best-way-to-detect-a-mobile-device-in-jquery 9 var isMobile = false; //initiate as false 10 // device detection 11 if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) 12 || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.
12substr(0, 4))) isMobile = true; 13 14 var _filter = function (element, elementToSearch) { 15 var value = $(element).val().toLowerCase(); 16 17 $(elementToSearch).each(function () { 18 if ($(this).text().toLowerCase().search(value) > -1) { 19 $(this).show(); 20 } else { 21 $(this).hide(); 22 } 23 }); 24 }, 25 _loadReactions = function (take, url) { 26 $.ajax({ 27 url: url + "?reactions-take=" + take, 28 }).done(function (data) { 29 var reactions = $("#reactions-container", data); 30 $('#reactions-container').html(reactions); 31 recheckScrollColumns(); 32 }); 33 34 return false; 35 }, 36 _loadMoreArticles = function (loadMoreButton, loadMoreUrl, htmlSelector, articleSelector, scroll) { 37 var loadMoreContainer = loadMoreButton.attr('data-container-class'); 38 var parsedTake = parseInt(loadMoreButton.attr('data-take')); 39 40 $.ajax({
41 url: loadMoreUrl, 42 }).done(function (data) { 43 var articlesHtml = $(htmlSelector, data); 44 var articlesCount = articlesHtml.length; 45 46 if (articleSelector != undefined) { 47 articlesCount = $(articleSelector, articlesHtml).length 48 } 49 50 /* We retrieved one extra article to determine if we need to hide the load more button */ 51 if (articlesCount > parsedTake) { 52 articlesHtml = articlesHtml.slice(0, articlesHtml.length - 1); 53 } 54 else { 55 loadMoreButton.hide(); 56 } 57 58 $(loadMoreContainer).append(articlesHtml); 59 $(window).scrollTop(scroll); 60 }); 61 }, 62 _initializeLoadMoreButton = function () { 63 $("a.jsShowMoreArticles").on('click', function (event) { 64 event.preventDefault(); 65 66 var scroll = $(window).scrollTop(); 67 var loadMoreButton = $(this); 68 var parsedTake = parseInt($(this).attr('data-take')); 69 var parsedSkip = parseInt($(this).attr('data-skip')); 70 var loadMoreUrl = $(this).attr('data-url') + 71 "loadmorearticles?take=" + (parsedTake + 1) + 72 "&skip=" + parsedSkip + 73 "&folderid=" + $(this).attr('data-folder-id') + 74 "&format=" + $(this).attr('data-format'); 75 var htmlSelector = $(this).attr('data-html-selector'); 76 var articleSelector = $(this).attr('data-article-selector'); 77 78 accountant.loadMoreArticles(loadMoreButton, loadMoreUrl, htmlSelector, articleSelector, scroll); 79 80 $(this).attr('data-skip', parsedSkip + parsedTake); 81 }); 82 }, 83 _loadDisciplinaries = function (url, year) { 84 $.ajax({
85 url: url + "?year=" + year, 86 }).done(function (data) { 87 var disciplinaries = $(".block-list-results", data); 88 89 $('.block-list-results').html(disciplinaries); 90 91 accountant.initializeDisciplinaryButtons(); 92 93 $('html, body').animate({ 94 scrollTop: $('.block-list-results').position().top 95 }, 100, function () { 96 $(".scroll-column-2").attr("style", "padding-top:0px"); 97 recheckScrollColumns(); 98 }); 99 }); 100 101 return false; 102 }, 103 _initializeDisciplinaryButtons = function () { 104 $("a.jsShowMoreCases").on('click', function (event) { 105 event.preventDefault(); 106 107 var loadMoreButton = $(this); 108 var parsedTake = parseInt($(this).attr('data-take')); 109 var parsedSkip = parseInt($(this).attr('data-skip')); 110 var loadMoreUrl = $(this).attr('data-url') + 111 "loadmorearticles?take=" + (parsedTake + 1) + 112 "&skip=" + parsedSkip + 113 "&folderid=" + $(this).attr('data-folder-id') + 114 "&year=" + $(this).attr('data-year'); 115 var htmlSelector = $(this).attr('data-html-selector'); 116 var articleSelector = $(this).attr('data-article-selector'); 117 118 accountant.loadMoreArticles(loadMoreButton, loadMoreUrl, htmlSelector, articleSelector); 119 120 loadMoreButton.attr('data-skip', parsedSkip + parsedTake); 121 }); 122 123 $("a.year-disciplinaries").on('click', function (event) { 124 event.preventDefault(); 125 126 var self = $(this); 127 128 var url = self.data('url'); 129 var year = self.data('year'); 130 131 accountant.loadDisciplinaries(url, year); 132 }); 133 }, 134 _loadDossierResults = function (folder, url) { 135 var querystring = "?folder=" + folder; 136 137 $.ajax({
138 url: url + querystring, 139 }).done(function (data) { 140 var dossierArticles = $(".content-left-column", data); 141 $('.content-left-column').html(dossierArticles[0].innerHTML); 142 143 accountant.initializeLoadMoreButton(); 144 145 recheckScrollColumns(); 146 }); 147 148 return false; 149 }, 150 _extractErrors = function (jqXhr, element) { 151 var data = JSON.parse(jqXhr.responseText); 152 153 if (data.hasOwnProperty('ModelState')) { 154 $(element).next().empty(); 155 156 $.each(data.ModelState, function (key, value) { 157 $(element).next().append($('<li>').text(value[0])); 158 }); 159 } 160 }, 161 _loadComments = function (pageId) { 162 var markup = "<article class='reaction'>" + 163 "<h1>${Name} <time class='left-line'>${Date}</time></h1>" + 164 "<p>{{html Text}}</p>" + 165 "</article>"; 166 167 $.template("commentTemplate", markup); 168 169 $.ajax({
170 url: "/api/comments/" + pageId, 171 type: "GET", 172 accept: "application/json;charset=utf-8", 173 jsonp: "$callback", 174 success: showComments, 175 error: function (jqXhr, status, errorThrown) { 176 $("#reactions-list").html("<p>Het laden van de reacties is niet gelukt.</p>"); 177 } 178 }); 179 180 function returnDateFromString(dateValue) { 181 if (isNaN(Date.parse(dateValue))) { 182 dateValue = dateValue + "0"; 183 if (isNaN(Date.parse(dateValue))) { 184 return new Date(); 185 } 186 } 187 return new Date(dateValue); 188 } 189 190 function showComments(data) { 191 // replace the line breaks with the break html element otherwise it won't be displayed correctly 192 $.each(data, function (item) { 193 data[item].Text = data[item].Text.replace(/(\r\n|\n\r|\r|\n)/g, '<br />'); 194 }); 195 $("#reactions-list").empty(); 196 197 $.tmpl("commentTemplate", data) 198 .appendTo("#reactions-list"); 199 200 $(".article-react-count").text(data.length); 201 202 var reactText = data.length == 1 ? "reactie" : "reacties"; 203 $(".article-react-text").text(reactText); 204 205 var test = ""; 206 var dates = $("#reactions-list time"); 207 $.each(dates, function (index, date) { 208 var dateValue = $(date).text(); 209 var parsedDate = returnDateFromString(dateValue); //new Date(dateValue); 210 test += dateValue + " - " + parsedDate + "\n"; 211 212 $(date).text(parsedDate.getDate() + " " + parsedDate.getMonthName() + " " + parsedDate.getFullYear()); 213 }); 214 215 $.each($("#reactions-list article.reaction"), function (index, item) { 216 var storeId = $(item).find(".rating a.positive").data("storeid"); 217 if (storeId != null) { 218 var commentVoted = accountant.getCookie(accountant.ALREADY_VOTED + storeId); 219 if (undefined != commentVoted) { 220 $(item).find(".rating").addClass("voted"); 221 if (commentVoted == "up") { 222 $(item).find(".rating a.positive").addClass("voted"); 223 } else { 224 $(item).find(".rating a.negative").addClass("voted"); 225 } 226 } 227 } 228 }); 229 recheckScrollColumns(); 230 window.mtcaptcha?.resetUI(); 231 }; 232 }, 233 _search = function (event, pagetype, sortorder) { 234 event.preventDefault(); 235 236 function showResults(data) { 237 $("#search-results").empty(); 238 239 $.tmpl("searchResultsTemplate", data.Results) 240 .appendTo("#search-results"); 241 }; 242 243 function showResultsWithoutTemplate(data) { 244 $("#search-results").empty(); 245 if (data.Results.length > 0) { 246 $.each(data.Results, function (key, value) { 247 var result = "<article class='block-general no-shadow'>" + 248 "<a href='" + value.FriendlyUrl + "' ctype='c' class='article'>" + 249 "<span class='blocktype'>" + value.PageHead + "<time datetime='" + value.StartPublish + "' class='left-line'>" + value.StartPublishString + "</time></span>" + 250 "<h1>" + value.Title + "</h1>" + 251 "<p>" + value.IntroText + "<i class='icon-text-arrow-right'></i></p></a></article>"; 252 $("#search-results").append($.parseHTML(result, null, false)); 253 }); 254 } 255 else { $("#search-results").html("<article class='block-general no-shadow'><span class='article'><p>Er zijn geen resultaten gevonden.</p></span></article>"); } 256 257 }; 258 259 var markup = "<article class='block-general no-shadow'>" + 260 "<a href='${FriendlyUrl}' ctype='c' class='article'>" + 261 "<span class='blocktype'>${PageHead} <time datetime='${StartPublish}' class='left-line'>${StartPublish}</time></span>" + 262 "<h1>${Title}</h1>" + 263 "<p>${IntroText}<i class='icon-text-arrow-right'></i></p>" + 264 "</a>" + 265 "</article>"; 266 267 $.template("searchResultsTemplate", markup); 268 269 var query = { 270 SearchText: $("#query").val(), 271 SortOrder: "" 272 }; 273 274 275 if (pagetype == null || pagetype == '') { 276 var selectedPageTypes = []; 277 var elements = $('.search-wrapper .form-links a.active'); 278 $.each(elements, function () { 279 selectedPageTypes.push($(this).data("pagetype")); 280 }); 281 query.PageTypes = selectedPageTypes; 282 } 283 284 if (sortorder === undefined || sortorder === null || sortorder === "") { 285 286 var selectedSortorder = $(".search-wrapper .form-sortorder a.active"); 287 288 $.each(selectedSortorder, function () { 289 query.SortOrder = $(this).data("sortorder"); 290 }); 291 292 if (query.SortOrder == undefined || query.SortOrder == null) { 293 query.SortOrder = "Relevance"; 294 } 295 } 296 297 if (query.SearchText) { 298 $.ajax({
299 url: "/api/accsearch", 300 type: "POST", 301 data: JSON.stringify(query), 302 contentType: "application/json;charset=utf-8", 303 dataType: "json", 304 jsonp: "$callback", 305 success: showResultsWithoutTemplate, 306 error: function (x, y, z) { 307 $("#search-results").html("<article class='block-general no-shadow'><span class='article'><p>Er zijn geen resultaten gevonden.</p></span></article>"); 308 } 309 }); 310 } 311 312 }, 313 _searchDisciplinary = function (event) { 314 event.preventDefault(); 315 316 function showResultsWithoutTemplate(data) { 317 $("#jsSearchDisciplinaryResults").empty(); 318 319 $.each(data, function (key, value) { 320 var result = "<a href='" + value.FriendlyUrl + "' class='result-row'>" + 321 "<time datetime='" + value.StatementDate + "' class='width-20'>" + value.StatementDateString + "</time>" + 322 "<span class='width-55'>" + value.Title + "</span>" + 323 "<span class='width-25'>" + value.CaseNumber + "</span></a>"; 324 325 $("#jsSearchDisciplinaryResults").append(result); 326 }); 327 }; 328 329 var query = { 330 SearchText: $("#disciplinary-search-value").val(), 331 PageType: "DisciplinaryPageType" 332 }; 333 334 $.ajax({
335 url: "/api/accsearch/disciplinary", 336 type: "POST", 337 data: JSON.stringify(query), 338 contentType: "application/json;charset=utf-8", 339 dataType: "json", 340 jsonp: "$callback", 341 success: showResultsWithoutTemplate, 342 error: function (x, y, z) { 343 $("#jsSearchDisciplinaryResults").append("<div class='result-row'>Er zijn geen resultaten gevonden.</div>"); 344 } 345 }); 346 }, 347 _setCookie = function (name, value, exdays) { 348 var exdate = new Date(); 349 exdate.setDate(exdate.getDate() + exdays); 350 var cookieValue = escape(value) + ((exdays == null) ? "" : "; path=/; expires=" + exdate.toUTCString()); 351 document.cookie = name + "=" + cookieValue; 352 }, 353 _getCookie = function (name) { 354 var i, x, y, cookies = document.cookie.split(";"); 355 for (i = 0; i < cookies.length; i++) { 356 x = cookies[i].substr(0, cookies[i].indexOf("=")); 357 y = cookies[i].substr(cookies[i].indexOf("=") + 1); 358 x = x.replace(/^\s+|\s+$/g, ""); 359 if (x == name) { 360 return unescape(y); 361 } 362 } 363 }, 364 _setSessionValue = function (name, value) { 365 sessionStorage.setItem(name, value); 366 }, 367 _getSessionValue = function (name) { 368 return sessionStorage.getItem(name); 369 }, 370 _getTheorumResults = function (id) { 371 $.ajax({
372 url: "/api/votes/" + id, 373 type: "GET", 374 async: false, 375 success: function (data, textStatus, jqXhr) { 376 var elementsNumber = $(".theorum-results-number span strong"); 377 $(elementsNumber[0]).text(data["Yes"]); 378 $(elementsNumber[1]).text(data["No"]); 379 $(elementsNumber[2]).text(data["Maybe"]); 380 var elementsPercentage = $(".theorum-results-percentage span span"); 381 $(elementsPercentage[0]).text("(" + data["YesPercentage"] + "%)"); 382 $(elementsPercentage[1]).text("(" + data["NoPercentage"] + "%)"); 383 $(elementsPercentage[2]).text("(" + data["MaybePercentage"] + "%)"); 384 } 385 }); 386 }, 387 _updateQueryStringParameter = function (uri, key, value) { 388 var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i"); 389 var separator = uri.indexOf('?') !== -1 ? "&" : "?"; 390 if (uri.match(re)) { 391 return uri.replace(re, '$1' + key + "=" + value + '$2'); 392 } 393 else { 394 return uri + separator + key + "=" + value; 395 } 396 }, 397 _getQueryStringParameter = function (paramName) { 398 var searchString = window.location.search.substring(1), 399 i, val, params = searchString.split("&"); 400 401 for (i = 0; i < params.length; i++) { 402 val = params[i].split("="); 403 if (val[0] == paramName) { 404 return val[1]; 405 } 406 } 407 return null; 408 }, 409 410 // Constants 411 _theorumAlreadyVoted = "theorum-already-voted", 412 _theorumId = "theorum-id", 413 _alreadyVoted = "already-voted-"; 414 415 return { 416 extractErrors: _extractErrors, 417 filter: _filter, 418 loadReactions: _loadReactions, 419 loadComments: _loadComments, 420 loadDossierResults: _loadDossierResults, 421 search: _search, 422 searchDisciplinary: _searchDisciplinary, 423 loadMoreArticles: _loadMoreArticles, 424 initializeLoadMoreButton: _initializeLoadMoreButton, 425 loadDisciplinaries: _loadDisciplinaries, 426 initializeDisciplinaryButtons: _initializeDisciplinaryButtons, 427 setCookie: _setCookie, 428 getCookie: _getCookie, 429 setSessionValue: _setSessionValue, 430 getSessionValue: _getSessionValue, 431 getTheorumResults: _getTheorumResults, 432 updateQueryStringParameter: _updateQueryStringParameter, 433 getQueryStringParameter: _getQueryStringParameter, 434 435 ISMOBILE: isMobile, 436 437 // Constants 438 THEORUM_ALREADY_VOTED: _theorumAlreadyVoted, 439 THEORUM_ID: _theorumId, 440 ALREADY_VOTED: _alreadyVoted 441 }; 442})(); 443 444 445$(function () { 446 // Check whether to disable the vote buttons on the Theorum block 447 var theorumBlocksContainer = $(".theorum-buttons"); 448 if (theorumBlocksContainer.length > 0) { 449 var theorumBlocks = theorumBlocksContainer.find("a[data-vote-type='TheorumBlock']"); 450 var theorumBlock_VoteId = theorumBlocks.data('vote-id'); 451 452 var theorumAlreadyVoted = accountant.getCookie(accountant.THEORUM_ALREADY_VOTED + theorumBlock_VoteId); 453 454 if (theorumAlreadyVoted) { 455 $(".theorum-buttons").hide(); 456 accountant.getTheorumResults(theorumBlock_VoteId); 457 $(".theorum-results-number").show(); 458 $(".theorum-results-percentage").show(); 459 } else { 460 $(".theorum-buttons").show(); 461 $(".theorum-results-number").hide(); 462 $(".theorum-results-percentage").hide(); 463 } 464 } 465 466 //Check to highlight the vote on opinion 467 var opinionId = $("#articleId").val(); 468 if (undefined != opinionId) { 469 var opinionVoted = accountant.getCookie(accountant.ALREADY_VOTED + opinionId); 470 471 if (undefined != opinionVoted) { 472 $("div.judgement").addClass("voted"); 473 if (opinionVoted == "yes") { 474 $("div.judgement a.positive").addClass("voted"); 475 476 } else { 477 $("div.judgement a.negative").addClass("voted"); 478 } 479 } 480 } 481 482 // Check if comments need to be loaded 483 if ($("#article-react-pageid").length == 1) { 484 var pageId = $("#article-react-pageid").val(); 485 accountant.loadComments(pageId); 486 } 487 488 // Check to see if the search bar needs to be opened 489 var fromSearch = accountant.getQueryStringParameter("search"); 490 if (undefined != fromSearch) { 491 492 // open search bar 493 //$('.site-header .icon-search').trigger('click'); 494 } 495 496 // Capture the search form submit 497 $(document).on('submit', '.site-search form', function (e) { 498 e.preventDefault(); 499 accountant.search(e, null, null); 500 });
501 502 $("#disciplinary-search button").on('click', function (e) { 503 e.preventDefault(); 504 $("#jsSearchDisciplinaryResults").empty(); 505 accountant.searchDisciplinary(e); 506 }); 507 508 var delay = (function () { 509 var timer = 0; 510 return function (callback, ms) { 511 clearTimeout(timer); 512 timer = setTimeout(callback, ms); 513 } 514 })(); 515 516 $(document).on('keyup', '.search-wrapper form :text', function (e) { 517 e.preventDefault(); 518 var textbox = $(this); 519 delay(function () { 520 accountant.search(e, null, null); 521 522 var self = $(this); 523 accountant.setSessionValue('search-query', textbox.val()); 524 }, 1000); 525 }); 526 527 $(".search-wrapper .form-sortorder a").on('click', function (e) { 528 e.preventDefault(); 529 530 //var sortorder = $(this).attr('data-sortorder'); 531 532 $(".search-wrapper .form-sortorder a[data-sortorder = 'Relevance']").removeClass('active'); 533 $(".search-wrapper .form-sortorder a[data-sortorder = 'Date']").removeClass('active'); 534 535 $(this).addClass('active'); 536 537 accountant.search(e, null, null); 538 }); 539 540 $("#search-results article").on('click', function (e) { 541 e.preventDefault(); 542 543 var link = $('a', this); 544 var uri = link.attr('href'); 545 546 window.location = accountant.updateQueryStringParameter(uri, "search", "true"); 547 }); 548 549 $(".comment-vote").on('click', function (e) { 550 e.preventDefault(); 551 552 var self = $(this); 553 554 var storeId = $(this).attr('data-storeid'); 555 var vote = $(this).attr('data-vote'); 556 557 var hasAlreadyVoted = accountant.getCookie(accountant.ALREADY_VOTED + storeId); 558 if (undefined != hasAlreadyVoted) return false; 559 560 self.addClass("voted"); 561 self.parent().addClass("voted"); 562 563 var commentVote = { 564 storeId: storeId, 565 vote: vote 566 }; 567 568 $.ajax({
569 url: "/api/comments/vote", 570 type: "POST", 571 contentType: "application/json;charset=utf-8", 572 data: JSON.stringify(commentVote), 573 success: function (data) { 574 var parent = $(self).parent(); 575 $(parent).find('.positive span.number').text(data.Upvote); 576 $(parent).find('.negative span.number').text(data.Downvote); 577 578 accountant.setCookie(accountant.ALREADY_VOTED + storeId, vote, 365); 579 } 580 }); 581 582 return false; 583 584 }); 585 586 $(".vote").on('click', function (e) { 587 e.preventDefault(); 588 589 var self = $(this); 590 var voteId = self.data('vote-id'); 591 var value = self.data('vote-value'); 592 var voteType = self.data('vote-type'); 593 594 595 if (voteType == "TheorumBlock") { 596 597 var cookieName = accountant.THEORUM_ALREADY_VOTED + voteId; 598 accountant.setCookie(cookieName, true, 365); 599 600 $(".theorum-buttons").hide(); 601 accountant.getTheorumResults(voteId); 602 $(".theorum-results-number").show() 603 $(".theorum-results-percentage").show() 604 } 605 else { 606 var cookieName = accountant.ALREADY_VOTED + voteId; 607 608 var hasAlreadyVoted = accountant.getCookie(accountant.ALREADY_VOTED + voteId); 609 if (undefined != hasAlreadyVoted) return false; 610 611 accountant.setCookie(cookieName, value, 365); 612 self.addClass("voted"); 613 self.parent().addClass("voted"); 614 } 615 616 var voteItem = { 617 id: voteId, 618 vote: value, 619 voteType: voteType 620 } 621 622 $.ajax({
623 url: "/api/votes", 624 type: "POST", 625 contentType: "application/json;charset=utf-8", 626 data: JSON.stringify(voteItem), 627 success: function (data) { 628 if (voteType == "TheorumBlock") { 629 var items = $(self).parent().parent(); 630 var elementsNumber = (items).find(".theorum-results-number span strong"); 631 $(elementsNumber[0]).text(data["Yes"]); 632 $(elementsNumber[1]).text(data["No"]); 633 $(elementsNumber[2]).text(data["Maybe"]); 634 var elementsPercentage = (items).find(".theorum-results-percentage span span"); 635 $(elementsPercentage[0]).text("(" + data["YesPercentage"] + "%)"); 636 $(elementsPercentage[1]).text("(" + data["NoPercentage"] + "%)"); 637 $(elementsPercentage[2]).text("(" + data["MaybePercentage"] + "%)"); 638 } 639 else { 640 if ($(self).hasClass("positive")) { 641 $(self).find(".icon-thumbs-up").text(" " + data.Yes); 642 } 643 else { 644 $(self).find(".icon-thumbs-down").text(" " + data.No); 645 } 646 } 647 } 648 }); 649 650 return false; 651 }); 652 653 $(".newsletter-form form").on("submit", function (event) { 654 var newsLetterItem = { 655 email: $(".newsletter-form form input[name='email']").val(), 656 token: $(".newsletter-form form input[name='mtcaptcha-verifiedtoken']").val() 657 }; 658 $.ajax({
659 url: "/api/newsletter/", 660 type: "POST", 661 contentType: "application/json;charset=utf-8", 662 data: JSON.stringify(newsLetterItem), 663 success: function (data, textStatus, jqXhr) { 664 $('.newsletter-form form .text').removeClass("error"); 665 $('.newsletter-form form .error-notice').hide(); 666 $(".newsletter-form form input[name='email']").val(""); 667 var newDoc = document.open("text/html", "replace"); 668 newDoc.write(data); 669 newDoc.close(); 670 window.mtcaptcha?.resetUI(); 671 }, 672 error: function (jqXhr, status, errorThrown) { 673 $('.newsletter-form form .text').addClass("error"); 674 var errorMessage = $(".newsletter-form form input[name='email']").data('error-message'); 675 $('.newsletter-form form .error-notice').empty(); 676 $('.newsletter-form form .error-notice').append(errorMessage); 677 $('.newsletter-form form .error-notice').show(); 678 window.mtcaptcha?.resetUI(); 679 } 680 }); 681 682 return false; 683 684 }); 685 686 $("#send-page-form").on("submit", function (event) { 687 var sendPage = { 688 toEmailAddress: $('#toEmail').val(), 689 toName: $('#toName').val(), 690 fromEmailAddress: $('#fromEmail').val(), 691 fromName: $('#fromName').val(), 692 bodyText: $('#bodyText').val(), 693 url: $(this).data("pageurl"), 694 pageTitle: $(this).data("pagetitle") 695 }; 696 $.ajax({
697 url: "/api/sendpage/", 698 type: "POST", 699 contentType: "application/json;charset=utf-8", 700 data: JSON.stringify(sendPage), 701 success: function (data) { 702 $('#toEmail').val(''); 703 $('#toName').val(''); 704 $('#fromEmail').val(''); 705 $('#fromName').val(''); 706 $('#bodyText').val(''); 707 708 checkPlaceholders(); 709 710 $('.block-email-form').toggleClass('visible'); 711 }, 712 error: function (jqXhr, status, errorThrown) { 713 $("#send-page-form .form-group span").removeClass('error'); 714 if (jqXhr.responseJSON != null) { 715 var modelState = jqXhr.responseJSON.ModelState; 716 if (modelState != null) { 717 if (modelState.hasOwnProperty('sendPageEmail.ToName')) { 718 $('#toName').parent().addClass('error'); 719 } 720 if (modelState.hasOwnProperty('sendPageEmail.ToEmailAddress')) { 721 $('#toEmail').parent().addClass('error'); 722 } 723 if (modelState.hasOwnProperty('sendPageEmail.FromName')) { 724 $('#fromName').parent().addClass('error'); 725 } 726 if (modelState.hasOwnProperty('sendPageEmail.FromEmailAddress')) { 727 $('#fromEmail').parent().addClass('error'); 728 } 729 if (modelState.hasOwnProperty('sendPageEmail.BodyText')) { 730 $('#bodyText').parent().addClass('error'); 731 } 732 } 733 } 734 } 735 }); 736 return false; 737 }); 738 739 $("#article-react-form").on("submit", function (event) { 740 var commentItem = { 741 pageId: $('#article-react-pageid').val(), 742 name: $('#article-react-name').pVal(), 743 email: $('#article-react-email').pVal(), 744 notify: $('#article-react-notify').is(':checked'), 745 comment: $('#article-react-comment').pVal(), 746 token: $(".article-react input[name='mtcaptcha-verifiedtoken']").val() 747 }; 748 749 $.ajax({
750 url: "/api/comments/", 751 type: "POST", 752 contentType: "application/json;charset=utf-8", 753 data: JSON.stringify(commentItem), 754 success: function (data, textStatus, jqXhr) { 755 $('.form-errors').empty(); 756 $('#article-react-name').val(""); 757 $('#article-react-email').val(""); 758 $('#article-react-comment').val(""); 759 window.mtcaptcha?.resetUI(); 760 761 checkPlaceholders(); 762 763 // Clear all errors 764 $(".site-reactions form input").removeClass('error'); 765 $(".site-reactions form div.error-notice").empty(); 766 767 768 var pageId = $('#article-react-pageid').val(); 769 accountant.loadComments(pageId); 770 771 $('.site-reactions').animate({ 772 scrollTop: $('#reactions-list').position().top + 50 773 }); 774 775 if (data.IsVerifiedEmail == false) { 776 $("#EmailConfirmationNotification").show(); 777 } 778 }, 779 error: function (jqXhr, status, errorThrown) { 780 781 // Clear all errors 782 $(".site-reactions form input").removeClass('error'); 783 $(".site-reactions form div.error-notice").empty(); 784 785 // Set errors 786 var errorMessage = ""; 787 var element = "#article-react-form"; 788 var data = JSON.parse(jqXhr.responseText); 789 if (data.hasOwnProperty('errors') || data.hasOwnProperty('NumberOfReactions')) { 790 $(element).next().empty(); 791 } 792 793 if (data.hasOwnProperty('errors')) { 794 if (data.errors.hasOwnProperty('Name')) { 795 errorMessage = data.errors['Name'][0]; 796 $('#article-react-name').addClass('error'); 797 $('#article-react-name').next('div.error-notice').append(errorMessage); 798 } 799 800 if (data.errors.hasOwnProperty('Email')) { 801 errorMessage = data.errors['Email'][0]; 802 $('#article-react-email').addClass('error'); 803 $('#article-react-email').next('div.error-notice').append(errorMessage); 804 } 805 806 if (data.errors.hasOwnProperty('Comment')) { 807 errorMessage = data.errors['Comment'][0]; 808 $('#article-react-comment').next('div.error-notice').append(errorMessage); 809 } 810 811 if (data.errors.hasOwnProperty('Token')) { 812 $('#article-react-captcha').addClass('error'); 813 $('#article-react-captcha').next('div.error-notice').append("De captcha is vereist"); 814 } 815 816 if (data.errors.hasOwnProperty('Captcha')) { 817 $('#article-react-captcha').addClass('error'); 818 $('#article-react-captcha').next('div.error-notice').append("De captcha is niet correct"); 819 window.mtcaptcha?.resetUI(); 820 } 821 } 822 823 if (data.hasOwnProperty('NumberOfReactions')) { 824 $('div.number-of-reactions.error-notice').append("Uw mag maximaal drie reacties geven bij een artikel"); 825 } 826 } 827 }); 828 829 return false; 830 }); 831 832 $("a.more-reactions").on('click', function (event) { 833 event.preventDefault(); 834 var take = $("a.more-reactions").attr('data-take'); 835 var number = $("a.more-reactions").attr('data-number'); 836 var url = $("a.more-reactions").attr('data-url'); 837 838 accountant.loadReactions(take, url); 839 840 take = parseInt(take) + parseInt(number); 841 $("a.more-reactions").attr('data-take', take); 842 843 accountant.loadReactions(take, url); 844 }); 845 846 $("div.theme-filters a").on('click', function (event) { 847 event.preventDefault(); 848 849 var self = $(this); 850 851 var folder = self.data('folder'); 852 var url = self.data('url'); 853 854 accountant.loadDossierResults(folder, url); 855 856 /* Remove all active classes on the links and set the active on the clicked link */ 857 $("div.theme-filters a").removeClass("active"); 858 self.addClass("active"); 859 });
860 861 accountant.initializeLoadMoreButton(); 862 863 accountant.initializeDisciplinaryButtons(); 864 865 $("#job-search-block button").on('click', function (e) { 866 e.preventDefault(); 867 var query = $.trim($("#jobSearch").val()); 868 var template = $("#job-search-form").attr('data-search-url'); 869 if (!query || !template) { 870 return; 871 } 872 var url = template.replace('{{searchterm}}', encodeURIComponent(query)); 873 window.open(url, '_blank'); 874 }); 875 876 /* Specific binds for salary calculator */ 877 $(".block-salary-widget .next-step").on('click', function (e) { 878 e.preventDefault(); 879 880 var nextStep = 1; 881 var currentStep = 0; 882 if (!$(this).hasClass('first-step')) { 883 nextStep = $(this).parent().find("a.active").data('next-question'); 884 currentStep = $(this).parent().find("a.active").data('current-question'); 885 } 886 887 if (nextStep == undefined) { 888 return; 889 } 890 891 $(".block-salary-widget").data('current-step', currentStep); 892 $('.block-salary-widget .step-block:visible').fadeOut(500, function () { 893 $('.block-salary-widget .step-' + nextStep).fadeIn(); 894 }); 895 }); 896 897 $(".block-salary-widget .prev-step").on('click', function (e) { 898 e.preventDefault(); 899 900 var prevStep = 0; 901 if (!$(this).hasClass('last-step')) { 902 prevStep = $(".block-salary-widget").data('current-step'); 903 } 904 905 $(".block-salary-widget").data('current-step', prevStep - 1); 906 $('.block-salary-widget .step-block:visible').fadeOut(500, function () { 907 $('.block-salary-widget .step-' + prevStep).fadeIn(); 908 }); 909 }); 910 911 $(".block-salary-widget .answer").on('click', function (e) { 912 e.preventDefault(); 913 $(this).parent().find('.answer').removeClass('active'); 914 $(this).addClass('active'); 915 }); 916 917 $(document).on('touchend', '.article-page-prev, .article-page-next', function (e) { 918 var $this = $(this); 919 if (!$this.hasClass('hover')) { 920 e.preventDefault(); 921 $this.addClass('hover'); 922 } 923 }); 924 925 Date.prototype.getMonthName = function (lang) { 926 lang = lang && (lang in Date.locale) ? lang : 'nl'; 927 return Date.locale[lang].month_names[this.getMonth()]; 928 }; 929 930 Date.prototype.getShortMonthName = function (lang) { 931 lang = lang && (lang in Date.locale) ? lang : 'nl'; 932 return Date.locale[lang].month_names_short[this.getMonth()]; 933 }; 934 935 Date.locale = { 936 nl: { 937 month_names: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], 938 month_names_short: ['jan', 'feb', 'mar', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'] 939 } 940 }; 941}); 942 943// Helper methods (from: http://stackoverflow.com/a/11208765) 944$.fn.pVal = function () { 945 var $this = $(this), 946 val = $this.eq(0).val(); 947 if (val === $this.attr("placeholder")) 948 return undefined; 949 else 950 return val; 951}
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.