﻿
/*-----------------------------------------------------------------------------------------/
 * 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.height() > oCol2.height()){
		oCol2.height(oCol.height() - offset);
	}else{
		oCol.height(oCol2.height() - offset);
	}
}



// hover变色
function hover(obj, className){
    jQuery(obj).hover(function(){
        jQuery(this).addClass(className);
    },function(){
        jQuery(this).removeClass(className);
    });
}


//横向滚动
function bizScroll(container, itemCell, btLeft, btRight, interTime){
    if(interTime == undefined)interTime = 0;//间隔时间
	var obj = jQuery(container);
	var defaultDirection = "left";

	//点击图片弹出
	jQuery(itemCell, obj).click(function(){
		jQuery("blockquote", this).slideToggle();
		//return false;
	});
	
	//隐藏已弹出层
	var hideBlock = function(){
		jQuery("blockquote:visible", obj).slideUp();
	};
	
	//点击按钮滚动
	var goRight = function(){
		hideBlock();
		var curA = jQuery((itemCell + ":first"), obj);
		curA.css("margin-left", "0px")
			.animate({marginLeft: "-" + curA.width() + "px"}, 500,
				function(){
					curA.appendTo(obj);
					curA.css("margin-left", "0px");
				});
	}
	var goLeft = function(){
		hideBlock();
		var curA = jQuery((itemCell + ":last"), obj);
		curA.prependTo(obj);
		curA.css("margin-left", "-" + curA.width() + "px")
			.animate({marginLeft: "0px"}, 500);
	}
	jQuery(btRight).click(goRight);
	jQuery(btLeft).click(goLeft);
	
	//按钮悬停样式
	jQuery(btLeft).hover(function(){
		jQuery(this).addClass("shover");
	},function(){
		jQuery(this).removeClass("shover");
	});
	jQuery(btRight).hover(function(){
		jQuery(this).addClass("shover");
	},function(){
		jQuery(this).removeClass("shover");
	});

	//定时切换
	if(interTime > 0){
		var ShowNext = goLeft;
		if(defaultDirection=="right")ShowNext = goRight;
		
		var sInterval = setInterval(function(){
			ShowNext();
		}, interTime);
	}
}




//DIV下拉选项
jQuery.fn.selectList = function(settings) {
    settings = jQuery.extend({//可配置参数
        titCell: "dt",
        selectCell: "dd",
        itemCell: "li",
        itemOnClass: "on",
        delayTime: 1000
    },
	settings);

    this.each(function() {
		var st;
        var obj = jQuery(this);
		obj.data("sValue", "全部");
		
		obj.click(function(){
			jQuery(settings.selectCell, obj).toggle();
		});
		
		obj.hover(function(){
			if(st!=null)clearTimeout(st);
		},function(){
			st = setTimeout(function(){
				jQuery(settings.selectCell, obj).hide();
				st = null;
			}, settings.delayTime);
		});
	
		jQuery(settings.itemCell, obj).hover(function(){
			jQuery(this).addClass(settings.itemOnClass);
		},function(){
			jQuery(this).removeClass(settings.itemOnClass);
		});
		
		jQuery(settings.itemCell, obj).click(function(){
			var sTemp = jQuery(this).text();
			obj.data("sValue", sTemp);
			jQuery(settings.titCell, obj).text(sTemp);
		});
    });
    return this;
};

function selectList(container){
	var obj = jQuery(container);
}




//获得日期
function RunGLNL(obj){
	var today = new Date();
	var d = new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
	DDDD = "<em>"+(today.getFullYear()<100 ? today.getFullYear()+1900:today.getFullYear())+"</em>年<em>"+(today.getMonth()+1)+"</em>月<em>"+today.getDate()+"</em>日";
	DDDD = DDDD + " " + d[today.getDay()];
	DDDD = DDDD + " " + (CnDateofDateStr(today));
	jQuery(obj).html(DDDD);
}
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);
	//else return "农历" + CnMonthofDate(DateGL) + CnDayofDate(DateGL);
}



