diff --git a/API-html/ITEAD-logo.JPG b/API-html/ITEAD-logo.JPG new file mode 100644 index 00000000..b13d5c0 Binary files /dev/null and b/API-html/ITEAD-logo.JPG differ diff --git a/API-html/_comp_button_8ino-example.html b/API-html/_comp_button_8ino-example.html new file mode 100644 index 00000000..e9a89be --- /dev/null +++ b/API-html/_comp_button_8ino-example.html @@ -0,0 +1,103 @@ + + + + + + +API: CompButton.ino + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + +
+
+
+
CompButton.ino
+
+
+
Show how to use API of class NexButton.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ +
+
#include "NexButton.h"
+
+
NexButton b0 = NexButton(0, 1, "b0");
+
char buffer[100] = {0};
+
+
NexTouch *nex_listen_list[] =
+
{
+
&b0,
+
NULL
+
};
+
+
void b0PopCallback(void *ptr)
+
{
+
uint16_t len;
+
uint16_t number;
+
NexButton *btn = (NexButton *)ptr;
+
dbSerialPrintln("b0PopCallback");
+
dbSerialPrint("ptr=");
+
dbSerialPrintln((uint32_t)ptr);
+
memset(buffer, 0, sizeof(buffer));
+
btn->getText(buffer, sizeof(buffer));
+
+
number = atoi(buffer);
+
number += 1;
+
+
memset(buffer, 0, sizeof(buffer));
+
itoa(number, buffer, 10);
+
+
btn->setText(buffer);
+
}
+
+
void setup(void)
+
{
+
dbSerialBegin(9600);
+ +
b0.attachPop(b0PopCallback, &b0);
+
dbSerialPrintln("setup done");
+
}
+
+
void loop(void)
+
{
+
nexLoop(nex_listen_list);
+
}
+
+ + + + diff --git a/API-html/_comp_button_8ino_source.html b/API-html/_comp_button_8ino_source.html new file mode 100644 index 00000000..99357d8 --- /dev/null +++ b/API-html/_comp_button_8ino_source.html @@ -0,0 +1,116 @@ + + + + + + +API: examples/CompButton/CompButton.ino Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + + +
+
+
+
CompButton.ino
+
+
+
1 
+
16 #include "NexButton.h"
+
17 
+
18 NexButton b0 = NexButton(0, 1, "b0");
+
19 char buffer[100] = {0};
+
20 
+
21 NexTouch *nex_listen_list[] =
+
22 {
+
23  &b0,
+
24  NULL
+
25 };
+
26 
+
27 void b0PopCallback(void *ptr)
+
28 {
+
29  uint16_t len;
+
30  uint16_t number;
+
31  NexButton *btn = (NexButton *)ptr;
+
32  dbSerialPrintln("b0PopCallback");
+
33  dbSerialPrint("ptr=");
+
34  dbSerialPrintln((uint32_t)ptr);
+
35  memset(buffer, 0, sizeof(buffer));
+
36  btn->getText(buffer, sizeof(buffer));
+
37 
+
38  number = atoi(buffer);
+
39  number += 1;
+
40 
+
41  memset(buffer, 0, sizeof(buffer));
+
42  itoa(number, buffer, 10);
+
43 
+
44  btn->setText(buffer);
+
45 }
+
46 
+
47 void setup(void)
+
48 {
+
49  dbSerialBegin(9600);
+
50  nexInit();
+
51  b0.attachPop(b0PopCallback, &b0);
+
52  dbSerialPrintln("setup done");
+
53 }
+
54 
+
55 void loop(void)
+
56 {
+
57  nexLoop(nex_listen_list);
+
58 }
+
uint16_t getText(char *buffer, uint16_t len)
Get text value from button component.
Definition: NexButton.cpp:35
+
bool nexInit(void)
Init Nextion's baudrate,page id.
Definition: NexTouch.cpp:404
+
API of NexButton.
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Register button pop callback function.
Definition: NexButton.cpp:70
+
NexButton,subclass of NexTouch,provides simple methods to control button component.
Definition: NexButton.h:25
+
bool nexLoop(NexTouch **nex_listen_list)
Call mainEventLoop,watting for Nextion's touch event.
Definition: NexTouch.cpp:420
+
bool setText(const char *buffer)
Set text value of button component.
Definition: NexButton.cpp:53
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
+ + + + diff --git a/API-html/_comp_crop_8ino-example.html b/API-html/_comp_crop_8ino-example.html new file mode 100644 index 00000000..306206b --- /dev/null +++ b/API-html/_comp_crop_8ino-example.html @@ -0,0 +1,97 @@ + + + + + + +API: CompCrop.ino + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + +
+
+
+
CompCrop.ino
+
+
+
Show how to use API of class NexCrop.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ +
+
#include "NexCrop.h"
+
+
NexCrop q0 = NexCrop(0, 1, "q0");
+
+
NexTouch *nex_listen_list[] =
+
{
+
&q0,
+
NULL
+
};
+
+
void q0PopCallback(void *ptr)
+
{
+
uint32_t number = 0;
+
dbSerialPrintln("q0PopCallback");
+
+
q0.getPic(&number);
+
+
number += 1;
+
number %= 2;
+
+
q0.setPic(number);
+
}
+
+
+
void setup(void)
+
{
+
dbSerialBegin(9600);
+ +
q0.attachPop(q0PopCallback);
+
dbSerialPrintln("setup done");
+
}
+
+
void loop(void)
+
{
+
nexLoop(nex_listen_list);
+
}
+
+
+ + + + diff --git a/API-html/_comp_crop_8ino_source.html b/API-html/_comp_crop_8ino_source.html new file mode 100644 index 00000000..2bcc259 --- /dev/null +++ b/API-html/_comp_crop_8ino_source.html @@ -0,0 +1,108 @@ + + + + + + +API: examples/CompCrop/CompCrop.ino Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + + +
+
+
+
CompCrop.ino
+
+
+
1 
+
16 #include "NexCrop.h"
+
17 
+
18 NexCrop q0 = NexCrop(0, 1, "q0");
+
19 
+
20 NexTouch *nex_listen_list[] =
+
21 {
+
22  &q0,
+
23  NULL
+
24 };
+
25 
+
26 void q0PopCallback(void *ptr)
+
27 {
+
28  uint32_t number = 0;
+
29  dbSerialPrintln("q0PopCallback");
+
30 
+
31  q0.getPic(&number);
+
32 
+
33  number += 1;
+
34  number %= 2;
+
35 
+
36  q0.setPic(number);
+
37 }
+
38 
+
39 
+
40 void setup(void)
+
41 {
+
42  dbSerialBegin(9600);
+
43  nexInit();
+
44  q0.attachPop(q0PopCallback);
+
45  dbSerialPrintln("setup done");
+
46 }
+
47 
+
48 void loop(void)
+
49 {
+
50  nexLoop(nex_listen_list);
+
51 }
+
52 
+
bool nexInit(void)
Init Nextion's baudrate,page id.
Definition: NexTouch.cpp:404
+
bool nexLoop(NexTouch **nex_listen_list)
Call mainEventLoop,watting for Nextion's touch event.
Definition: NexTouch.cpp:420
+
API of NexCrop.
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Register crop pop callback function.
Definition: NexCrop.cpp:72
+
NexCrop,subclass of NexTouch,provides simple methods to control crop component.
Definition: NexCrop.h:25
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
+ + + + diff --git a/API-html/_comp_hotspot_8ino-example.html b/API-html/_comp_hotspot_8ino-example.html new file mode 100644 index 00000000..4693d87 --- /dev/null +++ b/API-html/_comp_hotspot_8ino-example.html @@ -0,0 +1,115 @@ + + + + + + +API: CompHotspot.ino + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + +
+
+
+
CompHotspot.ino
+
+
+
Show how to use API of class NexHotspot.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ +
+
#include "NexHotspot.h"
+
+
NexHotspot hot0 = NexHotspot(0, 1, "hot0");
+
NexHotspot hot1 = NexHotspot(0, 2, "hot1");
+
+
NexTouch *nex_listen_list[] =
+
{
+
&hot0,
+
&hot1,
+
NULL
+
};
+
+
void hot0PushCallback(void *ptr)
+
{
+
dbSerialPrintln("hot0PushCallback");
+
dbSerialPrint("ptr=");
+
dbSerialPrintln((uint32_t)ptr);
+
}
+
+
void hot1PushCallback(void *ptr)
+
{
+
dbSerialPrintln("hot1PushCallback");
+
dbSerialPrint("ptr=");
+
dbSerialPrintln((uint32_t)ptr);
+
}
+
+
void hot0PopCallback(void *ptr)
+
{
+
dbSerialPrintln("hot0PopCallback");
+
dbSerialPrint("ptr=");
+
dbSerialPrintln((uint32_t)ptr);
+
}
+
+
void hot1PopCallback(void *ptr)
+
{
+
dbSerialPrintln("hot1PopCallback");
+
dbSerialPrint("ptr=");
+
dbSerialPrintln((uint32_t)ptr);
+
}
+
+
void setup(void)
+
{
+
dbSerialBegin(9600);
+ +
hot0.attachPush(hot0PushCallback, &hot0);
+
hot0.attachPop(hot0PopCallback, &hot0);
+
hot1.attachPush(hot1PushCallback, &hot1);
+
hot1.attachPop(hot1PopCallback, &hot1);
+
dbSerialPrintln("setup done");
+
}
+
+
void loop(void)
+
{
+
nexLoop(nex_listen_list);
+
}
+
+ + + + diff --git a/API-html/_comp_hotspot_8ino_source.html b/API-html/_comp_hotspot_8ino_source.html new file mode 100644 index 00000000..adf70a5 --- /dev/null +++ b/API-html/_comp_hotspot_8ino_source.html @@ -0,0 +1,127 @@ + + + + + + +API: examples/CompHotspot/CompHotspot.ino Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + + +
+
+
+
CompHotspot.ino
+
+
+
1 
+
16 #include "NexHotspot.h"
+
17 
+
18 NexHotspot hot0 = NexHotspot(0, 1, "hot0");
+
19 NexHotspot hot1 = NexHotspot(0, 2, "hot1");
+
20 
+
21 NexTouch *nex_listen_list[] =
+
22 {
+
23  &hot0,
+
24  &hot1,
+
25  NULL
+
26 };
+
27 
+
28 void hot0PushCallback(void *ptr)
+
29 {
+
30  dbSerialPrintln("hot0PushCallback");
+
31  dbSerialPrint("ptr=");
+
32  dbSerialPrintln((uint32_t)ptr);
+
33 }
+
34 
+
35 void hot1PushCallback(void *ptr)
+
36 {
+
37  dbSerialPrintln("hot1PushCallback");
+
38  dbSerialPrint("ptr=");
+
39  dbSerialPrintln((uint32_t)ptr);
+
40 }
+
41 
+
42 void hot0PopCallback(void *ptr)
+
43 {
+
44  dbSerialPrintln("hot0PopCallback");
+
45  dbSerialPrint("ptr=");
+
46  dbSerialPrintln((uint32_t)ptr);
+
47 }
+
48 
+
49 void hot1PopCallback(void *ptr)
+
50 {
+
51  dbSerialPrintln("hot1PopCallback");
+
52  dbSerialPrint("ptr=");
+
53  dbSerialPrintln((uint32_t)ptr);
+
54 }
+
55 
+
56 void setup(void)
+
57 {
+
58  dbSerialBegin(9600);
+
59  nexInit();
+
60  hot0.attachPush(hot0PushCallback, &hot0);
+
61  hot0.attachPop(hot0PopCallback, &hot0);
+
62  hot1.attachPush(hot1PushCallback, &hot1);
+
63  hot1.attachPop(hot1PopCallback, &hot1);
+
64  dbSerialPrintln("setup done");
+
65 }
+
66 
+
67 void loop(void)
+
68 {
+
69  nexLoop(nex_listen_list);
+
70 }
+
bool nexInit(void)
Init Nextion's baudrate,page id.
Definition: NexTouch.cpp:404
+
bool nexLoop(NexTouch **nex_listen_list)
Call mainEventLoop,watting for Nextion's touch event.
Definition: NexTouch.cpp:420
+
API of NexHotspot.
+
NexHotspot,subclass of NexTouch,provides simple methods to control hotspot component.
Definition: NexHotspot.h:25
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Register hotspot pop callback function.
Definition: NexHotspot.cpp:55
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
void attachPush(NexTouchEventCb push, void *ptr=NULL)
Register hotspot push callback function.
Definition: NexHotspot.cpp:35
+
+ + + + diff --git a/API-html/_comp_page_8ino-example.html b/API-html/_comp_page_8ino-example.html new file mode 100644 index 00000000..6ecc42a --- /dev/null +++ b/API-html/_comp_page_8ino-example.html @@ -0,0 +1,118 @@ + + + + + + +API: CompPage.ino + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + +
+
+
+
CompPage.ino
+
+
+
Show how to use API of class NexPage.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ +
+
#include "NexPage.h"
+
+
NexPage page0 = NexPage(0, 0, "page0");
+
NexPage page1 = NexPage(1, 0, "page1");
+
NexPage page2 = NexPage(2, 0, "page2");
+
NexPage page3 = NexPage(3, 0, "page3");
+
+
NexTouch *nex_listen_list[] =
+
{
+
&page0,
+
&page1,
+
&page2,
+
&page3,
+
NULL
+
};
+
+
void page0PopCallback(void *ptr)
+
{
+
dbSerialPrintln("page0PopCallback");
+
page1.show();
+
}
+
+
void page1PopCallback(void *ptr)
+
{
+
dbSerialPrintln("page1PopCallback");
+
page2.show();
+
}
+
+
void page2PopCallback(void *ptr)
+
{
+
dbSerialPrintln("page2PopCallback");
+
page3.show();
+
}
+
+
void page3PopCallback(void *ptr)
+
{
+
dbSerialPrintln("page3PopCallback");
+
page0.show();
+
}
+
+
void setup(void)
+
{
+
dbSerialBegin(9600);
+ +
dbSerialPrintln("setup begin");
+
+
page0.attachPop(page0PopCallback);
+
page1.attachPop(page1PopCallback);
+
page2.attachPop(page2PopCallback);
+
page3.attachPop(page3PopCallback);
+
+
dbSerialPrintln("setup end");
+
}
+
+
void loop(void)
+
{
+
nexLoop(nex_listen_list);
+
}
+
+ + + + diff --git a/API-html/_comp_page_8ino_source.html b/API-html/_comp_page_8ino_source.html new file mode 100644 index 00000000..d16d09e --- /dev/null +++ b/API-html/_comp_page_8ino_source.html @@ -0,0 +1,130 @@ + + + + + + +API: examples/CompPage/CompPage.ino Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + + +
+
+
+
CompPage.ino
+
+
+
1 
+
16 #include "NexPage.h"
+
17 
+
18 NexPage page0 = NexPage(0, 0, "page0");
+
19 NexPage page1 = NexPage(1, 0, "page1");
+
20 NexPage page2 = NexPage(2, 0, "page2");
+
21 NexPage page3 = NexPage(3, 0, "page3");
+
22 
+
23 NexTouch *nex_listen_list[] =
+
24 {
+
25  &page0,
+
26  &page1,
+
27  &page2,
+
28  &page3,
+
29  NULL
+
30 };
+
31 
+
32 void page0PopCallback(void *ptr)
+
33 {
+
34  dbSerialPrintln("page0PopCallback");
+
35  page1.show();
+
36 }
+
37 
+
38 void page1PopCallback(void *ptr)
+
39 {
+
40  dbSerialPrintln("page1PopCallback");
+
41  page2.show();
+
42 }
+
43 
+
44 void page2PopCallback(void *ptr)
+
45 {
+
46  dbSerialPrintln("page2PopCallback");
+
47  page3.show();
+
48 }
+
49 
+
50 void page3PopCallback(void *ptr)
+
51 {
+
52  dbSerialPrintln("page3PopCallback");
+
53  page0.show();
+
54 }
+
55 
+
56 void setup(void)
+
57 {
+
58  dbSerialBegin(9600);
+
59  nexInit();
+
60  dbSerialPrintln("setup begin");
+
61 
+
62  page0.attachPop(page0PopCallback);
+
63  page1.attachPop(page1PopCallback);
+
64  page2.attachPop(page2PopCallback);
+
65  page3.attachPop(page3PopCallback);
+
66 
+
67  dbSerialPrintln("setup end");
+
68 }
+
69 
+
70 void loop(void)
+
71 {
+
72  nexLoop(nex_listen_list);
+
73 }
+
bool show(void)
Change page.
Definition: NexPage.cpp:33
+
bool nexInit(void)
Init Nextion's baudrate,page id.
Definition: NexTouch.cpp:404
+
API of NexPage.
+
bool nexLoop(NexTouch **nex_listen_list)
Call mainEventLoop,watting for Nextion's touch event.
Definition: NexTouch.cpp:420
+
NexPage,subclass of NexTouch,provides simple methods to control page component.
Definition: NexPage.h:25
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Register page pop callback function.
Definition: NexPage.cpp:55
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
+ + + + diff --git a/API-html/_comp_picture_8ino-example.html b/API-html/_comp_picture_8ino-example.html new file mode 100644 index 00000000..14d094b --- /dev/null +++ b/API-html/_comp_picture_8ino-example.html @@ -0,0 +1,103 @@ + + + + + + +API: CompPicture.ino + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + +
+
+
+
CompPicture.ino
+
+
+
Show how to use API of class NexPicture.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ +
+
#include "NexPicture.h"
+
+
NexPicture p0 = NexPicture(0, 1, "p0");
+
+
NexTouch *nex_listen_list[] =
+
{
+
&p0,
+
NULL
+
};
+
+
void p0PopCallback(void *ptr)
+
{
+
uint32_t number = 0;
+
dbSerialPrintln("p0PopCallback");
+
+
p0.getPic(&number);
+
+
if (number == 1)
+
{
+
number = 2;
+
}
+
else
+
{
+
number = 1;
+
}
+
+
p0.setPic(number);
+
}
+
+
+
void setup(void)
+
{
+
dbSerialBegin(9600);
+ +
p0.attachPop(p0PopCallback);
+
dbSerialPrintln("setup done");
+
}
+
+
void loop(void)
+
{
+
nexLoop(nex_listen_list);
+
}
+
+
+ + + + diff --git a/API-html/_comp_picture_8ino_source.html b/API-html/_comp_picture_8ino_source.html new file mode 100644 index 00000000..e23a1d0 --- /dev/null +++ b/API-html/_comp_picture_8ino_source.html @@ -0,0 +1,116 @@ + + + + + + +API: examples/CompPicture/CompPicture.ino Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + + +
+
+
+
CompPicture.ino
+
+
+
1 
+
16 #include "NexPicture.h"
+
17 
+
18 NexPicture p0 = NexPicture(0, 1, "p0");
+
19 
+
20 NexTouch *nex_listen_list[] =
+
21 {
+
22  &p0,
+
23  NULL
+
24 };
+
25 
+
26 void p0PopCallback(void *ptr)
+
27 {
+
28  uint32_t number = 0;
+
29  dbSerialPrintln("p0PopCallback");
+
30 
+
31  p0.getPic(&number);
+
32 
+
33  if (number == 1)
+
34  {
+
35  number = 2;
+
36  }
+
37  else
+
38  {
+
39  number = 1;
+
40  }
+
41 
+
42  p0.setPic(number);
+
43 }
+
44 
+
45 
+
46 void setup(void)
+
47 {
+
48  dbSerialBegin(9600);
+
49  nexInit();
+
50  p0.attachPop(p0PopCallback);
+
51  dbSerialPrintln("setup done");
+
52 }
+
53 
+
54 void loop(void)
+
55 {
+
56  nexLoop(nex_listen_list);
+
57 }
+
58 
+
bool nexInit(void)
Init Nextion's baudrate,page id.
Definition: NexTouch.cpp:404
+
bool setPic(uint32_t number)
Set picture's number.
Definition: NexPicture.cpp:52
+
bool nexLoop(NexTouch **nex_listen_list)
Call mainEventLoop,watting for Nextion's touch event.
Definition: NexTouch.cpp:420
+
NexPicture,subclass of NexTouch,provides simple methods to control picture component.
Definition: NexPicture.h:25
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Register picture pop callback function.
Definition: NexPicture.cpp:72
+
bool getPic(uint32_t *number)
Get picture's number.
Definition: NexPicture.cpp:35
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
API of NexPicture.
+
+ + + + diff --git a/API-html/_comp_pointer_8ino-example.html b/API-html/_comp_pointer_8ino-example.html new file mode 100644 index 00000000..abf1273 --- /dev/null +++ b/API-html/_comp_pointer_8ino-example.html @@ -0,0 +1,120 @@ + + + + + + +API: CompPointer.ino + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + +
+
+
+
CompPointer.ino
+
+
+
Show how to use API of class NexPointer.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ +
+
#include "NexPointer.h"
+
#include "NexButton.h"
+
+
NexPointer pointer = NexPointer(0, 1, "pointer");
+
NexButton btn_up = NexButton(0, 2, "btn_up");
+
NexButton btn_down = NexButton(0, 3, "btn_down");
+
+
NexTouch *nex_listen_list[] =
+
{
+
&btn_up,
+
&btn_down,
+
NULL
+
};
+
+
void buttonUpPopCallback(void *ptr)
+
{
+
uint32_t number = 0;
+
dbSerialPrintln("buttonUpPopCallback");
+
+
pointer.getValue(&number);
+
+
number += 5;
+
if (number >= 360)
+
{
+
number = 0;
+
}
+
+
pointer.setValue(number);
+
}
+
void buttonDownPopCallback(void *ptr)
+
{
+
uint32_t number = 0;
+
dbSerialPrintln("buttonDownPopCallback");
+
+
pointer.getValue(&number);
+
+
if (number >= 5)
+
{
+
number -= 5;
+
}
+
+
pointer.setValue(number);
+
}
+
+
+
+
void setup(void)
+
{
+
dbSerialBegin(9600);
+ +
btn_up.attachPop(buttonUpPopCallback);
+
btn_down.attachPop(buttonDownPopCallback);
+
dbSerialPrintln("setup done");
+
}
+
+
void loop(void)
+
{
+
nexLoop(nex_listen_list);
+
}
+
+
+ + + + diff --git a/API-html/_comp_pointer_8ino_source.html b/API-html/_comp_pointer_8ino_source.html new file mode 100644 index 00000000..ba5044a --- /dev/null +++ b/API-html/_comp_pointer_8ino_source.html @@ -0,0 +1,134 @@ + + + + + + +API: examples/CompPointer/CompPointer.ino Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + + +
+
+
+
CompPointer.ino
+
+
+
1 
+
16 #include "NexPointer.h"
+
17 #include "NexButton.h"
+
18 
+
19 NexPointer pointer = NexPointer(0, 1, "pointer");
+
20 NexButton btn_up = NexButton(0, 2, "btn_up");
+
21 NexButton btn_down = NexButton(0, 3, "btn_down");
+
22 
+
23 NexTouch *nex_listen_list[] =
+
24 {
+
25  &btn_up,
+
26  &btn_down,
+
27  NULL
+
28 };
+
29 
+
30 void buttonUpPopCallback(void *ptr)
+
31 {
+
32  uint32_t number = 0;
+
33  dbSerialPrintln("buttonUpPopCallback");
+
34 
+
35  pointer.getValue(&number);
+
36 
+
37  number += 5;
+
38  if (number >= 360)
+
39  {
+
40  number = 0;
+
41  }
+
42 
+
43  pointer.setValue(number);
+
44 }
+
45 void buttonDownPopCallback(void *ptr)
+
46 {
+
47  uint32_t number = 0;
+
48  dbSerialPrintln("buttonDownPopCallback");
+
49 
+
50  pointer.getValue(&number);
+
51 
+
52  if (number >= 5)
+
53  {
+
54  number -= 5;
+
55  }
+
56 
+
57  pointer.setValue(number);
+
58 }
+
59 
+
60 
+
61 
+
62 void setup(void)
+
63 {
+
64  dbSerialBegin(9600);
+
65  nexInit();
+
66  btn_up.attachPop(buttonUpPopCallback);
+
67  btn_down.attachPop(buttonDownPopCallback);
+
68  dbSerialPrintln("setup done");
+
69 }
+
70 
+
71 void loop(void)
+
72 {
+
73  nexLoop(nex_listen_list);
+
74 }
+
75 
+
bool nexInit(void)
Init Nextion's baudrate,page id.
Definition: NexTouch.cpp:404
+
API of NexButton.
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Register button pop callback function.
Definition: NexButton.cpp:70
+
bool getValue(uint32_t *number)
Get the value of pointer.
Definition: NexPointer.cpp:20
+
NexPointer,subclass of NexTouch,provides simple methods to control pointer component.
Definition: NexPointer.h:10
+
NexButton,subclass of NexTouch,provides simple methods to control button component.
Definition: NexButton.h:25
+
bool nexLoop(NexTouch **nex_listen_list)
Call mainEventLoop,watting for Nextion's touch event.
Definition: NexTouch.cpp:420
+
bool setValue(uint32_t number)
Set the value of pointer.
Definition: NexPointer.cpp:37
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
+ + + + diff --git a/API-html/_comp_progress_bar_8ino-example.html b/API-html/_comp_progress_bar_8ino-example.html new file mode 100644 index 00000000..c3fa5e3 --- /dev/null +++ b/API-html/_comp_progress_bar_8ino-example.html @@ -0,0 +1,122 @@ + + + + + + +API: CompProgressBar.ino + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + +
+
+
+
CompProgressBar.ino
+
+
+
Show how to use API of class NexProgressBar.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ +
+
#include "NexProgressBar.h"
+
#include "NexButton.h"
+
+
NexProgressBar j0 = NexProgressBar(0, 3, "j0");
+
NexButton btn_up = NexButton(0, 1, "btn_up");
+
NexButton btn_down = NexButton(0, 2, "btn_down");
+
+
NexTouch *nex_listen_list[] =
+
{
+
&btn_up,
+
&btn_down,
+
NULL
+
};
+
+
void buttonUpPopCallback(void *ptr)
+
{
+
uint32_t number = 0;
+
dbSerialPrintln("buttonUpPopCallback");
+
+
j0.getValue(&number);
+
+
number += 5;
+
if (number >= 100)
+
{
+
number = 100;
+
}
+
+
j0.setValue(number);
+
}
+
void buttonDownPopCallback(void *ptr)
+
{
+
uint32_t number = 0;
+
dbSerialPrintln("buttonDownPopCallback");
+
+
j0.getValue(&number);
+
+
if (number >= 5)
+
{
+
number -= 5;
+
}
+
+
j0.setValue(number);
+
}
+
+
+
+
void setup(void)
+
{
+
uint32_t brightness = 0;
+
+
dbSerialBegin(9600);
+ +
btn_up.attachPop(buttonUpPopCallback);
+
btn_down.attachPop(buttonDownPopCallback);
+
dbSerialPrintln("setup done");
+
}
+
+
void loop(void)
+
{
+
nexLoop(nex_listen_list);
+
}
+
+
+ + + + diff --git a/API-html/_comp_progress_bar_8ino_source.html b/API-html/_comp_progress_bar_8ino_source.html new file mode 100644 index 00000000..501df76 --- /dev/null +++ b/API-html/_comp_progress_bar_8ino_source.html @@ -0,0 +1,137 @@ + + + + + + +API: examples/CompProgressBar/CompProgressBar.ino Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + + +
+
+
+
CompProgressBar.ino
+
+
+
1 
+
16 #include "NexProgressBar.h"
+
17 #include "NexButton.h"
+
18 
+
19 NexProgressBar j0 = NexProgressBar(0, 3, "j0");
+
20 NexButton btn_up = NexButton(0, 1, "btn_up");
+
21 NexButton btn_down = NexButton(0, 2, "btn_down");
+
22 
+
23 NexTouch *nex_listen_list[] =
+
24 {
+
25  &btn_up,
+
26  &btn_down,
+
27  NULL
+
28 };
+
29 
+
30 void buttonUpPopCallback(void *ptr)
+
31 {
+
32  uint32_t number = 0;
+
33  dbSerialPrintln("buttonUpPopCallback");
+
34 
+
35  j0.getValue(&number);
+
36 
+
37  number += 5;
+
38  if (number >= 100)
+
39  {
+
40  number = 100;
+
41  }
+
42 
+
43  j0.setValue(number);
+
44 }
+
45 void buttonDownPopCallback(void *ptr)
+
46 {
+
47  uint32_t number = 0;
+
48  dbSerialPrintln("buttonDownPopCallback");
+
49 
+
50  j0.getValue(&number);
+
51 
+
52  if (number >= 5)
+
53  {
+
54  number -= 5;
+
55  }
+
56 
+
57  j0.setValue(number);
+
58 }
+
59 
+
60 
+
61 
+
62 void setup(void)
+
63 {
+
64  uint32_t brightness = 0;
+
65 
+
66  dbSerialBegin(9600);
+
67  nexInit();
+
68  btn_up.attachPop(buttonUpPopCallback);
+
69  btn_down.attachPop(buttonDownPopCallback);
+
70  dbSerialPrintln("setup done");
+
71 }
+
72 
+
73 void loop(void)
+
74 {
+
75  nexLoop(nex_listen_list);
+
76 }
+
77 
+
bool setValue(uint32_t number)
Set the value of progress bar.
+
bool nexInit(void)
Init Nextion's baudrate,page id.
Definition: NexTouch.cpp:404
+
API of NexButton.
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Register button pop callback function.
Definition: NexButton.cpp:70
+
NexButton,subclass of NexTouch,provides simple methods to control button component.
Definition: NexButton.h:25
+
bool nexLoop(NexTouch **nex_listen_list)
Call mainEventLoop,watting for Nextion's touch event.
Definition: NexTouch.cpp:420
+
bool getValue(uint32_t *number)
Get the value of progress bar.
+
API of NexProgressBar.
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
NexProgressBar,subclass of NexTouch,provides simple methods to control progress bar component...
+
+ + + + diff --git a/API-html/_comp_text_8ino-example.html b/API-html/_comp_text_8ino-example.html new file mode 100644 index 00000000..d6da4cb --- /dev/null +++ b/API-html/_comp_text_8ino-example.html @@ -0,0 +1,137 @@ + + + + + + +API: CompText.ino + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + +
+
+
+
CompText.ino
+
+
+
Show how to use API of class NexText.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ +
+
#include "NexButton.h"
+
#include "NexText.h"
+
+
void t0PopCallback(void *ptr);
+
void b0PopCallback(void *ptr);
+
void b1PopCallback(void *ptr);
+
+
NexText t0 = NexText(0, 1, "t0", t0PopCallback);
+
NexButton b0 = NexButton(0, 2, "b0", b0PopCallback);
+
NexButton b1 = NexButton(0, 3, "b1", b1PopCallback);
+
+
char buffer[100] = {0};
+
+
NexTouch *nex_listen_list[] =
+
{
+
&t0,
+
&b0,
+
&b1,
+
NULL
+
};
+
+
void t0PopCallback(void *ptr)
+
{
+
dbSerialPrintln("t0PopCallback");
+
t0.setText("50");
+
}
+
+
void b0PopCallback(void *ptr)
+
{
+
uint16_t len;
+
uint16_t number;
+
+
dbSerialPrintln("b0PopCallback");
+
+
memset(buffer, 0, sizeof(buffer));
+
t0.getText(buffer, sizeof(buffer));
+
+
number = atoi(buffer);
+
number += 1;
+
+
memset(buffer, 0, sizeof(buffer));
+
itoa(number, buffer, 10);
+
+
t0.setText(buffer);
+
}
+
+
void b1PopCallback(void *ptr)
+
{
+
uint16_t len;
+
uint16_t number;
+
+
dbSerialPrintln("b1PopCallback");
+
+
memset(buffer, 0, sizeof(buffer));
+
t0.getText(buffer, sizeof(buffer));
+
+
number = atoi(buffer);
+
number -= 1;
+
+
memset(buffer, 0, sizeof(buffer));
+
itoa(number, buffer, 10);
+
+
t0.setText(buffer);
+
}
+
+
void setup(void)
+
{
+
dbSerialBegin(9600);
+ +
dbSerialPrintln("setup done");
+
}
+
+
void loop(void)
+
{
+
nexLoop(nex_listen_list);
+
}
+
+
+ + + + diff --git a/API-html/_comp_text_8ino_source.html b/API-html/_comp_text_8ino_source.html new file mode 100644 index 00000000..ea8c505 --- /dev/null +++ b/API-html/_comp_text_8ino_source.html @@ -0,0 +1,151 @@ + + + + + + +API: examples/CompText/CompText.ino Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + + +
+
+
+
CompText.ino
+
+
+
1 
+
16 #include "NexButton.h"
+
17 #include "NexText.h"
+
18 
+
19 void t0PopCallback(void *ptr);
+
20 void b0PopCallback(void *ptr);
+
21 void b1PopCallback(void *ptr);
+
22 
+
23 NexText t0 = NexText(0, 1, "t0", t0PopCallback);
+
24 NexButton b0 = NexButton(0, 2, "b0", b0PopCallback);
+
25 NexButton b1 = NexButton(0, 3, "b1", b1PopCallback);
+
26 
+
27 char buffer[100] = {0};
+
28 
+
29 NexTouch *nex_listen_list[] =
+
30 {
+
31  &t0,
+
32  &b0,
+
33  &b1,
+
34  NULL
+
35 };
+
36 
+
37 void t0PopCallback(void *ptr)
+
38 {
+
39  dbSerialPrintln("t0PopCallback");
+
40  t0.setText("50");
+
41 }
+
42 
+
43 void b0PopCallback(void *ptr)
+
44 {
+
45  uint16_t len;
+
46  uint16_t number;
+
47 
+
48  dbSerialPrintln("b0PopCallback");
+
49 
+
50  memset(buffer, 0, sizeof(buffer));
+
51  t0.getText(buffer, sizeof(buffer));
+
52 
+
53  number = atoi(buffer);
+
54  number += 1;
+
55 
+
56  memset(buffer, 0, sizeof(buffer));
+
57  itoa(number, buffer, 10);
+
58 
+
59  t0.setText(buffer);
+
60 }
+
61 
+
62 void b1PopCallback(void *ptr)
+
63 {
+
64  uint16_t len;
+
65  uint16_t number;
+
66 
+
67  dbSerialPrintln("b1PopCallback");
+
68 
+
69  memset(buffer, 0, sizeof(buffer));
+
70  t0.getText(buffer, sizeof(buffer));
+
71 
+
72  number = atoi(buffer);
+
73  number -= 1;
+
74 
+
75  memset(buffer, 0, sizeof(buffer));
+
76  itoa(number, buffer, 10);
+
77 
+
78  t0.setText(buffer);
+
79 }
+
80 
+
81 void setup(void)
+
82 {
+
83  dbSerialBegin(9600);
+
84  nexInit();
+
85  dbSerialPrintln("setup done");
+
86 }
+
87 
+
88 void loop(void)
+
89 {
+
90  nexLoop(nex_listen_list);
+
91 }
+
92 
+
bool setText(const char *buffer)
Set the value of text.
Definition: NexText.cpp:53
+
bool nexInit(void)
Init Nextion's baudrate,page id.
Definition: NexTouch.cpp:404
+
API of NexText.
+
API of NexButton.
+
NexButton,subclass of NexTouch,provides simple methods to control button component.
Definition: NexButton.h:25
+
bool nexLoop(NexTouch **nex_listen_list)
Call mainEventLoop,watting for Nextion's touch event.
Definition: NexTouch.cpp:420
+
uint16_t getText(char *buffer, uint16_t len)
Get the value of text.
Definition: NexText.cpp:35
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
NexText,subclass of NexTouch,provides simple methods to control text component.
Definition: NexText.h:25
+
+ + + + diff --git a/API-html/_nex_button_8cpp.html b/API-html/_nex_button_8cpp.html new file mode 100644 index 00000000..1f08344 --- /dev/null +++ b/API-html/_nex_button_8cpp.html @@ -0,0 +1,74 @@ + + + + + + +API: NexButton.cpp File Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexButton.cpp File Reference
+
+
+ +

