/* ========================================================== */
/* Copyright by Franz Muehlbauer, www.franz-mue.de, 2005-2008 */
/* ========================================================== */

/* ----------------- */
/* Basic functions */
/* ----------------- */

var isIE = (navigator.appName == "Microsoft Internet Explorer") ;

function getObject(id) {
  if (document.getElementById && document.getElementById(id)) {
    return document.getElementById(id) ;
  } else if (document.all && document.all[id]) {
    return document.all[id] ;
  } else if (document.layers && document.layers[id]) {
    return document.layers[id] ;
  } else {
    return false ;
  }
}

function getStyleObject(id) {
  if (document.getElementById && document.getElementById(id)) {
    return document.getElementById(id).style ;
  } else if (document.all && document.all[id]) {
    return document.all[id].style ;
  } else if (document.layers && document.layers[id]) {
    return document.layers[id] ;
  } else {
    return false ;
  }
}

function setDisplayMode(id, value) {
  var styleObject = getStyleObject(id) ;
  if (styleObject) {
    styleObject.display = value ;
    return true ;
  } else {
    return false ;
  }
}

function getDisplayMode(elementId) {
  var styleObject = getStyleObject(elementId) ;
  if (styleObject) {
    return styleObject.display ;
  } else {
    return false ;
  }
}

function mailme() {
  /* Avoiding spam!? */
  var dest = "mailto:" ;
  var prefix = "feldpost" ;
  var subject = "Feldpost" ;
  var domain = "franz-mue.de" ;
  if (location.href) {
    location.href = dest + prefix + "@" + domain + "?subject=" + subject ;
  }
  return true;
}

/* -------------------------- */
/* Basic portlet functions */
/* -------------------------- */

var initial = true;

function isVisible(element) {
	var displayMode = getDisplayMode(element);
	if (displayMode) {
		if (displayMode == "none") {
			return false;
		} else {
			return true;
		}
	} else {
		return false;
	}
}

function showInlineElement(element) {
	setDisplayMode(element, "inline");
}

function showElement(element) {
	setDisplayMode(element, "block");
}

function hideElement(element) {
	setDisplayMode(element, "none");
}

function toggleElement(element) {
	if (isVisible(element)) {
		hideElement(element);
	} else {
		showElement(element);
	}
}

function showInlineElements(elements) {
	for (var index = 0; index < elements.length; index++) {
		showInlineElement(elements[index]);
	}
}

function hideElements(elements) {
	for (var index = 0; index < elements.length; index++) {
		hideElement(elements[index]);
	}
}

var allContentLinkIds = new Array("topAllContentLink", "bottomAllContentLink");
var onlyTitleLinkIds = new Array("topOnlyTitleLink", "bottomOnlyTitleLink");

function getNumOpenPortlets() {
	var numOpenPortlets = 0;
	for (var index = 0; index < portlets.length; index++) {
		if (isVisible(portlets[index])) {
			numOpenPortlets++;
		}
	}
	return numOpenPortlets;
}

function allPortletsOpen() {
	return (getNumOpenPortlets() == portlets.length);
}

function allPortletsClosed() {
	return (getNumOpenPortlets() == 0);
}

function showAllContentLinks() {
	showInlineElements(allContentLinkIds);
}

function showOnlyTitleLinks() {
	showInlineElements(onlyTitleLinkIds);
}

function hideAllContentLinks() {
	hideElements(allContentLinkIds);
}

function hideOnlyTitleLinks() {
	hideElements(onlyTitleLinkIds);
}

function checkPortletState() {
	if (allPortletsOpen()) {
		showOnlyTitleLinks();
		hideAllContentLinks();
	} else if (allPortletsClosed()) {
		showAllContentLinks();
		hideOnlyTitleLinks();
	} else {
		showOnlyTitleLinks();
		showAllContentLinks();
	}
}

function showPortlet(portletBody) {
	if (initial) { /* body onload: isVisible returns false allthough element is visible */
		showElement(portletBody);
	} else {
		if (!isVisible(portletBody)) {
			showElement(portletBody);
		}
	}
	
	checkPortletState();
}

function hidePortlet(portletBody) {
	if (initial) { /* body onload: isVisible returns false allthough element is visible */
		hideElement(portletBody);
	} else {
		if (isVisible(portletBody)) {
			hideElement(portletBody);
		}
	}
	
	checkPortletState();
}

function toggleSinglePortlet(portletBody) {
	if (isVisible(portletBody)) {
		hidePortlet(portletBody);
	} else {
		showPortlet(portletBody);
	}
}

function togglePortlet(portletBody) {
	for (var index = 0; index < portlets.length; index++) {
		if (portletBody == portlets[index]) {
			toggleSinglePortlet(portletBody); 
			break;
		}
	}
}

function showAllPortlets() {
	for (var index = 0; index < portlets.length; index++) {
		showPortlet(portlets[index]); 
	}
}

function hideAllPortlets() {
	for (var index = 0; index < portlets.length; index++) {
		hidePortlet(portlets[index]); 
	}
}

function initPage() {
	if (location.href.indexOf("#") == -1) { /* The page is called without anchor */
		hideAllPortlets();	
	} else {	/* To make sure that initial element visibility does work correctly */
		hideAllPortlets();
		showAllPortlets();
	}
	
	initial = false;
}

/* ------------------------------------- */
/* Google Search                         */
/* ------------------------------------- */

var searchSite = " site:www.bayerwald-feldpost.de";

function siteSearch() {
	/* Compatibility with older versions (q instead of query) */
	var queryField = (document.searchBox.query) ? document.searchBox.query : document.searchBox.q;
	if (document && document.searchBox && queryField) {
		var searchString = queryField.value;
		if (searchString == "") {
			return false;
		} else {
			if (!(queryField.value.indexOf(searchSite) > -1)) {
				queryField.value = searchString + searchSite;
			}
			return true;
		}
	}
}

