﻿jQuery.preloadCssImages = function () {

    var allImgs = []; //new array for all the image urls  
    var k = 0; //iterator for adding images
    var sheets = document.styleSheets; //array of stylesheets

    for (var i = 0; i < sheets.length; i++) {//loop through each stylesheet
        var cssPile = ''; //create large string of all css rules in sheet
        var csshref = (sheets[i].href) ? sheets[i].href : 'window.location.href';
        var baseURLarr = csshref.split('/'); //split href at / to make array
        baseURLarr.pop(); //remove file path from baseURL array
        var baseURL = baseURLarr.join('/'); //create base url for the images in this sheet (css file's dir)

        if (baseURL != "") baseURL += '/'; //tack on a / if needed

        if (document.styleSheets[i].cssRules) {//w3
            var thisSheetRules = document.styleSheets[i].cssRules; //w3
            for (var j = 0; j < thisSheetRules.length; j++) {
                cssPile += thisSheetRules[j].cssText;
            }
        }
        else {
            cssPile += document.styleSheets[i].cssText;
        }

        //parse cssPile for image urls and load them into the DOM
        var imgUrls = cssPile.match(/[^\(]+\.(gif|jpg|jpeg|png)/g); //reg ex to get a string of between a "(" and a ".filename"
        if (imgUrls != null && imgUrls.length > 0 && imgUrls != '') {//loop array
            var arr = jQuery.makeArray(imgUrls); //create array from regex obj        
            jQuery(arr).each(function () {
                allImgs[k] = new Image(); //new img obj
                allImgs[k].src = (this[0] == '/' || this.match('http://')) ? this : baseURL + this;     //set src either absolute or rel to css dir
                k++;
            });
        }
    } //loop
    return allImgs;
}

$.fn.pause = function(duration) {
    $(this).animate({ dummy: 1 }, duration);
    return this;
};

$(document).ready(function () {

    var isIE6 = ($.browser.msie && $.browser.version.substr(0, 1) < 7);

    // Adds the scroll down animation to the dropdowns and adds the over class
    // The commented out parts is the fade effect which is not supported in IE
    $("#MainNav dd").hover(function () {
        $(this).children('.ddWrap').stop(true, true);
        $(this).children('.ddWrap').pause(250).animate({
            "height": "show"
            //"opacity": "show"
        }, "fast", "swing", function () {
            $(this).parent().addClass('over');
            //$(this).css({ "height": "", "opacity": "" });
            $(this).css({ "height": "" });
        });
    },
    function () {
        $(this).children('.ddWrap').stop(true, true);
        $(this).children('.ddWrap').animate({
            "height": "hide"
            //"opacity": "hide"
        }, "normal", "swing", function () {
            $(this).parent().removeClass('over');
            //$(this).css({ "height": "", "opacity": "" });
            $(this).css({ "height": "" });
        });
    });

    // This adds the over class to the dropdown LIs so that we can get an over effect in IE6
    $(".dropdown ul li").hover(function () {
        $(this).addClass('over');
    },
    function () {
        $(this).removeClass('over');
    });

    // This adds the little shift in the dropdown menu
    if (!isIE6) {
        $('.dropdown ul li a').hover(function () {
            $(this).stop(true, true);
            $(this).animate({ marginLeft: "4" }, { duration: 200 });
        }, function () {
            $(this).stop(true, true);
            $(this).animate({ marginLeft: "0" }, { duration: 200 });
        });
    }
    // This is the simplified img hover script
    $('img[hvr]').hover(function () {
        var currentImg = $(this).attr('src');
        $(this).attr('src', $(this).attr('hvr'));
        $(this).attr('hvr', currentImg);
    }, function () {
        var currentImg = $(this).attr('src');
        $(this).attr('src', $(this).attr('hvr'));
        $(this).attr('hvr', currentImg);
    });

    // This adds a watermark to the textbox using the ToolTip attribute for <asp:TextBox or the Title attribute on input.
    $("input[title]").each(function () {
        if ($(this).attr('title') != '') {
            $(this).val($(this).attr('title'));
            $(this).addClass("water");
        }
    }).focus(function () {
        if ($(this).val() == $(this).attr('title')) {
            $(this).val("");
            $(this).removeClass("water");
        }
    }).blur(function () {
        if ($.trim($(this).val()) == "") {
            $(this).val($(this).attr('title'));
            $(this).addClass("water");
        }
    });

    // Preload Images
    //$.preloadCssImages();


    // Autocreate captions for images.

    $("img[longdesc]").each(function () {

        $(this).wrap('<div class="autoImage" />');
        $(this).after('<div class="autoImageCaption">' + $(this).attr('longdesc') + '</div>');
        $(this).parent().attr('style', $(this).attr('style')).attr('class', $(this).attr('class'));
        $(this).removeAttr("style").removeAttr("class");

    });





});


