(function() {
  var domLoaded = 0;
  var ie6 = (/MSIE 6/i).test(navigator.userAgent);

  document.observe("dom:loaded", function() {
    if (domLoaded > 0) {
      return false;
    }
	if ($('navFooter') && $('logo')) {
    if (ie6) {
      $$('#navUser-status, #navCommunity-share, #nav li').each(function(el) {
        Event.observe(el, 'mouseover', function() {
          this.addClassName('hover');
        });
        Event.observe(el, 'mouseout', function() {
          this.removeClassName('hover');
        });
      });
    }
    // setting up search
    $('header-search-box').addClassName('js-enabled-search');
	$$('#footer-search form')[0].addClassName('js-enabled-search');
    (function(){
      var methods = {
        defaultValueActsAsHint: function(element){
          element = $(element);
		  element.value = '';
          element._default = element.value;

          return element.observe('focus', function() {
            if (element._default !== element.value) {
              return false;
            }
            element.removeClassName('default').value = '';
          }).observe('blur', function() {
            if (element.value.strip() !== '') {
              return false;
            }
            element.addClassName('default').value = element._default;
          });
        }
      };

      methods.defaultValueActsAsHint($$('#header-search-box input.default')[0]);
	  methods.defaultValueActsAsHint($$('#footer-search input.default')[0]);
    })();
      var setupSearch = function(el) {
     var searchForm = $$(el)[0];
     var timer;
     searchForm.getElementsBySelector('.field')[0].insert('<div class="select"><div class="label"></div><ul></ul></div>');
     searchForm.getElementsBySelector('select option').each(function(el) {
       searchForm.getElementsBySelector('.select ul')[0].insert('<li><a>' + el.innerHTML + '</a></li>');
     });
     searchForm.getElementsBySelector('.select .label')[0].insert(searchForm.getElementsBySelector('select option')[0].innerHTML);
     Event.observe(searchForm.getElementsBySelector('.select .label')[0], 'click', function() {
       $(this).next('ul').setStyle({display: 'block'});
     });
     searchForm.getElementsBySelector('li').each(function(el) {
       Event.observe(el, 'click', function(e) {
         var itemIndex = searchForm.getElementsBySelector('ul li').indexOf($(this));
         searchForm.getElementsBySelector('select')[0].selectedIndex = [itemIndex];
         searchForm.getElementsBySelector('.select .label')[0].update(searchForm.getElementsBySelector('select option')[itemIndex].innerHTML);
         searchForm.getElementsBySelector('ul')[0].setStyle({display: 'none'});
         Event.stop(e);
       });
     });
     Event.observe(searchForm.getElementsBySelector('.select')[0], 'mouseout', function() {
       timer = setTimeout(function() {
         searchForm.getElementsBySelector('ul')[0].hide();
       }, 500);
     });
     Event.observe(searchForm.getElementsBySelector('.select')[0], 'mouseover', function() {
       clearTimeout(timer);
     });
   };
   setupSearch('#header-search-box');
   setupSearch('#footer-search form');

    // setting up footer
    var setupFooter = function() {
      var footerNavDesc = $$('#navFooter .navFooter-description');
      var footerNavLinks = $$('#navFooter .navFooter-links');

      maxNavHeight = maxLinksHeight = 0;
      for (var i = 0; i < footerNavDesc.length; i++) {
        var fndHeight = footerNavDesc[i].getHeight()  - parseInt(footerNavDesc[i].getStyle('padding-top'), 10) - parseInt(footerNavDesc[i].getStyle('padding-bottom'), 10);
        var fnlHeight = footerNavLinks[i].getHeight() - parseInt(footerNavLinks[i].getStyle('padding-top'), 10) - parseInt(footerNavLinks[i].getStyle('padding-bottom'), 10);
        maxNavHeight = (maxNavHeight < fndHeight) ? fndHeight : maxNavHeight;
        maxLinksHeight = (maxLinksHeight < fnlHeight) ? fnlHeight : maxLinksHeight;
      }
      footerNavDesc.each(function(el) {
        el.setStyle({height: maxNavHeight + 'px'});
      });
      footerNavLinks.each(function(el) {
        el.setStyle({height: maxLinksHeight + 'px'});
      });

      return true;
    };
    setupFooter();

	// courtesy to gmail.google.com for inspiring these functions
	var CP=[[9433600000,10000],[1219045396919,905000],[4957328000000,242500000],[44793611600000,Number.MAX_VALUE]];
	var ExpCount;
	function updateExperienceCount() {
		if (!ExpCount) {
			ExpCount = $("experiencesShared-counter");
			//updateExperienceCount();
		}
		var now = (new Date()).getTime();
		var i;
		for (i = 0; i < CP.length; i++) {
			if (now < CP[i][0]) {
				break;
			}
		}
		if (i == 0) {
			//setTimeout(updateExperienceCount, 1000);
		} else {
			var ts = CP[i - 1][0];
			var bs = CP[i - 1][1];
			var count = addCommas(Math.round(((( (now-ts) / (CP[i][0]-ts)) * (CP[i][1]-bs)) + bs)));
			ExpCount.innerHTML = addExperienceCounterHeaderStyling(count);
			if ($("ep-intro-counter")) {
				$("ep-intro-counter").innerHTML = count;
			}
			if ($("ep-thin-intro-counter")) {
				$("ep-thin-intro-counter").innerHTML = count;
			}
			var nr=Math.floor(Math.random()*3); //don't swamp js engine
			//setTimeout(updateExperienceCount, nr*1000);
		}
	}
	function addCommas(nStr)
	{
		nStr += '';
		var x = nStr.split('.');
		var x1 = x[0];
		var x2 = x.length > 1 ? '.' + x[1] : '';
		var rgx = /(\d+)(\d{3})/;
		while (rgx.test(x1)) {
			x1 = x1.replace(rgx, '$1' + ',' + '$2');
		}
		return x1 + x2;
	}
	function addExperienceCounterHeaderStyling(nStr)
	{
		var out = "";
		var ch;
		for (var i=0; i< nStr.length; i++) {
			ch = nStr.charAt(i);
			if (ch == ',') {
				out += '<span class="counter-comma">,</span>';
			} else {
				out += '<span class="counter-' + ch + '">' + ch + '</span>';
			}
		}
		return out;
	}
	updateExperienceCount();


	}
  });
})();