/*******************************************************************************
 *******************************************************************************
 * SUCHE
 *******************************************************************************
 ******************************************************************************/
function searchString(ss){
    new Effect.Appear('searchError', {duration:0});
    //new Effect.Fade('searchBlogResult', {duration:0});
    if(ss == ""){
        $('searchError').innerHTML = "<div class=\"warning\">Du musst einen Suchbegriff angeben!</div>";
    } else {
        if(ss.length < 3){
            $('searchError').innerHTML = "<div class=\"warning\">Der Suchbegriff muss mindesten 3 Zeichen haben!</div>";
        } else {
            if(ss.length > 100){
                $('searchError').innerHTML = "<div class=\"warning\">Der Suchbegriff ist zu lang, bitte höchstens 100 Zeichen!</div>";
            } else {
                if(!$('sBlog').checked && !$('sComm').checked && !$('sProf').checked){
                    $('searchError').innerHTML = "<div class=\"warning\">Wähle mindesten einen Bereich aus der durchsucht werden soll!</div>";
                } else {
                    var outputStr = "<div class=\"note\">Suche nach <strong>"+ss+"</strong> in den ";
                    var comma = 0;
                    var blog = 0;
                    var comm = 0;
                    var prof = 0;
                    if($('sBlog').checked){
                        outputStr = outputStr+"Blogeinträgen";
                        comma = 1;
                        blog = 1;
                    }
                    if($('sComm').checked){
                        if(comma == 1){outputStr = outputStr+" und ";}
                        outputStr = outputStr+"Kommentaren";
                        comma = 1;
                        comm = 1;
                    }
                    if($('sProf').checked){
                        if(comma == 1){outputStr = outputStr+" und ";}
                        outputStr = outputStr+"<br />Profilen";
                        prof = 1;
                    }
                    outputStr = outputStr+" läuft...</div>";
                    $('searchError').innerHTML = outputStr;
                    var ar = new Ajax.Request(
                        '/blog/ajax.php', {
                        method:'post',
                        parameters: 'do=search&ss='+ss+'&b='+blog+'&p='+prof+'&c='+comm,
                        onComplete: searchChange
                        }
                    );
                     new Effect.Fade('searchError', {duration:3});
                } // angekreuzt
            } // suchen
        } // zu lang
    } // zu kurz
}
function searchChange(oReq) {
    $('col3_content').innerHTML = oReq.responseText;
}


/*******************************************************************************
 *******************************************************************************
 * KOMMENTARE
 *******************************************************************************
 ******************************************************************************/
function deleteComment(comID, blogID){
    if(confirm("Kommentar Nr. "+comID+" wirklich löschen?")){
        var ar = new Ajax.Request(
            '/blog/ajax.php', {
                method:'post',
                parameters: 'do=deleteComment&id=' + comID + '&bid=' + blogID,
                onComplete: statechange_deleteComments
            }
        );
        alert("Kommentar wurde gelöscht!");
        var ar = new Ajax.Request(
            '/blog/ajax.php', {
            method:'post',
            parameters: 'do=refreshBlog' + '&bid=' + blogID,
            onComplete: refreshBlog
            }
        );
    }
}

function statechange_deleteComments(oReq) {
    $('comment_msg').innerHTML = oReq.responseText;
}

function nix(){
    /* einfach nix */
}
/*******************************************************************************
 *******************************************************************************
 * BLOG ERSTELLUNG
 *******************************************************************************
 ******************************************************************************/
function openJanaForm(url,data) {
    var aj = new Ajax.Request(
        url, {
        method:'post',
        parameters: data,
        onComplete: statechange_showJBForm
        }
    );
}
function statechange_showJBForm(oReq) {
    $('janabox').innerHTML = oReq.responseText;
}
function setFinalSave(){
    $('fs').value='1';
    //document.newBlog.action ="/blog/index.php?bla=blup";
    document.newBlog.submit();
}

/*******************************************************************************
 *******************************************************************************
 * ARCHIV
 *******************************************************************************
 ******************************************************************************/
