【HTML】制作一个简单的实时字体时钟

时间:2024-04-16 07:29:12

目录

前言

HTML部分

CSS部分

JS部分

效果图

总结


前言

        无需多言,本文将详细介绍一段HTML代码,具体内容如下:

开始

        首先新建文件夹,创建一个文本文档,两个文件夹,其中HTML的文件名改为[index.html];CSS的文件名改为[css],里面新建一个文本文档重命名为[test.css];JS的文件名改为[js],里面新建四个文本文档,分别重命名为 [common.js] [config.js] [jquery-3.4.1.min.js] [test.js] ,创建好后右键用文本文档打开,再把下面相对应代码填入后保存即可。

HTML部分

        这段HTML代码是一个动态时钟的页面结构,它通过HTML、CSS和JavaScript的结合实现了一个可视化的时钟效果。以下是代码的主要组成部分和功能:

  1. HTML结构

    • 页面包含一个<!DOCTYPE html>声明,指定文档类型为HTML5。
    • <html>标签内嵌套<head><body>标签,分别用于存放元数据和页面内容。
    • <head>部分定义了页面的字符集、视口设置、标题,并引入了jQuery库和几个JavaScript文件,这些文件可能包含时钟的功能逻辑和配置。
    • <body>部分定义了一个.main-content容器,用于存放时钟的各个部分,如年、月、日、星期、时辰、小时、分钟和秒。
  2. CSS样式

    • 页面的全局样式设置,包括去除默认边距、设置背景、字体和尺寸等。
    • 针对audio元素的样式,使其在页面上以透明的形式存在,鼠标悬停时变为不透明。
    • 针对.main-content及其子元素的样式,通过绝对定位和相对定位来精确控制时钟各个部分的位置。
    • 为当前激活的元素设置.current类,以改变其文字颜色,突出显示。
  3. JavaScript文件

    • 虽然JavaScript代码没有直接展示,但通过<script>标签引入的jquery-3.4.1.min.js和其他自定义的.js文件,我们可以推断这些文件可能包含时钟的动态更新逻辑、用户交互功能等。
  4. 页面布局

    • 页面宽度和高度被固定为1000px和900px,背景图像被设置为固定,以避免滚动时背景移动。
    • 时钟的各个部分(年、月、日等)通过<div>元素表示,并使用CSS进行样式设置和位置调整。
  5. 用户体验

    • 页面设计注重视觉效果,通过固定背景和精确的布局来创建一个清晰、专业的时钟界面。
    • 音频控件的设计提供了额外的交互可能性,虽然在这段代码中没有具体实现。

        总结来说,这段代码是一个动态时钟的基础框架,通过HTML定义了页面结构,CSS设置了样式和布局,JavaScript文件可能包含了时钟动态更新和交互的逻辑。整个页面设计简洁,注重用户体验,是一个典型的前端开发示例。

<!DOCTYPE html><!-- 声明文档类型为 HTML5 -->
<html>
<head>
    <meta charset="utf-8"><!-- 设置字符编码为 utf-8 -->
    <meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- 兼容 IE 浏览器 -->
    <title>动态时钟</title><!-- 页面标题 -->
    <meta name="viewport" content="width=device-width, initial-scale=1"><!-- 响应式布局设置 -->
    <script src="js/jquery-3.4.1.min.js"></script><!-- 引入 jQuery 库 -->
    <script src="js/test.js"></script><!-- 引入自定义的 JavaScript 文件 -->
    <script src="js/common.js"></script><!-- 引入公共的 JavaScript 文件 -->
    <script src="js/config.js"></script><!-- 引入配置文件 -->
</head>

