﻿
/*!
* jQuery Dialog Form Plugin
* Author: Chad Golob
* version: 2.43 (12-MAR-2010)
* @requires jQuery v1.3.2 or later & jquery-ui 1.7.2 or later & jquery.form 2.43 or later
*

*/

/*
Usage Note:
-----------
    
$().ready(function() { $('#testLink').ajaxFormDialog(); });
    
    
*/

jQuery.fn.ajaxFormDialog = function(dialogOptions) {
    return this.each(function() {
        if (this.tagName == "A") {

            if (!dialogOptions) {
                dialogOptions = {};
            }
            var theOption = jQuery.extend(true, {}, dialogOptions);
            theOption.title = this.title;
            $(this).click(function() { $.ajaxFormDialogUrl(this.href, theOption); return false; });
        }
    });
}

jQuery.ajaxFormDialogUrl = function(url, dialogOptions) {

    var div = $('<div></div>');
    var options = new ajaxFormDialogOptions(div);

    if (dialogOptions.open) {
        div.open = dialogOptions.open;
    }

    div.load(url,
            function() {
                if (window.TrackURL) {
                TrackURL(url);
                }
                div.dialog(dialogOptions);
                div.find("form").ajaxForm({ target: options.targetDiv, success: options.SuccessCallback });
            });

}

function ajaxFormLinkClicked(theLink, options) {

    if (!options) {
        options = {};
    }

    var theOption = jQuery.extend(true, {}, options);
    if (theLink.tagName == "A") {
        theOption.title = theLink.title;
    }

    $.ajaxFormDialogUrl(theLink.href, theOption);
    return false;
}

function ajaxFormDialogOptions(targetDiv) {

    var me = this;
    me.targetDiv = targetDiv;
    me.SuccessCallback =
        function(responseText, statusText, xhr, $form) {
            TrackURL($form[0].action);
            me.targetDiv.find("form").ajaxForm({ target: me.targetDiv, success: me.SuccessCallback });
            var openFunction = me.targetDiv.open;
            if (openFunction) {
                openFunction();
            }
        };
}

function ModalDialog(options) {
    if (!options) {
        options = {};
    }
    var modalDialogOptions = { modal: true, resizable: false, draggable: false, close: function (event, ui) {
        $("input[datatype='date']").datepicker("hide");
        $(this).dialog('destroy').remove();
    }
    };
    var theOptions = jQuery.extend(true, options, modalDialogOptions);
    return theOptions;
}



/* Convinence methods for use with hover */


jQuery.fn.hoverClass = function(theClass) {
    return this.each(function() {

        $(this).hover(
                      function() {
                          $(this).addClass(theClass);
                      },
                      function() {
                          $(this).removeClass(theClass);
                      }
                    );

    });
}





var footer;

jQuery.fn.stickyFooter = function(options) {
    footer = this;

    positionFooter();

    $(window)
        .scroll(positionFooter)
        .resize(positionFooter);

    function positionFooter() {
        var docHeight = $(document.body).height() - $("#sticky-footer-push").height();
        if (docHeight < $(window).height()) {
            var diff = $(window).height() - docHeight;
            if (!$("#sticky-footer-push").length > 0) {
                $(footer).before('<div id="sticky-footer-push"></div>');
            }


            $('body').css('overflow-y', 'hidden');
            $("#sticky-footer-push").height(diff);
            //$('#ContactUsMenu').html($(window).height() + ' ' + docHeight);
        }
        else {
            $('body').css('overflow-y', 'auto');
        }

    }

    $(window).load(function() {
        positionFooter();
    });

};


//jQuery Plugin: Drop Shadow Text
// call like this: $(element).textDropShadow();

$.fn.textDropShadow = function() {
$(this).html('<span>' + $(this).html() + '</span><span class="jq-shadow">' + $(this).html() + '</span>');
    return $(this);
}


$.fn.rdtScroll = function(settings) {
    var DefaultSettings = { ImageWidth: 600,
        ThumbWidth: 100
    };

    var Container = this;
    var Settings = $.extend(settings, DefaultSettings);
    
    
    Container.find('.thumbsScrollLeft').click(
            function() {
                var pos = Container.find('ul.thumbs').position();
                var paneWidth = Container.find('.thumbsPane').width();
                var newLeft = pos.left + (paneWidth * 2 / 3);
                if (newLeft > 0) {
                    newLeft = 0;
                }
                Container.find('ul.thumbs').animate({
                    left: newLeft
                }, 1500);

            });
    Container.find('.thumbsScrollRight').click(
            function() {

                var pos = Container.find('ul.thumbs').position();
                var lastItem = Container.find('ul.thumbs li:last');
                var outerWidth = lastItem.position().left + lastItem.outerWidth(true);

                var paneWidth = Container.find('.thumbsPane').width();
                var newLeft = pos.left - (paneWidth * 2 / 3);

                if (newLeft < -outerWidth + paneWidth) {
                    newLeft = -outerWidth + paneWidth;
                }

                Container.find('ul.thumbs').animate({
                    left: newLeft
                }, 1500);

            });
}
