
function changeSearchValue(a)
{
  var elem = document.suche.search_val; 

  if(elem.value=='Suchbegriff(e)' && a == 'focus')
    elem.value = '';

  if(elem.value == '' && a == 'blur')
    elem.value = 'Suchbegriff(e)';

}

function toggleFAQ(id) {
  
  var elem = $('faq'+id+'Answer');

  Effect.toggle('faq'+id+'Answer', 'blind', { duration: 1.0 });

  if(elem.visible()) {
    $('faq'+id+'Arrow').src = 'files/colorize/faq_arrow.png';
    $('faq'+id+'Question').removeClassName('faqElemActive');
  }
  else {
    $('faq'+id+'Arrow').src = 'files/colorize/faq_arrow_down.png';
    $('faq'+id+'Question').addClassName('faqElemActive');
  }
}

// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth - 10;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
	return arrayPageSize;
}


// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.org
function getPageScroll(){

	var yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	}

	arrayPageScroll = new Array('',yScroll) 
	return arrayPageScroll;
}

function showLayerBox(module, params)
{
  var module = (module == null) ? 'content' : module;
  var params = (params == null) ? '' : params;

  new Effect.Appear('greyOut', { duration:0.3, to: 0.3 });
  new Effect.Appear('layerBox', { delay:0.4, duration:0.5, from:0.0, to:1.0 });

  if($('layerForm'))
    params = Form.serialize('layerForm')+'&'+params;

  var myAjax = new Ajax.Request(
     'php/ajax_'+module+'.php', {
        method: 'post',
        parameters: params,
        onCreate: start_send_entry,
        onSuccess: stop_send_entry
     }
  );

}

function start_send_entry()
{
  $('layerContent').hide();
  $('layerWait').show();
  centerLayerBox();
}

function stop_send_entry(originalRequest)
{
  if(originalRequest.responseText.isJSON()) {
    var response = originalRequest.responseText.evalJSON();

    //alert(response.layerAction);
    if(response.layerAction == 'update') {
      $('layerContent').innerHTML = response.layerData;
      $('layerWait').hide();
      $('layerContent').show();
      centerLayerBox();
    }
    else if(response.layerAction == 'close') {
      setTimeout('hideLayerBox()', 500);
    }
    else {
      $('layerContent').innerHTML = 'Unbekannter Fehler';
      $('layerWait').hide();
      $('layerContent').show();
      centerLayerBox();
    }

    if(response.callbackFunc)
      eval (response.callbackFunc)(response.callbackData);
  }
}

function updateAdresses(data)
{
  if($('adress_'+data.id))
    $('adress_'+data.id).replace(data.adress);
  else
    $('adressContainer').innerHTML = $('adressContainer').innerHTML + data.adress;
 
  var borderColorClass = 'mainBorderColor';
  var bgColorClass = 'btnColor';
  var adressNormalClass = 'adressEntityNormal';
  var adressSelectedClass = 'adressEntitySelected';

  var oldID = $('selectedAdress').value;
  var colorize;

  if(oldID != '' && oldID != 0 && data.id != oldID) {
    var oldSelect = $('adress_'+oldID);
    oldSelect.removeClassName(borderColorClass);
    oldSelect.removeClassName(adressSelectedClass);
    oldSelect.removeClassName(bgColorClass);
    oldSelect.addClassName(adressNormalClass);
    colorize = $('adressColorize_'+oldID);
    colorize.removeClassName('mainColor');
    colorize.addClassName('textColor');
  }

  if($('selectedAdress'))
    $('selectedAdress').value = data.id;
}

function removeAdress(data) 
{
  if($('adress_'+data.id))
    $('adress_'+data.id).remove();
   
  if($('selectedAdress').value == data.id)
    $('selectedAdress').value = '';
}

function hideLayerBox()
{

  new Effect.Fade('layerBox', { duration:0.5, from:1.0, to:0.0 });
  new Effect.Fade('greyOut', { delay:0.6,
                               duration:0.3,
                               from: 0.3,
                               to: 0.0,
                               afterFinish: function() { $('layerContent').innerHTML = ''; $('layerContent').hide(); $('layerWait').hide(); }
                             });
}

function centerLayerBox()
{
  var lBox = $('layerBox');
  var dleft, dtop;

  if (lBox)
  {
    var arrayPageSize = getPageSize();
    var arrayPageScroll = getPageScroll();

    var height = lBox.measure('height');
    var width = lBox.measure('width');

    if(lBox.getStyle('position') == 'fixed') {
       dleft = Math.round((arrayPageSize[2]/2) - (width/2));
       dtop = Math.round((arrayPageSize[3]/2) - (height/2));
    }
    else {
       dleft = Math.round(arrayPageScroll[0] + (arrayPageSize[2]/2) - (width/2));
       dtop = Math.round(arrayPageScroll[1] + (arrayPageSize[3]/2) - (height/2));
    }

    Element.setStyle('layerBox',{left:dleft+'px', top: dtop+'px'});

  }
  return [dleft,dtop]
}

window.onresize = function (evt) {

  if($('layerBox').getStyle('display') == 'block') {
    centerLayerBox();
  }
}

function toggleHover(elem) {
 
  var bgColorClass = 'btnColor';
  if(!elem.hasClassName('adressEntitySelected')) {
    if(elem.hasClassName(bgColorClass))
      elem.removeClassName(bgColorClass);
    else
      elem.addClassName(bgColorClass);
  }
}

function selectEntry(id) {

  var borderColorClass = 'mainBorderColor';
  var bgColorClass = 'btnColor';
  var adressNormalClass = 'adressEntityNormal';
  var adressSelectedClass = 'adressEntitySelected';

  var oldID = $('selectedAdress').value;
  var colorize;

  if(oldID != '' && oldID != 0) {
    var oldSelect = $('adress_'+oldID);
    oldSelect.removeClassName(borderColorClass);
    oldSelect.removeClassName(adressSelectedClass);
    oldSelect.removeClassName(bgColorClass);
    oldSelect.addClassName(adressNormalClass);
    colorize = $('adressColorize_'+oldID);
    colorize.removeClassName('mainColor');
    colorize.addClassName('textColor');
  }

  $('selectedAdress').value = id;
  var newSelect =  $('adress_'+id);

  newSelect.addClassName(borderColorClass);
  newSelect.addClassName(adressSelectedClass);
  newSelect.addClassName(bgColorClass);
  newSelect.removeClassName(adressNormalClass);

  colorize = $('adressColorize_'+id);
  colorize.removeClassName('textColor');
  colorize.addClassName('mainColor');

}

function editEntry(e, module, params) {

  e.cancelBubble = true;

  showLayerBox(module, params);
}

function delEntry(e, module, params) {

  e.cancelBubble = true;

  showLayerBox(module, params);
}


/******************/
/* BROWSER-UPDATE */
/******************/

var $buoop = {reminder: 24, newwindow:true}
$buoop.ol = window.onload; 
window.onload=function(){ 
 if ($buoop.ol) $buoop.ol(); 
 var e = document.createElement("script"); 
 e.setAttribute("type", "text/javascript"); 
 e.setAttribute("src", "http://browser-update.org/update.js"); 
 document.body.appendChild(e); 
}