API of NexButton. +More...

+
#include "NexButton.h"
+
+

Go to the source code of this file.

+

Detailed Description

+

API of NexButton.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ + +

Definition in file NexButton.cpp.

+
+ + + + diff --git a/API-html/_nex_button_8cpp_source.html b/API-html/_nex_button_8cpp_source.html new file mode 100644 index 00000000..6b1fe1b --- /dev/null +++ b/API-html/_nex_button_8cpp_source.html @@ -0,0 +1,111 @@ + + + + + + +API: NexButton.cpp Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexButton.cpp
+
+
+Go to the documentation of this file.
1 
+
16 #include "NexButton.h"
+
17 
+
22 NexButton::NexButton(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop, void *pop_ptr)
+
23  :NexTouch(pid, cid, name, pop, pop_ptr)
+
24 {
+
25 }
+
26 
+
35 uint16_t NexButton::getText(char *buffer, uint16_t len)
+
36 {
+
37  String cmd;
+
38  cmd += "get ";
+
39  cmd += getObjName();
+
40  cmd += ".txt";
+
41  sendCommand(cmd.c_str());
+
42  return recvRetString(buffer,len);
+
43 }
+
44 
+
53 bool NexButton::setText(const char *buffer)
+
54 {
+
55  String cmd;
+
56  cmd += getObjName();
+
57  cmd += ".txt=\"";
+
58  cmd += buffer;
+
59  cmd += "\"";
+
60  sendCommand(cmd.c_str());
+
61  return recvRetCommandFinished();
+
62 }
+
63 
+
70 void NexButton::attachPop(NexTouchEventCb pop, void *ptr)
+
71 {
+
72  NexTouch::attachPop(pop, ptr);
+
73 }
+
74 
+ +
80 {
+
81  NexTouch::detachPop();
+
82 }
+
83 
+
84 
+
NexButton(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)
Constructor,inherited NexTouch's constructor function.
Definition: NexButton.cpp:22
+
uint16_t getText(char *buffer, uint16_t len)
Get text value from button component.
Definition: NexButton.cpp:35
+
API of NexButton.
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Register button pop callback function.
Definition: NexButton.cpp:70
+
static void sendCommand(const char *cmd)
Send command to Nextion.
Definition: NexTouch.cpp:256
+
const char * getObjName(void)
Get component name.
Definition: NexTouch.cpp:107
+
bool setText(const char *buffer)
Set text value of button component.
Definition: NexButton.cpp:53
+
static uint16_t recvRetString(char *buffer, uint16_t len, uint32_t timeout=500)
Receive string data.
Definition: NexTouch.cpp:279
+
void detachPop(void)
Unload button pop callback function.
Definition: NexButton.cpp:79
+
static bool recvRetCommandFinished(uint32_t timeout=100)
Command is executed successfully.
Definition: NexTouch.cpp:219
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
+ + + + diff --git a/API-html/_nex_button_8h.html b/API-html/_nex_button_8h.html new file mode 100644 index 00000000..b0319af --- /dev/null +++ b/API-html/_nex_button_8h.html @@ -0,0 +1,83 @@ + + + + + + +API: NexButton.h File Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+Classes
+
+
NexButton.h File Reference
+
+
+ +

API of NexButton. +More...

+
#include "NexTouch.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  NexButton
 NexButton,subclass of NexTouch,provides simple methods to control button component. More...
 
+

Detailed Description

+

API of NexButton.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ + +

Definition in file NexButton.h.

+
+ + + + diff --git a/API-html/_nex_button_8h_source.html b/API-html/_nex_button_8h_source.html new file mode 100644 index 00000000..4274555 --- /dev/null +++ b/API-html/_nex_button_8h_source.html @@ -0,0 +1,88 @@ + + + + + + +API: NexButton.h Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexButton.h
+
+
+Go to the documentation of this file.
1 
+
16 #ifndef __NEXBUTTON_H__
+
17 #define __NEXBUTTON_H__
+
18 #ifdef __cplusplus
+
19 #include "NexTouch.h"
+
20 
+
25 class NexButton: public NexTouch
+
26 {
+
27 public: /* methods */
+
28  NexButton(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop = NULL, void *pop_ptr = NULL);
+
29 
+
30  void attachPop(NexTouchEventCb pop, void *ptr = NULL);
+
31  void detachPop(void);
+
32 
+
33  uint16_t getText(char *buffer, uint16_t len);
+
34  bool setText(const char *buffer);
+
35 };
+
36 
+
37 #endif /* #ifdef __cplusplus */
+
38 #endif /* #ifndef __NEXBUTTON_H__ */
+
NexButton(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)
Constructor,inherited NexTouch's constructor function.
Definition: NexButton.cpp:22
+
uint16_t getText(char *buffer, uint16_t len)
Get text value from button component.
Definition: NexButton.cpp:35
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Register button pop callback function.
Definition: NexButton.cpp:70
+
NexButton,subclass of NexTouch,provides simple methods to control button component.
Definition: NexButton.h:25
+
bool setText(const char *buffer)
Set text value of button component.
Definition: NexButton.cpp:53
+
API of Nextion.
+
void detachPop(void)
Unload button pop callback function.
Definition: NexButton.cpp:79
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
+ + + + diff --git a/API-html/_nex_crop_8cpp.html b/API-html/_nex_crop_8cpp.html new file mode 100644 index 00000000..8140923 --- /dev/null +++ b/API-html/_nex_crop_8cpp.html @@ -0,0 +1,74 @@ + + + + + + +API: NexCrop.cpp File Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexCrop.cpp File Reference
+
+
+ +

API of NexCrop. +More...

+
#include "NexCrop.h"
+
+

Go to the source code of this file.

+

Detailed Description

+

API of NexCrop.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ + +

Definition in file NexCrop.cpp.

+
+ + + + diff --git a/API-html/_nex_crop_8cpp_source.html b/API-html/_nex_crop_8cpp_source.html new file mode 100644 index 00000000..7897e3d --- /dev/null +++ b/API-html/_nex_crop_8cpp_source.html @@ -0,0 +1,126 @@ + + + + + + +API: NexCrop.cpp Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexCrop.cpp
+
+
+Go to the documentation of this file.
1 
+
16 #include "NexCrop.h"
+
17 
+
22 NexCrop::NexCrop(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop, void *pop_ptr)
+
23  :NexTouch(pid, cid, name, pop, pop_ptr)
+
24 {
+
25 }
+
26 
+
27 /*
+
28  * Get the number of picture.
+
29  *
+
30  * @param number - an output parameter to save the number of picture.
+
31  *
+
32  * @retval true - success.
+
33  * @retval false - failed.
+
34  */
+
35 bool NexCrop::getPic(uint32_t *number)
+
36 {
+
37  String cmd = String("get ");
+
38  cmd += getObjName();
+
39  cmd += ".picc";
+
40  sendCommand(cmd.c_str());
+
41  return recvRetNumber(number);
+
42 }
+
43 
+
44 /*
+
45  * Set the number of picture.
+
46  *
+
47  * @param number - the number of picture.
+
48  *
+
49  * @retval true - success.
+
50  * @retval false - failed.
+
51  */
+
52 bool NexCrop::setPic(uint32_t number)
+
53 {
+
54  char buf[10] = {0};
+
55  String cmd;
+
56 
+
57  utoa(number, buf, 10);
+
58  cmd += getObjName();
+
59  cmd += ".picc=";
+
60  cmd += buf;
+
61 
+
62  sendCommand(cmd.c_str());
+
63  return recvRetCommandFinished();
+
64 }
+
65 
+
72 void NexCrop::attachPop(NexTouchEventCb pop, void *ptr)
+
73 {
+
74  NexTouch::attachPop(pop, ptr);
+
75 }
+
76 
+ +
82 {
+
83  NexTouch::detachPop();
+
84 }
+
85 
+
NexCrop(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)
Constructor,inherited NexTouch's constructor function.
Definition: NexCrop.cpp:22
+
void detachPop(void)
Unload crop pop callback function.
Definition: NexCrop.cpp:81
+
static void sendCommand(const char *cmd)
Send command to Nextion.
Definition: NexTouch.cpp:256
+
const char * getObjName(void)
Get component name.
Definition: NexTouch.cpp:107
+
API of NexCrop.
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Register crop pop callback function.
Definition: NexCrop.cpp:72
+
static bool recvRetNumber(uint32_t *number, uint32_t timeout=500)
Receive uint32_t data.
Definition: NexTouch.cpp:351
+
static bool recvRetCommandFinished(uint32_t timeout=100)
Command is executed successfully.
Definition: NexTouch.cpp:219
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
+ + + + diff --git a/API-html/_nex_crop_8h.html b/API-html/_nex_crop_8h.html new file mode 100644 index 00000000..51b0403 --- /dev/null +++ b/API-html/_nex_crop_8h.html @@ -0,0 +1,83 @@ + + + + + + +API: NexCrop.h File Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+Classes
+
+
NexCrop.h File Reference
+
+
+ +

API of NexCrop. +More...

+
#include "NexTouch.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  NexCrop
 NexCrop,subclass of NexTouch,provides simple methods to control crop component. More...
 
+

Detailed Description

+

API of NexCrop.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ + +

Definition in file NexCrop.h.

+
+ + + + diff --git a/API-html/_nex_crop_8h_source.html b/API-html/_nex_crop_8h_source.html new file mode 100644 index 00000000..703cf85 --- /dev/null +++ b/API-html/_nex_crop_8h_source.html @@ -0,0 +1,86 @@ + + + + + + +API: NexCrop.h Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexCrop.h
+
+
+Go to the documentation of this file.
1 
+
16 #ifndef __NEXCROP_H__
+
17 #define __NEXCROP_H__
+
18 #ifdef __cplusplus
+
19 #include "NexTouch.h"
+
20 
+
25 class NexCrop: public NexTouch
+
26 {
+
27 public: /* methods */
+
28  NexCrop(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop = NULL, void *pop_ptr = NULL);
+
29 
+
30  void attachPop(NexTouchEventCb pop, void *ptr = NULL);
+
31  void detachPop(void);
+
32 
+
33  bool getPic(uint32_t *number);
+
34  bool setPic(uint32_t number);
+
35 };
+
36 
+
37 #endif /* #ifdef __cplusplus */
+
38 #endif /* #ifndef __NEXCROP_H__ */
+
NexCrop(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)
Constructor,inherited NexTouch's constructor function.
Definition: NexCrop.cpp:22
+
void detachPop(void)
Unload crop pop callback function.
Definition: NexCrop.cpp:81
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Register crop pop callback function.
Definition: NexCrop.cpp:72
+
API of Nextion.
+
NexCrop,subclass of NexTouch,provides simple methods to control crop component.
Definition: NexCrop.h:25
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
+ + + + diff --git a/API-html/_nex_hotspot_8cpp.html b/API-html/_nex_hotspot_8cpp.html new file mode 100644 index 00000000..aa81ce9 --- /dev/null +++ b/API-html/_nex_hotspot_8cpp.html @@ -0,0 +1,74 @@ + + + + + + +API: NexHotspot.cpp File Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexHotspot.cpp File Reference
+
+
+ +

API of NexHotspot. +More...

+
#include "NexHotspot.h"
+
+

Go to the source code of this file.

+

Detailed Description

+

API of NexHotspot.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ + +

Definition in file NexHotspot.cpp.

+
+ + + + diff --git a/API-html/_nex_hotspot_8cpp_source.html b/API-html/_nex_hotspot_8cpp_source.html new file mode 100644 index 00000000..9029768 --- /dev/null +++ b/API-html/_nex_hotspot_8cpp_source.html @@ -0,0 +1,96 @@ + + + + + + +API: NexHotspot.cpp Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexHotspot.cpp
+
+
+Go to the documentation of this file.
1 
+
16 #include "NexHotspot.h"
+
17 
+
22 NexHotspot::NexHotspot(NexPid pid, NexCid cid, char *name,
+
23  NexTouchEventCb pop, void *pop_ptr,
+
24  NexTouchEventCb push, void *push_ptr)
+
25  :NexTouch(pid, cid, name, pop, pop_ptr, push, push_ptr)
+
26 {
+
27 }
+
28 
+
35 void NexHotspot::attachPush(NexTouchEventCb push, void *ptr)
+
36 {
+
37  NexTouch::attachPush(push, ptr);
+
38 }
+
39 
+ +
45 {
+
46  NexTouch::detachPush();
+
47 }
+
48 
+
55 void NexHotspot::attachPop(NexTouchEventCb pop, void *ptr)
+
56 {
+
57  NexTouch::attachPop(pop, ptr);
+
58 }
+
59 
+ +
65 {
+
66  NexTouch::detachPop();
+
67 }
+
void detachPop(void)
Unload hotsopt pop callback function.
Definition: NexHotspot.cpp:64
+
void detachPush(void)
Unload hotsopt push callback function.
Definition: NexHotspot.cpp:44
+
NexHotspot(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)
Constructor,inherited NexTouch's constructor function.
Definition: NexHotspot.cpp:22
+
API of NexHotspot.
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Register hotspot pop callback function.
Definition: NexHotspot.cpp:55
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
void attachPush(NexTouchEventCb push, void *ptr=NULL)
Register hotspot push callback function.
Definition: NexHotspot.cpp:35
+
+ + + + diff --git a/API-html/_nex_hotspot_8h.html b/API-html/_nex_hotspot_8h.html new file mode 100644 index 00000000..6fbd4a1 --- /dev/null +++ b/API-html/_nex_hotspot_8h.html @@ -0,0 +1,83 @@ + + + + + + +API: NexHotspot.h File Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+Classes
+
+
NexHotspot.h File Reference
+
+
+ +

API of NexHotspot. +More...

+
#include "NexTouch.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  NexHotspot
 NexHotspot,subclass of NexTouch,provides simple methods to control hotspot component. More...
 
+

Detailed Description

+

API of NexHotspot.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ + +

Definition in file NexHotspot.h.

+
+ + + + diff --git a/API-html/_nex_hotspot_8h_source.html b/API-html/_nex_hotspot_8h_source.html new file mode 100644 index 00000000..4eee5c5 --- /dev/null +++ b/API-html/_nex_hotspot_8h_source.html @@ -0,0 +1,90 @@ + + + + + + +API: NexHotspot.h Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexHotspot.h
+
+
+Go to the documentation of this file.
1 
+
16 #ifndef __NEXHOTSPOT_H__
+
17 #define __NEXHOTSPOT_H__
+
18 #ifdef __cplusplus
+
19 #include "NexTouch.h"
+
20 
+
25 class NexHotspot: public NexTouch
+
26 {
+
27 public: /* methods */
+
28  NexHotspot(NexPid pid, NexCid cid, char *name,
+
29  NexTouchEventCb pop = NULL, void *pop_ptr = NULL,
+
30  NexTouchEventCb push = NULL, void *push_ptr = NULL);
+
31 
+
32  void attachPush(NexTouchEventCb push, void *ptr = NULL);
+
33  void detachPush(void);
+
34  void attachPop(NexTouchEventCb pop, void *ptr = NULL);
+
35  void detachPop(void);
+
36 
+
37 };
+
38 
+
39 #endif /* #ifdef __cplusplus */
+
40 #endif /* #ifndef __NEXHOTSPOT_H__ */
+
void detachPop(void)
Unload hotsopt pop callback function.
Definition: NexHotspot.cpp:64
+
void detachPush(void)
Unload hotsopt push callback function.
Definition: NexHotspot.cpp:44
+
API of Nextion.
+
NexHotspot(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)
Constructor,inherited NexTouch's constructor function.
Definition: NexHotspot.cpp:22
+
NexHotspot,subclass of NexTouch,provides simple methods to control hotspot component.
Definition: NexHotspot.h:25
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Register hotspot pop callback function.
Definition: NexHotspot.cpp:55
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
void attachPush(NexTouchEventCb push, void *ptr=NULL)
Register hotspot push callback function.
Definition: NexHotspot.cpp:35
+
+ + + + diff --git a/API-html/_nex_page_8cpp.html b/API-html/_nex_page_8cpp.html new file mode 100644 index 00000000..91e6b60 --- /dev/null +++ b/API-html/_nex_page_8cpp.html @@ -0,0 +1,74 @@ + + + + + + +API: NexPage.cpp File Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexPage.cpp File Reference
+
+
+ +

API of NexPage. +More...

+
#include "NexPage.h"
+
+

Go to the source code of this file.

+

Detailed Description

+

API of NexPage.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ + +

Definition in file NexPage.cpp.

+
+ + + + diff --git a/API-html/_nex_page_8cpp_source.html b/API-html/_nex_page_8cpp_source.html new file mode 100644 index 00000000..93e1911 --- /dev/null +++ b/API-html/_nex_page_8cpp_source.html @@ -0,0 +1,102 @@ + + + + + + +API: NexPage.cpp Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexPage.cpp
+
+
+Go to the documentation of this file.
1 
+
16 #include "NexPage.h"
+
17 
+
22 NexPage::NexPage(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop, void *pop_ptr)
+
23  :NexTouch(pid, cid, name, pop, pop_ptr)
+
24 {
+
25 }
+
26 
+
33 bool NexPage::show(void)
+
34 {
+
35  uint8_t buffer[4] = {0};
+
36 
+
37  const char *name = getObjName();
+
38  if (!name)
+
39  {
+
40  return false;
+
41  }
+
42 
+
43  String cmd = String("page ");
+
44  cmd += name;
+
45  sendCommand(cmd.c_str());
+
46  return recvRetCommandFinished();
+
47 }
+
48 
+
55 void NexPage::attachPop(NexTouchEventCb pop, void *ptr)
+
56 {
+
57  NexTouch::attachPop(pop, ptr);
+
58 }
+
59 
+ +
65 {
+
66  NexTouch::detachPop();
+
67 }
+
void detachPop(void)
Unload page pop callback function.
Definition: NexPage.cpp:64
+
bool show(void)
Change page.
Definition: NexPage.cpp:33
+
static void sendCommand(const char *cmd)
Send command to Nextion.
Definition: NexTouch.cpp:256
+
const char * getObjName(void)
Get component name.
Definition: NexTouch.cpp:107
+
API of NexPage.
+
NexPage(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)
Constructor,inherited NexTouch's constructor function.
Definition: NexPage.cpp:22
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Register page pop callback function.
Definition: NexPage.cpp:55
+
static bool recvRetCommandFinished(uint32_t timeout=100)
Command is executed successfully.
Definition: NexTouch.cpp:219
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
+ + + + diff --git a/API-html/_nex_page_8h.html b/API-html/_nex_page_8h.html new file mode 100644 index 00000000..7dd37fa --- /dev/null +++ b/API-html/_nex_page_8h.html @@ -0,0 +1,83 @@ + + + + + + +API: NexPage.h File Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+Classes
+
+
NexPage.h File Reference
+
+
+ +

API of NexPage. +More...

+
#include "NexTouch.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  NexPage
 NexPage,subclass of NexTouch,provides simple methods to control page component. More...
 
+

Detailed Description

+

API of NexPage.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ + +

Definition in file NexPage.h.

+
+ + + + diff --git a/API-html/_nex_page_8h_source.html b/API-html/_nex_page_8h_source.html new file mode 100644 index 00000000..a5c3791 --- /dev/null +++ b/API-html/_nex_page_8h_source.html @@ -0,0 +1,86 @@ + + + + + + +API: NexPage.h Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexPage.h
+
+
+Go to the documentation of this file.
1 
+
16 #ifndef __NEXPAGE_H__
+
17 #define __NEXPAGE_H__
+
18 #ifdef __cplusplus
+
19 #include "NexTouch.h"
+
20 
+
25 class NexPage: public NexTouch
+
26 {
+
27 public: /* methods */
+
28  NexPage(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop = NULL, void *pop_ptr = NULL);
+
29  bool show(void);
+
30 
+
31  void attachPop(NexTouchEventCb pop, void *ptr = NULL);
+
32  void detachPop(void);
+
33 
+
34 };
+
35 
+
36 #endif /* #ifdef __cplusplus */
+
37 #endif /* #ifndef __NEXPAGE_H__ */
+
void detachPop(void)
Unload page pop callback function.
Definition: NexPage.cpp:64
+
bool show(void)
Change page.
Definition: NexPage.cpp:33
+
NexPage,subclass of NexTouch,provides simple methods to control page component.
Definition: NexPage.h:25
+
API of Nextion.
+
NexPage(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)
Constructor,inherited NexTouch's constructor function.
Definition: NexPage.cpp:22
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Register page pop callback function.
Definition: NexPage.cpp:55
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
+ + + + diff --git a/API-html/_nex_picture_8cpp.html b/API-html/_nex_picture_8cpp.html new file mode 100644 index 00000000..9ad613e --- /dev/null +++ b/API-html/_nex_picture_8cpp.html @@ -0,0 +1,74 @@ + + + + + + +API: NexPicture.cpp File Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexPicture.cpp File Reference
+
+
+ +

API of NexPicture. +More...

+
#include "NexPicture.h"
+
+

Go to the source code of this file.

+

Detailed Description

+

API of NexPicture.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ + +

Definition in file NexPicture.cpp.

+
+ + + + diff --git a/API-html/_nex_picture_8cpp_source.html b/API-html/_nex_picture_8cpp_source.html new file mode 100644 index 00000000..29ead58 --- /dev/null +++ b/API-html/_nex_picture_8cpp_source.html @@ -0,0 +1,112 @@ + + + + + + +API: NexPicture.cpp Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexPicture.cpp
+
+
+Go to the documentation of this file.
1 
+
16 #include "NexPicture.h"
+
17 
+
22 NexPicture::NexPicture(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop, void *pop_ptr)
+
23  :NexTouch(pid, cid, name, pop, pop_ptr)
+
24 {
+
25 }
+
26 
+
35 bool NexPicture::getPic(uint32_t *number)
+
36 {
+
37  String cmd = String("get ");
+
38  cmd += getObjName();
+
39  cmd += ".pic";
+
40  sendCommand(cmd.c_str());
+
41  return recvRetNumber(number);
+
42 }
+
43 
+
52 bool NexPicture::setPic(uint32_t number)
+
53 {
+
54  char buf[10] = {0};
+
55  String cmd;
+
56 
+
57  utoa(number, buf, 10);
+
58  cmd += getObjName();
+
59  cmd += ".pic=";
+
60  cmd += buf;
+
61 
+
62  sendCommand(cmd.c_str());
+
63  return recvRetCommandFinished();
+
64 }
+
65 
+
72 void NexPicture::attachPop(NexTouchEventCb pop, void *ptr)
+
73 {
+
74  NexTouch::attachPop(pop, ptr);
+
75 }
+
76 
+ +
82 {
+
83  NexTouch::detachPop();
+
84 }
+
85 
+
void detachPop(void)
Unload picture pop callback function.
Definition: NexPicture.cpp:81
+
bool setPic(uint32_t number)
Set picture's number.
Definition: NexPicture.cpp:52
+
NexPicture(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)
Constructor,inherited NexTouch's constructor function.
Definition: NexPicture.cpp:22
+
static void sendCommand(const char *cmd)
Send command to Nextion.
Definition: NexTouch.cpp:256
+
const char * getObjName(void)
Get component name.
Definition: NexTouch.cpp:107
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Register picture pop callback function.
Definition: NexPicture.cpp:72
+
static bool recvRetNumber(uint32_t *number, uint32_t timeout=500)
Receive uint32_t data.
Definition: NexTouch.cpp:351
+
static bool recvRetCommandFinished(uint32_t timeout=100)
Command is executed successfully.
Definition: NexTouch.cpp:219
+
bool getPic(uint32_t *number)
Get picture's number.
Definition: NexPicture.cpp:35
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
API of NexPicture.
+
+ + + + diff --git a/API-html/_nex_picture_8h.html b/API-html/_nex_picture_8h.html new file mode 100644 index 00000000..617132c --- /dev/null +++ b/API-html/_nex_picture_8h.html @@ -0,0 +1,83 @@ + + + + + + +API: NexPicture.h File Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+Classes
+
+
NexPicture.h File Reference
+
+
+ +

API of NexPicture. +More...

+
#include "NexTouch.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  NexPicture
 NexPicture,subclass of NexTouch,provides simple methods to control picture component. More...
 
+

Detailed Description

+

API of NexPicture.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ + +

Definition in file NexPicture.h.

+
+ + + + diff --git a/API-html/_nex_picture_8h_source.html b/API-html/_nex_picture_8h_source.html new file mode 100644 index 00000000..812a027 --- /dev/null +++ b/API-html/_nex_picture_8h_source.html @@ -0,0 +1,88 @@ + + + + + + +API: NexPicture.h Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexPicture.h
+
+
+Go to the documentation of this file.
1 
+
16 #ifndef __NEXPICTURE_H__
+
17 #define __NEXPICTURE_H__
+
18 #ifdef __cplusplus
+
19 #include "NexTouch.h"
+
20 
+
25 class NexPicture: public NexTouch
+
26 {
+
27 public: /* methods */
+
28  NexPicture(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop = NULL, void *pop_ptr = NULL);
+
29 
+
30  void attachPop(NexTouchEventCb pop, void *ptr = NULL);
+
31  void detachPop(void);
+
32 
+
33  bool getPic(uint32_t *number);
+
34  bool setPic(uint32_t number);
+
35 };
+
36 
+
37 #endif /* #ifdef __cplusplus */
+
38 #endif /* #ifndef __NEXPICTURE_H__ */
+
void detachPop(void)
Unload picture pop callback function.
Definition: NexPicture.cpp:81
+
bool setPic(uint32_t number)
Set picture's number.
Definition: NexPicture.cpp:52
+
NexPicture(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)
Constructor,inherited NexTouch's constructor function.
Definition: NexPicture.cpp:22
+
NexPicture,subclass of NexTouch,provides simple methods to control picture component.
Definition: NexPicture.h:25
+
API of Nextion.
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Register picture pop callback function.
Definition: NexPicture.cpp:72
+
bool getPic(uint32_t *number)
Get picture's number.
Definition: NexPicture.cpp:35
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
+ + + + diff --git a/API-html/_nex_pointer_8cpp_source.html b/API-html/_nex_pointer_8cpp_source.html new file mode 100644 index 00000000..9223f24 --- /dev/null +++ b/API-html/_nex_pointer_8cpp_source.html @@ -0,0 +1,98 @@ + + + + + + +API: NexPointer.cpp Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexPointer.cpp
+
+
+
1 #include "NexPointer.h"
+
2 
+
7 NexPointer::NexPointer(NexPid pid, NexCid cid, char *name)
+
8  :NexTouch(pid, cid, name)
+
9 {
+
10 }
+
11 
+
20 bool NexPointer::getValue(uint32_t *number)
+
21 {
+
22  String cmd = String("get ");
+
23  cmd += getObjName();
+
24  cmd += ".val";
+
25  sendCommand(cmd.c_str());
+
26  return recvRetNumber(number);
+
27 }
+
28 
+
37 bool NexPointer::setValue(uint32_t number)
+
38 {
+
39  char buf[10] = {0};
+
40  String cmd;
+
41 
+
42  utoa(number, buf, 10);
+
43  cmd += getObjName();
+
44  cmd += ".val=";
+
45  cmd += buf;
+
46 
+
47  sendCommand(cmd.c_str());
+
48  return recvRetCommandFinished();
+
49 }
+
50 
+
bool getValue(uint32_t *number)
Get the value of pointer.
Definition: NexPointer.cpp:20
+
static void sendCommand(const char *cmd)
Send command to Nextion.
Definition: NexTouch.cpp:256
+
const char * getObjName(void)
Get component name.
Definition: NexTouch.cpp:107
+
static bool recvRetNumber(uint32_t *number, uint32_t timeout=500)
Receive uint32_t data.
Definition: NexTouch.cpp:351
+
NexPointer(NexPid pid, NexCid cid, char *name)
Constructor,inherited NexTouch's constructor function.
Definition: NexPointer.cpp:7
+
bool setValue(uint32_t number)
Set the value of pointer.
Definition: NexPointer.cpp:37
+
static bool recvRetCommandFinished(uint32_t timeout=100)
Command is executed successfully.
Definition: NexTouch.cpp:219
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
+ + + + diff --git a/API-html/_nex_pointer_8h_source.html b/API-html/_nex_pointer_8h_source.html new file mode 100644 index 00000000..f88fcf1 --- /dev/null +++ b/API-html/_nex_pointer_8h_source.html @@ -0,0 +1,82 @@ + + + + + + +API: NexPointer.h Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexPointer.h
+
+
+
1 #ifndef __NEXPOINTER_H__
+
2 #define __NEXPOINTER_H__
+
3 #ifdef __cplusplus
+
4 #include "NexTouch.h"
+
5 
+
10 class NexPointer: public NexTouch
+
11 {
+
12 public: /* methods */
+
13  NexPointer(NexPid pid, NexCid cid, char *name);
+
14 
+
15  bool getValue(uint32_t *number);
+
16  bool setValue(uint32_t number);
+
17 };
+
18 
+
19 #endif /* #ifdef __cplusplus */
+
20 #endif /* #ifndef __NEXPOINTER_H__ */
+
bool getValue(uint32_t *number)
Get the value of pointer.
Definition: NexPointer.cpp:20
+
NexPointer,subclass of NexTouch,provides simple methods to control pointer component.
Definition: NexPointer.h:10
+
API of Nextion.
+
NexPointer(NexPid pid, NexCid cid, char *name)
Constructor,inherited NexTouch's constructor function.
Definition: NexPointer.cpp:7
+
bool setValue(uint32_t number)
Set the value of pointer.
Definition: NexPointer.cpp:37
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
+ + + + diff --git a/API-html/_nex_progress_bar_8cpp.html b/API-html/_nex_progress_bar_8cpp.html new file mode 100644 index 00000000..9e305fb --- /dev/null +++ b/API-html/_nex_progress_bar_8cpp.html @@ -0,0 +1,74 @@ + + + + + + +API: NexProgressBar.cpp File Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexProgressBar.cpp File Reference
+
+
+ +

API of NexProgressBar. +More...

+
#include "NexProgressBar.h"
+
+

Go to the source code of this file.

+

Detailed Description

+

API of NexProgressBar.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ + +

Definition in file NexProgressBar.cpp.

+
+ + + + diff --git a/API-html/_nex_progress_bar_8cpp_source.html b/API-html/_nex_progress_bar_8cpp_source.html new file mode 100644 index 00000000..91d12d8 --- /dev/null +++ b/API-html/_nex_progress_bar_8cpp_source.html @@ -0,0 +1,100 @@ + + + + + + +API: NexProgressBar.cpp Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexProgressBar.cpp
+
+
+Go to the documentation of this file.
1 
+
16 #include "NexProgressBar.h"
+
17 
+
22 NexProgressBar::NexProgressBar(NexPid pid, NexCid cid, char *name)
+
23  :NexTouch(pid, cid, name)
+
24 {
+
25 }
+
26 
+
35 bool NexProgressBar::getValue(uint32_t *number)
+
36 {
+
37  String cmd = String("get ");
+
38  cmd += getObjName();
+
39  cmd += ".val";
+
40  sendCommand(cmd.c_str());
+
41  return recvRetNumber(number);
+
42 }
+
43 
+
52 bool NexProgressBar::setValue(uint32_t number)
+
53 {
+
54  char buf[10] = {0};
+
55  String cmd;
+
56 
+
57  utoa(number, buf, 10);
+
58  cmd += getObjName();
+
59  cmd += ".val=";
+
60  cmd += buf;
+
61 
+
62  sendCommand(cmd.c_str());
+
63  return recvRetCommandFinished();
+
64 }
+
65 
+
bool setValue(uint32_t number)
Set the value of progress bar.
+
static void sendCommand(const char *cmd)
Send command to Nextion.
Definition: NexTouch.cpp:256
+
const char * getObjName(void)
Get component name.
Definition: NexTouch.cpp:107
+
bool getValue(uint32_t *number)
Get the value of progress bar.
+
static bool recvRetNumber(uint32_t *number, uint32_t timeout=500)
Receive uint32_t data.
Definition: NexTouch.cpp:351
+
NexProgressBar(NexPid pid, NexCid cid, char *name)
Constructor,inherited NexTouch's constructor function.
+
static bool recvRetCommandFinished(uint32_t timeout=100)
Command is executed successfully.
Definition: NexTouch.cpp:219
+
API of NexProgressBar.
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
+ + + + diff --git a/API-html/_nex_progress_bar_8h.html b/API-html/_nex_progress_bar_8h.html new file mode 100644 index 00000000..cdd67e2 --- /dev/null +++ b/API-html/_nex_progress_bar_8h.html @@ -0,0 +1,83 @@ + + + + + + +API: NexProgressBar.h File Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+Classes
+
+
NexProgressBar.h File Reference
+
+
+ +

API of NexProgressBar. +More...

