document.observe("dom:loaded", function() {
    aufklappen();
  }
);

var id_prefix = 'id-';
var menu_item_id_prefix = 'menu-item-for-';
var content_suffix = '-content';

function aufklappen() {
  if (IE6) {
    return true;
  }

  var anchor = window.location.hash;
  
  if (anchor == null || anchor == '') {
     return true;
   }
   else {
     // go_home();
   }
  
  anchor = anchor.replace(/#/, '');
  path_elements = anchor.split("/");

  if (path_elements.size() == 1 && path_elements[0] != '') {
    load_main_section(path_elements.first(), "id-" + path_elements.first());
  }
  
  if (path_elements.size() == 2) {
    load_main_section(path_elements.last(), "id-" + path_elements.first());
  }

  return false;
}

function load_main_section(url_slug, section) {
  new Ajax.Request('/main_area/' + url_slug,
    {
      method:'get',
      onSuccess: function(transport) {
        var response = transport.responseText;
        $(section + content_suffix).innerHTML=response;
        $(section + content_suffix).hide();
        go_to(section);
        pageTracker._trackPageview(url_slug);
      },
      onFailure: function() {
        window.location.href = "/404.html"
      }
    });
  return false;
}


function bookmark(main, detail) {
  var s = main;
  if (detail != null && detail != '') {
    s = s +  "/" + detail;
  }
  
  if (Prototype.Browser.Gecko && s == '') {
    s = '#';
  }
  
  window.location.hash = s;
  
  if (window.location.pathname != '/') {
    window.location.pathname = '/';
    window.location.hash = s;
    aufklappen();
  }
}

function go_and_bookmark(section, main_url_slug, detail_url_slug) {
  if (IE6) {
		var current_section = $(section);
		if (current_section.hasClassName('up')) {
			current_section.toggleClassName("up");
			$(section + '-content').toggle();
			return false;
		} else {
			return true;
		}
  }

  bookmark(main_url_slug, detail_url_slug);

  if (!$(section).hasClassName('up')) {
    return load_main_section(main_url_slug, section);
  }
  else {
    return go_home();
  }
}

function go_home() {
  if (IE6) {
    return true;
  }

  close_sections(sections);
  new Effect.ScrollTo('container', { duration: 0.5 });
  var logo = $('logo');
  if (!logo.hasClassName("is_home")) {
    $('header').removeClassName("fixed_header");
    $('content').removeClassName("scrolling_content");
    new Effect.BlindDown($('visual'), { duration: 0.5 });
    logo.addClassName("is_home");
  }
  bookmark('');
  
  return false;
}

function go_to(section_name) {
  if (IE6) {
    return true;
  }

  var logo = $('logo');
  if (logo.hasClassName("is_home")) {
    new Effect.BlindUp($('visual'), { duration: 0.5 });
    window.setTimeout(function() {
        $('header').addClassName("fixed_header");
        $('content').addClassName("scrolling_content");
      }, 500);
    logo.removeClassName("is_home");
  }
  close_sections(sections.without(section_name));
  new Effect.ScrollTo('container', { duration: 0.5 });
  Effect.toggle(section_name + content_suffix, "blind", { duration: 0.5 });
  $(section_name).toggleClassName("up");

  return false;
}

function go_to_sub(section_name, main_url_slug, detail_url_slug) {
  if (IE6) {
    return true;
  }

  bookmark(main_url_slug, detail_url_slug);
  new Ajax.Request('/main_area/' + detail_url_slug,
    {
      method:'get',
      onSuccess: function(transport) {
        var response = transport.responseText;
        $(section_name + content_suffix).innerHTML = response;
      },
      onFailure: function() { 
        window.location.href = "/404.html"
      }
    });
  return false;
}

function scroll_to_logo() {
  var logo = $("logo")
  if (logo.hasClassName("is_home")) {
    new Effect.ScrollTo(logo, { duration: 0.5, queue: 'front' });
    logo.toggleClassName("is_home");
  }
}

function close_sections(section_names) {
  section_names.each(function(section_name) {
    var section = $(section_name);
    if (section.hasClassName("up")) {
      new Effect.BlindUp(section_name + '-content', { duration: 0.5 });
      section.removeClassName("up");
    }
  });
}
