// eintragen überprüfen

function EMail(s) {
    var a = false;
    var res = false;
    if(typeof(RegExp) == 'function') {
        var b = new RegExp('abc');
        if(b.test('abc') === true){
            a = true;
        }
    }

    if(a === true) {
        reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
            '(\\@)([a-zA-Z0-9\\-\\.]+)'+
            '(\\.)([a-zA-Z]{2,4})$');
        res = (reg.test(s));
    }
    else {
        res = (s.search('@') >= 1 &&
            s.lastIndexOf('.') > s.search('@') &&
            s.lastIndexOf('.') >= s.length-5);
    }
    return(res);
}
function whitespacereg(form,name){ // feld auf leerzeichen prüfen
    for(var i=0;i<document.register.username.value.length;i++) {
        if(document.register.username.value[i] === ' '){
            return false;
        }
    }
    return true;
}
var icon = '<img src="http://img.metalgigs.de/delete2.gif" alt="Fehler">';
/**
 *
 */
function chkFormular() {	// eintragen formular prüfen
    var returnVar = true;
    if(document.konzadd.dropdown.value!='false'){
        if (document.konzadd.locationID.value=='Bitte Veranstaltungsort auswählen' || document.konzadd.locationID.value=='---------------------------------' || document.konzadd.locationID.value==''){
            document.getElementById("locationError").innerHTML = '<br>'+icon+' Bitte gib eine Location an';
            returnVar = false;
        }
        else {
             document.getElementById("locationError").innerHTML = '';
        }
    }
    else {
        if(document.konzadd.lname.value===''){
            document.getElementById("nameError").innerHTML = '<br>'+icon+' Bitte gibt den Namen der Location an';
            returnVar = false;
        }
        else {
            document.getElementById("nameError").innerHTML = '';
        }
        if(document.konzadd.lstadt.value===''){
            document.getElementById("stadtError").innerHTML = '<br>'+icon+' Bitte gibt die Stadt der Location ein (ohne PLZ)';
            returnVar = false;
        }
        else {
            document.getElementById("stadtError").innerHTML = '';
        }
        if(document.konzadd.bundesland.value===''){
            document.getElementById("stadtError").innerHTML = '<br>'+icon+' Bitte gib das Bundesland an';
            returnVar = false;
        }
        else {
             document.getElementById("stadtError").innerHTML = '';
        }
    }
    //
    if(document.konzadd.day.value === '--'){
        document.getElementById("datumError").innerHTML = '<br>'+icon+' Bitte gib den Tag an';
        returnVar = false;
    }
    //
    else if(document.konzadd.month.value === '--'){
        document.getElementById("datumError").innerHTML = '<br>'+icon+' Bitte gib den Monat an';
        returnVar = false;
    }
    //
    else if(document.konzadd.year.value === '--'){
        document.getElementById("datumError").innerHTML = '<br>'+icon+' Bitte gib das Jahr an';
        returnVar = false;
    }
    else {
         document.getElementById("datumError").innerHTML = '';
    }
    //
    if (document.konzadd.titel.value===''){
        document.getElementById("titelError").innerHTML = '<br>'+icon+' Bitte gib den Titel der Veranstaltung an';
        returnVar = false;
    }
    else {
         document.getElementById("titelError").innerHTML = '';
    }
    //
    if (document.konzadd.bands.value==='') {
        document.getElementById("bandError").innerHTML = '<br>'+icon+' Bitte trag die Bands oder die Beschreibung ein';
        returnVar = false;
    }
    else {
         document.getElementById("bandError").innerHTML = '';
    }
    //
    var genre = document.getElementsByName("genre[]");
    var genrelaenge = genre.length;
    for(var i=0;i<genrelaenge;i++) {
        if(genre[i].checked === true) {
            var genreklickt=1;
            break;
        }
    }
    if(genreklickt!=1) {
        document.getElementById("genreError").innerHTML = '<br>'+icon+' Bitte gib ein oder mehrere Genres an';
        returnVar = false;
    }
    else {
         document.getElementById("genreError").innerHTML = '';
    }
    return returnVar;
}

function checkform(){
    document.konzadd.action = 'javascript:;';
    if(chkFormular()===true) {
        document.konzadd.action = "/form/_konzertadd.php";
        submit();
    }
}


