var serverAJAXRoot = "/ajax/";


function fadeServerMessage()
{
	window.clearTimeout();
	document.getElementById('serverMessage').style.display = 'block';
	window.setTimeout('Effect.Shrink(\'serverMessage\', {duration:.3})',1500);

}

function createRequestObject() {

          var ro;

          var browser = navigator.appName;

          if(browser == "Microsoft Internet Explorer") {

              ro = new ActiveXObject("Microsoft.XMLHTTP");

          }
          else{

              ro = new XMLHttpRequest();

          }

          return ro;

      }

      var http = createRequestObject();

// AJAX Anfrage

function getCalenderForMonth(bid,name,day,month,year)
{
	sndCalendarReq(bid,name,day,month,year);
	var indicator = '<div style="text-align:center; padding-top:50px;">';
	indicator += '<img src="/images/prog_indicator2.gif" boder="0"></div>';
	document.getElementById('calendar').innerHTML = indicator;

}


function sndCalendarReq(bid,name,day,month,year) {

          //alert('CalendarRequest called');
         var url = serverAJAXRoot + 'cal.php';
         var body = '&day='+day+'&month='+month+'&year='+year+'&bid='+bid+'&bname='+name;
         new Ajax.Request(url, {
                method: 'post',
                postBody: body,
                onSuccess: handleCalendarResponse,
                onFailure: handleCalendarResponse
	        });
      }



function handleCalendarResponse(t)  {
              var response = t.responseText;


			 	document.getElementById('calendar').innerHTML = response;





 }

var defaultSelect;
var selectTd;

function backSelect() {
	selectTd = document.getElementById('selectCat');
	defaultSelect = selectTd.innerHTML;
}

function checkForNewCat(selectBox) {

	if(selectBox.value == 'newCat') {
		backSelect();
		var newElement = '<input type="text" name="newCatName" ';
		newElement += 'value="hier Namen f&uuml;r die neue Rubrik eintragen" onFocus="this.value=\'\'" style="width:480px; float:left;"/>';
		//newElement += '<div style="padding:0px 0 0 0; width:18px; margin:0px;">';
		newElement += '&nbsp;';
		newElement += '<img src="/images/cross_16.png"  ';
		newElement += 'style="margin-top:3px;"';
		newElement += 'onClick="restoreSelect()"  onMouseOver="this.style.cursor=\'pointer\'">';
		//newElement += '</div>';
		selectTd.innerHTML = newElement;
	}
 }

function restoreSelect() {
	var selectTd = document.getElementById('selectCat');
	selectTd.innerHTML = defaultSelect;
}

function showEditCat() {
	backSelect();
	var theSelect = document.getElementById('blog_rubrik');
	var selectIndex = theSelect.selectedIndex;
	var selectValue = theSelect.value;
	var selectText = theSelect.options[selectIndex].text;
	var newElement = '<input type="text" name="changeCatName" id="changeCatName"  ';
		newElement += 'value="' + selectText + '"  style="width:460px; float:left;"/>';
		newElement += '&nbsp;';
		newElement += '<input type="hidden" value="' + selectValue + '" name="updateCat">';
		newElement += '<img src="/images/16check.png"  ';
		newElement += 'style="margin-top:3px;"';
		newElement += 'onClick="catUpdate(\''+ selectValue +'\', \'' + selectIndex + '\')"  onMouseOver="this.style.cursor=\'pointer\'">&nbsp;';
		newElement += '<img src="/images/cross_16.png"  ';
		newElement += 'style="margin-top:3px;"';
		newElement += 'onClick="restoreSelect()"  onMouseOver="this.style.cursor=\'pointer\'">';
		selectTd.innerHTML = newElement;
}

function catUpdate(catIndex, selectIndex) {
	var indicator = '<div style="text-align:center; padding-top:50px;">';
	indicator += '<img src="/images/prog_indicator2.gif" boder="0"></div>';
	document.getElementById('catValueHolder').value = document.getElementById('changeCatName').value;
	document.getElementById('selectCat').innerHTML = indicator;
	sndCatUpdateReq(catIndex, selectIndex);
}

