

var DHTML = (document.getElementById || document.all || document.layers);

function handleEnter (field, event) {
    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
    if (keyCode == 13) {
        var i;
        for (i = 0; i < field.form.elements.length; i++)
        if (field == field.form.elements[i])
        break;
        i = (i + 1) % field.form.elements.length;
        field.form.elements[i].focus();
        return false;
    }
    else
    return true;
} 
function trim(str) {
    return str.replace(/^\s*|\s*$/g,"");
}
function toggle_visibility(id, status) {
    if(!document.getElementById(id)) {
        return false;
    }
    if (!DHTML) return;
    var e = document.getElementById(id);
    if(status == true)
    e.style.display = 'block';
    else
    e.style.display = 'none';
}





function checkPromoCode(Id, targetId, email, password, button) {

    haveError = false;
    var codeinput = document.getElementById(Id);
	 
    var promocode = trim(codeinput.value);

    if(promocode != codeinput.value) codeinput.value = promocode;
    if(!promocode) return null;
    toggle_visibility('errorBox', false);
    var buttonval = button.value;
    button.value='Prüfe Code...';

    var errorBox = document.getElementById('errorBox');
    errorBox.innerHTML = '';
    emailAddress = '';
    if(email = document.getElementById(email)) {
        password = document.getElementById(password).value;
        emailAddress = email.value;
        if(!emailAddress) {
            if(errorBox.innerHTML) {
                errorBox.innerHTML = errorBox.innerHTML + "<br>" + 'Bitte geben Sie Ihre E-Mail Adresse ein!';
            } else {
                errorBox.innerHTML =  'Bitte geben Sie Ihre E-Mail Adresse ein!';
            }
            toggle_visibility('errorBox', true);
            button.value=buttonval;
            return null;
        }
        if(emailField = document.getElementById('fdata_R_kdEmail')) {
            emailField.value = emailAddress;
        }
    }

    var MyAjax	= new Ajax();
    if(!password) {
        MyAjax.url = "/ajax/noModule/noItem/noSubitem/callEvent/ajaxAnonRegisterPromoCode/promoCode/" + promocode + "/email/" + emailAddress;
    } else {
        MyAjax.url = "/ajax/noModule/noItem/noSubitem/callEvent/ajaxRegisterPromoCode/promoCode/" + promocode + "/email/" + emailAddress + "/password/" + password;

    }

    MyAjax.onSuccess = function (txt) {
        var codecheck_data = null;
        var infotarget = document.getElementById(targetId);
        if(!txt) {
            return null;
        }

        if(isError(txt)) {
            var errorBox = document.getElementById('errorBox');
            if(errorBox.innerHTML) {
                errorBox.innerHTML = errorBox.innerHTML + "<br>" + getError(txt);
            } else {
                errorBox.innerHTML = getError(txt);
            }
            toggle_visibility('errorBox', true);
            button.value=buttonval;

            return null;
        } else {

            if(txt == 'EmailExists') {
                toggle_visibility('passwordContainer', true);
                button.value=buttonval;
                return null;
            }

            try {
                if(document.getElementById('havePromo')) {
                    codecheck_data = eval('('+txt+')');
                    writeCodes(infotarget, codecheck_data.promo);
                    toggle_visibility('codeContainer', true);
                    toggle_visibility('codeInputContainer', false);
                } else {
                    document.location.reload();
                }

            } catch(e) {
                MyAjax.onError(e.name+": "+e.message);
                button.value=buttonval;
                return null;
            }
        }

        // codeinput.value = '';
        // email.value = '';
        button.value=buttonval;
    }
    MyAjax.doRequest();

}



function getCodes(targetId) {
    var MyAjax	= new Ajax();
    MyAjax.url = "/ajax/noModule/noItem/noSubitem/callEvent/ajaxGetPromoCodes/";

    var infotarget = document.getElementById(targetId);
    infotarget.innerHTML = 'Codes werden geladen... Einen Moment bitte...';

    MyAjax.onSuccess = function (txt) {
        var infotarget = document.getElementById(targetId);
        infotarget.innerHTML = '';
        if(!txt) {
            return null;
        }
        if(isError(txt)) {
            var errorBox = document.getElementById('errorBox');
            if(errorBox.innerHTML) {
                errorBox.innerHTML = errorBox.innerHTML + "<br>" + getError(txt);
            } else {
                errorBox.innerHTML = getError(txt);
            }
            toggle_visibility('errorBox', true);
            return null;
        }
        try {
            codeget_data = eval('('+txt+')');
        } catch(e) {
            MyAjax.onError(e.name+": "+e.message);
            return null;
        }
        if((codeget_data.promo).length > 0) {
            if(checkbox = document.getElementById('havePromo')) {

                checkbox.checked = true;
                toggle_visibility('codeContainer', checkbox.checked);
            } else {
                toggle_visibility('codeContainer', true);
                toggle_visibility('codeInputContainer', false);
            }

        } else {
            toggle_visibility('codeInputContainer', true);

        }
        writeCodes(infotarget, codeget_data.promo);
    }
    MyAjax.doRequest();
}