function openArchive(year,month) {
    el = "archiv";
    new Effect.Opacity(el,{duration:1, from:0, to:1, transition: Effect.Transitions.linear});
    new Ajax.Updater(el, '/blog/col2_archive.inc.php?aY='+year+'&aM='+month, { method: 'post'});

/*
    new Ajax.Request('/blog/col2_archive.inc.php?aY='+year+'&aM='+month),
    { onSuccess: function (transport) {
      var data = transport.responseText;
      new Effect.Fade('archiv', { afterFinish: function () {
         $('archiv').update(data);
         new Effect.Appear('login_div');
         }
       });
    }};
*/
}
/*******************************************************************************
 *******************************************************************************
 * REGISTER FORM - bei gelegenheit alles in php datei auslagern! (AinStain)
 *******************************************************************************
 ******************************************************************************/
function checkUserName(username){
    if(username.length < 3 || username.length > 20){
    new Effect.Opacity('bn_err',{duration:1, from:0, to:1, transition: Effect.Transitions.linear});
        $('bn_err').innerHTML="<div class='warning'>Dieser Benutzername ist zu kurz oder zu lang - er sollte mindestens 3 und h&ouml;chstens 20 Zeichen haben.</div>";
    } else {
        $('bn_err').innerHTML="";
    }
}
function checkPassword(password){
    if(password.length < 6){
        $('pw_err').innerHTML="<div class='warning'>Dieses Passwort ist zu kurz - es muss aus mindestens 6 Zeichen bestehen.</div>";
    } else {
        $('pw_err').innerHTML="";
    }
}
function checkPWMatch(password2, password){
    if(password != password2){
        $('pw2_err').innerHTML="<div class='warning'>Die Passw&ouml;rter stimmen nicht &uuml;berein.</div>";
    } else {
        $('pw2_err').innerHTML="";
    }
}
function checkEmail(email){
    if(email.length < 6){
        $('em_err').innerHTML="<div class='warning'>Diese E-Mailadresse ist zu kurz.</div>";
    } else {
        $('em_err').innerHTML="";
    }
}