+
#include "NexTouch.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  NexProgressBar
 NexProgressBar,subclass of NexTouch,provides simple methods to control progress bar component. More...
 
+

Detailed Description

+

API of NexProgressBar.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ + +

Definition in file NexProgressBar.h.

+
+ + + + diff --git a/API-html/_nex_progress_bar_8h_source.html b/API-html/_nex_progress_bar_8h_source.html new file mode 100644 index 00000000..5a940a6 --- /dev/null +++ b/API-html/_nex_progress_bar_8h_source.html @@ -0,0 +1,83 @@ + + + + + + +API: NexProgressBar.h Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexProgressBar.h
+
+
+Go to the documentation of this file.
1 
+
16 #ifndef __NEXPROGRESSBAR_H__
+
17 #define __NEXPROGRESSBAR_H__
+
18 #ifdef __cplusplus
+
19 #include "NexTouch.h"
+
20 
+
25 class NexProgressBar: public NexTouch
+
26 {
+
27 public: /* methods */
+
28  NexProgressBar(NexPid pid, NexCid cid, char *name);
+
29 
+
30  bool getValue(uint32_t *number);
+
31  bool setValue(uint32_t number);
+
32 };
+
33 
+
34 #endif /* #ifdef __cplusplus */
+
35 #endif /* #ifndef __NEXPROGRESSBAR_H__ */
+
bool setValue(uint32_t number)
Set the value of progress bar.
+
API of Nextion.
+
bool getValue(uint32_t *number)
Get the value of progress bar.
+
NexProgressBar(NexPid pid, NexCid cid, char *name)
Constructor,inherited NexTouch's constructor function.
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
NexProgressBar,subclass of NexTouch,provides simple methods to control progress bar component...
+
+ + + + diff --git a/API-html/_nex_serial_config_8h.html b/API-html/_nex_serial_config_8h.html new file mode 100644 index 00000000..c37766e --- /dev/null +++ b/API-html/_nex_serial_config_8h.html @@ -0,0 +1,73 @@ + + + + + + +API: NexSerialConfig.h File Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexSerialConfig.h File Reference
+
+
+ +

Serial configure. +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Serial configure.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ + +

Definition in file NexSerialConfig.h.

+
+ + + + diff --git a/API-html/_nex_serial_config_8h_source.html b/API-html/_nex_serial_config_8h_source.html new file mode 100644 index 00000000..e3da563 --- /dev/null +++ b/API-html/_nex_serial_config_8h_source.html @@ -0,0 +1,84 @@ + + + + + + +API: NexSerialConfig.h Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexSerialConfig.h
+
+
+Go to the documentation of this file.
1 
+
16 #ifndef __NexSerialConfig_H__
+
17 #define __NexSerialConfig_H__
+
18 
+
19 /* enable debug serial */
+
20 #define DEBUG_SERIAL_ENABLE
+
21 
+
22 /* define serial for debug */
+
23 #define dbSerial Serial
+
24 
+
25 #ifdef DEBUG_SERIAL_ENABLE
+
26 #define dbSerialPrint(a) dbSerial.print(a)
+
27 #define dbSerialPrintln(a) dbSerial.println(a)
+
28 #define dbSerialBegin(a) dbSerial.begin(a)
+
29 #else
+
30 #define dbSerialPrint(a)
+
31 #define dbSerialPrintln(a)
+
32 #define dbSerialBegin(a)
+
33 #endif
+
34 
+
35 /* define serial for communicate with Nextion screen */
+
36 #define nexSerial Serial2
+
37 
+
38 #endif
+
+ + + + diff --git a/API-html/_nex_text_8cpp.html b/API-html/_nex_text_8cpp.html new file mode 100644 index 00000000..1574fa5 --- /dev/null +++ b/API-html/_nex_text_8cpp.html @@ -0,0 +1,74 @@ + + + + + + +API: NexText.cpp File Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexText.cpp File Reference
+
+
+ +

API of NexText. +More...

+
#include "NexText.h"
+
+

Go to the source code of this file.

+

Detailed Description

+

API of NexText.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ + +

Definition in file NexText.cpp.

+
+ + + + diff --git a/API-html/_nex_text_8cpp_source.html b/API-html/_nex_text_8cpp_source.html new file mode 100644 index 00000000..29fbbea --- /dev/null +++ b/API-html/_nex_text_8cpp_source.html @@ -0,0 +1,110 @@ + + + + + + +API: NexText.cpp Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexText.cpp
+
+
+Go to the documentation of this file.
1 
+
16 #include "NexText.h"
+
17 
+
22 NexText::NexText(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop, void *pop_ptr)
+
23  :NexTouch(pid, cid, name, pop, pop_ptr)
+
24 {
+
25 }
+
26 
+
35 uint16_t NexText::getText(char *buffer, uint16_t len)
+
36 {
+
37  String cmd;
+
38  cmd += "get ";
+
39  cmd += getObjName();
+
40  cmd += ".txt";
+
41  sendCommand(cmd.c_str());
+
42  return recvRetString(buffer,len);
+
43 }
+
44 
+
53 bool NexText::setText(const char *buffer)
+
54 {
+
55  String cmd;
+
56  cmd += getObjName();
+
57  cmd += ".txt=\"";
+
58  cmd += buffer;
+
59  cmd += "\"";
+
60  sendCommand(cmd.c_str());
+
61  return recvRetCommandFinished();
+
62 }
+
63 
+
70 void NexText::attachPop(NexTouchEventCb pop, void *ptr)
+
71 {
+
72  NexTouch::attachPop(pop, ptr);
+
73 }
+
74 
+ +
80 {
+
81  NexTouch::detachPop();
+
82 }
+
83 
+
bool setText(const char *buffer)
Set the value of text.
Definition: NexText.cpp:53
+
void detachPop(void)
Unload text pop callback function.
Definition: NexText.cpp:79
+
API of NexText.
+
static void sendCommand(const char *cmd)
Send command to Nextion.
Definition: NexTouch.cpp:256
+
const char * getObjName(void)
Get component name.
Definition: NexTouch.cpp:107
+
uint16_t getText(char *buffer, uint16_t len)
Get the value of text.
Definition: NexText.cpp:35
+
NexText(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)
Constructor,inherited NexTouch's constructor function.
Definition: NexText.cpp:22
+
static uint16_t recvRetString(char *buffer, uint16_t len, uint32_t timeout=500)
Receive string data.
Definition: NexTouch.cpp:279
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Register text pop callback function.
Definition: NexText.cpp:70
+
static bool recvRetCommandFinished(uint32_t timeout=100)
Command is executed successfully.
Definition: NexTouch.cpp:219
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
+ + + + diff --git a/API-html/_nex_text_8h.html b/API-html/_nex_text_8h.html new file mode 100644 index 00000000..27c8aef --- /dev/null +++ b/API-html/_nex_text_8h.html @@ -0,0 +1,83 @@ + + + + + + +API: NexText.h File Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+Classes
+
+
NexText.h File Reference
+
+
+ +

API of NexText. +More...

+
#include "NexTouch.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  NexText
 NexText,subclass of NexTouch,provides simple methods to control text component. More...
 
+

Detailed Description

+

API of NexText.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ + +

Definition in file NexText.h.

+
+ + + + diff --git a/API-html/_nex_text_8h_source.html b/API-html/_nex_text_8h_source.html new file mode 100644 index 00000000..d67db7c --- /dev/null +++ b/API-html/_nex_text_8h_source.html @@ -0,0 +1,88 @@ + + + + + + +API: NexText.h Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexText.h
+
+
+Go to the documentation of this file.
1 
+
16 #ifndef __NEXTEXT_H__
+
17 #define __NEXTEXT_H__
+
18 #ifdef __cplusplus
+
19 #include "NexTouch.h"
+
20 
+
25 class NexText: public NexTouch
+
26 {
+
27 public: /* methods */
+
28  NexText(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop = NULL, void *pop_ptr = NULL);
+
29 
+
30  void attachPop(NexTouchEventCb pop, void *ptr = NULL);
+
31  void detachPop(void);
+
32 
+
33  uint16_t getText(char *buffer, uint16_t len);
+
34  bool setText(const char *buffer);
+
35 };
+
36 
+
37 #endif /* #ifdef __cplusplus */
+
38 #endif /* #ifndef __NEXTEXT_H__ */
+
bool setText(const char *buffer)
Set the value of text.
Definition: NexText.cpp:53
+
void detachPop(void)
Unload text pop callback function.
Definition: NexText.cpp:79
+
uint16_t getText(char *buffer, uint16_t len)
Get the value of text.
Definition: NexText.cpp:35
+
API of Nextion.
+
NexText(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)
Constructor,inherited NexTouch's constructor function.
Definition: NexText.cpp:22
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Register text pop callback function.
Definition: NexText.cpp:70
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
NexText,subclass of NexTouch,provides simple methods to control text component.
Definition: NexText.h:25
+
+ + + + diff --git a/API-html/_nex_touch_8cpp.html b/API-html/_nex_touch_8cpp.html new file mode 100644 index 00000000..b737a76 --- /dev/null +++ b/API-html/_nex_touch_8cpp.html @@ -0,0 +1,484 @@ + + + + + + +API: NexTouch.cpp File Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+Functions
+
+
NexTouch.cpp File Reference
+
+
+ +

API of Nextion. +More...

+
#include "NexTouch.h"
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

bool nexInit (void)
 Init Nextion's baudrate,page id. More...
 
bool nexLoop (NexTouch **nex_listen_list)
 Call mainEventLoop,watting for Nextion's touch event. More...
 
bool sendCurrentPageId (uint8_t *pageId)
 Return current page id. More...
 
bool touchCalibration (void)
 Touch screen calibration. More...
 
bool disableTouchFocus (void)
 Disable all touch hot. More...
 
bool pauseSerialCommand (void)
 Pause serial instruction execution. More...
 
bool recoverySerialCommand (void)
 Recovery serial instruction execution. More...
 
bool setCurrentBrightness (uint8_t dimValue)
 Set current backlight brightness value. More...
 
bool setDefaultBrightness (uint8_t dimDefaultValue)
 Set default backlight brightness value. More...
 
bool sleepMode (uint8_t mode)
 Set device in sleep mode. More...
 
bool setCurrentBaudrate (uint32_t baudrate)
 Set current baudrate. More...
 
bool setDefaultBaudrate (uint32_t defaultBaudrate)
 Set default baudrate. More...
 
+

Detailed Description

+

API of Nextion.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ + +

Definition in file NexTouch.cpp.

+

Function Documentation

+ +
+
+ + + + + + + + +
bool disableTouchFocus (void )
+
+ +

Disable all touch hot.

+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 508 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool nexInit (void )
+
+ +

Init Nextion's baudrate,page id.

+
Return values
+ + + +
true- success.
false- failed.
+
+
+
Examples:
CompButton.ino, CompCrop.ino, CompHotspot.ino, CompPage.ino, CompPicture.ino, CompPointer.ino, CompProgressBar.ino, and CompText.ino.
+
+

Definition at line 404 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool nexLoop (NexTouch ** nex_listen_list)
+
+ +

Call mainEventLoop,watting for Nextion's touch event.

+
Parameters
+ + +
nex_listen_list- index to Nextion Components list.
+
+
+
Return values
+ + +
false- failed.
+
+
+
Examples:
CompButton.ino, CompCrop.ino, CompHotspot.ino, CompPage.ino, CompPicture.ino, CompPointer.ino, CompProgressBar.ino, and CompText.ino.
+
+

Definition at line 420 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool pauseSerialCommand (void )
+
+ +

Pause serial instruction execution.

+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 532 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool recoverySerialCommand (void )
+
+ +

Recovery serial instruction execution.

+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 557 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool sendCurrentPageId (uint8_t * pageId)
+
+ +

Return current page id.

+
Parameters
+ + +
pageId- output parameter,to save page id.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 434 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool setCurrentBaudrate (uint32_t baudrate)
+
+ +

Set current baudrate.

+
Parameters
+ + +
baudrate- current baudrate,it supports 2400,4800,9600,19200,38400,57600,115200.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 689 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool setCurrentBrightness (uint8_t dimValue)
+
+ +

Set current backlight brightness value.

+
Parameters
+ + +
dimValue- current backlight brightness value.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 583 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool setDefaultBaudrate (uint32_t defaultBaudrate)
+
+ +

Set default baudrate.

+
Parameters
+ + +
defaultBaudrate- default baudrate,it supports 2400,4800,9600,19200,38400,57600,115200.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 721 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool setDefaultBrightness (uint8_t dimDefaultValue)
+
+ +

Set default backlight brightness value.

+
Parameters
+ + +
dimDefaultValue- default backlight brightness value.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 618 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool sleepMode (uint8_t mode)
+
+ +

Set device in sleep mode.

+
Parameters
+ + +
mode- 1:into sleep mode,0:exit sleep mode.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 652 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool touchCalibration (void )
+
+ +

Touch screen calibration.

+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 484 of file NexTouch.cpp.

+ +
+
+
+ + + + diff --git a/API-html/_nex_touch_8cpp_source.html b/API-html/_nex_touch_8cpp_source.html new file mode 100644 index 00000000..f1e098a --- /dev/null +++ b/API-html/_nex_touch_8cpp_source.html @@ -0,0 +1,677 @@ + + + + + + +API: NexTouch.cpp Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexTouch.cpp
+
+
+Go to the documentation of this file.
1 
+
16 #include "NexTouch.h"
+
17 
+
18 uint8_t NexTouch::__buffer[256] = {0};
+
19 
+ +
27 {
+
28  uint16_t i;
+
29  uint8_t c;
+
30  while (nexSerial.available() > 0)
+
31  {
+
32  delay(10);
+
33  c = nexSerial.read();
+
34 
+
35  if (NEX_RET_EVENT_TOUCH_HEAD == c)
+
36  {
+
37  if (nexSerial.available() >= 6)
+
38  {
+
39  __buffer[0] = c;
+
40  for (i = 1; i < 7; i++)
+
41  {
+
42  __buffer[i] = nexSerial.read();
+
43  }
+
44  __buffer[i] = 0x00;
+
45 
+
46  if (0xFF == __buffer[4] && 0xFF == __buffer[5] && 0xFF == __buffer[6])
+
47  {
+
48  iterate(list, (NexPid)__buffer[1], (NexCid)__buffer[2], (NexEventType)__buffer[3]);
+
49  }
+
50 
+
51  }
+
52  }
+
53  }
+
54  return 0;
+
55 }
+
56 
+
69 NexTouch::NexTouch(NexPid pid, NexCid cid, char *name,
+
70  NexTouchEventCb pop, void *pop_ptr,
+
71  NexTouchEventCb push, void *push_ptr)
+
72 {
+
73  this->pid = pid;
+
74  this->cid = cid;
+
75  this->name = name;
+
76  this->cbPush = push;
+
77  this->cbPop = pop;
+
78  this->__cbpop_ptr = pop_ptr;
+
79  this->__cbpush_ptr = push_ptr;
+
80 }
+
81 
+
87 NexPid NexTouch::getPid(void)
+
88 {
+
89  return pid;
+
90 }
+
91 
+
97 NexCid NexTouch::getCid(void)
+
98 {
+
99  return cid;
+
100 }
+
101 
+
107 const char* NexTouch::getObjName(void)
+
108 {
+
109  return name;
+
110 }
+
111 
+
117 void NexTouch::print(void)
+
118 {
+
119  dbSerialPrint("[");
+
120  dbSerialPrint((uint32_t)this);
+
121  dbSerialPrint(":");
+
122  dbSerialPrint(pid);
+
123  dbSerialPrint(",");
+
124  dbSerialPrint(cid);
+
125  dbSerialPrint(",");
+
126  if (name)
+
127  {
+
128  dbSerialPrint(name);
+
129  }
+
130  else
+
131  {
+
132  dbSerialPrint("(null)");
+
133  }
+
134  dbSerialPrint(",");
+
135  dbSerialPrint((uint32_t)cbPush);
+
136  dbSerialPrint(",");
+
137  dbSerialPrint((uint32_t)cbPop);
+
138  dbSerialPrintln("]");
+
139 }
+
140 
+
141 void NexTouch::attachPush(NexTouchEventCb push, void *ptr)
+
142 {
+
143  this->cbPush = push;
+
144  this->__cbpush_ptr = ptr;
+
145 }
+
146 
+
147 void NexTouch::detachPush(void)
+
148 {
+
149  this->cbPush = NULL;
+
150  this->__cbpush_ptr = NULL;
+
151 }
+
152 
+
153 void NexTouch::attachPop(NexTouchEventCb pop, void *ptr)
+
154 {
+
155  this->cbPop = pop;
+
156  this->__cbpop_ptr = ptr;
+
157 }
+
158 
+
159 void NexTouch::detachPop(void)
+
160 {
+
161  this->cbPop = NULL;
+
162  this->__cbpop_ptr = NULL;
+
163 }
+
164 
+
165 void NexTouch::iterate(NexTouch **list, NexPid pid, NexCid cid, NexEventType event)
+
166 {
+
167  NexTouch *e = NULL;
+
168  uint16_t i = 0;
+
169 
+
170  if (NULL == list)
+
171  {
+
172  return;
+
173  }
+
174 
+
175  for(i = 0; (e = list[i]) != NULL; i++)
+
176  {
+
177  if (e->getPid() == pid && e->getCid() == cid)
+
178  {
+
179  e->print();
+
180  if (NEX_EVENT_PUSH == event)
+
181  {
+
182  e->push();
+
183  }
+
184  else if (NEX_EVENT_POP == event)
+
185  {
+
186  e->pop();
+
187  }
+
188 
+
189  break;
+
190  }
+
191  }
+
192 }
+
193 
+
194 void NexTouch::push(void)
+
195 {
+
196  if (cbPush)
+
197  {
+
198  cbPush(__cbpush_ptr);
+
199  }
+
200 }
+
201 
+
202 void NexTouch::pop(void)
+
203 {
+
204  if (cbPop)
+
205  {
+
206  cbPop(__cbpop_ptr);
+
207  }
+
208 }
+
209 
+
219 bool NexTouch::recvRetCommandFinished(uint32_t timeout)
+
220 {
+
221  bool ret = false;
+
222  uint8_t temp[4] = {0};
+
223 
+
224  nexSerial.setTimeout(timeout);
+
225  if (sizeof(temp) != nexSerial.readBytes((char *)temp, sizeof(temp)))
+
226  {
+
227  ret = false;
+
228  }
+
229 
+
230  if (temp[0] == NEX_RET_CMD_FINISHED
+
231  && temp[1] == 0xFF
+
232  && temp[2] == 0xFF
+
233  && temp[3] == 0xFF
+
234  )
+
235  {
+
236  ret = true;
+
237  }
+
238 
+
239  if (ret)
+
240  {
+
241  dbSerialPrintln("recvRetCommandFinished ok");
+
242  }
+
243  else
+
244  {
+
245  dbSerialPrintln("recvRetCommandFinished err");
+
246  }
+
247 
+
248  return ret;
+
249 }
+
250 
+
256 void NexTouch::sendCommand(const char* cmd)
+
257 {
+
258  while (nexSerial.available())
+
259  {
+
260  nexSerial.read();
+
261  }
+
262 
+
263  nexSerial.print(cmd);
+
264  nexSerial.write(0xFF);
+
265  nexSerial.write(0xFF);
+
266  nexSerial.write(0xFF);
+
267 }
+
268 
+
279 uint16_t NexTouch::recvRetString(char *buffer, uint16_t len, uint32_t timeout)
+
280 {
+
281  uint16_t ret = 0;
+
282  bool str_start_flag = false;
+
283  uint8_t cnt_0xff = 0;
+
284  String temp = String("");
+
285  uint8_t c = 0;
+
286  long start;
+
287 
+
288  if (!buffer || len == 0)
+
289  {
+
290  goto __return;
+
291  }
+
292 
+
293  start = millis();
+
294  while (millis() - start <= timeout)
+
295  {
+
296  while (nexSerial.available())
+
297  {
+
298  c = nexSerial.read();
+
299  if (str_start_flag)
+
300  {
+
301  if (0xFF == c)
+
302  {
+
303  cnt_0xff++;
+
304  if (cnt_0xff >= 3)
+
305  {
+
306  break;
+
307  }
+
308  }
+
309  else
+
310  {
+
311  temp += (char)c;
+
312  }
+
313  }
+
314  else if (NEX_RET_STRING_HEAD == c)
+
315  {
+
316  str_start_flag = true;
+
317  }
+
318  }
+
319 
+
320  if (cnt_0xff >= 3)
+
321  {
+
322  break;
+
323  }
+
324  }
+
325 
+
326  ret = temp.length();
+
327  ret = ret > len ? len : ret;
+
328  strncpy(buffer, temp.c_str(), ret);
+
329 
+
330 __return:
+
331 
+
332  dbSerialPrint("recvRetString[");
+
333  dbSerialPrint(temp.length());
+
334  dbSerialPrint(",");
+
335  dbSerialPrint(temp);
+
336  dbSerialPrintln("]");
+
337 
+
338  return ret;
+
339 }
+
340 
+
351 bool NexTouch::recvRetNumber(uint32_t *number, uint32_t timeout)
+
352 {
+
353  bool ret = false;
+
354  uint8_t temp[8] = {0};
+
355 
+
356  if (!number)
+
357  {
+
358  goto __return;
+
359  }
+
360 
+
361  nexSerial.setTimeout(timeout);
+
362  if (sizeof(temp) != nexSerial.readBytes((char *)temp, sizeof(temp)))
+
363  {
+
364  goto __return;
+
365  }
+
366 
+
367  if (temp[0] == NEX_RET_NUMBER_HEAD
+
368  && temp[5] == 0xFF
+
369  && temp[6] == 0xFF
+
370  && temp[7] == 0xFF
+
371  )
+
372  {
+
373  *number = (temp[4] << 24) | (temp[3] << 16) | (temp[2] << 8) | (temp[1]);
+
374  ret = true;
+
375  }
+
376 
+
377 __return:
+
378 
+
379  if (ret)
+
380  {
+
381  dbSerialPrint("recvRetNumber :");
+
382  dbSerialPrintln(*number);
+
383  }
+
384  else
+
385  {
+
386  dbSerialPrintln("recvRetNumber err");
+
387  }
+
388 
+
389  return ret;
+
390 }
+
391 
+
392 bool NexTouch::getBrightness(uint32_t *brightness)
+
393 {
+
394  sendCommand("get dim");
+
395  return recvRetNumber(brightness);
+
396 }
+
397 
+
404 bool nexInit(void)
+
405 {
+
406  nexSerial.begin(9600);
+ +
408  NexTouch::sendCommand("page 0");
+
409  delay(100);
+
410  return true;
+
411 }
+
412 
+
420 bool nexLoop(NexTouch **nex_listen_list)
+
421 {
+
422  NexTouch::mainEventLoop(nex_listen_list);
+
423  return false;
+
424 }
+
425 
+
434 bool sendCurrentPageId(uint8_t* pageId)
+
435 {
+
436 
+
437  bool ret = false;
+
438  uint8_t temp[5] = {0};
+
439 
+
440  if (!pageId)
+
441  {
+
442  goto __return;
+
443  }
+
444  NexTouch::sendCommand("sendme");
+
445  delay(50);
+
446  nexSerial.setTimeout(500);
+
447  if (sizeof(temp) != nexSerial.readBytes((char *)temp, sizeof(temp)))
+
448  {
+
449  goto __return;
+
450  }
+
451 
+
452  if (temp[0] == NEX_RET_CURRENT_PAGE_ID_HEAD
+
453  && temp[2] == 0xFF
+
454  && temp[3] == 0xFF
+
455  && temp[4] == 0xFF
+
456  )
+
457  {
+
458  *pageId = temp[1];
+
459  ret = true;
+
460  }
+
461 
+
462  __return:
+
463 
+
464  if (ret)
+
465  {
+
466  dbSerialPrint("recvPageId :");
+
467  dbSerialPrintln(*pageId);
+
468  }
+
469  else
+
470  {
+
471  dbSerialPrintln("recvPageId err");
+
472  }
+
473 
+
474  return ret;
+
475 
+
476 }
+
477 
+ +
485 {
+
486  bool ret = false;
+
487  NexTouch::sendCommand("touch_j");
+
488  delay(10);
+ +
490  {
+
491  dbSerialPrintln("TouchCalibration ok ");
+
492  ret = true;
+
493  }
+
494  else
+
495  {
+
496  dbSerialPrintln("TouchCalibration err ");
+
497  }
+
498 
+
499  return ret;
+
500 }
+
501 
+ +
509 {
+
510  bool ret = false;
+
511  NexTouch::sendCommand("cle_c");
+
512  delay(10);
+ +
514  {
+
515  dbSerialPrintln("disableTouchFocus ok ");
+
516  ret = true;
+
517  }
+
518  else
+
519  {
+
520  dbSerialPrintln("disableTouchFocus err ");
+
521  }
+
522 
+
523  return ret;
+
524 }
+
525 
+ +
533 {
+
534 
+
535  bool ret = false;
+
536  NexTouch::sendCommand("com_stop");
+
537  delay(10);
+ +
539  {
+
540  dbSerialPrintln("pauseSerialCommand ok ");
+
541  ret = true;
+
542  }
+
543  else
+
544  {
+
545  dbSerialPrintln("pauseSerialCommand err ");
+
546  }
+
547 
+
548  return ret;
+
549 }
+
550 
+ +
558 {
+
559  bool ret = false;
+
560  NexTouch::sendCommand("com_star");
+
561  delay(10);
+ +
563  {
+
564  dbSerialPrintln("recoverySerialCommand ok ");
+
565  ret = true;
+
566  }
+
567  else
+
568  {
+
569  dbSerialPrintln("recoverySerialCommand err ");
+
570  }
+
571 
+
572  return ret;
+
573 }
+
574 
+
583 bool setCurrentBrightness(uint8_t dimValue)
+
584 {
+
585  bool ret = false;
+
586  char buf[10] = {0};
+
587  String cmd;
+
588  utoa(dimValue, buf, 10);
+
589  cmd += "dim=";
+
590  cmd += buf;
+
591  NexTouch::sendCommand(cmd.c_str());
+
592  delay(10);
+
593 
+ +
595  {
+
596  dbSerialPrint("setCurrentBrightness[ ");
+
597  dbSerialPrint(dimValue);
+
598  dbSerialPrintln("]ok ");
+
599 
+
600  ret = true;
+
601  }
+
602  else
+
603  {
+
604  dbSerialPrintln("setCurrentBrightness err ");
+
605  }
+
606 
+
607  return ret;
+
608 }
+
609 
+
618 bool setDefaultBrightness(uint8_t dimDefaultValue)
+
619 {
+
620  bool ret = false;
+
621  char buf[10] = {0};
+
622  String cmd;
+
623  utoa(dimDefaultValue, buf, 10);
+
624  cmd += "dims=";
+
625  cmd += buf;
+
626  NexTouch::sendCommand(cmd.c_str());
+
627  delay(10);
+
628 
+ +
630  {
+
631  dbSerialPrint("setDefaultBrightness[");
+
632  dbSerialPrint(dimDefaultValue);
+
633  dbSerialPrintln("]ok");
+
634  ret = true;
+
635  }
+
636  else
+
637  {
+
638  dbSerialPrintln("setDefaultBrightness err ");
+
639  }
+
640 
+
641  return ret;
+
642 }
+
643 
+
652 bool sleepMode(uint8_t mode)
+
653 {
+
654  bool ret = false;
+
655  char buf[10] = {0};
+
656  String cmd;
+
657  if(mode != 0 && mode != 1)
+
658  {
+
659  dbSerialPrintln("mode input ok ");
+
660  return ret;
+
661  }
+
662  utoa(mode, buf, 10);
+
663  cmd += "sleep=";
+
664  cmd += buf;
+
665  NexTouch::sendCommand(cmd.c_str());
+
666  delay(10);
+
667 
+ +
669  {
+
670  dbSerialPrintln("sleepMode ok ");
+
671  ret = true;
+
672  }
+
673  else
+
674  {
+
675  dbSerialPrintln("sleepMode err ");
+
676  }
+
677 
+
678  return ret;
+
679 }
+
680 
+
689 bool setCurrentBaudrate(uint32_t baudrate)
+
690 {
+
691  bool ret = false;
+
692  char buf[10] = {0};
+
693  String cmd;
+
694  utoa(baudrate, buf, 10);
+
695  cmd += "baud=";
+
696  cmd += buf;
+
697  NexTouch::sendCommand(cmd.c_str());
+
698  delay(10);
+
699 
+ +
701  {
+
702  dbSerialPrintln("setCurrentBaudrate ok ");
+
703  ret = true;
+
704  }
+
705  else
+
706  {
+
707  dbSerialPrintln("setCurrentBaudrate err ");
+
708  }
+
709 
+
710  return ret;
+
711 }
+
712 
+
721 bool setDefaultBaudrate(uint32_t defaultBaudrate)
+
722 {
+
723  bool ret = false;
+
724  char buf[10] = {0};
+
725  String cmd;
+
726  utoa(defaultBaudrate, buf, 10);
+
727  cmd += "bauds=";
+
728  cmd += buf;
+
729  NexTouch::sendCommand(cmd.c_str());
+
730  delay(10);
+
731 
+ +
733  {
+
734  dbSerialPrintln("setDefaultBaudrate ok ");
+
735  ret = true;
+
736  }
+
737  else
+
738  {
+
739  dbSerialPrintln("setDefaultBaudrate err ");
+
740  }
+
741 
+
742  return ret;
+
743 }
+
744 
+
745 
+
746 
+
747 
+
748 
+
749 
+
750 
+
751 
+
752 
+
753 
+
754 
+
755 
+
756 
+
757 
+
758 
+
759 
+
760 
+
761 
+
762 
+
763 
+
764 
+
NexPid getPid(void)
Get page id.
Definition: NexTouch.cpp:87
+
bool setDefaultBaudrate(uint32_t defaultBaudrate)
Set default baudrate.
Definition: NexTouch.cpp:721
+
NexTouch(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)
Constructor of Nextouch.
Definition: NexTouch.cpp:69
+
bool nexInit(void)
Init Nextion's baudrate,page id.
Definition: NexTouch.cpp:404
+
static void sendCommand(const char *cmd)
Send command to Nextion.
Definition: NexTouch.cpp:256
+
const char * getObjName(void)
Get component name.
Definition: NexTouch.cpp:107
+
bool nexLoop(NexTouch **nex_listen_list)
Call mainEventLoop,watting for Nextion's touch event.
Definition: NexTouch.cpp:420
+
void print(void)
Print current object address,page id,component id, component name,pop event function address...
Definition: NexTouch.cpp:117
+
static uint8_t mainEventLoop(NexTouch **list)
Watting for Nextion's touch event.
Definition: NexTouch.cpp:26
+
bool disableTouchFocus(void)
Disable all touch hot.
Definition: NexTouch.cpp:508
+
NexCid getCid(void)
Get component id.
Definition: NexTouch.cpp:97
+
bool setDefaultBrightness(uint8_t dimDefaultValue)
Set default backlight brightness value.
Definition: NexTouch.cpp:618
+
bool sendCurrentPageId(uint8_t *pageId)
Return current page id.
Definition: NexTouch.cpp:434
+
API of Nextion.
+
bool recoverySerialCommand(void)
Recovery serial instruction execution.
Definition: NexTouch.cpp:557
+
bool sleepMode(uint8_t mode)
Set device in sleep mode.
Definition: NexTouch.cpp:652
+
bool setCurrentBaudrate(uint32_t baudrate)
Set current baudrate.
Definition: NexTouch.cpp:689
+
bool pauseSerialCommand(void)
Pause serial instruction execution.
Definition: NexTouch.cpp:532
+
static bool recvRetNumber(uint32_t *number, uint32_t timeout=500)
Receive uint32_t data.
Definition: NexTouch.cpp:351
+
static uint16_t recvRetString(char *buffer, uint16_t len, uint32_t timeout=500)
Receive string data.
Definition: NexTouch.cpp:279
+
bool setCurrentBrightness(uint8_t dimValue)
Set current backlight brightness value.
Definition: NexTouch.cpp:583
+
static bool recvRetCommandFinished(uint32_t timeout=100)
Command is executed successfully.
Definition: NexTouch.cpp:219
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
bool touchCalibration(void)
Touch screen calibration.
Definition: NexTouch.cpp:484
+
+ + + + diff --git a/API-html/_nex_touch_8h.html b/API-html/_nex_touch_8h.html new file mode 100644 index 00000000..bcd9392 --- /dev/null +++ b/API-html/_nex_touch_8h.html @@ -0,0 +1,490 @@ + + + + + + +API: NexTouch.h File Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+Classes | +Functions
+
+
NexTouch.h File Reference
+
+
+ +

API of Nextion. +More...

+
#include <Arduino.h>
+#include "NexSerialConfig.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  NexTouch
 Root Class of Nextion Components. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

bool nexInit (void)
 Init Nextion's baudrate,page id. More...
 
bool nexLoop (NexTouch **nex_listen_list)
 Call mainEventLoop,watting for Nextion's touch event. More...
 
bool sendCurrentPageId (uint8_t *pageId)
 Return current page id. More...
 
bool touchCalibration (void)
 Touch screen calibration. More...
 
bool disableTouchFocus (void)
 Disable all touch hot. More...
 
bool pauseSerialCommand (void)
 Pause serial instruction execution. More...
 
bool recoverySerialCommand (void)
 Recovery serial instruction execution. More...
 
bool setCurrentBrightness (uint8_t dimValue)
 Set current backlight brightness value. More...
 
bool setDefaultBrightness (uint8_t dimDefaultValue)
 Set default backlight brightness value. More...
 
bool sleepMode (uint8_t mode)
 Set device in sleep mode. More...
 
bool setCurrentBaudrate (uint32_t baudrate)
 Set current baudrate. More...
 
bool setDefaultBaudrate (uint32_t baudrate)
 Set default baudrate. More...
 
+

Detailed Description

+

API of Nextion.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10
+ + +

Definition in file NexTouch.h.

+

Function Documentation

+ +
+
+ + + + + + + + +
bool disableTouchFocus (void )
+
+ +

Disable all touch hot.

+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 508 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool nexInit (void )
+
+ +

Init Nextion's baudrate,page id.

+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 404 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool nexLoop (NexTouch ** nex_listen_list)
+
+ +

Call mainEventLoop,watting for Nextion's touch event.

