function previousDetailprognoseTab(callback) {
  var currentIndex = 0;
  for (i = 0; i < document.detailprognose_ids.length; i++) {
    if (document.detailprognose_ids[i] == document.detailprognose_selected) {
      currentIndex = i;
    }
  }

  var indexToShow = currentIndex - 1;
  if (indexToShow >= 0)
  	selectDetailprognoseTab(document.detailprognose_ids[indexToShow]);

  if (callback) {
    callback(indexToShow);
  }
}

function nextDetailprognoseTab(callback) {
  var currentIndex = document.detailprognose_ids.length - 1;
  for (i = 0; i < document.detailprognose_ids.length; i++) {
    if (document.detailprognose_ids[i] == document.detailprognose_selected) {
      currentIndex = i;
    }
  }

  var indexToShow = currentIndex + 1;
  if (indexToShow < document.detailprognose_ids.length)
  	selectDetailprognoseTab(document.detailprognose_ids[indexToShow]);

  if (callback) {
    callback(indexToShow);
  }
}

function selectDetailprognoseTab(tabId, checkAm) {
  var currentTabId = document.detailprognose_selected;

  var type = document.detailprognose_type;
  var mapElementToHide = document.getElementById(type + '_' + currentTabId);
  var mapElementToShow = document.getElementById(type + '_' + tabId);
  
  if (!mapElementToHide || !mapElementToShow)
	{
	if(!checkAm) {
		if(tabId.indexOf("_")>0 && !checkAm)
			selectDetailprognoseTab(tabId.substring(0,tabId.indexOf("_")));
		else if(!checkAm)
		{
			if(!selectDetailprognoseTab(tabId+"_am",true))
				return selectDetailprognoseTab(tabId+"_day",true);
			return true;
		}
	}
	return false;
	}

  if(document.detailprognose_legend_v2) {
	for(var i in document.detailprognose_legend_v2) {
		var elemId = document.detailprognose_legend_v2[i];
	    var elem = document.getElementById("legende_"+elemId+"symb");
		if(elemId == tabId) {
			elem.style.display = 'block';
		} else {
			elem.style.display = 'none';
		}
	}
  }
  mapElementToHide.style.display = 'none';
  mapElementToShow.style.display = 'block';

  var reiterElementToHide = document.getElementById('karten_reiter_' + currentTabId);
  var reiterElementToShow = document.getElementById('karten_reiter_' + tabId);
  if (reiterElementToHide && reiterElementToShow) {
    reiterElementToHide.className = 'karten_reiter thema_background_button';
    reiterElementToShow.className = 'karten_reiter thema_background_button selectedTab';
  }

  var leftMostId = document.detailprognose_ids[0];
  var rightMostId = document.detailprognose_ids[document.detailprognose_ids.length - 1];

  var forwardReiter = document.getElementById('forwardReiter');
  if (forwardReiter) {
    if (tabId == rightMostId) {
      forwardReiter.innerHTML = '<span class="stepforward_inactive">&nbsp;</span>';
      forwardReiter.className = 'karten_reiter';
    } else {
      forwardReiter.innerHTML = '<a title="'+document.detailprognose_forward+'" href="#" onClick="nextDetailprognoseTab(); return false;" class="thema_link stepforward">&nbsp;</a>';
      forwardReiter.className = 'karten_reiter thema_background_button';
    }
  }

  var backwardReiter = document.getElementById('backwardReiter');
  if (backwardReiter) {
    if (tabId == leftMostId) {
      backwardReiter.innerHTML = '<span class="stepback_inactive">&nbsp;</span>';
      backwardReiter.className = 'karten_reiter';
    } else {
      backwardReiter.innerHTML = '<a title="'+document.detailprognose_backward+'" href="#" onClick="previousDetailprognoseTab(); return false;" class="thema_link stepback">&nbsp;</a>';
      backwardReiter.className = 'karten_reiter thema_background_button';
    }
  }

  document.cookie = 'detailprognose_selected=' + tabId + '; path=/';
  document.detailprognose_selected = tabId;

  selectPreviouslySelectedStation(tabId);
  return true;
}

function selectPreviouslySelectedStation(newLabel) {
  var selectedId = document.detailprognose_selectedNiederschlagStationId;
  if (!selectedId)
    return;
	
  var newStationId = selectedId.substring(0,selectedId.indexOf("_")) + '_' + newLabel;
  updateStationDetails(newStationId);
}