function sndCatUpdateReq(catIndex, selectIndex) {
		var newCatName = document.getElementById('catValueHolder').value;
          http.open('GET', serverAJAXRoot + 'catAction.php?catIndex='+catIndex+'&newCatName='+newCatName+'&selectIndex='+selectIndex, true);

          http.onreadystatechange = handleCatUpdateResponse;

          http.send(null);

      }



function handleCatUpdateResponse()  {
          if(http.readyState == 4){
              var response = http.responseText;
			 if(response != '')
			 {

			 	var catSplit = response.split('%');
			 	restoreSelect();
				var theSelect = document.getElementById('blog_rubrik');
//				alert(catSplit[1] + ' mit Wert: ' + catSplit[2] + 'selectIndex: ' + catSplit[0]);
			 	theSelect.options[catSplit[0]].text = catSplit[2];
			 	theSelect.selectedIndex = catSplit[0];
			 }
			 defaultSelect = '';

          }

 }

 function checkForOpenCatEdit() {
	if(defaultSelect != '') {
		if(confirm('Cat-Editing not completed' + "\n" + 'Should save with Blog-Item?')) {
			alert('Edited Category will be saved with Blog-Entry');
		}
		else {
			alert('Changes will be lost');
		}
	}
 }

//////////////////////////////////////////// Edit Kategorie Liste  /////////////////////////////////////////////////
var sortListElement;
var defaultContent;

function backSortList(catid) {
	sortListElement = document.getElementById('item_' + catid);
	defaultContent = sortListElement.innerHTML;
	//alert(defaultContent);
}

function showEditCatList(catid, catName) {
	backSortList(catid);
	var newElement = '<input type="text" name="changeName" id="changeName"  ';
		newElement += 'value="' + catName + '"  style="width:250px; float:left; z-index:3;"/>';
		newElement += '&nbsp;';
		newElement += '<input type="hidden" value="item_' + catid + '" name="updateCat">';
		newElement += '<img src="/images/16check.png"  ';
		newElement += 'style="margin-top:3px;"';
		newElement += 'onClick="sndCatUpdateReqWithName(' + catid + ')"  onMouseOver="this.style.cursor=\'pointer\'">&nbsp;';
		newElement += '<img src="/images/cross_16.png"  ';
		newElement += 'style="margin-top:3px;"';
		newElement += 'onClick="restoreListElement()"  onMouseOver="this.style.cursor=\'pointer\'">';
		sortListElement.innerHTML = newElement;
		document.getElementById('changeName').focus();
}

function restoreListElement() {
	sortListElement.innerHTML = defaultContent;
	sortListElement.style.backgroundColor = '#DAE3F3';
}

function sndCatUpdateReqWithName(catIndex) {
		 var newCatName = document.getElementById('changeName').value;
          http.open('get', serverAJAXRoot + 'catAction.php?catIndex='+catIndex+'&newCatName='+newCatName+'&selectIndex=0', true);
         http.onreadystatechange = handleCatUpdateResponseName;
          http.send(null);

      }


function handleCatUpdateResponseName()
{
          if(http.readyState == 4) {
              var response = http.responseText;
              	//alert(response);
			 if(response != '')
			 {
				var responseParts = response.split('%');
				var listItem = document.getElementById('item_'+ responseParts[1]);
				listItem.innerHTML = defaultContent;
				document.getElementById('catName_' + responseParts[1]).innerHTML = responseParts[2];
				listItem.style.backgroundColor = '#DAE3F3';
				//alert(responseParts[1] + " = " + responseParts[2]);

			 }

          }

 }


 function showConfirmCatDelete(catid, catName, target) {
	if(confirm('Kategorie "' + catName + '" loeschen?')) {
		document.location.href = target + catid;
	}
 }
 //////////////////////////// ALBUM-Functions ////////////////////////////////

