window.onload = function () {
    initFontSize();  // init Fontsize
}

/**
 * form validation
 */

function limitTextInput(element, maxLength) {
    if (element.value.length > maxLength) {
        alert("Bitte geben Sie nicht mehr als " + maxLength + " Zeichen ein!");
        element.value = element.value.substr(0, maxLength);
    }
}

/**
 * open a new window with defined url width and height
 */

function openWindow(url, width, height) {
	args = 'width='+width+',height='+height+',resizable,scrollbars,menubar,toolbar,status,location';
	f1 = window.open(url, 'print', args);
	if (f1) {
		return false;
	}
	return true;  	
}

/**
 * cookie manipulation
 */
 
function getCookie(name){
   var i=0
   var suche = name+"="
   while (i<document.cookie.length){
      if (document.cookie.substring(i, i+suche.length)==suche){
         var ende = document.cookie.indexOf(";", i+suche.length)
         ende = (ende>-1) ? ende : document.cookie.length
         var cook = document.cookie.substring(i+suche.length, ende)
         return unescape(cook)
      }
      i++
   }
   return null
}

function setCookie (name, value, age) {
  if (navigator.cookieEnabled == true) {
      var now = new Date();
      var maxage = new Date(now.getTime() + age);
      if (age == -1) {
          // Session Cookie
          document.cookie = name + "=" + value + ";";
      } else {
          document.cookie = name + "=" + value + "; expires=" + maxage.toGMTString() + ";";
      }
      
  }
}


/**
 * fontsize
 */
 
var defaultFontSize	= 100;
var minFontSize		= 80;
var maxFontSize		= 130;

function initFontSize() {
	var cookievalue = getCookie('fontsize');
	if(cookievalue) {
		setFontSize(cookievalue);		
	} else {
		setDefaultFontSize();		
	}
}

function getCurrentFontSize() {
	var fontSizeAttribute = document.getElementsByTagName('body')[0].style.fontSize;	
	return parseFloat(fontSizeAttribute);	
}

function setFontSize(fontsize) {
	var body = document.getElementsByTagName('body')[0];
	body.style.fontSize = fontsize;
	document.cookie = "fontsize=" + fontsize;	
}

function setDefaultFontSize() {
	setFontSize(defaultFontSize + '%');
}

function incrementFontSize() {
	var fontsize = getCurrentFontSize() + 10.0;
	if(fontsize <= maxFontSize) {
		setFontSize(fontsize + '%');
	}
}

function decrementFontSize() {
	var fontsize = getCurrentFontSize() - 10.0;
	if(fontsize >= minFontSize) {
		setFontSize(fontsize + '%');
	}
}

function getMouseX(ev) {
  var x;
  if(ev && ev.pageX){
    x = ev.pageX;	
  } else if(window.event && window.event.clientX) {
    var isStrictMode = document.compatMode 
        && document.compatMode != 'BackCompat' ? true : false;
    var scrollX = isStrictMode ? 
        document.documentElement.scrollLeft : document.body.scrollLeft;
    var scrollY	= isStrictMode ? 
        document.documentElement.scrollTop : document.body.scrollTop;
    x = window.event.clientX + scrollX;
  }
  return x;
}

function getMouseY(ev) {
  var y;
  if(ev && ev.pageY){
    y = ev.pageY;
  } else if(window.event && window.event.clientY) {
    var isStrictMode = document.compatMode 
        && document.compatMode != 'BackCompat' ? true : false;
    var scrollX = isStrictMode ? 
        document.documentElement.scrollLeft : document.body.scrollLeft;
    var scrollY	= isStrictMode ? 
        document.documentElement.scrollTop : document.body.scrollTop;
    y = window.event.clientY + scrollY;
  }
  return y;
}

function elementOfDiv(ebene, element) {
    while (element != ebene && element.nodeName != 'BODY')
		element = element.parentNode;
	if (element == ebene) return true;
	return false;
}

function showLayer(e, id, idFrame, xOff, yOff) {
	var ebene=document.getElementById(id);
	var iframe=document.getElementById(idFrame);
	
	ebene.style.left = getMouseX(e) + xOff + 'px';
	iframe.style.left = ebene.style.left;
	ebene.style.top = getMouseY(e) + yOff + 'px';
	iframe.style.top = ebene.style.top;
	
	ebene.style.display = 'block';
	iframe.style.display = 'block';
	iframe.style.height = ebene.offsetHeight + 'px';
}

function hideLayer(e, id, idFrame) {
	var ebene = document.getElementById(id);
	var iframe = document.getElementById(idFrame);
	var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
	if (elementOfDiv(ebene, reltg))
		return;
	ebene.style.display = 'none';
	iframe.style.display = 'none';
}

function toggleLayer(e, layerId,  idFrame, visibility, xOff, yOff) {
   var ebene = document.getElementById(layerId);
   var iframe = document.getElementById(idFrame);
   
   // IFrame und Div auf gewünschte Pos. verschieben, wenn visibility == 1 (show)
   if(visibility == 1) {
       ebene.style.left = getMouseX(e) + xOff + 'px';
       iframe.style.left = ebene.style.left;
       ebene.style.top = getMouseY(e) + yOff + 'px';
       iframe.style.top = ebene.style.top;
       iframe.style.height = ebene.offsetHeight + 'px';
   }
   
   // Layer verstecken bzw. öffnen
   if(document.layers) {     //NN4+
       document.layers[layerId].visibility = visibility ? "show" : "hide";
   } else if(document.getElementById) {      //gecko(NN6) + IE 5+
       var obj = document.getElementById(layerId);
       obj.style.visibility = visibility ? "visible" : "hidden";
   } else if(document.all) {   // IE 4
       document.all[layerId].style.visibility = visibility ? "visible" : "hidden";
   }
   
   // IFrame verstecken bzw. öffnen
   if(document.layers) {     //NN4+
       document.layers[idFrame].visibility = visibility ? "show" : "hide";
   } else if(document.getElementById) {      //gecko(NN6) + IE 5+
       var obj = document.getElementById(idFrame);
       obj.style.visibility = visibility ? "visible" : "hidden";
   } else if(document.all) {   // IE 4
       document.all[idFrame].style.visibility = visibility ? "visible" : "hidden";
   }
}


function risikoPopup() {
    openedBefore = getCookie('risikopopup');
    if (openedBefore == null) {
        f1=window.open('index.php?module=nursinghome&action=popup&popuptitle=showRisikoDesc&layout=detailpflegekarte','_blank', 'height=490,width=650,scrollbars=no');
        f1.focus();
        setCookie('risikopopup','1',-1);
        return false;
    } 
}

function showHideRisikoSortOptions(checkbox) {
    var box=document.getElementById('risikosortoptions');
    if(checkbox.checked == true) {
        box.style.display='block'; 
        risikoPopup();
    } else {
        box.style.display='none';
        checkbox.form.sort[1].checked = true;
    }
}

function showHideRisikoSortOptionsSelect(checkbox) {
    var sortselectbox=document.getElementById('risikosortselectbox');
    var sortshowbox=document.getElementById('risikosortshowbox');
    if(checkbox.checked == true) {
        sortselectbox.style.display='block';
        sortshowbox.style.display='none';
        risikoPopup();
    } else {
        checkbox.form.sort.options[0].selected=true;
        sortselectbox.style.display='none';
        sortshowbox.style.display='block';
    }
}
