/**
频道模块 LIB
Author: qinming
version: 1.0
date: 2008-3-31


*/
if( typeof(Channel) == "undefined" ) Channel = {}

var Channel = {};

Channel.channelMod = function(widget, modID){
	this.modID = modID;
	this.widget = widget;
	this.headHTML = '';
	this.headJSON = '';
	this.list = new Array();
	
	this.isHeadJSON = false;
}

Channel.channelMod.prototype = {
	
	makeChannel: function(pdmod){

		var ele = this.widget.createElement("div");
		var subtitle = this.widget.createElement("div");
		subtitle.id = 'subtitle_' + this.modID + '_' + pdmod.catalogID;
		subtitle.className = "subtitle";

		var titlecontent = '<img src="/images/unfold.gif" class="subfold" onclick="ichannel.pdmod' + this.modID + '.objMOD.toggleCollapse(this, \'pdmod_' + this.modID + '_list_' + pdmod.catalogID  + '\');" /><span>' + pdmod.title + '</span><img src="/images/add.gif" onclick="ichannel.pdmod' + this.modID + '.objMOD.plusButton(' + pdmod.catalogID + ');" title="加一条" />&nbsp;<img src="/images/del.gif" onclick="ichannel.pdmod' + this.modID + '.objMOD.minusButton(' + pdmod.catalogID + ')" title="减一条" />' + "\n";
		subtitle.innerHTML = titlecontent;
		ele.appendChild(subtitle);
	
		var listul = this.widget.createElement("ul");

		listul.id = 'pdmod_' + this.modID + '_list_' + pdmod.catalogID;
		var collapse = this.widget.getValue("collapse_" + pdmod.catalogID);
		if(parseInt(collapse) == 1){
			listul.style.display = "block";
			subtitle.childNodes[0].title = "收起列表";
		}else{
			listul.style.display = "none";
			subtitle.childNodes[0].src = "/images/fold.gif";
			subtitle.childNodes[0].title = "展开列表";
		}
		
		if(pdmod.type == 1)	listul.className = "infolist";
		else if(pdmod.type == 2)	listul.className = "show";
		
		var listli = this.widget.createElement("li");
		
		var n = parseInt(this.widget.getValue("num_" + pdmod.catalogID ));
		
//		var real_len = this.data.list[pdmod.catalogID].items.length;
		var real_len = this.list[pdmod.catalogID].items.length;
		
		if(n == 0 || n > real_len){
			this.widget.setValue("num_" + pdmod.catalogID, real_len );
			n = real_len;
		}

		for(var i = 1; i <= n; i++){
			var listli = this.makeLinkLi(pdmod.catalogID, i - 1);
			listul.appendChild(listli);
		}

		ele.appendChild(listul);
		
		return ele;
	},
	
	getScroll: function(){
		if (document.documentElement && document.documentElement.scrollTop) {
			return document.documentElement.scrollTop;		
		} else if (document.body) {
			return document.body.scrollTop;
		} 
	},
	
	setScroll: function(height){
		if (document.documentElement && document.documentElement.scrollTop) {
			document.documentElement.scrollTop = height;		
		} else if (document.body) {
			document.body.scrollTop = height;
		} 
	},
	
	plusButton: function(catalogID){
		var subtitle = UWA.$element('subtitle_' + this.modID + '_' + catalogID);
		this.toggleCollapse(subtitle.firstChild, 'pdmod_' + this.modID + '_list_' + catalogID, 1);
		
		var id = catalogID;
		var nownum = parseInt(this.widget.getValue("num_" + id));
		
		len = this.list[catalogID].items.length;
		
		if(nownum < len){
			newnum = nownum + 1;
			this.widget.setValue( "num_" + id + "_" + this.modID, newnum );
			var ul = UWA.$element('pdmod_' + this.modID + '_list_' + catalogID);//.childNodes[0];
			var index = nownum;		
			var linkli = this.makeLinkLi(catalogID, index);
			ul.appendChild(linkli);
		}
	},
	
	minusButton: function(catalogID){
		var subtitle = UWA.$element('subtitle_' + this.modID + '_' + catalogID);
		
		this.toggleCollapse(subtitle.firstChild, 'pdmod_' + this.modID + '_list_' + catalogID, 1);
		
		var id = catalogID;
		var nownum = parseInt(this.widget.getValue("num_"+id));
		if(nownum > 1){
			newnum = nownum - 1;
			this.widget.setValue("num_" + id + "_" + this.modID, newnum);

			var ul = UWA.$element('pdmod_' + this.modID + '_list_' + catalogID);//.childNodes[0];
			ul.removeChild(ul.lastChild);
		}
	},
	
	/*
	var items = this.data.list[catalogID].items[index];
		var type = this.data.list[catalogID].type;
		*/
	makeLinkLi: function(catalogID, index){
		var items = this.list[catalogID].items[index];
		var type = this.list[catalogID].type;
		var li = this.widget.createElement("li");
		if(type == 1){
			for(var i = 0; i < items.length; i++){
				var a = this.widget.createElement("a");
				a.href = items[i].link;
				a.target = "_blank";
				a.innerHTML = '·' + items[i].title;
				li.appendChild(a);
				li.innerHTML += '&nbsp;&nbsp;';
			}
		}else if(type == 2){
			for(var i = 0; i < 4; i++){
				var span = this.widget.createElement("span");
				var a = this.widget.createElement("a");
				var img = this.widget.createElement("img");
				a.href = items[i].link;
				a.target = "_blank";
				img.src = items[i].img;
				img.title = items[i].title;
				img.alt = items[i].title;
				a.appendChild(img);
				span.appendChild(a);
				li.appendChild(span);
			}
		}
		return li;
	},
	
	makeHeadTOP: function(headJSON){
		var container = this.widget.createElement("div");
		
		var dl = this.widget.createElement("dl");
		dl.className = "photoinfo photohead";
		var dt = this.widget.createElement("dt");
		dl.id = "head_dl_pdmod_" + this.modID;
		
		var link = this.widget.createElement("a");
		link.href = headJSON[0].link;
		link.target = "_blank";
		var img = this.widget.createElement("img");
		
		img.src = headJSON[0].img;
		img.height = "100";
		img.width = "110";
		link.appendChild(img);
		dt.appendChild(link);
		
		var dd = this.widget.createElement("dd");
		var ul = this.widget.createElement("ul");
		ul.className = "special";
		
		for(var i = 0; i < headJSON.length; i++){
			var li = this.widget.createElement("li");
			li.setAttribute("index", i);
			if(i == 0) li.className = "current";
			var link = this.widget.createElement("a");
			link.href = headJSON[i].link;
			link.target = "_blank";
			link.innerHTML = headJSON[i].title;
			
			li.appendChild(link);
			ul.appendChild(li);
		}
		
		dd.appendChild(ul);
		dl.appendChild(dt);
		dl.appendChild(dd);
		
		container.appendChild(dl);
		
		return container;
	},
	
	makeHeadAction: function(){
		var d = UWA.$element("head_dl_pdmod_" + this.modID);
		var ul = d.childNodes[1].childNodes[0];
		
		for(var i = 0; i < ul.childNodes.length; i++){
			var self = this;
			ul.childNodes[i].onmouseover = function(e){
				var d = UWA.$element("head_dl_pdmod_" + self.modID);
				var ul = d.childNodes[1].childNodes[0];
				for(var i = 0; i < ul.childNodes.length; i++){
					ul.childNodes[i].className = "";
				}
				this.className = "current";

				d.firstChild.firstChild.firstChild.src = self.headJSON[this.getAttribute("index")].img;
				d.firstChild.firstChild.href = self.headJSON[this.getAttribute("index")].link;
			}
		}
	},
	
	toggleCollapse: function(img, target_str, action){
		var target = UWA.$element(target_str);
		var pattern = /(\d+)$/;
		pattern.test(target_str);
		var chID = RegExp.$1;
		if(action){
			if(action == 1){
				target.style.display = "block";
				img.title = "收起列表";
				img.src = "/images/unfold.gif";
				this.widget.setValue("collapse_" + chID, 1);
			}else if(action == 0){
				target.style.display = "none";
				img.title = "展开列表";
				img.src = "/images/fold.gif";
				this.widget.setValue("collapse_" + chID, 0);
			}
		}else{
			if(target.style.display == "block"){
				target.style.display = "none";
				img.title = "展开列表";
				img.src = "/images/fold.gif";
				this.widget.setValue("collapse_" + chID, 0);
			}else{
				target.style.display = "block";
				img.title = "收起列表";
				img.src = "/images/unfold.gif";
				this.widget.setValue("collapse_" + chID, 1);
			}
		}
	}
}