var handlerFunc = function(t) {
//    alert(t.responseText);
    if(t.responseText != 'failed')
    {
    	var imageContainer = document.getElementById('img_' + t.responseText);
		removeImageView(imageContainer);
    }
}

var errFunc = function(t) {
    alert('Fehler ' + t.status + ' -- ' + 'Das Bild konnte nicht gel?scht werden.');
}


function removeFromAlbum(imageId, userid) {
	var del = confirm("Willst Du dieses Foto entfernen?");
	if(del)
	{
		new Ajax.Request(serverAJAXRoot + 'removeImage.php?index='+imageId+'&userid='+userid,
					 {onSuccess:handlerFunc, onFailure:errFunc});
	}
}

 function removeImageView(img) {
 	new Effect.Highlight(img);
    new Effect.Fade(img);
 	//document.getElementById('imageFloatContainer').removeChild(img);
 }

 function editPanelVisible(id) {
 	var editPanel = document.getElementById('edit_'+id);
 	var fotoLinkPanel = document.getElementById('showFoto_'+id);
 	//var editPanel = $('editPanel_'+id);
 	fotoLinkPanel.style.visibility = 'visible';
 	editPanel.style.visibility = 'visible';

 }

  function editPanelHide(id) {
 	var editPanel = document.getElementById('edit_'+id);
 	var fotoLinkPanel = document.getElementById('showFoto_'+id);
 	editPanel.style.visibility = 'hidden';
 	fotoLinkPanel.style.visibility = 'hidden';
 }


 ////////////////////////// HELP //////////////////////////////
 var wmtt = null;

document.onmousemove = updateWMTT;

function updateWMTT(e) {
var x;
var y;
	x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
	y = (document.all) ? window.event.y + document.body.scrollTop  : e.pageY;

	var xW;
if (self.innerHeight) // all except Explorer
{
	xW = self.innerWidth;
	//y = self.innerHeight;
}
else if (document.documentElement && document.documentElement.clientHeight)
	// Explorer 6 Strict Mode
{
	xW = document.documentElement.clientWidth;
	//yW = document.documentElement.clientHeight;
}
else if (document.body) // other Explorers
{
	xW = document.body.clientWidth;
	//yW = document.body.clientHeight;
}

	if (wmtt != null) {
		if((x+240) > xW)
		{
			wmtt.style.left = (xW - 240) + "px";
		}
		else
		{
			wmtt.style.left = (x + 20) + "px";

		}
		wmtt.style.top = (y + 20) + "px";
	}
}

function showWMTT(id, headline, help) {
	wmtt = document.getElementById(id);
	var contents   = '<div class="infoPanel">';
	contents += '<img src="/images/info.png" border="0"><div class="infoHeadline">' + headline + '</div>';
	contents += '</div>' + help;
	wmtt.innerHTML = contents;
	if(Effect == "undefined")
	{
		wmtt.style.display = "block";
	}
	else {
		new Effect.Appear(wmtt, {duration:0.3});
	}
	//

}

function hideWMTT() {
	if(Effect == "undefined")
	{
		wmtt.style.display = "none";
	}
	else
	{
		new Effect.Fade(wmtt, {duration:0.3});
	}
	//
}
///////////////////////////////   Kommentar - Funktionen  //////////////////////////////////////
function checkCommentForm(digits, checkUserFields) {

var ok = false;

	if((document.getElementById('comment_text').value.length > 1) && checkSecureForm(digits))
	{

		if(checkUserFields)
		{
			if((document.getElementById('comment_visitor_email').value.length > 5)
						&& (document.getElementById('comment_visitor_name').value.length > 2))
			{
				ok = true;
			}

		}
		else
		{
			ok = true;
		}
	}

		//check OK

		if(ok)
		{
			document.getElementById('comment_submit').disabled=false;
		}
		else
		{
			document.getElementById('comment_submit').disabled=true;
		}


}