function checkRegister() {
    document.register.action = "javascript:;";
    var allOkay = true;

    if (document.register.username.value==='' || document.register.username.value.length<3) {
        document.getElementById("userError").innerHTML = "<br>"+icon+" Der Benutzername muss mindestens drei Zeichen lang sein.";
        allOkay = false;
    }
    else if(!whitespacereg('register','username')) {
        document.getElementById("userError").innerHTML = "<br>"+icon+" Der Benutzername darf keine Leerzeichen enthalten";
        allOkay = false;
    }
    else if (document.register.username.value==='Guest' || document.register.username.value==='guest') {
        document.getElementById("userError").innerHTML = "<br>"+icon+" Der Benutzername darf nicht Guest lauten!";
        allOkay = false;
    }
    else {
        if(validName){
            document.getElementById("userError").innerHTML = "";
        }
    }

    if (document.register.password.value==='' || document.register.password.value.length<6) {
        document.getElementById("passwordError").innerHTML = "<br>"+icon+" Das Passwort muss mindestens 6 Zeichen lang sein.";
        allOkay = false;
    }
    else if (document.register.password.value != document.register.password2.value) {
        document.getElementById("passwordError").innerHTML = "<br>"+icon+" Die Passwörter stimmen nicht überein!";
        allOkay = false;
    }
    else {
        document.getElementById("passwordError").innerHTML = "";
    }

    if (document.register.email.value ==='' || !EMail(document.register.email.value)) {
        document.getElementById("emailError").innerHTML = "<br>"+icon+" Dies ist keine gültige Email Adresse";
        allOkay = false;
    }
    else {
        if(validEmail){
            document.getElementById("emailError").innerHTML = "";
        }
    }
    isEmailUsed(document.register.email.value);
    isUsernameUsed(document.register.username.value);
    
    if(allOkay && validName && validEmail){
        document.register.action = "/user/form/useradd.php";
        submit();
    }
}
/**
 * Element aus und einblenden
 */
function visibleK(id) {
    element = document.getElementById(id).style;

    if(element.visibility == "hidden") {
        element.visibility = "visible";
        element.display = "";
    }
    else {
        element.visibility = "hidden";
        element.display = "none";
    }
}
function selectall(id) {
    for (var i = 0; i < document.changefrontpage.id.length; i++) {
        document.changefrontpage.id[i].checked = true;
    }
}

var mah="";
/*
 * Macht momentan nix
 */
function allcheck(name) {
    if (mah===true) {
        mah=false;
    }
    else {
        mah=true;
    }
    for (var i=0; i<document.changefrontpage.elements.length; i++) {
        if(document.changefrontpage.elements[i].id==name){
            document.changefrontpage.elements[i].checked = mah;
        }
    }
}
/**
 *
 */
function checkBandEdit(name){
    if(chkBandEdit(name)===true) {
        var element = document.getElementById("bandedit"+name);
        element.action = "";
        submit();
    }
}
/**
 * 
 */
function chkBandEdit(name){
    var element = document.getElementById("genre"+name);
    if (element.value==='') {
        alert("Das Genre Feld darf nicht leer sein!");
        return false;
    }
    return true;
}
// Ab Hier Ajax Teil
// XmlHttpRequest Object und so
function getXmlHttpRequestObject() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    } else if(window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        return null;
    }
}
var xmlObj =  getXmlHttpRequestObject();
var validName = false;
//
function isUsernameUsed(username){
    if(xmlObj.readyState == 4 || xmlObj.readyState === 0) {
        xmlObj.open("GET", '/plugins/isNameEmailUsed.php?username=' + username, true);
        xmlObj.onreadystatechange = handleIsNameUsed;
        xmlObj.send(null);
    }
}
//
function handleIsNameUsed() {
    if (xmlObj.readyState == 4) {
        if(xmlObj.responseText == "true"){
            document.getElementById("userError").innerHTML = "<br>"+icon+" Dieser Benutzername ist bereits belegt";
            allOkay = false;
        }
        else {
            validName = true;
        }
    }
}
var validEmail = false;
//
function isEmailUsed(email){
    if(xmlObj.readyState == 4 || xmlObj.readyState === 0) {
        xmlObj.open("GET", '/plugins/isNameEmailUsed.php?email=' + email, true);
        xmlObj.onreadystatechange = handleIsEmailUsed;
        xmlObj.send(null);
    }
}
//
function handleIsEmailUsed() {
    if (xmlObj.readyState == 4) {
        if(xmlObj.responseText == "true"){
            document.getElementById("emailError").innerHTML = "<br>"+icon+" Diese Email Adresse wird bereits verwendet";
            allOkay = false;
        }
        else {
            validEmail = true;
        }
    }
}
/**
 * 
 */
function showNewLocationFields(variable){
    if(variable == "newver"){
        document.getElementById("locationDrop").style.display = 'none';
        document.getElementById("locationDrop").style.visibility = "hidden";
        document.getElementById("newLocationFields").style.display = '';
        document.getElementById("newLocationFields").style.visibility = 'visible';
        document.getElementById("dropdown").value = 'false';
    }
    else {
        checkForDoubleEntries();
    }
}
/**
 *
 */
