function faq_minusIcon(id, hashval) {
  faq_replace(id, hashval, "minus");
}

function faq_plusIcon(id, hashval) {
  faq_replace(id, hashval, "plus");
}

function faq_replace(id, hashval, replacement) {
  var img = document.getElementById("irfaq_pm_" + id + '_' + hashval );
  var regex = new RegExp("(plus|minus)" + ".gif$");
  img.src = img.src.replace(regex,  replacement + ".gif");
}

function toggleFAQ(id, hashval) {
  // remember old entry to close it afterwards
  var entryClass = document.getElementById( 'faq_' + id + '_' + hashval).className;

  // close all faqentries
  var entries = document.getElementsByTagName( 'dd');
  for (var i = 0; i < entries.length; i++) {
    var entry = entries[i];
    if(entry.className == 'tx-irfaq-dynans-visible') {
      entry.className = 'tx-irfaq-dynans-hidden';
      var matching = entry.id.match(/faq_(\d+)_(.*)/);
      var did = matching[1];
      var dhashval = matching[2];
      faq_plusIcon(did, dhashval);
    }
  }
  var entry = document.getElementById( 'faq_' + id + '_' + hashval);

  // show active link
  if(entryClass == 'tx-irfaq-dynans-visible') {
	entry.className = 'tx-irfaq-dynans-hidden';
	faq_plusIcon(id, hashval);
  } else {
	entry.className = 'tx-irfaq-dynans-visible';
	faq_minusIcon(id, hashval);
  }
}

// opens the corresponding menu entry
function showElement(event){
  // close all menu entries
  //  var entries = document.getElementsByName('closer');
  var entries = document.getElementsByTagName('ul');
  for (var i = 0; i < entries.length; i++) {
    if(entries[i].className == 'navigation') {
      entries[i].style.display = 'none';
    }
  }


  var id;
  var links = document.getElementsByTagName('a');
  for (var i = 0; i < links.length; i++) {
    var link = links[i];
    if(link.name == 'MenuEntry') {
	if(link.rel == event.path)
		id = link.id.match(/\d+$/)[0];
    } else if(link.name == 'SubMenuEntry') {
	if(link.rel == event.path)
		id = link.id.match(/\d+$/)[0];
    }

  }
  open_menu_element(id);
}

function open_menu_element(id) {
  // open the requested one by calling parent closer or closer below
  var myLink = document.getElementById('menu_'+id);
  if( myLink != null) {
    // call parent closer
    if( myLink.name == 'SubMenuEntry') {
      myLink.parentNode.parentNode.style.display="block";
    } else if( myLink.name == 'MenuEntry') {
      var myLayer = document.getElementById('closer_'+id);
      if( myLayer != null) {
	myLayer.style.display="block";
      }
    }
  }

  // tag link red
  var index, rel, links = document.getElementsByTagName('a');
  for (var i = 0, l, link; link = links[i]; i++) {
    link.className = link.id == ('menu_'+id) ? 'selected' : '';
  }

}


// <![CDATA[
function getTransport() {
    if (window.XMLHttpRequest) {
	return new XMLHttpRequest();
    } else if (window.ActiveXObject) {
	try {
	    return new ActiveXObject('Msxml2.XMLHTTP');
	} catch(e) {
	    return new ActiveXObject('Microsoft.XMLHTTP');
	}
    }
}

function onClickInternalLink(event) {
    var id = this.search.match(/id=(\d+)/)[1];
    SWFAddress.setValue(id);
    return false;
}

function updateInternalLinks() {
    // add ajax style to internal links
    // var link, links = document.getElementsByClassName('internal-link');
    var link, links = document.getElementsByTagName('a');
    for (var i = 0; link = links[i]; i++) {
	if( link.className == 'internal-link') {
		link.onclick = onClickInternalLink;
	}
    }

}

function updateContent(html) {
    var content = document.getElementById('content');
    content.innerHTML = html;
    while (html.match(/(<script[^>]+javascript[^>]+>\s*(\/\/*<!\[CDATA\[)?(<!--)?\s*)/i)) {
	html = html.substr(html.indexOf(RegExp.$1) + RegExp.$1.length);
	if (!html.match(/((\/\/ *\]\]>)?(-->)?\s*<\/script>)/)) break;
	block = html.substr(0, html.indexOf(RegExp.$1));
	html = html.substring(block.length + RegExp.$1.length);
	eval(block);
    }
//    updateInternalLinks();
}

function updateChangeContent(xhr) {
    if (xhr.readyState == 4) {
	if (xhr.status == 200) {
	    updateContent(xhr.responseText);
	} else {
	    updateContent('Error: ' + xhr.status + '!');
	}
    }
}

function updateSidebox(html) {
    var sidebox = document.getElementById('sidebox');
    sidebox.innerHTML = html;
    while (html.match(/(<script[^>]+javascript[^>]+>\s*(\/\/*<!\[CDATA\[)?(<!--)?\s*)/i)) {
	html = html.substr(html.indexOf(RegExp.$1) + RegExp.$1.length);
	if (!html.match(/((\/\/ *\]\]>)?(-->)?\s*<\/script>)/)) break;
	block = html.substr(0, html.indexOf(RegExp.$1));
	html = html.substring(block.length + RegExp.$1.length);
	eval(block);
    }
//    updateInternalLinks();
}

function updateChangeSidebox(xhr) {
    if (xhr.readyState == 4) {
	if (xhr.status == 200) {
	    updateSidebox(xhr.responseText);

	} else {
	    updateSidebox('Error: ' + xhr.status + '!');
	}
    }
}



function handleChange(event) {
    updateContent('Seite lädt...');
//    updateSidebox('loading sidebox...');
    updateSidebox('');

    showElement(event);

    var parameters = '';
    for (var p in event.parameters) {
      parameters += '&' + p + '=' + event.parameters[p];
    }

    var xhrContent = getTransport();
    xhrContent.onreadystatechange = function() {
	updateChangeContent(xhrContent);
    }
    var content_url = event.path + '?ajax=content'  + parameters;
    xhrContent.open('get', content_url, true);
    // xhrContent.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

    xhrContent.send('');

    var xhrSidebox = getTransport();
    xhrSidebox.onreadystatechange = function() {
	updateChangeSidebox(xhrSidebox);
    }
    xhrSidebox.open('get', event.path + '?ajax=sidebox', true);
    xhrSidebox.send('');

    var title = 'BASIC Bio-Genuss für alle';
    for (var i = 0; i < event.pathNames.length; i++) {
	title += ' / ' + event.pathNames[i].substr(0,1).toUpperCase() + event.pathNames[i].substr(1);
    }
    SWFAddress.setTitle(title);

}
SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleChange);

//http://www.saeco.ch/images/products/loading.gif