function checkSecureForm(digits) {
//alert(digits);
	if(document.getElementById('secureField').value.length == digits) {
		return true;
	}
	return false;
}

///////////////////////////////// UPLOADER ///////////////////////////
function changeUploader(mode)
{

	var html = '';
	var uploaderDiv = document.getElementById('upload');
	if(webform === '')
	{
		webform = document.getElementById('webupload').innerHTML;
	}



	switch(mode)
	{
		case 0 :
			html = flash;
			break;
		case 1 :
			html = webform;
			break;
		case 2 :
			html = applet;
			break;
		default :
		 return true;

	}
	uploaderDiv.innerHTML = html;


}

//////////////////////////   Bearbeitungs Funktionen //////////////////////////
function submitToAdmin(formular)
{
	document.getElementById(formular).submit();
}

////////////////////////// changeBulb //////////////////////////////7
function toggleBulb(switcher)
{
if(switcher.style.backgroundImage =='url(/images/dialog-information_lit.png)') {
	switcher.style.backgroundImage = 'url(/images/dialog-information.png)';
}
else {
	switcher.style.backgroundImage = 'url(/images/dialog-information_lit.png)';
}
}

////////////////////// Seitenschaltung ////////////////////////
function fetchSite(siteNumber)
{
	$('site').value = siteNumber;
	$('siteIterForm').submit();
}
/////////// Kategorienauswahl //////////////////
function submitKatSelect(selectElement, target)
{
	var kat = selectElement.value;
	var name = $('katopt_'+kat).innerHTML;
	if(name == 'alle' && kat == 0)
	{
		window.location.href = target;
	}
	else
	{
		window.location.href = target + kat + '/' + name;
	}
}

///////// Monatsauswahl /////////////7
function submitMonthSelect(selectElement, target)
{
	var month = selectElement.value;
	var name = $('monthopt_'+month).innerHTML;
	if(name == 'alle' && month == 0)
	{
		window.location.href = target;
	}
	else
	{
		window.location.href = target + 'month/' + month + '/' + name;
	}
}
/////////////////////////// LOGIN ///////////////////////////////
function sendLogin() {
	var userNameValue = trim(document.getElementById('userName').value);
	var userPassValue = trim(document.getElementById('userPass').value);

	var autoLogin = 0;
	if(document.getElementById('autoLogin').checked == true)
	{
		autoLogin = 1;
	}

	if(userNameValue != '' && userPassValue != '')
	{
		//var md5Hash = MD5(userNameValue + '' + userPassValue);
		var params = 'userName='+userNameValue+'&userPass='+userPassValue+'&autoLogin='+autoLogin;
		//alert(params);
		new Ajax.Request(serverAJAXRoot+'login.php', {parameters:params, onSuccess:handlerLoginFunc, onFailure:errLoginFunc});
	}
 }


 function sendLoginStart() {
	var userNameValue = trim(document.getElementById('userNameStart').value);
	var userPassValue = trim(document.getElementById('userPassStart').value);

	var autoLogin = 0;
	if(document.getElementById('autoLoginStart').checked == true)
	{
		autoLogin = 1;
	}

	if(userNameValue != '' && userPassValue != '')
	{
		//var md5Hash = MD5(userNameValue + '' + userPassValue);
		var params = 'userName='+userNameValue+'&userPass='+userPassValue+'&autoLogin='+autoLogin;
		//alert(params);
		new Ajax.Request(serverAJAXRoot+'login.php', {parameters:params, onSuccess:handlerLoginFuncStart, onFailure:errLoginFuncStart});
	}
 }

 var handlerLoginFunc = function(t) {
    document.getElementById('login_message').innerHTML = (t.responseText);
document.getElementById('login_message').innerHTML = (t.responseText);
    if(t.responseText == 'Success!')
    {
    	window.location.reload();
    }
    else if(t.responseText == 'no blog with email')
    {
    	$('loginBox').hide();
    	var reg = confirm('Du musst Dich erst registrieren und einen Blog mit Deiner Liwest-Email-Addresse anlegen, bevor Du dich einloggen kannst.\nJetzt registrieren?\n');
		if(reg)
		{
			var url = 'http://' + window.location.hostname + '/start/register/not_registered';
			window.location.replace(url);
    	}

    }
    else
    {

    }
}