<style>

	*{ /* 通用样式重置 */
		margin: 0;
		padding: 0;
	}

	body{ /* 页面主体样式 */
		background-attachment: fixed; /* 背景固定 */
		color: #F5F4F6; /* 文字颜色 */
		font-size: 12px; /* 字体大小 */
		font-weight: bold; /* 字体加粗 */
		overflow: hidden; /* 隐藏溢出内容 */
		width: 1000px; /* 宽度 */
		height: 900px; /* 高度 */
		font-family: "微软雅黑"; /* 字体 */
		
	}

	audio{ /* 音频控件样式 */
		position: absolute; /* 绝对定位 */
		right: 0; /* 靠右 */
		opacity: 0.1; /* 透明度 */
		transition: all 1s; /* 过渡效果 */
		
	}

	audio:hover{ /* 鼠标悬停时的样式变化 */
		opacity: 1; /* 透明度变为完全不透明 */
	}

	.current{ /* 当前激活的元素样式 */
		color: #D1A3F7; /* 文字颜色 */
	}


	video{ /* 视频样式 */
		z-index: -1; /* 层级设置 */
		position: fixed; /* 固定定位 */
		min-width: 100%; /* 最小宽度 */
		min-height: 100%; /* 最小高度 */
	}


	.main-content{ /* 主要内容区域样式 */
		position: absolute;  /* 绝对定位 */
		top:50%; /* 距离顶部 50% 的位置 */
		left: 50%; /* 距离左侧 50% 的位置 */
	}


	.main-content .year{ /* 年显示样式 */
		position: relative; /* 相对定位 */
		top: -13px; /* 向上偏移 13px */
		left: -38px; /* 向左偏移 38px */
		text-align: center /* 文字居中 */
	}

	.main-content .year span{ /* 年显示的具体元素样式 */
		position: absolute; /* 绝对定位 */
		width: 80px; /* 宽度 */
	}

 /* 以下类似,为月、日、星期、时辰、小时、分钟、秒的样式设置 */

	.main-content .month{
		position: relative;
		top: -13px;
		left: 40px;
	}

	.month span{
		position: absolute;
		width: 60px;
		
	}




	.main-content .day{
		position: relative;
		top: -13px;
		left: 85px;
	}

	.day span{
		position: absolute;
		width: 65px;
		
	}




	.main-content .week{
		position: relative;
		top: -13px;
		left: 145px;
	}
	.week span{
		position: absolute;
		width: 65px;
		
	}


	.main-content .shichen{
		position: relative;
		top: -13px;
		left: 200px;
	}
	.shichen span{
		position: absolute;
		width: 125px;
		
	}


	.main-content .hour{
		position: relative;
		top: -13px;
		left: 240px;
	}
	.hour span{
		position: absolute;
		width: 60px;
		
	}


	.main-content .minute{
		position: relative;
		top: -13px;
		left: 300px;
	}
	.minute span{
		position: absolute;
		width: 60px;
		
	}


	.main-content .second{
		position: relative;
		top: -13px;
		left: 370px;
	}
	.second span{
		position: absolute;
		width: 60px;
		
	}



</style>



<body>


    
    <div class="main-content">
        <div class="year">
        </div> 
        <div class="month"></div><!-- 月显示区域 -->
        <div class="day"></div><!-- 日显示区域 -->
        <div class="week"></div><!-- 星期显示区域 -->
        <div class="shichen"></div><!-- 时辰显示区域 -->
        <div class="hour"></div><!-- 小时显示区域 -->
        <div class="minute"></div><!-- 分钟显示区域 -->
        <div class="second"></div><!-- 秒显示区域 -->
    </div>



</body>
</html>

CSS部分

        这段CSS代码定义了一个动态时钟的样式,主要通过以下几个方面来实现:

  1. 全局样式 (* 选择器):通过重置默认的外边距和内边距,为整个页面提供了一个统一的基础样式。

  2. 页面主体 (body 选择器):设置了页面的背景、文字颜色、字体大小和字体权重等属性,并定义了页面的尺寸和字体。

  3. 音频控件 (audio 选择器):定义了音频控件的位置、透明度和悬停效果,使其在页面上以非干扰性的方式存在,且在用户交互时提供反馈。

  4. 视频背景 (video 选择器):设置了一个全屏的视频背景,覆盖整个页面内容,但位于较低的层级,以创造一个视觉效果。

  5. 主要内容区域 (.main-content 选择器):通过绝对定位,将时钟的内容置于页面的中心位置。

  6. 时钟各个部分的样式 (.year, .month, .day, .week, .shichen, .hour, .minute, .second 选择器):为时钟的年、月、日、星期、时辰、小时、分钟和秒分别设置了相对定位和样式,通过调整topleft属性来精确控制它们在页面上的位置。每个部分的span元素也被设置为绝对定位,并指定了宽度。

  7. 高亮当前激活元素 (.current 选择器):为当前激活的时钟部分(如当前的秒数)提供了一个特殊的文字颜色,以便于突出显示。

        总结来说,这段CSS代码通过精确的布局和样式设置,为动态时钟提供了一个清晰、专业的视觉效果。代码中的注释进一步增强了样式定义的可读性,使得其他开发者或设计师可以更容易地理解和修改这些样式。

