// ********************************************************************************
// document ready
// ********************************************************************************
$(document).ready(function() {

    // ------------------------------------------
    // ugotovimo ali je uporabnik prijavljen ali ne
    // ------------------------------------------

    /*
    $.ajax({
        type: "GET",
        url: URLROOT+'cms/modules/profilUsers/ajax/checkTicket.php',
        success: checkTicketCallback
    });
    */


    // ------------------------------------------
    // okna za registracijo, prijavo, pozabljeno geslo in nastavitve
    // ------------------------------------------
    // ob vsakem kliku, zapremo vsa overlay okna
    $('.profilUser_box').click(function() {
        $(".profilUser_box").each(function() {
            if ($(this).overlay()) {
                $(this).overlay().close();
            }
        });
    });
    // vsi overlayi
    overlayTrigger = $(".profilUser_box").overlay({
        expose: {
            color: '#333',
            loadSpeed: 200,
            opacity: 0.3
        }
    });

    // ------------------------------------------
    // login
    // ------------------------------------------
    // pravila za validacijo
    $("#loginForm").validate({
		rules: {
			username: "required",
			password: "required"
		},
		messages: {
			username: "Prosim vpiši uporabniško ime",
			password: "Prosim vpiši geslo"
		},
		errorPlacement: function(error, element) {
		    error.appendTo( element.next() );
		}
	});

    // sprožimo login
    $('#profilUsers_login').click(function() {
        if($("#loginForm").valid() === true)
        {
            var data = {    UserName : $('#profilUsersLoginUsername').val(),
                            PassWord : $('#profilUsersLoginPassword').val()
                       };

            jsonText = JSON.stringify( data );

            $.ajax({
                type: "POST",
                url: URLROOT+'cms/modules/profilUsers/ajax/login.php',
                data: {inputData: jsonText},
                success: loginCallback
            });
        }
     });

     // ------------------------------------------
    // logout
    // ------------------------------------------
    $('#profilUsers_logout').click(function() {
        $.ajax({
            type: "GET",
            url: URLROOT+'cms/modules/profilUsers/ajax/logout.php',
            success: logoutCallback
        });
     });

     // ------------------------------------------
    // nastavitve
    // ------------------------------------------
    // pravila za validacijo
    $("#settingsForm").validate({
		rules: {
            EMail: {
				required: true,
				email: true
			},
			FirstName:  "required",
			LastName:   "required",
			Address:    "required",
			PostCode:   "required",
			PostName:   "required",
			Phone1:     "required"
			//Phone2:     "required"
		},
		messages: {
			EMail: {
				required:   "Prosim vpiši email",
				email:      "Prosim vpiši pravilen email"
			},
			FirstName:  "Prosim vpiši ime",
			LastName:   "Prosim vpiši priimek",
			Address:    "Prosim vpiši naslov",
			PostCode:   "Prosim vpiši poštno številko",
			PostName:   "Prosim vpiši pošto",
			Phone1:     "Prosim vpiši telefon"
			//Phone2:     "Prosim vpiši telefon"
		},
		errorPlacement: function(error, element) {
		    error.appendTo( element.next() );
		}
	});
    // ko kliknemo na link za nastavitve, sprožimo ajax poizvedbo, ki vrne trenutne nastavitve
    $('#profilUsers_settings_link').click(function() {
        $.ajax({
            type: "GET",
            url: URLROOT+'cms/modules/profilUsers/ajax/getSettings.php',
            success: getSettingsCallback
        });
    });
    // sprožimo shranjevanje nastavitev
    $('#profilUsers_settings').click(function() {
        if($("#settingsForm").valid() === true)
        {
            var data = {    Id              : $('#profilUsersSettingsId').val(),
                            EMail           : $('#profilUsersSettingsEmail').val(),
                            password_new    : $('#profilUsersSettingsPassword_new').val(),
                            password_new2   : $('#profilUsersSettingsPassword_new2').val(),

                            FirstName       : $('#profilUsersSettingsFirstName').val(),
                            LastName        : $('#profilUsersSettingsLastName').val(),
                            Address         : $('#profilUsersSettingsAddress').val(),
                            PostCode        : $('#profilUsersSettingsPostCode').val(),
                            PostName        : $('#profilUsersSettingsPostName').val(),
                            Phone1          : $('#profilUsersSettingsPhone1').val(),
                            Phone2          : $('#profilUsersSettingsPhone2').val()
                       };

            jsonText = JSON.stringify( data );

            $.ajax({
                type: "POST",
                url: URLROOT+'cms/modules/profilUsers/ajax/settings.php',
                data: {inputData: jsonText},
                success: settingsCallback
            });
        }
     });

     // ------------------------------------------
    // registracija
    // ------------------------------------------
    // pravila za validacijo
    $("#regForm").validate({
		rules: {
            EMail: {
				required: true,
				email: true
			},
            UserName:   "required",
            PassWord:   "required",
            PassWord2: {
				required: true,
				equalTo: "#profilUsersRegPassWord"
			},
			FirstName:  "required",
			LastName:   "required",
			Address:    "required",
			PostCode:   "required",
			PostName:   "required",
			Phone1:     "required"
			// Phone2:     "required"
		},
		messages: {
			EMail: {
				required:   "Prosim vpiši email",
				email:      "Prosim vpiši pravilen email"
			},
			UserName:       "Prosim vpiši uporabniško ime",
			PassWord:       "Prosim vpiši geslo",
            PassWord2: {
				required:   "Prosim vpiši ponovitev gesla",
				equalTo:    "Gesli nista enaki"
			},
			FirstName:      "Prosim vpiši ime",
			LastName:       "Prosim vpiši priimek",
			Address:        "Prosim vpiši naslov",
			PostCode:       "Prosim vpiši poštno številko",
			PostName:       "Prosim vpiši pošto",
			Phone1:         "Prosim vpiši telefon"
			// Phone2:         "Prosim vpiši telefon"
		},
		errorPlacement: function(error, element) {
		    error.appendTo( element.next() );
		}
	});
    // onBlur na polju UserName preverimo, če vpisano uporabniško ime obstaja
    $("#profilUsersRegUserName").blur(function() {
        $.ajax({
            type: "POST",
            url: URLROOT+'cms/modules/profilUsers/ajax/checkUserName.php',
            data: {inputData: $("#profilUsersRegUserName").val()},
            success: checkUserNameCallback
        });
    });
    // sprožimo shranjevanje nastavitev
    $('#profilUsers_reg').click(function() {
        if($("#regForm").valid() === true)
        {
            $("#req_check").val("1");
            // preverimo, da potrebna polja niso prazna
            $(".reg_field").each(function() {
                // za vsako polje preverimo, če je obvezno
                if( $(this).attr("rel") == "req" && $(this).val() == "" ) {
                    $(".profilUsers_reg_return_msg").css("color", "red");
                    $(".profilUsers_reg_return_msg").html("Prosim izpolnite potrebna polja!").fadeIn(1000).fadeTo(5000, 1).fadeOut(1000);
                    $("#req_check").val("0");
                    return false;
                }
            });

            // če so vpisana vsa potrebna polja
            if( $("#req_check").val() == "1" ) {
                var data = {    EMail           : $('#profilUsersRegEmail').val(),
                                UserName        : $('#profilUsersRegUserName').val(),
                                PassWord        : $('#profilUsersRegPassWord').val(),
                                PassWord2       : $('#profilUsersRegPassWord2').val(),
                                FirstName       : $('#profilUsersRegFirstName').val(),
                                LastName        : $('#profilUsersRegLastName').val(),
                                Address         : $('#profilUsersRegAddress').val(),
                                PostCode        : $('#profilUsersRegPostCode').val(),
                                PostName        : $('#profilUsersRegPostName').val(),
                                Phone1          : $('#profilUsersRegPhone1').val()
                                //Phone2          : $('#profilUsersRegPhone2').val()
                           };

                jsonText = JSON.stringify( data );

                $.ajax({
                    type: "POST",
                    url: URLROOT+'cms/modules/profilUsers/ajax/register.php',
                    data: {inputData: jsonText},
                    success: registrationCallback
                });
            }
        }
     });

    // ------------------------------------------
    // pozabljeno geslo
    // ------------------------------------------
    // pravila za validacijo
    $("#loginForm").validate({
		rules: {
		    email: {
				required: true,
				email: true
			}
		},
		messages: {
			email: {
				required:   "Prosim vpiši email",
				email:      "Prosim vpiši pravilen email"
			}
		},
		errorPlacement: function(error, element) {
		    error.appendTo( element.next() );
		}
	});

    // sprožimo pozabljeno geslo
    $('#profilUsers_pozabljeno_geslo_go').click(function() {
        if($("#pozabljenoGesloForm").valid() === true)
        {
            var data = {
                        email : $('#profilUsersPozabljenoGesloEmail').val()
                       };

            jsonText = JSON.stringify( data );

            $.ajax({
                type: "POST",
                url: URLROOT+'cms/modules/profilUsers/ajax/pozabljenoGeslo.php',
                data: {inputData: jsonText},
                success: pozabljenoGesloCallback
            });
        }
     });
});







