
function initChannel() {

	var fields = $("pageContainer").getElementsByTagName("TD");

	for (var i = 0; i < fields.length; ++ i) {
		var channels = fields[i].getElementsByTagName("SiteChannel");
        for (var j = 0; j < channels.length; ++j) {     		
            var channelDiv = site.newChannelHtml(channels[j].category, channels[j].type, channels[j].themeName); 
            mxp.dom.insertBefore(channelDiv, channels[j]);
		    site.openChannel(channelDiv.category);
        }           	
        for (var j = channels.length - 1; j >= 0; --j) {   
        	fields[i].removeChild(channels[j]);     	        		   	
        }  		
	}
}


mxp.event.addEventHandler(window, "load", initChannel);

var site = {};

site.site = "";

site.insertChannel = new Array();

site.themeFields = new Array();
site.themeFields[1] = "title";
site.themeFields[2] = "body";

//--------------------------------------------------------------------------------
/**
 * 初始化栏目 list
 */ 
site.newChannelHtml_List = function() {
    var html = '<div class="title" fieldName="title">&nbsp;新增栏目</div>';
    html += '<div class="channelBodyContainer" fieldName="body">正在加载...';
    html += '</div>';
    return html;
};

/**
 * 初始化栏目 single
 */ 
site.newChannelHtml_Single = function() {
    var html = '<div class="title" fieldName="title">&nbsp;新增栏目</div>';
    html += '<div class="channelBodyContainer">正在加载...';
    html += '</div>';
    return html;    
};

site.newChannelHtml = function(category, type, themeName) {
        
	var div = document.createElement("DIV");
	div.className = "channel";
	div.style.position = "relative";
	div.category = category;
	div.type = type;
	div.themeName = themeName;
	div.fieldName = "channel";	
	
	if (type.indexOf("list::") != -1) {
		div.innerHTML += site.newChannelHtml_List();  	
	} else if (type.indexOf("single::") != -1) {
		div.innerHTML += site.newChannelHtml_Single();  
	} else {
		alert("错误的栏目类型！ " + type); 
	}

   	site.insertChannel[category] = div;
   	
    return div;
}; 


site.openChannel = function(category) {
    var url = "/opencms/Channel.do?action=openChannel&site=" + site.site + "&timeStamp=" + new Date().getTime();
    var content = "category=" + category;
	new mxp.io.Request("post", url, content, "xml", site.handleOpenChannel);
};

site.handleOpenChannel = function(tranport) {
	var xmlDoc = tranport.responseXML;
	var title = xmlDoc.getElementsByTagName("title")[0].firstChild.data;	
	var category = xmlDoc.getElementsByTagName("category")[0].firstChild.data;
	var type = xmlDoc.getElementsByTagName("type")[0].firstChild.data;	
		
	if (type.indexOf("list::") != -1) {
		site.handleOpenChannel_List(xmlDoc, title, category, type);
	} else if (type.indexOf("single::") != -1) {
		site.handleOpenChannel_Signle(xmlDoc, title, category, type);
	} else {
		alert("错误的栏目类型！ " + type); 
	}
	site.setChannelTheme(site.insertChannel[category], site.insertChannel[category].themeName);	
};


site.handleOpenChannel_List = function(xmlDoc, title, category, type) {

	var container = document.getElementsByClassName("channelBodyContainer", site.insertChannel[category])[0];
	var titleDivs = document.getElementsByClassName("title", site.insertChannel[category]);
	var xslpath = xmlDoc.getElementsByTagName("xsl")[0].firstChild.data;		
	titleDivs[0].innerHTML = "&nbsp;" + title;
	var handle = titleDivs[0];
	mxp.xsl.applyXsl(xmlDoc, xslpath, container);
};

site.handleOpenChannel_Signle = function(xmlDoc, title, category, type) {

	var container = document.getElementsByClassName("channelBodyContainer", site.insertChannel[category])[0];	
	var titleDivs = document.getElementsByClassName("title", site.insertChannel[category]);
	var xslpath = xmlDoc.getElementsByTagName("xsl")[0].firstChild.data;		
	var relCss = xmlDoc.getElementsByTagName("css");	

	for (var i = 0; i < relCss.length; ++ i) {
		var linkObj = document.createElement("link");
		linkObj.rel = "stylesheet";
		linkObj.type = "text/css";
		linkObj.href = relCss[i].firstChild.data;
        document.appendChild(linkObj);
	}
	
	titleDivs[0].innerHTML = "&nbsp;" + title;	
	var handle = site.insertChannel[category].getElementsByTagName("div")[0];	
	mxp.xsl.applyXsl(xmlDoc, xslpath, container);
};


/**
 * 设置栏目样式主题.
 * @param channelDiv 栏目Div对象
 * @param themeName 主题名称 
 */
site.setChannelTheme = function(channelDiv, themeName) {
	channelDiv.className = "channel_" + themeName;
	for (var i = 0; i < site.themeFields.length; i ++) {
		var fields = site.getChannelField(channelDiv, site.themeFields[i]);
		if (fields.length > 0) {
			fields[0].className = fields[0].fieldName + "_" + themeName;
		}
	}
} 

/**
 * 获取栏目域
 * @param channelDiv 栏目Div对象
 * @param fieldName 域名称
 */
site.getChannelField = function(parentElement, fieldName) {
    var children = $(parentElement).getElementsByTagName('*');
    return $A(children).inject([], function(elements, child) {
        if (child.fieldName != undefined 
            && child.fieldName.match(new RegExp("(^|\\s)" + fieldName + "(\\s|$)"))) {
            elements.push(child);
        }
        return elements;
    });
};
