Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 20th, 2012  |  syntax: None  |  size: 8.33 KB  |  hits: 11  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  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. }