jQuery.validator.setDefaults({
    errorClass: "err",
    ignoreTitle: true // don't use the title tag for default error messages
});

function initHeaderSlide() {
    $(".popup-link:not(.logged)").click(function() {
        $("#slide").slideToggle();
        return false;
    });
};

function initWinResize() {
	var _width = 0;
	var _sblock = $("#head-box");

	$(window).resize(function(){
		if (window.innerWidth) _width = window.innerWidth;
		else _width = document.documentElement.clientWidth;

		if(_width < 1200) {
			if(_width >= 1000)
				_sblock.css({marginRight:(1200-_width)/2});
		} else {
			_sblock.css({marginRight:0});
		}
	});
	$(window).resize();
};

function initLogin() {

    // forgot password
    $("#login-findit").click(function() {
        $("#login-form").hide();
        $("#login-form-findit").show();
        $(this).hide();
        $("#login-findit-cancel").show();
        return false;
    });

    // forgot password cancel
    $("#login-findit-cancel").click(function() {
        $("#login-form").show();
        $("#login-form-findit").hide();
        $("#login-findit").show();
        $(this).hide();
        return false;
    });

    // login validation    
    $("#login-form").validate({
            rules: {
                username: "required",
                password: "required"
            },
            messages: {
                username: "*",
                password: "*"
            },
            submitHandler: function(form) {

                // try login
                $.ajax({
                    type: "POST",
                    url: "/services/nunavut.asmx/Authenticate",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    data: '{username:"' + $("#login-username").val() + '", password: "' + $("#login-password").val() + '"}',
                    //error: handleJsonError,
                    success: function(data) {
                        $("#login-message span").removeClass("msg");
                        if (data.d) {
                            // success - redirect to current page to set cookie
                            window.location = window.location.href;
                        } else {
                            $("#login-message span:eq(0)").addClass("msg");
                        };
                    }
                });

            }
        });

    // find password validation
    $("#login-form-findit").validate({
        rules: {
            email: {
                required: true,
                email: true
            }
        },
        messages: {
            email: "*"
        },
        submitHandler: function(form) {
            var section = $(".main-image-tab img[src*=media]").length ? "media" : "trade";
            // reset password
            $.ajax({
                type: "POST",
                url: "/services/nunavut.asmx/FindPassword",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                data: '{email:"' + $("#login-email").val() + '", LCID: ' + $("#lang-id").val() + ', section: "' + section + '"}',
                //error: handleJsonError,
                success: function(data) {
                    $("#login-message span").removeClass("msg");
                    if (data.d) {
                        $("#login-message span:eq(2)").addClass("msg");
                    } else {
                        $("#login-message span:eq(1)").addClass("msg");
                    };
                }
            });
        }
    });
   
};

function initRandomMedia() {
    
    // show image to load more media
    $("#link-holder").show();
    
    // click event to load random media
    $("#main-image-info img").click(function() {

        var $mainImageLink = $(".main-image-link");
        var $mainImageInfo = $("#main-image-info");
        var sectionType = $(".main-image-tab img[src*=media]").length ? 1 : 2; // 1: media, 2: trade

        $.ajax({
            type: "POST",
            url: "/services/nunavut.asmx/GetMediaLibraryDetailRandom",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            data: '{type: ' + sectionType + ', excludedLibraryID:' + $("img", $mainImageInfo).attr("class") + ', LCID:' + $("#lang-id").val() + '}',
            //error: handleJsonError,
            success: function(data) {
                if (data.d) {

                    // show info
                    $mainImageLink.attr("href", "detail.aspx?img=" + data.d.LibraryID);
                    $("img", $mainImageLink).attr("alt", data.d.Title).attr("src", "/Userfiles/library/fs_" + data.d.FileName);
                    $("a:first", $mainImageInfo).text(data.d.Title).attr("href", $mainImageLink.attr("href"));

                    // set more class to avoid this being called right away
                    $("img", $mainImageInfo).attr("class", data.d.LibraryID);

                    // add tags
                    if (data.d.MediaTags) {
                        var tagList = '';
                        for (var i = 0; i < data.d.MediaTags.length; i++) {
                            tagList += ', <a href="search.aspx?tag=' + data.d.MediaTags[i].TagID + '">' + data.d.MediaTags[i].Tag + '</a>';
                        };
                        $("span.tags-label", $mainImageInfo).show();
                        $("span.tags", $mainImageInfo).show().html(tagList.substring(2));
                    } else {
                        $("span.tags-label", $mainImageInfo).hide();
                        $("span.tags", $mainImageInfo).hide();
                    };

                    // show categories?


                };
            }
        });

        return false;
    });
};

function initMediaSearchResults() {

    $(".media-search-img a:not(.media-search-link)")
        .mouseover(function() {
            $(this).parent().append('<img src="/images/media-search-magnify.gif" class="magnify" />');
        })
        .mouseleave(function() {
            $(this).parent().find("img.magnify").remove();
    });

};

function initMediaSeach() {    
    $("#media-search-advanced").show().find("#media-search-anchor").click(function() {
        $("#media-search-advanced-inner").slideToggle(200);
        return false;
    });
};

function initMediaDetails() {

    var mediaForm = $("#media-request");

    if (mediaForm.length) {

        $("a.logged").click(function() {
            mediaForm.toggle();
            return false;
        });

        // set up validation for media request
        mediaForm.validate({
            rules: {
                IntendedUse: "required",
                DateStart: {
                    required: true,
                    dateISO: true,
                    remote: "/services/validateDateISO.aspx"
                },
                DateEnd: {
                    required: true,
                    dateISO: true,
                    remote: "/services/validateDateISO.aspx"
                }
            },
            messages: {
                IntendedUse: "*",
                DateStart: "*",
                DateEnd: "*"
            },
            submitHandler: function(form) {

                // try adding request
                $.ajax({
                    type: "POST",
                    url: "/services/nunavut.asmx/InsertMediaRequest",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    data: '{libraryID:"' + $("#LibraryID").val() + '", usageSummary: "' + $("#IntendedUse").val() + '", startDate: "' + $("#DateStart").val() + '", endDate: "' + $("#DateEnd").val() + '", requestLCID: ' + $("#Locale").val() + '}',
                    //error: handleJsonError
                    success: function(data) {
                        if (data.d) {
                            $(".mediasuccess").show();
                            $(".mediafailure").hide();
                            $(form).hide();
                        } else {
                            $(".mediafailure").show();
                        };
                    }
                });

            }
        });

    };



};

$(document).ready(function() {
    initHeaderSlide();
    initWinResize();
    initLogin();
    initRandomMedia();
    initMediaSeach();
    initMediaSearchResults();
    initMediaDetails();

    // clear defaults
    $("#media-search-advanced-inner select").change(function() {
        $("#media-search-q").trigger("focus");
    });

    $("#login-username, #login-password, #login-email, #media-search-q").focus(function() {
        if ($(this).val() == $(this).attr("title")) $(this).val("");
    });


});

