﻿/*-----------------------------------------------------------------------------------------/
 * JavaScript Framework. Based On JQuery 1.3.2+.
/*----------------------------------------------------------------------------------------*/
var isIE6 = (navigator.userAgent.toLowerCase().indexOf("msie 6") != -1);
var isIE = (navigator.userAgent.toLowerCase().indexOf("msie") != -1);

/*-----------------------------------------------------------------------------------------/
 * JQuery PlugIn - Slide Show(or, Switch Tab)
 * JQuery滑动切换插件 ver 1.2.0
 *
 * defaultIndex 	- 默认选中的标签索引，从0开始
 * titOnClassName	- 标签选中时的样式
 * titCell			- 自定义标题标签，支持选择符
 * mainCell			- 自定义标题标签，支持选择符
 * delayTime		- 延迟触发时间. 当这个时间小于切换动画效果时间时, 动画将被禁用
 * interTime		- 自动切换时间. 当这个时间大于0时, 标签将定时自动切换
 * trigger			- 滑动触发方式. 默认为click, 可选择mouseover
 * effect			- 切换动画. 默认不使用动画. 目前仅提供fade(淡出), slide(向下展开)两种
 * omitLinks		- 是否忽略带链接标签，默认为否
 * debug			- 调试模式. 默认关闭
/*----------------------------------------------------------------------------------------*/

jQuery.fn.switchTab = function(settings) {
	settings = jQuery.extend({//可配置参数
		defaultIndex: 0,
		titOnClassName: "on",
		titCell: "dt span",
		mainCell: "dd",
		delayTime: 250,
		interTime: 0,
		trigger: "click",
		effect: "",
		omitLinks: false,
		debug: ""
	},
	settings,
	{//插件信息
		version: 120
	});

	this.each(function() {
		var st;
		var curTagIndex = -1;
		var obj = jQuery(this);
		if(settings.omitLinks && settings.titCell.substr(settings.titCell.length-1, 1)=="a"){
			settings.titCell = settings.titCell + "[href^='#']";
		}
		var oTit = obj.find(settings.titCell);
		var oMain = obj.find(settings.mainCell);
		var cellCount = oTit.length;//可切换个数
		var ShowSTCon = function (oi){
			if(oi != curTagIndex){
				if(curTagIndex<0)obj.find(settings.titCell+"."+settings.titOnClassName).removeClass(settings.titOnClassName);
				else oTit.eq(curTagIndex).removeClass(settings.titOnClassName);
				oMain.hide();
				obj.find(settings.titCell + ":eq(" + oi + ")").addClass(settings.titOnClassName);
				if(settings.delayTime <250 && settings.effect != "")settings.effect = "";
				if(settings.effect == "fade"){
					obj.find(settings.mainCell + ":eq(" + oi + ")").fadeIn({queue: false, duration: 250});
				}else if(settings.effect == "slide"){
					obj.find(settings.mainCell + ":eq(" + oi + ")").slideDown({queue: false, duration: 250});
				}else{
					obj.find(settings.mainCell + ":eq(" + oi + ")").show();
				}
				curTagIndex = oi;
			}
		};
		
		var ShowNext = function (){
			oTit.eq(curTagIndex).removeClass(settings.titOnClassName);
			oMain.hide();
			if(++curTagIndex >= cellCount)curTagIndex = 0;
			oTit.eq(curTagIndex).addClass(settings.titOnClassName);
			oMain.eq(curTagIndex).show();
			//ShowSTCon(curTagIndex);
		};
		
		//根据defaultIndex初始化
		ShowSTCon(settings.defaultIndex);

		//定时切换
		if(settings.interTime > 0){
			var sInterval = setInterval(function(){
				ShowNext();
			}, settings.interTime);
		}

		//处理交互事件
		oTit.each(function(i, ele){
			if(settings.trigger=="click"){
				jQuery(ele).click(function(){
					ShowSTCon(i);
					return false;//若有链接而选择了click模式, 链接不起作用
				});
			}else if(settings.delayTime > 0){
				jQuery(ele).hover(function(){
					st = setTimeout(function(){//延时触发
						ShowSTCon(i);
						st = null;
					}, settings.delayTime);
				},function(){
					if(st!=null)clearTimeout(st);
				});
			}else{
				jQuery(ele).mouseover(function(){
					ShowSTCon(i);
				});
			}
		});
	});
	if(settings.debug!="")alert(settings[settings.debug]);
	return this;
};



