function addWarning(span)
{
    $(span).addClass("warning");
}

function validate(formObj)
{
    var messages = new Array();
    var password = "";

    $(".warning").removeClass("warning");

    $(formObj).find("input[type=text].validate-username").each(function()
    {
        var usernameOk = $(this).val().match(/\S{5}.*/);
        if(!usernameOk)
        {
            messages.push("Invalid User Name!");
            addWarning($(this).closest("tr").find("span.listEntryActive"));
        }

        
    });
    
    $(formObj).find("input[type=password].validate-password").each(function()
    {
        password = $(this).val();
        var passwordOk = $(this).val().match(/\S{6}/);
        if(!passwordOk)
        {
            messages.push("Invalid Password!");
            addWarning($(this).closest("tr").find("span.listEntryActive"));
        }

    });

    $(formObj).find("input[type=password].validate-password-re").each(function()
    {
        var passwordReOk = $(this).val() == password;
        if(!passwordReOk)
        {
            messages.push("Invalid Password Match!");
            addWarning($(this).closest("tr").find("span.listEntryActive"));
        }

    });
    
    $(formObj).find("input[type=text].validate-email").each(function()
    {
        var emailOk =
            $(this).
                val().
                match(/^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/);
        if(!emailOk)
        {
            messages.push("Invalid E-Mail-Address");
            addWarning($(this).closest("tr").find("span.listEntryActive"));
        }

    });

    $(formObj).find("input[type=text].validate-captcha").each(function()
    {
        var captchaOk = $(this).val() != "";
            
        if(!captchaOk)
        {
            messages.push("Please fill in Captcha!");
            addWarning($(this).closest("tr").find("span.listEntryActive"));
        }

    });


    if(messages.length > 0)
    {
        return false;
    }

    return true;
}

function ajaxFileUpload()
{
    $("#loading")
    .ajaxStart(function(){
        //$(this).show();
    })
    .ajaxComplete(function(){
        $(this).hide();
    });

    $('#errorBox').slideUp('fast');
    $('#myOnPageContent').slideUp('fast');

    $('.tableWrapper').fadeOut('slow', function() {
        $('.loadingContainer').show();
        $('#loading').show();
    });

    $('#errorBox').slideUp('fast');
    $('#myOnPageContent').slideUp('fast');

    $('.tableWrapper').fadeOut('slow', function() {
        $('.loadingContainer').show();
        $('#loading').show();
    });


    $.ajaxFileUpload
    (
        {
            url: baseUri + '/Media/upload',
            secureuri:false,
            fileElementId:'fileToUpload',
            dataType: 'json',
            isPrivate: $("#isPrivate").attr("checked"),
            category: $("#select_category").val(),
            banner: $("#isBannerUpload").val(),
            title: $("#form_title").val(),
            href: $("#form_href").val(),
            pass: $("#password").val(),
            success: function (data, status)
            {
                var id = "";
                var showResult = 
                        $("#uploadResult").length == 0 ? false : true;
                if(typeof(data.error) != 'undefined')
                {
                    if(data.error != '0'){
                        $("#errorMessage").html(
                            "Es ist ein Fehler aufgetreten. <br /><br />"
                            +
                            data.error
                        );
                        id = "errorBox";
                    }
                    else{
                        if(showResult)
                        {

                            $('#imgFrame').html(
                                '<a target="_blank" href="' + data.thumbUrl.replace(/\/thumb/, "/show") + '" >' +
                                '<img alt="preview" border="0" src="' + data.thumb + '" /></a>'
                            );
                            $('#link_5').val(data.thumbUrl.replace(/\/thumb/, "/show"));
                            $('#link_4').val(data.thumbUrl.replace(/\/thumb/, ""));
                            $('#link_3').val(
                                "[URL=" +
                                data.thumbUrl.replace(/\/thumb/, "/show") +
                                "][IMG]" +
                                data.thumbUrl.replace(/\/thumb/, "") +
                                "[/IMG][/URL]"
                            );
                            $('#link_1').val(
                                "[URL=" +
                                data.thumbUrl.replace(/\/thumb/, "/show") +
                                "][IMG]" +
                                data.thumbUrl +
                                "[/IMG][/URL]"
                            );
                            $('#link_2').val(
                                "<a target='_blank' href='" +
                                data.thumbUrl.replace(/\/thumb/, "/show") +
                                "'><img alt='uploaded on picupnow.de' src='" +
                                data.thumbUrl +
                                "' /></a>"
                            );
                            
                        }
                        id = "myOnPageContent";
                    }
                }
                $('.loadingContainer').hide();
                $('#loading').hide();
                $('.tableWrapper').fadeIn('slow', function() {
                    if(showResult)
                    {
                        $('#uploadResult').show();

                    }
                    $('#' + id).slideDown('slow');
                    /*$('#uploadResult').fadeIn('slow', function() {
                        $('#' + id).slideDown('slow');
                    });*/
                });
                
            },
            error: function (data, status, e)
            {
                alert(e);
                $('.tableWrapper').fadeIn('slow');
            }
        }
    );
    return false;
}

$(document).ready(function() {

    /**
     * Sending Forms that need to be validated.
     * Validation is coupled to a form by css class "validate"
     */
    $("button.validate").click(function()
    {
        var formObj = $(this).closest("form");
        return validate(formObj);
        
    });


    $('a[rel*=facebox]').each(function()
    {
        var mode = $(this).attr("name");
        $(this).facebox(
        {
            //ajax: baseUri + '/Website/ajax/' + mode
        });
    });


    /**
     * Starting user file upload
     */
    $("#buttonUpload").click(function() {
        ajaxFileUpload();
    });

    jQuery.easing.easeOutQuart = function (x, t, b, c, d) {
        return -c * ((t=t/d-1)*t*t*t - 1) + b;
    };
    $("#slideshow").serialScroll({
        items:"li",
        prev:"#screen2 a.prev",
        next:"#screen2 a.next",
        offset:-230, //when scrolling to photo, stop 230 before reaching it (from the left)
        start:1, //as we are centering it, start at the 2nd
        duration:1200,
        force:true,
        stop:true,
        lock:false,
        cycle:false, //don"t pull back once you reach the end
        easing:"easeOutQuart", //use this easing equation for a funny effect
        jump: false //click on the images to scroll to them
        });
    $("#slideshow_next").click(function() {
        $("#slideshow").trigger("next");
    });
    $("#slideshow_prev").click(function() {
        $("#slideshow").trigger("prev");
    });

});