/* 通用样式重置,移除所有元素的默认外边距和内边距 */
*{
    margin: 0;
    padding: 0;
}

/* 页面主体样式 */
body{
    /* 背景图像固定,不随滚动条滚动而移动 */
    background-attachment: fixed;
    /* 页面文字颜色 */
    color: #F5F4F6;
    /* 字体大小 */
    font-size: 12px;
    /* 字体加粗 */
    font-weight: bold;
    /* 隐藏溢出的内容 */
    overflow: hidden;
    /* 页面宽度和高度设置 */
    width: 1000px;
    height: 900px;
    /* 设置字体为微软雅黑 */
    font-family: "微软雅黑";
}

/* 音频控件样式 */
audio{
    /* 绝对定位,使音频控件位于页面的最右侧 */
    position: absolute;
    right: 0;
    /* 设置音频控件的透明度为0.1,使其几乎不可见 */
    opacity: 0.1;
    /* 过渡效果,当改变音频控件的属性时,如透明度,会在1秒内平滑过渡 */
    transition: all 1s;
}

/* 鼠标悬停于音频控件时的样式变化 */
audio:hover{
    /* 鼠标悬停时,音频控件的透明度变为1,即完全可见 */
    opacity: 1;
}

/* 当前激活的元素的样式 */
.current{
    /* 设置当前激活元素的文字颜色 */
    color: #D1A3F7;
}

/* 视频样式 */
video{
    /* 设置视频的层级为-1,使其位于其他内容的下方 */
    z-index: -1;
    /* 绝对定位,使视频覆盖整个页面 */
    position: fixed;
    /* 设置视频的最小宽度和高度为100%,使其至少覆盖整个页面 */
    min-width: 100%;
    min-height: 100%;
}

/* 主要内容区域样式 */
.main-content{
    /* 绝对定位,并调整其在页面中的位置 */
    position: absolute; 
    top:50%;
    left: 50%;
}

/* 年份显示样式 */
.main-content .year{
    /* 相对定位,基于其父元素.main-content进行定位 */
    position: relative;
    /* 向上移动13像素,调整年份显示的位置 */
    top: -13px;
    /* 向左移动38像素,进一步调整年份显示的位置 */
    left: -38px;
    /* 文字居中对齐 */
    text-align: center
}

/* 年份显示的具体元素样式 */
.main-content .year span{
    /* 绝对定位,设置元素宽度 */
    position: absolute;
    width: 80px;
}

/* 月份显示样式,类似年份,但位置不同 */
.main-content .month{
    /* 相对定位,基于其父元素.main-content进行定位 */
    position: relative;
    top: -13px;
    left: 40px;
}

/* 月份显示的具体元素样式 */
.month span{
    /* 绝对定位,设置元素宽度 */
    position: absolute;
    width: 60px; 
}

/* 日期显示样式,类似月份 */
.main-content .day{
    /* 相对定位 */
    position: relative;
    top: -13px;
    left: 85px;
}

/* 日期显示的具体元素样式 */
.day span{
    /* 绝对定位,设置元素宽度 */
    position: absolute;
    width: 65px; 
}

/* 星期显示样式,类似日期 */
.main-content .week{
    /* 相对定位 */
    position: relative;
    top: -13px;
    left: 145px;
}

/* 星期显示的具体元素样式 */
.week span{
    /* 绝对定位,设置元素宽度 */
    position: absolute;
    width: 65px; 
}

/* 时辰显示样式,类似星期 */
.main-content .shichen{
    /* 相对定位 */
    position: relative;
    top: -13px;
    left: 200px;
}

/* 时辰显示的具体元素样式 */
.shichen span{
    /* 绝对定位,设置元素宽度 */
    position: absolute;
    width: 125px; 
}

/* 小时显示样式,类似时辰 */
.main-content .hour{
    /* 相对定位 */
    position: relative;
    top: -13px;
    left: 240px;
}

/* 小时显示的具体元素样式 */
.hour span{
    /* 绝对定位,设置元素宽度 */
    position: absolute;
    width: 60px; 
}

/* 分钟显示样式,类似小时 */
.main-content .minute{
    /* 相对定位 */
    position: relative;
    top: -13px;
    left: 300px;
}

/* 分钟显示的具体元素样式 */
.minute span{
    /* 绝对定位,设置元素宽度 */
    position: absolute;
    width: 60px; 
}

