
showModalWindow = function(content)
{
  dlg = Dialog.info(content, {width: 400, className: 'appWindows'});
}

closePopupZone = function()
{
  alert('used deprecated closePopupZone function');
}

showMessage = function(content)
{
  alert('showMessage(deprecated): '+content)
}

overlay = function()
{
  alert('overlay function is deprecated')
}

slideToggle = function(element)
{
  var element = $(element);
  var options = {duration: 0.3};
  if (typeof element.opened != undefined && element.opened) {
    new Effect.SlideUp(element, options);
    element.opened = false;
  }else{
    new Effect.SlideDown(element, options);
    element.opened = true;
  }
}

/**
* check all checkboxes with a certain class
*
*/
checkAll = function(classname, check)
{
  document.getElementsByClassName(classname).each(function(element) {
    element.checked = check;
  })
}

submitContactForm = function(actionname)
{
  var frm = $('contactfrm');
  var hidden = document.createElement('input');
  hidden.type = 'hidden';
  hidden.name = 'contactaction';
  hidden.value = actionname;
  frm.appendChild(hidden);
  frm.submit();
}

submitRequestForm = function(actionname)
{
  var frm = $('requestfrm');
  var hidden = document.createElement('input');
  hidden.type = 'hidden';
  hidden.name = 'requestaction';
  hidden.value = actionname;
  frm.appendChild(hidden);
  frm.submit();
}

getSelectValue = function(select)
{
  try {
    return select.options[select.selectedIndex].value
  }catch(e) {
    return false
  }
}

avatarUpdater = {
  pregnant: false,
  membercount: 20,
  memberlist: '',
  url: '',
  elements: [],

  getElementId: function(element)
  {
    return element.down('input').id.match(/_([0-9]+)$/).last();
  },

  getCachedDomSelection: function(element, selector)
  {
    if (typeof element.cache == 'undefined') {
      element.cache = {};
    }

    if (typeof element.cache[selector] == 'undefined') {
      element.cache[selector] = element.down(selector);
    }
    return element.cache[selector];
  },

  initialize: function(form) 
  {
    avatarUpdater.elements = new Array();
    for (i = 0; i < this.membercount+1; i++) {
      var element = $('user_' + i);
      if (element == null && i == 0) {
        var element = $('thisuser_1');
      }
      if (element != null) {
        avatarUpdater.elements.push(element);
      }
    }
    for (i = 0; i < this.membercount + 1; i++) {
      newcnt = 999 + i;
      var element = $('user_' + newcnt);
      if (element != null) {
        avatarUpdater.elements.push(element);
      }
    }

    this.elements.each(function(element) 
    {
      var id = avatarUpdater.getElementId(element);
      if (element.visible()) {
        $w('b_year role').each(function(idpart) {
          avatarUpdater.setObserved(avatarUpdater.getCachedDomSelection(element, 'select#fu_' + idpart + '_' + id))
        });
      }
    });
    avatarUpdater.setObserved($('pregnant'));
    avatarUpdater.update();
  },

  setObserved: function(element) 
  {
    if (typeof element.observed == 'undefined' || !element.observed) {
      element.observed = true;
      new Form.Element.EventObserver(element, avatarUpdater.update);
    }
  },

  update: function()
  {
    var members = avatarUpdater.elements.collect(function(element) {
      if (element.visible()) {
        var id = avatarUpdater.getElementId(element);
        var role = getSelectValue(avatarUpdater.getCachedDomSelection(element, 'select#fu_role_' + id));
        if (role > 0) {
          var member = {'role': role}
          var year = getSelectValue(avatarUpdater.getCachedDomSelection(element, 'select#fu_b_year_' + id));
          var month = getSelectValue(avatarUpdater.getCachedDomSelection(element, 'select#fu_b_month_' + id));
          var day = getSelectValue(avatarUpdater.getCachedDomSelection(element, 'select#fu_b_day_' + id));

          if (year > 0 && month > 0 && day > 0) {
            member.birthdate = year + '-' + month + '-' + day;
          }
          return member;
        }
      }
    }).compact().toJSON();
    var pregnant = $('pregnant').checked;
    if (members != avatarUpdater.memberlist || avatarUpdater.pregnant != pregnant) {
      avatarUpdater.memberlist = members;
      avatarUpdater.pregnant = pregnant;
      avatarUpdater.updateImage();
    }
  },
  updateImage: function()
  {
    $('avatarholder').src = this.url + '?json=' + escape(this.memberlist)+'&pregnant='+(this.pregnant ? 1 : 0);
  }
}

/*
2007-06-18 js (spiegel.julia@guj.de)
Hilfsskript fuer die Textareas bei bearbeiten des profils -> ueber uns
*/

