bplist00#_WebSubresources_WebMainResource  _WebResourceResponse_WebResourceData^WebResourceURL_WebResourceMIMETypeO%bplist00 Y$archiverX$versionT$topX$objects_NSKeyedArchiver _WebResourceResponse )/078?GOZNS.objectsWNS.keys@ABCDEFHIJKLMN VServer]Last-Modified]Accept-RangesTDate^Content-LengthTEtag\Content-Type_Microsoft-IIS/6.0_Mon, 03 Oct 2005 05:07:18 GMTUbytes_Tue, 02 May 2006 14:39:11 GMTU10807_"9f9acc53d8c7c51:1407"12^__`6_NSMutableDictionary\NSDictionary12bcc6_NSHTTPURLResponseInternal12effg6_NSHTTPURLResponse]NSURLResponse$)2DILbd+-/1glu  /4AUu{ 'h5O*7/*************************************************** * Imported Rules ****************************************************/ @import "/css/applications.css"; /* applinks with icons */ @import "/css/columns.css"; /* portal three col layout */ @import "/css/layout.css"; /* complete site formatting */ @import "/css/icons.php"; /* application icons, dynamically generated for each subscription */ @import "/css/blocks.css"; /* styles for individual portal blocks */ @import "/css/zebra.css"; /* zebra table styles */ /*************************************************** * Global Text Elements ****************************************************/ body { margin: 0; padding: 0; color: #333333; font: small/1.2 arial, verdana, georgia, sans-serif; voice-family:"\"}\""; voice-family:inherit; /*Box Model Hack to accomodate IE5/Win*/ font: medium/1.2 arial, verdana, georgia, sans-serif; } html>body { /*Be nice to Opera*/ font-size:medium; } .clear { clear: both; height:1px; } body#lsc { background: #FFFFFF url(/images/background.png) repeat-x; } img { border: 0; } #page {} #container { margin: 1em 0; } /*************************************************** * Link Elements ****************************************************/ /** this are left to the browswer defaults, LONG LIVE STANDARD UI ELEMENTS */ a:link { } a:visited { } a:hover { background: #EBF2FF; } a:active { } /** microlink for to indicate offsite links */ /* a[href^="http:"] { padding-right: 10px; background: transparent url(/images/aoutside.gif) no-repeat 100% 50%; } */ /** footnote text */ .footnote a:link { color: #999999; } .footnote a:visited { color: #999999; } .footnote a:hover { color: #999999; } .footnote a:active { color: #999999; } /*************************************************** * Accessibility Links ****************************************************/ /* www.molly.com left shift */ .skipto { float: left; margin: -999em; } /*************************************************** * Heading Text Elements ****************************************************/ /** h3 is hidden in this format and is used for accessbility */ h3 { display: none; } /** h4 is used in the form headings */ .formcontainer h4 { margin: .5em 0 0 0; padding: 0 0.5em; border-top: 1px solid #999999; font-size: 110%; font-weight: bold; } .formcontainer h4.top { margin: 0; padding: 0.5em 0 0 0.5em; border: none; } /*************************************************** * Global Layout ****************************************************/ /** ---- standard form formatting ---- */ /** the height declaration here is used to prevent a weird IE bug with the suckerfish causing the bottom of the dl list to disappear */ #adminforms { margin-left: 11em; height: 90%; } #adminmenu { float: left; width: 10em; border-right: 1px solid #999999; margin-left: 1em; } #adminmenu dl { margin: 0; } #adminmenu dt.top { background: #F5F5F5; margin:0; padding: 0 .5em; font-weight: bold; border-bottom: 1px solid #CCCCCC; } #adminmenu dt { background: #F5F5F5; margin: 1em 0 0 0; padding: 0 0 0 1em; font-weight: bold; border-bottom: 1px solid #CCCCCC; } #adminmenu dd { font-size: 80%; margin:0; padding: 0; border-bottom: 1px solid #FFFFFF; } #adminmenu a { display: block; padding: 0 .25em 0 1.5em;} #adminmenu a:link { color: #333333; text-decoration: none; } #adminmenu a:visited { color: #333333; text-decoration: none; } #adminmenu a:hover { color: #333333; text-decoration: none; background: #EBF2FF; } #adminmenu a:active { color: #3366FF; text-decoration: none; } /** ---- footer ---- */ #footer { text-align: center; font-size: 80%; margin-top: 1em; padding: 0.5em; } #footer hr { display: none; } #footer span {} /*************************************************** * Paragraph Text Elements ****************************************************/ p.footnote { margin-left: 1em; padding-left: 19px; color: #999999; font-size: 80%; line-height: 16px; background: url(/images/site/info_grey_16.png) no-repeat 0 50%; } p.infonote { margin-left: 1em; padding: 3px; padding-left: 21px; font-size: 80%; line-height: 16px; background: #CCFFCC url(/images/site/info_16.png) no-repeat 2px 50%; border: 1px solid #009900; } .formcontainer p { margin: 1em; line-height: 1.2; } .forminput p, .formerror p { margin:0; padding: 0 0 0 14em; font-size: 80%; color: #666666; } /*************************************************** * Form Elements ****************************************************/ form { margin: 0; padding: 0; } .formcontainer { border: 1px solid #999999; -moz-border-radius: 8px; padding: 0; margin: 0 5em 1em 1em; background: #F5F5F5; } .forminput, .formcheck, .formerror, .formstatic { margin: 8px 0 0 1em; font-size: 80%; vertical-align: middle; } .forminput br, .formcheck br, .formerror br, .formstatic br { display: none; } .forminput label, .formerror label, .formstatic .label { width: 11em; display: block; float: left; text-align: right; vertical-align: middle; cursor: pointer; cursor: hand; } .formstatic .data { padding: 0 .5em; color: #000000; } .formcheck { margin: 4px 0 0 12em; } .sizecontrol { display: block; text-align: right; padding-right: 2em; } /* ---- input elements, basic ---- */ .forminput input, .forminput select, .forminput textarea { margin: 0 .25em; padding: 2px 12px 2px 2px; border: solid 1px #999999; background: #FFFFFF url(/images/form.input.normal.png) no-repeat top left; } .forminput select { padding: 1px 0 1px 2px; } form#parentforms input:focus { } /* includes suckerfish focus for IE */ .forminput input:focus, .forminput input.sffocus, .forminput select:focus, .select input.sffocus, .forminput textarea:focus, .forminput textarea.sffocus { border-color: #000000; background: #D6D6FF; } /* ---- input elements, error ---- */ .formerror { } .formerror input, .formerror input:focus, .formerror select, .formerror select:focus, .formerror textarea, .formerror textarea:focus { margin: 0 .25em; padding: 2px 2px 2px 12px; border: solid 1px #FF6600; background: #FFFFCC url(/images/form.alert.png) no-repeat 3px 50%; } /* locate the error image at the top, and not centered */ .formerror textarea, .formerror textarea:focus { background: #FFFFCC url(/images/form.alert.png) no-repeat 3px 3px; } /* ---- submit buttons ---- */ .formsub { background: #E7E7E7; font-size: 80%; padding: .5em .5em .5em 12em; margin: 1em 0 0 0; border-top: 1px solid #999999; -moz-border-radius: 0 0 8px 8px; } .formsub input { } a.cancelbutton { color: red; } /*************************************************** * Form Information Messages ****************************************************/ .formhelp { font-size: 80%; } .formhelp label { border-bottom: 1px dashed #333333; cursor: pointer; cursor: hand;} p.forminfo { margin: .5em 5em; padding: 5px 5px 5px 45px; background: #CCFFCC url(http://style.learningstation.com/png/info_32.png) no-repeat 5px 50%; border: 1px solid #009900; font-size: 80%; min-height: 26px; } .errormessage { margin: .5em 2em; background: #FFFFCC url(/images/site/alert_32.png) no-repeat 15px 15px; border: 1px solid #FF6600; } .errormessage label { border-bottom: 1px dashed #FF6600; cursor: pointer; cursor: hand; } .errormessage p { margin: 18px 60px 0 60px; font-weight: bold; font-size: 80%; } .errormessage ul { margin-top: 0; font-size: 80%; } .errormessage li { margin: 5px 0 0 45px; } #formCaptcha { width: 204px; margin-left: 12.25em; padding: 2px; border: solid 1px #999999; background: #FFFFFF url(/images/form.input.normal.png) no-repeat top left; } #formCaptchaText{ margin-left: 12.25em; padding: 2px; } /*************************************************** * Active Page Elements * things that fade and flash ****************************************************/ /** this is a small 'now processing' that hides until the form is posted */ #formPosting { visibility: hidden; position: absolute; top: 0px; left: 0px; width: 220px; font-weight: bold; margin: 3px; padding: 2px; padding-left: 25px; border: 1px solid #FF0000; background: #FDE6E7 url(/images/waiting_anim.gif) no-repeat 0 50%; } .formresult { margin: 1em; padding: 2px 2px 2px 20px; background: #CCFFCC url(/images/site/info_16.png) no-repeat 2px 50%; border: 1px solid #009900; font-size: 80%; } /*************************************************** * Individual Pages ****************************************************/ #launcher_splash { background: #FFFFFF url(/images/gradient.png) repeat-x; } #launcher_splash #splash { margin: 90px 60px; } #launcher_splash h1 { margin: 0; padding: 0; height: 50px; width: 500px; background: url(/images/learningstation.png) no-repeat; } #launcher_splash h1 span { display: none; } #launcher_splash h2 { margin: 0; padding: 0 1em; font-weight: normal; font-size: 90%; } #launcher_splash #splash_1 { position: absolute; top: 90px; left: 15px; width: 44px; height: 44px; background: url(/images/site/loading_32.gif) no-repeat; } .plugin_list { border: 1px solid #999999; margin: 1em; border-collapse: collapse; } .plugin_list th { text-align: left; border-bottom: 1px solid #999999; background: #CCCCCC; } .plugin_rune { text-align: center; width: 80px; } .plugin_detect { text-align: center; width: 15em; border-left: 1px solid #999999; border-right: 1px solid #999999; font-size: 80%; } .plugin_description { padding: 0 .25em; font-size: 80%; } #faq_topquestions { margin: 0; padding: .5em; background: #F5F5F5; float: right; } #faq_topquestions blockquote { width: 25em; margin: 0; padding: 0.5em; border: 1px dashed #999900; font-size: 70%; background: #FDFDED; } #faq_topquestions p { margin: 0; font-weight: bold; } #faq_topquestions ol { margin: 0; padding: 0 2em; } #faq_topquestions li { margin: 0.2em 0 0 0; line-height: 1.4; } #faq_questionlist { margin: 1em; } #faq_questionlist dt { margin: .75em 0 0 0; line-height: 1.2; font-weight: bold; border-bottom: 1px solid #999900; } #faq_questionlist dd { margin: .2em 1.5em; line-height: 1.2; font-size: 90%; } #faq_questionlist ol { padding:0; } #faq_questionlist li { margin-top: .5em; } #faq_questionlist div { font-weight: bold; } h5.faq_question { margin: .5em 1em; padding: 0; border-bottom: 1px solid #999900; } .faq_button { margin: .5em 1em; } .faq_button input { width: 5em; } .faq_button p { display: inline; margin: 0; } #print { float: right; margin: 0 1em; } /*************************************************** * Urge User Upgrade ****************************************************/ #U3 { display: none; } _3http://kportal.learningstation.com/css/standard.cssXtext/css O.bplist00 Y$archiverX$versionT$topX$objects_NSKeyedArchiver _WebResourceResponse )/078?GOZNS.objectsWNS.keys@ABCDEFHIJKLMN VServer]Last-Modified]Accept-RangesTDate^Content-LengthTEtag\Content-Type_Microsoft-IIS/6.0_Wed, 31 Aug 2005 16:18:54 GMTUbytes_Tue, 02 May 2006 14:39:11 GMTT1179_"9e7aafae47aec51:1407"12^__`6_NSMutableDictionary\NSDictionary12bcc6_NSHTTPURLResponseInternal12effg6_NSHTTPURLResponse]NSURLResponse$)2DILbd+-/1qv %*9>K_0h>Obody#lsc { background: #FFFFFF url(/styles/kportal/background.png) repeat-x; } #container { padding-top: 10px; } /* ---- Logo ---- */ #logo { padding-bottom: 3px; } #logo h1 { margin: 0; padding: 0; width: 400px; height:70px; background: url(/styles/kportal/logo.png) no-repeat; } #logo h1.admin { margin: 0; padding: 0; width: 400px; height:70px; background: url(/styles/kportal/logo_admin.png) no-repeat; } #logo h1 span { padding: 0; width: 0; display: none; } #logo small { background: #006699; color: #FFFFFF; display: block; font-size: 90%; margin: 0; padding: 3px 0 0 4em; } .block { margin: 0 5px 15px 5px; border: 1px solid #006699; } .block h4 { border-bottom: 1px solid #CC9900; background: #E8E8FF; } #launcher_splash { margin: 2em 0; background: #FFFFFF; } #launcher_splash #splash { margin: 0; } #launcher_splash h1 { height: 200px; width: 520px; background: url(/styles/kportal/splash.png) no-repeat; } #launcher_splash h1 span { display: none; } #launcher_splash h2 { background: #00495C; color: #FFFFFF; margin: 1em 0; padding: .5em 1em; font-weight: bold; font-size: 120%; } #launcher_splash #splash_1 { display: none; } _=http://kportal.learningstation.com/styles/kportal/kportal.cssO/bplist00 Y$archiverX$versionT$topX$objects_NSKeyedArchiver _WebResourceResponse )/078?GOZNS.objectsWNS.keys@ABCDEFHIJKLMN VServer]Last-Modified]Accept-RangesTDate^Content-LengthTEtag\Content-Type_Microsoft-IIS/6.0_Sun, 14 Aug 2005 18:55:25 GMTUbytes_Tue, 02 May 2006 14:39:11 GMTT8782_"50be47bb1a1c51:1407"12^__`6_NSMutableDictionary\NSDictionary12bcc6_NSHTTPURLResponseInternal12effg6_NSHTTPURLResponse]NSURLResponse$)2DILbd+-/1afoz~ ',;@Ma1h?O"N/** global */ var iRefreshTimer; var iSessionTimeout = 65 * 60 * 1000; // JS milliseconds + 5 minutes to pad the timer /** SESSION */ function setReload() { iRefreshTimer = setTimeout('refreshPage()',iSessionTimeout); } function resetReload() { clearTimeout(iRefreshTimer); setReload();} function refreshPage() { self.location.href = "/portal/index/"+getUnique()+"/"; } /** DISPLAY FUNCTIONS */ function showDiv(id) { if(document.getElementById) { document.getElementById(id).style.visibility = "visible"; } } function hideDiv(id) { if(document.getElementById) { document.getElementById(id).style.visibility = "hidden"; } } /** UTILITY FUNCTIONS */ function getUnique() { now = new Date(); return now.getTime(); } function trim(str) { return str.replace(/^\s*|\s*$/g,""); } /** FORM BEHAVIOUR */ function loginForm(frm) { if((frm.Password.value == '') && (frm.Username.value == '')) { return false; } /* if(frm.Password.value != '') { frm.PasswordHash.value = MD5(frm.Password.value); frm.Password.value = ''; frm.MD5.value = 1; } */ processForm(frm); return true; } function processForm(frm) { frm.Submit.disabled = true; showDiv('formPosting'); return true; } function formFocus() { if (document.forms.length > 0) { var field = document.forms[0]; for (var i = 0; i < field.length; i++) { if ( (field.elements[i].type == "text") || (field.elements[i].type == "password") || (field.elements[i].type == "textarea") || (field.elements[i].type == "select")) { if(field.elements[i].value != '') { continue; } document.forms[0].elements[i].focus(); break; } } } } function increaseTextareaHeight(areaid, add) { // used with a nod to alex king, slightly updated with offsetHeight thisTextarea = document.getElementById(areaid); if (thisTextarea) { newHeight = thisTextarea.offsetHeight + add; thisTextarea.style.height = newHeight.toString() + "px"; } } function decreaseTextareaHeight(areaid, subtract) { thisTextarea = document.getElementById(areaid); if (thisTextarea) { if ((thisTextarea.offsetHeight - subtract) > 50) { newHeight = thisTextarea.offsetHeight - subtract; thisTextarea.style.height = newHeight.toString() + "px"; } else { thisTextarea.style.height = "50px"; } } } function selectAllGrades(urlid) { for(i = 0; i <= 12; i++) document.matrixform['matrix[' + urlid + '][' + i + ']'].checked = true; document.matrixform['matrix[' + urlid + '][T]'].checked = true; document.matrixform['matrix[' + urlid + '][A]'].checked = true; return false; } function swapCaptcha() { document.images['captcha'].src='/portal/captcha.php?nc='+getUnique(); hideDiv('formCaptchaText'); return false; } /** PAGE EFFECTS */ // zebra tables function hasClass(obj) { var result = false; if (obj.getAttributeNode("class") != null) { result = obj.getAttributeNode("class").value; } return result; } function stripe(id) { var even = false; var evenColor = arguments[1] ? arguments[1] : "#fff"; var oddColor = arguments[2] ? arguments[2] : "#eee"; var table = document.getElementById(id); if (! table) { return; } var tbodies = table.getElementsByTagName("tbody"); for (var h = 0; h < tbodies.length; h++) { var trs = tbodies[h].getElementsByTagName("tr"); for (var i = 0; i < trs.length; i++) { if (! hasClass(trs[i]) && ! trs[i].style.backgroundColor) { var tds = trs[i].getElementsByTagName("td"); for (var j = 0; j < tds.length; j++) { var mytd = tds[j]; if (! hasClass(mytd) && ! mytd.style.backgroundColor) { mytd.style.backgroundColor = even ? evenColor : oddColor; } } } even = ! even; } } } function findZebras() { if (!document.getElementsByTagName) return; tblList = document.getElementsByTagName("table"); for (ti=0;ti?GOZNS.objectsWNS.keys@ABCDEFHIJKLMN VServer]Last-Modified]Accept-RangesTDate^Content-LengthTEtag\Content-Type_Microsoft-IIS/6.0_Wed, 13 Jul 2005 08:49:07 GMTUbytes_Tue, 02 May 2006 14:39:12 GMTT5979_"52b43bb8787c51:1407"12^__`6_NSMutableDictionary\NSDictionary12bcc6_NSHTTPURLResponseInternal12effg6_NSHTTPURLResponse]NSURLResponse$)2DILbd+-/1`eny} &+:?L`0h>O[/* * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message * Digest Algorithm, as defined in RFC 1321. * Copyright (C) Paul Johnston 1999 - 2000. * Updated by Greg Holt 2000 - 2001. * See http://pajhome.org.uk/site/legal.html for details. */ /* * Convert a 32-bit number to a hex string with ls-byte first */ var hex_chr = "0123456789abcdef"; function rhex(num) { str = ""; for(j = 0; j <= 3; j++) str += hex_chr.charAt((num >> (j * 8 + 4)) & 0x0F) + hex_chr.charAt((num >> (j * 8)) & 0x0F); return str; } /* * Convert a string to a sequence of 16-word blocks, stored as an array. * Append padding bits and the length, as described in the MD5 standard. */ function str2blks_MD5(str) { nblk = ((str.length + 8) >> 6) + 1; blks = new Array(nblk * 16); for(i = 0; i < nblk * 16; i++) blks[i] = 0; for(i = 0; i < str.length; i++) blks[i >> 2] |= str.charCodeAt(i) << ((i % 4) * 8); blks[i >> 2] |= 0x80 << ((i % 4) * 8); blks[nblk * 16 - 2] = str.length * 8; return blks; } /* * Add integers, wrapping at 2^32. This uses 16-bit operations internally * to work around bugs in some JS interpreters. */ function add(x, y) { var lsw = (x & 0xFFFF) + (y & 0xFFFF); var msw = (x >> 16) + (y >> 16) + (lsw >> 16); return (msw << 16) | (lsw & 0xFFFF); } /* * Bitwise rotate a 32-bit number to the left */ function rol(num, cnt) { return (num << cnt) | (num >>> (32 - cnt)); } /* * These functions implement the basic operation for each round of the * algorithm. */ function cmn(q, a, b, x, s, t) { return add(rol(add(add(a, q), add(x, t)), s), b); } function ff(a, b, c, d, x, s, t) { return cmn((b & c) | ((~b) & d), a, b, x, s, t); } function gg(a, b, c, d, x, s, t) { return cmn((b & d) | (c & (~d)), a, b, x, s, t); } function hh(a, b, c, d, x, s, t) { return cmn(b ^ c ^ d, a, b, x, s, t); } function ii(a, b, c, d, x, s, t) { return cmn(c ^ (b | (~d)), a, b, x, s, t); } /* * Take a string and return the hex representation of its MD5. */ function MD5(str) { x = str2blks_MD5(str); var a = 1732584193; var b = -271733879; var c = -1732584194; var d = 271733878; for(i = 0; i < x.length; i += 16) { var olda = a; var oldb = b; var oldc = c; var oldd = d; a = ff(a, b, c, d, x[i+ 0], 7 , -680876936); d = ff(d, a, b, c, x[i+ 1], 12, -389564586); c = ff(c, d, a, b, x[i+ 2], 17, 606105819); b = ff(b, c, d, a, x[i+ 3], 22, -1044525330); a = ff(a, b, c, d, x[i+ 4], 7 , -176418897); d = ff(d, a, b, c, x[i+ 5], 12, 1200080426); c = ff(c, d, a, b, x[i+ 6], 17, -1473231341); b = ff(b, c, d, a, x[i+ 7], 22, -45705983); a = ff(a, b, c, d, x[i+ 8], 7 , 1770035416); d = ff(d, a, b, c, x[i+ 9], 12, -1958414417); c = ff(c, d, a, b, x[i+10], 17, -42063); b = ff(b, c, d, a, x[i+11], 22, -1990404162); a = ff(a, b, c, d, x[i+12], 7 , 1804603682); d = ff(d, a, b, c, x[i+13], 12, -40341101); c = ff(c, d, a, b, x[i+14], 17, -1502002290); b = ff(b, c, d, a, x[i+15], 22, 1236535329); a = gg(a, b, c, d, x[i+ 1], 5 , -165796510); d = gg(d, a, b, c, x[i+ 6], 9 , -1069501632); c = gg(c, d, a, b, x[i+11], 14, 643717713); b = gg(b, c, d, a, x[i+ 0], 20, -373897302); a = gg(a, b, c, d, x[i+ 5], 5 , -701558691); d = gg(d, a, b, c, x[i+10], 9 , 38016083); c = gg(c, d, a, b, x[i+15], 14, -660478335); b = gg(b, c, d, a, x[i+ 4], 20, -405537848); a = gg(a, b, c, d, x[i+ 9], 5 , 568446438); d = gg(d, a, b, c, x[i+14], 9 , -1019803690); c = gg(c, d, a, b, x[i+ 3], 14, -187363961); b = gg(b, c, d, a, x[i+ 8], 20, 1163531501); a = gg(a, b, c, d, x[i+13], 5 , -1444681467); d = gg(d, a, b, c, x[i+ 2], 9 , -51403784); c = gg(c, d, a, b, x[i+ 7], 14, 1735328473); b = gg(b, c, d, a, x[i+12], 20, -1926607734); a = hh(a, b, c, d, x[i+ 5], 4 , -378558); d = hh(d, a, b, c, x[i+ 8], 11, -2022574463); c = hh(c, d, a, b, x[i+11], 16, 1839030562); b = hh(b, c, d, a, x[i+14], 23, -35309556); a = hh(a, b, c, d, x[i+ 1], 4 , -1530992060); d = hh(d, a, b, c, x[i+ 4], 11, 1272893353); c = hh(c, d, a, b, x[i+ 7], 16, -155497632); b = hh(b, c, d, a, x[i+10], 23, -1094730640); a = hh(a, b, c, d, x[i+13], 4 , 681279174); d = hh(d, a, b, c, x[i+ 0], 11, -358537222); c = hh(c, d, a, b, x[i+ 3], 16, -722521979); b = hh(b, c, d, a, x[i+ 6], 23, 76029189); a = hh(a, b, c, d, x[i+ 9], 4 , -640364487); d = hh(d, a, b, c, x[i+12], 11, -421815835); c = hh(c, d, a, b, x[i+15], 16, 530742520); b = hh(b, c, d, a, x[i+ 2], 23, -995338651); a = ii(a, b, c, d, x[i+ 0], 6 , -198630844); d = ii(d, a, b, c, x[i+ 7], 10, 1126891415); c = ii(c, d, a, b, x[i+14], 15, -1416354905); b = ii(b, c, d, a, x[i+ 5], 21, -57434055); a = ii(a, b, c, d, x[i+12], 6 , 1700485571); d = ii(d, a, b, c, x[i+ 3], 10, -1894986606); c = ii(c, d, a, b, x[i+10], 15, -1051523); b = ii(b, c, d, a, x[i+ 1], 21, -2054922799); a = ii(a, b, c, d, x[i+ 8], 6 , 1873313359); d = ii(d, a, b, c, x[i+15], 10, -30611744); c = ii(c, d, a, b, x[i+ 6], 15, -1560198380); b = ii(b, c, d, a, x[i+13], 21, 1309151649); a = ii(a, b, c, d, x[i+ 4], 6 , -145523070); d = ii(d, a, b, c, x[i+11], 10, -1120210379); c = ii(c, d, a, b, x[i+ 2], 15, 718787259); b = ii(b, c, d, a, x[i+ 9], 21, -343485551); a = add(a, olda); b = add(b, oldb); c = add(c, oldc); d = add(d, oldd); } return rhex(a) + rhex(b) + rhex(c) + rhex(d); } function valid_js() { // anything that claims NS 4 or higher functionality better work if (navigator.userAgent.indexOf("Mozilla/") == 0) { return (parseInt(navigator.appVersion) >= 4); } return false; }_,http://kportal.learningstation.com/js/md5.jsO;bplist00 Y$archiverX$versionT$topX$objects_NSKeyedArchiver _WebResourceResponse )/078?GOZNS.objectsWNS.keys@ABCDEFHIJKLMN VServer]Last-Modified]Accept-RangesTDate^Content-LengthTEtag\Content-Type_Microsoft-IIS/6.0_Fri, 18 Nov 2005 16:12:26 GMTUbytes_Tue, 02 May 2006 14:39:12 GMTT5750_"d1d617de5aecc51:1407"12^__`6_NSMutableDictionary\NSDictionary12bcc6_NSHTTPURLResponseInternal12effg6_NSHTTPURLResponse]NSURLResponse$)2DILbd+-/1lqz   $27FKXl %)=hKOvvar iPollRate = 30000; // milliseconds to poll the child windows var aOpenApps = new Array(); // hold list of current applications var sAppKey = ''; // a copy of the session application key used to allow apps to run var bShowUpdates = false; // open an application function launchWebApp(sDestination,sKey,sHandler,sAppID,sWidth,sHeight) { sAppKey = sKey; // the reported needs this string to authenticate // if the app is already running, we simply focus on it if(aOpenApps[sAppID] && !aOpenApps[sAppID].oWindow.closed) { aOpenApps[sAppID].oWindow.focus(); // IE 4 on windows doesn't like this return false; } updateScreenTimer(sAppID,'0 s'); params = getWindowParams(sHandler,sWidth,sHeight); aOpenApps[sAppID] = new appWindow( window.open(sDestination,sAppID,params), sAppID, new Date() ); // start polling (it might already be running) pollingTimer = setTimeout('pollWindows()',iPollRate); // start the window polling // if the popup was blocked, allow the href to activate if((aOpenApps[sAppID].oWindow == null) || (typeof(aOpenApps[sAppID].oWindow) == 'undefined')) { return true; } return false; // this prevents the href from triggering so that only our onclick opened a window } function launchAppCache(iAppID) { self.location.href = "/launcher/appcache/appcache.lsc?&ContentID=" + iAppID + "&Handler=AppCache&/" + getUnique() + ".lsc"; return false; // exit the function and bypass the window opening } function getWindowParams(handler,appW,appH) { if(trim(appW) == '') { appW = 800; } if(trim(appH) == '') { appH = 600; } // determine screen size s = getWindowSize(); // if appwidth and appheight are percentages, then we convert to pixel size if( ( typeof(appH) == 'string' ) && (appH.indexOf('%') != -1 ) ) { appH = Math.floor(s.screenH*parseFloat(appH)/100); } if( ( typeof(appW) == 'string' ) && (appW.indexOf('%') != -1 ) ) { appW = Math.floor(s.screenW*parseFloat(appW)/100); } // if the app size is larger than the window if(appH > s.screenH) { appH = s.screenH; } if(appW > s.screenW) { appW = s.screenW; } // center this window iLeft = Math.floor(( s.screenW - appW ) / 2); iTop = Math.floor(( s.screenH - appH ) / 2); // fix the centering for fullsize windows if(s.ScreenW == appW) { iLeft = 0; } if(s.ScreenH == appH) { iTop = 0; } switch (handler) { case "Direct": case "Web": case "External": sParams = "left=" + iLeft + ",top=" + iTop + ",menubar,toolbar,scrollbars,resizable,width="+appW+",height="+appH; break; case "Citrix": sParams = "left=" + iLeft + ",top=" + iTop + ",width="+appW+",height="+appH; break; default : sParams = ""; } return sParams; } // fetch the current window size function getWindowSize() { var userScreen = {screenH:800, screenW:600}; // default size, a worst case guess if(window.screen) // IE { userScreen.screenH = window.screen.availHeight; userScreen.screenW = window.screen.availWidth; } else if(navigator.appName == "Netscape" && parseInt(navigator.appVersion)==3 && navigator.javaEnabled()) { // 10 and 60 are guesses at the amount of chrome showing var jToolkit = java.awt.Toolkit.getDefaultToolkit(); var jScreenSize = jToolkit.getScreenSize(); userScreen.screenH = jScreenSize.height-60; userScreen.screenW = jScreenSize.width-10; } return userScreen; } // poll and collect info about open windows // the time caclulation is only for display function pollWindows() { d = new Date(); bAppOpen = false; for(appid in aOpenApps) { if(aOpenApps[appid].bClosed) { continue; } // skip ones we have already seen as closed if(!aOpenApps[appid].oWindow.closed) // if the window is still open { iSeconds = Math.round( (d.getTime() - aOpenApps[appid].oDate.getTime()) / 1000 ); aOpenApps[appid].iDuration = iSeconds; updateScreenTimer(aOpenApps[appid].sAppID,iSeconds.toString() + ' s'); bAppOpen = true; // this lets us know that at least one app is open } else // unset the window from the open app array, show the status { aOpenApps[appid].bClosed = true; updateScreenTimer(aOpenApps[appid].sAppID,'closed'); } } // windows are up to date, send the info to the server reportDuration(); // close down the polling if no apps are open // else repeat at the polling refresh rate if(bAppOpen) { setTimeout('pollWindows()',iPollRate); } } // assemble and post the data to the server function reportDuration() { eventcsv = ''; for(appid in aOpenApps) { if(!aOpenApps[appid].bClosed) { eventcsv += aOpenApps[appid].iEventKey+','; } } eventcsv = eventcsv.slice(0, -1); updateUrl = 'http://'+ location.host +'/launcher/index/duration/'+sAppKey+'/keylist/'+eventcsv+'/nc/'+getUnique()+'.png'; updateScreenList(eventcsv); document.images['duration'].src = updateUrl; } function updateScreenTimer(id,s) { if(document.getElementById && bShowUpdates){ document.getElementById('timer_' + id).innerHTML = s; } } function updateScreenList(s) { if(document.getElementById && bShowUpdates) { document.getElementById('event_list').innerHTML = s; } } function registerEventKey(appid,eventkey) { if(aOpenApps[appid]) { aOpenApps[appid].iEventKey = eventkey; } } // application window function appWindow(oWindow,sAppID,oDate) { this.oWindow = oWindow; this.sAppID = sAppID; this.oDate = oDate; this.bClosed = false; this.iDuration = 0; this.iEventKey = ''; // this will be updated from the launcher window }_8http://kportal.learningstation.com/js/launcher.window.js !"O(bplist00 Y$archiverX$versionT$topX$objects_NSKeyedArchiver _WebResourceResponse )/078?GOZNS.objectsWNS.keys@ABCDEFHIJKLMN VServer]Last-Modified]Accept-RangesTDate^Content-LengthTEtag\Content-Type_Microsoft-IIS/6.0_Sat, 16 Jul 2005 16:32:07 GMTUbytes_Tue, 02 May 2006 14:39:12 GMTS153_"a89a28e8238ac51:1407"12^__`6_NSMutableDictionary\NSDictionary12bcc6_NSHTTPURLResponseInternal12effg6_NSHTTPURLResponse]NSURLResponse$)2DILbd *,.0kpy %49FZz *h8OPNG  IHDR(4gAMA7tEXtSoftwareAdobe ImageReadyqe<PLTEU~tRNS@f IDATxb`0OmYIENDB`_8http://kportal.learningstation.com/launcher/duration.pngYimage/png$%&'(_WebResourceTextEncodingNameUUTF-8O' Education Desktop User Privacy Agreement

