/**
 * @fileoverview 在线示例相关模块
 * @author <a href="dron@qq.com">dron</a>
 * @version 1.0
 * @create-date 2008-10-7
 */

var Slippager = {

	currentPage: 0,

	running: 0,

	disposeHandle: function(){
		var exampleList, li, exampleItemsTitle, curListI;
		exampleList = Ucren.get("example-list");
		exampleItemsTitle = Ucren.get("example-items-title");
		li = exampleList.getElementsByTagName("li");
		for(var i = 0, l = li.length; i < l; i ++)li[i].set("index", i);
		curListI = li[0];
		exampleList.on({
			click: function(e){
				var dom, index, uo;
				dom = Ucren.Event(e).srcDom;
				if(dom.tagName == "LI" && !Slippager.running){
					uo = Ucren.get(dom);
					index = uo.get("index");
					Slippager.moveToPage(Number(index));
					Slippager.disposePage(index);
					exampleItemsTitle.setHtml(dom.innerHTML);
					if(curListI)curListI.setClass("");
					curListI = uo;
					curListI.setClass("cur");
				}
			},

			mouseover: function(e){
				var dom;
				dom = Ucren.Event(e).srcDom;
				if(dom.tagName == "LI"){ Ucren.get(dom).setStyle({ color: "red" }); }
			},

			mouseout: function(e){
				var dom;
				dom = Ucren.Event(e).srcDom;
				if(dom.tagName == "LI"){ Ucren.get(dom).setStyle({ color: "" }); }
			}
		});
	},

	moveToPage: function(){
		var examplesBoard, got;

		examplesBoard = Ucren.get("examples-board", true);

		got = function(n){
			var step, en;
			en = examplesBoard.scrollLeft;
			if(en == n)return Slippager.ready();
			step = Math.ceil(Math.abs(en - n) / 10) * (en < n ? 1 : -1);
			examplesBoard.scrollLeft += step;
			-function(){ got(n); }.defer(10);
		};

		return function(n){
			if(this.currentPage == n)return ;
			this.currentPage = n;
			Slippager.running = 1;
			got(n * 790);
		};
	}(),

	disposePage: function(n){
		var uo, imgs;
		uo = Ucren.get("p" + n);
		if(!uo.imgRendered){
			uo.imgRendered = true;
			imgs = uo.getElementsByTagName("img");
			for(var i = 0, img, s, l = imgs.length; i < l; i ++){
				img = imgs[i];
				if(s = img.get("resrc")){
					img.set("src", "images/bigicons/" + s + ".gif");
					img.set("resrc", false);
					img.on({
						click: function(e){
							window.open("examples/" + this.getAttribute("href") + ".html");
							Ucren.Event(e).cancel();
						},
						mouseover: function(){
							this.className = "on";
						},
						mouseout: function(){
							this.className = "";
						}
					});
				}
			}
		}
	},

	ready: function(){
		this.running = 0;
	},

	init: function(){
		this.disposeHandle();
		this.disposePage(0);
	}

};

Ucren.onReady(Slippager.init.createDelegate(Slippager));