+
Parameters
+ + +
nex_listen_list- index to Nextion Components list.
+
+
+
Return values
+ + +
false- failed.
+
+
+ +

Definition at line 420 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool pauseSerialCommand (void )
+
+ +

Pause serial instruction execution.

+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 532 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool recoverySerialCommand (void )
+
+ +

Recovery serial instruction execution.

+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 557 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool sendCurrentPageId (uint8_t * pageId)
+
+ +

Return current page id.

+
Parameters
+ + +
pageId- output parameter,to save page id.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 434 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool setCurrentBaudrate (uint32_t baudrate)
+
+ +

Set current baudrate.

+
Parameters
+ + +
baudrate- current baudrate,it supports 2400,4800,9600,19200,38400,57600,115200.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 689 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool setCurrentBrightness (uint8_t dimValue)
+
+ +

Set current backlight brightness value.

+
Parameters
+ + +
dimValue- current backlight brightness value.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 583 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool setDefaultBaudrate (uint32_t defaultBaudrate)
+
+ +

Set default baudrate.

+
Parameters
+ + +
defaultBaudrate- default baudrate,it supports 2400,4800,9600,19200,38400,57600,115200.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 721 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool setDefaultBrightness (uint8_t dimDefaultValue)
+
+ +

Set default backlight brightness value.

+
Parameters
+ + +
dimDefaultValue- default backlight brightness value.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 618 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool sleepMode (uint8_t mode)
+
+ +

Set device in sleep mode.

+
Parameters
+ + +
mode- 1:into sleep mode,0:exit sleep mode.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 652 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool touchCalibration (void )
+
+ +

Touch screen calibration.

+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 484 of file NexTouch.cpp.

+ +
+
+
+ + + + diff --git a/API-html/_nex_touch_8h_source.html b/API-html/_nex_touch_8h_source.html new file mode 100644 index 00000000..bcc7e67 --- /dev/null +++ b/API-html/_nex_touch_8h_source.html @@ -0,0 +1,187 @@ + + + + + + +API: NexTouch.h Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexTouch.h
+
+
+Go to the documentation of this file.
1 
+
16 #ifndef __NEXTOUCH_H__
+
17 #define __NEXTOUCH_H__
+
18 #ifdef __cplusplus
+
19 #include <Arduino.h>
+
20 #include "NexSerialConfig.h"
+
21 
+
22 typedef uint8_t NexPid;
+
23 typedef uint8_t NexCid;
+
24 
+
25 typedef enum {
+
26  NEX_EVENT_POP = 0x00,
+
27  NEX_EVENT_PUSH = 0x01,
+
28  NEX_EVENT_NULL
+
29 } NexEventType;
+
30 
+
31 /*The first byte of Nextoin's return value*/
+
32 #define NEX_RET_CMD_FINISHED (0x01)
+
33 #define NEX_RET_EVENT_LAUNCHED (0x88)
+
34 #define NEX_RET_EVENT_UPGRADED (0x89)
+
35 #define NEX_RET_EVENT_TOUCH_HEAD (0x65)
+
36 #define NEX_RET_EVENT_POSITION_HEAD (0x67)
+
37 #define NEX_RET_EVENT_SLEEP_POSITION_HEAD (0x68)
+
38 #define NEX_RET_CURRENT_PAGE_ID_HEAD (0x66)
+
39 #define NEX_RET_STRING_HEAD (0x70)
+
40 #define NEX_RET_NUMBER_HEAD (0x71)
+
41 #define NEX_RET_INVALID_CMD (0x00)
+
42 #define NEX_RET_INVALID_COMPONENT_ID (0x02)
+
43 #define NEX_RET_INVALID_PAGE_ID (0x03)
+
44 #define NEX_RET_INVALID_PICTURE_ID (0x04)
+
45 #define NEX_RET_INVALID_FONT_ID (0x05)
+
46 #define NEX_RET_INVALID_BAUD (0x11)
+
47 #define NEX_RET_INVALID_VARIABLE (0x1A)
+
48 #define NEX_RET_INVALID_OPERATION (0x1B)
+
49 
+
50 
+
51 typedef void (*NexTouchEventCb)(void *ptr);
+
52 
+
57 class NexTouch
+
58 {
+
59 public: /* static methods */
+
60  static uint8_t mainEventLoop(NexTouch **list);
+
61  static void sendCommand(const char *cmd);
+
62  static bool recvRetCommandFinished(uint32_t timeout = 100);
+
63  static uint16_t recvRetString(char *buffer, uint16_t len, uint32_t timeout = 500);
+
64  static bool recvRetNumber(uint32_t *number, uint32_t timeout = 500);
+
65 
+
66 public: /* methods */
+
67  NexTouch(NexPid pid, NexCid cid, char *name,
+
68  NexTouchEventCb pop = NULL, void *pop_ptr = NULL,
+
69  NexTouchEventCb push = NULL, void *push_ptr = NULL);
+
70 
+
71  NexPid getPid(void);
+
72  NexCid getCid(void);
+
73  const char *getObjName(void);
+
74  void print(void);
+
75 
+
76 protected: /* static methods */
+
77  static bool setBrightness(uint32_t brightness);
+
78  static bool getBrightness(uint32_t *brightness);
+
79 
+
80 protected: /* methods */
+
81  void attachPush(NexTouchEventCb push, void *ptr = NULL);
+
82  void detachPush(void);
+
83  void attachPop(NexTouchEventCb pop, void *ptr = NULL);
+
84  void detachPop(void);
+
85 
+
86 private: /* static methods */
+
87  static void iterate(NexTouch **list, NexPid pid, NexCid cid, NexEventType event);
+
88 
+
89 private: /* methods */
+
90  void push(void);
+
91  void pop(void);
+
92 
+
93 private: /* static data */
+
94  static uint8_t __buffer[256];
+
95 
+
96 private: /* data */
+
97  NexPid pid; /* Page ID */
+
98  NexCid cid; /* Component ID */
+
99  char *name; /* An unique name */
+
100  NexTouchEventCb cbPush;
+
101  void *__cbpush_ptr;
+
102  NexTouchEventCb cbPop;
+
103  void *__cbpop_ptr;
+
104 };
+
105 
+
106 bool nexInit(void);
+
107 bool nexLoop(NexTouch **nex_listen_list);
+
108 bool sendCurrentPageId(uint8_t* pageId);
+
109 bool touchCalibration(void);
+
110 bool disableTouchFocus(void);
+
111 bool pauseSerialCommand(void);
+
112 bool recoverySerialCommand(void);
+
113 bool clearSerialSurplusCommand(void);
+
114 bool setCurrentBrightness(uint8_t dimValue);
+
115 bool setDefaultBrightness(uint8_t dimDefaultValue);
+
116 bool sleepMode(uint8_t mode);
+
117 bool setCurrentBaudrate(uint32_t baudrate);
+
118 bool setDefaultBaudrate(uint32_t baudrate);
+
119 
+
120 #endif /* #ifdef __cplusplus */
+
121 #endif /* #ifndef __NEXTOUCH_H__ */
+
bool setDefaultBaudrate(uint32_t baudrate)
Set default baudrate.
Definition: NexTouch.cpp:721
+
NexPid getPid(void)
Get page id.
Definition: NexTouch.cpp:87
+
bool sleepMode(uint8_t mode)
Set device in sleep mode.
Definition: NexTouch.cpp:652
+
NexTouch(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)
Constructor of Nextouch.
Definition: NexTouch.cpp:69
+
Serial configure.
+
bool setCurrentBaudrate(uint32_t baudrate)
Set current baudrate.
Definition: NexTouch.cpp:689
+
bool setDefaultBrightness(uint8_t dimDefaultValue)
Set default backlight brightness value.
Definition: NexTouch.cpp:618
+
bool nexInit(void)
Init Nextion's baudrate,page id.
Definition: NexTouch.cpp:404
+
static void sendCommand(const char *cmd)
Send command to Nextion.
Definition: NexTouch.cpp:256
+
const char * getObjName(void)
Get component name.
Definition: NexTouch.cpp:107
+
bool disableTouchFocus(void)
Disable all touch hot.
Definition: NexTouch.cpp:508
+
bool pauseSerialCommand(void)
Pause serial instruction execution.
Definition: NexTouch.cpp:532
+
void print(void)
Print current object address,page id,component id, component name,pop event function address...
Definition: NexTouch.cpp:117
+
static uint8_t mainEventLoop(NexTouch **list)
Watting for Nextion's touch event.
Definition: NexTouch.cpp:26
+
bool touchCalibration(void)
Touch screen calibration.
Definition: NexTouch.cpp:484
+
NexCid getCid(void)
Get component id.
Definition: NexTouch.cpp:97
+
bool setCurrentBrightness(uint8_t dimValue)
Set current backlight brightness value.
Definition: NexTouch.cpp:583
+
static bool recvRetNumber(uint32_t *number, uint32_t timeout=500)
Receive uint32_t data.
Definition: NexTouch.cpp:351
+
static uint16_t recvRetString(char *buffer, uint16_t len, uint32_t timeout=500)
Receive string data.
Definition: NexTouch.cpp:279
+
bool recoverySerialCommand(void)
Recovery serial instruction execution.
Definition: NexTouch.cpp:557
+
bool sendCurrentPageId(uint8_t *pageId)
Return current page id.
Definition: NexTouch.cpp:434
+
static bool recvRetCommandFinished(uint32_t timeout=100)
Command is executed successfully.
Definition: NexTouch.cpp:219
+
bool nexLoop(NexTouch **nex_listen_list)
Call mainEventLoop,watting for Nextion's touch event.
Definition: NexTouch.cpp:420
+
Root Class of Nextion Components.
Definition: NexTouch.h:57
+
+ + + + diff --git a/API-html/annotated.html b/API-html/annotated.html new file mode 100644 index 00000000..4ef87f9 --- /dev/null +++ b/API-html/annotated.html @@ -0,0 +1,75 @@ + + + + + + +API: Class List + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+ + + + + + + + + + +
 CNexButtonNexButton,subclass of NexTouch,provides simple methods to control button component
 CNexCropNexCrop,subclass of NexTouch,provides simple methods to control crop component
 CNexHotspotNexHotspot,subclass of NexTouch,provides simple methods to control hotspot component
 CNexPageNexPage,subclass of NexTouch,provides simple methods to control page component
 CNexPictureNexPicture,subclass of NexTouch,provides simple methods to control picture component
 CNexPointerNexPointer,subclass of NexTouch,provides simple methods to control pointer component
 CNexProgressBarNexProgressBar,subclass of NexTouch,provides simple methods to control progress bar component
 CNexTextNexText,subclass of NexTouch,provides simple methods to control text component
 CNexTouchRoot Class of Nextion Components
+
+
+ + + + diff --git a/API-html/bc_s.png b/API-html/bc_s.png new file mode 100644 index 00000000..d0d0e79 Binary files /dev/null and b/API-html/bc_s.png differ diff --git a/API-html/bdwn.png b/API-html/bdwn.png new file mode 100644 index 00000000..9e47d9a Binary files /dev/null and b/API-html/bdwn.png differ diff --git a/API-html/class_nex_button-members.html b/API-html/class_nex_button-members.html new file mode 100644 index 00000000..eac6c7b --- /dev/null +++ b/API-html/class_nex_button-members.html @@ -0,0 +1,80 @@ + + + + + + +API: Member List + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexButton Member List
+
+
+ +

This is the complete list of members for NexButton, including all inherited members.

+ + + + + + + + + + + + + + + + +
attachPop(NexTouchEventCb pop, void *ptr=NULL)NexButton
detachPop(void)NexButton
getCid(void)NexTouch
getObjName(void)NexTouch
getPid(void)NexTouch
getText(char *buffer, uint16_t len)NexButton
mainEventLoop(NexTouch **list)NexTouchstatic
NexButton(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)NexButton
NexTouch(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)NexTouch
print(void)NexTouch
recvRetCommandFinished(uint32_t timeout=100)NexTouchstatic
recvRetNumber(uint32_t *number, uint32_t timeout=500)NexTouchstatic
recvRetString(char *buffer, uint16_t len, uint32_t timeout=500)NexTouchstatic
sendCommand(const char *cmd)NexTouchstatic
setText(const char *buffer)NexButton
+ + + + diff --git a/API-html/class_nex_button.html b/API-html/class_nex_button.html new file mode 100644 index 00000000..11748e8 --- /dev/null +++ b/API-html/class_nex_button.html @@ -0,0 +1,257 @@ + + + + + + +API: NexButton Class Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+Public Member Functions | +List of all members
+
+
NexButton Class Reference
+
+
+ +

NexButton,subclass of NexTouch,provides simple methods to control button component. + More...

+ +

#include <NexButton.h>

+
+Inheritance diagram for NexButton:
+
+
+ + +NexTouch + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

NexButton (NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)
 Constructor,inherited NexTouch's constructor function.
 
void attachPop (NexTouchEventCb pop, void *ptr=NULL)
 Register button pop callback function. More...
 
+void detachPop (void)
 Unload button pop callback function.
 
uint16_t getText (char *buffer, uint16_t len)
 Get text value from button component. More...
 
bool setText (const char *buffer)
 Set text value of button component. More...
 
- Public Member Functions inherited from NexTouch
 NexTouch (NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)
 Constructor of Nextouch. More...
 
NexPid getPid (void)
 Get page id. More...
 
NexCid getCid (void)
 Get component id. More...
 
const char * getObjName (void)
 Get component name. More...
 
+void print (void)
 Print current object address,page id,component id, component name,pop event function address,push event function address.
 
+ + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from NexTouch
static uint8_t mainEventLoop (NexTouch **list)
 Watting for Nextion's touch event. More...
 
static void sendCommand (const char *cmd)
 Send command to Nextion. More...
 
static bool recvRetCommandFinished (uint32_t timeout=100)
 Command is executed successfully. More...
 
static uint16_t recvRetString (char *buffer, uint16_t len, uint32_t timeout=500)
 Receive string data. More...
 
static bool recvRetNumber (uint32_t *number, uint32_t timeout=500)
 Receive uint32_t data. More...
 
+

Detailed Description

+

NexButton,subclass of NexTouch,provides simple methods to control button component.

+
Examples:
CompButton.ino, CompPointer.ino, CompProgressBar.ino, and CompText.ino.
+
+

Definition at line 25 of file NexButton.h.

+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NexButton::attachPop (NexTouchEventCb pop,
void * ptr = NULL 
)
+
+ +

Register button pop callback function.

+
Parameters
+ + + +
pop- the pointer to button pop callback function.
ptr- the parameter to be transmitted to button pop callback function.
+
+
+
Examples:
CompButton.ino, CompPointer.ino, and CompProgressBar.ino.
+
+

Definition at line 70 of file NexButton.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
uint16_t NexButton::getText (char * buffer,
uint16_t len 
)
+
+ +

Get text value from button component.

+
Parameters
+ + + +
buffer- text buffer.
len- text buffer length.
+
+
+
Returns
the text buffer length
+
Examples:
CompButton.ino.
+
+

Definition at line 35 of file NexButton.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool NexButton::setText (const char * buffer)
+
+ +

Set text value of button component.

+
Parameters
+ + +
buffer- text buffer.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+
Examples:
CompButton.ino.
+
+

Definition at line 53 of file NexButton.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/API-html/class_nex_button.png b/API-html/class_nex_button.png new file mode 100644 index 00000000..0cd1db0 Binary files /dev/null and b/API-html/class_nex_button.png differ diff --git a/API-html/class_nex_crop-members.html b/API-html/class_nex_crop-members.html new file mode 100644 index 00000000..6033159 --- /dev/null +++ b/API-html/class_nex_crop-members.html @@ -0,0 +1,78 @@ + + + + + + +API: Member List + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexCrop Member List
+
+
+ +

This is the complete list of members for NexCrop, including all inherited members.

+ + + + + + + + + + + + + + +
attachPop(NexTouchEventCb pop, void *ptr=NULL)NexCrop
detachPop(void)NexCrop
getCid(void)NexTouch
getObjName(void)NexTouch
getPid(void)NexTouch
mainEventLoop(NexTouch **list)NexTouchstatic
NexCrop(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)NexCrop
NexTouch(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)NexTouch
print(void)NexTouch
recvRetCommandFinished(uint32_t timeout=100)NexTouchstatic
recvRetNumber(uint32_t *number, uint32_t timeout=500)NexTouchstatic
recvRetString(char *buffer, uint16_t len, uint32_t timeout=500)NexTouchstatic
sendCommand(const char *cmd)NexTouchstatic
+ + + + diff --git a/API-html/class_nex_crop.html b/API-html/class_nex_crop.html new file mode 100644 index 00000000..95e6c47 --- /dev/null +++ b/API-html/class_nex_crop.html @@ -0,0 +1,178 @@ + + + + + + +API: NexCrop Class Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+Public Member Functions | +List of all members
+
+
NexCrop Class Reference
+
+
+ +

NexCrop,subclass of NexTouch,provides simple methods to control crop component. + More...

+ +

#include <NexCrop.h>

+
+Inheritance diagram for NexCrop:
+
+
+ + +NexTouch + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

NexCrop (NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)
 Constructor,inherited NexTouch's constructor function.
 
void attachPop (NexTouchEventCb pop, void *ptr=NULL)
 Register crop pop callback function. More...
 
+void detachPop (void)
 Unload crop pop callback function.
 
- Public Member Functions inherited from NexTouch
 NexTouch (NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)
 Constructor of Nextouch. More...
 
NexPid getPid (void)
 Get page id. More...
 
NexCid getCid (void)
 Get component id. More...
 
const char * getObjName (void)
 Get component name. More...
 
+void print (void)
 Print current object address,page id,component id, component name,pop event function address,push event function address.
 
+ + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from NexTouch
static uint8_t mainEventLoop (NexTouch **list)
 Watting for Nextion's touch event. More...
 
static void sendCommand (const char *cmd)
 Send command to Nextion. More...
 
static bool recvRetCommandFinished (uint32_t timeout=100)
 Command is executed successfully. More...
 
static uint16_t recvRetString (char *buffer, uint16_t len, uint32_t timeout=500)
 Receive string data. More...
 
static bool recvRetNumber (uint32_t *number, uint32_t timeout=500)
 Receive uint32_t data. More...
 
+

Detailed Description

+

NexCrop,subclass of NexTouch,provides simple methods to control crop component.

+
Examples:
CompCrop.ino.
+
+

Definition at line 25 of file NexCrop.h.

+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NexCrop::attachPop (NexTouchEventCb pop,
void * ptr = NULL 
)
+
+ +

Register crop pop callback function.

+
Parameters
+ + + +
pop- the pointer to crop pop callback function.
ptr- the parameter to be transmitted to crop pop callback function.
+
+
+
Examples:
CompCrop.ino.
+
+

Definition at line 72 of file NexCrop.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/API-html/class_nex_crop.png b/API-html/class_nex_crop.png new file mode 100644 index 00000000..12b09a2 Binary files /dev/null and b/API-html/class_nex_crop.png differ diff --git a/API-html/class_nex_hotspot-members.html b/API-html/class_nex_hotspot-members.html new file mode 100644 index 00000000..172329a --- /dev/null +++ b/API-html/class_nex_hotspot-members.html @@ -0,0 +1,80 @@ + + + + + + +API: Member List + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexHotspot Member List
+
+
+ +

This is the complete list of members for NexHotspot, including all inherited members.

+ + + + + + + + + + + + + + + + +
attachPop(NexTouchEventCb pop, void *ptr=NULL)NexHotspot
attachPush(NexTouchEventCb push, void *ptr=NULL)NexHotspot
detachPop(void)NexHotspot
detachPush(void)NexHotspot
getCid(void)NexTouch
getObjName(void)NexTouch
getPid(void)NexTouch
mainEventLoop(NexTouch **list)NexTouchstatic
NexHotspot(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)NexHotspot
NexTouch(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)NexTouch
print(void)NexTouch
recvRetCommandFinished(uint32_t timeout=100)NexTouchstatic
recvRetNumber(uint32_t *number, uint32_t timeout=500)NexTouchstatic
recvRetString(char *buffer, uint16_t len, uint32_t timeout=500)NexTouchstatic
sendCommand(const char *cmd)NexTouchstatic
+ + + + diff --git a/API-html/class_nex_hotspot.html b/API-html/class_nex_hotspot.html new file mode 100644 index 00000000..f5e83f8 --- /dev/null +++ b/API-html/class_nex_hotspot.html @@ -0,0 +1,223 @@ + + + + + + +API: NexHotspot Class Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+Public Member Functions | +List of all members
+
+
NexHotspot Class Reference
+
+
+ +

NexHotspot,subclass of NexTouch,provides simple methods to control hotspot component. + More...

+ +

#include <NexHotspot.h>

+
+Inheritance diagram for NexHotspot:
+
+
+ + +NexTouch + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

NexHotspot (NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)
 Constructor,inherited NexTouch's constructor function.
 
void attachPush (NexTouchEventCb push, void *ptr=NULL)
 Register hotspot push callback function. More...
 
+void detachPush (void)
 Unload hotsopt push callback function.
 
void attachPop (NexTouchEventCb pop, void *ptr=NULL)
 Register hotspot pop callback function. More...
 
+void detachPop (void)
 Unload hotsopt pop callback function.
 
- Public Member Functions inherited from NexTouch
 NexTouch (NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)
 Constructor of Nextouch. More...
 
NexPid getPid (void)
 Get page id. More...
 
NexCid getCid (void)
 Get component id. More...
 
const char * getObjName (void)
 Get component name. More...
 
+void print (void)
 Print current object address,page id,component id, component name,pop event function address,push event function address.
 
+ + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from NexTouch
static uint8_t mainEventLoop (NexTouch **list)
 Watting for Nextion's touch event. More...
 
static void sendCommand (const char *cmd)
 Send command to Nextion. More...
 
static bool recvRetCommandFinished (uint32_t timeout=100)
 Command is executed successfully. More...
 
static uint16_t recvRetString (char *buffer, uint16_t len, uint32_t timeout=500)
 Receive string data. More...
 
static bool recvRetNumber (uint32_t *number, uint32_t timeout=500)
 Receive uint32_t data. More...
 
+

Detailed Description

+

NexHotspot,subclass of NexTouch,provides simple methods to control hotspot component.

+
Examples:
CompHotspot.ino.
+
+

Definition at line 25 of file NexHotspot.h.

+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NexHotspot::attachPop (NexTouchEventCb pop,
void * ptr = NULL 
)
+
+ +

Register hotspot pop callback function.

+
Parameters
+ + + +
pop- the pointer to hotspot pot callback function.
ptr- the parameter to be transmitted to hotspot pop callback function.
+
+
+
Examples:
CompHotspot.ino.
+
+

Definition at line 55 of file NexHotspot.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void NexHotspot::attachPush (NexTouchEventCb push,
void * ptr = NULL 
)
+
+ +

Register hotspot push callback function.

+
Parameters
+ + + +
push- the pointer to hotspot push callback function.
ptr- the parameter to be transmitted to hotspot push callback function.
+
+
+
Examples:
CompHotspot.ino.
+
+

Definition at line 35 of file NexHotspot.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/API-html/class_nex_hotspot.png b/API-html/class_nex_hotspot.png new file mode 100644 index 00000000..df0d708 Binary files /dev/null and b/API-html/class_nex_hotspot.png differ diff --git a/API-html/class_nex_page-members.html b/API-html/class_nex_page-members.html new file mode 100644 index 00000000..43219b0 --- /dev/null +++ b/API-html/class_nex_page-members.html @@ -0,0 +1,79 @@ + + + + + + +API: Member List + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexPage Member List
+
+
+ +

This is the complete list of members for NexPage, including all inherited members.

+ + + + + + + + + + + + + + + +
attachPop(NexTouchEventCb pop, void *ptr=NULL)NexPage
detachPop(void)NexPage
getCid(void)NexTouch
getObjName(void)NexTouch
getPid(void)NexTouch
mainEventLoop(NexTouch **list)NexTouchstatic
NexPage(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)NexPage
NexTouch(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)NexTouch
print(void)NexTouch
recvRetCommandFinished(uint32_t timeout=100)NexTouchstatic
recvRetNumber(uint32_t *number, uint32_t timeout=500)NexTouchstatic
recvRetString(char *buffer, uint16_t len, uint32_t timeout=500)NexTouchstatic
sendCommand(const char *cmd)NexTouchstatic
show(void)NexPage
+ + + + diff --git a/API-html/class_nex_page.html b/API-html/class_nex_page.html new file mode 100644 index 00000000..6911f33 --- /dev/null +++ b/API-html/class_nex_page.html @@ -0,0 +1,209 @@ + + + + + + +API: NexPage Class Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+Public Member Functions | +List of all members
+
+
NexPage Class Reference
+
+
+ +

NexPage,subclass of NexTouch,provides simple methods to control page component. + More...

+ +

#include <NexPage.h>

+
+Inheritance diagram for NexPage:
+
+
+ + +NexTouch + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

NexPage (NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)
 Constructor,inherited NexTouch's constructor function.
 
bool show (void)
 Change page. More...
 
void attachPop (NexTouchEventCb pop, void *ptr=NULL)
 Register page pop callback function. More...
 
+void detachPop (void)
 Unload page pop callback function.
 
- Public Member Functions inherited from NexTouch
 NexTouch (NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)
 Constructor of Nextouch. More...
 
NexPid getPid (void)
 Get page id. More...
 
NexCid getCid (void)
 Get component id. More...
 
const char * getObjName (void)
 Get component name. More...
 
+void print (void)
 Print current object address,page id,component id, component name,pop event function address,push event function address.
 
+ + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from NexTouch
static uint8_t mainEventLoop (NexTouch **list)
 Watting for Nextion's touch event. More...
 
static void sendCommand (const char *cmd)
 Send command to Nextion. More...
 
static bool recvRetCommandFinished (uint32_t timeout=100)
 Command is executed successfully. More...
 
static uint16_t recvRetString (char *buffer, uint16_t len, uint32_t timeout=500)
 Receive string data. More...
 
static bool recvRetNumber (uint32_t *number, uint32_t timeout=500)
 Receive uint32_t data. More...
 
+

Detailed Description

+

NexPage,subclass of NexTouch,provides simple methods to control page component.

+
Examples:
CompPage.ino.
+
+

Definition at line 25 of file NexPage.h.

+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NexPage::attachPop (NexTouchEventCb pop,
void * ptr = NULL 
)
+
+ +

Register page pop callback function.

+
Parameters
+ + + +
pop- the pointer to page pop callback function.
ptr- the parameter to be transmitted to page pop callback function.
+
+
+
Examples:
CompPage.ino.
+
+

Definition at line 55 of file NexPage.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool NexPage::show (void )
+
+ +

Change page.

+
Return values
+ + + +
true- success.
false- failed.
+
+
+
Examples:
CompPage.ino.
+
+

Definition at line 33 of file NexPage.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/API-html/class_nex_page.png b/API-html/class_nex_page.png new file mode 100644 index 00000000..f9d710e Binary files /dev/null and b/API-html/class_nex_page.png differ diff --git a/API-html/class_nex_picture-members.html b/API-html/class_nex_picture-members.html new file mode 100644 index 00000000..119ae71 --- /dev/null +++ b/API-html/class_nex_picture-members.html @@ -0,0 +1,80 @@ + + + + + + +API: Member List + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexPicture Member List
+
+
+ +

This is the complete list of members for NexPicture, including all inherited members.

+ + + + + + + + + + + + + + + + +
attachPop(NexTouchEventCb pop, void *ptr=NULL)NexPicture
detachPop(void)NexPicture
getCid(void)NexTouch
getObjName(void)NexTouch
getPic(uint32_t *number)NexPicture
getPid(void)NexTouch
mainEventLoop(NexTouch **list)NexTouchstatic
NexPicture(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)NexPicture
NexTouch(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)NexTouch
print(void)NexTouch
recvRetCommandFinished(uint32_t timeout=100)NexTouchstatic
recvRetNumber(uint32_t *number, uint32_t timeout=500)NexTouchstatic
recvRetString(char *buffer, uint16_t len, uint32_t timeout=500)NexTouchstatic
sendCommand(const char *cmd)NexTouchstatic
setPic(uint32_t number)NexPicture
+ + + + diff --git a/API-html/class_nex_picture.html b/API-html/class_nex_picture.html new file mode 100644 index 00000000..f5028f4 --- /dev/null +++ b/API-html/class_nex_picture.html @@ -0,0 +1,252 @@ + + + + + + +API: NexPicture Class Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+Public Member Functions | +List of all members
+
+
NexPicture Class Reference
+
+
+ +

NexPicture,subclass of NexTouch,provides simple methods to control picture component. + More...

+ +

#include <NexPicture.h>

+
+Inheritance diagram for NexPicture:
+
+
+ + +NexTouch + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

NexPicture (NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)
 Constructor,inherited NexTouch's constructor function.
 
void attachPop (NexTouchEventCb pop, void *ptr=NULL)
 Register picture pop callback function. More...
 
+void detachPop (void)
 Unload picture pop callback function.
 
bool getPic (uint32_t *number)
 Get picture's number. More...
 
bool setPic (uint32_t number)
 Set picture's number. More...
 
- Public Member Functions inherited from NexTouch
 NexTouch (NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)
 Constructor of Nextouch. More...
 
NexPid getPid (void)
 Get page id. More...
 
NexCid getCid (void)
 Get component id. More...
 
const char * getObjName (void)
 Get component name. More...
 
+void print (void)
 Print current object address,page id,component id, component name,pop event function address,push event function address.
 
+ + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from NexTouch
static uint8_t mainEventLoop (NexTouch **list)
 Watting for Nextion's touch event. More...
 
static void sendCommand (const char *cmd)
 Send command to Nextion. More...
 
static bool recvRetCommandFinished (uint32_t timeout=100)
 Command is executed successfully. More...
 
static uint16_t recvRetString (char *buffer, uint16_t len, uint32_t timeout=500)
 Receive string data. More...
 
static bool recvRetNumber (uint32_t *number, uint32_t timeout=500)
 Receive uint32_t data. More...
 
+

Detailed Description

+

NexPicture,subclass of NexTouch,provides simple methods to control picture component.

+
Examples:
CompPicture.ino.
+
+

Definition at line 25 of file NexPicture.h.

+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NexPicture::attachPop (NexTouchEventCb pop,
void * ptr = NULL 
)
+
+ +

Register picture pop callback function.

+
Parameters
+ + + +
pop- the pointer to picture pop callback function.
ptr- the parameter to be transmitted to picture pop callback function.
+
+
+
Examples:
CompPicture.ino.
+
+

Definition at line 72 of file NexPicture.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool NexPicture::getPic (uint32_t * number)
+
+ +

Get picture's number.

+
Parameters
+ + +
number- an output parameter to save picture number.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+
Examples:
CompPicture.ino.
+
+

Definition at line 35 of file NexPicture.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool NexPicture::setPic (uint32_t number)
+
+ +

Set picture's number.

+
Parameters
+ + +
number-the picture number.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+
Examples:
CompPicture.ino.
+
+

Definition at line 52 of file NexPicture.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/API-html/class_nex_picture.png b/API-html/class_nex_picture.png new file mode 100644 index 00000000..b68679e Binary files /dev/null and b/API-html/class_nex_picture.png differ diff --git a/API-html/class_nex_pointer-members.html b/API-html/class_nex_pointer-members.html new file mode 100644 index 00000000..ffd2be0 --- /dev/null +++ b/API-html/class_nex_pointer-members.html @@ -0,0 +1,78 @@ + + + + + + +API: Member List + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexPointer Member List
+
+
+ +

This is the complete list of members for NexPointer, including all inherited members.

+ + + + + + + + + + + + + + +
getCid(void)NexTouch
getObjName(void)NexTouch
getPid(void)NexTouch
getValue(uint32_t *number)NexPointer
mainEventLoop(NexTouch **list)NexTouchstatic
NexPointer(NexPid pid, NexCid cid, char *name)NexPointer
NexTouch(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)NexTouch
print(void)NexTouch
recvRetCommandFinished(uint32_t timeout=100)NexTouchstatic
recvRetNumber(uint32_t *number, uint32_t timeout=500)NexTouchstatic
recvRetString(char *buffer, uint16_t len, uint32_t timeout=500)NexTouchstatic
sendCommand(const char *cmd)NexTouchstatic
setValue(uint32_t number)NexPointer
+ + + + diff --git a/API-html/class_nex_pointer.html b/API-html/class_nex_pointer.html new file mode 100644 index 00000000..21f32af --- /dev/null +++ b/API-html/class_nex_pointer.html @@ -0,0 +1,207 @@ + + + + + + +API: NexPointer Class Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+Public Member Functions | +List of all members
+
+
NexPointer Class Reference
+
+
+ +

NexPointer,subclass of NexTouch,provides simple methods to control pointer component. + More...

+ +

#include <NexPointer.h>

+
+Inheritance diagram for NexPointer:
+
+
+ + +NexTouch + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

NexPointer (NexPid pid, NexCid cid, char *name)
 Constructor,inherited NexTouch's constructor function.
 
bool getValue (uint32_t *number)
 Get the value of pointer. More...
 
bool setValue (uint32_t number)
 Set the value of pointer. More...
 
- Public Member Functions inherited from NexTouch
 NexTouch (NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)
 Constructor of Nextouch. More...
 
NexPid getPid (void)
 Get page id. More...
 
NexCid getCid (void)
 Get component id. More...
 
const char * getObjName (void)
 Get component name. More...
 
+void print (void)
 Print current object address,page id,component id, component name,pop event function address,push event function address.
 
+ + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from NexTouch
static uint8_t mainEventLoop (NexTouch **list)
 Watting for Nextion's touch event. More...
 
static void sendCommand (const char *cmd)
 Send command to Nextion. More...
 
static bool recvRetCommandFinished (uint32_t timeout=100)
 Command is executed successfully. More...
 
static uint16_t recvRetString (char *buffer, uint16_t len, uint32_t timeout=500)
 Receive string data. More...
 
static bool recvRetNumber (uint32_t *number, uint32_t timeout=500)
 Receive uint32_t data. More...
 
+

Detailed Description

+

NexPointer,subclass of NexTouch,provides simple methods to control pointer component.

+
Examples:
CompPointer.ino.
+
+

Definition at line 10 of file NexPointer.h.

+

Member Function Documentation

+ +
+
+ + + + + + + + +
bool NexPointer::getValue (uint32_t * number)
+
+ +

Get the value of pointer.

