[Ils-source] r1519 - in trunk/styles/GOAA: . help help/images images
dominick at crosswire.org
dominick at crosswire.org
Thu Feb 2 12:48:43 MST 2017
Author: dominick
Date: 2017-02-02 12:48:42 -0700 (Thu, 02 Feb 2017)
New Revision: 1519
Added:
trunk/styles/GOAA/crosswire.js
trunk/styles/GOAA/help/
trunk/styles/GOAA/help/admin_course.jsp
trunk/styles/GOAA/help/admin_express.jsp
trunk/styles/GOAA/help/admin_home.jsp
trunk/styles/GOAA/help/admin_logging.jsp
trunk/styles/GOAA/help/admin_manager.jsp
trunk/styles/GOAA/help/admin_overview.jsp
trunk/styles/GOAA/help/admin_role.jsp
trunk/styles/GOAA/help/admin_student.jsp
trunk/styles/GOAA/help/admin_summary.jsp
trunk/styles/GOAA/help/admin_system.jsp
trunk/styles/GOAA/help/admin_userprofile.jsp
trunk/styles/GOAA/help/admin_utilities.jsp
trunk/styles/GOAA/help/admin_workgroup.jsp
trunk/styles/GOAA/help/help.css
trunk/styles/GOAA/help/help_admin.jsp
trunk/styles/GOAA/help/help_manager.jsp
trunk/styles/GOAA/help/help_style.css
trunk/styles/GOAA/help/help_user.jsp
trunk/styles/GOAA/help/images/
trunk/styles/GOAA/help/images/add3rdParty.jpg
trunk/styles/GOAA/help/images/add_btn.jpg
trunk/styles/GOAA/help/images/add_express.jpg
trunk/styles/GOAA/help/images/add_new_profile.jpg
trunk/styles/GOAA/help/images/admin_API.jpg
trunk/styles/GOAA/help/images/admin_IP.jpg
trunk/styles/GOAA/help/images/admin_alternativelogin.jpg
trunk/styles/GOAA/help/images/admin_email_1.jpg
trunk/styles/GOAA/help/images/admin_email_2.jpg
trunk/styles/GOAA/help/images/admin_email_3.jpg
trunk/styles/GOAA/help/images/admin_email_4.jpg
trunk/styles/GOAA/help/images/admin_home.jpg
trunk/styles/GOAA/help/images/admin_maintenance.jpg
trunk/styles/GOAA/help/images/admin_newcourse.jpg
trunk/styles/GOAA/help/images/admin_profile.jpg
trunk/styles/GOAA/help/images/admin_selfregistration.jpg
trunk/styles/GOAA/help/images/admin_summary.jpg
trunk/styles/GOAA/help/images/admin_system.jpg
trunk/styles/GOAA/help/images/announcements.jpg
trunk/styles/GOAA/help/images/assign_roles.jpg
trunk/styles/GOAA/help/images/awaitmgrapprvl.gif
trunk/styles/GOAA/help/images/contact_btn.jpg
trunk/styles/GOAA/help/images/continue_but.jpg
trunk/styles/GOAA/help/images/copytolms_btn.jpg
trunk/styles/GOAA/help/images/course_catalog.jpg
trunk/styles/GOAA/help/images/course_listing.jpg
trunk/styles/GOAA/help/images/curr_assignroles.jpg
trunk/styles/GOAA/help/images/curr_course_listing.jpg
trunk/styles/GOAA/help/images/curr_course_listing2.jpg
trunk/styles/GOAA/help/images/curriculum_listing.jpg
trunk/styles/GOAA/help/images/delete.jpg
trunk/styles/GOAA/help/images/download_btn.jpg
trunk/styles/GOAA/help/images/edit.jpg
trunk/styles/GOAA/help/images/help_btn.jpg
trunk/styles/GOAA/help/images/home_btn.jpg
trunk/styles/GOAA/help/images/incomplete_btn.jpg
trunk/styles/GOAA/help/images/login.jpg
trunk/styles/GOAA/help/images/logoff_btn.jpg
trunk/styles/GOAA/help/images/manage_presets.jpg
trunk/styles/GOAA/help/images/manager_author.jpg
trunk/styles/GOAA/help/images/manager_home.jpg
trunk/styles/GOAA/help/images/manager_privileges.jpg
trunk/styles/GOAA/help/images/new_announcement.jpg
trunk/styles/GOAA/help/images/new_resource.jpg
trunk/styles/GOAA/help/images/new_role.jpg
trunk/styles/GOAA/help/images/new_workgroup.jpg
trunk/styles/GOAA/help/images/preset_delete.jpg
trunk/styles/GOAA/help/images/print_but.jpg
trunk/styles/GOAA/help/images/print_certficate.png
trunk/styles/GOAA/help/images/resources.jpg
trunk/styles/GOAA/help/images/retest_btn.jpg
trunk/styles/GOAA/help/images/role_management.jpg
trunk/styles/GOAA/help/images/save2.jpg
trunk/styles/GOAA/help/images/save_but.jpg
trunk/styles/GOAA/help/images/saveasnew.jpg
trunk/styles/GOAA/help/images/search.jpg
trunk/styles/GOAA/help/images/search2.jpg
trunk/styles/GOAA/help/images/security_preset_management.jpg
trunk/styles/GOAA/help/images/start_but.jpg
trunk/styles/GOAA/help/images/student_records.jpg
trunk/styles/GOAA/help/images/student_records2.jpg
trunk/styles/GOAA/help/images/student_records3.jpg
trunk/styles/GOAA/help/images/studentreport.jpg
trunk/styles/GOAA/help/images/sub_btn.jpg
trunk/styles/GOAA/help/images/url.jpg
trunk/styles/GOAA/help/images/user_home.jpg
trunk/styles/GOAA/help/images/user_profile_management.jpg
trunk/styles/GOAA/help/images/user_profiles_search_results.jpg
trunk/styles/GOAA/help/images/utilities1.jpg
trunk/styles/GOAA/help/images/workgroups_managed.jpg
trunk/styles/GOAA/help/images/workgroups_managed2.jpg
trunk/styles/GOAA/help/logging.jsp
trunk/styles/GOAA/help/manager_home.jsp
trunk/styles/GOAA/help/manager_menu.jsp
trunk/styles/GOAA/help/manager_overview.jsp
trunk/styles/GOAA/help/menu.jsp
trunk/styles/GOAA/help/myprofile.jsp
trunk/styles/GOAA/help/myreports.jsp
trunk/styles/GOAA/help/user_home.jsp
trunk/styles/GOAA/help/user_menu.jsp
trunk/styles/GOAA/help/user_overview.jsp
trunk/styles/GOAA/images/
trunk/styles/GOAA/images/Add.gif
trunk/styles/GOAA/images/Printer.gif
trunk/styles/GOAA/images/_notes/
trunk/styles/GOAA/images/add_btn.jpg
trunk/styles/GOAA/images/add_doc_btn.gif
trunk/styles/GOAA/images/add_folder_btn.gif
trunk/styles/GOAA/images/add_new_profile_btn.gif
trunk/styles/GOAA/images/arrow_left.gif
trunk/styles/GOAA/images/arrow_left_blue.png
trunk/styles/GOAA/images/arrow_right_blue.png
trunk/styles/GOAA/images/awaitmgrapprvl.gif
trunk/styles/GOAA/images/back_btn.gif
trunk/styles/GOAA/images/banner.jpg
trunk/styles/GOAA/images/bggradient.jpg
trunk/styles/GOAA/images/bggradient_olive.jpg
trunk/styles/GOAA/images/browse_btn.gif
trunk/styles/GOAA/images/calendar_btn.gif
trunk/styles/GOAA/images/cancel_btn.gif
trunk/styles/GOAA/images/cancel_btn.jpg
trunk/styles/GOAA/images/cancel_btn.png
trunk/styles/GOAA/images/cancelicon_btn.gif
trunk/styles/GOAA/images/certificate_saved.png
trunk/styles/GOAA/images/circle_minus.png
trunk/styles/GOAA/images/circle_plus.png
trunk/styles/GOAA/images/companyLogo1B_Gold.jpg
trunk/styles/GOAA/images/companyLogo1B_red.jpg
trunk/styles/GOAA/images/companyLogo1Blue hills.jpg
trunk/styles/GOAA/images/companyLogo1resolutions_logo.jpg
trunk/styles/GOAA/images/companyLogo1ssi.jpg
trunk/styles/GOAA/images/contact2_btn.jpg
trunk/styles/GOAA/images/contact_btn.jpg
trunk/styles/GOAA/images/continue_btn.gif
trunk/styles/GOAA/images/continue_btn.jpg
trunk/styles/GOAA/images/continue_but.jpg
trunk/styles/GOAA/images/copy_course_files.swf
trunk/styles/GOAA/images/copytolms_btn.gif
trunk/styles/GOAA/images/copytolms_btn.jpg
trunk/styles/GOAA/images/courseicon.gif
trunk/styles/GOAA/images/createaccount.png
trunk/styles/GOAA/images/delete_btn.gif
trunk/styles/GOAA/images/download_btn.gif
trunk/styles/GOAA/images/elearning_portal_login_bg.gif
trunk/styles/GOAA/images/elearning_title.jpg
trunk/styles/GOAA/images/elearningportal.gif
trunk/styles/GOAA/images/forward_btn.gif
trunk/styles/GOAA/images/generate_btn.gif
trunk/styles/GOAA/images/go_btn.gif
trunk/styles/GOAA/images/go_btn.jpg
trunk/styles/GOAA/images/help_btn.gif
trunk/styles/GOAA/images/help_btn.jpg
trunk/styles/GOAA/images/home2_btn.gif
trunk/styles/GOAA/images/home_btn.jpg
trunk/styles/GOAA/images/incomplete_btn.gif
trunk/styles/GOAA/images/loading.gif
trunk/styles/GOAA/images/login_btn.gif
trunk/styles/GOAA/images/login_btn.jpg
trunk/styles/GOAA/images/login_hdr.jpg
trunk/styles/GOAA/images/loging_tablehdr_bg.jpg
trunk/styles/GOAA/images/loginnow.png
trunk/styles/GOAA/images/logoff-but.gif
trunk/styles/GOAA/images/logoff_btn.gif
trunk/styles/GOAA/images/manager_check.gif
trunk/styles/GOAA/images/minus_btn.gif
trunk/styles/GOAA/images/more_btn.gif
trunk/styles/GOAA/images/my_profile_btn.gif
trunk/styles/GOAA/images/no_btn.gif
trunk/styles/GOAA/images/ok_btn.gif
trunk/styles/GOAA/images/performaction_btn.gif
trunk/styles/GOAA/images/performaction_btn.jpg
trunk/styles/GOAA/images/plus_btn.gif
trunk/styles/GOAA/images/preview_btn.gif
trunk/styles/GOAA/images/preview_btn.jpg
trunk/styles/GOAA/images/previous_btn.gif
trunk/styles/GOAA/images/print_btn.gif
trunk/styles/GOAA/images/print_certficate.png
trunk/styles/GOAA/images/profile_btn.gif
trunk/styles/GOAA/images/rename_btn.gif
trunk/styles/GOAA/images/rename_dir_btn.gif
trunk/styles/GOAA/images/reporthdr_bg.jpg
trunk/styles/GOAA/images/retake_btn.gif
trunk/styles/GOAA/images/retest_btn.gif
trunk/styles/GOAA/images/run_btn.gif
trunk/styles/GOAA/images/save_btn.gif
trunk/styles/GOAA/images/save_btn.jpg
trunk/styles/GOAA/images/save_change_btn.gif
trunk/styles/GOAA/images/saveicon_btn.gif
trunk/styles/GOAA/images/search_btn.gif
trunk/styles/GOAA/images/send_btn.gif
trunk/styles/GOAA/images/sidemenu_bg.jpg
trunk/styles/GOAA/images/spacer_1p.gif
trunk/styles/GOAA/images/spacer_topbar.gif
trunk/styles/GOAA/images/ssi_logo.jpg
trunk/styles/GOAA/images/start_btn.gif
trunk/styles/GOAA/images/start_but.gif
trunk/styles/GOAA/images/start_but_full.gif
trunk/styles/GOAA/images/tablehdr_bg.jpg
trunk/styles/GOAA/images/x.png
trunk/styles/GOAA/images/yes_btn.gif
trunk/styles/GOAA/jquery-1.11.1.min.js
trunk/styles/GOAA/jquery.keypad.alt.css
trunk/styles/GOAA/jquery.keypad.js
trunk/styles/GOAA/jquery.plugin.js
trunk/styles/GOAA/lms_style.css
trunk/styles/GOAA/login.jsp
Log:
Updated GOAA Style with All Custom Files
Added: trunk/styles/GOAA/crosswire.js
===================================================================
--- trunk/styles/GOAA/crosswire.js (rev 0)
+++ trunk/styles/GOAA/crosswire.js 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,519 @@
+/*
+Special thanks to Matej from Biblija.net for much of the
+inspiration, ideas, and direct plagerism below.
+*/
+
+var isIE4 = false;
+var isNS4 = false;
+
+if (document!=null)
+ isIE4 = (document.all ? true : false);
+if (!isIE4)
+ isNS4 = document.layers ? true : false;
+
+var winW;
+var winH;
+
+
+var refwindow;
+var stevec = 0;
+
+var lastword = "";
+
+var xmlhttp=false;
+/*@cc_on @*/
+/*@if (@_jscript_version >= 5)
+// JScript gives us Conditional compilation, we can cope with old IE versions.
+// and security blocked creation of the objects.
+ try {
+ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
+ } catch (e) {
+ try {
+ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
+ } catch (E) {
+ xmlhttp = false;
+ }
+ }
+ at end @*/
+if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
+ xmlhttp = new XMLHttpRequest();
+}
+
+// Detect if the browser is IE or not.
+// If it is not IE, we assume that the browser is NS.
+
+// If NS -- that is, !IE -- then set up for mouse capture
+if (isNS4)
+ document.captureEvents(Event.MOUSEMOVE)
+
+// Set-up to use getMouseXY function onMouseMove
+// if (isIE4)
+document.onmousemove = getMouseXY;
+
+// Temporary variables to hold mouse x-y pos.s
+var mouseDocX = 0
+var mouseDocY = 0
+var mouseClientX = 0
+var mouseClientY = 0
+
+function getMouseXY(e) {
+ if (isIE4) { // grab the x-y pos.s if browser is IE
+ mouseDocX = event.clientX + document.body.scrollLeft
+ mouseDocY = event.clientY + document.body.scrollTop
+ mouseClientX = event.clientX;
+ mouseClientY = event.clientY;
+ } else { // grab the x-y pos.s if browser is NS
+ mouseDocX = e.pageX
+ mouseDocY = e.pageY
+ mouseClientX = e.clientX;
+ mouseClientY = e.clientY;
+ }
+ // catch possible negative values in NS4
+ if (mouseDocX < 0){mouseDocX = 0}
+ if (mouseDocY < 0){mouseDocY = 0}
+ return true
+}
+
+function changeCSS(myclass,element,value) {
+ var CSSRules
+ if (document.all) CSSRules = 'rules'
+ else if (document.getElementById) CSSRules = 'cssRules'
+ else return
+ for (var i = 0; i < document.styleSheets.length; i++) {
+ for (var j = 0; j < document.styleSheets[i][CSSRules].length; j++) {
+ if (document.styleSheets[i][CSSRules][j].selectorText == myclass) {
+ document.styleSheets[i][CSSRules][j].style[element] = value
+ }
+ }
+ }
+}
+
+
+function pi(mod, key, wordnum, extratext) {
+ changeCSS('.'+lastword, 'color', '');
+ p(mod, key, wordnum, extratext);
+ changeCSS('.'+wordnum, 'color', 'red');
+}
+
+// get lemma morph and wnum for a word
+var wd_strong = '';
+var wd_morph = '';
+var wd_wnum = '';
+function wd(mod, key, wordnum, extratext) {
+ wd_strong = '';
+ wd_morph = '';
+ wd_wnum = '';
+
+ if ((mod == 'G') || (mod == 'StrongsGreek')) {
+ wd_strong = key;
+ wd_morph = extratext;
+ wd_wnum = wordnum;
+ }
+
+}
+
+var curspans = new Array();
+
+
+
+function sendCommandsToServer(url, params, onsuccess, onfail) {
+ xmlhttp.open("POST", url , true);
+ xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
+// xmlhttp.open("GET", url+'?'+params,true);
+ xmlhttp.onreadystatechange=function() {
+ if (xmlhttp.readyState==4) {
+ if (xmlhttp.status==200) {
+ onsuccess(xmlhttp.responseText);
+ }
+ else {
+ onfail(xmlhttp.responseText);
+ }
+ }
+ }
+ xmlhttp.send(params);
+ return true;
+}
+
+function waitForIFrameResponse(onsuccess) {
+ iframe = document.getElementById("RSIFrame");
+ var response = iframe.contentWindow.document.body.innerHTML;
+ if (response.length > 0) {
+ onsuccess(response);
+ }
+ else {
+ setTimeout('waitForIFrameResponse('+onsuccess+')',1000);
+ }
+}
+
+function sendCommandsToServerViaIFrame(url, params, onsuccess, onfail) {
+ var IFrameObj; // our IFrame object
+
+
+ function callToServer() {
+ if (!document.createElement) {return true};
+ var IFrameDoc;
+ if (!IFrameObj && document.createElement) {
+ // create the IFrame and assign a reference to the
+ // object to our global variable IFrameObj.
+ // this will only happen the first time
+ // callToServer() is called
+ try {
+ var tempIFrame=document.createElement('iframe');
+ tempIFrame.setAttribute('id','RSIFrame');
+ tempIFrame.style.border='0px';
+ tempIFrame.style.width='0px';
+ tempIFrame.style.height='0px';
+ IFrameObj = document.body.appendChild(tempIFrame);
+
+ if (document.frames) {
+ // this is for IE5 Mac, because it will only
+ // allow access to the document object
+ // of the IFrame if we access it through
+ // the document.frames array
+ IFrameObj = document.frames['RSIFrame'];
+ }
+ } catch(exception) {
+ // This is for IE5 PC, which does not allow dynamic creation
+ // and manipulation of an iframe object. Instead, we'll fake
+ // it up by creating our own objects.
+ iframeHTML='\<iframe id="RSIFrame" style="';
+ iframeHTML+='border:0px;';
+ iframeHTML+='width:0px;';
+ iframeHTML+='height:0px;';
+ iframeHTML+='"><\/iframe>';
+ document.body.innerHTML+=iframeHTML;
+ IFrameObj = new Object();
+ IFrameObj.document = new Object();
+ IFrameObj.document.location = new Object();
+ IFrameObj.document.location.iframe = document.getElementById('RSIFrame');
+ IFrameObj.document.location.replace = function(location) {
+ this.iframe.src = location;
+ }
+ }
+ }
+
+ if (IFrameObj.contentDocument) {
+ // For NS6
+ IFrameDoc = IFrameObj.contentDocument;
+ } else if (IFrameObj.contentWindow) {
+ // For IE5.5 and IE6
+ IFrameDoc = IFrameObj.contentWindow.document;
+ } else if (IFrameObj.document) {
+ // For IE5
+ IFrameDoc = IFrameObj.document;
+ } else {
+ return true;
+ }
+
+ IFrameDoc.location.replace(url+'?'+params);
+ // this is futile if it is cross domain
+ waitForIFrameResponse(onsuccess);
+ return false;
+ }
+ callToServer();
+}
+
+function p(mod, key, wordnum, clsize) {
+
+ b=document.getElementById("onlywlayer");
+ if (b==null) {
+ b=document.createElement("div");
+ b.id="onlywlayer";
+ b.className="word-layer";
+ document.body.appendChild(b);
+ b.style.visibility = "hidden";
+ }
+
+ if ((wordnum == lastword) && (b.style.visibility == "visible")) {
+ showhide("onlywlayer", "hidden");
+ }
+ else {
+ xmlhttp.open("GET", "fetchdata.jsp?mod="+mod+"&key="+key,true);
+ xmlhttp.onreadystatechange=function() {
+ if (xmlhttp.readyState==4) {
+ courseLink = (clsize) ? '<a href="#" class="coursetxt" onclick="launchCourse(\''+key+'\',true,\''+clsize+'\');return false;">Launch Course</a>' : '';
+ b.innerHTML= '<table width="100%"><tr><td>'+courseLink + '</td>' +
+ '<td align="right">'+
+ '<a href="#" onclick="p(\''+mod+'\', \''+key+'\', \''+wordnum+'\');return false;">'+
+ '<img border="0" src="images/x.png"/>'+
+ '</a>'+
+ '</td></tr></table>'+
+ xmlhttp.responseText;
+ showhide("onlywlayer", "visible");
+ lastword = wordnum;
+ }
+ }
+ xmlhttp.send(null);
+ }
+ return true;
+}
+
+
+function ps(text, wordnum) {
+
+ b=document.getElementById("onlywlayer");
+ if (b==null) {
+ b=document.createElement("div");
+ b.id="onlywlayer";
+ b.className="word-layer";
+ document.body.appendChild(b);
+ b.style.visibility = "hidden";
+ }
+
+ if ((wordnum == lastword) && (b.style.visibility == "visible")) {
+ showhide("onlywlayer", "hidden");
+ }
+ else {
+ b.innerHTML=
+ '<div align="right">'+
+ '<a href="#" onclick="ps(\'\', \''+wordnum+'\');return false;">'+
+ '<img border="0" src="images/x.png"/>'+
+ '</a>'+
+ '</div>'+
+ text;
+ showhide("onlywlayer", "visible");
+ lastword = wordnum;
+ }
+ return true;
+}
+
+function inputBox(text, wordnum, inputSize, rows, callBack, fetchDataMod, fetchDataKey) {
+
+ b=document.getElementById("onlywlayer");
+ if (b==null) {
+ b=document.createElement("div");
+ b.id="onlywlayer";
+ b.className="word-layer";
+ document.body.appendChild(b);
+ b.style.visibility = "hidden";
+ }
+
+ if ((wordnum == lastword) && (b.style.visibility == "visible")) {
+ showhide("onlywlayer", "hidden");
+ }
+ else {
+ if (!fetchDataMod || !fetchDataKey) {
+ b.innerHTML=
+ '<div align="right">'+
+ '<a href="#" onclick="ps(\'\', \''+wordnum+'\');return false;">'+
+ '<img border="0" src="images/x.png"/>'+
+ '</a>'+
+ '</div>'+
+ '<p>' + text + '</p>'+
+ '<textarea name="ibValue" id="ibValue" rows="' + ((rows > 1)?rows:1) + '" width="100%" maxlength="'+inputSize+'"></textarea><br/>'+
+ '<button onclick="inputBoxCallback(\''+callBack+'\');return false;">OK</button>';
+ showhide("onlywlayer", "visible");
+ lastword = wordnum;
+ }
+ else {
+
+ xmlhttp.open("GET", "fetchdata.jsp?mod="+fetchDataMod+"&key="+fetchDataKey,true);
+ xmlhttp.onreadystatechange=function() {
+ if (xmlhttp.readyState==4) {
+ b.innerHTML=
+ '<div align="right">'+
+ '<a href="#" onclick="ps(\'\', \''+wordnum+'\');return false;">'+
+ '<img border="0" src="images/x.png"/>'+
+ '</a>'+
+ '</div>'+
+ '<p>' + text + xmlhttp.responseText + '</p>'+
+ '<input type="text" id="ibValue" width="100%" maxlength="'+inputSize+'"/><br/>'+
+ '<button onclick="inputBoxCallback(\''+callBack+'\');return false;">OK</button>';
+ showhide("onlywlayer", "visible");
+ lastword = wordnum;
+ }
+ }
+ xmlhttp.send(null);
+ }
+ }
+ return true;
+}
+
+function inputBoxCallback(userCallback) {
+ showhide("onlywlayer", "hidden");
+ ibv = document.getElementById('ibValue');
+ eval(userCallback+'(ibv)');
+}
+
+function showhide (layer, vis, dontReposition) {
+
+ var l = document.getElementById(layer);
+ var shim = document.getElementById('DivShim');
+ if (shim==null) {
+ shim=document.createElement("iframe");
+ shim.id="DivShim";
+ shim.className="shim-layer";
+ document.body.appendChild(shim);
+ shim.src="javascript:false;"
+ shim.scrolling="no";
+ shim.frameborder="0";
+ shim.style.visibility = "hidden";
+ shim.style.display = "none";
+ }
+ var lw = l.clientWidth;
+ if (vis == "visible") {
+ winW = isNS4 ? window.innerWidth-16 : document.body.offsetWidth-20;
+ winH = (window.innerHeight) ? window.innerHeight : document.body.offsetHeight;
+ var cx = mouseDocX + 10;
+ var cy = mouseDocY - 10;
+ if (cx + lw > winW)
+ cx = mouseDocX - (lw + 20);
+ if (cx < 5){
+ cx = 5;
+ cy = cy + 20;
+ }
+
+// alert('winH:'+winH+'mouseClientY:'+mouseClientY);
+ // adjust for above or below verse
+ if (mouseClientY < (winH/2))
+ cy = cy + 15;
+ else cy = cy - (l.clientHeight + 15);
+
+ if (!dontReposition) {
+ l.style.left = "" + cx + "px";
+ l.style.top = "" + cy + "px";
+ }
+ }
+
+
+ if (vis == "visible") {
+ l.style.visibility = "visible";
+ l.style.display = "block";
+ shim.style.width = l.offsetWidth;
+ shim.style.height = l.offsetHeight;
+ shim.style.top = l.style.top;
+ shim.style.left = l.style.left;
+ shim.style.zIndex = 1; //l.style.zIndex - 1;
+ if (isIE4) {
+ shim.style.visibility = "visible";
+ shim.style.display = "block";
+ }
+ }
+ else
+ {
+ l.style.visibility = "hidden";
+ l.style.display = "none";
+ shim.style.visibility = "hidden";
+ shim.style.display = "none";
+ }
+}
+
+var lastLaunch = null;
+
+function launchCourse(courseID, refreshMain, clsize) {
+ if (!clsize) clsize = 'width=800,height=600';
+
+ //Dominick - Manually setting window size to 1024 x 680. Any previous value will be ignored.
+ clsize = 'width=1024,height=680,location=no';
+
+ lastLaunch = false;
+ var launchURL = 'aicc.jsp?courseid='+courseID;
+ if (!refreshMain) launchURL += '&preview=true';
+ //w = window.open(launchURL,'Course',clsize);
+ ScreenWidth = screen.width - 15;
+ ScreenHeight = screen.height - 100;
+ w = window.open(launchURL,'Course','width='+ScreenWidth+', height='+ScreenHeight+', toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, fullscreen=yes, top=0, left=0');
+ if (refreshMain) {
+ lastLaunch = w;
+ refreshOnClose();
+ }
+}
+
+
+function refreshOnClose() {
+ if (lastLaunch) {
+ if (lastLaunch.closed) {
+ lastLaunch = null;
+ location.reload();
+ return;
+ }
+ setTimeout('refreshOnClose()', 1000);
+ }
+}
+
+
+function hookupLastLaunch() {
+// lastLaunch.onbeforeunload = function(){ location.reload(); };
+ lastLaunch.onclose = function(){ location.reload(); };
+// lastLaunch.onbeforeunload = function(){ location.reload(); };
+}
+
+function showCal(dateVal, forceShow) {
+
+ b=document.getElementById("onlyclayer");
+ if (b==null) {
+ b=document.createElement("div");
+ b.id="onlyclayer";
+ b.className="cal-layer";
+ document.body.appendChild(b);
+ b.style.visibility = "hidden";
+ }
+
+ if ((!forceShow) && (b.style.visibility == "visible")) {
+ showhide("onlyclayer", "hidden");
+ }
+ else {
+ xmlhttp.open("GET", "fetchcal.jsp?dateVal="+dateVal,true);
+ xmlhttp.onreadystatechange=function() {
+ if (xmlhttp.readyState==4) {
+ b.innerHTML=
+ '<div align="right">'+
+ '<a href="#" onclick="showCal(\'\', \'\');return false;">'+
+ '<img border="0" src="images/x.png"/>'+
+ '</a>'+
+ '</div>'+
+ xmlhttp.responseText;
+ showhide("onlyclayer", "visible", forceShow);
+ }
+ }
+ xmlhttp.send(null);
+ }
+ return true;
+}
+
+
+function checkAll(prefix, checked) {
+ i = 0;
+ b = document.getElementById(prefix+i);
+ while (b) {
+ b.checked = checked;
+ i++;
+ b = document.getElementById(prefix+i);
+ }
+ return true;
+}
+
+
+function showList(type, path, forceShow) {
+
+ b=document.getElementById("onlyclayer");
+ if (b==null) {
+ b=document.createElement("div");
+ b.id="onlyclayer";
+ b.className="cal-layer";
+ document.body.appendChild(b);
+ b.style.visibility = "hidden";
+ }
+
+ if ((!forceShow) && (b.style.visibility == "visible")) {
+ showhide("onlyclayer", "hidden");
+ }
+ else {
+ xmlhttp.open("GET", "fetchlist.jsp?type="+type+"&path="+path+"&time="+new Date().getTime(),true);
+ xmlhttp.onreadystatechange=function() {
+ if (xmlhttp.readyState==4) {
+ b.innerHTML=
+ '<div align="right">'+
+ '<a href="#" onclick="showList(\'\', \'\', \'\');return false;">'+
+ '<img border="0" src="images/x.png"/>'+
+ '</a>'+
+ '</div>'+
+ '<br/>'+
+ xmlhttp.responseText;
+ showhide("onlyclayer", "visible", forceShow);
+ }
+ }
+ xmlhttp.send(null);
+ }
+ return true;
+}
Added: trunk/styles/GOAA/help/admin_course.jsp
===================================================================
--- trunk/styles/GOAA/help/admin_course.jsp (rev 0)
+++ trunk/styles/GOAA/help/admin_course.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="600" border="0" cellpadding="0">
+ <tr>
+ <td valign="top" scope="col"><h1>Course Management</h1>
+ <p>The Course Management section is used to add new courses, edit existing course profiles, or delete courses.</p>
+ <h2>Course Listing <br />
+ <img src="images/course_listing.jpg" alt="Course Listing" width="590" height="223" /></h2>
+ <h3><strong><em>To add a new Course</em></strong></h3>
+ <p>Click on the <img src="images/add_btn.jpg" alt="Add" width="24" height="24" /> Add Course button. This will take you to the Course Profile page. </p>
+ <p><img src="images/admin_newcourse.jpg" width="600" height="591" /></p>
+ <p>Fill in the appropriate fields to set up a new course. The available fields are: </p>
+ <ul>
+ <li><strong>Course No.</strong> (Required) – Appears in the course catalog and all reports. Enter any combination of alpha and / or numeric. It is recommended that a course numbering scheme be developed for consistency and maintained throughout the life of the course. However, course numbers can be changed at a later date if necessary without loss of student history.</li>
+ <li><strong>Course Name</strong> (Required) - Appears in the course catalog and all reports.</li>
+ <li><strong>Course Description</strong> – A brief description that will appear when the user clicks on the name of a course in the Course Catalog.</li>
+ <li><strong>Active Date</strong> – Date the course will begin appearing in the Course Catalog.</li>
+ <li><strong>Display Course in Course Catalog</strong> - Determines if a course can be viewed in the course catalog based on restricted IP adresses.</li>
+ <li><strong>Status</strong> – Active or Inactive</li>
+ <li><strong>Display In</strong> – Course Catalog or Quick Views</li>
+ <li><strong>Type</strong> – express course or AICC/ HACCP. Use AICC for all SSi developed courses or 3rd party AICC compliant courses.</li>
+ <li><strong>URL/Path </strong>Select from the “Browse” pop-up box or type in path.</li>
+ <li><strong>Certification – </strong>Provides for reporting by certification.</li>
+ <li><strong>Seat Minutes</strong> – Average time to complete course. Appears in Course Catalog.</li>
+ <li><strong>Passing Score – </strong>Minimum passing score required for Certificate of Completion.</li>
+ <li><strong>Course Certificate Expires After – </strong>Number of days Certificate of Completion expires following course completion. <em>Note: Applies only when “Recurrent Training” is activated in Utilities Panel.</em></li>
+ <li><strong>Reassign As Recurrent Training –</strong> Number of days prior to expiration of Certificate of Completion that course resets to “Start” status. <em>Note: Applies only when “Recurrent Training” is activated in Utilities Panel.</em></li>
+ <li><strong>Reassign Now As Recurrent Training To All Applicable Users –</strong> Resets course immediately to “Start” status. <em>Note: resetting course for Recurrent Training does not overwrite previous data in Student Records.</em></li>
+ <li><strong>Requires Management Approval for Completion</strong> – When checked to “Yes” a manager’s electronic approval is required to release Certificate of Completion.</li>
+ <li><strong>Approval Checklist –</strong> File name of Approval Checklist.</li>
+ <li><strong>Upload Approval Checklist – </strong>Word or Excel document will appear in the Manager Authorization as a checklist reference document. </li>
+ </ul>
+ Complete the fields in the Course Profile and click <img src="images/save_but.jpg" alt="Save" width="63" height="14" /> </p>
+ <p>Once the Course has been saved the Assign to Roles panel will appear.</p>
+ <p><img src="images/assign_roles.jpg" alt="Assign to Roles" width="590" height="193" /></p>
+ <p>Select the checkboxes for the appropriate Roles, then click <img src="images/save_but.jpg" alt="Save" width="63" height="14" /> </p>
+ <h3><strong>To edit a Course</strong></h3>
+ <p>From the<strong> Course Management </strong>screen, select the Course by clicking the checkbox next to the course number. Then from the pull-down menu, select “<strong>Edit</strong>”, then click <strong>Perform Action</strong>.</p>
+ <p><img width="266" height="32" src="images/edit.jpg" /></p>
+ <p>The Course profile will appear.</p>
+ <h3><strong>To Delete a Course </strong></h3>
+ <p>Select the Course by clicking the checkbox next to the course number. Then from the pull-down menu, select “<strong>Delete</strong>”, then click <strong>Perform Action</strong>.<br />
+ <br />
+ <img width="266" height="32" src="images/delete.jpg" /></p>
+ <h2>Curriculum Listing</h2>
+ <p><img src="images/curriculum_listing.jpg" alt="Curriculum Listing" width="590" height="100" /><br />
+ <br />
+ A curriculum contains 2 or more courses. To create a new curriculum, or edit an existing one, go to the <strong>Curriculum Listing Panel</strong>.</p>
+ <h3>To add a new Curriculum</h3>
+ <p>
+ Click on the <img src="images/add_btn.jpg" alt="Add" width="24" height="24" /> <strong>Add Curriculum</strong> button. This will take you to the Curriculum Profile page. Fill in the appropriate fields to set up a new curriculum. The available fields are: </p>
+ <ul>
+ <li>Curriculum No. (Required)</li>
+ <li>Curriculum Name (Required)</li>
+ <li>Curriculum Description</li>
+ <li>Active Date</li>
+ <li>Status (Active or Inactive)</li>
+ </ul>
+ <p>Complete the fields in the Curriculum Profile and click <img src="images/save_but.jpg" alt="Save" width="63" height="14" /> </p>
+ <p>Once you save the Curriculum, the <strong>Course Listing</strong> & <strong>Assigned to Roles</strong> panels will appear. </p>
+ <h3>Assign Courses to the Curriculum</h3>
+ <p><img src="images/curr_course_listing.jpg" alt="Curriculum Course Listing" width="590" height="182" /></p>
+ <p>Select the courses to be included in the curriculum by checking the checkbox beside the Course No. Then using <strong>Sort Order</strong> text fields number the courses in the curriculum in the order you would like them to appear.</p>
+ <p><img src="images/curr_course_listing2.jpg" alt="Curriculum Course Listing" width="590" height="182" /><br />
+ </p>
+ <p>Once you have selected the courses and assigned a sort order, click <img src="images/save2.jpg" alt="Save" width="66" height="26" /></p>
+ <h3>Assign the Curriculum to Roles </h3>
+ <p>Select the roles the curriculum should be assigned to by checking the checkbox beside the Role Name. </p>
+ <p><img src="images/curr_assignroles.jpg" alt="Assign to Roles" width="590" height="218" /></p>
+ <p>Once you have selected the roles, click <img src="images/save2.jpg" alt="Save" width="66" height="26" /></p></td>
+ </tr>
+</table>
+</body>
+</html>
Added: trunk/styles/GOAA/help/admin_express.jsp
===================================================================
--- trunk/styles/GOAA/help/admin_express.jsp (rev 0)
+++ trunk/styles/GOAA/help/admin_express.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="600" border="0" cellpadding="0">
+ <tr>
+ <td valign="top" scope="col"><h1><strong>express course</strong></h1>
+ <p>Launch express course by clicking on this menu button. eXpress Course™ is an optional module purchased separately. Refer to the eXpress Course™ documentation for user information on this software.</p>
+ <h2><img src="images/express_course.jpg" alt="Express Course" width="590" height="363" /></h2>
+ </td>
+ </tr>
+</table>
+</body>
+</html>
Added: trunk/styles/GOAA/help/admin_home.jsp
===================================================================
--- trunk/styles/GOAA/help/admin_home.jsp (rev 0)
+++ trunk/styles/GOAA/help/admin_home.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="600" border="0" cellpadding="0">
+ <tr>
+ <td valign="top" scope="col"><h1><strong>Home Page</strong></h1>
+ <p><img src="images/admin_home.jpg" width="600" height="397" /></p>
+ <p>Your Home Page contains the following main sections:</p>
+ <table width="514" border="0" cellpadding="0">
+ <tr>
+ <td width="510" scope="col"><p><strong>Navigation Bar</strong> – The Navigation Bar is located at the top right of the page.</p> </td>
+ </tr>
+ <tr>
+ <td><table width="450" border="0" align="center" cellpadding="0">
+ <tr>
+ <td width="28" scope="col"><img src="images/home_btn.jpg" alt="Home" width="24" height="24" /></td>
+ <td width="416" scope="col">Returns you to the Home Page</td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/contact_btn.jpg" alt="Contact" width="24" height="24" /></td>
+ <td scope="col">Provides System Administrator Contact information </td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/help_btn.jpg" alt="Help" width="24" height="24" /></td>
+ <td scope="col">Launches the Help menu</td>
+ </tr>
+ </table>
+ <br />
+ <table width="450" border="0" align="center" cellpadding="0">
+ <tr>
+ <td width="28" scope="col"><img src="images/logoff_btn.jpg" alt="Home" width="63" height="22" /></td>
+ <td width="416" scope="col">Click to Logoff the system.</td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td><p> </p>
+ <p><strong>Course Catalog</strong> – The Course Catalog lists Curriculums and Individual Courses assigned to you
+ <table width="450" border="0" align="center" cellpadding="0">
+ <tr>
+ <td width="28" scope="col"><img src="images/add_btn.jpg" alt="Home" width="18" height="18" /></td>
+ <td width="416" scope="col">Click to expand the Curriculum and view all courses.</td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/sub_btn.jpg" width="18" height="18" /></td>
+ <td scope="col">Click to “roll up” the Curriculum and hide the courses.</td>
+ </tr>
+ </table>
+ <br />
+ <table width="450" border="0" align="center" cellpadding="0">
+ <tr>
+ <td width="416" scope="col"><p>To Launch a course click on <img src="images/start_but.jpg" alt="Start" width="63" height="14" /> or click on the Course Name and click <strong>Launch Course</strong><strong>.</strong>
+ </p> </td>
+ </tr>
+ <tr>
+ <td scope="col"><strong><br />
+ Status</strong> – The status of a course changes as you progress through the course. </td>
+ </tr>
+ </table>
+ <br />
+ <table width="450" border="0" align="center" cellpadding="0" cellspacing="4">
+ <tr>
+ <td width="28" scope="col"><img src="images/start_but.jpg" alt="Start" width="63" height="14" /></td>
+ <td width="416" scope="col">Indicates a new course that has not been previously viewed.</td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/continue_but.jpg" alt="Continue" width="63" height="14" /></td>
+ <td scope="col">Indicates a course “in-process”. Clicking on Continue will return you to the page where you exited the course. </td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/incomplete_btn.jpg" alt="Incomplete" width="63" height="14" /></td>
+ <td scope="col">Indicates that you have taken the entire course, but have not completed a required test or activity. </td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/retest_btn.jpg" alt="Retest" width="63" height="14" /></td>
+ <td scope="col">Indicates that you have not achieved a minimum passing score. You must re-take the test and achieve a passing score.</td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/awaitmgrapprvl.gif" alt="Manager Check" width="63" height="14" /></td>
+ <td scope="col">Indicates you have successfully completed the course however there are activities that require an “electronic sign-off” by your manager before it is Complete. </td>
+ </tr>
+ <tr>
+ <td scope="col"><strong>Complete </strong></td>
+ <td scope="col">Course successfully completed.</td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/print_certficate.png" alt="Certificate" width="21" height="20" /></td>
+ <td scope="col"><p>Click on this icon to print a Certificate of Completion. </p></td>
+ </tr>
+ </table>
+ </p>
+ <p><strong>Announcements</strong> – Click on the Announcement Name to view. Click <u>View</u> to view an associated file attachment. Click the <strong>X</strong> to close the announcement window.</p>
+ <p><strong>Read and Acknowledge – </strong>Electronic documents posted here are “view only”. Click the Start button to launch. (Electronic sign-off available on future software version)</p>
+ <p><strong>Resources </strong>– Resources contains a library of reference documents. Formats include Word Documents, Excel, PowerPoint and PDF files. Click on the File Name to launch the resource document in a new window.</p> <p> </p></td>
+ </tr>
+ <tr>
+ <td> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ </tr>
+ </table>
+ <p> </p>
+ <h1> </h1>
+ <p> </p></td>
+ </tr>
+</table>
+</body>
+</html>
Added: trunk/styles/GOAA/help/admin_logging.jsp
===================================================================
--- trunk/styles/GOAA/help/admin_logging.jsp (rev 0)
+++ trunk/styles/GOAA/help/admin_logging.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="600" border="0" cellpadding="0">
+ <tr>
+ <td valign="top" scope="col"><h1>Logging in</h1>
+ <p>To log in to the ELearning Portal, type your User I.D. and Password and click on Login (or press “enter”). The User I.D. and Password fields are case sensitive. </p>
+ <p>The default password is “changeme”. Be sure to change your password by clicking on User Profile Management in the menu and clicking on My Profile. If you are unable to login, click on Forgot Your Password? For assistance.</p>
+ <p><img src="images/login.jpg" width="525" height="410" /></p>
+ <p> </p>
+ <p> </p>
+ </td>
+ </tr>
+ </table>
+</body>
+</html>
Added: trunk/styles/GOAA/help/admin_manager.jsp
===================================================================
--- trunk/styles/GOAA/help/admin_manager.jsp (rev 0)
+++ trunk/styles/GOAA/help/admin_manager.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="600" border="0" cellpadding="0">
+ <tr>
+ <td valign="top" scope="col"><h1><strong>Manager Authorization</strong></h1>
+ <p><img src="images/manager_author.jpg" alt="Manager Authorization" width="590" height="211" /></p>
+ <p><br />
+ Courses that require manager’s approval for completion are displayed for your workgroups in the <strong>Pending Sign-off For Course Completion</strong> listing. Checking the <strong>Authorize Completion</strong> box and clicking on <strong>Save</strong> will change the status from<strong> In-Process</strong> to <strong>Complete</strong> in the employee’s <strong>Student Records</strong>.</p>
+ <p>Note: When this feature is active, a user must meet three criteria to receive a Completion Certificate:</p>
+ <ol>
+ <li>Course must be completed</li>
+ <li>A passing score must be achieved</li>
+ <li>Manager must authorize completion</li>
+ </ol>
+ <p>Click on the <strong>Checklist icon</strong> to view a list of activities that must be successfully completed prior to approving the course as <strong>Complete</strong>. </p>
+ <p> </p></td>
+ </tr>
+</table>
+</body>
+</html>
Added: trunk/styles/GOAA/help/admin_overview.jsp
===================================================================
--- trunk/styles/GOAA/help/admin_overview.jsp (rev 0)
+++ trunk/styles/GOAA/help/admin_overview.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,31 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="600" border="0" cellpadding="0">
+ <tr>
+ <td scope="col"><h1><strong>Overview</strong></h1>
+ <p>The ELearning Portal is your training Home Page. The Course Catalog is displayed on your Home Page and is customized for your job role. Upon successful course completion a Certificate of Completion can be printed. Additionally, your progress is tracked and reported in My Reports. A Resource Library provides electronic resource documents to assist in your job role.</p>
+ <p>Three levels of access are provided in the ELearning Portal; User, Manager, and Administrator.<br />
+ As an administrator, you have access to all options in the menu bar:</p>
+ <ul type="disc">
+ <li>Course Management</li>
+ <li>Workgroup Management</li>
+ <li>Role Management</li>
+ <li>Manager Authorization</li>
+ <li>Student Records</li>
+ <li>Summary Report</li>
+ <li>User Profile Management</li>
+ <li>System Management</li>
+ <li>Utilities</li>
+ </ul>
+ <p><img src="images/admin_home.jpg" width="600" height="397" /></p></td>
+ </tr>
+</table>
+</body>
+</html>
Added: trunk/styles/GOAA/help/admin_role.jsp
===================================================================
--- trunk/styles/GOAA/help/admin_role.jsp (rev 0)
+++ trunk/styles/GOAA/help/admin_role.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="600" border="0" cellpadding="0">
+ <tr>
+ <td valign="top" scope="col"><h1><strong>Role Management</strong></h1>
+ <p>The Role Management page allows you to Add, Edit, or Delete Roles. </p>
+ <h2><img src="images/role_management.jpg" alt="Role Management" width="590" height="276" /><br />
+ </h2>
+ <h2>To add a new Role</h2>
+ <p>Click on the <img src="images/add_btn.jpg" alt="Add" width="24" height="24" /><strong>Add Role </strong> button. Type in the Role Name and Description and click <img src="images/save2.jpg" alt="Save" width="66" height="26" /></p>
+ <p><img src="images/new_role.jpg" alt="New Role" width="550" height="139" /></p>
+ <p>After saving, the <strong>Course Catalog</strong> will appear to allow you to assign courses to the Role. </p>
+ <p><img src="images/course_catalog.jpg" alt="Course Catalog" width="590" height="198" /></p>
+ <p>Assign courses to the Role by clicking the checkbox next to the Course Number, <img src="images/save2.jpg" alt="Save" width="66" height="26" /></p>
+ <h2><strong><em>To Edit a Role </em></strong></h2>
+ <p>Select the <strong>Role</strong> by clicking the checkbox next to the Name for the desired Role. Then from the pull-down menu, select “Edit”, then click <strong>Perform Action</strong>.</p>
+ <p><img src="images/edit.jpg" alt="Edit" width="266" height="32" /></p>
+ <p>The Role profile will appear.</p>
+ <h2>To Delete a Role </h2>
+ <p>Select the <strong>Role</strong> by clicking the checkbox next to the Name for the desired Role. Then from the pull-down menu, select “Delete”, then click <strong>Perform Action</strong>.</p>
+ <p><img src="images/delete.jpg" alt="Delete" width="266" height="32" /></p></td>
+ </tr>
+</table>
+<h2> </h2>
+</body>
+</html>
Added: trunk/styles/GOAA/help/admin_student.jsp
===================================================================
--- trunk/styles/GOAA/help/admin_student.jsp (rev 0)
+++ trunk/styles/GOAA/help/admin_student.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,49 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="600" border="0" cellpadding="0">
+ <tr>
+ <td valign="top" scope="col"><h1><strong>Student Records</strong></h1>
+ <p>The training records for employees can be viewed in <strong>Student Records</strong>.</p>
+ <p><img src="images/student_records.jpg" alt="Student Records" width="590" height="286" /></p>
+ <h2><strong><em>To Search for Student Records</em></strong></h2>
+ <p>Fill in the Search parameters you would like to use. Selecting more than one parameter will narrow your search. Available parameters are:</p>
+ <ul>
+ <li>Status</li>
+ <li>Workgroup</li>
+ <li>Role</li>
+ <li>Employee (Last Name)</li>
+ <li>Employee ID</li>
+ <li>Course</li>
+ <li>Certification</li>
+ <li>Course Completion Date</li>
+ <li>Hire Date</li>
+ </ul>
+ <p>Then click <img src="images/search.jpg" alt="Generate Report" width="98" height="14" />. A list of Students that fit the parameters will appear below the search box.</p>
+ <p><img src="images/student_records2.jpg" alt="Student Records" width="590" height="234" /></p>
+ <h2>To Print the Student Records Report</h2>
+ <p>Click on <img src="images/print_but.jpg" alt="Print" width="20" height="20" /><strong>Print</strong> <strong>Report</strong>.</p>
+ <h2>To Download Student Record Reports</h2>
+ <p>To download the report in .csv file that can be opened in Excel click on <img src="images/download_btn.jpg" alt="Download" width="20" height="20" /><strong>Download to Excel</strong></p>
+ <h2>To View a Student’s Record</h2>
+ <p>Click on the first name, last name or employee ID of any student to view the student’s complete training report.</p>
+ <p><img src="images/student_records3.jpg" width="600" height="132" /></p>
+ <h2>To Manually Assign a Retake</h2>
+ <p>Click the "Assign Retake" button in the comments feild next to a passed course. Enter the reason in text box and click "OK".</p>
+ <h2>To Manually Override a Course Status</h2>
+ <p>Click the "Force Pass" button in the comments feild next to any "New" or "In Progress" course. Enter the reason in the text box and click "OK".</p>
+ <p><em>Note: This feature is only availibe to administrators and authorized managers.</em></p>
+ <h2>To Print the Student’s Record</h2>
+ <p>Click on <img src="images/print_but.jpg" alt="Print" width="20" height="20" /><strong>Print</strong> <strong>Report</strong>.<br />
+ </p></td>
+ </tr>
+</table>
+<h2> </h2>
+</body>
+</html>
Added: trunk/styles/GOAA/help/admin_summary.jsp
===================================================================
--- trunk/styles/GOAA/help/admin_summary.jsp (rev 0)
+++ trunk/styles/GOAA/help/admin_summary.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="600" border="0" cellpadding="0">
+<tr>
+ <td valign="top" scope="col"><h1>Summary Report</h1>
+ <p><img src="images/admin_summary.jpg" width="498" height="102" /></p>
+ <p>The Summary Reports page allows you to generate course completion reports by workgroups or by roles. Column headings are sortable.</p>
+ <h2>To Print the Student Records Report</h2>
+<p>Click on <img src="images/print_but.jpg" width="23" height="23" /><strong> Print</strong> <strong>Report</strong>.</p>
+<h2>To Download Student Record Reports</h2>
+<p>To download the report in .csv file that can be opened in Excel click on <img src="images/download_btn.jpg" width="23" height="23" /><strong> Download to Excel</strong></p>
+</td>
+</tr>
+</table>
+</body>
+</html>
Added: trunk/styles/GOAA/help/admin_system.jsp
===================================================================
--- trunk/styles/GOAA/help/admin_system.jsp (rev 0)
+++ trunk/styles/GOAA/help/admin_system.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="601" border="0" cellpadding="0">
+ <tr>
+ <td width="597" valign="top" scope="col"><h1><strong>System Management</strong></h1>
+ <p>System Management allows you to edit the <strong>System Settings</strong>, <strong>Email Settings</strong>, <strong>API Settings</strong>, <strong>Self-Registration Settings</strong>,<strong> Course IP Address Restriction</strong>, <strong>Alternative Login Settings</strong>, and manage <strong>Announcements</strong> and <strong>Resources</strong>.</p>
+ <h2>Edit System Settings</h2>
+ <h2><img src="images/admin_system.jpg" width="600" height="482" /></h2>
+ <p>System settings apply global changes to all screens, and for all access levels</p>
+ <ul>
+ <li><strong>Version –</strong> Shows system software version number</li>
+ <li><strong>Company ID –</strong> Shows company ID assigned when multiple site versions are installed.</li>
+ <li><strong>Company Name</strong></li>
+ <li><strong>Upload Company Logo Image –</strong> Allows the ability to customize your logo by clicking “Browse”.</li>
+ <li><strong>Copyright Text</strong></li>
+ <li><strong>Administrator Contact Name –</strong> Will appear on “Contact Support Screen”.</li>
+ <li><strong>Administrator Contact Email –</strong> Will appear on “Contact Support Screen”.</li>
+ <li><strong>Administrator Contact Phone –</strong> Will appear on “Contact Support Screen”.</li>
+ <li><strong>Log Level –</strong> Set to "INFO – PRODUCTION LOG LEVEL" for optimum performance and debugging. For advanced logging, use: FATAL, ERROR, WARN, DEBUG, TRACE.</li>
+ <li><strong>Log Folder –</strong> Set location on server where Log Files are stored.</li>
+ <li><strong>Log File Max Size (In KB) –</strong> 500KB Default. Set to larger size for increased log activity.</li>
+ <li><strong>Log File Max Backups –</strong> Number of files stored in Log Folder for archiving.</li>
+ </ul>
+ <h2>Edit Email Settings</h2>
+ <p>Edit Email Settings allows you to control how emails are automatically sent to users in the system.</p>
+ <p><img src="images/admin_email_1.jpg" width="561" height="277" /></p>
+ <p>Email Settings apply to all emails sent through the system. </p>
+ <ul>
+ <li><strong>Outgoing Mail Server –</strong> Set the Outgoing Mail Server.</li>
+ <li><strong>Outgoing Mail User –</strong> Set the Outgoing Mail User.</li>
+ <li><strong>Outgoing Mail Password –</strong> Set Password. Used to Authenticate with outgoing mail server.</li>
+ <li><strong>Default “From” Email Address –</strong> Will appear on all emails sent from system.</li>
+ <li><strong>Default Email Signature –</strong> Set the Default Email Signature.</li>
+ <li><strong>Site URL –</strong> Site URL you wish to appear in emails containing this field.</li>
+ </ul>
+ <p><img src="images/admin_email_2.jpg" width="500" height="149" /></p>
+ <p>Enable Automatic Email Notifications.</p>
+ <ul>
+ <li>Enable/Disable Welcome Email for New Users notification.</li>
+ <li>Enable/Disable Recover Password/User Name notification.</li>
+ <li>Enable/Disable Change Password notification.</li>
+ <li>Enable/Disable Student Pass/Fail notification.</li>
+ <li>Enable/Disable Manager Summary Report notification.</li>
+ </ul>
+ <p><img src="images/admin_email_3.jpg" width="582" height="104" /></p>
+ <p>Enable Automatic Recurrent Training Reminders.
+ <em>Note: “Recurrent Training” must be activated in Utilities Panel.</em>
+ <ul>
+ <li><strong>Due Date</strong> – When enabled, reminders are emailed two times prior to Due Date for courses set as “Recurrent Training”.</li>
+ <li><strong>Past Due</strong> – When enabled, reminders are emailed two times following Expiration Date for courses set as “Recurrent Training”.</li>
+ <li><strong>Assigned Retakes</strong> – When this box is checked and when a course retake is manually assigned, a notification will be emailed to the User.</li>
+ </ul>
+ <p><img src="images/admin_email_4.jpg" width="596" height="230" /></p>
+ <p>Click on the tabs to select email message templates. Email templates can be edited in the following fields:</p>
+ <ul>
+ <li><strong>Default</strong> – Reset the message to its default content.</li>
+ <li><strong>Subject</strong> – Edit the subject line of the email.</li>
+ <li><strong>Body</strong> – Edit the body of the email.</li>
+ </ul>
+ <p><em>Note: data will dynamically populate email body by using desired database fieldname contained in curly brackets (i.e. {coursename} ).</em></p>
+ <h2>Web Service API Settings</h2>
+ <p><img src="images/admin_API.jpg" width="596" height="139" /></p>
+ <ul>
+ <li><strong>Enable</strong> – Activate the Web Service API. See Web Service API Instructions document for more details about the API.</li>
+ <li><strong>Callback URL</strong>– <strong>Course Complete</strong> – Enter URL of the site you are integrating with. The system will send student record data (pass, fail, score, etc.) when the student either successfully or unsuccessfully completes the course.</li>
+ </ul>
+ <h2>Self-Registration</h2>
+ <p><img src="images/admin_selfregistration.jpg" width="600" height="198" /></p>
+ <ul>
+ <li><strong>Enable</strong> – Enable/Disable Self Registration.</li>
+ <li><strong>Work Field Must Contain These Characters</strong> – Used to validate Self-Registration User. Enter the desired characters (Alpha and/or Numeric) that the user must enter to allow registration and access to system. You may enter multiple validation strings.</li>
+ <li><strong>Workgroup Field Must Contain Exactly</strong> – Self-Registration User must enter exactly this number of characters to be allowed to register and access system.</li>
+ </ul>
+ <h2>Course IP Address Restriction</h2>
+ <p><img src="images/admin_IP.jpg" width="600" height="137" /></p>
+ <ul>
+ <li><strong>Enable</strong> – Enable/Disable Course IP Address Restriction.</li>
+ <li><strong>Valid IP Address Patterns</strong> – Used to validate Course IP Address Restriction. Enter the IP address(es) of computers desired as restricted. IP addresses containing * will validate multiple addresses as long as all numbers preceding the * are the same for each computer.</li>
+ </ul>
+ <h2>Alternative Login Validation Settings</h2>
+ <p><img src="images/admin_alternativelogin.jpg" width="597" height="194" /></p>
+ <p>Alternative Login Validation is used when a system user is authenticated using another website's login credentials.</p>
+ <ul>
+ <li><strong>Enable</strong> – Enable when using single sign-on validation from primary site or application.</li>
+ <li><strong>Validation Service URL</strong> – URL of host site used for Alternative Login.</li>
+ <li><strong>System Prefix To UserID</strong> – This prefix will be added to new user IDs created in the system sent from the primary site.</li>
+ <li><strong>System User Local Password</strong> – Desired password used for all new user IDs created by the primary site.</li>
+ </ul>
+ <h2>Announcements</h2>
+ <p>The Announcements box allows you to Add, Edit, or Delete Announcements.</p>
+ <p><img src="images/announcements.jpg" alt="Announcements" width="593" height="150" /></p>
+ <h2>To add an Announcement</h2>
+ <p>Click on the <img src="images/add_btn.jpg" alt="Add" width="24" height="24" /><strong>Add Announcement</strong> button, type in the Announcement Title, Message, and Expiration Date. You can also upload an attachment such as a graphic, Word document or a PDF document to the announcement. </p>
+ <p><img src="images/new_announcement.jpg" alt="New Announcement" width="553" height="338" /></p>
+ <p>Once you have completed the fields, click <img src="images/save2.jpg" alt="Save" width="66" height="26" /></p>
+ <h2>To edit an Announcement</h2>
+ <p>Select the Announcement by clicking the checkbox next to the Announcement Name. Then from the pull-down menu, select “Edit”, then click <strong>Perform Action</strong>.</p>
+ <p><img src="images/edit.jpg" alt="Edit" width="266" height="32" /></p>
+ <p>This will take you to the profile page for the selected Announcement. Make the desired changes, and click <img src="images/save2.jpg" alt="Save" width="66" height="26" /></p>
+ <h2>To Delete an Announcement </h2>
+ <p>Select the Announcement by clicking the checkbox next to the Announcement Name. Then from the pull-down menu, select “Delete”, then click <strong>Perform</strong> <strong>Action</strong>.</p>
+ <p><img src="images/delete.jpg" alt="Delete" width="266" height="32" /></p>
+ <h2>Resources</h2>
+ <p>The Resources box allows you to Add, Edit, or Delete Resources.</p>
+ <p><img src="images/resources.jpg" alt="Resources" width="590" height="103" /></p>
+ <h2>To add a Resource</h2>
+ <p>Click on the <img src="images/add_btn.jpg" alt="Add" width="24" height="24" /><strong>Add Resource</strong> button, type in the Resource Title, Message, and Expiration Date. This screen also contains the “Upload Resource” field to upload the desired document. Once uploaded you will see the path to where the document is located and the file size. </p>
+ <p><img src="images/new_resource.jpg" alt="New Resource" width="553" height="362" /></p>
+ <p>By using the <strong>Resource Type</strong> pull-down, you can designate if the Resource is for a user, manager, or administrator. <em><br />
+ <br />
+ (Note: If “Manager” is selected, managers and users can view in “Resources” on their home page. If “Administrator” is selected, all access levels can view the resource.) </em></p>
+ <p>Once you have completed the fields, click <img src="images/save2.jpg" alt="Save" width="66" height="26" /></p>
+ <h2>To edit a Resource</h2>
+ <p>Select the Resource by clicking the checkbox next to the File Name. Then from the pull-down menu, select “Edit”, then click <strong>Perform</strong> <strong>Action</strong>.</p>
+ <p><img src="images/edit.jpg" alt="Edit" width="266" height="32" /></p>
+ <p>This will take you to the profile page for the selected Resource. Make the desired changes, and click <img src="images/save2.jpg" alt="Save" width="66" height="26" /></p>
+ <h2>To Delete a Resource</h2>
+ <p>Select the Resource by clicking the checkbox next to the Resource Name. Then from the pull-down menu, select “Delete”, then click <strong>Perform Action</strong>.</p>
+ <p><img src="images/delete.jpg" alt="Delete" width="266" height="32" /></p>
+ <p>Resources will only be active until their designated expiration date.</p></td>
+ </tr>
+</table>
+</body>
+</html>
Added: trunk/styles/GOAA/help/admin_userprofile.jsp
===================================================================
--- trunk/styles/GOAA/help/admin_userprofile.jsp (rev 0)
+++ trunk/styles/GOAA/help/admin_userprofile.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,107 @@
+<%@ page import="com.resolutions.ils.Utils" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="600" border="0" cellpadding="0">
+ <tr>
+ <td valign="top" scope="col"><h1><strong>User Profile Management</strong></h1>
+ <p>The User Profile Management page allows you to Search, Add, and Edit existing user profiles. </p>
+ <p><img src="images/user_profile_management.jpg" alt="User Profile Management" width="600" height="275" /><br />
+ </p>
+ <h2>Search</h2>
+ <p>Search all profiles by clicking <img src="images/search_btn.jpg" alt="Search" width="98" height="14" /></p>
+ <p>The following fields are available to filter your search:</p>
+ <ul>
+ <li><strong>Workgroup(s)</strong> - Select the Workgroups you wish to filter by. To view all, leave field blank.</li>
+ <li><strong>Role(s)</strong> - Select the Roles you wish to filter by. To view all, leave field blank.</li>
+ <li><strong>Access Level</strong> – By Administrator, Manager, or User</li>
+ <li><strong>Employee (Last Name)</strong></li>
+ <li><strong>Employee ID</strong></li>
+ <li><strong>Status</strong> – Active or Inactive</li>
+ <li><strong>Hire Date</strong> – Date range for which the Hire Date field is filled</li>
+ </ul>
+ <p>Selecting more than one parameter will narrow your search in more detail. Once the Search is returned the <strong>Search Results</strong> will be displayed in a table at the bottom of the page.</p>
+ <p><img src="images/user_profiles_search_results.jpg" alt="Search Results" width="600" height="220" /></p>
+ <p>The column headings are: Last, First, Employee ID, Workgroup, and Role. Click on the column headings to sort the results alphabetically.</p>
+ <p>To review or edit a specific users’ profile, click on the checkbox next to their Last Name. From the pull-down menu, select “Edit”, then click <strong>Perform Action</strong>.</p>
+ <p><img src="images/edit.jpg" alt="Edit" width="245" height="25" /></p>
+ <h2>My Profile</h2>
+ <p>You may edit your user profile directly by clicking <img src="images/my_profile_btn.jpg" alt="Add New Profile" width="98" height="14" /></p>
+ <h2>Add New Profile</h2>
+ <p>Add a new user profile by clicking <img src="images/add_new_profile_btn.jpg" alt="Add New Profile" width="98" height="14" /></p>
+ <p>An empty Profile For window will open.</p>
+ <p><img src="images/admin_profile.jpg" width="600" height="550" /></p>
+ <p>When adding a new User Profile, the following fields are available:</p>
+ <ul>
+ <li><strong>Employee ID </strong><font color="red";>(Required)</font> – Must be a unique alpha / numeric value</li>
+ <li><strong>Password </strong><font color="red";>(Required)</font> – The default password is “<%=Utils.getSysConfig(session).getProperty("DefaultPasswd", "changeme")%>”</li>
+ <li><strong>Confirm Password </strong><font color="red";>(Required)</font> – The default password is “<%=Utils.getSysConfig(session).getProperty("DefaultPasswd", "changeme")%>”</li>
+ <li><strong>Hire Date</strong> – Date in which the employee was hired</li>
+ <li><strong>Termination Date</strong> – Date in which the employee was terminated</li>
+ <li><strong>Status</strong> – Active or Inactive. Defaults to Active</li>
+ <li><strong>Access Security Level </strong><font color="red";>(Required)</font> – User, Manager, Administrator. Defaults to User</li>
+ <li><strong>Override ID Check At Login</strong> – When active, this profile will ignore the ID Check at Login</li>
+ <li><strong>Override IP Address Restriction</strong> – When active, this profile will ignore all Course IP Restriction settings</li>
+ <li><strong>Role(s) </strong><font color="red";>(Required)</font> - Every user profile must occupy at least one Role.</li>
+ <li><strong>Workgroup(s) </strong><font color="red";>(Required)</font> - Every user profile must occupy at least one Workgroup.</li>
+ <li><strong>First Name </strong><font color="red";>(Required)</font></li>
+ <li><strong>Middle Name</strong></li>
+ <li><strong>Last Name </strong><font color="red";>(Required)</font></li>
+ <li><strong>Suffix</strong></li>
+ <li><strong>Address 1</strong></li>
+ <li><strong>Address 2</strong></li>
+ <li><strong>City/Province</strong></li>
+ <li><strong>State</strong></li>
+ <li><strong>Zip</strong></li>
+ <li><strong>Country</strong></li>
+ <li><strong>Email</strong> – Email is required if automatic notifications are desired for this user</li>
+ <li><strong>Phone</strong></li>
+ </ul>
+ <p>Once you have filled in the applicable fields, click <img src="images/save_btn.jpg" alt="Save" width="63" height="14" /> </p>
+ <p>If the new user profile has an <strong>Access Security Level</strong> of a “Manager”, then two additional panels will appear:</p>
+ <ul>
+ <li>Manager Privileges</li>
+ <li>Workgroups Managed </li>
+ </ul>
+ <h2>Manager Privileges</h2>
+ <p>The Manager Privileges panel allows you to customize a manager's profile permissions to selected administrative menu options.</p>
+ <p><img src="images/manager_privileges.jpg" alt="Manager Privileges" width="600" height="220" /></p>
+ <p>Select the <strong>Menu Items Authorized</strong> for the Manager by clicking on the checkboxes beside the menu item names. </p>
+ <p>Then, click <img src="images/save_btn2.jpg" alt="Save" width="63" height="25" />. The following permissions are availible:</p>
+ <ul>
+ <li><strong>Course Management</strong> - Enable access to Course Management</li>
+ <li><strong>Workgroup Management</strong> - Enable access to Workgroup Management</li>
+ <li><strong>Role Management</strong> - Enable access to Role Management</li>
+ <li><strong>Student Records</strong> - Enable access to Student Records & Summary Reports</li>
+ <ul><li><strong>Allow Manual Override - Course Completion</strong> - Enable manager to use the "Force Pass" button in Student Records</li></ul>
+ <li><strong>User Profile Management</strong> - Enable Access to User Profile Management</li>
+ <ul><li><strong>Search / View Profiles</strong> - Enable permissions to search and view profiles in User Profile Management</li>
+ <li><strong>Add New User</strong> - Enable permissionsto add new user profiles</li>
+ <li><strong>Add New Managers</strong> - Enable permissions to add new manager profiles</li>
+ <li><strong>Modify Exsisting Users</strong> - Enable permissions to modify exsisting user profiles</li></ul>
+ <li><strong>System Management</strong> - Enable access to System Management</li>
+ <li><strong>Utilities</strong> - Enable access to Utilities</li>
+ </ul>
+ <h2>Manager Privileges Presets</h2>
+ <p>You can create and save your own custom Presets for Manager Privileges. Saved Manager Presets will appear in the [ Preset Permissions ] drop down.</p>
+ <p><img src="images/manage_presets.jpg" alt="Manage Presets" width="289" height="23" />
+ <p>Click the<strong> Manage Presets</strong> button to create new presets or to modify or delete existing presets.</p>
+ <p><img src="images/security_preset_management.jpg" alt="Security Presets" width="600" height="375" /></p>
+ <h2>To create a new Preset</h2>
+ <p>Fill in the <strong>Preset Name</strong> field and select the <strong>Menu Items Authorized</strong> for the Preset by clicking on the checkboxes beside the menu item names. Then, click <img src="images/saveasnew_btn.jpg" alt="Save as New" width="99" height="22" /></p>
+ <h2>To delete a Preset</h2>
+<p>Check the box next to a preset from the <strong>Existing Presets</strong> panel, and then click <img src="images/preset_delete_btn.jpg" alt="Delete" width="71" height="25" /></p>
+ <h2>Workgroups Managed</h2>
+ <p>Managers will only be able to view users in the workgroups they manage. Workgroups can be assigned to a manager by clicking on the checkbox next to the Workgroup Name. For example, when viewing Student Records, the manager will only be able to view users in workgroups they manage, assigned via this panel. </p>
+ <p><img src="images/workgroups_managed.jpg" alt="Workgroups Managed" width="600" height="150" /></p></td>
+ </tr>
+</table>
+<p>Select the workgroups you wish the manager to manage then click <img src="images/save_btn2.jpg" alt="Save" width="63" height="25" /> in the Workgroups Managed box.</p>
+</body>
+</html>
Added: trunk/styles/GOAA/help/admin_utilities.jsp
===================================================================
--- trunk/styles/GOAA/help/admin_utilities.jsp (rev 0)
+++ trunk/styles/GOAA/help/admin_utilities.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,38 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="600" border="0" cellpadding="0">
+ <tr>
+ <td valign="top" scope="col"><h1><strong>Utilities</strong></h1>
+ <p>The Utilities page allows you to remove inactive users from the system and to upload SSi™ and eXpress course™ files to the system. Any third party courseware that is AICC compliant can also be added and tracked via the system.</p>
+ <h2>System Maintenance</h2>
+ <p><img src="images/admin_maintenance.jpg" width="578" height="174" /></p>
+ <p>Inactive Users can be deleted from the system. Users are deleted based on the number of days they have been inactive. Edit the parameters and click <strong>Run</strong> to delete Users who have been marked inactive. (You will be asked to confirm this action)</p>
+ <p><em>Note: Users will be permanently deleted from the database and can only be retrieved from back-up files.</em></p>
+ <p>Recurrent Training</p>
+ <p>Check the box and click <strong>Run</strong> to automatically assign Recurrent Training to all applicable users.</p>
+<p><img src="images/utilities1.jpg" alt="Utilities" width="590" height="180" /></p>
+ <h2>Add a Third Party Course</h2>
+ <p><img src="images/add3rdParty.jpg" alt="Add 3rd Party" width="552" height="168" /></p>
+ <p>Click Add Third Party Course. Select the Course Name. Next type a folder name for the course in the Create System Course Folder field. You can use the same folder name as used for your 3rd party course, or type a new name as you would like it to appear in the system;. <br />
+ <br />
+ Click <img src="images/copytolms_btn.jpg" alt="Copy to iLS" width="98" height="14" /></p>
+ <p>Once the course has been copied to the system, you will be able to add, or “publish” the course by going to the Course Management screen, and clicking on the <img src="images/add_btn.jpg" alt="Add" width="24" height="24" /><strong>Add Course</strong> button. The Course Folder Name will show up once you click <strong>Browse</strong></p>
+ <p><img src="images/url.jpg" alt="URL" width="470" height="29" /></p>
+ <h2>Add an eXpress course™</h2>
+ <p><img src="images/add_express.jpg" alt="Add express course" width="558" height="164" /></p>
+ <p>Click <strong>Add express course</strong>. Select the Course Name. Next type a folder name for the course in the <strong>Create System Course Folder</strong> field. You can use the same folder name as used in eXpress Course, or type a new name as you would like it to appear in the system;. <br />
+ Click <img src="images/copytolms_btn.jpg" width="98" height="14" /></p>
+ <p>Once the course has been copied to the system, you will be able to add, or “publish” the course by going to the Course Management screen, and clicking on the <img src="images/add_btn.jpg" alt="Add" width="24" height="24" /><strong>Add Course</strong> button. The Course Folder Name will show up once you click <strong>Browse</strong></p>
+ <p><img src="images/url.jpg" alt="url" width="470" height="29" /></p>
+ <p> </p></td>
+ </tr>
+</table>
+</body>
+</html>
Added: trunk/styles/GOAA/help/admin_workgroup.jsp
===================================================================
--- trunk/styles/GOAA/help/admin_workgroup.jsp (rev 0)
+++ trunk/styles/GOAA/help/admin_workgroup.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="600" border="0" cellpadding="0">
+ <tr>
+ <td valign="top" scope="col"><h1><strong>Workgroup Management</strong></h1>
+ <p>The Workgroup Management page allows you to Add, Edit, or Delete Workgroups. </p>
+ <h2><img src="images/workgroups_managed2.jpg" alt="Workgroups Managed" width="590" height="278" /><br />
+ </h2>
+ <h3><strong><em>To Add a new Workgroup</em></strong></h3>
+ <p>Click on the <img src="images/add_btn.jpg" alt="Add" width="24" height="24" /><strong>Add Group</strong> button. Type in the Workgroup Name and Description and click <img src="images/save2.jpg" alt="Save" width="66" height="26" /></p>
+ <p><img src="images/new_workgroup.jpg" alt="New Workgroup" width="550" height="139" /></p>
+ <p>After saving, the<strong> Course Catalog</strong> will appear to allow you to assign courses to the Workgroup. </p>
+ <p><img src="images/course_catalog.jpg" alt="Course Catalog" width="590" height="198" /></p>
+ <p>Assign courses to the Workgroup by clicking the checkbox next to the Course Number, and click <img src="images/save2.jpg" alt="Save" width="66" height="26" /></p>
+ <h2><strong><em>To Edit a Workgroup</em></strong></h2>
+ <p>From the <strong>Workgroup Management</strong> screen, select the Workgroup by clicking the checkbox next to the Group Name for the desired Workgroup. Then from the pull-down menu, select “Edit”, then click <strong>Perform Action</strong>.</p>
+ <p><img src="images/edit.jpg" alt="Edit" width="266" height="32" /></p>
+ <p>The Workgroup profile will appear.</p>
+ <h2>To Delete a Workgroup </h2>
+ <p>From the<strong> Workgroup Management</strong> screen, select the Workgroup by clicking the checkbox next to the Group Name for the desired Workgroup. Then from the pull-down menu, select “Delete”, then click <strong>Perform Action</strong>.</p>
+ <p><img src="images/delete.jpg" alt="Delete" width="266" height="32" /></p></td>
+ </tr>
+</table>
+<h2> </h2>
+</body>
+</html>
Added: trunk/styles/GOAA/help/help.css
===================================================================
--- trunk/styles/GOAA/help/help.css (rev 0)
+++ trunk/styles/GOAA/help/help.css 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,62 @@
+h1 {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16px;
+ font-weight: bold;
+ color: #283C74;
+ padding: 5px;
+ line-height: 5px;
+}
+.bodytext {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ line-height: 20px;
+ color: #333333;
+ padding: 5px;
+}
+
+.boldtxt {
+ color: #333333;
+ font-weight: bold;
+}
+.content_box {
+ background-color: #F4F4F4;
+ float: left;
+ height: 315px;
+ width: 400px;
+ overflow: scroll;
+ border-right-width: thin;
+ border-bottom-width: thin;
+ border-left-width: thin;
+ border-top-style: none;
+ border-right-style: solid;
+ border-bottom-style: solid;
+ border-left-style: solid;
+ border-right-color: #283C74;
+ border-bottom-color: #283C74;
+ border-left-color: #283C74;
+ position: fixed;
+ top: 200px;
+}
+.menu_box {
+ background-color: #F4F4F4;
+ float: none;
+ height: 80px;
+ width: 400px;
+ overflow: visible;
+ border: thin solid #283C74;
+ position: fixed;
+}
+.menu_txt {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 11px;
+ text-transform: uppercase;
+ color: #283C74;
+ font-weight: bold;
+}
+.menu_txt a{
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 11px;
+ text-transform: uppercase;
+ color: #333333;
+ font-weight: bold;
+}
Added: trunk/styles/GOAA/help/help_admin.jsp
===================================================================
--- trunk/styles/GOAA/help/help_admin.jsp (rev 0)
+++ trunk/styles/GOAA/help/help_admin.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Help</title>
+</head>
+
+<frameset cols="140,*" frameborder="no" border="0" framespacing="0">
+ <frame src="menu.jsp" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame" title="leftFrame" />
+ <frame src="admin_overview.jsp" name="mainFrame" id="mainFrame" title="mainFrame" scrolling="auto" />
+</frameset>
+<noframes><body>
+</body>
+</noframes></html>
Added: trunk/styles/GOAA/help/help_manager.jsp
===================================================================
--- trunk/styles/GOAA/help/help_manager.jsp (rev 0)
+++ trunk/styles/GOAA/help/help_manager.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Help</title>
+</head>
+
+<frameset cols="140,*" frameborder="no" border="0" framespacing="0">
+ <frame src="manager_menu.jsp" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame" title="leftFrame" />
+ <frame src="manager_overview.jsp" name="mainFrame" id="mainFrame" title="mainFrame" scrolling="auto" />
+</frameset>
+<noframes><body>
+</body>
+</noframes></html>
Added: trunk/styles/GOAA/help/help_style.css
===================================================================
--- trunk/styles/GOAA/help/help_style.css (rev 0)
+++ trunk/styles/GOAA/help/help_style.css 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,52 @@
+/* CSS Document */
+.MenuBg{
+ background-color: #666666;
+}
+.MenuLink a:hover{
+ color: #FF0000;
+ text-decoration:underline;
+ cursor: help;
+ }
+
+.MenuLink, .MenuLink a, .MenuLink a:active, .MenuLink a:visited{
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 11px;
+ text-transform: uppercase;
+ color: #FFFFFF;
+ text-decoration:none;
+ display: block;
+ font-weight: bold;
+ border: 0px solid #666666;
+ border-collapse:collapse;
+ padding-top: 8px;
+ padding-right: 4px;
+ padding-bottom: 8px;
+ padding-left: 4px;
+ margin: 0px;
+}
+
+
+body {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+ margin: 10px;
+}
+h1 {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ text-transform: uppercase;
+ color: #FF0000;
+}
+h2 {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ font-weight: bold;
+ color: #FF0000;
+}
+h3 {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: bold;
+ color: #FF0000;
+}
\ No newline at end of file
Added: trunk/styles/GOAA/help/help_user.jsp
===================================================================
--- trunk/styles/GOAA/help/help_user.jsp (rev 0)
+++ trunk/styles/GOAA/help/help_user.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Help</title>
+</head>
+
+<frameset cols="140,*" frameborder="no" border="0" framespacing="0">
+ <frame src="user_menu.jsp" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame" title="leftFrame" />
+ <frame src="user_overview.jsp" name="mainFrame" id="mainFrame" title="mainFrame" scrolling="auto" />
+</frameset>
+<noframes><body>
+</body>
+</noframes></html>
Added: trunk/styles/GOAA/help/images/add3rdParty.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/add3rdParty.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/add_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/add_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/add_express.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/add_express.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/add_new_profile.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/add_new_profile.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/admin_API.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/admin_API.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/admin_IP.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/admin_IP.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/admin_alternativelogin.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/admin_alternativelogin.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/admin_email_1.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/admin_email_1.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/admin_email_2.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/admin_email_2.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/admin_email_3.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/admin_email_3.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/admin_email_4.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/admin_email_4.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/admin_home.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/admin_home.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/admin_maintenance.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/admin_maintenance.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/admin_newcourse.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/admin_newcourse.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/admin_profile.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/admin_profile.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/admin_selfregistration.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/admin_selfregistration.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/admin_summary.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/admin_summary.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/admin_system.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/admin_system.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/announcements.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/announcements.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/assign_roles.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/assign_roles.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/awaitmgrapprvl.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/awaitmgrapprvl.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/contact_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/contact_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/continue_but.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/continue_but.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/copytolms_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/copytolms_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/course_catalog.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/course_catalog.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/course_listing.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/course_listing.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/curr_assignroles.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/curr_assignroles.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/curr_course_listing.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/curr_course_listing.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/curr_course_listing2.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/curr_course_listing2.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/curriculum_listing.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/curriculum_listing.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/delete.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/delete.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/download_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/download_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/edit.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/edit.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/help_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/help_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/home_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/home_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/incomplete_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/incomplete_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/login.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/login.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/logoff_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/logoff_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/manage_presets.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/manage_presets.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/manager_author.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/manager_author.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/manager_home.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/manager_home.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/manager_privileges.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/manager_privileges.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/new_announcement.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/new_announcement.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/new_resource.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/new_resource.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/new_role.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/new_role.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/new_workgroup.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/new_workgroup.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/preset_delete.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/preset_delete.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/print_but.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/print_but.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/print_certficate.png
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/print_certficate.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/resources.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/resources.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/retest_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/retest_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/role_management.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/role_management.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/save2.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/save2.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/save_but.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/save_but.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/saveasnew.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/saveasnew.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/search.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/search.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/search2.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/search2.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/security_preset_management.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/security_preset_management.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/start_but.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/start_but.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/student_records.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/student_records.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/student_records2.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/student_records2.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/student_records3.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/student_records3.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/studentreport.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/studentreport.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/sub_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/sub_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/url.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/url.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/user_home.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/user_home.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/user_profile_management.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/user_profile_management.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/user_profiles_search_results.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/user_profiles_search_results.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/utilities1.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/utilities1.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/workgroups_managed.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/workgroups_managed.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/images/workgroups_managed2.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/help/images/workgroups_managed2.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/help/logging.jsp
===================================================================
--- trunk/styles/GOAA/help/logging.jsp (rev 0)
+++ trunk/styles/GOAA/help/logging.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="600" border="0" cellpadding="0">
+ <tr>
+ <td valign="top" scope="col"><h1>Logging in</h1>
+ <p>To log in to the ELearning Portal, type your User I.D. and Password and click on Login (or press “enter”). The User I.D. and Password fields are case sensitive. </p>
+ <p>The default password is “changeme”. Be sure to change your password by clicking on My Profile from your home page. If you are unable to login, click on Forgot Your Password? For assistance</p>
+ <p><img src="images/login.jpg" alt="Login " width="525" height="410" /></p>
+ <h1> </h1>
+ <p> </p></td>
+ </tr>
+</table>
+</body>
+</html>
Added: trunk/styles/GOAA/help/manager_home.jsp
===================================================================
--- trunk/styles/GOAA/help/manager_home.jsp (rev 0)
+++ trunk/styles/GOAA/help/manager_home.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="600" border="0" cellpadding="0">
+ <tr>
+ <td valign="top" scope="col"><h1><strong>Home Page</strong></h1>
+ <p><img src="images/manager_home.jpg" width="600" height="451" /></p>
+ <p>Your Home Page contains the following main sections:</p>
+ <table width="514" border="0" cellpadding="0">
+ <tr>
+ <td width="510" scope="col"><p><strong>Navigation Bar</strong> – The Navigation Bar is located at the top right of the page</p> </td>
+ </tr>
+ <tr>
+ <td><table width="450" border="0" align="center" cellpadding="0">
+ <tr>
+ <td width="28" scope="col"><img src="images/home_btn.jpg" alt="Home" width="24" height="24" /></td>
+ <td width="416" scope="col">Returns you to the Home Page</td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/contact_btn.jpg" alt="Contact" width="24" height="24" /></td>
+ <td scope="col">Provides System Administrator Contact information </td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/help_btn.jpg" alt="Help" width="24" height="24" /></td>
+ <td scope="col">Launches the Help menu</td>
+ </tr>
+ </table>
+ <br />
+ <table width="450" border="0" align="center" cellpadding="0">
+ <tr>
+ <td width="28" scope="col"><img src="images/logoff_btn.jpg" alt="Home" width="63" height="22" /></td>
+ <td width="416" scope="col">Click to Logoff the system.</td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td><p> </p>
+ <p><strong>Course Catalog</strong> – The Course Catalog lists Curriculums and Individual Courses assigned to you
+ <table width="450" border="0" align="center" cellpadding="0">
+ <tr>
+ <td width="28" scope="col"><img src="images/add_btn.jpg" alt="Home" width="23" height="23" /></td>
+ <td width="416" scope="col">Click to expand the Curriculum and view all courses.</td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/sub_btn.jpg" width="23" height="23" /></td>
+ <td scope="col">Click to “roll up” the Curriculum and hide the courses.</td>
+ </tr>
+ </table>
+ <br />
+ <table width="450" border="0" align="center" cellpadding="0">
+ <tr>
+ <td width="416" scope="col"><p>To Launch a course click on <img src="images/start_but.jpg" alt="Start" width="62" height="14" /> or click on the Course Name and click <strong>Launch Course</strong><strong>.</strong>
+ </p> </td>
+ </tr>
+ <tr>
+ <td scope="col"><strong><br />
+ Status</strong> – The status of a course changes as you progress through the course. </td>
+ </tr>
+ </table>
+ <br />
+ <table width="450" border="0" align="center" cellpadding="0" cellspacing="4">
+ <tr>
+ <td width="28" scope="col"><img src="images/start_but.jpg" alt="Start" width="62" height="14" /></td>
+ <td width="416" scope="col">Indicates a new course that has not been previously viewed.</td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/continue_but.jpg" alt="Continue" width="63" height="14" /></td>
+ <td scope="col">Indicates a course “in-process”. Clicking on Continue will return you to the page where you exited the course. </td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/incomplete_btn.jpg" alt="Incomplete" width="63" height="14" /></td>
+ <td scope="col">Indicates that you have taken the entire course, but have not completed a required test or activity. </td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/retest_btn.jpg" alt="Retest" width="62" height="14" /></td>
+ <td scope="col">Indicates that you have not achieved a minimum passing score. You must re-take the test and achieve a passing score.</td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/awaitmgrapprvl.gif" alt="Manager Check" width="63" height="14" /></td>
+ <td scope="col">Indicates you have successfully completed the course however there are activities that require an “electronic sign-off” by your manager before it is Complete. </td>
+ </tr>
+ <tr>
+ <td scope="col"><strong>Complete </strong></td>
+ <td scope="col">Course successfully completed.</td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/print_certficate.png" alt="Certificate" width="21" height="20" /></td>
+ <td scope="col"><p>Click on this icon to print a Certificate of Completion. </p></td>
+ </tr>
+ </table>
+ </p>
+ <p><strong>Announcements</strong> – Click on the Announcement Name to view. Click <u>View</u> to view an associated file attachment. Click the <strong>X</strong> to close the announcement window.</p>
+ <p><strong>Read and Acknowledge – </strong>Electronic documents posted here are “view only”. Click the Start button to launch. (Electronic sign-off available on future software version)</p>
+ <p><strong>Resources </strong>– Resources contains a library of reference documents. Formats include Word Documents, Excel, PowerPoint and PDF files. Click on the File Name to launch the resource document in a new window.</p> <p> </p></td>
+ </tr>
+ <tr>
+ <td> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ </tr>
+ </table>
+ <p> </p>
+ <h1> </h1>
+ <p> </p></td>
+ </tr>
+</table>
+</body>
+</html>
Added: trunk/styles/GOAA/help/manager_menu.jsp
===================================================================
--- trunk/styles/GOAA/help/manager_menu.jsp (rev 0)
+++ trunk/styles/GOAA/help/manager_menu.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body class="MenuBg">
+<table width="125" border="0" cellpadding="0">
+ <tr>
+ <td scope="col"><p><a href="manager_overview.jsp" target="mainFrame" class="MenuLink">Overview</a>
+ <a href="logging.jsp" target="mainFrame" class="MenuLink">Logging In</a>
+ <a href="manager_home.jsp" target="mainFrame" class="MenuLink">Home Page</a>
+ <a href="myprofile.jsp" target="mainFrame" class="MenuLink">My Profile</a>
+ <a href="myreports.jsp" target="mainFrame" class="MenuLink">My Reports</a>
+ <a href="admin_manager.jsp" target="mainFrame" class="MenuLink">Manager Authorization</a>
+ <a href="admin_student.jsp" target="mainFrame" class="MenuLink">Student Records</a>
+ <a href="admin_summary.jsp" target="mainFrame" class="MenuLink">Summary Report</a>
+ <a href="admin_userprofile.jsp" target="mainFrame" class="MenuLink">User Profile Management</a>
+
+ </td>
+ </tr>
+</table>
+</body>
+</html>
Added: trunk/styles/GOAA/help/manager_overview.jsp
===================================================================
--- trunk/styles/GOAA/help/manager_overview.jsp (rev 0)
+++ trunk/styles/GOAA/help/manager_overview.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,18 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="600" border="0" cellpadding="0">
+ <tr>
+ <td scope="col"><h1><strong>Overview</strong></h1>
+ <p>The ELearning Portal is your training Home Page. The Course Catalog is displayed on your Home Page and is customized for your job role. Upon successful course completion a Certificate of Completion can be printed. Additionally, your progress is tracked and reported in My Reports. A Resource Library provides electronic resource documents to assist in your job role. </p>
+ <p><img src="images/manager_home.jpg" width="600" height="451" /></p></td>
+ </tr>
+</table>
+</body>
+</html>
Added: trunk/styles/GOAA/help/menu.jsp
===================================================================
--- trunk/styles/GOAA/help/menu.jsp (rev 0)
+++ trunk/styles/GOAA/help/menu.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,29 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body class="MenuBg">
+<table width="125" border="0" cellpadding="0">
+ <tr>
+ <td scope="col"><p><a href="admin_overview.jsp" target="mainFrame" class="MenuLink">Overview</a>
+ <a href="admin_logging.jsp" target="mainFrame" class="MenuLink">Logging In</a>
+ <a href="admin_home.jsp" target="mainFrame" class="MenuLink">Home Page</a>
+ <a href="admin_course.jsp" target="mainFrame" class="MenuLink">Course Management</a>
+ <a href="admin_workgroup.jsp" target="mainFrame" class="MenuLink">Workgroup Management</a>
+ <a href="admin_role.jsp" target="mainFrame" class="MenuLink">Role Management</a>
+ <a href="admin_manager.jsp" target="mainFrame" class="MenuLink">Manager Authorization</a>
+ <a href="admin_student.jsp" target="mainFrame" class="MenuLink">Student Records</a>
+ <a href="admin_summary.jsp" target="mainFrame" class="MenuLink">Summary Report</a>
+ <a href="admin_userprofile.jsp" target="mainFrame" class="MenuLink">User Profile Management</a>
+ <a href="admin_system.jsp" target="mainFrame" class="MenuLink">System Management</a>
+ <a href="admin_utilities.jsp" target="mainFrame" class="MenuLink">Utilities</a>
+ </td>
+ </tr>
+</table>
+</body>
+</html>
Added: trunk/styles/GOAA/help/myprofile.jsp
===================================================================
--- trunk/styles/GOAA/help/myprofile.jsp (rev 0)
+++ trunk/styles/GOAA/help/myprofile.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="600" border="0" cellpadding="0">
+ <tr>
+ <td valign="top" scope="col"><h1><strong>My Profile </strong></h1>
+ <p>Click on My Profile from the main menu to access your personal profile. Here you will be able to change your password by typing in a new password in the Password field and typing your chosen password again in the Confirm Password field, then click <img src="images/save_but.jpg" alt="Save" width="63" height="14" /></p>
+ <p><img src="images/admin_profile.jpg" width="601" height="485" /></p>
+ </td>
+ </tr>
+</table>
+</body>
+</html>
Added: trunk/styles/GOAA/help/myreports.jsp
===================================================================
--- trunk/styles/GOAA/help/myreports.jsp (rev 0)
+++ trunk/styles/GOAA/help/myreports.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="600" border="0" cellpadding="0">
+ <tr>
+ <td valign="top" scope="col"><h1><strong>My reports </strong></h1>
+ <p>Click on <strong>My Reports</strong> from the main menu to access your student record. Your Student Record lists all of the courses that you have been assigned, status, and score. Click on the <strong>Course Name</strong> to view a description for each course.</p>
+ <p><img src="images/studentreport.jpg" width="590" height="147" /></p>
+ </td>
+ </tr>
+</table>
+</body>
+</html>
Added: trunk/styles/GOAA/help/user_home.jsp
===================================================================
--- trunk/styles/GOAA/help/user_home.jsp (rev 0)
+++ trunk/styles/GOAA/help/user_home.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="600" border="0" cellpadding="0">
+ <tr>
+ <td valign="top" scope="col"><h1><strong>Home Page</strong></h1>
+ <p><img src="images/user_home.jpg" width="589" height="295" /></p>
+ </td>
+ </tr>
+ </table>
+<p>Your Home Page contains the following main sections:</p>
+<table width="514" border="0" cellpadding="0">
+ <tr>
+ <td width="510" scope="col"><p><strong>Navigation Bar</strong> – The Navigation Bar is located at the top right of the page</p></td>
+ </tr>
+ <tr>
+ <td><table width="450" border="0" align="center" cellpadding="0">
+ <tr>
+ <td width="28" scope="col"><img src="images/home_btn.jpg" alt="Home" width="24" height="24" /></td>
+ <td width="416" scope="col">Returns you to the Home Page</td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/contact_btn.jpg" alt="Contact" width="24" height="24" /></td>
+ <td scope="col">Provides System Administrator Contact information </td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/help_btn.jpg" alt="Help" width="24" height="24" /></td>
+ <td scope="col">Launches the Help menu</td>
+ </tr>
+ </table>
+ <br />
+ <table width="450" border="0" align="center" cellpadding="0">
+ <tr>
+ <td width="28" scope="col"><img src="images/logoff_btn.jpg" alt="Home" width="63" height="22" /></td>
+ <td width="416" scope="col">Click to Logoff the system.</td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td><p> </p>
+ <p><strong>Course Catalog</strong> – The Course Catalog lists Curriculums and Individual Courses assigned to you </p>
+ <table width="450" border="0" align="center" cellpadding="0">
+ <tr>
+ <td width="28" scope="col"><img src="images/add_btn.jpg" alt="Home" width="23" height="23" /></td>
+ <td width="416" scope="col">Click to expand the Curriculum and view all courses.</td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/sub_btn.jpg" width="23" height="23" /></td>
+ <td scope="col">Click to “roll up” the Curriculum and hide the courses.</td>
+ </tr>
+ </table>
+ <br />
+ <table width="450" border="0" align="center" cellpadding="0">
+ <tr>
+ <td width="416" scope="col"><p>To Launch a course click on <img src="images/start_but.jpg" alt="Start" width="62" height="14" /> or click on the Course Name and click <strong>Launch Course</strong><strong>.</strong> </p></td>
+ </tr>
+ <tr>
+ <td scope="col"><strong><br />
+ Status</strong> – The status of a course changes as you progress through the course. </td>
+ </tr>
+ </table>
+ <br />
+ <table width="450" border="0" align="center" cellpadding="0" cellspacing="4">
+ <tr>
+ <td width="28" scope="col"><img src="images/start_but.jpg" alt="Start" width="62" height="14" /></td>
+ <td width="416" scope="col">Indicates a new course that has not been previously viewed.</td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/continue_but.jpg" alt="Continue" width="63" height="14" /></td>
+ <td scope="col">Indicates a course “in-process”. Clicking on Continue will return you to the page where you exited the course. </td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/incomplete_btn.jpg" alt="Incomplete" width="63" height="14" /></td>
+ <td scope="col">Indicates that you have taken the entire course, but have not completed a required test or activity. </td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/retest_btn.jpg" alt="Retest" width="62" height="14" /></td>
+ <td scope="col">Indicates that you have not achieved a minimum passing score. You must re-take the test and achieve a passing score.</td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/awaitmgrapprvl.gif" alt="Manager Check" width="63" height="14" /></td>
+ <td scope="col">Indicates you have successfully completed the course however there are activities that require an “electronic sign-off” by your manager before it is Complete. </td>
+ </tr>
+ <tr>
+ <td scope="col"><strong>Complete </strong></td>
+ <td scope="col">Course successfully completed.</td>
+ </tr>
+ <tr>
+ <td scope="col"><img src="images/print_certficate.png" alt="Certificate" width="21" height="20" /></td>
+ <td scope="col"><p>Click on this icon to print a Certificate of Completion. </p></td>
+ </tr>
+ </table>
+ </p>
+ <p><strong>Announcements</strong> – Click on the Announcement Name to view. Click <u>View</u> to view an associated file attachment. Click the <strong>X</strong> to close the announcement window.</p>
+ <p><strong>Read and Acknowledge – </strong>Electronic documents posted here are “view only”. Click the Start button to launch. (Electronic sign-off available on future software version)</p>
+ <p><strong>Resources </strong>– Resources contains a library of reference documents. Formats include Word Documents, Excel, PowerPoint and PDF files. Click on the File Name to launch the resource document in a new window.</p>
+ <p> </p></td>
+ </tr>
+ <tr>
+ <td> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ </tr>
+</table>
+</body>
+</html>
Added: trunk/styles/GOAA/help/user_menu.jsp
===================================================================
--- trunk/styles/GOAA/help/user_menu.jsp (rev 0)
+++ trunk/styles/GOAA/help/user_menu.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body class="MenuBg">
+<table width="125" border="0" cellpadding="0">
+ <tr>
+ <td scope="col"><p><a href="user_overview.jsp" target="mainFrame" class="MenuLink">Overview</a>
+ <a href="logging.jsp" target="mainFrame" class="MenuLink">Logging In</a>
+ <a href="user_home.jsp" target="mainFrame" class="MenuLink">Home Page</a>
+ <a href="myprofile.jsp" target="mainFrame" class="MenuLink">My Profile</a>
+ <a href="myreports.jsp" target="mainFrame" class="MenuLink">My Reports</a>
+ </td>
+ </tr>
+</table>
+</body>
+</html>
Added: trunk/styles/GOAA/help/user_overview.jsp
===================================================================
--- trunk/styles/GOAA/help/user_overview.jsp (rev 0)
+++ trunk/styles/GOAA/help/user_overview.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,18 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Untitled Document</title>
+<link href="help_style.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<table width="600" border="0" cellpadding="0">
+ <tr>
+ <td scope="col"><h1><strong>Overview</strong></h1>
+ <p>The ELearning Portal is your training Home Page. The Course Catalog is displayed on your Home Page and is customized for your job role. Upon successful course completion a Certificate of Completion can be printed. Additionally, your progress is tracked and reported in My Reports. A Resource Library provides electronic resource documents to assist in your job role.</p>
+ <p><img src="images/user_home.jpg" width="589" height="295" /></p></td>
+ </tr>
+</table>
+</body>
+</html>
Added: trunk/styles/GOAA/images/Add.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/Add.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/Printer.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/Printer.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/add_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/add_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/add_doc_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/add_doc_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/add_folder_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/add_folder_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/add_new_profile_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/add_new_profile_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/arrow_left.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/arrow_left.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/arrow_left_blue.png
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/arrow_left_blue.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/arrow_right_blue.png
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/arrow_right_blue.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/awaitmgrapprvl.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/awaitmgrapprvl.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/back_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/back_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/banner.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/banner.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/bggradient.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/bggradient.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/bggradient_olive.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/bggradient_olive.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/browse_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/browse_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/calendar_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/calendar_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/cancel_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/cancel_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/cancel_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/cancel_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/cancel_btn.png
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/cancel_btn.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/cancelicon_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/cancelicon_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/certificate_saved.png
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/certificate_saved.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/circle_minus.png
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/circle_minus.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/circle_plus.png
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/circle_plus.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/companyLogo1B_Gold.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/companyLogo1B_Gold.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/companyLogo1B_red.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/companyLogo1B_red.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/companyLogo1Blue hills.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/companyLogo1Blue hills.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/companyLogo1resolutions_logo.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/companyLogo1resolutions_logo.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/companyLogo1ssi.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/companyLogo1ssi.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/contact2_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/contact2_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/contact_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/contact_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/continue_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/continue_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/continue_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/continue_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/continue_but.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/continue_but.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/copy_course_files.swf
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/copy_course_files.swf
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/copytolms_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/copytolms_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/copytolms_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/copytolms_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/courseicon.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/courseicon.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/createaccount.png
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/createaccount.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/delete_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/delete_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/download_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/download_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/elearning_portal_login_bg.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/elearning_portal_login_bg.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/elearning_title.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/elearning_title.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/elearningportal.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/elearningportal.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/forward_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/forward_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/generate_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/generate_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/go_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/go_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/go_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/go_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/help_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/help_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/help_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/help_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/home2_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/home2_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/home_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/home_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/incomplete_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/incomplete_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/loading.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/loading.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/login_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/login_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/login_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/login_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/login_hdr.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/login_hdr.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/loging_tablehdr_bg.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/loging_tablehdr_bg.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/loginnow.png
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/loginnow.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/logoff-but.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/logoff-but.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/logoff_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/logoff_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/manager_check.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/manager_check.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/minus_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/minus_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/more_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/more_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/my_profile_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/my_profile_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/no_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/no_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/ok_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/ok_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/performaction_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/performaction_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/performaction_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/performaction_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/plus_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/plus_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/preview_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/preview_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/preview_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/preview_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/previous_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/previous_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/print_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/print_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/print_certficate.png
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/print_certficate.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/profile_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/profile_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/rename_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/rename_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/rename_dir_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/rename_dir_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/reporthdr_bg.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/reporthdr_bg.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/retake_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/retake_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/retest_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/retest_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/run_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/run_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/save_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/save_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/save_btn.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/save_btn.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/save_change_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/save_change_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/saveicon_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/saveicon_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/search_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/search_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/send_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/send_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/sidemenu_bg.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/sidemenu_bg.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/spacer_1p.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/spacer_1p.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/spacer_topbar.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/spacer_topbar.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/ssi_logo.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/ssi_logo.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/start_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/start_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/start_but.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/start_but.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/start_but_full.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/start_but_full.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/tablehdr_bg.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/tablehdr_bg.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/x.png
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/x.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/images/yes_btn.gif
===================================================================
(Binary files differ)
Property changes on: trunk/styles/GOAA/images/yes_btn.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/styles/GOAA/jquery-1.11.1.min.js
===================================================================
--- trunk/styles/GOAA/jquery-1.11.1.min.js (rev 0)
+++ trunk/styles/GOAA/jquery-1.11.1.min.js 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,4 @@
+/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
+!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;
+if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?"<table>"!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")
+},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.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(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.ActiveXObject&&m(a).on("unload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});
Added: trunk/styles/GOAA/jquery.keypad.alt.css
===================================================================
--- trunk/styles/GOAA/jquery.keypad.alt.css (rev 0)
+++ trunk/styles/GOAA/jquery.keypad.alt.css 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,91 @@
+/* Alternate style sheet for jQuery Keypad v2.0.0. */
+button.keypad-trigger {
+ width: 25px;
+ padding: 0px;
+}
+img.keypad-trigger {
+ margin: 2px;
+ vertical-align: middle;
+}
+.keypad-popup, .keypad-inline, .keypad-key, .keypad-special {
+ font-family: Arial,Helvetica,sans-serif;
+ font-size: 14px;
+}
+.keypad-popup {
+ display: none;
+ z-index: 10;
+ margin: 0;
+ padding: 0;
+ background-color: #fff;
+ color: #000;
+ border: 1px solid #888;
+ -moz-border-radius: 0.25em;
+ -webkit-border-radius: 0.25em;
+ border-radius: 0.25em;
+}
+.keypad-keyentry {
+ display: none;
+}
+.keypad-inline {
+ border: 1px solid #666666;
+ margin-top:10px;
+ margin-left: 80px;
+ width: 368px;
+}
+.keypad-disabled {
+ position: absolute;
+ z-index: 100;
+ background-color: white;
+ opacity: 0.25;
+ filter: alpha(opacity=25);
+}
+.keypad-rtl {
+ direction: rtl;
+}
+.keypad-prompt {
+ clear: both;
+ background-image: url("images/tablehdr_bg.jpg");
+ background-position: center bottom;
+ background-repeat: repeat-y;
+ border-bottom: 1px solid #666666;
+ color: #FFFFFF;
+ font-family: Arial,Helvetica,sans-serif;
+ font-size: 11px;
+ font-weight: bold;
+ text-align: left;
+ text-transform: uppercase;
+}
+.keypad-prompt.ui-widget-header {
+ margin: 0.125em;
+}
+.keypad-row {
+ width: 100%;
+ padding-left: 40px;
+}
+.keypad-space {
+ display: inline-block;
+ margin: 0.125em;
+ width: 2em;
+}
+.keypad-half-space {
+ display: inline-block;
+ margin: 0.125em 0.0625em;
+ width: 1em;
+}
+.keypad-key, .keypad-special {
+ margin: 0.4em;
+ padding: 0em;
+ width: 6em;
+ height: 3em;
+ text-align: center;
+ cursor: pointer;
+}
+.keypad-spacebar {
+ width: 13.25em;
+}
+.keypad-tab {
+ width: 2em;
+}
+.keypad-clear, .keypad-back, .keypad-close, .keypad-shift {
+ font-weight: normal;
+}
Added: trunk/styles/GOAA/jquery.keypad.js
===================================================================
--- trunk/styles/GOAA/jquery.keypad.js (rev 0)
+++ trunk/styles/GOAA/jquery.keypad.js 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,917 @@
+/* http://keith-wood.name/keypad.html
+ Keypad field entry extension for jQuery v2.0.0.
+ Written by Keith Wood (kbwood{at}iinet.com.au) August 2008.
+ Available under the MIT (https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt) license.
+ Please attribute the author if you use it. */
+
+(function($) { // hide the namespace
+
+ var pluginName = 'keypad';
+
+ var layoutStandard = [' BSCECA', '_1_2_3_+ at X', '_4_5_6_- at U', '_7_8_9_*@E', '_0_._=_/'];
+
+ /** Create the keypad plugin.
+ <p>Sets an input field to popup a keypad for keystroke entry,
+ or creates an inline keypad in a <code>div</code> or <code>span</code>.</p>
+ <p>Expects HTML like:</p>
+ <pre><input type="text"> or
+<div></div></pre>
+ <p>Provide inline configuration like:</p>
+ <pre><input type="text" data-keypad="name: 'value'"/></pre>
+ @module Keypad
+ @augments JQPlugin
+ @example $(selector).keypad() */
+ $.JQPlugin.createPlugin({
+
+ /** The name of the plugin. */
+ name: pluginName,
+
+ /** Keypad before show callback.
+ Triggered before the keypad is shown.
+ @callback beforeShowCallback
+ @param div {jQuery} The div to be shown.
+ @param inst {object} The current instance settings. */
+
+ /** Keypad on keypress callback.
+ Triggered when a key on the keypad is pressed.
+ @callback keypressCallback
+ @param key {string} The key just pressed.
+ @param value {string} The full value entered so far.
+ @param inst {object} The current instance settings. */
+
+ /** Keypad on close callback.
+ Triggered when the keypad is closed.
+ @callback closeCallback
+ @param value {string} The full value entered so far.
+ @param inst {object} The current instance settings. */
+
+ /** Keypad is alphabetic callback.
+ Triggered when an alphabetic key needs to be identified.
+ @callback isAlphabeticCallback
+ @param ch {string} The key to check.
+ @return {boolean} True if this key is alphabetic, false if not.
+ @example isAlphabetic: function(ch) {
+ return (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z');
+ } */
+
+ /** Keypad is numeric callback.
+ Triggered when an numeric key needs to be identified.
+ @callback isNumericCallback
+ @param ch {string} The key to check.
+ @return {boolean} True if this key is numeric, false if not.
+ @example isNumeric: function(ch) {
+ return (ch >= '0' && ch <= '9');
+ } */
+
+ /** Keypad to upper callback.
+ Triggered to convert keys to upper case.
+ @callback toUpperCallback
+ @param ch {string} The key to convert.
+ @return {string} The upper case version of this key.
+ @example toUpper: function(ch) {
+ return ch.toUpperCase();
+ } */
+
+ /** Default settings for the plugin.
+ @property [showOn='focus'] {string} 'focus' for popup on focus, 'button' for trigger button, or 'both' for either.
+ @property [buttonImage=''] {string} URL for trigger button image.
+ @property [buttonImageOnly=false] {boolean} True if the image appears alone, false if it appears on a button.
+ @property [showAnim='show'] {string} Name of jQuery animation for popup.
+ @property [showOptions=null] {object} Options for enhanced animations.
+ @property [duration='normal'] {string|number} Duration of display/closure.
+ @property [appendText=''] {string} Display text following the text field, e.g. showing the format.
+ @property [useThemeRoller=false] {boolean} True to add ThemeRoller classes.
+ @property [keypadClass=''] {string} Additional CSS class for the keypad for an instance.
+ @property [prompt=''] {string} Display text at the top of the keypad.
+ @property [layout=this.numericLayout] {string} Layout of keys.
+ @property [separator=''] {string} Separator character between keys.
+ @property [target=null] {string|jQuery|Element} Input target for an inline keypad.
+ @property [keypadOnly=true] {boolean} True for entry only via the keypad, false for real keyboard too.
+ @property [randomiseAlphabetic=false] {boolean} True to randomise the alphabetic key positions, false to keep in order.
+ @property [randomiseNumeric=false] {boolean} True to randomise the numeric key positions, false to keep in order.
+ @property [randomiseOther=false] {boolean} True to randomise the other key positions, false to keep in order.
+ @property [randomiseAll=false] {boolean} True to randomise all key positions, false to keep in order.
+ @property [beforeShow=null] {beforeShowCallback} Callback before showing the keypad.
+ @property [onKeypress=null] {keypressCallback} Callback when a key is selected.
+ @property [onClose=null] {closeCallback} Callback when the panel is closed. */
+ defaultOptions: {
+ showOn: 'focus',
+ buttonImage: '',
+ buttonImageOnly: false,
+ showAnim: 'show',
+ showOptions: null,
+ duration: 'normal',
+ appendText: '',
+ useThemeRoller: false,
+ keypadClass: '',
+ prompt: '',
+ layout: [], // Set at the end
+ separator: '',
+ target: null,
+ keypadOnly: true,
+ randomiseAlphabetic: false,
+ randomiseNumeric: false,
+ randomiseOther: false,
+ randomiseAll: false,
+ beforeShow: null,
+ onKeypress: null,
+ onClose: null
+ },
+
+ /** Localisations for the plugin.
+ Entries are objects indexed by the language code ('' being the default US/English).
+ Each object has the following attributes.
+ @property [buttonText='...'] {string} Display text for trigger button.
+ @property [buttonStatus='Open the keypad'] {string} Status text for trigger button.
+ @property [closeText='Close'] {string} Display text for close link.
+ @property [closeStatus='Close the keypad'] {string} Status text for close link.
+ @property [clearText='Clear'] {string} Display text for clear link.
+ @property [clearStatus='Erase all the text'] {string} Status text for clear link.
+ @property [backText='Back'] {string} Display text for back link.
+ @property [backStatus='Erase the previous character'] {string} Status text for back link.
+ @property [spacebarText=' '] {string} Display text for space bar.
+ @property [spacebarStatus='Space'] {string} Status text for space bar.
+ @property [enterText='Enter'] {string} Display text for carriage return.
+ @property [enterStatus='Carriage return'] {string} Status text for carriage return.
+ @property [tabText='→'] {string} Display text for tab.
+ @property [tabStatus='Horizontal tab'] {string} Status text for tab.
+ @property [shiftText='Shift'] {string} Display text for shift link.
+ @property [shiftStatus='Toggle upper/lower case characters'] {string} Status text for shift link.
+ @property [alphabeticLayout=this.qwertyAlphabetic] {string} Default layout for alphabetic characters.
+ @property [fullLayout=this.qwertyLayout] {string} Default layout for full keyboard.
+ @property [isAlphabetic=this.isAlphabetic] {isAlphabeticCallback} Function to determine if character is alphabetic.
+ @property [isNumeric=this.isNumeric] {isNumericCallback} Function to determine if character is numeric.
+ @property [toUpper=this.toUpper] {toUpperCallback} Function to convert characters to upper case.
+ @property [isRTL=false] {boolean} True if right-to-left language, false if left-to-right. */
+ regionalOptions: { // Available regional settings, indexed by language/country code
+ '': { // Default regional settings - English/US
+ buttonText: '...',
+ buttonStatus: 'Open the keypad',
+ closeText: 'Close',
+ closeStatus: 'Close the keypad',
+ clearText: 'Clear',
+ clearStatus: 'Erase all the text',
+ backText: 'Back',
+ backStatus: 'Erase the previous character',
+ spacebarText: ' ',
+ spacebarStatus: 'Space',
+ enterText: 'Enter',
+ enterStatus: 'Carriage return',
+ tabText: '→',
+ tabStatus: 'Horizontal tab',
+ shiftText: 'Shift',
+ shiftStatus: 'Toggle upper/lower case characters',
+ alphabeticLayout: [], // Set at the end
+ fullLayout: [],
+ isAlphabetic: null,
+ isNumeric: null,
+ toUpper: null,
+ isRTL: false
+ }
+ },
+
+ /** Names of getter methods - those that can't be chained. */
+ _getters: ['isDisabled'],
+
+ _curInst: null, // The current instance in use
+ _disabledFields: [], // List of keypad fields that have been disabled
+ _keypadShowing: false, // True if the popup panel is showing , false if not
+ _keyCode: 0,
+ _specialKeys: [],
+
+ _mainDivClass: pluginName + '-popup', // The main keypad division class
+ _inlineClass: pluginName + '-inline', // The inline marker class
+ _appendClass: pluginName + '-append', // The append marker class
+ _triggerClass: pluginName + '-trigger', // The trigger marker class
+ _disableClass: pluginName + '-disabled', // The disabled covering marker class
+ _inlineEntryClass: pluginName + '-keyentry', // The inline entry marker class
+ _rtlClass: pluginName + '-rtl', // The right-to-left marker class
+ _rowClass: pluginName + '-row', // The keypad row marker class
+ _promptClass: pluginName + '-prompt', // The prompt marker class
+ _specialClass: pluginName + '-special', // The special key marker class
+ _namePrefixClass: pluginName + '-', // The key name marker class prefix
+ _keyClass: pluginName + '-key', // The key marker class
+ _keyDownClass: pluginName + '-key-down', // The key down marker class
+
+ // Standard US keyboard alphabetic layout
+ qwertyAlphabetic: ['qwertyuiop', 'asdfghjkl', 'zxcvbnm'],
+ // Standard US keyboard layout
+ qwertyLayout: ['!@#$%^&*()_=' + this.HALF_SPACE + this.SPACE + this.CLOSE,
+ this.HALF_SPACE + '`~[]{}<>\\|/' + this.SPACE + '789',
+ 'qwertyuiop\'"' + this.HALF_SPACE + '456',
+ this.HALF_SPACE + 'asdfghjkl;:' + this.SPACE + '123',
+ this.SPACE + 'zxcvbnm,.?' + this.SPACE + this.HALF_SPACE + '-0+',
+ '' + this.TAB + this.ENTER + this.SPACE_BAR + this.SHIFT +
+ this.HALF_SPACE + this.BACK + this.CLEAR],
+
+ /** Add the definition of a special key.
+ @param id {string} The identifier for this key - access via <code>$.keypad.xxx</code>.<id>.
+ @param name {string} The prefix for localisation strings and the suffix for a class name.
+ @param action {function} The action performed for this key - receives <code>inst</code> as a parameter.
+ @param noHighlight {boolean} True to suppress highlight when using ThemeRoller.
+ @return {Keypad} The keypad object for chaining further calls.
+ @example $.keypad.addKeyDef('CLEAR', 'clear', function(inst) { plugin._clearValue(inst); }); */
+ addKeyDef: function(id, name, action, noHighlight) {
+ if (this._keyCode == 32) {
+ throw 'Only 32 special keys allowed';
+ }
+ this[id] = String.fromCharCode(this._keyCode++);
+ this._specialKeys.push({code: this[id], id: id, name: name,
+ action: action, noHighlight: noHighlight});
+ return this;
+ },
+
+ /** Additional setup for the keypad.
+ Create popup div. */
+ _init: function() {
+ this.mainDiv = $('<div class="' + this._mainDivClass + '"></div>');
+ this._super();
+ },
+
+ _instSettings: function(elem, options) {
+ var inline = !elem[0].nodeName.toLowerCase().match(/input|textarea/);
+ return {_inline: inline, ucase: false,
+ _mainDiv: (inline ? $('<div class="' + this._inlineClass + '"></div>') : plugin.mainDiv)};
+ },
+
+ _postAttach: function(elem, inst) {
+ if (inst._inline) {
+ elem.append(inst._mainDiv).
+ on('click.' + inst.name, function() { inst._input.focus(); });
+ this._updateKeypad(inst);
+ }
+ else if (elem.is(':disabled')) {
+ this.disable(elem);
+ }
+ },
+
+ /** Determine the input field for the keypad.
+ @private
+ @param elem {jQuery} The target control.
+ @param inst {object} The instance settings. */
+ _setInput: function(elem, inst) {
+ inst._input = $(!inst._inline ? elem : inst.options.target ||
+ '<input type="text" class="' + this._inlineEntryClass + '" disabled/>');
+ if (inst._inline) {
+ elem.find('input').remove();
+ if (!inst.options.target) {
+ elem.append(inst._input);
+ }
+ }
+ },
+
+ _optionsChanged: function(elem, inst, options) {
+ $.extend(inst.options, options);
+ elem.off('.' + inst.name).
+ siblings('.' + this._appendClass).remove().end().
+ siblings('.' + this._triggerClass).remove();
+ var appendText = inst.options.appendText;
+ if (appendText) {
+ elem[inst.options.isRTL ? 'before' : 'after'](
+ '<span class="' + this._appendClass + '">' + appendText + '</span>');
+ }
+ if (!inst._inline) {
+ if (inst.options.showOn == 'focus' || inst.options.showOn == 'both') {
+ // pop-up keypad when in the marked field
+ elem.on('focus.' + inst.name, this.show).
+ on('keydown.' + inst.name, this._doKeyDown);
+ }
+ if (inst.options.showOn == 'button' || inst.options.showOn == 'both') {
+ // pop-up keypad when button clicked
+ var buttonStatus = inst.options.buttonStatus;
+ var buttonImage = inst.options.buttonImage;
+ var trigger = $(inst.options.buttonImageOnly ?
+ $('<img src="' + buttonImage + '" alt="' +
+ buttonStatus + '" title="' + buttonStatus + '"/>') :
+ $('<button type="button" title="' + buttonStatus + '"></button>').
+ html(buttonImage == '' ? inst.options.buttonText :
+ $('<img src="' + buttonImage + '" alt="' +
+ buttonStatus + '" title="' + buttonStatus + '"/>')));
+ elem[inst.options.isRTL ? 'before' : 'after'](trigger);
+ trigger.addClass(this._triggerClass).click(function() {
+ if (plugin._keypadShowing && plugin._lastField == elem[0]) {
+ plugin.hide();
+ }
+ else {
+ plugin.show(elem[0]);
+ }
+ return false;
+ });
+ }
+ }
+ inst.saveReadonly = elem.attr('readonly');
+ elem[inst.options.keypadOnly ? 'attr' : 'removeAttr']('readonly', true).
+ on('setData.' + inst.name, function(event, key, value) {
+ inst.options[key] = value;
+ }).
+ on('getData.' + inst.name, function(event, key) {
+ return inst.options[key];
+ });
+ this._setInput(elem, inst);
+ this._updateKeypad(inst);
+ },
+
+ _preDestroy: function(elem, inst) {
+ if (this._curInst == inst) {
+ this.hide();
+ }
+ elem.siblings('.' + this._appendClass).remove().end().
+ siblings('.' + this._triggerClass).remove().end().
+ prev('.' + this._inlineEntryClass).remove();
+ elem.empty().off('.' + inst.name)
+ [inst.saveReadonly ? 'attr' : 'removeAttr']('readonly', true);
+ inst._input.removeData(inst.name);
+ },
+
+ /** Enable the keypad for a jQuery selection.
+ @param elem {Element} The target text field.
+ @example $(selector).keypad('enable'); */
+ enable: function(elem) {
+ elem = $(elem);
+ if (!elem.hasClass(this._getMarker())) {
+ return;
+ }
+ var nodeName = elem[0].nodeName.toLowerCase();
+ if (nodeName.match(/input|textarea/)) {
+ elem.prop('disabled', false).
+ siblings('button.' + this._triggerClass).prop('disabled', false).end().
+ siblings('img.' + this._triggerClass).css({opacity: '1.0', cursor: ''});
+ }
+ else if (nodeName.match(/div|span/)) {
+ elem.children('.' + this._disableClass).remove();
+ this._getInst(elem)._mainDiv.find('button').prop('disabled', false);
+ }
+ this._disabledFields = $.map(this._disabledFields,
+ function(value) { return (value == elem[0] ? null : value); }); // delete entry
+ },
+
+ /** Disable the keypad for a jQuery selection.
+ @param elem {Element} The target text field.
+ @example $(selector).keypad('disable'); */
+ disable: function(elem) {
+ elem = $(elem);
+ if (!elem.hasClass(this._getMarker())) {
+ return;
+ }
+ var nodeName = elem[0].nodeName.toLowerCase();
+ if (nodeName.match(/input|textarea/)) {
+ elem.prop('disabled', true).
+ siblings('button.' + this._triggerClass).prop('disabled', true).end().
+ siblings('img.' + this._triggerClass).css({opacity: '0.5', cursor: 'default'});
+ }
+ else if (nodeName.match(/div|span/)) {
+ var inline = elem.children('.' + this._inlineClass);
+ var offset = inline.offset();
+ var relOffset = {left: 0, top: 0};
+ inline.parents().each(function() {
+ if ($(this).css('position') == 'relative') {
+ relOffset = $(this).offset();
+ return false;
+ }
+ });
+ elem.prepend('<div class="' + this._disableClass + '" style="width: ' +
+ inline.outerWidth() + 'px; height: ' + inline.outerHeight() +
+ 'px; left: ' + (offset.left - relOffset.left) +
+ 'px; top: ' + (offset.top - relOffset.top) + 'px;"></div>');
+ this._getInst(elem)._mainDiv.find('button').prop('disabled', true);
+ }
+ this._disabledFields = $.map(this._disabledFields,
+ function(value) { return (value == elem[0] ? null : value); }); // delete entry
+ this._disabledFields[this._disabledFields.length] = elem[0];
+ },
+
+ /** Is the text field disabled as a keypad?
+ @param elem {Element} The target text field.
+ @return {boolean} True if disabled, false if enabled.
+ @example var disabled = $(selector).keypad('isDisabled'); */
+ isDisabled: function(elem) {
+ return (elem && $.inArray(elem, this._disabledFields) > -1);
+ },
+
+ /** Pop-up the keypad for a given text field.
+ @param elem {Element|Event} The text field attached to the keypad or event if triggered by focus.
+ @example $(selector).keypad('show'); */
+ show: function(elem) {
+ elem = elem.target || elem;
+ if (plugin.isDisabled(elem) || plugin._lastField == elem) { // already here
+ return;
+ }
+ var inst = plugin._getInst(elem);
+ plugin.hide(null, '');
+ plugin._lastField = elem;
+ plugin._pos = plugin._findPos(elem);
+ plugin._pos[1] += elem.offsetHeight; // add the height
+ var isFixed = false;
+ $(elem).parents().each(function() {
+ isFixed |= $(this).css('position') == 'fixed';
+ return !isFixed;
+ });
+ var offset = {left: plugin._pos[0], top: plugin._pos[1]};
+ plugin._pos = null;
+ // determine sizing offscreen
+ inst._mainDiv.css({position: 'absolute', display: 'block', top: '-1000px', width: 'auto'});
+ plugin._updateKeypad(inst);
+ // and adjust position before showing
+ offset = plugin._checkOffset(inst, offset, isFixed);
+ inst._mainDiv.css({position: (isFixed ? 'fixed' : 'absolute'), display: 'none',
+ left: offset.left + 'px', top: offset.top + 'px'});
+ var duration = inst.options.duration;
+ var showAnim = inst.options.showAnim;
+ var postProcess = function() {
+ plugin._keypadShowing = true;
+ };
+ if ($.effects && ($.effects[showAnim] || ($.effects.effect && $.effects.effect[showAnim]))) {
+ var data = inst._mainDiv.data(); // Update old effects data
+ for (var key in data) {
+ if (key.match(/^ec\.storage\./)) {
+ data[key] = inst._mainDiv.css(key.replace(/ec\.storage\./, ''));
+ }
+ }
+ inst._mainDiv.data(data).show(showAnim,
+ inst.options.showOptions || {}, duration, postProcess);
+ }
+ else {
+ inst._mainDiv[showAnim || 'show']((showAnim ? duration : 0), postProcess);
+ }
+ if (inst._input[0].type != 'hidden') {
+ inst._input[0].focus();
+ }
+ plugin._curInst = inst;
+ },
+
+ /** Generate the keypad content.
+ @private
+ @param inst {object} The instance settings. */
+ _updateKeypad: function(inst) {
+ var borders = this._getBorders(inst._mainDiv);
+ inst._mainDiv.empty().append(this._generateHTML(inst)).
+ removeClass().addClass(inst.options.keypadClass +
+ (inst.options.useThemeRoller ? ' ui-widget ui-widget-content' : '') +
+ (inst.options.isRTL ? ' ' + this._rtlClass : '') + ' ' +
+ (inst._inline ? this._inlineClass : this._mainDivClass));
+ if ($.isFunction(inst.options.beforeShow)) {
+ inst.options.beforeShow.apply((inst._input ? inst._input[0] : null),
+ [inst._mainDiv, inst]);
+ }
+ },
+
+ /** Retrieve the size of left and top borders for an element.
+ @private
+ @param elem {jQuery} The element of interest.
+ @return {number[]} The left and top borders. */
+ _getBorders: function(elem) {
+ var convert = function(value) {
+ return {thin: 1, medium: 3, thick: 5}[value] || value;
+ };
+ return [parseFloat(convert(elem.css('border-left-width'))),
+ parseFloat(convert(elem.css('border-top-width')))];
+ },
+
+ /** Check positioning to remain on screen.
+ @private
+ @param inst {object} The instance settings.
+ @param offset {object} The current offset.
+ @param isFixed {boolean} True if the text field is fixed in position.
+ @return {object} The updated offset. */
+ _checkOffset: function(inst, offset, isFixed) {
+ var pos = inst._input ? this._findPos(inst._input[0]) : null;
+ var browserWidth = window.innerWidth || document.documentElement.clientWidth;
+ var browserHeight = window.innerHeight || document.documentElement.clientHeight;
+ var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
+ var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
+ // recalculate width as otherwise set to 100%
+ var width = 0;
+ inst._mainDiv.find(':not(div)').each(function() {
+ width = Math.max(width, this.offsetLeft + $(this).outerWidth(true));
+ });
+ inst._mainDiv.css('width', width + 1);
+ // reposition keypad panel horizontally if outside the browser window
+ if (inst.options.isRTL ||
+ (offset.left + inst._mainDiv.outerWidth() - scrollX) > browserWidth) {
+ offset.left = Math.max((isFixed ? 0 : scrollX),
+ pos[0] + (inst._input ? inst._input.outerWidth() : 0) -
+ (isFixed ? scrollX : 0) - inst._mainDiv.outerWidth());
+ }
+ else {
+ offset.left = Math.max((isFixed ? 0 : scrollX), offset.left - (isFixed ? scrollX : 0));
+ }
+ // reposition keypad panel vertically if outside the browser window
+ if ((offset.top + inst._mainDiv.outerHeight() - scrollY) > browserHeight) {
+ offset.top = Math.max((isFixed ? 0 : scrollY),
+ pos[1] - (isFixed ? scrollY : 0) - inst._mainDiv.outerHeight());
+ }
+ else {
+ offset.top = Math.max((isFixed ? 0 : scrollY), offset.top - (isFixed ? scrollY : 0));
+ }
+ return offset;
+ },
+
+ /** Find an object's position on the screen.
+ @private
+ @param obj {Element} The element to find the position for.
+ @return {number[]} The element's position. */
+ _findPos: function(obj) {
+ while (obj && (obj.type == 'hidden' || obj.nodeType != 1)) {
+ obj = obj.nextSibling;
+ }
+ var position = $(obj).offset();
+ return [position.left, position.top];
+ },
+
+ /** Hide the keypad from view.
+ @param elem {Element} The text field attached to the keypad.
+ @param duration {string} The duration over which to close the keypad.
+ @example $(selector).keypad('hide') */
+ hide: function(elem, duration) {
+ var inst = this._curInst;
+ if (!inst || (elem && inst != $.data(elem, this.propertyName))) {
+ return;
+ }
+ if (this._keypadShowing) {
+ duration = (duration != null ? duration : inst.options.duration);
+ var showAnim = inst.options.showAnim;
+ if ($.effects && ($.effects[showAnim] || ($.effects.effect && $.effects.effect[showAnim]))) {
+ inst._mainDiv.hide(showAnim, inst.options.showOptions || {}, duration);
+ }
+ else {
+ inst._mainDiv[(showAnim == 'slideDown' ? 'slideUp' :
+ (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))](showAnim ? duration : 0);
+ }
+ }
+ if ($.isFunction(inst.options.onClose)) {
+ inst.options.onClose.apply((inst._input ? inst._input[0] : null), // trigger custom callback
+ [inst._input.val(), inst]);
+ }
+ if (this._keypadShowing) {
+ this._keypadShowing = false;
+ this._lastField = null;
+ }
+ if (inst._inline) {
+ inst._input.val('');
+ }
+ this._curInst = null;
+ },
+
+ /** Handle keystrokes.
+ @private
+ @param event {Event} The key event. */
+ _doKeyDown: function(event) {
+ if (event.keyCode == 9) { // Tab out
+ plugin.mainDiv.stop(true, true);
+ plugin.hide();
+ }
+ },
+
+ /** Close keypad if clicked elsewhere.
+ @private
+ @param event {Event} The mouseclick details. */
+ _checkExternalClick: function(event) {
+ if (!plugin._curInst) {
+ return;
+ }
+ var target = $(event.target);
+ if (target.closest('.' + plugin._mainDivClass).length === 0 &&
+ !target.hasClass(plugin._getMarker()) &&
+ target.closest('.' + plugin._triggerClass).length === 0 &&
+ plugin._keypadShowing) {
+ plugin.hide();
+ }
+ },
+
+ /** Toggle between upper and lower case.
+ @private
+ @param inst {object} The instance settings. */
+ _shiftKeypad: function(inst) {
+ inst.ucase = !inst.ucase;
+ this._updateKeypad(inst);
+ inst._input.focus(); // for further typing
+ },
+
+ /** Erase the text field.
+ @private
+ @param inst {object} The instance settings. */
+ _clearValue: function(inst) {
+ this._setValue(inst, '', 0);
+ this._notifyKeypress(inst, plugin.DEL);
+ },
+
+ /** Erase the last character.
+ @private
+ @param inst {object} The instance settings. */
+ _backValue: function(inst) {
+ var elem = inst._input[0];
+ var value = inst._input.val();
+ var range = [value.length, value.length];
+ range = (inst._input.prop('readonly') || inst._input.prop('disabled') ? range :
+ (elem.setSelectionRange /* Mozilla */ ? [elem.selectionStart, elem.selectionEnd] :
+ (elem.createTextRange /* IE */ ? this._getIERange(elem) : range)));
+ this._setValue(inst, (value.length == 0 ? '' :
+ value.substr(0, range[0] - 1) + value.substr(range[1])), range[0] - 1);
+ this._notifyKeypress(inst, plugin.BS);
+ },
+
+ /** Update the text field with the selected value.
+ @private
+ @param inst {object} The instance settings.
+ @param value {string} The new character to add. */
+ _selectValue: function(inst, value) {
+ this.insertValue(inst._input[0], value);
+ this._setValue(inst, inst._input.val());
+ this._notifyKeypress(inst, value);
+ },
+
+ /** Update the text field with the selected value.
+ @param input {string|Element|jQuery} The jQuery selector, input field, or jQuery collection.
+ @param value {string} The new character to add.
+ @example $.keypad.insertValue(field, 'abc'); */
+ insertValue: function(input, value) {
+ input = (input.jquery ? input : $(input));
+ var elem = input[0];
+ var newValue = input.val();
+ var range = [newValue.length, newValue.length];
+ range = (input.attr('readonly') || input.attr('disabled') ? range :
+ (elem.setSelectionRange /* Mozilla */ ? [elem.selectionStart, elem.selectionEnd] :
+ (elem.createTextRange /* IE */ ? this._getIERange(elem) : range)));
+ input.val(newValue.substr(0, range[0]) + value + newValue.substr(range[1]));
+ pos = range[0] + value.length;
+ if (input.is(':visible')) {
+ input.focus(); // for further typing
+ }
+ if (elem.setSelectionRange) { // Mozilla
+ if (input.is(':visible')) {
+ elem.setSelectionRange(pos, pos);
+ }
+ }
+ else if (elem.createTextRange) { // IE
+ range = elem.createTextRange();
+ range.move('character', pos);
+ range.select();
+ }
+ },
+
+ /** Get the coordinates for the selected area in the text field in IE.
+ @private
+ @param elem {Element} The target text field.
+ @return {number[]} The start and end positions of the selection. */
+ _getIERange: function(elem) {
+ elem.focus();
+ var selectionRange = document.selection.createRange().duplicate();
+ // Use two ranges: before and selection
+ var beforeRange = this._getIETextRange(elem);
+ beforeRange.setEndPoint('EndToStart', selectionRange);
+ // Check each range for trimmed newlines by shrinking the range by one
+ // character and seeing if the text property has changed. If it has not
+ // changed then we know that IE has trimmed a \r\n from the end.
+ var checkCRLF = function(range) {
+ var origText = range.text;
+ var text = origText;
+ var finished = false;
+ while (true) {
+ if (range.compareEndPoints('StartToEnd', range) == 0) {
+ break;
+ }
+ else {
+ range.moveEnd('character', -1);
+ if (range.text == origText) {
+ text += '\r\n';
+ }
+ else {
+ break;
+ }
+ }
+ }
+ return text;
+ };
+ var beforeText = checkCRLF(beforeRange);
+ var selectionText = checkCRLF(selectionRange);
+ return [beforeText.length, beforeText.length + selectionText.length];
+ },
+
+ /** Create an IE text range for the text field.
+ @private
+ @param elem {Element} The target text field.
+ @return {object} The corresponding text range. */
+ _getIETextRange: function(elem) {
+ var isInput = (elem.nodeName.toLowerCase() == 'input');
+ var range = (isInput ? elem.createTextRange() : document.body.createTextRange());
+ if (!isInput) {
+ range.moveToElementText(elem); // Selects all the text for a textarea
+ }
+ return range;
+ },
+
+ /** Set the text field to the selected value, and trigger any on change event.
+ @private
+ @param inst {object} The instance settings.
+ @param value {string} The new value for the text field. */
+ _setValue: function(inst, value) {
+ var maxlen = inst._input.attr('maxlength');
+ if (maxlen > -1) {
+ value = value.substr(0, maxlen);
+ }
+ inst._input.val(value);
+ if (!$.isFunction(inst.options.onKeypress)) {
+ inst._input.trigger('change'); // fire the change event
+ }
+ },
+
+ /** Notify clients of a keypress.
+ @private
+ @param inst {object} The instance settings.
+ @param key {string} The character pressed. */
+ _notifyKeypress: function(inst, key) {
+ if ($.isFunction(inst.options.onKeypress)) { // trigger custom callback
+ inst.options.onKeypress.apply((inst._input ? inst._input[0] : null),
+ [key, inst._input.val(), inst]);
+ }
+ },
+
+ /** Generate the HTML for the current state of the keypad.
+ @private
+ @param inst {object} The instance settings.
+ @return {jQuery} The HTML for this keypad. */
+ _generateHTML: function(inst) {
+ var html = (!inst.options.prompt ? '' : '<div class="' + this._promptClass +
+ (inst.options.useThemeRoller ? ' ui-widget-header ui-corner-all' : '') + '">' +
+ inst.options.prompt + '</div>');
+ var layout = this._randomiseLayout(inst);
+ for (var i = 0; i < layout.length; i++) {
+ html += '<div class="' + this._rowClass + '">';
+ var keys = layout[i].split(inst.options.separator);
+ for (var j = 0; j < keys.length; j++) {
+ if (inst.ucase) {
+ keys[j] = inst.options.toUpper(keys[j]);
+ }
+ var keyDef = this._specialKeys[keys[j].charCodeAt(0)];
+ if (keyDef) {
+ html += (keyDef.action ? '<button type="button" class="' + this._specialClass +
+ ' ' + this._namePrefixClass + keyDef.name +
+ (inst.options.useThemeRoller ? ' ui-corner-all ui-state-default' +
+ (keyDef.noHighlight ? '' : ' ui-state-highlight') : '') +
+ '" title="' + inst.options[keyDef.name + 'Status'] + '">' +
+ (inst.options[keyDef.name + 'Text'] || ' ') + '</button>' :
+ '<div class="' + this._namePrefixClass + keyDef.name + '"></div>');
+ }
+ else {
+ html += '<button type="button" class="' + this._keyClass +
+ (inst.options.useThemeRoller ? ' ui-corner-all ui-state-default' : '') + '">' +
+ (keys[j] == ' ' ? ' ' : keys[j]) + '</button>';
+ }
+ }
+ html += '</div>';
+ }
+ html = $(html);
+ var thisInst = inst;
+ var activeClasses = this._keyDownClass + (inst.options.useThemeRoller ? ' ui-state-active' : '');
+ html.find('button').mousedown(function() { $(this).addClass(activeClasses); }).
+ mouseup(function() { $(this).removeClass(activeClasses); }).
+ mouseout(function() { $(this).removeClass(activeClasses); }).
+ filter('.' + this._keyClass).click(function() { plugin._selectValue(thisInst, $(this).text()); });
+ $.each(this._specialKeys, function(i, keyDef) {
+ html.find('.' + plugin._namePrefixClass + keyDef.name).click(function() {
+ keyDef.action.apply(thisInst._input, [thisInst]);
+ });
+ });
+ return html;
+ },
+
+ /** Check whether characters should be randomised, and, if so, produce the randomised layout.
+ @private
+ @param inst {object} The instance settings.
+ @return {string[]} The layout with any requested randomisations applied. */
+ _randomiseLayout: function(inst) {
+ if (!inst.options.randomiseNumeric && !inst.options.randomiseAlphabetic &&
+ !inst.options.randomiseOther && !inst.options.randomiseAll) {
+ return inst.options.layout;
+ }
+ var numerics = [];
+ var alphas = [];
+ var others = [];
+ var newLayout = [];
+ // Find characters of different types
+ for (var i = 0; i < inst.options.layout.length; i++) {
+ newLayout[i] = '';
+ var keys = inst.options.layout[i].split(inst.options.separator);
+ for (var j = 0; j < keys.length; j++) {
+ if (this._isControl(keys[j])) {
+ continue;
+ }
+ if (inst.options.randomiseAll) {
+ others.push(keys[j]);
+ }
+ else if (inst.options.isNumeric(keys[j])) {
+ numerics.push(keys[j]);
+ }
+ else if (inst.options.isAlphabetic(keys[j])) {
+ alphas.push(keys[j]);
+ }
+ else {
+ others.push(keys[j]);
+ }
+ }
+ }
+ // Shuffle them
+ if (inst.options.randomiseNumeric) {
+ this._shuffle(numerics);
+ }
+ if (inst.options.randomiseAlphabetic) {
+ this._shuffle(alphas);
+ }
+ if (inst.options.randomiseOther || inst.options.randomiseAll) {
+ this._shuffle(others);
+ }
+ var n = 0;
+ var a = 0;
+ var o = 0;
+ // And replace them in the layout
+ for (var i = 0; i < inst.options.layout.length; i++) {
+ var keys = inst.options.layout[i].split(inst.options.separator);
+ for (var j = 0; j < keys.length; j++) {
+ newLayout[i] += (this._isControl(keys[j]) ? keys[j] :
+ (inst.options.randomiseAll ? others[o++] :
+ (inst.options.isNumeric(keys[j]) ? numerics[n++] :
+ (inst.options.isAlphabetic(keys[j]) ? alphas[a++] :
+ others[o++])))) + inst.options.separator;
+ }
+ }
+ return newLayout;
+ },
+
+ /** Is a given character a control character?
+ @private
+ @param ch {string} The character to test.
+ @return {boolean} True if a control character, false if not. */
+ _isControl: function(ch) {
+ return ch < ' ';
+ },
+
+ /** Is a given character alphabetic?
+ @param ch {string} The character to test.
+ @return {boolean} True if alphabetic, false if not. */
+ isAlphabetic: function(ch) {
+ return (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z');
+ },
+
+ /** Is a given character numeric?
+ @param ch {string} The character to test.
+ @return {boolean} True if numeric, false if not. */
+ isNumeric: function(ch) {
+ return (ch >= '0' && ch <= '9');
+ },
+
+ /** Convert a character to upper case.
+ @param ch {string} The character to convert.
+ @return {string} Its uppercase version. */
+ toUpper: function(ch) {
+ return ch.toUpperCase();
+ },
+
+ /** Randomise the contents of an array.
+ @private
+ @param values {string[]} The array to rearrange. */
+ _shuffle: function(values) {
+ for (var i = values.length - 1; i > 0; i--) {
+ var j = Math.floor(Math.random() * values.length);
+ var ch = values[i];
+ values[i] = values[j];
+ values[j] = ch;
+ }
+ }
+ });
+
+ var plugin = $.keypad;
+
+ // Initialise the key definitions
+ plugin.addKeyDef('CLOSE', 'close', function(inst) {
+ plugin._curInst = (inst._inline ? inst : plugin._curInst);
+ plugin.hide();
+ });
+ plugin.addKeyDef('CLEAR', 'clear', function(inst) { plugin._clearValue(inst); });
+ plugin.addKeyDef('BACK', 'back', function(inst) { plugin._backValue(inst); });
+ plugin.addKeyDef('SHIFT', 'shift', function(inst) { plugin._shiftKeypad(inst); });
+ plugin.addKeyDef('SPACE_BAR', 'spacebar', function(inst) { plugin._selectValue(inst, ' '); }, true);
+ plugin.addKeyDef('SPACE', 'space');
+ plugin.addKeyDef('HALF_SPACE', 'half-space');
+ plugin.addKeyDef('ENTER', 'enter', function(inst) { plugin._selectValue(inst, '\x0D'); }, true);
+ plugin.addKeyDef('TAB', 'tab', function(inst) { plugin._selectValue(inst, '\x09'); }, true);
+
+ // Initialise the layouts and settings
+ plugin.numericLayout = ['123' + plugin.CLOSE, '456' + plugin.CLEAR, '789' + plugin.BACK, plugin.SPACE + '0'];
+ plugin.qwertyLayout = ['!@#$%^&*()_=' + plugin.HALF_SPACE + plugin.SPACE + plugin.CLOSE,
+ plugin.HALF_SPACE + '`~[]{}<>\\|/' + plugin.SPACE + '789',
+ 'qwertyuiop\'"' + plugin.HALF_SPACE + '456',
+ plugin.HALF_SPACE + 'asdfghjkl;:' + plugin.SPACE + '123',
+ plugin.SPACE + 'zxcvbnm,.?' + plugin.SPACE + plugin.HALF_SPACE + '-0+',
+ '' + plugin.TAB + plugin.ENTER + plugin.SPACE_BAR + plugin.SHIFT +
+ plugin.HALF_SPACE + plugin.BACK + plugin.CLEAR],
+ $.extend(plugin.regionalOptions[''], {alphabeticLayout: plugin.qwertyAlphabetic, fullLayout: plugin.qwertyLayout,
+ isAlphabetic: plugin.isAlphabetic, isNumeric: plugin.isNumeric, toUpper: plugin.toUpper});
+ plugin.setDefaults($.extend({layout: plugin.numericLayout}, plugin.regionalOptions['']));
+
+ // Add the keypad division and external click check
+ $(function() {
+ $(document.body).append(plugin.mainDiv).
+ mousedown(plugin._checkExternalClick);
+ });
+
+})(jQuery);
Added: trunk/styles/GOAA/jquery.plugin.js
===================================================================
--- trunk/styles/GOAA/jquery.plugin.js (rev 0)
+++ trunk/styles/GOAA/jquery.plugin.js 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,344 @@
+/* Simple JavaScript Inheritance
+ * By John Resig http://ejohn.org/
+ * MIT Licensed.
+ */
+// Inspired by base2 and Prototype
+(function(){
+ var initializing = false;
+
+ // The base JQClass implementation (does nothing)
+ window.JQClass = function(){};
+
+ // Collection of derived classes
+ JQClass.classes = {};
+
+ // Create a new JQClass that inherits from this class
+ JQClass.extend = function extender(prop) {
+ var base = this.prototype;
+
+ // Instantiate a base class (but only create the instance,
+ // don't run the init constructor)
+ initializing = true;
+ var prototype = new this();
+ initializing = false;
+
+ // Copy the properties over onto the new prototype
+ for (var name in prop) {
+ // Check if we're overwriting an existing function
+ prototype[name] = typeof prop[name] == 'function' &&
+ typeof base[name] == 'function' ?
+ (function(name, fn){
+ return function() {
+ var __super = this._super;
+
+ // Add a new ._super() method that is the same method
+ // but on the super-class
+ this._super = function(args) {
+ return base[name].apply(this, args || []);
+ };
+
+ var ret = fn.apply(this, arguments);
+
+ // The method only need to be bound temporarily, so we
+ // remove it when we're done executing
+ this._super = __super;
+
+ return ret;
+ };
+ })(name, prop[name]) :
+ prop[name];
+ }
+
+ // The dummy class constructor
+ function JQClass() {
+ // All construction is actually done in the init method
+ if (!initializing && this._init) {
+ this._init.apply(this, arguments);
+ }
+ }
+
+ // Populate our constructed prototype object
+ JQClass.prototype = prototype;
+
+ // Enforce the constructor to be what we expect
+ JQClass.prototype.constructor = JQClass;
+
+ // And make this class extendable
+ JQClass.extend = extender;
+
+ return JQClass;
+ };
+})();
+
+(function($) { // Ensure $, encapsulate
+
+ /** Abstract base class for collection plugins v1.0.1.
+ Written by Keith Wood (kbwood{at}iinet.com.au) December 2013.
+ Licensed under the MIT (https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt) license.
+ @module $.JQPlugin
+ @abstract */
+ JQClass.classes.JQPlugin = JQClass.extend({
+
+ /** Name to identify this plugin.
+ @example name: 'tabs' */
+ name: 'plugin',
+
+ /** Default options for instances of this plugin (default: {}).
+ @example defaultOptions: {
+ selectedClass: 'selected',
+ triggers: 'click'
+ } */
+ defaultOptions: {},
+
+ /** Options dependent on the locale.
+ Indexed by language and (optional) country code, with '' denoting the default language (English/US).
+ @example regionalOptions: {
+ '': {
+ greeting: 'Hi'
+ }
+ } */
+ regionalOptions: {},
+
+ /** Names of getter methods - those that can't be chained (default: []).
+ @example _getters: ['activeTab'] */
+ _getters: [],
+
+ /** Retrieve a marker class for affected elements.
+ @private
+ @return {string} The marker class. */
+ _getMarker: function() {
+ return 'is-' + this.name;
+ },
+
+ /** Initialise the plugin.
+ Create the jQuery bridge - plugin name <code>xyz</code>
+ produces <code>$.xyz</code> and <code>$.fn.xyz</code>. */
+ _init: function() {
+ // Apply default localisations
+ $.extend(this.defaultOptions, (this.regionalOptions && this.regionalOptions['']) || {});
+ // Camel-case the name
+ var jqName = camelCase(this.name);
+ // Expose jQuery singleton manager
+ $[jqName] = this;
+ // Expose jQuery collection plugin
+ $.fn[jqName] = function(options) {
+ var otherArgs = Array.prototype.slice.call(arguments, 1);
+ if ($[jqName]._isNotChained(options, otherArgs)) {
+ return $[jqName][options].apply($[jqName], [this[0]].concat(otherArgs));
+ }
+ return this.each(function() {
+ if (typeof options === 'string') {
+ if (options[0] === '_' || !$[jqName][options]) {
+ throw 'Unknown method: ' + options;
+ }
+ $[jqName][options].apply($[jqName], [this].concat(otherArgs));
+ }
+ else {
+ $[jqName]._attach(this, options);
+ }
+ });
+ };
+ },
+
+ /** Set default values for all subsequent instances.
+ @param options {object} The new default options.
+ @example $.plugin.setDefauls({name: value}) */
+ setDefaults: function(options) {
+ $.extend(this.defaultOptions, options || {});
+ },
+
+ /** Determine whether a method is a getter and doesn't permit chaining.
+ @private
+ @param name {string} The method name.
+ @param otherArgs {any[]} Any other arguments for the method.
+ @return {boolean} True if this method is a getter, false otherwise. */
+ _isNotChained: function(name, otherArgs) {
+ if (name === 'option' && (otherArgs.length === 0 ||
+ (otherArgs.length === 1 && typeof otherArgs[0] === 'string'))) {
+ return true;
+ }
+ return $.inArray(name, this._getters) > -1;
+ },
+
+ /** Initialise an element. Called internally only.
+ Adds an instance object as data named for the plugin.
+ @param elem {Element} The element to enhance.
+ @param options {object} Overriding settings. */
+ _attach: function(elem, options) {
+ elem = $(elem);
+ if (elem.hasClass(this._getMarker())) {
+ return;
+ }
+ elem.addClass(this._getMarker());
+ options = $.extend({}, this.defaultOptions, this._getMetadata(elem), options || {});
+ var inst = $.extend({name: this.name, elem: elem, options: options},
+ this._instSettings(elem, options));
+ elem.data(this.name, inst); // Save instance against element
+ this._postAttach(elem, inst);
+ this.option(elem, options);
+ },
+
+ /** Retrieve additional instance settings.
+ Override this in a sub-class to provide extra settings.
+ @param elem {jQuery} The current jQuery element.
+ @param options {object} The instance options.
+ @return {object} Any extra instance values.
+ @example _instSettings: function(elem, options) {
+ return {nav: elem.find(options.navSelector)};
+ } */
+ _instSettings: function(elem, options) {
+ return {};
+ },
+
+ /** Plugin specific post initialisation.
+ Override this in a sub-class to perform extra activities.
+ @param elem {jQuery} The current jQuery element.
+ @param inst {object} The instance settings.
+ @example _postAttach: function(elem, inst) {
+ elem.on('click.' + this.name, function() {
+ ...
+ });
+ } */
+ _postAttach: function(elem, inst) {
+ },
+
+ /** Retrieve metadata configuration from the element.
+ Metadata is specified as an attribute:
+ <code>data-<plugin name>="<setting name>: '<value>', ..."</code>.
+ Dates should be specified as strings in this format: 'new Date(y, m-1, d)'.
+ @private
+ @param elem {jQuery} The source element.
+ @return {object} The inline configuration or {}. */
+ _getMetadata: function(elem) {
+ try {
+ var data = elem.data(this.name.toLowerCase()) || '';
+ data = data.replace(/'/g, '"');
+ data = data.replace(/([a-zA-Z0-9]+):/g, function(match, group, i) {
+ var count = data.substring(0, i).match(/"/g); // Handle embedded ':'
+ return (!count || count.length % 2 === 0 ? '"' + group + '":' : group + ':');
+ });
+ data = $.parseJSON('{' + data + '}');
+ for (var name in data) { // Convert dates
+ var value = data[name];
+ if (typeof value === 'string' && value.match(/^new Date\((.*)\)$/)) {
+ data[name] = eval(value);
+ }
+ }
+ return data;
+ }
+ catch (e) {
+ return {};
+ }
+ },
+
+ /** Retrieve the instance data for element.
+ @param elem {Element} The source element.
+ @return {object} The instance data or {}. */
+ _getInst: function(elem) {
+ return $(elem).data(this.name) || {};
+ },
+
+ /** Retrieve or reconfigure the settings for a plugin.
+ @param elem {Element} The source element.
+ @param name {object|string} The collection of new option values or the name of a single option.
+ @param [value] {any} The value for a single named option.
+ @return {any|object} If retrieving a single value or all options.
+ @example $(selector).plugin('option', 'name', value)
+ $(selector).plugin('option', {name: value, ...})
+ var value = $(selector).plugin('option', 'name')
+ var options = $(selector).plugin('option') */
+ option: function(elem, name, value) {
+ elem = $(elem);
+ var inst = elem.data(this.name);
+ if (!name || (typeof name === 'string' && value == null)) {
+ var options = (inst || {}).options;
+ return (options && name ? options[name] : options);
+ }
+ if (!elem.hasClass(this._getMarker())) {
+ return;
+ }
+ var options = name || {};
+ if (typeof name === 'string') {
+ options = {};
+ options[name] = value;
+ }
+ this._optionsChanged(elem, inst, options);
+ $.extend(inst.options, options);
+ },
+
+ /** Plugin specific options processing.
+ Old value available in <code>inst.options[name]</code>, new value in <code>options[name]</code>.
+ Override this in a sub-class to perform extra activities.
+ @param elem {jQuery} The current jQuery element.
+ @param inst {object} The instance settings.
+ @param options {object} The new options.
+ @example _optionsChanged: function(elem, inst, options) {
+ if (options.name != inst.options.name) {
+ elem.removeClass(inst.options.name).addClass(options.name);
+ }
+ } */
+ _optionsChanged: function(elem, inst, options) {
+ },
+
+ /** Remove all trace of the plugin.
+ Override <code>_preDestroy</code> for plugin-specific processing.
+ @param elem {Element} The source element.
+ @example $(selector).plugin('destroy') */
+ destroy: function(elem) {
+ elem = $(elem);
+ if (!elem.hasClass(this._getMarker())) {
+ return;
+ }
+ this._preDestroy(elem, this._getInst(elem));
+ elem.removeData(this.name).removeClass(this._getMarker());
+ },
+
+ /** Plugin specific pre destruction.
+ Override this in a sub-class to perform extra activities and undo everything that was
+ done in the <code>_postAttach</code> or <code>_optionsChanged</code> functions.
+ @param elem {jQuery} The current jQuery element.
+ @param inst {object} The instance settings.
+ @example _preDestroy: function(elem, inst) {
+ elem.off('.' + this.name);
+ } */
+ _preDestroy: function(elem, inst) {
+ }
+ });
+
+ /** Convert names from hyphenated to camel-case.
+ @private
+ @param value {string} The original hyphenated name.
+ @return {string} The camel-case version. */
+ function camelCase(name) {
+ return name.replace(/-([a-z])/g, function(match, group) {
+ return group.toUpperCase();
+ });
+ }
+
+ /** Expose the plugin base.
+ @namespace "$.JQPlugin" */
+ $.JQPlugin = {
+
+ /** Create a new collection plugin.
+ @memberof "$.JQPlugin"
+ @param [superClass='JQPlugin'] {string} The name of the parent class to inherit from.
+ @param overrides {object} The property/function overrides for the new class.
+ @example $.JQPlugin.createPlugin({
+ name: 'tabs',
+ defaultOptions: {selectedClass: 'selected'},
+ _initSettings: function(elem, options) { return {...}; },
+ _postAttach: function(elem, inst) { ... }
+ }); */
+ createPlugin: function(superClass, overrides) {
+ if (typeof superClass === 'object') {
+ overrides = superClass;
+ superClass = 'JQPlugin';
+ }
+ superClass = camelCase(superClass);
+ var className = camelCase(overrides.name);
+ JQClass.classes[className] = JQClass.classes[superClass].extend(overrides);
+ new JQClass.classes[className]();
+ }
+ };
+
+})(jQuery);
\ No newline at end of file
Added: trunk/styles/GOAA/lms_style.css
===================================================================
--- trunk/styles/GOAA/lms_style.css (rev 0)
+++ trunk/styles/GOAA/lms_style.css 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,788 @@
+td {
+ text-align: left;
+}
+body
+{
+ padding-top: 10px;
+ text-align: center;
+}
+
+.coursecomplete {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 11px;
+ font-weight: bold;
+ text-transform: uppercase;
+ color: #666666;
+ padding-left: 6px;
+}
+.inProgress {
+ font-style: italic;
+ font-weight: bold;
+}
+.courseName {
+ font-weight: bold;
+}
+.centered {
+ margin:auto;
+ alignment:center;
+ text-align:center;
+}
+
+a {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #666666;
+}
+font {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #666666;
+}
+a:link {
+ text-decoration: none;
+}
+a:visited {
+ text-decoration: none;
+}
+a:hover {
+ text-decoration: underline;
+}
+a:active {
+ text-decoration: none;
+}
+
+.courselnk a {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: bold;
+ color: #666666;
+}
+
+.instructiontxt {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FF0000;
+ text-transform: uppercase;
+}
+
+.word-layer a {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: bold;
+ color: #7D7D7D;
+}
+.word-layer p, td {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 11px;
+ color: #7D7D7D;
+}
+.word-layer {
+ visibility: hidden;
+ position:absolute;
+ left:131px;
+ top:214px;
+ width:300px;
+ background-color: #EBEBEB;
+ margin-left : 0;
+ overflow: visible;
+ z-index:6;
+ border: 2px #91AC79;
+ border-style: solid;
+ padding: 7px 7px 7px 7px;
+ color : #7D7D7D;
+ font-family:Arial, Helvetica, sans-serif ;
+ font-size : 11px;
+ font-style : normal;
+ font-weight : normal;
+ font-variant : normal;
+ word-spacing : normal;
+ letter-spacing : normal;
+ vertical-align : baseline;
+ text-transform : none;
+ text-align : left;
+ text-indent : 0;
+ line-height : normal;
+}
+.word-layer div {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 11px;
+ color: #7D7D7D;
+}
+
+
+/* browse box */
+.list-layer {
+ visibility: hidden;
+ position:absolute;
+ left:50px;
+ top:50px;
+ width:220px;
+/* background-color: #fff3cf; */
+ background-color: #E2E2E2;
+ margin-left : 0;
+ overflow: visible;
+ z-index:6;
+ border: 1px #000000;
+ border-style: solid;
+ padding: 7px 7px 7px 7px;
+ color : #000000;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size : x-small;
+ font-style : normal;
+ font-weight : normal;
+ font-variant : normal;
+ word-spacing : normal;
+ letter-spacing : normal;
+ vertical-align : baseline;
+ text-transform : none;
+ text-align : left;
+ text-indent : 0;
+ line-height : normal;
+}
+
+/* Calendar */
+
+.caldays {color: #333333;}
+
+.caldaylink {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ text-transform: none;
+ padding: 4px 4px 8px;
+ font-weight: bold;
+ text-decoration: none;
+ border: none;
+}
+
+.formbtn:hover {
+ text-decoration: underline;
+}
+
+.cal-layer {
+ visibility: hidden;
+ position:absolute;
+ left:50px;
+ top:50px;
+ width:200px;
+ background-color: #FFFFFF;
+ margin-left : 0;
+ overflow: visible;
+ z-index:6;
+ border: 1px #91AC79;
+ border-style: solid;
+ padding: 7px 7px 7px 7px;
+ color : #000000;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size : x-small;
+ font-style : normal;
+ font-weight : normal;
+ font-variant : normal;
+ word-spacing : normal;
+ letter-spacing : normal;
+ vertical-align : baseline;
+ text-transform : none;
+ text-align : left;
+ text-indent : 0;
+ line-height : normal;
+}
+
+.cal-layer h2 {
+ margin: 0;
+}
+
+
+/* day cells */
+
+tr.cal {
+}
+
+td.cal {
+padding: 0 1px 1px;
+margin-left: 0;
+text-align: right;
+color: #333333;
+}
+
+td.cal a{
+color: #333333;
+}
+
+td.caloth a{
+color: #666666;
+}
+/* Not current month cells */
+td.caloth {
+padding: 0 1px 1px;
+margin-left: 0;
+text-align: right;
+color: #666666;
+}
+
+
+
+/* course list */
+td.clist {
+padding: 0 1px 1px;
+margin-left: 0;
+text-align: center;
+}
+
+td.clist li {
+list-style: none;
+margin: 0;
+border-top: 1px solid #222;
+border-bottom: 1px solid #222;
+border-left: 1px solid #222;
+border-right: 1px solid #222;
+}
+
+td.clist li a {
+display: block;
+background: #666666;
+text-decoration: none;
+}
+
+td.clist ul {
+text-indent: 0em;
+padding: 0px;
+margin: 0px
+}
+
+td.clist li a:link { color: #000; }
+td.clist li a:visited { color: #000; }
+
+td.clist li a:hover {
+border-color: #81693F;
+color: #8A0010;
+background : #FFFFCC
+}
+
+.shim-layer {
+ visibility: hidden;
+ position:absolute;
+ left:5px;
+ top:5px;
+ width:2px;
+ /* background-color: #ABABAB;*/
+ frameborder: 0;
+ scrolling: no;
+ overflow: hidden;
+ z-index:8;
+}
+
+.mainmenu {
+ background-image: url(images/sidemenu_bg.jpg);
+ background-repeat: repeat-y;
+ background-position: left;
+ width: 122px;
+}
+
+/* Everything is new from this point on. When finished, some of the above styles can be deleted. */
+
+#pageContainer{
+ width: 860px;
+ border:1px solid #C6C5C5;
+ border-top: none;
+ margin-right: auto;
+ margin-left: auto;
+ background-color: #F7F7F7;
+ text-align: center;
+ /*margin-top: -50px;*/
+ }
+
+#pageHeaderContainer {
+ width: 864px;
+ margin-top: -10px;
+ margin-right: auto;
+ margin-left: auto;
+ background-color: #F7F7F7;
+ border: 1px solid #C6C5C5;
+ border-bottom: none;
+ padding: 10px 0;
+}
+#pageHeaderContainer table{
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: bold;
+ color: #7D7D7D;
+ text-align: left;
+ float: right;
+}
+#pageHeaderContainer td{
+ text-align: center;
+ vertical-align: middle;
+ margin: 5px;
+ padding: 5px;
+}
+#pageHeaderLogo
+{
+ position: relative;
+ text-align: left;
+ top: 93px;
+ left: 0px;
+ width: 859px;
+ margin: auto;
+ margin-left: 2px;
+ margin-top: -45px;
+ padding: 0px;
+}
+#pageHeaderBtns, #pageHeaderText
+{
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 11px;
+ color: #7D7D7D;
+ font-weight: bold;
+ float: right;
+ text-align: left;
+ /*padding: 0 10px;*/
+ margin: -26px 10px 0 10px;
+}
+#pageHeaderBtns img
+{
+ margin: 0 3px;
+}
+#Banner {
+ background-image: url(images/banner.jpg);
+ background-repeat: no-repeat;
+ background-position: right;
+ /*border-right-width: 1px;
+ border-left-width: 1px;
+ border-right-style: solid;
+ border-left-style: solid;
+ border-right-color: #C6C5C5;
+ border-left-color: #C6C5C5;*/
+ clear: both;
+ height: 90px;
+ width: 862px;
+ text-align:left;
+ background-color: #fff;
+}
+/* There are two instances of the "logged in verbiage", one is always Display None, depending on the design.*/
+
+.loggedinTop
+{
+ /*display: none;*/
+}
+.loggedinBar
+{
+ display: none;
+}
+
+#MainMenu {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-repeat: repeat-x;
+ background-position: left bottom;
+ height: 34px;
+ width: 860px;
+ border-right-width: 1px;
+ border-left-width: 1px;
+ border-right-style: solid;
+ border-left-style: solid;
+ border-right-color: #C6C5C5;
+ border-left-color: #C6C5C5;
+ background-color: #FFFFFF;
+ background-image: url(images/bggradient.jpg);
+}
+#MainMenu a {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #ffffff;
+}
+#MainMenu a:link {
+ text-decoration: none;
+}
+#MainMenu a:visited {
+ text-decoration: none;
+}
+#MainMenu a:hover {
+ text-decoration: underline;
+}
+#MainMenu a:active {
+ text-decoration: none;
+}
+
+#ulMainNav {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: bold;
+ text-align:left;
+ margin: 0px;
+ padding: 0px;
+ list-style-type: none;
+ width: 860px;
+ height: 34px;
+ background-image:url(images/bggradient.jpg);
+ background-position:left bottom;
+ background-repeat:repeat-x;
+}
+
+#ulMainNav li{
+ /*background-image:url(images/bggradient.jpg);
+ background-position:left bottom;
+ background-repeat:repeat-x;*/
+ border-right:1px solid #FFFFFF;
+ display:inline;
+ float:left;
+ font-family:Arial,Helvetica,sans-serif;
+ font-size:10px;
+ font-weight:bold;
+ height:26px;
+ line-height:11px;
+ list-style-type:none;
+ margin:0px;
+ padding:4px 8px;
+ white-space:pre;
+ width:auto;
+}
+
+
+.tableMain {
+ border: 1px solid #666666;
+ width: 838px;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #666666;
+ background:#FFFFFF;
+ margin-top: auto;
+ margin-right: auto;
+ margin-bottom: 10px;
+ margin-left: auto;
+}
+.tableMain th{
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ border-bottom-color: #666666;
+ background-image:url(images/tablehdr_bg.jpg);
+ background-position:left bottom;
+ background-repeat:repeat-y;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 11px;
+ font-weight:bold;
+ text-transform:uppercase;
+ text-align:left;
+ color: #FFFFFF;
+ padding-left: 5px;
+}
+.tableMain caption {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16px;
+ color: #666666;
+ padding: 2px;
+ font-weight: bold;
+ text-align: left;
+}
+.tableMain a{
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #666666;
+ padding: 5px;
+}
+.tableData {
+ width: 100%;
+ border-collapse: collapse;
+
+}
+
+.tableData th {
+ background-color: #9A9697;
+ background-image:url(images/reporthdr_bg.jpg);
+ background-repeat:repeat-x;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: bold;
+ line-height: 10px;
+ text-transform: uppercase;
+ color: #FFFFFF;
+ text-align: left;
+ height: 22px;
+ border-right-width: 1px;
+ border-right-style: solid;
+ border-right-color: #FFFFFF;
+}
+.tableData th a {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: bold;
+ line-height: 10px;
+ text-transform: uppercase;
+ color: #FFFFFF;
+ text-align: left;
+ height: 22px;
+}
+.tableData td{
+ border: 1px solid #CCCCCC;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #666666;
+ margin: 0px;
+ padding-top: 2px;
+ padding-right: 2px;
+ padding-bottom: 2px;
+ padding-left: 2px;
+}
+.tableData a{
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #666666;
+ padding: 5px;
+}
+.tableData a:hover{
+ text-decoration:underline;
+}
+
+
+.tableDataList {
+ width: 100%;
+ border-collapse: collapse;
+
+}
+
+.tableDataList th {
+ background-color: #9A9697;
+ background-image:url(images/reporthdr_bg.jpg);
+ background-repeat:repeat-x;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: bold;
+ line-height: 10px;
+ text-transform: uppercase;
+ color: #FFFFFF;
+ text-align: left;
+ height: 22px;
+ border-right-width: 1px;
+ border-right-style: solid;
+ border-right-color: #FFFFFF;
+}
+.tableDataList th a {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: bold;
+ line-height: 10px;
+ text-transform: uppercase;
+ color: #FFFFFF;
+ text-align: left;
+ height: 22px;
+}
+.tableDataList td{
+ border: 1px solid #CCCCCC;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #666666;
+ padding-top: 0px;
+ padding-right: 5px;
+ padding-bottom: 0px;
+ padding-left: 5px;
+ text-align:left;
+
+
+}
+.tableDataList a{
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #666666;
+ text-align: left;
+ margin-left:0px;
+ padding-left:0px;
+}
+.tableDataList a:hover{
+ text-decoration:underline;
+}
+.tableDataList p{
+
+}
+
+
+
+#tableFormLogin {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ padding: 5px;
+ width: 370px;
+ border: 1px solid #666666;
+ margin-top: 20px;
+ margin-left: 80px;
+}
+#tableFormLogin th{
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ border-bottom-color: #666666;
+ background-image:url(images/tablehdr_bg.jpg);
+ background-position:bottom;
+ background-repeat:repeat-y;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 11px;
+ font-weight:bold;
+ text-transform:uppercase;
+ text-align:left;
+ color: #FFFFFF;
+
+}
+#tableFormLogin td{
+ border: none;
+}
+#tableFormDataLogin {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #666666;
+ padding: 5px;
+ width: 100%;
+ border:none;
+}
+
+#tableForm, .tableForm{
+ border: 1px solid #666666;
+ width: 700px;
+ margin-right: auto;
+ margin-left: auto;
+ background-color: #FFFFFF;
+ margin-bottom: 10px;
+}
+#tableForm td, .tableForm td{
+ padding-top:0px;
+}
+#tableForm th, .tableForm th{
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ border-bottom-color: #666666;
+ background-image:url(images/tablehdr_bg.jpg);
+ background-position:bottom;
+ background-repeat:repeat-y;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 11px;
+ font-weight:bold;
+ text-transform:uppercase;
+ text-align:left;
+ color: #FFFFFF;
+ padding-left: 5px;
+}
+#tableFormData, .tableFormData{
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #666666;
+ padding: 3px;
+ width: 100%;
+}
+
+
+.formHeadings{
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 11px;
+ color: #666666;
+ padding: 5px;
+ width: 250px;
+ font-weight: bold;
+ text-align: right;
+ text-transform: capitalize;
+ /*background-color: #FFFFFF;*/
+ background-position: top;
+ vertical-align: top;
+}
+.formButtons, .formButtons a, .formButtons a:visited{
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #666666;
+ float: left;
+ width: 90px;
+ display: block;
+ vertical-align: text-bottom;
+
+}
+.formButtons a:hover{
+text-decoration:underline;
+}
+#tableLogData {
+ border:none;
+ width: 320px;
+}
+
+
+#copyright {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: normal;
+ text-transform: uppercase;
+ color: #333333;
+ background-color: #CCCCCC;
+ text-align: center;
+ height: 15px;
+ width: 862px;
+ border: 1px solid #C6C5C5;
+ border-top: none;
+ margin: 0px 0 0 0;
+}
+#pageTitles {
+ width: 860px;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16px;
+ color: #666666;
+ padding: 10px;
+ font-weight: bold;
+ text-align: left;
+ }
+
+#loginHeader {
+ height: 90px;
+ width: 525px;
+ border: 1px solid #C6C5C5;
+ border-bottom: none;
+ text-align: left;
+ background-image: url(images/login_hdr.jpg);
+
+}
+#loginContainer {
+ width: 525px;
+ border: 1px solid #C6C5C5;
+
+}
+#loginTitles {
+ width: 500px;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16px;
+ color: #666666;
+ padding: 2px;
+ font-weight: bold;
+ text-align: left;
+ }
+.PageNumbertxt {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #666666;
+
+}
+.PageNumberNum, PageNumberNum a {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ font-weight:bold;
+ color: #4A854D;
+ padding: 3px;
+}
+
+.PageNumberNum a:hover, a:active {
+ text-decoration:underline;
+}
+.courseName {
+ font-weight: bold;
+}
+.TableMain .TableDataList .Assign {
+ text-transform: uppercase;
+ color: #E2252B;
+ font-weight: bold;
+ margin: 0px;
+ padding: 0px;
+}
+
+#pageContainer #content .tableMain .tableDataList .Assign {
+ color: #E1272C;
+ text-transform: uppercase;
+ font-weight: bold;
+}
+h1 {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #666666;
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ border-bottom-color: #990000;
+ float: left;
+}
Added: trunk/styles/GOAA/login.jsp
===================================================================
--- trunk/styles/GOAA/login.jsp (rev 0)
+++ trunk/styles/GOAA/login.jsp 2017-02-02 19:48:42 UTC (rev 1519)
@@ -0,0 +1,253 @@
+<%@ page
+ language="java"
+ contentType="text/html;charset=utf-8"
+%>
+<%@ page import="com.resolutions.ils.*" %>
+<%@ page import="com.resolutions.ils.data.*" %>
+<%@ page import="java.net.Authenticator"%>
+<%@ page import="java.net.PasswordAuthentication"%>
+<%@ page import="java.net.URL"%>
+<%@ page import="java.net.URLConnection"%>
+<%@ page import="java.net.URLEncoder"%>
+<%@ page import="java.io.DataOutputStream"%>
+<%@ page import="java.io.BufferedReader"%>
+<%@ page import="java.io.InputStreamReader"%>
+<%@ page import="java.util.Properties"%>
+<%@ page import="org.apache.log4j.Logger" %>
+<%
+ String requestURL = request.getRequestURL().toString() + "?" + request.getQueryString();
+ String co = com.resolutions.ils.Utils.getCompanyFromConfig(session, requestURL);
+//out.print(requestURL + co+"<br/>");
+ if (co != null) {
+ session.setAttribute("initURL", requestURL);
+ }
+ String initURL = (String) session.getAttribute("initURL");
+//out.print(initURL +"<br/>");
+ if (co == null) co = com.resolutions.ils.Utils.getSysConfig(session).getProperty("Company", null);
+//out.print("sysConfig " + co+"<br/>");
+ if (co == null) co = request.getParameter("co");
+//out.print("?co=" + co+"<br/>");
+ if (co != null) session.setAttribute("co", co);
+ co = (String) session.getAttribute("co");
+ Company company = Company.getCompany((co != null) ? Integer.parseInt(co):1);
+//out.print(co);
+
+ Properties sysConfig = Utils.getSysConfig(session.getServletContext(), company.getCompanyID());
+System.out.println(sysConfig);
+ boolean emailNotice = "on".equals(sysConfig.getProperty("EmailEnableRecoverPassUser", "off"));
+ boolean selfReg = "on".equals(sysConfig.getProperty("SREnable", "off"));
+
+ String action = request.getParameter("action");
+ if ("logoff".equals(action)) {
+ session.invalidate();
+ response.sendRedirect(((initURL == null)?(request.getRequestURI() + "?co="+company.getCompanyID()):initURL));
+ return;
+ }
+ String errorMsg = request.getParameter("m");
+ if (errorMsg == null) errorMsg = "";
+ if ("retrievePW".equals(action)) {
+ if (emailNotice) {
+ String email = request.getParameter("retrievePWEmail");
+ UserProfile.retrievePassword(session, company, email);
+ errorMsg = "If the email you provided is registered, credentials have been sent.";
+ }
+ }
+ ILSSession ilsSession = null;
+ String userID = request.getParameter("userID");
+ String remoteAddr = request.getRemoteAddr();
+ Logger eventsLogger = Logger.getLogger("EVENTS");
+ if (userID != null) {
+ String userPw = request.getParameter("userPw");
+ if ("admin".equals(userID) || !"on".equals(Utils.getSysConfig(session.getServletContext(), company.getCompanyID()).getProperty("AlternativeLoginValidationEnable", "off"))) {
+ // internal validation
+ ilsSession = ILSSession.login(company.getCompanyName(), userID, userPw);
+ }
+ else {
+ ilsSession = performAltValidation(company.getCompanyName(), userID, userPw, Utils.getSysConfig(session.getServletContext(), company.getCompanyID()));
+ }
+ if (ilsSession == null) {
+ errorMsg = "Your sign in information is not valid. Please try again.";
+ eventsLogger.info("Failed Primary Login Attempt, User: " + userID + "; from: " + remoteAddr);
+ }
+ else if (!ilsSession.getCurrentUserProfile().isSecondaryValidationOverride() && !"admin".equals(userID) && "on".equals(Utils.getSysConfig(session.getServletContext(), company.getCompanyID()).getProperty("SecondaryLoginValidationEnable", "off"))) {
+ String ipExceptions = Utils.getSysConfig(session).getProperty("SecondaryLoginValidationIPExceptions", "");
+ boolean match = false;
+ for (String p : ipExceptions.split("\n")) {
+ p = p.trim();
+ if (p.length() < 1) continue;
+ match = (p.endsWith("*"))
+ ? remoteAddr.startsWith((p.substring(0,p.length()-1)))
+ : remoteAddr.equals(p);
+ if (match) break;
+ }
+ if (!match) {
+ session.setAttribute("preliminaryILSSession", ilsSession);
+ String redirectURL = Utils.getSysConfig(session.getServletContext(), company.getCompanyID()).getProperty("SecondaryLoginValidationURL", "");
+ out.print("<html><head><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL="+redirectURL+"\"></head></html>");
+ return;
+ }
+ }
+ session.setAttribute("ilsSession", ilsSession);
+ if (ilsSession != null) eventsLogger.info("Successful Login, User: " + ilsSession.getCurrentUserProfile().getUserProfileNum() + "; from: " + remoteAddr);
+ }
+ ilsSession = (ILSSession)session.getAttribute("ilsSession");
+ if (ilsSession != null) {
+ out.print("<html><head><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=employee.jsp\"></head></html>");
+ return;
+ }
+%>
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title><%= company.getCompanyName() %>eLearning Portal</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link href="lms_style.css" rel="stylesheet" type="text/css">
+<link href="jquery.keypad.alt.css" rel="stylesheet">
+<script src="jquery-1.11.1.min.js"></script>
+<script src="jquery.plugin.js"></script>
+<script src="jquery.keypad.js"></script>
+<script type="text/javascript" src="crosswire.js"></script>
+<script type="text/javascript">
+
+function retrievePW() {
+ <% if (emailNotice) { %>
+ inputBox("To recover your login credentials, contact <br/><%=company.getCompanyAdminContactName()%> at <%=company.getCompanyAdminContactPhone()%> <br/>or <a href=mailto:<%=company.getCompanyAdminContactEMail()%>><%=company.getCompanyAdminContactEMail()%></a> <br/>or please provide your registered email address<br/>", 3, 80, 1, 'retrievePWComplete');
+ <% } else { %>
+ ps('Forgot your password? Contact <%=company.getCompanyAdminContactName()%> at <%=company.getCompanyAdminContactPhone()%> or <a href=mailto:<%=company.getCompanyAdminContactEMail()%>><%=company.getCompanyAdminContactEMail()%></a>','1');
+ <% } %>
+}
+
+function retrievePWComplete(resultObject) {
+ email = resultObject.value;
+ document.getElementById('retrievePWEmail').value=email;
+ if (email.length > 0) {
+ document.retrievePWForm.submit();
+ }
+}
+
+</script>
+</head>
+
+<body style="margin-top:75px; text-align:left;" onload="init();">
+<div style="width:527px; margin-left:30%;">
+<div id="loginHeader"> <img src="<%= company.getCompanyLogoURL() %>" width="147" height="67" alt="Company logo"></div>
+<div id="loginContainer">
+ <form name="login" method="post" action="<%= (initURL == null)?"login.jsp":initURL %>">
+ <table cellpadding="0" cellspacing="0" id="tableFormLogin">
+ <tr>
+ <th>Login</th>
+ </tr>
+ <tr>
+ <td valign="top"><table id="tableLogData">
+ <tr>
+ <td class="formHeadings">User ID:</td>
+ <td><input class="coursetxt" id="userID" name="userID" type="text" value="" size="30"/></td>
+ </tr>
+ <tr>
+ <td class="formHeadings">Password:</td>
+ <td><input class="coursetxt" id="userPW" name="userPw" type="password" value="" size="30"/></td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td style="white-space: nowrap;"><%
+if (selfReg) {
+%>
+ <span><a href="selfregistration.jsp" class="formButtons">Create Account</a></span>
+ <%
+}
+%>
+ <span style="float:right; margin: 0px 5px 0px 0px;"><a href="#" class="formButtons" onClick="retrievePW();">Forgot Password</a></span></td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td><input name="GO2" value="GO" type="image" src="images/login_btn.gif" width="66" height="24">
+ <input name="clear2" value="clear" type="image" src="images/cancel_btn.gif" /></td>
+ </tr>
+ <tr>
+ <td colspan="2"><span class="instructiontxt"><%= errorMsg %></span></td>
+ </tr>
+ </table></td>
+ </tr>
+ </table>
+ <div id="coursetxtKeypad"></div>
+ <script>
+ $('#coursetxtKeypad').keypad({
+ showAnim: '',
+ separator: '|',
+ prompt: 'Touch Screen Keypad',
+ layout: ['1|2|3', '4|5|6', '7|8|9', $.keypad.CLEAR + '|0|' + $.keypad.BACK],
+ target: $('.coursetxt:first')
+ });
+ var keypadTarget = null;
+ $('.coursetxt').focus(function() {
+ if (keypadTarget != this) {
+ keypadTarget = this;
+ $('#coursetxtKeypad').keypad('option', {target: this});
+ }
+ });
+ </script>
+ </form>
+ <div id="copyright" style="width:100%"> <%= company.getCompanyCopyright() %> </div>
+ </div>
+</div>
+<div style="visibility:hidden; display:none">
+ <form name="retrievePWForm" method="post" action="<%= (initURL == null)?"login.jsp":initURL %>">
+ <input type="hidden" name="action" value="retrievePW"/>
+ <input type="hidden" id="retrievePWEmail" name="retrievePWEmail" value=""/>
+ </form>
+</div>
+<script type="text/javascript">
+
+function init() {
+ document.getElementById('userID').select();
+ document.getElementById('userID').focus();
+}
+</script>
+</body>
+</html>
+<%!
+private ILSSession performAltValidation(String companyName, String userID, String userPw, java.util.Properties sysConfig) {
+ try {
+ URL url = new URL(sysConfig.getProperty("AlternativeLoginValidationURL"));
+
+ URLConnection urlConn = url.openConnection();
+ urlConn.setDoInput(true);
+ urlConn.setDoOutput(true);
+ urlConn.setUseCaches(false);
+ urlConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
+ DataOutputStream outStream = new DataOutputStream(urlConn.getOutputStream());
+
+ StringBuffer content = new StringBuffer();
+
+ content.append("ID=").append(URLEncoder.encode(userID, "UTF-8"));
+ content.append("&PW=").append(URLEncoder.encode(userPw, "UTF-8"));
+
+ outStream.writeBytes(content.toString());
+ outStream.flush();
+ outStream.close();
+
+ BufferedReader rd = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
+
+ StringBuffer responseBuffer = new StringBuffer();
+ String line;
+ while ((line = rd.readLine()) != null) {
+ responseBuffer.append(line + "\n");
+ }
+ String response = responseBuffer.toString().trim();
+ outStream.close();
+ rd.close();
+ int id = -1; try { id = Integer.parseInt(response); } catch (Exception e) {}
+ if (id > -1) {
+ String idPrefix = sysConfig.getProperty("AlternativeLoginIDPrefix");
+ String altLocalPassword = sysConfig.getProperty("AlternativeLoginLocalPassword");
+ return ILSSession.login(companyName, idPrefix+Integer.toString(id), altLocalPassword);
+ }
+ System.out.println(response);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ return null;
+}
+%>
More information about the Ils-source
mailing list