var noConf = jQuery.noConflict();

var element     = this;
var timeOut     = 6000;
var current     = null;
var timeOutFn   = null;
var faderStat   = true;
var mOver       = false;
var items       = null;
var itemsSpan 	= null;
var busy 	    = false;
var next 		= 0;
var LAST_CHANGE = 0;
var nextJob		= false;
var jobInProgress = false;
var lastToLoad = false;

 noConf(document).ready(function() {
    noConf('.changeSlider').click(function() {   	
    	next = noConf(this).attr('number');    	
    	if (jobInProgress) {
    		nextJob = next;
    	} else {
    		show(next);
    	}  	
    	return false;
    });
    
    items = noConf("#slider1Content .slider1Image");
    itemsSpan = noConf("#slider1Content .slider1Image span")
    createSlider();
});

function show(number) {
	jobInProgress = 1;
	makeSlider(true);
	
	current = (current != null) ? current : items[(items.length-1)];
    var currNo      = jQuery.inArray(current, items) + 1
    currNo = (currNo == items.length) ? 0 : (currNo - 1);

	noConf(itemsSpan[currNo]).slideUp((timeOut/8), function() {
        noConf(items[currNo]).fadeOut((timeOut/8), function() {
        	if (nextJob) {
	        	number = nextJob;
	        	nextJob = false;
        	}
        	noConf(items[number]).fadeIn((timeOut/8), function() {
                noConf(itemsSpan[number]).slideDown((timeOut/8), function() {
                	current = items[number];
                	if (nextJob) {
                		show(nextJob);
                		nextJob = false;
                	} else {
                		jobInProgress = false;
                	}
                });
            });
        });
    });
}

function reset() {
	busy = false;
	makeSlider(false);
}

function createSlider() {
    noConf('.slider1Image').mouseover(function() {
       mOver = true;
    });
    
    noConf('.slider1Image').mouseout(function() {
        mOver   = false;
    });
    
    makeSlider(false);
}

function makeSlider(guard) {
	if (guard) {
		busy = true;
	}
	if (!busy) {
	    current = (current != null) ? current : items[(items.length-1)];
	    var currNo      = jQuery.inArray(current, items) + 1
	    currNo = (currNo == items.length) ? 0 : (currNo - 1);
	    var newMargin   = noConf(element).width() * currNo;
	    if(!mOver) {
	    	if (faderStat == true) {
		    	next = currNo+1;
		        noConf(items[currNo]).fadeIn((timeOut/8), function() {
		            noConf(itemsSpan[currNo]).slideDown((timeOut/8), function() {
		                faderStat = false;
		                current = items[currNo];
		                setTimeout("makeSlider(false)", timeOut);
		            });
		        });
		    } else {
		    	noConf(itemsSpan[currNo]).slideUp((timeOut/8), function() {
		            noConf(items[currNo]).fadeOut((timeOut/8), function() {
		                faderStat = true;
		                current = items[next];
		                makeSlider(false, true);
		            });
		        });
		    }
	    } else {
	    	setTimeout("makeSlider(false)", 1000);
	    }
	}
}     
