﻿/*初始化页面的参数*/
function initParams(){
	var searchString = location.search;
	if (searchString.indexOf("?") != -1) { 
	      var str = searchString.substr(1);
	      var strs = str.split("&");
	      for(var i = 0; i < strs.length; i ++) {
	         params[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);
	      }
	}

}

var getChannel = function(type){
	var channel;
	switch(type){
		case "select":
			channel = new SelectChannel();
			break;
		case "newslist":
			channel = new NewsListChannel();
			break;
		case "newstitle":
			channel = new NewsTitleChannel();
			break;
		case "newsmarquee":
			channel = new NewsMarqueeChannel();
			break;
		case "newscontent":
			channel = new NewsContentChannel();
			break;
		default: 
			channel = null;
	}
	return channel;
};

var NewsListChannel = function(){
	this.type = "newslist";
	this.datatype = "listnews";
	this.url = "/portal/dynlayout/channel/newslistChannel.jsp";
	this.addurl = "/portal/dynlayout/channel/SetColumns.jsp";
};

NewsListChannel.prototype = {
	buildUrl: function(portal_id,channel_id){
		return this.url + "?portal_id="+portal_id+(channel_id?"&channel_id="+channel_id:"");
	},
	buildAddUrl: function(portal_id,content_id){
		return this.addurl + "?pageid="+portal_id+"&elementid="+content_id;
	},
	buildContent: function(json,info){
		var _info;
		if(info){
			_info = info;
		}else{
			_info = CDrag.database.parse(json.cb.block_id);
		}
		var rtn = '<div class="nl">';
		rtn += ['<div class="nl_title">','<div class="nl_title_l"><div class="cn">',_info.title,'</div><div class="en">·',_info.configs.en,'</div></div>','<div class="nl_title_r">&gt;&gt;','<a href="#" onclick="return moreInfo(\''+_info.id+'\');" taget=_blank>More</a>','</div></div>'].join('');
		if(_info.configs.isShow){
			rtn += ['<div class="nl_img">','<img border=0 src="'+path+'/portal/dynlayout/images/select/'+_info.configs.img_name+'"',_info.configs.img_width>0?(' width='+_info.configs.img_width):'',_info.configs.img_height>0?(' height='+_info.configs.img_height):'','/></div>'].join('');
		}
		if(json.success){
			var info_sum = json.cb.data.info_sum;
			if(info_sum >= 0){
				var news = json.cb.data.news;
				for(var i=0;i<_info.configs.nums;i++){
					date1 = news[i].info_date;
					date1 = date1.replace(/-/g,"/");
					date1 = new Date(date1);
					date2 = new Date();
Date.prototype.format = function(format) //author: meizz 
{ 
  var o = { 
    "M+" : this.getMonth()+1, //month 
    "d+" : this.getDate(),    //day 
    "h+" : this.getHours(),   //hour 
    "m+" : this.getMinutes(), //minute 
    "s+" : this.getSeconds(), //second 
    "q+" : Math.floor((this.getMonth()+3)/3),  //quarter 
    "S" : this.getMilliseconds() //millisecond 
  }
if(/(y+)/.test(format)) format=format.replace(RegExp.$1, 
    (this.getFullYear()+"").substr(4 - RegExp.$1.length)); 
  for(var k in o)if(new RegExp("("+ k +")").test(format)) 
    format = format.replace(RegExp.$1, 
      RegExp.$1.length==1 ? o[k] : 
        ("00"+ o[k]).substr((""+ o[k]).length)); 
  return format; 
} 
date3 =  new Date(date1).format("yy-MM-dd");
					rtn += '<div class="nl_item">';
					rtn += '&nbsp;';
					if(i<info_sum){
						rtn += '◎&nbsp;<a href="#" title="'+news[i].info_title+'" onclick="return showInfo(\''+news[i].info_id+'\',\''+news[i].info_columnid+'\',\''+json.cb.block_id+'\');" target="_blank">'+substrOfMaxLength(news[i].info_stitle,_info.configs.max || 20)+'</a>';
						rtn += '&nbsp;['+date3+']';
			if ((date2-date1)/1000/60/60/24<7){
				rtn += '<img src="/portal/images/new.gif"/>';
								}
					}
					rtn += '</div>';
				}
			}
		}
		rtn += '</div>';
		return rtn;
	},
	buildParams: function(portal_id,info){
		return {
			type:this.datatype,
			portal_id:portal_id,
			id:info.id,
			rows:info.configs.nums,
			maxlength:22,
			dateformat:'yyyy-MM-dd',
			t:new Date().toString()
		};
	}
}

