Guest User

Untitled

a guest
Jun 20th, 2012
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.33 KB | None | 0 0
  1. Javascript Hanging UI on IE6/7
  2. function updateFilters(currentCheck) {
  3. if (currentCheck == undefined || (currentCheck != undefined && currentCheck.disabled == false)) {
  4. var delay = 0;
  5. if(document.getElementById('loader').style.display == 'none') {
  6. $('#loader').css('display', 'block');
  7. delay = 750;
  8. }
  9. $('#loader').delay(delay).hide(0, function(){
  10. if (markers.length > 0) {
  11. clearMarkers();
  12. }
  13.  
  14. var filters = document.aspnetForm.filters;
  15. var markerDataArray = [];
  16. var filterCount = 0;
  17. var currentfilters = '';
  18. var infoWindow = new google.maps.InfoWindow({});
  19.  
  20. for (i = 0; i < filters.length; i++) {
  21. var currentFilter = filters[i];
  22. if (currentFilter.checked == true) {
  23. var filtername;
  24. if (currentFilter.parentNode.getElementsByTagName('a')[0].textContent != undefined) {
  25. filtername = currentFilter.parentNode.getElementsByTagName('a')[0].textContent;
  26. } else {
  27. filtername = currentFilter.parentNode.getElementsByTagName('a')[0].innerText;
  28. }
  29. currentfilters += '<li>' + $.trim(filtername) +
  30. $.trim(document.getElementById('remhide').innerHTML).replace('#"','#" onclick="toggleCheck('' + currentFilter.id + '');return false;"');
  31.  
  32. var nextFilterArray = [];
  33. filterCount++;
  34. for (k = 0; k < filterinfo.length; k++) {
  35. var filtertype = filterinfo[k][0];
  36. if (filterinfo[k][0] == currentFilter.id) {
  37. var sitearray = filterinfo[k][1];
  38. for (m = 0; m < sitearray.length; m++) {
  39. var thissite = sitearray[m].split(',');
  40. if (filterCount > 1) {
  41. nextFilterArray.push(thissite[2] + '|' + thissite[1]
  42. + '|' + thissite[0]);
  43. } else {
  44. markerDataArray.push(thissite[2] + '|' + thissite[1]
  45. + '|' + thissite[0]);
  46. }
  47. }
  48. }
  49. }
  50. if (filterCount > 1) {
  51. var itemsToRemove = [];
  52. for (j = 0; j < markerDataArray.length; j++) {
  53. var exists = false;
  54. for (k = 0; k < nextFilterArray.length; k++) {
  55. if (markerDataArray[j] == nextFilterArray[k]) {
  56. exists = true;
  57. }
  58. }
  59. if (exists == false) {
  60. itemsToRemove.push(j);
  61. }
  62. }
  63. var itemsRemoved = 0;
  64. for (j = 0; j < itemsToRemove.length; j++) {
  65. markerDataArray.splice(itemsToRemove[j]-itemsRemoved,1);
  66. itemsRemoved++;
  67. }
  68. }
  69. }
  70. }
  71.  
  72.  
  73. if (currentfilters != '') {
  74. document.getElementById('appliedfilters').innerHTML = currentfilters;
  75. document.getElementById('currentfilters').style.display = 'block';
  76. } else {
  77. document.getElementById('currentfilters').style.display = 'none';
  78. }
  79.  
  80. if (filterCount < 1) {
  81. for (j = 0; j < filterinfo.length; j++) {
  82. var filtertype = filterinfo[j][0];
  83. if (filterinfo[j][0] == 'allvalidsites') {
  84. var sitearray = filterinfo[j][1];
  85. for (m = 0; m < sitearray.length; m++) {
  86. var thissite = sitearray[m].split(',');
  87. markerDataArray.push(thissite[2] + '|' + thissite[1]
  88. + '|' + thissite[0]);
  89. }
  90. }
  91. }
  92. }
  93.  
  94. var infoWindow = new google.maps.InfoWindow({});
  95.  
  96. var resultHTML = '<div id="page1" class="page"><ul>';
  97.  
  98. var count = 0;
  99. var page = 1;
  100. var paging = '<li class="selected"><a href="#" title="' + page + '" onclick="togglePaging('' + page + '');return false;">1</a></li>';
  101.  
  102. for (i = 0; i < markerDataArray.length; i++) {
  103. var markerInfArray = markerDataArray[i].split('|');
  104. var url = '';
  105. var name = '';
  106. var placename = '';
  107. var region = '';
  108. var summaryimage = 'images/controls/placeholder.gif';
  109. var summary = '';
  110. var flag = 'images/controls/placeholderf.gif';
  111.  
  112. for (j = 0; j < tsiteinfo.length; j++) {
  113. var thissite = tsiteinfo[j].split('|');
  114. if (thissite[0] == markerInfArray[2]) {
  115. name = thissite[1];
  116. placename = thissite[2];
  117. region = thissite[3];
  118. if (thissite[4] != '') {
  119. summaryimage = thissite[4];
  120. }
  121. summary = thissite[5];
  122. if (thissite[6] != '') {
  123. flag = thissite[6];
  124. }
  125. }
  126. }
  127.  
  128. for (k = 0; k < sitemapperinfo.length; k++) {
  129. var thissite = sitemapperinfo[k].split('|');
  130. if (thissite[0] == markerInfArray[2]) {
  131. url = thissite[1];
  132. }
  133. }
  134.  
  135. var markerLatLng = new google.maps.LatLng(markerInfArray[1].toString(), markerInfArray[0].toString());
  136.  
  137. var infoWindowContent = '<div class="infowindow">' + markerInfArray[2] + ': ';
  138.  
  139. var siteurl = approot + '/sites/' + url;
  140.  
  141. infoWindowContent += '<a href="' + siteurl + '" title="' + name + '"><strong>' + name + '</strong></a>';
  142. infoWindowContent += '<br /><br/><em>' + placename + ', ' + region + '</em></div>';
  143.  
  144. marker = new google.maps.Marker({
  145. position: markerLatLng,
  146. title: $("<div/>").html(name).text(),
  147. shadow: shadow,
  148. icon: image
  149. });
  150. addInfo(infoWindow, marker, infoWindowContent);
  151.  
  152. markers.push(marker);
  153.  
  154. count++;
  155. if ((count > 20) && ((count % 20) == 1)) { // 20 per page
  156. page++;
  157. resultHTML += '</ul></div><div id="page' + page + '" class="page"><ul>';
  158. paging += '<li><a href="#" title="' + page + '" onclick="togglePaging('' + page + '');return false;">' + page + '</a></li>';
  159. }
  160.  
  161. resultHTML += '<li><div class="namehead"><h2>' + name + ' <span>' + placename + ', ' + region + '</span></h2></div>' +
  162. '<div class="codehead"><h2><img alt="' + region + '" src="' + approot +
  163. '/' + flag + '" /> ' + markerInfArray[2] + '</h2></div>' +
  164. '<div class="resultcontent"><img alt="' + name + '" src="' + approot +
  165. '/' + summaryimage +'" />' + '<p>' + summary + '</p>' + document.getElementById('buttonhide').innerHTML.replace('#',siteurl) + '</div></li>';
  166. }
  167.  
  168. $('#filteredmap .paging').each(function(){
  169. $(this).html(paging);
  170. });
  171.  
  172. document.getElementById('resultslist').innerHTML = resultHTML + '</ul></div>';
  173. document.getElementById('count').innerHTML = count + ' ';
  174. document.getElementById('page1').style.display = 'block';
  175.  
  176. for (t = 0; t < markers.length; t++) {
  177. markers[t].setMap(filteredMap);
  178. }
  179. });
  180. }
  181. }
  182.  
  183. function clearMarkers() {
  184. for (i = 0; i < markers.length; i++) {
  185. markers[i].setMap(null);
  186. markers[i] = null;
  187. }
  188. markers.length = 0;
  189. }
Advertisement
Add Comment
Please, Sign In to add comment