/* 秒钟显示样式,类似分钟 */
.main-content .second{
    /* 相对定位 */
    position: relative;
    top: -13px;
    left: 370px;
}

/* 秒钟显示的具体元素样式 */
.second span{
    /* 绝对定位,设置元素宽度 */
    position: absolute;
    width: 60px; 
}

JS部分

[common.js]

//这里显示简体字体
function numToSimp(n){
    var str = "";
    var units=parseInt(n%10);
    var tens=parseInt(n/10);
    var trans="零一二三四五六七八九十";



    if(tens>1){
        str=trans.charAt(tens);
    }
    if(tens!=0){
        str+="十";
    }
    if(units!=0){
        str += trans.charAt(units);
    }

    if(tens==0&&units==0){
        str=trans[0];
    }
    
    return str;
}

//繁体字更玄学
function numToTrad(n){
    var str = "";
    var units=parseInt(n%10);
    var tens=parseInt(n/10);
    var trans="零一二三四五六七八九";
    if(tens>1){
        str=trans.charAt(tens);
    }
    if(tens!=0){
        str+="十";
    }
    if(units!=0){
        str += trans.charAt(units);
    }

    if(tens==0&&units==0){
        str=trans[0];
    }
    
    return str;
}


//展示英文出来
function numToEng(n){
    var str = "";
    var units=parseInt(n%10);
    var tens=parseInt(n/10);
    var trans=[
        ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine","ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"],
        ["twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"],
    ];
    if(n<20)
    {
        str=trans[0][n];
    }else{
        str=trans[1][tens-2];
        if(units!=0){
            str+=trans[0][units];
        }
    }

    if(tens==0&&units==0){
        str=trans[0][0];
    }
    return str;
}



function isLeapYear(year){
    if(year % 4 == 0 && year %100 != 0 ||year % 400 == 0)
    {
        return true;
    }else{
        return false;
    }
}



function getYear(type,year){
    var res=""
    var units=parseInt(year/1%10);
    var tens=parseInt(year/10%10);
    var hund=parseInt(year/100%10);
    var thou=parseInt(year/1000%10);
    switch(type){
        case 0:
        case 3:
            res=year;
            break;
        case 1:
            res=numToSimp(thou)+numToSimp(hund)+numToSimp(tens)+numToSimp(units);
            break;
        case 2:
            res=numToTrad(thou)+numToTrad(hund)+numToTrad(tens)+numToTrad(units);
            break;
    }
    return res;
}






/*
    获取月份
    参数:0 阿拉伯数字 1简体 2繁体 3英文
*/
function getMonths(type,month){
    var months=new Array();
    var monthsEng=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
    var i=1;
    switch (type) {
        case 0:
            for(i=month;i<=12;i++)
            {
                months.push(i);
            }
            for(i=1;i<month;i++)
            {
                months.push(i);
            }
            
            break;
        case 1:
            for(i=month;i<=12;i++)
            {
                months.push(numToSimp(i));
            }
            for(i=1;i<month;i++)
            {
                months.push(numToSimp(i));
            }
            break;
        case 2:

            for(i=month;i<=12;i++)
            {
                months.push(numToTrad(i));
            }
            for(i=1;i<month;i++)
            {
                months.push(numToTrad(i));
            }
            break;
        case 3:
            for(i=month-1;i<12;i++)
            {
                months.push(monthsEng[i]);
            }
            for(i=0;i<month-1;i++)
            {
                months.push(monthsEng[i]);
            }
            break;
    }
    return months;
}


function getdays(type,year,month,day){
    var days=new Array();
    var j=1;
    var isLeap=isLeapYear(year);
    switch (type) {
        case 0:
        case 3:
            for(j=day;j<=31;j++)
            {
                days.push(j)
                if(month==2&&isLeap&&j==29){
                    break;
                }
                if(month==2&&!isLeap&&j==28){
                    break;
                }
                if((month==2||month==4||month==6||month==9||month==11)&&j==30){
                    break;
                }

            }
            for(j=1;j<day;j++){
                days.push(j)
            }
            break;
        case 1:
            for(j=day;j<=31;j++)
            {
                days.push(numToSimp(j))
                if(month==2&&isLeap&&j==29){
                    break;
                }
                if(month==2&&!isLeap&&j==28){
                    break;
                }
                if((month==2||month==4||month==6||month==9||month==11)&&j==30){
                    break;
                }

            }

            for(j=1;j<day;j++){
                days.push(numToSimp(j))
            }

            break;
        case 2:
            for(j=day;j<=31;j++)
            {
                days.push(numToTrad(j))
                if(month==2&&isLeap&&j==29){
                    break;
                }
                if(month==2&&!isLeap&&j==28){
                    break;
                }
                if((month==2||month==4||month==6||month==9||month==11)&&j==30){
                    break;
                }

            }

            for(j=1;j<day;j++){
                days.push(numToTrad(j))
            }

            break;
    }
    return days;
}