var NewsMarqueeChannel = function(){
	this.type = "newsmarquee";
	this.datatype = "listnews";
	this.url = "/portal/dynlayout/channel/newsmarqueeChannel.jsp";
	this.addurl = "/portal/dynlayout/channel/SetColumns.jsp";
};

NewsMarqueeChannel.prototype = {
	buildUrl: function(portal_id,channel_id){
		return this.url + "?portal_id="+portal_id+(channel_id?"&channel_id="+channel_id:"");
	},
	buildAddUrl: function(portal_id,content_id){
		return this.addurl + "?pageid="+portal_id+"&elementid="+content_id;
	},
	buildContent: function(json,info){
		var _info;
		if(info){
			_info = info;
		}else{
			_info = CDrag.database.parse(json.cb.block_id);
		}
		var rtn = '<MARQUEE onmouseover=this.stop() onmouseout=this.start() scrollAmount=2 scrollDelay=11 behavior="aleternate"><span class="nm">';
		var info_sum = json.cb.data.info_sum;
		if(info_sum > 0){
			var news = json.cb.data.news;
			for(var i=0;i<info_sum;i++){
				rtn += '·<a href="#" onclick="return showInfo(\''+news[i].info_id+'\',\''+news[i].info_columnid+'\',\''+json.cb.block_id+'\');" target="_blank">'+news[i].info_title+'</a>&nbsp;&nbsp;';
			}
		}else{
			rtn += '无相关信息！';
		}
		rtn += '</span></MARQUEE>';
		return rtn;
	},
	buildParams: function(portal_id,info){
		return {
			type:this.datatype,
			portal_id:portal_id,
			id:info.id,
			rows:info.configs.nums,
			maxlength:20,
			dateformat:'yy-MM-dd',
			t:new Date().toString()
		};
	}
}

var NewsTitleChannel = function(){
	this.type = "newstitle";
	this.datatype = "listnews";
	this.url = "/portal/dynlayout/channel/newstitleChannel.jsp";
	this.addurl = "/portal/dynlayout/channel/SetColumns.jsp";
};

NewsTitleChannel.prototype = {
	buildUrl: function(portal_id,channel_id){
		return this.url + "?portal_id="+portal_id+(channel_id?"&channel_id="+channel_id:"");
	},
	buildAddUrl: function(portal_id,content_id){
		return this.addurl + "?pageid="+portal_id+"&elementid="+content_id;
	},
	buildContent: function(json,info){
		var _info;
		if(info){
			_info = info;
		}else{
			_info = CDrag.database.parse(json.cb.block_id);
		}
		var rtn = '<div class="nt">';
		var info_sum = json.cb.data.info_sum;
		if(info_sum > 0){
			var news = json.cb.data.news;
			for(var i=0;i<info_sum;i++){
				rtn += '<p>';
				rtn += '<a href="#" onclick="return showInfo(\''+news[i].info_id+'\',\''+news[i].info_columnid+'\',\''+json.cb.block_id+'\');" target="_blank">'+news[i].info_title+'</a>';
				rtn += '</p>';
			}
		}
		rtn += '</div>';
		return rtn;
	},
	buildParams: function(portal_id,info){
		return {
			type:this.datatype,
			portal_id:portal_id,
			id:info.id,
			rows:info.configs.nums,
			maxlength:20,
			dateformat:'yy-MM-dd',
			t:new Date().toString()
		};
	}
}