function deletePromoCode(code, targetId) {
    var MyAjax	= new Ajax();
    MyAjax.url = "/ajax/noModule/noItem/noSubitem/callEvent/ajaxUnregisterPromoCode/promoCode/" + code + '/';

    MyAjax.onSuccess = function (txt) {
        var infotarget = document.getElementById(targetId);
        if(!txt) {
            return null;
        }
        if(isError(txt)) {
            var errorBox = document.getElementById('errorBox');
            if(errorBox.innerHTML) {
                errorBox.innerHTML = errorBox.innerHTML + "<br>" + getError(txt);
            } else {
                errorBox.innerHTML = getError(txt);
            }
            toggle_visibility('errorBox', true);
            return null;
        }
        try {
            codedel_data = eval('('+txt+')');
        } catch(e) {
            MyAjax.onError(e.name+": "+e.message);
            return null;
        }
        writeCodes(infotarget, codedel_data.promo);
        if((codedel_data.promo).length < 1) {
            // toggle_visibility('codeInputContainer', true);
            // toggle_visibility('codeContainer', false);
			document.location.reload();
        }


    }
    MyAjax.doRequest();
}

function deleteAllCodes(status, targetId) {
	if(status == true) {
		return false;	
	}


    var MyAjax	= new Ajax();
    MyAjax.url = "/ajax/noModule/noItem/noSubitem/callEvent/ajaxUnregisterAllPromoCodes";

    MyAjax.onSuccess = function (txt) {
        var infotarget = document.getElementById(targetId);
        if(!txt) {
            return null;
        }
        if(isError(txt)) {
            var errorBox = document.getElementById('errorBox');
            if(errorBox.innerHTML) {
                errorBox.innerHTML = errorBox.innerHTML + "<br>" + getError(txt);
            } else {
                errorBox.innerHTML = getError(txt);
            }
            toggle_visibility('errorBox', true);
            return null;
        }
        try {
            codedel_data = eval('('+txt+')');
        } catch(e) {
            MyAjax.onError(e.name+": "+e.message);
            return null;
        }
        writeCodes(infotarget, codedel_data.promo);
        if((codedel_data.promo).length < 1) {
            toggle_visibility('codeInputContainer', true);
            toggle_visibility('codeContainer', false);
        }


    }
    MyAjax.doRequest();
}

function isError(msg) {
    global = 'true';
    if(!msg) {
        return false;
    }
    if(msg.indexOf("AjaxError:") == 0) {

        return true;
    }
    return false;
}

function getError(msg) {
    return msg.replace(/AjaxError:/, "");
}

function writeCodes(target, codes) {

    target.innerHTML = '';
    var formstring = '';
    for(i=0; i<(codes).length; i++) {
        promo = codes[i];
        target.innerHTML = target.innerHTML + "<div class=\"divspacer\">"
        + "<img src=\"/imgsrc/spacer.gif\" width=\"1\" height=\"1\"/>"
		 + "</div><div id=\"currentCodesHead\">Aktuell verwendete Codes:</div>"
        + "</div><div class=\"code\">" + promo.code + "</div>"
        + "<div class=\"name\">" + promo.name + "</div>"
        + "<div class=\"info\">" + promo.info + "</div>"
        + "<div class=\"delete\">"
        + "<a href=\"javascript:deletePromoCode('" + promo.code + "', 'promoCodes')\">&nbsp;&nbsp&nbsp;L&ouml;schen</a>" 
        + "</div>"
        + "<div class=\"divspacer\"><img src=\"/imgsrc/spacer.gif\" width=\"1\" height=\"1\"/></div>";

        target.innerHTML + promo.name + '</strong>:<br>' + promo.info + '<hr size=\"1\" noshade=\"noshade\" />';
    }
}

function resendPassword(elm_email, elm_button) { 
    email = document.getElementById(elm_email).value;
    button = document.getElementById(elm_button);
    buttonHtml = button.innerHTML;
    button.innerHTML = '[Sende E-Mail...]';

    var errorBox = document.getElementById('errorBox');

    errorBox.innerHTML = '';

    var MyAjax	= new Ajax();
    MyAjax.url = "/ajax/noModule/noItem/noSubitem/callEvent/ajaxResendPassword/email/" + email;

    MyAjax.onSuccess = function (txt) {
        if(isError(txt)) {
            if(errorBox.innerHTML) {
                errorBox.innerHTML = errorBox.innerHTML + "<br>" + getError(txt);
            } else {
                errorBox.innerHTML = getError(txt);
            }
            toggle_visibility('errorBox', true);
            button.innerHTML = buttonHtml;
            return null;
        }
        if(txt == 'sent') {
            button.innerHTML = '[Die Zugangsdaten wurden an ' + email + ' gesendet]';
        }
    }
    MyAjax.doRequest()
}
