Toggle navigation
Toggle navigation
This project
Loading...
Sign in
wangshusheng
/
YOHOBUYPC
·
Commits
Go to a project
GitLab
Go to dashboard
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Email Patches
Plain Diff
Browse Files
Authored by
梁志锋
9 years ago
Commit
5b89791868b624266fd7c664204abd91b418b738
1 parent
2ca7102a
yas上传
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
1862 additions
and
28 deletions
static/yas-jssdk/1.0.13.6.3/yas-debug.js
static/yas-jssdk/1.0.13.6.3/yas.js
template/m.yohobuy.com/actions/cart/index/index.phtml
yohobuy/m.yohobuy.com/application/modules/Cart/controllers/Index.php
static/yas-jssdk/1.0.13.6.3/yas-debug.js
0 → 100644
View file @
5b89791
;(
function
()
{
var
yas_jssdk_101363_src_config_debug
,
yas_jssdk_101363_src_cross_debug
,
yas_jssdk_101363_src_event_debug
,
yohosizzle_222_pre_sizzle_debug
,
yohojson2_100_json2_debug
,
yas_jssdk_101363_src_util_debug
,
yas_jssdk_101363_src_cookie_debug
,
yas_jssdk_101363_src_ya_debug
,
yas_jssdk_101363_yas_debug
;
yas_jssdk_101363_src_config_debug
=
function
(
exports
)
{
exports
=
{
version
:
'1.0'
,
yasPath
:
'/web/'
,
yasDomain
:
getDomain
(),
yasImgDomain
:
'http://analytics.yhurl.com/yas.gif'
};
function
getDomain
()
{
var
domainArr
=
document
.
domain
.
split
(
'.'
);
var
length
=
domainArr
.
length
;
if
(
length
>
1
&&
isNaN
(
domainArr
[
length
-
1
]))
{
return
'.'
+
domainArr
[
length
-
2
]
+
'.'
+
domainArr
[
length
-
1
];
}
else
{
return
document
.
domain
;
}
}
return
exports
;
}();
yas_jssdk_101363_src_cross_debug
=
function
(
exports
)
{
/**
* 跨域发送信息工具库
*/
var
config
=
yas_jssdk_101363_src_config_debug
;
var
yasPath
=
config
.
yasPath
;
var
yasImgDomain
=
config
.
yasImgDomain
;
//发送图片方式
exports
.
imgSend
=
function
(
param
,
callback
)
{
var
image
=
new
Image
(
1
,
1
);
image
.
src
=
yasImgDomain
+
yasPath
+
'?'
+
param
;
image
.
onload
=
function
()
{
image
.
onload
=
null
;
if
(
callback
)
{
callback
();
}
};
};
return
exports
;
}({});
yas_jssdk_101363_src_event_debug
=
function
(
exports
)
{
exports
.
addEventHandler
=
function
(
target
,
type
,
func
)
{
if
(
target
.
addEventListener
)
target
.
addEventListener
(
type
,
func
,
false
);
else
if
(
target
.
attachEvent
)
target
.
attachEvent
(
'on'
+
type
,
func
);
else
target
[
'on'
+
type
]
=
func
;
};
exports
.
removeEventHandler
=
function
(
target
,
type
,
func
)
{
if
(
target
.
removeEventListener
)
target
.
removeEventListener
(
type
,
func
,
false
);
else
if
(
target
.
detachEvent
)
target
.
detachEvent
(
'on'
+
type
,
func
);
else
delete
target
[
'on'
+
type
];
};
return
exports
;
}({});
yohosizzle_222_pre_sizzle_debug
=
function
(
exports
)
{
(
function
(
window
)
{
var
i
,
support
,
Expr
,
getText
,
isXML
,
tokenize
,
compile
,
select
,
outermostContext
,
sortInput
,
hasDuplicate
,
setDocument
,
document
,
docElem
,
documentIsHTML
,
rbuggyQSA
,
rbuggyMatches
,
matches
,
contains
,
expando
=
'sizzle'
+
1
*
new
Date
(),
preferredDoc
=
window
.
document
,
dirruns
=
0
,
done
=
0
,
classCache
=
createCache
(),
tokenCache
=
createCache
(),
compilerCache
=
createCache
(),
sortOrder
=
function
(
a
,
b
)
{
if
(
a
===
b
)
{
hasDuplicate
=
true
;
}
return
0
;
},
hasOwn
=
{}.
hasOwnProperty
,
arr
=
[],
pop
=
arr
.
pop
,
push_native
=
arr
.
push
,
push
=
arr
.
push
,
slice
=
arr
.
slice
,
indexOf
=
function
(
list
,
elem
)
{
var
i
=
0
,
len
=
list
.
length
;
for
(;
i
<
len
;
i
++
)
{
if
(
list
[
i
]
===
elem
)
{
return
i
;
}
}
return
-
1
;
},
booleans
=
'checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped'
,
whitespace
=
'[\\x20\\t\\r\\n\\f]'
,
identifier
=
'(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+'
,
attributes
=
'\\['
+
whitespace
+
'*('
+
identifier
+
')(?:'
+
whitespace
+
'*([*^$|!~]?=)'
+
whitespace
+
'*(?:\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)"|('
+
identifier
+
'))|)'
+
whitespace
+
'*\\]'
,
pseudos
=
':('
+
identifier
+
')(?:\\(('
+
'(\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)")|'
+
'((?:\\\\.|[^\\\\()[\\]]|'
+
attributes
+
')*)|'
+
'.*'
+
')\\)|)'
,
rwhitespace
=
new
RegExp
(
whitespace
+
'+'
,
'g'
),
rtrim
=
new
RegExp
(
'^'
+
whitespace
+
'+|((?:^|[^\\\\])(?:\\\\.)*)'
+
whitespace
+
'+$'
,
'g'
),
rcomma
=
new
RegExp
(
'^'
+
whitespace
+
'*,'
+
whitespace
+
'*'
),
rcombinators
=
new
RegExp
(
'^'
+
whitespace
+
'*([>+~]|'
+
whitespace
+
')'
+
whitespace
+
'*'
),
rattributeQuotes
=
new
RegExp
(
'='
+
whitespace
+
'*([^\\]\'"]*?)'
+
whitespace
+
'*\\]'
,
'g'
),
rpseudo
=
new
RegExp
(
pseudos
),
ridentifier
=
new
RegExp
(
'^'
+
identifier
+
'$'
),
matchExpr
=
{
'ID'
:
new
RegExp
(
'^#('
+
identifier
+
')'
),
'CLASS'
:
new
RegExp
(
'^\\.('
+
identifier
+
')'
),
'TAG'
:
new
RegExp
(
'^('
+
identifier
+
'|[*])'
),
'ATTR'
:
new
RegExp
(
'^'
+
attributes
),
'PSEUDO'
:
new
RegExp
(
'^'
+
pseudos
),
'CHILD'
:
new
RegExp
(
'^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\('
+
whitespace
+
'*(even|odd|(([+-]|)(\\d*)n|)'
+
whitespace
+
'*(?:([+-]|)'
+
whitespace
+
'*(\\d+)|))'
+
whitespace
+
'*\\)|)'
,
'i'
),
'bool'
:
new
RegExp
(
'^(?:'
+
booleans
+
')$'
,
'i'
),
'needsContext'
:
new
RegExp
(
'^'
+
whitespace
+
'*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\('
+
whitespace
+
'*((?:-\\d)?\\d*)'
+
whitespace
+
'*\\)|)(?=[^-]|$)'
,
'i'
)
},
rinputs
=
/^
(?:
input|select|textarea|button
)
$/i
,
rheader
=
/^h
\d
$/i
,
rnative
=
/^
[^
{
]
+
\{\s
*
\[
native
\w
/
,
rquickExpr
=
/^
(?:
#
([\w
-
]
+
)
|
(\w
+
)
|
\.([\w
-
]
+
))
$/
,
rsibling
=
/
[
+~
]
/
,
rescape
=
/'|
\\
/g
,
runescape
=
new
RegExp
(
'\\\\([\\da-f]{1,6}'
+
whitespace
+
'?|('
+
whitespace
+
')|.)'
,
'ig'
),
funescape
=
function
(
_
,
escaped
,
escapedWhitespace
)
{
var
high
=
'0x'
+
escaped
-
65536
;
return
high
!==
high
||
escapedWhitespace
?
escaped
:
high
<
0
?
String
.
fromCharCode
(
high
+
65536
)
:
String
.
fromCharCode
(
high
>>
10
|
55296
,
high
&
1023
|
56320
);
},
unloadHandler
=
function
()
{
setDocument
();
};
try
{
push
.
apply
(
arr
=
slice
.
call
(
preferredDoc
.
childNodes
),
preferredDoc
.
childNodes
);
arr
[
preferredDoc
.
childNodes
.
length
].
nodeType
;
}
catch
(
e
)
{
push
=
{
apply
:
arr
.
length
?
function
(
target
,
els
)
{
push_native
.
apply
(
target
,
slice
.
call
(
els
));
}
:
function
(
target
,
els
)
{
var
j
=
target
.
length
,
i
=
0
;
while
(
target
[
j
++
]
=
els
[
i
++
])
{
}
target
.
length
=
j
-
1
;
}
};
}
function
Sizzle
(
selector
,
context
,
results
,
seed
)
{
var
m
,
i
,
elem
,
nid
,
nidselect
,
match
,
groups
,
newSelector
,
newContext
=
context
&&
context
.
ownerDocument
,
nodeType
=
context
?
context
.
nodeType
:
9
;
results
=
results
||
[];
if
(
typeof
selector
!==
'string'
||
!
selector
||
nodeType
!==
1
&&
nodeType
!==
9
&&
nodeType
!==
11
)
{
return
results
;
}
if
(
!
seed
)
{
if
((
context
?
context
.
ownerDocument
||
context
:
preferredDoc
)
!==
document
)
{
setDocument
(
context
);
}
context
=
context
||
document
;
if
(
documentIsHTML
)
{
if
(
nodeType
!==
11
&&
(
match
=
rquickExpr
.
exec
(
selector
)))
{
if
(
m
=
match
[
1
])
{
if
(
nodeType
===
9
)
{
if
(
elem
=
context
.
getElementById
(
m
))
{
if
(
elem
.
id
===
m
)
{
results
.
push
(
elem
);
return
results
;
}
}
else
{
return
results
;
}
}
else
{
if
(
newContext
&&
(
elem
=
newContext
.
getElementById
(
m
))
&&
contains
(
context
,
elem
)
&&
elem
.
id
===
m
)
{
results
.
push
(
elem
);
return
results
;
}
}
}
else
if
(
match
[
2
])
{
push
.
apply
(
results
,
context
.
getElementsByTagName
(
selector
));
return
results
;
}
else
if
((
m
=
match
[
3
])
&&
support
.
getElementsByClassName
&&
context
.
getElementsByClassName
)
{
push
.
apply
(
results
,
context
.
getElementsByClassName
(
m
));
return
results
;
}
}
if
(
support
.
qsa
&&
!
compilerCache
[
selector
+
' '
]
&&
(
!
rbuggyQSA
||
!
rbuggyQSA
.
test
(
selector
)))
{
if
(
nodeType
!==
1
)
{
newContext
=
context
;
newSelector
=
selector
;
}
else
if
(
context
.
nodeName
.
toLowerCase
()
!==
'object'
)
{
if
(
nid
=
context
.
getAttribute
(
'id'
))
{
nid
=
nid
.
replace
(
rescape
,
'\\$&'
);
}
else
{
context
.
setAttribute
(
'id'
,
nid
=
expando
);
}
groups
=
tokenize
(
selector
);
i
=
groups
.
length
;
nidselect
=
ridentifier
.
test
(
nid
)
?
'#'
+
nid
:
'[id=\''
+
nid
+
'\']'
;
while
(
i
--
)
{
groups
[
i
]
=
nidselect
+
' '
+
toSelector
(
groups
[
i
]);
}
newSelector
=
groups
.
join
(
','
);
newContext
=
rsibling
.
test
(
selector
)
&&
testContext
(
context
.
parentNode
)
||
context
;
}
if
(
newSelector
)
{
try
{
push
.
apply
(
results
,
newContext
.
querySelectorAll
(
newSelector
));
return
results
;
}
catch
(
qsaError
)
{
}
finally
{
if
(
nid
===
expando
)
{
context
.
removeAttribute
(
'id'
);
}
}
}
}
}
}
return
select
(
selector
.
replace
(
rtrim
,
'$1'
),
context
,
results
,
seed
);
}
function
createCache
()
{
var
keys
=
[];
function
cache
(
key
,
value
)
{
if
(
keys
.
push
(
key
+
' '
)
>
Expr
.
cacheLength
)
{
delete
cache
[
keys
.
shift
()];
}
return
cache
[
key
+
' '
]
=
value
;
}
return
cache
;
}
function
markFunction
(
fn
)
{
fn
[
expando
]
=
true
;
return
fn
;
}
function
assert
(
fn
)
{
var
div
=
document
.
createElement
(
'div'
);
try
{
return
!!
fn
(
div
);
}
catch
(
e
)
{
return
false
;
}
finally
{
if
(
div
.
parentNode
)
{
div
.
parentNode
.
removeChild
(
div
);
}
div
=
null
;
}
}
function
addHandle
(
attrs
,
handler
)
{
var
arr
=
attrs
.
split
(
'|'
),
i
=
arr
.
length
;
while
(
i
--
)
{
Expr
.
attrHandle
[
arr
[
i
]]
=
handler
;
}
}
function
siblingCheck
(
a
,
b
)
{
var
cur
=
b
&&
a
,
diff
=
cur
&&
a
.
nodeType
===
1
&&
b
.
nodeType
===
1
&&
a
.
sourceIndex
-
b
.
sourceIndex
;
if
(
diff
)
{
return
diff
;
}
if
(
cur
)
{
while
(
cur
=
cur
.
nextSibling
)
{
if
(
cur
===
b
)
{
return
-
1
;
}
}
}
return
a
?
1
:
-
1
;
}
function
createInputPseudo
(
type
)
{
return
function
(
elem
)
{
var
name
=
elem
.
nodeName
.
toLowerCase
();
return
name
===
'input'
&&
elem
.
type
===
type
;
};
}
function
createButtonPseudo
(
type
)
{
return
function
(
elem
)
{
var
name
=
elem
.
nodeName
.
toLowerCase
();
return
(
name
===
'input'
||
name
===
'button'
)
&&
elem
.
type
===
type
;
};
}
function
createPositionalPseudo
(
fn
)
{
return
markFunction
(
function
(
argument
)
{
argument
=
+
argument
;
return
markFunction
(
function
(
seed
,
matches
)
{
var
j
,
matchIndexes
=
fn
([],
seed
.
length
,
argument
),
i
=
matchIndexes
.
length
;
while
(
i
--
)
{
if
(
seed
[
j
=
matchIndexes
[
i
]])
{
seed
[
j
]
=
!
(
matches
[
j
]
=
seed
[
j
]);
}
}
});
});
}
function
testContext
(
context
)
{
return
context
&&
typeof
context
.
getElementsByTagName
!==
'undefined'
&&
context
;
}
support
=
Sizzle
.
support
=
{};
isXML
=
Sizzle
.
isXML
=
function
(
elem
)
{
var
documentElement
=
elem
&&
(
elem
.
ownerDocument
||
elem
).
documentElement
;
return
documentElement
?
documentElement
.
nodeName
!==
'HTML'
:
false
;
};
setDocument
=
Sizzle
.
setDocument
=
function
(
node
)
{
var
hasCompare
,
subWindow
,
doc
=
node
?
node
.
ownerDocument
||
node
:
preferredDoc
;
if
(
doc
===
document
||
doc
.
nodeType
!==
9
||
!
doc
.
documentElement
)
{
return
document
;
}
document
=
doc
;
docElem
=
document
.
documentElement
;
documentIsHTML
=
!
isXML
(
document
);
if
(
preferredDoc
!==
document
&&
(
subWindow
=
document
.
defaultView
)
&&
subWindow
.
top
!==
subWindow
)
{
if
(
subWindow
.
addEventListener
)
{
subWindow
.
addEventListener
(
'unload'
,
unloadHandler
,
false
);
}
else
if
(
subWindow
.
attachEvent
)
{
subWindow
.
attachEvent
(
'onunload'
,
unloadHandler
);
}
}
support
.
attributes
=
assert
(
function
(
div
)
{
div
.
className
=
'i'
;
return
!
div
.
getAttribute
(
'className'
);
});
support
.
getElementsByTagName
=
assert
(
function
(
div
)
{
div
.
appendChild
(
document
.
createComment
(
''
));
return
!
div
.
getElementsByTagName
(
'*'
).
length
;
});
support
.
getElementsByClassName
=
rnative
.
test
(
document
.
getElementsByClassName
);
support
.
getById
=
assert
(
function
(
div
)
{
docElem
.
appendChild
(
div
).
id
=
expando
;
return
!
document
.
getElementsByName
||
!
document
.
getElementsByName
(
expando
).
length
;
});
if
(
support
.
getById
)
{
Expr
.
find
[
'ID'
]
=
function
(
id
,
context
)
{
if
(
typeof
context
.
getElementById
!==
'undefined'
&&
documentIsHTML
)
{
var
m
=
context
.
getElementById
(
id
);
return
m
?
[
m
]
:
[];
}
};
Expr
.
filter
[
'ID'
]
=
function
(
id
)
{
var
attrId
=
id
.
replace
(
runescape
,
funescape
);
return
function
(
elem
)
{
return
elem
.
getAttribute
(
'id'
)
===
attrId
;
};
};
}
else
{
delete
Expr
.
find
[
'ID'
];
Expr
.
filter
[
'ID'
]
=
function
(
id
)
{
var
attrId
=
id
.
replace
(
runescape
,
funescape
);
return
function
(
elem
)
{
var
node
=
typeof
elem
.
getAttributeNode
!==
'undefined'
&&
elem
.
getAttributeNode
(
'id'
);
return
node
&&
node
.
value
===
attrId
;
};
};
}
Expr
.
find
[
'TAG'
]
=
support
.
getElementsByTagName
?
function
(
tag
,
context
)
{
if
(
typeof
context
.
getElementsByTagName
!==
'undefined'
)
{
return
context
.
getElementsByTagName
(
tag
);
}
else
if
(
support
.
qsa
)
{
return
context
.
querySelectorAll
(
tag
);
}
}
:
function
(
tag
,
context
)
{
var
elem
,
tmp
=
[],
i
=
0
,
results
=
context
.
getElementsByTagName
(
tag
);
if
(
tag
===
'*'
)
{
while
(
elem
=
results
[
i
++
])
{
if
(
elem
.
nodeType
===
1
)
{
tmp
.
push
(
elem
);
}
}
return
tmp
;
}
return
results
;
};
Expr
.
find
[
'CLASS'
]
=
support
.
getElementsByClassName
&&
function
(
className
,
context
)
{
if
(
typeof
context
.
getElementsByClassName
!==
'undefined'
&&
documentIsHTML
)
{
return
context
.
getElementsByClassName
(
className
);
}
};
rbuggyMatches
=
[];
rbuggyQSA
=
[];
if
(
support
.
qsa
=
rnative
.
test
(
document
.
querySelectorAll
))
{
assert
(
function
(
div
)
{
docElem
.
appendChild
(
div
).
innerHTML
=
'<a id=\''
+
expando
+
'\'></a>'
+
'<select id=\''
+
expando
+
'-\r\\\' msallowcapture=\'\'>'
+
'<option selected=\'\'></option></select>'
;
if
(
div
.
querySelectorAll
(
'[msallowcapture^=\'\']'
).
length
)
{
rbuggyQSA
.
push
(
'[*^$]='
+
whitespace
+
'*(?:\'\'|"")'
);
}
if
(
!
div
.
querySelectorAll
(
'[selected]'
).
length
)
{
rbuggyQSA
.
push
(
'\\['
+
whitespace
+
'*(?:value|'
+
booleans
+
')'
);
}
if
(
!
div
.
querySelectorAll
(
'[id~='
+
expando
+
'-]'
).
length
)
{
rbuggyQSA
.
push
(
'~='
);
}
if
(
!
div
.
querySelectorAll
(
':checked'
).
length
)
{
rbuggyQSA
.
push
(
':checked'
);
}
if
(
!
div
.
querySelectorAll
(
'a#'
+
expando
+
'+*'
).
length
)
{
rbuggyQSA
.
push
(
'.#.+[+~]'
);
}
});
assert
(
function
(
div
)
{
var
input
=
document
.
createElement
(
'input'
);
input
.
setAttribute
(
'type'
,
'hidden'
);
div
.
appendChild
(
input
).
setAttribute
(
'name'
,
'D'
);
if
(
div
.
querySelectorAll
(
'[name=d]'
).
length
)
{
rbuggyQSA
.
push
(
'name'
+
whitespace
+
'*[*^$|!~]?='
);
}
if
(
!
div
.
querySelectorAll
(
':enabled'
).
length
)
{
rbuggyQSA
.
push
(
':enabled'
,
':disabled'
);
}
div
.
querySelectorAll
(
'*,:x'
);
rbuggyQSA
.
push
(
',.*:'
);
});
}
if
(
support
.
matchesSelector
=
rnative
.
test
(
matches
=
docElem
.
matches
||
docElem
.
webkitMatchesSelector
||
docElem
.
mozMatchesSelector
||
docElem
.
oMatchesSelector
||
docElem
.
msMatchesSelector
))
{
assert
(
function
(
div
)
{
support
.
disconnectedMatch
=
matches
.
call
(
div
,
'div'
);
matches
.
call
(
div
,
'[s!=\'\']:x'
);
rbuggyMatches
.
push
(
'!='
,
pseudos
);
});
}
rbuggyQSA
=
rbuggyQSA
.
length
&&
new
RegExp
(
rbuggyQSA
.
join
(
'|'
));
rbuggyMatches
=
rbuggyMatches
.
length
&&
new
RegExp
(
rbuggyMatches
.
join
(
'|'
));
hasCompare
=
rnative
.
test
(
docElem
.
compareDocumentPosition
);
contains
=
hasCompare
||
rnative
.
test
(
docElem
.
contains
)
?
function
(
a
,
b
)
{
var
adown
=
a
.
nodeType
===
9
?
a
.
documentElement
:
a
,
bup
=
b
&&
b
.
parentNode
;
return
a
===
bup
||
!!
(
bup
&&
bup
.
nodeType
===
1
&&
(
adown
.
contains
?
adown
.
contains
(
bup
)
:
a
.
compareDocumentPosition
&&
a
.
compareDocumentPosition
(
bup
)
&
16
));
}
:
function
(
a
,
b
)
{
if
(
b
)
{
while
(
b
=
b
.
parentNode
)
{
if
(
b
===
a
)
{
return
true
;
}
}
}
return
false
;
};
sortOrder
=
hasCompare
?
function
(
a
,
b
)
{
if
(
a
===
b
)
{
hasDuplicate
=
true
;
return
0
;
}
var
compare
=
!
a
.
compareDocumentPosition
-
!
b
.
compareDocumentPosition
;
if
(
compare
)
{
return
compare
;
}
compare
=
(
a
.
ownerDocument
||
a
)
===
(
b
.
ownerDocument
||
b
)
?
a
.
compareDocumentPosition
(
b
)
:
1
;
if
(
compare
&
1
||
!
support
.
sortDetached
&&
b
.
compareDocumentPosition
(
a
)
===
compare
)
{
if
(
a
===
document
||
a
.
ownerDocument
===
preferredDoc
&&
contains
(
preferredDoc
,
a
))
{
return
-
1
;
}
if
(
b
===
document
||
b
.
ownerDocument
===
preferredDoc
&&
contains
(
preferredDoc
,
b
))
{
return
1
;
}
return
sortInput
?
indexOf
(
sortInput
,
a
)
-
indexOf
(
sortInput
,
b
)
:
0
;
}
return
compare
&
4
?
-
1
:
1
;
}
:
function
(
a
,
b
)
{
if
(
a
===
b
)
{
hasDuplicate
=
true
;
return
0
;
}
var
cur
,
i
=
0
,
aup
=
a
.
parentNode
,
bup
=
b
.
parentNode
,
ap
=
[
a
],
bp
=
[
b
];
if
(
!
aup
||
!
bup
)
{
return
a
===
document
?
-
1
:
b
===
document
?
1
:
aup
?
-
1
:
bup
?
1
:
sortInput
?
indexOf
(
sortInput
,
a
)
-
indexOf
(
sortInput
,
b
)
:
0
;
}
else
if
(
aup
===
bup
)
{
return
siblingCheck
(
a
,
b
);
}
cur
=
a
;
while
(
cur
=
cur
.
parentNode
)
{
ap
.
unshift
(
cur
);
}
cur
=
b
;
while
(
cur
=
cur
.
parentNode
)
{
bp
.
unshift
(
cur
);
}
while
(
ap
[
i
]
===
bp
[
i
])
{
i
++
;
}
return
i
?
siblingCheck
(
ap
[
i
],
bp
[
i
])
:
ap
[
i
]
===
preferredDoc
?
-
1
:
bp
[
i
]
===
preferredDoc
?
1
:
0
;
};
return
document
;
};
Sizzle
.
matches
=
function
(
expr
,
elements
)
{
return
Sizzle
(
expr
,
null
,
null
,
elements
);
};
Sizzle
.
matchesSelector
=
function
(
elem
,
expr
)
{
if
((
elem
.
ownerDocument
||
elem
)
!==
document
)
{
setDocument
(
elem
);
}
expr
=
expr
.
replace
(
rattributeQuotes
,
'=\'$1\']'
);
if
(
support
.
matchesSelector
&&
documentIsHTML
&&
!
compilerCache
[
expr
+
' '
]
&&
(
!
rbuggyMatches
||
!
rbuggyMatches
.
test
(
expr
))
&&
(
!
rbuggyQSA
||
!
rbuggyQSA
.
test
(
expr
)))
{
try
{
var
ret
=
matches
.
call
(
elem
,
expr
);
if
(
ret
||
support
.
disconnectedMatch
||
elem
.
document
&&
elem
.
document
.
nodeType
!==
11
)
{
return
ret
;
}
}
catch
(
e
)
{
}
}
return
Sizzle
(
expr
,
document
,
null
,
[
elem
]).
length
>
0
;
};
Sizzle
.
contains
=
function
(
context
,
elem
)
{
if
((
context
.
ownerDocument
||
context
)
!==
document
)
{
setDocument
(
context
);
}
return
contains
(
context
,
elem
);
};
Sizzle
.
attr
=
function
(
elem
,
name
)
{
if
((
elem
.
ownerDocument
||
elem
)
!==
document
)
{
setDocument
(
elem
);
}
var
fn
=
Expr
.
attrHandle
[
name
.
toLowerCase
()],
val
=
fn
&&
hasOwn
.
call
(
Expr
.
attrHandle
,
name
.
toLowerCase
())
?
fn
(
elem
,
name
,
!
documentIsHTML
)
:
undefined
;
return
val
!==
undefined
?
val
:
support
.
attributes
||
!
documentIsHTML
?
elem
.
getAttribute
(
name
)
:
(
val
=
elem
.
getAttributeNode
(
name
))
&&
val
.
specified
?
val
.
value
:
null
;
};
Sizzle
.
error
=
function
(
msg
)
{
throw
new
Error
(
'Syntax error, unrecognized expression: '
+
msg
);
};
Sizzle
.
uniqueSort
=
function
(
results
)
{
var
elem
,
duplicates
=
[],
j
=
0
,
i
=
0
;
hasDuplicate
=
!
support
.
detectDuplicates
;
sortInput
=
!
support
.
sortStable
&&
results
.
slice
(
0
);
results
.
sort
(
sortOrder
);
if
(
hasDuplicate
)
{
while
(
elem
=
results
[
i
++
])
{
if
(
elem
===
results
[
i
])
{
j
=
duplicates
.
push
(
i
);
}
}
while
(
j
--
)
{
results
.
splice
(
duplicates
[
j
],
1
);
}
}
sortInput
=
null
;
return
results
;
};
getText
=
Sizzle
.
getText
=
function
(
elem
)
{
var
node
,
ret
=
''
,
i
=
0
,
nodeType
=
elem
.
nodeType
;
if
(
!
nodeType
)
{
while
(
node
=
elem
[
i
++
])
{
ret
+=
getText
(
node
);
}
}
else
if
(
nodeType
===
1
||
nodeType
===
9
||
nodeType
===
11
)
{
if
(
typeof
elem
.
textContent
===
'string'
)
{
return
elem
.
textContent
;
}
else
{
for
(
elem
=
elem
.
firstChild
;
elem
;
elem
=
elem
.
nextSibling
)
{
ret
+=
getText
(
elem
);
}
}
}
else
if
(
nodeType
===
3
||
nodeType
===
4
)
{
return
elem
.
nodeValue
;
}
return
ret
;
};
Expr
=
Sizzle
.
selectors
=
{
cacheLength
:
50
,
createPseudo
:
markFunction
,
match
:
matchExpr
,
attrHandle
:
{},
find
:
{},
relative
:
{
'>'
:
{
dir
:
'parentNode'
,
first
:
true
},
' '
:
{
dir
:
'parentNode'
},
'+'
:
{
dir
:
'previousSibling'
,
first
:
true
},
'~'
:
{
dir
:
'previousSibling'
}
},
preFilter
:
{
'ATTR'
:
function
(
match
)
{
match
[
1
]
=
match
[
1
].
replace
(
runescape
,
funescape
);
match
[
3
]
=
(
match
[
3
]
||
match
[
4
]
||
match
[
5
]
||
''
).
replace
(
runescape
,
funescape
);
if
(
match
[
2
]
===
'~='
)
{
match
[
3
]
=
' '
+
match
[
3
]
+
' '
;
}
return
match
.
slice
(
0
,
4
);
},
'CHILD'
:
function
(
match
)
{
match
[
1
]
=
match
[
1
].
toLowerCase
();
if
(
match
[
1
].
slice
(
0
,
3
)
===
'nth'
)
{
if
(
!
match
[
3
])
{
Sizzle
.
error
(
match
[
0
]);
}
match
[
4
]
=
+
(
match
[
4
]
?
match
[
5
]
+
(
match
[
6
]
||
1
)
:
2
*
(
match
[
3
]
===
'even'
||
match
[
3
]
===
'odd'
));
match
[
5
]
=
+
(
match
[
7
]
+
match
[
8
]
||
match
[
3
]
===
'odd'
);
}
else
if
(
match
[
3
])
{
Sizzle
.
error
(
match
[
0
]);
}
return
match
;
},
'PSEUDO'
:
function
(
match
)
{
var
excess
,
unquoted
=
!
match
[
6
]
&&
match
[
2
];
if
(
matchExpr
[
'CHILD'
].
test
(
match
[
0
]))
{
return
null
;
}
if
(
match
[
3
])
{
match
[
2
]
=
match
[
4
]
||
match
[
5
]
||
''
;
}
else
if
(
unquoted
&&
rpseudo
.
test
(
unquoted
)
&&
(
excess
=
tokenize
(
unquoted
,
true
))
&&
(
excess
=
unquoted
.
indexOf
(
')'
,
unquoted
.
length
-
excess
)
-
unquoted
.
length
))
{
match
[
0
]
=
match
[
0
].
slice
(
0
,
excess
);
match
[
2
]
=
unquoted
.
slice
(
0
,
excess
);
}
return
match
.
slice
(
0
,
3
);
}
},
filter
:
{
'TAG'
:
function
(
nodeNameSelector
)
{
var
nodeName
=
nodeNameSelector
.
replace
(
runescape
,
funescape
).
toLowerCase
();
return
nodeNameSelector
===
'*'
?
function
()
{
return
true
;
}
:
function
(
elem
)
{
return
elem
.
nodeName
&&
elem
.
nodeName
.
toLowerCase
()
===
nodeName
;
};
},
'CLASS'
:
function
(
className
)
{
var
pattern
=
classCache
[
className
+
' '
];
return
pattern
||
(
pattern
=
new
RegExp
(
'(^|'
+
whitespace
+
')'
+
className
+
'('
+
whitespace
+
'|$)'
))
&&
classCache
(
className
,
function
(
elem
)
{
return
pattern
.
test
(
typeof
elem
.
className
===
'string'
&&
elem
.
className
||
typeof
elem
.
getAttribute
!==
'undefined'
&&
elem
.
getAttribute
(
'class'
)
||
''
);
});
},
'ATTR'
:
function
(
name
,
operator
,
check
)
{
return
function
(
elem
)
{
var
result
=
Sizzle
.
attr
(
elem
,
name
);
if
(
result
==
null
)
{
return
operator
===
'!='
;
}
if
(
!
operator
)
{
return
true
;
}
result
+=
''
;
return
operator
===
'='
?
result
===
check
:
operator
===
'!='
?
result
!==
check
:
operator
===
'^='
?
check
&&
result
.
indexOf
(
check
)
===
0
:
operator
===
'*='
?
check
&&
result
.
indexOf
(
check
)
>
-
1
:
operator
===
'$='
?
check
&&
result
.
slice
(
-
check
.
length
)
===
check
:
operator
===
'~='
?
(
' '
+
result
.
replace
(
rwhitespace
,
' '
)
+
' '
).
indexOf
(
check
)
>
-
1
:
operator
===
'|='
?
result
===
check
||
result
.
slice
(
0
,
check
.
length
+
1
)
===
check
+
'-'
:
false
;
};
},
'CHILD'
:
function
(
type
,
what
,
argument
,
first
,
last
)
{
var
simple
=
type
.
slice
(
0
,
3
)
!==
'nth'
,
forward
=
type
.
slice
(
-
4
)
!==
'last'
,
ofType
=
what
===
'of-type'
;
return
first
===
1
&&
last
===
0
?
function
(
elem
)
{
return
!!
elem
.
parentNode
;
}
:
function
(
elem
,
context
,
xml
)
{
var
cache
,
uniqueCache
,
outerCache
,
node
,
nodeIndex
,
start
,
dir
=
simple
!==
forward
?
'nextSibling'
:
'previousSibling'
,
parent
=
elem
.
parentNode
,
name
=
ofType
&&
elem
.
nodeName
.
toLowerCase
(),
useCache
=
!
xml
&&
!
ofType
,
diff
=
false
;
if
(
parent
)
{
if
(
simple
)
{
while
(
dir
)
{
node
=
elem
;
while
(
node
=
node
[
dir
])
{
if
(
ofType
?
node
.
nodeName
.
toLowerCase
()
===
name
:
node
.
nodeType
===
1
)
{
return
false
;
}
}
start
=
dir
=
type
===
'only'
&&
!
start
&&
'nextSibling'
;
}
return
true
;
}
start
=
[
forward
?
parent
.
firstChild
:
parent
.
lastChild
];
if
(
forward
&&
useCache
)
{
node
=
parent
;
outerCache
=
node
[
expando
]
||
(
node
[
expando
]
=
{});
uniqueCache
=
outerCache
[
node
.
uniqueID
]
||
(
outerCache
[
node
.
uniqueID
]
=
{});
cache
=
uniqueCache
[
type
]
||
[];
nodeIndex
=
cache
[
0
]
===
dirruns
&&
cache
[
1
];
diff
=
nodeIndex
&&
cache
[
2
];
node
=
nodeIndex
&&
parent
.
childNodes
[
nodeIndex
];
while
(
node
=
++
nodeIndex
&&
node
&&
node
[
dir
]
||
(
diff
=
nodeIndex
=
0
)
||
start
.
pop
())
{
if
(
node
.
nodeType
===
1
&&
++
diff
&&
node
===
elem
)
{
uniqueCache
[
type
]
=
[
dirruns
,
nodeIndex
,
diff
];
break
;
}
}
}
else
{
if
(
useCache
)
{
node
=
elem
;
outerCache
=
node
[
expando
]
||
(
node
[
expando
]
=
{});
uniqueCache
=
outerCache
[
node
.
uniqueID
]
||
(
outerCache
[
node
.
uniqueID
]
=
{});
cache
=
uniqueCache
[
type
]
||
[];
nodeIndex
=
cache
[
0
]
===
dirruns
&&
cache
[
1
];
diff
=
nodeIndex
;
}
if
(
diff
===
false
)
{
while
(
node
=
++
nodeIndex
&&
node
&&
node
[
dir
]
||
(
diff
=
nodeIndex
=
0
)
||
start
.
pop
())
{
if
((
ofType
?
node
.
nodeName
.
toLowerCase
()
===
name
:
node
.
nodeType
===
1
)
&&
++
diff
)
{
if
(
useCache
)
{
outerCache
=
node
[
expando
]
||
(
node
[
expando
]
=
{});
uniqueCache
=
outerCache
[
node
.
uniqueID
]
||
(
outerCache
[
node
.
uniqueID
]
=
{});
uniqueCache
[
type
]
=
[
dirruns
,
diff
];
}
if
(
node
===
elem
)
{
break
;
}
}
}
}
}
diff
-=
last
;
return
diff
===
first
||
diff
%
first
===
0
&&
diff
/
first
>=
0
;
}
};
},
'PSEUDO'
:
function
(
pseudo
,
argument
)
{
var
args
,
fn
=
Expr
.
pseudos
[
pseudo
]
||
Expr
.
setFilters
[
pseudo
.
toLowerCase
()]
||
Sizzle
.
error
(
'unsupported pseudo: '
+
pseudo
);
if
(
fn
[
expando
])
{
return
fn
(
argument
);
}
if
(
fn
.
length
>
1
)
{
args
=
[
pseudo
,
pseudo
,
''
,
argument
];
return
Expr
.
setFilters
.
hasOwnProperty
(
pseudo
.
toLowerCase
())
?
markFunction
(
function
(
seed
,
matches
)
{
var
idx
,
matched
=
fn
(
seed
,
argument
),
i
=
matched
.
length
;
while
(
i
--
)
{
idx
=
indexOf
(
seed
,
matched
[
i
]);
seed
[
idx
]
=
!
(
matches
[
idx
]
=
matched
[
i
]);
}
})
:
function
(
elem
)
{
return
fn
(
elem
,
0
,
args
);
};
}
return
fn
;
}
},
pseudos
:
{
'not'
:
markFunction
(
function
(
selector
)
{
var
input
=
[],
results
=
[],
matcher
=
compile
(
selector
.
replace
(
rtrim
,
'$1'
));
return
matcher
[
expando
]
?
markFunction
(
function
(
seed
,
matches
,
context
,
xml
)
{
var
elem
,
unmatched
=
matcher
(
seed
,
null
,
xml
,
[]),
i
=
seed
.
length
;
while
(
i
--
)
{
if
(
elem
=
unmatched
[
i
])
{
seed
[
i
]
=
!
(
matches
[
i
]
=
elem
);
}
}
})
:
function
(
elem
,
context
,
xml
)
{
input
[
0
]
=
elem
;
matcher
(
input
,
null
,
xml
,
results
);
input
[
0
]
=
null
;
return
!
results
.
pop
();
};
}),
'has'
:
markFunction
(
function
(
selector
)
{
return
function
(
elem
)
{
return
Sizzle
(
selector
,
elem
).
length
>
0
;
};
}),
'contains'
:
markFunction
(
function
(
text
)
{
text
=
text
.
replace
(
runescape
,
funescape
);
return
function
(
elem
)
{
return
(
elem
.
textContent
||
elem
.
innerText
||
getText
(
elem
)).
indexOf
(
text
)
>
-
1
;
};
}),
'lang'
:
markFunction
(
function
(
lang
)
{
if
(
!
ridentifier
.
test
(
lang
||
''
))
{
Sizzle
.
error
(
'unsupported lang: '
+
lang
);
}
lang
=
lang
.
replace
(
runescape
,
funescape
).
toLowerCase
();
return
function
(
elem
)
{
var
elemLang
;
do
{
if
(
elemLang
=
documentIsHTML
?
elem
.
lang
:
elem
.
getAttribute
(
'xml:lang'
)
||
elem
.
getAttribute
(
'lang'
))
{
elemLang
=
elemLang
.
toLowerCase
();
return
elemLang
===
lang
||
elemLang
.
indexOf
(
lang
+
'-'
)
===
0
;
}
}
while
((
elem
=
elem
.
parentNode
)
&&
elem
.
nodeType
===
1
);
return
false
;
};
}),
'target'
:
function
(
elem
)
{
var
hash
=
window
.
location
&&
window
.
location
.
hash
;
return
hash
&&
hash
.
slice
(
1
)
===
elem
.
id
;
},
'root'
:
function
(
elem
)
{
return
elem
===
docElem
;
},
'focus'
:
function
(
elem
)
{
return
elem
===
document
.
activeElement
&&
(
!
document
.
hasFocus
||
document
.
hasFocus
())
&&
!!
(
elem
.
type
||
elem
.
href
||
~
elem
.
tabIndex
);
},
'enabled'
:
function
(
elem
)
{
return
elem
.
disabled
===
false
;
},
'disabled'
:
function
(
elem
)
{
return
elem
.
disabled
===
true
;
},
'checked'
:
function
(
elem
)
{
var
nodeName
=
elem
.
nodeName
.
toLowerCase
();
return
nodeName
===
'input'
&&
!!
elem
.
checked
||
nodeName
===
'option'
&&
!!
elem
.
selected
;
},
'selected'
:
function
(
elem
)
{
if
(
elem
.
parentNode
)
{
elem
.
parentNode
.
selectedIndex
;
}
return
elem
.
selected
===
true
;
},
'empty'
:
function
(
elem
)
{
for
(
elem
=
elem
.
firstChild
;
elem
;
elem
=
elem
.
nextSibling
)
{
if
(
elem
.
nodeType
<
6
)
{
return
false
;
}
}
return
true
;
},
'parent'
:
function
(
elem
)
{
return
!
Expr
.
pseudos
[
'empty'
](
elem
);
},
'header'
:
function
(
elem
)
{
return
rheader
.
test
(
elem
.
nodeName
);
},
'input'
:
function
(
elem
)
{
return
rinputs
.
test
(
elem
.
nodeName
);
},
'button'
:
function
(
elem
)
{
var
name
=
elem
.
nodeName
.
toLowerCase
();
return
name
===
'input'
&&
elem
.
type
===
'button'
||
name
===
'button'
;
},
'text'
:
function
(
elem
)
{
var
attr
;
return
elem
.
nodeName
.
toLowerCase
()
===
'input'
&&
elem
.
type
===
'text'
&&
((
attr
=
elem
.
getAttribute
(
'type'
))
==
null
||
attr
.
toLowerCase
()
===
'text'
);
},
'first'
:
createPositionalPseudo
(
function
()
{
return
[
0
];
}),
'last'
:
createPositionalPseudo
(
function
(
matchIndexes
,
length
)
{
return
[
length
-
1
];
}),
'eq'
:
createPositionalPseudo
(
function
(
matchIndexes
,
length
,
argument
)
{
return
[
argument
<
0
?
argument
+
length
:
argument
];
}),
'even'
:
createPositionalPseudo
(
function
(
matchIndexes
,
length
)
{
var
i
=
0
;
for
(;
i
<
length
;
i
+=
2
)
{
matchIndexes
.
push
(
i
);
}
return
matchIndexes
;
}),
'odd'
:
createPositionalPseudo
(
function
(
matchIndexes
,
length
)
{
var
i
=
1
;
for
(;
i
<
length
;
i
+=
2
)
{
matchIndexes
.
push
(
i
);
}
return
matchIndexes
;
}),
'lt'
:
createPositionalPseudo
(
function
(
matchIndexes
,
length
,
argument
)
{
var
i
=
argument
<
0
?
argument
+
length
:
argument
;
for
(;
--
i
>=
0
;)
{
matchIndexes
.
push
(
i
);
}
return
matchIndexes
;
}),
'gt'
:
createPositionalPseudo
(
function
(
matchIndexes
,
length
,
argument
)
{
var
i
=
argument
<
0
?
argument
+
length
:
argument
;
for
(;
++
i
<
length
;)
{
matchIndexes
.
push
(
i
);
}
return
matchIndexes
;
})
}
};
Expr
.
pseudos
[
'nth'
]
=
Expr
.
pseudos
[
'eq'
];
for
(
i
in
{
radio
:
true
,
checkbox
:
true
,
file
:
true
,
password
:
true
,
image
:
true
})
{
Expr
.
pseudos
[
i
]
=
createInputPseudo
(
i
);
}
for
(
i
in
{
submit
:
true
,
reset
:
true
})
{
Expr
.
pseudos
[
i
]
=
createButtonPseudo
(
i
);
}
function
setFilters
()
{
}
setFilters
.
prototype
=
Expr
.
filters
=
Expr
.
pseudos
;
Expr
.
setFilters
=
new
setFilters
();
tokenize
=
Sizzle
.
tokenize
=
function
(
selector
,
parseOnly
)
{
var
matched
,
match
,
tokens
,
type
,
soFar
,
groups
,
preFilters
,
cached
=
tokenCache
[
selector
+
' '
];
if
(
cached
)
{
return
parseOnly
?
0
:
cached
.
slice
(
0
);
}
soFar
=
selector
;
groups
=
[];
preFilters
=
Expr
.
preFilter
;
while
(
soFar
)
{
if
(
!
matched
||
(
match
=
rcomma
.
exec
(
soFar
)))
{
if
(
match
)
{
soFar
=
soFar
.
slice
(
match
[
0
].
length
)
||
soFar
;
}
groups
.
push
(
tokens
=
[]);
}
matched
=
false
;
if
(
match
=
rcombinators
.
exec
(
soFar
))
{
matched
=
match
.
shift
();
tokens
.
push
({
value
:
matched
,
type
:
match
[
0
].
replace
(
rtrim
,
' '
)
});
soFar
=
soFar
.
slice
(
matched
.
length
);
}
for
(
type
in
Expr
.
filter
)
{
if
((
match
=
matchExpr
[
type
].
exec
(
soFar
))
&&
(
!
preFilters
[
type
]
||
(
match
=
preFilters
[
type
](
match
))))
{
matched
=
match
.
shift
();
tokens
.
push
({
value
:
matched
,
type
:
type
,
matches
:
match
});
soFar
=
soFar
.
slice
(
matched
.
length
);
}
}
if
(
!
matched
)
{
break
;
}
}
return
parseOnly
?
soFar
.
length
:
soFar
?
Sizzle
.
error
(
selector
)
:
tokenCache
(
selector
,
groups
).
slice
(
0
);
};
function
toSelector
(
tokens
)
{
var
i
=
0
,
len
=
tokens
.
length
,
selector
=
''
;
for
(;
i
<
len
;
i
++
)
{
selector
+=
tokens
[
i
].
value
;
}
return
selector
;
}
function
addCombinator
(
matcher
,
combinator
,
base
)
{
var
dir
=
combinator
.
dir
,
checkNonElements
=
base
&&
dir
===
'parentNode'
,
doneName
=
done
++
;
return
combinator
.
first
?
function
(
elem
,
context
,
xml
)
{
while
(
elem
=
elem
[
dir
])
{
if
(
elem
.
nodeType
===
1
||
checkNonElements
)
{
return
matcher
(
elem
,
context
,
xml
);
}
}
}
:
function
(
elem
,
context
,
xml
)
{
var
oldCache
,
uniqueCache
,
outerCache
,
newCache
=
[
dirruns
,
doneName
];
if
(
xml
)
{
while
(
elem
=
elem
[
dir
])
{
if
(
elem
.
nodeType
===
1
||
checkNonElements
)
{
if
(
matcher
(
elem
,
context
,
xml
))
{
return
true
;
}
}
}
}
else
{
while
(
elem
=
elem
[
dir
])
{
if
(
elem
.
nodeType
===
1
||
checkNonElements
)
{
outerCache
=
elem
[
expando
]
||
(
elem
[
expando
]
=
{});
uniqueCache
=
outerCache
[
elem
.
uniqueID
]
||
(
outerCache
[
elem
.
uniqueID
]
=
{});
if
((
oldCache
=
uniqueCache
[
dir
])
&&
oldCache
[
0
]
===
dirruns
&&
oldCache
[
1
]
===
doneName
)
{
return
newCache
[
2
]
=
oldCache
[
2
];
}
else
{
uniqueCache
[
dir
]
=
newCache
;
if
(
newCache
[
2
]
=
matcher
(
elem
,
context
,
xml
))
{
return
true
;
}
}
}
}
}
};
}
function
elementMatcher
(
matchers
)
{
return
matchers
.
length
>
1
?
function
(
elem
,
context
,
xml
)
{
var
i
=
matchers
.
length
;
while
(
i
--
)
{
if
(
!
matchers
[
i
](
elem
,
context
,
xml
))
{
return
false
;
}
}
return
true
;
}
:
matchers
[
0
];
}
function
multipleContexts
(
selector
,
contexts
,
results
)
{
var
i
=
0
,
len
=
contexts
.
length
;
for
(;
i
<
len
;
i
++
)
{
Sizzle
(
selector
,
contexts
[
i
],
results
);
}
return
results
;
}
function
condense
(
unmatched
,
map
,
filter
,
context
,
xml
)
{
var
elem
,
newUnmatched
=
[],
i
=
0
,
len
=
unmatched
.
length
,
mapped
=
map
!=
null
;
for
(;
i
<
len
;
i
++
)
{
if
(
elem
=
unmatched
[
i
])
{
if
(
!
filter
||
filter
(
elem
,
context
,
xml
))
{
newUnmatched
.
push
(
elem
);
if
(
mapped
)
{
map
.
push
(
i
);
}
}
}
}
return
newUnmatched
;
}
function
setMatcher
(
preFilter
,
selector
,
matcher
,
postFilter
,
postFinder
,
postSelector
)
{
if
(
postFilter
&&
!
postFilter
[
expando
])
{
postFilter
=
setMatcher
(
postFilter
);
}
if
(
postFinder
&&
!
postFinder
[
expando
])
{
postFinder
=
setMatcher
(
postFinder
,
postSelector
);
}
return
markFunction
(
function
(
seed
,
results
,
context
,
xml
)
{
var
temp
,
i
,
elem
,
preMap
=
[],
postMap
=
[],
preexisting
=
results
.
length
,
elems
=
seed
||
multipleContexts
(
selector
||
'*'
,
context
.
nodeType
?
[
context
]
:
context
,
[]),
matcherIn
=
preFilter
&&
(
seed
||
!
selector
)
?
condense
(
elems
,
preMap
,
preFilter
,
context
,
xml
)
:
elems
,
matcherOut
=
matcher
?
postFinder
||
(
seed
?
preFilter
:
preexisting
||
postFilter
)
?
[]
:
results
:
matcherIn
;
if
(
matcher
)
{
matcher
(
matcherIn
,
matcherOut
,
context
,
xml
);
}
if
(
postFilter
)
{
temp
=
condense
(
matcherOut
,
postMap
);
postFilter
(
temp
,
[],
context
,
xml
);
i
=
temp
.
length
;
while
(
i
--
)
{
if
(
elem
=
temp
[
i
])
{
matcherOut
[
postMap
[
i
]]
=
!
(
matcherIn
[
postMap
[
i
]]
=
elem
);
}
}
}
if
(
seed
)
{
if
(
postFinder
||
preFilter
)
{
if
(
postFinder
)
{
temp
=
[];
i
=
matcherOut
.
length
;
while
(
i
--
)
{
if
(
elem
=
matcherOut
[
i
])
{
temp
.
push
(
matcherIn
[
i
]
=
elem
);
}
}
postFinder
(
null
,
matcherOut
=
[],
temp
,
xml
);
}
i
=
matcherOut
.
length
;
while
(
i
--
)
{
if
((
elem
=
matcherOut
[
i
])
&&
(
temp
=
postFinder
?
indexOf
(
seed
,
elem
)
:
preMap
[
i
])
>
-
1
)
{
seed
[
temp
]
=
!
(
results
[
temp
]
=
elem
);
}
}
}
}
else
{
matcherOut
=
condense
(
matcherOut
===
results
?
matcherOut
.
splice
(
preexisting
,
matcherOut
.
length
)
:
matcherOut
);
if
(
postFinder
)
{
postFinder
(
null
,
results
,
matcherOut
,
xml
);
}
else
{
push
.
apply
(
results
,
matcherOut
);
}
}
});
}
function
matcherFromTokens
(
tokens
)
{
var
checkContext
,
matcher
,
j
,
len
=
tokens
.
length
,
leadingRelative
=
Expr
.
relative
[
tokens
[
0
].
type
],
implicitRelative
=
leadingRelative
||
Expr
.
relative
[
' '
],
i
=
leadingRelative
?
1
:
0
,
matchContext
=
addCombinator
(
function
(
elem
)
{
return
elem
===
checkContext
;
},
implicitRelative
,
true
),
matchAnyContext
=
addCombinator
(
function
(
elem
)
{
return
indexOf
(
checkContext
,
elem
)
>
-
1
;
},
implicitRelative
,
true
),
matchers
=
[
function
(
elem
,
context
,
xml
)
{
var
ret
=
!
leadingRelative
&&
(
xml
||
context
!==
outermostContext
)
||
((
checkContext
=
context
).
nodeType
?
matchContext
(
elem
,
context
,
xml
)
:
matchAnyContext
(
elem
,
context
,
xml
));
checkContext
=
null
;
return
ret
;
}];
for
(;
i
<
len
;
i
++
)
{
if
(
matcher
=
Expr
.
relative
[
tokens
[
i
].
type
])
{
matchers
=
[
addCombinator
(
elementMatcher
(
matchers
),
matcher
)];
}
else
{
matcher
=
Expr
.
filter
[
tokens
[
i
].
type
].
apply
(
null
,
tokens
[
i
].
matches
);
if
(
matcher
[
expando
])
{
j
=
++
i
;
for
(;
j
<
len
;
j
++
)
{
if
(
Expr
.
relative
[
tokens
[
j
].
type
])
{
break
;
}
}
return
setMatcher
(
i
>
1
&&
elementMatcher
(
matchers
),
i
>
1
&&
toSelector
(
tokens
.
slice
(
0
,
i
-
1
).
concat
({
value
:
tokens
[
i
-
2
].
type
===
' '
?
'*'
:
''
})).
replace
(
rtrim
,
'$1'
),
matcher
,
i
<
j
&&
matcherFromTokens
(
tokens
.
slice
(
i
,
j
)),
j
<
len
&&
matcherFromTokens
(
tokens
=
tokens
.
slice
(
j
)),
j
<
len
&&
toSelector
(
tokens
));
}
matchers
.
push
(
matcher
);
}
}
return
elementMatcher
(
matchers
);
}
function
matcherFromGroupMatchers
(
elementMatchers
,
setMatchers
)
{
var
bySet
=
setMatchers
.
length
>
0
,
byElement
=
elementMatchers
.
length
>
0
,
superMatcher
=
function
(
seed
,
context
,
xml
,
results
,
outermost
)
{
var
elem
,
j
,
matcher
,
matchedCount
=
0
,
i
=
'0'
,
unmatched
=
seed
&&
[],
setMatched
=
[],
contextBackup
=
outermostContext
,
elems
=
seed
||
byElement
&&
Expr
.
find
[
'TAG'
](
'*'
,
outermost
),
dirrunsUnique
=
dirruns
+=
contextBackup
==
null
?
1
:
Math
.
random
()
||
0.1
,
len
=
elems
.
length
;
if
(
outermost
)
{
outermostContext
=
context
===
document
||
context
||
outermost
;
}
for
(;
i
!==
len
&&
(
elem
=
elems
[
i
])
!=
null
;
i
++
)
{
if
(
byElement
&&
elem
)
{
j
=
0
;
if
(
!
context
&&
elem
.
ownerDocument
!==
document
)
{
setDocument
(
elem
);
xml
=
!
documentIsHTML
;
}
while
(
matcher
=
elementMatchers
[
j
++
])
{
if
(
matcher
(
elem
,
context
||
document
,
xml
))
{
results
.
push
(
elem
);
break
;
}
}
if
(
outermost
)
{
dirruns
=
dirrunsUnique
;
}
}
if
(
bySet
)
{
if
(
elem
=
!
matcher
&&
elem
)
{
matchedCount
--
;
}
if
(
seed
)
{
unmatched
.
push
(
elem
);
}
}
}
matchedCount
+=
i
;
if
(
bySet
&&
i
!==
matchedCount
)
{
j
=
0
;
while
(
matcher
=
setMatchers
[
j
++
])
{
matcher
(
unmatched
,
setMatched
,
context
,
xml
);
}
if
(
seed
)
{
if
(
matchedCount
>
0
)
{
while
(
i
--
)
{
if
(
!
(
unmatched
[
i
]
||
setMatched
[
i
]))
{
setMatched
[
i
]
=
pop
.
call
(
results
);
}
}
}
setMatched
=
condense
(
setMatched
);
}
push
.
apply
(
results
,
setMatched
);
if
(
outermost
&&
!
seed
&&
setMatched
.
length
>
0
&&
matchedCount
+
setMatchers
.
length
>
1
)
{
Sizzle
.
uniqueSort
(
results
);
}
}
if
(
outermost
)
{
dirruns
=
dirrunsUnique
;
outermostContext
=
contextBackup
;
}
return
unmatched
;
};
return
bySet
?
markFunction
(
superMatcher
)
:
superMatcher
;
}
compile
=
Sizzle
.
compile
=
function
(
selector
,
match
)
{
var
i
,
setMatchers
=
[],
elementMatchers
=
[],
cached
=
compilerCache
[
selector
+
' '
];
if
(
!
cached
)
{
if
(
!
match
)
{
match
=
tokenize
(
selector
);
}
i
=
match
.
length
;
while
(
i
--
)
{
cached
=
matcherFromTokens
(
match
[
i
]);
if
(
cached
[
expando
])
{
setMatchers
.
push
(
cached
);
}
else
{
elementMatchers
.
push
(
cached
);
}
}
cached
=
compilerCache
(
selector
,
matcherFromGroupMatchers
(
elementMatchers
,
setMatchers
));
cached
.
selector
=
selector
;
}
return
cached
;
};
select
=
Sizzle
.
select
=
function
(
selector
,
context
,
results
,
seed
)
{
var
i
,
tokens
,
token
,
type
,
find
,
compiled
=
typeof
selector
===
'function'
&&
selector
,
match
=
!
seed
&&
tokenize
(
selector
=
compiled
.
selector
||
selector
);
results
=
results
||
[];
if
(
match
.
length
===
1
)
{
tokens
=
match
[
0
]
=
match
[
0
].
slice
(
0
);
if
(
tokens
.
length
>
2
&&
(
token
=
tokens
[
0
]).
type
===
'ID'
&&
support
.
getById
&&
context
.
nodeType
===
9
&&
documentIsHTML
&&
Expr
.
relative
[
tokens
[
1
].
type
])
{
context
=
(
Expr
.
find
[
'ID'
](
token
.
matches
[
0
].
replace
(
runescape
,
funescape
),
context
)
||
[])[
0
];
if
(
!
context
)
{
return
results
;
}
else
if
(
compiled
)
{
context
=
context
.
parentNode
;
}
selector
=
selector
.
slice
(
tokens
.
shift
().
value
.
length
);
}
i
=
matchExpr
[
'needsContext'
].
test
(
selector
)
?
0
:
tokens
.
length
;
while
(
i
--
)
{
token
=
tokens
[
i
];
if
(
Expr
.
relative
[
type
=
token
.
type
])
{
break
;
}
if
(
find
=
Expr
.
find
[
type
])
{
if
(
seed
=
find
(
token
.
matches
[
0
].
replace
(
runescape
,
funescape
),
rsibling
.
test
(
tokens
[
0
].
type
)
&&
testContext
(
context
.
parentNode
)
||
context
))
{
tokens
.
splice
(
i
,
1
);
selector
=
seed
.
length
&&
toSelector
(
tokens
);
if
(
!
selector
)
{
push
.
apply
(
results
,
seed
);
return
results
;
}
break
;
}
}
}
}
(
compiled
||
compile
(
selector
,
match
))(
seed
,
context
,
!
documentIsHTML
,
results
,
!
context
||
rsibling
.
test
(
selector
)
&&
testContext
(
context
.
parentNode
)
||
context
);
return
results
;
};
support
.
sortStable
=
expando
.
split
(
''
).
sort
(
sortOrder
).
join
(
''
)
===
expando
;
support
.
detectDuplicates
=
!!
hasDuplicate
;
setDocument
();
support
.
sortDetached
=
assert
(
function
(
div1
)
{
return
div1
.
compareDocumentPosition
(
document
.
createElement
(
'div'
))
&
1
;
});
if
(
!
assert
(
function
(
div
)
{
div
.
innerHTML
=
'<a href=\'#\'></a>'
;
return
div
.
firstChild
.
getAttribute
(
'href'
)
===
'#'
;
}))
{
addHandle
(
'type|href|height|width'
,
function
(
elem
,
name
,
isXML
)
{
if
(
!
isXML
)
{
return
elem
.
getAttribute
(
name
,
name
.
toLowerCase
()
===
'type'
?
1
:
2
);
}
});
}
if
(
!
support
.
attributes
||
!
assert
(
function
(
div
)
{
div
.
innerHTML
=
'<input/>'
;
div
.
firstChild
.
setAttribute
(
'value'
,
''
);
return
div
.
firstChild
.
getAttribute
(
'value'
)
===
''
;
}))
{
addHandle
(
'value'
,
function
(
elem
,
name
,
isXML
)
{
if
(
!
isXML
&&
elem
.
nodeName
.
toLowerCase
()
===
'input'
)
{
return
elem
.
defaultValue
;
}
});
}
if
(
!
assert
(
function
(
div
)
{
return
div
.
getAttribute
(
'disabled'
)
==
null
;
}))
{
addHandle
(
booleans
,
function
(
elem
,
name
,
isXML
)
{
var
val
;
if
(
!
isXML
)
{
return
elem
[
name
]
===
true
?
name
.
toLowerCase
()
:
(
val
=
elem
.
getAttributeNode
(
name
))
&&
val
.
specified
?
val
.
value
:
null
;
}
});
}
if
(
typeof
define
===
'function'
&&
define
.
amd
)
{
define
(
function
()
{
return
Sizzle
;
});
}
else
if
(
true
)
{
exports
=
Sizzle
;
}
else
{
window
.
Sizzle
=
Sizzle
;
}
}(
window
));
return
exports
;
}();
yohojson2_100_json2_debug
=
function
()
{
if
(
typeof
JSON
!==
'object'
)
{
JSON
=
{};
}
(
function
()
{
'use strict'
;
var
rx_one
=
/^
[\]
,:{}
\s]
*$/
,
rx_two
=
/
\\(?:[
"
\\\/
bfnrt
]
|u
[
0-9a-fA-F
]{4})
/g
,
rx_three
=
/"
[^
"
\\\n\r]
*"|true|false|null|-
?\d
+
(?:\.\d
*
)?(?:[
eE
][
+
\-]?\d
+
)?
/g
,
rx_four
=
/
(?:
^|:|,
)(?:\s
*
\[)
+/g
,
rx_escapable
=
/
[\\\"\u
0000-
\u
001f
\u
007f-
\u
009f
\u
00ad
\u
0600-
\u
0604
\u
070f
\u
17b4
\u
17b5
\u
200c-
\u
200f
\u
2028-
\u
202f
\u
2060-
\u
206f
\u
feff
\u
fff0-
\u
ffff
]
/g
,
rx_dangerous
=
/
[\u
0000
\u
00ad
\u
0600-
\u
0604
\u
070f
\u
17b4
\u
17b5
\u
200c-
\u
200f
\u
2028-
\u
202f
\u
2060-
\u
206f
\u
feff
\u
fff0-
\u
ffff
]
/g
;
function
f
(
n
)
{
return
n
<
10
?
'0'
+
n
:
n
;
}
function
this_value
()
{
return
this
.
valueOf
();
}
if
(
typeof
Date
.
prototype
.
toJSON
!==
'function'
)
{
Date
.
prototype
.
toJSON
=
function
()
{
return
isFinite
(
this
.
valueOf
())
?
this
.
getUTCFullYear
()
+
'-'
+
f
(
this
.
getUTCMonth
()
+
1
)
+
'-'
+
f
(
this
.
getUTCDate
())
+
'T'
+
f
(
this
.
getUTCHours
())
+
':'
+
f
(
this
.
getUTCMinutes
())
+
':'
+
f
(
this
.
getUTCSeconds
())
+
'Z'
:
null
;
};
Boolean
.
prototype
.
toJSON
=
this_value
;
Number
.
prototype
.
toJSON
=
this_value
;
String
.
prototype
.
toJSON
=
this_value
;
}
var
gap
,
indent
,
meta
,
rep
;
function
quote
(
string
)
{
rx_escapable
.
lastIndex
=
0
;
return
rx_escapable
.
test
(
string
)
?
'"'
+
string
.
replace
(
rx_escapable
,
function
(
a
)
{
var
c
=
meta
[
a
];
return
typeof
c
===
'string'
?
c
:
'\\u'
+
(
'0000'
+
a
.
charCodeAt
(
0
).
toString
(
16
)).
slice
(
-
4
);
})
+
'"'
:
'"'
+
string
+
'"'
;
}
function
str
(
key
,
holder
)
{
var
i
,
k
,
v
,
length
,
mind
=
gap
,
partial
,
value
=
holder
[
key
];
if
(
value
&&
typeof
value
===
'object'
&&
typeof
value
.
toJSON
===
'function'
)
{
value
=
value
.
toJSON
(
key
);
}
if
(
typeof
rep
===
'function'
)
{
value
=
rep
.
call
(
holder
,
key
,
value
);
}
switch
(
typeof
value
)
{
case
'string'
:
return
quote
(
value
);
case
'number'
:
return
isFinite
(
value
)
?
String
(
value
)
:
'null'
;
case
'boolean'
:
case
'null'
:
return
String
(
value
);
case
'object'
:
if
(
!
value
)
{
return
'null'
;
}
gap
+=
indent
;
partial
=
[];
if
(
Object
.
prototype
.
toString
.
apply
(
value
)
===
'[object Array]'
)
{
length
=
value
.
length
;
for
(
i
=
0
;
i
<
length
;
i
+=
1
)
{
partial
[
i
]
=
str
(
i
,
value
)
||
'null'
;
}
v
=
partial
.
length
===
0
?
'[]'
:
gap
?
'[\n'
+
gap
+
partial
.
join
(
',\n'
+
gap
)
+
'\n'
+
mind
+
']'
:
'['
+
partial
.
join
(
','
)
+
']'
;
gap
=
mind
;
return
v
;
}
if
(
rep
&&
typeof
rep
===
'object'
)
{
length
=
rep
.
length
;
for
(
i
=
0
;
i
<
length
;
i
+=
1
)
{
if
(
typeof
rep
[
i
]
===
'string'
)
{
k
=
rep
[
i
];
v
=
str
(
k
,
value
);
if
(
v
)
{
partial
.
push
(
quote
(
k
)
+
(
gap
?
': '
:
':'
)
+
v
);
}
}
}
}
else
{
for
(
k
in
value
)
{
if
(
Object
.
prototype
.
hasOwnProperty
.
call
(
value
,
k
))
{
v
=
str
(
k
,
value
);
if
(
v
)
{
partial
.
push
(
quote
(
k
)
+
(
gap
?
': '
:
':'
)
+
v
);
}
}
}
}
v
=
partial
.
length
===
0
?
'{}'
:
gap
?
'{\n'
+
gap
+
partial
.
join
(
',\n'
+
gap
)
+
'\n'
+
mind
+
'}'
:
'{'
+
partial
.
join
(
','
)
+
'}'
;
gap
=
mind
;
return
v
;
}
}
if
(
typeof
JSON
.
stringify
!==
'function'
)
{
meta
=
{
'\b'
:
'\\b'
,
'\t'
:
'\\t'
,
'\n'
:
'\\n'
,
'\f'
:
'\\f'
,
'\r'
:
'\\r'
,
'"'
:
'\\"'
,
'\\'
:
'\\\\'
};
JSON
.
stringify
=
function
(
value
,
replacer
,
space
)
{
var
i
;
gap
=
''
;
indent
=
''
;
if
(
typeof
space
===
'number'
)
{
for
(
i
=
0
;
i
<
space
;
i
+=
1
)
{
indent
+=
' '
;
}
}
else
if
(
typeof
space
===
'string'
)
{
indent
=
space
;
}
rep
=
replacer
;
if
(
replacer
&&
typeof
replacer
!==
'function'
&&
(
typeof
replacer
!==
'object'
||
typeof
replacer
.
length
!==
'number'
))
{
throw
new
Error
(
'JSON.stringify'
);
}
return
str
(
''
,
{
''
:
value
});
};
}
if
(
typeof
JSON
.
parse
!==
'function'
)
{
JSON
.
parse
=
function
(
text
,
reviver
)
{
var
j
;
function
walk
(
holder
,
key
)
{
var
k
,
v
,
value
=
holder
[
key
];
if
(
value
&&
typeof
value
===
'object'
)
{
for
(
k
in
value
)
{
if
(
Object
.
prototype
.
hasOwnProperty
.
call
(
value
,
k
))
{
v
=
walk
(
value
,
k
);
if
(
v
!==
undefined
)
{
value
[
k
]
=
v
;
}
else
{
delete
value
[
k
];
}
}
}
}
return
reviver
.
call
(
holder
,
key
,
value
);
}
text
=
String
(
text
);
rx_dangerous
.
lastIndex
=
0
;
if
(
rx_dangerous
.
test
(
text
))
{
text
=
text
.
replace
(
rx_dangerous
,
function
(
a
)
{
return
'\\u'
+
(
'0000'
+
a
.
charCodeAt
(
0
).
toString
(
16
)).
slice
(
-
4
);
});
}
if
(
rx_one
.
test
(
text
.
replace
(
rx_two
,
'@'
).
replace
(
rx_three
,
']'
).
replace
(
rx_four
,
''
)))
{
j
=
eval
(
'('
+
text
+
')'
);
return
typeof
reviver
===
'function'
?
walk
({
''
:
j
},
''
)
:
j
;
}
throw
new
SyntaxError
(
'JSON.parse'
);
};
}
}());
}();
yas_jssdk_101363_src_util_debug
=
function
(
exports
)
{
var
config
=
yas_jssdk_101363_src_config_debug
;
var
yasPath
=
config
.
yaPath
;
var
yasDomain
=
config
.
yasDomain
;
exports
.
flashChecker
=
function
()
{
var
hasFlash
=
0
;
var
flashVersion
=
0
;
var
isIE
=
0
;
var
swf
=
null
;
if
(
isIE
)
{
swf
=
new
ActiveXObject
(
'ShockwaveFlash.ShockwaveFlash'
);
if
(
swf
)
{
hasFlash
=
1
;
flashVersion
=
swf
.
GetVariable
(
'$version'
);
}
}
else
{
if
(
navigator
.
plugins
&&
navigator
.
plugins
.
length
>
0
)
{
swf
=
navigator
.
plugins
[
'Shockwave Flash'
];
if
(
swf
)
{
hasFlash
=
1
;
flashVersion
=
swf
.
description
.
replace
(
'Shockwave Flash'
,
''
);
}
}
}
return
{
f
:
hasFlash
,
v
:
flashVersion
};
};
exports
.
Hash
=
function
(
str
)
{
var
hash
=
1
,
charCode
=
0
,
idx
;
if
(
str
)
{
hash
=
0
;
for
(
idx
=
str
.
length
-
1
;
idx
>=
0
;
idx
--
)
{
charCode
=
str
.
charCodeAt
(
idx
);
hash
=
(
hash
<<
6
&
268435455
)
+
charCode
+
(
charCode
<<
14
);
charCode
=
hash
&
266338304
;
if
(
charCode
!==
0
)
{
hash
=
hash
^
charCode
>>
21
;
}
}
}
return
hash
;
};
exports
.
Random
=
function
()
{
return
Math
.
round
(
Math
.
random
()
*
2147483647
);
};
exports
.
hashClientInfo
=
function
()
{
var
navigator
=
window
.
navigator
;
var
history_length
=
window
.
history
.
length
;
var
arr
=
[
navigator
.
appName
,
navigator
.
version
,
navigator
.
language
,
navigator
.
platform
,
navigator
.
userAgent
,
navigator
.
javaEnabled
(),
window
.
screen
,
window
.
screen
.
colorDepth
,
window
.
document
.
cookie
?
window
.
document
.
cookie
:
''
,
window
.
document
.
referrer
?
window
.
document
.
referrer
:
''
];
navigator
=
arr
.
join
(
''
);
for
(
var
len
=
navigator
.
length
;
history_length
>
0
;)
{
navigator
+=
history_length
--
^
len
++
;
}
return
exports
.
Hash
(
navigator
);
};
exports
.
merge
=
function
(
obj1
,
obj2
)
{
var
ret
=
{};
for
(
var
attr
in
obj1
)
{
ret
[
attr
]
=
obj1
[
attr
];
}
for
(
var
attr2
in
obj2
)
{
ret
[
attr2
]
=
obj2
[
attr2
];
}
return
ret
;
};
exports
.
genParam
=
function
(
obj
)
{
var
arr
=
[];
for
(
var
key
in
obj
)
{
arr
.
push
(
key
+
'='
+
obj
[
key
]);
}
return
arr
.
join
(
'&'
);
};
exports
.
trim
=
function
(
text
)
{
if
(
String
.
prototype
.
trim
)
{
return
text
===
null
?
''
:
String
.
prototype
.
trim
.
call
(
text
);
}
else
{
var
trimLeft
=
/^
\s
+/
;
var
trimRight
=
/
\s
+$/
;
var
ret
=
''
;
if
(
text
)
{
ret
=
text
.
toString
().
replace
(
trimLeft
,
''
);
ret
=
ret
.
replace
(
trimRight
,
''
);
return
ret
;
}
}
};
exports
.
getGeo
=
function
(
callback
)
{
if
(
window
.
navigator
.
geolocation
)
{
var
options
=
{
enableHighAccuracy
:
true
};
window
.
navigator
.
geolocation
.
getCurrentPosition
(
handleSuccess
,
handleError
,
options
);
}
else
{
callback
(
false
);
}
function
handleSuccess
(
position
)
{
var
lng
=
position
.
coords
.
longitude
;
var
lat
=
position
.
coords
.
latitude
;
callback
(
lat
,
lng
);
}
function
handleError
(
error
)
{
callback
(
false
);
}
};
return
exports
;
}({});
yas_jssdk_101363_src_cookie_debug
=
function
(
exports
)
{
var
util
=
yas_jssdk_101363_src_util_debug
;
exports
=
function
(
name
,
value
,
options
)
{
if
(
typeof
value
!=
'undefined'
)
{
options
=
options
||
{};
if
(
value
===
null
)
{
value
=
''
;
options
.
expires
=
-
1
;
}
var
expires
=
''
;
if
(
options
.
expires
&&
(
typeof
options
.
expires
==
'number'
||
options
.
expires
.
toUTCString
))
{
var
date
;
if
(
typeof
options
.
expires
==
'number'
)
{
date
=
new
Date
();
date
.
setTime
(
date
.
getTime
()
+
options
.
expires
*
24
*
60
*
60
*
1000
);
}
else
{
date
=
options
.
expires
;
}
expires
=
'; expires='
+
date
.
toUTCString
();
}
var
path
=
options
.
path
?
'; path='
+
options
.
path
:
''
;
var
domain
=
options
.
domain
?
'; domain='
+
options
.
domain
:
''
;
var
secure
=
options
.
secure
?
'; secure'
:
''
;
document
.
cookie
=
[
name
,
'='
,
encodeURIComponent
(
value
),
expires
,
path
,
domain
,
secure
].
join
(
''
);
}
else
{
var
cookieValue
=
null
;
if
(
document
.
cookie
)
{
var
cookies
=
document
.
cookie
.
split
(
';'
);
for
(
var
i
=
0
;
i
<
cookies
.
length
;
i
++
)
{
var
cookie
=
util
.
trim
(
cookies
[
i
]);
if
(
cookie
.
substring
(
0
,
name
.
length
+
1
)
==
name
+
'='
)
{
cookieValue
=
decodeURIComponent
(
cookie
.
substring
(
name
.
length
+
1
));
break
;
}
}
}
return
cookieValue
;
}
};
return
exports
;
}();
yas_jssdk_101363_src_ya_debug
=
function
(
exports
)
{
var
util
=
yas_jssdk_101363_src_util_debug
;
var
cookies
=
yas_jssdk_101363_src_cookie_debug
;
var
cross
=
yas_jssdk_101363_src_cross_debug
;
var
ev
=
yas_jssdk_101363_src_event_debug
;
var
config
=
yas_jssdk_101363_src_config_debug
;
var
sizzle
=
yohosizzle_222_pre_sizzle_debug
;
yohojson2_100_json2_debug
;
var
version
=
config
.
version
;
var
yasPath
=
config
.
yaPath
;
var
yasDomain
=
config
.
yasDomain
;
var
appInfo
=
{
h
:
document
.
domain
,
p
:
window
.
location
.
port
,
u
:
window
.
location
.
pathname
,
ft
:
0
,
fst
:
0
,
sv
:
''
,
ab
:
cookies
(
'ab_5'
)
||
''
};
var
VisitorId
=
getVisitorId
();
var
custInfo
=
{
ak
:
''
,
cd
:
VisitorId
.
cid
,
vd
:
new
Date
().
getTime
()
+
VisitorId
.
cid
,
ud
:
''
,
rf
:
document
.
referrer
,
ckf
:
VisitorId
.
isNew
};
var
custOpInfo
=
{
mp
:
''
,
ev
:
''
,
st
:
0
};
var
flash
=
util
.
flashChecker
();
var
browserInfo
=
{
sr
:
window
.
screen
.
width
+
'x'
+
window
.
screen
.
height
,
wr
:
window
.
screen
.
availWidth
+
'x'
+
window
.
screen
.
availHeight
,
sd
:
window
.
screen
.
colorDepth
,
ln
:
window
.
navigator
.
language
?
window
.
navigator
.
language
:
window
.
navigator
.
browserLanguage
,
sy
:
window
.
navigator
.
platform
,
ce
:
window
.
navigator
.
cookieEnabled
,
fv
:
flash
.
f
?
flash
.
v
:
0
};
var
eventArray
=
[];
var
_yas
=
function
(
initTime
,
version
,
tid
,
uid
,
geo
,
selector
)
{
custInfo
.
ak
=
tid
;
appInfo
.
sv
=
version
;
custInfo
.
ud
=
uid
?
uid
:
''
;
if
(
cookies
(
'_yasgeo'
))
{
var
geoInfo
=
cookies
(
'_yasgeo'
).
split
(
','
);
custInfo
.
la
=
geoInfo
[
0
];
custInfo
.
lo
=
geoInfo
[
1
];
cookies
(
'_yasgeo'
,
null
,
{
path
:
'/'
,
domain
:
config
.
yasDomain
,
expires
:
365
*
200
});
}
var
beginTime
=
new
Date
().
getTime
();
var
sendFlag
=
null
;
var
isOver3sSend
=
false
;
appInfo
.
ft
=
beginTime
-
initTime
;
ev
.
addEventHandler
(
window
,
'load'
,
function
(
e
)
{
var
endTime
=
new
Date
().
getTime
();
appInfo
.
fst
=
endTime
-
initTime
;
ev
.
removeEventHandler
(
window
,
'load'
,
arguments
.
callee
);
window
.
clearTimeout
(
sendFlag
);
if
(
!
isOver3sSend
)
{
send
();
}
});
sendFlag
=
window
.
setTimeout
(
function
()
{
appInfo
.
fst
=
0
;
appInfo
.
fse
=
'>3s'
;
isOver3sSend
=
true
;
send
();
},
3000
);
if
(
geo
)
{
util
.
getGeo
(
function
(
lat
,
lng
)
{
if
(
lat
)
{
cookies
(
'_yasgeo'
,
lat
+
','
+
lng
,
{
path
:
'/'
,
domain
:
yasDomain
,
expires
:
365
*
200
});
}
});
}
var
nodes
=
null
;
if
(
selector
)
{
if
(
Object
.
prototype
.
toString
.
call
(
selector
)
===
'[object String]'
)
{
if
(
sizzle
)
{
nodes
=
sizzle
(
selector
);
}
}
else
{
nodes
=
selector
;
}
}
if
(
nodes
)
{
for
(
var
index
=
0
,
length
=
nodes
.
length
;
index
<
length
;
index
++
)
{
(
function
(
i
)
{
ev
.
addEventHandler
(
nodes
[
i
],
'click'
,
function
(
e
)
{
ix
=
i
+
1
;
var
pos
=
getMouseEventPosition
(
e
);
cookies
(
'_yasmp'
,
pos
.
x
+
','
+
pos
.
y
+
','
+
e
.
type
+
','
+
(
i
+
1
),
{
path
:
'/'
,
domain
:
yasDomain
,
expires
:
365
*
200
});
});
}(
index
));
}
}
else
{
ev
.
addEventHandler
(
document
,
'click'
,
function
(
e
)
{
e
=
e
||
window
.
event
;
var
target
=
e
.
target
||
e
.
srcElement
;
if
(
target
&&
(
target
.
nodeName
===
'A'
||
target
.
nodeName
===
'IMG'
&&
target
.
parentNode
.
nodeName
===
'A'
))
{
var
pos
=
getMouseEventPosition
(
e
);
cookies
(
'_yasmp'
,
pos
.
x
+
','
+
pos
.
y
+
','
+
e
.
type
,
{
path
:
'/'
,
domain
:
yasDomain
,
expires
:
365
*
200
});
}
ix
=
0
;
});
}
};
function
send
(
callback
)
{
var
info
=
util
.
merge
(
appInfo
,
custInfo
);
info
=
util
.
merge
(
info
,
browserInfo
);
var
mp
=
getMousePosition
();
if
(
mp
)
{
info
=
util
.
merge
(
info
,
mp
);
cookies
(
'_yasmp'
,
null
,
{
path
:
'/'
,
domain
:
config
.
yasDomain
,
expires
:
365
*
200
});
}
var
_custjsonstr
=
cookies
(
'_yascustjson'
);
if
(
_custjsonstr
)
{
var
custjson
=
JSON
.
parse
(
_custjsonstr
);
info
=
util
.
merge
(
info
,
custjson
);
cookies
(
'_yascustjson'
,
null
,
{
path
:
'/'
,
domain
:
config
.
yasDomain
,
expires
:
365
*
200
});
}
var
param
=
util
.
genParam
(
info
);
callback
=
callback
?
callback
:
function
()
{
};
cross
.
imgSend
(
param
,
callback
);
var
_yasev
=
cookies
(
'_yasev'
);
if
(
_yasev
)
{
cross
.
imgSend
(
_yasev
,
function
()
{
cookies
(
'_yasev'
,
null
,
{
path
:
'/'
,
domain
:
config
.
yasDomain
,
expires
:
365
*
200
});
});
}
}
function
getVisitorId
()
{
var
cid
=
cookies
(
'_yasvd'
);
if
(
cid
)
{
return
{
cid
:
cid
,
isNew
:
'N'
};
}
cid
=
util
.
Random
()
^
util
.
hashClientInfo
()
&
2147483647
;
cookies
(
'_yasvd'
,
cid
,
{
path
:
'/'
,
domain
:
yasDomain
,
expires
:
365
*
200
});
return
{
cid
:
cid
,
isNew
:
'Y'
};
}
function
getMousePosition
()
{
var
mp
=
cookies
(
'_yasmp'
);
if
(
mp
)
{
var
mpObject
=
mp
.
split
(
','
);
if
(
mpObject
.
length
===
3
)
{
return
{
x
:
mpObject
[
0
],
y
:
mpObject
[
1
],
et
:
mpObject
[
2
]
};
}
else
if
(
mpObject
.
length
===
4
)
{
return
{
x
:
mpObject
[
0
],
y
:
mpObject
[
1
],
et
:
mpObject
[
2
],
ix
:
mpObject
[
3
]
};
}
}
return
null
;
}
function
getMouseEventPosition
(
e
)
{
var
x
=
0
,
y
=
0
;
if
(
e
.
pageX
||
e
.
pageY
)
{
x
=
e
.
pageX
;
y
=
e
.
pageY
;
}
else
if
(
e
.
clientX
||
e
.
clientY
)
{
x
=
e
.
clientX
+
document
.
body
.
scrollLeft
+
document
.
documentElement
.
scrollLeft
;
y
=
e
.
clientY
+
document
.
body
.
scrollTop
+
document
.
documentElement
.
scrollTop
;
}
x
-=
window
.
screen
.
width
/
2
;
y
=
window
.
screen
.
height
/
2
-
y
;
return
{
x
:
x
,
y
:
y
};
}
var
evTimes
=
0
;
_yas
.
add
=
function
(
trackType
,
input
,
action
,
label
,
value
)
{
if
(
evTimes
>
3
)
{
cross
.
imgSend
(
cookies
(
'_yasev'
),
function
()
{
cookies
(
'_yasev'
,
null
,
{
path
:
'/'
,
domain
:
config
.
yasDomain
,
expires
:
365
*
200
});
evTimes
=
0
;
_addEv2Cookies
(
trackType
,
input
,
action
,
label
,
value
);
});
}
else
{
_addEv2Cookies
(
trackType
,
input
,
action
,
label
,
value
);
}
};
function
_addEv2Cookies
(
trackType
,
input
,
action
,
label
,
value
)
{
var
ev
=
cookies
(
'_yasev'
);
if
(
ev
)
{
ev
+=
'&'
;
}
else
{
ev
=
''
;
}
cookies
(
'_yasev'
,
ev
+
'vd='
+
custInfo
.
vd
+
'&t='
+
trackType
+
'&i='
+
input
+
'&l='
+
label
+
'&v='
+
value
,
{
path
:
'/'
,
domain
:
yasDomain
,
expires
:
365
*
200
});
evTimes
++
;
}
_yas
.
sendMouseEvent
=
function
(
e
,
flag
)
{
e
=
e
||
window
.
event
;
var
pos
=
getMouseEventPosition
(
e
);
if
(
!
flag
)
{
cookies
(
'_yasmp'
,
pos
.
x
+
','
+
pos
.
y
+
','
+
e
.
type
,
{
path
:
'/'
,
domain
:
yasDomain
,
expires
:
365
*
200
});
}
else
{
var
mp
=
{
x
:
pos
.
x
,
y
:
pos
.
y
,
et
:
e
.
type
};
var
info
=
util
.
merge
(
appInfo
,
custInfo
);
info
=
util
.
merge
(
info
,
browserInfo
);
info
=
util
.
merge
(
info
,
mp
);
var
param
=
util
.
genParam
(
info
);
cross
.
imgSend
(
param
,
function
()
{
});
}
};
_yas
.
sendCustomInfo
=
function
(
json
,
flag
)
{
if
(
!
flag
)
{
var
string
=
JSON
.
stringify
(
json
);
cookies
(
'_yascustjson'
,
string
,
{
path
:
'/'
,
domain
:
yasDomain
,
expires
:
365
*
200
});
}
else
{
var
info
=
util
.
merge
(
appInfo
,
custInfo
);
info
=
util
.
merge
(
info
,
browserInfo
);
info
=
util
.
merge
(
info
,
json
);
var
param
=
util
.
genParam
(
info
);
cross
.
imgSend
(
param
,
function
()
{
});
}
};
exports
=
_yas
;
return
exports
;
}();
yas_jssdk_101363_yas_debug
=
function
(
exports
)
{
var
yasJssdk
=
yas_jssdk_101363_src_ya_debug
;
if
(
window
.
YohoAcquisitionObject
)
{
var
yas
=
window
.
YohoAcquisitionObject
;
if
(
window
[
yas
].
p
)
{
yasJssdk
.
apply
(
this
,
window
[
yas
].
p
);
window
[
yas
]
=
yasJssdk
;
}
}
exports
=
yasJssdk
;
return
exports
;
}();
}());
\ No newline at end of file
...
...
static/yas-jssdk/1.0.13.6.3/yas.js
0 → 100644
View file @
5b89791
!
function
(){
var
yas_jssdk_101363_src_config
,
yas_jssdk_101363_src_cross
,
yas_jssdk_101363_src_event
,
yohosizzle_222_pre_sizzle
,
yohojson2_100_json2
,
yas_jssdk_101363_src_util
,
yas_jssdk_101363_src_cookie
,
yas_jssdk_101363_src_ya
,
yas_jssdk_101363_yas
;
yas_jssdk_101363_src_config
=
function
(
e
){
function
t
(){
var
e
=
document
.
domain
.
split
(
"."
),
t
=
e
.
length
;
return
t
>
1
&&
isNaN
(
e
[
t
-
1
])?
"."
+
e
[
t
-
2
]
+
"."
+
e
[
t
-
1
]:
document
.
domain
}
return
e
=
{
version
:
"1.0"
,
yasPath
:
"/web/"
,
yasDomain
:
t
(),
yasImgDomain
:
"http://analytics.yhurl.com/yas.gif"
}}(),
yas_jssdk_101363_src_cross
=
function
(
e
){
var
t
=
yas_jssdk_101363_src_config
,
n
=
t
.
yasPath
,
r
=
t
.
yasImgDomain
;
return
e
.
imgSend
=
function
(
e
,
t
){
var
o
=
new
Image
(
1
,
1
);
o
.
src
=
r
+
n
+
"?"
+
e
,
o
.
onload
=
function
(){
o
.
onload
=
null
,
t
&&
t
()}},
e
}({}),
yas_jssdk_101363_src_event
=
function
(
e
){
return
e
.
addEventHandler
=
function
(
e
,
t
,
n
){
e
.
addEventListener
?
e
.
addEventListener
(
t
,
n
,
!
1
):
e
.
attachEvent
?
e
.
attachEvent
(
"on"
+
t
,
n
):
e
[
"on"
+
t
]
=
n
},
e
.
removeEventHandler
=
function
(
e
,
t
,
n
){
e
.
removeEventListener
?
e
.
removeEventListener
(
t
,
n
,
!
1
):
e
.
detachEvent
?
e
.
detachEvent
(
"on"
+
t
,
n
):
delete
e
[
"on"
+
t
]},
e
}({}),
yohosizzle_222_pre_sizzle
=
function
(
e
){
return
function
(
t
){
function
n
(
e
,
t
,
n
,
r
){
var
o
,
i
,
a
,
u
,
s
,
l
,
c
,
d
,
g
=
t
&&
t
.
ownerDocument
,
h
=
t
?
t
.
nodeType
:
9
;
if
(
n
=
n
||
[],
"string"
!=
typeof
e
||!
e
||
1
!==
h
&&
9
!==
h
&&
11
!==
h
)
return
n
;
if
(
!
r
&&
((
t
?
t
.
ownerDocument
||
t
:
M
)
!==
I
&&
L
(
t
),
t
=
t
||
I
,
q
)){
if
(
11
!==
h
&&
(
l
=
yt
.
exec
(
e
)))
if
(
o
=
l
[
1
]){
if
(
9
===
h
){
if
(
!
(
a
=
t
.
getElementById
(
o
)))
return
n
;
if
(
a
.
id
===
o
)
return
n
.
push
(
a
),
n
}
else
if
(
g
&&
(
a
=
g
.
getElementById
(
o
))
&&
H
(
t
,
a
)
&&
a
.
id
===
o
)
return
n
.
push
(
a
),
n
}
else
{
if
(
l
[
2
])
return
K
.
apply
(
n
,
t
.
getElementsByTagName
(
e
)),
n
;
if
((
o
=
l
[
3
])
&&
b
.
getElementsByClassName
&&
t
.
getElementsByClassName
)
return
K
.
apply
(
n
,
t
.
getElementsByClassName
(
o
)),
n
}
if
(
!
(
!
b
.
qsa
||
G
[
e
+
" "
]
||
B
&&
B
.
test
(
e
))){
if
(
1
!==
h
)
g
=
t
,
d
=
e
;
else
if
(
"object"
!==
t
.
nodeName
.
toLowerCase
()){
for
((
u
=
t
.
getAttribute
(
"id"
))?
u
=
u
.
replace
(
wt
,
"\\$&"
):
t
.
setAttribute
(
"id"
,
u
=
$
),
c
=
C
(
e
),
i
=
c
.
length
,
s
=
dt
.
test
(
u
)?
"#"
+
u
:
"[id='"
+
u
+
"']"
;
i
--
;)
c
[
i
]
=
s
+
" "
+
p
(
c
[
i
]);
d
=
c
.
join
(
","
),
g
=
vt
.
test
(
e
)
&&
f
(
t
.
parentNode
)
||
t
}
if
(
d
)
try
{
return
K
.
apply
(
n
,
g
.
querySelectorAll
(
d
)),
n
}
catch
(
m
){}
finally
{
u
===
$
&&
t
.
removeAttribute
(
"id"
)}}}
return
T
(
e
.
replace
(
ut
,
"$1"
),
t
,
n
,
r
)}
function
r
(){
function
e
(
n
,
r
){
return
t
.
push
(
n
+
" "
)
>
N
.
cacheLength
&&
delete
e
[
t
.
shift
()],
e
[
n
+
" "
]
=
r
}
var
t
=
[];
return
e
}
function
o
(
e
){
return
e
[
$
]
=!
0
,
e
}
function
i
(
e
){
var
t
=
I
.
createElement
(
"div"
);
try
{
return
!!
e
(
t
)}
catch
(
n
){
return
!
1
}
finally
{
t
.
parentNode
&&
t
.
parentNode
.
removeChild
(
t
),
t
=
null
}}
function
a
(
e
,
t
){
for
(
var
n
=
e
.
split
(
"|"
),
r
=
n
.
length
;
r
--
;)
N
.
attrHandle
[
n
[
r
]]
=
t
}
function
u
(
e
,
t
){
var
n
=
t
&&
e
,
r
=
n
&&
1
===
e
.
nodeType
&&
1
===
t
.
nodeType
&&
e
.
sourceIndex
-
t
.
sourceIndex
;
if
(
r
)
return
r
;
if
(
n
)
for
(;
n
=
n
.
nextSibling
;)
if
(
n
===
t
)
return
-
1
;
return
e
?
1
:
-
1
}
function
s
(
e
){
return
function
(
t
){
var
n
=
t
.
nodeName
.
toLowerCase
();
return
"input"
===
n
&&
t
.
type
===
e
}}
function
l
(
e
){
return
function
(
t
){
var
n
=
t
.
nodeName
.
toLowerCase
();
return
(
"input"
===
n
||
"button"
===
n
)
&&
t
.
type
===
e
}}
function
c
(
e
){
return
o
(
function
(
t
){
return
t
=+
t
,
o
(
function
(
n
,
r
){
for
(
var
o
,
i
=
e
([],
n
.
length
,
t
),
a
=
i
.
length
;
a
--
;)
n
[
o
=
i
[
a
]]
&&
(
n
[
o
]
=!
(
r
[
o
]
=
n
[
o
]))})})}
function
f
(
e
){
return
e
&&
"undefined"
!=
typeof
e
.
getElementsByTagName
&&
e
}
function
d
(){}
function
p
(
e
){
for
(
var
t
=
0
,
n
=
e
.
length
,
r
=
""
;
n
>
t
;
t
++
)
r
+=
e
[
t
].
value
;
return
r
}
function
g
(
e
,
t
,
n
){
var
r
=
t
.
dir
,
o
=
n
&&
"parentNode"
===
r
,
i
=
J
++
;
return
t
.
first
?
function
(
t
,
n
,
i
){
for
(;
t
=
t
[
r
];)
if
(
1
===
t
.
nodeType
||
o
)
return
e
(
t
,
n
,
i
)}:
function
(
t
,
n
,
a
){
var
u
,
s
,
l
,
c
=
[
z
,
i
];
if
(
a
){
for
(;
t
=
t
[
r
];)
if
((
1
===
t
.
nodeType
||
o
)
&&
e
(
t
,
n
,
a
))
return
!
0
}
else
for
(;
t
=
t
[
r
];)
if
(
1
===
t
.
nodeType
||
o
){
if
(
l
=
t
[
$
]
||
(
t
[
$
]
=
{}),
s
=
l
[
t
.
uniqueID
]
||
(
l
[
t
.
uniqueID
]
=
{}),(
u
=
s
[
r
])
&&
u
[
0
]
===
z
&&
u
[
1
]
===
i
)
return
c
[
2
]
=
u
[
2
];
if
(
s
[
r
]
=
c
,
c
[
2
]
=
e
(
t
,
n
,
a
))
return
!
0
}}}
function
h
(
e
){
return
e
.
length
>
1
?
function
(
t
,
n
,
r
){
for
(
var
o
=
e
.
length
;
o
--
;)
if
(
!
e
[
o
](
t
,
n
,
r
))
return
!
1
;
return
!
0
}:
e
[
0
]}
function
m
(
e
,
t
,
r
){
for
(
var
o
=
0
,
i
=
t
.
length
;
i
>
o
;
o
++
)
n
(
e
,
t
[
o
],
r
);
return
r
}
function
y
(
e
,
t
,
n
,
r
,
o
){
for
(
var
i
,
a
=
[],
u
=
0
,
s
=
e
.
length
,
l
=
null
!=
t
;
s
>
u
;
u
++
)(
i
=
e
[
u
])
&&
(
!
n
||
n
(
i
,
r
,
o
))
&&
(
a
.
push
(
i
),
l
&&
t
.
push
(
u
));
return
a
}
function
v
(
e
,
t
,
n
,
r
,
i
,
a
){
return
r
&&!
r
[
$
]
&&
(
r
=
v
(
r
)),
i
&&!
i
[
$
]
&&
(
i
=
v
(
i
,
a
)),
o
(
function
(
o
,
a
,
u
,
s
){
var
l
,
c
,
f
,
d
=
[],
p
=
[],
g
=
a
.
length
,
h
=
o
||
m
(
t
||
"*"
,
u
.
nodeType
?[
u
]:
u
,[]),
v
=!
e
||!
o
&&
t
?
h
:
y
(
h
,
d
,
e
,
u
,
s
),
w
=
n
?
i
||
(
o
?
e
:
g
||
r
)?[]:
a
:
v
;
if
(
n
&&
n
(
v
,
w
,
u
,
s
),
r
)
for
(
l
=
y
(
w
,
p
),
r
(
l
,[],
u
,
s
),
c
=
l
.
length
;
c
--
;)(
f
=
l
[
c
])
&&
(
w
[
p
[
c
]]
=!
(
v
[
p
[
c
]]
=
f
));
if
(
o
){
if
(
i
||
e
){
if
(
i
){
for
(
l
=
[],
c
=
w
.
length
;
c
--
;)(
f
=
w
[
c
])
&&
l
.
push
(
v
[
c
]
=
f
);
i
(
null
,
w
=
[],
l
,
s
)}
for
(
c
=
w
.
length
;
c
--
;)(
f
=
w
[
c
])
&&
(
l
=
i
?
et
(
o
,
f
):
d
[
c
])
>-
1
&&
(
o
[
l
]
=!
(
a
[
l
]
=
f
))}}
else
w
=
y
(
w
===
a
?
w
.
splice
(
g
,
w
.
length
):
w
),
i
?
i
(
null
,
a
,
w
,
s
):
K
.
apply
(
a
,
w
)})}
function
w
(
e
){
for
(
var
t
,
n
,
r
,
o
=
e
.
length
,
i
=
N
.
relative
[
e
[
0
].
type
],
a
=
i
||
N
.
relative
[
" "
],
u
=
i
?
1
:
0
,
s
=
g
(
function
(
e
){
return
e
===
t
},
a
,
!
0
),
l
=
g
(
function
(
e
){
return
et
(
t
,
e
)
>-
1
},
a
,
!
0
),
c
=
[
function
(
e
,
n
,
r
){
var
o
=!
i
&&
(
r
||
n
!==
j
)
||
((
t
=
n
).
nodeType
?
s
(
e
,
n
,
r
):
l
(
e
,
n
,
r
));
return
t
=
null
,
o
}];
o
>
u
;
u
++
)
if
(
n
=
N
.
relative
[
e
[
u
].
type
])
c
=
[
g
(
h
(
c
),
n
)];
else
{
if
(
n
=
N
.
filter
[
e
[
u
].
type
].
apply
(
null
,
e
[
u
].
matches
),
n
[
$
]){
for
(
r
=++
u
;
o
>
r
&&!
N
.
relative
[
e
[
r
].
type
];
r
++
);
return
v
(
u
>
1
&&
h
(
c
),
u
>
1
&&
p
(
e
.
slice
(
0
,
u
-
1
).
concat
({
value
:
" "
===
e
[
u
-
2
].
type
?
"*"
:
""
})).
replace
(
ut
,
"$1"
),
n
,
r
>
u
&&
w
(
e
.
slice
(
u
,
r
)),
o
>
r
&&
w
(
e
=
e
.
slice
(
r
)),
o
>
r
&&
p
(
e
))}
c
.
push
(
n
)}
return
h
(
c
)}
function
_
(
e
,
t
){
var
r
=
t
.
length
>
0
,
i
=
e
.
length
>
0
,
a
=
function
(
o
,
a
,
u
,
s
,
l
){
var
c
,
f
,
d
,
p
=
0
,
g
=
"0"
,
h
=
o
&&
[],
m
=
[],
v
=
j
,
w
=
o
||
i
&&
N
.
find
.
TAG
(
"*"
,
l
),
_
=
z
+=
null
==
v
?
1
:
Math
.
random
()
||
.
1
,
x
=
w
.
length
;
for
(
l
&&
(
j
=
a
===
I
||
a
||
l
);
g
!==
x
&&
null
!=
(
c
=
w
[
g
]);
g
++
){
if
(
i
&&
c
){
for
(
f
=
0
,
a
||
c
.
ownerDocument
===
I
||
(
L
(
c
),
u
=!
q
);
d
=
e
[
f
++
];)
if
(
d
(
c
,
a
||
I
,
u
)){
s
.
push
(
c
);
break
}
l
&&
(
z
=
_
)}
r
&&
((
c
=!
d
&&
c
)
&&
p
--
,
o
&&
h
.
push
(
c
))}
if
(
p
+=
g
,
r
&&
g
!==
p
){
for
(
f
=
0
;
d
=
t
[
f
++
];)
d
(
h
,
m
,
a
,
u
);
if
(
o
){
if
(
p
>
0
)
for
(;
g
--
;)
h
[
g
]
||
m
[
g
]
||
(
m
[
g
]
=
W
.
call
(
s
));
m
=
y
(
m
)}
K
.
apply
(
s
,
m
),
l
&&!
o
&&
m
.
length
>
0
&&
p
+
t
.
length
>
1
&&
n
.
uniqueSort
(
s
)}
return
l
&&
(
z
=
_
,
j
=
v
),
h
};
return
r
?
o
(
a
):
a
}
var
x
,
b
,
N
,
S
,
E
,
C
,
D
,
T
,
j
,
k
,
A
,
L
,
I
,
O
,
q
,
B
,
R
,
P
,
H
,
$
=
"sizzle"
+
1
*
new
Date
,
M
=
t
.
document
,
z
=
0
,
J
=
0
,
F
=
r
(),
U
=
r
(),
G
=
r
(),
Y
=
function
(
e
,
t
){
return
e
===
t
&&
(
A
=!
0
),
0
},
X
=
{}.
hasOwnProperty
,
V
=
[],
W
=
V
.
pop
,
Z
=
V
.
push
,
K
=
V
.
push
,
Q
=
V
.
slice
,
et
=
function
(
e
,
t
){
for
(
var
n
=
0
,
r
=
e
.
length
;
r
>
n
;
n
++
)
if
(
e
[
n
]
===
t
)
return
n
;
return
-
1
},
tt
=
"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped"
,
nt
=
"[\\x20\\t\\r\\n\\f]"
,
rt
=
"(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+"
,
ot
=
"\\["
+
nt
+
"*("
+
rt
+
")(?:"
+
nt
+
"*([*^$|!~]?=)"
+
nt
+
"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("
+
rt
+
"))|)"
+
nt
+
"*\\]"
,
it
=
":("
+
rt
+
")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"
+
ot
+
")*)|.*)\\)|)"
,
at
=
new
RegExp
(
nt
+
"+"
,
"g"
),
ut
=
new
RegExp
(
"^"
+
nt
+
"+|((?:^|[^\\\\])(?:\\\\.)*)"
+
nt
+
"+$"
,
"g"
),
st
=
new
RegExp
(
"^"
+
nt
+
"*,"
+
nt
+
"*"
),
lt
=
new
RegExp
(
"^"
+
nt
+
"*([>+~]|"
+
nt
+
")"
+
nt
+
"*"
),
ct
=
new
RegExp
(
"="
+
nt
+
"*([^\\]'\"]*?)"
+
nt
+
"*\\]"
,
"g"
),
ft
=
new
RegExp
(
it
),
dt
=
new
RegExp
(
"^"
+
rt
+
"$"
),
pt
=
{
ID
:
new
RegExp
(
"^#("
+
rt
+
")"
),
CLASS
:
new
RegExp
(
"^\\.("
+
rt
+
")"
),
TAG
:
new
RegExp
(
"^("
+
rt
+
"|[*])"
),
ATTR
:
new
RegExp
(
"^"
+
ot
),
PSEUDO
:
new
RegExp
(
"^"
+
it
),
CHILD
:
new
RegExp
(
"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("
+
nt
+
"*(even|odd|(([+-]|)(\\d*)n|)"
+
nt
+
"*(?:([+-]|)"
+
nt
+
"*(\\d+)|))"
+
nt
+
"*\\)|)"
,
"i"
),
bool
:
new
RegExp
(
"^(?:"
+
tt
+
")$"
,
"i"
),
needsContext
:
new
RegExp
(
"^"
+
nt
+
"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("
+
nt
+
"*((?:-\\d)?\\d*)"
+
nt
+
"*\\)|)(?=[^-]|$)"
,
"i"
)},
gt
=
/^
(?:
input|select|textarea|button
)
$/i
,
ht
=
/^h
\d
$/i
,
mt
=
/^
[^
{
]
+
\{\s
*
\[
native
\w
/
,
yt
=
/^
(?:
#
([\w
-
]
+
)
|
(\w
+
)
|
\.([\w
-
]
+
))
$/
,
vt
=
/
[
+~
]
/
,
wt
=
/'|
\\
/g
,
_t
=
new
RegExp
(
"\\\\([\\da-f]{1,6}"
+
nt
+
"?|("
+
nt
+
")|.)"
,
"ig"
),
xt
=
function
(
e
,
t
,
n
){
var
r
=
"0x"
+
t
-
65536
;
return
r
!==
r
||
n
?
t
:
0
>
r
?
String
.
fromCharCode
(
r
+
65536
):
String
.
fromCharCode
(
r
>>
10
|
55296
,
1023
&
r
|
56320
)},
bt
=
function
(){
L
()};
try
{
K
.
apply
(
V
=
Q
.
call
(
M
.
childNodes
),
M
.
childNodes
),
V
[
M
.
childNodes
.
length
].
nodeType
}
catch
(
Nt
){
K
=
{
apply
:
V
.
length
?
function
(
e
,
t
){
Z
.
apply
(
e
,
Q
.
call
(
t
))}:
function
(
e
,
t
){
for
(
var
n
=
e
.
length
,
r
=
0
;
e
[
n
++
]
=
t
[
r
++
];);
e
.
length
=
n
-
1
}}}
b
=
n
.
support
=
{},
E
=
n
.
isXML
=
function
(
e
){
var
t
=
e
&&
(
e
.
ownerDocument
||
e
).
documentElement
;
return
t
?
"HTML"
!==
t
.
nodeName
:
!
1
},
L
=
n
.
setDocument
=
function
(
e
){
var
t
,
n
,
r
=
e
?
e
.
ownerDocument
||
e
:
M
;
return
r
!==
I
&&
9
===
r
.
nodeType
&&
r
.
documentElement
?(
I
=
r
,
O
=
I
.
documentElement
,
q
=!
E
(
I
),
M
!==
I
&&
(
n
=
I
.
defaultView
)
&&
n
.
top
!==
n
&&
(
n
.
addEventListener
?
n
.
addEventListener
(
"unload"
,
bt
,
!
1
):
n
.
attachEvent
&&
n
.
attachEvent
(
"onunload"
,
bt
)),
b
.
attributes
=
i
(
function
(
e
){
return
e
.
className
=
"i"
,
!
e
.
getAttribute
(
"className"
)}),
b
.
getElementsByTagName
=
i
(
function
(
e
){
return
e
.
appendChild
(
I
.
createComment
(
""
)),
!
e
.
getElementsByTagName
(
"*"
).
length
}),
b
.
getElementsByClassName
=
mt
.
test
(
I
.
getElementsByClassName
),
b
.
getById
=
i
(
function
(
e
){
return
O
.
appendChild
(
e
).
id
=
$
,
!
I
.
getElementsByName
||!
I
.
getElementsByName
(
$
).
length
}),
b
.
getById
?(
N
.
find
.
ID
=
function
(
e
,
t
){
if
(
"undefined"
!=
typeof
t
.
getElementById
&&
q
){
var
n
=
t
.
getElementById
(
e
);
return
n
?[
n
]:[]}},
N
.
filter
.
ID
=
function
(
e
){
var
t
=
e
.
replace
(
_t
,
xt
);
return
function
(
e
){
return
e
.
getAttribute
(
"id"
)
===
t
}}):(
delete
N
.
find
.
ID
,
N
.
filter
.
ID
=
function
(
e
){
var
t
=
e
.
replace
(
_t
,
xt
);
return
function
(
e
){
var
n
=
"undefined"
!=
typeof
e
.
getAttributeNode
&&
e
.
getAttributeNode
(
"id"
);
return
n
&&
n
.
value
===
t
}}),
N
.
find
.
TAG
=
b
.
getElementsByTagName
?
function
(
e
,
t
){
return
"undefined"
!=
typeof
t
.
getElementsByTagName
?
t
.
getElementsByTagName
(
e
):
b
.
qsa
?
t
.
querySelectorAll
(
e
):
void
0
}:
function
(
e
,
t
){
var
n
,
r
=
[],
o
=
0
,
i
=
t
.
getElementsByTagName
(
e
);
if
(
"*"
===
e
){
for
(;
n
=
i
[
o
++
];)
1
===
n
.
nodeType
&&
r
.
push
(
n
);
return
r
}
return
i
},
N
.
find
.
CLASS
=
b
.
getElementsByClassName
&&
function
(
e
,
t
){
return
"undefined"
!=
typeof
t
.
getElementsByClassName
&&
q
?
t
.
getElementsByClassName
(
e
):
void
0
},
R
=
[],
B
=
[],(
b
.
qsa
=
mt
.
test
(
I
.
querySelectorAll
))
&&
(
i
(
function
(
e
){
O
.
appendChild
(
e
).
innerHTML
=
"<a id='"
+
$
+
"'></a><select id='"
+
$
+
"-\r\\' msallowcapture=''><option selected=''></option></select>"
,
e
.
querySelectorAll
(
"[msallowcapture^='']"
).
length
&&
B
.
push
(
"[*^$]="
+
nt
+
"*(?:''|\"\")"
),
e
.
querySelectorAll
(
"[selected]"
).
length
||
B
.
push
(
"\\["
+
nt
+
"*(?:value|"
+
tt
+
")"
),
e
.
querySelectorAll
(
"[id~="
+
$
+
"-]"
).
length
||
B
.
push
(
"~="
),
e
.
querySelectorAll
(
":checked"
).
length
||
B
.
push
(
":checked"
),
e
.
querySelectorAll
(
"a#"
+
$
+
"+*"
).
length
||
B
.
push
(
".#.+[+~]"
)}),
i
(
function
(
e
){
var
t
=
I
.
createElement
(
"input"
);
t
.
setAttribute
(
"type"
,
"hidden"
),
e
.
appendChild
(
t
).
setAttribute
(
"name"
,
"D"
),
e
.
querySelectorAll
(
"[name=d]"
).
length
&&
B
.
push
(
"name"
+
nt
+
"*[*^$|!~]?="
),
e
.
querySelectorAll
(
":enabled"
).
length
||
B
.
push
(
":enabled"
,
":disabled"
),
e
.
querySelectorAll
(
"*,:x"
),
B
.
push
(
",.*:"
)})),(
b
.
matchesSelector
=
mt
.
test
(
P
=
O
.
matches
||
O
.
webkitMatchesSelector
||
O
.
mozMatchesSelector
||
O
.
oMatchesSelector
||
O
.
msMatchesSelector
))
&&
i
(
function
(
e
){
b
.
disconnectedMatch
=
P
.
call
(
e
,
"div"
),
P
.
call
(
e
,
"[s!='']:x"
),
R
.
push
(
"!="
,
it
)}),
B
=
B
.
length
&&
new
RegExp
(
B
.
join
(
"|"
)),
R
=
R
.
length
&&
new
RegExp
(
R
.
join
(
"|"
)),
t
=
mt
.
test
(
O
.
compareDocumentPosition
),
H
=
t
||
mt
.
test
(
O
.
contains
)?
function
(
e
,
t
){
var
n
=
9
===
e
.
nodeType
?
e
.
documentElement
:
e
,
r
=
t
&&
t
.
parentNode
;
return
e
===
r
||!
(
!
r
||
1
!==
r
.
nodeType
||!
(
n
.
contains
?
n
.
contains
(
r
):
e
.
compareDocumentPosition
&&
16
&
e
.
compareDocumentPosition
(
r
)))}:
function
(
e
,
t
){
if
(
t
)
for
(;
t
=
t
.
parentNode
;)
if
(
t
===
e
)
return
!
0
;
return
!
1
},
Y
=
t
?
function
(
e
,
t
){
if
(
e
===
t
)
return
A
=!
0
,
0
;
var
n
=!
e
.
compareDocumentPosition
-!
t
.
compareDocumentPosition
;
return
n
?
n
:(
n
=
(
e
.
ownerDocument
||
e
)
===
(
t
.
ownerDocument
||
t
)?
e
.
compareDocumentPosition
(
t
):
1
,
1
&
n
||!
b
.
sortDetached
&&
t
.
compareDocumentPosition
(
e
)
===
n
?
e
===
I
||
e
.
ownerDocument
===
M
&&
H
(
M
,
e
)?
-
1
:
t
===
I
||
t
.
ownerDocument
===
M
&&
H
(
M
,
t
)?
1
:
k
?
et
(
k
,
e
)
-
et
(
k
,
t
):
0
:
4
&
n
?
-
1
:
1
)}:
function
(
e
,
t
){
if
(
e
===
t
)
return
A
=!
0
,
0
;
var
n
,
r
=
0
,
o
=
e
.
parentNode
,
i
=
t
.
parentNode
,
a
=
[
e
],
s
=
[
t
];
if
(
!
o
||!
i
)
return
e
===
I
?
-
1
:
t
===
I
?
1
:
o
?
-
1
:
i
?
1
:
k
?
et
(
k
,
e
)
-
et
(
k
,
t
):
0
;
if
(
o
===
i
)
return
u
(
e
,
t
);
for
(
n
=
e
;
n
=
n
.
parentNode
;)
a
.
unshift
(
n
);
for
(
n
=
t
;
n
=
n
.
parentNode
;)
s
.
unshift
(
n
);
for
(;
a
[
r
]
===
s
[
r
];)
r
++
;
return
r
?
u
(
a
[
r
],
s
[
r
]):
a
[
r
]
===
M
?
-
1
:
s
[
r
]
===
M
?
1
:
0
},
I
):
I
},
n
.
matches
=
function
(
e
,
t
){
return
n
(
e
,
null
,
null
,
t
)},
n
.
matchesSelector
=
function
(
e
,
t
){
if
((
e
.
ownerDocument
||
e
)
!==
I
&&
L
(
e
),
t
=
t
.
replace
(
ct
,
"='$1']"
),
!
(
!
b
.
matchesSelector
||!
q
||
G
[
t
+
" "
]
||
R
&&
R
.
test
(
t
)
||
B
&&
B
.
test
(
t
)))
try
{
var
r
=
P
.
call
(
e
,
t
);
if
(
r
||
b
.
disconnectedMatch
||
e
.
document
&&
11
!==
e
.
document
.
nodeType
)
return
r
}
catch
(
o
){}
return
n
(
t
,
I
,
null
,[
e
]).
length
>
0
},
n
.
contains
=
function
(
e
,
t
){
return
(
e
.
ownerDocument
||
e
)
!==
I
&&
L
(
e
),
H
(
e
,
t
)},
n
.
attr
=
function
(
e
,
t
){(
e
.
ownerDocument
||
e
)
!==
I
&&
L
(
e
);
var
n
=
N
.
attrHandle
[
t
.
toLowerCase
()],
r
=
n
&&
X
.
call
(
N
.
attrHandle
,
t
.
toLowerCase
())?
n
(
e
,
t
,
!
q
):
void
0
;
return
void
0
!==
r
?
r
:
b
.
attributes
||!
q
?
e
.
getAttribute
(
t
):(
r
=
e
.
getAttributeNode
(
t
))
&&
r
.
specified
?
r
.
value
:
null
},
n
.
error
=
function
(
e
){
throw
new
Error
(
"Syntax error, unrecognized expression: "
+
e
)},
n
.
uniqueSort
=
function
(
e
){
var
t
,
n
=
[],
r
=
0
,
o
=
0
;
if
(
A
=!
b
.
detectDuplicates
,
k
=!
b
.
sortStable
&&
e
.
slice
(
0
),
e
.
sort
(
Y
),
A
){
for
(;
t
=
e
[
o
++
];)
t
===
e
[
o
]
&&
(
r
=
n
.
push
(
o
));
for
(;
r
--
;)
e
.
splice
(
n
[
r
],
1
)}
return
k
=
null
,
e
},
S
=
n
.
getText
=
function
(
e
){
var
t
,
n
=
""
,
r
=
0
,
o
=
e
.
nodeType
;
if
(
o
){
if
(
1
===
o
||
9
===
o
||
11
===
o
){
if
(
"string"
==
typeof
e
.
textContent
)
return
e
.
textContent
;
for
(
e
=
e
.
firstChild
;
e
;
e
=
e
.
nextSibling
)
n
+=
S
(
e
)}
else
if
(
3
===
o
||
4
===
o
)
return
e
.
nodeValue
}
else
for
(;
t
=
e
[
r
++
];)
n
+=
S
(
t
);
return
n
},
N
=
n
.
selectors
=
{
cacheLength
:
50
,
createPseudo
:
o
,
match
:
pt
,
attrHandle
:{},
find
:{},
relative
:{
">"
:{
dir
:
"parentNode"
,
first
:
!
0
},
" "
:{
dir
:
"parentNode"
},
"+"
:
{
dir
:
"previousSibling"
,
first
:
!
0
},
"~"
:
{
dir
:
"previousSibling"
}},
preFilter
:
{
ATTR
:
function
(
e
){
return
e
[
1
]
=
e
[
1
].
replace
(
_t
,
xt
),
e
[
3
]
=
(
e
[
3
]
||
e
[
4
]
||
e
[
5
]
||
""
).
replace
(
_t
,
xt
),
"~="
===
e
[
2
]
&&
(
e
[
3
]
=
" "
+
e
[
3
]
+
" "
),
e
.
slice
(
0
,
4
)},
CHILD
:
function
(
e
){
return
e
[
1
]
=
e
[
1
].
toLowerCase
(),
"nth"
===
e
[
1
].
slice
(
0
,
3
)?(
e
[
3
]
||
n
.
error
(
e
[
0
]),
e
[
4
]
=+
(
e
[
4
]?
e
[
5
]
+
(
e
[
6
]
||
1
):
2
*
(
"even"
===
e
[
3
]
||
"odd"
===
e
[
3
])),
e
[
5
]
=+
(
e
[
7
]
+
e
[
8
]
||
"odd"
===
e
[
3
])):
e
[
3
]
&&
n
.
error
(
e
[
0
]),
e
},
PSEUDO
:
function
(
e
){
var
t
,
n
=!
e
[
6
]
&&
e
[
2
];
return
pt
.
CHILD
.
test
(
e
[
0
])?
null
:(
e
[
3
]?
e
[
2
]
=
e
[
4
]
||
e
[
5
]
||
""
:
n
&&
ft
.
test
(
n
)
&&
(
t
=
C
(
n
,
!
0
))
&&
(
t
=
n
.
indexOf
(
")"
,
n
.
length
-
t
)
-
n
.
length
)
&&
(
e
[
0
]
=
e
[
0
].
slice
(
0
,
t
),
e
[
2
]
=
n
.
slice
(
0
,
t
)),
e
.
slice
(
0
,
3
))}},
filter
:
{
TAG
:
function
(
e
){
var
t
=
e
.
replace
(
_t
,
xt
).
toLowerCase
();
return
"*"
===
e
?
function
(){
return
!
0
}:
function
(
e
){
return
e
.
nodeName
&&
e
.
nodeName
.
toLowerCase
()
===
t
}},
CLASS
:
function
(
e
){
var
t
=
F
[
e
+
" "
];
return
t
||
(
t
=
new
RegExp
(
"(^|"
+
nt
+
")"
+
e
+
"("
+
nt
+
"|$)"
))
&&
F
(
e
,
function
(
e
){
return
t
.
test
(
"string"
==
typeof
e
.
className
&&
e
.
className
||
"undefined"
!=
typeof
e
.
getAttribute
&&
e
.
getAttribute
(
"class"
)
||
""
)})},
ATTR
:
function
(
e
,
t
,
r
){
return
function
(
o
){
var
i
=
n
.
attr
(
o
,
e
);
return
null
==
i
?
"!="
===
t
:
t
?(
i
+=
""
,
"="
===
t
?
i
===
r
:
"!="
===
t
?
i
!==
r
:
"^="
===
t
?
r
&&
0
===
i
.
indexOf
(
r
):
"*="
===
t
?
r
&&
i
.
indexOf
(
r
)
>-
1
:
"$="
===
t
?
r
&&
i
.
slice
(
-
r
.
length
)
===
r
:
"~="
===
t
?(
" "
+
i
.
replace
(
at
,
" "
)
+
" "
).
indexOf
(
r
)
>-
1
:
"|="
===
t
?
i
===
r
||
i
.
slice
(
0
,
r
.
length
+
1
)
===
r
+
"-"
:
!
1
):
!
0
}},
CHILD
:
function
(
e
,
t
,
n
,
r
,
o
){
var
i
=
"nth"
!==
e
.
slice
(
0
,
3
),
a
=
"last"
!==
e
.
slice
(
-
4
),
u
=
"of-type"
===
t
;
return
1
===
r
&&
0
===
o
?
function
(
e
){
return
!!
e
.
parentNode
}:
function
(
t
,
n
,
s
){
var
l
,
c
,
f
,
d
,
p
,
g
,
h
=
i
!==
a
?
"nextSibling"
:
"previousSibling"
,
m
=
t
.
parentNode
,
y
=
u
&&
t
.
nodeName
.
toLowerCase
(),
v
=!
s
&&!
u
,
w
=!
1
;
if
(
m
){
if
(
i
){
for
(;
h
;){
for
(
d
=
t
;
d
=
d
[
h
];)
if
(
u
?
d
.
nodeName
.
toLowerCase
()
===
y
:
1
===
d
.
nodeType
)
return
!
1
;
g
=
h
=
"only"
===
e
&&!
g
&&
"nextSibling"
}
return
!
0
}
if
(
g
=
[
a
?
m
.
firstChild
:
m
.
lastChild
],
a
&&
v
){
for
(
d
=
m
,
f
=
d
[
$
]
||
(
d
[
$
]
=
{}),
c
=
f
[
d
.
uniqueID
]
||
(
f
[
d
.
uniqueID
]
=
{}),
l
=
c
[
e
]
||
[],
p
=
l
[
0
]
===
z
&&
l
[
1
],
w
=
p
&&
l
[
2
],
d
=
p
&&
m
.
childNodes
[
p
];
d
=++
p
&&
d
&&
d
[
h
]
||
(
w
=
p
=
0
)
||
g
.
pop
();)
if
(
1
===
d
.
nodeType
&&++
w
&&
d
===
t
){
c
[
e
]
=
[
z
,
p
,
w
];
break
}}
else
if
(
v
&&
(
d
=
t
,
f
=
d
[
$
]
||
(
d
[
$
]
=
{}),
c
=
f
[
d
.
uniqueID
]
||
(
f
[
d
.
uniqueID
]
=
{}),
l
=
c
[
e
]
||
[],
p
=
l
[
0
]
===
z
&&
l
[
1
],
w
=
p
),
w
===!
1
)
for
(;(
d
=++
p
&&
d
&&
d
[
h
]
||
(
w
=
p
=
0
)
||
g
.
pop
())
&&
((
u
?
d
.
nodeName
.
toLowerCase
()
!==
y
:
1
!==
d
.
nodeType
)
||!++
w
||
(
v
&&
(
f
=
d
[
$
]
||
(
d
[
$
]
=
{}),
c
=
f
[
d
.
uniqueID
]
||
(
f
[
d
.
uniqueID
]
=
{}),
c
[
e
]
=
[
z
,
w
]),
d
!==
t
)););
return
w
-=
o
,
w
===
r
||
w
%
r
===
0
&&
w
/
r
>=
0
}}},
PSEUDO
:
function
(
e
,
t
){
var
r
,
i
=
N
.
pseudos
[
e
]
||
N
.
setFilters
[
e
.
toLowerCase
()]
||
n
.
error
(
"unsupported pseudo: "
+
e
);
return
i
[
$
]?
i
(
t
):
i
.
length
>
1
?(
r
=
[
e
,
e
,
""
,
t
],
N
.
setFilters
.
hasOwnProperty
(
e
.
toLowerCase
())?
o
(
function
(
e
,
n
){
for
(
var
r
,
o
=
i
(
e
,
t
),
a
=
o
.
length
;
a
--
;)
r
=
et
(
e
,
o
[
a
]),
e
[
r
]
=!
(
n
[
r
]
=
o
[
a
])}):
function
(
e
){
return
i
(
e
,
0
,
r
)}):
i
}},
pseudos
:
{
not
:
o
(
function
(
e
){
var
t
=
[],
n
=
[],
r
=
D
(
e
.
replace
(
ut
,
"$1"
));
return
r
[
$
]?
o
(
function
(
e
,
t
,
n
,
o
){
for
(
var
i
,
a
=
r
(
e
,
null
,
o
,[]),
u
=
e
.
length
;
u
--
;)(
i
=
a
[
u
])
&&
(
e
[
u
]
=!
(
t
[
u
]
=
i
))}):
function
(
e
,
o
,
i
){
return
t
[
0
]
=
e
,
r
(
t
,
null
,
i
,
n
),
t
[
0
]
=
null
,
!
n
.
pop
()}}),
has
:
o
(
function
(
e
){
return
function
(
t
){
return
n
(
e
,
t
).
length
>
0
}}),
contains
:
o
(
function
(
e
){
return
e
=
e
.
replace
(
_t
,
xt
),
function
(
t
){
return
(
t
.
textContent
||
t
.
innerText
||
S
(
t
)).
indexOf
(
e
)
>-
1
}}),
lang
:
o
(
function
(
e
){
return
dt
.
test
(
e
||
""
)
||
n
.
error
(
"unsupported lang: "
+
e
),
e
=
e
.
replace
(
_t
,
xt
).
toLowerCase
(),
function
(
t
){
var
n
;
do
if
(
n
=
q
?
t
.
lang
:
t
.
getAttribute
(
"xml:lang"
)
||
t
.
getAttribute
(
"lang"
))
return
n
=
n
.
toLowerCase
(),
n
===
e
||
0
===
n
.
indexOf
(
e
+
"-"
);
while
((
t
=
t
.
parentNode
)
&&
1
===
t
.
nodeType
);
return
!
1
}}),
target
:
function
(
e
){
var
n
=
t
.
location
&&
t
.
location
.
hash
;
return
n
&&
n
.
slice
(
1
)
===
e
.
id
},
root
:
function
(
e
){
return
e
===
O
},
focus
:
function
(
e
){
return
e
===
I
.
activeElement
&&
(
!
I
.
hasFocus
||
I
.
hasFocus
())
&&!!
(
e
.
type
||
e
.
href
||~
e
.
tabIndex
)},
enabled
:
function
(
e
){
return
e
.
disabled
===!
1
},
disabled
:
function
(
e
){
return
e
.
disabled
===!
0
},
checked
:
function
(
e
){
var
t
=
e
.
nodeName
.
toLowerCase
();
return
"input"
===
t
&&!!
e
.
checked
||
"option"
===
t
&&!!
e
.
selected
},
selected
:
function
(
e
){
return
e
.
parentNode
&&
e
.
parentNode
.
selectedIndex
,
e
.
selected
===!
0
},
empty
:
function
(
e
){
for
(
e
=
e
.
firstChild
;
e
;
e
=
e
.
nextSibling
)
if
(
e
.
nodeType
<
6
)
return
!
1
;
return
!
0
},
parent
:
function
(
e
){
return
!
N
.
pseudos
.
empty
(
e
)},
header
:
function
(
e
){
return
ht
.
test
(
e
.
nodeName
)},
input
:
function
(
e
){
return
gt
.
test
(
e
.
nodeName
)},
button
:
function
(
e
){
var
t
=
e
.
nodeName
.
toLowerCase
();
return
"input"
===
t
&&
"button"
===
e
.
type
||
"button"
===
t
},
text
:
function
(
e
){
var
t
;
return
"input"
===
e
.
nodeName
.
toLowerCase
()
&&
"text"
===
e
.
type
&&
(
null
==
(
t
=
e
.
getAttribute
(
"type"
))
||
"text"
===
t
.
toLowerCase
())},
first
:
c
(
function
(){
return
[
0
]}),
last
:
c
(
function
(
e
,
t
){
return
[
t
-
1
]}),
eq
:
c
(
function
(
e
,
t
,
n
){
return
[
0
>
n
?
n
+
t
:
n
]}),
even
:
c
(
function
(
e
,
t
){
for
(
var
n
=
0
;
t
>
n
;
n
+=
2
)
e
.
push
(
n
);
return
e
}),
odd
:
c
(
function
(
e
,
t
){
for
(
var
n
=
1
;
t
>
n
;
n
+=
2
)
e
.
push
(
n
);
return
e
}),
lt
:
c
(
function
(
e
,
t
,
n
){
for
(
var
r
=
0
>
n
?
n
+
t
:
n
;
--
r
>=
0
;)
e
.
push
(
r
);
return
e
}),
gt
:
c
(
function
(
e
,
t
,
n
){
for
(
var
r
=
0
>
n
?
n
+
t
:
n
;
++
r
<
t
;)
e
.
push
(
r
);
return
e
})}},
N
.
pseudos
.
nth
=
N
.
pseudos
.
eq
;
for
(
x
in
{
radio
:
!
0
,
checkbox
:
!
0
,
file
:
!
0
,
password
:
!
0
,
image
:
!
0
})
N
.
pseudos
[
x
]
=
s
(
x
);
for
(
x
in
{
submit
:
!
0
,
reset
:
!
0
})
N
.
pseudos
[
x
]
=
l
(
x
);
d
.
prototype
=
N
.
filters
=
N
.
pseudos
,
N
.
setFilters
=
new
d
,
C
=
n
.
tokenize
=
function
(
e
,
t
){
var
r
,
o
,
i
,
a
,
u
,
s
,
l
,
c
=
U
[
e
+
" "
];
if
(
c
)
return
t
?
0
:
c
.
slice
(
0
);
for
(
u
=
e
,
s
=
[],
l
=
N
.
preFilter
;
u
;){(
!
r
||
(
o
=
st
.
exec
(
u
)))
&&
(
o
&&
(
u
=
u
.
slice
(
o
[
0
].
length
)
||
u
),
s
.
push
(
i
=
[])),
r
=!
1
,(
o
=
lt
.
exec
(
u
))
&&
(
r
=
o
.
shift
(),
i
.
push
({
value
:
r
,
type
:
o
[
0
].
replace
(
ut
,
" "
)}),
u
=
u
.
slice
(
r
.
length
));
for
(
a
in
N
.
filter
)
!
(
o
=
pt
[
a
].
exec
(
u
))
||
l
[
a
]
&&!
(
o
=
l
[
a
](
o
))
||
(
r
=
o
.
shift
(),
i
.
push
({
value
:
r
,
type
:
a
,
matches
:
o
}),
u
=
u
.
slice
(
r
.
length
));
if
(
!
r
)
break
}
return
t
?
u
.
length
:
u
?
n
.
error
(
e
):
U
(
e
,
s
).
slice
(
0
)},
D
=
n
.
compile
=
function
(
e
,
t
){
var
n
,
r
=
[],
o
=
[],
i
=
G
[
e
+
" "
];
if
(
!
i
){
for
(
t
||
(
t
=
C
(
e
)),
n
=
t
.
length
;
n
--
;)
i
=
w
(
t
[
n
]),
i
[
$
]?
r
.
push
(
i
):
o
.
push
(
i
);
i
=
G
(
e
,
_
(
o
,
r
)),
i
.
selector
=
e
}
return
i
},
T
=
n
.
select
=
function
(
e
,
t
,
n
,
r
){
var
o
,
i
,
a
,
u
,
s
,
l
=
"function"
==
typeof
e
&&
e
,
c
=!
r
&&
C
(
e
=
l
.
selector
||
e
);
if
(
n
=
n
||
[],
1
===
c
.
length
){
if
(
i
=
c
[
0
]
=
c
[
0
].
slice
(
0
),
i
.
length
>
2
&&
"ID"
===
(
a
=
i
[
0
]).
type
&&
b
.
getById
&&
9
===
t
.
nodeType
&&
q
&&
N
.
relative
[
i
[
1
].
type
]){
if
(
t
=
(
N
.
find
.
ID
(
a
.
matches
[
0
].
replace
(
_t
,
xt
),
t
)
||
[])[
0
],
!
t
)
return
n
;
l
&&
(
t
=
t
.
parentNode
),
e
=
e
.
slice
(
i
.
shift
().
value
.
length
)}
for
(
o
=
pt
.
needsContext
.
test
(
e
)?
0
:
i
.
length
;
o
--&&
(
a
=
i
[
o
],
!
N
.
relative
[
u
=
a
.
type
]);)
if
((
s
=
N
.
find
[
u
])
&&
(
r
=
s
(
a
.
matches
[
0
].
replace
(
_t
,
xt
),
vt
.
test
(
i
[
0
].
type
)
&&
f
(
t
.
parentNode
)
||
t
))){
if
(
i
.
splice
(
o
,
1
),
e
=
r
.
length
&&
p
(
i
),
!
e
)
return
K
.
apply
(
n
,
r
),
n
;
break
}}
return
(
l
||
D
(
e
,
c
))(
r
,
t
,
!
q
,
n
,
!
t
||
vt
.
test
(
e
)
&&
f
(
t
.
parentNode
)
||
t
),
n
},
b
.
sortStable
=
$
.
split
(
""
).
sort
(
Y
).
join
(
""
)
===
$
,
b
.
detectDuplicates
=!!
A
,
L
(),
b
.
sortDetached
=
i
(
function
(
e
){
return
1
&
e
.
compareDocumentPosition
(
I
.
createElement
(
"div"
))}),
i
(
function
(
e
){
return
e
.
innerHTML
=
"<a href='#'></a>"
,
"#"
===
e
.
firstChild
.
getAttribute
(
"href"
)})
||
a
(
"type|href|height|width"
,
function
(
e
,
t
,
n
){
return
n
?
void
0
:
e
.
getAttribute
(
t
,
"type"
===
t
.
toLowerCase
()?
1
:
2
)}),
b
.
attributes
&&
i
(
function
(
e
){
return
e
.
innerHTML
=
"<input/>"
,
e
.
firstChild
.
setAttribute
(
"value"
,
""
),
""
===
e
.
firstChild
.
getAttribute
(
"value"
)})
||
a
(
"value"
,
function
(
e
,
t
,
n
){
return
n
||
"input"
!==
e
.
nodeName
.
toLowerCase
()?
void
0
:
e
.
defaultValue
}),
i
(
function
(
e
){
return
null
==
e
.
getAttribute
(
"disabled"
)})
||
a
(
tt
,
function
(
e
,
t
,
n
){
var
r
;
return
n
?
void
0
:
e
[
t
]
===!
0
?
t
.
toLowerCase
():(
r
=
e
.
getAttributeNode
(
t
))
&&
r
.
specified
?
r
.
value
:
null
}),
"function"
==
typeof
define
&&
define
.
amd
?
define
(
function
(){
return
n
}):
e
=
n
}(
window
),
e
}(),
yohojson2_100_json2
=
function
(){
"object"
!=
typeof
JSON
&&
(
JSON
=
{}),
function
(){
"use strict"
;
function
f
(
e
){
return
10
>
e
?
"0"
+
e
:
e
}
function
this_value
(){
return
this
.
valueOf
()}
function
quote
(
e
){
return
rx_escapable
.
lastIndex
=
0
,
rx_escapable
.
test
(
e
)?
'"'
+
e
.
replace
(
rx_escapable
,
function
(
e
){
var
t
=
meta
[
e
];
return
"string"
==
typeof
t
?
t
:
"\\u"
+
(
"0000"
+
e
.
charCodeAt
(
0
).
toString
(
16
)).
slice
(
-
4
)})
+
'"'
:
'"'
+
e
+
'"'
}
function
str
(
e
,
t
){
var
n
,
r
,
o
,
i
,
a
,
u
=
gap
,
s
=
t
[
e
];
switch
(
s
&&
"object"
==
typeof
s
&&
"function"
==
typeof
s
.
toJSON
&&
(
s
=
s
.
toJSON
(
e
)),
"function"
==
typeof
rep
&&
(
s
=
rep
.
call
(
t
,
e
,
s
)),
typeof
s
){
case
"string"
:
return
quote
(
s
);
case
"number"
:
return
isFinite
(
s
)?
String
(
s
):
"null"
;
case
"boolean"
:
case
"null"
:
return
String
(
s
);
case
"object"
:
if
(
!
s
)
return
"null"
;
if
(
gap
+=
indent
,
a
=
[],
"[object Array]"
===
Object
.
prototype
.
toString
.
apply
(
s
)){
for
(
i
=
s
.
length
,
n
=
0
;
i
>
n
;
n
+=
1
)
a
[
n
]
=
str
(
n
,
s
)
||
"null"
;
return
o
=
0
===
a
.
length
?
"[]"
:
gap
?
"[\n"
+
gap
+
a
.
join
(
",\n"
+
gap
)
+
"\n"
+
u
+
"]"
:
"["
+
a
.
join
(
","
)
+
"]"
,
gap
=
u
,
o
}
if
(
rep
&&
"object"
==
typeof
rep
)
for
(
i
=
rep
.
length
,
n
=
0
;
i
>
n
;
n
+=
1
)
"string"
==
typeof
rep
[
n
]
&&
(
r
=
rep
[
n
],
o
=
str
(
r
,
s
),
o
&&
a
.
push
(
quote
(
r
)
+
(
gap
?
": "
:
":"
)
+
o
));
else
for
(
r
in
s
)
Object
.
prototype
.
hasOwnProperty
.
call
(
s
,
r
)
&&
(
o
=
str
(
r
,
s
),
o
&&
a
.
push
(
quote
(
r
)
+
(
gap
?
": "
:
":"
)
+
o
));
return
o
=
0
===
a
.
length
?
"{}"
:
gap
?
"{\n"
+
gap
+
a
.
join
(
",\n"
+
gap
)
+
"\n"
+
u
+
"}"
:
"{"
+
a
.
join
(
","
)
+
"}"
,
gap
=
u
,
o
}}
var
rx_one
=
/^
[\]
,:{}
\s]
*$/
,
rx_two
=
/
\\(?:[
"
\\\/
bfnrt
]
|u
[
0-9a-fA-F
]{4})
/g
,
rx_three
=
/"
[^
"
\\\n\r]
*"|true|false|null|-
?\d
+
(?:\.\d
*
)?(?:[
eE
][
+
\-]?\d
+
)?
/g
,
rx_four
=
/
(?:
^|:|,
)(?:\s
*
\[)
+/g
,
rx_escapable
=
/
[\\\"\u
0000-
\u
001f
\u
007f-
\u
009f
\u
00ad
\u
0600-
\u
0604
\u
070f
\u
17b4
\u
17b5
\u
200c-
\u
200f
\u
2028-
\u
202f
\u
2060-
\u
206f
\u
feff
\u
fff0-
\u
ffff
]
/g
,
rx_dangerous
=
/
[\u
0000
\u
00ad
\u
0600-
\u
0604
\u
070f
\u
17b4
\u
17b5
\u
200c-
\u
200f
\u
2028-
\u
202f
\u
2060-
\u
206f
\u
feff
\u
fff0-
\u
ffff
]
/g
;
"function"
!=
typeof
Date
.
prototype
.
toJSON
&&
(
Date
.
prototype
.
toJSON
=
function
(){
return
isFinite
(
this
.
valueOf
())?
this
.
getUTCFullYear
()
+
"-"
+
f
(
this
.
getUTCMonth
()
+
1
)
+
"-"
+
f
(
this
.
getUTCDate
())
+
"T"
+
f
(
this
.
getUTCHours
())
+
":"
+
f
(
this
.
getUTCMinutes
())
+
":"
+
f
(
this
.
getUTCSeconds
())
+
"Z"
:
null
},
Boolean
.
prototype
.
toJSON
=
this_value
,
Number
.
prototype
.
toJSON
=
this_value
,
String
.
prototype
.
toJSON
=
this_value
);
var
gap
,
indent
,
meta
,
rep
;
"function"
!=
typeof
JSON
.
stringify
&&
(
meta
=
{
"\b"
:
"\\b"
,
" "
:
"\\t"
,
"\n"
:
"\\n"
,
"\f"
:
"\\f"
,
"\r"
:
"\\r"
,
'"'
:
'\\"'
,
"\\"
:
"\\\\"
},
JSON
.
stringify
=
function
(
e
,
t
,
n
){
var
r
;
if
(
gap
=
""
,
indent
=
""
,
"number"
==
typeof
n
)
for
(
r
=
0
;
n
>
r
;
r
+=
1
)
indent
+=
" "
;
else
"string"
==
typeof
n
&&
(
indent
=
n
);
if
(
rep
=
t
,
t
&&
"function"
!=
typeof
t
&&
(
"object"
!=
typeof
t
||
"number"
!=
typeof
t
.
length
))
throw
new
Error
(
"JSON.stringify"
);
return
str
(
""
,{
""
:
e
})}),
"function"
!=
typeof
JSON
.
parse
&&
(
JSON
.
parse
=
function
(
text
,
reviver
){
function
walk
(
e
,
t
){
var
n
,
r
,
o
=
e
[
t
];
if
(
o
&&
"object"
==
typeof
o
)
for
(
n
in
o
)
Object
.
prototype
.
hasOwnProperty
.
call
(
o
,
n
)
&&
(
r
=
walk
(
o
,
n
),
void
0
!==
r
?
o
[
n
]
=
r
:
delete
o
[
n
]);
return
reviver
.
call
(
e
,
t
,
o
)}
var
j
;
if
(
text
=
String
(
text
),
rx_dangerous
.
lastIndex
=
0
,
rx_dangerous
.
test
(
text
)
&&
(
text
=
text
.
replace
(
rx_dangerous
,
function
(
e
){
return
"\\u"
+
(
"0000"
+
e
.
charCodeAt
(
0
).
toString
(
16
)).
slice
(
-
4
)})),
rx_one
.
test
(
text
.
replace
(
rx_two
,
"@"
).
replace
(
rx_three
,
"]"
).
replace
(
rx_four
,
""
)))
return
j
=
eval
(
"("
+
text
+
")"
),
"function"
==
typeof
reviver
?
walk
({
""
:
j
},
""
):
j
;
throw
new
SyntaxError
(
"JSON.parse"
)})}()}(),
yas_jssdk_101363_src_util
=
function
(
e
){{
var
t
=
yas_jssdk_101363_src_config
;
t
.
yaPath
,
t
.
yasDomain
}
return
e
.
flashChecker
=
function
(){
var
e
=
0
,
t
=
0
,
n
=
0
,
r
=
null
;
return
n
?(
r
=
new
ActiveXObject
(
"ShockwaveFlash.ShockwaveFlash"
),
r
&&
(
e
=
1
,
t
=
r
.
GetVariable
(
"$version"
))):
navigator
.
plugins
&&
navigator
.
plugins
.
length
>
0
&&
(
r
=
navigator
.
plugins
[
"Shockwave Flash"
],
r
&&
(
e
=
1
,
t
=
r
.
description
.
replace
(
"Shockwave Flash"
,
""
))),{
f
:
e
,
v
:
t
}},
e
.
Hash
=
function
(
e
){
var
t
,
n
=
1
,
r
=
0
;
if
(
e
)
for
(
n
=
0
,
t
=
e
.
length
-
1
;
t
>=
0
;
t
--
)
r
=
e
.
charCodeAt
(
t
),
n
=
(
n
<<
6
&
268435455
)
+
r
+
(
r
<<
14
),
r
=
266338304
&
n
,
0
!==
r
&&
(
n
^=
r
>>
21
);
return
n
},
e
.
Random
=
function
(){
return
Math
.
round
(
2147483647
*
Math
.
random
())},
e
.
hashClientInfo
=
function
(){
var
t
=
window
.
navigator
,
n
=
window
.
history
.
length
,
r
=
[
t
.
appName
,
t
.
version
,
t
.
language
,
t
.
platform
,
t
.
userAgent
,
t
.
javaEnabled
(),
window
.
screen
,
window
.
screen
.
colorDepth
,
window
.
document
.
cookie
?
window
.
document
.
cookie
:
""
,
window
.
document
.
referrer
?
window
.
document
.
referrer
:
""
];
t
=
r
.
join
(
""
);
for
(
var
o
=
t
.
length
;
n
>
0
;)
t
+=
n
--^
o
++
;
return
e
.
Hash
(
t
)},
e
.
merge
=
function
(
e
,
t
){
var
n
=
{};
for
(
var
r
in
e
)
n
[
r
]
=
e
[
r
];
for
(
var
o
in
t
)
n
[
o
]
=
t
[
o
];
return
n
},
e
.
genParam
=
function
(
e
){
var
t
=
[];
for
(
var
n
in
e
)
t
.
push
(
n
+
"="
+
e
[
n
]);
return
t
.
join
(
"&"
)},
e
.
trim
=
function
(
e
){
if
(
String
.
prototype
.
trim
)
return
null
===
e
?
""
:
String
.
prototype
.
trim
.
call
(
e
);
var
t
=
/^
\s
+/
,
n
=
/
\s
+$/
,
r
=
""
;
return
e
?(
r
=
e
.
toString
().
replace
(
t
,
""
),
r
=
r
.
replace
(
n
,
""
)):
void
0
},
e
.
getGeo
=
function
(
e
){
function
t
(
t
){
var
n
=
t
.
coords
.
longitude
,
r
=
t
.
coords
.
latitude
;
e
(
r
,
n
)}
function
n
(){
e
(
!
1
)}
if
(
window
.
navigator
.
geolocation
){
var
r
=
{
enableHighAccuracy
:
!
0
};
window
.
navigator
.
geolocation
.
getCurrentPosition
(
t
,
n
,
r
)}
else
e
(
!
1
)},
e
}({}),
yas_jssdk_101363_src_cookie
=
function
(
e
){
var
t
=
yas_jssdk_101363_src_util
;
return
e
=
function
(
e
,
n
,
r
){
if
(
"undefined"
==
typeof
n
){
var
o
=
null
;
if
(
document
.
cookie
)
for
(
var
i
=
document
.
cookie
.
split
(
";"
),
a
=
0
;
a
<
i
.
length
;
a
++
){
var
u
=
t
.
trim
(
i
[
a
]);
if
(
u
.
substring
(
0
,
e
.
length
+
1
)
==
e
+
"="
){
o
=
decodeURIComponent
(
u
.
substring
(
e
.
length
+
1
));
break
}}
return
o
}
r
=
r
||
{},
null
===
n
&&
(
n
=
""
,
r
.
expires
=-
1
);
var
s
=
""
;
if
(
r
.
expires
&&
(
"number"
==
typeof
r
.
expires
||
r
.
expires
.
toUTCString
)){
var
l
;
"number"
==
typeof
r
.
expires
?(
l
=
new
Date
,
l
.
setTime
(
l
.
getTime
()
+
24
*
r
.
expires
*
60
*
60
*
1
e3
)):
l
=
r
.
expires
,
s
=
"; expires="
+
l
.
toUTCString
()}
var
c
=
r
.
path
?
"; path="
+
r
.
path
:
""
,
f
=
r
.
domain
?
"; domain="
+
r
.
domain
:
""
,
d
=
r
.
secure
?
"; secure"
:
""
;
document
.
cookie
=
[
e
,
"="
,
encodeURIComponent
(
n
),
s
,
c
,
f
,
d
].
join
(
""
)}}(),
yas_jssdk_101363_src_ya
=
function
(
e
){
function
t
(
e
){
var
t
=
a
.
merge
(
p
,
h
);
t
=
a
.
merge
(
t
,
y
);
var
n
=
r
();
n
&&
(
t
=
a
.
merge
(
t
,
n
),
u
(
"_yasmp"
,
null
,{
path
:
"/"
,
domain
:
c
.
yasDomain
,
expires
:
73
e3
}));
var
o
=
u
(
"_yascustjson"
);
if
(
o
){
var
i
=
JSON
.
parse
(
o
);
t
=
a
.
merge
(
t
,
i
),
u
(
"_yascustjson"
,
null
,{
path
:
"/"
,
domain
:
c
.
yasDomain
,
expires
:
73
e3
})}
var
l
=
a
.
genParam
(
t
);
e
=
e
?
e
:
function
(){},
s
.
imgSend
(
l
,
e
);
var
f
=
u
(
"_yasev"
);
f
&&
s
.
imgSend
(
f
,
function
(){
u
(
"_yasev"
,
null
,{
path
:
"/"
,
domain
:
c
.
yasDomain
,
expires
:
73
e3
})})}
function
n
(){
var
e
=
u
(
"_yasvd"
);
return
e
?{
cid
:
e
,
isNew
:
"N"
}:(
e
=
a
.
Random
()
^
2147483647
&
a
.
hashClientInfo
(),
u
(
"_yasvd"
,
e
,{
path
:
"/"
,
domain
:
d
,
expires
:
73
e3
}),{
cid
:
e
,
isNew
:
"Y"
})}
function
r
(){
var
e
=
u
(
"_yasmp"
);
if
(
e
){
var
t
=
e
.
split
(
","
);
if
(
3
===
t
.
length
)
return
{
x
:
t
[
0
],
y
:
t
[
1
],
et
:
t
[
2
]};
if
(
4
===
t
.
length
)
return
{
x
:
t
[
0
],
y
:
t
[
1
],
et
:
t
[
2
],
ix
:
t
[
3
]}}
return
null
}
function
o
(
e
){
var
t
=
0
,
n
=
0
;
return
e
.
pageX
||
e
.
pageY
?(
t
=
e
.
pageX
,
n
=
e
.
pageY
):(
e
.
clientX
||
e
.
clientY
)
&&
(
t
=
e
.
clientX
+
document
.
body
.
scrollLeft
+
document
.
documentElement
.
scrollLeft
,
n
=
e
.
clientY
+
document
.
body
.
scrollTop
+
document
.
documentElement
.
scrollTop
),
t
-=
window
.
screen
.
width
/
2
,
n
=
window
.
screen
.
height
/
2
-
n
,{
x
:
t
,
y
:
n
}}
function
i
(
e
,
t
,
n
,
r
,
o
){
var
i
=
u
(
"_yasev"
);
i
?
i
+=
"&"
:
i
=
""
,
u
(
"_yasev"
,
i
+
"vd="
+
h
.
vd
+
"&t="
+
e
+
"&i="
+
t
+
"&l="
+
r
+
"&v="
+
o
,{
path
:
"/"
,
domain
:
d
,
expires
:
73
e3
}),
w
++
}
var
a
=
yas_jssdk_101363_src_util
,
u
=
yas_jssdk_101363_src_cookie
,
s
=
yas_jssdk_101363_src_cross
,
l
=
yas_jssdk_101363_src_event
,
c
=
yas_jssdk_101363_src_config
,
f
=
yohosizzle_222_pre_sizzle
,
d
=
(
c
.
version
,
c
.
yaPath
,
c
.
yasDomain
),
p
=
{
h
:
document
.
domain
,
p
:
window
.
location
.
port
,
u
:
window
.
location
.
pathname
,
ft
:
0
,
fst
:
0
,
sv
:
""
,
ab
:
u
(
"ab_5"
)
||
""
},
g
=
n
(),
h
=
{
ak
:
""
,
cd
:
g
.
cid
,
vd
:(
new
Date
).
getTime
()
+
g
.
cid
,
ud
:
""
,
rf
:
document
.
referrer
,
ckf
:
g
.
isNew
},
m
=
a
.
flashChecker
(),
y
=
{
sr
:
window
.
screen
.
width
+
"x"
+
window
.
screen
.
height
,
wr
:
window
.
screen
.
availWidth
+
"x"
+
window
.
screen
.
availHeight
,
sd
:
window
.
screen
.
colorDepth
,
ln
:
window
.
navigator
.
language
?
window
.
navigator
.
language
:
window
.
navigator
.
browserLanguage
,
sy
:
window
.
navigator
.
platform
,
ce
:
window
.
navigator
.
cookieEnabled
,
fv
:
m
.
f
?
m
.
v
:
0
},
v
=
function
(
e
,
n
,
r
,
i
,
s
,
g
){
if
(
h
.
ak
=
r
,
p
.
sv
=
n
,
h
.
ud
=
i
?
i
:
""
,
u
(
"_yasgeo"
)){
var
m
=
u
(
"_yasgeo"
).
split
(
","
);
h
.
la
=
m
[
0
],
h
.
lo
=
m
[
1
],
u
(
"_yasgeo"
,
null
,{
path
:
"/"
,
domain
:
c
.
yasDomain
,
expires
:
73
e3
})}
var
y
=
(
new
Date
).
getTime
(),
v
=
null
,
w
=!
1
;
p
.
ft
=
y
-
e
,
l
.
addEventHandler
(
window
,
"load"
,
function
(){
var
n
=
(
new
Date
).
getTime
();
p
.
fst
=
n
-
e
,
l
.
removeEventHandler
(
window
,
"load"
,
arguments
.
callee
),
window
.
clearTimeout
(
v
),
w
||
t
()}),
v
=
window
.
setTimeout
(
function
(){
p
.
fst
=
0
,
p
.
fse
=
">3s"
,
w
=!
0
,
t
()},
3
e3
),
s
&&
a
.
getGeo
(
function
(
e
,
t
){
e
&&
u
(
"_yasgeo"
,
e
+
","
+
t
,{
path
:
"/"
,
domain
:
d
,
expires
:
73
e3
})});
var
_
=
null
;
if
(
g
&&
(
"[object String]"
===
Object
.
prototype
.
toString
.
call
(
g
)?
f
&&
(
_
=
f
(
g
)):
_
=
g
),
_
)
for
(
var
x
=
0
,
b
=
_
.
length
;
b
>
x
;
x
++
)
!
function
(
e
){
l
.
addEventHandler
(
_
[
e
],
"click"
,
function
(
t
){
ix
=
e
+
1
;
var
n
=
o
(
t
);
u
(
"_yasmp"
,
n
.
x
+
","
+
n
.
y
+
","
+
t
.
type
+
","
+
(
e
+
1
),{
path
:
"/"
,
domain
:
d
,
expires
:
73
e3
})})}(
x
);
else
l
.
addEventHandler
(
document
,
"click"
,
function
(
e
){
e
=
e
||
window
.
event
;
var
t
=
e
.
target
||
e
.
srcElement
;
if
(
t
&&
(
"A"
===
t
.
nodeName
||
"IMG"
===
t
.
nodeName
&&
"A"
===
t
.
parentNode
.
nodeName
)){
var
n
=
o
(
e
);
u
(
"_yasmp"
,
n
.
x
+
","
+
n
.
y
+
","
+
e
.
type
,{
path
:
"/"
,
domain
:
d
,
expires
:
73
e3
})}
ix
=
0
})},
w
=
0
;
return
v
.
add
=
function
(
e
,
t
,
n
,
r
,
o
){
w
>
3
?
s
.
imgSend
(
u
(
"_yasev"
),
function
(){
u
(
"_yasev"
,
null
,{
path
:
"/"
,
domain
:
c
.
yasDomain
,
expires
:
73
e3
}),
w
=
0
,
i
(
e
,
t
,
n
,
r
,
o
)}):
i
(
e
,
t
,
n
,
r
,
o
)},
v
.
sendMouseEvent
=
function
(
e
,
t
){
e
=
e
||
window
.
event
;
var
n
=
o
(
e
);
if
(
t
){
var
r
=
{
x
:
n
.
x
,
y
:
n
.
y
,
et
:
e
.
type
},
i
=
a
.
merge
(
p
,
h
);
i
=
a
.
merge
(
i
,
y
),
i
=
a
.
merge
(
i
,
r
);
var
l
=
a
.
genParam
(
i
);
s
.
imgSend
(
l
,
function
(){})}
else
u
(
"_yasmp"
,
n
.
x
+
","
+
n
.
y
+
","
+
e
.
type
,{
path
:
"/"
,
domain
:
d
,
expires
:
73
e3
})},
v
.
sendCustomInfo
=
function
(
e
,
t
){
if
(
t
){
var
n
=
a
.
merge
(
p
,
h
);
n
=
a
.
merge
(
n
,
y
),
n
=
a
.
merge
(
n
,
e
);
var
r
=
a
.
genParam
(
n
);
s
.
imgSend
(
r
,
function
(){})}
else
{
var
o
=
JSON
.
stringify
(
e
);
u
(
"_yascustjson"
,
o
,{
path
:
"/"
,
domain
:
d
,
expires
:
73
e3
})}},
e
=
v
}(),
yas_jssdk_101363_yas
=
function
(
e
){
var
t
=
yas_jssdk_101363_src_ya
;
if
(
window
.
YohoAcquisitionObject
){
var
n
=
window
.
YohoAcquisitionObject
;
window
[
n
].
p
&&
(
t
.
apply
(
this
,
window
[
n
].
p
),
window
[
n
]
=
t
)}
return
e
=
t
}()}();
\ No newline at end of file
...
...
template/m.yohobuy.com/actions/cart/index/index.phtml
View file @
5b89791
{
{>
layout/header
}
}
<div
id=
"mainCart"
class=
"shopping-cart-page yoho-page"
>
{
{#
shoppingCart
}
}
{
{#if
cartNav
}
}
{
{#
shoppingCart
}
}
{
{#if
isEmptyCart
}
}
<div
class=
"shopping-cart-zero yoho-page"
>
<div
class=
"cart-zero"
>
<i
class=
"iconfont"
>
62
c</i>
<p>您的购物车暂无商品</p>
<a
href=
""
>随便逛逛</a>
</div>
{
{>
product/recommend-for-you
}
}
</div>
{
{^
}
}
<div
id=
"mainCart"
class=
"shopping-cart-page yoho-page"
>
{
{#if
cartNav
}
}
<ul
class=
"cart-nav clearfix"
>
<li
class=
"active"
>
<span>
普通商品(
{
{commonGoodsCount
}
})
</span>
<span>
普通商品(
{
{commonGoodsCount
}
})
</span>
</li>
<li>
<span>
预售商品(
{
{presellGoodsCount
}
})
</span>
<span>
预售商品(
{
{presellGoodsCount
}
})
</span>
</li>
</ul>
{
{/if
}
}
{
{/if
}
}
{
{#if
showLoginInfo
}
}
{
{#if
showLoginInfo
}
}
<p
class=
"login-info"
>
<span
class=
"iconfont"
>
628
;</span>
请您先
<a
class=
"btn btn-login"
>登录</a>
可以同步电脑和手机中的商品
</p>
{
{/if
}
}
{
{/if
}
}
{
{#
commonCart
}
}
{
{#
commonCart
}
}
<div
class=
"cart-content common"
>
{
{>
cart/cart-content
}
}
</div>
{
{/
commonCart
}
}
{
{/
commonCart
}
}
{
{#
preSellCart
}
}
{
{#
preSellCart
}
}
<div
class=
"cart-content presell hide"
>
<p
class=
"presell-info"
>
<span
class=
"iconfont"
>
61
a;</span>
...
...
@@ -40,17 +51,14 @@
</p>
{
{>
cart/cart-content
}
}
</div>
{
{/
preSellCart
}
}
{
{/
shoppingCart
}
}
</div>
<div
class=
"shopping-cart-zero yoho-page hide"
>
<div
class=
"cart-zero"
>
<i
class=
"iconfont"
>
62
c</i>
<p>您的购物车暂无商品</p>
<a
href=
""
>随便逛逛</a>
</div>
{
{>
product/recommend-for-you
}
}
</div>
{
{/
preSellCart
}
}
</div>
{
{/if
}
}
{
{/
shoppingCart
}
}
{
{>
cart/chose-panel
}
}
{
{>
layout/footer
}
}
...
...
yohobuy/m.yohobuy.com/application/modules/Cart/controllers/Index.php
View file @
5b89791
...
...
@@ -45,7 +45,7 @@ class IndexController extends AbstractAction
'shoppingCartPage'
=>
true
,
'shoppingCart'
=>
CartModel
::
getCartData
(
$uid
,
$shoppingKey
)
);
print_r
(
$data
);
// 渲染模板
$this
->
_view
->
display
(
'index'
,
$data
);
}
...
...
Please
register
or
login
to post a comment