//垂直向上滚动
//wrapper, 容器选择符
//sItem, 滚动元素选择符
jQuery.fn.scrollUp = function(settings) {
	settings = jQuery.extend({
		delayTime: 4000,
		sItem: 'li'
	}, settings);

	var obj = jQuery(this);
	this.each(function() {
		var stepScroll = function(){
			var curItem = obj.find(settings.sItem + ":first");
			curItem.animate({
				marginTop: "-" + curItem.height()
			},
			300,
			"",
			function(){
				curItem.appendTo(obj);
				curItem.css("margin-top", "0px");
			});
		};
		setInterval(stepScroll, settings.delayTime);
	});
	return this;
};

//内容无缝滚动
function Marquee(marqueeBox, delaytime, direction, itemCell){
	if(delaytime == undefined)delaytime = 50;
	if(direction == undefined)direction = "up";
	if(itemCell == undefined)itemCell = "ul";
	var oMarquee = jQuery(marqueeBox);
	var oMarqueeCon = oMarquee.find(itemCell);
	var oMarqueeCopy = oMarqueeCon.clone(true).insertAfter(oMarqueeCon);

	var ScrollUp = function(){
		if(oMarqueeCopy[0].offsetHeight-oMarquee[0].scrollTop<=0){
			oMarquee[0].scrollTop = 0;
		}else{
			oMarquee[0].scrollTop++;
		}
	}
	
	var ScrollLeft = function(){
		if(oMarqueeCopy[0].offsetWidth-oMarquee[0].scrollLeft<=0){
			oMarquee[0].scrollLeft = 0;
		}else{
			oMarquee[0].scrollLeft++;
		}
	}
	
	switch(direction){
		case "left":
			var oScroll=setInterval(ScrollLeft, delaytime);
			oMarquee.hover(function(){
				clearInterval(oScroll);
			}, function(){
				oScroll=setInterval(ScrollLeft, delaytime);
			});
			break;
		case "up":
		default:
			var oScroll = setInterval(ScrollUp, delaytime);
			oMarquee.hover(function(){
				clearInterval(oScroll);
			}, function(){
				oScroll=setInterval(ScrollUp, delaytime);
			});
	}
}

//列高度统一
function HeightFix(column, column2, offset){
	var oCol = jQuery(column);
	var oCol2 = jQuery(column2);
	if(offset == undefined)offset = 0;
	if(oCol.outerHeight(true) > oCol2.outerHeight(true)){
		oCol2.height(oCol.outerHeight(true) - offset);
	}else{
		oCol.height(oCol2.outerHeight(true) - offset);
	}
}

