var rotator = function() {
}; 
	rotator.getFirst = function (elem) {
		return elem.parent().children().eq(0);
	};
	
	
	rotator.getNext = function (elem) {
		if (elem.next().size() > 0) {
			return elem.next();
		} else {
			return rotator.getFirst(elem);
		}
	};
	rotator.rotate = function (target) {
		clearInterval(target.data('interval'));
		target.data('interval', setInterval(function() {
			rotator.rotate(target);
		}, 2000));
		
		var elem = target.data('activeElem');
		elem.fadeOut();
		var active = rotator.getNext(elem).fadeIn(/*function() {rotator.tmp.push(microtime(true));}*/);
		target.data('activeElem', active);
	};
	
	rotator.startRotate = function(e) {
		var target = $(this);
		target.data('activeElem', target.children().eq(0));
		target.data('interval', setInterval(function() {
			rotator.rotate(target);
		}, 700));
		
		
	};
	
	rotator.endRotate = function(e) {
		var target = $(this);
		clearInterval(target.data('interval'));
		if (!target.data('activeElem')) return;
		rotator.getFirst(target.data('activeElem').fadeOut()).fadeIn();
	};
	
	rotator.init = function (context) {
		var rots;
		if (!context) rots = $('.rotator');
		else rots = $('.rotator', context);
			
		rots.each(function(i) {

			var holder = $(this);
			
			if (holder.data('rotatorInited')) return;
			
			holder.data('rotatorInited', true);
			
			holder.css('position', 'relative');
			var imgs = holder.find('> img');
			
			if (imgs.size() < 2) return;
			
			holder.width(imgs.eq(0).width());
			holder.height(imgs.eq(0).height());
			imgs.css('position', 'absolute').css('left', 0).css('top', 0);
			
			holder.hover(rotator.startRotate, rotator.endRotate);
		
		});
	};


var rotator2 = function() {
}; 
	rotator2.getFirst = function (elem) {
		return elem.parent().children().eq(0);
	};
	
	
	rotator2.getNext = function (elem) {
		if (elem.next().size() > 0) {
			return elem.next();
		} else {
			return rotator2.getFirst(elem);
		}
	};
	
	rotator2.rotate = function (target) {
		
		
		var elem = target.data('activeElem');
		elem.fadeOut();
		var active = rotator2.getNext(elem).fadeIn();
		target.data('activeElem', active);
	};
	
	rotator2.startRotate = function(target) {
		
		target.data('activeElem', target.children().eq(0));
		target.data('interval', setInterval(function() {
			rotator2.rotate(target);
		}, 2000));
		
	};
	
	rotator2.endRotate = function(target) {
		
		clearInterval(target.data('interval'));
		rotator2.getFirst(target.data('activeElem').fadeOut()).fadeIn();
	};
	
	rotator2.init = function (context) {
		
		var rots;
		
		if (!context) rots = $('.rotator2');
		else rots = $('.rotator2', context);
			
		rots.each(function(i) {

			var holder = $(this);
			
			if (holder.data('rotator2Inited')) return;
			
			holder.data('rotator2Inited', true);
			
			holder.css('position', 'relative');
			var imgs = holder.find('> img')
			
			if (imgs.size() < 2) return;
			
			imgs.css('position', 'absolute').css('left', 0).css('top', 0);
			holder.width(imgs.eq(0).width());
			holder.height(imgs.eq(0).height());
			
			rotator2.startRotate(holder);
		
		});
	};



$('document').ready( function() {
	rotator.init();
	rotator2.init();
	
});