$(document).ready(prepSiteMap);

function prepSiteMap() {
   $('.sm_node').click(openBranch);
}

function openBranch(ev) {
   ev.stopPropagation();

   $(this).children('.sm_children').toggle(200, function () {
      var plusminIcon = $(this).prev().prev().prev();
      plusminIcon.attr('src', getInvertedIconSrc( plusminIcon.attr('src') ));
   });

   function getInvertedIconSrc(src) {
      if (/_plus/.test(src)) {
         return src.replace('_plus', '_min');
      }
      else {
         return src.replace('_min', '_plus');
      }
   }
}