function getShiChen(type,hour){
    var shichen={
        index:0,
        str:""
    };

    switch(type){
        case 0:
            if(hour>=23||hour<1){
                shichen.index=0;
                shichen.str="23:00-1:00";
            }
            else if(hour>=1&&hour<3){
                shichen.index=1;
                shichen.str="1:00-3:00";
            }
            else if(hour>=3&&hour<5){
                shichen.index=2;
                shichen.str="3:00-5:00";
            }
            else if(hour>=5&&hour<7){
                shichen.index=3;
                shichen.str="5:00-7:00";
            }
            else if(hour>=7&&hour<9){
                shichen.index=4;
                shichen.str="7:00-9:00";
            }
            else if(hour>=9&&hour<11){
                shichen.index=5;
                shichen.str="9:00-11:00";
            }
            else if(hour>=11&&hour<13){
                shichen.index=6;
                shichen.str="11:00-13:00";
            }
            else if(hour>=13&&hour<15){
                shichen.index=7;
                shichen.str="13:00-15:00";
            }
            else if(hour>=15&&hour<17){
                shichen.index=8;
                shichen.str="15:00-17:00";
            }
            else if(hour>=17&&hour<19){
                shichen.index=9;
                shichen.str="17:00-19:00";
            }
            else if(hour>=19&&hour<21){
                shichen.index=10;
                shichen.str="19:00-21:00";
            }
            else if(hour>=21&&hour<23){
                shichen.index=11;
                shichen.str="21:00-23:00";
            }
            break;
        case 1:
        case 2:
            if(hour>=23||hour<1){
                shichen.index=0;
                shichen.str="子时"
            }
            else if(hour>=1&&hour<3){
                shichen.index=1;
                shichen.str="丑时";
            }
            else if(hour>=3&&hour<5){
                shichen.index=2;
                shichen.str="寅时";
            }
            else if(hour>=5&&hour<7){
                shichen.index=3;
                shichen.str="卯时";
            }
            else if(hour>=7&&hour<9){
                shichen.index=4;
                shichen.str="辰时";
            }
            else if(hour>=9&&hour<11){
                shichen.index=5;
                shichen.str="巳时";
            }
            else if(hour>=11&&hour<13){
                shichen.index=6;
                shichen.str="午时";
            }
            else if(hour>=13&&hour<15){
                shichen.index=7;
                shichen.str="未时";
            }
            else if(hour>=15&&hour<17){
                shichen.index=8;
                shichen.str="申时";
            }
            else if(hour>=17&&hour<19){
                shichen.index=9;
                shichen.str="酉时";
            }
            else if(hour>=19&&hour<21){
                shichen.index=10;
                shichen.str="戌时";
            }
            else if(hour>=21&&hour<23){
                shichen.index=11;
                shichen.str="亥时";
            }
            break;
        case 3:
            if(hour>=23||hour<1){
                shichen.index=0;
                shichen.str="23pm to 1am"
            }
            else if(hour>=1&&hour<3){
                shichen.index=1;
                shichen.str="1am to 3am"
            }
            else if(hour>=3&&hour<5){
                shichen.index=2;
                shichen.str="3am to 5am"
            }
            else if(hour>=5&&hour<7){
                shichen.index=3;
                shichen.str="5pm to 7am"
            }
            else if(hour>=7&&hour<9){
                shichen.index=4;
                shichen.str="7pm to 9am"
            }
            else if(hour>=9&&hour<11){
                shichen.index=5;
                shichen.str="9pm to 11am"
            }
            else if(hour>=11&&hour<13){
                shichen.index=6;
                shichen.str="11am to 13pm"
            }
            else if(hour>=13&&hour<15){
                shichen.index=7;
                shichen.str="13pm to 15pm"
            }
            else if(hour>=15&&hour<17){
                shichen.index=8;
                shichen.str="15pm to 17pm"
            }
            else if(hour>=17&&hour<19){
                shichen.index=9;
                shichen.str="17pm to 19pm"
            }
            else if(hour>=19&&hour<21){
                shichen.index=10; 
                shichen.str="19pm to 21pm"
            }
            else if(hour>=21&&hour<23){
                shichen.index=11;
                shichen.str="21pm to 23pm"
            }
            break;
    }



    return shichen;
}