function validateMail(email) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,10})$/;
   if(reg.test(email) == false) {
       return false;
   } else {
       return true;
   }
}
function ValidateForm(what){
    var err=0;
    if(what == "pwlost"){ // passwort vergessen
        var email=document.regform.reg_email;
        if ((email.value==null)||(email.value=="")){
            $('em_err').innerHTML="<div class='warning'>Die E-Mailadresse muss angegeben werden.</div>";
            email.focus();
            err++;
        }
        if (email.value.length < 6){
            $('em_err').innerHTML="<div class='warning'>Diese E-Mailadresse ist zu kurz.</div>";
            email.focus();
            err++;
        }
        if (validateMail(email.value)==false){
            $('em_err').innerHTML="<div class='warning'>Diese E-Mailadresse ist leider ung&uuml;ltig.</div>";
            //email.value="";
            email.focus();
            err++;
        }
    }
    else if(what == "profil"){ // profil update
        var realname=document.prof_form.pro_rn;
        var sex=document.prof_form.pro_sex;
        var email=document.prof_form.pro_email;
        var city=document.prof_form.pro_city;
        var country=document.prof_form.pro_land;
        var bday=document.prof_form.pro_geb;
        var jpb=document.prof_form.pro_job;
        var music=document.prof_form.pro_musik;
        var film=document.prof_form.pro_film;
        var food=document.prof_form.pro_essen;
        var hobbies=document.prof_form.pro_hobbies;
        var credo=document.prof_form.pro_credo;
        var nl=document.prof_form.pro_nl;
        var pw=document.prof_form.pro_pw;
        var pw2=document.prof_form.pro_pw2;
        alert("bla:"+realname.value);

        if (realname.value.length < 3){
            $('err_rn').innerHTML="<div class='warning'>\"Echter Name\" ist zu kurz - es sollten mindestens 3 Zeichen sein.</div>";
            realname.focus();
            err++;
        }
        if (realname.value.length > 20){
            $('err_rn').innerHTML="<div class='warning'>\"Echter Name\" ist zu lang - es k&ouml;nnen h&ouml;chstens 20 Zeichen verwendet werden.</div>";
            realname.focus();
            err++;
        }
        if ((pw.value==null)||(pw.value=="")){
            $('pw_err').innerHTML="<div class='warning'>Das Passwort muss angegeben werden.</div>";
            pw.focus();
            err++;
        }
        if (pw.value.length < 6){
            $('pw_err').innerHTML="<div class='warning'>Dieses Passwort ist zu kurz - es muss aus mindestens 6 Zeichen bestehen.</div>";
            pw.focus();
            err++;
        }
        if (pw.value.length > 20){
            $('pw_err').innerHTML="<div class='warning'>Dieses Passwort ist zu lang - es k&ouml;nnen h&ouml;chstens 20 Zeichen verwendet werden.</div>";
            pw.focus();
            err++;
        }
        if (pw2.value != pw.value){
            $('pw2_err').innerHTML="<div class='warning'>Die Passw&ouml;rter stimmen nicht &uuml;berein.</div>";
            pw2.focus();
            err++;
        }
        if ((email.value==null)||(email.value=="")){
            $('em_err').innerHTML="<div class='warning'>Die E-Mailadresse muss angegeben werden.</div>";
            email.focus();
            err++;
        }
        if (email.value.length < 6){
            $('em_err').innerHTML="<div class='warning'>Diese E-Mailadresse zu kurz.</div>";
            email.focus();
            err++;
        }
        if (validateMail(email.value)==false){
            $('em_err').innerHTML="<div class='warning'>Diese E-Mailadresse ist leider ung&uuml;ltig.</div>";
            //email.value="";
            email.focus();
            err++;
        }
    } else { // registrierung
        var bn=document.regform.reg_benutzername;
        var pw=document.regform.reg_passwort;
        var pw2=document.regform.reg_passwort2;
        var email=document.regform.reg_email;
        if ((bn.value==null)||(bn.value=="")){
            $('bn_err').innerHTML="<div class='warning'>Der Benutzername muss angegeben werden.</div>";
            bn.focus();
            err++;
        }
        if (bn.value.length < 3){
            $('bn_err').innerHTML="<div class='warning'>Dieser Benutzername ist zu kurz - es sollten mindestens 3 Zeichen sein.</div>";
            bn.focus();
            err++;
        }
        if (bn.value.length > 20){
            $('bn_err').innerHTML="<div class='warning'>Dieser Benutzername ist zu lang - es k&ouml;nnen h&ouml;chstens 20 Zeichen verwendet werden.</div>";
            bn.focus();
            err++;
        }
        if ((pw.value==null)||(pw.value=="")){
            $('pw_err').innerHTML="<div class='warning'>Das Passwort muss angegeben werden.</div>";
            pw.focus();
            err++;
        }
        if (pw.value.length < 6){
            $('pw_err').innerHTML="<div class='warning'>Dieses Passwort ist zu kurz - es muss aus mindestens 6 Zeichen bestehen.</div>";
            pw.focus();
            err++;
        }
        if (pw.value.length > 20){
            $('pw_err').innerHTML="<div class='warning'>Dieses Passwort ist zu lang - es k&ouml;nnen h&ouml;chstens 20 Zeichen verwendet werden.</div>";
            pw.focus();
            err++;
        }
        if (pw2.value != pw.value){
            $('pw2_err').innerHTML="<div class='warning'>Die Passw&ouml;rter stimmen nicht &uuml;berein.</div>";
            pw2.focus();
            err++;
        }
        if ((email.value==null)||(email.value=="")){
            $('em_err').innerHTML="<div class='warning'>Die E-Mailadresse muss angegeben werden.</div>";
            email.focus();
            err++;
        }
        if (email.value.length < 6){
            $('em_err').innerHTML="<div class='warning'>Diese E-Mailadresse ist zu kurz.</div>";
            email.focus();
            err++;
        }
        if (validateMail(email.value)==false){
            $('em_err').innerHTML="<div class='warning'>Diese E-Mailadresse ist leider ung&uuml;ltig.</div>";
            //email.value="";
            email.focus();
            err++;
        }
    }
    if(err == 0) {
        return true;
    } else {
        return false;
    }
}