+
Parameters
+ + +
number- an output parameter to save pointer's value.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+
Examples:
CompPointer.ino.
+
+

Definition at line 20 of file NexPointer.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool NexPointer::setValue (uint32_t number)
+
+ +

Set the value of pointer.

+
Parameters
+ + +
number- the value of pointer.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+
Examples:
CompPointer.ino.
+
+

Definition at line 37 of file NexPointer.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/API-html/class_nex_pointer.png b/API-html/class_nex_pointer.png new file mode 100644 index 00000000..87aa56e Binary files /dev/null and b/API-html/class_nex_pointer.png differ diff --git a/API-html/class_nex_progress_bar-members.html b/API-html/class_nex_progress_bar-members.html new file mode 100644 index 00000000..70130c3 --- /dev/null +++ b/API-html/class_nex_progress_bar-members.html @@ -0,0 +1,78 @@ + + + + + + +API: Member List + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexProgressBar Member List
+
+
+ +

This is the complete list of members for NexProgressBar, including all inherited members.

+ + + + + + + + + + + + + + +
getCid(void)NexTouch
getObjName(void)NexTouch
getPid(void)NexTouch
getValue(uint32_t *number)NexProgressBar
mainEventLoop(NexTouch **list)NexTouchstatic
NexProgressBar(NexPid pid, NexCid cid, char *name)NexProgressBar
NexTouch(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)NexTouch
print(void)NexTouch
recvRetCommandFinished(uint32_t timeout=100)NexTouchstatic
recvRetNumber(uint32_t *number, uint32_t timeout=500)NexTouchstatic
recvRetString(char *buffer, uint16_t len, uint32_t timeout=500)NexTouchstatic
sendCommand(const char *cmd)NexTouchstatic
setValue(uint32_t number)NexProgressBar
+ + + + diff --git a/API-html/class_nex_progress_bar.html b/API-html/class_nex_progress_bar.html new file mode 100644 index 00000000..f7fc6be --- /dev/null +++ b/API-html/class_nex_progress_bar.html @@ -0,0 +1,207 @@ + + + + + + +API: NexProgressBar Class Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+Public Member Functions | +List of all members
+
+
NexProgressBar Class Reference
+
+
+ +

NexProgressBar,subclass of NexTouch,provides simple methods to control progress bar component. + More...

+ +

#include <NexProgressBar.h>

+
+Inheritance diagram for NexProgressBar:
+
+
+ + +NexTouch + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

NexProgressBar (NexPid pid, NexCid cid, char *name)
 Constructor,inherited NexTouch's constructor function.
 
bool getValue (uint32_t *number)
 Get the value of progress bar. More...
 
bool setValue (uint32_t number)
 Set the value of progress bar. More...
 
- Public Member Functions inherited from NexTouch
 NexTouch (NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)
 Constructor of Nextouch. More...
 
NexPid getPid (void)
 Get page id. More...
 
NexCid getCid (void)
 Get component id. More...
 
const char * getObjName (void)
 Get component name. More...
 
+void print (void)
 Print current object address,page id,component id, component name,pop event function address,push event function address.
 
+ + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from NexTouch
static uint8_t mainEventLoop (NexTouch **list)
 Watting for Nextion's touch event. More...
 
static void sendCommand (const char *cmd)
 Send command to Nextion. More...
 
static bool recvRetCommandFinished (uint32_t timeout=100)
 Command is executed successfully. More...
 
static uint16_t recvRetString (char *buffer, uint16_t len, uint32_t timeout=500)
 Receive string data. More...
 
static bool recvRetNumber (uint32_t *number, uint32_t timeout=500)
 Receive uint32_t data. More...
 
+

Detailed Description

+

NexProgressBar,subclass of NexTouch,provides simple methods to control progress bar component.

+
Examples:
CompProgressBar.ino.
+
+

Definition at line 25 of file NexProgressBar.h.

+

Member Function Documentation

+ +
+
+ + + + + + + + +
bool NexProgressBar::getValue (uint32_t * number)
+
+ +

Get the value of progress bar.

+
Parameters
+ + +
number- an output parameter to save the value of porgress bar.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+
Examples:
CompProgressBar.ino.
+
+

Definition at line 35 of file NexProgressBar.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool NexProgressBar::setValue (uint32_t number)
+
+ +

Set the value of progress bar.

+
Parameters
+ + +
number- the value of progress bar.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+
Examples:
CompProgressBar.ino.
+
+

Definition at line 52 of file NexProgressBar.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/API-html/class_nex_progress_bar.png b/API-html/class_nex_progress_bar.png new file mode 100644 index 00000000..bcb63f0 Binary files /dev/null and b/API-html/class_nex_progress_bar.png differ diff --git a/API-html/class_nex_text-members.html b/API-html/class_nex_text-members.html new file mode 100644 index 00000000..f349694 --- /dev/null +++ b/API-html/class_nex_text-members.html @@ -0,0 +1,80 @@ + + + + + + +API: Member List + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexText Member List
+
+
+ +

This is the complete list of members for NexText, including all inherited members.

+ + + + + + + + + + + + + + + + +
attachPop(NexTouchEventCb pop, void *ptr=NULL)NexText
detachPop(void)NexText
getCid(void)NexTouch
getObjName(void)NexTouch
getPid(void)NexTouch
getText(char *buffer, uint16_t len)NexText
mainEventLoop(NexTouch **list)NexTouchstatic
NexText(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)NexText
NexTouch(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)NexTouch
print(void)NexTouch
recvRetCommandFinished(uint32_t timeout=100)NexTouchstatic
recvRetNumber(uint32_t *number, uint32_t timeout=500)NexTouchstatic
recvRetString(char *buffer, uint16_t len, uint32_t timeout=500)NexTouchstatic
sendCommand(const char *cmd)NexTouchstatic
setText(const char *buffer)NexText
+ + + + diff --git a/API-html/class_nex_text.html b/API-html/class_nex_text.html new file mode 100644 index 00000000..c480fe2 --- /dev/null +++ b/API-html/class_nex_text.html @@ -0,0 +1,256 @@ + + + + + + +API: NexText Class Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+Public Member Functions | +List of all members
+
+
NexText Class Reference
+
+
+ +

NexText,subclass of NexTouch,provides simple methods to control text component. + More...

+ +

#include <NexText.h>

+
+Inheritance diagram for NexText:
+
+
+ + +NexTouch + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

NexText (NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL)
 Constructor,inherited NexTouch's constructor function.
 
void attachPop (NexTouchEventCb pop, void *ptr=NULL)
 Register text pop callback function. More...
 
+void detachPop (void)
 Unload text pop callback function.
 
uint16_t getText (char *buffer, uint16_t len)
 Get the value of text. More...
 
bool setText (const char *buffer)
 Set the value of text. More...
 
- Public Member Functions inherited from NexTouch
 NexTouch (NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)
 Constructor of Nextouch. More...
 
NexPid getPid (void)
 Get page id. More...
 
NexCid getCid (void)
 Get component id. More...
 
const char * getObjName (void)
 Get component name. More...
 
+void print (void)
 Print current object address,page id,component id, component name,pop event function address,push event function address.
 
+ + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from NexTouch
static uint8_t mainEventLoop (NexTouch **list)
 Watting for Nextion's touch event. More...
 
static void sendCommand (const char *cmd)
 Send command to Nextion. More...
 
static bool recvRetCommandFinished (uint32_t timeout=100)
 Command is executed successfully. More...
 
static uint16_t recvRetString (char *buffer, uint16_t len, uint32_t timeout=500)
 Receive string data. More...
 
static bool recvRetNumber (uint32_t *number, uint32_t timeout=500)
 Receive uint32_t data. More...
 
+

Detailed Description

+

NexText,subclass of NexTouch,provides simple methods to control text component.

+
Examples:
CompText.ino.
+
+

Definition at line 25 of file NexText.h.

+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NexText::attachPop (NexTouchEventCb pop,
void * ptr = NULL 
)
+
+ +

Register text pop callback function.

+
Parameters
+ + + +
pop- the pointer to text pop callback function.
ptr- the parameter to be transmitted to text pop callback function.
+
+
+ +

Definition at line 70 of file NexText.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
uint16_t NexText::getText (char * buffer,
uint16_t len 
)
+
+ +

Get the value of text.

+
Parameters
+ + + +
buffer- text value buffer.
len- the length of text value buffer.
+
+
+
Returns
the length of text value buffer.
+
Examples:
CompText.ino.
+
+

Definition at line 35 of file NexText.cpp.

+ +
+
+ +
+
+ + + + + + + + +
bool NexText::setText (const char * buffer)
+
+ +

Set the value of text.

+
Parameters
+ + +
buffer- text value buffer.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+
Examples:
CompText.ino.
+
+

Definition at line 53 of file NexText.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/API-html/class_nex_text.png b/API-html/class_nex_text.png new file mode 100644 index 00000000..5ff4643 Binary files /dev/null and b/API-html/class_nex_text.png differ diff --git a/API-html/class_nex_touch-members.html b/API-html/class_nex_touch-members.html new file mode 100644 index 00000000..2b0269a --- /dev/null +++ b/API-html/class_nex_touch-members.html @@ -0,0 +1,75 @@ + + + + + + +API: Member List + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
NexTouch Member List
+
+
+ +

This is the complete list of members for NexTouch, including all inherited members.

+ + + + + + + + + + + +
getCid(void)NexTouch
getObjName(void)NexTouch
getPid(void)NexTouch
mainEventLoop(NexTouch **list)NexTouchstatic
NexTouch(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)NexTouch
print(void)NexTouch
recvRetCommandFinished(uint32_t timeout=100)NexTouchstatic
recvRetNumber(uint32_t *number, uint32_t timeout=500)NexTouchstatic
recvRetString(char *buffer, uint16_t len, uint32_t timeout=500)NexTouchstatic
sendCommand(const char *cmd)NexTouchstatic
+ + + + diff --git a/API-html/class_nex_touch.html b/API-html/class_nex_touch.html new file mode 100644 index 00000000..cfb802c --- /dev/null +++ b/API-html/class_nex_touch.html @@ -0,0 +1,485 @@ + + + + + + +API: NexTouch Class Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +List of all members
+
+
NexTouch Class Reference
+
+
+ +

Root Class of Nextion Components. + More...

+ +

#include <NexTouch.h>

+
+Inheritance diagram for NexTouch:
+
+
+ + +NexButton +NexCrop +NexHotspot +NexPage +NexPicture +NexPointer +NexProgressBar +NexText + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

 NexTouch (NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)
 Constructor of Nextouch. More...
 
NexPid getPid (void)
 Get page id. More...
 
NexCid getCid (void)
 Get component id. More...
 
const char * getObjName (void)
 Get component name. More...
 
+void print (void)
 Print current object address,page id,component id, component name,pop event function address,push event function address.
 
+ + + + + + + + + + + + + + + + +

+Static Public Member Functions

static uint8_t mainEventLoop (NexTouch **list)
 Watting for Nextion's touch event. More...
 
static void sendCommand (const char *cmd)
 Send command to Nextion. More...
 
static bool recvRetCommandFinished (uint32_t timeout=100)
 Command is executed successfully. More...
 
static uint16_t recvRetString (char *buffer, uint16_t len, uint32_t timeout=500)
 Receive string data. More...
 
static bool recvRetNumber (uint32_t *number, uint32_t timeout=500)
 Receive uint32_t data. More...
 
+

Detailed Description

+

Root Class of Nextion Components.

+
Examples:
CompButton.ino, CompCrop.ino, CompHotspot.ino, CompPage.ino, CompPicture.ino, CompPointer.ino, CompProgressBar.ino, and CompText.ino.
+
+

Definition at line 57 of file NexTouch.h.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NexTouch::NexTouch (NexPid pid,
NexCid cid,
char * name,
NexTouchEventCb pop = NULL,
void * pop_ptr = NULL,
NexTouchEventCb push = NULL,
void * push_ptr = NULL 
)
+
+ +

Constructor of Nextouch.

+
Parameters
+ + + + + + + + +
pid- page id.
cid- component id.
name- component name.
pop- pop event function pointer.
pop_ptr- the parameter was transmitted to pop event function pointer.
push- push event function pointer.
push_ptr- the parameter was transmitted to push event function pointer.
+
+
+ +

Definition at line 69 of file NexTouch.cpp.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + +
NexCid NexTouch::getCid (void )
+
+ +

Get component id.

+
Returns
the id of component.
+ +

Definition at line 97 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
const char * NexTouch::getObjName (void )
+
+ +

Get component name.

+
Returns
the name of component.
+ +

Definition at line 107 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + + + + +
NexPid NexTouch::getPid (void )
+
+ +

Get page id.

+
Returns
the id of page.
+ +

Definition at line 87 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
uint8_t NexTouch::mainEventLoop (NexTouch ** list)
+
+static
+
+ +

Watting for Nextion's touch event.

+
Parameters
+ + +
list- index to Nextion Components list.
+
+
+ +

Definition at line 26 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool NexTouch::recvRetCommandFinished (uint32_t timeout = 100)
+
+static
+
+ +

Command is executed successfully.

+
Parameters
+ + +
timeout- set timeout time.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 219 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool NexTouch::recvRetNumber (uint32_t * number,
uint32_t timeout = 500 
)
+
+static
+
+ +

Receive uint32_t data.

+
Parameters
+ + + +
number- save uint32_t data.
timeout- set timeout time.
+
+
+
Return values
+ + + +
true- success.
false- failed.
+
+
+ +

Definition at line 351 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
uint16_t NexTouch::recvRetString (char * buffer,
uint16_t len,
uint32_t timeout = 500 
)
+
+static
+
+ +

Receive string data.

+
Parameters
+ + + + +
buffer- save string data.
len- string buffer length.
timeout- set timeout time.
+
+
+
Returns
the length of string buffer.
+ +

Definition at line 279 of file NexTouch.cpp.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void NexTouch::sendCommand (const char * cmd)
+
+static
+
+ +

Send command to Nextion.

+
Parameters
+ + +
cmd- the string of command.
+
+
+ +

Definition at line 256 of file NexTouch.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/API-html/class_nex_touch.png b/API-html/class_nex_touch.png new file mode 100644 index 00000000..0d299db Binary files /dev/null and b/API-html/class_nex_touch.png differ diff --git a/API-html/classes.html b/API-html/classes.html new file mode 100644 index 00000000..5dbf809 --- /dev/null +++ b/API-html/classes.html @@ -0,0 +1,71 @@ + + + + + + +API: Class Index + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
Class Index
+
+
+
N
+ + + + + +
  N  
+
NexCrop   NexPicture   NexText   
NexHotspot   NexPointer   NexTouch   
NexButton   NexPage   NexProgressBar   
+
N
+
+ + + + diff --git a/API-html/closed.png b/API-html/closed.png new file mode 100644 index 00000000..b4853a0 Binary files /dev/null and b/API-html/closed.png differ diff --git a/API-html/dir_376a8598cfd3d58455c161124a3e8051.html b/API-html/dir_376a8598cfd3d58455c161124a3e8051.html new file mode 100644 index 00000000..b0a8c57 --- /dev/null +++ b/API-html/dir_376a8598cfd3d58455c161124a3e8051.html @@ -0,0 +1,64 @@ + + + + + + +API: examples/CompPointer Directory Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
CompPointer Directory Reference
+
+
+ + + + +

+Files

file  CompPointer.ino [code]
 
+
+ + + + diff --git a/API-html/dir_7962cac16a99e8bbaaea18abede03fcb.html b/API-html/dir_7962cac16a99e8bbaaea18abede03fcb.html new file mode 100644 index 00000000..e5819d0 --- /dev/null +++ b/API-html/dir_7962cac16a99e8bbaaea18abede03fcb.html @@ -0,0 +1,64 @@ + + + + + + +API: examples/CompProgressBar Directory Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
CompProgressBar Directory Reference
+
+
+ + + + +

+Files

file  CompProgressBar.ino [code]
 
+
+ + + + diff --git a/API-html/dir_8dcbebf38b229bfa7bb34d68bf824093.html b/API-html/dir_8dcbebf38b229bfa7bb34d68bf824093.html new file mode 100644 index 00000000..8f567c2 --- /dev/null +++ b/API-html/dir_8dcbebf38b229bfa7bb34d68bf824093.html @@ -0,0 +1,64 @@ + + + + + + +API: examples/CompCrop Directory Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
CompCrop Directory Reference
+
+
+ + + + +

+Files

file  CompCrop.ino [code]
 
+
+ + + + diff --git a/API-html/dir_9bbf8342b0f9a157b7af08fe1412fc17.html b/API-html/dir_9bbf8342b0f9a157b7af08fe1412fc17.html new file mode 100644 index 00000000..68af635 --- /dev/null +++ b/API-html/dir_9bbf8342b0f9a157b7af08fe1412fc17.html @@ -0,0 +1,64 @@ + + + + + + +API: examples/CompButton Directory Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
CompButton Directory Reference
+
+
+ + + + +

+Files

file  CompButton.ino [code]
 
+
+ + + + diff --git a/API-html/dir_a78b6b3fb4e2d95968f70c807a3ce800.html b/API-html/dir_a78b6b3fb4e2d95968f70c807a3ce800.html new file mode 100644 index 00000000..e0bced4 --- /dev/null +++ b/API-html/dir_a78b6b3fb4e2d95968f70c807a3ce800.html @@ -0,0 +1,66 @@ + + + + + + +API: doc/API-html Directory Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
API-html Directory Reference
+
+
+ + + + + + +

+Files

file  dynsections.js [code]
 
file  jquery.js [code]
 
+
+ + + + diff --git a/API-html/dir_c918e8bf3fc71f849978cdb0d900e61c.html b/API-html/dir_c918e8bf3fc71f849978cdb0d900e61c.html new file mode 100644 index 00000000..5bd3288 --- /dev/null +++ b/API-html/dir_c918e8bf3fc71f849978cdb0d900e61c.html @@ -0,0 +1,64 @@ + + + + + + +API: examples/CompText Directory Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
CompText Directory Reference
+
+
+ + + + +

+Files

file  CompText.ino [code]
 
+
+ + + + diff --git a/API-html/dir_ce36ac18ad3deaf5eae0bd2e09775a7d.html b/API-html/dir_ce36ac18ad3deaf5eae0bd2e09775a7d.html new file mode 100644 index 00000000..4f02443 --- /dev/null +++ b/API-html/dir_ce36ac18ad3deaf5eae0bd2e09775a7d.html @@ -0,0 +1,64 @@ + + + + + + +API: examples/CompPicture Directory Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
CompPicture Directory Reference
+
+
+ + + + +

+Files

file  CompPicture.ino [code]
 
+
+ + + + diff --git a/API-html/dir_d28a4824dc47e487b107a5db32ef43c4.html b/API-html/dir_d28a4824dc47e487b107a5db32ef43c4.html new file mode 100644 index 00000000..d19c8bb --- /dev/null +++ b/API-html/dir_d28a4824dc47e487b107a5db32ef43c4.html @@ -0,0 +1,78 @@ + + + + + + +API: examples Directory Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
examples Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + +

+Directories

directory  CompButton
 
directory  CompCrop
 
directory  CompHotspot
 
directory  CompPage
 
directory  CompPicture
 
directory  CompPointer
 
directory  CompProgressBar
 
directory  CompText
 
+
+ + + + diff --git a/API-html/dir_e68e8157741866f444e17edd764ebbae.html b/API-html/dir_e68e8157741866f444e17edd764ebbae.html new file mode 100644 index 00000000..51a173b --- /dev/null +++ b/API-html/dir_e68e8157741866f444e17edd764ebbae.html @@ -0,0 +1,64 @@ + + + + + + +API: doc Directory Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
doc Directory Reference
+
+
+ + + + +

+Directories

directory  API-html
 
+
+ + + + diff --git a/API-html/dir_f3d39c87bc262720c50d5e3885667b8a.html b/API-html/dir_f3d39c87bc262720c50d5e3885667b8a.html new file mode 100644 index 00000000..32d9cde --- /dev/null +++ b/API-html/dir_f3d39c87bc262720c50d5e3885667b8a.html @@ -0,0 +1,64 @@ + + + + + + +API: examples/CompHotspot Directory Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
CompHotspot Directory Reference
+
+
+ + + + +

+Files

file  CompHotspot.ino [code]
 
+
+ + + + diff --git a/API-html/dir_f76977d9ffe8ddf3ad01f3d689aa5df4.html b/API-html/dir_f76977d9ffe8ddf3ad01f3d689aa5df4.html new file mode 100644 index 00000000..a40e40b --- /dev/null +++ b/API-html/dir_f76977d9ffe8ddf3ad01f3d689aa5df4.html @@ -0,0 +1,64 @@ + + + + + + +API: examples/CompPage Directory Reference + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
CompPage Directory Reference
+
+
+ + + + +

+Files

file  CompPage.ino [code]
 
