
var imageViewer = {

    // navtypes: 'none' 'basic' 'advanced'
    options: {interval:5000,speed:2000},
    
    api: null,
    
    init: function(selector, options, onNew) {
        if(options) {
            $.extend(imageViewer.options,options);
        }

        imageViewer.fade.init(selector);

	}

};

imageViewer.fade = {

    currentIndex: 0,
    
    interval: null,
    
    $els: null,
    
    init: function(selector) {
        
        imageViewer.fade.$els = $(selector + ' .ivItem div');
        
        // setting all to absolute position...
        imageViewer.fade.$els.css('position','absolute').css('left','0').css('top','0');
        
        // fade all but the top image:
        $(selector + ' .ivItem div:not(#ivContainerInner .ivItem div:first)').fadeOut(5);
        
		if(imageViewer.options.onStart) {
			imageViewer.options.onStart($('#ivContainerInner .ivItem div:first'));
		}

        imageViewer.fade.interval = setInterval(function(){imageViewer.fade.startShow();},imageViewer.options.interval);
        
    },
    
    
    startShow: function() {
        
        // fade out current div
        $(imageViewer.fade.$els[imageViewer.fade.currentIndex]).fadeOut(imageViewer.options.speed);

        // increment index
        imageViewer.fade.currentIndex++;
        
        // wrap index around if it's at end of the array
        if(imageViewer.fade.currentIndex==imageViewer.fade.$els.length) {
            imageViewer.fade.currentIndex = 0;
        }
        
        // fade in new image
        $(imageViewer.fade.$els[imageViewer.fade.currentIndex]).fadeIn(imageViewer.options.speed);

		if(imageViewer.options.onChange) {
			imageViewer.options.onChange($(imageViewer.fade.$els[imageViewer.fade.currentIndex]));
        }

    },
    
    lastProp:null

};