function checkForDoubleEntries(){
    if(document.konzadd.locationID.value !== 'Bitte Veranstaltungsort auswählen' &&
       document.konzadd.locationID.value !== '---------------------------------' &&
       document.konzadd.locationID.value !== 'Neuer Veranstaltungsort')
    {
        if(document.konzadd.day.value !== '--' && document.konzadd.month.value !== '--' && document.konzadd.year.value !== '--'){
            if(xmlObj.readyState == 4 || xmlObj.readyState === 0) {
                var date = document.konzadd.year.value + '-' + document.konzadd.month.value + '-' +document.konzadd.day.value;
                var locationID = document.konzadd.locationID.value;
                xmlObj.open("GET", '/plugins/getDoubleEntries.php?date=' + date + '&locationID=' + locationID, true);
                xmlObj.onreadystatechange = handleDoublEntries;
                xmlObj.send(null);
            }
        }
    }
}
/**
 * 
 */
function handleDoublEntries(){
    if (xmlObj.readyState == 4) {
        var xml = xmlObj.responseXML;
        var termin = xml.getElementsByTagName('termin');
        var meintenSie = null;
        var titel = null;
        var land = null;
        var bands = null;
        var konzertID = null;

        if(termin[0].firstChild.nodeValue != null){ // wenn es überhaupt nen Wert gibt, d.h. ein Kollidierendes Event
            meintenSie = "Kann es sein, dass du gerade ";
            for(var i = 0; i < termin.length; i++){
                titel = termin[i].getElementsByTagName('titel');
                land = termin[i].getElementsByTagName('land');
                bands = termin[i].getElementsByTagName('bands');
                konzertID = termin[i].getElementsByTagName('id');
                meintenSie += ' <a href="http://www.metalgigs.'+land[0].firstChild.nodeValue+'/konzert_'+konzertID[0].firstChild.nodeValue+'.html">'+titel[0].firstChild.nodeValue+'</a> oder';
            }
            var hinweis = '<table id="hinweis" cellpadding="5" width="50%">';
            hinweis += '<tr class="popup">';
            hinweis += '<td><strong>Termin Überschneidung?</strong><a href="javascript:ausblenden();" onclick="ausblenden()" style="float:right;"><img src="http://img.metalgigs.de/delete.gif" border="0" alt="Hinweis schließen Icon" title="Hinweis schließen"></a>'
            hinweis += '<hr>'+meintenSie.substring(0,meintenSie.length-5)+' an dem Tag eintragen willst?</td>';
            hinweis += '</tr>';
            hinweis += '<tr>';
            hinweis += '<td>&nbsp;</td>';
            hinweis += '</tr>';
            hinweis += '</table>';
            document.getElementById("doubleEntryError").innerHTML = '' + hinweis;
        }

    }
}
function xMalChange(){
    var count = document.konzadd.xmaldrop.value;
    var fields = '';
    for(var i = 1; i < count; i++){
        fields += '<select name="day'+i+'" onchange="checkForDoubleEntries();"><option value="--">--</option><option value="01">01</option><option value="02">02</option><option value="03">03</option><option value="04">04</option><option value="05">05</option><option value="06">06</option><option value="07">07</option><option value="08">08</option><option value="09">09</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select>';
        fields += '&nbsp;<select name="month'+i+'" onchange="checkForDoubleEntries();"><option value="--">--</option><option value="01">Januar</option><option value="02">Februar</option><option value="03">März</option><option value="04">April</option><option value="05">Mai</option><option value="06">Juni</option><option value="07">Juli</option><option value="08">August</option><option value="09">September</option><option value="10">Oktober</option><option value="11">November</option><option value="12">Dezember</option></select>';
        fields += '&nbsp;<select name="year'+i+'" onchange="checkForDoubleEntries();"><option value="--">--</option><option value="2010">2010</option><option value="2011">2011</option><option value="2012">2012</option></select><br>';

    }
    document.getElementById("additionalDateFields").innerHTML = fields;
}
function checkAll(groupname){
    for (var i = 0; i < groupname.length; i++){
	groupname[i].checked = true;
    }
}
/**
 * groupname in der Form document.formname.groupname
 */
function unCheckAll(groupname){
    for (var i = 0; i < groupname.length; i++){
	groupname[i].checked = false;
    }
}
function checkOrUncheckElement(element){
    if(element.checked == true){
        element.checked = false;
    }
    else {
        element.checked = true;
    }
}