// check if user uses hotmail/live emailadress for register
// many hotmail/live users wont get optin mail - so warn them!
// now also yahoo makes problems...
function checkHotmail(email){
    var microschrott = email.search(/@hotmail\.|@live\.|@yahoo./gi)
    if(microschrott != -1){
        $('em_err').innerHTML="<div class=\"warning\"><strong>Achtung!</strong><br />Es scheint Probleme mit E-Mailaccounts bzw deren Spamfiltern von <strong>Hotmail</strong> bzw <strong>Microsoft Live</strong> und <strong>Yahoo</strong> zu geben!<br />Auffällig viele Bestätigungsmails an Hotmail/Live und Yahoo Accounts scheinen nicht den Empfänger zu erreichen.<br />Sollte es bei dir auch so sein, beschwere dich bitte bei Hotmail/Live oder Yahoo und wiederhole deine Registrierung mit einer anderen E-Mailadresse (z.B. GoogleMail, GMX, web.de o.ä.)<br />Wir haben auf dieses Verhalten leider keinen Einfluss.</div>";
        email.focus();
        err++;
    } else {
        $('em_err').innerHTML="";
        email.focus();
    }
}
// check if username is available
function usernameExist(usernameID) {
    handle = $(usernameID);
    if(handle.value.length > 2) {
        var ar = new Ajax.Request(
            '/blog/ajax.php', {
            method:'post',
            parameters: 'do=checkUsername&un=' + encodeURIComponent(handle.value),
            onComplete: statechange_username
            }
        );
    }else{
        $('bn_err').innerHTML = '';
    }
}
function statechange_username(oReq) {
    $('bn_err').innerHTML = oReq.responseText;
}

// check if email is in use
function emailExist(emailID) {
    handle = $(emailID);
    if(handle.value.length > 5) {
        var ar = new Ajax.Request(
            '/blog/ajax.php', {
            method:'post',
            parameters: 'do=checkEmailExist&email=' + encodeURIComponent(handle.value),
            onComplete: statechange_emailexist
            }
        );
    }else{
        $('em_err').innerHTML = '';
    }
}
function statechange_emailexist(oReq) {
    $('em_err').innerHTML = oReq.responseText;
}

/*******************************************************************************
 *******************************************************************************
 * profil
 *******************************************************************************
 ******************************************************************************/
// userbild loeschen (nachfrage)
function uploadPic(userID, username, where) {
    if(where == "profil")
    var ar = new Ajax.Request(
        '/blog/ajax.php', {
        method:'post',
        parameters: 'do=uploadPic&uid=' + userID + '&un=' + username + '&where=' + where,
        onComplete: statechange_uploadPic
        }
    );
}
function statechange_uploadPic(oReq) {
    $('err_userpic').innerHTML = oReq.responseText;
}
// userbild loeschen (nachfrage)
function delUserPic(userID, username, realname, foto) {
    var ar = new Ajax.Request(
        '/blog/ajax.php', {
        method:'post',
        parameters: 'do=delUserPic&uid=' + userID + '&un=' + username + '&rn=' + realname + '&foto=' + foto,
        onComplete: statechange_delUserPic
        }
    );
}
function statechange_delUserPic(oReq) {
    $('err_userpic').innerHTML = oReq.responseText;
}

// userbild loeschen (endgueltig)
function delUserPicFinal(userID, username, realname, foto) {
    //document.prof_form.submit();
    //alert('uid=' + userID + '&un=' + username);
    var ar = new Ajax.Request(
        '/blog/ajax.php', {
        method:'post',
        parameters: 'do=delUserPicFinal&uid=' + userID + '&un=' + username,
        onComplete: statechange_delUserPicFinal
        }
    );
    // userbild bereich neu einlesen
    var ar = new Ajax.Request(
        '/blog/ajax.php', {
        method:'post',
        parameters: 'do=delUserPicRefresh&uid=' + userID + '&un=' + username + '&rn=' + realname + '&foto=' + foto,
        onComplete: statechange_delUserPicRefresh
        }
    );
    // loginbereich updaten
    var ar = new Ajax.Request(
        '/blog/ajax.php', {
        method:'post',
        parameters: 'do=loginRefresh&uid=' + userID + '&un=' + username + '&rn=' + realname + '&foto=' + foto,
        onComplete: statechange_loginRefresh
        }
    );
}

function statechange_delUserPicFinal(oReq) {
    $('err_userpic').innerHTML = oReq.responseText;
}
function statechange_delUserPicRefresh(oReq) {
    $('proPicDiv').innerHTML = oReq.responseText;
}
function statechange_loginRefresh(oReq) {
    $('login_div').innerHTML = oReq.responseText;
}

function submitComment(blogID) {
    window.location='/blog".$delimit1[$rw]."eintrag".$delimit2[$rw]'+blogID;
}