// ********************************************************************************
// funkcije
// ********************************************************************************
// ------------------------------------------
// prikaže in skrije ustrezen box, ali je prijavljen ali ne
// ------------------------------------------
toggleLoggedInBox = function(loggedIn) {
    if(loggedIn == '0') {
        $("#loggedInBox").css("display", "none");
        $("#loggedOutBox").css("display", "block");
    } else {
        $("#loggedInBox").css("display", "block");
        $("#loggedOutBox").css("display", "none");
        $("#loggedInBoxUsername").html(loggedIn);
        $("#settingsLoggedInBoxUsername").html(loggedIn);
    }
}







// ********************************************************************************
// callback funkcije
// ********************************************************************************
// ------------------------------------------
// checkTicket callback
// ------------------------------------------
checkTicketCallback = function(msg) {
    if(msg == '0') {
        toggleLoggedInBox('0');
    } else {
        toggleLoggedInBox(msg);
    }
}

// ------------------------------------------
// login callback
// ------------------------------------------
loginCallback = function(msg) {
    if(msg == '0') {
        $(".profilUsers_login_return_msg").html("Vpisani so bili napačni podatki.").fadeIn(1000).fadeTo(5000, 1).fadeOut(1000);
    } else {
        if($("#LoginLogoutReloadMe").val() == "1") {
            // reload trenutne strani
            window.location = location.href.replace("#", "");
        } else {
            // brez reloada
            toggleLoggedInBox(msg);
            // zapremo overlay
            overlayTrigger.eq(1).overlay().close();
        }
    }
}

