YAHOO.namespace("blogcpanel.thumbchange");

YAHOO.blogcpanel.thumbchange = function () {
	var yue = YAHOO.util.Event;
	var yud = YAHOO.util.Dom;
	
	function Changer(el) {
		this.el       = el;
		this.origsrc  = el.src;
		this.running  = false;
		this.runnable = true;
		
		var myString = this.el.getAttribute('name');
		var mySplitResult = myString.split("_");

		this.images   = new Array();
		//this.num_ss   = this.el.getAttribute('name');
		//this.videoid   = this.el.getAttribute('videoid');
		//this.multiple_thumbnail_url = this.el.getAttribute('multiple_thumbnail_url');
	
		this.num_ss   = mySplitResult[0];
		this.videoid   = mySplitResult[1];
		//this.multiple_thumbnail_url = mySplitResult[2];
		this.fullvideo = Right('00000'+mySplitResult[1],6);
		this.videopart1 = Left(this.fullvideo,3);
		this.videopart2 = Right(this.fullvideo,3);
		this.multiple_thumbnail_url = multiplethumbnailURL+this.videopart1+'/'+this.videopart2+'/';

		if (this.multiple_thumbnail_url) {
			//this.prepend_url = this.el.getAttribute('multiple_thumbnail_url');
			this.prepend_url = this.multiple_thumbnail_url;

		}
		else {
			this.runnable = false;
		}
	}
	

	Changer.prototype.start = function () {
	
		yud.addClass(this.el, 'highlight-on');
		if (this.runnable) {
			this.running = true;
			this.preload();
			this.animate(1);
		}
	}
	
	Changer.prototype.stop = function () {
		yud.removeClass(this.el, 'highlight-on');
		if (this.runnable) {
			this.el.src = this.origsrc;
			this.running = false;
		}
	}
	
	Changer.prototype.preload = function () {
		for (var i=1; i<=this.num_ss; i++) {
			this.images[i] = new Image();
		}
		
		this.load(1);
		for (var i=2; i<=this.num_ss; i++) {
			setTimeout((function(obj, j) { 
				return function() { obj.load(j); }
			})(this, i), i*100);
		}
	}
	
	Changer.prototype.load = function (num) {
		if (this.running) {
			if (this.multiple_thumbnail_url) {
				this.images[num].src = this.prepend_url + this.videoid + "_0" + num + '.jpg';
			}
		}
	}
	

	Changer.prototype.animate = function (num) {
		if (this.running) {
			if (this.images[num].complete) {
				this.el.src = this.images[num].src;
				
				var next = (num == this.num_ss) ? 1 : num + 1;
				setTimeout((function(obj, i) { 
					return function() { obj.animate(i); }
				})(this, next), 625);			
			} else {
				setTimeout((function(obj, i) { 
					return function() { obj.animate(i); }
				})(this, num), 25);			
			}
		}
	}
	
	return {
		register: function (n, prefix, thumbURL) {
			multiplethumbnailURL = thumbURL;
			if (!prefix) {
				prefix = 'thumb';
			}
			
			for (var i=1; i<=n; i++) {
				yue.onContentReady(prefix + i, this.hookEvents, this);
			}			
		},

		hookEvents: function () {
			el = this;
			
		var myString = el.getAttribute('name');
		var mySplitResult = myString.split("_");

			if (mySplitResult[0] == 0) {
			//if (el.getAttribute('name') == 0) {
				//var tt = new YAHOO.widget.Tooltip("tt_" + el.id, { context:el, text: "No preview available" });
			} else {
				var changer = new Changer(el);
				yue.addListener(el, 'mouseover', changer.start, changer, true);
				yue.addListener(el, 'mouseout', changer.stop, changer, true);
			}			
		}
	};
}();
