﻿/// <reference path="jquery-1.5.1.js" />
/// <reference path="jquery.lightbox-0.5.js" />
/// <reference path="jquery.watermarkinput.js" />
/// <reference path="jquery-ui-1.8.10.custom.min.js" />
$(function () {
    $('a.lightbox').lightBox({
        imageLoading: '/library/images/lightbox-ico-loading.gif',
        imageBtnPrev: '/library/images/lightbox-btn-prev.gif',
        imageBtnNext: '/library/images/lightbox-btn-next.gif',
        imageBtnClose: '/library/images/lightbox-btn-close.gif',
        imageBlank: '/library/images/lightbox-blank.gif'
    });

    $('input.search').Watermark("Search...");

    $('.buttonLink').each(function () {
        var currentElement = $(this);
        var color;
        var parentCount = 0;
        do {
            color = currentElement.css("background-color");
            currentElement = currentElement.parent();
            parentCount++;
        } while (color == "transparent" && currentElement != null);


        $(this).data("former-background", color);
        $(this).data("reset-bg", parentCount > 1);
    });
    $('.buttonLink').hover(
	    function () {
	        $(this).animate(
	            { backgroundColor: '#0DB4D5' },
	            { queue: false, duration: 'fast', easing: 'swing' }
	        );
	    },
	    function () {
	        var color = $(this).data("former-background");
	        var resetAfterAnimation = $(this).data("reset-bg");

	        var animateOptions = { queue: false, duration: 'slow' };
	        if (resetAfterAnimation == true) {
	            animateOptions["complete"] = function () { $(this).css("background-color", "transparent"); };
	        }
	        $(this).animate({ backgroundColor: color }, animateOptions);
	        if (resetAfterAnimation == true) {
	            $(this).css("background-color", "transparent");
	        }
	    }
    );
    $('#news-content').height($('#news-latest').height() + 8);
    $("div#flyout-container").dialog({
        autoOpen: false,
        modal: true,
        width: 800,
        height: 600
    });
    $('a.flyout-link').click(function () {
        $("div#flyout-container")
            .html('<iframe id="modalIframeId" width="100%" height="100%" marginWidth="0" marginHeight="0" frameBorder="0" scrolling="auto" />')
            .dialog('option', 'title', this.title)
            .dialog('option', 'buttons', {
                "Close": function () {
                    $(this).dialog("close");
                    window.location.reload();
                }
            })
            .dialog("open");

        $("#modalIframeId").load(function () {

            if ($(this).data("open-parent") == true) {
                var $dialog = $("#modalIframeId");

                var newLocation = $dialog.get(0).document.location.href.toString();

                top.window.location = newLocation;

                return true;
            } else {
                var existingButtons = $('div#flyout-container').dialog('option', 'buttons')

                $("#modalIframeId").contents().find(":submit.dialog-hosted").each(function () {
                    var button = $(this);
                    if (button.hasClass("open-parent") == true) {
                        button.click(function () {
                            $("#modalIframeId").data("open-parent", true);
                            return true;
                        });
                    }
                    existingButtons[$(this).attr("value")] = function () {
                        button.click();
                    }
                }).hide();
                $('div#flyout-container').dialog('option', 'buttons', existingButtons);
            }
        });
        $("#modalIframeId").attr("src", this.href);

        return false;
    });
    $('div.pop_body').dialog({
        width: 630,
        modal: true,
        autoOpen: false,
        dialogClass: 'pop_body'
    });
    $('a.flyout').click(function () {
        var elementId = $(this).attr("href");
        var $dialog = $(elementId);
        $dialog.dialog('open');
    });
    function login(url, username, password, onSuccess, onError) {
        if ($.browser.safari) {
            username = username.replace("@", "%40");
        }
        $.ajax(url, {
            username: username,
            password: password,
            success: onSuccess,
            error: onError
        });
    }
    $("a[rel='login']").click(function () {
        //if (!$.browser.msie) { return true; }
        var $originalLink = $(this);

        var $container = $('<div class="login-container"></div>');
        var $status = $('<span>Please login</span>');
        var $form = $('<form action="." method="GET"></form>');
        var $username = $('<input type="text" name="username" />');
        var $password = $('<input type="password" name="password" />');
        var $goLink = $('<a href="login" rel="login-action">Go</a>');
        var $close = $('<span class="ml-button delete" href="#">Close</span>');

        $form.append($username, $password);
        $container.append($status, $form, $goLink, $close);

        $close.click(function () {
            $originalLink.show();
            $container.remove();
            return false;
        });
        $form.submit(function () {
            var username = $username.val();
            login($originalLink.attr('href') + "once", username, $password.val(), function () {
                // succeed
                window.location.reload();
            }, function () {
                // fail
                $forgottenLink = $('<a href="/registration/' + username + '/resendpwd">(Forgot?)</a>');
                $status.text('Wrong credentials ');
                $status.append($forgottenLink);
                $status.addClass('error');
            });
            return false;
        });
        $goLink.click(function () {
            $form.submit();
            return false;
        });

        $originalLink.before($container);
        $username.Watermark('E-mail address');
        $password.Watermark('Password');
        $(this).hide();
        return false;
    });
});