//获得日期
function RunGLNL(obj){
	var today = new Date();
	var d = new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
	DDDD = (today.getFullYear()<100 ? today.getFullYear()+1900:today.getFullYear())+"年"+(today.getMonth()+1)+"月"+today.getDate()+"日";
	DDDD = DDDD + " " + d[today.getDay()];
	DDDD = DDDD+ " " + (CnDateofDateStr(today));
	var temp = jQuery(obj).text();
	jQuery(obj).text(DDDD + " " + temp);
}
function DaysNumberofDate(DateGL){
	return parseInt((Date.parse(DateGL)-Date.parse(DateGL.getFullYear()+"/1/1"))/86400000)+1;
}
function CnDateofDate(DateGL){
	var CnData=new Array(
	0x16,0x2a,0xda,0x00,0x83,0x49,0xb6,0x05,0x0e,0x64,0xbb,0x00,0x19,0xb2,0x5b,0x00,
	0x87,0x6a,0x57,0x04,0x12,0x75,0x2b,0x00,0x1d,0xb6,0x95,0x00,0x8a,0xad,0x55,0x02,
	0x15,0x55,0xaa,0x00,0x82,0x55,0x6c,0x07,0x0d,0xc9,0x76,0x00,0x17,0x64,0xb7,0x00,
	0x86,0xe4,0xae,0x05,0x11,0xea,0x56,0x00,0x1b,0x6d,0x2a,0x00,0x88,0x5a,0xaa,0x04,
	0x14,0xad,0x55,0x00,0x81,0xaa,0xd5,0x09,0x0b,0x52,0xea,0x00,0x16,0xa9,0x6d,0x00,
	0x84,0xa9,0x5d,0x06,0x0f,0xd4,0xae,0x00,0x1a,0xea,0x4d,0x00,0x87,0xba,0x55,0x04
	);
	var CnMonth=new Array();
	var CnMonthDays=new Array();
	var CnBeginDay;
	var LeapMonth;
	var Bytes=new Array();
	var I;
	var CnMonthData;
	var DaysCount;
	var CnDaysCount;
	var ResultMonth;
	var ResultDay;
	var yyyy=DateGL.getFullYear();
	var mm=DateGL.getMonth()+1;
	var dd=DateGL.getDate();
	if(yyyy<100) yyyy+=1900;
	if ((yyyy < 1997) || (yyyy > 2020)){
		return 0;
		}
	Bytes[0] = CnData[(yyyy - 1997) * 4];
	Bytes[1] = CnData[(yyyy - 1997) * 4 + 1];
	Bytes[2] = CnData[(yyyy - 1997) * 4 + 2];
	Bytes[3] = CnData[(yyyy - 1997) * 4 + 3];
	if ((Bytes[0] & 0x80) != 0) {CnMonth[0] = 12;}
	else {CnMonth[0] = 11;}
	CnBeginDay = (Bytes[0] & 0x7f);
	CnMonthData = Bytes[1];
	CnMonthData = CnMonthData << 8;
	CnMonthData = CnMonthData | Bytes[2];
	LeapMonth = Bytes[3];
	for (I=15;I>=0;I--){
		CnMonthDays[15 - I] = 29;
		if (((1 << I) & CnMonthData) != 0 ){
		  CnMonthDays[15 - I]++;}
		if (CnMonth[15 - I] == LeapMonth ){
		  CnMonth[15 - I + 1] = - LeapMonth;}
		else{
		  if (CnMonth[15 - I] < 0 ){CnMonth[15 - I + 1] = - CnMonth[15 - I] + 1;}
		  else {CnMonth[15 - I + 1] = CnMonth[15 - I] + 1;}
		  if (CnMonth[15 - I + 1] > 12 ){ CnMonth[15 - I + 1] = 1;}
		}
	}
	DaysCount = DaysNumberofDate(DateGL) - 1;
	if (DaysCount <= (CnMonthDays[0] - CnBeginDay)){
		if ((yyyy > 1901) && (CnDateofDate(new Date((yyyy - 1)+"/12/31")) < 0)){
		  ResultMonth = - CnMonth[0];}
		else {ResultMonth = CnMonth[0];}
		ResultDay = CnBeginDay + DaysCount;
	}
	else{
		CnDaysCount = CnMonthDays[0] - CnBeginDay;
		I = 1;
		while ((CnDaysCount < DaysCount) && (CnDaysCount + CnMonthDays[I] < DaysCount)){
		  CnDaysCount+= CnMonthDays[I];
		  I++;
		}
		ResultMonth = CnMonth[I];
		ResultDay = DaysCount - CnDaysCount;
	}
	if (ResultMonth > 0){
		return ResultMonth * 100 + ResultDay;}
	else{return ResultMonth * 100 - ResultDay;}
	}
	function CnYearofDate(DateGL){
	var YYYY=DateGL.getFullYear();
	var MM=DateGL.getMonth()+1;
	var CnMM=parseInt(Math.abs(CnDateofDate(DateGL))/100);
	if(YYYY<100) YYYY+=1900;
	if(CnMM>MM) YYYY--;
	YYYY-=1864;
	return CnEra(YYYY)+"年";
	}
	function CnMonthofDate(DateGL){
	var CnMonthStr=new Array("零","正","二","三","四","五","六","七","八","九","十","冬","腊");
	var Month;
	Month = parseInt(CnDateofDate(DateGL)/100);
	if (Month < 0){return "闰" + CnMonthStr[-Month] + "月";}
	else{return CnMonthStr[Month] + "月";}
}
function CnDayofDate(DateGL){
	var CnDayStr=new Array("零",
		"初一", "初二", "初三", "初四", "初五",
		"初六", "初七", "初八", "初九", "初十",
		"十一", "十二", "十三", "十四", "十五",
		"十六", "十七", "十八", "十九", "二十",
		"廿一", "廿二", "廿三", "廿四", "廿五",
		"廿六", "廿七", "廿八", "廿九", "三十");
	var Day;
	Day = (Math.abs(CnDateofDate(DateGL)))%100;
	return CnDayStr[Day];
}
function DaysNumberofMonth(DateGL){
	var MM1=DateGL.getFullYear();
		MM1<100 ? MM1+=1900:MM1;
	var MM2=MM1;
		MM1+="/"+(DateGL.getMonth()+1);
		MM2+="/"+(DateGL.getMonth()+2);
		MM1+="/1";
		MM2+="/1";
	return parseInt((Date.parse(MM2)-Date.parse(MM1))/86400000);
}
function CnEra(YYYY){
	var Tiangan=new Array("甲","乙","丙","丁","戊","己","庚","辛","壬","癸");
	var Dizhi=new Array("子(鼠)","丑(牛)","寅(虎)","卯(兔)","辰(龙)","巳(蛇)",
						"午(马)","未(羊)","申(猴)","酉(鸡)","戌(狗)","亥(猪)");
	//var Dizhi=new Array("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥");
	return Tiangan[YYYY%10]+Dizhi[YYYY%12];
}
function CnDateofDateStr(DateGL){
	if(CnMonthofDate(DateGL)=="零月") return "请调整您的计算机日期!";
	else return "农历"+CnYearofDate(DateGL)+ " " + CnMonthofDate(DateGL) + CnDayofDate(DateGL);
}