function getShiChens(type,shichen){
    var shichens=new Array();
    var i=0;
    var shichen0=["23:00-1:00","1:00-3:00","3:00-5:00","5:00-7:00","7:00-9:00","9:00-11:00","11:00-13:00","13:00-15:00","15:00-17:00","17:00-19:00","19:00-21:00","21:00-23:00"];
    var shichen1=["子时","丑时","寅时","卯时","辰时","巳时","午时","未时","申时","酉时","戌时","亥时"];
    var shichen3=["23pm to 1am","1am to 3am","3am to 5am","5pm to 7am","7pm to 9am","9pm to 11am","11am to 13pm","13pm to 15pm","15pm to 17pm","17pm to 19pm","19pm to 21pm","21pm to 23pm"];
    switch(type){
        case 0:
            for(i=shichen.index;i<12;i++){
                shichens.push(shichen0[i]);
            }
            for(i=0;i<shichen.index;i++){
                shichens.push(shichen0[i]);
            }
            break;
        case 1:
        case 2:
            for(i=shichen.index;i<12;i++){
                shichens.push(shichen1[i]);
            }
            for(i=0;i<shichen.index;i++){
                shichens.push(shichen1[i]);
            }
            break;
        case 3:
            for(i=shichen.index;i<12;i++){
                shichens.push(shichen3[i]);
            }
            for(i=0;i<shichen.index;i++){
                shichens.push(shichen3[i]);
            }
            break;
    }
    return shichens;
}

function getMonthEng(month){
    var monthsEng=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
    return monthsEng[month-1];
}



function getWeeks(type,week){
    weeks=[];
    weeksEng=["Sun","Mon","Tues","Wed","Thur","Fri","Sat"];
    var i=0;
    switch(type){
        case 0:
        case 1:
        case 2:
            for(i=week;i<7;i++){
                weeks[i]="星期"+numToSimp(i);
                if(i==0){
                    weeks[i]="星期日"
                }
            }
            for(i=0;i<week;i++){
                weeks[i]="星期"+numToSimp(i);
            }
            break;
        case 3:
            for(i=week;i<7;i++)
            {
                weeks.push(weeksEng[i]);
            }
            for(i=0;i<week;i++)
            {
                weeks.push(weeksEng[i]);
            }
            break;
    }
    return weeks;
}

function getWeek(type,week){
    weekEng=["Sun","Mon","Tues","Wed","Thur","Fri","Sat"];
    res="";
    switch(type){
        case 0:
        case 1:
        case 2:
            if(week==0){
                res="日"
            }else{
                res=numToSimp(week);
            }
            break;
        case 3:
            res=weekEng[week];
            break;
    }
    return res;
}

function getHours(type,hour){
    var hours=new Array();
    var i=0;
    switch(type){
        case 0:
        case 3:
            for(i=hour;i<24;i++){
                hours.push(i);
            }
            for(i=0;i<hour;i++){
                hours.push(i);
            }
            break;
        case 1:
            for(i=hour;i<24;i++){
                hours.push(numToSimp(i));
            }
            for(i=0;i<hour;i++){
                hours.push(numToSimp(i));
            }
            break;
        case 2:
            for(i=hour;i<24;i++){
                hours.push(numToTrad(i));
            }
            for(i=0;i<hour;i++){
                hours.push(numToTrad(i));
            }
            break;
    }
    return hours;
}


function getMinutes(type,minute){
    var minutes=new Array();
    var i=0;
    switch(type){
        case 0:
        case 3:
            for(i=minute;i<60;i++){
                minutes.push(i);
            }
            for(i=0;i<minute;i++){
                minutes.push(i);
            }
            break;
        case 1:
            for(i=minute;i<60;i++){
                minutes.push(numToSimp(i));
            }
            for(i=0;i<minute;i++){
                minutes.push(numToSimp(i));
            }
            break;
        case 2:
            for(i=minute;i<60;i++){
                minutes.push(numToTrad(i));
            }
            for(i=0;i<minute;i++){
                minutes.push(numToTrad(i));
            }
            break;
    }
    return minutes;
}