var errLoginFunc = function(t) {
    document.getElementById('login_message').innerHTML = ('Error ' + t.status + ' -- ' + t.statusText);
}

var handlerLoginFuncStart = function(t) {
    document.getElementById('login_messageStart').innerHTML = (t.responseText);
document.getElementById('login_messageStart').innerHTML = (t.responseText);
    if(t.responseText == 'Success!')
    {
    	window.location.reload();
    }
    else if(t.responseText == 'no blog with email')
    {

    	var reg = confirm('Du musst Dich erst registrieren und einen Blog mit Deiner Liwest-Email-Addresse anlegen, bevor Du dich einloggen kannst.\nJetzt registrieren?\n');
		if(reg)
		{
			var url = 'http://' + window.location.hostname + '/start/register/not_registered';
			window.location.replace(url);
    	}

    }
    else
    {

    }
}

var errLoginFuncStart = function(t) {
    document.getElementById('login_messageStart').innerHTML = ('Error ' + t.status + ' -- ' + t.statusText);
}

function clearForm()
{
	document.getElementById('login_message').innerHTML = '';
	document.getElementById('userName').value = '';
	document.getElementById('userName').value = '';
}
///////////////////////////// LOGOUT //////////////////////////////
function logOutUser(username) {
	if(username != '')
	{
		var params = 'userName='+username;
		//alert(params);
		new Ajax.Request(serverAJAXRoot+'logout.php', {parameters:params, onSuccess:handlerLogOutFunc, onFailure:errLogOutFunc});
	}
 }


 var handlerLogOutFunc = function(t) {
    if(t.responseText.indexOf('Fehler') == -1)
    {
    	window.location.reload();
    }
}

var errLogOutFunc = function(t) {
   alert ('Error ' + t.status + ' -- ' + t.statusText);
}

////////////////////////////////////// FUNCTIONs //////////////////////
function trim(s) {
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}

function checkContactForm(guestMode)
{
	if(guestMode)
	{
		if($F('contactName') && $F('contactEmail') && $F('contactMessage'))
		{
			if(echeck($F('contactEmail')))
			{
				return true;
			}
			else
			{

				alert('Bitte eine gueltige Email-Addresse angeben!');
return false;
			}

		}
		alert('Das Formular bitte vollstaendig ausfuellen !');
		return false;
	}
	return true;
}


//// validate email
function echeck(str) {

		var at="@";
		var dot=".";
		var lat=str.indexOf(at);
		var lstr=str.length;
		var ldot=str.indexOf(dot);
		if (str.indexOf(at)==-1){

		   return false;
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){

		   return false;
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){

		    return false;
		}

		 if (str.indexOf(at,(lat+1))!=-1){

		    return false;
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){

		    return false;
		 }

		 if (str.indexOf(dot,(lat+2))==-1){

		    return false;
		 }

		 if (str.indexOf(" ")!=-1){

		    return false;
		 }

 		 return true;
	}


////////////////////////////// LOGIN ////////////////////////////
function toggleLoginBox()
{
	if($('loginBoxWrap').style.height < '1')
	{
		$('loginBoxWrap').style.height = '200';
		new Effect.toggle('loginBox', 'slide', {duration:0.7});
	}
	else
	{
		new Effect.toggle('loginBox', 'slide', {duration:0.7});
		$('loginBoxWrap').style.zindex = '0';
	}

	return true;
}