function showMediathek(userID, action, what, string, cat) {
    var ar = new Ajax.Request(
        "/common/ajax/fsk18.php", {
        method:'post',
        parameters: 'do=showMediathek&uid='+userID+'&action='+action+'&what='+what+'&str='+string+'&cat='+cat,
        onComplete: refreshMediathek
        }
    );
}
function refreshMediathek(oReq) {
//alert(oReq.responseText);
    $('ainithek').innerHTML = oReq.responseText;
}


/*******************************************************************************
 *******************************************************************************
 *  ajax popupwindow
 *******************************************************************************
 ******************************************************************************/
var winID = null;

function popup(param){
  if (winID != null) {
      win.setAjaxContent("datei_1.php", {parameters: {'first' : 'true'}});
      win.show(true);
  }else{
      win = new Window({className: "login",
			width: 830,
			height:550,
			destroyOnClose: false});

      win.setAjaxContent("datei_1.php", {parameters: {'first' : 'true'}});
      win.showCenter(true, 30);
      win.show();

      // Set up a windows observer, check ou debug window to get messages
      myObserver = {
           onClose: function(eventName, window){
             if (win == window) {
		winID = win.getId();
	     }
	    }
       }
	Windows.addObserver(myObserver);
   }
}

function loadContent(param,element)
{
  var file = "/blog/ajax.php"+param;
  new Ajax.Updater(element,file, {
    evalScripts: true,
  	method: 'post'
  });
}


/*******************************************************************************
 *******************************************************************************
 *** CALENDAR (scal) ***********************************************************
 *******************************************************************************
 ******************************************************************************/
var currentDate     = new Date();
var currentDay      = currentDate.getDate();
var currentMonth    = currentDate.getMonth() + 1;
var currentYear     = currentDate.getFullYear();

var blogcal;
function showcalendars(){
    blogcal = new scal(
        'blogcal',
        updateyear,{
            titleformat:'mmmm yyyy',
            closebutton:'X',
            dayheadlength:2,
            weekdaystart: 0,
            exactweeks: false,
            planner: blogposts
        }
    );
}

function changestyle(event){
    clicked = Event.element(event);
    $('blogcal').className = '';
    $('blogcal').addClassName(clicked.innerHTML);
}

function updateyear(d){
    $('blogcal_value').update('Klicke auf die Herzen!');
}

function explodeday(){
    $(blogcal).setCurrentDate(blogcal.selecteddate);
    $(blogcal).buildCalendar();
    $(blogcal).getCalendar();
    $(blogcal.baseelement).update();
    $(blogcal.baseelement).appendChild(blogcal.selecteddatecell);
}

/*******************************************************************************
 * dragable floating calendar (new blogposts)
 */

//this is a global variable to have only one instance of the calendar
var calendar = null;

//@element   => is the <div> where the calender will be rendered by Scal.
//@input     => is the <input> where the date will be updated.
//@container => is the <div> for dragging.
//@source    => is the img/button which raises up the calender, the script will locate the calenar over this control.
/*
function showCalendar(element, input, container, source) {
    if (!calendar) {
        container = $(container);
        //the Draggable handle is hard coded to "rtop" to avoid other parameter.
        new Draggable(container, {handle: "rtop", starteffect: Prototype.emptyFunction, endeffect: Prototype.emptyFunction});

        //The singleton calendar is created.
        calendar = new scal(element, $(input),
        {
            updateformat: 'mm/dd/yyyy',
            closebutton: '&nbsp;',
            wrapper: container
        });
    } else {
        calendar.updateelement = $(input);
    }

    var date = new Date($F(input));
    calendar.setCurrentDate(isNaN(date) ? new Date() : date);

    //Locates the calendar over the calling control  (in this example the "img").
    if (source = $(source)) {
        Position.clone($(source), container, {setWidth: false, setHeight: false, offsetLeft: source.getWidth() + 2});
    }

    //finally show the calendar =)
    calendar.openCalendar();
};

var imgCalendar_Click = function(e, input) {
    showCalendar("calendar", input, "calendar-container", Event.element(e));
};

Event.observe(window, "load", function(e) {
    Event.observe("imgStartDate", "click", imgCalendar_Click.bindAsEventListener(this, "startDate"));
});
*/