Portal Tools

Privacy Statement

As used in this Privacy Policy, “we” or “us” refers to LearningStation.com, Inc., a leading applications service provider (ASP) to the educational market. We offer one of the industry’s most comprehensive suites of education-oriented applications, providing students and teachers access to instructional applications, content and professional development titles through our internet web site at www.learningstation.com. We also offer productivity tools to assist teachers. These educational applications and productivity tools are provided either directly from our web site or from the web site of one of our content providers using a link from our web site. We also offer our users the ability to store content on our web site.

Our Information Collection Practices

We do not request any information from students using our web site.

We do not deposit cookies from our web site on your hard drive. (A cookie is a piece of data stored on the user’s hard drive containing information about the user.)

We do issue a block of User IDs and Passwords to our client schools and assign a unique User ID and Password to each authorized user, including each student and faculty member desiring to have access to our web site.

We do employ technology on our web site that enables us to track the activity of each User ID accessing our site. This activity data allows us to understand how our site is being used and make decisions regarding site operation and future modifications. We share this activity data with our client schools and, in aggregate form, with prospective clients. This activity data enables us – and our client schools – to evaluate which applications are being used so that we may determine the most beneficial use of the web site.

We do use another company to host our web site. This hosting company may collect and maintain information associated with activity of our web site, such as, for example, information collected by server logs. If you would like to find out more about the privacy practices of our hosting company, please contact us using the contact information below and we will provide you with the name of our current hosting company so that you may contact them to inquire about their privacy practices.

