/*
*
*	Homepage Image/Nav Rotator
*	Dependencies
*		-- jquery.js
*		-- rotator.css
*
*	Origination	- seejesus.net
*
*	Modifications 
*	-------------------------------------
*	Date		Developer		Comments
*	11.08		LJordan			Modified for use with ezshield.org on a lovely autumn day,
*								Added comments
*	
*	06.09		LJordan			Modified for use with ezshieldvault.com
*/


//set global vars
var container_height = 281;
var nav_item_height = 54;
var num_nav_items = 4;

//relative to the html page
var hover_img_path = "images/rotator/rotate-txt-hover.jpg";


//global functions
// **** remove Opacity-Filter in ie ****
function removeFilter(element) {
	if(element.style.removeAttribute){
		element.style.removeAttribute('filter');
	}
}

function getBGImgPosition(currentElement,itemHeight){
	//calculates bg image position based on the current element position and the height of a single nav item
	var myPositionEnd = (currentElement * itemHeight) - itemHeight;
	var bgPosition = "0px -"+myPositionEnd.toString()+"px";
	
	return bgPosition;
}

(function($) {

	//This function contains all the attributes + animation for the rotator
    $.fn.innerfade = function(options) {
        return this.each(function() {
            $.innerfade(this, options);
        });
    };

    $.innerfade = function(container, options) {
        var settings = {
        	'animationtype':    'fade',
            'speed':            'normal',
            'type':             'sequence',
            'timeout':          2000,
            'containerheight':  'auto',
            'runningclass':     'innerfade',
            'children':         null
        };
        var ifchanger = null;
        if (options)
            $.extend(settings, options);
        if (settings.children === null)
            var elements = $(container).children();
        else
            var elements = $(container).children(settings.children);
        if (elements.length > 1) {
            $(container).css('position', 'relative').css('height', settings.containerheight).addClass(settings.runningclass);
            for (var i = 0; i < elements.length; i++) {
                $(elements[i]).css('z-index', String(elements.length-i)).css('position', 'absolute').hide();
            };
            if (settings.type == 'sequence') {
            this.ifchanger = setTimeout(function() {
					$.innerfade.next(elements, settings, 1, 0);
				}, settings.timeout);
				$(elements[0]).show();
			} else if (settings.type == 'random') {
				var last = Math.floor ( Math.random () * ( elements.length ) );
				this.ifchanger = setTimeout(function() {
					do { 
						current = Math.floor ( Math.random ( ) * ( elements.length ) );
					} while (last == current );
					$.innerfade.next(elements, settings, current, last);
                }, settings.timeout);
                $(elements[last]).show();
						} else if ( settings.type == 'random_start' ) {
								settings.type = 'sequence';
								var current = Math.floor ( Math.random () * ( elements.length ) );
								this.ifchanger = setTimeout(function(){
									$.innerfade.next(elements, settings, (current + 1) %  elements.length, current);
								}, settings.timeout);
								$(elements[current]).show();
						}	else {
							alert('Innerfade-Type must either be \'sequence\', \'random\' or \'random_start\'');
						}
				}
    };

    var sidecounter = 0;
    $.innerfade.next = function(elements, settings, current, last) {
        if (settings.animationtype == 'slide') {
            $(elements[last]).slideUp(settings.speed);
            $(elements[current]).slideDown(settings.speed);
        } else if (settings.animationtype == 'fade') {
            
            $(elements[last]).fadeOut(settings.speed);
            $(elements[current]).fadeIn(settings.speed, function() {
							removeFilter($(this)[0]);
						});
			
			
	//slide the arrow, change the menu
			
			//advance arrow 
		    var left_space = (current*nav_item_height); //px to drop arrow - adjust based on ht of each nav item
			if(current==0) {
			    var title_id = num_nav_items; // total # of items in nav list
			} else {
			    var title_id = current;
			}
			
			$('#the_arrow').animate({ top:left_space.toString()+'px' }, 300);
			
			
			//reset elements
			for(i=1;i<num_nav_items+1;i++) {		//# of nav items, +1
				//reset main image
				jQuery('#the'+i+'feature').css('display', 'none');
				
				//reset nav
				var nav_id_selector = '#the'+i+'title > a';
				$(nav_id_selector).css('backgroundPosition','top');
				$('#the'+i+'title').removeClass('hover');	// remove class needed for default/initial loading of page
			}
			
			//set next active element state
			n_title_id = current+1
			var next_feature_id = '#the'+n_title_id.toString()+'feature';
			var next_title_id = '#the'+n_title_id.toString()+'title > a';
			
			$(next_feature_id).css('display','block');
			$(next_title_id).css("backgroundPosition","bottom"); //new 06/09
			
			
			
			  
        } else //advance to next image
            alert('Innerfade-animationtype must either be \'slide\' or \'fade\'');
        if (settings.type == "sequence") {
            if ((current + 1) < elements.length) {
                current = current + 1;
                last = current - 1;
            } else {
                current = 0;
                last = elements.length - 1;
            }
        } else if (settings.type == "random") {
            last = current;
            while (current == last)
                current = Math.floor(Math.random() * elements.length);
        } else
            alert('Innerfade-Type must either be \'sequence\', \'random\' or \'random_start\'');
        this.ifchanger = setTimeout((function() {
            $.innerfade.next(elements, settings, current, last);
        }), settings.timeout);
    };

})(jQuery);


// onLoad container
jQuery(document).ready(function() { 
// Comment this out to stop banner rotation on main
	if($('ul#point-main').attr('id')) {
		$('ul#point-main').innerfade({
			speed: 1000,		// fade
			timeout: 8000,		// time between slides
			type: 'sequence',
			containerheight: container_height+'px'
		});
	}
// Stop commenting out here

	$('.afeaturetitle').children('a').attr('href', 'javascript:void(0);')
	
	//on click, do this:
	$('.afeaturetitle').children('a').click(function() {
		clearTimeout(jQuery.innerfade.ifchanger);
		for(i=1;i<num_nav_items+1;i++) {		//# of nav items, +1
			//reset inactive main image elements
			jQuery('#the'+i+'feature').css("display", "none");
			
			//reset inactive nav elements
			$('#the'+i+'title > a').css("backgroundPosition","top");
			$('#the'+i+'title').removeClass('hover');	// remove class needed for default/initial loading of page
			
		}
		
		// set feature/main image attributes
		var current_element = (jQuery(this).attr('rel'));
		$('#the'+current_element+'feature').css("display", "block");
		
		// set nav attribute
		var current_title_id = '#the'+current_element+'title > a';
		$(current_title_id).css("backgroundPosition", "bottom");
		
		
		
	}); //end click function
	
	
}); //end ready function

	