/* =Global stuff
===============================================*/
if (typeof com === 'undefined' || !com) {
    com = {};
}
if (typeof com.herma === 'undefined' || !com.herma) {
    com.herma = {};
}

/* =Login Manager
===============================================*/
com.herma.loginManager = {
    
    init : function() {
        var self = this;
        $('#login').live('click', self.loginClick);
        $('#register').live('click', self.registerClick);
        $('#registerClose').live('click', self.registerCloseClick);
        $('#loginButton').live('click', self.loginButtonClick);
        $('#loginFormContainer div.loginArrow').live('click', self.loginButtonClick);
        $('#passwordLostLink').live('click', self.passLostClick);
        $('#lostPassButton').live('click', self.passLostButtonClick);
        $('#lostPassFormContainer div.loginArrow').live('click', self.passLostButtonClick);
        $('#register').live('click', self.registerClick);
        $('#registerButton').live('click', self.registerButtonClick);
        // Password magic
        $('#loginFormPasswordPlain').live('focus', self.loginFormPasswordPlain);
        $('#loginFormPassword').live('blur', self.loginFormPassword);
        $('#loginFormUsername').live('focus', self.loginFormUsernameFocus);
        $('#loginFormUsername').live('blur', self.loginFormUsernameBlur);
        
        // tax id check
        $('#RegisterForm_taxid').live('keydown', self.taxIdKeyDown);
        $('#RegisterForm_taxid').live('keyup', self.taxIdKeyUp);
        
    },
    
    taxIdKeyDown : function(e) {
        var key = e.charCode || e.keyCode || 0;
        // allow backspace, tab, delete, arrows, numbers and keypad numbers ONLY
        return (
            key == 8 ||
            key == 9 ||
            key == 46 ||
            (key >= 37 && key <= 40) ||
            (key >= 48 && key <= 57) ||
            (key >= 96 && key <= 105));
    },
    
    taxIdKeyUp : function() {
        var taxid = $('#RegisterForm_taxid').val();
        if(taxid.search(/^DE/)==-1) {
            if(taxid.search(/^D/)!=-1) {
                taxid = taxid.substr(1);
            }
            taxid = 'DE'+taxid;
            $('#RegisterForm_taxid').val(taxid);
        }
    },
    
    login : function() {
        $('#login a').html('Logout');
        $('#register a').html('Mein Konto');
        if ($('#extface')[0]) $('#extface')[0].sendToActionScript('js2flash_login', '<?xml version="1.0" encoding="utf-8" ?><data success="true" />');
    },
    logout : function() {
        $('#login a').html('Login'); 
        $('#register a').html('Neuregistrierung');
        if ($('#extface')[0]) $('#extface')[0].sendToActionScript('js2flash_logout', '<?xml version="1.0" encoding="utf-8" ?><data success="true" />');
        //top.location('welcome.php');
        self.location.href = '/';
    },
    
    loginClick : function() {
		if($('#login a').html()=='Login') {
            if($('#registerDialog').is(":visible")) {
                $('#registerDialog').css('display','none');
            } else {
                $('#mainmenuShadow').slideToggle('fast','swing');
            }
            $('#loginDialog').slideToggle('fast','swing');
            if ($('#loginDialog').is(':visible')) {
            	$('#header-center').css('height', 'auto');
            }
            else {
            	$('#header-center').css('height', '98px');
            }
            
            $.ajax({
                type: 'POST',
			    url: '/site/login',
                //data: $(loginForm).serialize(),
                dataType: 'json',
				success: function(json) {
					// set the login dialog
                    $('#loginDialog').html(json.html);
					//$(function() {com.herma.loginManager.init();});
				}
			});
        } else {
            $.ajax({
                type: 'POST',
			    url: '/site/logout',
                //data: $(loginForm).serialize(),
                dataType: 'json',
				success: function(json) {
					if(json.returnCode != 'false') {
                        $(function() {com.herma.loginManager.logout();});
                        //com.herma.dialog.notice.show('success', 'Sie wurden ausgeloggt.');
					    //$(function() {com.herma.loginManager.init();});
					}
				}
			});
        }
        return false;   
    },
    
    loginButtonClick : function() {
        var loginForm = $('#loginFormContainer > form');
        $.ajax({
            type: 'POST',
    	    url: $(loginForm).attr('action'),
            data: $(loginForm).serialize(),
            dataType: 'json',
    		success: function(json) {
    			if(json.returnCode == 'false') { 
    			   $('#loginDialog').html(json.html);
    			   //$(function() {com.herma.loginManager.init();});
    			} else {
    			   $(function() {com.herma.loginManager.login();});
    			   $('#mainmenuShadow').slideToggle('fast','swing');
                   $('#loginDialog').slideToggle('fast','swing');
                   if (!$('#extface').is(':visible')) {
                   	com.herma.dialog.notice.show('success', 'Sie haben sich erfolgreich eingeloggt.');
                   }
    			}
    		}
    	 });
    	 
    	return false;
    },
    
    passLostClick : function() {
        $.ajax({type: 'POST',
    		    url: '/site/passLost',
                dataType: 'json',
    			success: function(json) {
                    $('#loginDialog').html(json.html);
                    //$(function() {com.herma.loginManager.init();});
    			}
        	});
            return false;
    },
    
    passLostButtonClick : function() {        
        var loginForm = $('#lostPassFormContainer > form');
        $.ajax({
            type: 'POST',
		    url: $(loginForm).attr('action'),
            data: $(loginForm).serialize(),
            dataType: 'json',
			success: function(json) {
				if(json.returnCode!='true') {
                    $('#loginDialog').html(json.html);
                    //$(function() {com.herma.loginManager.init();});
                } else {
                    $('#mainmenuShadow').slideToggle('fast','swing');
                    $('#loginDialog').slideToggle('fast','swing');
                    $('#loginDialog').html('');
                    //$(function() {com.herma.loginManager.init();});
					//alert('Neues Passwort per Email versendet.\nTODO: Richtige alert Box');
					com.herma.dialog.notice.show('success', 'Das neue Passwort wurde Ihnen per Email zugesendet.');
                }
			}
        });
		 
        return false;
	},
    
    registerCloseClick : function() {
        
        $('#registerClose a').toggle();
        $('#mainmenuShadow').slideToggle('fast','swing');
        $('#registerDialog').slideToggle(450,'swing');
        return false;
    },
    
    registerClick : function() {
		
        if($('#register a').html()=='Neuregistrierung') {
			$.ajax({
				type: 'POST',
				url: '/site/checkCustomerNo',
				data: "customer_type=AG",
				dataType: 'json',
				success: function(json) {
					if(json.returnCode=='2') {
						com.herma.dialog.notice.show('alert', '<b>Ausnahmefehler!<br /><br /></b>Leider können aus technischen Gründen derzeit<br />keine Neuregistrierungen durchgeführt werden!<br /><br /><b>Bitte wenden sie sich umgehend an den Support.<br /><i>Fehlercode:</i> [MAXCUSTNO]</b>');
					} else if(json.returnCode=='3') {
						com.herma.dialog.notice.show('alert', '<b>Fehler!<br /><br /></b>Leider können aus technischen Gründen derzeit<br />keine Neuregistrierungen durchgeführt werden!<br /><br /><b>Bitte wenden sie sich umgehend an den Support.<br /><i>Fehlercode:</i> [WRONGCUSTTYPE]</b>');
					} else {
						if($('#loginDialog').is(":visible")) {
							$('#loginDialog').css('display','none');
						} else {
							$('#mainmenuShadow').slideToggle('fast','swing');
						}
						$('#registerDialog').slideToggle(450,'swing');
			            if ($('#registerDialog').is(':visible')) {
			            	$('#header-center').css('height', 'auto');
			            }
			            else {
			            	$('#header-center').css('height', '98px');
			            }
						$.ajax({
							type: 'POST',
							url: '/site/register',
							//data: $(loginForm).serialize(),
							dataType: 'json',
							success: function(json) {
								// set the login dialog
								$('#registerDialog').html(json.html);
							}
						});
					}
				}
			});

            return false;
        } else {
            self.location.href = '/customer';
        }
        
        return false;
    },
    
    registerButtonClick : function() {
        var loginForm = $('#registerFormContainer > form');
        $.ajax({
            type: 'POST',
		    url: $(loginForm).attr('action'),
            data: $(loginForm).serialize(),
            dataType: 'json',
			success: function(json) {
                if(json.returnCode!='true') {
                    $('#registerDialog').html(json.html);
                    //$(function() {com.herma.loginManager.init();});
                } else {
                    $(function() {com.herma.loginManager.login();});
                    $('#mainmenuShadow').slideToggle('fast','swing');
                    $('#registerDialog').slideToggle('fast','swing');
                    $('#registerDialog').html('');
                    //$(function() {com.herma.loginManager.init();});
                    //alert('Registriert!\nTODO: Richtige alert Box');
					com.herma.dialog.notice.show('success', 'Ihre Registrierung war erfolgreich.');
                    
                }
			}
        });
		 
        return false;
    },
    
    loginFormPasswordPlain : function() {
        $('#loginFormPasswordPlain').css('display','none');
        $('#loginFormPassword').css('display','block');
        // IE FIX:
        setTimeout(function() { $("#loginFormPassword").focus(); }, 100);
    },

    loginFormPassword : function() {
        if($('#loginFormPassword').attr('value')=='') {
            $('#loginFormPasswordPlain').css('display','block');
            $('#loginFormPassword').css('display','none');
        }
    },
    
    loginFormUsernameFocus : function() {
        if($('#loginFormUsername').attr('value')=='' || $('#loginFormUsername').attr('value')=='Meine E-Mail') {
            $('#loginFormUsername').attr('value','');
        }
    },
    
    loginFormUsernameBlur : function() {
        if($('#loginFormUsername').attr('value')=='') {
            $('#loginFormUsername').attr('value','Meine E-Mail');
        }
    }
    
}


/* =
===============================================*/
$(document).ready(function() {
	$(function() {com.herma.loginManager.init();})
});