It is possible to use our web site to contact us and/or make suggestions to us. When you use our web site to contact us, we ask you to provide such information as: your name, position, company or school name, address, phone number, fax number, email address, and the products or services that you are interested in learning more about. We use this information to respond to your request. We do not distribute this information to third parties. If you choose to submit suggestions or recommendations to us via our web site then by doing so you agree that we may implement or make use of your suggestions or recommendations without compensation or attribution to you.

If an authorized user forgets his or her password, it is possible for the user to request his password using our site. In this event, we ask the authorized user to provide his or her name, user ID, school name, phone number, email address and any comments that the user wants to submit. We use this information to verify the authorization of the requestor and to respond to the request. We do not distribute this information to third parties.

Some portions of our site may allow users to send email messages, post messages to a general message board, or participate in chat room services. Users sending such email messages, posting to such bulletin boards, or participating in such on-line chat sessions should recognize that any information disclosed by the user in such messages, posts or chat sessions, as well as the user’s email address, may be accessible to others viewing the message, message boards or participating in the chat session.

User Stored Information

We provide a limited amount of information storage for users of our web site. We do not routinely harvest or otherwise monitor information stored on our site by our users, but such information is copied during the normal course of our back up routines. All such information is removed from our web site after each user’s access authorization expires, although we do not delete user stored information from our back up media after transfer thereto.