function updateStationDetails(stationId) {
	if(document.detailprognose_selectedNiederschlagStationId)
	{
		setSymbolActive(document.detailprognose_selectedNiederschlagStationId, false);
	}

	if(highlightedStation)
		setSymbolActive(highlightedStation, false);
	highlightedStation = "";



  if (!document.detailprognose_niederschlag[stationId])
	{
	var label = stationId.substring(stationId.indexOf("_")+1);
	var regionDetails = document.getElementById('regionDetails_' + label);  
	regionDetails.style.display = 'none';
	document.detailprognose_selectedNiederschlagStationId = stationId;
	document.getElementById('regionDetails_schirm_' + label).src="/images/0.gif";
    return;
	}

  setSymbolActive(stationId, true);

  var data = document.detailprognose_niederschlag[stationId];

  document.detailprognose_selectedNiederschlagStationId = stationId;

  var regionDetails = document.getElementById('regionDetails_' + data.label);  
  regionDetails.style.display = 'block';

  var regionName = document.getElementById('regionName_' + data.label);
  regionName.innerHTML = '<b>' + data.title + '</b>'

  var windbalken1 = document.getElementById('windbalken1_' + data.label);
  windbalken1.className = 'windbalken windbalken_1mm windbalken_' + data.value1mm;

  var windbalken10 = document.getElementById('windbalken10_' + data.label);
  windbalken10.className = 'windbalken windbalken_10mm windbalken_' + data.value10mm;

  var windbalken30 = document.getElementById('windbalken30_' + data.label);
  windbalken30.className = 'windbalken windbalken_30mm windbalken_' + data.value30mm;  

  if(+data.value1mm >= 50)
	document.getElementById('regionDetails_schirm_' + data.label).src="/images/detailprognose/schirm_offen_rollover.gif";
  else
	document.getElementById('regionDetails_schirm_' + data.label).src="/images/detailprognose/schirm_geschlossen_rollover.gif";

  var val_1mm = document.getElementById('val_1mm_' + data.label);

  setElem(data, "1mm");
  setElem(data, "10mm");
  setElem(data, "30mm");
}

function setElem(data,label) {
	var val=0;
	switch(label)
	{
		case "1mm":
			val = data.value1mm;
			break;
		case "10mm":
			val = data.value10mm;
			break;
		case "30mm":
			val = data.value30mm;
			break;
	}

	if(label != "1mm" && (!val || val=="0"))
	{
		document.getElementById('p_'+ label +'_' + data.label).style.display='none';
		return;
	}
	document.getElementById('p_'+ label +'_' + data.label).style.display='block';
	document.getElementById('val_'+ label +'_' + data.label).innerHTML = getText(val);
}

function getText(val) {
	if(!val || +val == 0)
		return "&lt;5";
	if(+val == 100)
		return "&gt;95";
	return val;
}



function clearStationDetails() {
  for (var stationId in document.detailprognose_niederschlag) {
    var data = document.detailprognose_niederschlag[stationId];
    var regionDetails = document.getElementById('regionDetails_' + data.label);  
    regionDetails.style.display = 'none';
  }
}

var highlightedStation = "";

function highlightStationDetails(stationId) {
	if(highlightedStation && highlightedStation != document.detailprognose_selectedNiederschlagStationId)
		document.getElementById('a_' + highlightedStation).className = "icon";

	highlightedStation = stationId;
	setSymbolActive(stationId, true);
}

function unhighlightStationDetails(stationId) {
	if(stationId == document.detailprognose_selectedNiederschlagStationId)
		return;

	if(highlightedStation && highlightedStation != document.detailprognose_selectedNiederschlagStationId)
		setSymbolActive(highlightedStation, false);

	highlightedStation = "";

	setSymbolActive(stationId, false);
}

function setSymbolActive(stationId, active)
{
	var elem = document.getElementById('a_' + stationId);
	if(!elem)
		return;
	elem.className = active?"icon active":"icon";
	
	elem = document.getElementById("img_" + stationId);
	var src = elem.src;
	if(active) {
		if(src.indexOf("_rollover") < 0)
			elem.src = src.substring(0,src.indexOf(".gif"))+"_rollover.gif";
	} else {
		if(src.indexOf("_rollover") >= 0) {
			elem.src = src.substring(0,src.indexOf("_rollover"))+".gif";
		}
	}

}

// funktion, die in onload aufgerufen wird
function moveWebcamPopUps() {
	var anch=window.location.hash;
	if(anch && anch != "#")
		window.location.hash=anch;
	var cookie = document.cookie;
	var pos = cookie.indexOf("detailprognose_selected=");
	if(pos >= 0)
		cookie = cookie.substring(pos+24);
	else
		return;

	var pos = cookie.indexOf(";");
	if(pos >= 0)
		cookie = cookie.substring(0,pos);
	selectDetailprognoseTab(cookie);
}
