chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore - 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
/* Andrew Urquhart : Client-Side Request Object for javascript : http://andrewu.co.uk/tools/request/
|
||||
COPYRIGHT:You are free to use this script for any use you wish if this comment is left intact. Feel free to enhance the script and send me the updated version. Please don't redistribute. This script is provided as is,with no warranty of any kind. Use it at your own risk. Copyright Andrew R Urquhart; VERSION:#1.3 2005-05-11 17:52 UTC*/
|
||||
function RObj(ea){var LS="";var QS=new Object();var un="undefined";var x=null;var f="function";var n="number";var r="string";var e1="ERROR:Index out of range in\r\nRequest.QueryString";var e2="ERROR:Wrong number of arguments or invalid property assignment\r\nRequest.QueryString";var e3="ERROR:Object doesn't support this property or method\r\nRequest.QueryString.Key";function Err(arg){if(ea){alert("Request Object:\r\n"+arg)}};function URID(t){var d="";if(t){for(var i=0;i<t.length;++i){var c=t.charAt(i);d+=(c=="+"?" ":c)}};return unescape(d)};function OL(o){var l=0;for(var i in o){if(typeof o[i]!=f){l++}};return l};function AK(key){var auk=true;for(var u in QS){if(typeof QS[u]!=f&&u.toString().toLowerCase()==key.toLowerCase()){auk=false;return u}}if(auk){QS[key]=new Object();QS[key].toString=function(){return TS(QS[key])};QS[key].Count=function(){return OL(QS[key])};QS[key].Count.toString=function(){return OL(QS[key]).toString()};QS[key].Item=function(e){if(typeof e==un){return QS[key]}else {if(typeof e==n){var a=QS[key][Math.ceil(e)];if(typeof a==un){Err(e1+"(\""+key+"\").Item("+e+")")};return a}else {Err("ERROR:Expecting numeric input in\r\nRequest.QueryString(\""+key+"\").Item(\""+e+"\")")}}};QS[key].Item.toString=function(e){if(typeof e==un){return QS[key].toString()}else {var a=QS[key][e];if(typeof a==un){Err(e1+"(\""+key+"\").Item("+e+")")};return a.toString()}};QS[key].Key=function(e){var t=typeof e;if(t==r){var a=QS[key][e];return(typeof a!=un&&a&&a.toString()?e:"")}else {Err(e3+"("+(e?e:"")+")")}};QS[key].Key.toString=function(){return x}};return key};function AVTK(key,val){if(key!=""){var key=AK(key);var l=OL(QS[key]);QS[key][l+1]=val}};function TS(o){var s="";for(var i in o){var ty=typeof o[i];if(ty=="object"){s+=TS(o[i])}else if(ty!=f){s+=o[i]+", "}};var l=s.length;if(l>1){return(s.substring(0,l-2))}return(s==""?x:s)};function KM(k,o){var k=k.toLowerCase();for(var u in o){if(typeof o[u]!=f&&u.toString().toLowerCase()==k){return u}}}if(window.location&&window.location.search){LS=window.location.search;var l=LS.length;if(l>0){LS=LS.substring(1,l);var preAmpAt=0;var ampAt=-1;var eqAt=-1;var k=0;var skip=false;for(var i=0;i<l;++i){var c=LS.charAt(i);if(LS.charAt(preAmpAt)=="="||(preAmpAt==0&&i==0&&c=="=")){skip=true}if(c=="="&&eqAt==-1&&!skip){eqAt=i}if(c=="&"&&At==-1){if(eqAt!=-1){ampAt=i}if(skip){preAmpAt=i+1};skip=false}if(ampAt>eqAt){AVTK(URID(LS.substring(preAmpAt,eqAt)),URID(LS.substring(eqAt+1,ampAt)));preAmpAt=ampAt+1;eqAt=ampAt=-1;++k}}if(LS.charAt(preAmpAt)!="="&&(preAmpAt!=0||i!=0||c!="=")){if(preAmpAt!=l){if(eqAt!=-1){AVTK(URID(LS.substring(preAmpAt,eqAt)),URID(LS.substring(eqAt+1,l)))}else if(preAmpAt!=l-1){AVTK(URID(LS.substring(preAmpAt,l)),"")}}if(l==1){AVTK(LS.substring(0,1),"")}}}};var TC=OL(QS);if(!TC){TC=0};QS.toString=function(){return LS.toString()};QS.Count=function(){return(TC?TC:0)};QS.Count.toString=function(){return(TC?TC.toString():"0")};QS.Item=function(e){if(typeof e==un){return LS}else {if(typeof e==n){var e=Math.ceil(e);var c=0;for(var i in QS){if(typeof QS[i]!=f&&++c==e){return QS[i]}};Err(e1+"().Item("+e+")")}else {return QS[KM(e,QS)]}};return x};QS.Item.toString=function(){return LS.toString()};QS.Key=function(e){var t=typeof e;if(t==n){var e=Math.ceil(e);var c=0;for(var i in QS){if(typeof QS[i]!=f&&++c==e){return i}}}else if(t==r){var e=KM(e,QS);var a=QS[e];return(typeof a!=un&&a&&a.toString()?e:"")}else {Err(e2+"().Key("+(e?e:"")+")")};Err(e1+"().Item("+e+")")};QS.Key.toString=function(){Err(e2+"().Key")};this.QueryString=function(k){if(typeof k==un){return QS}else {var k=KM(k,QS);if(typeof QS[k]==un){t=new Object();t.Count=function(){return 0};t.Count.toString=function(){return "0"};t.toString=function(){return x};t.Item=function(e){return x};t.Item.toString=function(){return x};t.Key=function(e){Err(e3+"("+(e?e:"")+")")};t.Key.toString=function(){return x};return t}if(typeof k==n){return QS.Item(k)}else {return QS[k]}}};this.QueryString.toString=function(){return LS.toString()};this.QueryString.Count=function(){return(TC?TC:0)};this.QueryString.Count.toString=function(){return(TC?TC.toString():"0")};this.QueryString.Item=function(e){if(typeof e==un){return LS.toString()}else {if(typeof e==n){var e=Math.ceil(e);var c=0;for(var i in QS){if(typeof QS[i]!=f&&++c==e){return QS[i]}};Err(e1+".Item("+e+")")}else {return QS[KM(e,QS)]}}if(typeof e==n){Err(e1+".Item("+e+")")};return x};this.QueryString.Item.toString=function(){return LS.toString()};this.QueryString.Key=function(e){var t=typeof e;if(t==n){var e=Math.ceil(e);var c=0;for(var i in QS){if(typeof QS[i]=="object"&&(++c==e)){return i}}}else if(t==r){var e=KM(e,QS);var a=QS[e];return(typeof a!=un&&a&&a.toString()?e:"")}else {Err(e2+".Key("+(e?e:"")+")")};Err(e1+".Item("+e+")")};this.QueryString.Key.toString=function(){Err(e2+".Key")};this.Version=1.3;this.Author="Andrew Urquhart (www.andrewu.co.uk)"};var Request=new RObj(false);
|
||||
@@ -0,0 +1,51 @@
|
||||
function FixMenu(menuTable)
|
||||
{
|
||||
if (!menuTable) { return };
|
||||
var tbody = menuTable.getElementsByTagName("TBODY")[0];
|
||||
var tr = tbody.getElementsByTagName("TR")[0];
|
||||
for (var i = 0; i < tr.childNodes.length; i++)
|
||||
{
|
||||
var td = tr.childNodes[i];
|
||||
if (td.tagName && td.tagName.toLowerCase() == 'td')
|
||||
{
|
||||
var anchor = td.getElementsByTagName("A")[0];
|
||||
if (anchor)
|
||||
{
|
||||
var onClick = td.onmouseover;
|
||||
td.onclick = (function (e, method) { return function (evt) { method.call(e); if (window.event) { evt = window.event } evt.cancelBubble = true; RemoveRootHover(e); __disappearAfter = 3000; Menu_Collapse(e) } })(td, onClick);
|
||||
td.onmouseover = (function (e) { return function () { HoverRootMenu(e) } })(td);
|
||||
anchor.style.cursor = "pointer";
|
||||
var submnu = WebForm_GetElementById(td.id + "Items");
|
||||
if (submnu) { anchor.onclick = function () { return false } }
|
||||
td.onmouseout = (function (e) { return function () { RemoveRootHover(e) } })(td);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function HoverRootMenu(item)
|
||||
{
|
||||
var node = (item.tagName.toLowerCase() == "td") ? item : item.cells[0];
|
||||
var data = Menu_GetData(item);
|
||||
if (!data) { return null; }
|
||||
var nodeTable = WebForm_GetElementByTagName(node, "table");
|
||||
if (data.staticHoverClass)
|
||||
{
|
||||
nodeTable.hoverClass = data.staticHoverClass;
|
||||
WebForm_AppendToClassName(nodeTable, data.staticHoverClass);
|
||||
}
|
||||
node = nodeTable.rows[0].cells[0].childNodes[0];
|
||||
if (data.staticHoverHyperLinkClass) { node.hoverHyperLinkClass = data.staticHoverHyperLinkClass; WebForm_AppendToClassName(node, data.staticHoverHyperLinkClass) }
|
||||
return node;
|
||||
}
|
||||
|
||||
function RemoveRootHover(item)
|
||||
{
|
||||
var node = (item.tagName.toLowerCase() == "td") ? item : item.cells[0];
|
||||
var data = Menu_GetData(item);
|
||||
if (!data) { return null; }
|
||||
var nodeTable = WebForm_GetElementByTagName(node, "table");
|
||||
if (nodeTable.hoverClass) { WebForm_RemoveClassName(nodeTable, nodeTable.hoverClass) }
|
||||
node = nodeTable.rows[0].cells[0].childNodes[0];
|
||||
if (node.hoverHyperLinkClass) { WebForm_RemoveClassName(node, node.hoverHyperLinkClass) }
|
||||
}
|
||||
@@ -0,0 +1,496 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DatePicker.aspx.cs"
|
||||
Inherits="utility_DatePicker" %>
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head runat="server">
|
||||
<title>日期挑選</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
|
||||
<script type="text/JavaScript" src="./CSJSRequestObject.js"></script>
|
||||
|
||||
<style type="text/css">
|
||||
td.cell {
|
||||
font-family: Courier;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
border: 1px solid black;
|
||||
}
|
||||
|
||||
td.title {
|
||||
font-family: Courier;
|
||||
font-weight: bold;
|
||||
color: Black;
|
||||
background-color: #9DCBFA;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
border: 1px solid black;
|
||||
}
|
||||
|
||||
.b1 {
|
||||
height: 24px;
|
||||
width: 24px;
|
||||
font: 11pt Arial;
|
||||
cursor: pointer;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script type="text/JavaScript">
|
||||
//-- Script designed by Liming Weng (victorwon@netease.com)
|
||||
//-- Download this script and many more at
|
||||
//-- The Java Magician!! http://javamagic.hypermart.net
|
||||
var gdCtrl = new Object();
|
||||
var gcGray = "#808080";
|
||||
var gcToggle = "#ffff00";
|
||||
var gcBG = "#cccccc";
|
||||
|
||||
var gdCurDate = new Date();
|
||||
var giYear = gdCurDate.getFullYear();
|
||||
var giMonth = gdCurDate.getMonth() + 1;
|
||||
var giDay = gdCurDate.getDate();
|
||||
var VicPopCal = new Object();
|
||||
var separator = Request.QueryString("SEPARATOR");
|
||||
var gMonths = new Array("一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月");
|
||||
|
||||
function fPopCalendar(popCtrl, dateCtrl, popCal)
|
||||
{
|
||||
parent.event.cancelBubble = true;
|
||||
VicPopCal = popCal;
|
||||
gdCtrl = dateCtrl;
|
||||
fSetYearMon(giYear, giMonth);
|
||||
var point = fGetXY(popCtrl);
|
||||
with (VicPopCal.style)
|
||||
{
|
||||
left = point.x;
|
||||
top = point.y + popCtrl.offsetHeight + 1;
|
||||
visibility = 'visible';
|
||||
}
|
||||
VicPopCal.focus();
|
||||
}
|
||||
|
||||
function fSetDate(iYear, iMonth, iDay)
|
||||
{
|
||||
gdCtrl.value = iYear + separator
|
||||
+ (("0" + iMonth).length == 2 ? ("0" + iMonth) : iMonth) + separator
|
||||
+ (("0" + iDay).length == 2 ? ("0" + iDay) : iDay);
|
||||
|
||||
if (Request.QueryString("SENDER") != "")
|
||||
{
|
||||
if (false && window.showModalDialog)
|
||||
{
|
||||
parent.document.getElementById(Request.QueryString("SENDER")).value = gdCtrl.value;
|
||||
parent.document.getElementById(Request.QueryString("SENDER")).focus();
|
||||
fCancel();
|
||||
}
|
||||
else
|
||||
{
|
||||
window.returnValue = gdCtrl.value;
|
||||
if (window.opener)
|
||||
{
|
||||
window.opener.document.getElementById(Request.QueryString("SENDER")).value = gdCtrl.value;
|
||||
window.opener.document.getElementById(Request.QueryString("SENDER")).focus();
|
||||
}
|
||||
window.close();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (false && window.showModalDialog)
|
||||
{
|
||||
parent.postMessage(gdCtrl.value);
|
||||
fCancel();
|
||||
}
|
||||
else
|
||||
{
|
||||
window.opener.postMessage(gdCtrl.value);
|
||||
window.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function fSetSelected(aCell)
|
||||
{
|
||||
var iOffset = 0;
|
||||
var iYear = parseInt(document.getElementById("tbSelYear").value);
|
||||
var iMonth = parseInt(document.getElementById("tbSelMonth").value);
|
||||
|
||||
aCell.bgColor = gcBG;
|
||||
with (aCell.childNodes[0])
|
||||
{
|
||||
var iDay = parseInt(innerHTML);
|
||||
if (color == gcGray)
|
||||
return;
|
||||
iMonth += iOffset;
|
||||
if (iMonth < 1)
|
||||
{
|
||||
iYear--;
|
||||
iMonth = 12;
|
||||
}
|
||||
else if (iMonth > 12)
|
||||
{
|
||||
iYear++;
|
||||
iMonth = 1;
|
||||
}
|
||||
}
|
||||
fSetDate(iYear, iMonth, iDay);
|
||||
}
|
||||
|
||||
function Point(iX, iY)
|
||||
{
|
||||
this.x = iX;
|
||||
this.y = iY;
|
||||
}
|
||||
|
||||
function fBuildCal(iYear, iMonth)
|
||||
{
|
||||
var aMonth = new Array();
|
||||
for (i = 1; i < 7; i++)
|
||||
aMonth[i] = new Array(i);
|
||||
|
||||
var dYearStartDate = new Date(iYear, 0, 1);
|
||||
var dCalDate = new Date(iYear, iMonth - 1, 1);
|
||||
var iDayOfFirst = dCalDate.getDay();
|
||||
var iDaysInMonth = new Date(iYear, iMonth, 0).getDate();
|
||||
var iOffsetLast = new Date(iYear, iMonth - 1, 0).getDate() - iDayOfFirst + 1;
|
||||
var iDate = 1;
|
||||
var iNext = 1;
|
||||
var iJuilet = Math.floor((dCalDate.getTime() - dYearStartDate.getTime()) / 86400000);
|
||||
|
||||
// BHRD
|
||||
if (typeof BHRD != "undefined" && BHRD[iYear])
|
||||
{
|
||||
for (d = 0; d < 7; d++)
|
||||
aMonth[1][d] = (d < iDayOfFirst) ? -(iOffsetLast + d) : (iDate++) + "," + BHRD[iYear].charAt(iJuilet + iDate - 2);
|
||||
for (w = 2; w < 7; w++)
|
||||
for (d = 0; d < 7; d++)
|
||||
aMonth[w][d] = (iDate <= iDaysInMonth) ? (iDate++) + "," + BHRD[iYear].charAt(iJuilet + iDate - 2) : -(iNext++);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (d = 0; d < 7; d++)
|
||||
aMonth[1][d] = (d < iDayOfFirst) ? -(iOffsetLast + d) : (iDate++) + ",.";
|
||||
for (w = 2; w < 7; w++)
|
||||
for (d = 0; d < 7; d++)
|
||||
aMonth[w][d] = (iDate <= iDaysInMonth) ? (iDate++) + ",." : -(iNext++);
|
||||
}
|
||||
return aMonth;
|
||||
}
|
||||
|
||||
function fDrawCal(iYear, iMonth, iCellWidth, iDateTextSize)
|
||||
{
|
||||
var WeekDay = new Array("日", "一", "二", "三", "四", "五", "六");
|
||||
var styleTD = " bgcolor='" + gcBG + "' width='" + iCellWidth + "' "
|
||||
+ " style='font-size:" + iDateTextSize + "pt;'";
|
||||
|
||||
with (document)
|
||||
{
|
||||
write("<tr>");
|
||||
for (i = 0; i < 7; i++)
|
||||
write("<td class='title' " + styleTD + ">" + WeekDay[i] + "</td>");
|
||||
write("</tr>");
|
||||
|
||||
for (w = 1; w < 7; w++)
|
||||
{
|
||||
write("<tr>");
|
||||
for (d = 0; d < 7; d++)
|
||||
{
|
||||
write("<td class='cell' id=calCell " + styleTD + "' name='calCell' "
|
||||
+ " onMouseover='this.bgColor=gcToggle;' onMouseout='this.bgColor=gcBG;' "
|
||||
+ " onclick='fSetSelected(this);'>");
|
||||
write("<span name='calText' id='calText'></span>");
|
||||
write("</td>")
|
||||
}
|
||||
write("</tr>");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function SetCellBgColor(cell, sType)
|
||||
{
|
||||
switch (sType)
|
||||
{
|
||||
case ".": // 無資料
|
||||
if (d == 0 || d == 6)
|
||||
cell.style.backgroundColor = "#FF99CC";
|
||||
else
|
||||
cell.style.backgroundColor = "#FFFFFF";
|
||||
break;
|
||||
case "-": // 上班日
|
||||
cell.style.backgroundColor = "#FFFFFF";
|
||||
break;
|
||||
case "N": // 國定假日或民俗假日
|
||||
cell.style.backgroundColor = "#0099FF";
|
||||
break;
|
||||
case "H": // 例假日
|
||||
cell.style.backgroundColor = "#FF99CC";
|
||||
break;
|
||||
case "V": // 彈性休假
|
||||
cell.style.backgroundColor = "#FF9900";
|
||||
break;
|
||||
case "B": // 補班
|
||||
cell.style.backgroundColor = "#FFFF99";
|
||||
break;
|
||||
case "O": // 補假
|
||||
cell.style.backgroundColor = "#99CC00";
|
||||
break;
|
||||
case "T": // 颱風假
|
||||
cell.style.backgroundColor = "#999999";
|
||||
break;
|
||||
case "E": // 選舉假
|
||||
cell.style.backgroundColor = "#CC7FFF";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function fUpdateCal(iYear, iMonth)
|
||||
{
|
||||
iYear = (iYear * 1) + CY11;
|
||||
myMonth = fBuildCal(iYear, iMonth);
|
||||
PrevYear.disabled = "disabled";
|
||||
NextYear.disabled = "disabled";
|
||||
PrevMonth.disabled = "disabled";
|
||||
NextMonth.disabled = "disabled";
|
||||
try
|
||||
{
|
||||
var i = 0;
|
||||
for (w = 0; w < 6; w++)
|
||||
{
|
||||
for (d = 0; d < 7; d++)
|
||||
{
|
||||
var calText = document.getElementsByName("calText")[(7 * w) + d];
|
||||
var calCell = document.getElementsByName("calCell")[(7 * w) + d];
|
||||
|
||||
calText.Victor = i++;
|
||||
if (myMonth[w + 1][d] < 0)
|
||||
{
|
||||
calText.color = gcGray;
|
||||
calText.innerHTML = -myMonth[w + 1][d];
|
||||
calCell.style.cursor = "default";
|
||||
calCell.style.backgroundColor = gcBG;
|
||||
}
|
||||
else
|
||||
{
|
||||
var sDateData = myMonth[w + 1][d].split(",");
|
||||
var sType = sDateData.length > 1 ? sDateData[1] : "";
|
||||
calText.innerHTML = sDateData[0];
|
||||
calText.color = "black";
|
||||
calCell.style.cursor = "pointer";
|
||||
SetCellBgColor(calCell, sType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
PrevYear.disabled = "";
|
||||
NextYear.disabled = "";
|
||||
PrevMonth.disabled = "";
|
||||
NextMonth.disabled = "";
|
||||
}
|
||||
}
|
||||
|
||||
function fSetYearMon(iYear, iMon)
|
||||
{
|
||||
tbSelMonth.options[iMon - 1].selected = true;
|
||||
tbSelYear.value = iYear;
|
||||
fUpdateCal(iYear, iMon);
|
||||
}
|
||||
|
||||
function fPrevYear()
|
||||
{
|
||||
var iYear = tbSelYear.value;
|
||||
var iMon = tbSelMonth.value;
|
||||
|
||||
fSetYearMon(--iYear, iMon);
|
||||
}
|
||||
|
||||
function fNextYear()
|
||||
{
|
||||
var iYear = tbSelYear.value;
|
||||
var iMon = tbSelMonth.value;
|
||||
|
||||
fSetYearMon(++iYear, iMon);
|
||||
}
|
||||
|
||||
function fPrevMonth()
|
||||
{
|
||||
var iMon = tbSelMonth.value;
|
||||
var iYear = tbSelYear.value;
|
||||
|
||||
if (--iMon < 1)
|
||||
{
|
||||
iMon = 12;
|
||||
iYear--;
|
||||
}
|
||||
|
||||
fSetYearMon(iYear, iMon);
|
||||
}
|
||||
|
||||
function fNextMonth()
|
||||
{
|
||||
var iMon = tbSelMonth.value;
|
||||
var iYear = tbSelYear.value;
|
||||
|
||||
if (++iMon > 12)
|
||||
{
|
||||
iMon = 1;
|
||||
iYear++;
|
||||
}
|
||||
|
||||
fSetYearMon(iYear, iMon);
|
||||
}
|
||||
|
||||
function fGetXY(aTag)
|
||||
{
|
||||
var oTmp = aTag;
|
||||
var pt = new Point(0, 0);
|
||||
do
|
||||
{
|
||||
pt.x += oTmp.offsetLeft;
|
||||
pt.y += oTmp.offsetTop;
|
||||
oTmp = oTmp.offsetParent;
|
||||
}
|
||||
while (oTmp.tagName != "BODY");
|
||||
return pt;
|
||||
}
|
||||
|
||||
function fCancel()
|
||||
{
|
||||
if (false && window.showModalDialog)
|
||||
{
|
||||
parent.document.getElementById(Request.QueryString("SENDER")).focus();
|
||||
var datepicker = parent.document.getElementById("DatePicker");
|
||||
datepicker.style.top = 0;
|
||||
datepicker.style.left = 0;
|
||||
datepicker.style.width = 0;
|
||||
datepicker.style.height = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
window.opener.document.getElementById(Request.QueryString("SENDER")).focus();
|
||||
window.returnValue = "";
|
||||
window.close();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#6699cc" style="margin: 0px">
|
||||
<form id="form1" runat="server">
|
||||
<div id="content" align="center" style="vertical-align: middle">
|
||||
<table border='0' bgcolor='#6699cc'>
|
||||
<tr>
|
||||
<td valign='middle' align='center'>
|
||||
<table id='popTable' border='0' bgcolor='#6699cc'>
|
||||
<tr>
|
||||
<td valign='middle' align='center'>
|
||||
<!--年度輸入-->
|
||||
<input type='button' value='<' name='PrevYear' id='PrevYear'
|
||||
onclick='fPrevYear()' disabled="disabled" class="b1" />
|
||||
<input type='text' name='tbSelYear' id='tbSelYear' onkeydown='fUpdateCal(tbSelYear.value, tbSelMonth.value);'
|
||||
style='width: 3.5rem; font: 11pt Arial; border-style: groove'
|
||||
runat="server" maxlength="4" />
|
||||
<input type='button' value='>' name='NextYear' id='NextYear'
|
||||
onclick='fNextYear()' disabled="disabled" class="b1" />
|
||||
<!-- 月份挑選 -->
|
||||
<input type='button' name='PrevMonth' id='PrevMonth' disabled="disabled"
|
||||
value='<' class="b1" onclick='fPrevMonth()' />
|
||||
<select name='tbSelMonth' id='tbSelMonth' onchange='fUpdateCal(tbSelYear.value, tbSelMonth.value)'
|
||||
style='width: 4.5rem; height: auto; font: 11pt Arial; border-style: groove'>
|
||||
|
||||
<script type="text/javascript">
|
||||
for (i = 0; i < 12; i++)
|
||||
document.write("<option value='" + (i + 1) + "'>" + gMonths[i] + "</option>");
|
||||
</script>
|
||||
|
||||
</select>
|
||||
<input type='button' name='NextMonth' id='NextMonth' disabled="disabled"
|
||||
value='>' class="b1" onclick='fNextMonth()' />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align='center'>
|
||||
<div style='background-color: teal;'>
|
||||
<table width="100%" border="1" cellpadding="2" cellspacing="0" style="border-color: black; border-collapse: collapse;">
|
||||
|
||||
<script type="text/javascript">
|
||||
fDrawCal(giYear, giMonth, 19, 12);
|
||||
</script>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align='center'>
|
||||
<input type='button' name='Close' value='關閉' onclick='fCancel()'
|
||||
class="b1" style="width: auto; height: auto; padding-left: 5px; padding-right: 5px;" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<script type="text/javascript">
|
||||
var CY11 = 0;
|
||||
if (Request.QueryString("CY11"))
|
||||
CY11 = parseInt(Request.QueryString("CY11"), 10);
|
||||
|
||||
// alert(Request.QueryString("SENDER"))
|
||||
|
||||
if (Request.QueryString("SENDER") != "" && Request.QueryString("SENDER") != "undefined" && Request.QueryString("SENDER") != "null")
|
||||
{
|
||||
var oldDate = "";
|
||||
|
||||
if (false && window.showModalDialog)
|
||||
oldDate = parent.document.getElementById(Request.QueryString("SENDER")).value;
|
||||
else if (window.opener)
|
||||
oldDate = window.opener.document.getElementById(Request.QueryString("SENDER")).value;
|
||||
|
||||
if (oldDate != "")
|
||||
{
|
||||
if (separator != "")
|
||||
while (oldDate.indexOf(separator) != -1)
|
||||
oldDate = oldDate.replace(separator, "");
|
||||
giYear = (parseInt(oldDate.substr(0, oldDate.length - 4), 10) * 1) + CY11;
|
||||
giMonth = parseInt(oldDate.substr(oldDate.length - 4, 2), 10);
|
||||
giDay = parseInt(oldDate.substr(oldDate.length - 2, 2), 10);
|
||||
}
|
||||
}
|
||||
|
||||
if (Request.QueryString("VALUE") != "" && Request.QueryString("VALUE") != "undefined" && Request.QueryString("VALUE") != "null")
|
||||
{
|
||||
var oldDate = Request.QueryString("VALUE").toString();
|
||||
if (oldDate != "")
|
||||
{
|
||||
if (separator != "")
|
||||
while (oldDate.indexOf(separator) != -1)
|
||||
oldDate = oldDate.replace(separator, "");
|
||||
giYear = (parseInt(oldDate.substr(0, oldDate.length - 4), 10) * 1) + CY11;
|
||||
giMonth = parseInt(oldDate.substr(oldDate.length - 4, 2), 10);
|
||||
giDay = parseInt(oldDate.substr(oldDate.length - 2, 2), 10);
|
||||
}
|
||||
}
|
||||
|
||||
var tbSelYear = document.getElementById("tbSelYear");
|
||||
var tbSelMonth = document.getElementById("tbSelMonth");
|
||||
var PrevYear = document.getElementById("PrevYear");
|
||||
var NextYear = document.getElementById("NextYear");
|
||||
var PrevMonth = document.getElementById("PrevMonth");
|
||||
var NextMonth = document.getElementById("NextMonth");
|
||||
tbSelYear.value = giYear - CY11;
|
||||
tbSelMonth.value = giMonth;
|
||||
fUpdateCal(tbSelYear.value, tbSelMonth.value);
|
||||
window.returnValue = "";
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,29 @@
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using System.Data.Common;
|
||||
using System.Text;
|
||||
using Wellan.Common;
|
||||
|
||||
public partial class utility_DatePicker : System.Web.UI.Page
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
BhrdDAC bhrddac = new BhrdDAC();
|
||||
DataTable bhrd = bhrddac.GetAll();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
foreach (DataRow row in bhrd.Rows)
|
||||
{
|
||||
sb.Append(String.Format("{0}:\"{1}\",", row["BHYER"], row["BHHRD"]));
|
||||
}
|
||||
sb.Append("\"\":\"\"");
|
||||
Page.ClientScript.RegisterClientScriptBlock(typeof(String), "bhrd", WConstants.JavaScriptStart + "var BHRD={" + sb.ToString() + "}" + WConstants.JavaScriptEnd);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,342 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>日期挑選</TITLE>
|
||||
<META NAME="GENERATOR" Content="Microsoft Visual Studio 7.0">
|
||||
<META http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<SCRIPT type="text/JavaScript" SRC="./CSJSRequestObject.js"></SCRIPT>
|
||||
</HEAD>
|
||||
<SCRIPT type="text/JavaScript">
|
||||
//-- Script designed by Liming Weng (victorwon@netease.com)
|
||||
//-- Download this script and many more at
|
||||
//-- The Java Magician!! http://javamagic.hypermart.net
|
||||
var gdCtrl = new Object();
|
||||
var gcGray = "#808080";
|
||||
var gcToggle = "#ffff00";
|
||||
var gcBG = "#eeeeee";
|
||||
|
||||
var gdCurDate = new Date();
|
||||
var giYear = gdCurDate.getFullYear();
|
||||
var giMonth = gdCurDate.getMonth() + 1;
|
||||
var giDay = gdCurDate.getDate();
|
||||
var VicPopCal = new Object();
|
||||
var separator = Request.QueryString("SEPARATOR");
|
||||
|
||||
function fPopCalendar(popCtrl, dateCtrl, popCal) {
|
||||
parent.event.cancelBubble = true;
|
||||
VicPopCal = popCal;
|
||||
gdCtrl = dateCtrl;
|
||||
fSetYearMon(giYear, giMonth);
|
||||
var point = fGetXY(popCtrl);
|
||||
with (VicPopCal.style) {
|
||||
left = point.x;
|
||||
top = point.y + popCtrl.offsetHeight + 1;
|
||||
visibility = 'visible';
|
||||
}
|
||||
VicPopCal.focus();
|
||||
}
|
||||
|
||||
function fSetDate(iYear, iMonth, iDay) {
|
||||
gdCtrl.value = iYear + separator
|
||||
+ (("0" + iMonth).length == 2 ? ("0" + iMonth) : iMonth) + separator
|
||||
+ (("0" + iDay).length == 2 ? ("0" + iDay) : iDay);
|
||||
|
||||
if (window.showModalDialog) {
|
||||
parent.document.getElementById(Request.QueryString("SENDER")).value = gdCtrl.value;
|
||||
fCancel();
|
||||
}
|
||||
else {
|
||||
window.returnValue = gdCtrl.value;
|
||||
if (Request.QueryString("SENDER"))
|
||||
if (window.opener) {
|
||||
window.opener.document.getElementById(Request.QueryString("SENDER")).value = gdCtrl.value;
|
||||
}
|
||||
window.close();
|
||||
}
|
||||
}
|
||||
|
||||
function fSetSelected(aCell) {
|
||||
var iOffset = 0;
|
||||
var iYear = parseInt(document.getElementById("tbSelYear").value);
|
||||
var iMonth = parseInt(document.getElementById("tbSelMonth").value);
|
||||
|
||||
aCell.bgColor = gcBG;
|
||||
with (aCell.childNodes[0]) {
|
||||
var iDay = parseInt(innerHTML);
|
||||
if (color == gcGray)
|
||||
return;
|
||||
iMonth += iOffset;
|
||||
if (iMonth < 1) {
|
||||
iYear--;
|
||||
iMonth = 12;
|
||||
}
|
||||
else if (iMonth > 12) {
|
||||
iYear++;
|
||||
iMonth = 1;
|
||||
}
|
||||
}
|
||||
fSetDate(iYear, iMonth, iDay);
|
||||
}
|
||||
|
||||
function Point(iX, iY) {
|
||||
this.x = iX;
|
||||
this.y = iY;
|
||||
}
|
||||
|
||||
function fBuildCal(iYear, iMonth) {
|
||||
var aMonth = new Array();
|
||||
for (i = 1; i < 7; i++)
|
||||
aMonth[i] = new Array(i);
|
||||
|
||||
var dCalDate = new Date(iYear, iMonth - 1, 1);
|
||||
var iDayOfFirst = dCalDate.getDay();
|
||||
var iDaysInMonth = new Date(iYear, iMonth, 0).getDate();
|
||||
var iOffsetLast = new Date(iYear, iMonth - 1, 0).getDate() - iDayOfFirst + 1;
|
||||
var iDate = 1;
|
||||
var iNext = 1;
|
||||
|
||||
for (d = 0; d < 7; d++)
|
||||
aMonth[1][d] = (d < iDayOfFirst) ? -(iOffsetLast + d) : iDate++;
|
||||
for (w = 2; w < 7; w++)
|
||||
for (d = 0; d < 7; d++)
|
||||
aMonth[w][d] = (iDate <= iDaysInMonth) ? iDate++ : -(iNext++);
|
||||
return aMonth;
|
||||
}
|
||||
|
||||
function fDrawCal(iYear, iMonth, iCellWidth, iDateTextSize) {
|
||||
var WeekDay = new Array("日", "一", "二", "三", "四", "五", "六");
|
||||
//var WeekDay = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
|
||||
var styleTD = " bgcolor='" + gcBG + "' width='" + iCellWidth
|
||||
+ "' bordercolor='" + gcBG + "' "
|
||||
+ "style='font:bold " + iDateTextSize + "pt Courier; text-align:center; vertical-align:middle; cursor:pointer;cursor:hand; color:#008800;'";
|
||||
|
||||
with (document) {
|
||||
write("<tr>");
|
||||
for (i = 0; i < 7; i++)
|
||||
write("<td " + styleTD + ">" + WeekDay[i] + "</td>");
|
||||
write("</tr>");
|
||||
|
||||
for (w = 1; w < 7; w++) {
|
||||
write("<tr>");
|
||||
for (d = 0; d < 7; d++) {
|
||||
write("<td id=calCell " + styleTD + "' name='calCell' "
|
||||
+ "onmouseover=\"this.bgColor=gcToggle\" onmouseout=\"this.bgColor=gcBG\" "
|
||||
+ "onclick='fSetSelected(this)'>");
|
||||
write("<font name='cellText' id='cellText'></font>");
|
||||
write("</td>")
|
||||
}
|
||||
write("</tr>");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function fUpdateCal(iYear, iMonth) {
|
||||
iYear = (iYear * 1) + CY11;
|
||||
//alert(iYear);
|
||||
myMonth = fBuildCal(iYear, iMonth);
|
||||
var i = 0;
|
||||
for (w = 0; w < 6; w++)
|
||||
for (d = 0; d < 7; d++) {
|
||||
if (document.charset) {
|
||||
with (cellText[(7 * w) + d]) {
|
||||
Victor = i++;
|
||||
if (myMonth[w + 1][d] < 0) {
|
||||
color = gcGray;
|
||||
innerHTML = -myMonth[w + 1][d];
|
||||
calCell[(7 * w) + d].style.cursor = "default";
|
||||
}
|
||||
else {
|
||||
color = ((d == 0) || (d == 6)) ? "red" : "black";
|
||||
innerHTML = myMonth[w + 1][d];
|
||||
calCell[(7 * w) + d].style.cursor = "pointer";
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
with (document.getElementsByName("cellText")[(7 * w) + d]) {
|
||||
Victor = i++;
|
||||
if (myMonth[w + 1][d] < 0) {
|
||||
color = gcGray;
|
||||
innerHTML = -myMonth[w + 1][d];
|
||||
document.getElementsByName("calCell")[(7 * w) + d].style.cursor = "default";
|
||||
}
|
||||
else {
|
||||
color = ((d == 0) || (d == 6)) ? "red" : "black";
|
||||
innerHTML = myMonth[w + 1][d];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function fSetYearMon(iYear, iMon) {
|
||||
tbSelMonth.options[iMon - 1].selected = true;
|
||||
|
||||
//for (i = 0; i < tbSelYear.length; i++)
|
||||
// if (tbSelYear.options[i].value == iYear)
|
||||
// tbSelYear.options[i].selected = true;
|
||||
|
||||
tbSelYear.value = iYear;
|
||||
|
||||
fUpdateCal(iYear, iMon);
|
||||
}
|
||||
|
||||
function fPrevYear() {
|
||||
var iYear = tbSelYear.value;
|
||||
var iMon = tbSelMonth.value;
|
||||
|
||||
fSetYearMon(--iYear, iMon);
|
||||
}
|
||||
|
||||
function fNextYear() {
|
||||
var iYear = tbSelYear.value;
|
||||
var iMon = tbSelMonth.value;
|
||||
|
||||
fSetYearMon(++iYear, iMon);
|
||||
}
|
||||
|
||||
function fPrevMonth() {
|
||||
var iMon = tbSelMonth.value;
|
||||
var iYear = tbSelYear.value;
|
||||
|
||||
if (--iMon < 1) {
|
||||
iMon = 12;
|
||||
iYear--;
|
||||
}
|
||||
|
||||
fSetYearMon(iYear, iMon);
|
||||
}
|
||||
|
||||
function fNextMonth() {
|
||||
var iMon = tbSelMonth.value;
|
||||
var iYear = tbSelYear.value;
|
||||
|
||||
if (++iMon > 12) {
|
||||
iMon = 1;
|
||||
iYear++;
|
||||
}
|
||||
|
||||
fSetYearMon(iYear, iMon);
|
||||
}
|
||||
|
||||
function fGetXY(aTag) {
|
||||
var oTmp = aTag;
|
||||
var pt = new Point(0, 0);
|
||||
do {
|
||||
pt.x += oTmp.offsetLeft;
|
||||
pt.y += oTmp.offsetTop;
|
||||
oTmp = oTmp.offsetParent;
|
||||
}
|
||||
while (oTmp.tagName != "BODY");
|
||||
return pt;
|
||||
}
|
||||
|
||||
function fCancel() {
|
||||
if (window.showModalDialog) {
|
||||
//parent.document.getElementById("DatePicker").style["display"] = "none";
|
||||
//parent.document.getElementById("Blocker").style["display"] = "none";
|
||||
var datepicker = parent.document.getElementById("DatePicker");
|
||||
//var blocker = parent.document.getElementById("Blocker");
|
||||
datepicker.style.top = 0;
|
||||
datepicker.style.left = 0;
|
||||
datepicker.style.width = 0;
|
||||
datepicker.style.height = 0;
|
||||
//blocker.style.top = 0;
|
||||
//blocker.style.left = 0;
|
||||
//blocker.style.width = 0;
|
||||
//blocker.style.height = 0;
|
||||
}
|
||||
else {
|
||||
window.returnValue = "";
|
||||
window.close();
|
||||
}
|
||||
}
|
||||
|
||||
var gMonths = new Array("一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月");
|
||||
//var gMonths = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
|
||||
|
||||
with (document) {
|
||||
//write("<table border='0' bgcolor='#6699cc' width='100%' height='100%'>");
|
||||
write("<table border='0' bgcolor='#6699cc'>");
|
||||
write("<tr><td valign='middle' align='center'>");
|
||||
write("<table id='popTable' border='0' bgcolor='#6699cc'>");
|
||||
write("<TR><td valign='middle' align='center'>");
|
||||
|
||||
// 年度輸入
|
||||
write(" <input type='button' value='<' name='PrevYear' onClick='fPrevYear()' style='height:24;width:24;font:11pt Arial;cursor:pointer;'>");
|
||||
write("<input type='text' name='tbSelYear' id='tbSelYear' onKeydown='fUpdateCal(tbSelYear.value, tbSelMonth.value);' style='height:24;width:40; font:11pt Arial; border-style:groove'>");
|
||||
write("<input type='button' value='>' name='NextYear' onClick='fNextYear()' style='height:24;width:24;FONT:11pt Arial;cursor:pointer'> ");
|
||||
|
||||
// 年度挑選
|
||||
//write(" <SELECT name='tbSelYear' onChange='fUpdateCal(tbSelYear.value, tbSelMonth.value)' >");
|
||||
//for(i=1990;i<2015;i++)
|
||||
// write("<OPTION value='"+i+"'>"+i+"</OPTION>");
|
||||
//write("</SELECT>");
|
||||
|
||||
// 月份挑選
|
||||
write(" <input type='button' name='PrevMonth' value='<' style='height:24;width:24;font:11pt Arial;cursor:pointer' onClick='fPrevMonth()'>");
|
||||
write("<select name='tbSelMonth' id='tbSelMonth' onChange='fUpdateCal(tbSelYear.value, tbSelMonth.value)' style='width:70;height:21;font:11pt Arial;border-style:groove'>");
|
||||
for (i = 0; i < 12; i++)
|
||||
write("<option value='" + (i + 1) + "'>" + gMonths[i] + "</option>");
|
||||
write("</SELECT>");
|
||||
write("<input type='button' name='NextMonth' value='>' style='height:24;width:24;font:11pt Arial;cursor:pointer' onclick='fNextMonth()'>");
|
||||
write("</td>");
|
||||
|
||||
write("</TR><TR>");
|
||||
write("<td align='center'>");
|
||||
write("<DIV style='background-color:teal;'><table width='100%' border='0' cellpadding='2'>");
|
||||
fDrawCal(giYear, giMonth, 19, 12);
|
||||
write("</table></DIV>");
|
||||
write("</td>");
|
||||
write("</TR>");
|
||||
write("<TR><TD align='center'>");
|
||||
write("<input type='button' name='Close' value='關閉' onclick='fCancel()' style='height:24;width:60;FONT:11pt Arial;cursor:pointer;'>");
|
||||
write("</TD></TR>");
|
||||
write("</TABLE>");
|
||||
write("</td></tr></table>")
|
||||
//write("<TR><TD align='center'>");
|
||||
//write("<font style='cursor:hand;font:12 Fixedsys' onclick='fSetDate(giYear,giMonth,giDay)' onMouseOver='this.style.color=gcToggle' onMouseOut='this.style.color=0'>今天是 "+gMonths[giMonth-1]+" "+giDay+", "+giYear+"</font>");
|
||||
//write("</TD></TR>");write("</TD></TR>");
|
||||
//write("</TABLE>");
|
||||
}
|
||||
|
||||
var CY11 = 0;
|
||||
if (Request.QueryString("CY11"))
|
||||
CY11 = parseInt(Request.QueryString("CY11"), 10);
|
||||
|
||||
if (Request.QueryString("SENDER")) {
|
||||
var oldDate = "";
|
||||
|
||||
if (window.showModalDialog)
|
||||
oldDate = parent.document.getElementById(Request.QueryString("SENDER")).value;
|
||||
else if (window.opener)
|
||||
oldDate = window.opener.document.getElementById(Request.QueryString("SENDER")).value;
|
||||
|
||||
if (oldDate != "") {
|
||||
// var datepart = oldDate.split("/");
|
||||
//
|
||||
// if (datepart.length > 0 && !isNaN(parseInt(datepart[0], 10)))
|
||||
// {
|
||||
// giYear = (parseInt(datepart[0], 10) * 1) + CY11;
|
||||
// }
|
||||
// if (datepart.length > 1 && !isNaN(parseInt(datepart[1], 10)))
|
||||
// giMonth = parseInt(datepart[1], 10);
|
||||
// if (datepart.length > 2 && !isNaN(parseInt(datepart[2], 10)))
|
||||
// giDay = parseInt(datepart[2], 10);
|
||||
|
||||
oldDate = oldDate.replace(separator, "");
|
||||
giYear = (parseInt(oldDate.substr(0, oldDate.length - 4), 10) * 1) + CY11;
|
||||
giMonth = parseInt(oldDate.substr(oldDate.length - 4, 2), 10);
|
||||
giDay = parseInt(oldDate.substr(oldDate.length - 2, 2), 10);
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementById("tbSelYear").value = giYear - CY11;
|
||||
document.getElementById("tbSelMonth").value = giMonth;
|
||||
fUpdateCal(document.getElementById("tbSelYear").value,
|
||||
document.getElementById("tbSelMonth").value);
|
||||
window.returnValue = "";
|
||||
</SCRIPT>
|
||||
<BODY bgColor="#6699cc" style="margin:0px">
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,16 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GetLookUp.aspx.cs" Inherits="utility_GetPickUp" %>
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" >
|
||||
<head runat="server">
|
||||
<title>Untitled Page</title>
|
||||
</head>
|
||||
<body>
|
||||
<form id="form1" runat="server">
|
||||
<div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,76 @@
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using Wellan.Common;
|
||||
using Wellan.Data;
|
||||
using System.Text;
|
||||
|
||||
public partial class utility_GetPickUp : System.Web.UI.Page
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
// 從設定檔中取得連線字串
|
||||
WConnectionString.ConnectionConfigFile = WConfig.GetConnectionConfig();
|
||||
string connName = WConfig.GetConnectionConfigName();
|
||||
string connType = WConnectionString.GetConnectionType(connName);
|
||||
string connStr = WConnectionString.GetConnectionString(connName);
|
||||
|
||||
WQuery Query = new WQuery(connType, connStr);
|
||||
DbConnection Conn = Query.NewConnection();
|
||||
DbCommand Cmd = Query.NewCommand();
|
||||
|
||||
// 從 Request 中取出參數
|
||||
string lookupConfigName = Request["NAME"];
|
||||
string whereKey = Request["WHERE_KEY"];
|
||||
string langId = Request["LANGID"];
|
||||
string addWhere = Request["ADD_WHERE"];
|
||||
|
||||
// 從設定檔中取得SQL
|
||||
WLookupList pickup = WLookupList.GetInstance();
|
||||
pickup.LookupConfigName = lookupConfigName;
|
||||
string sql = pickup.GetLookupSQL();
|
||||
string[] keyFields = pickup.GetKeyFields();
|
||||
|
||||
// 將傳入的KEY代入SQL
|
||||
try
|
||||
{
|
||||
foreach (string keyField in keyFields)
|
||||
{
|
||||
if (addWhere.Length == 0)
|
||||
Cmd.CommandText = String.Format(sql, keyField, "");
|
||||
else
|
||||
Cmd.CommandText = String.Format(sql, keyField, " AND " + addWhere);
|
||||
Cmd.Parameters.Clear();
|
||||
Cmd.Parameters.Add(Query.NewParameter("@VALUE", whereKey + "%"));
|
||||
|
||||
// 取回資料
|
||||
DataTable table = Query.Select(Conn, Cmd);
|
||||
// 若無資料,則找尋下一個 KEY
|
||||
if (table.Rows.Count == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 輸出儲存下拉資料物件的 JSON 表示法字串
|
||||
Response.Write(pickup.GetLookupJSON(table, langId));
|
||||
Response.End();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
Response.End();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,483 @@
|
||||
//--------------------------------------------
|
||||
// 要掛在回傳物件上的 method 程式碼
|
||||
//--------------------------------------------
|
||||
function JSON_Dataset_FieldValue_Method(index, fieldName)
|
||||
{
|
||||
var i = this.Cols[fieldName];
|
||||
if (typeof i != "undefined")
|
||||
{
|
||||
if (typeof this.Rows[index] != "undefined")
|
||||
return this.Rows[index][i];
|
||||
else
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// 取得 XMLHTTP 物件參考
|
||||
//--------------------------------------------
|
||||
function initRequest()
|
||||
{
|
||||
var A = null;
|
||||
try
|
||||
{
|
||||
A = new ActiveXObject("Msxml2.XMLHTTP")
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
try
|
||||
{
|
||||
A = new ActiveXObject("Microsoft.XMLHTTP")
|
||||
}
|
||||
catch (oc)
|
||||
{
|
||||
A = null
|
||||
}
|
||||
}
|
||||
|
||||
if (!A && typeof XMLHttpRequest != "undefined")
|
||||
{
|
||||
A = new XMLHttpRequest()
|
||||
}
|
||||
|
||||
if (!A && window.createRequest)
|
||||
{
|
||||
try
|
||||
{
|
||||
A = window.createRequest();
|
||||
} catch (e)
|
||||
{
|
||||
A = null;
|
||||
}
|
||||
}
|
||||
|
||||
return A
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// 取得網頁上元件的 X 座標
|
||||
//--------------------------------------------
|
||||
function offsetLeft(obj)
|
||||
{
|
||||
x = obj.offsetLeft;
|
||||
for (objParent = obj.offsetParent; objParent; objParent = objParent.offsetParent)
|
||||
x += objParent.offsetLeft;
|
||||
return x;
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// 取得網頁上元件的 Y 座標
|
||||
//--------------------------------------------
|
||||
function offsetTop(obj)
|
||||
{
|
||||
y = obj.offsetTop;
|
||||
for (objParent = obj.offsetParent; objParent; objParent = objParent.offsetParent)
|
||||
y += objParent.offsetTop;
|
||||
return y;
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// 改顏色
|
||||
//--------------------------------------------
|
||||
function changeColor(obj, bgColor, txtColor)
|
||||
{
|
||||
obj.style.backgroundColor = bgColor;
|
||||
obj.style.color = txtColor;
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------
|
||||
// 顯示下拉清單
|
||||
//--------------------------------------------
|
||||
function ShowPickup1()
|
||||
{
|
||||
XX_SELECT_DIV.style.display = "block";
|
||||
var totalHeight = document.getElementById("contentDiv").offsetHeight + document.getElementById("contentDiv").offsetTop;
|
||||
if (XX_SELECT_DIV.offsetTop + XX_SELECT_DIV.offsetHeight > totalHeight)
|
||||
{
|
||||
XX_SELECT_DIV.style.top = (totalHeight - XX_SELECT_DIV.offsetHeight) + "px";
|
||||
// XX_SELECT_DIV.offsetTop = totalHeight - XX_SELECT_DIV.offsetHeight;
|
||||
}
|
||||
//if (XX_SELECT.offsetHeight > 200)
|
||||
// XX_SELECT_PANEL.style.height = "200px";
|
||||
//XX_SELECT_MASK.style.left = XX_SELECT_DIV.style.left;
|
||||
//XX_SELECT_MASK.style.top = XX_SELECT_DIV.style.top;
|
||||
//XX_SELECT_MASK.style.width = XX_SELECT_DIV.offsetWidth;
|
||||
//XX_SELECT_MASK.style.height = XX_SELECT_DIV.offsetHeight;
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// XMLHTTP 的 onreadystatechange 事件處理程式
|
||||
//--------------------------------------------
|
||||
function ShowPickup()
|
||||
{
|
||||
if (XmlHttp.readyState == 4 || XmlHttp.readyState == 'complete')
|
||||
{
|
||||
XX_SELECT_DIV = document.getElementById('XX_SELECT_DIV');
|
||||
XX_SELECT_DIV.innerHTML = xx_select_html;
|
||||
|
||||
XX_SELECT_PANEL = document.getElementById('XX_SELECT_PANEL');
|
||||
XX_SELECT_TITLE = document.getElementById('XX_SELECT_TITLE');
|
||||
//XX_SELECT_MASK = document.getElementById('XX_SELECT_MASK');
|
||||
XX_SELECT = document.getElementById('XX_SELECT');
|
||||
XX_PAGE_BUTTON = document.getElementById('XX_PAGE_BUTTON');
|
||||
XX_SELECT_DIV.style.left = offsetLeft(objValue) + "px";
|
||||
XX_SELECT_DIV.style.top = offsetTop(objValue) + objValue.offsetHeight + "px";
|
||||
// XX_SELECT_DIV.offsetTop = offsetTop(objValue) + objValue.offsetHeight;
|
||||
|
||||
RespText = XmlHttp.responseText;
|
||||
|
||||
// if no result, display "not found" message
|
||||
if (RespText == "")
|
||||
{
|
||||
XX_SELECT_DIV.innerHTML = not_found_html1 + msgNotFound + not_found_html2;
|
||||
ShowPickup1();
|
||||
XX_SELECT_DIV.focus();
|
||||
return;
|
||||
}
|
||||
|
||||
// evaluate return data to object
|
||||
XX_TEXT = eval("(" + RespText + ")");
|
||||
|
||||
//
|
||||
if (notShowOnlyOneRecord && (XX_TEXT.ListData.Data.Rows.length == 1))
|
||||
{
|
||||
Update(0);
|
||||
return;
|
||||
}
|
||||
|
||||
// generate table for display result
|
||||
// draw title
|
||||
newRow = XX_SELECT_TITLE.insertRow(-1);
|
||||
newRow.bgColor = XX_TEXT.ListData.TitleBackgroundColor;
|
||||
for (i in XX_TEXT.ListData.ListTitles)
|
||||
{
|
||||
newCell = newRow.insertCell(-1);
|
||||
if ((typeof XX_TEXT.ListData.ListWidths[i] != "undefined") && (XX_TEXT.ListData.ListWidths[i] != ""))
|
||||
newCell.width = XX_TEXT.ListData.ListWidths[i] + "px";
|
||||
else
|
||||
newCell.width = "100px";
|
||||
// newCell.style = "padding:3px";
|
||||
newCell.innerHTML = "<div style='color:" + XX_TEXT.ListData.TitleTextColor
|
||||
+ ";font-size:" + XX_TEXT.ListData.TitleTextSize
|
||||
+ ";margin:0; padding:3px 0 3px 3px; border:none"
|
||||
+ ";line-height: 1.2rem"
|
||||
+ ";white-space:normal;word-break:break-all;display:block;width:calc(100% - 2px);height:100%;'>"
|
||||
+ XX_TEXT.ListData.ListTitles[i]
|
||||
+ "</div>";
|
||||
}
|
||||
|
||||
// draw content
|
||||
var n = 0;
|
||||
for (i = XX_Init_RecNo; i < XX_TEXT.ListData.Data.Rows.length; i++)
|
||||
{
|
||||
n++;
|
||||
newRow = XX_SELECT.insertRow(-1);
|
||||
if ((i * 1) % 2 == 1)
|
||||
newRow.bgColor = XX_TEXT.ListData.DataAltBackgroundColor;
|
||||
else
|
||||
newRow.bgColor = XX_TEXT.ListData.DataBackgroundColor;
|
||||
newRow.onclick = "Update(" + i + ")";
|
||||
newRow.onmouseover = "changeColor(this, "#ff9e28", "#FFFFFF")";
|
||||
newRow.onmouseout = "changeColor(this, "" + newRow.bgColor + "", "" + XX_TEXT.ListData.DataTextColor + "")";
|
||||
|
||||
for (j in XX_TEXT.ListData.ListFields)
|
||||
{
|
||||
newCell = newRow.insertCell(-1);
|
||||
|
||||
if ((typeof XX_TEXT.ListData.ListWidths[j] != "undefined") && (XX_TEXT.ListData.ListWidths[j] != ""))
|
||||
newCell.width = XX_TEXT.ListData.ListWidths[j] + "px";
|
||||
else
|
||||
newCell.width = "100px";
|
||||
|
||||
// newCell.style = "padding:3px";
|
||||
newCell.innerHTML = "<div onclick='Update(" + i + ")' "
|
||||
+ "onmouseover='changeColor(this, "#ff9e28", "#FFFFFF")' "
|
||||
+ "onmouseout='changeColor(this, "" + newRow.bgColor + "", "" + XX_TEXT.ListData.DataTextColor + "")' "
|
||||
+ "style='color:" + XX_TEXT.ListData.DataTextColor
|
||||
+ ";font-size:" + XX_TEXT.ListData.DataTextSize
|
||||
+ ";margin:0; padding:3px 0 3px 3px; border:none"
|
||||
+ ";line-height: 1.2rem"
|
||||
+ ";white-space:normal;word-break:break-all;display:block;width:calc(100% - 2px);height:100%;cursor:pointer'>"
|
||||
+ XX_TEXT.ListData.Data.FieldValue(i, XX_TEXT.ListData.ListFields[j])
|
||||
+ "</div>";
|
||||
}
|
||||
|
||||
// when record count is great then max_record setting, draw page-changing button
|
||||
if ((XX_Max_Records > 0 && n >= XX_Max_Records) || i == XX_TEXT.ListData.Data.Rows.length - 1)
|
||||
{
|
||||
XX_Next_RecNo = i + 1;
|
||||
XX_Prev_RecNo = XX_Init_RecNo - XX_Max_Records;
|
||||
|
||||
// newRow = XX_SELECT.insertRow(-1);
|
||||
// newCell = newRow.insertCell(-1);
|
||||
// newCell.colSpan = 99;
|
||||
|
||||
var s = "<input type='button' value=' << '"
|
||||
+ (XX_Prev_RecNo >= 0 ? "" : " disabled ")
|
||||
+ " onclick=\"SendPickupRequestCont("
|
||||
+ """ + XX_Url + "","
|
||||
+ """ + XX_Name + "","
|
||||
+ """ + XX_Value_Id + "","
|
||||
+ XX_Text_Id + ","
|
||||
+ """ + XX_Add_Where + "","
|
||||
+ (notShowOnlyOneRecord ? "true," : "false,")
|
||||
+ XX_Max_Records + ","
|
||||
+ XX_Prev_RecNo + ");\"/>"
|
||||
+ "<input type='button' value=' >> '"
|
||||
+ (i < XX_TEXT.ListData.Data.Rows.length - 1 ? "" : " disabled ")
|
||||
+ " onclick=\"SendPickupRequestCont("
|
||||
+ """ + XX_Url + "","
|
||||
+ """ + XX_Name + "","
|
||||
+ """ + XX_Value_Id + "","
|
||||
+ XX_Text_Id + ","
|
||||
+ """ + XX_Add_Where + "","
|
||||
+ (notShowOnlyOneRecord ? "true," : "false,")
|
||||
+ XX_Max_Records + ","
|
||||
+ XX_Next_RecNo + ");\"/>";
|
||||
// newCell.innerHTML = s;
|
||||
XX_PAGE_BUTTON.innerHTML = s;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
ShowPickup1();
|
||||
XX_SELECT_DIV.focus();
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// 使用 XMLHTTP 送出請求
|
||||
//--------------------------------------------
|
||||
function SendPickupRequestCont(url, name, AvalueId, AtextId, additionalWhere, notShowOnlyOne, maxRecords, initRecNo)
|
||||
{
|
||||
valueId = AvalueId;
|
||||
textId = AtextId;
|
||||
XX_Url = url;
|
||||
XX_Name = name;
|
||||
XX_Value_Id = AvalueId;
|
||||
XX_Add_Where = additionalWhere;
|
||||
XX_Max_Records = maxRecords;
|
||||
XX_Init_RecNo = initRecNo;
|
||||
notShowOnlyOneRecord = notShowOnlyOne;
|
||||
|
||||
// get value-input object
|
||||
objValue = document.getElementById(valueId);
|
||||
|
||||
// get output object(s)
|
||||
XX_Text_Id = "";
|
||||
if (typeof textId[0] != "undefined")
|
||||
{
|
||||
objOutput = new Array(textId.length);
|
||||
XX_Text_Id += "[";
|
||||
for (i = 0; i < textId.length; i++)
|
||||
{
|
||||
objOutput[i] = document.getElementById(textId[i]);
|
||||
XX_Text_Id += """ + textId[i] + """;
|
||||
|
||||
if (i < textId.length - 1)
|
||||
XX_Text_Id += ","
|
||||
}
|
||||
XX_Text_Id += "]";
|
||||
}
|
||||
else
|
||||
{
|
||||
objOutput = document.getElementById(textId);
|
||||
XX_Text_Id = textId;
|
||||
}
|
||||
|
||||
// get a HttpRequest object and sumbit request
|
||||
XmlHttp = initRequest();
|
||||
XmlHttp.open("GET", url + "?NAME=" + name + "&LANGID=" + UserLangId
|
||||
+ "&WHERE_KEY=" + escape(objValue.value)
|
||||
+ "&ADD_WHERE=" + escape(additionalWhere), true);
|
||||
XmlHttp.onreadystatechange = ShowPickup;
|
||||
XmlHttp.send("");
|
||||
}
|
||||
|
||||
function SendPickupRequest(url, name, AvalueId, AtextId, additionalWhere, notShowOnlyOne, maxRecords)
|
||||
{
|
||||
SendPickupRequestCont(url, name, AvalueId, AtextId, additionalWhere, notShowOnlyOne, maxRecords, 0);
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// 下拉清單的鍵盤事件處理程式
|
||||
//--------------------------------------------
|
||||
function SelectKeydown(e)
|
||||
{
|
||||
if (XX_SELECT.selectedIndex < 0)
|
||||
return;
|
||||
|
||||
var keynum = 0;
|
||||
|
||||
if (window.event)
|
||||
{
|
||||
keynum = event.keyCode;
|
||||
}
|
||||
else if (e.which)
|
||||
{
|
||||
keynum = e.which;
|
||||
}
|
||||
|
||||
switch (keynum)
|
||||
{
|
||||
// ESC key = close
|
||||
case 27:
|
||||
{
|
||||
HidePickupList();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// 下拉清單的滑鼠雙擊處理程式
|
||||
//--------------------------------------------
|
||||
function SelectDblClicked()
|
||||
{
|
||||
if (XX_SELECT.selectedIndex < 0)
|
||||
return;
|
||||
Update();
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// 更新頁面上的 HTML 元件中的值
|
||||
//--------------------------------------------
|
||||
function Update(value)
|
||||
{
|
||||
if (typeof objOutput[0] != "undefined")
|
||||
{
|
||||
for (i = 0; i < objOutput.length; i++)
|
||||
{
|
||||
if (typeof objOutput[i] != "undefined"
|
||||
&& typeof XX_TEXT.ListData.OutputFields[i] != "undefined"
|
||||
&& typeof XX_TEXT.ListData.Data.FieldValue(value, XX_TEXT.ListData.OutputFields[i]) != "undefined")
|
||||
{
|
||||
if (objOutput[i] != null)
|
||||
{
|
||||
if (objOutput[i].tagName == "INPUT")
|
||||
objOutput[i].value = XX_TEXT.ListData.Data.FieldValue(value, XX_TEXT.ListData.OutputFields[i]);
|
||||
else
|
||||
objOutput[i].innerHTML = XX_TEXT.ListData.Data.FieldValue(value, XX_TEXT.ListData.OutputFields[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (typeof objOutput != "undefined"
|
||||
&& typeof XX_TEXT.ListData.OutputFields[0] != "undefined"
|
||||
&& typeof XX_TEXT.ListData.Data.FieldValue(value, XX_TEXT.ListData.OutputFields[0]) != "undefined")
|
||||
{
|
||||
if (objOutput != null)
|
||||
{
|
||||
if (objOutput.tagName == "INPUT")
|
||||
objOutput.value = XX_TEXT.ListData.Data.FieldValue(value, XX_TEXT.ListData.OutputFields[i]);
|
||||
else
|
||||
objOutput.innerHTML = XX_TEXT.ListData.Data.FieldValue(value, XX_TEXT.ListData.OutputFields[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
HidePickupList();
|
||||
}
|
||||
|
||||
// for debug
|
||||
function Update1(obj)
|
||||
{
|
||||
alert(obj);
|
||||
HidePickupList();
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// 隱藏下拉清單, 並清除其中的資料
|
||||
//--------------------------------------------
|
||||
function HidePickupList()
|
||||
{
|
||||
XX_SELECT_DIV.style.display = "none";
|
||||
XX_SELECT_DIV.innerHTML = xx_select_html;
|
||||
//XX_SELECT_MASK.style.left = "0";
|
||||
//XX_SELECT_MASK.style.top = "0";
|
||||
//XX_SELECT_MASK.style.width = "0";
|
||||
//XX_SELECT_MASK.style.height = "0";
|
||||
objValue.focus();
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// 變數與常數宣告
|
||||
//--------------------------------------------
|
||||
var XX_SELECT = null;
|
||||
var XX_SELECT_DIV = null;
|
||||
var XX_SELECT_PANEL = null;
|
||||
var XX_SELECT_TITLE = null;
|
||||
//var XX_SELECT_MASK = null;
|
||||
var XX_TEXT = null;
|
||||
var objValue = null;
|
||||
var objOutput = null;
|
||||
var valueId = null;
|
||||
var textId = null;
|
||||
var notShowOnlyOneRecord = false;
|
||||
var XX_SELECT_SelectedIndex = -1;
|
||||
var XX_Url = "";
|
||||
var XX_Name = "";
|
||||
var XX_Value_Id = "";
|
||||
var XX_Text_Id = "";
|
||||
var XX_Add_Where = "";
|
||||
var XX_Max_Records = 100;
|
||||
var XX_Next_RecNo = 0;
|
||||
var XX_Prev_RecNo = 0;
|
||||
var XX_Init_RecNo = 0;
|
||||
var not_found_html1 = "<table border=0 cellpadding=0 cellspacing=0><tr><td>"
|
||||
+ "<table border=1 cellpadding=3 bgcolor=yellow>"
|
||||
+ "<tr><td><b><font color=black>";
|
||||
var not_found_html2 = "</font></b></td></tr></table></td><td valign='middle'>"
|
||||
+ "<INPUT type='button' id='XX_CLOSE_BTN' value=' X ' class='PickupCloseButton' "
|
||||
+ "onclick='javascript:HidePickupList();'></td></table>";
|
||||
var xx_select_html = "<table border='0' cellpadding='0' cellspacing='0'>"
|
||||
+ " <tr>"
|
||||
+ " <td id='XX_PAGE_BUTTON'>"
|
||||
+ " </td>"
|
||||
+ " <td style='text-align:right'>"
|
||||
+ " <INPUT type='button' id='XX_CLOSE_BTN' value=' X ' "
|
||||
+ " class='PickupCloseButton' onclick='javascript:HidePickupList();'>"
|
||||
+ " </td>"
|
||||
+ " </tr>"
|
||||
+ " <tr>"
|
||||
+ " <td colspan=2>"
|
||||
+ " <table id='XX_SELECT_TITLE' border='1' cellpadding='0' cellspacing='0' "
|
||||
+ " style='font-family:sans-serif;border-collapse:collapse;'>"
|
||||
+ " </table>"
|
||||
+ " </td>"
|
||||
+ " </tr>"
|
||||
+ " <tr>"
|
||||
+ " <td colspan=2>"
|
||||
+ " <div id='XX_SELECT_PANEL' style='display:block;overflow:auto'>"
|
||||
+ " <table id='XX_SELECT' border='1' cellpadding='0' cellspacing='0' "
|
||||
+ " style='font-family:sans-serif;border-collapse:collapse;'>"
|
||||
+ " </table>"
|
||||
+ " </div>"
|
||||
+ " </td>"
|
||||
+ " </tr>"
|
||||
+ "</table>";
|
||||
var outer_div_html = "<DIV id='XX_SELECT_DIV' "
|
||||
+ "style='left:0;top:0;display:none;background-color:#FFFFFF;position:absolute;z-index:999;border:solid 1px #000000' "
|
||||
+ "onkeydown='javascript:return SelectKeydown(event);'>";
|
||||
//var outer_iframe_html = "<iframe id='XX_SELECT_MASK' "
|
||||
// + "style='display:block;border:0px none;position:absolute;left:0;top:0;width:0;height:0' "
|
||||
// + "src='about:blank'></iframe>";
|
||||
//var outer_iframe_html = "<iframe id='XX_SELECT_MASK' "
|
||||
// + "style='display:block;border:0px none;position:absolute;left:0;top:0;width:0;height:0'"
|
||||
// + "</iframe>";
|
||||
|
||||
//--------------------------------------------
|
||||
// 頁面開啟之後會執行的程式片段
|
||||
// 這個 DIV 是用來放置下拉清單的
|
||||
//--------------------------------------------
|
||||
function InitLookupList()
|
||||
{
|
||||
//document.write(outer_div_html);
|
||||
//document.write(xx_select_html);
|
||||
//document.write("</DIV>");
|
||||
//document.write(outer_iframe_html);
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Processing</title>
|
||||
<meta http-equiv="Content-Type"
|
||||
content="text/html;charset=UTF-8">
|
||||
</head>
|
||||
<body>
|
||||
<table border="0" cellpadding="0" cellspacing="0" style="table-layout:fixed;">
|
||||
<tr>
|
||||
<td style="width: 3px; height:1px">
|
||||
<img src="../picture/window_caption_left_corner.gif" /></td>
|
||||
<td style="width: 4px; height:1px">
|
||||
<img src="../picture/window_caption_left.gif" /></td>
|
||||
<td style="width: 300px; height:1px">
|
||||
<img src="../picture/window_caption.gif" style="width:100%; height:27px" /></td>
|
||||
<td style="width: 4px; height:1px">
|
||||
<img src="../picture/window_caption_right.gif" /></td>
|
||||
<td style="width: 3px; height:1px">
|
||||
<img src="../picture/window_caption_right_corner.gif" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 3px; height:120px">
|
||||
<img src="../picture/window_left_border.gif" style="width:100%; height:100%" /></td>
|
||||
<td colspan="3" style="background-color:#f0f0f0; vertical-align:middle;">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
||||
<tr>
|
||||
<td align="center" style="width: 80px" valign="middle">
|
||||
<img src="../picture/Progressbar04.gif" /></td>
|
||||
<td align="center" colspan="1" valign="middle">
|
||||
<span style="font-size: 14pt; font-family: Arial; font-weight:bold">資料處理中, 請稍候...</span></td>
|
||||
</tr>
|
||||
</table></td>
|
||||
<td style="width: 3px; height:120px">
|
||||
<img src="../picture/window_right_border.gif" style="width:100%; height:100%" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 3px; height:3px">
|
||||
<img src="../picture/window_lower_left_corner.gif" /></td>
|
||||
<td colspan="3" style="height:3px; width: 308px;">
|
||||
<img src="../picture/window_lower_border.gif" width="100%" height="3" /></td>
|
||||
<td style="width: 3px; height:3px">
|
||||
<img src="../picture/window_lower_right_corner.gif" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,109 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="TimeInput.ascx.cs" Inherits="utility_TimeInput" %>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td>
|
||||
<asp:DropDownList ID="ddlHour" runat="server">
|
||||
<asp:ListItem Text="" Value="" />
|
||||
<asp:ListItem Text="00" Value="00" />
|
||||
<asp:ListItem Text="01" Value="01" />
|
||||
<asp:ListItem Text="02" Value="02" />
|
||||
<asp:ListItem Text="03" Value="03" />
|
||||
<asp:ListItem Text="04" Value="04" />
|
||||
<asp:ListItem Text="05" Value="05" />
|
||||
<asp:ListItem Text="06" Value="06" />
|
||||
<asp:ListItem Text="07" Value="07" />
|
||||
<asp:ListItem Text="08" Value="08" />
|
||||
<asp:ListItem Text="09" Value="09" />
|
||||
<asp:ListItem Text="10" Value="10" />
|
||||
<asp:ListItem Text="11" Value="11" />
|
||||
<asp:ListItem Text="12" Value="12" />
|
||||
<asp:ListItem Text="13" Value="13" />
|
||||
<asp:ListItem Text="14" Value="14" />
|
||||
<asp:ListItem Text="15" Value="15" />
|
||||
<asp:ListItem Text="16" Value="16" />
|
||||
<asp:ListItem Text="17" Value="17" />
|
||||
<asp:ListItem Text="18" Value="18" />
|
||||
<asp:ListItem Text="19" Value="19" />
|
||||
<asp:ListItem Text="20" Value="20" />
|
||||
<asp:ListItem Text="21" Value="21" />
|
||||
<asp:ListItem Text="22" Value="22" />
|
||||
<asp:ListItem Text="23" Value="23" />
|
||||
<asp:ListItem Text="24" Value="24" />
|
||||
<asp:ListItem Text="25" Value="25" />
|
||||
<asp:ListItem Text="26" Value="26" />
|
||||
<asp:ListItem Text="27" Value="27" />
|
||||
<asp:ListItem Text="28" Value="28" />
|
||||
<asp:ListItem Text="29" Value="29" />
|
||||
</asp:DropDownList>
|
||||
</td>
|
||||
<td style="padding-left: 3px; padding-right: 3px;">
|
||||
<asp:Label ID="Label3" runat="server" Text=":"></asp:Label>
|
||||
</td>
|
||||
<td>
|
||||
<asp:DropDownList ID="ddlMinute" runat="server">
|
||||
<asp:ListItem Text="" Value="" />
|
||||
<asp:ListItem Text="00" Value="00" />
|
||||
<asp:ListItem Text="01" Value="01" />
|
||||
<asp:ListItem Text="02" Value="02" />
|
||||
<asp:ListItem Text="03" Value="03" />
|
||||
<asp:ListItem Text="04" Value="04" />
|
||||
<asp:ListItem Text="05" Value="05" />
|
||||
<asp:ListItem Text="06" Value="06" />
|
||||
<asp:ListItem Text="07" Value="07" />
|
||||
<asp:ListItem Text="08" Value="08" />
|
||||
<asp:ListItem Text="09" Value="09" />
|
||||
<asp:ListItem Text="10" Value="10" />
|
||||
<asp:ListItem Text="11" Value="11" />
|
||||
<asp:ListItem Text="12" Value="12" />
|
||||
<asp:ListItem Text="13" Value="13" />
|
||||
<asp:ListItem Text="14" Value="14" />
|
||||
<asp:ListItem Text="15" Value="15" />
|
||||
<asp:ListItem Text="16" Value="16" />
|
||||
<asp:ListItem Text="17" Value="17" />
|
||||
<asp:ListItem Text="18" Value="18" />
|
||||
<asp:ListItem Text="19" Value="19" />
|
||||
<asp:ListItem Text="20" Value="20" />
|
||||
<asp:ListItem Text="21" Value="21" />
|
||||
<asp:ListItem Text="22" Value="22" />
|
||||
<asp:ListItem Text="23" Value="23" />
|
||||
<asp:ListItem Text="24" Value="24" />
|
||||
<asp:ListItem Text="25" Value="25" />
|
||||
<asp:ListItem Text="26" Value="26" />
|
||||
<asp:ListItem Text="27" Value="27" />
|
||||
<asp:ListItem Text="28" Value="28" />
|
||||
<asp:ListItem Text="29" Value="29" />
|
||||
<asp:ListItem Text="30" Value="30" />
|
||||
<asp:ListItem Text="31" Value="31" />
|
||||
<asp:ListItem Text="32" Value="32" />
|
||||
<asp:ListItem Text="33" Value="33" />
|
||||
<asp:ListItem Text="34" Value="34" />
|
||||
<asp:ListItem Text="35" Value="35" />
|
||||
<asp:ListItem Text="36" Value="36" />
|
||||
<asp:ListItem Text="37" Value="37" />
|
||||
<asp:ListItem Text="38" Value="38" />
|
||||
<asp:ListItem Text="39" Value="39" />
|
||||
<asp:ListItem Text="40" Value="40" />
|
||||
<asp:ListItem Text="41" Value="41" />
|
||||
<asp:ListItem Text="42" Value="42" />
|
||||
<asp:ListItem Text="43" Value="43" />
|
||||
<asp:ListItem Text="44" Value="44" />
|
||||
<asp:ListItem Text="45" Value="45" />
|
||||
<asp:ListItem Text="46" Value="46" />
|
||||
<asp:ListItem Text="47" Value="47" />
|
||||
<asp:ListItem Text="48" Value="48" />
|
||||
<asp:ListItem Text="49" Value="49" />
|
||||
<asp:ListItem Text="50" Value="50" />
|
||||
<asp:ListItem Text="51" Value="51" />
|
||||
<asp:ListItem Text="52" Value="52" />
|
||||
<asp:ListItem Text="53" Value="53" />
|
||||
<asp:ListItem Text="54" Value="54" />
|
||||
<asp:ListItem Text="55" Value="55" />
|
||||
<asp:ListItem Text="56" Value="56" />
|
||||
<asp:ListItem Text="57" Value="57" />
|
||||
<asp:ListItem Text="58" Value="58" />
|
||||
<asp:ListItem Text="59" Value="59" />
|
||||
</asp:DropDownList>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.ComponentModel;
|
||||
|
||||
[DefaultBindingProperty("Time")]
|
||||
public partial class utility_TimeInput : System.Web.UI.UserControl
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (ViewState["TIME"] != null)
|
||||
SetTime(ViewState["TIME"].ToString());
|
||||
}
|
||||
|
||||
[Bindable(BindableSupport.Yes, BindingDirection.TwoWay)]
|
||||
public string Time
|
||||
{
|
||||
get
|
||||
{
|
||||
return GetTime();
|
||||
}
|
||||
set
|
||||
{
|
||||
ViewState["TIME"] = value;
|
||||
SetTime(value);
|
||||
}
|
||||
}
|
||||
|
||||
private void SetTime(string time)
|
||||
{
|
||||
if (time == null || time.Length < 5)
|
||||
return;
|
||||
string h = time.Substring(0, 2);
|
||||
string m = time.Substring(3, 2);
|
||||
|
||||
if (ddlHour.Items.FindByValue(h) != null)
|
||||
ddlHour.SelectedValue = h;
|
||||
|
||||
if (ddlMinute.Items.FindByValue(m) != null)
|
||||
ddlMinute.SelectedValue = m;
|
||||
}
|
||||
|
||||
private string GetTime()
|
||||
{
|
||||
if (ddlHour.SelectedValue == "" || ddlMinute.SelectedValue == "")
|
||||
return "";
|
||||
else
|
||||
return ddlHour.SelectedValue + ":" + ddlMinute.SelectedValue;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,632 @@
|
||||
//--------------------------------------------
|
||||
// 開窗挑選日期
|
||||
//--------------------------------------------
|
||||
function PickDate(objid, aCY11, OLD_VALUE)
|
||||
{
|
||||
var aValue = "";
|
||||
var CY11 = 1911;
|
||||
var SEPARATOR = "";
|
||||
|
||||
//alert(UserLangId.toUpperCase());
|
||||
//if (UserLangId.toUpperCase() == "ZH-TW")
|
||||
// CY11 = 1911;
|
||||
|
||||
if (window.showModalDialog)
|
||||
{
|
||||
var datePicker = document.getElementById("DatePicker");
|
||||
var objValue = document.getElementById(objid);
|
||||
|
||||
datePicker.setAttribute("src", "utility/DatePicker.aspx?SENDER=" + objid + "&CY11=" + CY11 + "&SEPARATOR=" + SEPARATOR);
|
||||
//datePicker.style.display = "block";
|
||||
datePicker.style.width = 260;
|
||||
datePicker.style.height = 260;
|
||||
datePicker.style.left = offsetLeft(objValue) + "px";
|
||||
datePicker.style.top = offsetTop(objValue) + objValue.offsetHeight + "px";
|
||||
|
||||
//alert(datePicker.offsetTop);
|
||||
//alert(datePicker.offsetHeight);
|
||||
//alert(document.body.clientHeight);
|
||||
|
||||
if (datePicker.offsetTop + datePicker.offsetHeight > document.body.clientHeight)
|
||||
datePicker.style.top = document.body.clientHeight - datePicker.offsetHeight + "px";
|
||||
|
||||
if (datePicker.offsetLeft + datePicker.offsetWidth > document.body.clientWidth)
|
||||
datePicker.style.left = document.body.clientWidth - datePicker.offsetWidth + "px";
|
||||
|
||||
//datePicker.sender = document.getElementById(objid);
|
||||
|
||||
//var blocker = document.getElementById("Blocker");
|
||||
//blocker.src = "utility/blocker.htm";
|
||||
//blocker.src = "about:blank";
|
||||
//blocker.style.display = "block";
|
||||
//blocker.style.width = "100%";
|
||||
//blocker.style.height = "100%";
|
||||
}
|
||||
else
|
||||
{
|
||||
window.open(`utility/DatePicker.aspx?SENDER=${objid}&CY11=${CY11}&SEPARATOR=${SEPARATOR}&VALUE=${OLD_VALUE}`
|
||||
, "_new"
|
||||
, `height=${240 * window.devicePixelRatio}px,width=${280 * window.devicePixelRatio}px,help=no,status=no,resizable=no,toolbar=no`
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// 存檔前檢查
|
||||
//--------------------------------------------
|
||||
function CheckInput()
|
||||
{
|
||||
var i = 0;
|
||||
// 檢查不可空白欄位
|
||||
for (i in arNotEmpty)
|
||||
{
|
||||
obj = document.getElementById(arNotEmpty[i]);
|
||||
if (!CheckEmpty(obj, arObjName[arNotEmpty[i]]))
|
||||
return false;
|
||||
}
|
||||
|
||||
// 檢查數值欄位
|
||||
i = 0;
|
||||
for (i in arIsNumber)
|
||||
{
|
||||
obj = document.getElementById(arIsNumber[i]);
|
||||
if (!CheckNumber(obj, arObjName[arIsNumber[i]]))
|
||||
return false;
|
||||
}
|
||||
|
||||
// 檢查日期欄位
|
||||
i = 0;
|
||||
for (i in arIsDate)
|
||||
{
|
||||
obj = document.getElementById(arIsDate[i]);
|
||||
if (!CheckDate(obj, arObjName[arIsDate[i]]))
|
||||
return false;
|
||||
}
|
||||
|
||||
return confirm(msgConfirmSave);
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// 檢查是否空白
|
||||
//--------------------------------------------
|
||||
function CheckEmpty(obj, objCaption)
|
||||
{
|
||||
if (obj.value === "")
|
||||
{
|
||||
s = msgNotEmpty + " \"" + objCaption + "\".";
|
||||
alert(s);
|
||||
obj.focus();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// 檢查是否輸入為數值
|
||||
//--------------------------------------------
|
||||
function CheckNumber(obj, objCaption)
|
||||
{
|
||||
if (isNaN(parseFloat(obj.value)))
|
||||
{
|
||||
s = " \"" + objCaption + "\" " + msgMustNumber;
|
||||
alert(s);
|
||||
obj.focus();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// 檢查日期是否合理
|
||||
//--------------------------------------------
|
||||
function CheckDate(obj, objCaption)
|
||||
{
|
||||
if (parseDate(obj) !== null)
|
||||
{
|
||||
s = " \"" + objCaption + "\" " + msgMustDate;
|
||||
alert(s);
|
||||
obj.focus();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------
|
||||
// 取得按下按鍵相關資料
|
||||
//------------------------------------------------------------
|
||||
function GetKeyData(evt)
|
||||
{
|
||||
if (!evt)
|
||||
{
|
||||
// grab IE event object
|
||||
evt = window.event
|
||||
}
|
||||
else if (!evt.keyCode)
|
||||
{
|
||||
// grab NN4 event info
|
||||
evt.keyCode = evt.which;
|
||||
evt.altKey = evt.modifiers & Event.ALT_MASK;
|
||||
evt.ctrlKey = evt.modifiers & Event.CONTROL_MASK;
|
||||
evt.shiftKey = evt.modifiers & Event.SHIFT_MASK;
|
||||
}
|
||||
return evt;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------
|
||||
// 取得按下的按鍵,可在 onKeyDown, onKeyUp, onKeyPress 中使用
|
||||
//------------------------------------------------------------
|
||||
function GetKeyCode(evt)
|
||||
{
|
||||
return GetKeyData(evt).keyCode;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------
|
||||
// 判斷按下的是否為某鍵
|
||||
//------------------------------------------------------------
|
||||
function IsKeyCode(evt, keyCode, altKey, ctrlKey, shiftKey)
|
||||
{
|
||||
var keyEvt = GetKeyData(evt);
|
||||
return (keyEvt.keyCode === keyCode &&
|
||||
((!altKey && !keyEvt.altKey) || (altKey && keyEvt.altKey)) &&
|
||||
((!ctrlKey && !keyEvt.ctrlKey) || (ctrlKey && keyEvt.ctrlKey)) &&
|
||||
((!shiftKey && !keyEvt.shiftKey) || (shiftKey && keyEvt.shiftKey)));
|
||||
}
|
||||
|
||||
//------------------------------------------------------------
|
||||
// 延遲若干毫秒後顯示 "處理中"
|
||||
//------------------------------------------------------------
|
||||
function ShowProcessing(delay)
|
||||
{
|
||||
if (typeof delay !== "undefined")
|
||||
window.setTimeout(ShowProcessing1, delay);
|
||||
else
|
||||
ShowProcessing1();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------
|
||||
// 顯示 "處理中"
|
||||
//------------------------------------------------------------
|
||||
function ShowProcessing1()
|
||||
{
|
||||
var datePicker = document.getElementById("DatePicker");
|
||||
datePicker.src = "utility/Processing.htm";
|
||||
datePicker.style.width = 340;
|
||||
datePicker.style.height = 180;
|
||||
datePicker.style.left = Math.round((document.body.clientWidth - datePicker.offsetWidth) / 2) + "px";
|
||||
datePicker.style.top = Math.round((document.body.clientHeight - datePicker.offsetHeight) / 2) + "px";
|
||||
datePicker.style.border = "none";
|
||||
}
|
||||
|
||||
//------------------------------------------------------------
|
||||
// 隱藏 "處理中"
|
||||
//------------------------------------------------------------
|
||||
function HideProcessing()
|
||||
{
|
||||
var datePicker = document.getElementById("DatePicker");
|
||||
datePicker.style.width = 0;
|
||||
datePicker.style.height = 0;
|
||||
datePicker.style.left = 0;
|
||||
datePicker.style.top = 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 顯示 CR 報表
|
||||
* @param {string} ra 服務器 URL
|
||||
* @param {string} rr 報表檔名稱
|
||||
* @param {string} rd 資料檔名稱
|
||||
* @param {string} rp 參數檔名稱
|
||||
* @param {string} ldir 本地暫存目錄,可空白
|
||||
* @param {string} lr 本地暫存報表檔名稱,可空白
|
||||
* @param {string} ld 本地暫存資料檔名稱,可空白
|
||||
* @param {string} lp 本地暫存參數檔名稱,可空白
|
||||
* @param {string} un 登入的帳號,若服務器要求 Windows 登入則需要
|
||||
* @param {string} up 登入的密碼,若服務器要求 Windows 登入則需要
|
||||
* @param {string} ud 登入的域名,若服務器要求 Windows 登入則需要
|
||||
*/
|
||||
function ShowReportJSONP(ra, rr, rd, rp, ldir, lr, ld, lp, un, up, ud)
|
||||
{
|
||||
var url = "http://localhost:8688/CRV";
|
||||
url += ra ? "?ra=" + ra : "";
|
||||
url += rr ? "&rr=" + rr : "";
|
||||
url += rd ? "&rd=" + rd : "";
|
||||
url += rp ? "&rp=" + rp : "";
|
||||
url += ldir ? "&ldir=" + ldir : "";
|
||||
url += lr ? "&lr=" + lr : "";
|
||||
url += ld ? "&ld=" + ld : "";
|
||||
url += lp ? "&lp=" + lp : "";
|
||||
url += un ? "&un=" + un : "";
|
||||
url += up ? "&up=" + up : "";
|
||||
url += ud ? "&ud=" + ud : "";
|
||||
url += "&now=" + Date.now();
|
||||
|
||||
// navigator.sendBeacon(url);
|
||||
var script = document.createElement('script');
|
||||
script.setAttribute('src', url);
|
||||
document.getElementsByTagName('head')[0].appendChild(script);
|
||||
}
|
||||
|
||||
|
||||
// ===================================================================
|
||||
// Author: Matt Kruse <matt@mattkruse.com>
|
||||
// WWW: http://www.mattkruse.com/
|
||||
//
|
||||
// NOTICE: You may use this code for any purpose, commercial or
|
||||
// private, without any further permission from the author. You may
|
||||
// remove this notice from your final code if you wish, however it is
|
||||
// appreciated by the author if at least my web site address is kept.
|
||||
//
|
||||
// You may *NOT* re-distribute this code in any way except through its
|
||||
// use. That means, you can include it in your product, or your web
|
||||
// site, or any other form where the code is actually being used. You
|
||||
// may not put the plain javascript up on your site for download or
|
||||
// include it in your javascript libraries for download.
|
||||
// If you wish to share this code with others, please just point them
|
||||
// to the URL instead.
|
||||
// Please DO NOT link directly to my .js files from your site. Copy
|
||||
// the files to your server and use them there. Thank you.
|
||||
// ===================================================================
|
||||
|
||||
// HISTORY
|
||||
// ------------------------------------------------------------------
|
||||
// May 17, 2003: Fixed bug in parseDate() for dates <1970
|
||||
// March 11, 2003: Added parseDate() function
|
||||
// March 11, 2003: Added "NNN" formatting option. Doesn't match up
|
||||
// perfectly with SimpleDateFormat formats, but
|
||||
// backwards-compatability was required.
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// These functions use the same 'format' strings as the
|
||||
// java.text.SimpleDateFormat class, with minor exceptions.
|
||||
// The format string consists of the following abbreviations:
|
||||
//
|
||||
// Field | Full Form | Short Form
|
||||
// -------------+--------------------+-----------------------
|
||||
// Year | yyyy (4 digits) | yy (2 digits), y (2 or 4 digits)
|
||||
// Month | MMM (name or abbr.)| MM (2 digits), M (1 or 2 digits)
|
||||
// | NNN (abbr.) |
|
||||
// Day of Month | dd (2 digits) | d (1 or 2 digits)
|
||||
// Day of Week | EE (name) | E (abbr)
|
||||
// Hour (1-12) | hh (2 digits) | h (1 or 2 digits)
|
||||
// Hour (0-23) | HH (2 digits) | H (1 or 2 digits)
|
||||
// Hour (0-11) | KK (2 digits) | K (1 or 2 digits)
|
||||
// Hour (1-24) | kk (2 digits) | k (1 or 2 digits)
|
||||
// Minute | mm (2 digits) | m (1 or 2 digits)
|
||||
// Second | ss (2 digits) | s (1 or 2 digits)
|
||||
// AM/PM | a |
|
||||
//
|
||||
// NOTE THE DIFFERENCE BETWEEN MM and mm! Month=MM, not mm!
|
||||
// Examples:
|
||||
// "MMM d, y" matches: January 01, 2000
|
||||
// Dec 1, 1900
|
||||
// Nov 20, 00
|
||||
// "M/d/yy" matches: 01/20/00
|
||||
// 9/2/00
|
||||
// "MMM dd, yyyy hh:mm:ssa" matches: "January 01, 2000 12:30:45AM"
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
var MONTH_NAMES = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
|
||||
var DAY_NAMES = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
|
||||
function LZ(x) { return (x < 0 || x > 9 ? "" : "0") + x }
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// isDate ( date_string, format_string )
|
||||
// Returns true if date string matches format of format string and
|
||||
// is a valid date. Else returns false.
|
||||
// It is recommended that you trim whitespace around the value before
|
||||
// passing it to this function, as whitespace is NOT ignored!
|
||||
// ------------------------------------------------------------------
|
||||
function isDate(val, format)
|
||||
{
|
||||
var date = getDateFromFormat(val, format);
|
||||
if (date === 0) { return false; }
|
||||
return true;
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// compareDates(date1,date1format,date2,date2format)
|
||||
// Compare two date strings to see which is greater.
|
||||
// Returns:
|
||||
// 1 if date1 is greater than date2
|
||||
// 0 if date2 is greater than date1 of if they are the same
|
||||
// -1 if either of the dates is in an invalid format
|
||||
// -------------------------------------------------------------------
|
||||
function compareDates(date1, dateformat1, date2, dateformat2)
|
||||
{
|
||||
var d1 = getDateFromFormat(date1, dateformat1);
|
||||
var d2 = getDateFromFormat(date2, dateformat2);
|
||||
if (d1 === 0 || d2 === 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
else if (d1 > d2)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// formatDate (date_object, format)
|
||||
// Returns a date in the output format specified.
|
||||
// The format string uses the same abbreviations as in getDateFromFormat()
|
||||
// ------------------------------------------------------------------
|
||||
function formatDate(date, format)
|
||||
{
|
||||
format = format + "";
|
||||
var result = "";
|
||||
var i_format = 0;
|
||||
var c = "";
|
||||
var token = "";
|
||||
var y = date.getYear() + "";
|
||||
var M = date.getMonth() + 1;
|
||||
var d = date.getDate();
|
||||
var E = date.getDay();
|
||||
var H = date.getHours();
|
||||
var m = date.getMinutes();
|
||||
var s = date.getSeconds();
|
||||
var yyyy, yy, MMM, MM, dd, hh, h, mm, ss, ampm, HH, KK, K, kk, k;
|
||||
// Convert real date parts into formatted versions
|
||||
var value = new Object();
|
||||
if (y.length < 4) { y = "" + (y - 0 + 1900); }
|
||||
value["y"] = "" + y;
|
||||
value["yyyy"] = y;
|
||||
value["yy"] = y.substring(2, 4);
|
||||
value["M"] = M;
|
||||
value["MM"] = LZ(M);
|
||||
value["MMM"] = MONTH_NAMES[M - 1];
|
||||
value["NNN"] = MONTH_NAMES[M + 11];
|
||||
value["d"] = d;
|
||||
value["dd"] = LZ(d);
|
||||
value["E"] = DAY_NAMES[E + 7];
|
||||
value["EE"] = DAY_NAMES[E];
|
||||
value["H"] = H;
|
||||
value["HH"] = LZ(H);
|
||||
if (H === 0) { value["h"] = 12; }
|
||||
else if (H > 12) { value["h"] = H - 12; }
|
||||
else { value["h"] = H; }
|
||||
value["hh"] = LZ(value["h"]);
|
||||
if (H > 11) { value["K"] = H - 12; } else { value["K"] = H; }
|
||||
value["k"] = H + 1;
|
||||
value["KK"] = LZ(value["K"]);
|
||||
value["kk"] = LZ(value["k"]);
|
||||
if (H > 11) { value["a"] = "PM"; }
|
||||
else { value["a"] = "AM"; }
|
||||
value["m"] = m;
|
||||
value["mm"] = LZ(m);
|
||||
value["s"] = s;
|
||||
value["ss"] = LZ(s);
|
||||
while (i_format < format.length)
|
||||
{
|
||||
c = format.charAt(i_format);
|
||||
token = "";
|
||||
while ((format.charAt(i_format) === c) && (i_format < format.length))
|
||||
{
|
||||
token += format.charAt(i_format++);
|
||||
}
|
||||
if (value[token] !== null) { result = result + value[token]; }
|
||||
else { result = result + token; }
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// Utility functions for parsing in getDateFromFormat()
|
||||
// ------------------------------------------------------------------
|
||||
function _isInteger(val)
|
||||
{
|
||||
var digits = "1234567890";
|
||||
for (var i = 0; i < val.length; i++)
|
||||
{
|
||||
if (digits.indexOf(val.charAt(i)) === -1) { return false; }
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function _getInt(str, i, minlength, maxlength)
|
||||
{
|
||||
for (var x = maxlength; x >= minlength; x--)
|
||||
{
|
||||
var token = str.substring(i, i + x);
|
||||
if (token.length < minlength) { return null; }
|
||||
if (_isInteger(token)) { return token; }
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// getDateFromFormat( date_string , format_string )
|
||||
//
|
||||
// This function takes a date string and a format string. It matches
|
||||
// If the date string matches the format string, it returns the
|
||||
// getTime() of the date. If it does not match, it returns 0.
|
||||
// ------------------------------------------------------------------
|
||||
function getDateFromFormat(val, format)
|
||||
{
|
||||
val = val + "";
|
||||
format = format + "";
|
||||
var i_val = 0;
|
||||
var i_format = 0;
|
||||
var c = "";
|
||||
var token = "";
|
||||
var token2 = "";
|
||||
var x, y;
|
||||
var now = new Date();
|
||||
var year = now.getYear();
|
||||
var month = now.getMonth() + 1;
|
||||
var date = 1;
|
||||
var hh = now.getHours();
|
||||
var mm = now.getMinutes();
|
||||
var ss = now.getSeconds();
|
||||
var ampm = "";
|
||||
|
||||
while (i_format < format.length)
|
||||
{
|
||||
// Get next token from format string
|
||||
c = format.charAt(i_format);
|
||||
token = "";
|
||||
while ((format.charAt(i_format) === c) && (i_format < format.length))
|
||||
{
|
||||
token += format.charAt(i_format++);
|
||||
}
|
||||
// Extract contents of value based on format token
|
||||
if (token === "yyyy" || token === "yy" || token === "y")
|
||||
{
|
||||
if (token === "yyyy") { x = 4; y = 4; }
|
||||
if (token === "yy") { x = 2; y = 2; }
|
||||
if (token === "y") { x = 2; y = 4; }
|
||||
year = _getInt(val, i_val, x, y);
|
||||
if (year === null) { return 0; }
|
||||
i_val += year.length;
|
||||
if (year.length === 2)
|
||||
{
|
||||
if (year > 70) { year = 1900 + (year - 0); }
|
||||
else { year = 2000 + (year - 0); }
|
||||
}
|
||||
}
|
||||
else if (token === "MMM" || token === "NNN")
|
||||
{
|
||||
month = 0;
|
||||
for (var i = 0; i < MONTH_NAMES.length; i++)
|
||||
{
|
||||
var month_name = MONTH_NAMES[i];
|
||||
if (val.substring(i_val, i_val + month_name.length).toLowerCase() === month_name.toLowerCase())
|
||||
{
|
||||
if (token === "MMM" || (token === "NNN" && i > 11))
|
||||
{
|
||||
month = i + 1;
|
||||
if (month > 12) { month -= 12; }
|
||||
i_val += month_name.length;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((month < 1) || (month > 12)) { return 0; }
|
||||
}
|
||||
else if (token === "EE" || token === "E")
|
||||
{
|
||||
for (i = 0; i < DAY_NAMES.length; i++)
|
||||
{
|
||||
var day_name = DAY_NAMES[i];
|
||||
if (val.substring(i_val, i_val + day_name.length).toLowerCase() === day_name.toLowerCase())
|
||||
{
|
||||
i_val += day_name.length;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (token === "MM" || token === "M")
|
||||
{
|
||||
month = _getInt(val, i_val, token.length, 2);
|
||||
if (month === null || (month < 1) || (month > 12)) { return 0; }
|
||||
i_val += month.length;
|
||||
}
|
||||
else if (token === "dd" || token === "d")
|
||||
{
|
||||
date = _getInt(val, i_val, token.length, 2);
|
||||
if (date === null || (date < 1) || (date > 31)) { return 0; }
|
||||
i_val += date.length;
|
||||
}
|
||||
else if (token === "hh" || token === "h")
|
||||
{
|
||||
hh = _getInt(val, i_val, token.length, 2);
|
||||
if (hh === null || (hh < 1) || (hh > 12)) { return 0; }
|
||||
i_val += hh.length;
|
||||
}
|
||||
else if (token === "HH" || token === "H")
|
||||
{
|
||||
hh = _getInt(val, i_val, token.length, 2);
|
||||
if (hh === null || (hh < 0) || (hh > 23)) { return 0; }
|
||||
i_val += hh.length;
|
||||
}
|
||||
else if (token === "KK" || token === "K")
|
||||
{
|
||||
hh = _getInt(val, i_val, token.length, 2);
|
||||
if (hh === null || (hh < 0) || (hh > 11)) { return 0; }
|
||||
i_val += hh.length;
|
||||
}
|
||||
else if (token === "kk" || token === "k")
|
||||
{
|
||||
hh = _getInt(val, i_val, token.length, 2);
|
||||
if (hh === null || (hh < 1) || (hh > 24)) { return 0; }
|
||||
i_val += hh.length; hh--;
|
||||
}
|
||||
else if (token === "mm" || token === "m")
|
||||
{
|
||||
mm = _getInt(val, i_val, token.length, 2);
|
||||
if (mm === null || (mm < 0) || (mm > 59)) { return 0; }
|
||||
i_val += mm.length;
|
||||
}
|
||||
else if (token === "ss" || token === "s")
|
||||
{
|
||||
ss = _getInt(val, i_val, token.length, 2);
|
||||
if (ss === null || (ss < 0) || (ss > 59)) { return 0; }
|
||||
i_val += ss.length;
|
||||
}
|
||||
else if (token === "a")
|
||||
{
|
||||
if (val.substring(i_val, i_val + 2).toLowerCase() === "am") { ampm = "AM"; }
|
||||
else if (val.substring(i_val, i_val + 2).toLowerCase() === "pm") { ampm = "PM"; }
|
||||
else { return 0; }
|
||||
i_val += 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (val.substring(i_val, i_val + token.length) !== token) { return 0; }
|
||||
else { i_val += token.length; }
|
||||
}
|
||||
}
|
||||
// If there are any trailing characters left in the value, it doesn't match
|
||||
if (i_val !== val.length) { return 0; }
|
||||
// Is date valid for month?
|
||||
if (month === 2)
|
||||
{
|
||||
// Check for leap year
|
||||
if (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0))
|
||||
{ // leap year
|
||||
if (date > 29) { return 0; }
|
||||
}
|
||||
else { if (date > 28) { return 0; } }
|
||||
}
|
||||
if ((month === 4) || (month === 6) || (month === 9) || (month === 11))
|
||||
{
|
||||
if (date > 30) { return 0; }
|
||||
}
|
||||
// Correct hours value
|
||||
if (hh < 12 && ampm === "PM") { hh = hh - 0 + 12; }
|
||||
else if (hh > 11 && ampm === "AM") { hh -= 12; }
|
||||
var newdate = new Date(year, month - 1, date, hh, mm, ss);
|
||||
return newdate.getTime();
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// parseDate( date_string [, prefer_euro_format] )
|
||||
//
|
||||
// This function takes a date string and tries to match it to a
|
||||
// number of possible date formats to get the value. It will try to
|
||||
// match against the following international formats, in this order:
|
||||
// y-M-d MMM d, y MMM d,y y-MMM-d d-MMM-y MMM d
|
||||
// M/d/y M-d-y M.d.y MMM-d M/d M-d
|
||||
// d/M/y d-M-y d.M.y d-MMM d/M d-M
|
||||
// A second argument may be passed to instruct the method to search
|
||||
// for formats like d/M/y (european format) before M/d/y (American).
|
||||
// Returns a Date object or null if no patterns match.
|
||||
// ------------------------------------------------------------------
|
||||
function parseDate(val)
|
||||
{
|
||||
var preferEuro = (arguments.length === 2) ? arguments[1] : false;
|
||||
generalFormats = new Array('y/M/d', 'yyyy/MM/dd', 'y-M-d', 'MMM d, y', 'MMM d,y', 'y-MMM-d', 'd-MMM-y', 'MMM d');
|
||||
monthFirst = new Array('M/d/y', 'M-d-y', 'M.d.y', 'MMM-d', 'M/d', 'M-d');
|
||||
dateFirst = new Array('d/M/y', 'd-M-y', 'd.M.y', 'd-MMM', 'd/M', 'd-M');
|
||||
var checkList = new Array('generalFormats', preferEuro ? 'dateFirst' : 'monthFirst', preferEuro ? 'monthFirst' : 'dateFirst');
|
||||
var d = null;
|
||||
for (var i = 0; i < checkList.length; i++)
|
||||
{
|
||||
var l = window[checkList[i]];
|
||||
for (var j = 0; j < l.length; j++)
|
||||
{
|
||||
d = getDateFromFormat(val, l[j]);
|
||||
if (d !== 0) { return new Date(d); }
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -0,0 +1,269 @@
|
||||
// --------------------------------------------------------------------------
|
||||
//
|
||||
// 地址輸入用的 JavaScript
|
||||
//
|
||||
// 2012/08/28 1. 去除 eval 語法,改用直接 JSON
|
||||
// 2. 去除 zipData 底下的 Data,將 Country 與 Township 提上來一層
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
// 定義輔助輸入用的類別
|
||||
function WAddressEditorClass()
|
||||
{
|
||||
this.FillSelect1 = FillSelect1;
|
||||
this.FillSelect2 = FillSelect2;
|
||||
this.FillZipCode = FillZipCode;
|
||||
this.ZipcodeChange = ZipcodeChange;
|
||||
|
||||
// 這是用 JSON 表示法表示的資料
|
||||
var zipData =
|
||||
{
|
||||
"County":
|
||||
["縣市", "基隆市", "台北市", "新北市", "桃園市", "新竹市", "新竹縣", "苗栗縣", "台中市",
|
||||
"彰化縣", "南投縣", "雲林縣", "嘉義市", "嘉義縣", "台南市", "高雄市", "屏東縣", "宜蘭縣",
|
||||
"花蓮縣", "台東縣", "澎湖縣", "金門縣", "連江縣", "南海諸島"],
|
||||
"Township":
|
||||
[
|
||||
// 未選擇縣市
|
||||
[
|
||||
["", "鄉鎮市區"]
|
||||
],
|
||||
// 基隆市
|
||||
[
|
||||
["200", "仁愛區"], ["201", "信義區"], ["202", "中正區"], ["203", "中山區"], ["204", "安樂區"], ["205", "暖暖區"], ["206", "七堵區"]
|
||||
],
|
||||
// 台北市
|
||||
[
|
||||
["100", "中正區"], ["103", "大同區"], ["104", "中山區"], ["105", "松山區"], ["106", "大安區"], ["108", "萬華區"], ["110", "信義區"],
|
||||
["111", "士林區"], ["112", "北投區"], ["114", "內湖區"], ["115", "南港區"], ["116", "文山區"]
|
||||
],
|
||||
// 新北市
|
||||
[
|
||||
["207", "萬里區"], ["208", "金山區"], ["220", "板橋區"], ["221", "汐止區"], ["222", "深坑區"], ["223", "石碇區"], ["224", "瑞芳區"],
|
||||
["226", "平溪區"], ["227", "雙溪區"], ["228", "貢寮區"], ["231", "新店區"], ["232", "坪林區"], ["233", "烏來區"], ["234", "永和區"],
|
||||
["235", "中和區"], ["236", "土城區"], ["237", "三峽區"], ["238", "樹林區"], ["239", "鶯歌區"], ["241", "三重區"], ["242", "新莊區"],
|
||||
["243", "泰山區"], ["244", "林口區"], ["247", "蘆洲區"], ["248", "五股區"], ["249", "八里區"], ["251", "淡水區"], ["252", "三芝區"],
|
||||
["253", "石門區"]
|
||||
],
|
||||
// 桃園市
|
||||
[
|
||||
["320", "中壢區"], ["324", "平鎮區"], ["325", "龍潭區"], ["326", "楊梅區"], ["327", "新屋區"], ["328", "觀音區"], ["330", "桃園區"],
|
||||
["333", "龜山區"], ["334", "八德區"], ["335", "大溪區"], ["336", "復興區"], ["337", "大園區"], ["338", "蘆竹區"]
|
||||
],
|
||||
// 新竹市
|
||||
[
|
||||
["300", "東區"], ["300", "北區"], ["300", "香山區"]
|
||||
],
|
||||
// 新竹縣
|
||||
[
|
||||
["302", "竹北市"], ["303", "湖口鄉"], ["304", "新豐鄉"], ["305", "新埔鄉"], ["306", "關西鎮"], ["307", "芎林鄉"],
|
||||
["308", "寶山鄉"], ["310", "竹東鎮"], ["311", "五峰鄉"], ["312", "橫山鄉"], ["313", "尖石鄉"], ["314", "北埔鄉"], ["315", "峨眉鄉"]
|
||||
],
|
||||
// 苗栗縣
|
||||
[
|
||||
["350", "竹南鎮"], ["351", "頭份鎮"], ["352", "三灣鄉"], ["353", "南庄鄉"], ["354", "獅潭鄉"], ["356", "後龍鎮"], ["357", "通霄鎮"],
|
||||
["358", "苑裡鎮"], ["360", "苗栗市"], ["361", "造橋鄉"], ["362", "頭屋鄉"], ["363", "公館鄉"], ["364", "大湖鄉"], ["365", "泰安鄉"],
|
||||
["366", "銅鑼鄉"], ["367", "三義鄉"], ["368", "西湖鄉"], ["369", "卓蘭鎮"]
|
||||
],
|
||||
// 台中市
|
||||
[
|
||||
["400", "中區"], ["401", "東區"], ["402", "南區"], ["403", "西區"], ["404", "北區"], ["406", "北屯區"], ["407", "西屯區"],
|
||||
["408", "南屯區"], ["411", "太平區"], ["412", "大里區"], ["413", "霧峰區"], ["414", "烏日區"], ["420", "豐原區"], ["421", "后里區"],
|
||||
["422", "石岡區"], ["423", "東勢區"], ["424", "和平區"], ["426", "新社區"], ["427", "潭子區"], ["428", "大雅區"], ["429", "神岡區"],
|
||||
["432", "大肚區"], ["433", "沙鹿區"], ["434", "龍井區"], ["435", "梧棲區"], ["436", "清水區"], ["437", "大甲區"], ["438", "外埔區"],
|
||||
["439", "大安區"]
|
||||
],
|
||||
// 彰化縣
|
||||
[
|
||||
["500", "彰化市"], ["502", "芬園鄉"], ["503", "花壇鄉"], ["504", "秀水鄉"], ["505", "鹿港鎮"], ["506", "福興鄉"], ["507", "線西鄉"],
|
||||
["508", "和美鎮"], ["509", "伸港鄉"], ["510", "員林鎮"], ["511", "社頭鄉"], ["512", "永靖鄉"], ["513", "埔心鄉"], ["514", "溪湖鎮"],
|
||||
["515", "大村鄉"], ["516", "埔鹽鄉"], ["520", "田中鎮"], ["521", "北斗鎮"], ["522", "田尾鄉"], ["523", "埤頭鄉"], ["524", "溪洲鄉"],
|
||||
["525", "竹塘鄉"], ["526", "二林鎮"], ["527", "大城鄉"], ["528", "芳苑鄉"], ["530", "二水鄉"]
|
||||
],
|
||||
// 南投縣
|
||||
[
|
||||
["540", "南投市"], ["541", "中寮鄉"], ["542", "草屯鎮"], ["544", "國姓鄉"], ["545", "埔里鎮"], ["546", "仁愛鄉"], ["551", "名間鄉"],
|
||||
["552", "集集鎮"], ["553", "水里鄉"], ["555", "魚池鄉"], ["556", "信義鄉"], ["557", "竹山鎮"], ["558", "鹿谷鄉"]
|
||||
],
|
||||
// 雲林縣
|
||||
[
|
||||
["630", "斗南鎮"], ["631", "大埤鄉"], ["632", "虎尾鎮"], ["633", "土庫鎮"], ["634", "褒忠鄉"], ["635", "東勢鄉"], ["636", "台西鄉"],
|
||||
["637", "崙背鄉"], ["638", "麥寮鄉"], ["640", "斗六市"], ["643", "林內鄉"], ["646", "古坑鄉"], ["647", "莿桐鄉"], ["648", "西螺鎮"],
|
||||
["649", "二崙鄉"], ["651", "北港鎮"], ["652", "水林鄉"], ["653", "口湖鄉"], ["654", "四湖鄉"], ["655", "元長鄉"]
|
||||
],
|
||||
// 嘉義市
|
||||
[
|
||||
["600", "東區"], ["602", "西區"]
|
||||
],
|
||||
// 嘉義縣
|
||||
[
|
||||
["602", "番路鄉"], ["603", "梅山鄉"], ["604", "竹崎鄉"], ["605", "阿里山鄉"], ["606", "中埔鄉"], ["607", "大埔鄉"],
|
||||
["608", "水上鄉"], ["611", "鹿草鄉"], ["612", "太保市"], ["613", "朴子市"], ["614", "東石鄉"], ["615", "六腳鄉"], ["616", "新港鄉"],
|
||||
["621", "民雄鄉"], ["622", "大林鎮"], ["623", "溪口鄉"], ["624", "義竹鄉"], ["625", "布袋鎮"]
|
||||
],
|
||||
// 台南市
|
||||
[
|
||||
["700", "中區"], ["701", "東區"], ["702", "南區"], ["703", "西區"], ["704", "北區"], ["708", "安平區"], ["709", "安南區"],
|
||||
["710", "永康區"], ["711", "歸仁區"], ["712", "新化區"], ["713", "左鎮區"], ["714", "玉井區"], ["715", "楠西區"], ["716", "南化區"],
|
||||
["717", "仁德區"], ["718", "關廟區"], ["719", "龍崎區"], ["720", "官田區"], ["721", "麻豆區"], ["722", "佳里區"], ["723", "西港區"],
|
||||
["724", "七股區"], ["725", "將軍區"], ["726", "學甲區"], ["727", "北門區"], ["730", "新營區"], ["731", "後壁區"], ["732", "白河區"],
|
||||
["733", "東山區"], ["734", "六甲區"], ["735", "下營區"], ["736", "柳營區"], ["737", "鹽水區"], ["741", "善化區"], ["742", "大內區"],
|
||||
["743", "山上區"], ["744", "新市區"], ["745", "安定區"]
|
||||
],
|
||||
// 高雄市
|
||||
[
|
||||
["800", "新興區"], ["801", "前金區"], ["802", "苓雅區"], ["803", "鹽埕區"], ["804", "鼓山區"], ["805", "旗津區"], ["806", "前鎮區"],
|
||||
["807", "三民區"], ["811", "楠梓區"], ["812", "小港區"], ["813", "左營區"],
|
||||
["814", "仁武區"], ["815", "大社區"], ["820", "岡山區"], ["821", "路竹區"], ["822", "阿蓮區"], ["823", "田寮區"], ["824", "燕巢區"],
|
||||
["825", "橋頭區"], ["826", "梓官區"], ["827", "彌陀區"], ["828", "永安區"], ["829", "湖內區"], ["830", "鳳山區"], ["831", "大寮區"],
|
||||
["832", "林園區"], ["833", "鳥松區"], ["840", "大樹區"], ["842", "旗山區"], ["843", "美濃區"], ["844", "六龜區"], ["845", "內門區"],
|
||||
["846", "杉林區"], ["847", "甲仙區"], ["848", "桃源區"], ["849", "那瑪夏區"], ["851", "茂林區"], ["852", "茄萣區"]
|
||||
],
|
||||
// 屏東縣
|
||||
[
|
||||
["900", "屏東市"], ["901", "三地門"], ["902", "霧台鄉"], ["903", "瑪家鄉"], ["904", "九如鄉"], ["905", "里港鄉"], ["906", "高樹鄉"],
|
||||
["907", "鹽埔鄉"], ["908", "長治鄉"], ["909", "麟洛鄉"], ["911", "竹田鄉"], ["912", "內埔鄉"], ["913", "萬丹鄉"], ["920", "潮州鎮"],
|
||||
["921", "泰武鄉"], ["922", "來義鄉"], ["923", "萬巒鄉"], ["924", "崁頂鄉"], ["925", "新埤鄉"], ["926", "南州鄉"], ["927", "林邊鄉"],
|
||||
["928", "東港鎮"], ["929", "琉球鄉"], ["931", "佳冬鄉"], ["932", "新園鄉"], ["940", "枋寮鄉"], ["941", "枋山鄉"], ["942", "春日鄉"],
|
||||
["943", "獅子鄉"], ["944", "車城鄉"], ["945", "牡丹鄉"], ["946", "恆春鄉"], ["947", "滿州鄉"]
|
||||
],
|
||||
// 宜蘭縣
|
||||
[
|
||||
["260", "宜蘭市"], ["261", "頭城鎮"], ["262", "礁溪鄉"], ["263", "壯圍鄉"], ["264", "員山鄉"], ["265", "羅東鎮"], ["266", "三星鄉"],
|
||||
["267", "大同鄉"], ["268", "五結鄉"], ["269", "冬山鄉"], ["270", "蘇澳鎮"], ["272", "南澳鄉"], ["290", "釣魚臺"]
|
||||
],
|
||||
// 花蓮縣
|
||||
[
|
||||
["970", "花蓮市"], ["971", "新城鄉"], ["972", "秀林鄉"], ["973", "吉安鄉"], ["974", "壽豐鄉"], ["975", "鳳林鎮"], ["976", "光復鄉"],
|
||||
["977", "豐濱鄉"], ["978", "瑞穗鄉"], ["979", "萬榮鄉"], ["981", "玉里鎮"], ["982", "卓溪鄉"], ["983", "富里鄉"]
|
||||
],
|
||||
// 台東縣
|
||||
[
|
||||
["950", "台東市"], ["951", "綠島鄉"], ["952", "蘭嶼鄉"], ["953", "延平鄉"], ["954", "卑南鄉"], ["955", "鹿野鄉"], ["956", "關山鎮"],
|
||||
["957", "海端鄉"], ["958", "池上鄉"], ["959", "東河鄉"], ["961", "成功鎮"], ["962", "長濱鄉"], ["963", "太麻里"], ["964", "金峰鄉"],
|
||||
["965", "大武鄉"], ["966", "達仁鄉"]
|
||||
],
|
||||
// 澎湖縣
|
||||
[
|
||||
["880", "馬公市"], ["881", "西嶼鄉"], ["882", "望安鄉"], ["883", "七美鄉"], ["884", "白沙鄉"], ["885", "湖西鄉"]
|
||||
],
|
||||
// 金門縣
|
||||
[
|
||||
["890", "金沙鎮"], ["891", "金湖鎮"], ["892", "金寧鄉"], ["893", "金城鎮"], ["894", "烈嶼鄉"], ["896", "烏坵鄉"]
|
||||
],
|
||||
// 連江縣
|
||||
[
|
||||
["209", "南竿鄉"], ["210", "北竿鄉"], ["211", "莒光鄉"], ["212", "東引鄉"]
|
||||
],
|
||||
// 南海諸島
|
||||
[
|
||||
["817", "東沙"], ["819", "南沙"]
|
||||
]
|
||||
]
|
||||
};
|
||||
|
||||
// 填入縣市下拉清單
|
||||
function FillSelect1(select1Id)
|
||||
{
|
||||
var select1 = document.getElementById(select1Id);
|
||||
if (!select1)
|
||||
return;
|
||||
|
||||
for (i = 0; i < zipData.County.length; i++)
|
||||
{
|
||||
newOption = new Option(zipData.County[i], i);
|
||||
select1.options.add(newOption);
|
||||
}
|
||||
}
|
||||
|
||||
// 填入鄉鎮市區下拉清單
|
||||
function FillSelect2(select1Id, select2Id, txtZipCodeId, hfCuntyId, hfTownId, isfill)
|
||||
{
|
||||
var select1 = document.getElementById(select1Id);
|
||||
var hfselect1 = document.getElementById(hfCuntyId);
|
||||
if (!select1)
|
||||
return;
|
||||
|
||||
hfselect1.value = select1.selectedIndex;
|
||||
FillSelect2ByIndex(select1.selectedIndex, select2Id, txtZipCodeId, hfTownId, isfill);
|
||||
}
|
||||
|
||||
// 填入鄉鎮市區下拉清單
|
||||
// 並將縣市代號填入 hidden 中
|
||||
function FillSelect2ByIndex(select1Index, select2Id, txtZipCodeId, hfTownId, isfill)
|
||||
{
|
||||
var select2 = document.getElementById(select2Id);
|
||||
var txtZipCode = document.getElementById(txtZipCodeId);
|
||||
|
||||
if (!select2 || !txtZipCode)
|
||||
return;
|
||||
|
||||
select2.options.length = 0;
|
||||
for (i = 0; i < zipData.Township[select1Index].length; i++)
|
||||
{
|
||||
if (typeof zipData.Township[select1Index][i] != "undefined")
|
||||
{
|
||||
newOption = new Option(zipData.Township[select1Index][i][1], zipData.Township[select1Index][i][0]);
|
||||
select2.options.add(newOption);
|
||||
}
|
||||
}
|
||||
if (isfill)
|
||||
FillZipCode(select2Id, txtZipCodeId, hfTownId);
|
||||
}
|
||||
|
||||
// 填入郵遞區號,並加鄉鎮市區代號填入 hidden 中
|
||||
function FillZipCode(select2Id, txtZipCodeId, hfTownId)
|
||||
{
|
||||
var select2 = document.getElementById(select2Id);
|
||||
var txtZipCode = document.getElementById(txtZipCodeId);
|
||||
var hfselect2 = document.getElementById(hfTownId);
|
||||
|
||||
if (!select2 || !txtZipCode)
|
||||
return;
|
||||
txtZipCode.value = select2.value;
|
||||
hfselect2.value = select2.value;
|
||||
}
|
||||
|
||||
// 郵遞區號改變,填入縣市、鄉鎮市區下拉清單,並將縣市代號、鄉鎮市區代號填入 hidden 中
|
||||
function ZipcodeChange(select1Id, select2Id, txtZipCodeId, hfCuntyId, hfTownId)
|
||||
{
|
||||
var select1 = document.getElementById(select1Id);
|
||||
var select2 = document.getElementById(select2Id);
|
||||
var txtZipCode = document.getElementById(txtZipCodeId);
|
||||
var hfselect1 = document.getElementById(hfCuntyId);
|
||||
var hfselect2 = document.getElementById(hfTownId);
|
||||
|
||||
if (!select1 || !select2 || !txtZipCode)
|
||||
return;
|
||||
|
||||
select1.selectedIndex = 0;
|
||||
select2.selectedIndex = 0;
|
||||
hfselect1.value = "";
|
||||
hfselect2.value = "";
|
||||
|
||||
for (i = 0; i < zipData.Township.length; i++)
|
||||
{
|
||||
for (j = 0; j < zipData.Township[i].length; j++)
|
||||
{
|
||||
if ((typeof zipData.Township[i][j] != "undefined") &&
|
||||
(txtZipCode.value.substr(0, 3) == zipData.Township[i][j][0]))
|
||||
{
|
||||
select1.selectedIndex = i;
|
||||
hfselect1.value = i;
|
||||
FillSelect2ByIndex(i, select2Id, txtZipCodeId, false);
|
||||
select2.selectedIndex = j;
|
||||
hfselect2.value = select2.value;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (txtZipCode.value != "")
|
||||
{
|
||||
FillSelect2ByIndex(0, select2Id, txtZipCodeId, false);
|
||||
txtZipCode.value = "";
|
||||
txtZipCode.select();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 建立一個新的執行個體
|
||||
var WAddressEditor = new WAddressEditorClass();
|
||||
@@ -0,0 +1,6 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" >
|
||||
<body style="margin:0 0 0 0">
|
||||
<img src="../picture/blocker_bg.gif" style="top:0; left:0; width:100%; height:100%; filter: alpha(opacity=50);">
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,44 @@
|
||||
/*********************************************************************************
|
||||
dw_cookies.js - cookie functions for www.dyn-web.com
|
||||
Recycled from various sources
|
||||
**********************************************************************************/
|
||||
|
||||
// Modified from Bill Dortch's Cookie Functions (hidaho.com)
|
||||
// (found in JavaScript Bible)
|
||||
function setCookie(name,value,days,path,domain,secure) {
|
||||
var expires, date;
|
||||
if (typeof days == "number") {
|
||||
date = new Date();
|
||||
date.setTime( date.getTime() + (days*24*60*60*1000) );
|
||||
expires = date.toGMTString();
|
||||
}
|
||||
document.cookie = name + "=" + escape(value) +
|
||||
((expires) ? "; expires=" + expires : "") +
|
||||
((path) ? "; path=" + path : "") +
|
||||
((domain) ? "; domain=" + domain : "") +
|
||||
((secure) ? "; secure" : "");
|
||||
}
|
||||
|
||||
// Modified from Jesse Chisholm or Scott Andrew Lepera ?
|
||||
// (found at both www.dansteinman.com/dynapi/ and www.scottandrew.com/junkyard/js/)
|
||||
function getCookie(name) {
|
||||
var nameq = name + "=";
|
||||
var c_ar = document.cookie.split(';');
|
||||
for (var i=0; i<c_ar.length; i++) {
|
||||
var c = c_ar[i];
|
||||
while (c.charAt(0)==' ') c = c.substring(1,c.length);
|
||||
if (c.indexOf(nameq) == 0) return unescape( c.substring(nameq.length, c.length) );
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// from Bill Dortch's Cookie Functions (hidaho.com)
|
||||
function deleteCookie(name,path,domain) {
|
||||
if (getCookie(name)) {
|
||||
document.cookie = name + "=" +
|
||||
((path) ? "; path=" + path : "") +
|
||||
((domain) ? "; domain=" + domain : "") +
|
||||
"; expires=Thu, 01-Jan-70 00:00:01 GMT";
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+5
File diff suppressed because one or more lines are too long
Vendored
+167
@@ -0,0 +1,167 @@
|
||||
/*!
|
||||
* jQuery JavaScript Library v1.4.4
|
||||
* http://jquery.com/
|
||||
*
|
||||
* Copyright 2010, John Resig
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
* http://sizzlejs.com/
|
||||
* Copyright 2010, The Dojo Foundation
|
||||
* Released under the MIT, BSD, and GPL Licenses.
|
||||
*
|
||||
* Date: Thu Nov 11 19:04:53 2010 -0500
|
||||
*/
|
||||
(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h=
|
||||
h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"||
|
||||
h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La,
|
||||
"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this,
|
||||
e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a,
|
||||
"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+
|
||||
a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,
|
||||
C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j,
|
||||
s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this,
|
||||
j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length},
|
||||
toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j===
|
||||
-1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false;
|
||||
if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--;
|
||||
if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload",
|
||||
b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&&
|
||||
!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&&
|
||||
l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H<G;){if(s.apply(j[H++],v)===false)break}else if(K)for(z in j){if(s.call(j[z],
|
||||
z,j[z])===false)break}else for(v=j[0];H<G&&s.call(v,H,v)!==false;v=j[++H]);return j},trim:O?function(j){return j==null?"":O.call(j)}:function(j){return j==null?"":j.toString().replace(k,"").replace(o,"")},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z==="string"||z==="function"||z==="regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v<z;v++)if(s[v]===j)return v;return-1},merge:function(j,
|
||||
s){var v=j.length,z=0;if(typeof s.length==="number")for(var H=s.length;z<H;z++)j[v++]=s[z];else for(;s[z]!==B;)j[v++]=s[z++];j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j[G],G);v!==H&&z.push(j[G])}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G<K;G++){H=s(j[G],G,v);if(H!=null)z[z.length]=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s==="string"){v=j;j=v[s];s=B}else if(s&&!b.isFunction(s)){v=
|
||||
s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s==="object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q<K;Q++)H(j[Q],s,z?v.call(j[Q],Q,H(j[Q],s)):v,G);return j}return K?H(j[0],s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)||
|
||||
[];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(j,s){R["[object "+s+"]"]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/\s/.test("\u00a0")){k=/^[\s\xA0]+/;o=/[\s\xA0]+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener("DOMContentLoaded",u,
|
||||
false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState==="complete"){t.detachEvent("onreadystatechange",u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement("script"),d=t.createElement("div"),e="script"+c.now();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"),
|
||||
k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false,
|
||||
scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent=
|
||||
false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom=
|
||||
1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display=
|
||||
"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h=
|
||||
c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando);
|
||||
else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h<l;h++){f=e[h].name;if(f.indexOf("data-")===0){f=f.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof a==="object")return this.each(function(){c.data(this,
|
||||
a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=this.triggerHandler("getData"+k[1]+"!",[k[0]]);if(d===B&&this.length){d=c.data(this[0],a);d=ka(this[0],a,d)}return d===B&&k[1]?this.data(k[0]):d}else return this.each(function(){var o=c(this),x=[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(this,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e=
|
||||
c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===B)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,
|
||||
a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var sa=/[\n\t]/g,ha=/\s+/,Sa=/\r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",
|
||||
colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===
|
||||
1)if(f.className){for(var h=" "+f.className+" ",l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(" "+b[k]+" ")<0)l+=" "+b[k];f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof a==="string"||a===B)for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(sa," "),
|
||||
l=0,k=b.length;l<k;l++)h=h.replace(" "+b[l]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o[h++];){k=e?k:!l.hasClass(f);l[k?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,
|
||||
"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(sa," ").indexOf(a)>-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one";
|
||||
if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var l=f[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute("disabled")===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,"optgroup"))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Sa,"")}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r=
|
||||
a.call(this,o,x.val());if(r==null)r="";else if(typeof r==="number")r+="";else if(c.isArray(r))r=c.map(r,function(C){return C==null?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},
|
||||
attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&
|
||||
b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0};
|
||||
c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,
|
||||
arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid=
|
||||
d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+
|
||||
c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h<A.length;h++){C=A[h];if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h--,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I[f]}}else for(h=0;h<A.length;h++){C=A[h];if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b=
|
||||
w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===
|
||||
8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k===
|
||||
"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+
|
||||
d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f<l;f++){var k=d[f];if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
|
||||
fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
|
||||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==B)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this,
|
||||
Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=
|
||||
c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U};
|
||||
var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!==
|
||||
"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=B;return la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=B;return la("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V,
|
||||
xa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired=
|
||||
B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type===
|
||||
"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]===
|
||||
0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h<k;h++)c.event.add(this[h],d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d,
|
||||
a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d=
|
||||
1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d===
|
||||
"object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||"").split(" ");(l=d[k++])!=null;){o=X.exec(l);x="";if(o){x=o[0];l=l.replace(X,"")}if(l==="hover")d.push("mouseenter"+x,"mouseleave"+x);else{o=l;if(l==="focus"||l==="blur"){d.push(ya[l]+x);l+=x}else l=(ya[l]||l)+x;if(b==="live"){x=0;for(var A=h.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind("live."+Y(l,r),f)}}return this}});
|
||||
c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
|
||||
(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y[g]}m[p]=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!=="string"){if(y===i){F=true;break}}else if(k.filter(i,
|
||||
[y]).length>0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3];
|
||||
break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr,
|
||||
q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h=
|
||||
l;g.sort(w);if(h)for(var i=1;i<g.length;i++)g[i]===g[i-1]&&g.splice(i--,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,[g]).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order[p];if(u=o.leftMatch[y].exec(g)){var F=u[1];u.splice(1,1);if(F.substr(F.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");m=o.find[y](u,i,n);if(m!=null){g=g.replace(o.match[y],"");break}}}}m||(m=i.getElementsByTagName("*"));
|
||||
return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch[N].exec(g))!=null&&p[2]){var O,D,R=o.filter[N];D=p[1];q=false;p.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(F===y)y=[];if(o.preFilter[N])if(p=o.preFilter[N](p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F[j])!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F[j]=false;else if(s){y.push(D);q=true}}if(O!==
|
||||
B){n||(F=y);g=g.replace(o.match[N],"");if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var o=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
|
||||
POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,i){var n=typeof i==="string",m=n&&!/\W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=n||q&&q.nodeName.toLowerCase()===
|
||||
i?q||false:q===i}n&&k.filter(i,g,true)},">":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g[p]){n=n.parentNode;g[p]=n.nodeName.toLowerCase()===i?n:false}}else{for(;p<q;p++)if(n=g[p])g[p]=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},"":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=i=i.toLowerCase();q=a}q("parentNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=
|
||||
i=i.toLowerCase();q=a}q("previousSibling",i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!=="undefined"&&!n)return(g=i.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof i.getElementsByName!=="undefined"){for(var n=[],m=i.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&n.push(m[p]);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=" "+g[1].replace(/\\/g,
|
||||
"")+" ";if(q)return g;q=0;for(var u;(u=i[q])!=null;q++)if(u)if(p^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n,
|
||||
m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===
|
||||
true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===
|
||||
g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return i<n[3]-0},gt:function(g,i,n){return i>n[3]-0},nth:function(g,i,n){return n[3]-
|
||||
0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n<m;n++)if(i[n]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,i){var n=i[1],m=g;switch(n){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n===
|
||||
"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":n=i[2];var p=i[3];if(n===1&&p===0)return true;var q=i[0],u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/n>=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===
|
||||
i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]];
|
||||
if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m,
|
||||
g);else if(typeof g.length==="number")for(var p=g.length;n<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=[];n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1;
|
||||
for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u<n&&u<m;u++)if(p[u]!==q[u])return I(p[u],q[u]);return u===n?I(g,q[u],-1):I(p[u],i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i="",n,m=0;g[m];m++){n=g[m];if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement("div"),
|
||||
i="script"+(new Date).getTime(),n=t.documentElement;g.innerHTML="<a name='"+i+"'/>";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g);
|
||||
n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&&
|
||||
function(){var g=k,i=t.createElement("div");i.innerHTML="<p class='TEST'></p>";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F||
|
||||
p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g=
|
||||
t.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition?
|
||||
function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n<u;n++)k(g,q[n],m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML;
|
||||
c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l<d;l++)if(b[l]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})},
|
||||
not:function(a){return this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h=
|
||||
h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context):
|
||||
c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,
|
||||
2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,
|
||||
b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&
|
||||
e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/<tbody/i,eb=/<|&#?\w+;/,Ca=/<(?:script|object|embed|option|style)/i,Da=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/\=([^="'>\s]+\/)>/g,P={option:[1,
|
||||
"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
|
||||
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
|
||||
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
|
||||
prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
|
||||
this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
|
||||
return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null;
|
||||
else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=
|
||||
c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a[0],k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l==="string"&&Da.test(l))return this.each(function(){c(this).domManip(a,
|
||||
b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a[0]=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this[0]){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?h=h.firstChild:h.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var o=this.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")):
|
||||
this[f]:this[f],f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append",
|
||||
prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f<h;f++){var l=(f>0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument||
|
||||
b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1></$2>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]==="<table>"&&!x?r.childNodes:[];for(o=k.length-
|
||||
1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script"))));
|
||||
d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i,
|
||||
jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,
|
||||
zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b),
|
||||
h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b);
|
||||
if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f=
|
||||
d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left;
|
||||
e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
|
||||
ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b===
|
||||
"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("<div>").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&
|
||||
!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})},
|
||||
getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html",
|
||||
script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data||
|
||||
!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache=
|
||||
false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset;
|
||||
A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type",
|
||||
b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&&
|
||||
c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d||
|
||||
c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]=
|
||||
encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess",
|
||||
[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),
|
||||
e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}});
|
||||
if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show",
|
||||
3),a,b,d);else{d=0;for(var e=this.length;d<e;d++){a=this[d];b=a.style.display;if(!c.data(a,"olddisplay")&&b==="none")b=a.style.display="";b===""&&c.css(a,"display")==="none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=0;d<e;d++){a=this[d];b=a.style.display;if(b===""||b==="none")a.style.display=c.data(a,"olddisplay")||""}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay",
|
||||
d)}for(a=0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b,
|
||||
d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(":hidden"),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a[r]=a[l];delete a[l];l=r}if(a[l]==="hide"&&o||a[l]==="show"&&!o)return h.complete.call(this);if(k&&(l==="height"||l==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)===
|
||||
"inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[l])){(h.specialEasing=h.specialEasing||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J[C==="toggle"?o?"show":"hide":C](a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(x,A,(L||1)+g);I=(L||
|
||||
1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b,
|
||||
d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a*
|
||||
Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)}
|
||||
var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;
|
||||
this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide||
|
||||
this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=
|
||||
c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===
|
||||
b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in t.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&&
|
||||
h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle;
|
||||
for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position==="fixed")break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"){k+=
|
||||
parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position==="relative"||d.position==="static"){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position==="fixed"){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",
|
||||
height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells=
|
||||
f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a,
|
||||
"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),l=c.css(a,"top"),k=c.css(a,"left"),o=e==="absolute"&&c.inArray("auto",[l,k])>-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a,
|
||||
e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&&
|
||||
c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();
|
||||
c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+
|
||||
b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window);
|
||||
@@ -0,0 +1,620 @@
|
||||
/*!
|
||||
* jQuery blockUI plugin
|
||||
* Version 2.70.0-2014.11.23
|
||||
* Requires jQuery v1.7 or later
|
||||
*
|
||||
* Examples at: http://malsup.com/jquery/block/
|
||||
* Copyright (c) 2007-2013 M. Alsup
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*
|
||||
* Thanks to Amir-Hossein Sobhi for some excellent contributions!
|
||||
*/
|
||||
|
||||
;(function() {
|
||||
/*jshint eqeqeq:false curly:false latedef:false */
|
||||
"use strict";
|
||||
|
||||
function setup($) {
|
||||
$.fn._fadeIn = $.fn.fadeIn;
|
||||
|
||||
var noOp = $.noop || function() {};
|
||||
|
||||
// this bit is to ensure we don't call setExpression when we shouldn't (with extra muscle to handle
|
||||
// confusing userAgent strings on Vista)
|
||||
var msie = /MSIE/.test(navigator.userAgent);
|
||||
var ie6 = /MSIE 6.0/.test(navigator.userAgent) && ! /MSIE 8.0/.test(navigator.userAgent);
|
||||
var mode = document.documentMode || 0;
|
||||
var setExpr = $.isFunction( document.createElement('div').style.setExpression );
|
||||
|
||||
// global $ methods for blocking/unblocking the entire page
|
||||
$.blockUI = function(opts) { install(window, opts); };
|
||||
$.unblockUI = function(opts) { remove(window, opts); };
|
||||
|
||||
// convenience method for quick growl-like notifications (http://www.google.com/search?q=growl)
|
||||
$.growlUI = function(title, message, timeout, onClose) {
|
||||
var $m = $('<div class="growlUI"></div>');
|
||||
if (title) $m.append('<h1>'+title+'</h1>');
|
||||
if (message) $m.append('<h2>'+message+'</h2>');
|
||||
if (timeout === undefined) timeout = 3000;
|
||||
|
||||
// Added by konapun: Set timeout to 30 seconds if this growl is moused over, like normal toast notifications
|
||||
var callBlock = function(opts) {
|
||||
opts = opts || {};
|
||||
|
||||
$.blockUI({
|
||||
message: $m,
|
||||
fadeIn : typeof opts.fadeIn !== 'undefined' ? opts.fadeIn : 700,
|
||||
fadeOut: typeof opts.fadeOut !== 'undefined' ? opts.fadeOut : 1000,
|
||||
timeout: typeof opts.timeout !== 'undefined' ? opts.timeout : timeout,
|
||||
centerY: false,
|
||||
showOverlay: false,
|
||||
onUnblock: onClose,
|
||||
css: $.blockUI.defaults.growlCSS
|
||||
});
|
||||
};
|
||||
|
||||
callBlock();
|
||||
var nonmousedOpacity = $m.css('opacity');
|
||||
$m.mouseover(function() {
|
||||
callBlock({
|
||||
fadeIn: 0,
|
||||
timeout: 30000
|
||||
});
|
||||
|
||||
var displayBlock = $('.blockMsg');
|
||||
displayBlock.stop(); // cancel fadeout if it has started
|
||||
displayBlock.fadeTo(300, 1); // make it easier to read the message by removing transparency
|
||||
}).mouseout(function() {
|
||||
$('.blockMsg').fadeOut(1000);
|
||||
});
|
||||
// End konapun additions
|
||||
};
|
||||
|
||||
// plugin method for blocking element content
|
||||
$.fn.block = function(opts) {
|
||||
if ( this[0] === window ) {
|
||||
$.blockUI( opts );
|
||||
return this;
|
||||
}
|
||||
var fullOpts = $.extend({}, $.blockUI.defaults, opts || {});
|
||||
this.each(function() {
|
||||
var $el = $(this);
|
||||
if (fullOpts.ignoreIfBlocked && $el.data('blockUI.isBlocked'))
|
||||
return;
|
||||
$el.unblock({ fadeOut: 0 });
|
||||
});
|
||||
|
||||
return this.each(function() {
|
||||
if ($.css(this,'position') == 'static') {
|
||||
this.style.position = 'relative';
|
||||
$(this).data('blockUI.static', true);
|
||||
}
|
||||
this.style.zoom = 1; // force 'hasLayout' in ie
|
||||
install(this, opts);
|
||||
});
|
||||
};
|
||||
|
||||
// plugin method for unblocking element content
|
||||
$.fn.unblock = function(opts) {
|
||||
if ( this[0] === window ) {
|
||||
$.unblockUI( opts );
|
||||
return this;
|
||||
}
|
||||
return this.each(function() {
|
||||
remove(this, opts);
|
||||
});
|
||||
};
|
||||
|
||||
$.blockUI.version = 2.70; // 2nd generation blocking at no extra cost!
|
||||
|
||||
// override these in your code to change the default behavior and style
|
||||
$.blockUI.defaults = {
|
||||
// message displayed when blocking (use null for no message)
|
||||
message: '<h1>Please wait...</h1>',
|
||||
|
||||
title: null, // title string; only used when theme == true
|
||||
draggable: true, // only used when theme == true (requires jquery-ui.js to be loaded)
|
||||
|
||||
theme: false, // set to true to use with jQuery UI themes
|
||||
|
||||
// styles for the message when blocking; if you wish to disable
|
||||
// these and use an external stylesheet then do this in your code:
|
||||
// $.blockUI.defaults.css = {};
|
||||
css: {
|
||||
padding: 0,
|
||||
margin: 0,
|
||||
width: '30%',
|
||||
top: '40%',
|
||||
left: '35%',
|
||||
textAlign: 'center',
|
||||
color: '#000',
|
||||
border: '3px solid #aaa',
|
||||
backgroundColor:'#fff',
|
||||
cursor: 'wait'
|
||||
},
|
||||
|
||||
// minimal style set used when themes are used
|
||||
themedCSS: {
|
||||
width: '30%',
|
||||
top: '40%',
|
||||
left: '35%'
|
||||
},
|
||||
|
||||
// styles for the overlay
|
||||
overlayCSS: {
|
||||
backgroundColor: '#000',
|
||||
opacity: 0.6,
|
||||
cursor: 'wait'
|
||||
},
|
||||
|
||||
// style to replace wait cursor before unblocking to correct issue
|
||||
// of lingering wait cursor
|
||||
cursorReset: 'default',
|
||||
|
||||
// styles applied when using $.growlUI
|
||||
growlCSS: {
|
||||
width: '350px',
|
||||
top: '10px',
|
||||
left: '',
|
||||
right: '10px',
|
||||
border: 'none',
|
||||
padding: '5px',
|
||||
opacity: 0.6,
|
||||
cursor: 'default',
|
||||
color: '#fff',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius':'10px',
|
||||
'-moz-border-radius': '10px',
|
||||
'border-radius': '10px'
|
||||
},
|
||||
|
||||
// IE issues: 'about:blank' fails on HTTPS and javascript:false is s-l-o-w
|
||||
// (hat tip to Jorge H. N. de Vasconcelos)
|
||||
/*jshint scripturl:true */
|
||||
iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank',
|
||||
|
||||
// force usage of iframe in non-IE browsers (handy for blocking applets)
|
||||
forceIframe: false,
|
||||
|
||||
// z-index for the blocking overlay
|
||||
baseZ: 1000,
|
||||
|
||||
// set these to true to have the message automatically centered
|
||||
centerX: true, // <-- only effects element blocking (page block controlled via css above)
|
||||
centerY: true,
|
||||
|
||||
// allow body element to be stetched in ie6; this makes blocking look better
|
||||
// on "short" pages. disable if you wish to prevent changes to the body height
|
||||
allowBodyStretch: true,
|
||||
|
||||
// enable if you want key and mouse events to be disabled for content that is blocked
|
||||
bindEvents: true,
|
||||
|
||||
// be default blockUI will supress tab navigation from leaving blocking content
|
||||
// (if bindEvents is true)
|
||||
constrainTabKey: true,
|
||||
|
||||
// fadeIn time in millis; set to 0 to disable fadeIn on block
|
||||
fadeIn: 200,
|
||||
|
||||
// fadeOut time in millis; set to 0 to disable fadeOut on unblock
|
||||
fadeOut: 400,
|
||||
|
||||
// time in millis to wait before auto-unblocking; set to 0 to disable auto-unblock
|
||||
timeout: 0,
|
||||
|
||||
// disable if you don't want to show the overlay
|
||||
showOverlay: true,
|
||||
|
||||
// if true, focus will be placed in the first available input field when
|
||||
// page blocking
|
||||
focusInput: true,
|
||||
|
||||
// elements that can receive focus
|
||||
focusableElements: ':input:enabled:visible',
|
||||
|
||||
// suppresses the use of overlay styles on FF/Linux (due to performance issues with opacity)
|
||||
// no longer needed in 2012
|
||||
// applyPlatformOpacityRules: true,
|
||||
|
||||
// callback method invoked when fadeIn has completed and blocking message is visible
|
||||
onBlock: null,
|
||||
|
||||
// callback method invoked when unblocking has completed; the callback is
|
||||
// passed the element that has been unblocked (which is the window object for page
|
||||
// blocks) and the options that were passed to the unblock call:
|
||||
// onUnblock(element, options)
|
||||
onUnblock: null,
|
||||
|
||||
// callback method invoked when the overlay area is clicked.
|
||||
// setting this will turn the cursor to a pointer, otherwise cursor defined in overlayCss will be used.
|
||||
onOverlayClick: null,
|
||||
|
||||
// don't ask; if you really must know: http://groups.google.com/group/jquery-en/browse_thread/thread/36640a8730503595/2f6a79a77a78e493#2f6a79a77a78e493
|
||||
quirksmodeOffsetHack: 4,
|
||||
|
||||
// class name of the message block
|
||||
blockMsgClass: 'blockMsg',
|
||||
|
||||
// if it is already blocked, then ignore it (don't unblock and reblock)
|
||||
ignoreIfBlocked: false
|
||||
};
|
||||
|
||||
// private data and functions follow...
|
||||
|
||||
var pageBlock = null;
|
||||
var pageBlockEls = [];
|
||||
|
||||
function install(el, opts) {
|
||||
var css, themedCSS;
|
||||
var full = (el == window);
|
||||
var msg = (opts && opts.message !== undefined ? opts.message : undefined);
|
||||
opts = $.extend({}, $.blockUI.defaults, opts || {});
|
||||
|
||||
if (opts.ignoreIfBlocked && $(el).data('blockUI.isBlocked'))
|
||||
return;
|
||||
|
||||
opts.overlayCSS = $.extend({}, $.blockUI.defaults.overlayCSS, opts.overlayCSS || {});
|
||||
css = $.extend({}, $.blockUI.defaults.css, opts.css || {});
|
||||
if (opts.onOverlayClick)
|
||||
opts.overlayCSS.cursor = 'pointer';
|
||||
|
||||
themedCSS = $.extend({}, $.blockUI.defaults.themedCSS, opts.themedCSS || {});
|
||||
msg = msg === undefined ? opts.message : msg;
|
||||
|
||||
// remove the current block (if there is one)
|
||||
if (full && pageBlock)
|
||||
remove(window, {fadeOut:0});
|
||||
|
||||
// if an existing element is being used as the blocking content then we capture
|
||||
// its current place in the DOM (and current display style) so we can restore
|
||||
// it when we unblock
|
||||
if (msg && typeof msg != 'string' && (msg.parentNode || msg.jquery)) {
|
||||
var node = msg.jquery ? msg[0] : msg;
|
||||
var data = {};
|
||||
$(el).data('blockUI.history', data);
|
||||
data.el = node;
|
||||
data.parent = node.parentNode;
|
||||
data.display = node.style.display;
|
||||
data.position = node.style.position;
|
||||
if (data.parent)
|
||||
data.parent.removeChild(node);
|
||||
}
|
||||
|
||||
$(el).data('blockUI.onUnblock', opts.onUnblock);
|
||||
var z = opts.baseZ;
|
||||
|
||||
// blockUI uses 3 layers for blocking, for simplicity they are all used on every platform;
|
||||
// layer1 is the iframe layer which is used to supress bleed through of underlying content
|
||||
// layer2 is the overlay layer which has opacity and a wait cursor (by default)
|
||||
// layer3 is the message content that is displayed while blocking
|
||||
var lyr1, lyr2, lyr3, s;
|
||||
if (msie || opts.forceIframe)
|
||||
lyr1 = $('<iframe class="blockUI" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+opts.iframeSrc+'"></iframe>');
|
||||
else
|
||||
lyr1 = $('<div class="blockUI" style="display:none"></div>');
|
||||
|
||||
if (opts.theme)
|
||||
lyr2 = $('<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+ (z++) +';display:none"></div>');
|
||||
else
|
||||
lyr2 = $('<div class="blockUI blockOverlay" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');
|
||||
|
||||
if (opts.theme && full) {
|
||||
s = '<div class="blockUI ' + opts.blockMsgClass + ' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:fixed">';
|
||||
if ( opts.title ) {
|
||||
s += '<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title || ' ')+'</div>';
|
||||
}
|
||||
s += '<div class="ui-widget-content ui-dialog-content"></div>';
|
||||
s += '</div>';
|
||||
}
|
||||
else if (opts.theme) {
|
||||
s = '<div class="blockUI ' + opts.blockMsgClass + ' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:absolute">';
|
||||
if ( opts.title ) {
|
||||
s += '<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title || ' ')+'</div>';
|
||||
}
|
||||
s += '<div class="ui-widget-content ui-dialog-content"></div>';
|
||||
s += '</div>';
|
||||
}
|
||||
else if (full) {
|
||||
s = '<div class="blockUI ' + opts.blockMsgClass + ' blockPage" style="z-index:'+(z+10)+';display:none;position:fixed"></div>';
|
||||
}
|
||||
else {
|
||||
s = '<div class="blockUI ' + opts.blockMsgClass + ' blockElement" style="z-index:'+(z+10)+';display:none;position:absolute"></div>';
|
||||
}
|
||||
lyr3 = $(s);
|
||||
|
||||
// if we have a message, style it
|
||||
if (msg) {
|
||||
if (opts.theme) {
|
||||
lyr3.css(themedCSS);
|
||||
lyr3.addClass('ui-widget-content');
|
||||
}
|
||||
else
|
||||
lyr3.css(css);
|
||||
}
|
||||
|
||||
// style the overlay
|
||||
if (!opts.theme /*&& (!opts.applyPlatformOpacityRules)*/)
|
||||
lyr2.css(opts.overlayCSS);
|
||||
lyr2.css('position', full ? 'fixed' : 'absolute');
|
||||
|
||||
// make iframe layer transparent in IE
|
||||
if (msie || opts.forceIframe)
|
||||
lyr1.css('opacity',0.0);
|
||||
|
||||
//$([lyr1[0],lyr2[0],lyr3[0]]).appendTo(full ? 'body' : el);
|
||||
var layers = [lyr1,lyr2,lyr3], $par = full ? $('body') : $(el);
|
||||
$.each(layers, function() {
|
||||
this.appendTo($par);
|
||||
});
|
||||
|
||||
if (opts.theme && opts.draggable && $.fn.draggable) {
|
||||
lyr3.draggable({
|
||||
handle: '.ui-dialog-titlebar',
|
||||
cancel: 'li'
|
||||
});
|
||||
}
|
||||
|
||||
// ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling)
|
||||
var expr = setExpr && (!$.support.boxModel || $('object,embed', full ? null : el).length > 0);
|
||||
if (ie6 || expr) {
|
||||
// give body 100% height
|
||||
if (full && opts.allowBodyStretch && $.support.boxModel)
|
||||
$('html,body').css('height','100%');
|
||||
|
||||
// fix ie6 issue when blocked element has a border width
|
||||
if ((ie6 || !$.support.boxModel) && !full) {
|
||||
var t = sz(el,'borderTopWidth'), l = sz(el,'borderLeftWidth');
|
||||
var fixT = t ? '(0 - '+t+')' : 0;
|
||||
var fixL = l ? '(0 - '+l+')' : 0;
|
||||
}
|
||||
|
||||
// simulate fixed position
|
||||
$.each(layers, function(i,o) {
|
||||
var s = o[0].style;
|
||||
s.position = 'absolute';
|
||||
if (i < 2) {
|
||||
if (full)
|
||||
s.setExpression('height','Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:'+opts.quirksmodeOffsetHack+') + "px"');
|
||||
else
|
||||
s.setExpression('height','this.parentNode.offsetHeight + "px"');
|
||||
if (full)
|
||||
s.setExpression('width','jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"');
|
||||
else
|
||||
s.setExpression('width','this.parentNode.offsetWidth + "px"');
|
||||
if (fixL) s.setExpression('left', fixL);
|
||||
if (fixT) s.setExpression('top', fixT);
|
||||
}
|
||||
else if (opts.centerY) {
|
||||
if (full) s.setExpression('top','(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');
|
||||
s.marginTop = 0;
|
||||
}
|
||||
else if (!opts.centerY && full) {
|
||||
var top = (opts.css && opts.css.top) ? parseInt(opts.css.top, 10) : 0;
|
||||
var expression = '((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + '+top+') + "px"';
|
||||
s.setExpression('top',expression);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// show the message
|
||||
if (msg) {
|
||||
if (opts.theme)
|
||||
lyr3.find('.ui-widget-content').append(msg);
|
||||
else
|
||||
lyr3.append(msg);
|
||||
if (msg.jquery || msg.nodeType)
|
||||
$(msg).show();
|
||||
}
|
||||
|
||||
if ((msie || opts.forceIframe) && opts.showOverlay)
|
||||
lyr1.show(); // opacity is zero
|
||||
if (opts.fadeIn) {
|
||||
var cb = opts.onBlock ? opts.onBlock : noOp;
|
||||
var cb1 = (opts.showOverlay && !msg) ? cb : noOp;
|
||||
var cb2 = msg ? cb : noOp;
|
||||
if (opts.showOverlay)
|
||||
lyr2._fadeIn(opts.fadeIn, cb1);
|
||||
if (msg)
|
||||
lyr3._fadeIn(opts.fadeIn, cb2);
|
||||
}
|
||||
else {
|
||||
if (opts.showOverlay)
|
||||
lyr2.show();
|
||||
if (msg)
|
||||
lyr3.show();
|
||||
if (opts.onBlock)
|
||||
opts.onBlock.bind(lyr3)();
|
||||
}
|
||||
|
||||
// bind key and mouse events
|
||||
bind(1, el, opts);
|
||||
|
||||
if (full) {
|
||||
pageBlock = lyr3[0];
|
||||
pageBlockEls = $(opts.focusableElements,pageBlock);
|
||||
if (opts.focusInput)
|
||||
setTimeout(focus, 20);
|
||||
}
|
||||
else
|
||||
center(lyr3[0], opts.centerX, opts.centerY);
|
||||
|
||||
if (opts.timeout) {
|
||||
// auto-unblock
|
||||
var to = setTimeout(function() {
|
||||
if (full)
|
||||
$.unblockUI(opts);
|
||||
else
|
||||
$(el).unblock(opts);
|
||||
}, opts.timeout);
|
||||
$(el).data('blockUI.timeout', to);
|
||||
}
|
||||
}
|
||||
|
||||
// remove the block
|
||||
function remove(el, opts) {
|
||||
var count;
|
||||
var full = (el == window);
|
||||
var $el = $(el);
|
||||
var data = $el.data('blockUI.history');
|
||||
var to = $el.data('blockUI.timeout');
|
||||
if (to) {
|
||||
clearTimeout(to);
|
||||
$el.removeData('blockUI.timeout');
|
||||
}
|
||||
opts = $.extend({}, $.blockUI.defaults, opts || {});
|
||||
bind(0, el, opts); // unbind events
|
||||
|
||||
if (opts.onUnblock === null) {
|
||||
opts.onUnblock = $el.data('blockUI.onUnblock');
|
||||
$el.removeData('blockUI.onUnblock');
|
||||
}
|
||||
|
||||
var els;
|
||||
if (full) // crazy selector to handle odd field errors in ie6/7
|
||||
els = $('body').children().filter('.blockUI').add('body > .blockUI');
|
||||
else
|
||||
els = $el.find('>.blockUI');
|
||||
|
||||
// fix cursor issue
|
||||
if ( opts.cursorReset ) {
|
||||
if ( els.length > 1 )
|
||||
els[1].style.cursor = opts.cursorReset;
|
||||
if ( els.length > 2 )
|
||||
els[2].style.cursor = opts.cursorReset;
|
||||
}
|
||||
|
||||
if (full)
|
||||
pageBlock = pageBlockEls = null;
|
||||
|
||||
if (opts.fadeOut) {
|
||||
count = els.length;
|
||||
els.stop().fadeOut(opts.fadeOut, function() {
|
||||
if ( --count === 0)
|
||||
reset(els,data,opts,el);
|
||||
});
|
||||
}
|
||||
else
|
||||
reset(els, data, opts, el);
|
||||
}
|
||||
|
||||
// move blocking element back into the DOM where it started
|
||||
function reset(els,data,opts,el) {
|
||||
var $el = $(el);
|
||||
if ( $el.data('blockUI.isBlocked') )
|
||||
return;
|
||||
|
||||
els.each(function(i,o) {
|
||||
// remove via DOM calls so we don't lose event handlers
|
||||
if (this.parentNode)
|
||||
this.parentNode.removeChild(this);
|
||||
});
|
||||
|
||||
if (data && data.el) {
|
||||
data.el.style.display = data.display;
|
||||
data.el.style.position = data.position;
|
||||
data.el.style.cursor = 'default'; // #59
|
||||
if (data.parent)
|
||||
data.parent.appendChild(data.el);
|
||||
$el.removeData('blockUI.history');
|
||||
}
|
||||
|
||||
if ($el.data('blockUI.static')) {
|
||||
$el.css('position', 'static'); // #22
|
||||
}
|
||||
|
||||
if (typeof opts.onUnblock == 'function')
|
||||
opts.onUnblock(el,opts);
|
||||
|
||||
// fix issue in Safari 6 where block artifacts remain until reflow
|
||||
var body = $(document.body), w = body.width(), cssW = body[0].style.width;
|
||||
body.width(w-1).width(w);
|
||||
body[0].style.width = cssW;
|
||||
}
|
||||
|
||||
// bind/unbind the handler
|
||||
function bind(b, el, opts) {
|
||||
var full = el == window, $el = $(el);
|
||||
|
||||
// don't bother unbinding if there is nothing to unbind
|
||||
if (!b && (full && !pageBlock || !full && !$el.data('blockUI.isBlocked')))
|
||||
return;
|
||||
|
||||
$el.data('blockUI.isBlocked', b);
|
||||
|
||||
// don't bind events when overlay is not in use or if bindEvents is false
|
||||
if (!full || !opts.bindEvents || (b && !opts.showOverlay))
|
||||
return;
|
||||
|
||||
// bind anchors and inputs for mouse and key events
|
||||
var events = 'mousedown mouseup keydown keypress keyup touchstart touchend touchmove';
|
||||
if (b)
|
||||
$(document).bind(events, opts, handler);
|
||||
else
|
||||
$(document).unbind(events, handler);
|
||||
|
||||
// former impl...
|
||||
// var $e = $('a,:input');
|
||||
// b ? $e.bind(events, opts, handler) : $e.unbind(events, handler);
|
||||
}
|
||||
|
||||
// event handler to suppress keyboard/mouse events when blocking
|
||||
function handler(e) {
|
||||
// allow tab navigation (conditionally)
|
||||
if (e.type === 'keydown' && e.keyCode && e.keyCode == 9) {
|
||||
if (pageBlock && e.data.constrainTabKey) {
|
||||
var els = pageBlockEls;
|
||||
var fwd = !e.shiftKey && e.target === els[els.length-1];
|
||||
var back = e.shiftKey && e.target === els[0];
|
||||
if (fwd || back) {
|
||||
setTimeout(function(){focus(back);},10);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
var opts = e.data;
|
||||
var target = $(e.target);
|
||||
if (target.hasClass('blockOverlay') && opts.onOverlayClick)
|
||||
opts.onOverlayClick(e);
|
||||
|
||||
// allow events within the message content
|
||||
if (target.parents('div.' + opts.blockMsgClass).length > 0)
|
||||
return true;
|
||||
|
||||
// allow events for content that is not being blocked
|
||||
return target.parents().children().filter('div.blockUI').length === 0;
|
||||
}
|
||||
|
||||
function focus(back) {
|
||||
if (!pageBlockEls)
|
||||
return;
|
||||
var e = pageBlockEls[back===true ? pageBlockEls.length-1 : 0];
|
||||
if (e)
|
||||
e.focus();
|
||||
}
|
||||
|
||||
function center(el, x, y) {
|
||||
var p = el.parentNode, s = el.style;
|
||||
var l = ((p.offsetWidth - el.offsetWidth)/2) - sz(p,'borderLeftWidth');
|
||||
var t = ((p.offsetHeight - el.offsetHeight)/2) - sz(p,'borderTopWidth');
|
||||
if (x) s.left = l > 0 ? (l+'px') : '0';
|
||||
if (y) s.top = t > 0 ? (t+'px') : '0';
|
||||
}
|
||||
|
||||
function sz(el, p) {
|
||||
return parseInt($.css(el,p),10)||0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*global define:true */
|
||||
if (typeof define === 'function' && define.amd && define.amd.jQuery) {
|
||||
define(['jquery'], setup);
|
||||
} else {
|
||||
setup(jQuery);
|
||||
}
|
||||
|
||||
})();
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
!function (e, n) { "object" == typeof exports && "undefined" != typeof module ? n() : "function" == typeof define && define.amd ? define(n) : n() }(0, function () { "use strict"; function e(e) { var n = this.constructor; return this.then(function (t) { return n.resolve(e()).then(function () { return t }) }, function (t) { return n.resolve(e()).then(function () { return n.reject(t) }) }) } function n(e) { return !(!e || "undefined" == typeof e.length) } function t() { } function o(e) { if (!(this instanceof o)) throw new TypeError("Promises must be constructed via new"); if ("function" != typeof e) throw new TypeError("not a function"); this._state = 0, this._handled = !1, this._value = undefined, this._deferreds = [], c(e, this) } function r(e, n) { for (; 3 === e._state;)e = e._value; 0 !== e._state ? (e._handled = !0, o._immediateFn(function () { var t = 1 === e._state ? n.onFulfilled : n.onRejected; if (null !== t) { var o; try { o = t(e._value) } catch (r) { return void f(n.promise, r) } i(n.promise, o) } else (1 === e._state ? i : f)(n.promise, e._value) })) : e._deferreds.push(n) } function i(e, n) { try { if (n === e) throw new TypeError("A promise cannot be resolved with itself."); if (n && ("object" == typeof n || "function" == typeof n)) { var t = n.then; if (n instanceof o) return e._state = 3, e._value = n, void u(e); if ("function" == typeof t) return void c(function (e, n) { return function () { e.apply(n, arguments) } }(t, n), e) } e._state = 1, e._value = n, u(e) } catch (r) { f(e, r) } } function f(e, n) { e._state = 2, e._value = n, u(e) } function u(e) { 2 === e._state && 0 === e._deferreds.length && o._immediateFn(function () { e._handled || o._unhandledRejectionFn(e._value) }); for (var n = 0, t = e._deferreds.length; t > n; n++)r(e, e._deferreds[n]); e._deferreds = null } function c(e, n) { var t = !1; try { e(function (e) { t || (t = !0, i(n, e)) }, function (e) { t || (t = !0, f(n, e)) }) } catch (o) { if (t) return; t = !0, f(n, o) } } var a = setTimeout; o.prototype["catch"] = function (e) { return this.then(null, e) }, o.prototype.then = function (e, n) { var o = new this.constructor(t); return r(this, new function (e, n, t) { this.onFulfilled = "function" == typeof e ? e : null, this.onRejected = "function" == typeof n ? n : null, this.promise = t }(e, n, o)), o }, o.prototype["finally"] = e, o.all = function (e) { return new o(function (t, o) { function r(e, n) { try { if (n && ("object" == typeof n || "function" == typeof n)) { var u = n.then; if ("function" == typeof u) return void u.call(n, function (n) { r(e, n) }, o) } i[e] = n, 0 == --f && t(i) } catch (c) { o(c) } } if (!n(e)) return o(new TypeError("Promise.all accepts an array")); var i = Array.prototype.slice.call(e); if (0 === i.length) return t([]); for (var f = i.length, u = 0; i.length > u; u++)r(u, i[u]) }) }, o.resolve = function (e) { return e && "object" == typeof e && e.constructor === o ? e : new o(function (n) { n(e) }) }, o.reject = function (e) { return new o(function (n, t) { t(e) }) }, o.race = function (e) { return new o(function (t, r) { if (!n(e)) return r(new TypeError("Promise.race accepts an array")); for (var i = 0, f = e.length; f > i; i++)o.resolve(e[i]).then(t, r) }) }, o._immediateFn = "function" == typeof setImmediate && function (e) { setImmediate(e) } || function (e) { a(e, 0) }, o._unhandledRejectionFn = function (e) { void 0 !== console && console && console.warn("Possible Unhandled Promise Rejection:", e) }; var l = function () { if ("undefined" != typeof self) return self; if ("undefined" != typeof window) return window; if ("undefined" != typeof global) return global; throw Error("unable to locate global object") }(); "Promise" in l ? l.Promise.prototype["finally"] || (l.Promise.prototype["finally"] = e) : l.Promise = o });
|
||||
File diff suppressed because one or more lines are too long
+11909
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user