+
+ + + + diff --git a/API-html/doxygen.css b/API-html/doxygen.css new file mode 100644 index 00000000..aaf32a3 --- /dev/null +++ b/API-html/doxygen.css @@ -0,0 +1,1440 @@ +/* The standard CSS for doxygen 1.8.7 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #7BB0E5; + color: #1F62A5; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EAF2FB; + border: 1px solid #9AC3EB; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #236EB9; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #287ED3; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #92BEEA; + color: #ffffff; + border: 1px double #79AFE5; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px 6px; + margin: 4px 8px 4px 2px; + background-color: #FBFCFE; + border: 1px solid #BFD9F2; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EAF2FB; + font-weight: bold; + border: 1px solid #BFD9F2; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EAF2FB; + border: 1px solid #BFD9F2; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #ECF4FB; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F6F9FD; + border-left: 2px solid #92BEEA; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #9AC3EB; +} + +th.dirtab { + background: #EAF2FB; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #3083D7; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F8FBFD; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #287ED3; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #287ED3; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EAF2FB; + border: 1px solid #9AC3EB; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A0C6EC; + border-left: 1px solid #A0C6EC; + border-right: 1px solid #A0C6EC; + padding: 6px 0px 6px 0px; + color: #164676; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E0ECF9; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A0C6EC; + border-left: 1px solid #A0C6EC; + border-right: 1px solid #A0C6EC; + padding: 6px 10px 2px 10px; + background-color: #FBFCFE; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #63A2E1; + border-top:1px solid #3F8DDA; + border-left:1px solid #3F8DDA; + border-right:1px solid #BFD9F2; + border-bottom:1px solid #BFD9F2; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #92BEEA; + border-bottom: 1px solid #92BEEA; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F6F9FD; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #236EB9; +} + +.arrow { + color: #92BEEA; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #63A2E1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('ftv2folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('ftv2folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('ftv2doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #195086; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #1B548D; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #2065AA; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A0C6EC; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A0C6EC; + border-bottom: 1px solid #A0C6EC; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A0C6EC; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E0ECF9; + font-size: 90%; + color: #164676; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A0C6EC; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#7EB2E6; + border:solid 1px #BCD7F2; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#1F63A6; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #184C80; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#579BDE; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#1F63A6; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F8FBFD; + margin: 0px; + border-bottom: 1px solid #BFD9F2; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #3F8DDA; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #84B6E7; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#1E5E9E; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F8FC; + border: 1px solid #D5E6F6; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 20px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #287ED3; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + diff --git a/API-html/doxygen.png b/API-html/doxygen.png new file mode 100644 index 00000000..33af278 Binary files /dev/null and b/API-html/doxygen.png differ diff --git a/API-html/dynsections.js b/API-html/dynsections.js new file mode 100644 index 00000000..1e6bf07 --- /dev/null +++ b/API-html/dynsections.js @@ -0,0 +1,104 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + +API: doc/API-html/dynsections.js Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + + +
+
+
+
dynsections.js
+
+
+
1 function toggleVisibility(linkObj)
+
2 {
+
3  var base = $(linkObj).attr('id');
+
4  var summary = $('#'+base+'-summary');
+
5  var content = $('#'+base+'-content');
+
6  var trigger = $('#'+base+'-trigger');
+
7  var src=$(trigger).attr('src');
+
8  if (content.is(':visible')===true) {
+
9  content.hide();
+
10  summary.show();
+
11  $(linkObj).addClass('closed').removeClass('opened');
+
12  $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
+
13  } else {
+
14  content.show();
+
15  summary.hide();
+
16  $(linkObj).removeClass('closed').addClass('opened');
+
17  $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
+
18  }
+
19  return false;
+
20 }
+
21 
+
22 function updateStripes()
+
23 {
+
24  $('table.directory tr').
+
25  removeClass('even').filter(':visible:even').addClass('even');
+
26 }
+
27 
+
28 function toggleLevel(level)
+
29 {
+
30  $('table.directory tr').each(function() {
+
31  var l = this.id.split('_').length-1;
+
32  var i = $('#img'+this.id.substring(3));
+
33  var a = $('#arr'+this.id.substring(3));
+
34  if (l<level+1) {
+
35  i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
+
36  a.html('&#9660;');
+
37  $(this).show();
+
38  } else if (l==level+1) {
+
39  i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
+
40  a.html('&#9658;');
+
41  $(this).show();
+
42  } else {
+
43  $(this).hide();
+
44  }
+
45  });
+
46  updateStripes();
+
47 }
+
48 
+
49 function toggleFolder(id)
+
50 {
+
51  // the clicked row
+
52  var currentRow = $('#row_'+id);
+
53 
+
54  // all rows after the clicked row
+
55  var rows = currentRow.nextAll("tr");
+
56 
+
57  var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
+
58 
+
59  // only match elements AFTER this one (can't hide elements before)
+
60  var childRows = rows.filter(function() { return this.id.match(re); });
+
61 
+
62  // first row is visible we are HIDING
+
63  if (childRows.filter(':first').is(':visible')===true) {
+
64  // replace down arrow by right arrow for current row
+
65  var currentRowSpans = currentRow.find("span");
+
66  currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+
67  currentRowSpans.filter(".arrow").html('&#9658;');
+
68  rows.filter("[id^=row_"+id+"]").hide(); // hide all children
+
69  } else { // we are SHOWING
+
70  // replace right arrow by down arrow for current row
+
71  var currentRowSpans = currentRow.find("span");
+
72  currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
+
73  currentRowSpans.filter(".arrow").html('&#9660;');
+
74  // replace down arrows by right arrows for child rows
+
75  var childRowsSpans = childRows.find("span");
+
76  childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+
77  childRowsSpans.filter(".arrow").html('&#9658;');
+
78  childRows.show(); //show all children
+
79  }
+
80  updateStripes();
+
81 }
+
82 
+
83 
+
84 function toggleInherit(id)
+
85 {
+
86  var rows = $('tr.inherit.'+id);
+
87  var img = $('tr.inherit_header.'+id+' img');
+
88  var src = $(img).attr('src');
+
89  if (rows.filter(':first').is(':visible')===true) {
+
90  rows.css('display','none');
+
91  $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+
92  } else {
+
93  rows.css('display','table-row'); // using show() causes jump in firefox
+
94  $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+
95  }
+
96 }
+
97 
+
98 
+
99 $(document).ready(function() {
+
100  $('.code,.codeRef').each(function() {
+
101  $(this).data('powertip',$('#'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html());
+
102  $(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true });
+
103  });
+
104 });
+
+ + + + diff --git a/API-html/examples.html b/API-html/examples.html new file mode 100644 index 00000000..1b9d440 --- /dev/null +++ b/API-html/examples.html @@ -0,0 +1,72 @@ + + + + + + +API: Examples + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + +
+
+
+
Examples
+
+
+
Here is a list of all examples:
+
+ + + + diff --git a/API-html/files.html b/API-html/files.html new file mode 100644 index 00000000..8039fb0 --- /dev/null +++ b/API-html/files.html @@ -0,0 +1,104 @@ + + + + + + +API: File List + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 123]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  doc
  API-html
 dynsections.js
 jquery.js
  examples
  CompButton
 CompButton.ino
  CompCrop
 CompCrop.ino
  CompHotspot
 CompHotspot.ino
  CompPage
 CompPage.ino
  CompPicture
 CompPicture.ino
  CompPointer
 CompPointer.ino
  CompProgressBar
 CompProgressBar.ino
  CompText
 CompText.ino
 NexButton.cppAPI of NexButton
 NexButton.hAPI of NexButton
 NexCrop.cppAPI of NexCrop
 NexCrop.hAPI of NexCrop
 NexHotspot.cppAPI of NexHotspot
 NexHotspot.hAPI of NexHotspot
 NexPage.cppAPI of NexPage
 NexPage.hAPI of NexPage
 NexPicture.cppAPI of NexPicture
 NexPicture.hAPI of NexPicture
 NexPointer.cpp
 NexPointer.h
 NexProgressBar.cppAPI of NexProgressBar
 NexProgressBar.hAPI of NexProgressBar
 NexSerialConfig.hSerial configure
 NexText.cppAPI of NexText
 NexText.hAPI of NexText
 NexTouch.cppAPI of Nextion
 NexTouch.hAPI of Nextion
+
+
+ + + + diff --git a/API-html/ftv2blank.png b/API-html/ftv2blank.png new file mode 100644 index 00000000..63c605b Binary files /dev/null and b/API-html/ftv2blank.png differ diff --git a/API-html/ftv2doc.png b/API-html/ftv2doc.png new file mode 100644 index 00000000..da86f46 Binary files /dev/null and b/API-html/ftv2doc.png differ diff --git a/API-html/ftv2folderclosed.png b/API-html/ftv2folderclosed.png new file mode 100644 index 00000000..f840d2a Binary files /dev/null and b/API-html/ftv2folderclosed.png differ diff --git a/API-html/ftv2folderopen.png b/API-html/ftv2folderopen.png new file mode 100644 index 00000000..563d613 Binary files /dev/null and b/API-html/ftv2folderopen.png differ diff --git a/API-html/ftv2lastnode.png b/API-html/ftv2lastnode.png new file mode 100644 index 00000000..63c605b Binary files /dev/null and b/API-html/ftv2lastnode.png differ diff --git a/API-html/ftv2link.png b/API-html/ftv2link.png new file mode 100644 index 00000000..da86f46 Binary files /dev/null and b/API-html/ftv2link.png differ diff --git a/API-html/ftv2mlastnode.png b/API-html/ftv2mlastnode.png new file mode 100644 index 00000000..2ab84ef Binary files /dev/null and b/API-html/ftv2mlastnode.png differ diff --git a/API-html/ftv2mnode.png b/API-html/ftv2mnode.png new file mode 100644 index 00000000..2ab84ef Binary files /dev/null and b/API-html/ftv2mnode.png differ diff --git a/API-html/ftv2node.png b/API-html/ftv2node.png new file mode 100644 index 00000000..63c605b Binary files /dev/null and b/API-html/ftv2node.png differ diff --git a/API-html/ftv2plastnode.png b/API-html/ftv2plastnode.png new file mode 100644 index 00000000..c56911a Binary files /dev/null and b/API-html/ftv2plastnode.png differ diff --git a/API-html/ftv2pnode.png b/API-html/ftv2pnode.png new file mode 100644 index 00000000..c56911a Binary files /dev/null and b/API-html/ftv2pnode.png differ diff --git a/API-html/ftv2splitbar.png b/API-html/ftv2splitbar.png new file mode 100644 index 00000000..587f721 Binary files /dev/null and b/API-html/ftv2splitbar.png differ diff --git a/API-html/ftv2vertline.png b/API-html/ftv2vertline.png new file mode 100644 index 00000000..63c605b Binary files /dev/null and b/API-html/ftv2vertline.png differ diff --git a/API-html/functions.html b/API-html/functions.html new file mode 100644 index 00000000..5c5f2ec --- /dev/null +++ b/API-html/functions.html @@ -0,0 +1,209 @@ + + + + + + +API: Class Members + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + + + +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- a -

+ + +

- d -

+ + +

- g -

+ + +

- m -

+ + +

- n -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+
+ + + + diff --git a/API-html/functions_func.html b/API-html/functions_func.html new file mode 100644 index 00000000..a35f5e1 --- /dev/null +++ b/API-html/functions_func.html @@ -0,0 +1,209 @@ + + + + + + +API: Class Members - Functions + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + + + +
+
+  + +

- a -

+ + +

- d -

+ + +

- g -

+ + +

- m -

+ + +

- n -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+
+ + + + diff --git a/API-html/globals.html b/API-html/globals.html new file mode 100644 index 00000000..3ff6696 --- /dev/null +++ b/API-html/globals.html @@ -0,0 +1,112 @@ + + + + + + +API: File Members + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + + +
+
+
Here is a list of all documented file members with links to the documentation:
+
+ + + + diff --git a/API-html/globals_func.html b/API-html/globals_func.html new file mode 100644 index 00000000..5934758 --- /dev/null +++ b/API-html/globals_func.html @@ -0,0 +1,112 @@ + + + + + + +API: File Members + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + + +
+
+
+ + + + diff --git a/API-html/hierarchy.html b/API-html/hierarchy.html new file mode 100644 index 00000000..0d2c37d --- /dev/null +++ b/API-html/hierarchy.html @@ -0,0 +1,75 @@ + + + + + + +API: Class Hierarchy + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 12]
+ + + + + + + + + +
 CNexTouchRoot Class of Nextion Components
 CNexButtonNexButton,subclass of NexTouch,provides simple methods to control button component
 CNexCropNexCrop,subclass of NexTouch,provides simple methods to control crop component
 CNexHotspotNexHotspot,subclass of NexTouch,provides simple methods to control hotspot component
 CNexPageNexPage,subclass of NexTouch,provides simple methods to control page component
 CNexPictureNexPicture,subclass of NexTouch,provides simple methods to control picture component
 CNexPointerNexPointer,subclass of NexTouch,provides simple methods to control pointer component
 CNexProgressBarNexProgressBar,subclass of NexTouch,provides simple methods to control progress bar component
 CNexTextNexText,subclass of NexTouch,provides simple methods to control text component
+
+
+ + + + diff --git a/API-html/index.hhc b/API-html/index.hhc new file mode 100644 index 00000000..038117e --- /dev/null +++ b/API-html/index.hhc @@ -0,0 +1,290 @@ + + + + + + + + diff --git a/API-html/index.hhk b/API-html/index.hhk new file mode 100644 index 00000000..21f9f4b --- /dev/null +++ b/API-html/index.hhk @@ -0,0 +1,223 @@ + + + + + + + + diff --git a/API-html/index.hhp b/API-html/index.hhp new file mode 100644 index 00000000..eab790b --- /dev/null +++ b/API-html/index.hhp @@ -0,0 +1,147 @@ +[OPTIONS] +Compiled file=../API.chm +Compatibility=1.1 +Full-text search=Yes +Contents file=index.hhc +Default Window=main +Default topic=index.html +Index file=index.hhk +Language=0x409 English (United States) +Title=API + +[WINDOWS] +main="API","index.hhc","index.hhk","index.html","index.html",,,,,0x23520,,0x10387e,,,,,,,,0 + +[FILES] +_comp_button_8ino-example.html +_comp_crop_8ino-example.html +_comp_hotspot_8ino-example.html +_comp_page_8ino-example.html +_comp_picture_8ino-example.html +_comp_pointer_8ino-example.html +_comp_progress_bar_8ino-example.html +_comp_text_8ino-example.html +dynsections_8js_source.html +jquery_8js_source.html +_comp_button_8ino_source.html +_comp_crop_8ino_source.html +_comp_hotspot_8ino_source.html +_comp_page_8ino_source.html +_comp_picture_8ino_source.html +_comp_pointer_8ino_source.html +_comp_progress_bar_8ino_source.html +_comp_text_8ino_source.html +_nex_button_8cpp_source.html +_nex_button_8h_source.html +_nex_crop_8cpp_source.html +_nex_crop_8h_source.html +_nex_hotspot_8cpp_source.html +_nex_hotspot_8h_source.html +_nex_page_8cpp_source.html +_nex_page_8h_source.html +_nex_picture_8cpp_source.html +_nex_picture_8h_source.html +_nex_pointer_8cpp_source.html +_nex_pointer_8h_source.html +_nex_progress_bar_8cpp_source.html +_nex_progress_bar_8h_source.html +_nex_serial_config_8h_source.html +_nex_text_8cpp_source.html +_nex_text_8h_source.html +_nex_touch_8cpp_source.html +_nex_touch_8h_source.html +readme_8md_source.html +_nex_button_8cpp.html +_nex_button_8h.html +_nex_crop_8cpp.html +_nex_crop_8h.html +_nex_hotspot_8cpp.html +_nex_hotspot_8h.html +_nex_page_8cpp.html +_nex_page_8h.html +_nex_picture_8cpp.html +_nex_picture_8h.html +_nex_progress_bar_8cpp.html +_nex_progress_bar_8h.html +_nex_serial_config_8h.html +_nex_text_8cpp.html +_nex_text_8h.html +_nex_touch_8cpp.html +_nex_touch_8h.html +md_readme.html +class_nex_button.html +class_nex_button-members.html +class_nex_crop.html +class_nex_crop-members.html +class_nex_hotspot.html +class_nex_hotspot-members.html +class_nex_page.html +class_nex_page-members.html +class_nex_picture.html +class_nex_picture-members.html +class_nex_pointer.html +class_nex_pointer-members.html +class_nex_progress_bar.html +class_nex_progress_bar-members.html +class_nex_text.html +class_nex_text-members.html +class_nex_touch.html +class_nex_touch-members.html +dir_a78b6b3fb4e2d95968f70c807a3ce800.html +dir_9bbf8342b0f9a157b7af08fe1412fc17.html +dir_8dcbebf38b229bfa7bb34d68bf824093.html +dir_f3d39c87bc262720c50d5e3885667b8a.html +dir_f76977d9ffe8ddf3ad01f3d689aa5df4.html +dir_ce36ac18ad3deaf5eae0bd2e09775a7d.html +dir_376a8598cfd3d58455c161124a3e8051.html +dir_7962cac16a99e8bbaaea18abede03fcb.html +dir_c918e8bf3fc71f849978cdb0d900e61c.html +dir_e68e8157741866f444e17edd764ebbae.html +dir_d28a4824dc47e487b107a5db32ef43c4.html +index.html +pages.html +annotated.html +classes.html +hierarchy.html +functions.html +functions_func.html +files.html +globals.html +globals_func.html +examples.html +tab_a.png +tab_b.png +tab_h.png +tab_s.png +nav_h.png +nav_f.png +bc_s.png +doxygen.png +closed.png +open.png +bdwn.png +sync_on.png +sync_off.png +ITEAD-logo.JPG +ftv2blank.png +ftv2doc.png +ftv2folderclosed.png +ftv2folderopen.png +ftv2lastnode.png +ftv2link.png +ftv2mlastnode.png +ftv2mnode.png +ftv2node.png +ftv2plastnode.png +ftv2pnode.png +ftv2vertline.png +ftv2splitbar.png +class_nex_button.png +class_nex_crop.png +class_nex_hotspot.png +class_nex_page.png +class_nex_picture.png +class_nex_pointer.png +class_nex_progress_bar.png +class_nex_text.png +class_nex_touch.png diff --git a/API-html/index.html b/API-html/index.html new file mode 100644 index 00000000..fedea50 --- /dev/null +++ b/API-html/index.html @@ -0,0 +1,86 @@ + + + + + + +API: Main Page + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + +
+
+
+
API Documentation
+
+
+

Nextion Library for Arduino

+

Nextion Arduino library provides an easy-to-use way to manipulate Nextion serial displays. Users can use the libarry freely, either in commerical projects or open-source prjects, without any additional condiitons.

+

For more information about the Nextion display project, please visit the wiki。 The wiki provdies all the necessary technical documnets, quick start guide, tutorials, demos, as well as some useful resources.

+

To get your Nextion display, please visit iMall.

+

To discuss the project? Request new features? Report a BUG? please visit the Forums

+

Source

+

Latest source code can be download at https://github.com/itead/ITEADLIB_Arduino_Nextion.

+

You can clone it by:

git clone https://github.com/itead/ITEADLIB_Arduino_Nextion
+

Documentation

+

Online API documentation can be reached at http://docs.iteadstudio.com/ITEADLIB_Arduino_Nextion/.

+

Offline API documentation can be found under directory doc.

+

Hareware requirement

+
    +
  • RAM: not less than 2KBytes
  • +
  • Serial: two serial (communication and debug)
  • +
+

Serial configuration

+

If you want to change the default serial to debug or communicate with Nextion ,you need to modify the line in file NexSerialConfig.h:

#define dbSerial Serial    ---> #define dbSerial Serialxxx
+#define nexSerial Serial2  ---> #define dbSerial Serialxxx
+

If you want to close the debug information,you need to modify the line in file NexSerialConfig.h:

#define DEBUG_SERIAL_ENABLE ---> //#define DEBUG_SERIAL_ENABLE
+

Suppported Mainboards:

+
    +
  • Iteaduino MEGA2560
  • +
  • Arduino MEGA2560
    +
  • +
+

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004

+

Copyright (C) 2014 ITEAD Studio

+

Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed.

   DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 
+

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

+

0. You just DO WHAT THE FUCK YOU WANT TO.

+
+
+ + + + diff --git a/API-html/jquery.js b/API-html/jquery.js new file mode 100644 index 00000000..6aa2e4c --- /dev/null +++ b/API-html/jquery.js @@ -0,0 +1,39 @@ +/*! + * jQuery JavaScript Library v1.7.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 + */ +(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType; +if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1 +},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av); +ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length; +if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b +})}})(window); +/*! + PowerTip - v1.2.0 - 2013-04-03 + http://stevenbenner.github.com/jquery-powertip/ + Copyright (c) 2013 Steven Benner (http://stevenbenner.com/). + Released under MIT license. + https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt +*/ +(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(k){var A=k(document),s=k(window),w=k("body");var n="displayController",e="hasActiveHover",d="forcedOpen",u="hasMouseMove",f="mouseOnToPopup",g="originalTitle",y="powertip",o="powertipjq",l="powertiptarget",E=180/Math.PI;var c={isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var p={none:0,top:1,bottom:2,left:4,right:8};k.fn.powerTip=function(F,N){if(!this.length){return this}if(k.type(F)==="string"&&k.powerTip[F]){return k.powerTip[F].call(this,this,N)}var O=k.extend({},k.fn.powerTip.defaults,F),G=new x(O);h();this.each(function M(){var R=k(this),Q=R.data(y),P=R.data(o),T=R.data(l),S;if(R.data(n)){k.powerTip.destroy(R)}S=R.attr("title");if(!Q&&!T&&!P&&S){R.data(y,S);R.data(g,S);R.removeAttr("title")}R.data(n,new t(R,O,G))});if(!O.manual){this.on({"mouseenter.powertip":function J(P){k.powerTip.show(this,P)},"mouseleave.powertip":function L(){k.powerTip.hide(this)},"focus.powertip":function K(){k.powerTip.show(this)},"blur.powertip":function H(){k.powerTip.hide(this,true)},"keydown.powertip":function I(P){if(P.keyCode===27){k.powerTip.hide(this,true)}}})}return this};k.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false};k.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};k.powerTip={show:function z(F,G){if(G){i(G);c.previousX=G.pageX;c.previousY=G.pageY;k(F).data(n).show()}else{k(F).first().data(n).show(true,true)}return F},reposition:function r(F){k(F).first().data(n).resetPosition();return F},hide:function D(G,F){if(G){k(G).first().data(n).hide(F)}else{if(c.activeHover){c.activeHover.data(n).hide(true)}}return G},destroy:function C(G){k(G).off(".powertip").each(function F(){var I=k(this),H=[g,n,e,d];if(I.data(g)){I.attr("title",I.data(g));H.push(y)}I.removeData(H)});return G}};k.powerTip.showTip=k.powerTip.show;k.powerTip.closeTip=k.powerTip.hide;function b(){var F=this;F.top="auto";F.left="auto";F.right="auto";F.bottom="auto";F.set=function(H,G){if(k.isNumeric(G)){F[H]=Math.round(G)}}}function t(K,N,F){var J=null;function L(P,Q){M();if(!K.data(e)){if(!P){c.tipOpenImminent=true;J=setTimeout(function O(){J=null;I()},N.intentPollInterval)}else{if(Q){K.data(d,true)}F.showTip(K)}}}function G(P){M();c.tipOpenImminent=false;if(K.data(e)){K.data(d,false);if(!P){c.delayInProgress=true;J=setTimeout(function O(){J=null;F.hideTip(K);c.delayInProgress=false},N.closeDelay)}else{F.hideTip(K)}}}function I(){var Q=Math.abs(c.previousX-c.currentX),O=Math.abs(c.previousY-c.currentY),P=Q+O;if(P",{id:Q.popupId});if(w.length===0){w=k("body")}w.append(O)}if(Q.followMouse){if(!O.data(u)){A.on("mousemove",M);s.on("scroll",M);O.data(u,true)}}if(Q.mouseOnToPopup){O.on({mouseenter:function L(){if(O.data(f)){if(c.activeHover){c.activeHover.data(n).cancel()}}},mouseleave:function N(){if(c.activeHover){c.activeHover.data(n).hide()}}})}function I(S){S.data(e,true);O.queue(function R(T){H(S);T()})}function H(S){var U;if(!S.data(e)){return}if(c.isTipOpen){if(!c.isClosing){K(c.activeHover)}O.delay(100).queue(function R(V){H(S);V()});return}S.trigger("powerTipPreRender");U=B(S);if(U){O.empty().append(U)}else{return}S.trigger("powerTipRender");c.activeHover=S;c.isTipOpen=true;O.data(f,Q.mouseOnToPopup);if(!Q.followMouse){G(S);c.isFixedTipOpen=true}else{M()}O.fadeIn(Q.fadeInTime,function T(){if(!c.desyncTimeout){c.desyncTimeout=setInterval(J,500)}S.trigger("powerTipOpen")})}function K(R){c.isClosing=true;c.activeHover=null;c.isTipOpen=false;c.desyncTimeout=clearInterval(c.desyncTimeout);R.data(e,false);R.data(d,false);O.fadeOut(Q.fadeOutTime,function S(){var T=new b();c.isClosing=false;c.isFixedTipOpen=false;O.removeClass();T.set("top",c.currentY+Q.offset);T.set("left",c.currentX+Q.offset);O.css(T);R.trigger("powerTipClose")})}function M(){if(!c.isFixedTipOpen&&(c.isTipOpen||(c.tipOpenImminent&&O.data(u)))){var R=O.outerWidth(),V=O.outerHeight(),U=new b(),S,T;U.set("top",c.currentY+Q.offset);U.set("left",c.currentX+Q.offset);S=m(U,R,V);if(S!==p.none){T=a(S);if(T===1){if(S===p.right){U.set("left",c.windowWidth-R)}else{if(S===p.bottom){U.set("top",c.scrollTop+c.windowHeight-V)}}}else{U.set("left",c.currentX-R-Q.offset);U.set("top",c.currentY-V-Q.offset)}}O.css(U)}}function G(S){var R,T;if(Q.smartPlacement){R=k.fn.powerTip.smartPlacementLists[Q.placement];k.each(R,function(U,W){var V=m(F(S,W),O.outerWidth(),O.outerHeight());T=W;if(V===p.none){return false}})}else{F(S,Q.placement);T=Q.placement}O.addClass(T)}function F(U,T){var R=0,S,W,V=new b();V.set("top",0);V.set("left",0);O.css(V);do{S=O.outerWidth();W=O.outerHeight();V=P.compute(U,T,S,W,Q.offset);O.css(V)}while(++R<=5&&(S!==O.outerWidth()||W!==O.outerHeight()));return V}function J(){var R=false;if(c.isTipOpen&&!c.isClosing&&!c.delayInProgress){if(c.activeHover.data(e)===false||c.activeHover.is(":disabled")){R=true}else{if(!v(c.activeHover)&&!c.activeHover.is(":focus")&&!c.activeHover.data(d)){if(O.data(f)){if(!v(O)){R=true}}else{R=true}}}if(R){K(c.activeHover)}}}this.showTip=I;this.hideTip=K;this.resetPosition=G}function q(F){return window.SVGElement&&F[0] instanceof SVGElement}function h(){if(!c.mouseTrackingActive){c.mouseTrackingActive=true;k(function H(){c.scrollLeft=s.scrollLeft();c.scrollTop=s.scrollTop();c.windowWidth=s.width();c.windowHeight=s.height()});A.on("mousemove",i);s.on({resize:function G(){c.windowWidth=s.width();c.windowHeight=s.height()},scroll:function F(){var I=s.scrollLeft(),J=s.scrollTop();if(I!==c.scrollLeft){c.currentX+=I-c.scrollLeft;c.scrollLeft=I}if(J!==c.scrollTop){c.currentY+=J-c.scrollTop;c.scrollTop=J}}})}}function i(F){c.currentX=F.pageX;c.currentY=F.pageY}function v(F){var H=F.offset(),J=F[0].getBoundingClientRect(),I=J.right-J.left,G=J.bottom-J.top;return c.currentX>=H.left&&c.currentX<=H.left+I&&c.currentY>=H.top&&c.currentY<=H.top+G}function B(I){var G=I.data(y),F=I.data(o),K=I.data(l),H,J;if(G){if(k.isFunction(G)){G=G.call(I[0])}J=G}else{if(F){if(k.isFunction(F)){F=F.call(I[0])}if(F.length>0){J=F.clone(true,true)}}else{if(K){H=k("#"+K);if(H.length>0){J=H.html()}}}}return J}function m(M,L,K){var G=c.scrollTop,J=c.scrollLeft,I=G+c.windowHeight,F=J+c.windowWidth,H=p.none;if(M.topI||Math.abs(M.bottom-c.windowHeight)>I){H|=p.bottom}if(M.leftF){H|=p.left}if(M.left+L>F||M.right + + + + + +API: doc/API-html/jquery.js Source File + + + + + + +
+
+
+ + + + + + +
+
API +
+
For Arduino developers
+
+ + + + + + + +
+
+
jquery.js
+
+
+
1 
+
16 (function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b4<b3;b4++){if((b9=arguments[b4])!=null){for(b2 in b9){b0=b5[b2];b1=b9[b2];if(b5===b1){continue}if(b8&&b1&&(bF.isPlainObject(b1)||(b6=bF.isArray(b1)))){if(b6){b6=false;b7=b0&&bF.isArray(b0)?b0:[]}else{b7=b0&&bF.isPlainObject(b0)?b0:{}}b5[b2]=bF.extend(b8,b7,b1)}else{if(b1!==L){b5[b2]=b1}}}}}return b5};bF.extend({noConflict:function(b0){if(bb.$===bF){bb.$=bH}if(b0&&bb.jQuery===bF){bb.jQuery=bU}return bF},isReady:false,readyWait:1,holdReady:function(b0){if(b0){bF.readyWait++}else{bF.ready(true)}},ready:function(b0){if((b0===true&&!--bF.readyWait)||(b0!==true&&!bF.isReady)){if(!av.body){return setTimeout(bF.ready,1)}bF.isReady=true;if(b0!==true&&--bF.readyWait>0){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b4<b5;){if(b6.apply(b3[b4++],b2)===false){break}}}}else{if(b0){for(b1 in b3){if(b6.call(b3[b1],b1,b3[b1])===false){break}}}else{for(;b4<b5;){if(b6.call(b3[b4],b4,b3[b4++])===false){break}}}}return b3},trim:bO?function(b0){return b0==null?"":bO.call(b0)}:function(b0){return b0==null?"":b0.toString().replace(bI,"").replace(bE,"")},makeArray:function(b3,b1){var b0=b1||[];if(b3!=null){var b2=bF.type(b3);if(b3.length==null||b2==="string"||b2==="function"||b2==="regexp"||bF.isWindow(b3)){bz.call(b0,b3)}else{bF.merge(b0,b3)}}return b0},inArray:function(b2,b3,b1){var b0;if(b3){if(bv){return bv.call(b3,b2,b1)}b0=b3.length;b1=b1?b1<0?Math.max(0,b0+b1):b1:0;for(;b1<b0;b1++){if(b1 in b3&&b3[b1]===b2){return b1}}}return -1},merge:function(b4,b2){var b3=b4.length,b1=0;if(typeof b2.length==="number"){for(var b0=b2.length;b1<b0;b1++){b4[b3++]=b2[b1]}}else{while(b2[b1]!==L){b4[b3++]=b2[b1++]}}b4.length=b3;return b4},grep:function(b1,b6,b0){var b2=[],b5;b0=!!b0;for(var b3=0,b4=b1.length;b3<b4;b3++){b5=!!b6(b1[b3],b3);if(b0!==b5){b2.push(b1[b3])}}return b2},map:function(b0,b7,b8){var b5,b6,b4=[],b2=0,b1=b0.length,b3=b0 instanceof bF||b1!==L&&typeof b1==="number"&&((b1>0&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b2<b1;b2++){b5=b7(b0[b2],b2,b8);if(b5!=null){b4[b4.length]=b5}}}else{for(b6 in b0){b5=b7(b0[b6],b6,b8);if(b5!=null){b4[b4.length]=b5}}}return b4.concat.apply([],b4)},guid:1,proxy:function(b4,b3){if(typeof b3==="string"){var b2=b4[b3];b3=b4;b4=b2}if(!bF.isFunction(b4)){return L}var b0=bK.call(arguments,2),b1=function(){return b4.apply(b3,b0.concat(bK.call(arguments)))};b1.guid=b4.guid=b4.guid||b1.guid||bF.guid++;return b1},access:function(b0,b8,b6,b2,b5,b7){var b1=b0.length;if(typeof b8==="object"){for(var b3 in b8){bF.access(b0,b3,b8[b3],b2,b5,b6)}return b0}if(b6!==L){b2=!b7&&b2&&bF.isFunction(b6);for(var b4=0;b4<b1;b4++){b5(b0[b4],b8,b2?b6.call(b0[b4],b4,b5(b0[b4],b8)):b6,b7)}return b0}return b1?b5(b0[0],b8):L},now:function(){return(new Date()).getTime()},uaMatch:function(b1){b1=b1.toLowerCase();var b0=by.exec(b1)||bR.exec(b1)||bQ.exec(b1)||b1.indexOf("compatible")<0&&bS.exec(b1)||[];return{browser:b0[1]||"",version:b0[2]||"0"}},sub:function(){function b0(b3,b4){return new b0.fn.init(b3,b4)}bF.extend(true,b0,this);b0.superclass=this;b0.fn=b0.prototype=this();b0.fn.constructor=b0;b0.sub=this.sub;b0.fn.init=function b2(b3,b4){if(b4&&b4 instanceof bF&&!(b4 instanceof b0)){b4=b0(b4)}return bF.fn.init.call(this,b3,b4,b1)};b0.fn.init.prototype=b0.fn;var b1=b0(av);return b0},browser:{}});bF.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(b1,b0){bx["[object "+b0+"]"]=b0.toLowerCase()});bV=bF.uaMatch(bX);if(bV.browser){bF.browser[bV.browser]=true;bF.browser.version=bV.version}if(bF.browser.webkit){bF.browser.safari=true}if(bM.test("\xA0")){bI=/^[\s\xA0]+/;bE=/[\s\xA0]+$/}bD=bF(av);if(av.addEventListener){e=function(){av.removeEventListener("DOMContentLoaded",e,false);bF.ready()}}else{if(av.attachEvent){e=function(){if(av.readyState==="complete"){av.detachEvent("onreadystatechange",e);bF.ready()}}}}function bw(){if(bF.isReady){return}try{av.documentElement.doScroll("left")}catch(b0){setTimeout(bw,1);return}bF.ready()}return bF})();var a2={};function X(e){var bv=a2[e]={},bw,bx;e=e.split(/\s+/);for(bw=0,bx=e.length;bw<bx;bw++){bv[e[bw]]=true}return bv}b.Callbacks=function(bw){bw=bw?(a2[bw]||X(bw)):{};var bB=[],bC=[],bx,by,bv,bz,bA,bE=function(bF){var bG,bJ,bI,bH,bK;for(bG=0,bJ=bF.length;bG<bJ;bG++){bI=bF[bG];bH=b.type(bI);if(bH==="array"){bE(bI)}else{if(bH==="function"){if(!bw.unique||!bD.has(bI)){bB.push(bI)}}}}},e=function(bG,bF){bF=bF||[];bx=!bw.memory||[bG,bF];by=true;bA=bv||0;bv=0;bz=bB.length;for(;bB&&bA<bz;bA++){if(bB[bA].apply(bG,bF)===false&&bw.stopOnFalse){bx=true;break}}by=false;if(bB){if(!bw.once){if(bC&&bC.length){bx=bC.shift();bD.fireWith(bx[0],bx[1])}}else{if(bx===true){bD.disable()}else{bB=[]}}}},bD={add:function(){if(bB){var bF=bB.length;bE(arguments);if(by){bz=bB.length}else{if(bx&&bx!==true){bv=bF;e(bx[0],bx[1])}}}return this},remove:function(){if(bB){var bF=arguments,bH=0,bI=bF.length;for(;bH<bI;bH++){for(var bG=0;bG<bB.length;bG++){if(bF[bH]===bB[bG]){if(by){if(bG<=bz){bz--;if(bG<=bA){bA--}}}bB.splice(bG--,1);if(bw.unique){break}}}}}return this},has:function(bG){if(bB){var bF=0,bH=bB.length;for(;bF<bH;bF++){if(bG===bB[bF]){return true}}}return false},empty:function(){bB=[];return this},disable:function(){bB=bC=bx=L;return this},disabled:function(){return !bB},lock:function(){bC=L;if(!bx||bx===true){bD.disable()}return this},locked:function(){return !bC},fireWith:function(bG,bF){if(bC){if(by){if(!bw.once){bC.push([bG,bF])}}else{if(!(bw.once&&bx)){e(bG,bF)}}}return this},fire:function(){bD.fireWith(this,arguments);return this},fired:function(){return !!bx}};return bD};var aJ=[].slice;b.extend({Deferred:function(by){var bx=b.Callbacks("once memory"),bw=b.Callbacks("once memory"),bv=b.Callbacks("memory"),e="pending",bA={resolve:bx,reject:bw,notify:bv},bC={done:bx.add,fail:bw.add,progress:bv.add,state:function(){return e},isResolved:bx.fired,isRejected:bw.fired,then:function(bE,bD,bF){bB.done(bE).fail(bD).progress(bF);return this},always:function(){bB.done.apply(bB,arguments).fail.apply(bB,arguments);return this},pipe:function(bF,bE,bD){return b.Deferred(function(bG){b.each({done:[bF,"resolve"],fail:[bE,"reject"],progress:[bD,"notify"]},function(bI,bL){var bH=bL[0],bK=bL[1],bJ;if(b.isFunction(bH)){bB[bI](function(){bJ=bH.apply(this,arguments);if(bJ&&b.isFunction(bJ.promise)){bJ.promise().then(bG.resolve,bG.reject,bG.notify)}else{bG[bK+"With"](this===bB?bG:this,[bJ])}})}else{bB[bI](bG[bK])}})}).promise()},promise:function(bE){if(bE==null){bE=bC}else{for(var bD in bC){bE[bD]=bC[bD]}}return bE}},bB=bC.promise({}),bz;for(bz in bA){bB[bz]=bA[bz].fire;bB[bz+"With"]=bA[bz].fireWith}bB.done(function(){e="resolved"},bw.disable,bv.lock).fail(function(){e="rejected"},bx.disable,bv.lock);if(by){by.call(bB,bB)}return bB},when:function(bA){var bx=aJ.call(arguments,0),bv=0,e=bx.length,bB=new Array(e),bw=e,by=e,bC=e<=1&&bA&&b.isFunction(bA.promise)?bA:b.Deferred(),bE=bC.promise();function bD(bF){return function(bG){bx[bF]=arguments.length>1?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv<e;bv++){if(bx[bv]&&bx[bv].promise&&b.isFunction(bx[bv].promise)){bx[bv].promise().then(bD(bv),bC.reject,bz(bv))
+
17 }else{--bw}}if(!bw){bC.resolveWith(bC,bx)}}else{if(bC!==bA){bC.resolveWith(bC,e?[bA]:[])}}return bE}});b.support=(function(){var bJ,bI,bF,bG,bx,bE,bA,bD,bz,bK,bB,by,bw,bv=av.createElement("div"),bH=av.documentElement;bv.setAttribute("className","t");bv.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="<div "+e+"><div></div></div><table "+e+" cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="<div style='width:4px;'></div>";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA<bz;bA++){delete bB[bv[bA]]}if(!(by?S:b.isEmptyObject)(bB)){return}}}if(!by){delete e[bw].data;if(!S(e[bw])){return}}if(b.support.deleteExpando||!e.setInterval){delete e[bw]}else{e[bw]=null}if(bD){if(b.support.deleteExpando){delete bx[bC]}else{if(bx.removeAttribute){bx.removeAttribute(bC)}else{bx[bC]=null}}}},_data:function(bv,e,bw){return b.data(bv,e,bw,true)},acceptData:function(bv){if(bv.nodeName){var e=b.noData[bv.nodeName.toLowerCase()];if(e){return !(e===true||bv.getAttribute("classid")!==e)}}return true}});b.fn.extend({data:function(by,bA){var bB,e,bw,bz=null;if(typeof by==="undefined"){if(this.length){bz=b.data(this[0]);if(this[0].nodeType===1&&!b._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var bx=0,bv=e.length;bx<bv;bx++){bw=e[bx].name;if(bw.indexOf("data-")===0){bw=b.camelCase(bw.substring(5));a5(this[0],bw,bz[bw])}}b._data(this[0],"parsedAttrs",true)}}return bz}else{if(typeof by==="object"){return this.each(function(){b.data(this,by)})}}bB=by.split(".");bB[1]=bB[1]?"."+bB[1]:"";if(bA===L){bz=this.triggerHandler("getData"+bB[1]+"!",[bB[0]]);if(bz===L&&this.length){bz=b.data(this[0],by);bz=a5(this[0],by,bz)}return bz===L&&bB[1]?this.data(bB[0]):bz}else{return this.each(function(){var bC=b(this),bD=[bB[0],bA];bC.triggerHandler("setData"+bB[1]+"!",bD);b.data(this,by,bA);bC.triggerHandler("changeData"+bB[1]+"!",bD)})}},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function a5(bx,bw,by){if(by===L&&bx.nodeType===1){var bv="data-"+bw.replace(aA,"-$1").toLowerCase();by=bx.getAttribute(bv);if(typeof by==="string"){try{by=by==="true"?true:by==="false"?false:by==="null"?null:b.isNumeric(by)?parseFloat(by):aS.test(by)?b.parseJSON(by):by}catch(bz){}b.data(bx,bw,by)}else{by=L}}return by}function S(bv){for(var e in bv){if(e==="data"&&b.isEmptyObject(bv[e])){continue}if(e!=="toJSON"){return false}}return true}function bi(by,bx,bA){var bw=bx+"defer",bv=bx+"queue",e=bx+"mark",bz=b._data(by,bw);if(bz&&(bA==="queue"||!b._data(by,bv))&&(bA==="mark"||!b._data(by,e))){setTimeout(function(){if(!b._data(by,bv)&&!b._data(by,e)){b.removeData(by,bw,true);bz.fire()}},0)}}b.extend({_mark:function(bv,e){if(bv){e=(e||"fx")+"mark";b._data(bv,e,(b._data(bv,e)||0)+1)}},_unmark:function(by,bx,bv){if(by!==true){bv=bx;bx=by;by=false}if(bx){bv=bv||"fx";var e=bv+"mark",bw=by?0:((b._data(bx,e)||1)-1);if(bw){b._data(bx,e,bw)}else{b.removeData(bx,e,true);bi(bx,bv,"mark")}}},queue:function(bv,e,bx){var bw;if(bv){e=(e||"fx")+"queue";bw=b._data(bv,e);if(bx){if(!bw||b.isArray(bx)){bw=b._data(bv,e,b.makeArray(bx))}else{bw.push(bx)}}return bw||[]}},dequeue:function(by,bx){bx=bx||"fx";var bv=b.queue(by,bx),bw=bv.shift(),e={};if(bw==="inprogress"){bw=bv.shift()}if(bw){if(bx==="fx"){bv.unshift("inprogress")}b._data(by,bx+".run",e);bw.call(by,function(){b.dequeue(by,bx)},e)}if(!bv.length){b.removeData(by,bx+"queue "+bx+".run",true);bi(by,bx,"queue")}}});b.fn.extend({queue:function(e,bv){if(typeof e!=="string"){bv=e;e="fx"}if(bv===L){return b.queue(this[0],e)}return this.each(function(){var bw=b.queue(this,e,bv);if(e==="fx"&&bw[0]!=="inprogress"){b.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(bv,e){bv=b.fx?b.fx.speeds[bv]||bv:bv;e=e||"fx";return this.queue(e,function(bx,bw){var by=setTimeout(bx,bv);bw.stop=function(){clearTimeout(by)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(bD,bw){if(typeof bD!=="string"){bw=bD;bD=L}bD=bD||"fx";var e=b.Deferred(),bv=this,by=bv.length,bB=1,bz=bD+"defer",bA=bD+"queue",bC=bD+"mark",bx;function bE(){if(!(--bB)){e.resolveWith(bv,[bv])}}while(by--){if((bx=b.data(bv[by],bz,L,true)||(b.data(bv[by],bA,L,true)||b.data(bv[by],bC,L,true))&&b.data(bv[by],bz,b.Callbacks("once memory"),true))){bB++;bx.add(bE)}}bE();return e.promise()}});var aP=/[\n\t\r]/g,af=/\s+/,aU=/\r/g,g=/^(?:button|input)$/i,D=/^(?:button|input|object|select|textarea)$/i,l=/^a(?:rea)?$/i,ao=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,F=b.support.getSetAttribute,be,aY,aF;b.fn.extend({attr:function(e,bv){return b.access(this,e,bv,true,b.attr)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,bv){return b.access(this,e,bv,true,b.prop)},removeProp:function(e){e=b.propFix[e]||e;return this.each(function(){try{this[e]=L;delete this[e]}catch(bv){}})},addClass:function(by){var bA,bw,bv,bx,bz,bB,e;if(b.isFunction(by)){return this.each(function(bC){b(this).addClass(by.call(this,bC,this.className))})}if(by&&typeof by==="string"){bA=by.split(af);for(bw=0,bv=this.length;bw<bv;bw++){bx=this[bw];if(bx.nodeType===1){if(!bx.className&&bA.length===1){bx.className=by}else{bz=" "+bx.className+" ";for(bB=0,e=bA.length;bB<e;bB++){if(!~bz.indexOf(" "+bA[bB]+" ")){bz+=bA[bB]+" "}}bx.className=b.trim(bz)}}}}return this},removeClass:function(bz){var bA,bw,bv,by,bx,bB,e;if(b.isFunction(bz)){return this.each(function(bC){b(this).removeClass(bz.call(this,bC,this.className))})}if((bz&&typeof bz==="string")||bz===L){bA=(bz||"").split(af);for(bw=0,bv=this.length;bw<bv;bw++){by=this[bw];if(by.nodeType===1&&by.className){if(bz){bx=(" "+by.className+" ").replace(aP," ");for(bB=0,e=bA.length;bB<e;bB++){bx=bx.replace(" "+bA[bB]+" "," ")}by.className=b.trim(bx)}else{by.className=""}}}}return this},toggleClass:function(bx,bv){var bw=typeof bx,e=typeof bv==="boolean";if(b.isFunction(bx)){return this.each(function(by){b(this).toggleClass(bx.call(this,by,this.className,bv),bv)})}return this.each(function(){if(bw==="string"){var bA,bz=0,by=b(this),bB=bv,bC=bx.split(af);while((bA=bC[bz++])){bB=e?bB:!by.hasClass(bA);by[bB?"addClass":"removeClass"](bA)}}else{if(bw==="undefined"||bw==="boolean"){if(this.className){b._data(this,"__className__",this.className)}this.className=this.className||bx===false?"":b._data(this,"__className__")||""}}})},hasClass:function(e){var bx=" "+e+" ",bw=0,bv=this.length;for(;bw<bv;bw++){if(this[bw].nodeType===1&&(" "+this[bw].className+" ").replace(aP," ").indexOf(bx)>-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv<bz;bv++){bx=bC[bv];if(bx.selected&&(b.support.optDisabled?!bx.disabled:bx.getAttribute("disabled")===null)&&(!bx.parentNode.disabled||!b.nodeName(bx.parentNode,"optgroup"))){bA=b(bx).val();if(bw){return bA}bB.push(bA)}}if(bw&&!bB.length&&bC.length){return b(bC[by]).val()}return bB},set:function(bv,bw){var e=b.makeArray(bw);b(bv).find("option").each(function(){this.selected=b.inArray(b(this).val(),e)>=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;
+
18 if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw<e;bw++){bv=bA[bw];if(bv){by=b.propFix[bv]||bv;b.attr(bx,bv,"");bx.removeAttribute(F?bv:by);if(ao.test(bv)&&by in bx){bx[by]=false}}}}},attrHooks:{type:{set:function(e,bv){if(g.test(e.nodeName)&&e.parentNode){b.error("type property can't be changed")}else{if(!b.support.radioValue&&bv==="radio"&&b.nodeName(e,"input")){var bw=e.value;e.setAttribute("type",bv);if(bw){e.value=bw}return bv}}}},value:{get:function(bv,e){if(be&&b.nodeName(bv,"button")){return be.get(bv,e)}return e in bv?bv.value:null},set:function(bv,bw,e){if(be&&b.nodeName(bv,"button")){return be.set(bv,bw,e)}bv.value=bw}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(bz,bx,bA){var bw,e,by,bv=bz.nodeType;if(!bz||bv===3||bv===8||bv===2){return}by=bv!==1||!b.isXMLDoc(bz);if(by){bx=b.propFix[bx]||bx;e=b.propHooks[bx]}if(bA!==L){if(e&&"set" in e&&(bw=e.set(bz,bA,bx))!==L){return bw}else{return(bz[bx]=bA)}}else{if(e&&"get" in e&&(bw=e.get(bz,bx))!==null){return bw}else{return bz[bx]}}},propHooks:{tabIndex:{get:function(bv){var e=bv.getAttributeNode("tabindex");return e&&e.specified?parseInt(e.value,10):D.test(bv.nodeName)||l.test(bv.nodeName)&&bv.href?0:L}}}});b.attrHooks.tabindex=b.propHooks.tabIndex;aY={get:function(bv,e){var bx,bw=b.prop(bv,e);return bw===true||typeof bw!=="boolean"&&(bx=bv.getAttributeNode(e))&&bx.nodeValue!==false?e.toLowerCase():L},set:function(bv,bx,e){var bw;if(bx===false){b.removeAttr(bv,e)}else{bw=b.propFix[e]||e;if(bw in bv){bv[bw]=true}bv.setAttribute(e,e.toLowerCase())}return e}};if(!F){aF={name:true,id:true};be=b.valHooks.button={get:function(bw,bv){var e;e=bw.getAttributeNode(bv);return e&&(aF[bv]?e.nodeValue!=="":e.specified)?e.nodeValue:L},set:function(bw,bx,bv){var e=bw.getAttributeNode(bv);if(!e){e=av.createAttribute(bv);bw.setAttributeNode(e)}return(e.nodeValue=bx+"")}};b.attrHooks.tabindex.set=be.set;b.each(["width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{set:function(bw,bx){if(bx===""){bw.setAttribute(e,"auto");return bx}}})});b.attrHooks.contenteditable={get:be.get,set:function(bv,bw,e){if(bw===""){bw="false"}be.set(bv,bw,e)}}}if(!b.support.hrefNormalized){b.each(["href","src","width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{get:function(bx){var bw=bx.getAttribute(e,2);return bw===null?L:bw}})})}if(!b.support.style){b.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||L},set:function(e,bv){return(e.style.cssText=""+bv)}}}if(!b.support.optSelected){b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(bv){var e=bv.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}})}if(!b.support.enctype){b.propFix.enctype="encoding"}if(!b.support.checkOn){b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}})}b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,bv){if(b.isArray(bv)){return(e.checked=b.inArray(b(e).val(),bv)>=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI<bC.length;bI++){bH=n.exec(bC[bI])||[];bF=bH[1];e=(bH[2]||"").split(".").sort();bE=b.event.special[bF]||{};bF=(by?bE.delegateType:bE.bindType)||bF;bE=b.event.special[bF]||{};bG=b.extend({type:bF,origType:bH[1],data:bA,handler:bJ,guid:bJ.guid,selector:by,quick:Y(by),namespace:e.join(".")},bv);bw=bK[bF];if(!bw){bw=bK[bF]=[];bw.delegateCount=0;if(!bE.setup||bE.setup.call(bx,bA,e,bB)===false){if(bx.addEventListener){bx.addEventListener(bF,bB,false)}else{if(bx.attachEvent){bx.attachEvent("on"+bF,bB)}}}}if(bE.add){bE.add.call(bx,bG);if(!bG.handler.guid){bG.handler.guid=bJ.guid}}if(by){bw.splice(bw.delegateCount++,0,bG)}else{bw.push(bG)}b.event.global[bF]=true}bx=null},global:{},remove:function(bJ,bE,bv,bH,bB){var bI=b.hasData(bJ)&&b._data(bJ),bF,bx,bz,bL,bC,bA,bG,bw,by,bK,bD,e;if(!bI||!(bw=bI.events)){return}bE=b.trim(bt(bE||"")).split(" ");for(bF=0;bF<bE.length;bF++){bx=n.exec(bE[bF])||[];bz=bL=bx[1];bC=bx[2];if(!bz){for(bz in bw){b.event.remove(bJ,bz+bE[bF],bv,bH,true)}continue}by=b.event.special[bz]||{};bz=(bH?by.delegateType:by.bindType)||bz;bD=bw[bz]||[];bA=bD.length;bC=bC?new RegExp("(^|\\.)"+bC.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(bG=0;bG<bD.length;bG++){e=bD[bG];if((bB||bL===e.origType)&&(!bv||bv.guid===e.guid)&&(!bC||bC.test(e.namespace))&&(!bH||bH===e.selector||bH==="**"&&e.selector)){bD.splice(bG--,1);if(e.selector){bD.delegateCount--}if(by.remove){by.remove.call(bJ,e)}}}if(bD.length===0&&bA!==bD.length){if(!by.teardown||by.teardown.call(bJ,bC)===false){b.removeEvent(bJ,bz,bI.handle)}delete bw[bz]}}if(b.isEmptyObject(bw)){bK=bI.handle;if(bK){bK.elem=null}b.removeData(bJ,["events","handle"],true)}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(bv,bD,bA,bJ){if(bA&&(bA.nodeType===3||bA.nodeType===8)){return}var bG=bv.type||bv,bx=[],e,bw,bC,bH,bz,by,bF,bE,bB,bI;if(T.test(bG+b.event.triggered)){return}if(bG.indexOf("!")>=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bC<bB.length&&!bv.isPropagationStopped();bC++){bH=bB[bC][0];bv.type=bB[bC][1];bE=(b._data(bH,"events")||{})[bv.type]&&b._data(bH,"handle");if(bE){bE.apply(bH,bD)}bE=by&&bH[by];if(bE&&b.acceptData(bH)&&bE.apply(bH,bD)===false){bv.preventDefault()}}bv.type=bG;if(!bJ&&!bv.isDefaultPrevented()){if((!bF._default||bF._default.apply(bA.ownerDocument,bD)===false)&&!(bG==="click"&&b.nodeName(bA,"a"))&&b.acceptData(bA)){if(by&&bA[bG]&&((bG!=="focus"&&bG!=="blur")||bv.target.offsetWidth!==0)&&!b.isWindow(bA)){bz=bA[by];if(bz){bA[by]=null}b.event.triggered=bG;bA[bG]();b.event.triggered=L;if(bz){bA[by]=bz}}}}return bv.result},dispatch:function(e){e=b.event.fix(e||bb.event);var bz=((b._data(this,"events")||{})[e.type]||[]),bA=bz.delegateCount,bG=[].slice.call(arguments,0),by=!e.exclusive&&!e.namespace,bH=[],bC,bB,bK,bx,bF,bE,bv,bD,bI,bw,bJ;bG[0]=e;e.delegateTarget=this;if(bA&&!e.target.disabled&&!(e.button&&e.type==="click")){bx=b(this);bx.context=this.ownerDocument||this;for(bK=e.target;bK!=this;bK=bK.parentNode||this){bE={};bD=[];bx[0]=bK;for(bC=0;bC<bA;bC++){bI=bz[bC];bw=bI.selector;if(bE[bw]===L){bE[bw]=(bI.quick?j(bK,bI.quick):bx.is(bw))}if(bE[bw]){bD.push(bI)}}if(bD.length){bH.push({elem:bK,matches:bD})}}}if(bz.length>bA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC<bH.length&&!e.isPropagationStopped();bC++){bv=bH[bC];e.currentTarget=bv.elem;for(bB=0;bB<bv.matches.length&&!e.isImmediatePropagationStopped();bB++){bI=bv.matches[bB];if(by||(!e.namespace&&!bI.namespace)||e.namespace_re&&e.namespace_re.test(bI.namespace)){e.data=bI.data;e.handleObj=bI;bF=((b.event.special[bI.origType]||{}).handle||bI.handler).apply(bv.elem,bG);if(bF!==L){e.result=bF;if(bF===false){e.preventDefault();e.stopPropagation()}}}}}return e.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(bv,e){if(bv.which==null){bv.which=e.charCode!=null?e.charCode:e.keyCode}return bv}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(bx,bw){var by,bz,e,bv=bw.button,bA=bw.fromElement;if(bx.pageX==null&&bw.clientX!=null){by=bx.target.ownerDocument||av;bz=by.documentElement;e=by.body;bx.pageX=bw.clientX+(bz&&bz.scrollLeft||e&&e.scrollLeft||0)-(bz&&bz.clientLeft||e&&e.clientLeft||0);bx.pageY=bw.clientY+(bz&&bz.scrollTop||e&&e.scrollTop||0)-(bz&&bz.clientTop||e&&e.clientTop||0)}if(!bx.relatedTarget&&bA){bx.relatedTarget=bA===bx.target?bw.toElement:bA}if(!bx.which&&bv!==L){bx.which=(bv&1?1:(bv&2?3:(bv&4?2:0)))}return bx}},fix:function(bw){if(bw[b.expando]){return bw}var bv,bz,e=bw,bx=b.event.fixHooks[bw.type]||{},by=bx.props?this.props.concat(bx.props):this.props;bw=b.Event(e);for(bv=by.length;bv;){bz=by[--bv];bw[bz]=e[bz]}if(!bw.target){bw.target=e.srcElement||av}if(bw.target.nodeType===3){bw.target=bw.target.parentNode}if(bw.metaKey===L){bw.metaKey=bw.ctrlKey}return bx.filter?bx.filter(bw,e):bw},special:{ready:{setup:b.bindReady},load:{noBubble:true},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(bw,bv,e){if(b.isWindow(this)){this.onbeforeunload=e}},teardown:function(bv,e){if(this.onbeforeunload===e){this.onbeforeunload=null}}}},simulate:function(bw,by,bx,bv){var bz=b.extend(new b.Event(),bx,{type:bw,isSimulated:true,originalEvent:{}});if(bv){b.event.trigger(bz,null,by)}else{b.event.dispatch.call(by,bz)}if(bz.isDefaultPrevented()){bx.preventDefault()}}};b.event.handle=b.event.dispatch;b.removeEvent=av.removeEventListener?function(bv,e,bw){if(bv.removeEventListener){bv.removeEventListener(e,bw,false)}}:function(bv,e,bw){if(bv.detachEvent){bv.detachEvent("on"+e,bw)}};b.Event=function(bv,e){if(!(this instanceof b.Event)){return new b.Event(bv,e)}if(bv&&bv.type){this.originalEvent=bv;this.type=bv.type;this.isDefaultPrevented=(bv.defaultPrevented||bv.returnValue===false||bv.getPreventDefault&&bv.getPreventDefault())?i:bk}else{this.type=bv}if(e){b.extend(this,e)}this.timeStamp=bv&&bv.timeStamp||b.now();this[b.expando]=true};function bk(){return false}function i(){return true}b.Event.prototype={preventDefault:function(){this.isDefaultPrevented=i;var bv=this.originalEvent;if(!bv){return}if(bv.preventDefault){bv.preventDefault()}else{bv.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=i;var bv=this.originalEvent;if(!bv){return}if(bv.stopPropagation){bv.stopPropagation()}bv.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=i;this.stopPropagation()},isDefaultPrevented:bk,isPropagationStopped:bk,isImmediatePropagationStopped:bk};b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(bv,e){b.event.special[bv]={delegateType:e,bindType:e,handle:function(bz){var bB=this,bA=bz.relatedTarget,by=bz.handleObj,bw=by.selector,bx;if(!bA||(bA!==bB&&!b.contains(bB,bA))){bz.type=by.origType;bx=by.handler.apply(this,arguments);bz.type=e}return bx}}});if(!b.support.submitBubbles){b.event.special.submit={setup:function(){if(b.nodeName(this,"form")){return false
+
19 }b.event.add(this,"click._submit keypress._submit",function(bx){var bw=bx.target,bv=b.nodeName(bw,"input")||b.nodeName(bw,"button")?bw.form:L;if(bv&&!bv._submit_attached){b.event.add(bv,"submit._submit",function(e){if(this.parentNode&&!e.isTrigger){b.event.simulate("submit",this.parentNode,e,true)}});bv._submit_attached=true}})},teardown:function(){if(b.nodeName(this,"form")){return false}b.event.remove(this,"._submit")}}}if(!b.support.changeBubbles){b.event.special.change={setup:function(){if(bd.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){b.event.add(this,"propertychange._change",function(e){if(e.originalEvent.propertyName==="checked"){this._just_changed=true}});b.event.add(this,"click._change",function(e){if(this._just_changed&&!e.isTrigger){this._just_changed=false;b.event.simulate("change",this,e,true)}})}return false}b.event.add(this,"beforeactivate._change",function(bw){var bv=bw.target;if(bd.test(bv.nodeName)&&!bv._change_attached){b.event.add(bv,"change._change",function(e){if(this.parentNode&&!e.isSimulated&&!e.isTrigger){b.event.simulate("change",this.parentNode,e,true)}});bv._change_attached=true}})},handle:function(bv){var e=bv.target;if(this!==e||bv.isSimulated||bv.isTrigger||(e.type!=="radio"&&e.type!=="checkbox")){return bv.handleObj.handler.apply(this,arguments)}},teardown:function(){b.event.remove(this,"._change");return bd.test(this.nodeName)}}}if(!b.support.focusinBubbles){b.each({focus:"focusin",blur:"focusout"},function(bx,e){var bv=0,bw=function(by){b.event.simulate(e,by.target,b.event.fix(by),true)};b.event.special[e]={setup:function(){if(bv++===0){av.addEventListener(bx,bw,true)}},teardown:function(){if(--bv===0){av.removeEventListener(bx,bw,true)}}}})}b.fn.extend({on:function(bw,e,bz,by,bv){var bA,bx;if(typeof bw==="object"){if(typeof e!=="string"){bz=e;e=L}for(bx in bw){this.on(bx,e,bz,bw[bx],bv)}return this}if(bz==null&&by==null){by=e;bz=e=L}else{if(by==null){if(typeof e==="string"){by=bz;bz=L}else{by=bz;bz=e;e=L}}}if(by===false){by=bk}else{if(!by){return this}}if(bv===1){bA=by;by=function(bB){b().off(bB);return bA.apply(this,arguments)};by.guid=bA.guid||(bA.guid=b.guid++)}return this.each(function(){b.event.add(this,bw,by,bz,e)})},one:function(bv,e,bx,bw){return this.on.call(this,bv,e,bx,bw,1)},off:function(bw,e,by){if(bw&&bw.preventDefault&&bw.handleObj){var bv=bw.handleObj;b(bw.delegateTarget).off(bv.namespace?bv.type+"."+bv.namespace:bv.type,bv.selector,bv.handler);return this}if(typeof bw==="object"){for(var bx in bw){this.off(bx,e,bw[bx])}return this}if(e===false||typeof e==="function"){by=e;e=L}if(by===false){by=bk}return this.each(function(){b.event.remove(this,bw,by,e)})},bind:function(e,bw,bv){return this.on(e,null,bw,bv)},unbind:function(e,bv){return this.off(e,null,bv)},live:function(e,bw,bv){b(this.context).on(e,this.selector,bw,bv);return this},die:function(e,bv){b(this.context).off(e,this.selector||"**",bv);return this},delegate:function(e,bv,bx,bw){return this.on(bv,e,bx,bw)},undelegate:function(e,bv,bw){return arguments.length==1?this.off(e,"**"):this.off(bv,e,bw)},trigger:function(e,bv){return this.each(function(){b.event.trigger(e,bv,this)})},triggerHandler:function(e,bv){if(this[0]){return b.event.trigger(e,bv,this[0],true)}},toggle:function(bx){var bv=arguments,e=bx.guid||b.guid++,bw=0,by=function(bz){var bA=(b._data(this,"lastToggle"+bx.guid)||0)%bw;b._data(this,"lastToggle"+bx.guid,bA+1);bz.preventDefault();return bv[bA].apply(this,arguments)||false};by.guid=e;while(bw<bv.length){bv[bw++].guid=e}return this.click(by)},hover:function(e,bv){return this.mouseenter(e).mouseleave(bv||e)}});b.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu").split(" "),function(bv,e){b.fn[e]=function(bx,bw){if(bw==null){bw=bx;bx=null}return arguments.length>0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}});
+
26 (function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e<bR.length;e++){if(bR[e]===bR[e-1]){bR.splice(e--,1)}}}}return bR};by.matches=function(e,bR){return by(e,null,null,bR)};by.matchesSelector=function(e,bR){return by(bR,null,null,[e]).length>0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS<bU;bS++){bV=bE.order[bS];if((bT=bE.leftMatch[bV].exec(bX))){bR=bT[1];bT.splice(1,1);if(bR.substr(bR.length-1)!=="\\"){bT[1]=(bT[1]||"").replace(bK,"");bW=bE.find[bV](bT,e,bY);if(bW!=null){bX=bX.replace(bE.match[bV],"");break}}}}if(!bW){bW=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:bW,expr:bX}};by.filter=function(b1,b0,b4,bU){var bW,e,bZ,b6,b3,bR,bT,bV,b2,bS=b1,b5=[],bY=b0,bX=b0&&b0[0]&&by.isXML(b0[0]);while(b1&&b0.length){for(bZ in bE.filter){if((bW=bE.leftMatch[bZ].exec(b1))!=null&&bW[2]){bR=bE.filter[bZ];bT=bW[1];e=false;bW.splice(1,1);if(bT.substr(bT.length-1)==="\\"){continue}if(bY===b5){b5=[]}if(bE.preFilter[bZ]){bW=bE.preFilter[bZ](bW,bY,b4,b5,bU,bX);if(!bW){e=b6=true}else{if(bW===true){continue}}}if(bW){for(bV=0;(b3=bY[bV])!=null;bV++){if(b3){b6=bR(b3,bW,bV,bY);b2=bU^b6;if(b4&&b6!=null){if(b2){e=true}else{bY[bV]=false}}else{if(b2){b5.push(b3);e=true}}}}}if(b6!==L){if(!b4){bY=b5}b1=b1.replace(bE.match[bZ],"");if(!e){return[]}break}}}if(b1===bS){if(e==null){by.error(b1)}else{break}}bS=b1}return bY};by.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var bw=by.getText=function(bU){var bS,bT,e=bU.nodeType,bR="";if(e){if(e===1||e===9){if(typeof bU.textContent==="string"){return bU.textContent}else{if(typeof bU.innerText==="string"){return bU.innerText.replace(bO,"")}else{for(bU=bU.firstChild;bU;bU=bU.nextSibling){bR+=bw(bU)}}}}else{if(e===3||e===4){return bU.nodeValue}}}else{for(bS=0;(bT=bU[bS]);bS++){if(bT.nodeType!==8){bR+=bw(bT)}}}return bR};var bE=by.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(bW,bR){var bT=typeof bR==="string",bV=bT&&!bQ.test(bR),bX=bT&&!bV;if(bV){bR=bR.toLowerCase()}for(var bS=0,e=bW.length,bU;bS<e;bS++){if((bU=bW[bS])){while((bU=bU.previousSibling)&&bU.nodeType!==1){}bW[bS]=bX||bU&&bU.nodeName.toLowerCase()===bR?bU||false:bU===bR}}if(bX){by.filter(bR,bW,true)}},">":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS<e;bS++){bV=bW[bS];if(bV){var bT=bV.parentNode;bW[bS]=bT.nodeName.toLowerCase()===bR?bT:false}}}else{for(;bS<e;bS++){bV=bW[bS];if(bV){bW[bS]=bU?bV.parentNode:bV.parentNode===bR}}if(bU){by.filter(bR,bW,true)}}},"":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("parentNode",bR,bS,bT,bU,bV)},"~":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("previousSibling",bR,bS,bT,bU,bV)}},find:{ID:function(bR,bS,bT){if(typeof bS.getElementById!=="undefined"&&!bT){var e=bS.getElementById(bR[1]);return e&&e.parentNode?[e]:[]}},NAME:function(bS,bV){if(typeof bV.getElementsByName!=="undefined"){var bR=[],bU=bV.getElementsByName(bS[1]);for(var bT=0,e=bU.length;bT<e;bT++){if(bU[bT].getAttribute("name")===bS[1]){bR.push(bU[bT])}}return bR.length===0?null:bR}},TAG:function(e,bR){if(typeof bR.getElementsByTagName!=="undefined"){return bR.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(bT,bR,bS,e,bW,bX){bT=" "+bT[1].replace(bK,"")+" ";if(bX){return bT}for(var bU=0,bV;(bV=bR[bU])!=null;bU++){if(bV){if(bW^(bV.className&&(" "+bV.className+" ").replace(/[\t\n\r]/g," ").indexOf(bT)>=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1
+
27 },lt:function(bS,bR,e){return bR<e[3]-0},gt:function(bS,bR,e){return bR>e[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV<bU;bV++){if(bT[bV]===bS){return false}}return true}else{by.error(e)}}}},CHILD:function(bS,bU){var bT,b0,bW,bZ,e,bV,bY,bX=bU[1],bR=bS;switch(bX){case"only":case"first":while((bR=bR.previousSibling)){if(bR.nodeType===1){return false}}if(bX==="first"){return true}bR=bS;case"last":while((bR=bR.nextSibling)){if(bR.nodeType===1){return false}}return true;case"nth":bT=bU[2];b0=bU[3];if(bT===1&&b0===0){return true}bW=bU[0];bZ=bS.parentNode;if(bZ&&(bZ[bC]!==bW||!bS.nodeIndex)){bV=0;for(bR=bZ.firstChild;bR;bR=bR.nextSibling){if(bR.nodeType===1){bR.nodeIndex=++bV}}bZ[bC]=bW}bY=bS.nodeIndex-b0;if(bT===0){return bY===0}else{return(bY%bT===0&&bY/bT>=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS<e;bS++){bR.push(bU[bS])}}else{for(;bU[bS];bS++){bR.push(bU[bS])}}}return bR}}var bJ,bG;if(av.documentElement.compareDocumentPosition){bJ=function(bR,e){if(bR===e){bB=true;return 0}if(!bR.compareDocumentPosition||!e.compareDocumentPosition){return bR.compareDocumentPosition?-1:1}return bR.compareDocumentPosition(e)&4?-1:1}}else{bJ=function(bY,bX){if(bY===bX){bB=true;return 0}else{if(bY.sourceIndex&&bX.sourceIndex){return bY.sourceIndex-bX.sourceIndex}}var bV,bR,bS=[],e=[],bU=bY.parentNode,bW=bX.parentNode,bZ=bU;if(bU===bW){return bG(bY,bX)}else{if(!bU){return -1}else{if(!bW){return 1}}}while(bZ){bS.unshift(bZ);bZ=bZ.parentNode}bZ=bW;while(bZ){e.unshift(bZ);bZ=bZ.parentNode}bV=bS.length;bR=e.length;for(var bT=0;bT<bV&&bT<bR;bT++){if(bS[bT]!==e[bT]){return bG(bS[bT],e[bT])}}return bT===bV?bG(bY,e[bT],-1):bG(bS[bT],bX,1)};bG=function(bR,e,bS){if(bR===e){return bS}var bT=bR.nextSibling;while(bT){if(bT===e){return -1}bT=bT.nextSibling}return 1}}(function(){var bR=av.createElement("div"),bS="script"+(new Date()).getTime(),e=av.documentElement;bR.innerHTML="<a name='"+bS+"'/>";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="<p class='TEST'></p>";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1&&!bY){e[bC]=bV;e.sizset=bT}if(e.nodeName.toLowerCase()===bW){bU=e;break}e=e[bR]}bZ[bT]=bU}}}function bN(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1){if(!bY){e[bC]=bV;e.sizset=bT}if(typeof bW!=="string"){if(e===bW){bU=true;break}}else{if(by.filter(bW,[e]).length>0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT<bR;bT++){by(bS,bY[bT],bX,bW)}return by.filter(bU,bX)};by.attr=b.attr;by.selectors.attrMap={};b.find=by;b.expr=by.selectors;b.expr[":"]=b.expr.filters;b.unique=by.uniqueSort;b.text=by.getText;b.isXMLDoc=by.isXML;b.contains=by.contains})();var ab=/Until$/,aq=/^(?:parents|prevUntil|prevAll)/,a9=/,/,bp=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,H=b.expr.match.POS,ay={children:true,contents:true,next:true,prev:true};b.fn.extend({find:function(e){var bw=this,by,bv;if(typeof e!=="string"){return b(e).filter(function(){for(by=0,bv=bw.length;by<bv;by++){if(b.contains(bw[by],this)){return true}}})}var bx=this.pushStack("","find",e),bA,bB,bz;for(by=0,bv=this.length;by<bv;by++){bA=bx.length;b.find(e,this[by],bx);if(by>0){for(bB=bA;bB<bx.length;bB++){for(bz=0;bz<bA;bz++){if(bx[bz]===bx[bB]){bx.splice(bB--,1);break}}}}}return bx},has:function(bv){var e=b(bv);return this.filter(function(){for(var bx=0,bw=e.length;bx<bw;bx++){if(b.contains(this,e[bx])){return true}}})},not:function(e){return this.pushStack(aG(this,e,false),"not",e)},filter:function(e){return this.pushStack(aG(this,e,true),"filter",e)},is:function(e){return !!e&&(typeof e==="string"?H.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw<by.length;bw++){if(b(bz).is(by[bw])){bv.push({selector:by[bw],elem:bz,level:bB})}}bz=bz.parentNode;bB++}return bv}var bA=H.test(by)||typeof by!=="string"?b(by,bx||this.context):0;for(bw=0,e=this.length;bw<e;bw++){bz=this[bw];while(bz){if(bA?bA.index(bz)>-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/<tbody/i,W=/<|&#?\w+;/,ae=/<(?:script|style)/i,O=/<(?:script|object|embed|option|style)/i,ah=new RegExp("<(?:"+aR+")","i"),o=/checked\s*(?:[^=]|=\s*.checked.)/i,bm=/\/(java|ecma)script/i,aN=/^\s*<!(?:\[CDATA\[|\-\-)/,ax={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},ac=a(av);
+
28 ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div<div>","</div>"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1></$2>");try{for(var bw=0,bv=this.length;bw<bv;bw++){if(this[bw].nodeType===1){b.cleanData(this[bw].getElementsByTagName("*"));this[bw].innerHTML=bx}}}catch(by){this.empty().append(bx)}}else{if(b.isFunction(bx)){this.each(function(bz){var e=b(this);e.html(bx.call(this,bz,e.html()))})}else{this.empty().append(bx)}}}return this},replaceWith:function(e){if(this[0]&&this[0].parentNode){if(b.isFunction(e)){return this.each(function(bx){var bw=b(this),bv=bw.html();bw.replaceWith(e.call(this,bx,bv))})}if(typeof e!=="string"){e=b(e).detach()}return this.each(function(){var bw=this.nextSibling,bv=this.parentNode;b(this).remove();if(bw){b(bw).before(e)}else{b(bv).append(e)}})}else{return this.length?this.pushStack(b(b.isFunction(e)?e():e),"replaceWith",e):this}},detach:function(e){return this.remove(e,true)},domManip:function(bB,bF,bE){var bx,by,bA,bD,bC=bB[0],bv=[];if(!b.support.checkClone&&arguments.length===3&&typeof bC==="string"&&o.test(bC)){return this.each(function(){b(this).domManip(bB,bF,bE,true)})}if(b.isFunction(bC)){return this.each(function(bH){var bG=b(this);bB[0]=bC.call(this,bH,bF?bG.html():L);bG.domManip(bB,bF,bE)})}if(this[0]){bD=bC&&bC.parentNode;if(b.support.parentNode&&bD&&bD.nodeType===11&&bD.childNodes.length===this.length){bx={fragment:bD}}else{bx=b.buildFragment(bB,this,bv)}bA=bx.fragment;if(bA.childNodes.length===1){by=bA=bA.firstChild}else{by=bA.firstChild}if(by){bF=bF&&b.nodeName(by,"tr");for(var bw=0,e=this.length,bz=e-1;bw<e;bw++){bE.call(bF?ba(this[bw],by):this[bw],bx.cacheable||(e>1&&bw<bz)?b.clone(bA,true,true):bA)}}if(bv.length){b.each(bv,bo)}}return this}});function ba(e,bv){return b.nodeName(e,"table")?(e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody"))):e}function t(bB,bv){if(bv.nodeType!==1||!b.hasData(bB)){return}var by,bx,e,bA=b._data(bB),bz=b._data(bv,bA),bw=bA.events;if(bw){delete bz.handle;bz.events={};for(by in bw){for(bx=0,e=bw[by].length;bx<e;bx++){b.event.add(bv,by+(bw[by][bx].namespace?".":"")+bw[by][bx].namespace,bw[by][bx],bw[by][bx].data)}}}if(bz.data){bz.data=b.extend({},bz.data)}}function ai(bv,e){var bw;if(e.nodeType!==1){return}if(e.clearAttributes){e.clearAttributes()}if(e.mergeAttributes){e.mergeAttributes(bv)}bw=e.nodeName.toLowerCase();if(bw==="object"){e.outerHTML=bv.outerHTML}else{if(bw==="input"&&(bv.type==="checkbox"||bv.type==="radio")){if(bv.checked){e.defaultChecked=e.checked=bv.checked}if(e.value!==bv.value){e.value=bv.value}}else{if(bw==="option"){e.selected=bv.defaultSelected}else{if(bw==="input"||bw==="textarea"){e.defaultValue=bv.defaultValue}}}}e.removeAttribute(b.expando)}b.buildFragment=function(bz,bx,bv){var by,e,bw,bA,bB=bz[0];if(bx&&bx[0]){bA=bx[0].ownerDocument||bx[0]}if(!bA.createDocumentFragment){bA=av}if(bz.length===1&&typeof bB==="string"&&bB.length<512&&bA===av&&bB.charAt(0)==="<"&&!O.test(bB)&&(b.support.checkClone||!o.test(bB))&&(b.support.html5Clone||!ah.test(bB))){e=true;bw=b.fragments[bB];if(bw&&bw!==1){by=bw}}if(!by){by=bA.createDocumentFragment();b.clean(bz,bA,by,bv)}if(e){b.fragments[bB]=bw?by:1}return{fragment:by,cacheable:e}};b.fragments={};b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,bv){b.fn[e]=function(bw){var bz=[],bC=b(bw),bB=this.length===1&&this[0].parentNode;if(bB&&bB.nodeType===11&&bB.childNodes.length===1&&bC.length===1){bC[bv](this[0]);return this}else{for(var bA=0,bx=bC.length;bA<bx;bA++){var by=(bA>0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1></$2>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]==="<table>"&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB<bG;bB++){E(bz[bB])}}else{E(bz)}}if(bz.nodeType){bI.push(bz)}else{bI=b.merge(bI,bz)}}if(bH){bF=function(bL){return !bL.type||bm.test(bL.type)};for(bE=0;bI[bE];bE++){if(bA&&b.nodeName(bI[bE],"script")&&(!bI[bE].type||bI[bE].type.toLowerCase()==="text/javascript")){bA.push(bI[bE].parentNode?bI[bE].parentNode.removeChild(bI[bE]):bI[bE])}else{if(bI[bE].nodeType===1){var bJ=b.grep(bI[bE].getElementsByTagName("script"),bF);bI.splice.apply(bI,[bE+1,0].concat(bJ))}bH.appendChild(bI[bE])}}}return bI},cleanData:function(bv){var by,bw,e=b.cache,bB=b.event.special,bA=b.support.deleteExpando;for(var bz=0,bx;(bx=bv[bz])!=null;bz++){if(bx.nodeName&&b.noData[bx.nodeName.toLowerCase()]){continue}bw=bx[b.expando];if(bw){by=e[bw];if(by&&by.events){for(var bC in by.events){if(bB[bC]){b.event.remove(bx,bC)}else{b.removeEvent(bx,bC,by.handle)}}if(by.handle){by.handle.elem=null}}if(bA){delete bx[b.expando]}else{if(bx.removeAttribute){bx.removeAttribute(b.expando)}}delete e[bw]}}}});function bo(e,bv){if(bv.src){b.ajax({url:bv.src,async:false,dataType:"script"})}else{b.globalEval((bv.text||bv.textContent||bv.innerHTML||"").replace(aN,"/*$0*/"))}if(bv.parentNode){bv.parentNode.removeChild(bv)}}var ak=/alpha\([^)]*\)/i,au=/opacity=([^)]*)/,z=/([A-Z]|^ms)/g,bc=/^-?\d+(?:px)?$/i,bn=/^-?\d/,I=/^([\-+])=([\-+.\de]+)/,a7={position:"absolute",visibility:"hidden",display:"block"},an=["Left","Right"],a1=["Top","Bottom"],Z,aI,aX;b.fn.css=function(e,bv){if(arguments.length===2&&bv===L){return this}return b.access(this,e,bv,true,function(bx,bw,by){return by!==L?b.style(bx,bw,by):b.css(bx,bw)})};b.extend({cssHooks:{opacity:{get:function(bw,bv){if(bv){var e=Z(bw,"opacity","opacity");return e===""?"1":e}else{return bw.style.opacity}}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(bx,bw,bD,by){if(!bx||bx.nodeType===3||bx.nodeType===8||!bx.style){return}var bB,bC,bz=b.camelCase(bw),bv=bx.style,bE=b.cssHooks[bz];bw=b.cssProps[bz]||bz;if(bD!==L){bC=typeof bD;if(bC==="string"&&(bB=I.exec(bD))){bD=(+(bB[1]+1)*+bB[2])+parseFloat(b.css(bx,bw));bC="number"}if(bD==null||bC==="number"&&isNaN(bD)){return}if(bC==="number"&&!b.cssNumber[bz]){bD+="px"}if(!bE||!("set" in bE)||(bD=bE.set(bx,bD))!==L){try{bv[bw]=bD}catch(bA){}}}else{if(bE&&"get" in bE&&(bB=bE.get(bx,false,by))!==L){return bB}return bv[bw]}},css:function(by,bx,bv){var bw,e;bx=b.camelCase(bx);e=b.cssHooks[bx];bx=b.cssProps[bx]||bx;if(bx==="cssFloat"){bx="float"}if(e&&"get" in e&&(bw=e.get(by,true,bv))!==L){return bw}else{if(Z){return Z(by,bx)}}},swap:function(bx,bw,by){var e={};for(var bv in bw){e[bv]=bx.style[bv];bx.style[bv]=bw[bv]}by.call(bx);for(bv in bw){bx.style[bv]=e[bv]}}});b.curCSS=b.css;b.each(["height","width"],function(bv,e){b.cssHooks[e]={get:function(by,bx,bw){var bz;if(bx){if(by.offsetWidth!==0){return p(by,e,bw)}else{b.swap(by,a7,function(){bz=p(by,e,bw)})}return bz}},set:function(bw,bx){if(bc.test(bx)){bx=parseFloat(bx);if(bx>=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;
+
29 if(bA>0){if(bv!=="border"){for(;bx<e;bx++){if(!bv){bA-=parseFloat(b.css(by,"padding"+bz[bx]))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}else{bA-=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}}}return bA+"px"}bA=Z(by,bw,bw);if(bA<0||bA==null){bA=by.style[bw]||0}bA=parseFloat(bA)||0;if(bv){for(;bx<e;bx++){bA+=parseFloat(b.css(by,"padding"+bz[bx]))||0;if(bv!=="padding"){bA+=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}}}return bA+"px"}if(b.expr&&b.expr.filters){b.expr.filters.hidden=function(bw){var bv=bw.offsetWidth,e=bw.offsetHeight;return(bv===0&&e===0)||(!b.support.reliableHiddenOffsets&&((bw.style&&bw.style.display)||b.css(bw,"display"))==="none")};b.expr.filters.visible=function(e){return !b.expr.filters.hidden(e)}}var k=/%20/g,ap=/\[\]$/,bs=/\r?\n/g,bq=/#.*$/,aD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,aZ=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aM=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,aQ=/^(?:GET|HEAD)$/,c=/^\/\//,M=/\?/,a6=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw<bz;bw++){bv=bx[bw];bC=/^\+/.test(bv);if(bC){bv=bv.substr(1)||"*"}bB=e[bv]=e[bv]||[];bB[bC?"unshift":"push"](bA)}}}}function aW(bv,bE,bz,bD,bB,bx){bB=bB||bE.dataTypes[0];bx=bx||{};bx[bB]=true;var bA=bv[bB],bw=0,e=bA?bA.length:0,by=(bv===aa),bC;for(;bw<e&&(by||!bC);bw++){bC=bA[bw](bE,bz,bD);if(typeof bC==="string"){if(!by||bx[bC]){bC=L}else{bE.dataTypes.unshift(bC);bC=aW(bv,bE,bz,bD,bC,bx)}}}if((by||!bC)&&!bx["*"]){bC=aW(bv,bE,bz,bD,"*",bx)}return bC}function am(bw,bx){var bv,e,by=b.ajaxSettings.flatOptions||{};for(bv in bx){if(bx[bv]!==L){(by[bv]?bw:(e||(e={})))[bv]=bx[bv]}}if(e){b.extend(true,bw,e)}}b.fn.extend({load:function(bw,bz,bA){if(typeof bw!=="string"&&A){return A.apply(this,arguments)}else{if(!this.length){return this}}var by=bw.indexOf(" ");if(by>=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("<div>").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA<bw;bA++){if(bA===1){for(bE in bH.converters){if(typeof bE==="string"){bG[bE.toLowerCase()]=bH.converters[bE]}}}bx=bC;bC=bD[bA];if(bC==="*"){bC=bx}else{if(bx!=="*"&&bx!==bC){by=bx+" "+bC;bF=bG[by]||bG["* "+bC];if(!bF){e=L;for(bv in bG){bB=bv.split(" ");if(bB[0]===bx||bB[0]==="*"){e=bG[bB[1]+" "+bC];if(e){bv=bG[bv];if(bv===true){bF=e}else{if(e===true){bF=bv}}break}}}}if(!(bF||e)){b.error("No conversion from "+by.replace(" "," to "))}if(bF!==true){bz=bF?bF(bz):e(bv(bz))}}}}return bz}var aC=b.now(),u=/(\=)\?(&|$)|\?\?/i;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return b.expando+"_"+(aC++)}});b.ajaxPrefilter("json jsonp",function(bD,bA,bC){var bx=bD.contentType==="application/x-www-form-urlencoded"&&(typeof bD.data==="string");if(bD.dataTypes[0]==="jsonp"||bD.jsonp!==false&&(u.test(bD.url)||bx&&u.test(bD.data))){var bB,bw=bD.jsonpCallback=b.isFunction(bD.jsonpCallback)?bD.jsonpCallback():bD.jsonpCallback,bz=bb[bw],e=bD.url,by=bD.data,bv="$1"+bw+"$2";if(bD.jsonp!==false){e=e.replace(u,bv);if(bD.url===e){if(bx){by=by.replace(u,bv)}if(bD.data===by){e+=(/\?/.test(e)?"&":"?")+bD.jsonp+"="+bw}}}bD.url=e;bD.data=by;bb[bw]=function(bE){bB=[bE]};bC.always(function(){bb[bw]=bz;if(bB&&b.isFunction(bz)){bb[bw](bB[0])}});bD.converters["script json"]=function(){if(!bB){b.error(bw+" was not called")}return bB[0]};bD.dataTypes[0]="json";return"script"}});b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){b.globalEval(e);return e}}});b.ajaxPrefilter("script",function(e){if(e.cache===L){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});b.ajaxTransport("script",function(bw){if(bw.crossDomain){var e,bv=av.head||av.getElementsByTagName("head")[0]||av.documentElement;return{send:function(bx,by){e=av.createElement("script");e.async="async";if(bw.scriptCharset){e.charset=bw.scriptCharset}e.src=bw.url;e.onload=e.onreadystatechange=function(bA,bz){if(bz||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(bv&&e.parentNode){bv.removeChild(e)}e=L;if(!bz){by(200,"success")}}};bv.insertBefore(e,bv.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var B=bb.ActiveXObject?function(){for(var e in N){N[e](0,1)}}:false,y=0,N;function aL(){try{return new bb.XMLHttpRequest()}catch(bv){}}function aj(){try{return new bb.ActiveXObject("Microsoft.XMLHTTP")}catch(bv){}}b.ajaxSettings.xhr=bb.ActiveXObject?function(){return !this.isLocal&&aL()||aj()}:aL;(function(e){b.extend(b.support,{ajax:!!e,cors:!!e&&("withCredentials" in e)})})(b.ajaxSettings.xhr());if(b.support.ajax){b.ajaxTransport(function(e){if(!e.crossDomain||b.support.cors){var bv;return{send:function(bB,bw){var bA=e.xhr(),bz,by;if(e.username){bA.open(e.type,e.url,e.async,e.username,e.password)}else{bA.open(e.type,e.url,e.async)}if(e.xhrFields){for(by in e.xhrFields){bA[by]=e.xhrFields[by]}}if(e.mimeType&&bA.overrideMimeType){bA.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!bB["X-Requested-With"]){bB["X-Requested-With"]="XMLHttpRequest"}try{for(by in bB){bA.setRequestHeader(by,bB[by])}}catch(bx){}bA.send((e.hasContent&&e.data)||null);bv=function(bK,bE){var bF,bD,bC,bI,bH;try{if(bv&&(bE||bA.readyState===4)){bv=L;if(bz){bA.onreadystatechange=b.noop;if(B){delete N[bz]}}if(bE){if(bA.readyState!==4){bA.abort()}}else{bF=bA.status;bC=bA.getAllResponseHeaders();bI={};bH=bA.responseXML;if(bH&&bH.documentElement){bI.xml=bH}bI.text=bA.responseText;try{bD=bA.statusText}catch(bJ){bD=""}if(!bF&&e.isLocal&&!e.crossDomain){bF=bI.text?200:404}else{if(bF===1223){bF=204}}}}}catch(bG){if(!bE){bw(-1,bG)}}if(bI){bw(bF,bD,bI,bC)}};if(!e.async||bA.readyState===4){bv()}else{bz=++y;if(B){if(!N){N={};b(bb).unload(B)}N[bz]=bv}bA.onreadystatechange=bv}},abort:function(){if(bv){bv(0,1)
+
30 }}}}})}var Q={},a8,m,aB=/^(?:toggle|show|hide)$/,aT=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,a3,aH=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],a4;b.fn.extend({show:function(bx,bA,bz){var bw,by;if(bx||bx===0){return this.animate(a0("show",3),bx,bA,bz)}else{for(var bv=0,e=this.length;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(!b._data(bw,"olddisplay")&&by==="none"){by=bw.style.display=""}if(by===""&&b.css(bw,"display")==="none"){b._data(bw,"olddisplay",x(bw.nodeName))}}}for(bv=0;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(by===""||by==="none"){bw.style.display=b._data(bw,"olddisplay")||""}}}return this}},hide:function(bx,bA,bz){if(bx||bx===0){return this.animate(a0("hide",3),bx,bA,bz)}else{var bw,by,bv=0,e=this.length;for(;bv<e;bv++){bw=this[bv];if(bw.style){by=b.css(bw,"display");if(by!=="none"&&!b._data(bw,"olddisplay")){b._data(bw,"olddisplay",by)}}}for(bv=0;bv<e;bv++){if(this[bv].style){this[bv].style.display="none"}}return this}},_toggle:b.fn.toggle,toggle:function(bw,bv,bx){var e=typeof bw==="boolean";if(b.isFunction(bw)&&b.isFunction(bv)){this._toggle.apply(this,arguments)}else{if(bw==null||e){this.each(function(){var by=e?bw:b(this).is(":hidden");b(this)[by?"show":"hide"]()})}else{this.animate(a0("toggle",3),bw,bv,bx)}}return this},fadeTo:function(e,bx,bw,bv){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:bx},e,bw,bv)},animate:function(bz,bw,by,bx){var e=b.speed(bw,by,bx);if(b.isEmptyObject(bz)){return this.each(e.complete,[false])}bz=b.extend({},bz);function bv(){if(e.queue===false){b._mark(this)}var bE=b.extend({},e),bK=this.nodeType===1,bI=bK&&b(this).is(":hidden"),bB,bF,bD,bJ,bH,bC,bG,bL,bA;bE.animatedProperties={};for(bD in bz){bB=b.camelCase(bD);if(bD!==bB){bz[bB]=bz[bD];delete bz[bD]}bF=bz[bB];if(b.isArray(bF)){bE.animatedProperties[bB]=bF[1];bF=bz[bB]=bF[0]}else{bE.animatedProperties[bB]=bE.specialEasing&&bE.specialEasing[bB]||bE.easing||"swing"}if(bF==="hide"&&bI||bF==="show"&&!bI){return bE.complete.call(this)}if(bK&&(bB==="height"||bB==="width")){bE.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(b.css(this,"display")==="inline"&&b.css(this,"float")==="none"){if(!b.support.inlineBlockNeedsLayout||x(this.nodeName)==="inline"){this.style.display="inline-block"}else{this.style.zoom=1}}}}if(bE.overflow!=null){this.style.overflow="hidden"}for(bD in bz){bJ=new b.fx(this,bE,bD);bF=bz[bD];if(aB.test(bF)){bA=b._data(this,"toggle"+bD)||(bF==="toggle"?bI?"show":"hide":0);if(bA){b._data(this,"toggle"+bD,bA==="show"?"hide":"show");bJ[bA]()}else{bJ[bF]()}}else{bH=aT.exec(bF);bC=bJ.cur();if(bH){bG=parseFloat(bH[2]);bL=bH[3]||(b.cssNumber[bD]?"":"px");if(bL!=="px"){b.style(this,bD,(bG||1)+bL);bC=((bG||1)/bJ.cur())*bC;b.style(this,bD,bC+bL)}if(bH[1]){bG=((bH[1]==="-="?-1:1)*bG)+bC}bJ.custom(bC,bG,bL)}else{bJ.custom(bC,bF,"")}}}return true}return e.queue===false?this.each(bv):this.queue(e.queue,bv)},stop:function(bw,bv,e){if(typeof bw!=="string"){e=bv;bv=bw;bw=L}if(bv&&bw!==false){this.queue(bw||"fx",[])}return this.each(function(){var bx,by=false,bA=b.timers,bz=b._data(this);if(!e){b._unmark(true,this)}function bB(bE,bF,bD){var bC=bF[bD];b.removeData(bE,bD,true);bC.stop(e)}if(bw==null){for(bx in bz){if(bz[bx]&&bz[bx].stop&&bx.indexOf(".run")===bx.length-4){bB(this,bz,bx)}}}else{if(bz[bx=bw+".run"]&&bz[bx].stop){bB(this,bz,bx)}}for(bx=bA.length;bx--;){if(bA[bx].elem===this&&(bw==null||bA[bx].queue===bw)){if(e){bA[bx](true)}else{bA[bx].saveState()}by=true;bA.splice(bx,1)}}if(!(e&&by)){b.dequeue(this,bw)}})}});function bh(){setTimeout(at,0);return(a4=b.now())}function at(){a4=L}function a0(bv,e){var bw={};b.each(aH.concat.apply([],aH.slice(0,e)),function(){bw[this]=bv});return bw}b.each({slideDown:a0("show",1),slideUp:a0("hide",1),slideToggle:a0("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,bv){b.fn[e]=function(bw,by,bx){return this.animate(bv,bw,by,bx)}});b.extend({speed:function(bw,bx,bv){var e=bw&&typeof bw==="object"?b.extend({},bw):{complete:bv||!bv&&bx||b.isFunction(bw)&&bw,duration:bw,easing:bv&&bx||bx&&!b.isFunction(bx)&&bx};e.duration=b.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in b.fx.speeds?b.fx.speeds[e.duration]:b.fx.speeds._default;if(e.queue==null||e.queue===true){e.queue="fx"}e.old=e.complete;e.complete=function(by){if(b.isFunction(e.old)){e.old.call(this)}if(e.queue){b.dequeue(this,e.queue)}else{if(by!==false){b._unmark(this)}}};return e},easing:{linear:function(bw,bx,e,bv){return e+bv*bw},swing:function(bw,bx,e,bv){return((-Math.cos(bw*Math.PI)/2)+0.5)*bv+e}},timers:[],fx:function(bv,e,bw){this.options=e;this.elem=bv;this.prop=bw;e.orig=e.orig||{}}});b.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(b.fx.step[this.prop]||b.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var e,bv=b.css(this.elem,this.prop);return isNaN(e=parseFloat(bv))?!bv||bv==="auto"?0:bv:e},custom:function(bz,by,bx){var e=this,bw=b.fx;this.startTime=a4||bh();this.end=by;this.now=this.start=bz;this.pos=this.state=0;this.unit=bx||this.unit||(b.cssNumber[this.prop]?"":"px");function bv(bA){return e.step(bA)}bv.queue=this.options.queue;bv.elem=this.elem;bv.saveState=function(){if(e.options.hide&&b._data(e.elem,"fxshow"+e.prop)===L){b._data(e.elem,"fxshow"+e.prop,e.start)}};if(bv()&&b.timers.push(bv)&&!a3){a3=setInterval(bw.tick,bw.interval)}},show:function(){var e=b._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=e||b.style(this.elem,this.prop);this.options.show=true;if(e!==L){this.custom(this.cur(),e)}else{this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur())}b(this.elem).show()},hide:function(){this.options.orig[this.prop]=b._data(this.elem,"fxshow"+this.prop)||b.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(by){var bA,bB,bv,bx=a4||bh(),e=true,bz=this.elem,bw=this.options;if(by||bx>=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e<bv.length;e++){bw=bv[e];if(!bw()&&bv[e]===bw){bv.splice(e--,1)}}if(!bv.length){b.fx.stop()}},interval:13,stop:function(){clearInterval(a3);a3=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){b.style(e.elem,"opacity",e.now)},_default:function(e){if(e.elem.style&&e.elem.style[e.prop]!=null){e.elem.style[e.prop]=e.now+e.unit}else{e.elem[e.prop]=e.now}}}});b.each(["width","height"],function(e,bv){b.fx.step[bv]=function(bw){b.style(bw.elem,bv,Math.max(0,bw.now)+bw.unit)}});if(b.expr&&b.expr.filters){b.expr.filters.animated=function(e){return b.grep(b.timers,function(bv){return e===bv.elem}).length}}function x(bx){if(!Q[bx]){var e=av.body,bv=b("<"+bx+">").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b
+
31 })}})(window);
+
39 (function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(k){var A=k(document),s=k(window),w=k("body");var n="displayController",e="hasActiveHover",d="forcedOpen",u="hasMouseMove",f="mouseOnToPopup",g="originalTitle",y="powertip",o="powertipjq",l="powertiptarget",E=180/Math.PI;var c={isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var p={none:0,top:1,bottom:2,left:4,right:8};k.fn.powerTip=function(F,N){if(!this.length){return this}if(k.type(F)==="string"&&k.powerTip[F]){return k.powerTip[F].call(this,this,N)}var O=k.extend({},k.fn.powerTip.defaults,F),G=new x(O);h();this.each(function M(){var R=k(this),Q=R.data(y),P=R.data(o),T=R.data(l),S;if(R.data(n)){k.powerTip.destroy(R)}S=R.attr("title");if(!Q&&!T&&!P&&S){R.data(y,S);R.data(g,S);R.removeAttr("title")}R.data(n,new t(R,O,G))});if(!O.manual){this.on({"mouseenter.powertip":function J(P){k.powerTip.show(this,P)},"mouseleave.powertip":function L(){k.powerTip.hide(this)},"focus.powertip":function K(){k.powerTip.show(this)},"blur.powertip":function H(){k.powerTip.hide(this,true)},"keydown.powertip":function I(P){if(P.keyCode===27){k.powerTip.hide(this,true)}}})}return this};k.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false};k.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};k.powerTip={show:function z(F,G){if(G){i(G);c.previousX=G.pageX;c.previousY=G.pageY;k(F).data(n).show()}else{k(F).first().data(n).show(true,true)}return F},reposition:function r(F){k(F).first().data(n).resetPosition();return F},hide:function D(G,F){if(G){k(G).first().data(n).hide(F)}else{if(c.activeHover){c.activeHover.data(n).hide(true)}}return G},destroy:function C(G){k(G).off(".powertip").each(function F(){var I=k(this),H=[g,n,e,d];if(I.data(g)){I.attr("title",I.data(g));H.push(y)}I.removeData(H)});return G}};k.powerTip.showTip=k.powerTip.show;k.powerTip.closeTip=k.powerTip.hide;function b(){var F=this;F.top="auto";F.left="auto";F.right="auto";F.bottom="auto";F.set=function(H,G){if(k.isNumeric(G)){F[H]=Math.round(G)}}}function t(K,N,F){var J=null;function L(P,Q){M();if(!K.data(e)){if(!P){c.tipOpenImminent=true;J=setTimeout(function O(){J=null;I()},N.intentPollInterval)}else{if(Q){K.data(d,true)}F.showTip(K)}}}function G(P){M();c.tipOpenImminent=false;if(K.data(e)){K.data(d,false);if(!P){c.delayInProgress=true;J=setTimeout(function O(){J=null;F.hideTip(K);c.delayInProgress=false},N.closeDelay)}else{F.hideTip(K)}}}function I(){var Q=Math.abs(c.previousX-c.currentX),O=Math.abs(c.previousY-c.currentY),P=Q+O;if(P<N.intentSensitivity){F.showTip(K)}else{c.previousX=c.currentX;c.previousY=c.currentY;L()}}function M(){J=clearTimeout(J);c.delayInProgress=false}function H(){F.resetPosition(K)}this.show=L;this.hide=G;this.cancel=M;this.resetPosition=H}function j(){function G(M,L,J,O,P){var K=L.split("-")[0],N=new b(),I;if(q(M)){I=H(M,K)}else{I=F(M,K)}switch(L){case"n":N.set("left",I.left-(J/2));N.set("bottom",c.windowHeight-I.top+P);break;case"e":N.set("left",I.left+P);N.set("top",I.top-(O/2));break;case"s":N.set("left",I.left-(J/2));N.set("top",I.top+P);break;case"w":N.set("top",I.top-(O/2));N.set("right",c.windowWidth-I.left+P);break;case"nw":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"nw-alt":N.set("left",I.left);N.set("bottom",c.windowHeight-I.top+P);break;case"ne":N.set("left",I.left-20);N.set("bottom",c.windowHeight-I.top+P);break;case"ne-alt":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left);break;case"sw":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"sw-alt":N.set("left",I.left);N.set("top",I.top+P);break;case"se":N.set("left",I.left-20);N.set("top",I.top+P);break;case"se-alt":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left);break}return N}function F(K,J){var O=K.offset(),N=K.outerWidth(),I=K.outerHeight(),M,L;switch(J){case"n":M=O.left+N/2;L=O.top;break;case"e":M=O.left+N;L=O.top+I/2;break;case"s":M=O.left+N/2;L=O.top+I;break;case"w":M=O.left;L=O.top+I/2;break;case"nw":M=O.left;L=O.top;break;case"ne":M=O.left+N;L=O.top;break;case"sw":M=O.left;L=O.top+I;break;case"se":M=O.left+N;L=O.top+I;break}return{top:L,left:M}}function H(O,K){var S=O.closest("svg")[0],N=O[0],W=S.createSVGPoint(),L=N.getBBox(),V=N.getScreenCTM(),M=L.width/2,Q=L.height/2,P=[],I=["nw","n","ne","e","se","s","sw","w"],U,X,R,T;function J(){P.push(W.matrixTransform(V))}W.x=L.x;W.y=L.y;J();W.x+=M;J();W.x+=M;J();W.y+=Q;J();W.y+=Q;J();W.x-=M;J();W.x-=M;J();W.y-=Q;J();if(P[0].y!==P[1].y||P[0].x!==P[7].x){X=Math.atan2(V.b,V.a)*E;R=Math.ceil(((X%360)-22.5)/45);if(R<1){R+=8}while(R--){I.push(I.shift())}}for(T=0;T<P.length;T++){if(I[T]===K){U=P[T];break}}return{top:U.y+c.scrollTop,left:U.x+c.scrollLeft}}this.compute=G}function x(Q){var P=new j(),O=k("#"+Q.popupId);if(O.length===0){O=k("<div/>",{id:Q.popupId});if(w.length===0){w=k("body")}w.append(O)}if(Q.followMouse){if(!O.data(u)){A.on("mousemove",M);s.on("scroll",M);O.data(u,true)}}if(Q.mouseOnToPopup){O.on({mouseenter:function L(){if(O.data(f)){if(c.activeHover){c.activeHover.data(n).cancel()}}},mouseleave:function N(){if(c.activeHover){c.activeHover.data(n).hide()}}})}function I(S){S.data(e,true);O.queue(function R(T){H(S);T()})}function H(S){var U;if(!S.data(e)){return}if(c.isTipOpen){if(!c.isClosing){K(c.activeHover)}O.delay(100).queue(function R(V){H(S);V()});return}S.trigger("powerTipPreRender");U=B(S);if(U){O.empty().append(U)}else{return}S.trigger("powerTipRender");c.activeHover=S;c.isTipOpen=true;O.data(f,Q.mouseOnToPopup);if(!Q.followMouse){G(S);c.isFixedTipOpen=true}else{M()}O.fadeIn(Q.fadeInTime,function T(){if(!c.desyncTimeout){c.desyncTimeout=setInterval(J,500)}S.trigger("powerTipOpen")})}function K(R){c.isClosing=true;c.activeHover=null;c.isTipOpen=false;c.desyncTimeout=clearInterval(c.desyncTimeout);R.data(e,false);R.data(d,false);O.fadeOut(Q.fadeOutTime,function S(){var T=new b();c.isClosing=false;c.isFixedTipOpen=false;O.removeClass();T.set("top",c.currentY+Q.offset);T.set("left",c.currentX+Q.offset);O.css(T);R.trigger("powerTipClose")})}function M(){if(!c.isFixedTipOpen&&(c.isTipOpen||(c.tipOpenImminent&&O.data(u)))){var R=O.outerWidth(),V=O.outerHeight(),U=new b(),S,T;U.set("top",c.currentY+Q.offset);U.set("left",c.currentX+Q.offset);S=m(U,R,V);if(S!==p.none){T=a(S);if(T===1){if(S===p.right){U.set("left",c.windowWidth-R)}else{if(S===p.bottom){U.set("top",c.scrollTop+c.windowHeight-V)}}}else{U.set("left",c.currentX-R-Q.offset);U.set("top",c.currentY-V-Q.offset)}}O.css(U)}}function G(S){var R,T;if(Q.smartPlacement){R=k.fn.powerTip.smartPlacementLists[Q.placement];k.each(R,function(U,W){var V=m(F(S,W),O.outerWidth(),O.outerHeight());T=W;if(V===p.none){return false}})}else{F(S,Q.placement);T=Q.placement}O.addClass(T)}function F(U,T){var R=0,S,W,V=new b();V.set("top",0);V.set("left",0);O.css(V);do{S=O.outerWidth();W=O.outerHeight();V=P.compute(U,T,S,W,Q.offset);O.css(V)}while(++R<=5&&(S!==O.outerWidth()||W!==O.outerHeight()));return V}function J(){var R=false;if(c.isTipOpen&&!c.isClosing&&!c.delayInProgress){if(c.activeHover.data(e)===false||c.activeHover.is(":disabled")){R=true}else{if(!v(c.activeHover)&&!c.activeHover.is(":focus")&&!c.activeHover.data(d)){if(O.data(f)){if(!v(O)){R=true}}else{R=true}}}if(R){K(c.activeHover)}}}this.showTip=I;this.hideTip=K;this.resetPosition=G}function q(F){return window.SVGElement&&F[0] instanceof SVGElement}function h(){if(!c.mouseTrackingActive){c.mouseTrackingActive=true;k(function H(){c.scrollLeft=s.scrollLeft();c.scrollTop=s.scrollTop();c.windowWidth=s.width();c.windowHeight=s.height()});A.on("mousemove",i);s.on({resize:function G(){c.windowWidth=s.width();c.windowHeight=s.height()},scroll:function F(){var I=s.scrollLeft(),J=s.scrollTop();if(I!==c.scrollLeft){c.currentX+=I-c.scrollLeft;c.scrollLeft=I}if(J!==c.scrollTop){c.currentY+=J-c.scrollTop;c.scrollTop=J}}})}}function i(F){c.currentX=F.pageX;c.currentY=F.pageY}function v(F){var H=F.offset(),J=F[0].getBoundingClientRect(),I=J.right-J.left,G=J.bottom-J.top;return c.currentX>=H.left&&c.currentX<=H.left+I&&c.currentY>=H.top&&c.currentY<=H.top+G}function B(I){var G=I.data(y),F=I.data(o),K=I.data(l),H,J;if(G){if(k.isFunction(G)){G=G.call(I[0])}J=G}else{if(F){if(k.isFunction(F)){F=F.call(I[0])}if(F.length>0){J=F.clone(true,true)}}else{if(K){H=k("#"+K);if(H.length>0){J=H.html()}}}}return J}function m(M,L,K){var G=c.scrollTop,J=c.scrollLeft,I=G+c.windowHeight,F=J+c.windowWidth,H=p.none;if(M.top<G||Math.abs(M.bottom-c.windowHeight)-K<G){H|=p.top}if(M.top+K>I||Math.abs(M.bottom-c.windowHeight)>I){H|=p.bottom}if(M.left<J||M.right+L>F){H|=p.left}if(M.left+L>F||M.right<J){H|=p.right}return H}function a(G){var F=0;while(G){G&=G-1;F++}return F}}));
+
+ + + + diff --git a/API-html/md_readme.html b/API-html/md_readme.html new file mode 100644 index 00000000..f3d8ed9 --- /dev/null +++ b/API-html/md_readme.html @@ -0,0 +1,54 @@ + + + + + + +API: readme + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + +
+
+
+
readme
+
+
+
+ + + + diff --git a/API-html/nav_f.png b/API-html/nav_f.png new file mode 100644 index 00000000..86c145d Binary files /dev/null and b/API-html/nav_f.png differ diff --git a/API-html/nav_g.png b/API-html/nav_g.png new file mode 100644 index 00000000..2093a23 Binary files /dev/null and b/API-html/nav_g.png differ diff --git a/API-html/nav_h.png b/API-html/nav_h.png new file mode 100644 index 00000000..be2b899 Binary files /dev/null and b/API-html/nav_h.png differ diff --git a/API-html/open.png b/API-html/open.png new file mode 100644 index 00000000..6297c0c Binary files /dev/null and b/API-html/open.png differ diff --git a/API-html/pages.html b/API-html/pages.html new file mode 100644 index 00000000..2b0dbeb --- /dev/null +++ b/API-html/pages.html @@ -0,0 +1,59 @@ + + + + + + +API: Related Pages + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + +
+
+
+
Related Pages
+
+
+
Here is a list of all related documentation pages:
+ + +
 readme