// ------------------------------------------
// logout callback
// ------------------------------------------
logoutCallback = function(msg) {
    if($("#LoginLogoutReloadMe").val() == "1") {
        // reload trenutne strani
        window.location = location.href.replace("#", "");
    } else {
        // brez reloada
        toggleLoggedInBox('0');
    }
}

// ------------------------------------------
// getSettings callback
// ------------------------------------------
getSettingsCallback = function(msg) {
    data = JSON.parse( msg );

    $(".profilUsers_settings_return_msg").html("&nbsp;");
    $("#profilUsersSettingsEmail").val(data['EMail']);
    $("#profilUsersSettingsPassword_new").val("");
    $("#profilUsersSettingsPassword_new2").val("");
    $("#profilUsersSettingsFirstName").val(data['FirstName']);
    $("#profilUsersSettingsLastName").val(data['LastName']);
    $("#profilUsersSettingsAddress").val(data['Address']);
    $("#profilUsersSettingsPostCode").val(data['PostCode']);
    $("#profilUsersSettingsPostName").val(data['PostName']);
    $("#profilUsersSettingsPhone1").val(data['Phone1']);
    $("#profilUsersSettingsPhone2").val(data['Phone2']);
    $("#profilUsersSettingsId").val(data['Id']);
}

// ------------------------------------------
// settings callback
// ------------------------------------------
settingsCallback = function(msg) {
    if(msg == '2') {
        $(".profilUsers_settings_return_msg").html("Vpisani gesli nista enaki.").fadeIn(1000).fadeTo(5000, 1).fadeOut(1000);
    } else if(msg == '1') {
        alert("Shranjeno!");
        // zapremo overlay
        overlayTrigger.eq(0).overlay().close();
    } else {
        alert("Nimaš dovoljenja!");
    }
}

// ------------------------------------------
// checkUserName callback
// ------------------------------------------
checkUserNameCallback = function(msg) {
    if(msg == '1') {
        $(".profilUsers_reg_return_msg").css("color", "red");
        $(".profilUsers_reg_return_msg").html("Uporabniško ime že obstaja, prosim izberite drugega.").fadeIn(1000).fadeTo(5000, 1).fadeOut(1000);
        // zakleni naprej povezavo
        $("#profilUsers_reg").html("");
    } else if(msg == '0') {
        $(".profilUsers_reg_return_msg").css("color", "green");
        $(".profilUsers_reg_return_msg").html("Uporabniško ime je na voljo.").fadeIn(1000).fadeTo(5000, 1).fadeOut(1000);
        // odkleni naprej povezavo
        $("#profilUsers_reg").html("Naprej");
    }
}

// ------------------------------------------
// registration callback
// ------------------------------------------
registrationCallback = function(msg) {
    if(msg == '0') {
        // glavna, potrebna polja so prazna
        $(".profilUsers_reg_return_msg").css("color", "red");
        $(".profilUsers_reg_return_msg").html("Prosim izpolnite potrebna polja!").fadeIn(1000).fadeTo(5000, 1).fadeOut(1000);
    } else if(msg == '3') {
        // vpisani gesli nista enaki
        $(".profilUsers_reg_return_msg").css("color", "red");
        $(".profilUsers_reg_return_msg").html("Vpisani gesli nista enaki!").fadeIn(1000).fadeTo(5000, 1).fadeOut(1000);
    } else if(msg == '2') {
        // registracija uspela, verifikacija poslana
        $("#reg_form").css("display", "none");
        $("#reg_msg").css("display", "block");
        $("#reg_msg_inner").html("Uspešno si se registriral.<br /><br />Na tvoj email je bila poslana verifikacija s katero zaključiš registracijo.");
    } else if(msg == '1') {
        // registracija uspela, verifikacije nismo poslali
        $("#reg_form").css("display", "none");
        $("#reg_msg").css("display", "block");
        $("#reg_msg_inner").html("Uspešno si se registriral.<br /><br />Lahko se prijaviš.");
    }
}


// ------------------------------------------
// pozabljeno geslo callback
// ------------------------------------------
pozabljenoGesloCallback = function(msg) {
    if(msg == '0') {
        // nekaj ni ok
        $("#lost_pass_msg").css("display", "block");
        $("#lost_pass_msg_inner").html("Prosim preveri vpisan email.");
    } else if(msg == '1') {
        // link za geslo poslan
        $("#lost_pass_form").css("display", "none");
        $("#lost_pass_msg").css("display", "block");
        $("#lost_pass_msg_inner").html("Na email je bilo poslano avtorizacijsko sporočilo s katerim si dokončno spremeniš geslo.");
    }
}
