(function (jQuery) {

    jQuery.fn.formFocus = function () {
        return this.each(function () {
            var field = jQuery(this);

            field.focus(function () {
                if (this.value == this.defaultValue) {
                    field.val('');
                }
            });

            field.blur(function () {
                if (!this.value.length) {
                    field.val(this.defaultValue);
                }
            });
        });
    };

})(jQuery);

jQuery(document).ready(function () {
    jQuery('#primary-nav > li > a').hover(
		function () {
		    var tab = jQuery("#" + this.id);
		    var position = tab.position();
		    var get_id = this.id.split("_");
		    var nav_id = get_id[1];
		    jQuery('#nav-dropdown_' + nav_id).removeClass('hide');
		    jQuery('#nav-dropdown_' + nav_id).css('left', position.left + 'px');

		    if (jQuery.browser.msie == true && jQuery.browser.version == "6.0") {
		        jQuery('#nav-dropdown_' + nav_id).bgiframe();
		    }
		},
		function () {
		    var get_id = this.id.split("_");
		    var nav_id = get_id[1];
		    jQuery('#nav-dropdown_' + nav_id).addClass('hide');
		}
	);

    jQuery('div.nav-dropdown').hover(
		function () {
		    var dropdown = jQuery("#" + this.id);
		    dropdown.removeClass('hide');
		},
		function () {
		    var dropdown = jQuery("#" + this.id);
		    dropdown.addClass('hide');
		}
	);
});

// Homepage Slideshow

var iSlideDurationInMS = 5000;
var iFadeDurationInMS = 1000;
var iSlideAndFadeTotalDuration = iSlideDurationInMS + iFadeDurationInMS;
var iSlideCount = 0;
var oSlides = undefined;
var iCurrentSlideIndex = 0;

function showNextSlide() {
    var oSlideToHide = oSlides.eq(iCurrentSlideIndex);
    updateSlideIndex();
    var oSlideToShow = oSlides.eq(iCurrentSlideIndex);
    oSlideToHide.fadeOut(iFadeDurationInMS);
    oSlideToShow.fadeIn(iFadeDurationInMS);
    queueNextSlide();
}

function updateSlideIndex() {
    iCurrentSlideIndex = iCurrentSlideIndex + 1;
    if (iCurrentSlideIndex >= iSlideCount) {
        iCurrentSlideIndex = 0;
    }
}

function startShowingSlides() {
    oSlides.hide().css({ 'visibility': 'visible' });
    oSlides.eq(0).fadeIn(iFadeDurationInMS);
    queueNextSlide();
}

function queueNextSlide() {
    setTimeout(showNextSlide, iSlideAndFadeTotalDuration);
}

function initializeSlideshow(iDesiredSlideDurationInMS, iDesiredFadeDurationInMS) {
    oSlides = jQuery('div#slideshow div.slide');
    iSlideCount = oSlides.length;
    if (iSlideCount > 0) {
        iSlideDurationInMS = iDesiredSlideDurationInMS;
        iFadeDurationInMS = iDesiredFadeDurationInMS;
        iSlideAndFadeTotalDuration = iSlideDurationInMS + iFadeDurationInMS;
        startShowingSlides();
    }
}

// Homepage Slider
var iSliderItemCount = 0;
var oSliderItems = undefined;
var oSliderInner = undefined;
var oSliderPrev = undefined;
var oSliderNext = undefined;
var iSliderItemWidth = 222;
var iSliderItemMargin = 5;
var iSliderItemTotalWidth = iSliderItemWidth + iSliderItemMargin;
var iSliderAnimateDurationInMS = 500;
var bSliderClickLock = false;
var iSliderCurrentItem = 1;
var iSliderShownItems = 4;

function handleSliderItemClick(oEvent, oThis) {
    oEvent.preventDefault();
    var oThis = jQuery(oThis);
    var oThisLink = oThis.find('a');
    var sThisLinkURL = oThisLink.attr('href');
    var sThisLinkTarget = oThisLink.attr('target');

    if (sThisLinkTarget == "" || sThisLinkTarget == '_parent') {
        document.location = sThisLinkURL;     
    }
    else {
        window.open(sThisLinkURL);
    }
}

function initializeSliderLinks() {
    oSliderItems.css({ 'cursor': 'pointer' });
    oSliderItems.click(function (event) {
        handleSliderItemClick(event, this);
    });
}

function handleSliderArrowClick(oEvent, iDirection) {
    oEvent.preventDefault();
    if (!bSliderClickLock) {
        bSliderClickLock = true;
        var bAllowMovement = true;
        iSliderCurrentItem = iSliderCurrentItem - iDirection;
        if (iSliderCurrentItem < 1) {
            iSliderCurrentItem = 1;
            bAllowMovement = false;
        } else if (iSliderCurrentItem + (iSliderShownItems - 1) > iSliderItemCount) {
            iSliderCurrentItem = iSliderItemCount - (iSliderShownItems - 1);
            bAllowMovement = false;
        }
        setSliderArrowState();
        if (bAllowMovement) {
            var iCurrentLeftMargin = parseInt(oSliderInner.css('marginLeft'));
            oSliderInner.animate(
				{ marginLeft: ((iDirection * iSliderItemTotalWidth) + iCurrentLeftMargin) },
				iSliderAnimateDurationInMS,
				function () {
				    bSliderClickLock = false;
				}
			);
        } else {
            bSliderClickLock = false;
        }
    }
}

function setSliderArrowState() {
    oSliderPrev.removeClass('disabled');
    oSliderNext.removeClass('disabled');
    if (iSliderCurrentItem <= 1) {
        oSliderNext.addClass('disabled');
    } else if (iSliderCurrentItem + (iSliderShownItems - 1) >= iSliderItemCount) {
        oSliderPrev.addClass('disabled');
    }
}

function initializeSlider() {
    oSliderItems = jQuery('div#slider_inner div.slider_item');
    iSliderItemCount = oSliderItems.length;
    if (iSliderItemCount > 0) {
        oSliderInner = jQuery('div#slider_inner');
        if (oSliderInner.length > 0) {
            initializeSliderLinks();
            oSliderPrev = jQuery('a.slider_prev');
            oSliderNext = jQuery('a.slider_next');
            if (iSliderItemCount > iSliderShownItems) {
                setSliderArrowState();
                oSliderPrev.click(function (event) {
                    handleSliderArrowClick(event, -1);
                });
                oSliderNext.click(function (event) {
                    handleSliderArrowClick(event, 1);
                });
            } else {
                oSliderNext.addClass('disabled');
                oSliderPrev.addClass('disabled');
            }
        }
    }
}