function getSeconds(type,second){
    var seconds=new Array();
    var i=0;
    switch(type){
        case 0:
        case 3:
            for(i=second;i<60;i++){
                seconds.push(i);
            }
            for(i=0;i<second;i++){
                seconds.push(i);
            }
            break;
        case 1:
            for(i=second;i<60;i++){
                seconds.push(numToSimp(i));
            }
            for(i=0;i<second;i++){
                seconds.push(numToSimp(i));
            }
            break;
        case 2:
            for(i=second;i<60;i++){
                seconds.push(numToTrad(i));
            }
            for(i=0;i<second;i++){
                seconds.push(numToTrad(i));
            }
            break;
    }
    return seconds;
}

function isShichen(hour){
    if(hour=="one h"||hour=="three h"||hour=="five h"||hour=="seven h"||hour=="nine h"||hour=="eleven h"||hour=="thirteen h"||hour=="fifteen h"||hour=="seventeen h"||hour=="nineteen h"||hour=="twentyone h"||hour=="twentythree h"
    ||hour=="1时"||hour=="3时"||hour=="5时"||hour=="7时"||hour=="9时"||hour=="11时"||hour=="13时"||hour=="15时"||hour=="17时"||hour=="19时"||hour=="21时"||hour=="23时"
    ||hour=="一时"||hour=="三时"||hour=="五时"||hour=="七时"||hour=="九时"||hour=="十一时"||hour=="十三时"||hour=="十五时"||hour=="十七时"||hour=="十九时"||hour=="二十一时"||hour=="二十三时"
    ||hour=="壹时"||hour=="叁时"||hour=="伍时"||hour=="柒时"||hour=="玖时"||hour=="拾壹时"||hour=="拾叁时"||hour=="拾伍时"||hour=="拾柒时"||hour=="拾玖时"||hour=="贰拾壹时"||hour=="贰拾叁时"
    ||hour=="1 h"||hour=="3 h"||hour=="5 h"||hour=="7 h"||hour=="9 h"||hour=="11 h"||hour=="13 h"||hour=="15 h"||hour=="17 h"||hour=="19 h"||hour=="21 h"||hour=="23 h"){
        return true;
    }
    return false;
}


function updateDays(type,year,month,day){
    var days=new Array();
    var j=1;
    var isLeap=isLeapYear(year);
    switch (type) {
        case 0:
        case 3:
            for(j=day;j<=31;j++)
            {
                days.push(j)
                if(month==2&&isLeap&&j==29){
                    break;
                }
                if(month==2&&!isLeap&&j==28){
                    break;
                }
                if((month==2||month==4||month==6||month==9||month==11)&&j==30){
                    break;
                }

            }
            for(j=1;j<day;j++){
                days.push(j)
            }
            break;
        case 1:
            for(j=1;j<=31;j++)
            {
                days.push(numToSimp(j))
                if(month==2&&isLeap&&j==29){
                    break;
                }
                if(month==2&&!isLeap&&j==28){
                    break;
                }
                if((month==2||month==4||month==6||month==9||month==11)&&j==30){
                    break;
                }

            }

            for(j=1;j<day;j++){
                days.push(numToSimp(j))
            }

            break;
        case 2:
            for(j=1;j<=31;j++)
            {
                days.push(numToTrad(j))
                if(month==2&&isLeap&&j==29){
                    break;
                }
                if(month==2&&!isLeap&&j==28){
                    break;
                }
                if((month==2||month==4||month==6||month==9||month==11)&&j==30){
                    break;
                }

            }

            for(j=1;j<day;j++){
                days.push(numToTrad(j))
            }

            break;
    }
    return days;
}



function getFirstDay(type){
    day=1;
    switch (type) {
        case 1:
            day=numToSimp(day);
            break;
        case 2:
            day=numToTrad(day);
            break;
    }
    return day;
}

[config.js]

var config={

    'language_type':2,
    'font_color':'#7F7F7F',
    'pointer_color':'#000000',

    /*'sound':0,
    'sound_name':'cc.mp3',

    'background_style':1,
    'background_picture':'bg.jpg',
    'background_video':'3.mp4',
    'background_color':'#000000',*/
}

[jquery-3.4.1.min.js]

/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},