+
+
+ + + + diff --git a/API-html/readme_8md_source.html b/API-html/readme_8md_source.html new file mode 100644 index 00000000..0e170f7 --- /dev/null +++ b/API-html/readme_8md_source.html @@ -0,0 +1,128 @@ + + + + + + +API: readme.md Source File + + + + + + +
+
+ + + + + + + +
+
API +
+
For Arduino developers
+
+
+ + + + +
+
+
+
readme.md
+
+
+
1 @mainpage
+
2 
+
3 # Nextion Library for Arduino
+
4 
+
5 Nextion Arduino library provides an easy-to-use way to manipulate Nextion serial displays.
+
6 Users can use the libarry freely, either in commerical projects or open-source prjects, without any additional condiitons.
+
7 
+
8 For more information about the Nextion display project, please visit [the wiki。](http://wiki.iteadstudio.com/Nextion_HMI_Solution)
+
9 The wiki provdies all the necessary technical documnets, quick start guide, tutorials, demos, as well as some useful resources.
+
10 
+
11 To get your Nextion display, please visit [iMall.](http://imall.itead.cc/display/nextion.html)
+
12 
+
13 To discuss the project? Request new features? Report a BUG? please visit the [Forums](http://support.iteadstudio.com/discussions/1000058038)
+
14 
+
15 ​
+
16 # Source
+
17 
+
18 Latest source code can be download at https://github.com/itead/ITEADLIB_Arduino_Nextion.
+
19 
+
20 You can clone it by:
+
21 
+
22  git clone https://github.com/itead/ITEADLIB_Arduino_Nextion
+
23 
+
24 # Documentation
+
25 Online API documentation can be reached at <http://docs.iteadstudio.com/ITEADLIB_Arduino_Nextion/>.
+
26 
+
27 Offline API documentation can be found under directory
+
28 [doc](https://github.com/itead/ITEADLIB_Arduino_Nextion/tree/master/doc).
+
29 
+
30 # Hareware requirement
+
31 
+
32  - RAM: not less than 2KBytes
+
33  - Serial: two serial (communication and debug)
+
34 
+
35 # Serial configuration
+
36 
+
37 If you want to change the default serial to debug or communicate with Nextion ,you need to modify the line in file NexSerialConfig.h:
+
38 
+
39  #define dbSerial Serial ---> #define dbSerial Serialxxx
+
40  #define nexSerial Serial2 ---> #define dbSerial Serialxxx
+
41 If you want to close the debug information,you need to modify the line in file NexSerialConfig.h:
+
42 
+
43  #define DEBUG_SERIAL_ENABLE ---> //#define DEBUG_SERIAL_ENABLE
+
44 # Suppported Mainboards:
+
45 
+
46  - Iteaduino MEGA2560
+
47  - Arduino MEGA2560
+
48 
+
49 -------------------------------------------------------------------------------
+
50 
+
51 
+
52  DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+
53  Version 2, December 2004
+
54 
+
55  Copyright (C) 2014 ITEAD Studio
+
56 
+
57  Everyone is permitted to copy and distribute verbatim or modified
+
58  copies of this license document, and changing it is allowed as long
+
59  as the name is changed.
+
60 
+
61  DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+
62 
+
63  TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
64 
+
65  0. You just DO WHAT THE FUCK YOU WANT TO.
+
66 
+
67 
+
68 -------------------------------------------------------------------------------
+
+ + + + diff --git a/API-html/sync_off.png b/API-html/sync_off.png new file mode 100644 index 00000000..f168259 Binary files /dev/null and b/API-html/sync_off.png differ diff --git a/API-html/sync_on.png b/API-html/sync_on.png new file mode 100644 index 00000000..76e6eed Binary files /dev/null and b/API-html/sync_on.png differ diff --git a/API-html/tab_a.png b/API-html/tab_a.png new file mode 100644 index 00000000..f1dac83 Binary files /dev/null and b/API-html/tab_a.png differ diff --git a/API-html/tab_b.png b/API-html/tab_b.png new file mode 100644 index 00000000..23b6b7e Binary files /dev/null and b/API-html/tab_b.png differ diff --git a/API-html/tab_h.png b/API-html/tab_h.png new file mode 100644 index 00000000..d38741b Binary files /dev/null and b/API-html/tab_h.png differ diff --git a/API-html/tab_s.png b/API-html/tab_s.png new file mode 100644 index 00000000..6d9d4fa Binary files /dev/null and b/API-html/tab_s.png differ diff --git a/API-html/tabs.css b/API-html/tabs.css new file mode 100644 index 00000000..13e4654 --- /dev/null +++ b/API-html/tabs.css @@ -0,0 +1,60 @@ +.tabs, .tabs2, .tabs3 { + background-image: url('tab_b.png'); + width: 100%; + z-index: 101; + font-size: 13px; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +.tabs2 { + font-size: 10px; +} +.tabs3 { + font-size: 9px; +} + +.tablist { + margin: 0; + padding: 0; + display: table; +} + +.tablist li { + float: left; + display: table-cell; + background-image: url('tab_b.png'); + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + background-image:url('tab_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #184C80; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: url('tab_h.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + text-decoration: none; +} + +.tablist li.current a { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} diff --git a/API.chm b/API.chm new file mode 100644 index 00000000..ff19995 Binary files /dev/null and b/API.chm differ