Linked Sites

For the convenience of our users, our web site includes links to a number of web sites operated by other companies. Also, many of the applications we make available to our clients are made available from the web sites of our content providers through our web site. For example, an authorized user viewing an educational desktop on our site may activate an icon which acts as a link, accessing the web site of one of our content providers.

We are not responsible for the content or privacy practices of any such linked web sites. We recommend that our users read and understand the privacy policies of each linked web site that they visit. If you are ever unclear about whether any particular application or content is being provided by a linked third party web site, please contact us using the information below. Please note that third party web sites linked to our site may use banner advertisement companies that collect information from users visiting the linked sites.

Moreover, because some of the sites to which we link contain search engines, or contain further links to web sites containing search engines, it may be possible for users of our web site to access material that may be inappropriate for their viewing.

If We Change This Policy

If we decide to change our policy regarding privacy, we will post the revised Privacy Policy on our web site. Any information we collect from you will be subject to the Privacy Policy in place at the time we collect the information. Use of our web site after posting of a revised privacy policy, however, constitutes agreement with the revised policy and thus information submitted or collected after a revised Privacy Policy is posted will be subject to the revised policy. We urge you to check the Privacy Policy posted on our web site each time you use the site.

Corporate Changes

As indicated by the discussion above, our business does not significantly rely upon the collection of large amounts of information from users of our site. Notwithstanding this, we reserve the right to transfer any information that we have properly collected in accordance with our Privacy Policy to another business entity should we be acquired, dissolve, acquire other companies, merge with other companies, sell our assets, or seek protection under bankruptcy laws.

Disclosure For Legal Purposes

We reserve the right to disclose information collected through this web site in the event that we or our attorneys form a good-faith belief that such disclosure is required by law or legal process. We also reserve the right to disclose information collected through this web site in those special cases where we believe such disclosure is necessary to identify, contact or bring legal action against someone who may be violating our web site Terms of Use or may be causing injury to or interfering with this web site, LearningStation.com, Inc., or third parties.

Any Other Questions or Comments?

If you have additional questions or comments, please contact us:

 

You may be on an internet browser that does not fully support the W3C standards. We recommend that you install a new browser onto your computer. You can read more about modern browsers at Browse Happy.
Processing Form...
This image is a traffic counter. _8http://kportal.learningstation.com/portal/index/privacy/Ytext/html 18AWix./(/1/:3l8 8K8T<^_ _$_-c_zzz5 '-"),