本文源出处: http://wf5360308.cnblogs.com/articles/362935.html
对显示风格进行了一些修改.
对显示风格进行了一些修改.
1
/**
2
*本日历选择控件由tiannet根据前人经验完善而得。大部分代码来自meizz的日历控件。
3
*tiannet添加了时间选择功能、select,object标签隐藏功能,还有其它小功能。
4
*使用方法:
5
* (1)只选择日期 <input type="text" name="date" readOnly onClick="setDay(this);">
6
* (2)选择日期和小时 <input type="text" name="dateh" readOnly onClick="setDayH(this);">
7
* (3)选择日期和小时及分钟 <input type="text" name="datehm" readOnly onClick="setDayHM(this);">
8
*设置参数的方法
9
* (1)设置日期分隔符 setDateSplit(strSplit);默认为"-"
10
* (2)设置日期与时间之间的分隔符 setDateTimeSplit(strSplit);默认为" "
11
* (3)设置时间分隔符 setTimeSplit(strSplit);默认为":"
12
* (4)设置(1),(2),(3)中的分隔符 setSplit(strDateSplit,strDateTimeSplit,strTimeSplit);
13
* (5)设置开始和结束年份 setYearPeriod(intDateBeg,intDateEnd)
14
*说明:
15
* 默认返回的日期时间格式如同:2005-02-02 08:08
16
*/
17
//------------------ 样式定义 ---------------------------//
18
//功能按钮同样样式
19
var s_tiannet_turn_base = "height:16px;font-size:9pt;color:white;border:0 solid #CCCCCC;cursor:hand;background-color:#2650A6;";
20
//翻年、月等的按钮
21
var s_tiannet_turn = s_tiannet_turn_base;//原来的是: "width:28px;" + s_tiannet_turn_base;
22
//关闭、清空等按钮样式
23
var s_tiannet_turn2 = "width:22px;" + s_tiannet_turn_base;
24
//年选择下拉框
25
var s_tiannet_select = "width:64px;display:none;";
26
//月、时、分选择下拉框
27
var s_tiannet_select2 = "width:46px;display:none;";
28
//日期选择控件体的样式
29
var s_tiannet_body = "width:150;background-color:#2650A6;display:none;z-index:9998;position:absolute;" +
30
"border-left:1 solid #CCCCCC;border-top:1 solid #CCCCCC;border-right:1 solid #999999;border-bottom:1 solid #999999;";
31
//显示日的td的样式
32
var s_tiannet_day = "width:21px;height:20px;background-color:#D8F0FC;font-size:10pt;";
33
//字体样式
34
var s_tiannet_font = "color:#FFCC00;font-size:9pt;cursor:hand;";
35
//链接的样式
36
var s_tiannet_link = "text-decoration:none;font-size:9pt;color:#2650A6;";
37
//横线
38
var s_tiannet_line = "border-bottom:1 solid #6699CC";
39
//------------------ 变量定义 ---------------------------//
40
var tiannetYearSt = 1950;//可选择的开始年份
41
var tiannetYearEnd = 2010;//可选择的结束年份
42
var tiannetDateNow = new Date();
43
var tiannetYear = tiannetDateNow.getFullYear(); //定义年的变量的初始值
44
var tiannetMonth = tiannetDateNow.getMonth()+1; //定义月的变量的初始值
45
var tiannetDay = tiannetDateNow.getDate();
46
var tiannetHour = 8;//tiannetDateNow.getHours();
47
var tiannetMinute = 0;//tiannetDateNow.getMinutes();
48
var tiannetArrDay=new Array(42); //定义写日期的数组
49
var tiannetDateSplit = "-"; //日期的分隔符号
50
var tiannetDateTimeSplit = " "; //日期与时间之间的分隔符
51
var tiannetTimeSplit = ":"; //时间的分隔符号
52
var tiannetOutObject; //接收日期时间的对象
53
var arrTiannetHide = new Array();//被强制隐藏的标签
54
var m_bolShowHour = false;//是否显示小时
55
var m_bolShowMinute = false;//是否显示分钟
56![](/Images/OutliningIndicators/None.gif)
57
var m_aMonHead = new Array(12); //定义阳历中每个月的最大天数
58
m_aMonHead[0] = 31; m_aMonHead[1] = 28; m_aMonHead[2] = 31; m_aMonHead[3] = 30; m_aMonHead[4] = 31; m_aMonHead[5] = 30;
59
m_aMonHead[6] = 31; m_aMonHead[7] = 31; m_aMonHead[8] = 30; m_aMonHead[9] = 31; m_aMonHead[10] = 30; m_aMonHead[11] = 31;
60
// ---------------------- 用户可调用的函数 -----------------------------//
61
//用户主调函数-只选择日期
62
function setDay(obj){
63
tiannetOutObject = obj;
64
//如果标签中有值,则将日期初始化为当前值
65
var strValue = tiannetTrim(tiannetOutObject.value);
66
if( strValue != "" ){
67
tiannetInitDate(strValue);
68
}
69
tiannetPopCalendar();
70
}
71
//用户主调函数-选择日期和小时
72
function setDayH(obj){
73
tiannetOutObject = obj;
74
m_bolShowHour = true;
75
//如果标签中有值,则将日期和小时初始化为当前值
76
var strValue = tiannetTrim(tiannetOutObject.value);
77
if( strValue != "" ){
78
tiannetInitDate(strValue.substring(0,10));
79
var hour = strValue.substring(11,13);
80
if( hour < 10 ) tiannetHour = hour.substring(1,2);
81
}
82
tiannetPopCalendar();
83
}
84
//用户主调函数-选择日期和小时及分钟
85
function setDayHM(obj){
86
tiannetOutObject = obj;
87
m_bolShowHour = true;
88
m_bolShowMinute = true;
89
//如果标签中有值,则将日期和小时及分钟初始化为当前值
90
var strValue = tiannetTrim(tiannetOutObject.value);
91
if( strValue != "" ){
92
tiannetInitDate(strValue.substring(0,10));
93
var time = strValue.substring(11,16);
94
var arr = time.split(tiannetTimeSplit);
95
tiannetHour = arr[0];
96
tiannetMinute = arr[1];
97
if( tiannetHour < 10 ) tiannetHour = tiannetHour.substring(1,2);
98
if( tiannetMinute < 10 ) tiannetMinute = tiannetMinute.substring(1,2);
99
}
100
tiannetPopCalendar();
101
}
102
//设置开始日期和结束日期
103
function setYearPeriod(intDateBeg,intDateEnd){
104
tiannetYearSt = intDateBeg;
105
tiannetYearEnd = intDateEnd;
106
}
107
//设置日期分隔符。默认为"-"
108
function setDateSplit(strDateSplit){
109
tiannetDateSplit = strDateSplit;
110
}
111
//设置日期与时间之间的分隔符。默认为" "
112
function setDateTimeSplit(strDateTimeSplit){
113
tiannetDateTimeSplit = strDateTimeSplit;
114
}
115
//设置时间分隔符。默认为":"
116
function setTimeSplit(strTimeSplit){
117
tiannetTimeSplit = strTimeSplit;
118
}
119
//设置分隔符
120
function setSplit(strDateSplit,strDateTimeSplit,strTimeSplit){
121
tiannetDateSplit(strDateSplit);
122
tiannetDateTimeSplit(strDateTimeSplit);
123
tiannetTimeSplit(strTimeSplit);
124
}
125
//设置默认的日期。格式为:YYYY-MM-DD
126
function setDefaultDate(strDate){
127
tiannetYear = strDate.substring(0,4);
128
tiannetMonth = strDate.substring(5,7);
129
tiannetDay = strDate.substring(8,10);
130
}
131
//设置默认的时间。格式为:HH24:MI
132
function setDefaultTime(strTime){
133
tiannetHour = strTime.substring(0,2);
134
tiannetMinute = strTime.substring(3,5);
135
}
136
// ---------------------- end 用户可调用的函数 -----------------------------//
137
//------------------ begin 页面显示部分 ---------------------------//
138
var weekName = new Array("日","一","二","三","四","五","六");
139
document.write('<div id="divTiannetDate" style="'+s_tiannet_body+'" style="本日历选择控件由tiannet根据前人经验完善而成!">');
140
document.write('<div align="center" id="divTiannetDateText" Author="tiannet" style="padding-top:2px;">');
141
document.write('<span id="tiannetYearHead" Author="tiannet" style="'+s_tiannet_font+'" '+
142
'onclick="spanYearCEvent();"> 年</span>');
143
document.write('<select id="selTianYear" style="'+s_tiannet_select+'" Author="tiannet" '+
144
' onChange="tiannetYear=this.value;tiannetSetDay(tiannetYear,tiannetMonth);document.all.tiannetYearHead.style.display=\'\';'+
145
'this.style.display=\'none\';">');
146
for(var i=tiannetYearSt;i <= tiannetYearEnd;i ++){
147
document.writeln('<option value="' + i + '">' + i + '年</option>');
148
}
149
document.write('</select>');
150
document.write('<span id="tiannetMonthHead" Author="tiannet" style="'+s_tiannet_font+'" '+
151
'onclick="spanMonthCEvent();"> 月</span>');
152
document.write('<select id="selTianMonth" style="'+s_tiannet_select2+'" Author="tiannet" '+
153
'onChange="tiannetMonth=this.value;tiannetSetDay(tiannetYear,tiannetMonth);document.all.tiannetMonthHead.style.display=\'\';'+
154
'this.style.display=\'none\';">');
155
for(var i=1;i <= 12;i ++){
156
document.writeln('<option value="' + i + '">' + i + '月</option>');
157
}
158
document.write('</select>');
159
//document.write('</div>');
160
//document.write('<div align="center" id="divTiannetTimeText" Author="tiannet">');
161
document.write('<span id="tiannetHourHead" Author="tiannet" style="'+s_tiannet_font+'display:none;" '+
162
'onclick="spanHourCEvent();"> 时</span>');
163
document.write('<select id="selTianHour" style="'+s_tiannet_select2+'display:none;" Author="tiannet" '+
164
' onChange="tiannetHour=this.value;tiannetWriteHead();document.all.tiannetHourHead.style.display=\'\';' +
165
'this.style.display=\'none\';">');
166
for(var i=0;i <= 23;i ++){
167
document.writeln('<option value="' + i + '">' + i + '时</option>');
168
}
169
document.write('</select>');
170
document.write('<span id="tiannetMinuteHead" Author="tiannet" style="'+s_tiannet_font+'display:none;" '+
171
'onclick="spanMinuteCEvent();"> 分</span>');
172
document.write('<select id="selTianMinute" style="'+s_tiannet_select2+'display:none;" Author="tiannet" '+
173
' onChange="tiannetMinute=this.value;tiannetWriteHead();document.all.tiannetMinuteHead.style.display=\'\';'+
174
'this.style.display=\'none\';">');
175
for(var i=0;i <= 59;i ++){
176
document.writeln('<option value="' + i + '">' + i + '分</option>');
177
}
178
document.write('</select>');
179
document.write('</div>');
180
//输出一条横线
181
document.write('<div style="'+s_tiannet_line+'"></div>');
182
document.write('<div align="center" id="divTiannetTurn" style="border:0;" Author="tiannet">');
183
document.write('<input type="button" style="'+s_tiannet_turn+'" value="▲" title="上一年" onClick="tiannetPrevYear();">');//◄►▲▼
184
document.write('<font style="'+s_tiannet_turn+'">年</font>');
185
document.write('<input type="button" style="'+s_tiannet_turn+'" value="▼" title="下一年" onClick="tiannetNextYear();"> ');
186
document.write('<input type="button" style="'+s_tiannet_turn+'" value="▲" title="上一月" onClick="tiannetPrevMonth();">');
187
document.write('<font style="'+s_tiannet_turn+'">月</font>');
188
document.write('<input type="button" style="'+s_tiannet_turn+'" value="▼" title="下一月" onClick="tiannetNextMonth();">');
189![](/Images/OutliningIndicators/None.gif)
190
document.write('</div>');
191
//输出一条横线
192
document.write('<div style="'+s_tiannet_line+'"></div>');
193
document.write('<table border=0 cellspacing=0 cellpadding=0 bgcolor=white onselectstart="return false">');
194
document.write(' <tr style="background-color:#2650A6;font-size:10pt;color:white;height:22px;" Author="tiannet">');
195
for(var i =0;i < weekName.length;i ++){
196
//输出星期
197
document.write('<td width="21" align="center" Author="tiannet">' + weekName[i] + '</td>');
198
}
199
document.write(' </tr>');
200
document.write('</table>');
201
//输出天的选择
202
document.write('<table border=0 cellspacing=1 cellpadding=0 bgcolor=white onselectstart="return false">');
203
var n = 0;
204
for (var i=0;i<5;i++) {
205
document.write (' <tr align=center id="trTiannetDay' + i + '" >');
206
for (var j=0;j<7;j++){
207
document.write('<td align="center" id="tdTiannetDay' + n + '" '+
208
'onClick="tiannetDay=this.innerText;tiannetSetValue(true);" '
209
+' style="' + s_tiannet_day + '"> </td>');
210
n ++;
211
}
212
document.write (' </tr>');
213
}
214
document.write (' <tr align=center id="trTiannetDay5" >');
215
document.write('<td align="center" id="tdTiannetDay35" onClick="tiannetDay=this.innerText;tiannetSetValue(true);" '
216
+' style="' + s_tiannet_day + '"> </td>');
217
document.write('<td align="center" id="tdTiannetDay36" onClick="tiannetDay=this.innerText;tiannetSetValue(true);" '
218
+' style="' + s_tiannet_day + '"> </td>');
219
document.write('<td align="right" colspan="5"><a href="javascript:tiannetClear();" style="' + s_tiannet_link + '">清空</a>'+
220
' <a href="javascript:tiannetHideControl();" style="' + s_tiannet_link + '">关闭</a>' +
221
' <a href="javascript:tiannetSetValue(true);" style="' + s_tiannet_link + '">确定</a> ' +
222
'</td>');
223
document.write (' </tr>');
224
document.write('</table>');
225
document.write('</div>');
226
//------------------ end 页面显示部分 ---------------------------//
227
//------------------ 显示日期时间的span标签响应事件 ---------------------------//
228
//单击年份span标签响应
229
function spanYearCEvent(){
230
hideElementsById(new Array("selTianYear","tiannetMonthHead"),false);
231
if(m_bolShowHour) hideElementsById(new Array("tiannetHourHead"),false);
232
if(m_bolShowMinute) hideElementsById(new Array("tiannetMinuteHead"),false);
233
hideElementsById(new Array("tiannetYearHead","selTianMonth","selTianHour","selTianMinute"),true);
234
}
235
//单击月份span标签响应
236
function spanMonthCEvent(){
237
hideElementsById(new Array("selTianMonth","tiannetYearHead"),false);
238
if(m_bolShowHour) hideElementsById(new Array("tiannetHourHead"),false);
239
if(m_bolShowMinute) hideElementsById(new Array("tiannetMinuteHead"),false);
240
hideElementsById(new Array("tiannetMonthHead","selTianYear","selTianHour","selTianMinute"),true);
241
}
242
//单击小时span标签响应
243
function spanHourCEvent(){
244
hideElementsById(new Array("tiannetYearHead","tiannetMonthHead"),false);
245
if(m_bolShowHour) hideElementsById(new Array("selTianHour"),false);
246
if(m_bolShowMinute) hideElementsById(new Array("tiannetMinuteHead"),false);
247
hideElementsById(new Array("tiannetHourHead","selTianYear","selTianMonth","selTianMinute"),true);
248
}
249
//单击分钟span标签响应
250
function spanMinuteCEvent(){
251
hideElementsById(new Array("tiannetYearHead","tiannetMonthHead"),false);
252
if(m_bolShowHour) hideElementsById(new Array("tiannetHourHead"),false);
253
if(m_bolShowMinute) hideElementsById(new Array("selTianMinute"),false);
254
hideElementsById(new Array("tiannetMinuteHead","selTianYear","selTianMonth","selTianHour"),true);
255
}
256
//根据标签id隐藏或显示标签
257
function hideElementsById(arrId,bolHide){
258
var strDisplay = "";
259
if(bolHide) strDisplay = "none";
260
for(var i = 0;i < arrId.length;i ++){
261
var obj = document.getElementById(arrId[i]);
262
obj.style.display = strDisplay;
263
}
264
}
265
//------------------ end 显示日期时间的span标签响应事件 ---------------------------//
266
//判断某年是否为闰年
267
function isPinYear(year){
268
var bolRet = false;
269
if (0==year%4&&((year%100!=0)||(year%400==0))) {
270
bolRet = true;
271
}
272
return bolRet;
273
}
274
//得到一个月的天数,闰年为29天
275
function getMonthCount(year,month){
276
var c=m_aMonHead[month-1];
277
if((month==2)&&isPinYear(year)) c++;
278
return c;
279
}
280
//重新设置当前的日。主要是防止在翻年、翻月时,当前日大于当月的最大日
281
function setRealDayCount() {
282
if( tiannetDay > getMonthCount(tiannetYear,tiannetMonth) ) {
283
//如果当前的日大于当月的最大日,则取当月最大日
284
tiannetDay = getMonthCount(tiannetYear,tiannetMonth);
285
}
286
}
287
//在个位数前加零
288
function addZero(value){
289
if(value < 10 ){
290
value = "0" + value;
291
}
292
return value;
293
}
294
//取出空格
295
function tiannetTrim(str) {
296
return str.replace(/(^\s*)|(\s*$)/g,"");
297
}
298
//为select创建一个option
299
function createOption(objSelect,value,text){
300
var option = document.createElement("OPTION");
301
option.value = value;
302
option.text = text;
303
objSelect.options.add(option);
304
}
305
//往前翻 Year
306
function tiannetPrevYear() {
307
if(tiannetYear > 999 && tiannetYear <10000){tiannetYear--;}
308
else{alert("年份超出范围(1000-9999)!");}
309
tiannetSetDay(tiannetYear,tiannetMonth);
310
//如果年份小于允许的最小年份,则创建对应的option
311
if( tiannetYear < tiannetYearSt ) {
312
tiannetYearSt = tiannetYear;
313
createOption(document.all.selTianYear,tiannetYear,tiannetYear + "年");
314
}
315
checkSelect(document.all.selTianYear,tiannetYear);
316
tiannetWriteHead();
317
}
318
//往后翻 Year
319
function tiannetNextYear() {
320
if(tiannetYear > 999 && tiannetYear <10000){tiannetYear++;}
321
else{alert("年份超出范围(1000-9999)!");return;}
322
tiannetSetDay(tiannetYear,tiannetMonth);
323
//如果年份超过允许的最大年份,则创建对应的option
324
if( tiannetYear > tiannetYearEnd ) {
325
tiannetYearEnd = tiannetYear;
326
createOption(document.all.selTianYear,tiannetYear,tiannetYear + "年");
327
}
328
checkSelect(document.all.selTianYear,tiannetYear);
329
tiannetWriteHead();
330
}
331
//选择今天
332
function tiannetToday() {
333
tiannetYear = tiannetDateNow.getFullYear();
334
tiannetMonth = tiannetDateNow.getMonth()+1;
335
tiannetDay = tiannetDateNow.getDate();
336
tiannetSetValue(true);
337
//tiannetSetDay(tiannetYear,tiannetMonth);
338
//selectObject();
339
}
340
//往前翻月份
341
function tiannetPrevMonth() {
342
if(tiannetMonth>1){tiannetMonth--}else{tiannetYear--;tiannetMonth=12;}
343
tiannetSetDay(tiannetYear,tiannetMonth);
344
checkSelect(document.all.selTianMonth,tiannetMonth);
345
tiannetWriteHead();
346
}
347
//往后翻月份
348
function tiannetNextMonth() {
349
if(tiannetMonth==12){tiannetYear++;tiannetMonth=1}else{tiannetMonth++}
350
tiannetSetDay(tiannetYear,tiannetMonth);
351
checkSelect(document.all.selTianMonth,tiannetMonth);
352
tiannetWriteHead();
353
}
354
//向span标签中写入年、月、时、分等数据
355
function tiannetWriteHead(){
356
document.all.tiannetYearHead.innerText = tiannetYear + "年";
357
document.all.tiannetMonthHead.innerText = tiannetMonth + "月";
358
if( m_bolShowHour ) document.all.tiannetHourHead.innerText = " "+tiannetHour + "时";
359
if( m_bolShowMinute ) document.all.tiannetMinuteHead.innerText = tiannetMinute + "分";
360
tiannetSetValue(false);//给文本框赋值,但不隐藏本控件
361
}
362
//设置显示天
363
function tiannetSetDay(yy,mm) {
364
365
setRealDayCount();//设置当月真实的日
366
tiannetWriteHead();
367
var strDateFont1 = "", strDateFont2 = "" //处理日期显示的风格
368
for (var i = 0; i < 37; i++){tiannetArrDay[i]=""}; //将显示框的内容全部清空
369
var day1 = 1;
370
var firstday = new Date(yy,mm-1,1).getDay(); //某月第一天的星期几
371
for (var i = firstday; day1 < getMonthCount(yy,mm)+1; i++){
372
tiannetArrDay[i]=day1;day1++;
373
}
374
//如果用于显示日的最后一行的第一个单元格的值为空,则隐藏整行。
375
//if(tiannetArrDay[35] == ""){
376
// document.all.trTiannetDay5.style.display = "none";
377
//} else {
378
// document.all.trTiannetDay5.style.display = "";
379
//}
380
for (var i = 0; i < 37; i++){
381
var da = eval("document.all.tdTiannetDay"+i) //书写新的一个月的日期星期排列
382
if (tiannetArrDay[i]!="") {
383
//判断是否为周末,如果是周末,则改为红色字体
384
if(i % 7 == 0 || (i+1) % 7 == 0){
385
strDateFont1 = "<font color=#f0000>"
386
strDateFont2 = "</font>"
387
} else {
388
strDateFont1 = "";
389
strDateFont2 = ""
390
}
391
da.innerHTML = strDateFont1 + tiannetArrDay[i] + strDateFont2;
392
//如果是当前选择的天,则改变颜色
393
if(tiannetArrDay[i] == tiannetDay ) {
394
da.style.backgroundColor = "#CCCCCC";
395
} else {
396
da.style.backgroundColor = "#EFEFEF";
397
}
398
da.style.cursor="hand"
399
} else {
400
da.innerHTML="";da.style.backgroundColor="";da.style.cursor="default"
401
}
402
}//end for
403
tiannetSetValue(false);//给文本框赋值,但不隐藏本控件
404
}//end function tiannetSetDay
405
//根据option的值选中option
406
function checkSelect(objSelect,selectValue) {
407
var count = parseInt(objSelect.length);
408
if( selectValue < 10 && selectValue.toString().length == 2) {
409
selectValue = selectValue.substring(1,2);
410
}
411
for(var i = 0;i < count;i ++){
412
if(objSelect.options[i].value == selectValue){
413
objSelect.selectedIndex = i;
414
break;
415
}
416
}//for
417
}
418
//选中年、月、时、分等下拉框
419
function selectObject(){
420
//如果年份小于允许的最小年份,则创建对应的option
421
if( tiannetYear < tiannetYearSt ) {
422
for( var i = tiannetYear;i < tiannetYearSt;i ++ ){
423
createOption(document.all.selTianYear,i,i + "年");
424
}
425
tiannetYearSt = tiannetYear;
426
}
427
//如果年份超过允许的最大年份,则创建对应的option
428
if( tiannetYear > tiannetYearEnd ) {
429
for( var i = tiannetYearEnd+1;i <= tiannetYear;i ++ ){
430
createOption(document.all.selTianYear,i,i + "年");
431
}
432
tiannetYearEnd = tiannetYear;
433
}
434
checkSelect(document.all.selTianYear,tiannetYear);
435
checkSelect(document.all.selTianMonth,tiannetMonth);
436
if( m_bolShowHour ) checkSelect(document.all.selTianHour,tiannetHour);
437
if( m_bolShowMinute ) checkSelect(document.all.selTianMinute,tiannetMinute);
438
}
439
//给接受日期时间的控件赋值
440
//参数bolHideControl - 是否隐藏控件
441
function tiannetSetValue(bolHideControl){
442
var value = "";
443
if( !tiannetDay || tiannetDay == "" ){
444
tiannetOutObject.value = value;
445
return;
446
}
447
var mm = tiannetMonth;
448
var day = tiannetDay;
449
if( mm < 10 && mm.toString().length == 1) mm = "0" + mm;
450
if( day < 10 && day.toString().length == 1) day = "0" + day;
451
value = tiannetYear + tiannetDateSplit + mm + tiannetDateSplit + day;
452
if( m_bolShowHour ){
453
var hour = tiannetHour;
454
if( hour < 10 && hour.toString().length == 1 ) hour = "0" + hour;
455
value += tiannetDateTimeSplit + hour;
456
}
457
if( m_bolShowMinute ){
458
var minute = tiannetMinute;
459
if( minute < 10 && minute.toString().length == 1 ) minute = "0" + minute;
460
value += tiannetTimeSplit + minute;
461
}
462
tiannetOutObject.value = value;
463
//document.all.divTiannetDate.style.display = "none";
464
if( bolHideControl ) {
465
tiannetHideControl();
466
}
467
}
468
//是否显示时间
469
function showTime(){
470
if( !m_bolShowHour && m_bolShowMinute){
471
alert("如果要选择分钟,则必须可以选择小时!");
472
return;
473
}
474
hideElementsById(new Array("tiannetHourHead","selTianHour","tiannetMinuteHead","selTianMinute"),true);
475
if( m_bolShowHour ){
476
//显示小时
477
hideElementsById(new Array("tiannetHourHead"),false);
478
}
479
if( m_bolShowMinute ){
480
//显示分钟
481
hideElementsById(new Array("tiannetMinuteHead"),false);
482
}
483
}
484
//弹出显示日历选择控件,以让用户选择
485
function tiannetPopCalendar(){
486
//隐藏下拉框,显示相对应的head
487
hideElementsById(new Array("selTianYear","selTianMonth","selTianHour","selTianMinute"),true);
488
hideElementsById(new Array("tiannetYearHead","tiannetMonthHead","tiannetHourHead","tiannetMinuteHead"),false);
489
tiannetSetDay(tiannetYear,tiannetMonth);
490
tiannetWriteHead();
491
showTime();
492
var dads = document.all.divTiannetDate.style;
493
var iX, iY;
494
495
var h = document.all.divTiannetDate.offsetHeight;
496
var w = document.all.divTiannetDate.offsetWidth;
497
//计算left
498
if (window.event.x + h > document.body.offsetWidth - 10 )
499
iX = window.event.x - h - 5 ;
500
else
501
iX = window.event.x + 5;
502
if (iX <0)
503
iX=0;
504
//计算top
505
iY = window.event.y;
506
if (window.event.y + w > document.body.offsetHeight - 10 )
507
iY = document.body.scrollTop + document.body.offsetHeight - w - 5 ;
508
else
509
iY = document.body.scrollTop +window.event.y + 5;
510
if (iY <0)
511
iY=0;
512
dads.left = iX;
513
dads.top = iY;
514
tiannetShowControl();
515
selectObject();
516
}
517
//隐藏日历控件(同时显示被强制隐藏的标签)
518
function tiannetHideControl(){
519
document.all.divTiannetDate.style.display = "none";
520
tiannetShowObject();
521
arrTiannetHide = new Array();//将被隐藏的标签对象清空
522
}
523
//显示日历控件(同时隐藏会遮挡的标签)
524
function tiannetShowControl(){
525
document.all.divTiannetDate.style.display = "";
526
tiannetHideObject("SELECT");
527
tiannetHideObject("OBJECT");
528
}
529
//根据标签名称隐藏标签。如会遮住控件的select,object
530
function tiannetHideObject(strTagName) {
531
532
x = document.all.divTiannetDate.offsetLeft;
533
y = document.all.divTiannetDate.offsetTop;
534
h = document.all.divTiannetDate.offsetHeight;
535
w = document.all.divTiannetDate.offsetWidth;
536
537
for (var i = 0; i < document.all.tags(strTagName).length; i++)
538
{
539
540
var obj = document.all.tags(strTagName)[i];
541
if (! obj || ! obj.offsetParent)
542
continue;
543
// 获取元素对于BODY标记的相对坐标
544
var objLeft = obj.offsetLeft;
545
var objTop = obj.offsetTop;
546
var objHeight = obj.offsetHeight;
547
var objWidth = obj.offsetWidth;
548
var objParent = obj.offsetParent;
549
550
while (objParent.tagName.toUpperCase() != "BODY"){
551
objLeft += objParent.offsetLeft;
552
objTop += objParent.offsetTop;
553
objParent = objParent.offsetParent;
554
}
555
//alert("控件左端:" + x + "select左端" + (objLeft + objWidth) + "控件底部:" + (y+h) + "select高:" + objTop);
556
557
var bolHide = true;
558
if( obj.style.display == "none" || obj.style.visibility == "hidden" || obj.getAttribute("Author") == "tiannet" ){
559
//如果标签本身就是隐藏的,则不需要再隐藏。如果是控件中的下拉框,也不用隐藏。
560
bolHide = false;
561
}
562
if( ( (objLeft + objWidth) > x && (y + h + 20) > objTop && (objTop+objHeight) > y && objLeft < (x+w) ) && bolHide ){
563
//arrTiannetHide.push(obj);//记录被隐藏的标签对象
564
arrTiannetHide[arrTiannetHide.length] = obj;
565
obj.style.visibility = "hidden";
566
}
567
568
569
}
570
}
571
//显示被隐藏的标签
572
function tiannetShowObject(){
573
for(var i = 0;i < arrTiannetHide.length;i ++){
574
//alert(arrTiannetHide[i]);
575
arrTiannetHide[i].style.visibility = "";
576
}
577
}
578
//初始化日期。
579
function tiannetInitDate(strDate){
580
var arr = strDate.split(tiannetDateSplit);
581
tiannetYear = arr[0];
582
tiannetMonth = arr[1];
583
tiannetDay = arr[2];
584
}
585
//清空
586
function tiannetClear(){
587
tiannetOutObject.value = "";
588
tiannetHideControl();
589
}
590
//任意点击时关闭该控件
591
function document.onclick(){
592
with(window.event.srcElement){
593
if (tagName != "INPUT" && getAttribute("Author") != "tiannet")
594
tiannetHideControl();
595
}
596
}
597
//按ESC键关闭该控件
598
function document.onkeypress(){
599
if( event.keyCode == 27 ){
600
tiannetHideControl();
601
}
602
}
603![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
2
![](/Images/OutliningIndicators/InBlock.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/InBlock.gif)
5
![](/Images/OutliningIndicators/InBlock.gif)
6
![](/Images/OutliningIndicators/InBlock.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
17
![](/Images/OutliningIndicators/None.gif)
18
![](/Images/OutliningIndicators/None.gif)
19
![](/Images/OutliningIndicators/None.gif)
20
![](/Images/OutliningIndicators/None.gif)
21
![](/Images/OutliningIndicators/None.gif)
22
![](/Images/OutliningIndicators/None.gif)
23
![](/Images/OutliningIndicators/None.gif)
24
![](/Images/OutliningIndicators/None.gif)
25
![](/Images/OutliningIndicators/None.gif)
26
![](/Images/OutliningIndicators/None.gif)
27
![](/Images/OutliningIndicators/None.gif)
28
![](/Images/OutliningIndicators/None.gif)
29
![](/Images/OutliningIndicators/None.gif)
30
![](/Images/OutliningIndicators/None.gif)
31
![](/Images/OutliningIndicators/None.gif)
32
![](/Images/OutliningIndicators/None.gif)
33
![](/Images/OutliningIndicators/None.gif)
34
![](/Images/OutliningIndicators/None.gif)
35
![](/Images/OutliningIndicators/None.gif)
36
![](/Images/OutliningIndicators/None.gif)
37
![](/Images/OutliningIndicators/None.gif)
38
![](/Images/OutliningIndicators/None.gif)
39
![](/Images/OutliningIndicators/None.gif)
40
![](/Images/OutliningIndicators/None.gif)
41
![](/Images/OutliningIndicators/None.gif)
42
![](/Images/OutliningIndicators/None.gif)
43
![](/Images/OutliningIndicators/None.gif)
44
![](/Images/OutliningIndicators/None.gif)
45
![](/Images/OutliningIndicators/None.gif)
46
![](/Images/OutliningIndicators/None.gif)
47
![](/Images/OutliningIndicators/None.gif)
48
![](/Images/OutliningIndicators/None.gif)
49
![](/Images/OutliningIndicators/None.gif)
50
![](/Images/OutliningIndicators/None.gif)
51
![](/Images/OutliningIndicators/None.gif)
52
![](/Images/OutliningIndicators/None.gif)
53
![](/Images/OutliningIndicators/None.gif)
54
![](/Images/OutliningIndicators/None.gif)
55
![](/Images/OutliningIndicators/None.gif)
56
![](/Images/OutliningIndicators/None.gif)
57
![](/Images/OutliningIndicators/None.gif)
58
![](/Images/OutliningIndicators/None.gif)
59
![](/Images/OutliningIndicators/None.gif)
60
![](/Images/OutliningIndicators/None.gif)
61
![](/Images/OutliningIndicators/None.gif)
62
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/InBlock.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
67
![](/Images/OutliningIndicators/InBlock.gif)
68
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
69
![](/Images/OutliningIndicators/InBlock.gif)
70
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
71
![](/Images/OutliningIndicators/None.gif)
72
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/InBlock.gif)
77
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/InBlock.gif)
80
![](/Images/OutliningIndicators/InBlock.gif)
81
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
82
![](/Images/OutliningIndicators/InBlock.gif)
83
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
84
![](/Images/OutliningIndicators/None.gif)
85
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
86
![](/Images/OutliningIndicators/InBlock.gif)
87
![](/Images/OutliningIndicators/InBlock.gif)
88
![](/Images/OutliningIndicators/InBlock.gif)
89
![](/Images/OutliningIndicators/InBlock.gif)
90
![](/Images/OutliningIndicators/InBlock.gif)
91
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
92
![](/Images/OutliningIndicators/InBlock.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/InBlock.gif)
95
![](/Images/OutliningIndicators/InBlock.gif)
96
![](/Images/OutliningIndicators/InBlock.gif)
97
![](/Images/OutliningIndicators/InBlock.gif)
98
![](/Images/OutliningIndicators/InBlock.gif)
99
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
102
![](/Images/OutliningIndicators/None.gif)
103
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
104
![](/Images/OutliningIndicators/InBlock.gif)
105
![](/Images/OutliningIndicators/InBlock.gif)
106
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
107
![](/Images/OutliningIndicators/None.gif)
108
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
109
![](/Images/OutliningIndicators/InBlock.gif)
110
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
111
![](/Images/OutliningIndicators/None.gif)
112
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
113
![](/Images/OutliningIndicators/InBlock.gif)
114
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
115
![](/Images/OutliningIndicators/None.gif)
116
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
117
![](/Images/OutliningIndicators/InBlock.gif)
118
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
119
![](/Images/OutliningIndicators/None.gif)
120
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
121
![](/Images/OutliningIndicators/InBlock.gif)
122
![](/Images/OutliningIndicators/InBlock.gif)
123
![](/Images/OutliningIndicators/InBlock.gif)
124
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
125
![](/Images/OutliningIndicators/None.gif)
126
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
127
![](/Images/OutliningIndicators/InBlock.gif)
128
![](/Images/OutliningIndicators/InBlock.gif)
129
![](/Images/OutliningIndicators/InBlock.gif)
130
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
131
![](/Images/OutliningIndicators/None.gif)
132
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
133
![](/Images/OutliningIndicators/InBlock.gif)
134
![](/Images/OutliningIndicators/InBlock.gif)
135
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
136
![](/Images/OutliningIndicators/None.gif)
137
![](/Images/OutliningIndicators/None.gif)
138
![](/Images/OutliningIndicators/None.gif)
139
![](/Images/OutliningIndicators/None.gif)
140
![](/Images/OutliningIndicators/None.gif)
141
![](/Images/OutliningIndicators/None.gif)
142
![](/Images/OutliningIndicators/None.gif)
143
![](/Images/OutliningIndicators/None.gif)
144
![](/Images/OutliningIndicators/None.gif)
145
![](/Images/OutliningIndicators/None.gif)
146
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
147
![](/Images/OutliningIndicators/InBlock.gif)
148
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
149
![](/Images/OutliningIndicators/None.gif)
150
![](/Images/OutliningIndicators/None.gif)
151
![](/Images/OutliningIndicators/None.gif)
152
![](/Images/OutliningIndicators/None.gif)
153
![](/Images/OutliningIndicators/None.gif)
154
![](/Images/OutliningIndicators/None.gif)
155
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
156
![](/Images/OutliningIndicators/InBlock.gif)
157
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
158
![](/Images/OutliningIndicators/None.gif)
159
![](/Images/OutliningIndicators/None.gif)
160
![](/Images/OutliningIndicators/None.gif)
161
![](/Images/OutliningIndicators/None.gif)
162
![](/Images/OutliningIndicators/None.gif)
163
![](/Images/OutliningIndicators/None.gif)
164
![](/Images/OutliningIndicators/None.gif)
165
![](/Images/OutliningIndicators/None.gif)
166
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
167
![](/Images/OutliningIndicators/InBlock.gif)
168
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
169
![](/Images/OutliningIndicators/None.gif)
170
![](/Images/OutliningIndicators/None.gif)
171
![](/Images/OutliningIndicators/None.gif)
172
![](/Images/OutliningIndicators/None.gif)
173
![](/Images/OutliningIndicators/None.gif)
174
![](/Images/OutliningIndicators/None.gif)
175
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
176
![](/Images/OutliningIndicators/InBlock.gif)
177
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
178
![](/Images/OutliningIndicators/None.gif)
179
![](/Images/OutliningIndicators/None.gif)
180
![](/Images/OutliningIndicators/None.gif)
181
![](/Images/OutliningIndicators/None.gif)
182
![](/Images/OutliningIndicators/None.gif)
183
![](/Images/OutliningIndicators/None.gif)
184
![](/Images/OutliningIndicators/None.gif)
185
![](/Images/OutliningIndicators/None.gif)
186
![](/Images/OutliningIndicators/None.gif)
187
![](/Images/OutliningIndicators/None.gif)
188
![](/Images/OutliningIndicators/None.gif)
189
![](/Images/OutliningIndicators/None.gif)
190
![](/Images/OutliningIndicators/None.gif)
191
![](/Images/OutliningIndicators/None.gif)
192
![](/Images/OutliningIndicators/None.gif)
193
![](/Images/OutliningIndicators/None.gif)
194
![](/Images/OutliningIndicators/None.gif)
195
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
196
![](/Images/OutliningIndicators/InBlock.gif)
197
![](/Images/OutliningIndicators/InBlock.gif)
198
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
199
![](/Images/OutliningIndicators/None.gif)
200
![](/Images/OutliningIndicators/None.gif)
201
![](/Images/OutliningIndicators/None.gif)
202
![](/Images/OutliningIndicators/None.gif)
203
![](/Images/OutliningIndicators/None.gif)
204
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
205
![](/Images/OutliningIndicators/InBlock.gif)
206
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
207
![](/Images/OutliningIndicators/InBlock.gif)
208
![](/Images/OutliningIndicators/InBlock.gif)
209
![](/Images/OutliningIndicators/InBlock.gif)
210
![](/Images/OutliningIndicators/InBlock.gif)
211
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
212
![](/Images/OutliningIndicators/InBlock.gif)
213
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
214
![](/Images/OutliningIndicators/None.gif)
215
![](/Images/OutliningIndicators/None.gif)
216
![](/Images/OutliningIndicators/None.gif)
217
![](/Images/OutliningIndicators/None.gif)
218
![](/Images/OutliningIndicators/None.gif)
219
![](/Images/OutliningIndicators/None.gif)
220
![](/Images/OutliningIndicators/None.gif)
221
![](/Images/OutliningIndicators/None.gif)
222
![](/Images/OutliningIndicators/None.gif)
223
![](/Images/OutliningIndicators/None.gif)
224
![](/Images/OutliningIndicators/None.gif)
225
![](/Images/OutliningIndicators/None.gif)
226
![](/Images/OutliningIndicators/None.gif)
227
![](/Images/OutliningIndicators/None.gif)
228
![](/Images/OutliningIndicators/None.gif)
229
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
230
![](/Images/OutliningIndicators/InBlock.gif)
231
![](/Images/OutliningIndicators/InBlock.gif)
232
![](/Images/OutliningIndicators/InBlock.gif)
233
![](/Images/OutliningIndicators/InBlock.gif)
234
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
235
![](/Images/OutliningIndicators/None.gif)
236
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
237
![](/Images/OutliningIndicators/InBlock.gif)
238
![](/Images/OutliningIndicators/InBlock.gif)
239
![](/Images/OutliningIndicators/InBlock.gif)
240
![](/Images/OutliningIndicators/InBlock.gif)
241
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
242
![](/Images/OutliningIndicators/None.gif)
243
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
244
![](/Images/OutliningIndicators/InBlock.gif)
245
![](/Images/OutliningIndicators/InBlock.gif)
246
![](/Images/OutliningIndicators/InBlock.gif)
247
![](/Images/OutliningIndicators/InBlock.gif)
248
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
249
![](/Images/OutliningIndicators/None.gif)
250
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
251
![](/Images/OutliningIndicators/InBlock.gif)
252
![](/Images/OutliningIndicators/InBlock.gif)
253
![](/Images/OutliningIndicators/InBlock.gif)
254
![](/Images/OutliningIndicators/InBlock.gif)
255
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
256
![](/Images/OutliningIndicators/None.gif)
257
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
258
![](/Images/OutliningIndicators/InBlock.gif)
259
![](/Images/OutliningIndicators/InBlock.gif)
260
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
261
![](/Images/OutliningIndicators/InBlock.gif)
262
![](/Images/OutliningIndicators/InBlock.gif)
263
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
264
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
265
![](/Images/OutliningIndicators/None.gif)
266
![](/Images/OutliningIndicators/None.gif)
267
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
268
![](/Images/OutliningIndicators/InBlock.gif)
269
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
270
![](/Images/OutliningIndicators/InBlock.gif)
271
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
272
![](/Images/OutliningIndicators/InBlock.gif)
273
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
274
![](/Images/OutliningIndicators/None.gif)
275
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
276
![](/Images/OutliningIndicators/InBlock.gif)
277
![](/Images/OutliningIndicators/InBlock.gif)
278
![](/Images/OutliningIndicators/InBlock.gif)
279
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
280
![](/Images/OutliningIndicators/None.gif)
281
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
282
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
283
![](/Images/OutliningIndicators/InBlock.gif)
284
![](/Images/OutliningIndicators/InBlock.gif)
285
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
286
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
287
![](/Images/OutliningIndicators/None.gif)
288
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
289
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
290
![](/Images/OutliningIndicators/InBlock.gif)
291
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
292
![](/Images/OutliningIndicators/InBlock.gif)
293
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
294
![](/Images/OutliningIndicators/None.gif)
295
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
296
![](/Images/OutliningIndicators/InBlock.gif)
297
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
298
![](/Images/OutliningIndicators/None.gif)
299
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
300
![](/Images/OutliningIndicators/InBlock.gif)
301
![](/Images/OutliningIndicators/InBlock.gif)
302
![](/Images/OutliningIndicators/InBlock.gif)
303
![](/Images/OutliningIndicators/InBlock.gif)
304
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
305
![](/Images/OutliningIndicators/None.gif)
306
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
307
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
308
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
309
![](/Images/OutliningIndicators/InBlock.gif)
310
![](/Images/OutliningIndicators/InBlock.gif)
311
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
312
![](/Images/OutliningIndicators/InBlock.gif)
313
![](/Images/OutliningIndicators/InBlock.gif)
314
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
315
![](/Images/OutliningIndicators/InBlock.gif)
316
![](/Images/OutliningIndicators/InBlock.gif)
317
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
318
![](/Images/OutliningIndicators/None.gif)
319
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
320
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
321
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
322
![](/Images/OutliningIndicators/InBlock.gif)
323
![](/Images/OutliningIndicators/InBlock.gif)
324
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
325
![](/Images/OutliningIndicators/InBlock.gif)
326
![](/Images/OutliningIndicators/InBlock.gif)
327
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
328
![](/Images/OutliningIndicators/InBlock.gif)
329
![](/Images/OutliningIndicators/InBlock.gif)
330
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
331
![](/Images/OutliningIndicators/None.gif)
332
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
333
![](/Images/OutliningIndicators/InBlock.gif)
334
![](/Images/OutliningIndicators/InBlock.gif)
335
![](/Images/OutliningIndicators/InBlock.gif)
336
![](/Images/OutliningIndicators/InBlock.gif)
337
![](/Images/OutliningIndicators/InBlock.gif)
338
![](/Images/OutliningIndicators/InBlock.gif)
339
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
340
![](/Images/OutliningIndicators/None.gif)
341
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
342
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
343
![](/Images/OutliningIndicators/InBlock.gif)
344
![](/Images/OutliningIndicators/InBlock.gif)
345
![](/Images/OutliningIndicators/InBlock.gif)
346
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
347
![](/Images/OutliningIndicators/None.gif)
348
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
349
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
350
![](/Images/OutliningIndicators/InBlock.gif)
351
![](/Images/OutliningIndicators/InBlock.gif)
352
![](/Images/OutliningIndicators/InBlock.gif)
353
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
354
![](/Images/OutliningIndicators/None.gif)
355
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
356
![](/Images/OutliningIndicators/InBlock.gif)
357
![](/Images/OutliningIndicators/InBlock.gif)
358
![](/Images/OutliningIndicators/InBlock.gif)
359
![](/Images/OutliningIndicators/InBlock.gif)
360
![](/Images/OutliningIndicators/InBlock.gif)
361
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
362
![](/Images/OutliningIndicators/None.gif)
363
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
364
![](/Images/OutliningIndicators/InBlock.gif)
365
![](/Images/OutliningIndicators/InBlock.gif)
366
![](/Images/OutliningIndicators/InBlock.gif)
367
![](/Images/OutliningIndicators/InBlock.gif)
368
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
369
![](/Images/OutliningIndicators/InBlock.gif)
370
![](/Images/OutliningIndicators/InBlock.gif)
371
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
372
![](/Images/OutliningIndicators/InBlock.gif)
373
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
374
![](/Images/OutliningIndicators/InBlock.gif)
375
![](/Images/OutliningIndicators/InBlock.gif)
376
![](/Images/OutliningIndicators/InBlock.gif)
377
![](/Images/OutliningIndicators/InBlock.gif)
378
![](/Images/OutliningIndicators/InBlock.gif)
379
![](/Images/OutliningIndicators/InBlock.gif)
380
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
381
![](/Images/OutliningIndicators/InBlock.gif)
382
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
383
![](/Images/OutliningIndicators/InBlock.gif)
384
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
385
![](/Images/OutliningIndicators/InBlock.gif)
386
![](/Images/OutliningIndicators/InBlock.gif)
387
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
388
![](/Images/OutliningIndicators/InBlock.gif)
389
![](/Images/OutliningIndicators/InBlock.gif)
390
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
391
![](/Images/OutliningIndicators/InBlock.gif)
392
![](/Images/OutliningIndicators/InBlock.gif)
393
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
394
![](/Images/OutliningIndicators/InBlock.gif)
395
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
396
![](/Images/OutliningIndicators/InBlock.gif)
397
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
398
![](/Images/OutliningIndicators/InBlock.gif)
399
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
400
![](/Images/OutliningIndicators/InBlock.gif)
401
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
402
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
403
![](/Images/OutliningIndicators/InBlock.gif)
404
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
405
![](/Images/OutliningIndicators/None.gif)
406
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
407
![](/Images/OutliningIndicators/InBlock.gif)
408
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
409
![](/Images/OutliningIndicators/InBlock.gif)
410
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
411
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
412
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
413
![](/Images/OutliningIndicators/InBlock.gif)
414
![](/Images/OutliningIndicators/InBlock.gif)
415
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
416
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
417
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
418
![](/Images/OutliningIndicators/None.gif)
419
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
420
![](/Images/OutliningIndicators/InBlock.gif)
421
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
422
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
423
![](/Images/OutliningIndicators/InBlock.gif)
424
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
425
![](/Images/OutliningIndicators/InBlock.gif)
426
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
427
![](/Images/OutliningIndicators/InBlock.gif)
428
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
429
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
430
![](/Images/OutliningIndicators/InBlock.gif)
431
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
432
![](/Images/OutliningIndicators/InBlock.gif)
433
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
434
![](/Images/OutliningIndicators/InBlock.gif)
435
![](/Images/OutliningIndicators/InBlock.gif)
436
![](/Images/OutliningIndicators/InBlock.gif)
437
![](/Images/OutliningIndicators/InBlock.gif)
438
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
439
![](/Images/OutliningIndicators/None.gif)
440
![](/Images/OutliningIndicators/None.gif)
441
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
442
![](/Images/OutliningIndicators/InBlock.gif)
443
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
444
![](/Images/OutliningIndicators/InBlock.gif)
445
![](/Images/OutliningIndicators/InBlock.gif)
446
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
447
![](/Images/OutliningIndicators/InBlock.gif)
448
![](/Images/OutliningIndicators/InBlock.gif)
449
![](/Images/OutliningIndicators/InBlock.gif)
450
![](/Images/OutliningIndicators/InBlock.gif)
451
![](/Images/OutliningIndicators/InBlock.gif)
452
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
453
![](/Images/OutliningIndicators/InBlock.gif)
454
![](/Images/OutliningIndicators/InBlock.gif)
455
![](/Images/OutliningIndicators/InBlock.gif)
456
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
457
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
458
![](/Images/OutliningIndicators/InBlock.gif)
459
![](/Images/OutliningIndicators/InBlock.gif)
460
![](/Images/OutliningIndicators/InBlock.gif)
461
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
462
![](/Images/OutliningIndicators/InBlock.gif)
463
![](/Images/OutliningIndicators/InBlock.gif)
464
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
465
![](/Images/OutliningIndicators/InBlock.gif)
466
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
467
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
468
![](/Images/OutliningIndicators/None.gif)
469
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
470
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
471
![](/Images/OutliningIndicators/InBlock.gif)
472
![](/Images/OutliningIndicators/InBlock.gif)
473
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
474
![](/Images/OutliningIndicators/InBlock.gif)
475
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
476
![](/Images/OutliningIndicators/InBlock.gif)
477
![](/Images/OutliningIndicators/InBlock.gif)
478
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
479
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
480
![](/Images/OutliningIndicators/InBlock.gif)
481
![](/Images/OutliningIndicators/InBlock.gif)
482
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
483
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
484
![](/Images/OutliningIndicators/None.gif)
485
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
486
![](/Images/OutliningIndicators/InBlock.gif)
487
![](/Images/OutliningIndicators/InBlock.gif)
488
![](/Images/OutliningIndicators/InBlock.gif)
489
![](/Images/OutliningIndicators/InBlock.gif)
490
![](/Images/OutliningIndicators/InBlock.gif)
491
![](/Images/OutliningIndicators/InBlock.gif)
492
![](/Images/OutliningIndicators/InBlock.gif)
493
![](/Images/OutliningIndicators/InBlock.gif)
494
![](/Images/OutliningIndicators/InBlock.gif)
495
![](/Images/OutliningIndicators/InBlock.gif)
496
![](/Images/OutliningIndicators/InBlock.gif)
497
![](/Images/OutliningIndicators/InBlock.gif)
498
![](/Images/OutliningIndicators/InBlock.gif)
499
![](/Images/OutliningIndicators/InBlock.gif)
500
![](/Images/OutliningIndicators/InBlock.gif)
501
![](/Images/OutliningIndicators/InBlock.gif)
502
![](/Images/OutliningIndicators/InBlock.gif)
503
![](/Images/OutliningIndicators/InBlock.gif)
504
![](/Images/OutliningIndicators/InBlock.gif)
505
![](/Images/OutliningIndicators/InBlock.gif)
506
![](/Images/OutliningIndicators/InBlock.gif)
507
![](/Images/OutliningIndicators/InBlock.gif)
508
![](/Images/OutliningIndicators/InBlock.gif)
509
![](/Images/OutliningIndicators/InBlock.gif)
510
![](/Images/OutliningIndicators/InBlock.gif)
511
![](/Images/OutliningIndicators/InBlock.gif)
512
![](/Images/OutliningIndicators/InBlock.gif)
513
![](/Images/OutliningIndicators/InBlock.gif)
514
![](/Images/OutliningIndicators/InBlock.gif)
515
![](/Images/OutliningIndicators/InBlock.gif)
516
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
517
![](/Images/OutliningIndicators/None.gif)
518
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
519
![](/Images/OutliningIndicators/InBlock.gif)
520
![](/Images/OutliningIndicators/InBlock.gif)
521
![](/Images/OutliningIndicators/InBlock.gif)
522
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
523
![](/Images/OutliningIndicators/None.gif)
524
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
525
![](/Images/OutliningIndicators/InBlock.gif)
526
![](/Images/OutliningIndicators/InBlock.gif)
527
![](/Images/OutliningIndicators/InBlock.gif)
528
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
529
![](/Images/OutliningIndicators/None.gif)
530
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
531
![](/Images/OutliningIndicators/InBlock.gif)
532
![](/Images/OutliningIndicators/InBlock.gif)
533
![](/Images/OutliningIndicators/InBlock.gif)
534
![](/Images/OutliningIndicators/InBlock.gif)
535
![](/Images/OutliningIndicators/InBlock.gif)
536
![](/Images/OutliningIndicators/InBlock.gif)
537
![](/Images/OutliningIndicators/InBlock.gif)
538
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
539
![](/Images/OutliningIndicators/InBlock.gif)
540
![](/Images/OutliningIndicators/InBlock.gif)
541
![](/Images/OutliningIndicators/InBlock.gif)
542
![](/Images/OutliningIndicators/InBlock.gif)
543
![](/Images/OutliningIndicators/InBlock.gif)
544
![](/Images/OutliningIndicators/InBlock.gif)
545
![](/Images/OutliningIndicators/InBlock.gif)
546
![](/Images/OutliningIndicators/InBlock.gif)
547
![](/Images/OutliningIndicators/InBlock.gif)
548
![](/Images/OutliningIndicators/InBlock.gif)
549
![](/Images/OutliningIndicators/InBlock.gif)
550
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
551
![](/Images/OutliningIndicators/InBlock.gif)
552
![](/Images/OutliningIndicators/InBlock.gif)
553
![](/Images/OutliningIndicators/InBlock.gif)
554
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
555
![](/Images/OutliningIndicators/InBlock.gif)
556
![](/Images/OutliningIndicators/InBlock.gif)
557
![](/Images/OutliningIndicators/InBlock.gif)
558
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
559
![](/Images/OutliningIndicators/InBlock.gif)
560
![](/Images/OutliningIndicators/InBlock.gif)
561
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
562
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
563
![](/Images/OutliningIndicators/InBlock.gif)
564
![](/Images/OutliningIndicators/InBlock.gif)
565
![](/Images/OutliningIndicators/InBlock.gif)
566
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
567
![](/Images/OutliningIndicators/InBlock.gif)
568
![](/Images/OutliningIndicators/InBlock.gif)
569
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
570
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
571
![](/Images/OutliningIndicators/None.gif)
572
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
573
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
574
![](/Images/OutliningIndicators/InBlock.gif)
575
![](/Images/OutliningIndicators/InBlock.gif)
576
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
577
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
578
![](/Images/OutliningIndicators/None.gif)
579
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
580
![](/Images/OutliningIndicators/InBlock.gif)
581
![](/Images/OutliningIndicators/InBlock.gif)
582
![](/Images/OutliningIndicators/InBlock.gif)
583
![](/Images/OutliningIndicators/InBlock.gif)
584
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
585
![](/Images/OutliningIndicators/None.gif)
586
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
587
![](/Images/OutliningIndicators/InBlock.gif)
588
![](/Images/OutliningIndicators/InBlock.gif)
589
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
590
![](/Images/OutliningIndicators/None.gif)
591
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
592
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
593
![](/Images/OutliningIndicators/InBlock.gif)
594
![](/Images/OutliningIndicators/InBlock.gif)
595
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
596
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
597
![](/Images/OutliningIndicators/None.gif)
598
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
599
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
600
![](/Images/OutliningIndicators/InBlock.gif)
601
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
602
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
603
![](/Images/OutliningIndicators/None.gif)