/* Zaehlt, wie viele Zeichen schon ins Textfeld eingegeben wurden, und gibt einen Status darueber aus.
Ausserdem eine Fehlermeldung, wenn es mehr als 1200 Zeichen sind */
function count_textarea(text, max_chars, errorelem_id, counter_id, field_id)
{

	if (text.length >= max_chars)
	{
		$(errorelem_id).innerHTML = "<strong style=\"color:red\">Sie haben die maximale Textl&auml;nge von "+max_chars+" Zeichen erreicht!<strong>";
		$(counter_id).innerHTML = "";
		$(field_id).value = $(field_id).value.substring(0,max_chars);
	}

	else
	{
		$(counter_id).innerHTML = "Noch "+(max_chars - text.length) + " Zeichen frei";
		$(errorelem_id).innerHTML = "";
	}

}


/*
2007-06-20 js
f�gt ein keyword aus der liste in ein textfeld ein (familienblog-neuer eintrag)
*/
function add_keyword(word, inputfieldID)
{
	// komma rausfiltern und bei worten vorne anhaengen
	word = word.replace(', ', '');

	if ($(inputfieldID).value != '')
		$(inputfieldID).value += ", "+word;
	else
		$(inputfieldID).value += word;
}

/**********************************************************************************
*
* FUNCTIONS BELOW ARE DEPRECATED AND ONLY NEEDED IN MOCKUPS.
*
*
*
**********************************************************************************/



/*
2007-07-12 js
Gruppen -> Einladungen verschicken
Bei Klick auf "Einladen" wird die Familie zu einer Liste hinzugef�gt
*/
function add_group_invitation(strID, strName, strFamilyID)
{

	if ($(strID).innerHTML.search("invitation"+strFamilyID) == -1)
	{

		var strHTML = '<div id="invitation'+strFamilyID+'" class="invitation">'+strName+' <a class="nofloat" href="javascript: void(0)" onclick="remove_group_invitation(\''+strID+'\', \''+strName+'\', \''+strFamilyID+'\')">&gt;&nbsp;aus der Liste l&ouml;schen</a><input type="hidden" name="invitation[]" value="'+strFamilyID+'" /></div>';

		new Insertion.Bottom($(strID),  strHTML);

		if (navigator.appName == "Microsoft Internet Explorer")
			$('count-invitations').innerHTML = $(strID).childNodes.length;
		else
			$('count-invitations').innerHTML = $(strID).childNodes.length-1;


	}
	else
		alert(strName+" ist bereits in der Liste vorhanden!");

}

/*
2007-07-12 js
Loescht einen Eintrag aus der Einladungen-Liste (Gruppen)

*/
function remove_group_invitation(strID, strName, strFamilyID)
{
	// funktioniert im IE wieder gar nicht..
	var elemDel = $('invitation'+strFamilyID);
	$(strID).removeChild(elemDel);
	if (navigator.appName == "Microsoft Internet Explorer")
			$('count-invitations').innerHTML = $(strID).childNodes.length;
		else
			$('count-invitations').innerHTML = $(strID).childNodes.length-1;


}


/*
2007-07-26 js
Slideup und Slidedown fuer Kommentare zu Videos - hier werden einige Aufrufe mehr
benoetigt als ueblicherweise, und auch von verschiedenen Stellen aufgerufen. Daher
alles in eine Funktion..
*/
function hide_video_comments(videoID)
{
	new Effect.SlideUp('comments_show_'+videoID);
	$('link_show_comments_'+videoID).style.display='block';
	$('link_hide_comments_'+videoID).style.display='none';
}

function show_video_comments(videoID)
{
	new Effect.SlideDown('comments_show_'+videoID);
	$('link_show_comments_'+videoID).style.display='none';
	$('link_hide_comments_'+videoID).style.display='block';
}


/* AKKORDEON FUNCTIONS */
slides = new Array();
slides['akkordeonMost'] = new Array('most_seen', 'most_discussed', 'most_read');
slides['akkordeonExchange'] = new Array('forum_top', 'recomm_top', 'groups_top');
slides['akkordeonTools'] = new Array('interactive_services', 'test_tools', 'lexika_tools');
var akkordeonCookieDate = new Date();
akkordeonCookieDate = new Date(akkordeonCookieDate.getTime() +1000*60*60*24);

/* set the opened/close values for the akkordeon {param akkordeonName}
   if no cookie is set then the slide {@param slideName} will be opened
*/
function initializeAkkordeonSlides(akkordeonName, slideName)
{
  cookievalue = readCookie(akkordeonName+'_openSlide');
  if(cookievalue != null) {
    slideName = cookievalue;
  }
  openAkkordeonSlide(akkordeonName, slideName, 0);
}