var NewsContentChannel = function(){
	this.type = "newscontent";
	this.datatype = "listnews";
	this.url = "/portal/dynlayout/channel/newscontentChannel.jsp";
	this.addurl = "/portal/dynlayout/channel/SetColumns.jsp";
};

NewsContentChannel.prototype = {
	buildUrl: function(portal_id,channel_id){
		return this.url + "?portal_id="+portal_id+(channel_id?"&channel_id="+channel_id:"");
	},
	buildAddUrl: function(portal_id,content_id){
		return this.addurl + "?pageid="+portal_id+"&elementid="+content_id;
	},
	buildContent: function(info){
		var configs = info.configs;
		var rtn = '';
		var url = path + '/content/cm/cmapp/infocontent.jsp?infoid='+configs.infoid;
		rtn = $('<div class="nc_main"></div>').append('<div class="nc_title">'+configs.infotitle+'</div>').append($('<div class="nc_content">').load(url),'</div>').append(
			['<div class="nc_more">&gt;&gt;','<a href="#" onclick="return showInfo(\''+configs.relinfoid+'\',\''+configs.relcolumnid+'\',\''+info.id+'\');" target="_self">More</a>','</div>'].join("")
		);
		return rtn;
	},
	buildParams: function(portal_id,info){
		return {
			type:this.datatype,
			portal_id:portal_id,
			id:info.id,
			rows:info.configs.nums,
			maxlength:20,
			dateformat:'yy-MM-dd',
			t:new Date().toString()
		};
	}
}

var SelectChannel = function(){
	this.type = "select";
	this.datatype = "links";
	this.url = "/portal/dynlayout/channel/selectChannel.jsp";
	this.addurl = "/portal/dynlayout/channel/SetContentlink.jsp";
};

SelectChannel.prototype = {
	buildUrl: function(portal_id,channel_id){
		return this.url + "?portal_id="+portal_id+(channel_id?"&channel_id="+channel_id:"");
	},
	buildAddUrl: function(portal_id,content_id){
		return this.addurl + "?pageid="+portal_id+"&elementid="+content_id;
	},
	buildContent: function(json,info){
		var rtn = '<select class="SelectModel" onchange="selectChange(this.value)">';
		var _info;
		if(info){
			_info = info;
		}else{
			_info = CDrag.database.parse(json.cb.block_id);
		}
		rtn += '<option value="">'+_info.title+'</option>';
		var links = json.cb.data.links;
		for(var i=0;i<links.length;i++){
			rtn += '<option value="'+links[i].link_href+'">'+links[i].link_title+'</option>';
		}
		rtn += '</select>';
		return rtn;
	},
	buildParams: function(portal_id,info){
		return {
			type:this.datatype,
			portal_id:portal_id,
			id:info.id,
			t:new Date().toString()
		};
	}
};


//频道内用到的函数
function selectChange(url){
	if(url != ""){
		window.open(url);
	}
}

function moreInfo(channelid){
	var url = path +'/homepage/homepage.jsp?channelid='+channelid;
	window.open(url);
	return false;
}

function showInfo(newsid,columnid,channelid){
	var url = path +'/homepage/homepage.jsp?channelid='+channelid+'&columnid='+columnid+'&newsid='+newsid;
	window.open(url);
	return false;
}

//点击菜单
function menuClick(id,url,type){
	if(url.indexOf("?") > 0){
		url += "&menuid="+id;
	}else{
		url += "?menuid="+id;
	}
	
	if(type == "_blank"){
		window.open(url);
	}else if(type == "_self"){
		location.href = url;
	}
	return false;
}

//取长度，中文计算为2
String.prototype.length2 = function() {
    var cArr = this.match(/[^\x00-\xff]/ig);
    return this.length + (cArr == null ? 0 : cArr.length);
}

//按字数截取字符串
function substrOfMaxLength(str,max){
	if(str.length <= max){
		return str;
	}else{
		return str.substr(0,max)+"..";
	}
}