//更改字体大小
var status0='';
var curfontsize=10;
var curlineheight=16;
function fontZoomA(){
  if(curfontsize>8){
    document.getElementById('fontzoom').style.fontSize=(--curfontsize)+'pt';
	document.getElementById('fontzoom').style.lineHeight=(--curlineheight)+'pt';
  }
}
function fontZoomB(){
  if(curfontsize<64){
    document.getElementById('fontzoom').style.fontSize=(++curfontsize)+'pt';
	document.getElementById('fontzoom').style.lineHeight=(++curlineheight)+'pt';
  }
}

//内容页表情选择列表载入、交互处理
function selectFaces(){
	var container = jQuery("#showFaces");
	if(container.length == 0)return;
	
	var amount = 17;//表情个数
	var thtml = "";
	for(var i=0; i<amount; ++i){
		thtml += "<a index='" + i + "'></a>";
	}
	container.html(thtml);
	container.find("a[index]").each(function(i, ele){
		//初始化样式
		jQuery(ele).css("background-position", (-24)*i+"px 0");
		//交互处理
		//.on不在css文件中定义，只作标识
		jQuery(ele).hover(function(){
			jQuery(this).css("background-position", (-24)*i+"px -20px");
		}, function(){
			jQuery(this).filter("[class!='on']").css("background-position", (-24)*i+"px 0");
		});
		jQuery(ele).click(function(){
			jQuery(this).addClass("on").siblings(".on").each(function(i, ele){
				var t = parseInt(jQuery(ele).attr("index"));
				jQuery(ele).removeClass("on").css("background-position", (-24)*t+"px 0");
			});
			jQuery("#userFace").val(i);//改写变量值
		});
	});
	//选中第一个
	container.find("a[index]:first").addClass("on").css("background-position", "0 -20px");
}

//表情显示
function showFaces(){
	var container2 = jQuery("#commentTarget .face");
	if(container2.length == 0)return;
	container2.each(function(i, ele){
		var t = parseInt(jQuery(ele).attr("index"));
		if(isNaN(t))t = 0;
		jQuery(ele).css("background-position", (-24)*t+"px -20px");
	});
}