/* open slide {@param slideName} and close all other slides */
function openAkkordeonSlide(akkordeonName, slideName, animate)
{
  //store opened slide in cookie
  createCookie(akkordeonName+'_openSlide', slideName, 1); 
  
  if ($(slideName)) {
     if (animate != 0) {
       new Effect.SlideDown(slideName);
     }
     else {
       $(slideName).style.display='block';
     }
     $('link_'+slideName).style.display='none'
     
     for(i=0;i<slides[akkordeonName].length;i++) {
       if (slides[akkordeonName][i] != slideName) { //do not close the slide that has just been opened
         if ($(slides[akkordeonName][i]) && $(slides[akkordeonName][i]).style.display!='none') { //do not close if slide does not exist or is already closed
           closeAkkordeonSlide(akkordeonName, slides[akkordeonName][i], animate);
         }
       }
     }
  }
}

/* close slide {@param slideName} */
function closeAkkordeonSlide(akkordeonName, slideName, animate)
{
  if ($(slideName)) {
     cookievalue = readCookie(akkordeonName+'_openSlide');
     if (cookievalue == slideName) {
       eraseCookie(akkordeonName+'_openSlide');
     }
    
     if (animate != 0) {
       new Effect.SlideUp(slideName);
     }
     else {
       $(slideName).style.display='none';
     }
     $('link_'+slideName).style.display='block'
  }
}

/*
2007-06-13 js
callback funktion nach beenden des slideup-effekts+
nach eintrag eines neuen kommentars im gaestebuch

................................................................
             REMOVE ME - ONLY NEEDED FOR MOCKUPS
................................................................

*/
function submit_form_guestbook_entry_new()
{
	$('guestbook_new_btn').style.display='block';
	document.forms.guestbook_entry_new.submit();
}



/* 
 ................................................................
             COOKIE HELPERS
................................................................
*/
function createCookie(name, value, days) 
{
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) 
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name)
{
	createCookie(name,"",-1);
}





/* 
 ................................................................
             SHOP (EXTERNAL)
................................................................
*/
/* general window opening script */
function openwindow(url,wname,w,h,scroll,resize,statusbar,menubar,toolbar,locbar)
{
 var win = null;

 LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
 TopPosition = (screen.height) ? (screen.height-h)/4 : 0;
 settings = 'screenX=' + LeftPosition +
 ', screenY=' + TopPosition +
 ', left=' + LeftPosition +
 ', top=' + TopPosition +
 ', toolbar= ' + toolbar +
 ', location=' + locbar +
 ', directories=no ' +
 ', status=' + statusbar +
 ', menubar=' + menubar +
 ', resizable=' + resize +
 ', scrollbars=' + scroll +
 ', height=' + h +
 ', width=' + w;

 win = window.open(url,wname,settings);
 if(win.window.focus)
 {
 win.window.focus();
 }
}

/*
2008-05-30 fy (yang.fang@guj.de)
Hilfsskript fuer die Loginmaske in Top-Forum-Sidebar
*/
//Variable to save prompt messages
var fieldPrompts = new Array();

function inputFocus(fieldObj) {
if (fieldObj.className=='inputPrompt') {
if (fieldObj.id=='password_forum') {
//change field type and reset obj reference
changeInputType('password_forum', 'password');
fieldObj = document.getElementById('password_forum');
}
fieldPrompts[fieldObj.id] = fieldObj.value;
fieldObj.value = '';
fieldObj.className = 'inputStd';
fieldObj.select();
fieldObj.focus();
}
}

function inputBlur(fieldObj) {
if (fieldObj.value=='') {
if (fieldObj.id=='password_forum') {
//change field type and reset obj reference
changeInputType('password_forum', 'text');
fieldObj = document.getElementById('password_forum');
}
fieldObj.value = fieldPrompts[fieldObj.id];
fieldObj.className = 'inputPrompt';
}
}

function changeInputType(objID, oType) {
var oldObject = document.getElementById(objID);
var newObject = document.createElement('input');
newObject.type = oType;
if(oldObject.value) newObject.value = oldObject.value;
if(oldObject.size) newObject.size = oldObject.size;
if(oldObject.name) newObject.name = oldObject.name;
if(oldObject.id) newObject.id = oldObject.id;
if(oldObject.onfocus) newObject.onfocus = oldObject.onfocus;
if(oldObject.onblur) newObject.onblur = oldObject.onblur;
if(oldObject.className) newObject.className = oldObject.className;
oldObject.parentNode.replaceChild(newObject,oldObject);
return;
}

function setPrompts() { //Run onload of the page
document.getElementById('username_forum').className = 'inputPrompt';

changeInputType('password_forum', 'text');
document.getElementById('password_forum').value = 'Passwort';
document.getElementById('password_forum').className = 'inputPrompt';
}