//Str, 要弹出显示的内容, 必选参数
//Width, 弹出容器的宽度, 必选参数
//Container, 弹出的框体的相对定位容器, 可选参数, 默认为body
//offsetX, x偏移量, 可选参数
function ksPopup(Str, Container, offsetX, offsetY){
	var Container = (Container==undefined || Container==null) ? "body" : Container;
	var offsetX = (offsetX==undefined || offsetX==null) ? "-50px" : offsetX;
	var offsetY = (offsetY==undefined || offsetY==null) ? "24px" : offsetY;
	var oPopupBox = jQuery(Container).find(".popupBox");
	if (oPopupBox.length == 0){
		jQuery(Container).append("<span class='popupBox'></span>");
		jQuery(Container).css({position: "relative"});
		oPopupBox = jQuery(Container).find(".popupBox");
		oPopupBox.css({top: offsetY, left: offsetX});
	}
	oPopupBox.text(Str);
	oPopupBox.fadeIn({queue: true, duration: 400});
	setTimeout(function(){oPopupBox.fadeOut({queue: true, duration: 800})}, 4000);
}

//在新窗口运行指定代码
function CodeProcess()
{
	var oRunCode = jQuery("#ConField .RunableCode");
	var oCopyCode = jQuery("#ConField .CopyableCode");
	if(oRunCode.length > 0){
		oRunCode.each(function(i, ele){
			var oRunButton = "RunBtn_" + i;
			var rCode = jQuery(ele).find("textarea").val();
			jQuery(ele).append("<a id="+oRunButton+">运行代码</a>");
			jQuery("#"+oRunButton).click(function(){
				var oWin = window.open("", "", "");
				oWin.opener = null;
				oWin.document.write(rCode);
				oWin.document.close();
			});
			var oCopyButton = "CopyBtn_" + i;
			jQuery(ele).append("<a id="+oCopyButton+">复制代码</a>");
			jQuery("#"+oCopyButton).click(function(){
				if(window.clipboardData!=undefined){
					window.clipboardData.setData("Text", rCode);
					ksPopup("代码已成功复制到剪贴板", ele, "10px");
				}else{
					ksPopup("您的浏览器禁止读写剪贴板", ele, "10px");
				}
			});
		});
	}
	if(oCopyCode.length > 0){
		oCopyCode.each(function(i, ele){
			var oCopyButton = "CopyBtn_" + i;
			jQuery(ele).append("<a id="+oCopyButton+">复制代码</a>");
			jQuery("#"+oCopyButton).click(function(){
				var rCode = jQuery(ele).find("textarea").val();
				if(window.clipboardData!=undefined){
					window.clipboardData.setData("Text", rCode);
					ksPopup("代码已成功复制到剪贴板", ele, "10px");
				}else{
					ksPopup("您的浏览器禁止读写剪贴板", ele, "10px");
				}
			});
		});
	}
}


//Cookie操作
function getCookie(name)
{
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while(i < clen)
	{
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg)
		{
			return getCookieVal(j);
		}
		i = document.cookie.indexOf(" ", i) + 1;
		if(i == 0) break;
	}
	return;
}
function getCookieVal(offset)
{
	var endstr = document.cookie.indexOf(";", offset);
	if(endstr == -1)
	{
		endstr = document.cookie.length;
	}
	return unescape(document.cookie.substring(offset, endstr));
}
function setCookie(name, value, expires, path, domain, secure)
{
	document.cookie = name + "=" + escape(value) +
		((expires) ? "; expires=" + expires : "") +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		((secure) ? "; secure" : "");
}

<!--
// flashWrite(链接,宽度,高度,ID,背景色,FlashVars,wmode)
function flashWrite(url,w,h,id,bg,vars,win){

 // 调用flash
 var flashStr=
 "<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0' width='"+w+"' height='"+h+"' id='"+id+"' align='middle'>"+
 "<param name='allowScriptAccess' value='always' />"+
 "<param name='movie' value='"+url+"' />"+
 "<param name='FlashVars' value='"+vars+"' />"+
 "<param name='wmode' value='"+win+"' />"+
 "<param name='menu' value='false' />"+
 "<param name='quality' value='high' />"+
 "<param name='bgcolor' value='"+bg+"' />"+
 "<embed src='"+url+"' FlashVars='"+vars+"' wmode='"+win+"' menu='false' quality='high' bgcolor='"+bg+"' width='"+w+"' height='"+h+"' name='"+id+"' align='middle' allowScriptAccess='always' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />"+
 "</object>";

 document.write(flashStr);

}

function aviPlay(src,w,h) {
document.write('<embed src="'+src+'" width='+w+' height='+h+'>')
}

-->



