From: "Saved by Windows Internet Explorer 7" Subject: Blackboard Learn Date: Sun, 13 Sep 2009 02:41:24 -0400 MIME-Version: 1.0 Content-Type: multipart/related; type="multipart/alternative"; boundary="----=_NextPart_000_0000_01CA341B.AF3F6810" X-MimeOLE: Produced By Microsoft MimeOLE V6.0.6001.18049 This is a multi-part message in MIME format. ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://blackboard.wayne.edu/branding/_1_1/static-bbleft2.jpg /9j/4AAQSkZJRgABAQEASABIAAD/4QNZRXhpZgAATU0AKgAAAAgAAAAAAA4AAgIBAAQAAAABAAAA LAICAAQAAAABAAADJQAAAAD/2P/gABBKRklGAAEBAAABAAEAAP/bAEMACAYGBwYFCAcHBwkJCAoM FA0MCwsMGRITDxQdGh8eHRocHCAkLicgIiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJ DAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMv/AABEIAAkALgMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/ xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKC CQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaH iImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp 6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAME BwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYn KCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeY mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/ 2gAMAwEAAhEDEQA/AKumeN/FepSSR/2/FAyAN+8t4Rkd8fL16ce/tUz+LPGSQyyjxBaOsaliEiiJ IGOg2c5zXAUVrY8X2su7+89Dk8U+MFl2p4jtdpI277eNWOemV2HH9MjPPFNj8VeMZYRIviC2UEZI lgiXjbuJHyc85H1H1x59RRYPbS7v7z0FfFPjQqT/AMJBaAKCT+5j4wAf+efv+h9Kz7r4g+LbWcxH Wo5CADujt4iORnugrjqKLCdWfd/ef//Z/9sAQwABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB/9sAQwEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB/8AAEQgALgDf AwEiAAIRAQMRAf/EAB0AAAMAAwEBAQEAAAAAAAAAAAAJCwcICgYFAQT/xAAxEAAABgIBAQgDAAED BQAAAAACAwQFBgcBCAAJExYZUliRl9QSFBURGCJBFzlCtdH/xAAcAQEAAgMBAQEAAAAAAAAAAAAA AQMCBAUGBwj/xAA4EQACAgEBBQIOAgEEAwAAAAABAgMEERIABRMhYQZBFBUXIjFGVFZkZXGUofAj MlEWMzRCUoGR/9oADAMBAAIRAxEAPwDtV7o48mPbPDujjyY9s8m8eJr1CfWZsV8oyj7/AA8TXqE+ szYr5RlH3+em8T1/bZvsk6fHfX8ddvy/5cW90Iu71ifp8i6H9J2pD90ceTHtnh3Rx5Me2eTePE16 hPrM2K+UZR9/h4mvUJ9ZmxXyjKPv8eJ6/ts32SdPjvr+Ouzy4t7oRd3rE/T5F0P6TtSH7o48mPbP DujjyY9s8m8eJr1CfWZsV8oyj7/DxNeoT6zNivlGUff48T1/bZvsk6fHfX8ddnlxb3Qi7vWJ+nyL of0nakP3Rx5Me2eHdHHkx7Z5N48TXqE+szYr5RlH3+Hia9Qn1mbFfKMo+/x4nr+2zfZJ0+O+v467 PLi3uhF3esT9PkXQ/pO1IfujjyY9s8O6OPJj2zybx4mvUJ9ZmxXyjKPv8PE16hPrM2K+UZR9/jxP X9tm+yTp8d9fx12eXFvdCLu9Yn6fIuh/SdqQ/dHHkx7Z4d0ceTHtnk3jxNeoT6zNivlGUff4eJr1 CfWZsV8oyj7/AB4nr+2zfZJ0+O+v467PLi3uhF3esT9PkXQ/pO1IfujjyY9s8O6OPJj2zybx4mvU J9ZmxXyjKPv8PE16hPrM2K+UZR9/jxPX9tm+yTp8d9fx12eXFvdCLu9Yn6fIuh/SdqQ/dHHkx7Z4 d0ceTHtnk3jxNeoT6zNivlGUff4eJr1CfWZsV8oyj7/Hiev7bN9knT476/jrs8uLe6EXd6xP0+Rd D+k7Uh+6OPJj2zw7o48mPbPJvHia9Qn1mbFfKMo+/wAPE16hPrM2K+UZR9/jxPX9tm+yTp8d9fx1 2eXFvdCLu9Yn6fIuh/SdqQ/dHHkx7Z4d0ceTHtnk3jxNeoT6zNivlGUff4eJr1CfWZsV8oyj7/Hi ev7bN9knT476/jrs8uLe6EXd6xP0+RdD+k7Uh+6OPJj2zw7o48mPbPJvHia9Qn1mbFfKMo+/w8TX qE+szYr5RlH3+PE9f22b7JOnx31/HXZ5cW90Iu71ifp8i6H9J2pD90ceTHtnh3Rx5Me2eTePE16h PrM2K+UZR9/h4mvUJ9ZmxXyjKPv8eJ6/ts32SdPjvr+Ouzy4t7oRd3rE/T5F0P6TtSH7o48mPbPD ujjyY9s8m8eJr1CfWZsV8oyj7/DxNeoT6zNivlGUff48T1/bZvsk6fHfX8ddnlxb3Qi7vWJ+nyLo f0nakP3Rx5Me2eHdHHkx7Z5N48TXqE+szYr5RlH3+Hia9Qn1mbFfKMo+/wAeJ6/ts32SdPjvr+Ou zy4t7oRd3rE/T5F0P6Ttozw4cOdLb4Pts9SGpVo7B1pe9oVythapq1zhSmxbIj7pI8tswLhaQk0x Q/sLGJCd/bRknFfpHZTqgGJ1hpBakBJagk0f5D9S7UnmstrbXxc+IOdZ0pIo1GrGbS5BnE5YFUvc 2xpjzgOLZRdseyOSt0Dgp2KVCSgAhdMGiAahNL5tr0a7iZqx3lgcMmigAKy2TYZVrNY6VSq/XQq2 S3WwbE04Ulj/AMkHjBLMMBZPbYxksJ52QD/3CLNcXoBqvDaEqDZXTa9UqtJZ3UDtPZXVmqjVRvYE p0+rEOfHFqlC4rJeC+yf58qGRHlqcIQHuSJCBOZ+SgBWdSaw0JcHHIxOoAyTGSRMPTzKKjvnuBXk fRt7vcHZmnvyvQlQyIZV3zRuu0wVIN6RwwHcMg/ibEO8Lt+lRELH+SVLBWWPK6ObGA6t2RYmv1y7 MNK2HtdX0a8ROOy9TIpBlqeXCQTYZ4I6yRRryiPzIHNZlMcMxKQoKGlJBlQp7IjITc64c6Ka/pIi O63dPrTywG09jRWrZ9y9QXblvPAIkTdS1JJ3mMMLbIy89gcIpxiEJmBBKM/Ak39dxbREGZM/XVY+ JIdbdWZZs9OqLiVfRqMVd1FqFiV1dPqxHMCtAtp22HlKN0jNWqXgS05KQxyCcssnqWXNSxQsyzHr o2cUAH+QmKZFgZcMMjLspUchGjBCSSeZJWSQAelF5ZOM683ZOV4aDVpI45njpV7UdiRxI+8r9Xxh CkcaxfwwKlvdm65HkbTFvKwolZI2cw8+PDnQnUlZaW1psa36v21T0ZtWMat6jXrMdw5ww4E4S6YX g3RnvhOG2DvwVaMopFRPZFwyIKUQyi3J5aJEsPwcUuTYLwXBNHIrT238mhUmTMd56/zrVHYS89cL LWJDFEasiFJqcl8kr+YJ8pRpiUswh7ygTI5QyiEWewSprUEKkQUZyPKjPwhOeQw8ziLnADLz9Bzy bADaTg6SDzwwXTbsreC12SerKJN4LuyyI2kZqNorBqNheHloFnlkp+EQcWI2a0iatMtVrCYOZ21y 1tt7a2z2+o6UjYJHLVja5Pq0a1xQsjDHIyygLNe5TKX90OTtjDHWcs4kS9zXHAKLGenTl4NUqCCT HJ27QD7GNHKBm9Q9Pyl7FhU10jDP7h2OXo3vFgxGb5UypreJc1KUtjtCUtdF2xranwZfc11LWKzD RmZNAI0oGk3TA2pp7W21LYi2xSCRDoPZmkJhr/aMhhQVffSFM0sOb1JEqYRIDArzQN6hDktxRoSl Kw5OeFQnSLTEeG9ZHGLxSPEoZkLALkMcqcHKq2c8iQhKs2AORPKV3DBS3vumnvi0YKd9K88tkRWK kaQ2IkljC2bVbhmNjIkUlyKOxBXy8pWRY9LYc2P0inut0Kj1iuNq672/CpDLV8Ew/wBB2412WnZJ g2oDnJUwyFMQhbHBsVYRp1BhR4kZqA/JJgCVYxYxjOmXHTXXp2d06zm7ZmLRSieoTpnbJCmPVVaE iFI3CENbu4GfvtZU8i0OlTAvZJ+ia0ji3IhK3I1oEoE6gwUhc/yaCfddQOFVu87OwfRvXzUigK4d rVbtXXSL2FDGmdAsFpklrxOOyGRIj1zlNXNlVRHKuTmBNTGsZKpuaGsCg10MMCcdiEnB0jPEDB24 gCoAEKhgyltQZNQ1DAPI8uXO6/2bki8LkKLu2avNRrLuqR7F6aeXeEU705KdyGt4LZrXvBZXgmSa SLDR4mdWDKh/hx6268X1d12ndObW63UJWVw67zKM2Lr05QKzEMjMhSS/qJfgQ6VTZyQxeUNC4xRN 48JlnUaSBd0yZUF0XOhpIs4wQXnu0UOsn+tfR3WBBpTrPGoTf7DpFZkykTE0WACWJlVvpmORT2MI li+dL2wyIuhbioZiEChoNcUrdkBuHUa4IVAZFgEKRG+GV2OSgK8MgOrAtnKk45A57tsT2UkSWzBJ vOgste1QrIEW3LHYG9EEm77EM0dZozBYTzgzMrIMa1BJA5rubEy3WGzYXrfU2070KM/9LrolszhU KwjfAqZON7gSpQjkWHZiwmCJtSkGkBEnUDVG5UFKkhmCw4O/27u9TKr7IrRYkbZXorUuqsOS2rYT LX09rZO7pV1isLQoEmb2yRAcLDmxJ5qRpA3PBagtGyGDPWKRdiIowJCb1mw//ZW6d+P+f9Rm1n/u Sf8A7jk8bUIGXGJZNB5hsDhyNyKkjOUA6cwRnakbiWvL2irWzMZt07pW7DmGxUJnbeO6qw4kFuGK cxmG7KVyiBzw5EYp/ZfDBq9Z8k1jnm2zdmNYqWubJYKpkWVL4EmUd7ZKgROTWW3sOUwhLG8xItCY YswqLwX+urx2YuwzkWunHw6ioEjr0hLjbHBGicUDj1KtYUC5vciP2m1ekWN0dTKUTil/yH9lCqJN GSqT/kHtiRjL/LH5f555fqX6aUzELQkOwGpDKYm1/Y9gnWgLtqk0sShTr7csWfjGzLWtLLUKjQ1h aTYiy/wF6UH5S/tnOcbEpJVkoUAIWccVo2GP5GRGA83zVjIVjn+zFzp5YOMekgG652abxTU3pRYO BuynbvV3kzYLWbO8opLFaMIA9aulOI2EDNLEJONpaBJnhSNw508Kql0upaYbPvNma81o6VXFup9A tel5qxsXDWV9SljVXLEzuKMqcOZZiMMPfEzTOEX5dseJS0KE2TBp1x5A120xp+zUdtrtel2Mi6OZ VNoXE7Mm05aHfs8sVkuRYcxeg4waanUJwmkWrKpND3lISmPKGoYC3I8AywJzM4LZQhjpYaVVgDjL lgp0rz9ILopzjm6/52ws9lLlaSrGbNWTj2p6s7pxtFEQPYBs2i0QIrvFTvWEaMO3CpWSUDIAymeH OiHdeg5BBddYvJ6w6d1Fm1BKtPqPs2abKtCB7QTWG2BN2Jqc5e+M2cWThCSiQPakhsIbu5CpKWkW GAEaPIwKCfa2jrRSDfpowzWa6wVVXFVu3TTry5IntO3qXOJTiR7pu7dgbBW7KedKFKKdZmSwsKeR xBPFTRtTWarkBrigAm/Z5AtIQp0k620gBkJz5vIgN/bzv6f2PcOeNr37G3kmtwmxGpp0kuu8tXeE MTxuZAGSR6oUwDhkNd/4asQHmUBmXmp4ceFa1dQ6ndGqDs2lNSac2CpC06MMRXxso8JpLKrWrPZh 8/qo36PODrH5KQClia7WBZsxBGtZTWOUgGL+gvcT3FP/AJ/ilSyj9eGbp7rg6n0Jaq3YfVevVk2F ZTZMDkmZMruKXx51midPGJbHRHSh0Y25tbj1qs5QkKLS5NKb+1POELITg4whOXdBzT0oCTnzvN5A nDYOMcufLTfs3JCzLNerxLHSpXZpGhuNGIr8kEdcwutci0jNYQcWDXEWWUK7KgdklcOdJ10wbU6y t1tr+mey6v0HSEhPVv0K1LuuHky9olia6I6iaZNCYhPnN7lL0xq2OzjSXGFHriGxpw3OLs04wE4B pgwKv3gbaipo2CakVxEoI4TOiGkhv2EvBoCa5SSfX6rE4KbDibdIALRoDa9rNxcAwJoISIShOLnF 1buYeIBpIco5xIVUIysyq4B0/wC2wBD5BIxk6cf21A8sc9m8uzkm7Y7U7X6diCpZn3e8sIsDVvSt YMU1BY5YY5OIsINwTFRXNcqOLx2EO2gPDhw5ft5vY4cOHGzb6rE9ukafGaRsaw1ueo+6tz2zuBAv xPQujUrJXt6wkX/iamVkEnFi/wCBgDnjvOoP1Qjbt3U0+2NrFyKLateYDScuKTtgewCTZLqpbrCt 5vOCDGA4PMd1OYq6/wCScHmjbFHamGZGDs0XcOVvEjursMlFdR9JAA34GP8A2durS3zf3fTt0asx ihuWd325sZ1cbdskstUqc4XTLLrblktHGf8AqNujfbTqUwlTb28e1VEWc1p7mnq2pdWNXimZlGN3 gmu7A3ETO2bCKE5IVkcITTV9b0cSSJis/wBABr1IRGIP1xjUiw7AN24XsDW2o872vuNtK2F063qq iStLy9sSn+xM9X5bL4i/zcgruwwEtIM1bI40J+AlM7NWpZXFUnQJVCgoARIq4cqFWJVCjIKhQr4X WFVBGVBx/VlB1DvLMfSc7dibtnvexbmszGJ4rBsST0S1gUpbE9995i08InGbMFwxPBJnKRVq9cho Y9BaBXd1VO27d7+WA5zhrboTa9Z7zMlfSBSieTEsocbUDJyICjRJUbec4kmSH+mkMT/tpUwU5Qx5 ViTjD+PMjdPfemG17W1j63bDkpV0NIq3YFw1ln68w/DhSls2PWMijr9GiFBeBCxXtuAWBTPrWZnK JDLimp9AmyctcFJaeeHM2gjZSpyQQgBzzGgEKQQAQcEhu4gkEaSQdCr2ivU7MNmAQq0U1yV0KM0U 63pIpZoZkdmDRo8UbwkYkhlSOdHE0Uciuwtxg1a2bpPS9as3qqSnpFSWp0equcQSSQe4HuUJ5G3v svfnJG3GxuJqI+vGrb3xM2hJ/sJSDFmDU6lX+uPtwr21hpqjbskE7i1t7JR7Ww9DGAu1cS6eRh9d 4bJH5O9oE6uNyQyMEujhHTFTCoWOCBeWFYmAtR/qGYPCaEeNWOHJWMqpUSPgnKnCZXzixA83mDnH nA8v/u1Vre8Vy1WtT7qos0UccViMS7wVLqxVoqqGbF3VEyJErqahrjiElg6BUV2Vx2nrfrF04p5o xWWxbftbZl3XXD7Xk0hgbDKGqo6oYod+tklvYHGXoWtY8SiRKGlLh1G2IApgo1GcKhkjTEfu5Rsv bbXdr3Jt/cmDWqwPcqqPTKqInrWlAxyAxU87KLqgi1S/1kKZwZyEwSKh7WUyhWrc8pkZro3sgkBi vAjPw5/OHMBXXmSzMW16ydI18ThhsgKAAVjCYAHmk5yee3QbtXczEIalKvFVFAUYUFpxSO7F3kac kUktmSWSWOzvSe4XneQGwkQVVgTglubVu47bVaibRUHuPcpLlLI6RD751akcmj5P7OLOhq5YyTau UB8VYSSCFNlweQqS0at2wnTFOzKAxQt/BUbjHv5ts/RDr1G+nhdrfYTeprCnqs0aZrJlGGx+LTxd 1qaOsKGfN6pCc1luik9iUN6gowSJEoKU5/ASYw0Is5Ck3hyfB4wWxlQwcaVChRrVFbSAoxkID3+c Se/an/U+8WSuJhHZmryUHNqw08tmfxbbtW6q2JWmzIEa3JBqwH8GjhiVlESnZiO5dS6/t7raNyVz unVt1Ok9t2RSNjq2Dwm1W59Tt0zkLy+nub05zCOMDC3EsqA0pOqEnVOSlUvMTpE5WSRiVF7D6125 qdsnpM0aGbVWws1rldS2nKLV14vpRGHWYwLIZuhFmXwSwWlixl1QEKl5Q1ze7F4LTiOOSljVpho/ 1nFM/DkmHKKpd8owZHGkMpAwMYXSeRIIZSCGIO1MO/OBfsW4t20Fgu15at7dzNekqW4ZpFmlEjyX GtxuZkimjeC1E0UsMTx4KtrehZd9amazUBUOi2tVujvlO87R11sLs3saZF3yKQYxTEjGtGyRSv2V 37R4NaWdGAtweXb9c/AzmsZSM1Wa4qSkOG1O8sSqvqFbX2IgSo7x1L2Otiwme3oDktcgaLZp1/my 15bHhqIdSUCxpmEXOMTyyAvJ5KNY1PyQsHbkIly3Jik+HIFdOeosxYNqLEZZmZW1eaBpZSi6dIAU AYAwNrp+09+SSB4IqtJKklU0oK6SNDVgqQ2IEqBbMs5sV5ltWGtrbadrTzS8ZmSR0Lwd19lqDsan d8I/A7IbH13tjqGQe5K1Zy0zsNfIasQ1fKms2SiV5Qfzk4kKx5bm5ekWLCF/9D9kIEwgkiFnGu2G 98QunSeiq/j6IKTYSep4o0bkSssRuV04Z9X25bBNcSXI8aYkpR/QjL8pkjyFPnP+X1mQGnDMMLyM aiOHC10XTnJKMGBJ/wAIqgHAGRlFfH/mqnuGyz2o3jZN46a8I3hUepMsaMQiPenuNLEZHcxzlbdu kZFIzRtWIMfzOxd3t6yap7LN1RWy1b21RDnGu9NKYrF9q5XA7gdJuvl9V18MlzjbYYgihMYWnPL2 EpsbjFL8ib8KR9uqPLJJycLIDvt/rZZjPSGo1u2MncdZ57obrxXknmaNpka8esm3lYM0jTxyy25v NbyFokzceoRw6ziGBKqJkMNejxjOU/ysFHIE4cjwZdKqXchM6P6AoeRBBCg5UgEEk8xzyMg3HtVO s9ixFu7d8T3RGu8FBuyR3o0BWSKeOa5IqxWImkilWDg+bIzRmORY3R6WlLvSujMjfreke+VV2XTU hquax61NW6/ZLLeZJdzs/wAVemBsrt1iMgi7dBgNyKSqm52S2M6PQcN7UlNPRkpBr1KUOr2yN0Vb MWXpoJ4zM2x3OpWgYZEbRJSpXcGYXIUFvymVLGlcJUgKysGiYnhEeM1sy4FCzg0kBxpwMhys7hzI QDXxCzM30QDkrLzCqMnDHmTn0DOABtrSdoZmoLuyGpVr1FDFUV7czo8lqlblZHsWZWRHkoQ4hXES ap3VBNM8hb5cGxVLSHrSqNmWedIHCjDdtq/sQNgFN7wFv7ntrvF1Tg9Zbjm4t6wUiKRqhGk5bcKc ZTjyEnOPxzlcuxEiZJfsBeksjS8p1jkouKzZEwOics4ohyZHuavbk1LySlBZKgspYgUkKCyzyijg AMCE0sA8CDjDvDmSRqmnBJ0xrGM4/qvoJ5en/Pd020729p94C0JY4U8K3rb3s/DEg0z3McSNNUj4 hXA0BtUg/wC0jbHDhw5Zty9v/9k= ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://blackboard.wayne.edu/images/ci/ng/avatar_150.gif R0lGODlhlgCWAPf/AP////39/Z+foP7+/qysrNrZ2aqqqqioqKCgop6en6Cgobe2tvn5+fz8/Pf3 9+Tk5KKipN7e3ubm5urq6u7u7vT09KCfoKKio8rKysPCwuno6PDw8Ozs7La0tfb29tPS0t3c3KSk pdbW1rSys6WkpuDg4M3MzM/OzrKxsuLi4snIyMTExMfGxrKysr69vbCwsKamp9HQ0LW0tLCur5+g oLOys7KxsK+ur66trrSzs6+vr6uqrLGwsbSztLOysrGxsaGhouLg4NLQ0LS0tKmoqtva26emqK6u rqalpqimqLm4uaenp8jGxp+en8bExJ6foMC+vp6eoMzKy56fn5+fn6ipqqWkpfLy8qOjpLa0tqem p9XU1La1taCgoKqrrJ+eoLGwsLW0taGhoaGgoaOio7i2tqKioqSkpKOjo7CvrqampqWlpp+foa6u r6+urqGioq2srenp6a6trc7NzqChoa+usNDOzsbFxeDf39fX16OkpMjHx7S0s9TT1M7MzM/OzbCw saKjo8TEw9bV1sjIx7CxsqWmpsbGxauqq9bV1MTDxNbW1bW1tLi3t6SlpdLR0bKys7Ozsqmpqba2 taeoqKanp9XU06mpqrKysdPS0MrIyLGxsMrJytPS06inp7OztLCwr/Hx8bS0taalpcTDw+Lh4drc 2ry8vK+vrqurrLi4t8zKzNXV1ru7u9za3KemprW1tt3e3t3d3a2urtvb28rKyefn566urdDPz6+w sN7e3aeop+3t7djX2NjY2MzLy+rp6vb19snJyrCxseDf4OXl5eHh4aysq9zc3t7d3tPS1PX19dfW 2PLx8r+/v8nKyu/v79XW1vPz8728vKurq7Kzss/Pz7Kzs9PU1N/f37Gysq6vr8rKzK2trc/Q0LO0 s7O0tPDv78C/v/v7+7Gysebl5uvr6+Li4e7t7t3e3ePj4+Tk49XY1q+wr/b29cC/wM3NzPDv8OHg 39HR0dHS0dHS0ujn6MjKydvd3Lu7vM/Qz6KhobCxsNzb266vrv///yH5BAEAAP8ALAAAAACWAJYA QAj/AP8JHEhQYIKDCBMqXMiwocOHECNKnEhxYcGLA78I+KLxiQCPIAUIoCJyZMmTIkmaRCmSI0sq UV6eJPlFpcgpI12mZLmx5cyTHqnQ1FgSZ0mbJTU2yYmSKE+fAhWMUUCVDtWrV8eImZoVK1evWBXQ +Up1qlUFMH4sEHUAiChZ6nxFAOAAgN27ePPqtTuAAYBlSroBkRr2LNixVw2TLRu2MYLGYfeZAbIP yJt9lSub0ZwZ8743li1jfjP5zZsLQFCDvkDajJ4MBTbsnU27tu3ZnZYAKb0btGTNQFJfqGx6d+fh qSdvDg7azIXlwVljwYKGzHQ0069np46FDPbt2bF//+eOnYCwK7fTq19f2xyB8eC5yxevnfp47Nbt w0eDZs2aEI5YYYV/BJKwhhUGHuifFY6s0eCCAzK4BglWqOFMAOxlqCF7V/AQoCMkhKDggwIqGIKI DoI44YQJEhjhiA6uoUUlS9SohRYwVKIjDDDYeOMSRtC4xI2V4FjkEj3yqMUSs5iz4ZNQ6tXhjT/+ WGOPRgS5hJBDIqnjkUHCYKWQOP5IBBEHHIDmmWqeWcWZaFbxJpqSnCmJJHMSUSebROAQR5SARimL AXUegCedcFZxgKJE5JmmoneqWYUkhqKp5qKN1mkAIohQ0+mnnCJigKfUeCrqpgaMymmqm3baKqfO MP8wwKy01mrrrbjmquuuvNKSSqilnuopqqJySs2mx65KbKjMFmsqAQTAAUc33UgLB7TSUptttdZO O2201BLArbVQyBrAueimq+667Lbr7rvsDvDAJ95e22220orbTbTYhlvvuNHaW+2+0rZhMCo3JHyD G/64cYPBCutwxMM6tPHwxUc43IbDN+jQ8cU66GDCAPCWbPLJ6jLgAg8h34Bwwm14jIoOHEeccM0K t7GNGx5bDPM2HrvhxhGobAwGGJsAgjQYPPDAzwuANP3DDzwwHTXTP4BBNQ+bZF210lT/oDQPUTe9 SSPSNMDA2my37fbbcMct99rjLMPC0Zu8sDXVLxz/XbXZR4PxQtNS89D30YMb3vQwTPc9Ng9Z/zB4 DS3UUEMkNfigOeaWdw5J5tf4EInmPmReueU+fF56DZCMrjnrnF8ueg3zjDP37biz7cA45jQie+ap i+5DC5VX7kPoo1eu+uior3765qlffnk1m/+eeTVDDBGGDNxnz70MYYTh/fbck08++EMwIoMoQ3wv vvjftyKLA9JUYP/9+Oev//7896//FeUowQoaIQP1uU8G7UtgAtcnCvBt73wPDIMB21e+Bn6ve5NY wCQyuMEFLIALGQQhB0XIBQ1+UAlzYIUGoLEBaPCCA7yIoQxnSMMa2vCGOMyhDnfIiwkw4x1l2CAI /0s4CRB68IMazKAHhYjEJRZRg1xoRCNUoQopNqIVtZCHPcpRjC568YtgDKMYx0jGMprxjGhMIxol oAF7qCMFIPgFJ1QwDSUoQYpUnKIUhdELECADGSCgBQj6QQtaELIfiEykIhepSEMacpGPPCQjITlJ Rhaykoh0JCYrGUlLZnKTj+xkIUcpSBDIIha6SEYRmJGJecTAGtbwhjX0gYsYCCEG83DlLV2Jy17G wJau5OUvf6lLX/7ylsQcJjJ3uctk8lKYw4xmMo8JTFtOU5q4RCYxg0lMbT7zms6cxy0fkcsP5DKY c4AHPArCBBa4kwXt3IM75cmCPdDTnvWcpzzbyf9PJtiznfnM5x786U5/4nOe73znPgGK0IHWk6H1 /KdCE8oEgDLUn/106EMjSk+DJlSe9NTnQEHKAowQZApTaEICPCKAlTbhCVRI6Rea0IQoRCEBIllp AqKQ0iZ8gac3bQIVmjAFKjwBp1P4whNqytMvpJSnOHnCFw6S0p2yFCcpHeoUlvqEqA5VAE/tak0T MIUEODWoLY0CTaMQ04O8NCFP4KlUk4pSKtQkrkt961GjcNSLCKALbKBBF2hAAwuwwQICsIAFCDtY AdBAJItVrEgU4NjIHpYGbOgCZRVgAQUEdrGJXSxmB0sDzhY2tIXtAmAt0AULAKEQp4jtKVqhAwT/ tJawiu0sYhX72cIeFrKITa1gO9tYARyWDYktbGQFQBXDIvawqsUtZ1vb2M4WVit0oIMYgDCGMWi3 u2IYixjCC4TxbmW75c0udxEwFa0EZyzrDU5wWnBK9AwgUBpa2ymWgF46AGEs/nVveNUbXwQEx7v/ 9S95x1BesYy3u//973a3AoTqXODCZLgAGTIciAxv+MKBsHAgOkyGDgcCw2gIBBYurGENK+G++I3x bMbhjAukOMMY/jAEPJzh6niYxS22sIZx/OMTn/jCZzhDCM6AhRBgQclLjnJ2TtRkPVD5RCGwspOT rGRqZOBPMg5zba4ACC4nGctbxvJ0lvzkNU9H/8lQbvOJoGxlLiNhDUgwxBrUoIY74xkJfTYEDPCs Bhjc2RCI5jOgDX3nPAOaGk4Ss6SlVAgkwIDPjAZ0ngvdZzwbotNr+LSokUBqRBu6z4b+854P4IlW L6HVrU4TqymxhDR5okaeMAKsD/BqXHuC15RIkw4iPeliA+AKKDgAJVod7FfDmhLB/vWtXc1qVse6 1ktYtieWbetYe8IAl0jVJcbNqnBL4hKSKDerCAXucZP73OF2d7mMbWwQiMrd+A53u9G973iTO9+p gve57+TuVFDD4KlIOLQSfgyEKzzhEIc4ASI+cYVPvBXQGAevNs7xjnucFt2geCoafnCJN1zkEf9X OMlLPvGKJxwH3YC5zG+Bg5rf4gjduEU3ZlFzmR9B5j2nVszlwPNZdCMNadAAyVDG9KbDawBXeAcO 5FBzqlPd6DzvBs67IQer47zqP++60LWOgyP8vOZhL3vIQvaCkKVBBy8ABSh08Pa6z93ta39BLvCO dLyvvR0ha4U0BtCAwhv+8IhPvOIXz3jED6AC03D723WQi7ZPvu1yhzvd7w53UOzd7W1vO9tf0He/ rx0FKGgBJn6AehSwvvWvR30LUICJ1rve9uRwfe1t7/rZ6771d9AAA9SWu+LfbhkTmAAwMsB738M+ 9qj/gTZiD/3WO7/1tdcG729/+xx8Igfg50P/D3rg/e+Df/yRID/5c8AH74/f/J+IRCTAD35w5ED9 4j//NGJgjrV54P8AGIACOIAEWIABGAwMMA5XIAG/4AILMH9DMH7tFwnfAH5DwAfzd345IH85cIH0 R37px37pt3498H09kH6R0H7slwNcwAUdwAVZ8IKMwAUzCAs02IKMMIM0OIM6uIM22IJA2IInkAJX EAobcIRImIRKuIRM2IRO+IRLGA5XMIXmIALTkIM4GIRBmAUuSINhcIMtKIM/CIQ62AE6uACNUAYL UAZW1AhriIZSNA0mUAISIAEcMAFxkIfAAAxxsId92Id+yIeAqId+mIeGuId8KIiDeIh6CIiC/5iI htiIhEiIiCiJkViIkJiIe5h8wBBHGfAO4uAMraAEcAiHbqiGbihFa6iGC2BHShADKWAMJTCLsygP tHiLuIiLtpiLvNiLvviLt7iL8rCLukiLxFgCxwiMvJiMyIiMzBiMtRgEEcAMv/AOSlAAvtALzLCN i8AK0cAKIgCOgzAIIrAIIjCO5SgC56iO5zgIi0CO7WiO5PiO6YiO4ziOi5CP7UiO7qiO73iP6jiP 5UiP7PiO/8iO8BiP6CiP5riP5YiOAUmP8MiPAemPB+mO5MgKW5AIrMAMvuALBYCNAoEBJIkBv2CS v/ALUqCSKdmSLumSUrCSL5mSMsmSJlmTM/+JkjA5kyz5kisZkyqJkzw5lDT5kz1JlDxplEDZkibg B/BgAquwCieJASZFEO/wiRmQlVq5lVzZlV75lWAZlmI5lmRZlmZ5lWgpDi5QlVVJVTBxVF2VEDdF VQlBUz9lVig1l2SlVi6lUgjhl25VVghxU4JJl0SVVAkxVQehVl1lU2VVmIO5mDslVEdFVn9JU1tl VnOpUjxlmQnAmYuJmWwpEBxBU0PVET71U08gVUuxEzFlVyKxFFPVEglgVCQRE2BlUzVVVGzVUkkR FB/xEUYVBU4lVUpxVyABEiThETHBUjARnDDVUq2ZElKFUxyhVBrRnLC5VGUlEiwlADHxUnT/9QQF sVitFVqOlZ6TRVh/5ViPxQa/tVuoJRLIVZ+VRZ+VtVu/ZVzKhRLINVk88Z/t+VwlgVjoaVwlYZ/B laAnwZ6SRVkl8ViQdRLw+ViSJaAC8A+dpQDURVwcqgClxVqadVscWlodWlocqlmchRUb6qEimqIc uqGDJQYHMA8NkB4MIAyiYEImxAizEALBYaK61VymVaQrehWYVVhUIVhE+qEoqlggyqKsZV1XYQFb kRXhtRUIQAePMRZagQDsxV7dtaVl4V1b4V1eyqVicRaD4V1YkAF4AWP0NgAbwA0H0F1SoV0Gll1i 8BhdqhVaymDYhRjgNRWPsRXZdRZ4el5Z/yFfkkEZlSFf5RUckYoZ8gUakoqpliqpmxocBFAX9LYe A9AJbSGpjgqppuqomJqqrJqqkZqpu8Eaz/EcZuActTqrFzYZQHZhu6Gqs1qrZ2AAtoAhoQolHnAC R7APuOocymoaF6astgqtsjqru+Ec8rWrwkEZLDZiPkYdF0BiJ7Zh2GFiWKBiGmZi54odENAd1bEG GHCjxQooFcAAfcAdZAABNuYd3eEdG8av1YEf/FGuHSaw+woBITZkNqZh2aEHevBmDJtk28FkTIYF DOtkVTaxb7YdLuAX8SpjVzAMSpYdTMawTeZkDTsdDNuwE5tkJPtkGBsfZ6AHAuIIIcAgAv9iBWjG IDSLszVbIgAys/8hICdiIXLasTF2BT/AszdbszuLZidyICcitDXbswHCsz1rs0H7Z6NAIH7mH1ur anj2tQTiH10baqTWCstArEaLXx0ito3mH3pGamNLakgwCnf2tXbrto0mt3jmH1qgBjjyCpeGaWLC I4ZraYYWuDxSaIUruJfGI21AbGsLKMimJErCuJb2CjhiaI77uJv7uYbLaZaLI4UGJLdWI6iLa6ab ur3WukDSJay7BJE7uWz7A7i2JLhmBLiLuqfra6+WBKdrBKgrvKw7bbXWbbL2a2lCBMqbvJcia2jS vLKWJkcgubT7JAzAAtO7vdK2vZayvdP/273gO73nRgSXcCbohm4DZ77qO27w5r7vS3B14m6nwLHX CyUgAG53Ur57cid6Mm56EsDm67/zO3D+e778qyeosm7iliqn0sDgxir3hgjhViyX8MCxcr9R4iur cm/jdirxBsGbQm4S7MDgpiwRDG478CupsMKlwsIlFyyIYHCk8sKhQsPUsAM57Ckb63E+/MNATAsE sMMGp8MHl8PGAnE1bHCdQsMId8RNzCwrDC38AgepEDCpYC9UTMVWvMVbTHHQogrosHROV8ZmnC6z EgFdfC1enHBdzC9evHByjMVs/MUEIAcD4y3VgsdyMC1d58fbEnNjh8fUggN6HCtkfMaK/9x0IjB2 XNfH00ItfOzI3EJ1kUzI1jIwjwwHfQxzblB2R9AGZocDQ5MxZwfKDmN2GeMGGyPKpDw0N4ADbVB2 pCwDxhAAibzIurwufeECphzLBvPJZTfLZTc0QlPMPWfKGVPMpVxzBmN2BjPLbzcDddAxa9cyktcy 1hwydUB3HvMx2hwyM7B2afALATAOjZfO6rzOiBcADGAMkdfNdHcDabDN2XzNdDcD9YzNdJcGddDN SEfP+CzOdCc4faMDYAB3SoM4gLDQLxB6UBN6hvPQEC04Fv3QV8MDJlB449DRHv3RIB3SIj3SJP3R AVABLlDREE3RGH01FK00hyN6bQcIff/z0GCgNApd0zbdN6wHOZAzNUDNAyggNUA91Kx31Hvz05CD ekTt01RDPH2QgMY31bkzDnEwBEA9NT7t1Etd1Fnd00gdNluN1ENd1j89NbZHPMNDPCgwPGvte8OT esQz13PtA6l312691nrN1naNAjFgO1Qd2AloDowge5oze3bte5CQepqz2LIn12w9ey3Q12o92ZGt 1nptfcRzORuIOSNwOfJnOeA3fzXQ2eD32fM3O5gT2vNH2qAtf62dA5cjA3nAAA5w27id27q927zd 2x7AAOiQAa0wWwswBKUN2qUzAp9dAyPAORwY2pydgRvY2Rwo28492tSdAyPAfglEfkP/cH/ekz09 kD0ROH49IAPjF4EycH85wD3jzT3iJ97qvQIU4AAesAz4nd/6vd/83d/+/d/5zQC+kAFKEAYSqN7k nT35l97hfYEINN7Zw94JXt4KhN7j3QMSVEAdEAYd0AHlI0EdHj45uD1YWEA32OHqwwgeLkEivgIc UAFX0AyhMOOhIOM1TuM0buM3nuM4juMybuNAPuM63uNFeAXScAXqIAwEdIMSxAjbwwUczuJObobg 4+QZjoM56OQqnoMevuU0+EEh1IJJJERiLkQbZOZAOAlXpAKDwAxxEArxAA0UQAFyDg1yPudzfud4 vud2vud+3ud4DuiB7ueEPuiDrucs/6QBGRCEZC7mLVhEReTojB7paT5EJeRBbojpR6TpUsSKjcAC BZCHE2AOpF7qpn7qqJ7qqr7qrN7qrt7qeFgO2TAHBO5BrIiGm35Et57rmm6KbWhFSsACv5ANEhAH tnDsyJ7syr7szN7szv7s0B7t0j7tyG4PeagBKdAJJ5ABUDCKjXBHvx7uenRH4jCED5AC6pDu6r7u 7N7u7v7u8B7v8j7v9F7v9i7v6/AA6oAPj3AHLnBHdkQIIBABBB8B2ZAMBZ/wCr/wDN/wDv/wEB/x Ej/xFN/wySALGJ8MCB8L2YAHxNDx/RANz1AEhWQKRVAAJx+SIBmSLN/yLv/yMB/zMv8/8zRf8zZ/ 8zg/8yfvCkXgCiCAD6aQB1uwBX1Q9J3wAUif9Eq/9Ezf9E7/9FAf9VI/9VRf9VTfCX2wBdjQCcpQ 9H3wAf9gAk9pAmQ/B3PwB2Y/Byew9miv9mZ/An/wBydw9nIv92Zv93Pv9m7f9nuv9mhf93Ef+HeP 9nO/9nAf92+f9obP92pf+Ir/943f94z/922/9pF/9mmP+X6/9riw9tZgB37gBydJECpQ+qZ/+qif +qqf+ppw+q2/+irw+qov+6hP+7UP+7GP+6Zv+7oP+7zPCcBv+nvAliuwAndw/MZ//HeQ/E6w/E7w /McP/U6Q/Mgf/Xcw/cpv/dRf/Nf/v/zd//wr0PzS3/zdH/3GX/zkn/3ZL/7GT/7tb/3sP/3QX/zh D/7on/7lr/zNP5oXARAJBA4UOEVgkyYEEw40aDDBQoFRohCkmGAKQogVB1J5qDHBRIogC34c2ERk yScDJ550SHBKlJYtIf6jWdPmTZofm6T8YlHhxJ5TqHyJQkVAlCdPHDZpOVEAUZNEI045ilBlRKkW YQqAmPRhQolPJFJJ2eRo0YQCnpiN0jMBV4tnJT7kuJDjFIcTxa5dmVCoRZw4zQoQYFDtE46F0Q6l 0uTLlCdcERpV+pgK0r9Kn365nNTo0LFPepo0m0Ds0cZUqSblyjcKU8YCLlOpqxZh/1nCWl8H3Rnl qMCeAhKQpfLyC+IvaVM3KZ4g8L+nngmrJcyZsNDpX6g/nV6YLOHItIdr/2yU61DussHTfkyYsnrz 7ll777xe+3Xuke/LVk3YrFCy3gpPvim0i+wpo7TbKbkDb+rOgunY6O5BCyCc8MLpLMRwwwk17NBD wkD8kDAaLiwRwxJLtNBDGkBsUYATBfBwxhBrqlBGGtiwoEUL2OBxRx93hFFHAXTMMcYdK8wRyBAV kFHGHbuosIsf2ZCQyB15FIDKEIscskUfuwhTxSchXLHIFC2Q8kg1xexiSx8lfBPCHHW0EkY6K/Rx SxpK/IcGBSxQQAE2ujC0x0EH7f9CASmLrBBCRaXUkUoaqGxTyyRbbDFQMgGlc4wD7uijj046IZUV DhhQVVVkQgDi1TGAGGMMOui4lNMe+xR00BKplHJQNhTQtU9PCx0000WFBdRTQYOdskJGEz1WWkaT jVbaZNX0lFpuqU3W2mmBgOEAGFTZggEA0lV3XXYHYGAceOMdRwMTMgghUSnB5RZabAPd9dtpA8VX UECpVVPaMRRAQAExEh6UjocVnjXiMRCAeFBaHVbAYQTEYHhWiMfwWAGIgWhEmmWWycYEc9T1YAB2 Y5Z5ZgAc4OUKE1p4NWKSNxbD4lhDTpiOhRP1WOONB0Vg4pAHbdhioSEWg45YEwb/YmlZxZA1Vq2p blgBIEL2GuinRaa1ZJDFQAMLJBoxZxma45Z77nF+MQQIMbQGO2xas87b7I2JnrXjhsOeetaKX8V7 1sKl9poOxV/VWvHJI6881sgzF1lWySPHfIkY5hZ99Lgr6GSJyl+lQ+vUqxaZdbwzz9vzwmHtfPFX zQBin1f3eeMNxd/Yh3fghed99zcu2McM4Hk3g3fiiX9VeCxcQJd07LNPd4AVAjm+d+iBB6J55Kff HQjdv//eDN0zH3/35dnXnf0Lkr/gAiDuR195/H0fPn/2Ne95+EOe/cjQgndMQHsL1N4y3qGGQOyP ebrj3/LwR77pKU98zENf+uoX/zz27aN+vLsf/cxwPzKU8H4rTOEKXXgB+sHwhDB0oQ7UcT0G5jB7 UCCDCV94gRbSUIU/FGILZ5g/IP6QDCkkAwTIgAYIABECEMDCBZwIgUAwMRBQRAMagPhEMgQiEBcI BBbCqAcl4FCHa6TbM7xQxfuJMYsXwEIWAwEBNIyximK8QBfn6MQsdhGKS4RjHZOIBkJiYW1mRGQZ yYAFRZrxkZB8JBQVuUgzQhKRaECCBtj4ydFBIx9rwOQTI1nHtYkxkZMM5BLDKMZMXnKVkKRlLW15 Sz2cAZJ6uCUma5kPNYJSmDOTBiB2WctF6hILyrxlM2vJy2MuE5IhCMExz3AGPf/wMgTXvOYut9lN aUITC9vUQzWxoIcMBHOY61TXFXTAyzOEIJfZrGY8zVnOc16znrWM5zghqUtmctMKIRgoQalJUHvG 0woFPeg2qWlPhw50oK1oADstGrMrvKCgZygoQxtKTSvo06EfpeY4H9pQiFrBEWsIAQkcQQJqkgCm a1joQtdw0zWQgKaOAClBSTBQRyDBGTC7aFEBcAUegPSmNiXoTWO60BDQdKBSVWlHC8pTqRLUEY6w whqQgISbghWnSw1rTsfq1bOWdQ1acIFRjXqFH3SVrGPV6VjlKtOukgAJda1rWsVKVkOo4aaGwKlg BftVJBgisWsQLE4D61XCejX/sTAwgAug4VaLwnWwauAsDBi72DUoFq1q+CpjDRFYsIo2rKoFq1iR QNrXdhYGpIUBEmBQ26/O9rZqmK1td8vZ1wYXBy3D7Drhilve5ha2r+3tbmtLWt7qVrq/5W1yo6uF 294Wu0vYbiWwq4Xv3nYJvA0vDLBr3krAIL3DLa5xAaHdJXiXu5VQA3a9e17wgve2r8iufuUbXuzy Vr7c1cISDFwJAxuBwAU2MIOXoGACJ3gJMDDwhJfQBuK2F5TN+EGDH1zhBoOXuxIWcYJFXGAHg5i7 FK6wJw7gCU8sIcYwNnCMl3CAGy+BEjCGMSVkLOMeL2EXMb5BhjXMxiugwBM+/7axjSuM4xnHeBc5 FjKTf6xiAzP5xQfgMo9x/GJKcDnMN16yi8fMZTSnmRJM1oGRj6zDULTAxWp+sYvt3GU8w/gARtiy J/h8YzTrGc9p5jIRDF3oNBNBEgeQBBEIjWg0O/oARMDwm0Epi0UX2tGZJrSkJ/3pTy/a0aOetKe5 LGpFX0LRVZDEJVR9AFUbetWSoLWqGx1rRbea0bW2RgAszUYQGIDWjaa1oYlt7EsUu9hVIEKyG61o Y4+62cNutqutbe1WXxvb2a51t7N97VZLAgrq/HX2gi1sYSfb1cO+hAG0LQl3r1ve4B52ra9tgHi7 G9/t5ne78a3vf7ta3/7Od/+7nUHucpOuH6ngd8D/PfCC+9vaEY83wfeNb0Qg4t8ZN4DGDUCNjGvc 4xvveMlJ/vGOW28AK2d5y13+cpjHXOYzpzktUuFxkWN84yPn+MlN3nGelzzj1CA6yBFBjR0gHeQd VzoivED0oxudGkAvOsifTo2D01zrW+d61wdACwIw3egh38EOjh7yoUf96KmA+tSh7oWb7wDoa08F 2+1e9bpTg+16z3vd7e73vedd79RQudcNf3iug73vfF883v9O9LsL/u97ZzwBCAD4y6fi8pavu+U5 n3nOa97vmx+9DvZQAcSnXvUuB/vmPw94zLte9KP3fOc1L3vPWx4Ou4dD7nv/T4Df897zvwd+73cP /OITIOsBYH7znf986Edf+tOn/vTNgYHhG1/7xTc+8pP/fe/rnvue70Y3gN+N3Zef9+iHg/rZj/7y w1/97Wd/+8c9gOrnX//7z/8AtvD+9AvA9YO/9eM9A0y/+jPA9ys/OZADBsSBbsABCIxACXRAOZhA BmRAB4y/C4RAB1QCCXAA/OM/EixB/ROBC9xACYzABoy/+FvBblBBB5xADKTAB3zAI5DAI9hBHMjB HuxBHvRBIJRAHcxBI+TBHzyCG6AFE2xCJ2w+d9mDISzCHRTCI7gFH6xCHSTCIKxCIQRCLVTCGzgC N2gDNyhDMmyDNhhDM1TD/zF0AyU0Qzi8ATegwyNoAzGEQzPsgWxwgAZ4QkDUvwrogxcwQy9Uwzk0 REW8ATVExDFkwzk8Q0aUxB1kRDI8Ah24gRnIRFS4gUzMRE/0xE+8AVIERVK8gTRIg09cxVMsRR2Q AuZrAFmcRVqsRVu8RVzMxVtkviJAgTQIRVEERVTQAVVURVE8RVMExV+cAWRkRVDUgWdURWJcRWmE RmisxmnMxmu0Rm7ERh1YAHnQRXEcR3K0xQGQhmnQgRfYRlSsRmyUxndMxWLcxmtMRW68xzRYR2hc xxfox33UAVDoR3vsR31UR4OERjAgSGgMSIV8gUkwhwAoR4mcyFo8x2kgyP8XyEeDJEhQUMcXSEh/ 9EiPDElu9Md11MiO/EdQAANA4IF+BAMegEmXBISPBAQwuEmb5AGdBMkXAISWZEmXZMmXdMmXBIMF eIAGeBd5WUqmbEqnfMqmZIAACIVWoEmWpMmP5AGbvMmb1MmP7MedjMmitEqY9MmrhEmu7Mme/Mkf +AGddEsegEseQAGd1MlNuEu3dMtNqEu+BIO9DMtNaMud/IEPeJdVOUzETEzFXEzGXJVxYIA9iMu4 FEy5BAMUgMu9tAEbgMsfsIG3rEu3hEm55IFNEE3JREvKRAHV/IHLZE3VvMzXfM22lE3XjE3XrE3Y vE0UGAJ7CIDG/E3gZMz/WCQEH7DN25zLtpzN5JzL1oTN1YzNuKTL54xN52TNFrhO1WwB1cQETEAB 7dROFOjO6wTP7exO74zN8QRP8sRO78SEITCBBwhO+fzNBuCARggDRhiC82RP7RTP6+TO7wzP7fTO ANVOHxjP7MzO78TO4jzPGljQ63xQH4AE7aRQH6gBH8hQSMjQA4UEDLXQFshQFLjQ8+zQFsDQA73O DY2Bx5xPF0XM+pyEEPXQEOXQDK3RCT3RGvBOEn1QC73QFtjQCb1QDK0BFBXSGqXQ67zQSIgEDHXS J62BSMgBKDVSJ40EH8DSSBiBJu3SLG3SLGXSDJVSKW3SHCDTEYgBBnAA/zZtUzd9UziNUzl1AAaY gEYYgh7IUyfNUiPlUyJtUikN0xHI0hEw0jL9UyitUi811EL90inNgRzg0int0hGIVCqd1EjogUe9 1BH4hCn11EetgU+I1B6A1Eq91FLNh0fwhQpwAA+YU1iNVTh91Tgogj64AyhohCkt1Ro401I101KF 1EeVVCntAS61Uirt1RroASmF1EsdVSo9013lgxzggx6QgTzN1h4YgmrNATylVmrtAWrF0zzNgVK1 VnAVV2o1V27tAUXghWBgAHdYhmBIGXu9V3zNV33d13ut12WgU3P4hWngAm911lJtV23t1m0NV2sV 123NUz4YAnI9WHPt1v9qPdhrfdhtlYEhwFZRkIEwkNiN7ViJDYNrxdaO5VhRkFhyZVk87VhS4AUP qACarVmbvVmczVmd3dmb9QB5YAEoWACSHYIw4NiOzVORlQFs5Vil3VaWddqVfdijJVlsvdaU7VhG kAFGKFr8LFqtZQSwBdmtzdqxBdmvVVqtDYOuzVq1ZQRSiANokAa5nVu6rVu7vVu8zdu8XYYKgIZe 4AKQ9Vq1NVuyVVvBJVzBbVuvRVuyVVrDHVv8HFuw5QJG6IAw4AIusNzIxVzM7QDK7Vz8xFxG+NwO YIRWwABgqIBQWF3WbV3XfV3YjV3ZnV3XXYYNSAEVyIDJHd2tpVzP7V3/3v1csN3cyh3d0sXPDihd zlVezoUFzsXcSXhe6X3e0YXe6sXcDGCBFfiADWiGDYAG8A1f8R1f8i1f8z1f9EXfDdgAaUgBQWgF 6JXe6H3eSZjf+W3e6c1fLliABYjfBYje/p3f/61fLqhfAi5gLsiALVAHc5CGK6AAXqAACZ5gCq5g C75gDM5gDd5gDEYHaLAFeFAC/p2E/g1gzO3fAjZgBF7h+63fAS5g/o1hGY7hRpjh/+VfJXgHZxAB dIBgDvhhIA5iIR5iIi5iIz5iJE5iIgaGUhiEQ2gFEr5hG47hKJ7iKW6EGq7hMsjiBWiEMuDfLHaB d7iDIogDXpgANE5j/zVeYzZuYzd+YziOYzmeYzUGBnOIg0dQhGlQAj5WAlVYgC3GYi/OYkK+YkE+ 5C7u4kZohV+IgDhIYw2IZEmeZEquZEu+ZEzOZE3eZE7O5DgAhgmwhwiIgC1QhAxwgVbg40MW5EAm 5FV+5RXIgweIA1uQAFu+ZVzOZV3eZV7uZV/+ZWAOZmHuZVugZRDwhT3IAGdoBFVY5WZmZkFWBSVo hGlWAgwoggcohgfYZm7uZm/+ZnAOZ3EeZ3IuZ3M+Z3Tm5mJYZwlY5wgogkWQggzYY2imZj/OABBQ hxQwhlLoZ3/2Z34G6H8+h4D+51Io6IAuaINeaIZu6H9GaIeOaIVW6P9+pmiBjuiFLoEg6GdZSIRa eIdUVgJGzoZswAOTLmmSJmk8SOmVZmmVTmmWbmmYNumTXmmZLmmZbmmbnmmUhume/mmfvumZ3mmc 1mmh9mmgfmmXhmliKIEIMGld8AV4yIBWiIFkkIWrlgUQwAcQ6Gqv/mqwDmuxHmuyLmuzPmu0Tmu1 PmtkAIFYiACSloUCeIQ8KABTuGtaoAVTKAK+7mu//mvADmzBHmzCLmzDPmzETmzEpoUi6AdZSIdY oAVWMAVfKADL9gXM9oVe6IU84Ow8+GzP9uzPBm3OFm3Q7uzR7mzTHm3RDu3NTu3TVm3Uhm3Zru3X jm3SDm3aPm3d3m3/1q5t2BaByi4CV+gHWvAFVhiEQdiCRGAFS7AEbOiDLZDu6e4DS6DuLcju7B4V 6rYE7f5u6R4V7bbu8M7u6/buLUDv697u9Z7u70bv7a5u+Q7v9k7v+J5u7/Zu647v8xbv795u/57v UXnu8JZuVjhwVsgDdsiDUqGHD3gECI+BGHiEeoBwC79wDM9wC6cHCKcHDs/wD3+EEBdxDS9xDR/x DhdxFDdxDl9xEz/xF+fwTviAGf8AIcAFa5gDXDiBE5iDHudxHbcGHudxXNhxIedxa7ADJD8BIVfy HVdya0hyJp/yHT8BO7hyKz/yLOdxKI9yL2fyKFfyE8AFMbcDL0/y/yvHcS4f8iu3BjUf8yUncybH cjM/8ii3cjuo8i0fci23hgmXcH3A8TmABxPAgH+QAgwwgV9Y9F8wAUd/dEiPdEmfdEqvdEu/dEzP dE3fdEsndB+fgznwA0a/h5rAAAzgBE6oBVNfdVZvdVd/dVbnBFg/9ViPdVmH9VufdV3fdQxQdVPP dVcHdl2/9VxfdBOQAllXAU3gBJzYA2d3dkLYAxV49j2I9mifdmqPdmqH9mrX9m3XdmvfdmknBG+v dnMX93KHdnKndmzP9nTP9mcnBBUA93Mv93af9nVH92nH9uegiTu4g0M4BIAf+H8f+IAveIAP+IM3 eIQXeIcveIU/+MuIh3iCl/h/F/iLx3iMb/iJT3iHt/iMp3iCb3iPv3iG/3iTF/h+vwlBUIQVePkV aPmXVwRBEISYt/mXr/mbz/mYd3md5/mZh/mcr3lSgHmX5/mjb3mXL3qhD/qm73mjP3qaX4Glf3lS UISpp/mib3mbv/qhV/qYp3qjFwRSIIUMyICVX/lpmIZTWHu3dwEoEAe5l3tnmPu6p3u5j/u5x/u9 z3tx0HtxuHu/F3y/7/vAN3zCJ3zDj3vAR/zCn/vGl3sXcAG3X/u0/4eAAAA7 ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://blackboard.wayne.edu/images/spacer.gif R0lGODlhBQAHAIAAAP///wAAACH5BAEAAAAALAAAAAAFAAcAAAIFhI+puwUAOw== ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://blackboard.wayne.edu/common_toolbar3.gif R0lGODlhLQEvAOfSAApVSA5eVgBmYgBnYxZjWwdpYABrZwxrYQBuagBvawBwcQVxbQB3eAB4eQB5 cxF2cRN3cgB/fgCDfACEgw+DfQSKiQCTkQKTlwCXmRmRkAGYlgCZmwWZlwCanACbnlKGfxGXnAma mACcn1WJggCgnF2HghCdmgChpACjnxOemwKjpgekpxuhnmWRi2mVjyenpGqWkCmopTCorCyqqC+s qj2pqD6qqT+rqkCsqziusnufm0OurXahnDeyr3+jn0eysGi6u46yrZi0sm7AwXTAu3LExYPFwqfA uJDJyK7GvqXOz6PQyqPP1qnO1qDS0ajQ0avT1b3PyKzV1rDV0bXV2LLX0rjY28XW0LzZ18PY18rX 2MTZ2MXa2b/c2czZ2r3e4cXd4sjd3M/c3Mne3dDd3crf3s7f2NHe38/g2dLf4Mzh4NXf2tDh29Pg 4c3i4dbg29rf4tTh4s7j4tfh3NHj3Nvg49Xi48/k49ji3dLk3dbj5NDl5Nnj3tPl3tzi5Nfk5dHm 5drk39Tm393j5dfm2dLn5tvl4NXn4Njn2tjm5t/k5tPo59bo4d3m4d3l7uDl6Nrn59fp4uHm6dvo 6eTm497o4tnq4+Ln6tzp6t/p5Nrr5ePo693q6+Dq5eTp7N7r7Ofp5uHr5uHq8uXq7d/s7ejq5+Ls 5+Dt7unr6OPt6OPs9N3v6Obs7uHu7+rs6eTu6d7w6eft7+Xv6uLw8Ovu6unu8Ofw6/Dt8uPx8erv 8u3v6+vw8+Xy8+7w7ejy7Ozx9Obz9Onz7u3y9fDy7+7z9vHz8Ov18On29/L08e/19/P18u338vb0 +PD2+Or4+O748/T38/L3+QxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxU SQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxU SQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSQxUSSH+EUNyZWF0ZWQgd2l0aCBH SU1QACwAAAAALQEvAAAI/gATCRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgTQdrIsaPHjyBDihxJ sqTJkyhTqlzJsqXLlzBjQuJEs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKuVEqqnTp1CjSp1KtarV q1izat3KtavXr2DDih1LqpbZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Ltxawv4ADCx5MuLDhw4gT K17MuLHjx5AjS55MuTIwYZgza97MubPnz6BDix5NurTp06hTq17NurVrYcViy55Nu7bt27hz697N u7fv38CDCx9OvLjx48WaKV++/FkzZc+ZS59Ovbr169izZ4/WjLv27+DD/mPn7l28+fPo01+Hlgxa tGjQmGnvQL8+/RBFkil73wyZ+v8AZpdMMt0pV16ACF7nHXcDJujgg+lFoww0HXAAAgcc2KehfQB0 6KGHEDihTDLIDGjiiSimqOKKLLbo4osoOgPjjDTWaKOJMt6o44489mhiich08OGQRBY5JARMIIPM M8X46OSTKzYz4DFQVqkjlQRaqeWWN/oXgpFghgmACVAYQ8yZaKap5ppstunmm3DGqeaJctZp551x 0onnnnz26eebyxAjpJiEDpmCFH8mqmidwmhBDGaLRoonpFoII+mlmCY6jAaFduohC1X8IuqopJZq 6qmopqrqqqyOilkU/r9g1uqstNaqqqxRyGrrrrz26iuqw/xSzKCedqpCFbskq+yyzDbr7LPQRivt tMr+csQvwFCr7bbcTguMtb90K+645JYrbbgcFFvsClbs0gsvyeZirrK5yNuLLrvk0ksuwOTCS73B 9GuvLv26C0C+8sobTL352hJvvrzUkqzDuQTBbC668NKLxPEC8G4v+/aySy0J25ItALwUnAsA8i7L McLwtgyxLrXoUm+2+e6CcrLwJhuEvfn2KzIuuSy8y78Z75KtvLYQXW8uthRt8y637IJvvbZEfbW8 8IZsM75T8yxvzUcfHTXVViNsCy+3yKuL0fEWPC0vxKpb6Atf1IKL/lm5zPL034AHHviQJNsCQC1r 0zIy1LTkYpYuttAMwN4A2BILLrjEYosrvOydNeJ6N15vLDz8TfKHJOPCS+Wpo6W1K5TbQvIsurDc tN65YJ6L6LREbFbjUddLci2xQL267IDrULzEnVceNS6sN84y6FGDjkv1jtPMyyx7Y555vRFfz/eH fpuleSz51kKL7MObpTr3emMei/vl47668NcLXi/mddtNaAxgKJ4tZlGLWRjwgAhMoAIPCIBYxIIW 0GMF8Qj4QFawz3MULB4AaPFA2R3wcvOrBSvmZ7lZvIKAZmlB3whowAYSsIF9OxwBX+FAy7migMRj BQBotrlasC6D/tsb4CyWN0SiWa6AHCReAR03ORwaMBctMMssJFg7tACAhT4s4hAneBYH4lCIs7hh LGZhOdkdkYk1jMUGl0hDVHhwi7OgBStwgUAxkpF48yNhAXWIRw4uEIWz6J//xCSDMLzCgqz4oyIX eMVYnOIULgSADtXYoTCSgnyvSAUATqFDSGqyQ6xgBSQ9JMpSnGKIjxzBLB55Sk3GIpGbTMUsNvmK D50iFqj4kCYfqUZIUrKBsPSQI3PpoRZecpM61OUpWTmLETwSlZA8hSs0WctQQrKAH2KFJm1xilpe cpYdGkUwQfmKV6jilQ1ExStYOc4rQvKYm5ylD8PZTgO6wpbk/iOFK/7ISkEOMkw0cENTUjEWAJCC k5ok6CY71JRQAGAUBmWFJ955yVNKskOhGMUqFkqKdVK0KaNoygeiYlBSzLIpnTTFKVJhikt+AgCh aGlLJXnJVED0odo0qEFnkYpokgIVNu0kQzsKAFOYQqErhcpISWHKV1xSFDl9qSwvCQprmuKlOiTF KKgZzlOYQqeh6KgmRwGLlkLyE7PwhCxDCgCbnkKqHTJFRhdqUK+CtaOX/OpBbcpWU7ziqFfx5z+N RIAaxGEUn0isYhfL2MYudkil8MRX9erVr3oCAJI1xWU/4dCZvpQUnviESwEg2lE4NBSh9URYP1GC pog2sUMK/oVoDarasF4yr54IrUNfmthZlqIply1FW0Er3IwmNrQwhaliAbAJUsxWtp8IbVNKINrI itall7ysQq8rWqMCgBO7pe13TxFTnSK2KUX9BCs28VWCegK0YS0pKdpbUs9iVq56feh1SYtZ14K2 pGp1LGMFO9giHaAGebiEUr7bCUhsIhOd4AQAMvHdTUjiEt8lEicgwWAAcJiznOhEhocUYZqUGAY4 +a6CN/FdCXfipR+SME1mgmGYbqLBLY6wh7/7CRx3gsIf4rAkPnEJDJtCwSLOiQtm/AlOXILFDr1E KCT8Ukh0QsQxZrGMRdxkmkyYSIntxCYkrOAmX3nLXtYy/k0wrGYvA/lDu1UwJ3r8XQeXmCcELjCR DGADPcTEwxveyCWE7OGNWGLHkvjIhDks4Y4AQBKkzQRHMiFpSAyaEz7wCIUlIWlKFHrHk0b0RhIN 6o0UmhIcTjVHSv3jRwPAEo3AcSMCPeFEd8QHgd4Iqr98CUqDGtKQyASpIdGIHUvaw5RO9aMlLeyN NLvQk051pY3t7B03+NhCrvSwrbxqTiS6wSGZcZ71PCQE5EAPjdB1JhrxiHRz5BEjAQC8O/IIULu7 1KY2NbwBUGxHpzrd9X4EvN0NCSHYetSLbje/i13seXeo3o5wN8M9bYmAs7vf/N4Ixi/eIQ7PW9Uc ljfB/iHxCCHQO98eVniq671qkYMc2g2XNyQqDu1Vkzzd+OZwwzWO75jD2xLKTncjFKFvkn9cJOMm 94cQgAM7cCQR7taIQCAxdZAAAOoa2Ugi+D2ke3to1RqxN8mvXu+vNyLrVIdEErTO8w9BneVb77iH 496hfptaEUNqecdNLXeGO7ruV3/6RtYu9aFDvdAaKbbUQ871xF8d52nnMNDdHnliMx4AjHjEoc2e cWLvGO2vvrzjPZT1ukM9JO4GgdI9hYAYlCEQAzn72Rdx9kToISGwFwi6IQH7q2Nd9lRPPEEYUZDa BwL2tz9+7AdyBYQ0IveJCEQjpn96dGP9+ok4BCJy/i/7RPAB6rUXCPW/H36oO1361BfIIcqfiCuE 3/qBgEQhEiGI5/s5EYyYfvjXr/iB3P8Qg4B+xCd1AgF90Wd73Rd97GeABwiAAigQxMd92NcIh4B9 BnF7FrB6nlIAJ5AFtmcHidAHBVEHCZF8t2d7x+cHVycItoeCBBEI6KYHgVCBBagHhOB9uXd8J6gH h3CCiUAGFzgQ32d9gnCCIuiCenB7Smh7LDiDAxEIfpAIfjB9UegH0Fd7Mhh9MAh9fMCAP1gQPXiA VniAW5iFAtGFW6cHgPB8uteGKPh9BJGEMngIYYiCMjgI9NeCAmEHMLiEeiiDcJgIeGh/ZMgHZpgQ /mhQARpYLB2gBHqwB3ZgB3qQB3wQBzIoh5goh3bAB3ugB3zwiXbQBwAQinogiXrQB5TIB3nQB5No iZaYhKG4iXEAgpJ4B6W4B3lgB3ngiXpABp+oiYbYBoHwi3wgiXzQB5voiYYIi32wB8fIh4a4icd4 ipO4jKpIjX1giKwYicVIikmIB8W4jMpIBryYB524jXmwi7poinvAit8YjgAQjXmQCCCIinoAjnLo joYIiqVYjHhQhJLYB3eQCHiQi4/oidKYhPaIj5i4kMwoh7iYiZg4B3qwBA+wiMXCAUTQBnhAB3YQ B3NQiXGQi5FYkpEYB5WYB3RQirk4i3SAkh5J/pLpGIl5EAd0sJJxYJMnaYt80AZzUJB4EAd48JG6 OJPrqIutmJO6eAfpOIlIWZSRqAezmIt3oJMmKYlTWYqS2JJaSZJtAJU0OZS7SAcymYvpOJI9WYpy sI6z+JG2GJZI6ZG6aIkvOYtKCZaU6JF68JJniZI0aYp0AAcfSZJ2UJeV+JFtaZRROZaquI55QJFD eZWRyJQ7gJHqogAo8ARuMAdtEAdf2QY3GZqi6ZlxgAZ0gAY2eZM5mZOmCZqmeZp04JqeqZqlWZNu gAagCZoj+ZqdCZugKQen+ZVr8JJy0AZo8AalSQdz4Aax2QZtcAdt4AZ54JylaZPHeZpxoAZo/oAH xumTnImbeIAGakCanZkHqEkHyHmacwCdsHmTrumRuGkH0dmZpSmfplma6YkG66mbdmCaZBAHcoAG aCCfbtCb9BmbcUAGxUmacvAG7JmcnYmb5lma0YmgAzqfNumc04mbz4mazukGchCgoCmaodkGTdAA lmk3DnADWYCbZICbAhqjMtoGZECjbkAGBdoGxemiNxqjZPCiAvqiQHqc0VmjLuqcuJmjMIoGP2qc AmqcZPAGt1mjztmdQqqdNOqkWXqjV6qlRpqjt5mlMQqlL6qjNMqhTLqkHKqlacqkbqAGbbAGAVqm Z4qkQCqksQmnPzqmXHqmaCqga6AGe/qj/hR6pLiZnVXKpXw6pELKoQlqqDIqo1tAAik6SBMABFzw o9opo3caqZ76qaAaqqI6qqRaqqZ6qqiaqqq6qqzaqj4apEKKBSwgAJU6SAEwAT3wBGLwo2Swq7Dq qsAarMI6rMRarMbKqmZQBkxKBmZgBBRQq3rGABnwA0hABV5QBmPAq9q6rdzard76reAaruI6ruRa ruZ6ruiaruqqrmVQBl1QBUNgAgoArau3ABJQARdQIRygARvSr/76rwAbsAI7sARbsAZ7sAibsAq7 sP+KARUQAQNArxI7sRRbsRZ7sRibsRq7sRzbsR77sSAbsiI7siRbsiZ7siibsiq7sizbKLIu+7Iw G7MyO7M0W7M2e7M4m7M6u7M827M++7NAG7RCO7REW7QeGxAAOw== ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/branding/themes/wsu_production_theme/theme.css?v=9.0.440.7 BODY { BACKGROUND-POSITION: 0% 0%; MARGIN: 0px; FONT: 0.8em "Lucida grande", = Arial, Verdana, sans-serif; HEIGHT: 100%; BACKGROUND-COLOR: #cdcdcd } FORM { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } A { COLOR: #003366 } * { FONT-FAMILY: "Lucida grande", Arial, verdana, sans-serif } IMG { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; VERTICAL-ALIGN: middle; BORDER-RIGHT-WIDTH: 0px } .hideme { DISPLAY: none! important } H1 { FONT-SIZE: 148%; HEIGHT: 1% } H2 { FONT-SIZE: 123.1% } H3 { FONT-SIZE: 108% } H1 { MARGIN: 1em 0px } H2 { MARGIN: 1em 0px } H3 { MARGIN: 1em 0px } H1 { FONT-WEIGHT: bold } H2 { FONT-WEIGHT: bold } H3 { FONT-WEIGHT: bold } H4 { FONT-WEIGHT: bold } H5 { FONT-WEIGHT: bold } H6 { FONT-WEIGHT: bold } STRONG { FONT-WEIGHT: bold } IMG { _behavior: url(/javascript/iepngfix.htc) } DIV { _behavior: url(/javascript/iepngfix.htc) } BODY { MIN-WIDTH: 800px } DIV.topGlobalLinks { MIN-WIDTH: 800px } BODY.popup { PADDING-RIGHT: 0px; MIN-WIDTH: 100%; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; PADDING-TOP: 6px } BODY.csMenuFrame { MIN-WIDTH: 200px; WIDTH: 100%; PADDING-TOP: 12px } BODY.popupMenu { MIN-WIDTH: 200px; WIDTH: 100%; PADDING-TOP: 12px } DIV.locationPane { =09 } DIV.topGlobalLinks { =09 } BODY.popup DIV.locationPane { WIDTH: 100% } .extraLarge { FONT-SIZE: 200%; LINE-HEIGHT: 150% } TABLE.bouncer { WIDTH: 100%; BORDER-COLLAPSE: collapse } TABLE.bouncer TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } DIV.topTabs { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: #dedede 3px solid; ZOOM: 1; POSITION: = relative; HEIGHT: 74px } TABLE.topTabs { BORDER-COLLAPSE: collapse } .frameResizeToggle { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9px; BACKGROUND: = #bbbbbb; LEFT: 0px; PADDING-BOTTOM: 0px; BOTTOM: 0px; LINE-HEIGHT: 1px; = PADDING-TOP: 0px; POSITION: absolute; _top: 68px; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px } .frameResizeToggle A { BACKGROUND: url(images/top_frame_toggle_2.gif) no-repeat 0px 2px; = FILTER: alpha(opacity=3D60); OVERFLOW: hidden; HEIGHT: 18px; opacity: .6 } .frameResizeToggle A:hover { FILTER: alpha(opacity=3D100); opacity: 1 } .frameResizeToggle A.resize-on { BACKGROUND-POSITION: 0px -15px } .frameResizeToggle A.resize-off { BACKGROUND-POSITION: 0px 2px } .frameResizeToggle A IMG { WIDTH: 16px; HEIGHT: 18px } DIV.topTabs DIV.tabWrapper-left { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } DIV.topTabs DIV.tabWrapper-center { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } DIV.topTabs DIV.tabWrapper-right { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } TABLE.topTabs TR TD DIV.tabWrapper-left { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } TABLE.topTabs TR TD DIV.tabWrapper-center { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } TABLE.topTabs TR TD DIV.tabWrapper-right { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } DIV.topTabs DIV.tabWrapper-center TABLE.appTabs { MARGIN: 0px auto } TABLE.topTabs TR TD DIV.tabWrapper-center TABLE.appTabs { MARGIN: 0px auto } DIV.topTabs DIV.tabWrapper-right TABLE.appTabs { FLOAT: right } TABLE.topTabs TR TD DIV.tabWrapper-right TABLE.appTabs { FLOAT: right } TABLE.appTabs { WIDTH: auto; POSITION: relative; TOP: 3px; border-spacing: 2px } HTML * TABLE.appTabs { TOP: 3px } TABLE.appTabs TBODY TR TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 4px 0px 0px; PADDING-TOP: 0px; POSITION: relative } #topTab { BORDER-RIGHT: #65696e 1px solid; PADDING-RIGHT: 1.2em; = BACKGROUND-POSITION: right 5px; BORDER-TOP: #65696e 1px solid; DISPLAY: = block; PADDING-LEFT: 1.2em; FONT-SIZE: 95%; Z-INDEX: 100; = BACKGROUND-IMAGE: url(images/gradient_black_short_bt.png); = PADDING-BOTTOM: 0.4em; MARGIN: 0px; BORDER-LEFT: #65696e 1px solid; = COLOR: #ffffff; PADDING-TOP: 0.4em; BORDER-BOTTOM: #65696e 0px solid; = BACKGROUND-REPEAT: repeat-x; WHITE-SPACE: nowrap; BACKGROUND-COLOR: = #7c8188; TEXT-ALIGN: center; TEXT-DECORATION: none; _background-image: = none } TABLE.appTabs TBODY TR TD A { BORDER-RIGHT: #65696e 1px solid; PADDING-RIGHT: 1.2em; = BACKGROUND-POSITION: right 5px; BORDER-TOP: #65696e 1px solid; DISPLAY: = block; PADDING-LEFT: 1.2em; FONT-SIZE: 95%; Z-INDEX: 100; = BACKGROUND-IMAGE: url(images/gradient_black_short_bt.png); = PADDING-BOTTOM: 0.4em; MARGIN: 0px; BORDER-LEFT: #65696e 1px solid; = COLOR: #ffffff; PADDING-TOP: 0.4em; BORDER-BOTTOM: #65696e 0px solid; = BACKGROUND-REPEAT: repeat-x; WHITE-SPACE: nowrap; BACKGROUND-COLOR: = #7c8188; TEXT-ALIGN: center; TEXT-DECORATION: none; _background-image: = none } TABLE.appTabs TBODY TR TD A:hover { BORDER-RIGHT: #597298 1px solid; BORDER-TOP: #597298 1px solid; = BACKGROUND: #bbb; BORDER-LEFT: #597298 1px solid; COLOR: #000; = BORDER-BOTTOM: #597298 0px solid } TABLE.appTabs TBODY TR TD A:focus { BORDER-RIGHT: #597298 1px solid; BORDER-TOP: #597298 1px solid; = BACKGROUND: #bbb; BORDER-LEFT: #597298 1px solid; COLOR: #000; = BORDER-BOTTOM: #597298 0px solid } #topTabActive { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1.2em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1.2em; FONT-WEIGHT: bold; Z-INDEX: = 1000; PADDING-BOTTOM: 0.38em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.34em; BORDER-BOTTOM: #595c61 2px; TOP: 1px; = BACKGROUND-COLOR: #dedede; opacity: 1 } TABLE.appTabs TBODY TR TD.active A { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1.2em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1.2em; FONT-WEIGHT: bold; Z-INDEX: = 1000; PADDING-BOTTOM: 0.38em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.34em; BORDER-BOTTOM: #595c61 2px; TOP: 1px; = BACKGROUND-COLOR: #dedede; opacity: 1 } TABLE.appTabs TBODY TR TD.active A:hover { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1.2em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1.2em; FONT-WEIGHT: bold; Z-INDEX: = 1000; PADDING-BOTTOM: 0.38em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.34em; BORDER-BOTTOM: #595c61 2px; TOP: 1px; = BACKGROUND-COLOR: #dedede; opacity: 1 } TABLE.round1 { POSITION: relative; TOP: 4px } TABLE.round2 { POSITION: relative; TOP: 4px } HTML * TABLE.round1 { TOP: 3px } HTML * TABLE.round2 { TOP: 3px } TABLE.round1 TBODY TR TD A { -moz-border-radius-topright: 9px; -webkit-border-top-right-radius: 9px; = -moz-border-radius-topleft: 9px; -webkit-border-top-left-radius: 9px; = -khtml-border-horizontal-spacing: 9px } TABLE.round2 TBODY TR TD A { -moz-border-radius-topright: 36px; -webkit-border-top-right-radius: = 36px; -moz-border-radius-topleft: 36px; -webkit-border-top-left-radius: = 36px; -khtml-border-horizontal-spacing: 36px } TABLE.appTabs TBODY TR TD H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } TABLE.appTabs TBODY TR TD.active H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } TABLE.appTabs TBODY TR TD.active H2 { FONT-WEIGHT: bold } DIV.topTabs DIV.topGlobalLinks { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 0px; BACKGROUND: none = transparent scroll repeat 0% 0%; LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; ZOOM: 1; POSITION: absolute; TOP: 0px; TEXT-ALIGN: = center; _display: block; _width: 100% } TABLE.topTabs TR TD DIV.topGlobalLinks { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 0px; BACKGROUND: none = transparent scroll repeat 0% 0%; LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; ZOOM: 1; POSITION: absolute; TOP: 0px; TEXT-ALIGN: = center; _display: block; _width: 100% } DIV.topTabs-compact DIV.topGlobalLinks { RIGHT: 0px; BACKGROUND: #fff; LEFT: auto; COLOR: #777; POSITION: = absolute; TOP: 0px; _width: 100% } TABLE.topTabs-compact TR TD DIV.topGlobalLinks { RIGHT: 0px; BACKGROUND: #fff; LEFT: auto; COLOR: #777; POSITION: = absolute; TOP: 0px; _width: 100% } DIV.topTabs DIV.topGlobalLinks UL { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; Z-INDEX: 1001; BACKGROUND: none = transparent scroll repeat 0% 0%; PADDING-BOTTOM: 2px; MARGIN: 0px auto; = WIDTH: 420px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; LIST-STYLE-TYPE: = none; BORDER-BOTTOM-STYLE: none; _width: 440px } TABLE.topTabs TR TD DIV.topGlobalLinks UL { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; Z-INDEX: 1001; BACKGROUND: none = transparent scroll repeat 0% 0%; PADDING-BOTTOM: 2px; MARGIN: 0px auto; = WIDTH: 420px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; LIST-STYLE-TYPE: = none; BORDER-BOTTOM-STYLE: none; _width: 440px } DIV.topTabs DIV.topGlobalLinks UL LI { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; Z-INDEX: 499; FLOAT: left; BORDER-BOTTOM-WIDTH: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; ZOOM: 1; = POSITION: relative; TOP: 0px; BORDER-RIGHT-WIDTH: 0px; _height: 1% } TABLE.topTabs TR TD DIV.topGlobalLinks UL LI { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; Z-INDEX: 499; FLOAT: left; BORDER-BOTTOM-WIDTH: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; ZOOM: 1; = POSITION: relative; TOP: 0px; BORDER-RIGHT-WIDTH: 0px; _height: 1% } DIV.topGlobalLinks UL LI IMG { LEFT: 0px; POSITION: absolute; TOP: 15px } DIV.topTabs DIV.topGlobalLinks UL LI A { PADDING-RIGHT: 8px; MARGIN-TOP: 15px; DISPLAY: block; PADDING-LEFT: = 30px; FONT-SIZE: 85%; BACKGROUND: none transparent scroll repeat 0% 0%; = PADDING-BOTTOM: 4px; BORDER-LEFT: #555 1px dotted; COLOR: #fff; = PADDING-TOP: 4px; ZOOM: 1; TEXT-ALIGN: left; TEXT-DECORATION: none; = _display: inline-block; _border-left-style: solid } TABLE.topTabs TR TD DIV.topGlobalLinks UL LI A { PADDING-RIGHT: 8px; MARGIN-TOP: 15px; DISPLAY: block; PADDING-LEFT: = 30px; FONT-SIZE: 85%; BACKGROUND: none transparent scroll repeat 0% 0%; = PADDING-BOTTOM: 4px; BORDER-LEFT: #555 1px dotted; COLOR: #fff; = PADDING-TOP: 4px; ZOOM: 1; TEXT-ALIGN: left; TEXT-DECORATION: none; = _display: inline-block; _border-left-style: solid } HTML * DIV.topTabs DIV.topGlobalLinks UL LI A { FONT-SIZE: 85% } HTML * DIV.topTabs-compact DIV.topGlobalLinks UL LI A { FONT-SIZE: 85% } DIV.topTabs DIV.topGlobalLinks UL LI A:hover { TEXT-DECORATION: underline } DIV.topTabs DIV.topGlobalLinks UL LI:first-child A { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } DIV.topTabs DIV.topGlobalLinks UL LI:first-child A:hover { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } DIV.topTabs DIV.topGlobalLinks UL LI A.myPlaces { PADDING-RIGHT: 6px! important; PADDING-LEFT: 28px! important; = PADDING-BOTTOM: 3px! important; PADDING-TOP: 3px! important } DIV.topTabs DIV.topGlobalLinks UL LI A.home { BACKGROUND: url(images/home_ti.gif) no-repeat center 0px } DIV.topTabs DIV.topGlobalLinks UL LI A.logout { BACKGROUND: url(images/logout.gif) no-repeat center 0px } DIV.topTabs DIV.topGlobalLinks UL LI A.help { BACKGROUND: url(images/small_help_on2.gif) no-repeat center 0px } DIV.topTabs DIV.topGlobalLinks UL LI A.myPlaces { BACKGROUND-POSITION: 2px center } DIV.topTabs DIV.topGlobalLinks UL LI A.home { BACKGROUND-POSITION: 2px center } DIV.topTabs DIV.topGlobalLinks UL LI A.logout { BACKGROUND-POSITION: 2px center } DIV.topTabs DIV.topGlobalLinks UL LI A.help { BACKGROUND-POSITION: 2px center } DIV.topTabs-compact DIV.topGlobalLinks A { FONT-SIZE: 85%; MARGIN: 0px 3px; TEXT-DECORATION: none } DIV.topTabs-compact DIV.topGlobalLinks A IMG { DISPLAY: none } DIV.topTabs-compact DIV.topGlobalLinks A:hover { COLOR: #000; TEXT-DECORATION: underline } HTML * DIV.topTabs DIV.topGlobalLinks UL LI A { FONT-SIZE: 85% } HTML * DIV.topTabs-compact DIV.topGlobalLinks UL LI A { FONT-SIZE: 85% } DIV.topTabs DIV.hotItems { RIGHT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; WIDTH: = 400px; MAX-HEIGHT: 48px; POSITION: absolute; TOP: 0px; HEIGHT: 48px } DIV.topTabs DIV.hotItems UL.hotLinks { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 1001; PADDING-BOTTOM: = 0px; MARGIN: 0px 14px 2px 0px; OVERFLOW: auto; BORDER-TOP-STYLE: none; = MAX-HEIGHT: 48px; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; LIST-STYLE-TYPE: none; HEIGHT: 48px; = BORDER-BOTTOM-STYLE: none } DIV.topTabs DIV.hotItems UL.hotLinks LI { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; FLOAT: none; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; TOP: 0px; = BORDER-RIGHT-WIDTH: 0px } DIV.topTabs DIV.hotItems UL.hotLinks LI A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 8px; PADDING-LEFT: 8px; = BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 85%; BACKGROUND: none transparent = scroll repeat 0% 0%; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 1px; = MARGIN: 0px; LINE-HEIGHT: 100%; PADDING-TOP: 1px; TEXT-ALIGN: left; = BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: none } DIV.topTabs DIV.hotItems UL.hotLinks LI A:hover { COLOR: #000; TEXT-DECORATION: underline } DIV.topTabs-compact DIV.topGlobalLinks { RIGHT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; TOP: 0px; = TEXT-ALIGN: center } DIV.topTabs-compact { PADDING-TOP: 14px; POSITION: relative } DIV.topTabs-compact DIV.tabWrapper-left { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px; BORDER-BOTTOM: #dedede 3px solid } DIV.topTabs-compact DIV.tabWrapper-center { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px; BORDER-BOTTOM: #dedede 3px solid } DIV.topTabs-compact DIV.tabWrapper-right { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px; BORDER-BOTTOM: #dedede 3px solid } DIV.topTabs-compact TABLE.appTabs { WIDTH: auto; POSITION: relative; TOP: 2px } HTML * DIV.topTabs-compact TABLE.appTabs { TOP: 2px } DIV.topTabs-compact DIV.tabWrapper-center TABLE.appTabs { MARGIN: 0px auto } DIV.topTabs-compact DIV.tabWrapper-right TABLE.appTabs { FLOAT: right } DIV.topTabs-compact TABLE.appTabs TR TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 4px 0px 0px; PADDING-TOP: 0px; POSITION: relative } DIV.topTabs-compact TABLE.appTabs TR TD A { BORDER-RIGHT: #65696e 1px solid; PADDING-RIGHT: 1em; = BACKGROUND-POSITION: right 5px; BORDER-TOP: #65696e 1px solid; DISPLAY: = block; PADDING-LEFT: 1em; FONT-SIZE: 90%; Z-INDEX: 100; = BACKGROUND-IMAGE: url(images/gradient_black_short_bt.png); = PADDING-BOTTOM: 0.2em; MARGIN: 0px; BORDER-LEFT: #65696e 1px solid; = COLOR: #ffffff; PADDING-TOP: 0.3em; BORDER-BOTTOM: #7c8188 1px solid; = BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: #7c8188; TEXT-ALIGN: = center; TEXT-DECORATION: none; _background-image: none } DIV.topTabs-compact TABLE.round1 TR TD.active A { -moz-border-radius-topright: 9px; -webkit-border-top-right-radius: 9px; = -moz-border-radius-topleft: 9px; -webkit-border-top-left-radius: 9px; = -khtml-border-horizontal-spacing: 9px } DIV.topTabs-compact TABLE.round1 TR TD A { -moz-border-radius-topright: 9px; -webkit-border-top-right-radius: 9px; = -moz-border-radius-topleft: 9px; -webkit-border-top-left-radius: 9px; = -khtml-border-horizontal-spacing: 9px } DIV.topTabs-compact TABLE.round2 TR TD.active A { -moz-border-radius-topright: 36px; -webkit-border-top-right-radius: = 36px; -moz-border-radius-topleft: 36px; -webkit-border-top-left-radius: = 36px; -khtml-border-horizontal-spacing: 36px } DIV.topTabs-compact TABLE.round2 TR TD A { -moz-border-radius-topright: 36px; -webkit-border-top-right-radius: = 36px; -moz-border-radius-topleft: 36px; -webkit-border-top-left-radius: = 36px; -khtml-border-horizontal-spacing: 36px } DIV.topTabs-compact TABLE.appTabs TR TD A:hover { BORDER-RIGHT: #597298 1px solid; BORDER-TOP: #597298 1px solid; = BACKGROUND: #bbb; BORDER-LEFT: #597298 1px solid; COLOR: #000; = BORDER-BOTTOM: #bbb 1px solid } DIV.topTabs-compact TABLE.appTabs TR TD.active A { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1em; FONT-WEIGHT: bold; BACKGROUND: = #dedede; PADDING-BOTTOM: 0.2em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.3em; BORDER-BOTTOM: #595c61 2px; TEXT-DECORATION: = none } DIV.topTabs-compact TABLE.appTabs TR TD.active A:hover { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1em; FONT-WEIGHT: bold; BACKGROUND: = #dedede; PADDING-BOTTOM: 0.2em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.3em; BORDER-BOTTOM: #595c61 2px; TEXT-DECORATION: = none } DIV.topTabs-compact UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #777d86 1px solid; = LIST-STYLE-TYPE: none } DIV.topTabs-compact UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.topTabs-compact UL LI.gap { MARGIN-LEFT: 3px } DIV.topTabs-compact UL LI.gap A:hover { =09 } DIV.topTabs-compact UL LI A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; FONT-SIZE: = 85%; PADDING-BOTTOM: 5px; MARGIN: 0px; COLOR: #fff; PADDING-TOP: 5px; = TEXT-DECORATION: none } .topTabs-compact UL LI A:hover { COLOR: #fff; TEXT-DECORATION: underline } .topTabs-compact UL LI.active { Z-INDEX: 2500; MARGIN: 0px; BORDER-BOTTOM-STYLE: none! important } .topTabs-compact UL LI.active { POSITION: relative; TOP: 1px } .topTabs-compact UL LI.active A { BORDER-RIGHT: #777d86 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: = #777d86 1px solid; DISPLAY: block; PADDING-LEFT: 12px; FONT-WEIGHT: = bold; BACKGROUND: #cdcdcd; PADDING-BOTTOM: 4px; MARGIN: 0px; = BORDER-LEFT: #777d86 1px solid; COLOR: #000! important; PADDING-TOP: = 6px; BORDER-BOTTOM: #777d86 1px; TEXT-DECORATION: none; = -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; = -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px } .topTabs-compact UL LI.gap { MARGIN-LEFT: 12px } .topTabs-compact DIV.hotItems { DISPLAY: none } .topTabs-compact DIV.topGlobalLinks UL { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; FLOAT: right; = BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px } .topTabs-compact DIV.topGlobalLinks UL LI { Z-INDEX: 499; FLOAT: left; MARGIN: 0px 4px; POSITION: relative } .topTabs-compact DIV.topGlobalLinks UL LI A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .topTabs DIV.brandingImgWrap { OVERFLOW: hidden; HEIGHT: 43px } .topTabs DIV.brandingImgWrap IMG.bannerImage { MARGIN: 0px } .topTabs-compact IMG.bannerImage { DISPLAY: none } .topTabs-compact DIV.brandingImgWrap { DISPLAY: none } #topFrame { BACKGROUND-POSITION: 0px 0px; COLOR: #fff; BACKGROUND-REPEAT: = no-repeat; BACKGROUND-COLOR: #8192a8 } .bgBanner { BACKGROUND-POSITION: 0px 0px; COLOR: #fff; BACKGROUND-REPEAT: = no-repeat; BACKGROUND-COLOR: #8192a8 } DIV.locationPane { MARGIN-TOP: 10px; OVERFLOW: visible; ZOOM: 1; POSITION: relative } #navigationPane { CLEAR: both; PADDING-RIGHT: 0px; MARGIN-TOP: 0px; PADDING-LEFT: 0px; = LEFT: 0px; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 212px; = PADDING-TOP: 0px; ZOOM: 1; POSITION: absolute; TOP: 0px } DIV.navigationPane { CLEAR: both; PADDING-RIGHT: 0px; MARGIN-TOP: 0px; PADDING-LEFT: 0px; = LEFT: 0px; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 212px; = PADDING-TOP: 0px; ZOOM: 1; POSITION: absolute; TOP: 0px } DIV.menuWrap { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: = 212px; PADDING-TOP: 0px; POSITION: relative; BACKGROUND-COLOR: = transparent } .navcollapsed { WIDTH: 0px! important } .pullcollapsed { LEFT: 1px! important } .pullcollapsed A { DISPLAY: block; BACKGROUND: url(images/menu_expand3.gif) no-repeat 0px = 0px; WIDTH: 14px; HEIGHT: 29px } .contcollapsed { MARGIN-LEFT: 15px! important } #puller { MARGIN-TOP: 180px; Z-INDEX: 3; LEFT: 198px; POSITION: absolute; = BACKGROUND-COLOR: transparent! important; _height: 1px } #puller A { DISPLAY: block; BACKGROUND: url(images/menu_collapse3.gif) no-repeat = 0px 0px; WIDTH: 14px; HEIGHT: 29px } #puller A IMG { WIDTH: 14px; HEIGHT: 29px } #contentPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px 0px 212px; = OVERFLOW: visible; PADDING-TOP: 0px; ZOOM: 1 } DIV.contentPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px 0px 212px; = OVERFLOW: visible; PADDING-TOP: 0px; ZOOM: 1 } #contentPaneWide { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px; = PADDING-TOP: 0px; ZOOM: 1 } DIV.contentPaneWide { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px; = PADDING-TOP: 0px; ZOOM: 1 } DIV.portalPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px; = PADDING-TOP: 0px; ZOOM: 1 } #content { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; ZOOM: 1 } DIV.contentBox { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; ZOOM: 1 } DIV.portal DIV.content { =09 } DIV.paneTabs { PADDING-RIGHT: 1px; MIN-WIDTH: 600px; PADDING-LEFT: 1px; BACKGROUND: = none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 0px } DIV.paneTabs UL { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.paneTabs UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 200; FLOAT: left; = PADDING-BOTTOM: 1px; MARGIN: 0px 5px 0px 0px; PADDING-TOP: 1px; = POSITION: relative; TEXT-ALIGN: center } DIV.paneTabs UL LI A { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; BACKGROUND: = #dedede; PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; = TEXT-DECORATION: none; -moz-border-radius: 3px; -webkit-border-radius: = 3px } DIV.paneTabs UL LI.active { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 95%; Z-INDEX: 10; BACKGROUND: none transparent scroll repeat 0% 0%; = FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px 4px 0px -1px; COLOR: #000; = PADDING-TOP: 0px; POSITION: relative; TEXT-ALIGN: center! important } DIV.paneTabs UL LI.active A { PADDING-RIGHT: 16px; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-TOP-STYLE: none; = PADDING-TOP: 5px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; = TEXT-DECORATION: none; BORDER-BOTTOM-STYLE: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.active A:hover { PADDING-RIGHT: 16px; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-TOP-STYLE: none; = PADDING-TOP: 5px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; = TEXT-DECORATION: none; BORDER-BOTTOM-STYLE: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.activepersonal A { PADDING-RIGHT: 16px; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-TOP-STYLE: none; = PADDING-TOP: 5px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; = TEXT-DECORATION: none; BORDER-BOTTOM-STYLE: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.activepersonal A:hover { PADDING-RIGHT: 16px; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-TOP-STYLE: none; = PADDING-TOP: 5px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; = TEXT-DECORATION: none; BORDER-BOTTOM-STYLE: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.active H3 { PADDING-RIGHT: 16px; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-TOP-STYLE: none; = PADDING-TOP: 5px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; = TEXT-DECORATION: none; BORDER-BOTTOM-STYLE: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.activepersonal A { PADDING-RIGHT: 22px; PADDING-LEFT: 16px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 5px; PADDING-TOP: 5px } DIV.paneTabs UL LI.activepersonal A:hover { PADDING-RIGHT: 22px; PADDING-LEFT: 16px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 5px; PADDING-TOP: 5px } DIV.paneTabs UL LI.addbutton { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 100; BACKGROUND: none = transparent scroll repeat 0% 0%; FLOAT: left; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 1px; POSITION: relative; TEXT-ALIGN: center } DIV.paneTabs UL LI.personal A { PADDING-RIGHT: 20px; DISPLAY: block; PADDING-LEFT: 9px; BACKGROUND: = #dedede; PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; = TEXT-DECORATION: none } DIV.paneTabs UL LI.external A { PADDING-LEFT: 20px; BACKGROUND: url(images/small_external_content.gif) = #dedede no-repeat 2px center } DIV.paneTabs UL LI.external A:hover { PADDING-LEFT: 20px; BACKGROUND: url(images/small_external_content.gif) = #fff1c5 no-repeat 2px center } DIV.paneTabs UL LI.activepersonal A.paneTabOptions { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; RIGHT: 5px; = FILTER: alpha(opacity=3D30); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; = POSITION: absolute! important; TOP: 4px; BACKGROUND-COLOR: transparent; = opacity: 0.3 } DIV.paneTabs UL LI.personal A.paneTabOptions { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; RIGHT: 5px; = FILTER: alpha(opacity=3D30); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; = POSITION: absolute! important; TOP: 4px; BACKGROUND-COLOR: transparent; = opacity: 0.3 } DIV.paneTabs UL LI A.paneTabOptions { DISPLAY: none } DIV.paneTabs UL LI.activepersonal:hover A.paneTabOptions { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.paneTabs UL LI.button A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 9px; BACKGROUND: #d3e2f5; = PADDING-BOTTOM: 3px; BORDER-LEFT: #acc2df 1px solid; COLOR: #555; = PADDING-TOP: 2px; BORDER-BOTTOM: #acc2df 1px solid; TEXT-DECORATION: = none; -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.button A:hover { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #acc2df 1px solid; = BACKGROUND: url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = BORDER-LEFT: #acc2df 1px solid; BORDER-BOTTOM: #5577bb 1px solid } DIV.paneTabs UL LI A:hover { BACKGROUND: #fff1c5; TEXT-DECORATION: none } DIV.paneTabs UL LI A:hover { TEXT-DECORATION: none } DIV.paneTabs LI.active A:hover { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } DIV.paneTabs UL LI A.hiddenTabsLink IMG { WIDTH: 2px; HEIGHT: 2px } DIV.paneTabs UL.nav LI.sub A.hiddenTabsLink { BACKGROUND-POSITION: center center; BACKGROUND-IMAGE: = url(images/more_options.gif); BACKGROUND-REPEAT: no-repeat } DIV.paneTabs UL.nav LI.sub UL.more { BORDER-RIGHT: #888 1px solid; BORDER-TOP: #ccc 1px solid; MARGIN-TOP: = -4px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #888 1px solid } DIV.paneTabs UL.nav LI.sub UL.more LI A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 6px! important; DISPLAY: block; = PADDING-LEFT: 18px! important; FONT-WEIGHT: normal; BORDER-LEFT-WIDTH: = 0px; FONT-SIZE: 105%; BACKGROUND: url(images/cm_bullet_single.gif) #ddd = no-repeat 5px 3px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 2px! = important; MARGIN: 0px; COLOR: #444; PADDING-TOP: 2px! important; = TEXT-ALIGN: left; BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: none } DIV.paneTabs UL.nav LI.sub UL.more LI A:hover { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff1c5 no-repeat 5px 3px; = BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: none } #contentPane DIV.topRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } #contentPane DIV.bottomRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.topRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.bottomRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.topRound B { DISPLAY: block; OVERFLOW: hidden } DIV.bottomRound B { DISPLAY: block; OVERFLOW: hidden } DIV.topRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.bottomRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.topRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } DIV.bottomRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } DIV.topRound B { BACKGROUND: #fff1c5 } DIV.bottomRound B { BACKGROUND: #fff } DIV.landing DIV.container { BACKGROUND: #ededed } DIV.landing DIV.bottomRound B { BACKGROUND: #ededed } DIV.error DIV.container { BACKGROUND: #ededed } DIV.error DIV.bottomRound B { BACKGROUND: #ededed } DIV.portal DIV.bottomRound B { BACKGROUND-COLOR: #e3efff } DIV.portal DIV.container { BACKGROUND-COLOR: #e3efff } DIV.tabbedPane DIV.topRound B { DISPLAY: none } DIV.hasTopBanner DIV.topRound B { DISPLAY: none } DIV.error DIV.topRound B { BACKGROUND-COLOR: red } DIV.pickerMenu DIV.topRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.pickerMenu DIV.bottomRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.pickerMenu DIV.topRound B.middle { MARGIN: 0px 1px; HEIGHT: 2px } DIV.pickerMenu DIV.bottomRound B.middle { MARGIN: 0px 1px; HEIGHT: 2px } DIV.pickerMenu DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 1px } DIV.pickerMenu DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 1px } DIV.breadcrumbs { BACKGROUND: none transparent scroll repeat 0% 0%; MARGIN: 0px 14px; = POSITION: relative; HEIGHT: 1% } DIV.banner + DIV.breadcrumbs { MARGIN: 0px; BACKGROUND-COLOR: transparent } DIV.breadcrumbs A.close { Z-INDEX: 100; RIGHT: 5px; FILTER: alpha(opacity=3D70); POSITION: = absolute; TOP: 3px; opacity: 0.7; _right: 20px } DIV.path { PADDING-RIGHT: 200px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 85%; BACKGROUND: #dedede; PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #000; = PADDING-TOP: 4px; POSITION: relative; _height: 1px } DIV.simplePath { PADDING-RIGHT: 200px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 85%; BACKGROUND: #dedede; PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #000; = PADDING-TOP: 4px; POSITION: relative; _height: 1px } DIV.breadcrumbs DIV.noToggle { PADDING-RIGHT: 24px; PADDING-LEFT: 6px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px } DIV.simplePath { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; PADDING-TOP: 4px } DIV.path OL { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.simplePath OL { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.path OL LI.label { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; = PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.simplePath OL LI.label { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; = PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.path OL LI { PADDING-RIGHT: 12px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = BACKGROUND: url(images/breadcrumb_arrow.gif) no-repeat right center; = FLOAT: left; PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.simplePath OL LI { PADDING-RIGHT: 12px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = BACKGROUND: url(images/breadcrumb_arrow.gif) no-repeat right center; = FLOAT: left; PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.path OL LI.placeholder { PADDING-RIGHT: 0px; PADDING-LEFT: 3px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: = 0px } DIV.simplePath OL LI.placeholder { PADDING-RIGHT: 0px; PADDING-LEFT: 3px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: = 0px } DIV.path A { FONT-WEIGHT: normal; COLOR: #000000; TEXT-DECORATION: none } DIV.simplePath A { FONT-WEIGHT: normal; COLOR: #000000; TEXT-DECORATION: none } DIV.path A:hover { COLOR: #000; TEXT-DECORATION: underline } DIV.simplePath A:hover { COLOR: #000; TEXT-DECORATION: underline } DIV.path OL LI.button { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 2px; MARGIN: = -2px 6px -2px -2px; PADDING-TOP: 0px; BACKGROUND-COLOR: #f6f6f6; = -moz-border-radius: 3px; -webkit-border-radius: 3px } DIV.simplePath OL LI.button { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 2px; MARGIN: = -2px 6px -2px -2px; PADDING-TOP: 0px; BACKGROUND-COLOR: #f6f6f6; = -moz-border-radius: 3px; -webkit-border-radius: 3px } DIV.path OL LI.button A { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; PADDING-TOP: 1px } DIV.simplePath OL LI.button A { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; PADDING-TOP: 1px } DIV.path OL LI.root { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 2px; MARGIN: -2px 8px -2px 0px; = COLOR: #efefef; PADDING-TOP: 2px; BACKGROUND-COLOR: #949494; = -moz-border-radius: 3px; -webkit-border-radius: 3px } DIV.simplePath OL LI.root { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 2px; MARGIN: -2px 8px -2px 0px; = COLOR: #efefef; PADDING-TOP: 2px; BACKGROUND-COLOR: #949494; = -moz-border-radius: 3px; -webkit-border-radius: 3px } DIV.path OL LI.root A { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 2px; COLOR: #fff; PADDING-TOP: 1px; TEXT-DECORATION: = none } DIV.simplePath OL LI.root A { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 2px; COLOR: #fff; PADDING-TOP: 1px; TEXT-DECORATION: = none } DIV.path OL LI.root A SPAN { FONT-WEIGHT: bold; COLOR: #ffffff; TEXT-DECORATION: none } DIV.simplePath OL LI.root A SPAN { FONT-WEIGHT: bold; COLOR: #ffffff; TEXT-DECORATION: none } DIV.path OL LI.root A:hover { COLOR: #fff; TEXT-DECORATION: underline } DIV.simplePath OL LI.root A:hover { COLOR: #fff; TEXT-DECORATION: underline } DIV.path OL LI.root A:hover SPAN { COLOR: #fff; TEXT-DECORATION: underline } DIV.simplePath OL LI.root A:hover SPAN { COLOR: #fff; TEXT-DECORATION: underline } DIV.path OL LI.root A SPAN.courseName:unknown { content: " - " } DIV.path OL LI.root A SPAN.courseId:unknown { content: "(" } DIV.path OL LI.root A SPAN.courseId:unknown { content: ")" } DIV.path OL:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } DIV.simplePath OL:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } DIV.path OL { DISPLAY: inline-block } DIV.simplePath OL { DISPLAY: inline-block } DIV.path OL { DISPLAY: block } DIV.simplePath OL { DISPLAY: block } DIV.breadcrumbs DIV.topRound { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.breadcrumbs DIV.bottomRound { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.breadcrumbs DIV.topRound B { DISPLAY: block; BACKGROUND: #dedede; OVERFLOW: hidden } DIV.breadcrumbs DIV.bottomRound B { DISPLAY: block; BACKGROUND: #dedede; OVERFLOW: hidden } DIV.breadcrumbs DIV.topRound B.outer { MARGIN: 0px 2px; HEIGHT: 1px } DIV.breadcrumbs DIV.bottomRound B.outer { MARGIN: 0px 2px; HEIGHT: 1px } DIV.breadcrumbs DIV.topRound B.middle { DISPLAY: none } DIV.breadcrumbs DIV.bottomRound B.middle { DISPLAY: none } DIV.breadcrumbs DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 1px } DIV.breadcrumbs DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 1px } DIV.localViewToggle { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-TOP: 0px; POSITION: relative } DIV.localViewToggle UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 4px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; POSITION: relative } DIV.localViewToggle UL LI { FLOAT: right } DIV.localViewToggle UL LI A { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; FONT-SIZE: 85%; = PADDING-BOTTOM: 2px; MARGIN: 1px 0px 0px; PADDING-TOP: 2px; = TEXT-DECORATION: none } DIV.localViewToggle UL LI A:hover { TEXT-DECORATION: underline } DIV.localViewToggle UL LI A.active { BORDER-RIGHT: #ffcc00 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #ffcc00 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: 85%; = BACKGROUND: #fff; PADDING-BOTTOM: 2px; MARGIN: 0px; BORDER-LEFT: #ffcc00 = 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #ffcc00 1px solid } DIV.localViewToggle UL LI H2 { BORDER-RIGHT: #ffcc00 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #ffcc00 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: 85%; = BACKGROUND: #fff; PADDING-BOTTOM: 2px; MARGIN: 0px; BORDER-LEFT: #ffcc00 = 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #ffcc00 1px solid } DIV.localViewToggle UL LI.separator { PADDING-LEFT: 6px; MARGIN-LEFT: 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.viewToggle { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 85%; Z-INDEX: 100; = RIGHT: 0px; PADDING-BOTTOM: 2px; BOTTOM: 0px; PADDING-TOP: 2px; = WHITE-SPACE: nowrap; POSITION: absolute; TOP: 3px; _right: 10px } DIV.helpOnlyToggle { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 85%; Z-INDEX: 100; = RIGHT: 0px; PADDING-BOTTOM: 2px; BOTTOM: 0px; PADDING-TOP: 2px; = WHITE-SPACE: nowrap; POSITION: absolute; TOP: 0px; _right: 10px } DIV.viewToggle SPAN { COLOR: #666 } DIV.viewToggle UL { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px 6px 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.helpOnlyToggle UL { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px 6px 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.viewToggle UL LI { FLOAT: left; MARGIN: 0px 3px; POSITION: relative; TOP: 2px } DIV.helpOnlyToggle UL LI { FLOAT: left; MARGIN: 0px 3px; POSITION: relative; TOP: 2px } DIV.viewToggle LI A { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px; TEXT-DECORATION: none } DIV.viewToggle LI A:hover { TEXT-DECORATION: underline } DIV.viewToggle UL LI.active { PADDING-RIGHT: 4px; PADDING-LEFT: 7px; BACKGROUND: #cdcdcd; = PADDING-BOTTOM: 6px; PADDING-TOP: 3px; POSITION: relative; TOP: 0px } DIV.viewToggle LI.active A { DISPLAY: inline; FONT-WEIGHT: bold; Z-INDEX: 100; MARGIN: 0px 3px; = COLOR: #222; TEXT-DECORATION: none } DIV.viewToggle LI.active SPAN { COLOR: #aaa } DIV.viewToggle LI.active SPAN A { BORDER-RIGHT: transparent 0px solid; PADDING-RIGHT: 1px; BORDER-TOP: = transparent 0px solid; PADDING-LEFT: 1px; FONT-WEIGHT: normal; = BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 2px; = MARGIN: 0px -2px 0px -1px; BORDER-LEFT: transparent 0px solid; COLOR: = #555; PADDING-TOP: 0px; BORDER-BOTTOM: transparent 0px solid; = TEXT-DECORATION: underline } DIV.helpOnlyToggle LI SPAN A { BORDER-RIGHT: transparent 0px solid; PADDING-RIGHT: 1px; BORDER-TOP: = transparent 0px solid; PADDING-LEFT: 1px; FONT-WEIGHT: normal; = BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 2px; = MARGIN: 0px -2px 0px -1px; BORDER-LEFT: transparent 0px solid; COLOR: = #555; PADDING-TOP: 0px; BORDER-BOTTOM: transparent 0px solid; = TEXT-DECORATION: underline } DIV.viewToggle LI SPAN#helpTextToggle A { BORDER-RIGHT: transparent 0px solid; PADDING-RIGHT: 1px; BORDER-TOP: = transparent 0px solid; PADDING-LEFT: 1px; FONT-WEIGHT: normal; = BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 2px; = MARGIN: 0px -2px 0px -1px; BORDER-LEFT: transparent 0px solid; COLOR: = #555; PADDING-TOP: 0px; BORDER-BOTTOM: transparent 0px solid; = TEXT-DECORATION: underline } DIV.viewToggle LI SPAN#helpTextToggle { RIGHT: -2px; POSITION: absolute; TOP: -3px } DIV.viewToggle LI.active SPAN#helpTextToggle { MARGIN: -3px 0px 0px; POSITION: static } DIV.viewToggle LI SPAN#helpTextToggle A { PADDING-RIGHT: 1px; DISPLAY: inline-block; PADDING-LEFT: 1px; = PADDING-BOTTOM: 1px; PADDING-TOP: 1px; TEXT-DECORATION: none } DIV.viewToggle LI.active SPAN A:hover { BORDER-RIGHT: #999 0px solid; BORDER-TOP: #999 0px solid; FONT-WEIGHT: = normal; BACKGROUND: #ededed; BORDER-LEFT: #999 0px solid; COLOR: #555; = BORDER-BOTTOM: #999 0px solid; TEXT-DECORATION: underline } DIV.helpOnlyToggle LI SPAN A:hover { BORDER-RIGHT: #999 0px solid; BORDER-TOP: #999 0px solid; FONT-WEIGHT: = normal; BACKGROUND: #ededed; BORDER-LEFT: #999 0px solid; COLOR: #555; = BORDER-BOTTOM: #999 0px solid; TEXT-DECORATION: underline } DIV.viewToggle LI SPAN#helpTextToggle A:hover { BORDER-RIGHT: #999 0px solid; BORDER-TOP: #999 0px solid; FONT-WEIGHT: = normal; BACKGROUND: #ededed; BORDER-LEFT: #999 0px solid; COLOR: #555; = BORDER-BOTTOM: #999 0px solid; TEXT-DECORATION: underline } .modeSwitchWrap { FONT-WEIGHT: bold; FONT-SIZE: 85%; RIGHT: 26px; LEFT: auto; POSITION: = absolute; TOP: 4px } .modeSwitchWrap DIV { FLOAT: left } .modeSwitch { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #666 1px = solid; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; OVERFLOW: = hidden; TEXT-TRANSFORM: uppercase; BORDER-LEFT: #666 1px solid; COLOR: = #fff; PADDING-TOP: 1px; BORDER-BOTTOM: #666 1px solid; POSITION: = relative; TEXT-DECORATION: none } .read-on { PADDING-RIGHT: 16px; BACKGROUND: url(images/mode_toggle_bg.gif) #8091a7 = repeat-y 100% 0px; MARGIN-RIGHT: 0px } A.read-off { PADDING-LEFT: 16px; BACKGROUND: url(images/mode_toggle_bg.gif) repeat-y = 0px 0px; COLOR: #444 } A.read-on:hover { BACKGROUND-COLOR: #444a6c } A.read-on:focus { BACKGROUND-COLOR: #444a6c } A.read-off:hover { BACKGROUND-COLOR: #ccc } A.read-off:focus { BACKGROUND-COLOR: #ccc } A.read-off IMG { LEFT: 0px; BOTTOM: 0px; POSITION: absolute; _right: auto; _left: -17px } A.read-on IMG { RIGHT: 0px; BOTTOM: 0px; POSITION: absolute; _right: -1px } HTML *.modeSwitch { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } HTML * A.read-off { PADDING-LEFT: 16px } HTML *.read-on { PADDING-RIGHT: 16px } .modeSwitch SPAN { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; BACKGROUND: = url(images/gradient_black_short_tb.png) repeat-x 0px -16px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px; _background-image: none } .switcherLabel { PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FLOAT: = left; PADDING-BOTTOM: 2px; COLOR: #444; PADDING-TOP: 2px } DIV.helpLink { BORDER-TOP-WIDTH: 0px; FONT-WEIGHT: normal; BORDER-LEFT-WIDTH: 0px; = RIGHT: 4px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; POSITION: absolute; = TOP: 4px; BORDER-RIGHT-WIDTH: 0px } DIV.helpLink A.browseIcon { PADDING-RIGHT: 1px; DISPLAY: block; PADDING-LEFT: 1px; = BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #666; PADDING-BOTTOM: 0px; = BORDER-TOP-COLOR: #999; PADDING-TOP: 0px; BORDER-RIGHT-COLOR: #666 } DIV.localViewToggle A.miniComboButton { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 16px; BORDER-TOP: = #d7bb66 1px solid; BACKGROUND: url(images/more_options.gif) #f5e7bd = no-repeat 97% center; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid; TEXT-DECORATION: none! important } DIV.cmImg { MARGIN: 0px 0px 6px 12px; OVERFLOW: hidden; WIDTH: 180px; TEXT-ALIGN: = center } DIV.cmImg IMG { WIDTH: 180px } DIV.navDivider { PADDING-RIGHT: 9px; BORDER-TOP: #ddd 3px double; PADDING-LEFT: 9px; = FONT-WEIGHT: bold; FONT-SIZE: 80%; BACKGROUND: = url(images/gradient_black_short_tb.png) repeat-x 0px -16px; = PADDING-BOTTOM: 9px; MARGIN: 18px 0px 4px; TEXT-TRANSFORM: uppercase; = COLOR: #555; PADDING-TOP: 9px; LETTER-SPACING: 3px; TEXT-ALIGN: center; = _background-image: none } DIV.navPalette { MARGIN: 0px 24px 12px 14px; ZOOM: 1 } .csMenuFrame DIV.navPalette { MARGIN: 0px 14px 12px } DIV.navPaletteContent { BACKGROUND: #ffffff; ZOOM: 1 } .navPalette H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 105%; Z-INDEX: 1; = BACKGROUND: url(images/gradient_black_long_bt.png) #949494 repeat-x = center top; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #fff; PADDING-TOP: = 0px; ZOOM: 1; POSITION: relative; _background-image: none } DIV.navPalette H3 { FONT-SIZE: 100%; MARGIN: 0px } .navPalette UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; ZOOM: 1; LIST-STYLE-TYPE: none } .navPalette UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; ZOOM: 1; POSITION: relative; HEIGHT: 1% } #courseMenu { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 16px; FONT-WEIGHT: = normal; BACKGROUND: url(images/more_options_white.gif) no-repeat 4px = 7px; PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; ZOOM: 1; = TEXT-DECORATION: none } .navPalette A { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 16px; FONT-WEIGHT: = normal; BACKGROUND: url(images/more_options_white.gif) no-repeat 4px = 7px; PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; ZOOM: 1; = TEXT-DECORATION: none } .navPalette A:hover { BACKGROUND-IMAGE: url(images/more_options.gif); CURSOR: pointer } .navPalette A:focus { BACKGROUND-IMAGE: url(images/more_options.gif); CURSOR: pointer } .navPalette UL LI A { BORDER-TOP: #ddd 1px solid } .navPalette UL LI:first-child H3 A { BORDER-TOP-STYLE: none } .navPalette UL LI:first-child A { BORDER-TOP-STYLE: none } DIV.navPaletteCol H2 A { BACKGROUND-IMAGE: url(images/more_options_white.gif) } DIV.navPaletteCol H2 A:hover { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPaletteCol H2 A:focus { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPaletteCol DIV.navPaletteContent H2 { BACKGROUND-IMAGE: none } DIV.navPaletteCol DIV.actionBarMicro { DISPLAY: none } DIV.navPalette A.simpleLink { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 3px; PADDING-TOP: 3px } DIV.navPalette A.simpleLink:hover { BACKGROUND: url(images/list_bullet.gif) no-repeat 97% center } DIV.navPalette A.simpleLink:focus { BACKGROUND: url(images/list_bullet.gif) no-repeat 97% center } DIV.navPalette A.comboLink { PADDING-RIGHT: 20px; PADDING-LEFT: 16px; BACKGROUND: = url(images/more_options_dark.gif) no-repeat 4px 7px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 3px; WORD-BREAK: normal; PADDING-TOP: 3px; ZOOM: 1; = heigth: 1% } DIV.navPalette A.comboLink_active { PADDING-RIGHT: 20px; PADDING-LEFT: 16px; BACKGROUND: = url(images/more_options_dark.gif) no-repeat 4px 7px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 3px; WORD-BREAK: normal; PADDING-TOP: 3px; ZOOM: 1; = heigth: 1% } DIV.navPalette A.comboLink:hover { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPalette A.comboLink:focus { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPalette A.comboLink_active { BACKGROUND-IMAGE: url(images/less_options_dark.gif) } DIV.navPalette A.open { BACKGROUND-IMAGE: url(images/less_options_dark.gif) } DIV.navPalette A.comboLink_active:hover { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette A.open:hover { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette A.comboLink_active:focus { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette A.open:focus { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette H2 A.comboLink { PADDING-RIGHT: 3px; PADDING-LEFT: 16px; PADDING-BOTTOM: 3px; = MARGIN-RIGHT: 20px; PADDING-TOP: 3px } DIV.navPalette H2 A.comboLink_active { PADDING-RIGHT: 3px; PADDING-LEFT: 16px; PADDING-BOTTOM: 3px; = MARGIN-RIGHT: 20px; PADDING-TOP: 3px } DIV.navPalette A.submenuLink { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 0px; PADDING-BOTTOM: 0px; = BORDER-LEFT: #bbb 1px dotted; PADDING-TOP: 0px; ZOOM: 1; POSITION: = absolute; TOP: 0px; _border-left-style: solid } DIV.navPalette A.submenuLink_active { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 0px; PADDING-BOTTOM: 0px; = BORDER-LEFT: #bbb 1px dotted; PADDING-TOP: 0px; ZOOM: 1; POSITION: = absolute; TOP: 0px; _border-left-style: solid } DIV.navPalette A.submenuLink { BACKGROUND: url(images/list_bullet_white.gif) no-repeat center center } DIV.navPalette A.submenuLink_active { BACKGROUND: url(images/list_bullet_dark.gif) no-repeat center center } DIV.navPalette A.submenuLink:hover { BACKGROUND-IMAGE: url(images/list_bullet.gif) } DIV.navPalette A.submenuLink_active:hover { BACKGROUND-IMAGE: url(images/list_bullet.gif) } DIV.navPalette A.submenuLink:focus { BACKGROUND-IMAGE: url(images/list_bullet.gif) } DIV.navPalette A.submenuLink_active:focus { BACKGROUND-IMAGE: url(images/list_bullet.gif) } DIV.navPalette A.submenuLink IMG { WIDTH: 20px; HEIGHT: 22px } DIV.navPalette A.submenuLink_active IMG { WIDTH: 20px; HEIGHT: 22px } .navPalette H2 A { FONT-WEIGHT: bold; BACKGROUND: url(images/less_options_white.gif) = no-repeat 4px 7px; COLOR: #fff } .navPalette H2 A:hover { FONT-WEIGHT: bold; BACKGROUND: url(images/less_options_white.gif) = no-repeat 4px 7px; COLOR: #fff } DIV.navPalette H2 A.comboLink { FONT-WEIGHT: bold; BACKGROUND: url(images/less_options_white.gif) = no-repeat 4px 7px; COLOR: #fff } .navPalette H2 A:hover { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette H2 A.comboLink:hover { BACKGROUND-IMAGE: url(images/less_options.gif) } .navPalette H2 A:focus { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette H2 A.comboLink:focus { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPaletteCol H2 A.comboLink { BACKGROUND: url(images/more_options_white.gif) no-repeat 4px 7px } DIV.navPaletteCol H2 A.comboLink:hover { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPaletteCol H2 A.comboLink:focus { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.listCm UL.courseMenu { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = MARGIN-LEFT: -14px; PADDING-TOP: 0px; _width: 176px; _height: 1%; = _margin-right: -14px } DIV.listCm UL.courseMenu LI { BORDER-TOP-WIDTH: 0px; CLEAR: both; PADDING-RIGHT: 0px; DISPLAY: block; = PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; FLOAT: none; = BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 4px; MARGIN: 0px 0px -3px; = PADDING-TOP: 3px; ZOOM: 1; POSITION: relative; HEIGHT: 1%; = BORDER-RIGHT-WIDTH: 0px; _width: 178px; _padding: 2px 0 3px 0; = _overflow: visible } DIV.listCm UL.courseMenu LI A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 14px; PADDING-LEFT: 9px; = BORDER-LEFT-WIDTH: 0px; RIGHT: 0px; BACKGROUND: none transparent scroll = repeat 0% 0%; FLOAT: left; OVERFLOW-X: hidden; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 14px; COLOR: #003366; = WORD-BREAK: normal; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px; _height: = 1%; _overflow: visible; _margin: 0 0 0 6px; _word-break: break-all } DIV.listCm UL.courseMenu LI A:hover { TEXT-DECORATION: underline; _background-image: none } DIV.listCm UL.courseMenu LI A:focus { TEXT-DECORATION: underline; _background-image: none } DIV.listCm UL.courseMenu LI A SPAN { ZOOM: 1; heigth: 1% } DIV.listCm UL.courseMenu LI.here A { PADDING-RIGHT: 16px; PADDING-LEFT: 4px; BACKGROUND: = url(images/list_bullet_single_white.gif) #999 no-repeat 98% center; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 19px; COLOR: #fff; PADDING-TOP: = 1px; TEXT-DECORATION: none; -moz-border-radius: 3px; = -webkit-border-radius: 3px } DIV.listCm UL.courseMenu LI.here A:hover { PADDING-RIGHT: 16px; PADDING-LEFT: 4px; BACKGROUND: = url(images/list_bullet_single_white.gif) #999 no-repeat 98% center; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 19px; COLOR: #fff; PADDING-TOP: = 1px; TEXT-DECORATION: none; -moz-border-radius: 3px; = -webkit-border-radius: 3px } DIV.listCm UL.courseMenu LI.here A:focus { PADDING-RIGHT: 16px; PADDING-LEFT: 4px; BACKGROUND: = url(images/list_bullet_single_white.gif) #999 no-repeat 98% center; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 19px; COLOR: #fff; PADDING-TOP: = 1px; TEXT-DECORATION: none; -moz-border-radius: 3px; = -webkit-border-radius: 3px } DIV.listCm UL.courseMenu LI.here A.cmimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: transparent } DIV.listCm UL.courseMenu LI.here A.cmimg:hover { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: transparent } DIV.listCm H3 { PADDING-RIGHT: 9px; BORDER-TOP: 1px solid; PADDING-LEFT: 9px; = FONT-SIZE: 100%; PADDING-BOTTOM: 1px; MARGIN: 0px 0px 0px 14px; = PADDING-TOP: 3px; HEIGHT: 1% } .navPalette UL LI.subhead H3 A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: = transparent; TEXT-DECORATION: none } .navPalette UL LI.subhead H3 A:hover { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: = transparent; TEXT-DECORATION: none } DIV.listCm UL.courseMenu LI.divider { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; PADDING-BOTTOM: 6px; = LINE-HEIGHT: 1%; PADDING-TOP: 9px; POSITION: relative; HEIGHT: 2px; = _width: 162px; _padding: 9px 0 0 14px } DIV.listCm UL.courseMenu LI.divider HR { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; MARGIN: 0px; VERTICAL-ALIGN: middle; LINE-HEIGHT: 1%; POSITION: = relative; TOP: -9px; HEIGHT: 2px; BACKGROUND-COLOR: #ccc; = BORDER-RIGHT-WIDTH: 0px } DIV.listCm UL.courseMenu LI.collapsed { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; PADDING-BOTTOM: 0px; = LINE-HEIGHT: 1px; PADDING-TOP: 0px; HEIGHT: 2px; _padding: 3px 0 3px = 14px } DIV.listCm UL.courseMenu LI.collapsed HR { MARGIN: 0px; POSITION: relative; _top: 0px } DIV.listCm UL.courseMenu LI.invisible A { COLOR: #777; MARGIN-RIGHT: 2px; _margin-right: 0 } UL.tree A SPAN.cmLink-hidden { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } UL.tree A SPAN.cmLink-empty { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } LI.invisible A SPAN.cmLink-hidden { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } LI.invisible A SPAN.cmLink-empty { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } LI.invisible SPAN.cmLink-hidden { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } LI.invisible SPAN.cmLink-empty { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } UL.tree A SPAN.cmLink-hidden IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } UL.tree A SPAN.cmLink-empty IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } LI.invisible A SPAN.cmLink-hidden IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } LI.invisible A SPAN.cmLink-empty IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } LI.invisible SPAN.cmLink-hidden IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } LI.invisible SPAN.cmLink-empty IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } UL.tree A SPAN.cmLink-empty { DISPLAY: inline; BACKGROUND: url(images/empty_link.gif) no-repeat 0px = 0px } LI.invisible A SPAN.cmLink-empty { DISPLAY: inline; BACKGROUND: url(images/empty_link.gif) no-repeat 0px = 0px } LI.invisible SPAN.cmLink-empty { DISPLAY: inline; BACKGROUND: url(images/empty_link.gif) no-repeat 0px = 0px } UL.tree A SPAN.cmLink-hidden { DISPLAY: inline-block; BACKGROUND: url(images/hidden_link.gif) = no-repeat 0px 0px } LI.invisible A SPAN.cmLink-hidden { DISPLAY: inline-block; BACKGROUND: url(images/hidden_link.gif) = no-repeat 0px 0px } LI.invisible SPAN.cmLink-hidden { DISPLAY: inline-block; BACKGROUND: url(images/hidden_link.gif) = no-repeat 0px 0px } DIV.listCm UL.courseMenu LI INPUT { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; BACKGROUND: = #f0f0f0; MARGIN-LEFT: 18px; BORDER-LEFT: #666 1px solid; WIDTH: 120px; = BORDER-BOTTOM: #666 1px solid } DIV.listCm UL.courseMenu LI INPUT[type=3D'text'] { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; BACKGROUND: = #f0f0f0; MARGIN-LEFT: 18px; BORDER-LEFT: #666 1px solid; WIDTH: 120px; = BORDER-BOTTOM: #666 1px solid } DIV.renameCourseToc INPUT { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; BACKGROUND: = #f0f0f0; MARGIN-LEFT: 18px; BORDER-LEFT: #666 1px solid; WIDTH: 120px; = BORDER-BOTTOM: #666 1px solid } DIV.renameCourseToc INPUT { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; BACKGROUND: = #f0f0f0; MARGIN-LEFT: 18px; BORDER-LEFT: #666 1px solid; WIDTH: 120px; = BORDER-BOTTOM: #666 1px solid } DIV.renameCourseToc INPUT { MARGIN-LEFT: 0px } DIV.listCm UL.courseMenu LI A.microControl { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; = PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; FLOAT: none; = BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 2px; = PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px } DIV.renameCourseToc A.microControl { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; = PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; FLOAT: none; = BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 2px; = PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px } DIV.listCm UL.courseMenu LI A.save { BACKGROUND: url(images/micro_save.gif) no-repeat 0px 0px } DIV.renameCourseToc A.save { BACKGROUND: url(images/micro_save.gif) no-repeat 0px 0px } DIV.listCm UL.courseMenu LI A.cancel { BACKGROUND: url(images/micro_cancel.gif) no-repeat 0px 0px } DIV.renameCourseToc A.cancel { BACKGROUND: url(images/micro_cancel.gif) no-repeat 0px 0px } DIV.listCm UL.courseMenu LI A.microControl IMG { WIDTH: 12px; HEIGHT: 12px } DIV.renameCourseToc A.microControl IMG { WIDTH: 12px; HEIGHT: 12px } DIV.listCm UL.courseMenu LI SPAN.reorder { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/cm_reorder_updown.gif) #eee no-repeat center center; FILTER: = alpha(opacity=3D100); LEFT: -2px; PADDING-BOTTOM: 0px; WIDTH: 16px; = CURSOR: move; PADDING-TOP: 0px; POSITION: absolute; TOP: 2px; HEIGHT: = 18px; opacity: 1; -moz-border-radius-topleft: 2px; = -moz-border-radius-bottomleft: 3px } DIV.listCm UL.courseMenu LI.subhead SPAN.reorder { TOP: 4px } DIV.controlpanel H2 { BACKGROUND-COLOR: #8192a8 } DIV.controlpanel DIV.topRound B { BACKGROUND-COLOR: #8192a8 } DIV.controlpanel UL { BACKGROUND-COLOR: #a8beda } DIV.controlpanel DIV.bottomRound B { BACKGROUND-COLOR: #a8beda } DIV.controlpanel UL LI:first-child { MARGIN-TOP: 0px } DIV.controlpanel UL LI { MARGIN-TOP: -1px } DIV.controlpanel UL LI A { COLOR: #292e36; BORDER-TOP-COLOR: #94a8c1 } DIV.controlpanel UL LI A:hover { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A:focus { BACKGROUND-COLOR: #e3efff } DIV.controlpanel A.submenuLink { BORDER-LEFT-COLOR: #94a8c1; BORDER-BOTTOM-COLOR: #94a8c1; = BORDER-TOP-COLOR: #94a8c1; BACKGROUND-COLOR: #a8beda; = BORDER-RIGHT-COLOR: #94a8c1 } DIV.controlpanel A.submenuLink_active { BORDER-LEFT-COLOR: #94a8c1; BORDER-BOTTOM-COLOR: #94a8c1; = BORDER-TOP-COLOR: #94a8c1; BACKGROUND-COLOR: #a8beda; = BORDER-RIGHT-COLOR: #94a8c1 } DIV.controlpanel UL LI A.submenuLink_active { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A.submenuLink:hover { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A.submenuLink_active:hover { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A.submenuLink:focus { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A.submenuLink_active:focus { BACKGROUND-COLOR: #e3efff } DIV.controlpanel A.comboLink { BACKGROUND-IMAGE: url(images/more_options_white.gif) } DIV.controlpanel A.comboLink_active { FONT-WEIGHT: bold } DIV.tools A.comboLink_active { FONT-WEIGHT: bold } DIV.controlpanel UL LI H3 A.open:hover { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI H3 A.comboLink_active { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI H3 A.open { FONT-WEIGHT: bold; BACKGROUND-COLOR: #e3efff } DIV.tools UL { BACKGROUND-COLOR: #ededed } DIV.tools DIV.bottomRound B { BACKGROUND-COLOR: #ededed } DIV.pickerMenu UL { BACKGROUND-COLOR: #ededed } DIV.explore UL { BACKGROUND-COLOR: #ededed } DIV.explore DIV.bottomRound B { BACKGROUND-COLOR: #ededed } DIV.tools UL LI H3 A { BACKGROUND: url(images/more_options.gif) no-repeat 4px 7px; COLOR: = #444; BORDER-TOP-COLOR: #ddd; ZOOM: 1 } DIV.pickerMenu UL LI H3 A { BACKGROUND: url(images/more_options.gif) no-repeat 4px 7px; COLOR: = #444; BORDER-TOP-COLOR: #ddd; ZOOM: 1 } DIV.tools UL LI H3 A:hover { BACKGROUND: url(images/more_options.gif) #fff no-repeat 4px 7px } DIV.tools UL LI H3 A.simpleLink:hover { BACKGROUND-COLOR: #ffffff } DIV.tools UL LI H3 A.simpleLink:focus { BACKGROUND-COLOR: #ffffff } DIV.tools UL LI H3 A.open { FONT-WEIGHT: bold; BACKGROUND: url(images/less_options_dark.gif) = #ffffff no-repeat 4px 7px } DIV.tools UL LI H3 A.open:hover { BACKGROUND-IMAGE: url(images/less_options_dark.gif) } DIV.tools UL LI H3 A.open:focus { BACKGROUND-IMAGE: url(images/less_options_dark.gif) } DIV.tools UL LI A.submenuLink { BACKGROUND: url(images/list_bullet_dark.gif) no-repeat center center; = BORDER-LEFT: #bbb 1px dotted; _border-left-style: solid } DIV.tools UL LI A.submenuLink_active { BACKGROUND: url(images/list_bullet_dark.gif) no-repeat center center; = BORDER-LEFT: #bbb 1px dotted; _border-left-style: solid } DIV.tools UL LI A.submenuLink:hover { BACKGROUND: url(images/list_bullet.gif) #ffffff no-repeat center center } DIV.tools UL LI A.submenuLink_active:hover { BACKGROUND: url(images/list_bullet.gif) #ffffff no-repeat center center } DIV.tools UL LI A.submenuLink:focus { BACKGROUND: url(images/list_bullet.gif) #ffffff no-repeat center center } DIV.tools UL LI A.submenuLink_active:focus { BACKGROUND: url(images/list_bullet.gif) #ffffff no-repeat center center } DIV.tools UL LI A.submenuLink_active { BACKGROUND: url(images/list_bullet_dark.gif) #ffffff no-repeat center = center } DIV.pickerMenu { LEFT: 14px; MARGIN: 0px; WIDTH: 150px; POSITION: absolute; TOP: 0px } DIV.pickerMenu UL LI H3 A { BACKGROUND-IMAGE: none } DIV.pickerMenu UL LI H3 A.simpleLink { BACKGROUND-IMAGE: none } DIV.pickerMenu UL LI H3 A.open { BACKGROUND: url(images/list_bullet.gif) #fff no-repeat 97% center } DIV.pickerMenu UL LI H3 A:hover { BACKGROUND: url(images/list_bullet.gif) #fff no-repeat 97% center } DIV.pickerMenu UL LI H3 A:focus { BACKGROUND: url(images/list_bullet.gif) #fff no-repeat 97% center } DIV.myPlaces UL { BACKGROUND-COLOR: #fff } DIV.myPlaces DIV.bottomRound B { BACKGROUND-COLOR: #fff } DIV.singleControl A { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 3px; PADDING-TOP: 3px; ZOOM: 1; BACKGROUND-COLOR: = #a8beda; TEXT-ALIGN: center; _border-top: none } DIV.discover A { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 3px; PADDING-TOP: 3px; ZOOM: 1; BACKGROUND-COLOR: = #a8beda; TEXT-ALIGN: center; _border-top: none } DIV.discover A { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: = 105%; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.singleControl A:hover { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.discover A:hover { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.singleControl A:hover { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.singleControl A:focus { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.singleControl A:focus { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.discover A:focus { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.discover A IMG { MARGIN: -1px 3px 0px 0px } DIV.myPlaces UL LI A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 9px; PADDING-LEFT: 22px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 3px; = COLOR: #003399; PADDING-TOP: 3px; BACKGROUND-COLOR: transparent; = BORDER-RIGHT-WIDTH: 0px } DIV.myPlaces UL LI A:hover { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 9px; PADDING-LEFT: 22px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 3px; = COLOR: #003399; PADDING-TOP: 3px; BACKGROUND-COLOR: transparent; = BORDER-RIGHT-WIDTH: 0px } DIV.myPlaces UL LI A:focus { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 9px; PADDING-LEFT: 22px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 3px; = COLOR: #003399; PADDING-TOP: 3px; BACKGROUND-COLOR: transparent; = BORDER-RIGHT-WIDTH: 0px } DIV.myPlaces UL LI A:hover { TEXT-DECORATION: underline } DIV.myPlaces UL LI A:focus { TEXT-DECORATION: underline } DIV.myPlaces UL LI A.home { PADDING-RIGHT: 20px; BORDER-BOTTOM: #ddd 1px solid } DIV.myPlaces UL LI SPAN.homeIconWrap { RIGHT: 3px; BACKGROUND: url(/images/ci/icons/clphomepage/home_ti.gif) = no-repeat 0px 0px; POSITION: absolute; TOP: 3px } DIV.myPlaces UL LI SPAN.homeIconWrap IMG { WIDTH: 16px; HEIGHT: 16px } DIV.explore UL.parents LI A { BACKGROUND-POSITION: 7px 6px; PADDING-LEFT: 20px; BACKGROUND-IMAGE: = url(images/list_bullet_up.gif); BACKGROUND-REPEAT: no-repeat; = BACKGROUND-COLOR: #ededed } DIV.explore H4 { PADDING-RIGHT: 9px; BORDER-TOP: #999 2px solid; PADDING-LEFT: 9px; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; BACKGROUND-COLOR: = #fff } DIV.explore H4 A { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; COLOR: #000; PADDING-TOP: = 3px; TEXT-DECORATION: none } DIV.explore H4 A:hover { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; COLOR: #000; PADDING-TOP: = 3px; TEXT-DECORATION: none } DIV.explore H4 A { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; COLOR: #000; PADDING-TOP: = 3px; TEXT-DECORATION: none } DIV.explore H4 A:focus { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; COLOR: #000; PADDING-TOP: = 3px; TEXT-DECORATION: none } DIV.explore UL.submenu { BACKGROUND-COLOR: #fff } DIV.explore DIV.bottomRound B { BACKGROUND-COLOR: #fff } LI A.unit { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.course { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.ee { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.program { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.workspace { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.unit { BACKGROUND-IMAGE: url(/images/ci/icons/clp_unit_ti.gif) } LI A.unit:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_unit_ti.gif) } LI A.course { BACKGROUND-IMAGE: url(/images/ci/icons/clp_course_ti.gif) } LI A.course:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_course_ti.gif) } LI A.ee { BACKGROUND-IMAGE: url(/images/ci/icons/clp_ee_ti.gif) } LI A.ee:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_ee_ti.gif) } LI A.program { BACKGROUND-IMAGE: url(/images/ci/icons/clp_program_ti.gif) } LI A.program:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_program_ti.gif) } LI A.workspace { BACKGROUND-IMAGE: url(/images/ci/icons/clp_workspace_ti.gif) } LI A.workspace:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_workspace_ti.gif) } DIV.navPalette UL LI UL.submenu { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-SIZE: 85%; PADDING-BOTTOM: = 9px; MARGIN: 0px; PADDING-TOP: 2px } DIV.explore UL.submenu { FONT-SIZE: 90%; MARGIN: 2px 6px 0px 20px } DIV.controlpanel UL LI UL.submenu { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI UL.submenu LI UL { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI UL.submenu LI { BACKGROUND-IMAGE: none; MARGIN: 0px; BORDER-TOP-STYLE: none; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: = none } DIV.controlpanel UL LI UL.submenu LI A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 9px; PADDING-LEFT: 6px; = BORDER-LEFT-WIDTH: 0px; BACKGROUND: none transparent scroll repeat 0% = 0%; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px; = PADDING-TOP: 2px; BORDER-RIGHT-WIDTH: 0px } DIV.explore UL LI UL.submenu LI A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 9px; PADDING-LEFT: 6px; = BORDER-LEFT-WIDTH: 0px; BACKGROUND: none transparent scroll repeat 0% = 0%; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px; = PADDING-TOP: 2px; BORDER-RIGHT-WIDTH: 0px } DIV.explore UL.submenu LI A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; COLOR: = #003366; PADDING-TOP: 2px } DIV.explore UL.submenu LI SPAN.emptyMsg { COLOR: #777 } DIV.controlpanel UL LI UL.submenu LI A:hover { PADDING-RIGHT: 9px; PADDING-LEFT: 6px; BACKGROUND: = url(images/list_bullet_single.gif) #fff no-repeat 99% center; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } DIV.controlpanel UL LI UL.submenu LI A.here { PADDING-RIGHT: 9px; PADDING-LEFT: 6px; BACKGROUND: = url(images/list_bullet_single.gif) #fff no-repeat 99% center; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } DIV.controlpanel UL LI UL.submenu LI A:focus { PADDING-RIGHT: 9px; PADDING-LEFT: 6px; BACKGROUND: = url(images/list_bullet_single.gif) #fff no-repeat 99% center; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } DIV.explore UL.submenu LI A:hover { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } DIV.explore UL.submenu LI A:focus { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } UL.submenu LI UL LI { PADDING-LEFT: 12px; HEIGHT: 1% } DIV.tools UL.submenu { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 2px 9px 0px; PADDING-TOP: 0px } UL.submenu { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 2px 9px 0px; PADDING-TOP: 0px } DIV.tools UL.submenu LI A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 9px; PADDING-LEFT: 6px; = BORDER-LEFT-WIDTH: 0px; BACKGROUND: #fff; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-TOP: 2px; BORDER-RIGHT-WIDTH: = 0px } UL.submenu LI A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 9px; PADDING-LEFT: 6px; = BORDER-LEFT-WIDTH: 0px; BACKGROUND: #fff; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-TOP: 2px; BORDER-RIGHT-WIDTH: = 0px } DIV.tools UL.submenu LI A:hover { BACKGROUND: url(images/list_bullet_single.gif) #f6f6f6 no-repeat 99% = center } UL.submenu LI A:hover { BACKGROUND: url(images/list_bullet_single.gif) #f6f6f6 no-repeat 99% = center } DIV.tools UL.submenu LI A:hover { BACKGROUND: url(images/list_bullet_single.gif) #f6f6f6 no-repeat 99% = center } UL.submenu LI A:focus { BACKGROUND: url(images/list_bullet_single.gif) #f6f6f6 no-repeat 99% = center } DIV.navPalette DIV.topRound { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.navPalette DIV.bottomRound { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.navPalette DIV.topRound B { DISPLAY: block; OVERFLOW: hidden } DIV.navPalette DIV.bottomRound B { DISPLAY: block; OVERFLOW: hidden } DIV.navPalette DIV.topRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } DIV.navPalette DIV.bottomRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } DIV.navPalette DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } DIV.navPalette DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } DIV.navPalette DIV.topRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.navPalette DIV.bottomRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.navPalette DIV.topRound B { BACKGROUND-COLOR: #949494 } DIV.tools DIV.topRound B { BACKGROUND-COLOR: #949494 } DIV.myPlaces DIV.bottomRound B { BACKGROUND-COLOR: #fff } DIV.explore DIV.bottomRound B { BACKGROUND-COLOR: #fff } DIV.listCm DIV.topRound B { BACKGROUND-COLOR: #fff1c5 } DIV.buttonCm DIV.topRound B { BACKGROUND-COLOR: #fff1c5 } DIV.treeContainer DIV.topRound B { BACKGROUND-COLOR: #fff1c5 } DIV.treeViewCs DIV.topRound B { BACKGROUND-COLOR: #fff1c5 } DIV.listCm DIV.bottomRound B { BACKGROUND-COLOR: #ffffff } DIV.buttonCm DIV.bottomRound B { BACKGROUND-COLOR: #ffffff } DIV.treeContainer DIV.bottomRound B { BACKGROUND-COLOR: #ffffff } DIV.tools DIV.bottomRound B { BACKGROUND-COLOR: #ededed } DIV.pickerMenu DIV.topRound B { BACKGROUND-COLOR: #ededed } DIV.pickerMenu DIV.bottomRound B { BACKGROUND-COLOR: #ededed } DIV.singleControl DIV.topRound B { BACKGROUND-COLOR: #a8beda } DIV.singleControl DIV.bottomRound B { BACKGROUND-COLOR: #a8beda } DIV.discover DIV.topRound B { BACKGROUND-COLOR: #a8beda } DIV.discover DIV.bottomRound B { BACKGROUND-COLOR: #a8beda } DIV.navPaletteCol DIV.listCmCol B { BACKGROUND: #949494 } DIV.navPaletteCol DIV.bottomRound B { BACKGROUND: #949494 } DIV.navPaletteCol DIV.topRound B { BACKGROUND: #949494 } DIV.controlpanel DIV.topRound B { BACKGROUND-COLOR: #8192a8 } DIV.navPaletteCol DIV.controlpanelCol B { BACKGROUND-COLOR: #8192a8 } DIV.treeContainer UL.tree { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; PADDING-BOTTOM: 9px; MARGIN: = 0px; PADDING-TOP: 3px; LIST-STYLE-TYPE: none } UL.tree { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; PADDING-BOTTOM: 9px; MARGIN: = 0px; PADDING-TOP: 3px; LIST-STYLE-TYPE: none } DIV.treeContainer UL.tree UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 0px 18px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.tree UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 0px 18px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.listCm DIV.treeContainer UL.tree { OVERFLOW-X: auto } DIV.treeContainer UL.tree LI H3 + UL { PADDING-RIGHT: 0px; PADDING-LEFT: 9px; OVERFLOW-X: auto; = PADDING-BOTTOM: 9px; MARGIN: 0px; OVERFLOW: hidden; PADDING-TOP: 0px; = ZOOM: 1; POSITION: relative } DIV.treeContainer UL.tree LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(/images/ci/icons/nlstree/line.gif) repeat-y 0px 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; WHITE-SPACE: nowrap } UL.tree LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(/images/ci/icons/nlstree/line.gif) repeat-y 0px 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; WHITE-SPACE: nowrap } DIV.treeContainer UL.tree LI.last { BACKGROUND-IMAGE: none } UL.tree LI.last { BACKGROUND-IMAGE: none } DIV.treeContainer UL.tree LI.here A { BACKGROUND-COLOR: #ededed } UL.tree LI.here A { BACKGROUND-COLOR: #ededed } DIV.treeContainer UL.tree LI A { PADDING-RIGHT: 3px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-SIZE: 95%; = BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 2px; = BORDER-TOP-STYLE: none; PADDING-TOP: 2px } UL.tree LI A { PADDING-RIGHT: 3px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-SIZE: 95%; = BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 2px; = BORDER-TOP-STYLE: none; PADDING-TOP: 2px } DIV.treeContainer UL.tree LI A.open_folder { PADDING-RIGHT: 3px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-SIZE: 95%; = BACKGROUND: #ebeffa; PADDING-BOTTOM: 2px; BORDER-TOP-STYLE: none; = PADDING-TOP: 2px } DIV.treeContainer UL.tree LI A.exp { PADDING-RIGHT: 21px; PADDING-LEFT: 0px; BACKGROUND: = url(/images/ci/icons/nlsTree/folder.gif) no-repeat 18px 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } DIV.treeContainer UL.tree LI A.collapse { PADDING-RIGHT: 21px; PADDING-LEFT: 0px; BACKGROUND: = url(/images/ci/icons/nlsTree/folderopen.gif) no-repeat 18px 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } DIV.treeContainer H3.treehead { PADDING-RIGHT: 0px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 8px 0px 2px; PADDING-TOP: 0px } DIV.treeContainer H3.first { MARGIN: 0px 0px 2px } DIV#userTreeDiv { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.treeContainer UL.tree LI.subhead { BACKGROUND-IMAGE: none; MARGIN: 0px 0px 0px -6px } DIV.treeContainer UL.tree LI.subhead H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.treeContainer UL.tree LI.subhead H3.first A { BORDER-TOP-STYLE: none } DIV.treeContainer UL.tree LI.subhead H3 A { PADDING-RIGHT: 9px; BACKGROUND-POSITION: 3px 6px; BORDER-TOP: #ddd 1px = solid; DISPLAY: block; PADDING-LEFT: 18px; BACKGROUND-IMAGE: = url(images/less_options.gif); PADDING-BOTTOM: 3px; PADDING-TOP: 3px; = BACKGROUND-REPEAT: no-repeat; BACKGROUND-COLOR: transparent; = TEXT-DECORATION: none } DIV.treeContainer UL.tree LI.subhead:first-child { MARGIN-TOP: 0px } DIV.treeContainer UL.tree LI.subhead:first-child A { BORDER-TOP-WIDTH: 0px } DIV.treeContainer UL.tree LI.subhead H3.treeSubhead-collapsed A { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.shortcutViewCs UL LI A { BORDER-TOP: #ededed 1px solid; TEXT-ALIGN: center } UL.shortcuts LI A { BORDER-TOP: #ccc 1px solid; BACKGROUND: #fff; TEXT-ALIGN: center } UL.shortcuts LI A:hover { BACKGROUND: url(images/list_bullet_single.gif) #ededed no-repeat 99% = center; TEXT-ALIGN: center } UL.shortcuts LI A:focus { BACKGROUND: url(images/list_bullet_single.gif) #ededed no-repeat 99% = center; TEXT-ALIGN: center } DIV.containerPortal { PADDING-RIGHT: 5px; MIN-WIDTH: 600px; PADDING-LEFT: 5px; MIN-HEIGHT: = 400px; BACKGROUND: #e3efff; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 5px; _width:=20 } DIV.portal DIV.container { PADDING-RIGHT: 5px; MIN-WIDTH: 600px; PADDING-LEFT: 5px; MIN-HEIGHT: = 400px; BACKGROUND: #e3efff; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 5px; _width:=20 } .column-1 { MIN-HEIGHT: 400px; FLOAT: left; MARGIN: 6px 0px 0px; WIDTH: 100%; = HEIGHT: auto; _height: 400px } .column-2 { MIN-HEIGHT: 400px; FLOAT: left; MARGIN: 6px 0px 0px; WIDTH: 50%; = HEIGHT: auto; _height: 400px } .column-3 { MIN-HEIGHT: 400px; FLOAT: left; MARGIN: 6px 0px 0px; WIDTH: 33.3%; = HEIGHT: auto; _height: 400px } #moduleBody { BORDER-RIGHT: #597298 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #597298 2px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 5px 10px; BORDER-LEFT: #597298 2px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #597298 2px solid; POSITION: relative; BACKGROUND-COLOR: = #fff; _height: 1%; _z-index: 500 } #moduleBorder { BORDER-RIGHT: #597298 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #597298 2px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 5px 10px; BORDER-LEFT: #597298 2px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #597298 2px solid; POSITION: relative; BACKGROUND-COLOR: = #fff; _height: 1%; _z-index: 500 } .portlet { BORDER-RIGHT: #597298 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #597298 2px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 5px 10px; BORDER-LEFT: #597298 2px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #597298 2px solid; POSITION: relative; BACKGROUND-COLOR: = #fff; _height: 1%; _z-index: 500 } #moduleTitle { PADDING-RIGHT: 52px; BACKGROUND-POSITION: 0px center; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 5px; MARGIN: = 0px; VERTICAL-ALIGN: middle; OVERFLOW: visible; COLOR: #fff; = PADDING-TOP: 4px; BACKGROUND-REPEAT: repeat-x; POSITION: relative; = BACKGROUND-COLOR: #819ac0; _background-image: none } .portlet H2 { PADDING-RIGHT: 52px; BACKGROUND-POSITION: 0px center; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 5px; MARGIN: = 0px; VERTICAL-ALIGN: middle; OVERFLOW: visible; COLOR: #fff; = PADDING-TOP: 4px; BACKGROUND-REPEAT: repeat-x; POSITION: relative; = BACKGROUND-COLOR: #819ac0; _background-image: none } .portlet H2.dragHandle:hover { BACKGROUND: #597298; CURSOR: move } .portlet H2 A { PADDING-RIGHT: 12px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = VERTICAL-ALIGN: middle; COLOR: #fff; PADDING-TOP: 0px } .portlet H2 A IMG { VERTICAL-ALIGN: middle } .portlet H2 A:hover { BACKGROUND: url(images/arrow_white.gif) no-repeat right center; = TEXT-DECORATION: underline } .portlet H2 SPAN.reorder { BORDER-RIGHT: #888 1px solid; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BACKGROUND: url(images/cm_reorder.gif) #fff no-repeat center center; = FILTER: alpha(opacity=3D0); LEFT: -2px; PADDING-BOTTOM: 0px; WIDTH: = 18px; CURSOR: move; PADDING-TOP: 0px; BORDER-BOTTOM: #888 1px solid; = POSITION: absolute; TOP: -2px; HEIGHT: 18px; opacity: 0 } .portlet H2 SPAN.reorder IMG { WIDTH: 18px; HEIGHT: 20px } .portlet H2:hover SPAN.reorder { FILTER: alpha(opacity=3D80)! important; opacity: 0.8 } .portlet H2.noTitle { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: = 0px; MARGIN: 0px; VERTICAL-ALIGN: middle; CURSOR: move; PADDING-TOP: = 0px; POSITION: relative; HEIGHT: 1% } .portlet H2.noTitle:hover { BACKGROUND: #ededed; HEIGHT: 1% } DIV.edit_controls { PADDING-RIGHT: 0px; PADDING-LEFT: 4px; RIGHT: 4px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; POSITION: absolute; TOP: 2px; HEIGHT: 20px } SPAN.edit_controls { PADDING-RIGHT: 0px; PADDING-LEFT: 4px; RIGHT: 4px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; POSITION: absolute; TOP: 2px; HEIGHT: 20px } DIV.edit_controls A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none! = important; PADDING-BOTTOM: 0px; MARGIN-LEFT: 1px; PADDING-TOP: 0px; = opacity: 0.6; verical-align: top } SPAN.edit_controls A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none! = important; PADDING-BOTTOM: 0px; MARGIN-LEFT: 1px; PADDING-TOP: 0px; = opacity: 0.6; verical-align: top } DIV.edit_controls A:hover { opacity: 1 } SPAN.edit_controls A:hover { opacity: 1 } .portlet DIV.collapsible { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; OVERFLOW: auto; PADDING-TOP: 0px; ZOOM: 1; BACKGROUND-COLOR: = transparent; _width: 100%; _padding: 3px 0; _overflow: scroll } .portlet DIV.collapsible P { MARGIN: 4px 6px 6px 12px } .portlet H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px; COLOR: #597298; PADDING-TOP: = 1px; BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } #lightbox H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px; COLOR: #597298; PADDING-TOP: = 1px; BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .portlet DIV.portletBlock H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px; COLOR: #597298; PADDING-TOP: = 1px; BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .portlet DIV.blockContents H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px; COLOR: #597298; PADDING-TOP: = 1px; BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .portlet H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px 0px; COLOR: #000; PADDING-TOP: = 1px } .portlet UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 4px = 9px 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #lightbox UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 4px = 9px 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .portlet UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; FONT-SIZE: 95%; BACKGROUND: = url(images/list_bullet_single.gif) no-repeat 5px 3px; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 2px; PADDING-TOP: 0px } #lightbox UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; FONT-SIZE: 95%; BACKGROUND: = url(images/list_bullet_single.gif) no-repeat 5px 3px; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 2px; PADDING-TOP: 0px } .portlet UL.courselist { MARGIN: 6px 6px 9px } .portlet UL.courselist LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 14px; FONT-WEIGHT: bold; = BACKGROUND: url(images/list_bullet_single.gif) no-repeat 4px 5px; = PADDING-BOTTOM: 0px; MARGIN: 0px 0px 6px; PADDING-TOP: 0px } .portlet UL.courselist LI A { FONT-SIZE: 110% } .portlet UL.courselist LI A:hover { TEXT-DECORATION: underline } .portlet UL.courselist LI P { FONT-WEIGHT: normal; FONT-SIZE: 90%; MARGIN: 4px } .portlet UL.scholar { MARGIN: 2px 6px } .portlet UL.scholar LI { PADDING-RIGHT: 6px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 24px; = BACKGROUND: url(images/small_scholar.gif) no-repeat 0px 6px; = MARGIN-BOTTOM: 4px; PADDING-BOTTOM: 4px; PADDING-TOP: 6px } .portlet UL.scholar LI:first-child { BORDER-TOP-STYLE: none } UL.tagcloud { PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; PADDING-BOTTOM: 0pt; MARGIN: 4px = 6px 12px; PADDING-TOP: 0pt } UL.tagcloud LI { PADDING-RIGHT: 3px; DISPLAY: inline; PADDING-LEFT: 3px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; MARGIN: 0pt; = VERTICAL-ALIGN: baseline; PADDING-TOP: 3px; LIST-STYLE-TYPE: none } LI.freq1 A { FONT-SIZE: 90% } LI.freq2 A { FONT-SIZE: 105% } LI.freq3 A { FONT-SIZE: 120% } LI.freq4 A { FONT-SIZE: 135% } LI.freq5 A { FONT-SIZE: 155% } LI.freq6 A { FONT-SIZE: 165% } LI.freq7 A { FONT-SIZE: 175% } LI.freq8 A { FONT-SIZE: 195% } .portletHelp { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 2px; MARGIN: 4px 7px; COLOR: #688ba8; PADDING-TOP: 1px } .portlet FIELDSET { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 9px; PADDING-LEFT: 9px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 6px; = MARGIN: 0px; PADDING-TOP: 6px; BORDER-RIGHT-WIDTH: 0px } .portlet FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } DIV.portlet FIELDSET A.browse { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 90%; PADDING-BOTTOM: = 1px; COLOR: #666; PADDING-TOP: 1px } DIV.portlet FIELDSET LABEL { DISPLAY: block } DIV.portlet INPUT[type=3D'text'] { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: 0px; MARGIN: = 1px 0px; VERTICAL-ALIGN: middle; BORDER-LEFT: #999 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #999 1px solid } DIV.portlet SELECT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: 0px; MARGIN: = 1px 0px; VERTICAL-ALIGN: middle; BORDER-LEFT: #999 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #999 1px solid } DIV.portlet INPUT[type=3D'button'] { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-SIZE: 90%; BACKGROUND: #ddd; = PADDING-BOTTOM: 0px; MARGIN: 1px 0px; VERTICAL-ALIGN: baseline; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #999 1px = solid } DIV.portlet INPUT[type=3D'button']:hover { BORDER-RIGHT: #999 1px solid; BORDER-TOP: #999 1px solid; FONT-SIZE: = 90%; BACKGROUND: #fff; BORDER-LEFT: #999 1px solid; BORDER-BOTTOM: #999 = 1px solid } .portlet UL LI DIV.location { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 0px; COLOR: #999; PADDING-TOP: 0px } .portlet_cust UL LI DIV.location { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 0px; COLOR: #999; PADDING-TOP: 0px } .portlet UL LI A { =09 } .portlet UL LI SPAN.post_date { FLOAT: right; MARGIN-LEFT: 3px; COLOR: #999 } .portlet UL LI SPAN.info_byline { FLOAT: right; MARGIN-LEFT: 3px; COLOR: #999 } .portlet UL LI SPAN.time { FLOAT: right; MARGIN-LEFT: 3px; COLOR: #999 } .portlet UL.disc LI SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; FLOAT: right; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } .portlet UL.portletTabs { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #ededed; = PADDING-BOTTOM: 0px; MARGIN: 0px 6px; PADDING-TOP: 4px; BORDER-BOTTOM: = #ccc 1px solid; LIST-STYLE-TYPE: none } .portlet UL.portletTabs LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; BACKGROUND-IMAGE: = none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .portlet UL.portletTabs LI A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; FONT-SIZE: = 90%; BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; = TEXT-DECORATION: none } .portlet UL.portletTabs LI A:hover { TEXT-DECORATION: underline } .portlet UL.portletTabs LI.active { POSITION: relative; TOP: 1px } .portlet UL.portletTabs LI.active A { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; FONT-WEIGHT: = bold; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px; = BACKGROUND-COLOR: #fff } .portlet DIV.tabbedPortlet { BACKGROUND: #ededed; PADDING-TOP: 9px } .portlet DIV.portletTabBlock { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ccc 1px; = PADDING-LEFT: 0px; BACKGROUND: #fff; PADDING-BOTTOM: 6px; MARGIN: 0px = 6px 6px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 6px; BORDER-BOTTOM: = #ccc 1px solid } .blockContents { BACKGROUND: #fff; MARGIN: 2px 0px } .portlet DIV.portletBlock { BORDER-RIGHT: #888 1px solid; BORDER-TOP: #888 1px solid; FONT-SIZE: = 100%; BACKGROUND: #fff; MARGIN: 9px 9px 0px; BORDER-LEFT: #888 1px = solid; BORDER-BOTTOM: #888 1px solid } .portlet DIV.portletBlock H4 { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px } .portlet DIV.portletBlock H4.blockTitle { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px } .portlet DIV.portletBlock H4 A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 9px; DISPLAY: block; = PADDING-LEFT: 9px; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 110%; BACKGROUND: = #f1f1f1; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 4px; MARGIN: 0px; = COLOR: #444; PADDING-TOP: 4px; LETTER-SPACING: 0px; BORDER-RIGHT-WIDTH: = 0px; TEXT-DECORATION: none } .portlet DIV.portletBlock H4.blockTitle A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 9px; DISPLAY: block; = PADDING-LEFT: 9px; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 110%; BACKGROUND: = #f1f1f1; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 4px; MARGIN: 0px; = COLOR: #444; PADDING-TOP: 4px; LETTER-SPACING: 0px; BORDER-RIGHT-WIDTH: = 0px; TEXT-DECORATION: none } .portlet DIV.portletBlock H4 A:hover { BACKGROUND: #eee } .portlet DIV.portletBlock H4.blockTitle A:hover { BACKGROUND: #eee } .portlet DIV.portletBlock H4 A SPAN { FONT-WEIGHT: normal; COLOR: #ddd } .portlet DIV.portletBlock H4.blockTitle A SPAN { FONT-WEIGHT: normal; COLOR: #ddd } .portlet UL.subCategories { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.blockGroups { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .portlet DIV.portletBlock UL.subCategories LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } UL.blockGroups LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .portlet UL.subCategories LI A { PADDING-RIGHT: 16px; BORDER-TOP: #777 1px solid; DISPLAY: block; = PADDING-LEFT: 16px; FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 3px center; = PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #597298; PADDING-TOP: 4px; = LETTER-SPACING: 1px; TEXT-DECORATION: none } UL.blockGroups LI A.itemHead { PADDING-RIGHT: 16px; BORDER-TOP: #777 1px solid; DISPLAY: block; = PADDING-LEFT: 16px; FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 3px center; = PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #597298; PADDING-TOP: 4px; = LETTER-SPACING: 1px; TEXT-DECORATION: none } UL.blockGroups LI A.itemHead:hover { BACKGROUND-COLOR: #e3efff; TEXT-DECORATION: underline } UL.blockGroups LI A.itemHeadOpen { BACKGROUND: url(images/less_options_dark.gif) #fff no-repeat 3px center } UL.blockGroups LI A.itemHeadOpen:hover { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } .portlet UL.subCategories LI:first-child A { BORDER-TOP-STYLE: none } UL.blockGroups LI:first-child A { BORDER-TOP-STYLE: none } .portlet UL.subCategories LI A:hover { FILTER: alpha(opacity=3D100); BACKGROUND-COLOR: #fff; opacity: 1 } UL.blockGroups LI A:hover { FILTER: alpha(opacity=3D100); BACKGROUND-COLOR: #fff; opacity: 1 } .portlet UL.subCategories LI A SPAN { FONT-WEIGHT: normal; COLOR: #777 } UL.blockGroups LI A SPAN { FONT-WEIGHT: normal; COLOR: #777 } .portlet UL.itemGroup LI A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; = PADDING-LEFT: 0px; FONT-WEIGHT: bold; BORDER-LEFT-WIDTH: 0px; = BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; = BACKGROUND-COLOR: transparent; BORDER-RIGHT-WIDTH: 0px } UL.blockGroups LI UL.itemGroups LI A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; = PADDING-LEFT: 0px; FONT-WEIGHT: bold; BORDER-LEFT-WIDTH: 0px; = BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; = BACKGROUND-COLOR: transparent; BORDER-RIGHT-WIDTH: 0px } .portlet UL.itemGroup LI A:hover { TEXT-DECORATION: underline } UL.itemGroups LI A:hover { TEXT-DECORATION: underline } UL.itemGroups LI UL.items { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 2px } UL.blockGroups LI UL.itemGroups LI A { FONT-WEIGHT: normal } UL.itemGroups LI UL.items LI A { FONT-WEIGHT: normal } .portlet DIV.portletBlock H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-TOP-STYLE: none; = PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; = LETTER-SPACING: 0px; BORDER-BOTTOM-STYLE: none } .portlet DIV.portletBlock H3 A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 99% center; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; TEXT-DECORATION: = none } .portlet DIV.portletBlock H3 A:hover { TEXT-DECORATION: underline } .portlet DIV.portletBlock:first-child H3 A { BORDER-TOP-STYLE: none } .portlet DIV.portletBlock H3 A.open { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = url(images/less_options.gif) #e3efff no-repeat 99% center; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; TEXT-DECORATION: = none } .portlet UL.objectList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .portletBlock UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .blockContents UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } UL.memberList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .portlet .blockContents UL LI UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .portlet .blockContents UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .portlet UL LI UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } #portalPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 3px 14px 0px; = WIDTH: auto; PADDING-TOP: 0px } DIV.portalPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 3px 14px 0px; = WIDTH: auto; PADDING-TOP: 0px } .imgWrapper { MARGIN: 6px auto; OVERFLOW: auto; TEXT-ALIGN: center; _width: 100%; = _overflow: scroll } .imgWrapper IMG { _height: 1% } DIV.eudModule { BORDER-RIGHT: #f9f9f9 0px solid; PADDING-RIGHT: 0px; = BACKGROUND-POSITION: 50% 50%; BORDER-TOP: #f9f9f9 1px solid; = PADDING-LEFT: 0px; BACKGROUND-IMAGE: url(images/dcp_block_bg.png); = PADDING-BOTTOM: 23px; MARGIN: 0px; BORDER-LEFT: #f9f9f9 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #f9f9f9 0px solid; BACKGROUND-COLOR: = #ededed; _background-image: none; _padding: 0 } DIV.eudModule DIV.eudModule-inner { OVERFLOW-Y: auto; MIN-HEIGHT: 250px; MAX-HEIGHT: 500px; BORDER-BOTTOM: = #f9f9f9 1px solid; _border-bottom: none } DIV.moduleActions { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 0px; = PADDING-TOP: 10px } .portlet UL.memberList { MARGIN: 0px 0px 5px } UL.itemGroups LI UL.itemGroups { MARGIN-BOTTOM: 4px; MARGIN-LEFT: 0px } .portlet UL.blockGroups LI { FONT-SIZE: 100% } .portlet UL.blockGroups LI UL LI A.cmimg { ZOOM: 1; POSITION: static! important } SPAN.itemHead A.cmimg { ZOOM: 1; POSITION: static! important } .portlet UL.itemGroups LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 7px; LINE-HEIGHT: 120%; PADDING-TOP: 0px; _width: 100% } .portlet UL.memberList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = MARGIN-LEFT: 14px! important; PADDING-TOP: 0px } .portlet SPAN.course { DISPLAY: block; FONT-SIZE: 85% } .portlet UL.memberList { DISPLAY: block; FONT-SIZE: 85% } .portlet SPAN.refresh { DISPLAY: block; FONT-SIZE: 85% } .portlet SPAN A { COLOR: #777 } .portlet SPAN.noIndent { MARGIN-LEFT: 0px! important } .portlet .whatsNew SPAN.course { MARGIN-LEFT: 0px! important } .portlet SPAN.course { MARGIN-LEFT: 0px! important } .portlet UL.hierarchyList { MARGIN-LEFT: 22px } .portlet UL.hierarchyList LI { BORDER-RIGHT: transparent 1px solid; BORDER-TOP: transparent 1px solid; = OVERFLOW-X: visible; BORDER-LEFT: transparent 1px solid; TEXT-INDENT: = -18px; BORDER-BOTTOM: transparent 1px solid } .portlet UL.hierarchyList LI * { TEXT-INDENT: 0px } .portlet UL.hierarchyList LI.childless { TEXT-INDENT: 0px } .portlet UL LI UL LI SPAN.warning { DISPLAY: inline; FONT-SIZE: 85%; COLOR: #777777; WHITE-SPACE: nowrap } .portlet UL LI UL LI SPAN.due { DISPLAY: inline; FONT-SIZE: 85%; COLOR: #777777; WHITE-SPACE: nowrap } .portlet UL LI UL LI SPAN.newItemCount { DISPLAY: inline; FONT-SIZE: 85%; COLOR: #777777; WHITE-SPACE: nowrap } .portlet UL LI UL LI SPAN.warning { COLOR: #ff0000 } .portlet UL.memberList SPAN { FONT-SIZE: 100% } .portlet UL.memberList SPAN.newItemCount { FONT-SIZE: 100% } .portletInfoFooter { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-SIZE: 85%; RIGHT: 0px; = PADDING-BOTTOM: 2px; COLOR: #555; BOTTOM: 2px; PADDING-TOP: 2px; = POSITION: absolute; _position: static; _text-align: right; _margin-top: = 4px } .dateSelector { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; BACKGROUND: #f1f1f1; = PADDING-BOTTOM: 4px; PADDING-TOP: 2px; BORDER-BOTTOM: #888 1px solid } UL.blockGroups LI SPAN.itemHeadOpen { BORDER-BOTTOM: #eeeeee 1px solid } UL.blockGroups LI SPAN.itemHead A:hover { BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline } P.noItems { MARGIN: 4px 6px; COLOR: #777; TEXT-ALIGN: center } #contentArea { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = MIN-HEIGHT: 400px; PADDING-BOTTOM: 12px; MARGIN: 0px; OVERFLOW: visible; = PADDING-TOP: 10px; BACKGROUND-COLOR: #fff; _height: 400px } .container { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = MIN-HEIGHT: 400px; PADDING-BOTTOM: 12px; MARGIN: 0px; OVERFLOW: visible; = PADDING-TOP: 10px; BACKGROUND-COLOR: #fff; _height: 400px } DIV.okContainer { PADDING-BOTTOM: 38px; POSITION: relative } DIV.ok DIV.container { PADDING-BOTTOM: 38px; POSITION: relative } .contentbottoml { DISPLAY: none } .contentbottomr { DISPLAY: none } .tallPara { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 40px; MARGIN: = 0px; PADDING-TOP: 40px } SPAN.errorCode { MARGIN-TOP: 24px; DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 90% } #pageHeader { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = PADDING-BOTTOM: 6px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 6px; ZOOM: = 1; BACKGROUND-COLOR: #fff1c5 } .pageTitle { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = PADDING-BOTTOM: 6px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 6px; ZOOM: = 1; BACKGROUND-COLOR: #fff1c5 } .pageTitleSmall { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = PADDING-BOTTOM: 6px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 6px; ZOOM: = 1; BACKGROUND-COLOR: #fff1c5 } .pageTitle { BORDER-BOTTOM: #eedd99 1px solid } .error .pageTitle { BACKGROUND: red } .pageTitle H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 150%; PADDING-BOTTOM: = 0px; MARGIN: 6px 0px 0px; PADDING-TOP: 0px } .pageTitleError H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 150%; PADDING-BOTTOM: = 0px; MARGIN: 6px 0px 0px; PADDING-TOP: 0px } .error .pageTitle H1 { COLOR: #fff } .pageTitleSmall H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 135%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } .customBanner { MARGIN: 0px; OVERFLOW: hidden; BACKGROUND-COLOR: transparent; = TEXT-ALIGN: center } .pageTitle #titleicon { FLOAT: left } .pageTitle H1 { FLOAT: left } .pageTitle A.cmimg { FLOAT: left } .pageTitle A.cmimg { MARGIN: 0.8em 0px 0px 6px } .pageTitle #titleicon { MARGIN: 0px 6px 0px 0px } DIV.localViewToggle + DIV.pageTitle { PADDING-TOP: 0px } H1.pageTitle { MARGIN: -11px 0px 5px; PADDING-TOP: 0px } .caliperTitle { MARGIN: -11px 0px 5px; PADDING-TOP: 0px } .discoverTitle { MARGIN: -11px 0px 5px; PADDING-TOP: 0px } .discoverTitle { POSITION: relative; TOP: -11px } .caliperTitle { POSITION: relative; TOP: -11px } .unitHomePageTitle { MARGIN: -11px -12px 5px; PADDING-TOP: 0px } .caliperTitle H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .discoverTitle H1 { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .unitHomePageTitle A.browse { FONT-WEIGHT: normal; FONT-SIZE: 60%; FLOAT: right; PADDING-BOTTOM: 1px; = MARGIN: 4px 0px 0px 6px; PADDING-TOP: 2px } .caliperTitle A.browse { FONT-WEIGHT: normal; FONT-SIZE: 60%; FLOAT: right; PADDING-BOTTOM: 1px; = MARGIN: 4px 0px 0px 6px; PADDING-TOP: 2px } .unitHomePageTitle A.browseNoImg { PADDING-BOTTOM: 3px; PADDING-TOP: 2px } DIV.helphelp { CLEAR: both; PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%; = PADDING-BOTTOM: 0px; MARGIN: 0px 0px 4px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 4px } P.helphelp { CLEAR: both; PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%; = PADDING-BOTTOM: 0px; MARGIN: 0px 0px 4px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 4px } DIV.pageTitle P { CLEAR: both; PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%; = PADDING-BOTTOM: 0px; MARGIN: 0px 0px 4px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 4px } DIV.helphelp P.helphelp { FONT-SIZE: 100% } DIV.helphelp UL { MARGIN: 6px 0px } .colophon { PADDING-RIGHT: 0px; PADDING-LEFT: 55px; FONT-SIZE: 90%; BACKGROUND: = none transparent scroll repeat 0% 0%; FLOAT: right; PADDING-BOTTOM: 3px; = MARGIN: 0px 0px 0px 14px; OVERFLOW: visible; WIDTH: 30em; PADDING-TOP: = 0px; POSITION: relative } .colophon IMG { LEFT: 0px; POSITION: absolute } .installation { FONT-SIZE: 95%; COLOR: #000; LINE-HEIGHT: 1.3em } .installation H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px } .installation H4 SPAN { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; BACKGROUND: = #888; PADDING-BOTTOM: 1px; MARGIN: 0px 0px 0px 6px; COLOR: #fff; = PADDING-TOP: 1px; WHITE-SPACE: nowrap; -moz-border-radius: 8px } .installation SPAN { FONT-WEIGHT: bold } H1 SPAN.version { FONT-SIZE: 75% } UL.containerTabs { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; BACKGROUND: = #fff; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: = #ccc 1px solid; LIST-STYLE-TYPE: none } UL.containerTabs LI { FLOAT: left; MARGIN-RIGHT: 3px; POSITION: relative; TOP: 1px } UL.containerTabs LI A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = url(images/gradient_black_short_bt.png) #ededed repeat-x 0px 12px; = PADDING-BOTTOM: 6px; PADDING-TOP: 5px; TEXT-DECORATION: none; = _background: #ededed } UL.containerTabs LI A:hover { BACKGROUND: #f6f6f6 } UL.containerTabs LI.active A { BORDER-RIGHT: #dcdcdc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: = #dcdcdc 1px solid; DISPLAY: block; PADDING-LEFT: 12px; FONT-WEIGHT: = bold; BACKGROUND: #ffffff; PADDING-BOTTOM: 7px; MARGIN: 0px; = BORDER-LEFT: #dcdcdc 1px solid; COLOR: #333; PADDING-TOP: 7px; = BORDER-BOTTOM: #dcdcdc 1px; TEXT-DECORATION: none } UL.containerTabs LI.active H3 { BORDER-RIGHT: #dcdcdc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: = #dcdcdc 1px solid; DISPLAY: block; PADDING-LEFT: 12px; FONT-WEIGHT: = bold; BACKGROUND: #ffffff; PADDING-BOTTOM: 7px; MARGIN: 0px; = BORDER-LEFT: #dcdcdc 1px solid; COLOR: #333; PADDING-TOP: 7px; = BORDER-BOTTOM: #dcdcdc 1px; TEXT-DECORATION: none } DIV.mapTabs { CLEAR: both; PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 1px; MARGIN: -1px -12px 1px; PADDING-TOP: 1px; = BORDER-BOTTOM: #999 1px solid; _padding-bottom: 0 } DIV.mapTabs UL { PADDING-RIGHT: 0px; PADDING-LEFT: 3px; BACKGROUND: #cdcdcd; FLOAT: = left; MARGIN-BOTTOM: -1px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.mapTabs UL LI { PADDING-RIGHT: 0px; MARGIN-TOP: 2px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } DIV.mapTabs UL LI.active H3 { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 12px; FONT-SIZE: 100%; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 6px; MARGIN: 0px 0px -2px; BORDER-LEFT: #999 1px solid; = PADDING-TOP: 5px; BORDER-BOTTOM: #999 1px; HEIGHT: 1%; _float: left; = _margin-bottom: 0 } DIV.mapTabs UL LI A.inprogress { PADDING-LEFT: 26px; BACKGROUND: url(images/workflow_detail_active.gif) = #ededed no-repeat 6px 50% } DIV.mapTabs UL LI A.complete { PADDING-LEFT: 27px; BACKGROUND: = url(images/workflow_detail_complete2.gif) #ededed no-repeat 6px 50% } DIV.mapTabs UL LI A.inprogress:hover { BACKGROUND-COLOR: #f6f6f6 } DIV.mapTabs UL LI A.complete:hover { BACKGROUND-COLOR: #f6f6f6 } DIV.mapTabs UL LI DIV { PADDING-RIGHT: 12px; DISPLAY: none; PADDING-LEFT: 12px; PADDING-BOTTOM: = 7px; PADDING-TOP: 7px } DIV.mapTabs UL LI.saveTab A { DISPLAY: none } UL.containerTabs LI.saveTab IMG { DISPLAY: none } DIV.mapTabs UL LI.saveFadeIn { FILTER: alpha(opacity=3D0); opacity: 0 } DIV.mapTabs UL LI.saveTab DIV { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; FONT-WEIGHT: = bold; BACKGROUND: url(images/tab_receipt_back.gif) #44b10e repeat-x = center bottom; PADDING-BOTTOM: 6px; COLOR: white; PADDING-TOP: 5px } DIV.mapHelp { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 0px; MARGIN: -1px 0px 0px; PADDING-TOP: 4px } UL.setStatus { BORDER-RIGHT: #eee 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #eee 1px = solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 15px 0pt 9px = 30px; BORDER-LEFT: #eee 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #eee = 1px solid; LIST-STYLE-TYPE: none } UL.setStatus LI { FONT-SIZE: 95%; MARGIN: 0px 6px 0px 0px } UL.setStatus LI INPUT { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } UL.setStatus LI LABEL { PADDING-LEFT: 22px; BACKGROUND: url(images/workflow_detail_active.gif) = no-repeat 1px 0px } UL.setStatus LI LABEL.complete { PADDING-LEFT: 22px; BACKGROUND: = url(images/workflow_detail_complete.gif) no-repeat 1px 0px } FORM.mapCanvasForm DIV.steptitle { PADDING-LEFT: 0.8em; MARGIN: 15px 0px 0px 18px } FORM.mapCanvasForm H3.steptitle { PADDING-LEFT: 0.8em; MARGIN: 15px 0px 0px 18px } BODY.ineditmode { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 6px; BACKGROUND-COLOR: #cdcdcd } BODY.noteditmode { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 6px } BODY.ineditmode { BACKGROUND-IMAGE: url(images/readback.png) } BODY.ineditmode { BACKGROUND-IMAGE: url(images/readback.png) } BODY.ineditmode #editModeButton { BACKGROUND-IMAGE: url(images/readback.png); BACKGROUND-COLOR: #cdcdcd } BODY.ineditmode DIV.listCm { BORDER-RIGHT: #666 3px solid; BORDER-TOP: #666 3px solid; BORDER-LEFT: = #666 3px solid; BORDER-BOTTOM: #666 3px solid; BACKGROUND-COLOR: #666; = -moz-border-radius: 9px; -webkit-border-radius: 9px } BODY.ineditmode DIV#editmodeWrapper { BORDER-RIGHT: #666 3px solid; BORDER-TOP: #666 3px solid; BORDER-LEFT: = #666 3px solid; BORDER-BOTTOM: #666 3px solid; BACKGROUND-COLOR: #666; = -moz-border-radius: 9px; -webkit-border-radius: 9px } BODY.ineditmode DIV.listCm { BACKGROUND-IMAGE: none; MARGIN-BOTTOM: 9px; PADDING-BOTTOM: 0px } BODY.ineditmode DIV#editodeWrapper { BACKGROUND-IMAGE: none; MARGIN-BOTTOM: 9px; PADDING-BOTTOM: 0px } BODY.ineditmode DIV.landing DIV#editmodeWrapper { BORDER-TOP-WIDTH: 0px! important; BORDER-LEFT-WIDTH: 0px! important; = BORDER-BOTTOM-WIDTH: 0px! important; BORDER-RIGHT-WIDTH: 0px! important } .actionBar { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; Z-INDEX: 110; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 6px; MARGIN: -1px 0px 0px; PADDING-TOP: 4px; = BORDER-BOTTOM: #eedd99 1px solid; ZOOM: 1 } .actionBar UL { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 0px; ZOOM: 1; LIST-STYLE-TYPE: none; = BORDER-RIGHT-WIDTH: 0px } .actionbar_portal UL { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 0px; ZOOM: 1; LIST-STYLE-TYPE: none; = BORDER-RIGHT-WIDTH: 0px } .actionBar UL LI { PADDING-RIGHT: 1px; FONT-WEIGHT: bold; Z-INDEX: 111; FLOAT: left; = MARGIN: 2px 0px 0px 6px; ZOOM: 1; POSITION: relative } .actionBar UL LI.mainButton { PADDING-RIGHT: 1px; FONT-WEIGHT: bold; Z-INDEX: 111; FLOAT: left; = MARGIN: 2px 0px 0px 6px; ZOOM: 1; POSITION: relative } .actionbar_portal UL LI { PADDING-RIGHT: 1px; FONT-WEIGHT: bold; Z-INDEX: 111; FLOAT: left; = MARGIN: 2px 0px 0px 6px; ZOOM: 1; POSITION: relative } .actionBar UL LI:hover { Z-INDEX: 1001 } .actionBar UL LI.mainButton:hover .actionbar_portal UL LI:hover { Z-INDEX: 1001 } #primaryButton { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 2px; = BORDER-LEFT: #666e94 1px solid; COLOR: #fff; PADDING-TOP: 2px; = BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: repeat-x; = BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none; _background-image: = none } .actionBar UL LI A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 2px; = BORDER-LEFT: #666e94 1px solid; COLOR: #fff; PADDING-TOP: 2px; = BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: repeat-x; = BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none; _background-image: = none } .actionBar UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 2px; = BORDER-LEFT: #666e94 1px solid; COLOR: #fff; PADDING-TOP: 2px; = BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: repeat-x; = BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none; _background-image: = none } .actionbar_portal UL LI A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 2px; = BORDER-LEFT: #666e94 1px solid; COLOR: #fff; PADDING-TOP: 2px; = BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: repeat-x; = BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none; _background-image: = none } DIV.tabPreview DIV.actionBar UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 2px; = BORDER-LEFT: #666e94 1px solid; COLOR: #fff; PADDING-TOP: 2px; = BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: repeat-x; = BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none; _background-image: = none } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 2px; = BORDER-LEFT: #666e94 1px solid; COLOR: #fff; PADDING-TOP: 2px; = BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: repeat-x; = BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none; _background-image: = none } .navPalette DIV.actionBarMicro UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 2px; = BORDER-LEFT: #666e94 1px solid; COLOR: #fff; PADDING-TOP: 2px; = BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: repeat-x; = BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none; _background-image: = none } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 2px; = BORDER-LEFT: #666e94 1px solid; COLOR: #fff; PADDING-TOP: 2px; = BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: repeat-x; = BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none; _background-image: = none } .portlet DIV.actionBarMicro UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 2px; = BORDER-LEFT: #666e94 1px solid; COLOR: #fff; PADDING-TOP: 2px; = BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: repeat-x; = BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none; _background-image: = none } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { CURSOR: default } .actionBar UL LI.sub { =09 } .actionBar UL LI A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .actionBar UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .actionBar UL LI.mainButton A:focus { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .actionbar_portal UL LI A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .navPalette DIV.actionBarMicro UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .navPalette DIV.actionBarMicro UL LI.mainButton A:focus { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .portlet DIV.actionBarMicro UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .actionBar UL LI.sub A.other { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #344a6c 1px solid; PADDING-LEFT: 9px; BACKGROUND: = url(images/action_button_back.gif) #888 repeat-x left top; = PADDING-BOTTOM: 2px; BORDER-LEFT: #344a6c 1px solid; PADDING-TOP: 2px; = BORDER-BOTTOM: #344a6c 1px solid; TEXT-DECORATION: none } .actionBar UL LI.sub A.other:hover { BACKGROUND: #666; BORDER-TOP-STYLE: none! important; = BORDER-RIGHT-STYLE: none! important; BORDER-LEFT-STYLE: none! important; = BORDER-BOTTOM-STYLE: none! important } .actionBar UL LI A IMG { MARGIN: -2px -4px 0px 4px; VERTICAL-ALIGN: middle } .pageTitle H1 A.secondaryButton IMG { MARGIN: -2px -4px 0px 4px; VERTICAL-ALIGN: middle } .actionBar UL LI.secondaryButton A IMG { MARGIN: -2px -4px 0px } .actionBar UL LI.sub.mainButton A IMG { MARGIN: -2px -4px 0px 4px } .actionBar UL LI.sub.secondaryButton A IMG { MARGIN: -2px -4px 0px 4px } .actionBar UL LI.search { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 2px 6px 0px 0px; = PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px } .actionBar UL LI.secondaryButton { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 2px 6px 0px 0px; = PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px } .actionbar_portal UL LI.search { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 2px 6px 0px 0px; = PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px } #secondaryButton { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 2px; = BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; PADDING-TOP: 2px; = BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: repeat-x; = BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none; _background-image: = none } .actionBar UL LI.search A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 2px; = BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; PADDING-TOP: 2px; = BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: repeat-x; = BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none; _background-image: = none } .actionBar UL LI.secondaryButton A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 2px; = BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; PADDING-TOP: 2px; = BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: repeat-x; = BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none; _background-image: = none } .actionBar_portal UL LI.search A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 2px; = BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; PADDING-TOP: 2px; = BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: repeat-x; = BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none; _background-image: = none } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 2px; = BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; PADDING-TOP: 2px; = BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: repeat-x; = BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none; _background-image: = none } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A:hover { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 2px; = BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; PADDING-TOP: 2px; = BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: repeat-x; = BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none; _background-image: = none } .pageTitle H1 A.secondaryButton { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 2px; = BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; PADDING-TOP: 2px; = BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: repeat-x; = BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none; _background-image: = none } .actionBar UL LI.secondaryButton DIV.action_bar_paging { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-SIZE: 105%; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } .actionBar UL LI.secondaryButton DIV.action_bar_paging A { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } .actionBar UL LI.secondaryButton DIV.action_bar_paging A:hover { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } .actionBar UL LI.secondaryButton DIV.action_bar_paging A IMG { MARGIN: 0px } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A:hover { CURSOR: default } .actionBar UL LI.buttontotab { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; Z-INDEX: 100; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 0px 6px = 0px 0px; BOTTOM: 0px; PADDING-TOP: 0px; TOP: 7px; BORDER-RIGHT-WIDTH: = 0px } .actionBar UL LI.secondaryButtonTab { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; Z-INDEX: 100; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 0px 6px = 0px 0px; BOTTOM: 0px; PADDING-TOP: 0px; TOP: 7px; BORDER-RIGHT-WIDTH: = 0px } .actionBar UL LI.buttontotab A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #d7bb66 1px solid; PADDING-LEFT: 9px; FONT-SIZE: 100%; Z-INDEX: 100; = BACKGROUND: #eddca5; PADDING-BOTTOM: 3px; BORDER-LEFT: #d7bb66 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: #d7bb66 1px; = TEXT-DECORATION: none } .actionBar UL LI.buttontotab A:hover { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #d7bb66 1px solid; PADDING-LEFT: 9px; FONT-SIZE: 100%; Z-INDEX: 100; = BACKGROUND: #eddca5; PADDING-BOTTOM: 3px; BORDER-LEFT: #d7bb66 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: #d7bb66 1px; = TEXT-DECORATION: none } .actionBar UL LI.secondaryButtonTab A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #d7bb66 1px solid; PADDING-LEFT: 9px; FONT-SIZE: 100%; Z-INDEX: 100; = BACKGROUND: #eddca5; PADDING-BOTTOM: 3px; BORDER-LEFT: #d7bb66 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: #d7bb66 1px; = TEXT-DECORATION: none } .actionBar UL LI.secondaryButtonTab A:hover { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #d7bb66 1px solid; PADDING-LEFT: 9px; FONT-SIZE: 100%; Z-INDEX: 100; = BACKGROUND: #eddca5; PADDING-BOTTOM: 3px; BORDER-LEFT: #d7bb66 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: #d7bb66 1px; = TEXT-DECORATION: none } .actionBar UL LI.secondaryButton A.image { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } .actionBar UL LI.search A:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .actionBar_portal UL LI.search A:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .actionBar UL LI.secondaryButton A:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .actionBar UL LI.secondaryButton A:focus { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .actionBar_portal UL LI.secondaryButton A:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .pageTitle A.secondaryButton:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .pageTitle H1 A.secondaryButton { DISPLAY: inline; FONT-WEIGHT: normal; FONT-SIZE: 65% } .reverseButtons UL LI.mainButton { FLOAT: right } .reverseButtons UL LI.secondaryButton { FLOAT: left } .navPalette DIV.actionBarMicro { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 4px; PADDING-TOP: 0px } .portlet DIV.actionBarMicro { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 4px; PADDING-TOP: 0px } .portlet DIV.actionBarMicro { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; MARGIN: = 0px; PADDING-TOP: 4px } .navPalette DIV.actionBarMicro UL { =09 } .portlet DIV.actionBarMicro UL { MARGIN: 2px } DIV.navPalette DIV.actionBarMicro UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 1px 0px 1px 3px; PADDING-TOP: 0px } DIV.navPalette DIV.buttons DIV.actionBarMicro UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 1px 0px 1px 3px; PADDING-TOP: 0px } .portlet DIV.actionBarMicro UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 1px 0px 1px 3px; PADDING-TOP: 0px } .navPalette DIV.actionBarMicro UL LI.mainButton { Z-INDEX: 1000; MARGIN: 0px 3px 0px 0px; POSITION: relative } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton { Z-INDEX: 1000; MARGIN: 0px 3px 0px 0px; POSITION: relative } .portlet DIV.actionBarMicro UL LI.mainButton { Z-INDEX: 1000; MARGIN: 0px 3px 0px 0px; POSITION: relative } DIV.navPalette DIV.actionBarMicro UL LI.secondaryButton { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 10; FLOAT: right; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: relative } DIV.navPalette DIV.buttons DIV.actionBarMicro UL LI.secondaryButton { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 10; FLOAT: right; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: relative } DIV.navPalette DIV.actionBarMicro UL LI A { BORDER-RIGHT: #fff1c5 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #fff1c5 1px solid; DISPLAY: block; PADDING-LEFT: 1px; BACKGROUND: none = transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: = #fff1c5 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #fff1c5 1px solid; = _display: inline-block } .navPalette DIV.buttons DIV.actionBarMicro UL LI A { BORDER-RIGHT: #fff1c5 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #fff1c5 1px solid; DISPLAY: block; PADDING-LEFT: 1px; BACKGROUND: none = transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: = #fff1c5 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #fff1c5 1px solid; = _display: inline-block } .portlet DIV.actionBarMicro UL LI A { BORDER-RIGHT: #fff1c5 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #fff1c5 1px solid; DISPLAY: block; PADDING-LEFT: 1px; BACKGROUND: none = transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: = #fff1c5 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #fff1c5 1px solid; = _display: inline-block } .navPalette DIV.actionBarMicro UL LI A:hover { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .navPalette DIV.buttons DIV.actionBarMicro UL LI A:hover { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .portlet DIV.actionBarMicro UL LI A:hover { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .navPalette DIV.actionBarMicro UL LI.mainButton A { BORDER-TOP-WIDTH: 1px; PADDING-RIGHT: 1px; BACKGROUND-POSITION: 0px = 30%; DISPLAY: block; PADDING-LEFT: 1px; BORDER-LEFT-WIDTH: 1px; = FONT-SIZE: 90%; BORDER-BOTTOM-WIDTH: 1px; PADDING-BOTTOM: 1px; COLOR: = #000; PADDING-TOP: 1px; BORDER-RIGHT-WIDTH: 1px; _background-image: = none; _display: inline-block } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton A { BORDER-TOP-WIDTH: 1px; PADDING-RIGHT: 1px; BACKGROUND-POSITION: 0px = 30%; DISPLAY: block; PADDING-LEFT: 1px; BORDER-LEFT-WIDTH: 1px; = FONT-SIZE: 90%; BORDER-BOTTOM-WIDTH: 1px; PADDING-BOTTOM: 1px; COLOR: = #000; PADDING-TOP: 1px; BORDER-RIGHT-WIDTH: 1px; _background-image: = none; _display: inline-block } .portlet DIV.actionBarMicro UL LI.mainButton A { BORDER-TOP-WIDTH: 1px; PADDING-RIGHT: 1px; BACKGROUND-POSITION: 0px = 30%; DISPLAY: block; PADDING-LEFT: 1px; BORDER-LEFT-WIDTH: 1px; = FONT-SIZE: 90%; BORDER-BOTTOM-WIDTH: 1px; PADDING-BOTTOM: 1px; COLOR: = #000; PADDING-TOP: 1px; BORDER-RIGHT-WIDTH: 1px; _background-image: = none; _display: inline-block } .portlet DIV.actionBarMicro UL LI.mainButton A { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px; TEXT-DECORATION: none } .navPalette DIV.actionBarMicro UL LI.mainButton A:hover { =09 } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton A:hover { =09 } .portlet DIV.actionBarMicro UL LI.mainButton A:hover { =09 } .portlet DIV.actionBarMicro UL LI.mainButton A:hover { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px; TEXT-DECORATION: none } .navPalette DIV.actionBarMicro UL LI.active A { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .navPalette DIV.buttons DIV.actionBarMicro UL LI.active A { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .navPalette DIV.actionBarMicro UL LI.active A.options { BORDER-RIGHT: #ffcc00 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: = #ffcc00 1px solid; BACKGROUND: url(images/more_options.gif) #fff = no-repeat 97% center; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: = #ffcc00 1px solid } DIV.portal DIV.actionBar { MARGIN-TOP: -1px } DIV.portal DIV.actionBar { MARGIN-TOP: 0px } DIV.tabbedPane DIV.actionBar { MARGIN-TOP: 0px } .tableOverflowControl { CLEAR: both; OVERFLOW-X: auto; PADDING-BOTTOM: 1px; _width: 100% } TABLE.inventory { CLEAR: both; PADDING-RIGHT: 0px; OVERFLOW-Y: visible; PADDING-LEFT: = 0px; FONT-SIZE: 100%; BACKGROUND: #fff; OVERFLOW-X: auto; = PADDING-BOTTOM: 1px; MARGIN: 0px; WIDTH: 100%; PADDING-TOP: 0px; ZOOM: = 1; BORDER-COLLAPSE: collapse; HEIGHT: 1%; border-expand: 1px 0 } TABLE.inventory THEAD { BORDER-TOP: #ccc 1px solid; BACKGROUND: #ededed } TABLE.splashTable THEAD { BORDER-TOP: #ccc 1px solid; BACKGROUND: #ededed } TABLE.inventory THEAD TR TH { PADDING-RIGHT: 4px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 4px; = FONT-SIZE: 85%; PADDING-BOTTOM: 5px; BORDER-LEFT: #ccc 1px solid; COLOR: = #999; PADDING-TOP: 5px; BORDER-BOTTOM: #ccc 1px solid; ZOOM: 1; = TEXT-ALIGN: left } TABLE.splashTable THEAD TR TH { PADDING-RIGHT: 4px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 4px; = FONT-SIZE: 85%; PADDING-BOTTOM: 5px; BORDER-LEFT: #ccc 1px solid; COLOR: = #999; PADDING-TOP: 5px; BORDER-BOTTOM: #ccc 1px solid; ZOOM: 1; = TEXT-ALIGN: left } TABLE.inventory THEAD TR TH:first-child { BORDER-LEFT-STYLE: none } TABLE.splashTable THEAD TR TH:first-child { BORDER-LEFT-STYLE: none } TABLE.inventory THEAD TR TH:unknown { BORDER-RIGHT-STYLE: none } TABLE.splashTable THEAD TR TH:unknown { BORDER-RIGHT-STYLE: none } TABLE.inventory TBODY { BORDER-BOTTOM: #eee 2px solid; HEIGHT: 1% } TABLE.inventory TBODY TR { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px; BORDER-BOTTOM: #eee 1px solid; ZOOM: 1; HEIGHT: 1% } TABLE.inventory TBODY TR TD { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 95%; PADDING-BOTTOM: = 3px; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: #eee 1px = solid; ZOOM: 1; WHITE-SPACE: normal; HEIGHT: 1%; WORD-WRAP: break-word } TABLE.inventory TBODY TR TH { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 95%; PADDING-BOTTOM: = 3px; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: #eee 1px = solid; ZOOM: 1; WHITE-SPACE: normal; HEIGHT: 1%; WORD-WRAP: break-word } TABLE.reorder TBODY TR TD { BORDER-BOTTOM: #eee 0px solid } TABLE.reorder TBODY TR TH { BORDER-BOTTOM: #eee 0px solid } TABLE.inventory TBODY TR TH { FONT-WEIGHT: normal; TEXT-ALIGN: left } TABLE.inventory TBODY TR TD:first-child { BORDER-LEFT-STYLE: none } TABLE.inventory TBODY TR.gray TD { BACKGROUND: #f0f0f0 } TABLE.inventory TBODY TR.gray TH { BACKGROUND: #f0f0f0 } TABLE.inventory THEAD TR TH.sorted { BACKGROUND: #ccc } TH.sorted { BACKGROUND: #ccc } TABLE.splashTable THEAD TR TH.sorted { BACKGROUND: #ccc } TABLE.inventory TBODY TR TD.sorted { BACKGROUND: #eee } TABLE.inventory THEAD TR TH.sorted A { COLOR: #000! important } TABLE.sortable TH A { COLOR: #666; MARGIN-RIGHT: 9px } TABLE.sortable TBODY TH A { COLOR: #003366; WORD-BREAK: normal; MARGIN-RIGHT: 9px; WORD-WRAP: = break-word } TABLE.sortable TH A:hover { TEXT-DECORATION: underline } TABLE.sortable A.sortheader { PADDING-RIGHT: 17px; DISPLAY: block; FONT-WEIGHT: bold; MARGIN-RIGHT: = 0px; POSITION: relative; TEXT-DECORATION: underline } TABLE.sortable SPAN.sortarrow { FONT-WEIGHT: bold; RIGHT: 0px; LEFT: auto; COLOR: #ffff00; POSITION: = absolute; TOP: 0px; TEXT-DECORATION: none } TR.high { BACKGROUND: #fff1c5 } TABLE.inventory TD.smallCell SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.inventory TBODY SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.inventory TBODY SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.attachments TD.smallCell SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.attachments TBODY SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.attachments TBODY SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.inventory TR:hover TD.smallCell SPAN.reorder { opacity: 1 } TABLE.inventory TBODY TR:hover TD.smallCell SPAN.reorder:hover { opacity: 1 } TABLE.attachments TR:hover TD.smallCell SPAN.reorder { opacity: 1 } TABLE.attachments TBODY TR:hover TD.smallCell SPAN.reorder:hover { opacity: 1 } DIV.checked { =09 } DIV.checked_top { =09 } TABLE.inventory TBODY UL.subtabs { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } TABLE.inventory TBODY UL.subtabs LI { PADDING-RIGHT: 2px; PADDING-LEFT: 20px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px; POSITION: relative } DIV.rumble { PADDING-RIGHT: 7px; PADDING-LEFT: 34px; BACKGROUND: = url(images/checked_items.gif) #fff7de no-repeat 8px -10px; = PADDING-BOTTOM: 5px; MARGIN: 0px 0px 9px; PADDING-TOP: 5px; _padding: = 5px 7px 2px 7px; _margin: 0 0 6px 0 } DIV.rumble_top { PADDING-RIGHT: 7px; PADDING-LEFT: 34px; BACKGROUND: = url(images/checked_items_top.gif) #fff7de no-repeat 8px 6px; = PADDING-BOTTOM: 5px; MARGIN: 24px 0px 0px; PADDING-TOP: 5px; _height: = .5em } DIV.noBatchActions { BACKGROUND-IMAGE: none! important } DIV.rumbleBuildList { BORDER-TOP: #eee 2px solid; MARGIN: 0px 0px 0px 1.4em } DIV.rumbleBuildListTop { MARGIN: 10px 0px -10px 1.4em; BORDER-TOP-STYLE: none; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: = none } DIV.rumbleBuildList UL LI { Z-INDEX: 1000 } DIV.rumbleBuildListTop UL LI { Z-INDEX: 1000 } DIV.rumble_top UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; ZOOM: 1; LIST-STYLE-TYPE: none } DIV.rumble UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; ZOOM: 1; LIST-STYLE-TYPE: none } DIV.rumble_top UL LI { FLOAT: left; MARGIN: 0px 3px 0px 0px } DIV.rumble UL LI { FLOAT: left; MARGIN: 0px 3px 0px 0px } DIV.rumble_top UL LI.primary { FLOAT: left; MARGIN: 0px 3px 0px 0px } DIV.rumble UL LI.primary { FLOAT: left; MARGIN: 0px 3px 0px 0px } DIV.rumble_top UL LI.sub:hover { Z-INDEX: 999 } DIV.rumble UL LI.sub:hover { Z-INDEX: 998 } DIV.rumble_top UL LI.secondary { FLOAT: right; MARGIN: 0px 0px 0px 3px; POSITION: relative } DIV.rumble UL LI.secondary { FLOAT: right; MARGIN: 0px 0px 0px 3px; POSITION: relative } DIV.rumble A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble_top A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble UL LI.primary A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble_top UL LI.primary A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble UL LI.secondary A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble_top UL LI.secondary A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble UL LI.secondary A { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #fff1c5; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444444; = BORDER-BOTTOM: #d7bb66 1px solid } DIV.rumble_top UL LI.secondary A { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #fff1c5; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444444; = BORDER-BOTTOM: #d7bb66 1px solid } DIV.rumble_top A { =09 } DIV.rumble A:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 95%; BACKGROUND: = url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; COLOR: #000; = PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid; TEXT-DECORATION: = none } DIV.rumble_top A:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 95%; BACKGROUND: = url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; COLOR: #000; = PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid; TEXT-DECORATION: = none } DIV.rumble LI.multiple LABEL { DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 95%; FLOAT: left; MARGIN: = 0px 3px 0px 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.rumble_top LI.multiple LABEL { DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 95%; FLOAT: left; MARGIN: = 0px 3px 0px 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.rumble LI#addTagActionItem_bottom LABEL { DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 95%; FLOAT: left; MARGIN: = 0px 3px 0px 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.rumble_top LI#addTagActionItem_top LABEL { DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 95%; FLOAT: left; MARGIN: = 0px 3px 0px 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.rumble LI.multiple INPUT { FONT-SIZE: 95%; MARGIN-LEFT: 3px; VERTICAL-ALIGN: middle; WIDTH: 8em } DIV.rumble_top LI.multiple INPUT { FONT-SIZE: 95%; MARGIN-LEFT: 3px; VERTICAL-ALIGN: middle; WIDTH: 8em } DIV.rumble LI#addTagActionItem_bottom INPUT { FONT-SIZE: 95%; MARGIN-LEFT: 3px; VERTICAL-ALIGN: middle; WIDTH: 8em } DIV.rumble_top LI#addTagActionItem_top INPUT { FONT-SIZE: 95%; MARGIN-LEFT: 3px; VERTICAL-ALIGN: middle; WIDTH: 8em } DIV.rumble LI.multiple A { FLOAT: left; MARGIN: 0px 0px 0px 3px } DIV.rumble_top LI.multiple A { FLOAT: left; MARGIN: 0px 0px 0px 3px } DIV.rumble LI#addTagActionItem_bottom A { FLOAT: left; MARGIN: 0px 0px 0px 3px } DIV.rumble_top LI#addTagActionItem_top A { FLOAT: left; MARGIN: 0px 0px 0px 3px } DIV.rumble_top UL LI.inventory_paging { PADDING-LEFT: 9px; FONT-SIZE: 95%; FLOAT: right; MARGIN-LEFT: 9px; = VERTICAL-ALIGN: middle } DIV.rumble UL LI.inventory_paging { PADDING-LEFT: 9px; FONT-SIZE: 95%; FLOAT: right; MARGIN-LEFT: 9px; = VERTICAL-ALIGN: middle } LI.inventory_paging INPUT { BORDER-RIGHT: #edd999 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 95%; = BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #edd999 1px solid; WIDTH: 1.5em; PADDING-TOP: 0px; = BORDER-BOTTOM: #edd999 1px solid; TEXT-ALIGN: center; _display: = inline-block; _font-size: 90% } DIV.rumble_top UL LI.inventory_paging A { BORDER-RIGHT: #e6d8b1 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 1px; BACKGROUND: #f5e7bd; = PADDING-BOTTOM: 2px; BORDER-LEFT: #edd999 1px solid; COLOR: #666666; = PADDING-TOP: 1px; BORDER-BOTTOM: #e6d8b1 1px solid; TOP: 0px } DIV.rumble UL LI.inventory_paging A { BORDER-RIGHT: #e6d8b1 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 1px; BACKGROUND: #f5e7bd; = PADDING-BOTTOM: 2px; BORDER-LEFT: #edd999 1px solid; COLOR: #666666; = PADDING-TOP: 1px; BORDER-BOTTOM: #e6d8b1 1px solid; TOP: 0px } DIV.rumble_top UL LI.inventory_paging A:hover { BORDER-RIGHT: #e6d8b1 1px solid; BORDER-TOP: #edd999 1px solid; = BACKGROUND: url(images/actionsearch_button_back.gif) #fff7de repeat-x; = BORDER-LEFT: #edd999 1px solid; BORDER-BOTTOM: #e6d8b1 1px solid } DIV.rumble UL LI.inventory_paging A:hover { BORDER-RIGHT: #e6d8b1 1px solid; BORDER-TOP: #edd999 1px solid; = BACKGROUND: url(images/actionsearch_button_back.gif) #fff7de repeat-x; = BORDER-LEFT: #edd999 1px solid; BORDER-BOTTOM: #e6d8b1 1px solid } DIV.rumble_top UL LI.inventory_paging DIV { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble_top UL LI.inventory_paging A { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble_top UL LI.inventory_paging IMG { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble UL LI.inventory_paging DIV { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble UL LI.inventory_paging A { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble UL LI.inventory_paging IMG { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble UL LI.inventory_paging SPAN { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble_top UL LI.inventory_paging IMG { MARGIN: 2px 2px 3px } DIV.rumble UL LI.inventory_paging IMG { MARGIN: 2px 2px 3px } DIV.rumble_top UL LI.inventory_paging A IMG { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.rumble UL LI.inventory_paging A IMG { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.rumble_top UL LI.inventory_paging A.inactive { FILTER: alpha(opacity=3D40); opacity: .4 } DIV.rumble UL LI.inventory_paging A.inactive { FILTER: alpha(opacity=3D40); opacity: .4 } DIV.rumble_top UL LI.secondaryControl { FLOAT: right } DIV.rumble UL LI.secondaryControl { FLOAT: right } DIV.rumble_top UL LI.secondaryControl A { BORDER-RIGHT: #e6d8b1 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 5px; BACKGROUND: #f5e7bd; = PADDING-BOTTOM: 2px; BORDER-LEFT: #edd999 1px solid; COLOR: #666666; = PADDING-TOP: 1px; BORDER-BOTTOM: #e6d8b1 1px solid; TOP: 1px } DIV.rumble UL LI.secondaryControl A { BORDER-RIGHT: #e6d8b1 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 5px; BACKGROUND: #f5e7bd; = PADDING-BOTTOM: 2px; BORDER-LEFT: #edd999 1px solid; COLOR: #666666; = PADDING-TOP: 1px; BORDER-BOTTOM: #e6d8b1 1px solid; TOP: 1px } DIV.rumble_top UL LI.secondaryControl A:hover { BORDER-RIGHT: #e6d8b1 1px solid; BORDER-TOP: #edd999 1px solid; = BACKGROUND: url(images/actionsearch_button_back.gif) #fff7de repeat-x; = BORDER-LEFT: #edd999 1px solid; BORDER-BOTTOM: #e6d8b1 1px solid } DIV.rumble UL LI.secondaryControl A:hover { BORDER-RIGHT: #e6d8b1 1px solid; BORDER-TOP: #edd999 1px solid; = BACKGROUND: url(images/actionsearch_button_back.gif) #fff7de repeat-x; = BORDER-LEFT: #edd999 1px solid; BORDER-BOTTOM: #e6d8b1 1px solid } .rumble UL LI.secondary A { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BORDER-LEFT: #d7bb66 1px solid; BORDER-BOTTOM: #d7bb66 1px solid; = BACKGROUND-COLOR: #fff1c5 } .rumble_top UL LI.secondary A { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BORDER-LEFT: #d7bb66 1px solid; BORDER-BOTTOM: #d7bb66 1px solid; = BACKGROUND-COLOR: #fff1c5 } DIV.extraData { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; COLOR: #666; PADDING-TOP: 3px } DIV.extraData SPAN { DISPLAY: inline; FONT-WEIGHT: bold; FONT-SIZE: 95% } DIV.extraData P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } TABLE.splashTable DIV.extraData { FONT-WEIGHT: normal; FONT-SIZE: 100% } TABLE.attachments { MARGIN: 0px 0px 12px; WIDTH: 100%; BORDER-COLLAPSE: collapse } TABLE.attachments THEAD TR { COLOR: #999; BORDER-BOTTOM: #ccc 2px solid } TABLE.attachments THEAD TR TH { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; BORDER-BOTTOM: #ccc 2px solid; = TEXT-ALIGN: left } TABLE.attachments TBODY TR { BORDER-TOP: #eee 1px solid } TABLE.attachments TBODY TR TH { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; TEXT-ALIGN: left } TABLE.attachments TBODY TR TD { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; TEXT-ALIGN: left } TABLE.attachments TBODY TR TH { COLOR: #000; TEXT-ALIGN: left } TABLE.attachments TBODY TR.removeCell { BACKGROUND: #ededed; COLOR: #777 } TABLE.attachments TBODY TR.removeCell { BACKGROUND: #ededed; COLOR: #777 } TABLE.attachments TBODY TR.removeCell TD { COLOR: #999 } TABLE.attachments TBODY TR.removeCell TH { COLOR: #999 } TABLE.attachments TBODY TR.removeCell TD A IMG { FILTER: alpha(opacity=3D40); opacity: 0.4 } TABLE.attachments TH.smallCell { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 1%; = PADDING-TOP: 0px; WHITE-SPACE: nowrap } TABLE.attachments TD.smallCell { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 1%; = PADDING-TOP: 0px; WHITE-SPACE: nowrap } TABLE.attachments TBODY TR.inEditMode { BORDER-RIGHT: #444 2px solid; BORDER-TOP: #444 2px solid; BACKGROUND: = #ededed; BORDER-LEFT: #444 2px solid; BORDER-BOTTOM: #444 2px solid; = -moz-border-radius: 0 } TABLE.attachments TBODY TR.inEditMode TD { BORDER-TOP: #444 2px solid; -moz-border-radius: 0 } TABLE.attachments TBODY TR.inEditMode TH { BORDER-TOP: #444 2px solid; -moz-border-radius: 0 } TABLE.stepItems-reorder { FONT-SIZE: 85%; MARGIN-BOTTOM: 0px; ZOOM: 1; BORDER-COLLAPSE: collapse; = border-spacing: 1px 0; border-separate: 1px 0 } TABLE.gbColumns { FONT-SIZE: 90%; ZOOM: 1 } TABLE.stepItems-reorder TD { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px } TABLE.stepItems-reorder TH { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px } TABLE.stepItems-reorder THEAD TR TH { BACKGROUND: #fff; COLOR: #999; BORDER-BOTTOM: #ccc 1px solid; = TEXT-ALIGN: left } TABLE.gbColumns THEAD TR TH { BACKGROUND: #bbb; COLOR: #fff; BORDER-BOTTOM: #999 2px solid } TABLE.gbColumns THEAD TR TD { BACKGROUND: #bbb; COLOR: #fff; BORDER-BOTTOM: #999 2px solid } TABLE.gbColumns THEAD TR TH.sorted { BORDER-RIGHT: #777 1px solid; BACKGROUND: #999; BORDER-LEFT: #777 1px = solid } TABLE.gbColumns THEAD TR TH A { COLOR: #fff } TABLE.gbColumns THEAD TR TD A { COLOR: #fff } TABLE.stepItems-reorder THEAD TR.lowerHeader TH { COLOR: #333; BORDER-BOTTOM: #ccc 2px solid } TABLE.stepItems-reorder TBODY TR TD.shaded { BORDER-TOP: #ccc 1px solid; BACKGROUND: url(images/readback.png) = #f6f6f6; _background-image: none } TABLE.stepItems-reorder THEAD TR TH.shaded { BORDER-TOP: #ccc 1px solid; BACKGROUND: url(images/readback.png) = #f6f6f6; _background-image: none } TABLE.stepItems-reorder TR TH.clearCell { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px } TABLE.stepItems-reorder TBODY { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #999 2px solid; ZOOM: 1; HEIGHT: = 1px } TABLE.stepItems-reorder TBODY TR TD { BORDER-TOP: #ccc 1px solid; BACKGROUND: #fff; ZOOM: 1; HEIGHT: 1% } TABLE.stepItems-reorder THEAD TR TH.shaded { BORDER-TOP-WIDTH: 0px! important } TABLE.stepItems-reorder THEAD TR.upperHeader TH { BORDER-TOP-WIDTH: 0px } TABLE.stepItems-reorder TBODY TR { BACKGROUND: #ccc } TABLE.stepItems-reorder TBODY TR:first-child TD { BORDER-TOP-WIDTH: 0px } TABLE.stepItems-reorder TBODY TR:first-child TH { BORDER-TOP-WIDTH: 0px } TABLE.stepItems-reorder THEAD TR:first-child { BORDER-TOP-WIDTH: 0px } TABLE.stepItems-reorder TBODY TR TD.dragCell { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = VERTICAL-ALIGN: top; PADDING-TOP: 0px; TEXT-ALIGN: right; = BORDER-RIGHT-WIDTH: 0px } TABLE.stepItems-reorder TBODY TR TD SPAN.reorder { BORDER-RIGHT: #ccc 1px solid; DISPLAY: block; RIGHT: 0px; BACKGROUND: = url(images/cm_reorder_updown.gif) #ededed no-repeat center center; = FILTER: alpha(opacity=3D100); LEFT: auto; WIDTH: 18px! important; = CURSOR: move; POSITION: relative; TOP: 2px; HEIGHT: 20px; opacity: 1; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: = 3px } TABLE.gbColumns TBODY TR TD SPAN.reorder { BACKGROUND: url(images/cm_reorder.gif) #ededed no-repeat center center } TABLE.stepItems-reorder TBODY TR.frozenbar TD SPAN.reorder { TOP: 1px } TABLE.stepItems-reorder TBODY TR TD INPUT { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 2px; = VERTICAL-ALIGN: middle; WIDTH: 95%; PADDING-TOP: 2px } TABLE.stepItems-reorder TBODY TR TD.points INPUT { WIDTH: 3em } TABLE.stepItems-reorder TBODY TR TD.entry INPUT[type=3Dtext] { WIDTH: 90% } TABLE.stepItems-reorder TBODY TR TD.entry INPUT[type=3Dcheckbox] { WIDTH: auto } TABLE.stepItems-reorder TBODY TR TD INPUT[type=3Dcheckbox] { MARGIN: 0px 4px 0px 0px } TABLE.gbColumns TBODY TR TD INPUT[type=3Dcheckbox] { MARGIN: 0px; WIDTH: auto } TABLE.gbColumns TBODY TR TD { PADDING-RIGHT: 8px; PADDING-LEFT: 8px; PADDING-BOTTOM: 4px; = VERTICAL-ALIGN: top; PADDING-TOP: 4px } TABLE.gbColumns TBODY TR.frozenbar TD { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 8px; PADDING-LEFT: 8px; = FONT-SIZE: 95%; BACKGROUND: #ccc; PADDING-BOTTOM: 4px; COLOR: #444; = PADDING-TOP: 3px } TABLE.gbColumns TFOOT TR.lastRow TD { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BACKGROUND: #999; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; LINE-HEIGHT: 0; PADDING-TOP: 0px; HEIGHT: 2px; = BORDER-RIGHT-WIDTH: 0px } TABLE.gbColumns TBODY TR.frozen TD { BACKGROUND: #ededed } TABLE.gbColumns THEAD TR TD.checkBox { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; PADDING-BOTTOM: 1px; = PADDING-TOP: 3px; TEXT-ALIGN: center } TABLE.gbColumns TBODY TR TD.checkBox { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; PADDING-BOTTOM: 1px; = PADDING-TOP: 3px; TEXT-ALIGN: center } DIV.areaHighlight TABLE.gbColumns THEAD TR TD.clear { BACKGROUND: #f9f9f9 } TD.clear { BACKGROUND: #f9f9f9 } DIV.areaHighlight TABLE.gbColumns TBODY TR.frozenbar TD.dragCell { BACKGROUND: #f9f9f9 } DIV.areaHighlight TABLE.gbColumns TBODY TR TD.dragCell { BACKGROUND: #f9f9f9 } DIV.areaHighlight TABLE.gbColumns TBODY TR.frozen TD.dragCell { BACKGROUND: #f9f9f9 } DIV.areaHighlight TABLE.gbColumns TFOOT TR.lastRow TD.clear { BACKGROUND: #f9f9f9 } TABLE.gbColumns TBODY TR.frozenbar TD.dragCell { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = PADDING-BOTTOM: 0px! important; PADDING-TOP: 0px! important } TABLE.gbColumns TBODY TR.placeholder TD { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = LINE-HEIGHT: 0; PADDING-TOP: 0px; HEIGHT: 1px; BORDER-RIGHT-WIDTH: 0px } TABLE.gbColumns TBODY TR.placeholder TD.clear { BACKGROUND: #f9f9f9 } TABLE.gbColumns TBODY TR TD.dragCell { OVERFLOW: visible; WIDTH: 4%; POSITION: relative } TABLE.gbColumns THEAD TR TD.clear { OVERFLOW: visible; WIDTH: 4%; POSITION: relative } UL.dragableHighlight LI TABLE.gbColumns THEAD TR TD.clear { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BACKGROUND: #ffffff; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px } UL.dragableHighlight LI TD.clear { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BACKGROUND: #ffffff; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px } UL.dragableHighlight LI TABLE.gbColumns TBODY TR.frozenbar TD.dragCell { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BACKGROUND: #ffffff; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px } UL.dragableHighlight LI TABLE.gbColumns TBODY TR TD.dragCell { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BACKGROUND: #ffffff; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px } UL.dragableHighlight LI TABLE.gbColumns TBODY TR.frozen TD.dragCell { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BACKGROUND: #ffffff; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px } UL.dragableHighlight LI TABLE.gbColumns TFOOT TR.lastRow TD.clear { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BACKGROUND: #ffffff; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px } TABLE.gbColumns THEAD TR TD.clear { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BACKGROUND: #ffffff; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px } TR.rowdrag { Z-INDEX: 1; BACKGROUND: #ccc } .insertImg { Z-INDEX: 20; POSITION: relative; TOP: 12px } .insertImgUp { Z-INDEX: 20; RIGHT: -10px; POSITION: absolute } TABLE.inventory TBODY TR TD.smallCell { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; WIDTH: 1%; = PADDING-TOP: 3px; WHITE-SPACE: nowrap } TABLE.inventory THEAD TR TH.smallCell { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; WIDTH: 1%; = PADDING-TOP: 3px; WHITE-SPACE: nowrap } .clickOrder { DISPLAY: none } TABLE.inventory TBODY TR TD.clickOrder { BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #ddd } TABLE.inventory TR TD.endCell { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = PADDING-BOTTOM: 0px! important; WIDTH: 1px! important; PADDING-TOP: 0px! = important; BACKGROUND-COLOR: #ddd! important } TABLE.inventory TR.orderRow TD.clickOrder { BACKGROUND-COLOR: #ddd; TEXT-ALIGN: center } TABLE.inventory TR.orderRow TD.clickOrder DIV { POSITION: relative } .sortedplus { BACKGROUND-POSITION: 48% 2px; BACKGROUND-IMAGE: = url(images/sort_on.gif); BACKGROUND-REPEAT: no-repeat } .dragCol { BACKGROUND-COLOR: #999 } .dragHover { BACKGROUND-POSITION: right top; BACKGROUND-IMAGE: = url(images/dragarrow.gif); BACKGROUND-REPEAT: no-repeat } .hideoff { LEFT: -1000px; OVERFLOW: hidden; WIDTH: 1px; POSITION: absolute; TOP: = 0px; HEIGHT: 1px } DIV.rumble UL LI.jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #e2eefe; = PADDING-BOTTOM: 1px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #5577bb 1px solid; TEXT-ALIGN: left } DIV.rumble UL LI.jumptopage.inventory_page { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #e2eefe; = PADDING-BOTTOM: 1px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #5577bb 1px solid; TEXT-ALIGN: left } DIV.rumble_top UL LI.jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #e2eefe; = PADDING-BOTTOM: 1px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #5577bb 1px solid; TEXT-ALIGN: left } DIV.rumble_top UL LI.jumptopage.inventory_page { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #e2eefe; = PADDING-BOTTOM: 1px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #5577bb 1px solid; TEXT-ALIGN: left } .hideme { DISPLAY: none } LI.jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #5577bb 1px solid; = BORDER-LEFT: #5577bb 1px solid; BORDER-BOTTOM: #5577bb 1px solid } .jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 18px! important; = BORDER-TOP: #acc2df 1px solid; PADDING-LEFT: 6px! important; BACKGROUND: = #e2eefe; PADDING-BOTTOM: 2px! important; BORDER-LEFT: #acc2df 1px solid; = PADDING-TOP: 2px! important; BORDER-BOTTOM: #5577bb 1px solid; POSITION: = relative; TEXT-ALIGN: left } DIV.jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 18px! important; = BORDER-TOP: #acc2df 1px solid; PADDING-LEFT: 6px! important; BACKGROUND: = #e2eefe; PADDING-BOTTOM: 2px! important; BORDER-LEFT: #acc2df 1px solid; = PADDING-TOP: 2px! important; BORDER-BOTTOM: #5577bb 1px solid; POSITION: = relative; TEXT-ALIGN: left } DIV.jumptopage { FLOAT: right } .hideme { DISPLAY: none } LI.jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #5577bb 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #5577bb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid } .jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #5577bb 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #5577bb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid } DIV.jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #5577bb 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #5577bb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid } DIV.jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #5577bb 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #5577bb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid } .jumptopage INPUT.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #566e94 1px solid; PADDING-LEFT: 1px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; BACKGROUND: url(images/action_button_back.gif) #888 repeat-x left = top; PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px = solid; WIDTH: auto; COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: = #344a6c 1px solid; TEXT-DECORATION: none } DIV.jumptopage INPUT.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #566e94 1px solid; PADDING-LEFT: 1px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; BACKGROUND: url(images/action_button_back.gif) #888 repeat-x left = top; PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px = solid; WIDTH: auto; COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: = #344a6c 1px solid; TEXT-DECORATION: none } DIV.jumptopage BUTTON { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 0px! important; = BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; = BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; POSITION: absolute; TOP: -2px; = BORDER-BOTTOM-STYLE: none } .jumptopage BUTTON { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 0px! important; = BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; = BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; POSITION: absolute; TOP: -2px; = BORDER-BOTTOM-STYLE: none } LI.inventory_paging BUTTON { RIGHT: -2px! important } DIV.jumptopage INPUT#currentpage_bot { WIDTH: auto } DIV.jumptopage INPUT#currentpage_top { WIDTH: auto } INPUT#currentpage_bot { WIDTH: auto } INPUT#currentpage_top { WIDTH: auto } .paging { CLEAR: left; FONT-SIZE: 95%; FLOAT: right; TEXT-ALIGN: right } .paging SPAN { BORDER-RIGHT: #ccc 1px dotted; PADDING-RIGHT: 6px; PADDING-LEFT: 0px; = PADDING-BOTTOM: 1px; MARGIN: 0px 9px 0px 0px; PADDING-TOP: 1px } .paging INPUT { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; FONT-WEIGHT: = bold; FONT-SIZE: 100%; BORDER-LEFT: #ccc 1px solid; WIDTH: 2em; = BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: center } .paging A { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline-block; PADDING-LEFT: 4px; BACKGROUND: = url(images/button3_back.gif) #ededed; PADDING-BOTTOM: 1px; BORDER-LEFT: = #ccc 1px solid; COLOR: #444; PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px = solid; TEXT-DECORATION: none } .paging A:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fafafa; BORDER-LEFT: #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid; = TEXT-DECORATION: none } .paging A.inactive { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; BACKGROUND: = #ededed; BORDER-LEFT: #ddd 1px solid; COLOR: #bbb; BORDER-BOTTOM: #ddd = 1px solid; TEXT-DECORATION: none } .paging A.inactive:hover { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; BACKGROUND: = #ededed; BORDER-LEFT: #ddd 1px solid; COLOR: #bbb; BORDER-BOTTOM: #ddd = 1px solid; TEXT-DECORATION: none } .pagingprefs { PADDING-RIGHT: 0px; MARGIN-TOP: 3px; PADDING-LEFT: 0px; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; COLOR: #999; PADDING-TOP: 3px; TEXT-ALIGN: = right } .pagingprefs A.microedit { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 4px; PADDING-LEFT: 4px; = BORDER-LEFT-WIDTH: 0px; BACKGROUND: #fff7de; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 1px; COLOR: #999; PADDING-TOP: 1px; BORDER-RIGHT-WIDTH: = 0px } .pagingprefs A.microedit:hover { COLOR: #666; TEXT-DECORATION: underline } .pagingform { PADDING-RIGHT: 28px; PADDING-LEFT: 12px; BACKGROUND: #fff7de; = PADDING-BOTTOM: 4px; COLOR: #666; LINE-HEIGHT: 160%; PADDING-TOP: 4px; = POSITION: relative; TEXT-ALIGN: left } .pagingform A.close { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; RIGHT: 4px; BACKGROUND: none transparent scroll = repeat 0% 0%; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; POSITION: absolute; TOP: 4px; BORDER-RIGHT-WIDTH: 0px } .pagingform DIV { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 0px; = PADDING-TOP: 3px } .pagingprefs SPAN#backandforth A { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold! important; = FONT-SIZE: 110%; PADDING-BOTTOM: 2px; LINE-HEIGHT: 90%; PADDING-TOP: 0px } DIV.rumble UL LI.jumptopage A.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 5px; = BACKGROUND-POSITION: left top; BORDER-TOP: #566e94 1px solid; = PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 100%; = BACKGROUND-IMAGE: url(images/gradient_black_short_bt.png); = PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px solid; = COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: #344a6c 1px solid; = BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: #819ac0 } DIV.rumble_top UL LI.jumptopage A.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 5px; = BACKGROUND-POSITION: left top; BORDER-TOP: #566e94 1px solid; = PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 100%; = BACKGROUND-IMAGE: url(images/gradient_black_short_bt.png); = PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px solid; = COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: #344a6c 1px solid; = BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: #819ac0 } .paging A.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 5px; = BACKGROUND-POSITION: left top; BORDER-TOP: #566e94 1px solid; = PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 100%; = BACKGROUND-IMAGE: url(images/gradient_black_short_bt.png); = PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px solid; = COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: #344a6c 1px solid; = BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: #819ac0 } DIV.rumble UL LI.jumptopage A.gotopage:hover { BORDER-LEFT-COLOR: #566e94; BACKGROUND: #566e94; BORDER-BOTTOM-COLOR: = #566e94; BORDER-TOP-COLOR: #566e94; BORDER-RIGHT-COLOR: #566e94 } DIV.rumble_top UL LI.jumptopage A.gotopage:hover { BORDER-LEFT-COLOR: #566e94; BACKGROUND: #566e94; BORDER-BOTTOM-COLOR: = #566e94; BORDER-TOP-COLOR: #566e94; BORDER-RIGHT-COLOR: #566e94 } .paging A.gotopage:hover { BORDER-LEFT-COLOR: #566e94; BACKGROUND: #566e94; BORDER-BOTTOM-COLOR: = #566e94; BORDER-TOP-COLOR: #566e94; BORDER-RIGHT-COLOR: #566e94 } TABLE.splashTable { MARGIN: 3px 0px 12px; WIDTH: 100%; BORDER-BOTTOM: #ccc 2px solid; = BORDER-COLLAPSE: collapse } TABLE.splashTable THEAD TR { COLOR: #999 } TABLE.splashTable THEAD TR TH { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 85%; = PADDING-BOTTOM: 6px; PADDING-TOP: 6px } TABLE.splashTable THEAD TR TH A { BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #666; = TEXT-DECORATION: none } TABLE.splashTable THEAD TR TH A:hover { BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #333; = TEXT-DECORATION: underline } TABLE.splashTable TBODY TR { BORDER-TOP: #ddd 1px solid } TABLE.splashTable TBODY TR TH { PADDING-RIGHT: 9px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 9px; = FONT-SIZE: 85%; PADDING-BOTTOM: 2px; COLOR: #777; PADDING-TOP: 2px } TABLE.splashTable TBODY TR TD { PADDING-RIGHT: 9px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 9px; = FONT-SIZE: 85%; PADDING-BOTTOM: 2px; COLOR: #777; PADDING-TOP: 2px } TABLE.splashTable TBODY TR TD.controls { TEXT-ALIGN: center } TABLE.splashTable TBODY TR TH { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 2px; COLOR: = #000; PADDING-TOP: 2px; TEXT-ALIGN: left } TABLE.splashTable TH.smallCell { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 1%; = PADDING-TOP: 0px; WHITE-SPACE: nowrap } TABLE.splashTable TD.smallCell { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 1%; = PADDING-TOP: 0px; WHITE-SPACE: nowrap } .contentBlock A { DISPLAY: block; BACKGROUND: url(images/more_options.gif) no-repeat 99% = center; TEXT-DECORATION: none } .contentBlock A.collapse { DISPLAY: block; BACKGROUND: url(images/less_options.gif) no-repeat 99% = center; TEXT-DECORATION: none } .contentBlock A.collapse:hover { TEXT-DECORATION: underline } .contentBlock A.hover { TEXT-DECORATION: underline } DIV#dataCollectionContainer DIV.contentBlock { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 6px; = MARGIN: 0pt 0px 0em; PADDING-TOP: 6px; BORDER-RIGHT-WIDTH: 0px } UNKNOWN { BACKGROUND: red } TABLE.splashTable INPUT { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } TABLE.reorderCols { CLEAR: both; FONT-SIZE: 95%; MARGIN: 18px 0pt 9px; WIDTH: 100%; = BORDER-COLLAPSE: collapse } TABLE.reorderCols THEAD TR TH { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 4px; BACKGROUND: #ededed; PADDING-BOTTOM: 0px; = BORDER-LEFT: #ccc 1px solid; CURSOR: move; PADDING-TOP: 0px; = BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: left } TABLE.reorderCols THEAD TR TH.noReorderCol { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default; = BORDER-TOP-STYLE: none; BORDER-BOTTOM: #ccc 1px solid; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none } TABLE.reorderCols TBODY TR TD { BORDER-RIGHT: #dddddd 1px solid; PADDING-RIGHT: 4px; PADDING-LEFT: 4px; = PADDING-BOTTOM: 2px; VERTICAL-ALIGN: top; BORDER-LEFT: #dddddd 1px = solid; PADDING-TOP: 2px; BORDER-BOTTOM: #eeeeee 1px solid; TEXT-ALIGN: = left } TABLE.reorderCols TBODY TR TH { BORDER-RIGHT: #dddddd 1px solid; PADDING-RIGHT: 4px; PADDING-LEFT: 4px; = PADDING-BOTTOM: 2px; VERTICAL-ALIGN: top; BORDER-LEFT: #dddddd 1px = solid; PADDING-TOP: 2px; BORDER-BOTTOM: #eeeeee 1px solid; TEXT-ALIGN: = left } TABLE.reorderCols TBODY TR TH { BACKGROUND: #ededed; COLOR: #555555; BORDER-BOTTOM: #cccccc 1px solid } TABLE.reorderCols THEAD TH SPAN.reorderToolTip { BACKGROUND: url(images/cm_reorder_leftright.gif) #dddddd no-repeat 8px = 50% } TABLE.reorderCols THEAD TH SPAN.firstItem { BACKGROUND: url(images/cm_reorder_right.gif) #dddddd no-repeat 8px 50% } TABLE.reorderCols THEAD TH SPAN.reorder2:hover { CURSOR: move; BACKGROUND-COLOR: #efefef } TABLE.reorderCols THEAD TR TH.axis { BACKGROUND: #ededed 0% 50%; COLOR: #555555; BORDER-BOTTOM: #cccccc 1px = solid } .ghostTd { BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: #000 1px = solid; PADDING-LEFT: 8px; BACKGROUND: #eee; PADDING-BOTTOM: 2px; FONT: = 10px arial; BORDER-LEFT: #000 1px solid; WIDTH: auto; PADDING-TOP: 2px; = BORDER-BOTTOM: #000 1px solid; POSITION: absolute; HEIGHT: auto } TABLE.reorderCols THEAD TH.dragging { BACKGROUND: #ccc } TABLE.reorderCols THEAD TH.hovering { BACKGROUND: #666666 } TABLE.reorderCols THEAD TH.hovering IMG { DISPLAY: none } TD.removeCell { COLOR: #999; TEXT-DECORATION: line-through } TD.removeCell SPAN A { COLOR: #999; TEXT-DECORATION: line-through } TD.removeCell SPAN A IMG { FILTER: alpha(opacity=3D30); opacity: 0.3 } UL.easylist { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; MARGIN: 10px 0px 0px; PADDING-TOP: 0px; = LIST-STYLE-TYPE: none } UL.contentList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; MARGIN: 10px 0px 0px; PADDING-TOP: 0px; = LIST-STYLE-TYPE: none } UL.easylist { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 3px; PADDING-TOP: 0px; POSITION: relative } UL.contentList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 3px; PADDING-TOP: 0px; POSITION: relative } .contentPageItem { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 3px; PADDING-TOP: 0px; POSITION: relative } .contentListRight { FONT-WEIGHT: normal; RIGHT: 6px; LEFT: auto; POSITION: absolute } .pagedContentListRight { TOP: 4px } UL.noimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; MARGIN: 10px 0px 0px; PADDING-TOP: 0px; = LIST-STYLE-TYPE: none } UL.buildList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; MARGIN: 10px 0px 0px; PADDING-TOP: 0px; = LIST-STYLE-TYPE: none } UL.contentListPlain { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; MARGIN: 10px 0px 0px; PADDING-TOP: 0px; = LIST-STYLE-TYPE: none } UL.announcementList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; MARGIN: 10px 0px 0px; PADDING-TOP: 0px; = LIST-STYLE-TYPE: none } UL.noimg LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px; POSITION: = relative } UL.buildList LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px; POSITION: = relative } UL.contentListPlain LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px; POSITION: = relative } UL.announcementList LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px; POSITION: = relative } UL.noimg LI DIV.item_icon { DISPLAY: none } UL.contentListPlain LI DIV.item_icon { DISPLAY: none } UL.noimg LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.buildList LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.contentListPlain LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.contentList LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.announcementList LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } DIV.staticHeader H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } DIV.staticFooter H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.contentList LI.read H3.item { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } UL.buildList LI INPUT { FLOAT: left; MARGIN: 8px 8px 8px 26px } UL.buildList LI INPUT.browse { MARGIN: 0px 0px 6px } UL.buildList LI INPUT.genericButton { MARGIN: 0px 0px 6px } UL.buildList LI INPUT[type=3Dbutton] { MARGIN: 0px 0px 6px } UL.easylist LI H3.item { PADDING-RIGHT: 6px; PADDING-LEFT: 75px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.contentList LI H3.item { PADDING-RIGHT: 6px; PADDING-LEFT: 75px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.easylist LI DIV.item_icon { LEFT: 12px; MARGIN: 0px 8px 0px 18px; POSITION: absolute } UL.contentList LI DIV.item_icon { LEFT: 12px; MARGIN: 0px 8px 0px 18px; POSITION: absolute } UL.easylist LI DIV.item_icon A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } UL.contentList LI DIV.item_icon A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } UL.iconsOnly { MARGIN: 0px auto; WIDTH: 80% } UL.iconsOnly LI DIV.item_icon { DISPLAY: block! important; POSITION: relative! important; TEXT-ALIGN: = center! important } UL.iconsOnly LI.read DIV.item_icon { DISPLAY: block! important; POSITION: relative! important; TEXT-ALIGN: = center! important } UL.iconsOnly LI.read DIV.item_icon { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } UL.iconsOnly LI { FLOAT: left! important; WIDTH: 49%; MARGIN-RIGHT: 6px; TEXT-ALIGN: = center } UL.iconsOnly LI:hover DIV.item_icon { BACKGROUND: #ededed } UL.iconsOnly LI:hover H3 { BACKGROUND: #ededed } UL.iconsOnly LI:focus DIV.item_icon { BACKGROUND: #ededed } UL.iconsOnly LI:focus H3 { BACKGROUND: #ededed } UL.iconsOnly LI H3.item { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 6px; PADDING-LEFT: 6px; = BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 6px; BORDER-LEFT: #ededed 2px = solid; PADDING-TOP: 6px; BORDER-RIGHT-WIDTH: 0px } UL.iconsOnly LI DIV.item_icon { BORDER-TOP: #ededed 2px solid; MIN-HEIGHT: 50px; LEFT: auto; MARGIN: = 0px 0px 0px 18px; BORDER-LEFT: #ededed 2px solid; TOP: 0px } UL.iconsOnly LI SPAN.reorder { BACKGROUND-POSITION: center 50%; FILTER: alpha(opacity=3D100); LEFT: = -2px; BACKGROUND-IMAGE: url(images/cm_reorder.gif); WIDTH: 20px; CURSOR: = move; BACKGROUND-REPEAT: no-repeat; POSITION: absolute; TOP: 2px; = HEIGHT: 28px; BACKGROUND-COLOR: #ededed; opacity: 1; = -moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px } .details { PADDING-RIGHT: 0px; PADDING-LEFT: 20px; FONT-WEIGHT: normal; = PADDING-BOTTOM: 0px; BORDER-LEFT: #ccc 2px solid; COLOR: #444; = PADDING-TOP: 1px } DIV.details P { PADDING-RIGHT: 6px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 6px; MARGIN: 0px; PADDING-TOP: 3px } .container P { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 95%; = PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-TOP: 6px } .container P.important { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 95%; = PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-TOP: 6px } .container P.centered { TEXT-ALIGN: center } .details P SPAN.note { FONT-WEIGHT: bold } .details P.important { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 9px; PADDING-TOP: 0px } .details P.important SPAN { FONT-WEIGHT: normal; COLOR: #888 } .details P SPAN.note { FONT-WEIGHT: bold } DIV.announcementInfo { PADDING-LEFT: 12px; RIGHT: 0px; BACKGROUND: #fff; BORDER-LEFT: #ccc 1px = dotted; WIDTH: 13em; BOTTOM: 12px; PADDING-TOP: 4px; POSITION: absolute; = TOP: 0px } P.itemDetails { PADDING-LEFT: 12px; RIGHT: 0px; BACKGROUND: #fff; BORDER-LEFT: #ccc 1px = dotted; WIDTH: 13em; BOTTOM: 12px; PADDING-TOP: 4px; POSITION: absolute; = TOP: 0px } DIV.itemDetails { PADDING-LEFT: 12px; RIGHT: 0px; BACKGROUND: #fff; BORDER-LEFT: #ccc 1px = dotted; WIDTH: 13em; BOTTOM: 12px; PADDING-TOP: 4px; POSITION: absolute; = TOP: 0px } P.itemDetails { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px; TOP: 2px } DIV.itemDetails { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px; TOP: 2px } .buildList DIV.announcementInfo { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px; TOP: 2px } DIV.announcementInfo P { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 85%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 2px } DIV.announcementInfo { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 85%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 2px } P.itemDetails P { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 85%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 2px } DIV.itemDetails P { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 85%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 2px } DIV.announcementInfo P { FONT-SIZE: 100% } DIV.announcementInfo P SPAN { COLOR: #999 } DIV.announcementInfo SPAN { COLOR: #999 } P.itemDetails SPAN { COLOR: #999 } DIV.itemDetails SPAN { COLOR: #999 } P.itemDetails { FONT-SIZE: 90% } DIV.itemDetails { FONT-SIZE: 90% } P.itemDetails SPAN { FONT-SIZE: 95% } DIV.itemDetails SPAN { FONT-SIZE: 95% } DIV.announcementInfo P SPAN SPAN { FONT-SIZE: 95%! important } DIV.announcementInfo SPAN SPAN { FONT-SIZE: 95%! important } DIV.noItems { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; FONT-SIZE: 95%; = PADDING-BOTTOM: 6px; COLOR: #555; PADDING-TOP: 6px; TEXT-ALIGN: center } .details P.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; WIDTH: 98%; PADDING-TOP: = 0px } .details UL.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; WIDTH: 98%; PADDING-TOP: = 0px } P.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; WIDTH: 98%; PADDING-TOP: = 0px } UL.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; WIDTH: 98%; PADDING-TOP: = 0px } .details UL.attachments { MARGIN: 3px 0px 9px; LIST-STYLE-TYPE: none } UL.attachments { MARGIN: 3px 0px 9px; LIST-STYLE-TYPE: none } .container UL.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } .details UL.attachments LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px 6px 0px 0px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: = none } UL.attachments LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px 6px 0px 0px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: = none } UL.attachments LI.read { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px 6px 0px 0px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: = none } .details P.attachments SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } .details UL.attachments LI.label { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } P.attachments SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } UL.attachments LI.label { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } .details UL.attachments LI.read { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } .details P.attachments SPAN { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } .details UL.attachments LI.label SPAN { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } P.attachments SPAN { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } UL.attachments LI.label SPAN { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } .details P.attachments A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } .details UL.attachments LI A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } P.attachments A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } UL.attachments LI A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } UL.attachments LI A.removeTag { PADDING-RIGHT: 9px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } UL.attachments LI.addTag { WHITE-SPACE: nowrap } UL.attachments LI.addTag SPAN { DISPLAY: inline } UL.attachments LI.addTag A.browse { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; = PADDING-BOTTOM: 2px; PADDING-TOP: 0px; WHITE-SPACE: nowrap } UL.attachments LI.addTag SPAN.addTagField { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; BACKGROUND: #eee; FLOAT: none; = PADDING-BOTTOM: 6px; WIDTH: auto; PADDING-TOP: 6px } UL.attachments LI.addTag SPAN.addTagField INPUT { FLOAT: none; MARGIN: 0px; VERTICAL-ALIGN: middle } .details P.attachments A { PADDING-LEFT: 3px; TEXT-DECORATION: none } .details UL.attachments LI A SPAN { PADDING-LEFT: 3px; TEXT-DECORATION: none } P.attachments A { PADDING-LEFT: 3px; TEXT-DECORATION: none } UL.attachments LI A SPAN { PADDING-LEFT: 3px; TEXT-DECORATION: none } UL.noimg LI DIV.details { MARGIN-LEFT: 18px } UL.buildList LI DIV.details { MARGIN-LEFT: 18px } UL.contentListPlain LI DIV.details { MARGIN-LEFT: 18px } DIV.staticHeader DIV.details { MARGIN-LEFT: 18px } DIV.staticFooter DIV.details { MARGIN-LEFT: 18px } UL.announcementList LI DIV.details { PADDING-RIGHT: 0px; OVERFLOW-Y: visible; PADDING-LEFT: 20px; = OVERFLOW-X: auto; PADDING-BOTTOM: 0px; MARGIN: 0px 13em 0px 18px; = OVERFLOW: hidden; PADDING-TOP: 0px; _width: 70%; _height: 1%; _overflow: = scroll } UL#announcementList LI DIV.details { PADDING-RIGHT: 0px; OVERFLOW-Y: visible; PADDING-LEFT: 20px; = OVERFLOW-X: auto; PADDING-BOTTOM: 0px; MARGIN: 0px 13em 0px 18px; = OVERFLOW: hidden; PADDING-TOP: 0px; _width: 70%; _height: 1%; _overflow: = scroll } UL.announcementList-read LI DIV.details { MARGIN-LEFT: 0px! important } DIV.staticFooter DIV.details { MARGIN-LEFT: 18px } DIV.staticHeader { MARGIN: 10px 0px 0px } DIV.staticFooter DIV.details { PADDING-BOTTOM: 12px; BORDER-BOTTOM: #ddd 1px solid } .gbColumns_rumble { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN-LEFT: = 60px! important; BORDER-LEFT: #ddd 1px solid; BORDER-BOTTOM: #ddd 0px = solid } .gbColumns_rumble_bottom { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN-LEFT: = 60px! important; BORDER-LEFT: #ddd 1px solid; BORDER-BOTTOM: #ddd 0px = solid } .gbColumns_rumble_bottom { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 0px solid; BORDER-LEFT: = #ddd 1px solid; BORDER-BOTTOM: #ddd 1px solid } .staticHeader { CLEAR: both; ZOOM: 1; POSITION: relative } .staticFooter { CLEAR: both; ZOOM: 1; POSITION: relative } .staticHeader DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } .staticFooter DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } UL.gbCategories LI DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } .staticHeader DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } .staticFooter DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } UL.gbCategories LI DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } .staticHeader DIV.itemHeaderControl A { DISPLAY: inline-block } .staticFooter DIV.itemHeaderControl A { DISPLAY: inline-block } UL.gbCategories LI DIV.itemHeaderControl A { DISPLAY: inline-block } HTML *.staticHeader DIV.itemHeaderControl { TOP: 5px } HTML *.staticFooter DIV.itemHeaderControl { TOP: 5px } HTML * UL.gbCategories LI DIV.itemHeaderControl { TOP: 5px } UL.dragableHighlight { PADDING-RIGHT: 12px; BORDER-TOP: #999 1px dashed; PADDING-LEFT: 12px; = BACKGROUND: #fff; PADDING-BOTTOM: 3px; MARGIN: 12px -12px; PADDING-TOP: = 12px; BORDER-BOTTOM: #999 1px dashed } UL.gbCategories LI H3.item { PADDING-LEFT: 9px } DIV.staticHeader H3.item { PADDING-LEFT: 9px } DIV.staticFooter H3.item { PADDING-LEFT: 9px } UL.gbCategories LI H3.item A.toggleLink { MARGIN-TOP: -2px; MARGIN-RIGHT: 6px } DIV.staticHeader H3.item A.toggleLink { MARGIN-TOP: -2px; MARGIN-RIGHT: 6px } DIV.staticFooter H3.item A.toggleLink { MARGIN-TOP: -2px; MARGIN-RIGHT: 6px } DIV.areaHighlight DIV.container { BACKGROUND: #f9f9f9 } DIV.areaHighlight DIV.bottomRound B { BACKGROUND: #f9f9f9 } UL.dragableHighlight LI H3.item { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .dragableHighlight DIV.details { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .caretTitleModifier { PADDING-RIGHT: 0px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; FONT-SIZE: = 90%; PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 1px } DIV.landingPageColumn UL LI H3.hiddenLink .linkStatus { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 85%; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: = 0.4em } .caretTitleModifier A.browse { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 92%; PADDING-BOTTOM: = 1px; COLOR: #444; PADDING-TOP: 0px; WHITE-SPACE: nowrap } DIV.landingPageColumn UL LI H3.hiddenLink A.browse { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 92%; PADDING-BOTTOM: = 1px; COLOR: #444; PADDING-TOP: 0px; WHITE-SPACE: nowrap } .caretTitleModifier A.browse:hover { TEXT-DECORATION: none } DIV.landingPageColumn UL LI H3.hiddenLink A.browse:hover { TEXT-DECORATION: none } .caretTitleModifier A.browse:focus { TEXT-DECORATION: none } DIV.landingPageColumn UL LI H3.hiddenLink A.browse:focus { TEXT-DECORATION: none } UL.easylist LI.read { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; MARGIN: 0px 0px 9px; BORDER-RIGHT-WIDTH: 0px } UL.noimg LI.read { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; MARGIN: 0px 0px 9px; BORDER-RIGHT-WIDTH: 0px } UL.buildList LI.read { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; MARGIN: 0px 0px 9px; BORDER-RIGHT-WIDTH: 0px } UL.contentList LI.read { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; MARGIN: 0px 0px 9px; BORDER-RIGHT-WIDTH: 0px } UL.contentListPlain LI.read { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; MARGIN: 0px 0px 9px; BORDER-RIGHT-WIDTH: 0px } DIV.read { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; MARGIN: 0px 0px 9px; BORDER-RIGHT-WIDTH: 0px } UL.noimg LI.read H3.item { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 6px; PADDING-LEFT: 6px; = FONT-WEIGHT: bold; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 110%; OVERFLOW-X: = hidden; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 6px; MARGIN: 0px; = WORD-BREAK: normal; PADDING-TOP: 6px; BORDER-RIGHT-WIDTH: 0px; = WORD-WRAP: break-word } UL.noimg LI.read H3 { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 6px; PADDING-LEFT: 6px; = FONT-WEIGHT: bold; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 110%; OVERFLOW-X: = hidden; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 6px; MARGIN: 0px; = WORD-BREAK: normal; PADDING-TOP: 6px; BORDER-RIGHT-WIDTH: 0px; = WORD-WRAP: break-word } UL.buildList LI.read H3 { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 6px; PADDING-LEFT: 6px; = FONT-WEIGHT: bold; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 110%; OVERFLOW-X: = hidden; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 6px; MARGIN: 0px; = WORD-BREAK: normal; PADDING-TOP: 6px; BORDER-RIGHT-WIDTH: 0px; = WORD-WRAP: break-word } UL.contentListPlain LI.read H3.item { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 6px; PADDING-LEFT: 6px; = FONT-WEIGHT: bold; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 110%; OVERFLOW-X: = hidden; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 6px; MARGIN: 0px; = WORD-BREAK: normal; PADDING-TOP: 6px; BORDER-RIGHT-WIDTH: 0px; = WORD-WRAP: break-word } UL.contentListPlain LI.read H3 { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 6px; PADDING-LEFT: 6px; = FONT-WEIGHT: bold; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 110%; OVERFLOW-X: = hidden; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 6px; MARGIN: 0px; = WORD-BREAK: normal; PADDING-TOP: 6px; BORDER-RIGHT-WIDTH: 0px; = WORD-WRAP: break-word } UL.announcementList LI.read H3 { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 6px; PADDING-LEFT: 6px; = FONT-WEIGHT: bold; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 110%; OVERFLOW-X: = hidden; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 6px; MARGIN: 0px; = WORD-BREAK: normal; PADDING-TOP: 6px; BORDER-RIGHT-WIDTH: 0px; = WORD-WRAP: break-word } UL.announcementList-read LI H3.item { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 6px; PADDING-LEFT: 6px; = FONT-WEIGHT: bold; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 110%; OVERFLOW-X: = hidden; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 6px; MARGIN: 0px; = WORD-BREAK: normal; PADDING-TOP: 6px; BORDER-RIGHT-WIDTH: 0px; = WORD-WRAP: break-word } UL.announcementList LI.read H3 { PADDING-RIGHT: 13em; PADDING-LEFT: 18px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; WORD-BREAK: normal; PADDING-TOP: 6px; WORD-WRAP: = break-word } UL.announcementList LI H3.item { PADDING-RIGHT: 13em; PADDING-LEFT: 18px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; WORD-BREAK: normal; PADDING-TOP: 6px; WORD-WRAP: = break-word } UL.announcementList-read LI H3.item { PADDING-RIGHT: 13em; PADDING-LEFT: 18px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; WORD-BREAK: normal; PADDING-TOP: 6px; WORD-WRAP: = break-word } UL#announcementList LI H3.item { PADDING-RIGHT: 13em; PADDING-LEFT: 18px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; WORD-BREAK: normal; PADDING-TOP: 6px; WORD-WRAP: = break-word } UL.easylist LI.read H3.item { PADDING-RIGHT: 6px; PADDING-LEFT: 58px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.easylist LI.read H3 { PADDING-RIGHT: 6px; PADDING-LEFT: 58px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.contentList LI.read H3.item { PADDING-RIGHT: 6px; PADDING-LEFT: 58px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.contentList LI.read H3 { PADDING-RIGHT: 6px; PADDING-LEFT: 58px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.easylist LI.read DIV.item_icon { LEFT: 0px; MARGIN: 0px 8px 0px 12px; POSITION: absolute; TOP: 0px } UL.contentList LI.read DIV.item_icon { LEFT: 0px; MARGIN: 0px 8px 0px 12px; POSITION: absolute; TOP: 0px } UL.noimg LI.read DIV.details { BORDER-TOP-WIDTH: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; = BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: 6px; BORDER-RIGHT-WIDTH: 0px } UL.buildList LI.read DIV.details { BORDER-TOP-WIDTH: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; = BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: 6px; BORDER-RIGHT-WIDTH: 0px } UL.contentListPlain LI.read DIV.details { BORDER-TOP-WIDTH: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; = BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: 6px; BORDER-RIGHT-WIDTH: 0px } UL.announcementList LI.read DIV.details { BORDER-TOP-WIDTH: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; = BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: 6px; BORDER-RIGHT-WIDTH: 0px } UL.announcementList-read LI DIV.details { BORDER-TOP-WIDTH: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; = BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: 6px; BORDER-RIGHT-WIDTH: 0px } UL.easylist LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.noimg LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.buildList LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentList LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentListPlain LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.announcementList LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.announcementList-read LI H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.buildList LI.read H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentList LI.read H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentListPlain LI.read H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.announcementList LI.read H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.announcementList-read LI H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentList LI.read DIV.details { BORDER-TOP-WIDTH: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; = BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: 75px; BORDER-RIGHT-WIDTH: 0px } UL.contentList LI DIV.details { PADDING-LEFT: 72px; OVERFLOW-X: auto; MARGIN-LEFT: 18px; WORD-BREAK: = normal; WORD-WRAP: break-word } UL.staffInfoList LI DIV.details { MARGIN-RIGHT: 160px } UL.staffInfoList LI.hasPhoto DIV.details { MIN-HEIGHT: 135px; _height: 135px } UL.subList { PADDING-RIGHT: 0px; BORDER-TOP: #cccccc 1px dotted; PADDING-LEFT: 6px; = BACKGROUND: #fff; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 6px 12px; = BORDER-LEFT: #cccccc 1px dotted; PADDING-TOP: 4px; LIST-STYLE-TYPE: none } UL.subList-reorder { PADDING-RIGHT: 0px; BORDER-TOP: #cccccc 1px dotted; PADDING-LEFT: 6px; = BACKGROUND: #fff; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 6px 12px; = BORDER-LEFT: #cccccc 1px dotted; PADDING-TOP: 4px; LIST-STYLE-TYPE: none } UL.subList-reorder { =09 } UL.subList LI { PADDING-RIGHT: 3px; PADDING-LEFT: 23px; PADDING-BOTTOM: 3px; MARGIN: = 0px; BORDER-TOP-STYLE: none; PADDING-TOP: 3px; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } UL.buildList UL.detailList { PADDING-RIGHT: 3px; PADDING-LEFT: 23px; PADDING-BOTTOM: 3px; MARGIN: = 0px; PADDING-TOP: 3px } UL.subList-reorder LI { PADDING-RIGHT: 3px; PADDING-LEFT: 23px; PADDING-BOTTOM: 3px; MARGIN: = 0px; PADDING-TOP: 3px } UL.subList-reorder LI { CURSOR: move } UL.subList LI A IMG { VERTICAL-ALIGN: middle } UL.subList-reorder LI A IMG { VERTICAL-ALIGN: middle } UL.subList LI P { PADDING-RIGHT: 0px; DISPLAY: none; PADDING-LEFT: 0px; FONT-SIZE: 90%; = PADDING-BOTTOM: 0px; MARGIN: 3px 6px 3px 24px; COLOR: #444; PADDING-TOP: = 0px } UL.subList-reorder LI P { PADDING-RIGHT: 0px; DISPLAY: none; PADDING-LEFT: 0px; FONT-SIZE: 90%; = PADDING-BOTTOM: 0px; MARGIN: 3px 6px 3px 24px; COLOR: #444; PADDING-TOP: = 0px } UL.subList LI P SPAN { DISPLAY: inline; FONT-WEIGHT: bold; FLOAT: none } UL.buildList UL.detailList LI UL.subList LI P SPAN { DISPLAY: inline; FONT-WEIGHT: bold; FLOAT: none } UL.subList-reorder LI P SPAN { DISPLAY: inline; FONT-WEIGHT: bold; FLOAT: none } UL.buildList UL.subList-reorder LI SPAN.reorder { BORDER-RIGHT: #ccc 1px solid; BACKGROUND: = url(images/cm_reorder_updown.gif) #ededed no-repeat center center; = FILTER: alpha(opacity=3D100); LEFT: 0px; WIDTH: 16px! important; CURSOR: = move; POSITION: absolute; TOP: 3px; HEIGHT: 18px; opacity: 1; = -moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px } UL.subList-reorder LI:hover SPAN.reorder { opacity: 1 } UL.subList-reorder LI:focus SPAN.reorder { opacity: 1 } UL.subList LI P { PADDING-RIGHT: 0px; DISPLAY: none; PADDING-LEFT: 0px; FONT-SIZE: 90%; = VISIBILITY: hidden; PADDING-BOTTOM: 0px; MARGIN: 3px 6px 3px 24px; = COLOR: #444; PADDING-TOP: 0px } UL.subList-reorder P.itemDetails { DISPLAY: none } UL.subList-reorder LI DIV.itemDetails { DISPLAY: none } UL.subList-reorder DIV.details { DISPLAY: none } UL.subList DIV.details { DISPLAY: none } P.itemDetails + DIV.details { OVERFLOW: visible; MARGIN-RIGHT: 12.5em } DIV.itemDetails + DIV.details { OVERFLOW: visible; MARGIN-RIGHT: 12.5em } UL.subList LI P SPAN { FONT-WEIGHT: bold } UL.subListArtifact { CLEAR: both } UL.detailList UL.subListArtifact { CLEAR: both } UL.subListArtifact LI { POSITION: static } UL.detailList UL.subListArtifact LI { POSITION: static } UL.detailList UL.subListArtifact { ZOOM: 1 } UL.detailList UL.subListArtifact LI { ZOOM: 1 } UL.detailList UL.subListArtifact LI A { ZOOM: 1 } UL.buildList UL.detailList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 0.6em 0.7em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.buildList UL.detailList UL.subList { MARGIN: 0px 0px 6px } UL.buildList UL.detailList OL.subList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; LIST-STYLE-POSITION: inside; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: = decimal } UL.buildList UL.detailList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0.2em; MARGIN: = 0px 0px 0.2em; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: = none } UL.buildList UL.detailList LI SPAN { DISPLAY: block; FONT-WEIGHT: bold; FLOAT: left; WIDTH: 20% } UL.buildList UL LI DIV { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0.3em; FLOAT: left; = PADDING-BOTTOM: 0px; WIDTH: 79%; PADDING-TOP: 0px } UL.buildList UL LI DIV.contextMenuContainer { DISPLAY: inline; FLOAT: none; WIDTH: auto } UL.noimg LI DIV.contextMenuContainer { DISPLAY: inline; FLOAT: none; WIDTH: auto } UL.buildList LI.pageBreak H3.item { BORDER-TOP: #ccc 2px dotted; BACKGROUND-IMAGE: = url(images/readback.png); COLOR: #777 } UL.buildList LI.sectionBreak H3.item { BORDER-TOP: #ccc 2px dotted; BACKGROUND-IMAGE: = url(images/readback.png); COLOR: #777 } DIV.itemHeaderControl { RIGHT: 12.7em; POSITION: absolute; TOP: 9px } DIV.itemHeaderControl A { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline-block; PADDING-LEFT: 3px; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x; PADDING-BOTTOM: 2px; = BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #aaa 1px = solid } DIV.itemHeaderControl A:hover { =09 } DIV.itemHeaderControl A IMG { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } H3 SPAN.reorder { BACKGROUND: url(images/cm_reorder_updown.gif) #ededed no-repeat center = center; FILTER: alpha(opacity=3D100); LEFT: -2px; WIDTH: 20px; POSITION: = absolute; TOP: 2px; HEIGHT: 28px; opacity: 1; = -moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px } UL.iconsOnly LI H3.item SPAN.reorder { BACKGROUND-POSITION: center center; BACKGROUND-IMAGE: = url(images/cm_reorder.gif); BACKGROUND-REPEAT: no-repeat; TOP: 8px } UL.easylist LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.easylist LI H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.noimg LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.noimg LI H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.buildList LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentList LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } .contentPageItem H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } .contentPageItem H3.item A.cmimg:hover { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.iconsOnly LI:hover H3.item SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.announcementList LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.buildList LI H3.item:focus SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentList LI H3.item:focus SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:focus A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:focus SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:focus A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } .contentPageItem H3.item:focus A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } .contentPageItem H3.item A.cmimg:focus { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.iconsOnly LI:focus H3.item SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.announcementList LI H3.item:focus SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.easylist LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.noimg LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.buildList LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.contentList LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.contentListPlain LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.announcementList LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.buildList LI H3.item:focus { BACKGROUND: #efefef; CURSOR: move } UL.contentList LI H3.item:focus { BACKGROUND: #efefef; CURSOR: move } UL.contentListPlain LI H3.item:focus { BACKGROUND: #efefef; CURSOR: move } UL.announcementList LI H3.item:focus { BACKGROUND: #efefef; CURSOR: move } DIV.multiAssign { MARGIN: 3px 0px 9px } DIV.multiAssign UL { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; = BORDER-RIGHT-WIDTH: 0px } DIV.multiAssign UL LI { BORDER-TOP-WIDTH: 0px; CLEAR: none; PADDING-RIGHT: 6px; PADDING-LEFT: = 6px; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 90%; BACKGROUND: #f6f6f6; FLOAT: = left; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 6px; MARGIN: 0px 9px 0px = 0px; WIDTH: 13em; LINE-HEIGHT: 1.3em; PADDING-TOP: 1px; TEXT-ALIGN: = center; BORDER-RIGHT-WIDTH: 0px; -moz-border-radius: 3px } DIV.multiAssign UL LI.read { BORDER-TOP-WIDTH: 0px; CLEAR: none; PADDING-RIGHT: 6px; PADDING-LEFT: = 6px; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 90%; BACKGROUND: #f6f6f6; FLOAT: = left; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 6px; MARGIN: 0px 9px 0px = 0px; WIDTH: 13em; LINE-HEIGHT: 1.3em; PADDING-TOP: 1px; TEXT-ALIGN: = center; BORDER-RIGHT-WIDTH: 0px; -moz-border-radius: 3px } DIV.multiAssign UL LI A { FONT-WEIGHT: bold; FONT-SIZE: 100% } DIV.multiAssign UL LI A { FONT-WEIGHT: bold; FONT-SIZE: 100% } DIV.multiAssign UL LI P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 1px } DIV.multiAssign UL LI.label { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = FONT-WEIGHT: normal; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 95%; BACKGROUND: = none transparent scroll repeat 0% 0%; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; WIDTH: 12em; COLOR: #888; LINE-HEIGHT: 1.1em; = PADDING-TOP: 0px; WHITE-SPACE: normal; TEXT-ALIGN: left; = BORDER-RIGHT-WIDTH: 0px } DIV.multiAssign UL LI P SPAN { COLOR: #888 } DIV.multiAssign A.buttonMicro { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 5px; FONT-SIZE: 90%; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x 0% 50%; PADDING-BOTTOM: = 0px; MARGIN: 1px auto 12px; BORDER-LEFT: #ccc 1px solid; COLOR: #666; = PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px solid; WHITE-SPACE: nowrap; = TEXT-DECORATION: none } H3 A.buttonMicro { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 5px; FONT-SIZE: 90%; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x 0% 50%; PADDING-BOTTOM: = 0px; MARGIN: 1px auto 12px; BORDER-LEFT: #ccc 1px solid; COLOR: #666; = PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px solid; WHITE-SPACE: nowrap; = TEXT-DECORATION: none } DIV.multiAssign A.buttonMicro:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } H3 A.buttonMicro:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } DIV.multiAssign A.buttonMicro:focus { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } H3 A.buttonMicro:focus { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } DIV.multiAssign A.simpleLink { DISPLAY: block; FONT-WEIGHT: normal; COLOR: #666 } H3 SPAN.status A.buttonMicro { FONT-WEIGHT: normal; FONT-SIZE: 90%; MARGIN-LEFT: 6px } H3 SPAN.status { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: = 80%; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 3px; MARGIN-LEFT: 6px; = PADDING-TOP: 3px } H3 DIV.status { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: = 80%; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 3px; MARGIN-LEFT: 6px; = PADDING-TOP: 3px } H3 SPAN.status SPAN { COLOR: #888 } H3 DIV.status SPAN { COLOR: #888 } H3 DIV.status { DISPLAY: inline } .contentBlock { BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 1.4em; BORDER-TOP: #ddd = 1px solid; PADDING-LEFT: 1.4em; PADDING-BOTTOM: 1em; MARGIN: 0px 1em = 0.6em; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 0.6em; BORDER-BOTTOM: = #ddd 1px solid } .contentBlock H3 { PADDING-RIGHT: 0.4em; PADDING-LEFT: 0.4em; FONT-SIZE: 110%; = PADDING-BOTTOM: 0.4em; MARGIN: 0px 0px 1em; PADDING-TOP: 0.4em; = BORDER-BOTTOM: #ddd 1px solid } .contentBlock UL { PADDING-RIGHT: 0px; PADDING-LEFT: 1.2em; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .contentBlock UL.threeCol { FLOAT: left; WIDTH: 30% } .contentBlock UL.threeCol LI { PADDING-RIGHT: 0px; PADDING-LEFT: 22px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; BACKGROUND: url(images/list_bullet.gif) no-repeat 9px 4px; FLOAT: = none; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-TOP: 0px } .contentBlock UL.threeCol LI A { BACKGROUND-IMAGE: none } .contentBlock UL.threeCol LI A:hover { TEXT-DECORATION: underline } .contentBlock UL.threeCol LI A:focus { TEXT-DECORATION: underline } .contentBlock H3 INPUT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: normal; FONT-SIZE: 90%; = PADDING-BOTTOM: 1px; MARGIN-LEFT: 6px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #999 1px = solid } .contentBlock H3 SELECT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: normal; FONT-SIZE: 90%; = PADDING-BOTTOM: 1px; MARGIN-LEFT: 6px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #999 1px = solid } .contentBlock INPUT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: normal; FONT-SIZE: 90%; = PADDING-BOTTOM: 1px; MARGIN-LEFT: 6px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #999 1px = solid } .contentBlock SELECT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: normal; FONT-SIZE: 90%; = PADDING-BOTTOM: 1px; MARGIN-LEFT: 6px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #999 1px = solid } .contentBlock OL LI INPUT[type=3D'checkbox'] { VERTICAL-ALIGN: middle; MARGIN-RIGHT: 6px } .contentBlock H3 A.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = FONT-SIZE: 90%; BACKGROUND: url(images/button3_back.gif) #ededed = repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: = 1px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } .contentBlock A.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = FONT-SIZE: 90%; BACKGROUND: url(images/button3_back.gif) #ededed = repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: = 1px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } .contentBlock INPUT.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = FONT-SIZE: 90%; BACKGROUND: url(images/button3_back.gif) #ededed = repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: = 1px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } DIV.landingListWrapper { MARGIN: 1.6em 0px 0px; TEXT-ALIGN: center } DIV.landingListWrapper UL.landingList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = auto; WIDTH: 90%; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.landingListWrapper UL.landingList-2cols { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = auto; WIDTH: 90%; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.landingListWrapper UL.landingList LI { MARGIN: 0px 0px 1.6em 0em; WIDTH: 50%; TEXT-ALIGN: left } DIV.landingListWrapper UL.landingList-2cols LI { FLOAT: left; MARGIN: 0px 3em 1.6em 0em; WIDTH: 45%; TEXT-ALIGN: left } DIV.landingListWrapper UL.landingList LI.restart { MARGIN-TOP: -13.6em } DIV.landingListWrapper UL.landingList LI A { TEXT-DECORATION: none } DIV.landingListWrapper UL.landingList-2cols LI A { TEXT-DECORATION: none } DIV.landingListWrapper UL.landingList LI A:hover { TEXT-DECORATION: underline } DIV.landingListWrapper UL.landingList-2cols LI A:hover { TEXT-DECORATION: underline } DIV.landingListWrapper UL.landingList LI A:focus { TEXT-DECORATION: underline } DIV.landingListWrapper UL.landingList-2cols LI A:focus { TEXT-DECORATION: underline } DIV.landingListWrapper UL.landingList LI P { PADDING-RIGHT: 0.6em; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 1.4em; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingListWrapper UL.landingList-2cols LI P { PADDING-RIGHT: 0.6em; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 1.4em; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingListWrapper UL.landingList LI UL { MARGIN: 0em 0.4em 0.4em 0.8em; LIST-STYLE-TYPE: square } DIV.landingListWrapper UL.landingList LI UL LI { CLEAR: left; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.landingListWrapper UL.landingList-2cols LI UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: = 0px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.landingListWrapper UL.landingList LI H3 { PADDING-RIGHT: 1.2em; PADDING-LEFT: 1.2em; FONT-SIZE: 110%; BACKGROUND: = url(images/list_bullet.gif) no-repeat 0.1em 0.7em; PADDING-BOTTOM: = 0.4em; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingListWrapper UL.landingList-2cols H3 { PADDING-RIGHT: 1.2em; PADDING-LEFT: 1.2em; FONT-SIZE: 110%; BACKGROUND: = url(images/list_bullet.gif) no-repeat 0.1em 0.7em; PADDING-BOTTOM: = 0.4em; MARGIN: 0px; PADDING-TOP: 0.4em } .containerLanding { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 400px; BACKGROUND: = #ededed; PADDING-BOTTOM: 12px; MARGIN: 0px; PADDING-TOP: 10px } DIV.landing DIV.container { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 400px; BACKGROUND: = #ededed; PADDING-BOTTOM: 12px; MARGIN: 0px; PADDING-TOP: 10px } BODY.landingBody DIV.container { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 400px; BACKGROUND: = #ededed; PADDING-BOTTOM: 12px; MARGIN: 0px; PADDING-TOP: 10px } DIV.landingPageColumn { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 1.2em 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.landingPageColumn { FLOAT: left } DIV.oneCol { =09 } DIV.twoCol { MARGIN: 1.2em 0px; WIDTH: 49% } DIV.threeCol { MARGIN: 1.2em 0px; WIDTH: 32.5% } DIV.landingPageColumn UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 0px 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.landingPageColumn UL.outcomesLanding { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0.4em; = PADDING-TOP: 0px } DIV.landingPageColumn UL LI { MARGIN: 0px 0px 1.6em 0em; TEXT-ALIGN: left } DIV.landingPageColumn UL.outcomesLanding LI { MARGIN: 0px 0px 1.2em 0em } DIV.landingPageColumn UL LI A { TEXT-DECORATION: none } DIV.landingPageColumn UL LI A:hover { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI H3 { PADDING-RIGHT: 1.2em; PADDING-LEFT: 1.2em; FONT-SIZE: 110%; BACKGROUND: = url(images/list_bullet.gif) no-repeat 0.1em 0.7em; PADDING-BOTTOM: = 0.4em; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingPageColumn UL.outcomesLanding LI A { PADDING-RIGHT: 1.2em; PADDING-LEFT: 1.2em; FONT-SIZE: 110%; BACKGROUND: = url(images/list_bullet.gif) no-repeat 0.1em 0.7em; PADDING-BOTTOM: = 0.4em; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingPageColumn UL.outcomesLanding LI H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 115%; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0.4em; PADDING-TOP: 0.4em; = BORDER-BOTTOM: #ddd 1px solid } DIV.landingPageColumn UL.outcomesLanding LI A { FONT-WEIGHT: bold; FONT-SIZE: 100% } DIV.landingPageColumn UL.outcomesLanding LI P { BORDER-TOP-WIDTH: 0px! important } DIV.landingPageColumn UL LI H3 IMG { MARGIN: 0px 0px 0px -12px } DIV.landingPageColumn UL LI H3.hiddenLink { PADDING-RIGHT: 1.2em; PADDING-LEFT: 4.2em; PADDING-BOTTOM: 0.6em; = PADDING-TOP: 1em; POSITION: relative } DIV.landingPageColumn UL LI H3.hiddenLink A { COLOR: #777; TEXT-DECORATION: none } DIV.landingPageColumn UL LI H3.hiddenLink A:hover { COLOR: #777; TEXT-DECORATION: none } DIV.landingPageColumn UL LI H3.hiddenLink IMG { FILTER: alpha(opacity=3D40); LEFT: -3.1em; POSITION: absolute; TOP: = 0px; opacity: 0.4 } DIV.landingPageColumn UL LI UL { PADDING-RIGHT: 0px; PADDING-LEFT: 2.5em; PADDING-BOTTOM: 0px; MARGIN: = 0em 0.4em 0.4em 0.8em; PADDING-TOP: 0px; LIST-STYLE-TYPE: square } DIV.landingPageColumn UL LI UL LI { COLOR: #999! important } DIV.landingPageColumn UL LI UL LI.more { PADDING-TOP: 3px; LIST-STYLE-TYPE: none } DIV.landingPageColumn UL LI UL LI.more A { PADDING-RIGHT: 9px; PADDING-LEFT: 0px; BACKGROUND: = url(images/list_bullet_single.gif) no-repeat right 4px; PADDING-BOTTOM: = 0px; COLOR: #666; PADDING-TOP: 0px } DIV.landingPageColumn UL LI P { PADDING-RIGHT: 0.6em; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 1.4em; = PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #666; PADDING-TOP: 0.4em } DIV.landingPageColumn UL LI UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: = 0px; MARGIN: 0px; COLOR: #666; PADDING-TOP: 0px } #contentPaneWide DIV.gray B { BACKGROUND: #ededed } #contentPane DIV.gray B { BACKGROUND: #ededed } .subhead_text { PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; FONT-SIZE: 90%; PADDING-BOTTOM: = 2px; COLOR: #333333; PADDING-TOP: 0pt } .list_text { PADDING-RIGHT: 2px; PADDING-LEFT: 1.3em; FONT-WEIGHT: normal; = FONT-SIZE: 85%; PADDING-BOTTOM: 2px; COLOR: #666666; PADDING-TOP: 0pt } DIV.landingPageColumn UL.outcomesLanding LI .list_text A { PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; FONT-WEIGHT: normal; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0pt; MARGIN-LEFT: 3px; = PADDING-TOP: 0pt } DIV.datalistScroll { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN: 0.4em = 0px 0.4em 1.4em; OVERFLOW: auto; BORDER-LEFT: #ddd 1px solid; = BORDER-BOTTOM: #ddd 1px solid; HEIGHT: 360px; BACKGROUND-COLOR: white } DIV.datalist { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN: 0.4em = 0px 0.4em 1.4em; BORDER-LEFT: #ddd 1px solid; BORDER-BOTTOM: #ddd 1px = solid; BACKGROUND-COLOR: white } DIV.landingPageColumn UL LI UL.datalistScroll { BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ddd 1px; = PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0.4em 0px 0.4em 1.4em; = OVERFLOW: auto; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #ddd 1px solid; LIST-STYLE-TYPE: none; HEIGHT: 250px; = BACKGROUND-COLOR: white } DIV.landingPageColumn UL LI UL.datalistScroll LI { PADDING-RIGHT: 2px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 2px; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px; BACKGROUND-COLOR: white } DIV.landingPageColumn UL LI UL.datalistScroll LI:hover { BACKGROUND-COLOR: #ffffcc } DIV.landingPageColumn UL LI UL.datalistScroll LI:focus { BACKGROUND-COLOR: #ffffcc } DIV.datalist TABLE THEAD TR TH { COLOR: #fff; BACKGROUND-COLOR: #aaa } DIV.datalistScroll TABLE THEAD TR TH { COLOR: #fff; BACKGROUND-COLOR: #aaa } DIV.datalist TABLE TD.overdue { PADDING-RIGHT: 0pt; PADDING-LEFT: 20px; FONT-WEIGHT: bold; BACKGROUND: = url(images/stage_deadline4.gif) no-repeat left center; PADDING-BOTTOM: = 1px; COLOR: red; PADDING-TOP: 1px } .emptylist { BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: #ddd 1px = solid; PADDING-LEFT: 12px; PADDING-BOTTOM: 12px; MARGIN: 6px 0px 0px = 1.4em; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 12px; BORDER-BOTTOM: = #ddd 1px solid; BACKGROUND-COLOR: white } DIV.landingPageColumn UL LI UL.subcaret { BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ddd 1px; = PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0.4em 0em 0.4em 1.4em; = BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #ddd 1px = solid; LIST-STYLE-TYPE: none } DIV.landingPageColumn UL LI UL.subcaret LI { PADDING-RIGHT: 1px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 2px; = FONT-WEIGHT: normal; BACKGROUND: white; PADDING-BOTTOM: 2px; MARGIN: = 0px; PADDING-TOP: 2px; LIST-STYLE-TYPE: none } DIV.landingPageColumn UL LI UL.subcaret LI.complete { PADDING-RIGHT: 1px; PADDING-LEFT: 20px; BACKGROUND: = url(images/workflow_detail_complete2.gif) white no-repeat 2px 2px; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } DIV.landingPageColumn UL LI UL.subcaret LI.inprogress { PADDING-RIGHT: 1px; PADDING-LEFT: 20px; BACKGROUND: = url(images/workflow_detail_active.gif) white no-repeat 2px 2px; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } .iconLegendLabel { FONT-SIZE: 95%; MARGIN: 1px 0px 1px 1.6em } DIV.landingPageColumn UL LI UL.subcaret LI A { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI UL.datalist LI A { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI DIV A { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI TABLE A { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI P A { TEXT-DECORATION: underline } DIV.designAreaHeader { BORDER-RIGHT: #eee 1px solid; BORDER-TOP: #eee 1px solid; MARGIN: 0.6em = 0px 0.6em 18px; BORDER-LEFT: #eee 1px solid; BORDER-BOTTOM: #eee 1px = solid } DIV.designAreaFooter { BORDER-RIGHT: #eee 1px solid; BORDER-TOP: #eee 1px solid; MARGIN: 0.6em = 0px 0.6em 18px; BORDER-LEFT: #eee 1px solid; BORDER-BOTTOM: #eee 1px = solid } DIV.designAreaHeader H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0.8em; PADDING-BOTTOM: 0.4em; MARGIN: = 0px; COLOR: #666; PADDING-TOP: 0.4em } DIV.designAreaFooter H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0.8em; PADDING-BOTTOM: 0.4em; MARGIN: = 0px; COLOR: #666; PADDING-TOP: 0.4em } DIV.designAreaHeader DIV.headertext { PADDING-RIGHT: 0px; PADDING-LEFT: 0.8em; PADDING-BOTTOM: 0.4em; MARGIN: = 0px; PADDING-TOP: 0px } DIV.designAreaFooter DIV.footertext { PADDING-RIGHT: 0px; PADDING-LEFT: 0.8em; PADDING-BOTTOM: 0.4em; MARGIN: = 0px; PADDING-TOP: 0px } DIV#emptyText { MARGIN: 0.6em 18px } .sequenceMapHead { MARGIN: 6px 0px } .sequenceMapHead H3 { MARGIN: 12px 0px 6px } .sequenceMapHead P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 6px; COLOR: #666666; PADDING-TOP: 0px } DIV.sequenceMapHead DIV.actionBar { BACKGROUND: #fff7de; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } UL.metaDataList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.metaDataList LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 2px } UL.metaDataList LI H3 { DISPLAY: inline; MARGIN: 0px } INPUT { FONT-SIZE: 100%; VERTICAL-ALIGN: middle } SELECT { FONT-SIZE: 100%; VERTICAL-ALIGN: middle } .additional { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 0px = 0px 6px; PADDING-TOP: 2px; ZOOM: 1; HEIGHT: 1% } .additional .left { FLOAT: left } .additional .right { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FLOAT: right; PADDING-BOTTOM: = 2px; COLOR: #777; PADDING-TOP: 2px } .additional .right SPAN.size { FONT-WEIGHT: bold; COLOR: #000 } .additional .left SPAN.suboption { DISPLAY: block; PADDING-LEFT: 18px } .vtbe_footer { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ccc 0px = solid; PADDING-LEFT: 9px; FONT-SIZE: 70%; PADDING-BOTTOM: 2px; = BORDER-LEFT: #ccc 1px solid; COLOR: #666; PADDING-TOP: 2px; = BORDER-BOTTOM: #ccc 1px solid; BACKGROUND-COLOR: #eee } .vtbe_footer SPAN { FONT-SIZE: 100% } .vtbe_footer INPUT[type=3Dbutton] { FONT-SIZE: 95% } .vtbe_footer A { MARGIN: 0px 0px 0px 3px } DIV.steptitle { PADDING-RIGHT: 4px; PADDING-LEFT: 3.2em; FONT-WEIGHT: bold; FONT-SIZE: = 110%; BACKGROUND: #888; PADDING-BOTTOM: 0.33em; MARGIN: 9px 0px 0px; = COLOR: #ffffff; LINE-HEIGHT: 1; PADDING-TOP: 0.33em; LETTER-SPACING: = 1px; POSITION: relative } H3.steptitle { PADDING-RIGHT: 4px; PADDING-LEFT: 3.2em; FONT-WEIGHT: bold; FONT-SIZE: = 110%; BACKGROUND: #888; PADDING-BOTTOM: 0.33em; MARGIN: 9px 0px 0px; = COLOR: #ffffff; LINE-HEIGHT: 1; PADDING-TOP: 0.33em; LETTER-SPACING: = 1px; POSITION: relative } DIV.steptitle SPAN { PADDING-RIGHT: 9px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; BACKGROUND: = #fae7ae; LEFT: 0px; PADDING-BOTTOM: 0.33em; MARGIN: 0px 8px 0px 0px; = COLOR: #000; LINE-HEIGHT: 100%; PADDING-TOP: 0.33em; POSITION: absolute; = TOP: 1px; _margin: 0 0 0 -3.2em } H3.steptitle SPAN { PADDING-RIGHT: 9px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; BACKGROUND: = #fae7ae; LEFT: 0px; PADDING-BOTTOM: 0.33em; MARGIN: 0px 8px 0px 0px; = COLOR: #000; LINE-HEIGHT: 100%; PADDING-TOP: 0.33em; POSITION: absolute; = TOP: 1px; _margin: 0 0 0 -3.2em } H3.noNumber { PADDING-RIGHT: 16px; PADDING-LEFT: 16px; PADDING-BOTTOM: 5px; = PADDING-TOP: 4px } FIELDSET.stepcontent { PADDING-RIGHT: 4px; PADDING-LEFT: 16px; PADDING-BOTTOM: 12px; MARGIN: = 0px 0px 0px 18px; BORDER-TOP-STYLE: none; PADDING-TOP: 6px; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: = none } DIV.stepcontent { PADDING-RIGHT: 4px; PADDING-LEFT: 16px; PADDING-BOTTOM: 12px; MARGIN: = 0px 0px 0px 18px; BORDER-TOP-STYLE: none; PADDING-TOP: 6px; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: = none } FIELDSET.stepcontent FIELDSET { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } FIELDSET.stepcontent LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .stepHelp { PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%! important; = PADDING-BOTTOM: 4px; MARGIN: 0px 0px 6px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 0px; BORDER-BOTTOM-STYLE: none } FIELDSET.stepcontent OL LI.stepHelp { PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%! important; = PADDING-BOTTOM: 4px; MARGIN: 0px 0px 6px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 0px; BORDER-BOTTOM-STYLE: none } FIELDSET.stepcontent OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } FIELDSET.stepcontent FIELDSET OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.contentBlock OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } FIELDSET.stepcontent OL LI { MARGIN-BOTTOM: 4px; PADDING-BOTTOM: 4px; BORDER-BOTTOM: #eee 1px solid; = HEIGHT: 1% } FIELDSET.stepcontent OL LI:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; _height: = 1%; content: "."; _background: red } DIV.contentBlock OL LI:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; _height: = 1%; content: "."; _background: red } FIELDSET.stepcontent UL.nestedList { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; = BORDER-RIGHT-WIDTH: 0px } FIELDSET.stepcontent OL.nestedList { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; = BORDER-RIGHT-WIDTH: 0px } FIELDSET.stepcontent UL.nestedList LI { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 1px; = MARGIN: 0px; PADDING-TOP: 1px; BORDER-RIGHT-WIDTH: 0px } FIELDSET.stepcontent OL.nestedList LI { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 1px; = MARGIN: 0px; PADDING-TOP: 1px; BORDER-RIGHT-WIDTH: 0px } FIELDSET.stepcontent UL.nestedList LI INPUT { VERTICAL-ALIGN: middle } FIELDSET.stepcontent OL.nestedList LI INPUT { VERTICAL-ALIGN: middle } UL.nestedListSmall LI { FONT-SIZE: 90% } OL.nestedListSmall LI { FONT-SIZE: 90% } FIELDSET.stepcontent UL.nestedSubList { MARGIN: 6px 6px 6px 30px } FIELDSET.stepcontent OL.nestedSubList { MARGIN: 6px 6px 6px 30px } DIV.nestedSubList { MARGIN: 6px 6px 6px 30px } DIV.stepLite { PADDING-RIGHT: 16px; PADDING-LEFT: 16px; PADDING-BOTTOM: 12px; = PADDING-TOP: 6px } DIV.columnStep DIV.column-3 { MIN-HEIGHT: 200px } DIV.columnStep DIV.column-3 DIV TABLE.attachments TR TH { FONT-SIZE: 90% } DIV.columnStep DIV.column-3 DIV TABLE.attachments TR TD { FONT-SIZE: 90% } DIV.columnStep DIV H3 { MARGIN: 6px } DIV.columnStep DIV DIV { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } FIELDSET OL LI SPAN { PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; COLOR: #666666; PADDING-TOP: 0px; = BORDER-BOTTOM-STYLE: none } FIELDSET OL LI OL LI SPAN { PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; COLOR: #666666; PADDING-TOP: 0px; = BORDER-BOTTOM-STYLE: none } .contentBlock OL LI SPAN { PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; COLOR: #666666; PADDING-TOP: 0px; = BORDER-BOTTOM-STYLE: none } FIELDSET OL LI SPAN.nonHelp { FONT-SIZE: 95%; COLOR: #000 } FIELDSET OL LI OL LI SPAN.nonHelp { FONT-SIZE: 95%; COLOR: #000 } FIELDSET OL LI SPAN.fieldHelp { FONT-SIZE: 95% } FIELDSET OL LI SPAN.tagContainer INPUT { FONT-SIZE: 95% } FIELDSET OL LI SPAN.tagContainer A.browse { FONT-SIZE: 95% } FIELDSET OL LI SPAN.tagContainer { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; = PADDING-TOP: 2px } FIELDSET OL LI SPAN.tagContainer SPAN { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; = PADDING-TOP: 2px } FIELDSET OL LI OL LI SPAN.tagContainer { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; = PADDING-TOP: 2px } FIELDSET OL LI OL LI SPAN.tagContainer SPAN { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; = PADDING-TOP: 2px } FIELDSET OL LI SPAN.tagContainer SPAN.hidden { DISPLAY: none } FIELDSET OL LI OL LI SPAN.tagContainer SPAN.hidden { DISPLAY: none } FIELDSET OL LI SPAN.hidden { DISPLAY: none } FIELDSET OL LI OL LI SPAN.hidden { DISPLAY: none } .contentBlock OL LI SPAN.hidden { DISPLAY: none } OL.nestedList LI DIV.imgLabel { WIDTH: auto } OL.nestedList LI DIV.imgLabel SPAN.fileName { PADDING-RIGHT: 6px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = bold; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } OL.nestedList LI DIV.imgLabel SPAN.control { DISPLAY: inline } OL.nestedList LI DIV.imgLabel SPAN A { =09 } #title_color_value { PADDING-TOP: 6px } .largeText DIV.label { FONT-WEIGHT: bold; FONT-SIZE: 130% } .largeText DIV.field { FONT-WEIGHT: bold; FONT-SIZE: 130% } .largeText A.browse { FONT-WEIGHT: normal; FONT-SIZE: 75%! important; MARGIN: 0px 0px 0px 3px } .field A.browse { FONT-SIZE: 95%; MARGIN: 0px 0px 0px 3px } DIV.editBlock { FLOAT: left; MARGIN-RIGHT: 12px } .largeText DIV.field DIV.editBlock LABEL { FONT-WEIGHT: normal; FONT-SIZE: 80% } .largeText DIV.field DIV.exemptdiv LABEL { FONT-SIZE: 120% } .largeText TEXTAREA { FONT-SIZE: 80% } LI.inEditMode { BORDER-RIGHT: #444 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: #444 2px = solid; PADDING-LEFT: 9px; BACKGROUND: #ededed; PADDING-BOTTOM: 3px; = BORDER-LEFT: #444 2px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #444 2px = solid; -moz-border-radius: 6px } FIELDSET.stepcontent OL LI.fieldError { PADDING-RIGHT: 0px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 0px; PADDING-TOP: 2px; BORDER-BOTTOM: #fff 1px solid } LI.fieldError { PADDING-RIGHT: 0px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 0px; PADDING-TOP: 2px; BORDER-BOTTOM: #fff 1px solid } FIELDSET.stepcontent OL LI.fieldError SPAN.fieldErrorText { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: red } SPAN.warningMsg { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: red } SPAN.warningMsg { DISPLAY: inline; MARGIN-LEFT: 0px } .reqfield { FLOAT: left; COLOR: #666 } LI.required DIV.label LABEL IMG { MARGIN: -3px 0px 0px -18px; _margin: 0 } LI.required DIV.label IMG { MARGIN: -3px 0px 0px -18px; _margin: 0 } LI DIV.label IMG.indicator { LEFT: -18px; POSITION: absolute; TOP: 0px } LI.required INPUT { CLEAR: none } FIELDSET.info { BACKGROUND: #f6f6f6; MARGIN: 0px } DIV.info { BACKGROUND: #f6f6f6; MARGIN: 0px } FIELDSET.info DIV.label { COLOR: #666 } DIV.label { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 3px; WIDTH: 20%; COLOR: black; PADDING-TOP: 0px; POSITION: relative; = TOP: 0px } DIV.field { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 3px; OVERFLOW: visible; = WIDTH: 79%; WORD-BREAK: normal; WORD-WRAP: break-word } DIV.noLabelField { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 3px; OVERFLOW: visible; = WIDTH: 79%; WORD-BREAK: normal; WORD-WRAP: break-word } DIV.noLabelField { WIDTH: 100% } DIV.label SPAN.contextMenuContainer { DISPLAY: inline } .vtbeSwitch { POSITION: relative; HEIGHT: 1em } .legacy .vtbeSwitch { HEIGHT: 2.2em } .vtbeSwitch DIV.modeSwitchWrap { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #cccccc 1px solid; PADDING-LEFT: 6px; RIGHT: 0px; PADDING-BOTTOM: 4px; = BORDER-LEFT: #cccccc 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc = 0px solid; BACKGROUND-COLOR: #eeeeee } .vtbeSwitch DIV.modeSwitchWrap A { _width: 4em } .vtbeSwitch DIV.modeSwitchWrap A SPAN#statusText { _width: 2.7em } .vtbeSwitch DIV.modeSwitchWrap A.read-off { BACKGROUND-COLOR: #eee } .vtbeSwitch DIV.modeSwitchWrap A.read-off:hover { BACKGROUND-COLOR: #fff } .vtbeSwitch DIV.modeSwitchWrap A.read-on SPAN#statusText { COLOR: #ffffff } .vtbeSwitch DIV.modeSwitchWrap A.read-off:hover SPAN#statusText { COLOR: #000 } TABLE.vtbeTable-legacy { WIDTH: 30em } .vtbeTable-legacy TEXTAREA { WIDTH: 99% } DIV.quickAddPal FIELDSET.stepcontent { PADDING-RIGHT: 6px; PADDING-LEFT: 9px; PADDING-BOTTOM: 3px; MARGIN: = 0px; PADDING-TOP: 3px } DIV.quickAddPal FIELDSET.stepcontent OL LI { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 1px; PADDING-LEFT: 1px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = MARGIN: 0px 2px; PADDING-TOP: 1px; BORDER-RIGHT-WIDTH: 0px } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.label { PADDING-RIGHT: 2px; OVERFLOW: visible; WIDTH: 30% } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.field { WIDTH: 65% } DIV.quickAddPal FIELDSET.stepcontent OL LI.required DIV.label LABEL IMG = { MARGIN: 2px 3px 0px -12px; _margin: 0 } DIV.quickAddPal FIELDSET.stepcontent OL LI.required DIV.label IMG { MARGIN: 2px 3px 0px -12px; _margin: 0 } DIV.quickAddPal UL LI.fieldError SPAN.fieldErrorText { DISPLAY: block; FONT-WEIGHT: normal; FONT-SIZE: 90%; MARGIN-LEFT: 74px; = COLOR: red } DIV.quickAddPal DIV.field INPUT[type=3Dtext] { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; FONT-SIZE: = 100%; BORDER-LEFT: #666 1px solid; WIDTH: 100%; BORDER-BOTTOM: #666 1px = solid } DIV.quickAddPal DIV.field SELECT { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; FONT-SIZE: = 100%; BORDER-LEFT: #666 1px solid; WIDTH: 100%; BORDER-BOTTOM: #666 1px = solid } DIV.quickAddPal DIV.field TEXTAREA { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; FONT-SIZE: = 100%; BORDER-LEFT: #666 1px solid; WIDTH: 100%; BORDER-BOTTOM: #666 1px = solid } DIV.quickAddPal DIV.field INPUT[type=3Dcheckbox] { _width: auto } DIV.quickAddPal LI.stepHelp { WIDTH: auto } DIV.quickAddPal LI DIV SPAN { WIDTH: auto } DIV.field SPAN.fileName { PADDING-RIGHT: 6px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = bold; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } DIV.field SPAN.control { DISPLAY: inline } DIV.quickAddPal DIV.field INPUT.datePickerInput { WIDTH: 8em } DIV.quickAddPal DIV.field INPUT.timePickerInput { WIDTH: 8em } DIV#texteditor { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FLOAT: left; PADDING-BOTTOM: = 3px; MARGIN: 0px; PADDING-TOP: 3px } DIV#texteditor TEXTAREA { DISPLAY: block; MARGIN-LEFT: 0px; WIDTH: 450px } DIV#texteditor A.textBoxItem { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; PADDING-BOTTOM: = 2px; WIDTH: 80%; PADDING-TOP: 2px; TEXT-ALIGN: right } FIELDSET.stepcontent OL LI INPUT[type=3D'text'] { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666 1px = solid } SELECT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666 1px = solid } TEXTAREA { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666 1px = solid } SELECT.survey_question { MAX-WIDTH: 100% } HTML * SELECT.survey_question { WIDTH: 100% } TEXTAREA { FONT-SIZE: 100% } TEXTAREA { FONT-SIZE: 100% } INPUT:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } TEXTAREA:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } #loginBox INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } #loginBox INPUT[type=3D'password']:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } .portlet #loginBoxFull LI INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } .portlet #loginBoxFull LI INPUT[type=3D'password']:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } FIELDSET.stepcontent OL LI INPUT.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 9px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 0px; OVERFLOW: visible; BORDER-LEFT: = #ccc 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; = FONT-FAMILY: "Lucida Grande",Arial, Verdana, sans-serif } INPUT.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 9px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 0px; OVERFLOW: visible; BORDER-LEFT: = #ccc 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; = FONT-FAMILY: "Lucida Grande",Arial, Verdana, sans-serif } A.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 6px; FONT-SIZE: 95%; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x right bottom; = PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #aaa 1px solid; FONT-FAMILY: "Lucida Grande", Arial, = Verdana, sans-serif; TEXT-DECORATION: none } FIELDSET.stepcontent OL LI A.browseIcon { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 1px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } .stepcontent A.browseIcon { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 1px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } DIV.portlet DIV.portletBlock A.browseIcon { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 1px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } A.browseIcon { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 1px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } A.browse:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.browseIcon:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.browse:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.browseIcon:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } DIV.details A.browse { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 1px; MARGIN: 0px = auto; PADDING-TOP: 0px } DIV.details A.browse:hover { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 1px; MARGIN: 0px = auto; PADDING-TOP: 0px } P.taskbuttondiv { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 16px; = PADDING-BOTTOM: 6px; MARGIN: 9px 0px 0px; PADDING-TOP: 6px; TEXT-ALIGN: = right } P.taskButtonsContent { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 16px; = PADDING-BOTTOM: 6px; MARGIN: 9px 0px 0px; PADDING-TOP: 6px; TEXT-ALIGN: = right } P.okbutton { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 16px; = PADDING-BOTTOM: 6px; MARGIN: 9px 0px 0px; PADDING-TOP: 6px; TEXT-ALIGN: = right } DIV.container P.taskbuttondiv:first-child { MARGIN-TOP: 0px } DIV#dataCollectionContainer P.taskbuttondiv:first-child { MARGIN-TOP: 12px } DIV#dataCollectionContainer SPAN.reqfield + P.taskbuttondiv { MARGIN-TOP: 12px } DIV#containerdiv FORM.mapCanvasForm P.taskbuttondiv:first-child { MARGIN-TOP: 12px } DIV#dataCollectionContainer P.taskbuttonhelp + P.taskbuttondiv { MARGIN-TOP: 0px; PADDING-TOP: 0px } SPAN.stepTitleRight P.taskbuttondiv { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; FONT-SIZE: = 80%! important; PADDING-BOTTOM: 0px! important; MARGIN: -2pt 0px; = PADDING-TOP: 0px! important } SPAN.contentListRight P.taskbuttondiv { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; FONT-SIZE: = 80%! important; PADDING-BOTTOM: 0px! important; MARGIN: -2pt 0px; = PADDING-TOP: 0px! important } P.backLink { RIGHT: 4px; MARGIN: 0px; BOTTOM: 6px; POSITION: absolute } P.backLink A { PADDING-RIGHT: 8px; DISPLAY: inline-block; PADDING-LEFT: 8px; = FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: #bbb; PADDING-BOTTOM: = 2px; COLOR: #fff; PADDING-TOP: 2px; TEXT-DECORATION: none; = -moz-border-radius: 3px; -webkit-border-radius: 3px } .taskButtonsContent { PADDING-RIGHT: 12px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 12px; = PADDING-BOTTOM: 0px; MARGIN: 24px -12px 0px; PADDING-TOP: 9px } .taskbuttondiv BUTTON { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: url(images/gradient_black_short_bt.png) #fff1c5 = repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: 0px 2px; VERTICAL-ALIGN: = middle; OVERFLOW: visible; BORDER-LEFT: #edd999 1px solid; COLOR: #444; = PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px solid; BORDER-COLLAPSE: = collapse; TEXT-DECORATION: none; _background-image: none } .taskbuttondiv INPUT { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: url(images/gradient_black_short_bt.png) #fff1c5 = repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: 0px 2px; VERTICAL-ALIGN: = middle; OVERFLOW: visible; BORDER-LEFT: #edd999 1px solid; COLOR: #444; = PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px solid; BORDER-COLLAPSE: = collapse; TEXT-DECORATION: none; _background-image: none } .taskButtonsContent BUTTON { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: url(images/gradient_black_short_bt.png) #fff1c5 = repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: 0px 2px; VERTICAL-ALIGN: = middle; OVERFLOW: visible; BORDER-LEFT: #edd999 1px solid; COLOR: #444; = PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px solid; BORDER-COLLAPSE: = collapse; TEXT-DECORATION: none; _background-image: none } .taskButtonsContent INPUT { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: url(images/gradient_black_short_bt.png) #fff1c5 = repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: 0px 2px; VERTICAL-ALIGN: = middle; OVERFLOW: visible; BORDER-LEFT: #edd999 1px solid; COLOR: #444; = PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px solid; BORDER-COLLAPSE: = collapse; TEXT-DECORATION: none; _background-image: none } DIV.controls BUTTON { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: url(images/gradient_black_short_bt.png) #fff1c5 = repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: 0px 2px; VERTICAL-ALIGN: = middle; OVERFLOW: visible; BORDER-LEFT: #edd999 1px solid; COLOR: #444; = PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px solid; BORDER-COLLAPSE: = collapse; TEXT-DECORATION: none; _background-image: none } DIV.controls INPUT { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: url(images/gradient_black_short_bt.png) #fff1c5 = repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: 0px 2px; VERTICAL-ALIGN: = middle; OVERFLOW: visible; BORDER-LEFT: #edd999 1px solid; COLOR: #444; = PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px solid; BORDER-COLLAPSE: = collapse; TEXT-DECORATION: none; _background-image: none } P.okbutton INPUT { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: url(images/gradient_black_short_bt.png) #fff1c5 = repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: 0px 2px; VERTICAL-ALIGN: = middle; OVERFLOW: visible; BORDER-LEFT: #edd999 1px solid; COLOR: #444; = PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px solid; BORDER-COLLAPSE: = collapse; TEXT-DECORATION: none; _background-image: none } BUTTON.secondary { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: url(images/gradient_black_short_bt.png) #fff1c5 = repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: 0px 2px; VERTICAL-ALIGN: = middle; OVERFLOW: visible; BORDER-LEFT: #edd999 1px solid; COLOR: #444; = PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px solid; BORDER-COLLAPSE: = collapse; TEXT-DECORATION: none; _background-image: none } INPUT.secondary { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: url(images/gradient_black_short_bt.png) #fff1c5 = repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: 0px 2px; VERTICAL-ALIGN: = middle; OVERFLOW: visible; BORDER-LEFT: #edd999 1px solid; COLOR: #444; = PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px solid; BORDER-COLLAPSE: = collapse; TEXT-DECORATION: none; _background-image: none } A.secondary { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: url(images/gradient_black_short_bt.png) #fff1c5 = repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: 0px 2px; VERTICAL-ALIGN: = middle; OVERFLOW: visible; BORDER-LEFT: #edd999 1px solid; COLOR: #444; = PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px solid; BORDER-COLLAPSE: = collapse; TEXT-DECORATION: none; _background-image: none } P.okbutton INPUT { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 100%; PADDING-BOTTOM: = 1px; PADDING-TOP: 1px } .taskbuttondiv BUTTON.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: url(images/gradient_black_short_bt.png) = #819ac0 repeat-x 0px center; BORDER-LEFT: #566e94 1px solid; COLOR: = #fff; BORDER-BOTTOM: #344a6c 2px solid; _background-image: none } .taskbuttondiv INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: url(images/gradient_black_short_bt.png) = #819ac0 repeat-x 0px center; BORDER-LEFT: #566e94 1px solid; COLOR: = #fff; BORDER-BOTTOM: #344a6c 2px solid; _background-image: none } .taskButtonsContent BUTTON.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: url(images/gradient_black_short_bt.png) = #819ac0 repeat-x 0px center; BORDER-LEFT: #566e94 1px solid; COLOR: = #fff; BORDER-BOTTOM: #344a6c 2px solid; _background-image: none } .taskButtonsContent INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: url(images/gradient_black_short_bt.png) = #819ac0 repeat-x 0px center; BORDER-LEFT: #566e94 1px solid; COLOR: = #fff; BORDER-BOTTOM: #344a6c 2px solid; _background-image: none } DIV.controls BUTTON.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: url(images/gradient_black_short_bt.png) = #819ac0 repeat-x 0px center; BORDER-LEFT: #566e94 1px solid; COLOR: = #fff; BORDER-BOTTOM: #344a6c 2px solid; _background-image: none } DIV.controls INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: url(images/gradient_black_short_bt.png) = #819ac0 repeat-x 0px center; BORDER-LEFT: #566e94 1px solid; COLOR: = #fff; BORDER-BOTTOM: #344a6c 2px solid; _background-image: none } .taskbuttondiv BUTTON.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: url(images/gradient_black_short_bt.png) = #819ac0 repeat-x 0px center; BORDER-LEFT: #566e94 1px solid; COLOR: = #fff; BORDER-BOTTOM: #344a6c 2px solid; _background-image: none } .taskbuttondiv INPUT.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: url(images/gradient_black_short_bt.png) = #819ac0 repeat-x 0px center; BORDER-LEFT: #566e94 1px solid; COLOR: = #fff; BORDER-BOTTOM: #344a6c 2px solid; _background-image: none } .taskButtonsContent BUTTON.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: url(images/gradient_black_short_bt.png) = #819ac0 repeat-x 0px center; BORDER-LEFT: #566e94 1px solid; COLOR: = #fff; BORDER-BOTTOM: #344a6c 2px solid; _background-image: none } .taskButtonsContent INPUT.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: url(images/gradient_black_short_bt.png) = #819ac0 repeat-x 0px center; BORDER-LEFT: #566e94 1px solid; COLOR: = #fff; BORDER-BOTTOM: #344a6c 2px solid; _background-image: none } DIV.controls BUTTON.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: url(images/gradient_black_short_bt.png) = #819ac0 repeat-x 0px center; BORDER-LEFT: #566e94 1px solid; COLOR: = #fff; BORDER-BOTTOM: #344a6c 2px solid; _background-image: none } DIV.controls INPUT.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: url(images/gradient_black_short_bt.png) = #819ac0 repeat-x 0px center; BORDER-LEFT: #566e94 1px solid; COLOR: = #fff; BORDER-BOTTOM: #344a6c 2px solid; _background-image: none } #loginBox LI INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: url(images/gradient_black_short_bt.png) = #819ac0 repeat-x 0px center; BORDER-LEFT: #566e94 1px solid; COLOR: = #fff; BORDER-BOTTOM: #344a6c 2px solid; _background-image: none } BUTTON.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: url(images/gradient_black_short_bt.png) = #819ac0 repeat-x 0px center; BORDER-LEFT: #566e94 1px solid; COLOR: = #fff; BORDER-BOTTOM: #344a6c 2px solid; _background-image: none } INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: url(images/gradient_black_short_bt.png) = #819ac0 repeat-x 0px center; BORDER-LEFT: #566e94 1px solid; COLOR: = #fff; BORDER-BOTTOM: #344a6c 2px solid; _background-image: none } A.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: url(images/gradient_black_short_bt.png) = #819ac0 repeat-x 0px center; BORDER-LEFT: #566e94 1px solid; COLOR: = #fff; BORDER-BOTTOM: #344a6c 2px solid; _background-image: none } #loginBox LI INPUT[type=3D'submit'] { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: url(images/gradient_black_short_bt.png) = #819ac0 repeat-x 0px center; BORDER-LEFT: #566e94 1px solid; COLOR: = #fff; BORDER-BOTTOM: #344a6c 2px solid; _background-image: none } #loginBox LI INPUT[type=3D'submit']:hover { BACKGROUND-COLOR: #344a6c } .portlet INPUT.submit:hover { BACKGROUND-COLOR: #344a6c } .taskbuttondiv BUTTON.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .taskbuttondiv INPUT.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .taskButtonsContent BUTTON.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .taskButtonsContent INPUT.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } DIV.controls BUTTON.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } DIV.controls INPUT.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } BUTTON.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } INPUT.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .disabled:hover { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } A.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } A.disabled:hover { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } A.disabled:focus { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .quickAddPal DIV.controls INPUT { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 100%; PADDING-BOTTOM: = 1px; MARGIN: 0px 1px; PADDING-TOP: 1px } .taskbuttonhelp { PADDING-RIGHT: 4px; PADDING-LEFT: 30px; FONT-SIZE: 95%! important; = PADDING-BOTTOM: 0px; MARGIN: 9px 0px 0px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 0px } .container P.taskbuttonhelp { PADDING-LEFT: 33px } #taskbuttondiv P { BORDER-RIGHT: red 1px solid; BORDER-TOP: red 1px solid; DISPLAY: block; = FONT-SIZE: 90%; MARGIN: 6px 0px; BORDER-LEFT: red 1px solid; = BORDER-BOTTOM: red 1px solid; FONT-STYLE: italic; TEXT-ALIGN: left } DIV.lbContainer P.taskButtonsContent { MARGIN: 12px 0px 6px } FIELDSET.stepcontent OL LI A.colorChip { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 2px; = PADDING-BOTTOM: 1px; PADDING-TOP: 1px } A.colorChip { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 2px; = PADDING-BOTTOM: 1px; PADDING-TOP: 1px } FIELDSET.stepcontent OL LI A.colorChip SPAN { DISPLAY: inline-block; PADDING-LEFT: 2px; BACKGROUND: = url(images/cm_arrow.gif) no-repeat 2px 0px; VERTICAL-ALIGN: middle } A.colorChip SPAN { DISPLAY: inline-block; PADDING-LEFT: 2px; BACKGROUND: = url(images/cm_arrow.gif) no-repeat 2px 0px; VERTICAL-ALIGN: middle } A.colorChip IMG.chipSwatch { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #ccc 1px solid; BORDER-LEFT: = #ccc 1px solid; WIDTH: 16px; BORDER-BOTTOM: #aaa 1px solid; HEIGHT: 16px } FIELDSET.stepcontent OL LI A.colorChip SPAN IMG { FILTER: alpha(opacity=3D0); WIDTH: 16px; HEIGHT: 16px; opacity: 0 } A.colorChip SPAN IMG { FILTER: alpha(opacity=3D0); WIDTH: 16px; HEIGHT: 16px; opacity: 0 } SPAN.colorChipName { DISPLAY: inline-block; VERTICAL-ALIGN: middle } .stepTitleRight { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; RIGHT: 6px! important; BACKGROUND: #fae7ae; LEFT: auto! important; = PADDING-BOTTOM: 4px; COLOR: #000; LINE-HEIGHT: 1; PADDING-TOP: 3px; = LETTER-SPACING: 1px; POSITION: absolute; TOP: 0px } .saver { CLEAR: left } .exemptdiv { FONT-SIZE: 60% } TABLE .exemptdiv { CLEAR: left; FONT-SIZE: 100% } .gbtablesimple .exemptdiv { MARGIN-TOP: 5px; PADDING-LEFT: 20px; FONT-SIZE: 90% } DIV .editgrade TABLE.resizeCommentsTable TEXTAREA { FONT-SIZE: 130% } .gc_info UL { TEXT-ALIGN: left! important } .gbtablesimple .exemptdiv INPUT { MARGIN-LEFT: -20px } DIV.field TABLE TBODY TR TD TABLE LABEL { FONT-SIZE: 110% } DIV.field TABLE TBODY TR TD TABLE SELECT { FONT-SIZE: 110% } DIV.selectItems { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: none; PADDING-LEFT: 3px; BACKGROUND: #eee; FLOAT: left; = PADDING-BOTTOM: 9px; MARGIN: 2px 0px 0px 9px; BORDER-LEFT: #ccc 1px = solid; WIDTH: 580px; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid } DIV.selectItems DIV { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FLOAT: left; PADDING-BOTTOM: = 3px; MARGIN: 0px; PADDING-TOP: 3px } DIV.selectItems DIV SELECT { DISPLAY: block; MARGIN: 6px 0px; WIDTH: 265px } DIV.selectItems DIV INPUT[type=3Dbutton] { MARGIN: 6px 0px } DIV.selectItems DIV.selectArrows { MARGIN: 40px 0px } DIV.selectArrows A { DISPLAY: block; MARGIN: 6px 0px } DIV.noLabelField DIV.selectItems { WIDTH: 97% } DIV.noLabelField DIV.selectItems DIV { WIDTH: 46% } DIV.noLabelField DIV.selectItems DIV SELECT { WIDTH: 100% } DIV.noLabelField DIV.selectItems DIV.selectArrows { WIDTH: 5%; TEXT-ALIGN: center } DIV.noLabelField DIV.selectArrows A { MARGIN: 6px auto } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 6px; WIDTH: 288px; PADDING-TOP: 0px; = LIST-STYLE-TYPE: none } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI { BORDER-RIGHT: #333 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #333 1px = solid; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; = OVERFLOW: hidden; BORDER-LEFT: #333 1px solid; WIDTH: 14px; CURSOR: = pointer; PADDING-TOP: 0px; BORDER-BOTTOM: #333 1px solid; = LIST-STYLE-TYPE: none; HEIGHT: 14px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A { DISPLAY: block; OVERFLOW: hidden; WIDTH: 14px; HEIGHT: 14px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A:link { DISPLAY: block; OVERFLOW: hidden; WIDTH: 14px; HEIGHT: 14px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A:hover { BORDER-RIGHT: #333 1px solid; BORDER-TOP: #333 1px solid; BORDER-LEFT: = #333 1px solid; WIDTH: 12px; BORDER-BOTTOM: #333 1px solid; HEIGHT: 12px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A:active { BORDER-RIGHT: #fff 2px solid; BORDER-TOP: #fff 2px solid; BORDER-LEFT: = #fff 2px solid; WIDTH: 10px; BORDER-BOTTOM: #fff 2px solid; HEIGHT: 10px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A:focus { BORDER-RIGHT: #fff 2px solid; BORDER-TOP: #fff 2px solid; BORDER-LEFT: = #fff 2px solid; WIDTH: 10px; BORDER-BOTTOM: #fff 2px solid; HEIGHT: 10px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI = A.whiteSwatch:active { BORDER-RIGHT: #ddd 2px solid; BORDER-TOP: #ddd 2px solid; BORDER-LEFT: = #ddd 2px solid; WIDTH: 10px; BORDER-BOTTOM: #ddd 2px solid; HEIGHT: 10px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI = A.whiteSwatch:focus { BORDER-RIGHT: #ddd 2px solid; BORDER-TOP: #ddd 2px solid; BORDER-LEFT: = #ddd 2px solid; WIDTH: 10px; BORDER-BOTTOM: #ddd 2px solid; HEIGHT: 10px } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.colorPreview { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; BACKGROUND: white; = PADDING-BOTTOM: 3px; PADDING-TOP: 3px } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.colorPreview IMG { BORDER-RIGHT: #444 1px solid; BORDER-TOP: #444 1px solid; DISPLAY: = block; BACKGROUND: black; FLOAT: left; MARGIN: 3px; BORDER-LEFT: #444 = 1px solid; WIDTH: 42px; BORDER-BOTTOM: #444 1px solid; HEIGHT: 42px } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.colorPreview DIV { FLOAT: left; MARGIN-LEFT: 3px; WIDTH: 66% } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.colorPreview SPAN { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 0px; = FONT-SIZE: 100%; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 100%; COLOR: = black; PADDING-TOP: 0px } SPAN.title_color_name { COLOR: #666666 } UL.stepPanels { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 12px; MARGIN: = 0px; BORDER-TOP-STYLE: none; PADDING-TOP: 6px; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; LIST-STYLE-TYPE: none; BORDER-BOTTOM-STYLE: = none } UL.stepPanels LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM-STYLE: none } FIELDSET.stepcontent OL LI UL.stepPanels LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM-STYLE: none } H3.mdHead { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #ddd; = PADDING-BOTTOM: 3px; MARGIN: 4px 0px 0px; CURSOR: pointer; PADDING-TOP: = 3px; ZOOM: 1; POSITION: relative } H4.panelTitle { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #ddd; = PADDING-BOTTOM: 3px; MARGIN: 4px 0px 0px; CURSOR: pointer; PADDING-TOP: = 3px; ZOOM: 1; POSITION: relative } H3.mdHead A { COLOR: #000; TEXT-DECORATION: none } H4.panelTitle A { COLOR: #000; TEXT-DECORATION: none } H4.panelTitle A SPAN.date { FONT-WEIGHT: normal; FONT-SIZE: 95%; RIGHT: 6px; COLOR: #666; POSITION: = absolute; TOP: 2px; TEXT-DECORATION: none } H4.panelTitle SPAN.date { FONT-WEIGHT: normal; FONT-SIZE: 95%; RIGHT: 6px; COLOR: #666; POSITION: = absolute; TOP: 2px; TEXT-DECORATION: none } H4.panelTitle A { DISPLAY: block; WIDTH: 100% } H4.panelTitle A SPAN { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-SIZE: 95%; = PADDING-BOTTOM: 2px; COLOR: black; PADDING-TOP: 2px } H3.mdHead A SPAN.date { FONT-WEIGHT: normal } DIV.mdList { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; BACKGROUND: #f6f6f6; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 9px; PADDING-TOP: 9px } DIV.stepPanel { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; BACKGROUND: #f6f6f6; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 9px; PADDING-TOP: 9px } DIV.stepPanel P SPAN { COLOR: #666 } DIV.mdList H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.stepPanel H5 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.mdList P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 5px 5px 5px 12px; PADDING-TOP: 0px } DIV.stepPanel P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 5px 5px 5px 12px; PADDING-TOP: 0px } DIV.stepPanelControls { FONT-SIZE: 90% } .contentAreaBlock { BORDER-TOP-WIDTH: 0px; BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: = 12px; PADDING-LEFT: 12px; BACKGROUND: url(images/dcp_block_bg.png) = no-repeat right bottom; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 24px; = BORDER-LEFT: #dcdcdc 1px solid; PADDING-TOP: 12px; BORDER-BOTTOM: #aaa = 1px solid; _background-image: none } UL.buttonLibrary { BORDER-RIGHT: #bbb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #bbb 1px = solid; PADDING-LEFT: 6px; BACKGROUND: #f6f6f6; PADDING-BOTTOM: 6px; = MARGIN: 9px 0px; OVERFLOW: auto; BORDER-LEFT: #bbb 1px solid; = MAX-HEIGHT: 300px; PADDING-TOP: 6px; BORDER-BOTTOM: #bbb 1px solid; = LIST-STYLE-TYPE: none } UL.buttonLibrary LI { FLOAT: left; BORDER-TOP-STYLE: none! important; BORDER-RIGHT-STYLE: = none! important; BORDER-LEFT-STYLE: none! important; = BORDER-BOTTOM-STYLE: none! important } UL.buttonLibrary LI A { PADDING-RIGHT: 7px; DISPLAY: block; PADDING-LEFT: 7px; FONT-SIZE: 105%; = PADDING-BOTTOM: 3px; COLOR: #777; PADDING-TOP: 3px; TEXT-ALIGN: center; = TEXT-DECORATION: none } UL.buttonLibrary LI A.selected { FONT-WEIGHT: bold; TEXT-DECORATION: none } UL.buttonLibrary LI A:hover { TEXT-DECORATION: underline } DIV.menuStyleStep { FLOAT: left; MARGIN: 9px 40px 0pt 0pt; WIDTH: 212px } DIV.menuStyleStep DIV.topRound { DISPLAY: none } DIV.menuDefaultStyleStep { MARGIN: 9px auto; WIDTH: 212px } .fileInputWrapper { PADDING-RIGHT: 3px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; OVERFLOW: hidden; MARGIN-RIGHT: 9px; PADDING-TOP: 0px; POSITION: = relative; TOP: -5px } .fileInputWrapper INPUT.hiddenInput { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 210%; Z-INDEX: 2; = RIGHT: 0px; FILTER: alpha(opacity=3D0); PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; POSITION: absolute; TOP: 0px; TEXT-ALIGN: right; = opacity: 0 } .fileInputWrapper INPUT[type=3D'file'] { FILTER: alpha(opacity=3D0)! important } .fileInputWrapper INPUT.visibleInput { Z-INDEX: 1; RIGHT: 0px; POSITION: relative; TOP: 0px } .schemeWrapper { FLOAT: left; MARGIN: 0pt 12px 0pt 0pt } UL.buttonLibrary LI DIV.schemeWrapper { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 0px = solid; PADDING-LEFT: 5px; BACKGROUND: #fff; PADDING-BOTTOM: 5px; MARGIN: = 0px; BORDER-LEFT: #ccc 0px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #ccc = 1px solid } .schemeWrapper SPAN { FONT-SIZE: 95%; TEXT-ALIGN: center } UL.buttonLibrary LI.selected { BACKGROUND: url(images/dcp_block_bg.png) #555555 no-repeat right bottom } UL.buttonLibrary LI.selected A.selected { FONT-WEIGHT: bold; COLOR: #ffffff! important } UL.buttonLibrary LI.selected A.selected SPAN { FONT-WEIGHT: bold; COLOR: #ffffff! important } UL.buttonLibrary LI.selected A { FONT-WEIGHT: bold; COLOR: #ffffff! important } UL.buttonLibrary LI.selected A SPAN { FONT-WEIGHT: bold; COLOR: #ffffff! important } UL.buttonLibrary LI .schemeWrapper { FLOAT: none; MARGIN-RIGHT: 6px } UL.buttonLibrary LI { PADDING-RIGHT: 6px! important; PADDING-LEFT: 6px! important; = PADDING-BOTTOM: 6px! important; MARGIN: 0px 4px 4px 0px; PADDING-TOP: = 6px! important } .schemePreview { BORDER-RIGHT: #ededed 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #ededed 0px solid; PADDING-LEFT: 16px; PADDING-BOTTOM: 0px; BORDER-LEFT: = #ededed 0px solid; WIDTH: 160px; PADDING-TOP: 12px; BORDER-BOTTOM: = #ededed 1px solid } .modulePreview { BORDER-RIGHT: 0px solid; PADDING-RIGHT: 0px; BORDER-TOP: 2px solid; = PADDING-LEFT: 0px; FONT-SIZE: 85%; RIGHT: 0px; LEFT: auto; = PADDING-BOTTOM: 0px; MARGIN: 6px 0px 0px auto; BORDER-LEFT: 2px solid; = WIDTH: 140px; BOTTOM: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px solid; = POSITION: relative } .schemePreviewHead { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; PADDING-BOTTOM: 3px; PADDING-TOP: 3px } .modulePreviewHead { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; BACKGROUND: = url(images/gradient_black_short_bt.png) repeat-x 0pt center; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } .schemePreviewBody { PADDING-RIGHT: 0px; PADDING-LEFT: 9px; PADDING-BOTTOM: 0px; = PADDING-TOP: 3px; POSITION: relative } .modulePreviewBody { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 3px; = PADDING-TOP: 2px } .themeDefault .schemePreview { BACKGROUND: #cdcdcd } .themeDefault .schemePreviewHead { COLOR: #000; BACKGROUND-COLOR: #fff1c5 } .themeDefault .schemePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .themeDefault .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .themeDefault .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .themeDefault .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .opal .schemePreview { BACKGROUND: #e4ecf4 } .opal .schemePreviewHead { COLOR: #e4ecf4; BACKGROUND-COLOR: #891414 } .opal .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .opal .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .opal .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .opal .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .desert .schemePreview { BACKGROUND: #f7f5d2 } .desert .schemePreviewHead { COLOR: #383023; BACKGROUND-COLOR: #c5a97b } .desert .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .desert .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .desert .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .desert .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .plum .schemePreview { BORDER-RIGHT: #666699 2px solid; BORDER-TOP: #666699 2px solid; = BORDER-LEFT: #666699 2px solid; BORDER-BOTTOM: #666699 2px solid } .plum .schemePreviewHead { COLOR: #ffcc00; BACKGROUND-COLOR: #666699 } .plum .schemePreviewBody { BACKGROUND: #f2f0f4; COLOR: #000 } .fall .schemePreview { BACKGROUND: #e8dfa9 } .fall .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #e87b28 } .fall .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .fall .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .fall .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .fall .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .sandstone .schemePreview { BORDER-RIGHT: #336666 2px solid; BORDER-TOP: #336666 2px solid; = BORDER-LEFT: #336666 2px solid; BORDER-BOTTOM: #336666 2px solid } .sandstone .schemePreviewHead { COLOR: #666600; BACKGROUND-COLOR: #cccc99 } .sandstone .schemePreviewBody { BACKGROUND: #e7e7b8; COLOR: #000 } .forest .schemePreview { BORDER-RIGHT: #339933 2px solid; BORDER-TOP: #339933 2px solid; = BORDER-LEFT: #339933 2px solid; BORDER-BOTTOM: #339933 2px solid } .forest .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #339933 } .forest .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .spring .schemePreview { BORDER-RIGHT: #cc99cc 2px solid; BORDER-TOP: #cc99cc 2px solid; = BORDER-LEFT: #cc99cc 2px solid; BORDER-BOTTOM: #cc99cc 2px solid } .spring .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #cc99cc } .spring .schemePreviewBody { BACKGROUND: #fddede; COLOR: #000 } .state .schemePreview { BORDER-RIGHT: #eee 2px solid; BORDER-TOP: #eee 2px solid; BORDER-LEFT: = #eee 2px solid; BORDER-BOTTOM: #eee 2px solid } .state .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #ccc } .state .schemePreviewBody { BACKGROUND: #eee; COLOR: #000 } .mesa .schemePreview { BORDER-RIGHT: #ffffcc 2px solid; BORDER-TOP: #ffffcc 2px solid; = BORDER-LEFT: #ffffcc 2px solid; BORDER-BOTTOM: #ffffcc 2px solid } .mesa .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #993333 } .mesa .schemePreviewBody { BACKGROUND: #ffcccc; COLOR: #000 } .summer .schemePreview { BORDER-RIGHT: #669999 2px solid; BORDER-TOP: #669999 2px solid; = BORDER-LEFT: #669999 2px solid; BORDER-BOTTOM: #669999 2px solid } .summer .schemePreviewHead { COLOR: #ffffcc; BACKGROUND-COLOR: #99cccc } .summer .schemePreviewBody { BACKGROUND: #ffffcc; COLOR: #000 } .ocean .schemePreview { BACKGROUND: #dfdfff } .ocean .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #47478e } .ocean .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .ocean .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .ocean .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .ocean .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .tree .schemePreview { BORDER-RIGHT: #669966 2px solid; BORDER-TOP: #669966 2px solid; = BORDER-LEFT: #669966 2px solid; BORDER-BOTTOM: #669966 2px solid } .tree .schemePreviewHead { COLOR: #225522; BACKGROUND-COLOR: #669966 } .tree .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } DIV.fontPreview { BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #000 1px = solid; DISPLAY: block; PADDING-LEFT: 4px; BACKGROUND: #fff; FLOAT: left; = PADDING-BOTTOM: 4px; MARGIN: 3px 0px; BORDER-LEFT: #000 1px solid; = PADDING-TOP: 4px; BORDER-BOTTOM: #000 1px solid } .textareaDiv { PADDING-BOTTOM: 6px } .textareaDiv TABLE { WIDTH: 98% } .textareaDiv TABLE TABLE { WIDTH: 100% } .textareaDiv TABLE TABLE TABLE { WIDTH: 100% } .textareaDiv TEXTAREA { BORDER-TOP: #666 2px solid; WIDTH: 100% } DIV.textToolbar { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 0px; BACKGROUND: #f6f6f6; PADDING-BOTTOM: 4px; = BORDER-LEFT: #ccc 1px solid; WIDTH: 97.7%; PADDING-TOP: 4px; = BORDER-BOTTOM: #ccc 1px solid } DIV.textToolbar A { FONT-SIZE: 90%; WHITE-SPACE: nowrap } DIV.textToolbar LABEL { PADDING-LEFT: 4px; FONT-SIZE: 90%; VERTICAL-ALIGN: middle } DIV.textToolbar SELECT { FONT-SIZE: 90%; VERTICAL-ALIGN: middle } .previewTextArea { BORDER-RIGHT: #999 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: #999 2px = solid; DISPLAY: none; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 0px; OVERFLOW: auto; BORDER-LEFT: #999 2px solid; WIDTH: = 459px; PADDING-TOP: 0px; BORDER-BOTTOM: #999 2px solid; HEIGHT: 112px } .previewTextArea DIV.previewTitle { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #eee; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 4px; PADDING-TOP: 2px; = BORDER-BOTTOM: #eee 2px solid } .previewTextArea DIV.previewTitle A { FLOAT: right } .previewTextArea DIV.previewTitle H6 { FONT-SIZE: 90%; FLOAT: left; MARGIN: 0px } .previewTextArea DIV.previewContent { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px } FIELDSET.stepcontent OL.hierarchy { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; COLOR: #999; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } FIELDSET.stepcontent OL.hierarchy LI { PADDING-RIGHT: 0px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 9px; = MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: #fff; = BORDER-RIGHT-WIDTH: 0px } OL.hierarchy LI OL LI { PADDING-RIGHT: 0px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 9px; = MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: #fff; = BORDER-RIGHT-WIDTH: 0px } OL.hierarchy LI OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 8px = 0px 0px 30px; COLOR: #999; PADDING-TOP: 0px } OL.hierarchy LI H5 { PADDING-RIGHT: 11em; PADDING-LEFT: 3px; FONT-SIZE: 100%; = PADDING-BOTTOM: 3px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 8px; = POSITION: relative; BACKGROUND-COLOR: #fff } OL.hierarchy LI H5 SPAN { DISPLAY: inline; FONT-SIZE: 100%; COLOR: #888; BORDER-BOTTOM-STYLE: = none } OL.hierarchy LI H5 A { FONT-WEIGHT: normal; FONT-SIZE: 90%; RIGHT: 0px; POSITION: absolute; = TOP: 9px } OL.hierarchy LI DIV { PADDING-RIGHT: 2px; PADDING-LEFT: 12px; FONT-SIZE: 95%; PADDING-BOTTOM: = 2px; VERTICAL-ALIGN: middle; PADDING-TOP: 9px; TEXT-ALIGN: right } OL.hierarchy LI DIV.gbData SPAN { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 9px; FONT-SIZE: = 100%; PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 9px; BORDER-LEFT: #ccc = 1px dotted; COLOR: #000; PADDING-TOP: 2px } OL.hierarchy LI DIV.gbData SPAN:first-child { PADDING-LEFT: 0px; MARGIN-LEFT: 0px; BORDER-LEFT-STYLE: none } OL.hierarchy LI DIV INPUT.points { VERTICAL-ALIGN: middle } OL.hierarchy LI DIV INPUT { VERTICAL-ALIGN: middle } OL.hierarchy LI DIV INPUT.points { WIDTH: 2em } OL.hierarchy LI DIV INPUT.name { WIDTH: 16em } LI.parent { PADDING-BOTTOM: 0px! important } OL.hierarchy LI.parent OL LI H5 { BACKGROUND-IMAGE: none } A.genericButton { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BACKGROUND-POSITION: = center -7px; BORDER-TOP: #ccc 1px solid; DISPLAY: inline-block; = PADDING-LEFT: 6px; FONT-SIZE: 100%; BACKGROUND-IMAGE: = url(images/gradient_black_long_bt.png); PADDING-BOTTOM: 1px; = BORDER-LEFT: #ccc 1px solid; COLOR: #333; PADDING-TOP: 0px; = BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-REPEAT: repeat-x; FONT-FAMILY: = "Lucida Grande", Arial, Verdana, sans-serif; BACKGROUND-COLOR: #ededed; = TEXT-DECORATION: none; _background-image: none } A.genericButtonImg { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BACKGROUND-POSITION: = center -7px; BORDER-TOP: #ccc 1px solid; DISPLAY: inline-block; = PADDING-LEFT: 6px; FONT-SIZE: 100%; BACKGROUND-IMAGE: = url(images/gradient_black_long_bt.png); PADDING-BOTTOM: 1px; = BORDER-LEFT: #ccc 1px solid; COLOR: #333; PADDING-TOP: 0px; = BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-REPEAT: repeat-x; FONT-FAMILY: = "Lucida Grande", Arial, Verdana, sans-serif; BACKGROUND-COLOR: #ededed; = TEXT-DECORATION: none; _background-image: none } INPUT.genericButton { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BACKGROUND-POSITION: = center -7px; BORDER-TOP: #ccc 1px solid; DISPLAY: inline-block; = PADDING-LEFT: 6px; FONT-SIZE: 100%; BACKGROUND-IMAGE: = url(images/gradient_black_long_bt.png); PADDING-BOTTOM: 1px; = BORDER-LEFT: #ccc 1px solid; COLOR: #333; PADDING-TOP: 0px; = BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-REPEAT: repeat-x; FONT-FAMILY: = "Lucida Grande", Arial, Verdana, sans-serif; BACKGROUND-COLOR: #ededed; = TEXT-DECORATION: none; _background-image: none } .searchbar FIELDSET INPUT.genericButton { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BACKGROUND-POSITION: = center -7px; BORDER-TOP: #ccc 1px solid; DISPLAY: inline-block; = PADDING-LEFT: 6px; FONT-SIZE: 100%; BACKGROUND-IMAGE: = url(images/gradient_black_long_bt.png); PADDING-BOTTOM: 1px; = BORDER-LEFT: #ccc 1px solid; COLOR: #333; PADDING-TOP: 0px; = BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-REPEAT: repeat-x; FONT-FAMILY: = "Lucida Grande", Arial, Verdana, sans-serif; BACKGROUND-COLOR: #ededed; = TEXT-DECORATION: none; _background-image: none } A.genericButtonImg { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 2px; = PADDING-TOP: 0px } INPUT.genericButton { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 1px; OVERFLOW: = visible; PADDING-TOP: 1px; _padding: 1px 5px } .searchbar FIELDSET INPUT.genericButton { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 1px; OVERFLOW: = visible; PADDING-TOP: 1px; _padding: 1px 5px } A.genericButton:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.genericButtonImg:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.genericButton:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.genericButtonImg:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } .searchbar FIELDSET INPUT.genericButton:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } .searchbar FIELDSET INPUT.genericButton:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.add { BORDER-LEFT-COLOR: #42af41; BORDER-BOTTOM-COLOR: #42af41; = BORDER-TOP-COLOR: #42af41; BACKGROUND-COLOR: #b3efb3; = BORDER-RIGHT-COLOR: #42af41 } A.add:hover { BORDER-LEFT-COLOR: #42af41; BORDER-BOTTOM-COLOR: #42af41; = BORDER-TOP-COLOR: #42af41; BACKGROUND-COLOR: #e4ffdf; = BORDER-RIGHT-COLOR: #42af41 } A.remove { BORDER-LEFT-COLOR: #ef3b3b; BORDER-BOTTOM-COLOR: #ef3b3b; = BORDER-TOP-COLOR: #ef3b3b; BACKGROUND-COLOR: #ffc4bf; = BORDER-RIGHT-COLOR: #ef3b3b } A.remove:hover { BORDER-LEFT-COLOR: #ef3b3b; BORDER-BOTTOM-COLOR: #ef3b3b; = BORDER-TOP-COLOR: #ef3b3b; BACKGROUND-COLOR: #ffd2cf; = BORDER-RIGHT-COLOR: #ef3b3b } DIV.calendarTitle { MARGIN: 9px 0px 0px; TEXT-ALIGN: center } DIV.announcementTitle { MARGIN: 9px 0px 0px; TEXT-ALIGN: center } DIV.calendarTitle H3 { PADDING-RIGHT: 4px; DISPLAY: inline; PADDING-LEFT: 4px; FONT-SIZE: = 130%; PADDING-BOTTOM: 2px; MARGIN: 0px; VERTICAL-ALIGN: middle; = PADDING-TOP: 2px } DIV.announcementTitle H3 { PADDING-RIGHT: 4px; DISPLAY: inline; PADDING-LEFT: 4px; FONT-SIZE: = 130%; PADDING-BOTTOM: 2px; MARGIN: 0px; VERTICAL-ALIGN: middle; = PADDING-TOP: 2px } DIV.calMonth { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; PADDING-BOTTOM: = 2px; MARGIN: 10px 4px 4px; OVERFLOW: auto; PADDING-TOP: 2px } DIV.calMonth TABLE { BORDER-RIGHT: #a8beda 2px solid; BORDER-TOP: #a8beda 2px solid; MARGIN: = 0px auto; BORDER-LEFT: #a8beda 2px solid; BORDER-BOTTOM: #a8beda 2px = solid; BORDER-COLLAPSE: collapse } DIV.calMonth TABLE THEAD TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #a8beda; = PADDING-BOTTOM: 0px; WIDTH: 1px; PADDING-TOP: 0px } DIV.calMonth TABLE TBODY TH { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #a8beda; = PADDING-BOTTOM: 0px; WIDTH: 1px; PADDING-TOP: 0px } DIV.calMonth TABLE THEAD TD DIV { LEFT: -1000px; POSITION: absolute; TOP: 0px } DIV.calMonth TABLE TBODY TH DIV { LEFT: -1000px; POSITION: absolute; TOP: 0px } DIV.calMonth TABLE THEAD TH { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 2px; PADDING-LEFT: 2px; = FONT-WEIGHT: bold; BACKGROUND: url(images/cal_year_head_bg.gif) #ddd = repeat-x right bottom; PADDING-BOTTOM: 2px; OVERFLOW: hidden; WIDTH: = 8em; COLOR: #333; PADDING-TOP: 2px; BORDER-BOTTOM: #a0a0a0 1px solid; = TEXT-ALIGN: center } DIV.calMonth TABLE TBODY TD { BORDER-RIGHT: #a8beda 1px solid; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BACKGROUND: url(images/cal_month_cell_bg.gif) white repeat-x 50% bottom; = PADDING-BOTTOM: 0px; OVERFLOW: hidden; WIDTH: 8em; PADDING-TOP: 0px; = BORDER-BOTTOM: #a8beda 1px solid; HEIGHT: 8em } DIV.calMonth TABLE TH:hover { BACKGROUND: url(images/cal_year_head_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TH:focus { BACKGROUND: url(images/cal_year_head_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TH:active { BACKGROUND: url(images/cal_year_head_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TD:hover { BACKGROUND: url(images/cal_month_cell_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TD:focus { BACKGROUND: url(images/cal_month_cell_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TD:active { BACKGROUND: url(images/cal_month_cell_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TD A.daylink { BORDER-RIGHT: #a8beda 1px solid; PADDING-RIGHT: 0.2em; DISPLAY: block; = PADDING-LEFT: 0.2em; FONT-WEIGHT: bold; FONT-SIZE: 110%; BACKGROUND: = #e3efff; FLOAT: left; PADDING-BOTTOM: 0.2em; WIDTH: 1.2em; PADDING-TOP: = 0.2em; BORDER-BOTTOM: #a8beda 1px solid; TEXT-ALIGN: center; = TEXT-DECORATION: none } DIV.calMonth TABLE TD A.daylink:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x } DIV.calMonth TABLE TD A.daylink SPAN { LEFT: -1000px; POSITION: absolute; TOP: 0px } DIV.calMonth TABLE TD.today { BACKGROUND: url(images/cal_month_today_bg.gif) #f9e091 no-repeat left = top } DIV.calMonth TABLE TD.today A.daylink { FONT-WEIGHT: bold; BACKGROUND: #f9e091 } DIV.calMonth TABLE TD.today A.daylink:hover { BACKGROUND: url(images/cal_year_today_bg.gif) repeat-x } DIV.calMonth TABLE TD.offday { BACKGROUND: #eeeeee } DIV.calMonth TABLE TD DIV { CLEAR: both; OVERFLOW: hidden; WIDTH: 8em } DIV.calMonth TABLE TD DIV UL { PADDING-RIGHT: 0.4em; PADDING-LEFT: 0.4em; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.calMonth TABLE TD DIV UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 1px; MARGIN: 0px; PADDING-TOP: 1px; WHITE-SPACE: nowrap } TABLE.calYear { BORDER-RIGHT: #a8beda 1px solid; BORDER-TOP: #a8beda 1px solid; = MIN-WIDTH: 200px; FONT-SIZE: 95%; MARGIN: 6px; BORDER-LEFT: #a8beda 1px = solid; BORDER-BOTTOM: #a8beda 1px solid; POSITION: relative; = BORDER-COLLAPSE: collapse } TABLE.calYearFloat { FLOAT: left; MARGIN: 6px 0.66%; WIDTH: 32% } TABLE.calYear THEAD TD { LEFT: -10000px; POSITION: absolute; TOP: 0px } TABLE.calYear TBODY TH { LEFT: -10000px; POSITION: absolute; TOP: 0px } TABLE.calYear CAPTION { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-SIZE: 108%; PADDING-BOTTOM: = 4px; MARGIN: 0px; PADDING-TOP: 2px; TEXT-ALIGN: center } TABLE.calYear CAPTION A { FONT-WEIGHT: bold; TEXT-DECORATION: none } TABLE.calYear CAPTION A:hover { TEXT-DECORATION: underline } TABLE.calYear THEAD TH { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #a8beda = 1px solid; PADDING-LEFT: 2px; FONT-WEIGHT: bold; BACKGROUND: = url(images/cal_year_head_bg.gif) #ddd repeat-x 50% bottom; = PADDING-BOTTOM: 2px; BORDER-LEFT: #aaa 1px solid; WIDTH: 14.3%; COLOR: = #333; PADDING-TOP: 2px; BORDER-BOTTOM: #a0a0a0 1px solid; TEXT-ALIGN: = center } TABLE.calYear TBODY TD { BORDER-RIGHT: #a8beda 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #a8beda 1px solid; PADDING-LEFT: 2px; BACKGROUND: white; PADDING-BOTTOM: = 2px; BORDER-LEFT: #a8beda 1px solid; WIDTH: 14.3%; PADDING-TOP: 2px; = BORDER-BOTTOM: #a8beda 1px solid; WHITE-SPACE: nowrap; TEXT-ALIGN: right } TABLE.calYear TD A { DISPLAY: block; WIDTH: 100%; POSITION: relative; TEXT-DECORATION: none } TABLE.calYear TD A IMG { FLOAT: left } TABLE.calYear TD:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD:focus { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD:active { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD.offday:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD.offday:focus { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD.offday:active { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TH:hover { BACKGROUND-IMAGE: url(images/cal_year_head_hover_bg.gif) } TABLE.calYear TH:focus { BACKGROUND-IMAGE: url(images/cal_year_head_hover_bg.gif) } TABLE.calYear TH:active { BACKGROUND-IMAGE: url(images/cal_year_head_hover_bg.gif) } TABLE.calYear TD.today { BACKGROUND: #f9e091 } TABLE.calYear TD.today:hover { BACKGROUND: url(images/cal_year_today_bg.gif) #f9e091 repeat-x 0px 0px } TABLE.calYear TD.today:focus { BACKGROUND: url(images/cal_year_today_bg.gif) #f9e091 repeat-x 0px 0px } TABLE.calYear TD.today A { FONT-WEIGHT: bold; COLOR: black } TABLE.calYear TD.today A:hover { BACKGROUND-IMAGE: none } TABLE.calYear TD.today A:active { BACKGROUND-IMAGE: none } TABLE.calYear TD.today A:focus { BACKGROUND-IMAGE: none } TABLE.calYear TD.offday { BORDER-RIGHT: #a8beda 1px solid; BORDER-TOP: #a8beda 1px solid; = BACKGROUND: #eee; BORDER-LEFT: #a8beda 1px solid; COLOR: #444444; = BORDER-BOTTOM: #a8beda 1px solid; TEXT-DECORATION: none } TABLE.calYear TD.hasEvent { FONT-WEIGHT: bold; BACKGROUND: url(images/cal_year_cell_bg.gif) = repeat-x right bottom } TABLE.calendarDay { BORDER-RIGHT: #cdcdcd 1px solid; BORDER-TOP: #cdcdcd 1px; MARGIN: 10px = 0px 0px; BORDER-LEFT: #cdcdcd 1px solid; WIDTH: 100%; BORDER-BOTTOM: = #cdcdcd 1px solid; BORDER-COLLAPSE: collapse } TABLE.calendarDay THEAD { LEFT: -1000px; POSITION: absolute; TOP: 0px; HEIGHT: 1px } TABLE.calendarDay THEAD TH { LEFT: -1000px; POSITION: absolute; TOP: 0px; HEIGHT: 1px } UL.calendarWeek LI TABLE.calendarDay { MARGIN: 0px; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } TABLE.calendarDay TBODY TH { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = url(images/cal_day_time_bg.gif) #f3f3f3 repeat-x 50% bottom; = PADDING-BOTTOM: 14px; VERTICAL-ALIGN: top; BORDER-LEFT: #ccc 1px solid; = WIDTH: 6%; COLOR: #555; PADDING-TOP: 1px; BORDER-BOTTOM: #ccc 1px solid; = TEXT-ALIGN: right } TABLE.calendarDay TBODY TH:hover { BACKGROUND: url(images/cal_day_time_hover_bg.gif) #e6e5e5 repeat-x 50% = bottom } TABLE.calendarDay TBODY TH:focus { BACKGROUND: url(images/cal_day_time_hover_bg.gif) #e6e5e5 repeat-x 50% = bottom } TABLE.calendarDay TBODY TH:active { BACKGROUND: url(images/cal_day_time_hover_bg.gif) #e6e5e5 repeat-x 50% = bottom } TABLE.calendarDay TBODY TD { PADDING-RIGHT: 12px; BORDER-TOP: #cdcdcd 1px solid; PADDING-LEFT: 0px; = BACKGROUND: #fff; PADDING-BOTTOM: 3px; VERTICAL-ALIGN: top; PADDING-TOP: = 0px } TABLE.calendarDay TBODY TD.hasEvent { PADDING-LEFT: 6px; BACKGROUND: url(images/cal_day_cell_bg.gif) repeat-y = 0px 0px } TABLE.calendarDay TBODY TD.hasEvent A.jumpToEvent { LEFT: -1000px; POSITION: absolute; TOP: 0px } TABLE.calendarDay TBODY TR.halfHour TH { BORDER-TOP: #ededed 1px solid } TABLE.calendarDay TBODY TR.halfHour TD { BORDER-TOP: #ededed 1px solid } TABLE.calendarDay TBODY TR.midday TH { BORDER-TOP: #cdcdcd 2px solid } TABLE.calendarDay TBODY TR.midday TD { BORDER-TOP: #cdcdcd 2px solid } TABLE.calendarDay TR.notBusinessHours TH { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BACKGROUND: = #f3f3f3; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid } TABLE.calendarDay TR.notBusinessHours TD { BACKGROUND: #fafafa } TABLE.calendarDay TBODY TR.notBusinessHours TD.hasEvent { BACKGROUND: url(images/cal_day_cell_bg2.gif) #fafafa repeat-y 0px 0px } TABLE.calendarDay TR TH SPAN.ampm { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-SIZE: 75%; BACKGROUND: = #bbb; LEFT: -4px; PADDING-BOTTOM: 0px; COLOR: #fff; PADDING-TOP: 0px; = LETTER-SPACING: 0.1em; POSITION: relative; TOP: -1.2em } TABLE.calendarDay TBODY TR:hover TH { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:hover TD { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:focus TH { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:focus TD { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:active TH { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:active TD { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:hover TD.hasEvent { BACKGROUND: url(images/cal_day_hover_bg.gif) #f0f0f0 repeat-y 0px 0px } TABLE.calendarDay TBODY TR:focus TD.hasEvent { BACKGROUND: url(images/cal_day_hover_bg.gif) #f0f0f0 repeat-y 0px 0px } TABLE.calendarDay TBODY TR:active TD.hasEvent { BACKGROUND: url(images/cal_day_hover_bg.gif) #f0f0f0 repeat-y 0px 0px } TABLE.calendarDay TD DIV DIV { PADDING-RIGHT: 3px; DISPLAY: block; PADDING-LEFT: 3px; FONT-WEIGHT: = normal; FONT-SIZE: 85%; BACKGROUND: #b5ccea; FLOAT: left; = PADDING-BOTTOM: 1px; MARGIN: 0px 4px 0px -6px; PADDING-TOP: 1px } TABLE.calendarDay TD DIV DIV.contextMenuContainer { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; BACKGROUND: = none transparent scroll repeat 0% 0%; FLOAT: none; PADDING-BOTTOM: 0px; = MARGIN: 0px 0px 0px -3px; PADDING-TOP: 0px } TABLE.calendarDay TD DIV SPAN { FONT-SIZE: 90%; COLOR: #555 } UL.calendarWeek { BORDER-RIGHT: #cdcdcd 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #cdcdcd 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 10px = 0px 0px; BORDER-LEFT: #cdcdcd 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #cdcdcd 1px solid; LIST-STYLE-TYPE: none; HEIGHT: 1% } UL.calendarWeek LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #cdcdcd 1px solid; = POSITION: relative } UL.calendarWeek LI UL:first-child { BORDER-TOP-STYLE: none } UL.calendarWeek UL LI:first-child { BORDER-TOP-STYLE: none } UL.calendarWeek LI H3.weekDay { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; FONT-WEIGHT: bold; = FONT-SIZE: 110%; BACKGROUND: #e3efff; PADDING-BOTTOM: 0.3em; MARGIN: = 0px; COLOR: #666; PADDING-TOP: 0.3em } UL.calendarWeek LI H3.weekDay:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) #e3efff repeat-x 50% = bottom } UL.calendarWeek LI H3.weekDay:focus { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) #e3efff repeat-x 50% = bottom } UL.calendarWeek LI H3.weekDay:active { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) #e3efff repeat-x 50% = bottom } UL.calendarWeek LI UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 12px 6px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.calendarWeek LI UL LI { PADDING-RIGHT: 0px; BORDER-TOP: #ededed 1px solid; PADDING-LEFT: 0px; = PADDING-BOTTOM: 12px; PADDING-TOP: 6px; BORDER-BOTTOM-STYLE: none } UL.calendarWeek LI UL LI:hover { BACKGROUND: url(images/cal_year_cell_bg.gif) repeat-x right bottom } UL.calendarWeek LI UL LI:focus { BACKGROUND: url(images/cal_year_cell_bg.gif) repeat-x right bottom } UL.calendarWeek LI UL LI:active { BACKGROUND: url(images/cal_year_cell_bg.gif) repeat-x right bottom } UL.calendarWeek LI UL LI H4 { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; FLOAT: left; PADDING-BOTTOM: 1px; MARGIN: 0px 12px 0px 0px; WIDTH: = 10em; COLOR: #555; PADDING-TOP: 1px } UL.calendarWeek LI DIV { MARGIN-LEFT: 11em } UL.calendarWeek LI DIV.contextMenuContainer { MARGIN: 0px 0px 0px -3px } UL.calendarWeek LI UL LI SPAN { FONT-SIZE: 90%; COLOR: #555 } .hidden { DISPLAY: none } UL.announcementList LI H4 { PADDING-RIGHT: 0.3em; PADDING-LEFT: 0px; FONT-WEIGHT: normal; = FONT-SIZE: 95%; LEFT: 0.2em; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: = 5em; COLOR: #555; PADDING-TOP: 0px; POSITION: absolute; TOP: 0.5em; = TEXT-ALIGN: right } UL.announcementList LI H4 { WIDTH: 6.7em; TOP: 0.8em; TEXT-ALIGN: center } UL.announcementList LI H4 SPAN { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 115% } UL.announcementList LI UL { PADDING-RIGHT: 0px; BORDER-TOP: #ededed 1px solid; PADDING-LEFT: 0px; = PADDING-BOTTOM: 6px; MARGIN: 0px 0.6em; PADDING-TOP: 6px; = LIST-STYLE-TYPE: none; POSITION: relative } UL.announcementList LI UL LI { PADDING-RIGHT: 0px; BORDER-TOP: #ededed 1px solid; PADDING-LEFT: 0.7em; = PADDING-BOTTOM: 0.6em; MARGIN: 0px; PADDING-TOP: 0.6em; HEIGHT: 1%; = BORDER-BOTTOM-STYLE: none } UL.announcementList LI UL LI:unknown { PADDING-RIGHT: 0px; PADDING-LEFT: 0.7em; PADDING-BOTTOM: 0.3em; = PADDING-TOP: 0.6em } UL.announcementList LI UL LI:first-child { PADDING-RIGHT: 0px; PADDING-LEFT: 0.7em; PADDING-BOTTOM: 0.6em; = BORDER-TOP-STYLE: none; PADDING-TOP: 0.3em } UL.announcementList LI UL LI H5 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } UL.announcementList LI UL LI H5 { FONT-SIZE: 105% } UL.announcementList LI UL LI P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0.2em } UL.announcementList LI UL LI P SPAN { FONT-WEIGHT: bold } UL.announcementList LI UL LI SPAN.postedBy { FONT-SIZE: 90%; FLOAT: right; COLOR: #777 } UL.calendarDay LI DIV.addEvent { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px; BORDER-RIGHT-WIDTH: 0px; opacity: 0 } UL.calendarWeek LI DIV.addEvent { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px; BORDER-RIGHT-WIDTH: 0px; opacity: 0 } DIV.addEvent A { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; BACKGROUND: #ededed; PADDING-BOTTOM: 1px; MARGIN: 0px 0px 0px = 6.2em; PADDING-TOP: 1px } UL.calendarWeek LI:hover DIV.addEvent { opacity: 1 } UL.calendarDay DIV:hover DIV.addEvent { opacity: 1 } UL.calDay LI A.addEvent { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #cccccc 1px solid; PADDING-LEFT: 6px; FONT-SIZE: 90%; RIGHT: 2px; = BACKGROUND: #e3efff; FILTER: alpha(opacity=3D0); PADDING-BOTTOM: 1px; = MARGIN: 2px 0px 0px 2px; BORDER-LEFT: #cccccc 1px solid; COLOR: #444444; = PADDING-TOP: 1px; BORDER-BOTTOM: #cccccc 1px solid; POSITION: absolute; = TEXT-DECORATION: none; opacity: 0 } UL.calendarWeek LI DIV.addEvent A { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #cccccc 1px solid; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: = 90%; BACKGROUND: #e3efff; FILTER: alpha(opacity=3D0); PADDING-BOTTOM: = 1px; MARGIN: 2px 0px 0px 2px; BORDER-LEFT: #cccccc 1px solid; COLOR: = #444444; PADDING-TOP: 1px; BORDER-BOTTOM: #cccccc 1px solid; = TEXT-DECORATION: none; opacity: 0 } UL.calendarWeek LI DIV.addEvent { MARGIN: 0px 0px 2px 3em } DIV.calMonth TABLE TD A.addEvent:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) 0% 50% } UL.calendarWeek LI DIV.addEvent A:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) 0% 50% } UL.calDay LI A.addEvent:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) 0% 50% } DIV.calMonth TABLE TD:hover A.addEvent { FILTER: alpha(opacity=3D100); opacity: 1 } UL.calendarWeek LI:hover DIV.addEvent A { FILTER: alpha(opacity=3D100); opacity: 1 } UL.calDay LI:hover A.addEvent { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.blogContainer { FLOAT: left; WIDTH: 74%; MARGIN-RIGHT: 1% } DIV.blogContainer H3.blogHead { PADDING-RIGHT: 15px; PADDING-LEFT: 15px; FONT-SIZE: 100%; BACKGROUND: = #aaa; PADDING-BOTTOM: 3px; MARGIN: 0px 0px 12px; COLOR: #fff; = PADDING-TOP: 3px } DIV.blogContainer DIV.blogEntry { BORDER-RIGHT: #ccc 0px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ccc 2px = solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 12px 0px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 0px = solid } DIV.blogContainer DIV.blogEntry H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 18px; FONT-SIZE: 110%; BACKGROUND: = url(images/small_discussions.gif) no-repeat 0px 2px; PADDING-BOTTOM: = 0px; MARGIN: 6px 12px 0px; OVERFLOW: hidden; PADDING-TOP: 3px; = _word-wrap: break-word } DIV.blogContainer DIV.blogEntry DIV.entryText { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: white; OVERFLOW-X: = auto; PADDING-BOTTOM: 18px; MARGIN: 3px 12px 12px; PADDING-TOP: 9px; = _width: 96% } DIV.blogContainer DIV.entryDate { FONT-SIZE: 95%; MARGIN: 3px 0px 6px 12px; COLOR: #444 } DIV.blogContainer DIV.entryDate A { FONT-WEIGHT: bold } DIV.blogContainer DIV.entryFooter { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; BACKGROUND: #f6f6f6; = PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-TOP: 6px } DIV.blogContainer DIV.entryFooter DIV.commentControls { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.blogContainer DIV.entryFooter DIV.commentControls H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; BACKGROUND: = none transparent scroll repeat 0% 0%; FLOAT: left; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 0px } DIV.blogContainer DIV.entryFooter A.browse { DISPLAY: block; FLOAT: right } DIV.blogContainer DIV.entryFooter DIV.addBlogComment TABLE { WIDTH: 98% } DIV.blogContainer DIV.entryFooter DIV.addBlogComment TEXTAREA { WIDTH: 99.35%; _width: 99% } DIV.blogContainer DIV.entryFooter DIV.addBlogComment { DISPLAY: none; FONT-SIZE: 100%; LEFT: 0px! important; MARGIN: 6px; = WIDTH: 98%; POSITION: static! important; TOP: 0px! important } DIV.blogContainer DIV.entryFooter DIV.addBlogComment DIV.controls { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } DIV.blogContainer UL.entryComments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 6px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.blogContainer UL.entryComments LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 6px; MARGIN: = 0px; PADDING-TOP: 6px; LIST-STYLE-TYPE: none } DIV.blogContainer UL.entryComments LI P { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 12px; BACKGROUND: #fff; PADDING-BOTTOM: 12px; = MARGIN: 0px 0px 4px; OVERFLOW: hidden; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 12px; BORDER-BOTTOM: #ccc 1px solid; _height: 1% } DIV.blogContainer UL.entryComments LI P.commentDate { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; Z-INDEX: 10; = BACKGROUND: url(images/bubble_top_thin.gif) no-repeat 15px 100%; = PADDING-BOTTOM: 4px; MARGIN: 2px 0px -1px; COLOR: #444; = BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; POSITION: relative; TEXT-ALIGN: right; = BORDER-BOTTOM-STYLE: none } DIV.blogContainer UL.entryComments LI H5 { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #444; PADDING-TOP: 3px } DIV.blogContainer UL.entryComments LI.newComment H5 { FONT-WEIGHT: bold } DIV.blogContainer DIV.blogInstructions { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #f1f1f1; = PADDING-BOTTOM: 6px; MARGIN: 0px 0px 12px; PADDING-TOP: 3px; POSITION: = relative } DIV.blogContainer DIV.blogInstructions H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 3px 0px; = PADDING-TOP: 0px } DIV.blogNav { FLOAT: right; WIDTH: 25% } DIV.blogNav DIV.portlet { MARGIN: 0px; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } DIV.blogNav DIV.portlet { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.blogNav DIV.portletBlock { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.blogNav UL { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.blogNav UL LI { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.blogNav UL LI { OVERFLOW: hidden; _width: 100% } DIV.blogNav DIV.portlet DIV.portletBlock { BORDER-RIGHT: #a8beda 2px solid; BORDER-TOP: #a8beda 2px solid; MARGIN: = 0px; BORDER-LEFT: #a8beda 2px solid; BORDER-BOTTOM: #a8beda 2px solid } DIV.blogNav DIV.portlet UL.blockGroups LI A.itemHead { BORDER-TOP: #a8beda 1px solid } DIV.blogNav DIV.portlet UL.blockGroups LI:first-child A { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } DIV.blogNav LI.currentBlog { FONT-WEIGHT: bold } DIV.blogNav LI.currentBlog SPAN { FONT-WEIGHT: normal } DIV.blogContainer A.newItem { FONT-WEIGHT: normal } DIV.blogContainer A SPAN.newItem { FONT-WEIGHT: normal } DIV.blogNav A.newItem { FONT-WEIGHT: normal } DIV.blogNav A SPAN.newItem { FONT-WEIGHT: normal } DIV.blogNav DIV.portlet UL.blockGroups DIV.blogAction { FONT-SIZE: 95%; MARGIN: 4px 9px 6px } DIV.blogContainer UL.entryComments LI SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.blogContainer DIV.entryFooter DIV.commentControls SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.blogContainer DIV.blogEntry H4 SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.blogContainer DIV.commentControls SPAN.newItems { DISPLAY: block; FLOAT: left; MARGIN-LEFT: 4px } DIV.blogNav DIV.portletBlock UL.blockGroups LI SPAN.newItems { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN-LEFT: 0px; COLOR: black; PADDING-TOP: 0px } DIV.blogNav UL.iconLegend LI SPAN.newItems { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN-LEFT: 0px; COLOR: black; PADDING-TOP: 0px } DIV.blogNav UL.iconLegend { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 9px = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.blogNav UL.iconLegend LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 0px } DIV.blogNav UL UL { MARGIN-LEFT: 9px } DIV.blogNav UL#blogArchive UL { MARGIN: 0px 9px 9px 18px } DIV.journalContainer { FLOAT: left; WIDTH: 74%; MARGIN-RIGHT: 1% } DIV.journalContainer H3.blogHead { PADDING-RIGHT: 15px; PADDING-LEFT: 15px; FONT-SIZE: 100%; BACKGROUND: = #aaa; PADDING-BOTTOM: 3px; MARGIN: 0px 0px 12px; COLOR: #fff; = PADDING-TOP: 3px; TEXT-ALIGN: center } DIV.journalContainer DIV.blogEntry { BORDER-RIGHT: #eee 3px solid; PADDING-RIGHT: 0px; BORDER-TOP: #eee 3px = solid; PADDING-LEFT: 36px; BACKGROUND: = url(images/blog_notebook_paper.gif) #fff repeat-y 0px 0px; = PADDING-BOTTOM: 0px; MARGIN: 12px 0px; BORDER-LEFT: #eee 3px; = PADDING-TOP: 0px; BORDER-BOTTOM: #eee 3px solid; POSITION: relative } DIV.journalContainer DIV.blogEntry H4 { PADDING-RIGHT: 24px; PADDING-LEFT: 18px; FONT-SIZE: 110%; BACKGROUND: = #fff; PADDING-BOTTOM: 0px; MARGIN: 0px; OVERFLOW: hidden; PADDING-TOP: = 12px; TEXT-ALIGN: center; _word-wrap: break-word } DIV.journalContainer DIV.entryDate { PADDING-RIGHT: 24px; PADDING-LEFT: 18px; FONT-SIZE: 95%; Z-INDEX: 100; = BACKGROUND: #fff; PADDING-BOTTOM: 12px; MARGIN: 0px; COLOR: #444; = PADDING-TOP: 3px; BORDER-BOTTOM: #c0dace 1px solid; TEXT-ALIGN: center } DIV.journalContainer DIV.entryDate A { FONT-WEIGHT: bold } DIV.journalContainer DIV.blogEntry DIV.entryText { PADDING-RIGHT: 12px; PADDING-LEFT: 18px; BACKGROUND: #fff; OVERFLOW-X: = auto; PADDING-BOTTOM: 18px; MARGIN: 0px; PADDING-TOP: 12px; _width: 92% } DIV.journalContainer DIV.entryFooter { PADDING-RIGHT: 0px; PADDING-LEFT: 31px; BACKGROUND: = url(images/blog_notebook_paper_bot.gif) repeat-x center bottom; = PADDING-BOTTOM: 4px; MARGIN: 0px 0px 0px -31px; PADDING-TOP: 0px; ZOOM: = 1 } DIV.journalContainer DIV.entryFooter DIV.commentControls { PADDING-RIGHT: 12px; PADDING-LEFT: 18px; BACKGROUND: #fff; = PADDING-BOTTOM: 12px; COLOR: #444; PADDING-TOP: 6px } DIV.journalContainer DIV.entryFooter DIV.commentControls H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; BACKGROUND: = none transparent scroll repeat 0% 0%; FLOAT: left; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 0px } DIV.journalContainer DIV.entryFooter A.browse { DISPLAY: block; FLOAT: right } DIV.journalContainer DIV.entryFooter DIV.addBlogComment TABLE { WIDTH: 98% } DIV.journalContainer DIV.entryFooter DIV.addBlogComment TEXTAREA { WIDTH: 99.35%; _width: 99% } DIV.journalContainer DIV.entryFooter DIV.addBlogComment { DISPLAY: none; FONT-SIZE: 100%; LEFT: 0px! important; MARGIN: 0px 12px = 18px 18px; WIDTH: auto; POSITION: static! important; TOP: 0px! important } DIV.journalContainer DIV.entryFooter DIV.addBlogComment DIV.controls { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } DIV.journalContainer UL.entryComments { PADDING-RIGHT: 0px; PADDING-LEFT: 18px; BACKGROUND: #fff; = PADDING-BOTTOM: 12px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: = none } DIV.journalContainer UL.entryComments LI { PADDING-RIGHT: 6px; BORDER-TOP: #c0dace 1px solid; PADDING-LEFT: 0px; = PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-TOP: 4px; LIST-STYLE-TYPE: = none } DIV.journalContainer UL.entryComments LI P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 4px = 18px 4px 19px; PADDING-TOP: 0px } DIV.journalContainer UL.entryComments LI P.commentDate { FONT-SIZE: 90%; MARGIN-LEFT: 19px; COLOR: #444 } DIV.journalContainer UL.entryComments LI H5 { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 18px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; BACKGROUND: url(images/small_blog_comment.gif) = no-repeat 0px 3px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #000; = PADDING-TOP: 3px } DIV.journalContainer UL.entryComments LI.newComment H5 { FONT-WEIGHT: bold } DIV.journalContainer DIV.blogInstructions { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #f1f1f1; = PADDING-BOTTOM: 6px; MARGIN: 0px 0px 12px; PADDING-TOP: 3px; POSITION: = relative } DIV.journalContainer DIV.blogInstructions H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; BACKGROUND: = none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 3px = 0px; PADDING-TOP: 0px; TEXT-ALIGN: left } DIV.journalContainer DIV.blogInstructions P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.journalNav { FLOAT: right; WIDTH: 25% } DIV.journalNav DIV.portlet { MARGIN: 0px; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } DIV.journalNav DIV.portlet { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.journalNav DIV.portletBlock { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.journalNav UL { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.journalNav UL LI { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.journalNav UL LI { OVERFLOW: hidden; _width: 100% } DIV.journalNav DIV.portlet DIV.portletBlock { BORDER-RIGHT: #a8beda 2px solid; BORDER-TOP: #a8beda 2px solid; MARGIN: = 0px; BORDER-LEFT: #a8beda 2px solid; BORDER-BOTTOM: #a8beda 2px solid } DIV.journalNav DIV.portlet UL.blockGroups LI A.itemHead { BORDER-TOP: #a8beda 1px solid } DIV.journalNav DIV.portlet UL.blockGroups LI:first-child A { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } DIV.journalNav LI.currentBlog { FONT-WEIGHT: bold } DIV.journalNav LI.currentBlog SPAN { FONT-WEIGHT: normal } DIV.journalContainer A.newItem { FONT-WEIGHT: normal } DIV.journalContainer A SPAN.newItem { FONT-WEIGHT: normal } DIV.journalNav A.newItem { FONT-WEIGHT: normal } DIV.journalNav A SPAN.newItem { FONT-WEIGHT: normal } DIV.journalNav DIV.portlet UL.blockGroups DIV.blogAction { FONT-SIZE: 95%; MARGIN: 4px 9px 6px } DIV.journalContainer UL.entryComments LI SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.journalContainer DIV.entryFooter DIV.commentControls SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.journalContainer DIV.blogEntry H4 SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.journalContainer DIV.commentControls SPAN.newItems { DISPLAY: block; FLOAT: left; MARGIN-LEFT: 4px } DIV.journalNav DIV.portletBlock UL.blockGroups LI SPAN.newItems { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN-LEFT: 0px; COLOR: black; PADDING-TOP: 0px } DIV.journalNav UL.iconLegend LI SPAN.newItems { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN-LEFT: 0px; COLOR: black; PADDING-TOP: 0px } DIV.journalNav UL.iconLegend { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 9px = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.journalNav UL.iconLegend LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 0px } DIV.journalNav UL UL { MARGIN-LEFT: 9px } DIV.journalNav UL#blogArchive UL { MARGIN: 0px 9px 9px 18px } .subActionBar { BORDER-RIGHT: #d7bb66 1px; PADDING-RIGHT: 12px; BORDER-TOP: #d7bb66 1px = solid; PADDING-LEFT: 12px; FONT-SIZE: 95%; BACKGROUND: = url(images/gradient_black_short_tb.png) #eddca5 repeat-x 0px -18px; = PADDING-BOTTOM: 6px; MARGIN: -1px 0px 0px; BORDER-LEFT: #d7bb66 1px; = PADDING-TOP: 0px; BORDER-BOTTOM: #d7bb66 1px solid; _background-image: = none } .subActionBar FIELDSET { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } .subActionBar FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .subActionBar DIV.block { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FLOAT: left; PADDING-BOTTOM: = 4px; MARGIN: 3px 0px; BORDER-LEFT: #d7bb66 1px dotted; PADDING-TOP: 4px; = _padding: 0px 9px; _border-left: none } .subActionBar DIV.button { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FLOAT: left; PADDING-BOTTOM: = 4px; MARGIN: 3px 0px; BORDER-LEFT: #d7bb66 1px dotted; PADDING-TOP: 4px; = _padding: 0px 9px; _border-left: none } .subActionBar SPAN.block { FLOAT: none } .subActionBar SPAN.button { FLOAT: none } .subActionBar LI.sub { POSITION: relative } .subActionBar FIELDSET LEGEND + DIV.block { BORDER-LEFT-WIDTH: 0px! important } .subActionBar SELECT { MAX-WIDTH: 180px; VERTICAL-ALIGN: middle } .subActionBar SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 9px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .subActionBar DIV.button { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } .subActionBar DIV.last { BORDER-RIGHT-STYLE: none } .subActionBar FIELDSET { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .subActionBar OPTGROUP { BORDER-TOP: #ddd 1px solid; MARGIN-TOP: 6px; FONT-WEIGHT: normal; = COLOR: #777; FONT-STYLE: normal } .subActionBar OPTGROUP OPTION { COLOR: #000 } .subActionBar UL LI.sortableSelector A { PADDING-LEFT: 18px } .navPageHeader { MARGIN: 1em 0px; TEXT-ALIGN: center } .navPageHeader H3 { DISPLAY: inline; MARGIN-LEFT: 12px } .navPageHeader SPAN { FONT-WEIGHT: normal; MARGIN: 0px 6px 0px 0px; COLOR: #888 } FIELDSET.secondaryActions { FLOAT: right } DIV.secondaryBlock { FLOAT: right } .cellStatus { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN-TOP: = 4px; FONT-SIZE: 90%; BACKGROUND: #efefef; BORDER-LEFT: #ddd 1px solid; = BORDER-BOTTOM: #ddd 1px solid; WHITE-SPACE: nowrap } .cellStatus DIV { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 8px; DISPLAY: inline; = PADDING-LEFT: 8px; PADDING-BOTTOM: 2px; PADDING-TOP: 2px; WHITE-SPACE: = nowrap } .statusTitle { =09 } .cellStatus DIV.iconlegend { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; FLOAT: right; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; MARGIN-RIGHT: 3px; PADDING-TOP: 0px; = BORDER-RIGHT-WIDTH: 0px } .sortImage { LEFT: 6px; POSITION: absolute; TOP: 9px } .bubble { PADDING-RIGHT: 0pt; DISPLAY: none; PADDING-LEFT: 0pt; Z-INDEX: 1000; = PADDING-BOTTOM: 0pt; WIDTH: 190px; PADDING-TOP: 0pt; POSITION: absolute } .bubble UL { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 6px; Z-INDEX: 1000; PADDING-BOTTOM: = 6px; MARGIN: 0px; OVERFLOW: hidden; BORDER-LEFT: #acc2df 1px solid; = PADDING-TOP: 6px; BORDER-BOTTOM: #5577bb 1px solid; LIST-STYLE-TYPE: = none; BACKGROUND-COLOR: #e2eefe } .bubble UL LI { CLEAR: left; PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; FONT-WEIGHT: bold; = FONT-SIZE: 90%; FLOAT: left; PADDING-BOTTOM: 0pt; MARGIN: 0pt 0pt 4px; = WIDTH: 174px; COLOR: #666666; PADDING-TOP: 0pt } .bubble UL LI SPAN { DISPLAY: block; FONT-WEIGHT: normal; FLOAT: left; WIDTH: 80px; COLOR: = #666666; MARGIN-RIGHT: 3px } .bubble UL LI SPAN.icon { FLOAT: left; WIDTH: 20px } .bubble UL LI SPAN.label { FONT-WEIGHT: normal; FONT-SIZE: 100%; WIDTH: 147px } .bubbleStem { WIDTH: 190px; POSITION: relative; HEIGHT: 14px } .bottom .bubbleStem { BOTTOM: 4px } .top .bubbleStem { TOP: -2px } .left .bubbleStem { PADDING-LEFT: 24px } .right .bubbleStem { RIGHT: 24px; TEXT-ALIGN: right } UL.selectList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px 6px 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.selectList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 99; FLOAT: left; = PADDING-BOTTOM: 4px; MARGIN: 0px 3px 0px 0px; PADDING-TOP: 2px } UL.selectList LI.sub { PADDING-TOP: 0px } UL.selectList LI.sub A { PADDING-RIGHT: 3px; DISPLAY: block; PADDING-LEFT: 9px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px; TEXT-DECORATION: none } UL.selectList LI.sub:hover UL { LEFT: 0px; TOP: 20px! important } UL.selectList LI.sub UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; POSITION: static! important } UL.selectList LI.sub UL LI H4 { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 3px; FONT-WEIGHT: = bold; FONT-SIZE: 90%; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #888; = PADDING-TOP: 6px; BORDER-BOTTOM: #ccc 1px solid } UL.selectList LI.sub UL LI H4 { WIDTH: 152px } UL.selectList LI.sub UL LI A { PADDING-RIGHT: 3px; PADDING-LEFT: 14px; BACKGROUND-IMAGE: none! = important; PADDING-BOTTOM: 2px; WIDTH: 128px! important; = BORDER-TOP-STYLE: none! important; PADDING-TOP: 2px; BORDER-RIGHT-STYLE: = none! important; BORDER-LEFT-STYLE: none! important; = BORDER-BOTTOM-STYLE: none! important } UL.selectList LI.sub UL LI A:hover { PADDING-RIGHT: 3px; PADDING-LEFT: 14px; BACKGROUND-IMAGE: none! = important; PADDING-BOTTOM: 2px; WIDTH: 128px! important; = BORDER-TOP-STYLE: none! important; PADDING-TOP: 2px; BORDER-RIGHT-STYLE: = none! important; BORDER-LEFT-STYLE: none! important; = BORDER-BOTTOM-STYLE: none! important } UL.selectList LI.sub UL LI A:hover { BACKGROUND-COLOR: #ffffff } UL.selectList LI.sub A SPAN IMG { WIDTH: 12px; HEIGHT: 12px; opacity: 0 } UL.selectList LI.sub A SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/expand.gif) no-repeat center center; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } UL.selectList LI.sub A SPAN#currentView { BACKGROUND-IMAGE: none } UL.selectList LI.sub A SPAN#currentSortBy { BACKGROUND-IMAGE: none } UL.selectList LI.sub A SPAN#currentColSortDir { BACKGROUND-IMAGE: none } UL.selectList LI.sub UL LI.current A { BACKGROUND: url(images/current.gif) #c7d9f3 no-repeat 1px 4px } UL.selectList LI.sub UL LI.current A:hover { BACKGROUND: url(images/current.gif) #c7d9f3 no-repeat 1px 4px } DIV.gradeDetails { PADDING-RIGHT: 0px; PADDING-LEFT: 12px; FONT-SIZE: 90%; PADDING-BOTTOM: = 0px; PADDING-TOP: 6px } DIV.gradeDetails DIV.label { WIDTH: 15% } SPAN.unstyled { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; COLOR: #000000; PADDING-TOP: 0px } @media Print =20 { DIV.hideOnPrint { DISPLAY: none } } BODY.reports { BACKGROUND: #f0f0f0 } BODY.reports UL { PADDING-RIGHT: 24px; PADDING-LEFT: 24px; PADDING-BOTTOM: 24px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } BODY.reports UL LI { CLEAR: both; PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: = 6px; PADDING-TOP: 0px } BODY.reports UL LI DIV.label { COLOR: #777 } BODY.reports UL LI:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } DIV.toc_div OL LI UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } BODY.reports H1 { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; FONT-SIZE: 160%; BACKGROUND: = url(images/gradient_black_short_bt.png) #555 repeat-x right bottom; = PADDING-BOTTOM: 9px; MARGIN: 0px; COLOR: #fff; PADDING-TOP: 9px; = _background-image: none } BODY.reports H2 { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 150%; PADDING-BOTTOM: = 3px; MARGIN: 6px 18px 6px 14px; COLOR: #000; PADDING-TOP: 3px } BODY.reports DIV.toc_div H2 { BACKGROUND: none transparent scroll repeat 0% 0% } BODY.reports H3 { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 140%; PADDING-BOTTOM: = 3px; MARGIN: 6px 18px 6px 30px; PADDING-TOP: 3px } BODY.reports H3 A { COLOR: #7d899e; TEXT-DECORATION: none } BODY.reports H3 A IMG { VERTICAL-ALIGN: middle; MARGIN-RIGHT: 6px } BODY.reports H4 { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 115%; BACKGROUND: = #bbb; PADDING-BOTTOM: 3px; MARGIN: 0px 10px; COLOR: #fff; PADDING-TOP: = 3px; HEIGHT: 1% } BODY.reports UL LI H5 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; PADDING-BOTTOM: = 6px; MARGIN: 12px -12px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px = solid } BODY.reports TABLE.attachments { MARGIN: 0px; WIDTH: auto } BODY.reports TABLE.wide { MARGIN: 0px; WIDTH: 100% } DIV.toc_div { CLEAR: both; BORDER-RIGHT: #ccc 2px solid; PADDING-RIGHT: 0px; = BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 8px; PADDING-BOTTOM: 4px; = MARGIN: 6px 18px 18px; BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #ccc 2px solid } DIV.toc_div H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.toc_div H2 A { FONT-SIZE: 85%; TEXT-DECORATION: none } DIV.toc_div H2 A IMG { MARGIN-RIGHT: 6px } DIV.toc_div A.toggle { PADDING-RIGHT: 10px; MARGIN-TOP: 2px; PADDING-LEFT: 10px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; BACKGROUND: #f6f6f6; FLOAT: right; = PADDING-BOTTOM: 7px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 6px; = BORDER-BOTTOM: #ccc 1px solid; POSITION: relative; TOP: -4px; = TEXT-DECORATION: none; _top: -2px } DIV.toc_div A.toggle:hover { BACKGROUND: #fff } DIV.backtotop { FLOAT: right } DIV.dateofreport { FLOAT: right } DIV.dateofreport { MARGIN: 6px 18px 12px 0px } BODY.reports DIV.block { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BACKGROUND: = #fff; MARGIN: 0px 36px 24px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: = #ccc 1px solid } DIV.backtotop { FLOAT: right; MARGIN-BOTTOM: -40px; MARGIN-RIGHT: -1px; POSITION: = relative } DIV.backtotop A { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: #ccc = 1px; DISPLAY: block; PADDING-LEFT: 8px; FONT-SIZE: 95%; BACKGROUND: = #f6f6f6; PADDING-BOTTOM: 3px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: = 3px; BORDER-BOTTOM: #ccc 1px solid; TEXT-DECORATION: none } DIV.backtotop A:hover { BACKGROUND: #fff } DIV.backtotop A IMG { MARGIN-RIGHT: 5px } A.cmimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 12px; BACKGROUND: = url(images/cm_arrow.gif) #f9f9f9 no-repeat -1px -1px; FILTER: = alpha(opacity=3D80); PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 3px; = PADDING-TOP: 0px; ZOOM: 1; opacity: 0.8 } A.cmimg:hover { FILTER: alpha(opacity=3D100); opacity: 1 } A.cmimg:focus { FILTER: alpha(opacity=3D100); opacity: 1 } A.cmimg IMG { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FILTER: alpha(opacity=3D0); = PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 16px; PADDING-TOP: 0px; HEIGHT: = 14px; opacity: 0 } DIV.navPalette UL.courseMenu A.cmimg { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 0px; RIGHT: = 4px; BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; = FILTER: alpha(opacity=3D70); PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 0px; ZOOM: 1; POSITION: absolute; TOP: 5px; opacity: 0.7; = _right: 0px } .portlet A.cmimg { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 0px; RIGHT: = 4px; BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; = FILTER: alpha(opacity=3D70); PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 0px; ZOOM: 1; POSITION: absolute; TOP: 5px; opacity: 0.7; = _right: 0px } DIV.navPalette UL.courseMenu A.cmimg:hover { BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D100); ZOOM: 1; opacity: 1 } .portlet A.cmimg:hover { BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D100); ZOOM: 1; opacity: 1 } DIV.navPalette UL.courseMenu A.cmimg:focus { BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D100); ZOOM: 1; opacity: 1 } .portlet A.cmimg:focus { BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D100); ZOOM: 1; opacity: 1 } DIV.navPalette UL.courseMenu LI.subhead A.cmimg { TOP: 9px } .portlet A.cmimg { RIGHT: 0px; POSITION: relative; TOP: 2px } DIV.navPalette UL.courseMenu A.cmimg IMG { FILTER: alpha(opacity=3D0); WIDTH: 13px; HEIGHT: 13px; opacity: 0 } .portlet A.cmimg IMG { FILTER: alpha(opacity=3D0); WIDTH: 13px; HEIGHT: 13px; opacity: 0 } SPAN.reorder IMG { FILTER: alpha(opacity=3D0); opacity: 0 } H3 SPAN.reorder IMG { MARGIN: 6px 3px } .cmdiv { DISPLAY: none; Z-INDEX: 200; ZOOM: 1; POSITION: absolute } .menumini { DISPLAY: none; Z-INDEX: 200; ZOOM: 1; POSITION: absolute } DIV.quickAddPal { DISPLAY: none; Z-INDEX: 200; ZOOM: 1; POSITION: absolute } DIV.keyboardAccess { DISPLAY: none; Z-INDEX: 200; ZOOM: 1; POSITION: absolute } UL.nav LI.sub UL { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #5577bb = 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; BACKGROUND-COLOR: #e2eefe; = _width: 138px } .cmdiv UL { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #5577bb = 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; BACKGROUND-COLOR: #e2eefe; = _width: 138px } .menumini UL { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #5577bb = 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; BACKGROUND-COLOR: #e2eefe; = _width: 138px } DIV.quickAddPal { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #5577bb = 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; BACKGROUND-COLOR: #e2eefe; = _width: 138px } DIV.keyboardAccess { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #5577bb = 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; BACKGROUND-COLOR: #e2eefe; = _width: 138px } .quickAddPal { FONT-SIZE: 85%; WIDTH: 19em } .quickAddColor { WIDTH: 311px } .quickAddColor A.genericButton { FLOAT: left; MARGIN: 2px 0px } .modalOverlay { DISPLAY: none; Z-INDEX: 90; RIGHT: 0px; FILTER: alpha(opacity=3D1); = LEFT: 0px; WIDTH: 100%; BOTTOM: 0px; POSITION: fixed; TOP: 0px; HEIGHT: = 100%; BACKGROUND-COLOR: #000; opacity: .01; _position: absolute } UL.nav LI.sub { POSITION: static } UL.nav LI.sub:hover { POSITION: relative } UL.nav LI.sub UL { Z-INDEX: 1000; POSITION: absolute; TOP: -10000px } UL.nav LI.sub:hover { Z-INDEX: 1010! important } UL.nav LI.sub:hover UL { Z-INDEX: 1010! important } .cmdiv { Z-INDEX: 1150! important; BORDER-BOTTOM: #5577bb 1px solid } .cmdiv UL { BORDER-TOP: #acc2df 1px solid; BORDER-BOTTOM-WIDTH: 0px; WIDTH: 180px } .menumini UL { WIDTH: 120px } .cmdiv UL:first-child { BORDER-TOP-STYLE: none } .menumini UL:first-child { BORDER-TOP-STYLE: none } UL.nav LI.sub UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; ZOOM: 1 } UL.nav LI.sub UL LI A { PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; DISPLAY: block; = PADDING-LEFT: 20px; FONT-WEIGHT: normal; BORDER-LEFT-WIDTH: 0px; = BACKGROUND: url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; = OVERFLOW-X: hidden; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 3px; = MARGIN: 0px; WIDTH: 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: = 3px; ZOOM: 1; BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: none; WORD-WRAP: = break-word } UL.nav LI.sub UL LI A:hover { PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; DISPLAY: block; = PADDING-LEFT: 20px; FONT-WEIGHT: normal; BORDER-LEFT-WIDTH: 0px; = BACKGROUND: url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; = OVERFLOW-X: hidden; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 3px; = MARGIN: 0px; WIDTH: 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: = 3px; ZOOM: 1; BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: none; WORD-WRAP: = break-word } .cmdiv A { PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; DISPLAY: block; = PADDING-LEFT: 20px; FONT-WEIGHT: normal; BORDER-LEFT-WIDTH: 0px; = BACKGROUND: url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; = OVERFLOW-X: hidden; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 3px; = MARGIN: 0px; WIDTH: 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: = 3px; ZOOM: 1; BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: none; WORD-WRAP: = break-word } .menumini A { PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; DISPLAY: block; = PADDING-LEFT: 20px; FONT-WEIGHT: normal; BORDER-LEFT-WIDTH: 0px; = BACKGROUND: url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; = OVERFLOW-X: hidden; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 3px; = MARGIN: 0px; WIDTH: 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: = 3px; ZOOM: 1; BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: none; WORD-WRAP: = break-word } UL.nav LI.sub UL LI A:focus { PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; DISPLAY: block; = PADDING-LEFT: 20px; FONT-WEIGHT: normal; BORDER-LEFT-WIDTH: 0px; = BACKGROUND: url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; = OVERFLOW-X: hidden; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 3px; = MARGIN: 0px; WIDTH: 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: = 3px; ZOOM: 1; BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: none; WORD-WRAP: = break-word } .cmdiv A { FONT-SIZE: 95%; WIDTH: auto; BORDER-TOP-STYLE: none; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: = none } .menumini A { PADDING-RIGHT: 10px; PADDING-LEFT: 16px; FONT-SIZE: 85%; = PADDING-BOTTOM: 2px; WIDTH: auto; BORDER-TOP-STYLE: none; PADDING-TOP: = 2px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; = BORDER-BOTTOM-STYLE: none } UL.nav LI.sub UL.narrow { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 5000! = important; FLOAT: none; PADDING-BOTTOM: 0px; WIDTH: 130px; PADDING-TOP: = 0px; ZOOM: 1; _height: 1% } UL.nav LI.sub UL.narrow LI { BORDER-TOP-WIDTH: 0px; CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: = 0px; BORDER-LEFT-WIDTH: 0px; FLOAT: none; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; MARGIN: -2px 0px 0px; PADDING-TOP: 0px; ZOOM: 1; = HEIGHT: 1%; BORDER-RIGHT-WIDTH: 0px } UL.nav LI.sub UL.narrow LI A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 6px; DISPLAY: block; = PADDING-LEFT: 6px; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 85%; = BACKGROUND-IMAGE: none; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = MARGIN: 0px; WIDTH: 118px; PADDING-TOP: 0px; ZOOM: 1; TEXT-ALIGN: left; = BORDER-RIGHT-WIDTH: 0px } UL.nav LI.sub UL.narrow LI A:hover { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 6px; DISPLAY: block; = PADDING-LEFT: 6px; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 85%; = BACKGROUND-IMAGE: none; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = MARGIN: 0px; WIDTH: 118px; PADDING-TOP: 0px; ZOOM: 1; TEXT-ALIGN: left; = BORDER-RIGHT-WIDTH: 0px } UL.nav LI.sub UL.narrow LI A:focus { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 6px; DISPLAY: block; = PADDING-LEFT: 6px; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 85%; = BACKGROUND-IMAGE: none; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = MARGIN: 0px; WIDTH: 118px; PADDING-TOP: 0px; ZOOM: 1; TEXT-ALIGN: left; = BORDER-RIGHT-WIDTH: 0px } DIV.topGlobalLinks UL.nav LI.sub { Z-INDEX: 1000! important; ZOOM: 1; HEIGHT: 1% } UL.nav LI.sub UL LI:first-child A { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } DIV.actionBarMicro UL.nav LI.sub UL LI A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 6px! important; DISPLAY: block; = PADDING-LEFT: 14px! important; FONT-WEIGHT: normal; BORDER-LEFT-WIDTH: = 0px; FONT-SIZE: 85%; BACKGROUND: url(images/cm_bullet_single.gif) = #e2eefe no-repeat 5px 3px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: = 2px! important; MARGIN: 0px; WIDTH: 100px; COLOR: #444; PADDING-TOP: = 2px! important; BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: none } DIV.paneTabs UL.nav LI.sub UL LI A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 6px! important; DISPLAY: block; = PADDING-LEFT: 14px! important; FONT-WEIGHT: normal; BORDER-LEFT-WIDTH: = 0px; FONT-SIZE: 85%; BACKGROUND: url(images/cm_bullet_single.gif) = #e2eefe no-repeat 5px 3px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: = 2px! important; MARGIN: 0px; WIDTH: 100px; COLOR: #444; PADDING-TOP: = 2px! important; BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: none } DIV.paneTabs UL.nav LI.sub UL LI A { TEXT-ALIGN: left } UL.nav LI.sub UL LI A:hover { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } .cmdiv A:hover { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } .menumini A:hover { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } UL.nav LI.sub UL LI A:focus { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } .cmdiv A:focus { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } .menumini A:focus { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } DIV.timediv UL LI A:hover { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px } .timediv UL LI A:focus { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px } DIV.timediv UL LI A:focus { COLOR: #444444; BACKGROUND-COLOR: #e2eefe } DIV.timediv UL LI A:hover:focus { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.actionBarMicro UL.nav LI.sub UL LI A:hover { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff no-repeat 5px 3px; = BORDER-BOTTOM-WIDTH: 0px; COLOR: #000; BORDER-RIGHT-WIDTH: 0px } DIV.paneTabs UL.nav LI.sub UL LI A:hover { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff no-repeat 5px 3px; = BORDER-BOTTOM-WIDTH: 0px; COLOR: #000; BORDER-RIGHT-WIDTH: 0px } DIV.actionBarMicro UL.nav LI.sub UL LI A:focus { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff no-repeat 5px 3px; = BORDER-BOTTOM-WIDTH: 0px; COLOR: #000; BORDER-RIGHT-WIDTH: 0px } DIV.paneTabs UL.nav LI.sub UL LI A:focus { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff no-repeat 5px 3px; = BORDER-BOTTOM-WIDTH: 0px; COLOR: #000; BORDER-RIGHT-WIDTH: 0px } UL.nav LI.sub:hover UL { Z-INDEX: 101; LEFT: 0px; TOP: 22px } DIV.actionBarMicro UL.nav LI.sub:hover UL { Z-INDEX: 101; LEFT: 0px; TOP: 22px } DIV.topGlobalLinks UL.nav LI.sub:hover UL { Z-INDEX: 101; LEFT: 0px; TOP: 0px } DIV.topTabs-compact DIV.topGlobalLinks UL.nav LI.sub:hover UL { Z-INDEX: 101; RIGHT: 0px; LEFT: auto; TOP: 0px } DIV.actionBarMicro UL.nav LI.sub:hover UL { TOP: 18px } DIV.rumble_top UL.nav LI.sub:hover UL { TOP: 18px } DIV.rumble UL.nav LI.sub:hover UL { TOP: 18px } .cmdiv LI.contextmenubar_top { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; RIGHT: 0px; = BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; = WIDTH: 182px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: absolute; = TOP: -17px; TEXT-ALIGN: right; BORDER-BOTTOM-STYLE: none } .menumini LI.contextmenubar { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; RIGHT: 0px; = BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; = WIDTH: 182px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: absolute; = TOP: -17px; TEXT-ALIGN: right; BORDER-BOTTOM-STYLE: none } .menumini LI.contextmenubar { WIDTH: 122px; TOP: -17px } .cmdiv LI.contextmenubar_top A { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px } .cmdiv LI.contextmenubar_top A:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px } .cmdiv LI.contextmenubar_top A { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px } .cmdiv LI.contextmenubar_top A:focus { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px } .menumini LI.contextmenubar A { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px } .menumini LI.contextmenubar A:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px } .menumini LI.contextmenubar A { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px } .menumini LI.contextmenubar A:focus { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px } DIV.quickAddPal H3 { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; BACKGROUND: url(images/gradient_black_short_bt.png) #cedff6 = repeat-x 0px 0px; PADDING-BOTTOM: 3px; MARGIN: 0px 0px 4px; PADDING-TOP: = 3px; BORDER-BOTTOM: #b5c9e5 1px solid; _background-image: none } DIV.keyboardAccess H3 { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; BACKGROUND: url(images/gradient_black_short_bt.png) #cedff6 = repeat-x 0px 0px; PADDING-BOTTOM: 3px; MARGIN: 0px 0px 4px; PADDING-TOP: = 3px; BORDER-BOTTOM: #b5c9e5 1px solid; _background-image: none } DIV.quickAddPal DIV.quickAddPalHeader { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; BACKGROUND: url(images/gradient_black_short_bt.png) #cedff6 = repeat-x 0px 0px; PADDING-BOTTOM: 3px; MARGIN: 0px 0px 4px; PADDING-TOP: = 3px; BORDER-BOTTOM: #b5c9e5 1px solid; _background-image: none } DIV.quickAddPal H4 { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 100%; PADDING-BOTTOM: = 3px; MARGIN: 0px 0px 4px; PADDING-TOP: 3px } DIV.keyboardAccess H4 { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 100%; PADDING-BOTTOM: = 3px; MARGIN: 0px 0px 4px; PADDING-TOP: 3px } DIV.quickAddPal DIV.controls { CLEAR: both; PADDING-RIGHT: 3px; BORDER-TOP: #acc2df 1px solid; = PADDING-LEFT: 9px; FONT-SIZE: 95%; PADDING-BOTTOM: 3px; MARGIN: 0px 2px; = PADDING-TOP: 3px; TEXT-ALIGN: right } DIV.keyboardAccess DIV.controls { CLEAR: both; PADDING-RIGHT: 3px; BORDER-TOP: #acc2df 1px solid; = PADDING-LEFT: 9px; FONT-SIZE: 95%; PADDING-BOTTOM: 3px; MARGIN: 0px 2px; = PADDING-TOP: 3px; TEXT-ALIGN: right } .comText DIV.controls { CLEAR: both; PADDING-RIGHT: 3px; BORDER-TOP: #acc2df 1px solid; = PADDING-LEFT: 9px; FONT-SIZE: 95%; PADDING-BOTTOM: 3px; MARGIN: 0px 2px; = PADDING-TOP: 3px; TEXT-ALIGN: right } .comText DIV.controls { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; MARGIN: 3px = 0px 0px; PADDING-TOP: 6px } DIV.keyboardAccess DIV.minicolumn { FLOAT: left } DIV.keyboardAccess DIV.minicolumn { MARGIN: 0px 9px } DIV.keyboardAccess P.paletteHelp { BORDER-RIGHT: #ffcc00 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #ffcc00 1px solid; PADDING-LEFT: 6px; FONT-SIZE: 90%; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 3px; MARGIN: 6px 9px; BORDER-LEFT: #ffcc00 1px = solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ffcc00 1px solid; WHITE-SPACE: = normal } DIV.keyboardAccess P.colspan-1 { WIDTH: 120px } DIV.keyboardAccess P.colspan-2 { WIDTH: 260px } DIV.keyboardAccess P.colspan-3 { WIDTH: 390px } DIV.orderingControls-ns { PADDING-RIGHT: 3px; DISPLAY: block; PADDING-LEFT: 25px; FLOAT: none; = PADDING-BOTTOM: 3px; PADDING-TOP: 9px; TEXT-ALIGN: center } DIV.orderingControls-ew { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; PADDING-TOP: 40px } DIV.orderingControls-ns A { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; DISPLAY: = inline; MARGIN: 0px 2px 0px 0px; BORDER-LEFT: #ccc 1px solid; = BORDER-BOTTOM: #ccc 1px solid } DIV.orderingControls-ew A { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; DISPLAY: = inline; MARGIN: 0px 2px 0px 0px; BORDER-LEFT: #ccc 1px solid; = BORDER-BOTTOM: #ccc 1px solid } DIV.orderingControls-ew A { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; DISPLAY: = block; MARGIN: 0px 0px 2px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: = #ccc 1px solid } DIV.orderingControls-ns A IMG { WIDTH: 16px; HEIGHT: 16px } DIV.orderingControls-ew A IMG { WIDTH: 16px; HEIGHT: 16px } DIV.orderingControls-ns A.up { BACKGROUND: url(images/small_up.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ns A.down { BACKGROUND: url(images/small_down.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ns A.top { BACKGROUND: url(images/small_top.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ns A.bottom { BACKGROUND: url(images/small_bottom.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ew A.first { BACKGROUND: url(images/small_rewind.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ew A.next { BACKGROUND: url(images/small_next.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ew A.previous { BACKGROUND: url(images/small_previous.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ew A.last { BACKGROUND: url(images/small_ffwd.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ns A:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BORDER-LEFT: = #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-COLOR: #fff } DIV.orderingControls-ew A:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BORDER-LEFT: = #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-COLOR: #fff } .receipt { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 6px; MARGIN: 0px = 3px 6px; PADDING-TOP: 6px; POSITION: relative; -moz-border-radius: 6px; = -webkit-border-radius: 6px } .receipt A.close { RIGHT: 5px; FILTER: alpha(opacity=3D70); POSITION: absolute; TOP: 3px; = opacity: 0.7; _right: 20px } .bad { FONT-WEIGHT: bold; BACKGROUND: #fb6767; COLOR: #fff } .good { FONT-WEIGHT: bold; BACKGROUND: #85bd3d; COLOR: #fff } .infoReceipt { FONT-WEIGHT: bold; BACKGROUND: #6495ed; COLOR: #fff } .inlineReceipt { PADDING-RIGHT: 9px; DISPLAY: none; PADDING-LEFT: 9px; PADDING-BOTTOM: = 6px; MARGIN: 0px 3px 6px; PADDING-TOP: 6px; POSITION: absolute; = -moz-border-radius: 6px; -webkit-border-radius: 6px } BODY.cmPopup #navigationPane { MARGIN: 0px; WIDTH: auto; POSITION: relative } .cmWrapper { PADDING-TOP: 12px! important; POSITION: relative } .cmWrapper DIV.navPalette { MARGIN: 0px 14px 12px; POSITION: relative } DIV.tabPreview { BORDER-RIGHT: #cdcdcd 12px solid; BORDER-TOP: #cdcdcd 12px solid; = Z-INDEX: 1; BACKGROUND: #cdcdcd; MARGIN: 0px 6px 6px; BORDER-LEFT: = #cdcdcd 12px solid; WIDTH: auto; BORDER-BOTTOM: #cdcdcd 12px solid; = POSITION: relative } DIV.tabPreview DIV.paneTabs { MARGIN-TOP: 12px } DIV.status { PADDING-RIGHT: 6px; DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 90%; = BACKGROUND: #f9f9f9; PADDING-BOTTOM: 3px; MARGIN: 0px; COLOR: #000; = PADDING-TOP: 1px; TEXT-ALIGN: left } DIV.status A IMG { VERTICAL-ALIGN: middle } DIV.status P { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 2px; FONT-SIZE: 90%; BACKGROUND: #fff; = PADDING-BOTTOM: 0px; MARGIN: 2px auto 4px; BORDER-LEFT: #ccc 1px solid; = COLOR: #444444; LINE-HEIGHT: 10%; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc = 1px solid; HEIGHT: 12px! important; TEXT-ALIGN: left! important } DIV.status P IMG { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; HEIGHT: 8px; BACKGROUND-COLOR: #8dafaf } DIV.stopped P IMG { BACKGROUND: url(images/progress_stopped.gif) #fff } DIV.status A.buttonMicro { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 5px; FONT-SIZE: 90%; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x 0% 50%; PADDING-BOTTOM: = 0px; MARGIN: 1px auto; BORDER-LEFT: #ccc 1px solid; COLOR: #666; = PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px solid; TEXT-DECORATION: none } DIV.status DIV { POSITION: relative; TEXT-ALIGN: center } DIV.status A.buttonMicro:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } .searchbar { BORDER-RIGHT: #d7bb66 1px; PADDING-RIGHT: 2px; BORDER-TOP: #d7bb66 1px = solid; PADDING-LEFT: 2px; BACKGROUND: #eddca5; PADDING-BOTTOM: 2px; = MARGIN: -1px 0px 0px; BORDER-LEFT: #d7bb66 1px; PADDING-TOP: 2px; = BORDER-BOTTOM: #d7bb66 1px solid; POSITION: relative; _height: 1% } .searchbarPicker { BORDER-RIGHT: #d7bb66 1px; PADDING-RIGHT: 2px; BORDER-TOP: #d7bb66 1px = solid; PADDING-LEFT: 2px; BACKGROUND: #eddca5; PADDING-BOTTOM: 2px; = MARGIN: -1px 0px 0px; BORDER-LEFT: #d7bb66 1px; PADDING-TOP: 2px; = BORDER-BOTTOM: #d7bb66 1px solid; POSITION: relative; _height: 1% } .searchbar { FONT-SIZE: 85%; MARGIN: 0px -9px 0px 0px } .searchbarPicker TABLE { FONT-SIZE: 85%; MARGIN: 0px -9px 0px 0px } .searchbar TABLE TD { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } .searchbar TABLE TD TABLE TD { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } .searchbar TABLE FIELDSET { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px; HEIGHT: 1% } .searchbar TABLE DIV { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } .searchbar FORM { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .searchbarPicker { FONT-SIZE: 90%; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } .searchbar:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } .searchbarPicker:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } .searchbar A.close { RIGHT: 6px; POSITION: absolute; TOP: 3px; opacity: 0.8 } .searchbarPicker A.close { RIGHT: 6px; POSITION: absolute; TOP: 3px; opacity: 0.8 } .slideshowControls { FONT-SIZE: 100%; MARGIN: 8px auto 12px; TEXT-ALIGN: center } .searchbar FIELDSET { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 9px; PADDING-LEFT: 9px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 6px; = MARGIN: 0px; PADDING-TOP: 6px; BORDER-RIGHT-WIDTH: 0px } .searchbarPicker FIELDSET { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 9px; PADDING-LEFT: 9px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 6px; = MARGIN: 0px; PADDING-TOP: 6px; BORDER-RIGHT-WIDTH: 0px } .searchbar FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .portlet FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .searchbarPicker FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .searchbar FIELDSET INPUT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px 0px; = VERTICAL-ALIGN: middle; BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #666 1px solid } .searchbar FIELDSET SELECT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px 0px; = VERTICAL-ALIGN: middle; BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #666 1px solid } .searchbarPicker FIELDSET INPUT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px 0px; = VERTICAL-ALIGN: middle; BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #666 1px solid } .searchbarPicker FIELDSET SELECT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px 0px; = VERTICAL-ALIGN: middle; BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #666 1px solid } .searchbar * INPUT[type=3D'radio'] { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } .searchbarPicker * INPUT[type=3D'radio'] { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } .searchbar * INPUT[type=3D'checkbox'] { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } .searchbarPicker * INPUT[type=3D'checkbox'] { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } .searchbar FIELDSET LABEL { FONT-SIZE: 100% } .portlet FIELDSET LABEL { FONT-SIZE: 100% } .searchbarPicker FIELDSET LABEL { FONT-SIZE: 100% } .searchbar H2 { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; PADDING-BOTTOM: 1px; MARGIN: 0px; PADDING-TOP: 1px } .searchbarPicker H2 { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; PADDING-BOTTOM: 1px; MARGIN: 0px; PADDING-TOP: 1px } .searchbar FIELDSET OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .searchbarPicker FIELDSET OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .searchbar FIELDSET OL LI.groupLabel { PADDING-RIGHT: 3px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; PADDING-TOP: 5px } .searchbarPicker FIELDSET OL LI.groupLabel { PADDING-RIGHT: 3px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; PADDING-TOP: 5px } .searchbar FIELDSET OL LI { FLOAT: left } .searchbarPicker FIELDSET OL LI { FLOAT: left } .searchbar FIELDSET OL LI.options { FLOAT: right } .searchbarPicker FIELDSET OL LI.options { FLOAT: right } .searchbarPicker FIELDSET OL LI SPAN { DISPLAY: inline } .searchbarPicker FIELDSET OL LI OL LI SPAN { DISPLAY: inline } .searchbar SPAN.spacer { MARGIN: 0px 4px } .tabGroupsPreview { FONT-SIZE: 100%; MARGIN: -11px -12px 24px } .previewContent { PADDING-RIGHT: 14px; PADDING-LEFT: 14px; Z-INDEX: 1; BACKGROUND: = url(images/dcp_block_bg.png) #aaa no-repeat right bottom; = PADDING-BOTTOM: 14px; MARGIN: 0px 14px 11px; WIDTH: auto; PADDING-TOP: = 14px; POSITION: relative } .previewContent IFRAME { WIDTH: 100%; HEIGHT: 300px } .previewOverlay { FONT-WEIGHT: bold; FONT-SIZE: 300%; FILTER: alpha(opacity=3D30); = TEXT-TRANSFORM: uppercase; WIDTH: 100%; COLOR: #555; LETTER-SPACING: = 10px; POSITION: absolute; TOP: 130px; TEXT-ALIGN: center } .previewOverlay SPAN { PADDING-RIGHT: 12px; PADDING-LEFT: 24px; FILTER: alpha(opacity=3D30); = PADDING-BOTTOM: 6px; PADDING-TOP: 6px; BACKGROUND-COLOR: white; opacity: = .30 } P.warning { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; FONT-SIZE: 100%; = PADDING-BOTTOM: 12px; MARGIN: 12px 0px 24px; COLOR: #fff; PADDING-TOP: = 9px; BACKGROUND-COLOR: #cf1d19 } .tabGroupsPreview .previewOverlay { TOP: 54px } B.shadow { DISPLAY: block; BACKGROUND: url(images/bg_content_shadow.png) repeat-x = 0px -3px; MARGIN: 0px 1px; OVERFLOW: hidden; HEIGHT: 9px } HTML * DIV.calPicker { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MAX-WIDTH: 60%; PADDING-BOTTOM: = 21px; OVERFLOW: auto; WIDTH: 30em; PADDING-TOP: 0px } DIV.calPicker { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; Z-INDEX: = 1500! important; PADDING-BOTTOM: 0px! important; OVERFLOW: visible! = important; WIDTH: auto! important; PADDING-TOP: 0px! important } DIV.calPicker DIV.calHead { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px; POSITION: relative } DIV.calPicker H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 0px 40px; = BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; TEXT-ALIGN: center; BORDER-BOTTOM-STYLE: none } DIV.calPicker DIV.previous { LEFT: 2px; POSITION: absolute; TOP: 2px } DIV.calPicker DIV.next { RIGHT: 2px; POSITION: absolute; TOP: 2px; TEXT-ALIGN: right } DIV.calPicker DIV.calFoot { CLEAR: both; PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: = 6px; PADDING-TOP: 6px; TEXT-ALIGN: center } DIV.calPicker A.contextmenubar { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; BACKGROUND: = #c8dbf4; PADDING-BOTTOM: 2px; PADDING-TOP: 0px; TEXT-ALIGN: right } DIV.calPicker A.contextmenubar:hover { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; BACKGROUND: = #c8dbf4; PADDING-BOTTOM: 2px; PADDING-TOP: 0px; TEXT-ALIGN: right } DIV.timediv UL { OVERFLOW: auto; WIDTH: 8em; HEIGHT: 200px } DIV.timediv UL LI.contextmenubar_top { WIDTH: 8.15em } DIV.timediv UL LI A { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 3px; PADDING-TOP: 3px } UL.buildList UL.detailList LI SPAN.hidden { DISPLAY: none } UL.buildList UL.detailList LI SPAN.tagContainer { POSITION: relative } UL.buildList UL.detailList LI SPAN.tagContainer SPAN.hidden { DISPLAY: none } UL.buildList UL.detailList LI SPAN.tagContainer { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; PADDING-TOP: 2px } UL.buildList UL.detailList LI SPAN.tagContainer SPAN { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; PADDING-TOP: 2px } UL.buildList UL.detailList LI SPAN.tagContainer INPUT { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; DISPLAY: = inline; FONT-SIZE: 95%; FLOAT: none; MARGIN: 0px; VERTICAL-ALIGN: = middle; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } SPAN.tagContainer INPUT { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; DISPLAY: = inline; FONT-SIZE: 95%; FLOAT: none; MARGIN: 0px; VERTICAL-ALIGN: = middle; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } UL.buildList UL.detailList LI SPAN.tagContainer A.browse { FONT-SIZE: 95%; VERTICAL-ALIGN: middle } SPAN.tagContainer A.browse { FONT-SIZE: 95%; VERTICAL-ALIGN: middle } SPAN.tagContainer SPAN.newTagForm { MARGIN-LEFT: 6px; BORDER-LEFT: #999 1px dotted } SPAN.tagContainer SPAN.newTagForm LABEL { PADDING-LEFT: 6px } SPAN.currentTags { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #acc2df 1px solid; = DISPLAY: none; Z-INDEX: 100; RIGHT: 0px; OVERFLOW: hidden; BORDER-LEFT: = #acc2df 1px solid; WIDTH: 16em; LINE-HEIGHT: 1.8; BORDER-BOTTOM: #5577bb = 1px solid; ZOOM: 1; POSITION: absolute; TOP: 1.2em; BACKGROUND-COLOR: = #e2eefe } SPAN.currentTags SPAN { PADDING-RIGHT: 6px; DISPLAY: block; PADDING-LEFT: 6px; PADDING-BOTTOM: = 6px; PADDING-TOP: 18px } SPAN.currentTags A { FONT-WEIGHT: bold } SPAN.currentTags A.closeCloud { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; BACKGROUND: = #c8dbf4; LEFT: 0px; PADDING-BOTTOM: 1px; WIDTH: 98%; LINE-HEIGHT: 1; = PADDING-TOP: 0px; POSITION: absolute; TOP: 0px; TEXT-ALIGN: right } DIV.auto_complete { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #acc2df 1px solid; = Z-INDEX: 1000; BACKGROUND: #e2eefe; BORDER-LEFT: #acc2df 1px solid; = WIDTH: 12em; BORDER-BOTTOM: #5577bb 1px solid } DIV.auto_complete UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: 100%; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.auto_complete UL LI { PADDING-RIGHT: 1%; PADDING-LEFT: 3%; PADDING-BOTTOM: 2px; MARGIN: 0px; = OVERFLOW: hidden; WIDTH: 96%; CURSOR: pointer; PADDING-TOP: 2px } DIV.auto_complete UL LI.selected { BACKGROUND-COLOR: #fff } DIV.auto_complete UL STRONG.highlight { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.dropzone { BORDER-RIGHT: #333333 2px dashed; BORDER-TOP: #333333 2px dashed; = MARGIN: 5px; BORDER-LEFT: #333333 2px dashed; BORDER-BOTTOM: #333333 2px = dashed } #copyright { DISPLAY: block! important; FONT-SIZE: 85%; BACKGROUND: none transparent = scroll repeat 0% 0%; MARGIN: 12px auto; WIDTH: 500px; COLOR: #555; = POSITION: relative } .loginCopyright { WIDTH: 580px! important } DIV.logo { MIN-HEIGHT: 4em; FLOAT: left; VERTICAL-ALIGN: bottom; LINE-HEIGHT: = 1.3em } DIV.productTitle { MIN-HEIGHT: 4em; FLOAT: left; VERTICAL-ALIGN: bottom; LINE-HEIGHT: = 1.3em } DIV.legal { MIN-HEIGHT: 4em; FLOAT: left; VERTICAL-ALIGN: bottom; LINE-HEIGHT: = 1.3em } DIV.additionalInfo { MIN-HEIGHT: 4em; FLOAT: left; VERTICAL-ALIGN: bottom; LINE-HEIGHT: = 1.3em } DIV.productTitle { PADDING-RIGHT: 12px; PADDING-LEFT: 9px; MIN-HEIGHT: auto; = PADDING-BOTTOM: 0px; PADDING-TOP: 9px } DIV.logo { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } DIV.legal { PADDING-RIGHT: 3px; PADDING-LEFT: 12px; PADDING-BOTTOM: 6px; = BORDER-LEFT: #efefef 1px dotted; WIDTH: 18.5em; PADDING-TOP: 3px } DIV.additionalInfo { PADDING-RIGHT: 3px; PADDING-LEFT: 12px; PADDING-BOTTOM: 6px; = BORDER-LEFT: #efefef 1px dotted; WIDTH: 18.5em; PADDING-TOP: 3px } DIV.legal P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.additionalInfo P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: = 0px; PADDING-TOP: 0px } .loginCopyright DIV.legal { MIN-HEIGHT: 2.5em; WIDTH: 24em } .loginCopyright DIV.additionalInfo { MIN-HEIGHT: 2.5em; WIDTH: 24em } .loginCopyright DIV.legal { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 6px; WIDTH: = 24.5em; PADDING-TOP: 3px; BORDER-LEFT-STYLE: none } DIV.productTitle A { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 125%; COLOR: #333; = LINE-HEIGHT: 1.1em; TEXT-ALIGN: right; TEXT-DECORATION: none } DIV.productTitle A:hover { TEXT-DECORATION: underline } DIV.additionalInfo A { COLOR: #333 } DIV.copyrightDetailContents { CLEAR: left; PADDING-RIGHT: 6px; DISPLAY: none; PADDING-LEFT: 20px; = MIN-HEIGHT: 5em; LEFT: 5.2em; PADDING-BOTTOM: 9px; WIDTH: 42em; COLOR: = #fff; PADDING-TOP: 6px; POSITION: absolute; TOP: -0.2em; = BACKGROUND-COLOR: #404040; -moz-border-radius: 5px } .productImg { MARGIN-TOP: 5px; FLOAT: left } DIV.copyrightDetailContents UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 0px 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.copyrightDetailContents UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.copyrightDetailContents UL LI SPAN { FONT-WEIGHT: bold } A.closeCopyright { FLOAT: right } DIV#lightboxWrapper { Z-INDEX: 1001; RIGHT: 0px; LEFT: 0px; POSITION: absolute; TOP: 0px } DIV#lightboxWrapper-inner { Z-INDEX: 1002; LEFT: 0px; WIDTH: 100%; POSITION: relative; TOP: 0px; = TEXT-ALIGN: center } DIV#lightbox { DISPLAY: block; Z-INDEX: 1003; LEFT: auto; MARGIN: 40px 0px 0px; = POSITION: relative; TOP: auto; TEXT-ALIGN: left } #lightbox DIV#lightboxContent { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = auto; WIDTH: 600px; PADDING-TOP: 0px; POSITION: relative; = BACKGROUND-COLOR: transparent! important } #lightbox DIV#lightboxContent DIV.lbContainer { BACKGROUND: #ffffff; MAX-HEIGHT: 300px } #lightbox DIV#lightboxContent DIV.lbContainer:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } DIV#lightboxContent H2 { PADDING-RIGHT: 1em; PADDING-LEFT: 1em; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 0.3em; MARGIN: 0px; PADDING-TOP: 0.3em; BORDER-BOTTOM: = #ed9 1px solid; POSITION: relative } .lbAction { Z-INDEX: 1005; RIGHT: 9px; POSITION: absolute; TOP: 6px } #overlay { DISPLAY: none; Z-INDEX: 1000; RIGHT: 0px; FILTER: alpha(opacity=3D30); = LEFT: 0px; WIDTH: 100%; BOTTOM: 0px; POSITION: fixed; TOP: 0px; HEIGHT: = 100%; BACKGROUND-COLOR: #000; opacity: .30 } DIV#overlay { _position: absolute } .done#lightbox #lbLoadMessage { DISPLAY: none } .done#lightbox #lbContent { DISPLAY: block } .loading#lightbox #lbContent { DISPLAY: none } .loading#lightbox #lbLoadMessage { DISPLAY: block } .done#lightbox IMG { =09 } .myPlacesContent { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #fff; = PADDING-BOTTOM: 16px; OVERFLOW: auto; BORDER-TOP-STYLE: none; = MAX-HEIGHT: 500px! important; PADDING-TOP: 16px; BORDER-RIGHT-STYLE: = none; BORDER-LEFT-STYLE: none; HEIGHT: auto! important; = BORDER-BOTTOM-STYLE: none } UL.langOptions { LIST-STYLE-TYPE: none } UL.langOptions LI { BACKGROUND: none transparent scroll repeat 0% 0% } .avatar { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; MARGIN: auto; = BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #ccc 1px = solid } .myavatar { OVERFLOW: hidden; MAX-HEIGHT: 150px } #lightbox DIV.topRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } #lightbox DIV.bottomRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } #lightbox DIV.topRound B { DISPLAY: block; BACKGROUND: #fff; OVERFLOW: hidden } #lightbox DIV.bottomRound B { DISPLAY: block; BACKGROUND: #fff; OVERFLOW: hidden } #lightbox DIV.topRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } #lightbox DIV.bottomRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } #lightbox DIV.topRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } #lightbox DIV.bottomRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } #lightbox DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } #lightbox DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } #lightbox DIV.topRound B { BACKGROUND: #fff1c5 } #lightbox DIV.lightBlue B { BACKGROUND: #e3efff } #lightbox DIV.error B { BACKGROUND: #ff0000 } #lightbox .tallPara { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 14px; MARGIN: = 0px; PADDING-TOP: 14px } #lightbox UL { MARGIN: 0px 0px 12px } #lightbox DIV.column-3 { MIN-HEIGHT: 200px! important; MARGIN: 0px; WIDTH: 33%; HEIGHT: auto! = important } #lightbox DIV.column-2 { MIN-HEIGHT: 200px! important; MARGIN: 0px; WIDTH: 33%; HEIGHT: auto! = important } #lightbox DIV.column-2 { WIDTH: 50% } .clearfix:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } .clearfix { DISPLAY: inline-block } .clearfix { DISPLAY: block } .clearfloats { CLEAR: both } .qShow { DISPLAY: block } .qHide { DISPLAY: none } .completionContainer { PADDING-BOTTOM: 6px; OVERFLOW: auto; PADDING-TOP: 6px } .completionContainerLarge { PADDING-BOTTOM: 6px; OVERFLOW: auto; PADDING-TOP: 6px; HEIGHT: 75px } .pagedAssessment { BACKGROUND: #888; MARGIN: 0px; COLOR: #ffffff! important } .pagedRumble { BACKGROUND: #fff7de } .pagedControls { PADDING-RIGHT: 4px; PADDING-LEFT: 40px; BACKGROUND: #fff7de; = PADDING-BOTTOM: 6px; MARGIN: -5px -4px -5px -40px; COLOR: #000000! = important; PADDING-TOP: 5px } .pagedPointsOutsideBar { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; RIGHT: 6px; BACKGROUND: #fae7ae 0% 50%; LEFT: auto; = PADDING-BOTTOM: 0px; MARGIN: 0pt 0px 0pt 0pt; COLOR: #000000! important; = LINE-HEIGHT: 100%; PADDING-TOP: 0px; LETTER-SPACING: 1px; POSITION: = relative; TOP: 0pt } .pagedPoints { PADDING-RIGHT: 0px; PADDING-LEFT: 10px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; BACKGROUND: #fae7ae 0% 50%; PADDING-BOTTOM: 6px; MARGIN: -5px 24px = -5px -10px; COLOR: #000000! important; LINE-HEIGHT: 100%; PADDING-TOP: = 5px; LETTER-SPACING: 1px } .bb-cpgbtd { FONT-SIZE: 10pt; FONT-FAMILY: Arial,Helvetica,sans-serif } .bb-cpgbth { FONT-SIZE: 10pt; FONT-FAMILY: Arial,Helvetica,sans-serif } .bb-cpmgtd { FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: Arial,Helvetica,sans-serif } .bb-cpmgth { FONT-WEIGHT: bold; FONT-SIZE: 9pt; FONT-FAMILY: = Arial,Helvetica,sans-serif } .actionBar UL LI.mainButton-legacy { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 2px 0px 0px 6px; = PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px } .reverseButtons UL LI.mainButton-legacy { FLOAT: right } .actionBar UL LI.mainButton-legacy A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 7px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 7px; FONT-SIZE: 100%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 3px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } .actionBar UL LI.mainButton-legacy A:hover { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #acc2df 1px solid; = BACKGROUND: url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = BORDER-LEFT: #acc2df 1px solid; BORDER-BOTTOM: #5577bb 1px solid } A.inlineAction-legacy { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 95%; BACKGROUND: = #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; COLOR: = #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } A.inlineAction-legacy:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 95%; BACKGROUND: = url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; COLOR: #000; = PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid; TEXT-DECORATION: = none } DIV.buttonCm DIV.navPaletteContent { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.buttonCm UL.courseMenu { WIDTH: 190px } DIV.buttonCm UL.courseMenu LI { BACKGROUND-POSITION: 14px 0px; MARGIN: 4px -14px; BACKGROUND-REPEAT: = no-repeat; POSITION: relative; BACKGROUND-COLOR: transparent } DIV.buttonCm UL.courseMenu LI.here { BACKGROUND-POSITION: 14px 0px; MARGIN: 4px -14px; BACKGROUND-REPEAT: = no-repeat; POSITION: relative; BACKGROUND-COLOR: transparent } DIV.buttonCm UL.courseMenu LI.subhead { PADDING-RIGHT: 0px; PADDING-LEFT: 20px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; HEIGHT: 1% } DIV.buttonCm UL.courseMenu LI.subhead H4 { PADDING-RIGHT: 16px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0pt 0pt 0pt 14px; PADDING-TOP: 0px; = HEIGHT: 1% } DIV.buttonCm UL.courseMenu LI.divider { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 4px; MARGIN: 0px; PADDING-TOP: 0px } DIV.buttonCm UL.courseMenu LI.divider HR { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; MARGIN: 0px; VERTICAL-ALIGN: middle; LINE-HEIGHT: 1%; POSITION: = relative; TOP: -9px; HEIGHT: 1px; BACKGROUND-COLOR: #777; = BORDER-RIGHT-WIDTH: 0px } DIV.buttonCm UL.courseMenu LI A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 6px; DISPLAY: block; = PADDING-LEFT: 6px; FONT-WEIGHT: normal; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 14px; OVERFLOW: hidden; = PADDING-TOP: 4px; WHITE-SPACE: nowrap; POSITION: relative; = BACKGROUND-COLOR: transparent; TEXT-DECORATION: none } DIV.buttonCm UL.courseMenu LI A:hover { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 6px; DISPLAY: block; = PADDING-LEFT: 6px; FONT-WEIGHT: normal; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 14px; OVERFLOW: hidden; = PADDING-TOP: 4px; WHITE-SPACE: nowrap; POSITION: relative; = BACKGROUND-COLOR: transparent; TEXT-DECORATION: none } DIV.buttonCm UL.courseMenu LI.here A { BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline } DIV.buttonCm UL.courseMenu LI.here A:hover { BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline } DIV.buttonCm UL.courseMenu LI A.cmimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 4px; BACKGROUND: = url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: = absolute; TOP: 7px; opacity: 0.2 } DIV.buttonCm UL.courseMenu LI A.cmimg:hover { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 4px; BACKGROUND: = url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: = absolute; TOP: 7px; opacity: 0.2 } DIV.buttonCm H3 A.cmimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 4px; BACKGROUND: = url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: = absolute; TOP: 7px; opacity: 0.2 } DIV.buttonCm UL.courseMenu LI A.cmimg IMG { WIDTH: 13px; HEIGHT: 13px } DIV.buttonCm UL.courseMenu LI A.cmimg:hover IMG { WIDTH: 13px; HEIGHT: 13px } DIV.buttonCm H3 A.cmimg IMG { WIDTH: 13px; HEIGHT: 13px } DIV.buttonCm UL.courseMenu LI.subhead A.cmimg IMG { WIDTH: 13px; HEIGHT: 13px } DIV.buttonCm UL.courseMenu LI.divider A.cmimg { TOP: -4px } DIV.buttonCm UL.courseMenu LI.subhead A.cmimg { TOP: 3px } DIV.buttonCm UL.courseMenu LI.subhead A.cmimg:hover { TOP: 3px } DIV.buttonCm UL.courseMenu LI A.cmimg:hover { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm H3 A.cmimg:hover { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI A:hover SPAN.reorder { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI A:hover A.cmimg { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI:hover SPAN.reorder { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI:hover A.cmimg { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm H3:hover A.cmimg { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI SPAN.reorder { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 2px; FILTER: = alpha(opacity=3D60); LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 20px; = CURSOR: move; PADDING-TOP: 0px; POSITION: absolute; TOP: 5px; HEIGHT: = 16px; opacity: 0.6 } DIV.buttonCm UL.courseMenu LI.invisible SPAN.reorder { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 2px; FILTER: = alpha(opacity=3D60); LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 20px; = CURSOR: move; PADDING-TOP: 0px; POSITION: absolute; TOP: 5px; HEIGHT: = 16px; opacity: 0.6 } DIV.buttonCm UL.courseMenu LI.subhead SPAN.reorder { TOP: 0px } DIV.buttonCm UL.courseMenu LI.divider SPAN.reorder { TOP: -10px } DIV.buttonCm LI.invisible A SPAN.cmLink-hidden { RIGHT: 20px; POSITION: absolute; TOP: 7px } DIV.buttonCm LI.invisible SPAN.cmLink-empty { RIGHT: 20px; POSITION: absolute; TOP: 7px } DIV.buttonCm LI.invisible SPAN.cmLink-empty { RIGHT: 32px } DIV.buttonCm DIV.bottomRound { DISPLAY: none } DIV.instructionData { MARGIN: 0px 0px 12px } DIV.instructionData UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px solid; LIST-STYLE-TYPE: = none } DIV.instructionData UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 6px; MARGIN: 0px 12px 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.instructionData UL LI SPAN { FONT-SIZE: 90%; COLOR: #555 } DIV.instructionData UL LI H3 { DISPLAY: inline; FONT-SIZE: 100%; MARGIN: 0px } DIV.instructionData UL LI.instructions { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: = 0px; MARGIN: 6px 0px 0px; PADDING-TOP: 0px } DIV.instructionData UL LI.saving { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 0px 0px; PADDING-TOP: 0px } DIV.instructionData UL LI.instructions A.browse { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; FONT-SIZE: = 90%; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px } .assessmentInstructions { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #f1f1f1; = PADDING-BOTTOM: 6px; MARGIN: 0px 0px 12px; PADDING-TOP: 3px; POSITION: = relative } .assessmentInstructions H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px = 0px; PADDING-TOP: 0px } .assessmentPortlet { Z-INDEX: 1; RIGHT: 26px; POSITION: fixed } .assessmentPortlet H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; COLOR: #597298; PADDING-TOP: 1px; = BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .assessmentPortlet DIV.assessmentPortletBlock H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; COLOR: #597298; PADDING-TOP: 1px; = BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .assessmentPortlet DIV.blockContents H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; COLOR: #597298; PADDING-TOP: 1px; = BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .assessmentPortlet DIV.assessmentPortletBlock { BORDER-RIGHT: #777 1px solid; BORDER-TOP: #777 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #777 1px solid; BORDER-BOTTOM: #777 1px solid } .assessmentPortlet DIV.assessmentPortletBlock H4 { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px } .assessmentPortlet DIV.assessmentPortletBlock H4.blockTitle { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px } .assessmentPortlet DIV.assessmentPortletBlock H4 A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 9px; DISPLAY: block; = PADDING-LEFT: 9px; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 110%; BACKGROUND: = #f1f1f1; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 4px; MARGIN: 0px; = COLOR: #444; PADDING-TOP: 4px; LETTER-SPACING: 0px; BORDER-RIGHT-WIDTH: = 0px; TEXT-DECORATION: none } .assessmentPortlet DIV.assessmentPortletBlock H4.blockTitle A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 9px; DISPLAY: block; = PADDING-LEFT: 9px; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 110%; BACKGROUND: = #f1f1f1; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 4px; MARGIN: 0px; = COLOR: #444; PADDING-TOP: 4px; LETTER-SPACING: 0px; BORDER-RIGHT-WIDTH: = 0px; TEXT-DECORATION: none } .assessmentPortlet DIV.assessmentPortletBlock H4 A:hover { BACKGROUND: #eee } .assessmentPortlet DIV.assessmentPortletBlock H4.blockTitle A:hover { BACKGROUND: #eee } .assessmentPortlet DIV.assessmentPortletBlock H4 A SPAN { FONT-WEIGHT: normal; COLOR: #ddd } .assessmentPortlet DIV.assessmentPortletBlock H4.blockTitle A SPAN { FONT-WEIGHT: normal; COLOR: #ddd } .assessmentPortlet UL.subCategories { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.assessmentBlockGroups { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .assessmentPortlet DIV.assessmentPortletBlock UL.subCategories LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.assessmentBlockGroups LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .assessmentPortlet UL.subCategories LI A { PADDING-RIGHT: 16px; BORDER-TOP: #777 1px solid; DISPLAY: block; = PADDING-LEFT: 16px; FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 3px center; = PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #597298; PADDING-TOP: 4px; = LETTER-SPACING: 1px; TEXT-DECORATION: none } UL.assessmentBlockGroups LI A.itemHead { PADDING-RIGHT: 16px; BORDER-TOP: #777 1px solid; DISPLAY: block; = PADDING-LEFT: 16px; FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 3px center; = PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #597298; PADDING-TOP: 4px; = LETTER-SPACING: 1px; TEXT-DECORATION: none } UL.assessmentBlockGroups LI A.itemHead:hover { BACKGROUND-COLOR: #e3efff; TEXT-DECORATION: underline } UL.assessmentBlockGroups LI A.itemHeadOpen { BACKGROUND: #fff no-repeat 3px center } UL.assessmentBlockGroups LI A.itemHeadOpen:hover { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } .assessmentPortlet UL.subCategories LI:first-child A { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } UL.assessmentBlockGroups LI:first-child A { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } .assessmentPortlet UL.subCategories LI A:hover { FILTER: alpha(opacity=3D100); BACKGROUND-COLOR: #fff; opacity: 1 } UL.assessmentBlockGroups LI A:hover { FILTER: alpha(opacity=3D100); BACKGROUND-COLOR: #fff; opacity: 1 } .assessmentPortlet UL.subCategories LI A SPAN { FONT-WEIGHT: normal; COLOR: #777 } UL.assessmentBlockGroups LI A SPAN { FONT-WEIGHT: normal; COLOR: #777 } .assessmentPortlet UL.itemGroup LI A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; = PADDING-LEFT: 0px; FONT-WEIGHT: bold; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: = 105%; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; = BORDER-RIGHT-WIDTH: 0px } UL.assessmentBlockGroups LI UL.itemGroups LI A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; = PADDING-LEFT: 0px; FONT-WEIGHT: bold; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: = 105%; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; = BORDER-RIGHT-WIDTH: 0px } .assessmentPortlet UL.itemGroup LI A:hover { TEXT-DECORATION: underline } UL.itemGroups LI A:hover { TEXT-DECORATION: underline } UL.itemGroups LI UL.items { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; FONT-SIZE: 110%; = PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-TOP: 2px } UL.assessmentBlockGroups LI UL.itemGroups LI A { FONT-WEIGHT: normal } UL.itemGroups LI UL.items LI A { FONT-WEIGHT: normal } .assessmentPortlet DIV.assessmentPortletBlock H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-TOP-STYLE: none; = PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; = LETTER-SPACING: 0px; BORDER-BOTTOM-STYLE: none } .assessmentPortlet DIV.assessmentPortletBlock H3 A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 99% center; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; TEXT-DECORATION: = none } .assessmentPortlet DIV.assessmentPortletBlock H3 A:hover { TEXT-DECORATION: underline } .assessmentPortlet DIV.assessmentPortletBlock:first-child H3 A { BORDER-TOP-STYLE: none } .assessmentPortlet DIV.assessmentPortletBlock H3 A.open { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = url(images/less_options.gif) #e3efff no-repeat 99% center; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; TEXT-DECORATION: = none } .assessmentPortlet UL.objectList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .assessmentPortletBlock UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .blockContents UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } UL.memberList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .assessmentPortlet .blockContents UL LI UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .assessmentPortlet .blockContents UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .assessmentPortlet UL LI UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .savingQuestion { PADDING-RIGHT: 2px; DISPLAY: none; PADDING-LEFT: 2px; FONT-SIZE: 150%; = BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 2px; = COLOR: #cc0033; PADDING-TOP: 2px; POSITION: relative } TR.dummyVTBEFooter TD { BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #666666 1px solid; PADDING-LEFT: 2px; BACKGROUND: #eee; PADDING-BOTTOM: = 2px; BORDER-LEFT: #666666 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: = #666666 1px solid; TEXT-ALIGN: right } DIV.canvasHead { PADDING-RIGHT: 16px; PADDING-LEFT: 16px; BACKGROUND: #f6f6f6; = PADDING-BOTTOM: 12px; MARGIN: 0.6em 0px; PADDING-TOP: 6px } DIV.canvasHead UL LI { BORDER-TOP: #eeeeee 1px solid } DIV.canvasHead UL LI:first-child { BORDER-TOP-STYLE: none } DIV.canvasHead UL LI DIV.label { COLOR: #555 } .peer_instructions { MARGIN: 12px 6px } .peerHelp { COLOR: #555 } H2.evaluator { MARGIN: 1em 0px 0.3em } H2.evaluator SPAN { FONT-WEIGHT: normal; FONT-SIZE: 90% } DIV.peerCriteriaStatus { BORDER-RIGHT: #bbb 1px solid; PADDING-RIGHT: 0.3em; BORDER-TOP: #bbb = 1px solid; PADDING-LEFT: 0.3em; BACKGROUND: #fff; PADDING-BOTTOM: 0.3em; = BORDER-LEFT: #bbb 1px solid; PADDING-TOP: 0.3em; BORDER-BOTTOM: #bbb 1px = solid } DIV.peerCriteriaStatus A.itemHeadOpen { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 0px; COLOR: = #597298; LETTER-SPACING: 1px; TEXT-DECORATION: none } DIV.peerCriteriaStatus A.itemHeadOpen:hover { TEXT-DECORATION: underline } DIV.peerCriteriaStatus TD.qStatus { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 4px; WIDTH: 5%; = PADDING-TOP: 4px } DIV.peerCriteriaStatus TD.qStatus A SPAN { BORDER-RIGHT: #fff 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #fff 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: bold; BACKGROUND: white; = PADDING-BOTTOM: 1px; BORDER-LEFT: #fff 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #fff 1px solid } DIV.peerCriteriaStatus TD.qStatus A SPAN.qComplete { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BACKGROUND: = #eee; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid } DIV.peerCriteriaStatus TD.qStatus A.qActive SPAN.qComplete { BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; = BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid; = TEXT-DECORATION: none } DIV.peerCriteriaStatus TD.qStatus A.qActive SPAN.qIncomplete { BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; = BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid; = TEXT-DECORATION: none } DIV.peerCriteriaStatus A SPAN IMG { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; WIDTH: = 12px; PADDING-TOP: 2px; HEIGHT: 12px } .questionNumber { FONT-WEIGHT: bold } .questionType { FONT-WEIGHT: bold } .questionDiv { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0.6em; BORDER-TOP: #ccc = 1px solid; PADDING-LEFT: 0.6em; PADDING-BOTTOM: 0.6em; MARGIN: -1px 0px = 6px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 0.6em; BORDER-BOTTOM: = #ccc 1px solid } .questionDiv H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0.6em; MARGIN: = 0px 0px 0.6em; PADDING-TOP: 0px; BORDER-BOTTOM: #ddd 1px solid } .questionDiv P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0.6em 1.2em; PADDING-TOP: 0px } .questionDiv DIV.criteriaText { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0.6em 1.2em; PADDING-TOP: 0px } .questionDiv DIV.submission_text { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 2px; OVERFLOW: auto; = BORDER-LEFT: #ccc 1px solid; WIDTH: 100%; PADDING-TOP: 2px; = BORDER-BOTTOM: #ccc 1px solid; HEIGHT: 150px } .questionDiv TABLE { WIDTH: 98% } .questionDiv TABLE TABLE { WIDTH: auto } .questionDiv TD.label { WIDTH: 150px; WHITE-SPACE: nowrap } #creceipt { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 4px; COLOR: red; PADDING-TOP: 4px } UL.fileData { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 3px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.fileData LI { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FLOAT: left; PADDING-BOTTOM: = 2px; MARGIN: 0px; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 2px } UL.containerTabs LI.tabhead { BACKGROUND: none transparent scroll repeat 0% 0%; BORDER-TOP-STYLE: = none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; TEXT-ALIGN: = left; BORDER-BOTTOM-STYLE: none } UL.containerTabs LI H3 { PADDING-RIGHT: 12px; PADDING-LEFT: 0px; FONT-SIZE: 100%; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-TOP-STYLE: none; PADDING-TOP: = 5px; BORDER-RIGHT-STYLE: none; WHITE-SPACE: nowrap; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } UL.listNav { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #ddd; = PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 100%; PADDING-TOP: 0px; = LIST-STYLE-TYPE: none } UL.listNav LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #ededed; FLOAT: = left; PADDING-BOTTOM: 0px; MARGIN: 1px; COLOR: #2d2680; PADDING-TOP: = 0px; WHITE-SPACE: nowrap; TEXT-ALIGN: center } UL.listNav LI A { PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; TEXT-DECORATION: none } UL.listNav LI A:hover { BACKGROUND-COLOR: #dedede; TEXT-DECORATION: underline } UL.listNav LI A.active { BORDER-RIGHT: #000 2px solid; PADDING-RIGHT: 8px; BORDER-TOP: #000 2px = solid; PADDING-LEFT: 8px; FONT-WEIGHT: bold; BACKGROUND: #fff; = PADDING-BOTTOM: 2px; BORDER-LEFT: #000 2px solid; COLOR: #000; = PADDING-TOP: 2px; BORDER-BOTTOM: #000 2px solid } UL.evaluation { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 0.6em 1.2em; = PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.evaluation LI { CLEAR: both; PADDING-RIGHT: 0px; BORDER-TOP: #ddd 1px solid; = PADDING-LEFT: 0px; PADDING-BOTTOM: 4px; MARGIN: 0px; PADDING-TOP: 4px } UL.evaluation LI P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 1px 0px; WIDTH: 79%; PADDING-TOP: 0px } UL.evaluation H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 4px; FONT-SIZE: 100%; FLOAT: left; = PADDING-BOTTOM: 0px; MARGIN: 1px 0px; WIDTH: 20%; PADDING-TOP: 0px } UL.evaluation LI P SPAN { COLOR: #555 } DIV.stepPanel DIV.user_html { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 5px = 5px 12px 12px; PADDING-TOP: 0px } UL.stepPanels H4.defaultCursor { CURSOR: default } H4.defaultCursor { CURSOR: default } DL { MARGIN: 1em } DT { CLEAR: left; PADDING-RIGHT: 0.1em; PADDING-LEFT: 0.1em; FONT-WEIGHT: = bold; FLOAT: left; PADDING-BOTTOM: 0.1em; MARGIN: 0px; WIDTH: 8em; = PADDING-TOP: 0.1em } DD { PADDING-RIGHT: 0.1em; PADDING-LEFT: 0.1em; PADDING-BOTTOM: 0.1em; = MARGIN: 0px 0px 0px 9em; PADDING-TOP: 0.1em } .rating { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/star-matrix.gif) no-repeat 0px 0px; PADDING-BOTTOM: 0px; = MARGIN: 0px; WIDTH: 80px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; = POSITION: relative; HEIGHT: 16px } .star0 { BACKGROUND-POSITION: 0px 0px } .star1 { BACKGROUND-POSITION: 0px -16px } .star2 { BACKGROUND-POSITION: 0px -32px } .star3 { BACKGROUND-POSITION: 0px -48px } .star4 { BACKGROUND-POSITION: 0px -64px } .star5 { BACKGROUND-POSITION: 0px -80px } UL.rating LI { FLOAT: left; CURSOR: pointer; TEXT-INDENT: -999em } UL.rating LI A { Z-INDEX: 200; LEFT: 0px; WIDTH: 16px; POSITION: absolute; TOP: 0px; = HEIGHT: 16px; TEXT-DECORATION: none } UL.rating LI.one A { LEFT: 0px } UL.rating LI.two A { LEFT: 16px } UL.rating LI.three A { LEFT: 32px } UL.rating LI.four A { LEFT: 48px } UL.rating LI.five A { LEFT: 64px } UL.rating LI A:hover { Z-INDEX: 2; BACKGROUND: url(images/star-matrix.gif) no-repeat 0px 0px; = LEFT: 0px; OVERFLOW: hidden; WIDTH: 80px; HEIGHT: 16px } UL.rating LI.one A:hover { BACKGROUND-POSITION: 0px -96px } UL.rating LI.two A:hover { BACKGROUND-POSITION: 0px -112px } UL.rating LI.three A:hover { BACKGROUND-POSITION: 0px -128px } UL.rating LI.four A:hover { BACKGROUND-POSITION: 0px -144px } UL.rating LI.five A:hover { BACKGROUND-POSITION: 0px -160px } DIV.collectionViewReadMessageBorder { MARGIN-LEFT: 30px; BORDER-LEFT: #ccc 1px solid } DIV.collectionViewUnreadMessageBorder { BORDER-RIGHT: #999 3px solid; BORDER-TOP: #999 3px solid; MARGIN-LEFT: = 30px; BORDER-LEFT: #999 3px solid; BORDER-BOTTOM: #999 3px solid } TABLE.treeframe TR TD { VERTICAL-ALIGN: middle } TABLE.tree_view TR TD IMG { VERTICAL-ALIGN: middle } TABLE.treeframe { MARGIN: 0px } TABLE.treeframe TBODY TR TD { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } TABLE.treeframe THEAD TR TH { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } TABLE.treeframe TR.high { BACKGROUND-COLOR: transparent } TR.thread TD { BORDER-TOP: #ccc 1px solid; VERTICAL-ALIGN: middle } TR.thread TD IMG { VERTICAL-ALIGN: middle } TABLE.unreadmessageborder { BORDER-RIGHT: rgb(102,102,102) 3px solid; BORDER-TOP: rgb(102,102,102) = 3px solid; BORDER-LEFT: rgb(102,102,102) 3px solid; BORDER-BOTTOM: = rgb(102,102,102) 3px solid } TABLE.readmessageborder { BORDER-RIGHT: rgb(204,204,204) 1px solid; BORDER-TOP: rgb(204,204,204) = 1px solid; BORDER-LEFT: rgb(204,204,204) 1px solid; BORDER-BOTTOM: = rgb(204,204,204) 1px solid } TR.show { =09 } TR.hide { DISPLAY: none } .loadingelipse { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 14px; BORDER-TOP: #ccc 1px = solid; DISPLAY: block; PADDING-LEFT: 14px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; BACKGROUND: #ffffcc; PADDING-BOTTOM: 4px; MARGIN: auto; = BORDER-LEFT: #ccc 1px solid; WIDTH: 140px; PADDING-TOP: 4px; = BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: center } .gradefield { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 120%; = PADDING-BOTTOM: 4px; MARGIN: 9px 0px; VERTICAL-ALIGN: middle; OVERFLOW: = visible; COLOR: #000; PADDING-TOP: 4px; TEXT-ALIGN: center; _height: 1% } .gradefield INPUT { BORDER-RIGHT: #666 2px solid; PADDING-RIGHT: 3px; BORDER-TOP: #666 2px = solid; PADDING-LEFT: 3px; FONT-WEIGHT: bold; FONT-SIZE: 110%; = BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; MARGIN: 0px; VERTICAL-ALIGN: = middle; BORDER-LEFT: #666 2px solid; LINE-HEIGHT: 100%; PADDING-TOP: = 1px; BORDER-BOTTOM: #666 2px solid; FONT-FAMILY: arial,sans-serif; = _line-height: 120% } .gradefield INPUT.inputtypebutton { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline; PADDING-LEFT: 8px; FONT-WEIGHT: normal; = FONT-SIZE: 80%; BACKGROUND: #ededed; PADDING-BOTTOM: 1px; OVERFLOW: = visible; BORDER-LEFT: #ccc 1px solid; WIDTH: auto; PADDING-TOP: 2px; = BORDER-BOTTOM: #ccc 1px solid; HEIGHT: auto; _width: auto } .gradefield A { FONT-WEIGHT: bold; FONT-SIZE: 120% } .gradefield SPAN { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-SIZE: 80%; PADDING-BOTTOM: = 0px; COLOR: #555; PADDING-TOP: 0px } .overridegrade { PADDING-RIGHT: 12px; DISPLAY: inline; PADDING-LEFT: 12px; FONT-SIZE: = 80%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 3px 9px; VERTICAL-ALIGN: = middle; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 0px } .overridegrade INPUT.inputtypebutton { MARGIN-TOP: -3px; FONT-WEIGHT: normal; FONT-SIZE: 70%; VERTICAL-ALIGN: = middle } DIV.parentmessage { CLEAR: both; BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 6px; = BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 6px; FONT-SIZE: 90%; = BACKGROUND: #ededed; PADDING-BOTTOM: 9px; MARGIN: 6px; BORDER-LEFT: #ccc = 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid } .availability { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 85%; PADDING-BOTTOM: = 1px; MARGIN: 6px 0px; WIDTH: auto; PADDING-TOP: 1px; FONT-STYLE: italic } TD.tag_controls { PADDING-RIGHT: 3px; PADDING-LEFT: 6px; BACKGROUND: #cad7e7; = PADDING-BOTTOM: 3px; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid } TD.msg_controls { PADDING-RIGHT: 3px; PADDING-LEFT: 0px; BACKGROUND: #cad7e7; = PADDING-BOTTOM: 3px; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid } TD.checkbox_cell { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 6px; PADDING-LEFT: 6px; = PADDING-BOTTOM: 0px; VERTICAL-ALIGN: top; PADDING-TOP: 6px } TD.prevnextpostarea { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 5px; BACKGROUND: #fff; PADDING-BOTTOM: 3px; = BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #ccc 1px = solid; WHITE-SPACE: nowrap; TEXT-ALIGN: center } H3.dbheading { MARGIN-TOP: 0px; DISPLAY: inline; FONT-WEIGHT: normal; MARGIN-BOTTOM: = 0px } DIV.dbThread { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; MARGIN: 0.9em = 0px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid; = POSITION: relative } DIV.dbThreadCheckbox { POSITION: absolute } DIV.dbThreadCheckbox INPUT { MARGIN: 10px } DIV.dbThreadInfo { BACKGROUND: #eee } DIV.dbThreadInfo DL { FONT-SIZE: 95%; FLOAT: left; MARGIN: 0.6em; WIDTH: 45% } DIV.dbThreadBody { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; PADDING-BOTTOM: 1.2em; = PADDING-TOP: 1.2em } P.dbAttachment { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 1.2em } DIV.dbParentPost P.dbAttachment { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 1.2em } DIV.dbThreadHeader { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; BACKGROUND: #e3efff; = PADDING-BOTTOM: 0.6em; PADDING-TOP: 0.6em; BORDER-BOTTOM: #ccc 1px solid } DIV.dbThreadFooter { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; BACKGROUND: #e3efff; = PADDING-BOTTOM: 0.6em; PADDING-TOP: 0.6em } DIV.dbThreadFooter DIV.navButtons { FLOAT: left; WIDTH: 49% } DIV.dbThreadHeader DIV.navButtons { FLOAT: left; WIDTH: 49% } DIV.dbThreadFooter DIV.threadButtons { FLOAT: right; WIDTH: 49%; TEXT-ALIGN: right } DIV.dbThreadHeader DIV.threadButtons { FLOAT: right; WIDTH: 49%; TEXT-ALIGN: right } DIV.dbThreadFooter A { DISPLAY: inline-block; VERTICAL-ALIGN: middle } DIV.dbThreadHeader A { DISPLAY: inline-block; VERTICAL-ALIGN: middle } DIV.spacerDiv { CLEAR: both } DIV.threadButtons A.reply { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 6px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; = PADDING-LEFT: 6px; FONT-WEIGHT: bold; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 2px; = BORDER-LEFT: #666e94 1px solid; COLOR: #fff; PADDING-TOP: 0px; = BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: repeat-x; = BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none; _background-image: = none } DIV.dbThreadInfo P A.reply { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 6px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; = PADDING-LEFT: 6px; FONT-WEIGHT: bold; BACKGROUND-IMAGE: = url(images/gradient_black_short_bt.png); PADDING-BOTTOM: 2px; = BORDER-LEFT: #666e94 1px solid; COLOR: #fff; PADDING-TOP: 0px; = BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: repeat-x; = BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none; _background-image: = none } DIV.threadButtons A.reply:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } DIV.dbThreadInfo P A.reply:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } DIV.dbThreadInfo P { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; PADDING-BOTTOM: 0.6em; = PADDING-TOP: 0.6em } DIV.dbThreadInfo P.detailButtons { FLOAT: right } DIV.dbThreadTree { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BORDER-LEFT: = #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid; HEIGHT: 200px } DIV.dbThreadMessage { MARGIN-TOP: 10px } DIV.dbParentPost { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; FONT-SIZE: 95%; BACKGROUND: = #eee; PADDING-BOTTOM: 0px; MARGIN: -0.6em 0px 1.2em; COLOR: #444; = PADDING-TOP: 0.6em } DIV.dbParentPost H4 { MARGIN: 0px 0px 0.6em } DIV.dbParentPost H4 A { DISPLAY: block; WIDTH: 100% } DIV.dbParentPost P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; PADDING-BOTTOM: = 1.2em; MARGIN: 0px; PADDING-TOP: 0px } DIV.dbParentPostBody { CLEAR: both; PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; BACKGROUND: = #fcfcfc; MARGIN-BOTTOM: 0.6em; PADDING-BOTTOM: 0.6em; PADDING-TOP: 0.6em } .loadingElipse { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 14px; BORDER-TOP: #ccc 1px = solid; DISPLAY: block; PADDING-LEFT: 14px; FONT-WEIGHT: bold; = BACKGROUND: #fff7de; PADDING-BOTTOM: 4px; MARGIN: 12px auto; = BORDER-LEFT: #ccc 1px solid; WIDTH: 140px; PADDING-TOP: 4px; = BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: center } .unreadmessage { FONT-WEIGHT: bold } H3.unreadmessage { FONT-WEIGHT: bold } BODY.wizardBody { _margin-top: 10px } BODY.wizardBody DIV#contentPanel { MARGIN-BOTTOM: 10px; MARGIN-LEFT: 159px } BODY.wizardBody DIV#pageTitleDiv IMG { DISPLAY: none } BODY.wizardBody DIV.reqfield { FLOAT: none; MARGIN: 0px 0px 6px -6px } DIV.wizardHead { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 2px; PADDING-TOP: 0px } DIV.wizardHead H2 { MARGIN: 0px } DIV.wizardHead P.helphelp { PADDING-RIGHT: 4px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 4px } BODY.wizardBody DIV.container { MIN-HEIGHT: 80% } BODY.wizardBody DIV.containerWizard { BORDER-RIGHT: #bbb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #bbb 1px = solid; PADDING-LEFT: 0px; BACKGROUND: #cdcdcd; PADDING-BOTTOM: 14px; = MARGIN: 0px -12px; BORDER-LEFT: #bbb 1px solid; PADDING-TOP: 3px; = BORDER-BOTTOM: #bbb 1px solid } BODY.wizardBody DIV.containerWizard DIV.locationPane { WIDTH: 99% } BODY.wizardBody UL.contentList LI DIV.details { OVERFLOW-X: visible } P.wizardFinishText { MARGIN: 6px 0px 150px } P.wizardSubmit { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 6px; MARGIN: = 0px; PADDING-TOP: 12px } P.wizardSubmit INPUT[type=3Dimage] { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; = PADDING-TOP: 2px } P.wizardSubmit INPUT.submit { _background: #819AC0; _border-color: #566E94; _color: #fff } P.wizardSubmit SPAN { FONT-SIZE: 95% } P.wizardSubmit SPAN STRONG { COLOR: #000 } DIV.wizardBottomRound B.inner { BACKGROUND: #fff1c5 } DIV.wizardBottomRound B.outer { BACKGROUND: #fff1c5 } DIV.wizardBottomRound B.middle { BACKGROUND: #fff1c5 } DIV.navigationPaneWizard { MARGIN-TOP: 45px; WIDTH: 159px; _margin-top: 55px } DIV.navigationPaneWizard DIV B.inner { MARGIN-RIGHT: 0px! important } DIV.navigationPaneWizard DIV B.middle { MARGIN-RIGHT: 0px! important } DIV.navigationPaneWizard DIV B.outer { MARGIN-RIGHT: 0px! important } DIV.navigationPaneWizard DIV.navPalette { MARGIN: 0px 0px 12px 12px } DIV.navigationPaneWizard DIV.navPalette DIV.navPaletteContent H2 { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px } DIV.navigationPaneWizard DIV.navPalette SPAN { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; PADDING-BOTTOM: = 6px; PADDING-TOP: 6px; BACKGROUND-COLOR: #ededed } DIV.navigationPaneWizard DIV.navPalette UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none! important; = BACKGROUND-COLOR: #ededed } DIV.navigationPaneWizard DIV.navPalette UL LI { PADDING-RIGHT: 9px; BORDER-TOP: #cdcdcd 1px solid; PADDING-LEFT: 24px; = BACKGROUND: url(images/bullet_off_ia.gif) no-repeat 0px 0px; = PADDING-BOTTOM: 4px; MARGIN: 0px; BORDER-LEFT: #cdcdcd 1px solid; COLOR: = #444; PADDING-TOP: 4px } DIV.navigationPaneWizard DIV.navPalette UL LI:first-child { BORDER-TOP-STYLE: none } DIV.navigationPaneWizard DIV.navPalette UL LI.currentStep { FONT-WEIGHT: bold; BACKGROUND: url(images/bullet_active_ia.gif) white = no-repeat 0px 0px } DIV.navigationPaneWizard DIV.navPalette UL LI.visitedStep { BACKGROUND: url(images/bullet_inactive_ia.gif) no-repeat 0px 0px } #loginPageContainer { MIN-HEIGHT: 100%; MARGIN: 0px auto; WIDTH: 728px; POSITION: relative; = HEIGHT: auto! important; TEXT-ALIGN: left } #loginPane { MARGIN: 40px 0px 20px } #loginPane DIV.loginBack B { BACKGROUND: #94b3de } #loginContainer { BORDER-RIGHT: #94b3de 8px solid; BORDER-TOP: #94b3de 4px solid; = BACKGROUND: #fff; MARGIN: 0px auto; BORDER-LEFT: #94b3de 8px solid; = BORDER-BOTTOM: #94b3de 4px solid; ZOOM: 1 } #loginHeader { FONT-SIZE: 0.85em; BACKGROUND: #eee; COLOR: #444 } #loginHeader IMG.productLogo { FLOAT: left; MARGIN: 12px 8px 0px 20px; _width: 60px; _height: 58px } #loginHeader UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: = 0px; MARGIN: 10px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #loginHeader UL LI { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px; BORDER-LEFT: #999 1px dotted; PADDING-TOP: 0px } #loginHeader UL LI:first-child { BORDER-LEFT-STYLE: none } #loginHeader UL LI :link .active { COLOR: #666; TEXT-DECORATION: none } #loginLang { CLEAR: both; PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 0.85em; = BACKGROUND: #eee; PADDING-BOTTOM: 6px; MARGIN: 0px auto; COLOR: #444; = PADDING-TOP: 6px } #loginLang H2 { MARGIN: 1em 0px 0.1em } #loginLang H3 { FLOAT: left; MARGIN: 6px } #loginLang UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #loginLang UL LI { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px; BORDER-LEFT: #999 1px dotted; PADDING-TOP: 0px; = WHITE-SPACE: nowrap } #loginLang UL LI:first-child { BORDER-LEFT-STYLE: none } #loginLang UL LI :link .active { COLOR: #666; TEXT-DECORATION: none } DIV.loginBody { PADDING-RIGHT: 0px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 0px; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; HEIGHT: 1%; BACKGROUND-COLOR: = #94b3de } #loginBox { BACKGROUND: #fff1c5; FLOAT: left; WIDTH: 49.5% } #loginBox H2 { MARGIN: 10px } #loginBox P { FONT-SIZE: 0.85em; MARGIN: 10px; COLOR: #444 } #loginBox UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #loginBox LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 2px } #loginBox LI LABEL { PADDING-RIGHT: 3px; FONT-WEIGHT: bold; FLOAT: left; WIDTH: 90px } #loginBox LI INPUT { FLOAT: left } #loginBox LI INPUT[type=3D'text'] { BORDER-RIGHT: #ccc 2px solid; BORDER-TOP: #ccc 2px solid; BORDER-LEFT: = #ccc 2px solid; BORDER-BOTTOM: #ccc 2px solid } #loginBox LI INPUT[type=3D'password'] { BORDER-RIGHT: #ccc 2px solid; BORDER-TOP: #ccc 2px solid; BORDER-LEFT: = #ccc 2px solid; BORDER-BOTTOM: #ccc 2px solid } #loginBox .forgot { FONT-SIZE: 85%; MARGIN-LEFT: 93px } #loginBox LI INPUT[type=3D'submit'] { MARGIN-LEFT: 93px } #loginBox LI INPUT.submit { MARGIN-LEFT: 94px } #loginBox LI INPUT[type=3D'submit']:hover { =09 } #loginOptions { PADDING-LEFT: 4px; FLOAT: left; BORDER-LEFT: #ccc 1px solid; WIDTH: 49% } #loginOptions H2 { MARGIN: 10px } #loginOptions P { FONT-SIZE: 0.85em; MARGIN: 10px; COLOR: #444 } #loginOptions UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #loginOptions UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #loginOptions UL LI A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 24px; FONT-WEIGHT: = bold; FONT-SIZE: 95%; BACKGROUND: url(images/list_bullet.gif) #e3efff = no-repeat 6px center; PADDING-BOTTOM: 9px; COLOR: #52637b; PADDING-TOP: = 9px; TEXT-DECORATION: none } #loginOptions UL LI.subOption A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 24px; FONT-WEIGHT: = bold; FONT-SIZE: 95%; BACKGROUND: url(images/list_bullet.gif) #e3efff = no-repeat 6px center; PADDING-BOTTOM: 9px; COLOR: #52637b; PADDING-TOP: = 9px; TEXT-DECORATION: none } #loginOptions UL LI.subOption A { BORDER-TOP: #aaa 1px dotted; _border-top-style: solid } #loginOptions UL LI A:hover { COLOR: #000; BACKGROUND-COLOR: #b4cdeb } #loginOptions UL LI.subOption A:hover { COLOR: #000; BACKGROUND-COLOR: #b4cdeb } #loginText { PADDING-RIGHT: 80px; BORDER-TOP: #777 1px solid; PADDING-LEFT: 80px; = BACKGROUND: #5f6062; PADDING-BOTTOM: 18px; PADDING-TOP: 12px; = TEXT-ALIGN: center } #loginText P SPAN { FONT-WEIGHT: bold; FONT-SIZE: 105%; COLOR: #fff } #loginText P { FONT-SIZE: 95%; MARGIN: 0px; COLOR: #ededed } #loginImage { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; BACKGROUND-COLOR: #fff; TEXT-ALIGN: center } #loginImage IMG { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = -1px auto 0px; PADDING-TOP: 0px } #loginAnnouncements { CLEAR: both; PADDING-RIGHT: 0px; BORDER-TOP: #eee 1px solid; = PADDING-LEFT: 0px; BACKGROUND: #ddd; PADDING-BOTTOM: 7px; PADDING-TOP: = 0px } #loginAnnouncements H3 { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 110%; PADDING-BOTTOM: = 6px; MARGIN: 0px 9px; COLOR: #555; PADDING-TOP: 6px; BORDER-BOTTOM: #bbb = 1px solid } #loginAnnouncements UL { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #ebebeb; = LIST-STYLE-IMAGE: url(/images/ci/ng/list_bullet_single.gif); = PADDING-BOTTOM: 8px; MARGIN: 0px 9px; PADDING-TOP: 1px } #loginAnnouncements UL LI { PADDING-RIGHT: 0px; BORDER-TOP: #999 1px dotted; PADDING-LEFT: 0px; = FONT-SIZE: 90%; PADDING-BOTTOM: 0px; MARGIN: 5px 5px 5px 15px; = PADDING-TOP: 4px } #loginAnnouncements UL LI:first-child { BORDER-TOP-WIDTH: 0px } #loginAnnouncements UL LI A { FONT-SIZE: 95%; COLOR: #495a71 } .portlet #loginBoxFull { BORDER-RIGHT: #fff1c5 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #fff1c5 2px solid; PADDING-LEFT: 0px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 15px; MARGIN: 0px; BORDER-LEFT: #fff1c5 2px solid; = PADDING-TOP: 10px; BORDER-BOTTOM: #fff1c5 2px solid } .portlet #loginBoxFull P { PADDING-LEFT: 0px; FONT-SIZE: 0.85em; MARGIN: 10px; COLOR: #444 } .portlet #loginBoxFull P.welcome { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 1em; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: = 0px; MARGIN: 10px; COLOR: #000000; PADDING-TOP: 0px } .portlet #loginBoxFull UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .portlet #loginBoxFull LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: = none; PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-TOP: 2px } .portlet #loginBoxFull LI LABEL { MARGIN-TOP: 3px; FONT-WEIGHT: bold; FLOAT: left; WIDTH: 80px; = MARGIN-RIGHT: 3px } .portlet #loginBoxFull LI INPUT[type=3D'text'] { BORDER-RIGHT: #ccc 2px solid; BORDER-TOP: #ccc 2px solid; FONT-SIZE: = 100%; FLOAT: left; BORDER-LEFT: #ccc 2px solid; BORDER-BOTTOM: #ccc 2px = solid } .portlet #loginBoxFull LI INPUT[type=3D'password'] { BORDER-RIGHT: #ccc 2px solid; BORDER-TOP: #ccc 2px solid; FONT-SIZE: = 100%; FLOAT: left; BORDER-LEFT: #ccc 2px solid; BORDER-BOTTOM: #ccc 2px = solid } .portlet #loginBoxFull .forgot { FLOAT: left; MARGIN-LEFT: 83px } .portlet #loginBoxFull A { FONT-SIZE: 0.85em } .portlet #loginBoxFull P A { FONT-SIZE: 1em } .portlet #loginBoxFull P.welcome A { FONT-SIZE: 1em } .portlet #loginBoxFull LI INPUT.submit { MARGIN-LEFT: 83px } .portlet #loginPaneShort { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; MARGIN: 9px; = BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid } .portlet #loginFooter { PADDING-RIGHT: 0pt; PADDING-LEFT: 0px; FONT-SIZE: 0.85em; = BACKGROUND-ATTACHMENT: scroll; BACKGROUND-IMAGE: none; PADDING-BOTTOM: = 9px; MARGIN: 0px; COLOR: #444444; PADDING-TOP: 0px; BACKGROUND-REPEAT: = repeat; BACKGROUND-COLOR: #eeeeee; background-x-position: 0%; = background-y-position: 0% } .portlet #loginFooter UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .portlet #loginFooter UL LI { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FLOAT: left; BACKGROUND-IMAGE: = none; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: #999 1px dotted; = PADDING-TOP: 0px } .portlet #loginFooter UL LI:first-child { BORDER-LEFT-STYLE: none } .portlet #loginFooter UL LI .active:link { COLOR: #666; TEXT-DECORATION: none } #courseMenu { BORDER-TOP: #ddd 1px solid; COLOR: #444; BACKGROUND-COLOR: #ededed } #moduleBorder { BORDER-LEFT-COLOR: #597298; BORDER-BOTTOM-COLOR: #597298; = BORDER-TOP-COLOR: #597298; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #597298 } #moduleBody { BORDER-LEFT-COLOR: #597298; BORDER-BOTTOM-COLOR: #597298; = BORDER-TOP-COLOR: #597298; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #597298 } #moduleTitle { COLOR: #fff; BACKGROUND-COLOR: #819ac0 } #schemePreviewBody { COLOR: #000000; BACKGROUND-COLOR: #fff } #schemePreview { COLOR: #000000; BACKGROUND-COLOR: #cdcdcd } #schemePreviewHead { COLOR: #000000; BACKGROUND-COLOR: #fff1c5 } .qIncomplete { BORDER-RIGHT: #cccccc 1px solid; BORDER-TOP: #cccccc 1px solid; = DISPLAY: block; FONT-WEIGHT: bold; FLOAT: left; MARGIN: 1px; = BORDER-LEFT: #cccccc 1px solid; WIDTH: 30px; BORDER-BOTTOM: #cccccc 1px = solid; TEXT-ALIGN: center } .qComplete { BORDER-RIGHT: #999999 1px solid; BORDER-TOP: #999999 1px solid; = DISPLAY: block; FONT-WEIGHT: bold; FLOAT: left; MARGIN: 1px; = BORDER-LEFT: #999999 1px solid; WIDTH: 30px; COLOR: #003366; = BORDER-BOTTOM: #999999 1px solid; BACKGROUND-COLOR: #cccccc; TEXT-ALIGN: = center } ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/branding/colorpalettes/wsu_production_colors/colorpalette.css?v=9.0.440.7 #topTabActive { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; BORDER-TOP-COLOR: = #fff; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: #fff } TABLE.appTabs TBODY TR TD.active A { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; BORDER-TOP-COLOR: = #fff; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: #fff } TABLE.appTabs TBODY TR TD.active A:hover { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; BORDER-TOP-COLOR: = #fff; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: #fff } #topTab { BORDER-LEFT-COLOR: #565a5c; BORDER-BOTTOM-WIDTH: 0px; = BORDER-BOTTOM-COLOR: #565a5c; COLOR: #fff; BORDER-TOP-COLOR: #565a5c; = BACKGROUND-COLOR: black; BORDER-RIGHT-COLOR: #565a5c } TABLE.appTabs TBODY TR TD A { BORDER-LEFT-COLOR: #565a5c; BORDER-BOTTOM-WIDTH: 0px; = BORDER-BOTTOM-COLOR: #565a5c; COLOR: #fff; BORDER-TOP-COLOR: #565a5c; = BACKGROUND-COLOR: black; BORDER-RIGHT-COLOR: #565a5c } TABLE.appTabs TBODY TR TD A:hover { BORDER-LEFT-COLOR: #67675c; BORDER-BOTTOM-WIDTH: 0px; = BORDER-BOTTOM-COLOR: #67675c; BORDER-TOP-COLOR: #67675c; = BACKGROUND-COLOR: #bbbdb7; BORDER-RIGHT-COLOR: #67675c } DIV.topTabs { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } #topFrame { BACKGROUND-COLOR: #0c5449 } .bgBanner { BACKGROUND-COLOR: #0c5449 } #contentFrame { BACKGROUND-COLOR: #999 } #schemePreview { BACKGROUND-COLOR: #999 } BODY { BACKGROUND-COLOR: #999 } BODY.ineditmode { BACKGROUND-COLOR: #999 } BODY.topFrame { BACKGROUND-COLOR: #999 } DIV.breadcrumbs { BACKGROUND-COLOR: #999 } DIV.paneTabs UL LI.active { BACKGROUND-COLOR: #999 } DIV.paneTabs UL LI { BACKGROUND-COLOR: #999 } BODY.wizardBody DIV.containerWizard { BACKGROUND-COLOR: #999 } DIV.breadcrumbs { BORDER-LEFT-COLOR: #7a8c50; BORDER-BOTTOM-COLOR: #7a8c50; = BORDER-TOP-COLOR: #7a8c50; BORDER-RIGHT-COLOR: #7a8c50 } DIV.menuWrap { =09 } #navigationPane { =09 } DIV.navigationPane { =09 } BODY.ineditmode DIV.listCm { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } BODY.ineditmode DIV#editmodeWrapper { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.breadcrumbs DIV.path { BACKGROUND-COLOR: #dfddd1 } DIV.breadcrumbs DIV.simplePath { BACKGROUND-COLOR: #dfddd1 } DIV.breadcrumbs DIV.topRound B { BACKGROUND-COLOR: #dfddd1 } DIV.breadcrumbs DIV.bottomRound B { BACKGROUND-COLOR: #dfddd1 } DIV.breadcrumbs DIV.path OL LI.root { BACKGROUND-COLOR: #999 } DIV.simplePath OL LI.root { BACKGROUND-COLOR: #999 } DIV.simplePath A { COLOR: #fff } DIV.breadcrumbs DIV.path OL LI.root A { COLOR: #fff } DIV.breadcrumbs DIV.simplePath OL LI.root A { COLOR: #fff } DIV.simplePath A { COLOR: #fff } DIV.breadcrumbs DIV.path OL LI.root A:hover { COLOR: #fff } DIV.breadcrumbs DIV.simplePath OL LI.root A:hover { COLOR: #fff } DIV.breadcrumbs DIV.path A { COLOR: #222 } DIV.breadcrumbs DIV.path A:hover { COLOR: #000 } DIV.breadcrumbs DIV.path { COLOR: #000 } DIV.simplePath { COLOR: #000 } .navPalette H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.listCm H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.tools H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.classicCs .navPalette H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.explore H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.myPlaces H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.tools DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.myPlaces DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.explore DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.controlpanel H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.controlpanel DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } .navPalette H2 A { COLOR: #fff } DIV.controlpanel H2 A { COLOR: #fff } DIV.controlpanel H2 A:hover { COLOR: #fff } DIV.navPaletteExpCol DIV.navPaletteContent H2 A { COLOR: #fff } DIV.navPaletteExpCol DIV.navPaletteContent H2 A:hover { COLOR: #fff } DIV.tools UL { BACKGROUND-COLOR: #dfddd1 } DIV.pickerMenu UL { BACKGROUND-COLOR: #dfddd1 } DIV.tools DIV.bottomRound B { BACKGROUND-COLOR: #dfddd1 } DIV.tools UL LI A.submenuLink { BORDER-LEFT-COLOR: #0c5449; BORDER-BOTTOM-COLOR: #0c5449; = BORDER-TOP-COLOR: #0c5449; BORDER-RIGHT-COLOR: #0c5449 } DIV.tools UL LI A { BORDER-LEFT-COLOR: #0c5449; BORDER-BOTTOM-COLOR: #0c5449; = BORDER-TOP-COLOR: #0c5449; BORDER-RIGHT-COLOR: #0c5449 } DIV.controlpanel UL { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.discover UL LI H3 A { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.singleControl A { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.singleControl DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.singleControl DIV.bottomRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.discover A { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.discover DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.discover DIV.bottomRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.controlpanel DIV.bottomRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.controlpanel A.submenuLink { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.controlpanel DIV.controlpanelCol B { BACKGROUND-COLOR: #0c5449! important } DIV.controlpanel DIV.topRound B { BACKGROUND-COLOR: #0c5449! important } H3.listCmCol A { BACKGROUND-COLOR: #0c5449! important } DIV.controlpanel UL LI A { BORDER-LEFT-COLOR: #336666; BORDER-BOTTOM-COLOR: #336666; COLOR: #fff; = BORDER-TOP-COLOR: #336666; BORDER-RIGHT-COLOR: #336666 } DIV.controlpanel A.submenuLink { BORDER-LEFT-COLOR: #336666; BORDER-BOTTOM-COLOR: #336666; COLOR: #fff; = BORDER-TOP-COLOR: #336666; BORDER-RIGHT-COLOR: #336666 } DIV.controlpanel A.submenuLink_active { BORDER-LEFT-COLOR: #336666; BORDER-BOTTOM-COLOR: #336666; COLOR: #fff; = BORDER-TOP-COLOR: #336666; BORDER-RIGHT-COLOR: #336666 } DIV.controlpanel UL LI A:hover { BACKGROUND-IMAGE: url(/images/ci/ng/more_options_white.gif) } DIV.controlpanel UL LI A.comboLink:hover { BACKGROUND-IMAGE: url(/images/ci/ng/more_options_white.gif) } DIV.controlpanel A.comboLink_active { BACKGROUND-IMAGE: url(/images/ci/ng/less_options_dark.gif) } DIV.controlpanel A.open { BACKGROUND-IMAGE: url(/images/ci/ng/less_options_dark.gif) } DIV.navPalette A.comboLink_active:hover { BACKGROUND-IMAGE: url(/images/ci/ng/less_options.gif) } DIV.navPalette A.open:hover { BACKGROUND-IMAGE: url(/images/ci/ng/less_options.gif) } DIV.navPalette A.submenuLink_active { =09 } DIV.controlpanel UL LI H3 A:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.controlpanel UL LI H3 A.comboLink:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.controlpanel UL LI A.submenuLink:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.controlpanel UL LI H3 A.simpleLink:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.singleControl A:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.discover A:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.controlpanel UL LI H3 A.open { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI H3 A.open:hover { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI H3 A.comboLink_active { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI H3 A.comboLink_active:hover { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI A.submenuLink_active { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI A.submenuLink_active:hover { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI UL.submenu LI A { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.tools UL LI H3 A.comboLink_active { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel A.comboLink { BACKGROUND-IMAGE: url(/images/ci/ng/more_options_white.gif) } DIV.controlpanel A.submenuLink:hover { BACKGROUND-IMAGE: url(/images/ci/ng/list_bullet_white.gif) } DIV.controlpanel UL LI UL.submenu { BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI UL.submenu LI A:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.navDivider { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; COLOR: #555; = BORDER-TOP-COLOR: #fff; BORDER-RIGHT-COLOR: #fff } DIV.singleControl UL LI A { COLOR: #fff } .navPalette DIV.actionBarMicro UL LI A { =09 } DIV.treeViewCs DIV.topRound B { BACKGROUND-COLOR: #0c5449 } DIV.navPaletteExpCol DIV.navPaletteContent { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #fff; = BORDER-RIGHT-COLOR: #000! important } DIV.paneTabs UL { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } DIV.paneTabs UL LI A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #dfddd1; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.external A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #dfddd1; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.personal A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #dfddd1; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.active A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.active A:hover { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI A:hover { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.external A:hover { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.activepersonal A:hover { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } #contentArea { BACKGROUND-POSITION: 0% 0%; BACKGROUND-COLOR: #fff } #schemePreviewBody { BACKGROUND-POSITION: 0% 0%; BACKGROUND-COLOR: #fff } .container { BACKGROUND-POSITION: 0% 0%; BACKGROUND-COLOR: #fff } .contentPane DIV.bottomRound B { BACKGROUND-POSITION: 0% 0%; BACKGROUND-COLOR: #fff } DIV.portal DIV.container { BACKGROUND-COLOR: #dfddd1 } DIV.containerPortal { BACKGROUND-COLOR: #dfddd1 } DIV.portal DIV.bottomRound B { BACKGROUND-COLOR: #dfddd1 } DIV.landing DIV.container { BACKGROUND-COLOR: #dfddd1 } DIV.landing DIV.bottomRound B { BACKGROUND-COLOR: #dfddd1 } DIV.landingPageColumn UL LI A { COLOR: #000000 } DIV.landingPageColumn UL.outcomesLanding LI H3 { BORDER-LEFT-COLOR: #bbbdb7; BORDER-BOTTOM-COLOR: #bbbdb7; COLOR: #333; = BORDER-TOP-COLOR: #bbbdb7; BORDER-RIGHT-COLOR: #bbbdb7 } DIV.landingPageColumn UL LI P { BORDER-LEFT-COLOR: #bbbdb7; BORDER-BOTTOM-COLOR: #bbbdb7; COLOR: #333; = BORDER-TOP-COLOR: #bbbdb7; BORDER-RIGHT-COLOR: #bbbdb7 } #pageHeader { BACKGROUND-COLOR: #cedddb } #schemePreviewHead { BACKGROUND-COLOR: #cedddb } DIV.actionBar { BACKGROUND-COLOR: #cedddb } DIV.contentPaneWide DIV.actionBar { BACKGROUND-COLOR: #cedddb } DIV.actionBar UL { BACKGROUND-COLOR: #cedddb } DIV.localViewToggle { BACKGROUND-COLOR: #cedddb } .navPalette DIV.actionBarMicro { BACKGROUND-COLOR: #cedddb } DIV.contentPane DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.listCm DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.buttonCm DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.treeContainer DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.treeViewCs DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV#lightboxContent H2 { BACKGROUND-COLOR: #cedddb } #lightbox DIV.topRound B { BACKGROUND-COLOR: #cedddb } #puller { BACKGROUND-COLOR: #cedddb } #puller { BORDER-LEFT-COLOR: #000; BORDER-BOTTOM-COLOR: #000; BORDER-TOP-COLOR: = #000; BORDER-RIGHT-COLOR: #000 } DIV.pageTitle H1 { COLOR: #000 } DIV.pageTitle { BORDER-BOTTOM-COLOR: #dfddd1 } DIV.actionBar { BORDER-BOTTOM-COLOR: #dfddd1 } DIV#lightboxContent H2 { BORDER-BOTTOM-COLOR: #dfddd1 } DIV.helphelp { COLOR: #222 } P.helphelp { COLOR: #222 } DIV.pageTitle P { COLOR: #222 } DIV.helphelp A { COLOR: #000 } P.helphelp A { COLOR: #000 } DIV.pageTitle P A { COLOR: #000 } .actionBar UL { BORDER-LEFT-COLOR: #000; BORDER-BOTTOM-COLOR: #000; BORDER-TOP-COLOR: = #000; BORDER-RIGHT-COLOR: #000 } DIV.navPalette DIV.actionBarMicro { BORDER-LEFT-COLOR: #000; BORDER-BOTTOM-COLOR: #000; BORDER-TOP-COLOR: = #000; BORDER-RIGHT-COLOR: #000 } DIV.localViewToggle UL LI A.active { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #b5dfb5 } .navPalette DIV.actionBarMicro UL LI.active A { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #b5dfb5 } .navPalette DIV.actionBarMicro UL LI A:hover { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #b5dfb5 } .navPalette DIV.actionBarMicro UL LI.active A.options { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #b5dfb5 } DIV.localViewToggle UL LI A { COLOR: #000 } DIV.localViewToggle UL LI A.active { COLOR: #000 } DIV.localViewToggle UL LI.separator { BORDER-LEFT-COLOR: #8b835f } #primaryButton { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI.mainButton A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .actionbar_portal UL LI A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.navPalette DIV.actionBarMicro UL LI.mainButton A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } INPUT.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.threadButtons A.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskbuttondiv BUTTON.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskbuttondiv INPUT.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskButtonsContent BUTTON.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskButtonsContent INPUT.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.controls BUTTON.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.controls INPUT.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskbuttondiv BUTTON.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskbuttondiv INPUT.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskButtonsContent BUTTON.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskButtonsContent INPUT.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.controls BUTTON.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.controls INPUT.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.threadButtons A.reply { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.dbThreadInfo P A.reply { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage A.gotopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble_top UL LI.jumptopage A.gotopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .paging A.gotopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } #loginBox LI INPUT[type=3D'submit'] { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .actionBar UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .actionbar_portal UL LI A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.navPalette DIV.actionBarMicro UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .taskbuttondiv BUTTON.submit:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .taskbuttondiv INPUT.submit:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.controls BUTTON.submit:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.controls INPUT.submit:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.threadButtons A.reply:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.dbThreadInfo P A.reply:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage A.gotopage:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.rumble_top UL LI.jumptopage A.gotopage:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .paging A.gotopage:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } #loginBox LI INPUT[type=3D'submit']:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } #secondaryButton { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .actionBar UL LI.search A { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .actionBar UL LI.secondaryButton A { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .actionBar_portal UL LI.search A { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .pageTitle H1 A.secondaryButton { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .taskbuttondiv BUTTON { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .taskbuttondiv INPUT { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .taskButtonsContent BUTTON { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .taskButtonsContent INPUT { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } DIV.controls BUTTON { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } DIV.controls INPUT { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } P.okbutton INPUT { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .actionBar UL LI.secondaryButton A:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } .taskbuttondiv BUTTON:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } .taskbuttondiv INPUT:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } DIV.controls BUTTON:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } DIV.controls INPUT:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } .paging A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble_top UL LI.secondaryControl A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble UL LI.secondaryControl A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble_top A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble A:hover { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble_top UL LI.inventory_paging A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble UL LI.inventory_paging A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } .paging A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble_top UL LI.secondaryControl A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble UL LI.secondaryControl A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble_top A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble_top UL LI.inventory_paging A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble UL LI.inventory_paging A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } #moduleBorder { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BACKGROUND-COLOR: #ffffff; BORDER-RIGHT-COLOR: #999 } #moduleBody { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BACKGROUND-COLOR: #ffffff; BORDER-RIGHT-COLOR: #999 } .portlet { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BACKGROUND-COLOR: #ffffff; BORDER-RIGHT-COLOR: #999 } .portlet H2 SPAN.reorder { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BACKGROUND-COLOR: #ffffff; BORDER-RIGHT-COLOR: #999 } #moduleTitle { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } .portlet H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } .portlet H2:hover { BACKGROUND-COLOR: #cedddb } .portlet H3 { BORDER-LEFT-COLOR: #777; BORDER-BOTTOM-COLOR: #777; COLOR: #000; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } #lightbox H3 { BORDER-LEFT-COLOR: #777; BORDER-BOTTOM-COLOR: #777; COLOR: #000; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } .portlet DIV.portletBlock H4 { BORDER-LEFT-COLOR: #777; BORDER-BOTTOM-COLOR: #777; COLOR: #000; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } .portlet DIV.blockContents H4 { BORDER-LEFT-COLOR: #777; BORDER-BOTTOM-COLOR: #777; COLOR: #000; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } .portlet H2 A { COLOR: #333333 } .actionBar UL LI.buttontotab A { BACKGROUND: #ffcc33 } .actionBar UL LI.buttontotab A:hover { BACKGROUND: #ffcc33 } .actionBar UL LI.secondaryButtonTab A { BACKGROUND: #ffcc33 } .actionBar UL LI.secondaryButtonTab A:hover { BACKGROUND: #ffcc33 } .actionBar UL LI.buttontotab A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999; BORDER-BOTTOM-STYLE: none } .actionBar UL LI.buttontotab A:hover { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999; BORDER-BOTTOM-STYLE: none } .actionBar UL LI.secondaryButtonTab A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999; BORDER-BOTTOM-STYLE: none } .actionBar UL LI.secondaryButtonTab A:hover { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999; BORDER-BOTTOM-STYLE: none } UL.nav LI.sub UL { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .cmdiv UL { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .menumini UL { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.quickAddPal { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.keyboardAccess { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } UL.nav LI.sub UL LI A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .cmdiv A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .menumini A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.actionBarMicro UL.nav LI.sub UL LI A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.paneTabs UL.nav LI.sub UL LI A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } SPAN.currentTags { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .loadingElipse { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.quickAddPal DIV.quickAddPalHeader { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BACKGROUND-COLOR: #ddd; BORDER-RIGHT-COLOR: = #355533 } DIV.quickAddPal DIV.controls { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BORDER-RIGHT-COLOR: #355533 } DIV.keyboardAccess DIV.controls { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BORDER-RIGHT-COLOR: #355533 } .comText DIV.controls { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BORDER-RIGHT-COLOR: #355533 } UL.nav LI.sub UL LI A:hover { COLOR: #000! important; BACKGROUND-COLOR: #fff! important } .cmdiv A:hover { COLOR: #000! important; BACKGROUND-COLOR: #fff! important } .menumini A:hover { COLOR: #000! important; BACKGROUND-COLOR: #fff! important } UL.nav LI.sub UL { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .cmdiv UL { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .menumini UL { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.quickAddPal { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.keyboardAccess { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .cmdiv { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } SPAN.currentTags { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage.inventory_page { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble_top UL LI.jumptopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble_top UL LI.jumptopage.inventory_page { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } LI.inventory_paging INPUT { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.jumptopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.jumptopage INPUT { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage { BACKGROUND-COLOR: #ddd } DIV.rumble UL LI.jumptopage.inventory_page { BACKGROUND-COLOR: #ddd } DIV.rumble_top UL LI.jumptopage { BACKGROUND-COLOR: #ddd } DIV.rumble_top UL LI.jumptopage.inventory_page { BACKGROUND-COLOR: #ddd } DIV.jumptopage { BACKGROUND-COLOR: #ddd } UL.nav LI.sub UL LI A:hover { BORDER-TOP-COLOR: #ddd } .cmdiv UL { BORDER-TOP-COLOR: #ddd } .cmdiv LI.contextmenubar_top A { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BACKGROUND-COLOR: #ddd! important; = BORDER-RIGHT-COLOR: #355533 } .cmdiv LI.contextmenubar_top A:hover { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BACKGROUND-COLOR: #ddd! important; = BORDER-RIGHT-COLOR: #355533 } SPAN.currentTags A.closeCloud { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BACKGROUND-COLOR: #ddd! important; = BORDER-RIGHT-COLOR: #355533 } DIV.quickAddPal H3 { BACKGROUND-COLOR: #ffc59f } DIV.keyboardAccess H3 { BACKGROUND-COLOR: #ffc59f } .searchbar { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BORDER-RIGHT-COLOR: #b5dfb5 } .subActionBar { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BORDER-RIGHT-COLOR: #b5dfb5 } TR.high { BORDER-LEFT-COLOR: #aaa; BORDER-BOTTOM-COLOR: #aaa; BORDER-TOP-COLOR: = #aaa; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: #aaa } TABLE.inventory TBODY TR.high TD { BORDER-LEFT-COLOR: #aaa; BORDER-BOTTOM-COLOR: #aaa; BORDER-TOP-COLOR: = #aaa; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: #aaa } TABLE.inventory TBODY TR.high TH { BORDER-LEFT-COLOR: #aaa; BORDER-BOTTOM-COLOR: #aaa; BORDER-TOP-COLOR: = #aaa; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: #aaa } TABLE.inventory THEAD { BACKGROUND-COLOR: #cfcfcf } TABLE.inventory THEAD TR TH { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #333; = BORDER-TOP-COLOR: #777 } TABLE.inventory TBODY { BORDER-BOTTOM-COLOR: #777 } TABLE.inventory TBODY TR { =09 } TABLE.inventory TBODY TR TD { =09 } TABLE.inventory TBODY TR TH { =09 } TABLE.inventory THEAD TR TH.sorted { =09 } TH.sorted { =09 } TABLE.sortable TH A { COLOR: #333 } DIV.rumble { BACKGROUND-COLOR: #cedddb } DIV.rumble_top { BACKGROUND-COLOR: #cedddb } DIV.dbThreadFooter { BACKGROUND-COLOR: #cedddb } DIV.dbThreadHeader { BACKGROUND-COLOR: #cedddb } .bad { COLOR: #fff; BACKGROUND-COLOR: #8b2145 } .good { COLOR: #fff; BACKGROUND-COLOR: #006666 } FIELDSET.stepcontent OL LI.fieldError { BACKGROUND-COLOR: #fff6b3 } LI.fieldError { BACKGROUND-COLOR: #fff6b3 } DIV.loginBack B { BACKGROUND-COLOR: #fff } DIV.loginBody { BACKGROUND-COLOR: #c8cac4 } #loginContainer { BORDER-LEFT-COLOR: #ffffff; BACKGROUND: #ffffff; BORDER-BOTTOM-COLOR: = #ffffff; BORDER-TOP-COLOR: #ffffff; BORDER-RIGHT-COLOR: #ffffff } #loginBox { BACKGROUND: none transparent scroll repeat 0% 0% } #loginOptions { BACKGROUND: #bbbdb7 } #loginBox LI INPUT[type=3D'text'] { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } #loginBox LI INPUT[type=3D'password'] { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } TEXTAREA:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } #loginBox LI INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } #loginBox LI INPUT[type=3D'password']:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } #loginBox LI TEXTAREA:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } DIV.quickAddPal DIV.field INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } DIV.quickAddPal DIV.field SELECT:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } DIV.quickAddPal DIV.field TEXTAREA:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } #loginOptions UL LI A { COLOR: #000; BORDER-TOP-COLOR: #0c5449; BACKGROUND-COLOR: #bbbdb7 } #loginOptions UL LI.subOption A { COLOR: #000; BORDER-TOP-COLOR: #0c5449; BACKGROUND-COLOR: #bbbdb7 } #loginOptions UL LI A:hover { BACKGROUND-COLOR: #cedddb } #loginOptions UL LI.subOption A:hover { BACKGROUND-COLOR: #cedddb } #loginText { BACKGROUND-COLOR: #bbbdb7 } #loginText P { COLOR: #000 } #loginHeader { BACKGROUND: #dfddd1 } #loginLang { BACKGROUND: #dfddd1 } DIV.listCm DIV.bottomRound B { BACKGROUND: #ffffff } DIV.buttonCm DIV.bottomRound B { BACKGROUND: #ffffff } DIV.contentTree DIV.bottomRound B { BACKGROUND: #ffffff } DIV.contentTree DIV.bottomRound B { BACKGROUND: #ffffff } DIV.navPaletteCol DIV.controlpanelCol B { BACKGROUND-COLOR: #13621c } DIV.navPaletteCol DIV.listCmCol B { BACKGROUND-COLOR: #617057 } DIV.navPaletteCol DIV.bottomRound B { BACKGROUND-COLOR: #617057 } DIV.navPaletteCol DIV.topRound B { BACKGROUND-COLOR: #617057 } DIV.listCm DIV.listCmCol B { BACKGROUND-COLOR: #0c5449! important } TABLE.inventory TBODY TR.gray TD { BACKGROUND-COLOR: #f0f0f0 } TABLE.inventory TBODY TR.gray TH { BACKGROUND-COLOR: #f0f0f0 } TABLE.inventory TBODY TR TD.sorted { BACKGROUND-COLOR: #eeeeee } UL.easylist { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.contentList LI { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } .contentPageItem { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.noimg LI { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.buildList LI { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.contentListPlain LI { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.buildList LI H3.item:hover { BACKGROUND: #efefef } UL.contentList LI H3.item:hover { BACKGROUND: #efefef } UL.contentListPlain LI H3.item:hover { BACKGROUND: #efefef } H3 SPAN.reorder { BACKGROUND-COLOR: #ededed } .portlet H2 SPAN.reorder { BACKGROUND-COLOR: #ddd } DIV.listCm UL.courseMenu LI SPAN.reorder { BACKGROUND-COLOR: #ddd } DIV.listCm UL.courseMenu LI.invisible SPAN.reorder { BACKGROUND-COLOR: #ddd } DIV.steptitle { BACKGROUND: #aaa; COLOR: #fff } H3.steptitle { BACKGROUND: #aaa; COLOR: #fff } DIV.steptitle SPAN { BACKGROUND: #dfdddb; COLOR: #000000 } H3.steptitle SPAN { BACKGROUND: #dfdddb; COLOR: #000000 } .stepHelp { COLOR: #666666 } FIELDSET.stepcontent OL LI.stepHelp { COLOR: #666666 } FIELDSET.stepcontent OL LI { BORDER-BOTTOM-COLOR: #eeeeee } UL.containerTabs { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } UL.containerTabs LI.active A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } UL.containerTabs LI.active H3 { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } .contentAreaBlock { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } .modeSwitch { BORDER-LEFT-COLOR: #cedddb; BORDER-BOTTOM-COLOR: #cedddb; COLOR: #fff; = BORDER-TOP-COLOR: #cedddb; BORDER-RIGHT-COLOR: #cedddb } .read-on { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } .read-off { COLOR: #444; BACKGROUND-COLOR: #0c5449 } .switcherLabel { COLOR: #000 } DIV.helpLink A.browseIcon { BORDER-LEFT-COLOR: #333; BORDER-BOTTOM-COLOR: #000; BORDER-TOP-COLOR: = #333; BORDER-RIGHT-COLOR: #000 } A.cmimg { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.legal { BORDER-LEFT-COLOR: #9f9e8b; BORDER-BOTTOM-COLOR: #9f9e8b; = BORDER-TOP-COLOR: #9f9e8b; BORDER-RIGHT-COLOR: #9f9e8b } DIV.additionalInfo { BORDER-LEFT-COLOR: #9f9e8b; BORDER-BOTTOM-COLOR: #9f9e8b; = BORDER-TOP-COLOR: #9f9e8b; BORDER-RIGHT-COLOR: #9f9e8b } #copyright { COLOR: #2d341e } #copyright A { COLOR: #2d341e } .installation { COLOR: #000000! important } #lightbox DIV#lightboxContent { BORDER-LEFT-COLOR: #fff6b3; BACKGROUND: #000; BORDER-BOTTOM-COLOR: = #fff6b3; BORDER-TOP-COLOR: #fff6b3; BORDER-RIGHT-COLOR: #fff6b3 } .myPlacesContent { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; BORDER-TOP-COLOR: = #fff; BORDER-RIGHT-COLOR: #fff } DIV.actionBar UL.nav LI.sub UL LI { COLOR: #fff6b3 } DIV.actionBar UL.nav LI { COLOR: #fff6b3 } DIV.actionBar UL.nav LI.sub { COLOR: #ccc } .actionBar UL LI { COLOR: #fff } .actionBar UL LI.mainButton { COLOR: #fff } .actionbar_portal UL LI { COLOR: #fff } DIV.actionBar UL.nav LI.sub A { =09 } DIV.actionBar UL.nav LI.sub A:hover { =09 } DIV.actionBar UL.nav LI A { =09 } DIV.actionBar UL.nav LI A:hover { =09 } element { =09 } ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/branding/_1_1/brand.css?ts=1241886188000&v=9.0.440.7 #contentFrame { COLOR: #000000; BACKGROUND-COLOR: #999999 } #schemePreview { COLOR: #000000; BACKGROUND-COLOR: #999999 } BODY { COLOR: #000000; BACKGROUND-COLOR: #999999 } BODY.ineditmode { COLOR: #000000; BACKGROUND-COLOR: #999999 } BODY.topFrame { COLOR: #000000; BACKGROUND-COLOR: #999999 } DIV.breadcrumbs { COLOR: #000000; BACKGROUND-COLOR: #999999 } DIV.paneTabs UL LI.active { COLOR: #000000; BACKGROUND-COLOR: #999999 } DIV.paneTabs UL LI { COLOR: #000000; BACKGROUND-COLOR: #999999 } BODY.wizardBody DIV.containerWizard { COLOR: #000000; BACKGROUND-COLOR: #999999 } #contentArea { COLOR: #000000; BACKGROUND-COLOR: #ffffff } #schemePreviewBody { COLOR: #000000; BACKGROUND-COLOR: #ffffff } .container { COLOR: #000000; BACKGROUND-COLOR: #ffffff } .contentPane DIV.bottomRound B { COLOR: #000000; BACKGROUND-COLOR: #ffffff } #primaryButton { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .actionBar UL LI A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .actionBar UL LI.mainButton A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .actionbar_portal UL LI A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.navPalette DIV.actionBarMicro UL LI.mainButton A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } INPUT.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.threadButtons A.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskbuttondiv BUTTON.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskbuttondiv INPUT.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskButtonsContent BUTTON.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskButtonsContent INPUT.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.controls BUTTON.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.controls INPUT.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskbuttondiv BUTTON.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskbuttondiv INPUT.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskButtonsContent BUTTON.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskButtonsContent INPUT.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.controls BUTTON.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.controls INPUT.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.threadButtons A.reply { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.dbThreadInfo P A.reply { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.rumble UL LI.jumptopage A.gotopage { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.rumble_top UL LI.jumptopage A.gotopage { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .paging A.gotopage { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } #loginBox LI INPUT[type=3D'submit'] { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } #secondaryButton { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .actionBar UL LI.search A { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .actionBar UL LI.secondaryButton A { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .actionBar_portal UL LI.search A { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A:hover { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .pageTitle H1 A.secondaryButton { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .taskbuttondiv BUTTON { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .taskbuttondiv INPUT { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .taskButtonsContent BUTTON { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .taskButtonsContent INPUT { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } DIV.controls BUTTON { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } DIV.controls INPUT { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } P.okbutton INPUT { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } #pageHeader { COLOR: #000000; BACKGROUND-COLOR: #cedddb } #schemePreviewHead { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.pageTitle { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.actionBar { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.contentPaneWide DIV.actionBar { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.actionBar UL { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.localViewToggle { COLOR: #000000; BACKGROUND-COLOR: #cedddb } .navPalette DIV.actionBarMicro { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.contentPane DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.listCm DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.buttonCm DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.treeContainer DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.treeViewCs DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV#lightboxContent H2 { COLOR: #000000; BACKGROUND-COLOR: #cedddb } #lightbox DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } #puller { COLOR: #000000; BACKGROUND-COLOR: #cedddb } #topFrame { COLOR: #ffffff } DIV.topTabs DIV.topGlobalLinks UL LI A.topLevel { COLOR: #ffffff } DIV.topTabs-compact DIV.topGlobalLinks UL LI A.topLevel { COLOR: #ffffff } DIV.topTabs DIV.hotItems UL.hotLinks LI A { COLOR: #ffffff } #topFrame { BACKGROUND-POSITION: 0px 0px; BACKGROUND-IMAGE: url(bg3.jpg); = BACKGROUND-REPEAT: repeat; BACKGROUND-COLOR: #0c5449 } .bgBanner { BACKGROUND-POSITION: 0px 0px; BACKGROUND-IMAGE: url(bg3.jpg); = BACKGROUND-REPEAT: repeat; BACKGROUND-COLOR: #0c5449 } DIV.topTabs-compact { BACKGROUND: #0c5449 } #topTab { COLOR: #ffffff; BACKGROUND-COLOR: #000000 } TABLE.appTabs TBODY TR TD A { COLOR: #ffffff; BACKGROUND-COLOR: #000000 } DIV.topTabs-compact TABLE.appTabs TR TD A { COLOR: #ffffff; BACKGROUND-COLOR: #000000 } #topTabActive { COLOR: #000000; BACKGROUND-COLOR: #ffffff } TABLE.appTabs TBODY TR TD.active A { COLOR: #000000; BACKGROUND-COLOR: #ffffff } TABLE.appTabs TBODY TR TD.active A:hover { COLOR: #000000; BACKGROUND-COLOR: #ffffff } DIV.topTabs-compact TABLE.appTabs TR TD.active A { COLOR: #000000; BACKGROUND-COLOR: #ffffff } DIV.topTabs-compact TABLE.appTabs TR TD.active A:hover { COLOR: #000000; BACKGROUND-COLOR: #ffffff } TABLE.appTabs TBODY TR TD A:hover { COLOR: #000000; BACKGROUND-COLOR: #ffffff } DIV.topTabs-compact TABLE.appTabs TR TD A:hover { COLOR: #000000; BACKGROUND-COLOR: #ffffff } #moduleTitle { COLOR: #ffffff; BACKGROUND-COLOR: #0c5449 } .portlet H2 { COLOR: #ffffff; BACKGROUND-COLOR: #0c5449 } .portlet H2 SPAN.reorder { COLOR: #ffffff; BACKGROUND-COLOR: #0c5449 } .portlet H2 A { COLOR: #ffffff; BACKGROUND-COLOR: transparent } #moduleBorder { BORDER-LEFT-COLOR: #999999; BORDER-BOTTOM-COLOR: #999999; COLOR: = #000000; BORDER-TOP-COLOR: #999999; BACKGROUND-COLOR: #ffffff; = BORDER-RIGHT-COLOR: #999999 } #moduleBody { BORDER-LEFT-COLOR: #999999; BORDER-BOTTOM-COLOR: #999999; COLOR: = #000000; BORDER-TOP-COLOR: #999999; BACKGROUND-COLOR: #ffffff; = BORDER-RIGHT-COLOR: #999999 } .portlet { BORDER-LEFT-COLOR: #999999; BORDER-BOTTOM-COLOR: #999999; COLOR: = #000000; BORDER-TOP-COLOR: #999999; BACKGROUND-COLOR: #ffffff; = BORDER-RIGHT-COLOR: #999999 } ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/javascript/i18n.js?v=9.0.440.7 /* = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D * General i18n functions * Copyright (c) 2001 by Blackboard, Inc., * 1899 L Street, NW, 5th Floor * Washington, DC, 20036, U.S.A. * All rights reserved. * Submit RFC & bugs report to: aklimenko@blackboard.com * This software is the confidential and proprietary information * of Blackboard, Inc. ("Confidential Information"). You * shall not disclose such Confidential Information and shall use * it only in accordance with the terms of the license agreement * you entered into with Blackboard. * = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/ // Public methods: these methods are instance methods of dynamically = generated // Javascript bundle objects. See Java class = blackboard.platform.intl.JsResource // and Perl module CI::L10n::JsResource. // Get a string from a resource bundle function i18n_get_string(key) { return this[key]; } // Get string and perform substitution using positions (arrays) or names = (object) function i18n_get_formatted_string(key, parameters) { var string =3D this.getString(key); if (string && parameters) { // Convert to object keyed by string representation of array index if ( parameters.constructor.toString() =3D=3D new = Array().constructor.toString() ) { var array =3D parameters; parameters =3D new Object(); for (var i =3D 0; i < array.length; ++i) { parameters[''+i] =3D array[i]; } } string =3D _substitute(string, parameters); } return string; } // internal methods function _substitute(string, parameters) { for (key in parameters) { string =3D eval( "string.replace(/\\\{" + key + "\\\}/g, '" + = _escape(parameters[key]) + "')" ); } return _unescape(string); } function _escape(string) { // ?=3D does not seem to work return (''+string).replace(/^'|([^\\])'/g, "$1\\'").replace(/\n/g, = "&crlf;"); } function _unescape(string) { return string.replace(/&crlf;/g, "\n"); } ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/javascript/prototype.js?v=9.0.440.7 /* Prototype JavaScript framework, version 1.6.0.2 * (c) 2005-2008 Sam Stephenson * * Prototype is freely distributable under the terms of an MIT-style = license. * For details, see the Prototype web site: http://www.prototypejs.org/ * = *------------------------------------------------------------------------= --*/ var Prototype =3D { Version: '1.6.0.2', Browser: { IE: !!(window.attachEvent && !window.opera), Opera: !!window.opera, WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1, Gecko: navigator.userAgent.indexOf('Gecko') > -1 && = navigator.userAgent.indexOf('KHTML') =3D=3D -1, MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/) }, BrowserFeatures: { XPath: !!document.evaluate, ElementExtensions: !!window.HTMLElement, SpecificElementExtensions: document.createElement('div').__proto__ && document.createElement('div').__proto__ !=3D=3D document.createElement('form').__proto__ }, ScriptFragment: ' */ =20 ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/javascript/accessibleSelect.js?v=9.0.440.7 var AccessibleSelect =3D {}; /** * Wire up the accessible event listeners to any s on the page = that have an onchange listener already */ AccessibleSelect.initializePage =3D function() { var selects =3D document.getElementsByTagName("select"); for ( var i =3D 0; i < selects.length; i++ ) { var currentSelect =3D selects[i]; if ( currentSelect.onchange !=3D null ) { =20 currentSelect.changed =3D false; currentSelect.onfocus =3D AccessibleSelect.onfocus; currentSelect.onkeydown =3D AccessibleSelect.onkeydown; currentSelect.onclick =3D AccessibleSelect.onclick; currentSelect.onchange =3D AccessibleSelect.createOnchange( = currentSelect.onchange ); =20 } } } /** * Functor that creates an onchange function which if the has = actually been changed, will call the * specified callback (i.e. the original onchange function ) */ AccessibleSelect.createOnchange =3D function( callback ) { return function( theElement ) { var theSelect; if ( theElement && theElement.value ) { theSelect =3D theElement; } else { theSelect =3D this; } =20 if (theSelect.changed) { // bind "theSelect" as the "this" for the callback. callback.apply(theSelect); return true;=20 } else { return false; } } } /** * Event listener called when the is clicked */ AccessibleSelect.onclick =3D function() { this.changed =3D true; // If the select size is greater than 0, then the onchange event = occurs before the onclick event // and the "changed" attribute is false when the onchange event = listener method runs and the select=20 // element's onchange method does not get called. Therefore, we are = going to call it here. if( this.size > 0 ) this.onchange(this); } /** * Event listener called when the gains focus */ AccessibleSelect.onfocus =3D function() { this.initValue =3D this.value; return true; } /** * Event listener called when a key is pressed in the . =20 */ AccessibleSelect.onkeydown =3D function(e) { var theEvent; var keyCodeTab =3D "9"; var keyCodeEnter =3D "13"; var keyCodeEsc =3D "27"; if (e) { theEvent =3D e; } else { theEvent =3D event; } var largeSize =3D (this.size > 0); =20 if ((theEvent.keyCode =3D=3D keyCodeEnter || theEvent.keyCode =3D=3D = keyCodeTab) && ( largeSize || this.value !=3D this.initValue) ) { this.initValue =3D this.value; this.changed =3D true; this.onchange(this); return false; } else if (theEvent.keyCode =3D=3D keyCodeEsc) { this.value =3D this.initValue; return false; } else { this.changed =3D false; } =09 return true; =20 } // This script does not work for Safari. See AS-110404, AS-110426 if (!/webkit|khtml/i.test(navigator.userAgent)) { //When the page is loaded, initialize the select boxes if ( window.addEventListener) { window.addEventListener('load', AccessibleSelect.initializePage, = false); } else if ( window.attachEvent ) { window.attachEvent('onload', AccessibleSelect.initializePage); } } ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/portal/dwr_open/interface/UserPageInstructionsSettingDWRFacade.js?v=9.0.440.7 =0A= // Provide a default path to dwr.engine=0A= if (dwr =3D=3D null) var dwr =3D {};=0A= if (dwr.engine =3D=3D null) dwr.engine =3D {};=0A= if (DWREngine =3D=3D null) var DWREngine =3D dwr.engine;=0A= =0A= if (UserPageInstructionsSettingDWRFacade =3D=3D null) var = UserPageInstructionsSettingDWRFacade =3D {};=0A= UserPageInstructionsSettingDWRFacade._path =3D = '/webapps/portal/dwr_open';=0A= UserPageInstructionsSettingDWRFacade.getShowPageInstructions =3D = function(callback) {=0A= dwr.engine._execute(UserPageInstructionsSettingDWRFacade._path, = 'UserPageInstructionsSettingDWRFacade', 'getShowPageInstructions', = callback);=0A= }=0A= UserPageInstructionsSettingDWRFacade.setShowPageInstructions =3D = function(p0, callback) {=0A= dwr.engine._execute(UserPageInstructionsSettingDWRFacade._path, = 'UserPageInstructionsSettingDWRFacade', 'setShowPageInstructions', p0, = callback);=0A= }=0A= ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/portal/dwr_open/engine.js?v=9.0.440.7 /*=0A= * Copyright 2005 Joe Walker=0A= *=0A= * Licensed under the Apache License, Version 2.0 (the "License");=0A= * you may not use this file except in compliance with the License.=0A= * You may obtain a copy of the License at=0A= *=0A= * http://www.apache.org/licenses/LICENSE-2.0=0A= *=0A= * Unless required by applicable law or agreed to in writing, software=0A= * distributed under the License is distributed on an "AS IS" BASIS,=0A= * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or = implied.=0A= * See the License for the specific language governing permissions and=0A= * limitations under the License.=0A= */=0A= =0A= /**=0A= * Declare an object to which we can add real functions.=0A= */=0A= if (dwr =3D=3D null) var dwr =3D {};=0A= if (dwr.engine =3D=3D null) dwr.engine =3D {};=0A= if (DWREngine =3D=3D null) var DWREngine =3D dwr.engine;=0A= =0A= /**=0A= * Set an alternative error handler from the default alert box.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.setErrorHandler =3D function(handler) {=0A= dwr.engine._errorHandler =3D handler;=0A= };=0A= =0A= /**=0A= * Set an alternative warning handler from the default alert box.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.setWarningHandler =3D function(handler) {=0A= dwr.engine._warningHandler =3D handler;=0A= };=0A= =0A= /**=0A= * Setter for the text/html handler - what happens if a DWR request gets = an HTML=0A= * reply rather than the expected Javascript. Often due to login timeout=0A= */=0A= dwr.engine.setTextHtmlHandler =3D function(handler) {=0A= dwr.engine._textHtmlHandler =3D handler;=0A= };=0A= =0A= /**=0A= * Set a default timeout value for all calls. 0 (the default) turns = timeouts off.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.setTimeout =3D function(timeout) {=0A= dwr.engine._timeout =3D timeout;=0A= };=0A= =0A= /**=0A= * The Pre-Hook is called before any DWR remoting is done.=0A= * @see getahead.org/dwr/browser/engine/hooks=0A= */=0A= dwr.engine.setPreHook =3D function(handler) {=0A= dwr.engine._preHook =3D handler;=0A= };=0A= =0A= /**=0A= * The Post-Hook is called after any DWR remoting is done.=0A= * @see getahead.org/dwr/browser/engine/hooks=0A= */=0A= dwr.engine.setPostHook =3D function(handler) {=0A= dwr.engine._postHook =3D handler;=0A= };=0A= =0A= /**=0A= * Custom headers for all DWR calls=0A= * @see getahead.org/dwr/????=0A= */=0A= dwr.engine.setHeaders =3D function(headers) {=0A= dwr.engine._headers =3D headers;=0A= };=0A= =0A= /**=0A= * Custom parameters for all DWR calls=0A= * @see getahead.org/dwr/????=0A= */=0A= dwr.engine.setParameters =3D function(parameters) {=0A= dwr.engine._parameters =3D parameters;=0A= };=0A= =0A= /** XHR remoting type constant. See dwr.engine.set[Rpc|Poll]Type() */=0A= dwr.engine.XMLHttpRequest =3D 1;=0A= =0A= /** XHR remoting type constant. See dwr.engine.set[Rpc|Poll]Type() */=0A= dwr.engine.IFrame =3D 2;=0A= =0A= /** XHR remoting type constant. See dwr.engine.setRpcType() */=0A= dwr.engine.ScriptTag =3D 3;=0A= =0A= /**=0A= * Set the preferred remoting type.=0A= * @param newType One of dwr.engine.XMLHttpRequest or dwr.engine.IFrame = or dwr.engine.ScriptTag=0A= * @see getahead.org/dwr/browser/engine/options=0A= */=0A= dwr.engine.setRpcType =3D function(newType) {=0A= if (newType !=3D dwr.engine.XMLHttpRequest && newType !=3D = dwr.engine.IFrame && newType !=3D dwr.engine.ScriptTag) {=0A= dwr.engine._handleError(null, { name:"dwr.engine.invalidRpcType", = message:"RpcType must be one of dwr.engine.XMLHttpRequest or = dwr.engine.IFrame or dwr.engine.ScriptTag" });=0A= return;=0A= }=0A= dwr.engine._rpcType =3D newType;=0A= };=0A= =0A= /**=0A= * Which HTTP method do we use to send results? Must be one of "GET" or = "POST".=0A= * @see getahead.org/dwr/browser/engine/options=0A= */=0A= dwr.engine.setHttpMethod =3D function(httpMethod) {=0A= if (httpMethod !=3D "GET" && httpMethod !=3D "POST") {=0A= dwr.engine._handleError(null, { name:"dwr.engine.invalidHttpMethod", = message:"Remoting method must be one of GET or POST" });=0A= return;=0A= }=0A= dwr.engine._httpMethod =3D httpMethod;=0A= };=0A= =0A= /**=0A= * Ensure that remote calls happen in the order in which they were sent? = (Default: false)=0A= * @see getahead.org/dwr/browser/engine/ordering=0A= */=0A= dwr.engine.setOrdered =3D function(ordered) {=0A= dwr.engine._ordered =3D ordered;=0A= };=0A= =0A= /**=0A= * Do we ask the XHR object to be asynchronous? (Default: true)=0A= * @see getahead.org/dwr/browser/engine/options=0A= */=0A= dwr.engine.setAsync =3D function(async) {=0A= dwr.engine._async =3D async;=0A= };=0A= =0A= /**=0A= * Does DWR poll the server for updates? (Default: false)=0A= * @see getahead.org/dwr/browser/engine/options=0A= */=0A= dwr.engine.setActiveReverseAjax =3D function(activeReverseAjax) {=0A= if (activeReverseAjax) {=0A= // Bail if we are already started=0A= if (dwr.engine._activeReverseAjax) return;=0A= dwr.engine._activeReverseAjax =3D true;=0A= dwr.engine._poll();=0A= }=0A= else {=0A= // Can we cancel an existing request?=0A= if (dwr.engine._activeReverseAjax && dwr.engine._pollReq) = dwr.engine._pollReq.abort();=0A= dwr.engine._activeReverseAjax =3D false;=0A= }=0A= // TODO: in iframe mode, if we start, stop, start then the second = start may=0A= // well kick off a second iframe while the first is still about to = return=0A= // we should cope with this but we don't=0A= };=0A= =0A= /**=0A= * The default message handler.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.defaultErrorHandler =3D function(message, ex) {=0A= dwr.engine._debug("Error: " + ex.name + ", " + ex.message, true);=0A= if (message =3D=3D null || message =3D=3D "") alert("A server error = has occured.");=0A= // Ignore NS_ERROR_NOT_AVAILABLE if Mozilla is being narky=0A= else if (message.indexOf("0x80040111") !=3D -1) = dwr.engine._debug(message);=0A= else alert(message);=0A= };=0A= =0A= /**=0A= * The default warning handler.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.defaultWarningHandler =3D function(message, ex) {=0A= dwr.engine._debug(message);=0A= };=0A= =0A= /**=0A= * For reduced latency you can group several remote calls together using = a batch.=0A= * @see getahead.org/dwr/browser/engine/batch=0A= */=0A= dwr.engine.beginBatch =3D function() {=0A= if (dwr.engine._batch) {=0A= dwr.engine._handleError(null, { name:"dwr.engine.batchBegun", = message:"Batch already begun" });=0A= return;=0A= }=0A= dwr.engine._batch =3D dwr.engine._createBatch();=0A= };=0A= =0A= /**=0A= * Finished grouping a set of remote calls together. Go and execute them = all.=0A= * @see getahead.org/dwr/browser/engine/batch=0A= */=0A= dwr.engine.endBatch =3D function(options) {=0A= var batch =3D dwr.engine._batch;=0A= if (batch =3D=3D null) {=0A= dwr.engine._handleError(null, { name:"dwr.engine.batchNotBegun", = message:"No batch in progress" });=0A= return;=0A= }=0A= dwr.engine._batch =3D null;=0A= if (batch.map.callCount =3D=3D 0) return;=0A= =0A= // The hooks need to be merged carefully to preserve ordering=0A= if (options) dwr.engine._mergeBatch(batch, options);=0A= =0A= // In ordered mode, we don't send unless the list of sent items is = empty=0A= if (dwr.engine._ordered && dwr.engine._batchesLength !=3D 0) {=0A= dwr.engine._batchQueue[dwr.engine._batchQueue.length] =3D batch;=0A= }=0A= else {=0A= dwr.engine._sendData(batch);=0A= }=0A= };=0A= =0A= /** @deprecated */=0A= dwr.engine.setPollMethod =3D function(type) { = dwr.engine.setPollType(type); };=0A= dwr.engine.setMethod =3D function(type) { dwr.engine.setRpcType(type); };=0A= dwr.engine.setVerb =3D function(verb) { dwr.engine.setHttpMethod(verb); = };=0A= dwr.engine.setPollType =3D function() { dwr.engine._debug("Manually = setting the Poll Type is not supported"); };=0A= =0A= //=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=0A= // Only private stuff below here=0A= //=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=0A= =0A= /** The original page id sent from the server */=0A= dwr.engine._origScriptSessionId =3D "FD1EC9D44B2FF4EDB24E552D8E4E387F";=0A= =0A= /** The session cookie name */=0A= dwr.engine._sessionCookieName =3D "JSESSIONID"; // JSESSIONID=0A= =0A= /** Is GET enabled for the benefit of Safari? */=0A= dwr.engine._allowGetForSafariButMakeForgeryEasier =3D "false";=0A= =0A= /** The script prefix to strip in the case of scriptTagProtection. */=0A= dwr.engine._scriptTagProtection =3D "throw 'allowScriptTagRemoting is = false.';";=0A= =0A= /** The default path to the DWR servlet */=0A= dwr.engine._defaultPath =3D "/webapps/portal/dwr_open";=0A= =0A= /** Do we use XHR for reverse ajax because we are not streaming? */=0A= dwr.engine._pollWithXhr =3D "false";=0A= =0A= /** The read page id that we calculate */=0A= dwr.engine._scriptSessionId =3D null;=0A= =0A= /** The function that we use to fetch/calculate a session id */=0A= dwr.engine._getScriptSessionId =3D function() {=0A= if (dwr.engine._scriptSessionId =3D=3D null) {=0A= dwr.engine._scriptSessionId =3D dwr.engine._origScriptSessionId + = Math.floor(Math.random() * 1000);=0A= }=0A= return dwr.engine._scriptSessionId;=0A= };=0A= =0A= /** A function to call if something fails. */=0A= dwr.engine._errorHandler =3D dwr.engine.defaultErrorHandler;=0A= =0A= /** For debugging when something unexplained happens. */=0A= dwr.engine._warningHandler =3D dwr.engine.defaultWarningHandler;=0A= =0A= /** A function to be called before requests are marshalled. Can be null. = */=0A= dwr.engine._preHook =3D null;=0A= =0A= /** A function to be called after replies are received. Can be null. */=0A= dwr.engine._postHook =3D null;=0A= =0A= /** An map of the batches that we have sent and are awaiting a reply on. = */=0A= dwr.engine._batches =3D {};=0A= =0A= /** A count of the number of outstanding batches. Should be =3D=3D to = _batches.length unless prototype has messed things up */=0A= dwr.engine._batchesLength =3D 0;=0A= =0A= /** In ordered mode, the array of batches waiting to be sent */=0A= dwr.engine._batchQueue =3D [];=0A= =0A= /** What is the default rpc type */=0A= dwr.engine._rpcType =3D dwr.engine.XMLHttpRequest;=0A= =0A= /** What is the default remoting method (ie GET or POST) */=0A= dwr.engine._httpMethod =3D "POST";=0A= =0A= /** Do we attempt to ensure that calls happen in the order in which they = were sent? */=0A= dwr.engine._ordered =3D false;=0A= =0A= /** Do we make the calls async? */=0A= dwr.engine._async =3D true;=0A= =0A= /** The current batch (if we are in batch mode) */=0A= dwr.engine._batch =3D null;=0A= =0A= /** The global timeout */=0A= dwr.engine._timeout =3D 0;=0A= =0A= /** ActiveX objects to use when we want to convert an xml string into a = DOM object. */=0A= dwr.engine._DOMDocument =3D ["Msxml2.DOMDocument.6.0", = "Msxml2.DOMDocument.5.0", "Msxml2.DOMDocument.4.0", = "Msxml2.DOMDocument.3.0", "MSXML2.DOMDocument", "MSXML.DOMDocument", = "Microsoft.XMLDOM"];=0A= =0A= /** The ActiveX objects to use when we want to do an XMLHttpRequest = call. */=0A= dwr.engine._XMLHTTP =3D ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0", = "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", = "Microsoft.XMLHTTP"];=0A= =0A= /** Are we doing comet or polling? */=0A= dwr.engine._activeReverseAjax =3D false;=0A= =0A= /** The iframe that we are using to poll */=0A= dwr.engine._outstandingIFrames =3D [];=0A= =0A= /** The xhr object that we are using to poll */=0A= dwr.engine._pollReq =3D null;=0A= =0A= /** How many milliseconds between internal comet polls */=0A= dwr.engine._pollCometInterval =3D 200;=0A= =0A= /** How many times have we re-tried to poll? */=0A= dwr.engine._pollRetries =3D 0;=0A= dwr.engine._maxPollRetries =3D 0;=0A= =0A= /** Do we do a document.reload if we get a text/html reply? */=0A= dwr.engine._textHtmlHandler =3D null;=0A= =0A= /** If you wish to send custom headers with every request */=0A= dwr.engine._headers =3D null;=0A= =0A= /** If you wish to send extra custom request parameters with each = request */=0A= dwr.engine._parameters =3D null;=0A= =0A= /** Undocumented interceptors - do not use */=0A= dwr.engine._postSeperator =3D "\n";=0A= dwr.engine._defaultInterceptor =3D function(data) { return data; };=0A= dwr.engine._urlRewriteHandler =3D dwr.engine._defaultInterceptor;=0A= dwr.engine._contentRewriteHandler =3D dwr.engine._defaultInterceptor;=0A= dwr.engine._replyRewriteHandler =3D dwr.engine._defaultInterceptor;=0A= =0A= /** Batch ids allow us to know which batch the server is answering */=0A= dwr.engine._nextBatchId =3D 0;=0A= =0A= /** A list of the properties that need merging from calls to a batch */=0A= dwr.engine._propnames =3D [ "rpcType", "httpMethod", "async", "timeout", = "errorHandler", "warningHandler", "textHtmlHandler" ];=0A= =0A= /** Do we stream, or can be hacked to do so? */=0A= dwr.engine._partialResponseNo =3D 0;=0A= dwr.engine._partialResponseYes =3D 1;=0A= dwr.engine._partialResponseFlush =3D 2;=0A= =0A= /** Is this page in the process of unloading? */=0A= dwr.engine._unloading =3D false;=0A= =0A= /**=0A= * @private Send a request. Called by the Javascript interface stub=0A= * @param path part of URL after the host and before the exec bit = without leading or trailing /s=0A= * @param scriptName The class to execute=0A= * @param methodName The method on said class to execute=0A= * @param func The callback function to which any returned data should = be passed=0A= * if this is null, any returned data will be ignored=0A= * @param vararg_params The parameters to pass to the above class=0A= */=0A= dwr.engine._execute =3D function(path, scriptName, methodName, = vararg_params) {=0A= var singleShot =3D false;=0A= if (dwr.engine._batch =3D=3D null) {=0A= dwr.engine.beginBatch();=0A= singleShot =3D true;=0A= }=0A= var batch =3D dwr.engine._batch;=0A= // To make them easy to manipulate we copy the arguments into an args = array=0A= var args =3D [];=0A= for (var i =3D 0; i < arguments.length - 3; i++) {=0A= args[i] =3D arguments[i + 3];=0A= }=0A= // All the paths MUST be to the same servlet=0A= if (batch.path =3D=3D null) {=0A= batch.path =3D path;=0A= }=0A= else {=0A= if (batch.path !=3D path) {=0A= dwr.engine._handleError(batch, { = name:"dwr.engine.multipleServlets", message:"Can't batch requests to = multiple DWR Servlets." });=0A= return;=0A= }=0A= }=0A= // From the other params, work out which is the function (or object = with=0A= // call meta-data) and which is the call parameters=0A= var callData;=0A= var lastArg =3D args[args.length - 1];=0A= if (typeof lastArg =3D=3D "function" || lastArg =3D=3D null) callData = =3D { callback:args.pop() };=0A= else callData =3D args.pop();=0A= =0A= // Merge from the callData into the batch=0A= dwr.engine._mergeBatch(batch, callData);=0A= batch.handlers[batch.map.callCount] =3D {=0A= exceptionHandler:callData.exceptionHandler,=0A= callback:callData.callback=0A= };=0A= =0A= // Copy to the map the things that need serializing=0A= var prefix =3D "c" + batch.map.callCount + "-";=0A= batch.map[prefix + "scriptName"] =3D scriptName;=0A= batch.map[prefix + "methodName"] =3D methodName;=0A= batch.map[prefix + "id"] =3D batch.map.callCount;=0A= for (i =3D 0; i < args.length; i++) {=0A= dwr.engine._serializeAll(batch, [], args[i], prefix + "param" + i);=0A= }=0A= =0A= // Now we have finished remembering the call, we incr the call count=0A= batch.map.callCount++;=0A= if (singleShot) dwr.engine.endBatch();=0A= };=0A= =0A= /** @private Poll the server to see if there is any data waiting */=0A= dwr.engine._poll =3D function() {=0A= if (!dwr.engine._activeReverseAjax) return;=0A= =0A= var batch =3D dwr.engine._createBatch();=0A= batch.map.id =3D 0; // TODO: Do we need this??=0A= batch.map.callCount =3D 1;=0A= batch.isPoll =3D true;=0A= if (dwr.engine._pollWithXhr =3D=3D "true") {=0A= batch.rpcType =3D dwr.engine.XMLHttpRequest;=0A= batch.map.partialResponse =3D dwr.engine._partialResponseNo;=0A= }=0A= else {=0A= if (navigator.userAgent.indexOf("Gecko/") !=3D -1) {=0A= batch.rpcType =3D dwr.engine.XMLHttpRequest;=0A= batch.map.partialResponse =3D dwr.engine._partialResponseYes;=0A= }=0A= else {=0A= batch.rpcType =3D dwr.engine.XMLHttpRequest;=0A= batch.map.partialResponse =3D dwr.engine._partialResponseNo;=0A= }=0A= }=0A= batch.httpMethod =3D "POST";=0A= batch.async =3D true;=0A= batch.timeout =3D 0;=0A= batch.path =3D dwr.engine._defaultPath;=0A= batch.preHooks =3D [];=0A= batch.postHooks =3D [];=0A= batch.errorHandler =3D dwr.engine._pollErrorHandler;=0A= batch.warningHandler =3D dwr.engine._pollErrorHandler;=0A= batch.handlers[0] =3D {=0A= callback:function(pause) {=0A= dwr.engine._pollRetries =3D 0;=0A= setTimeout(dwr.engine._poll, pause);=0A= }=0A= };=0A= =0A= // Send the data=0A= dwr.engine._sendData(batch);=0A= if (batch.rpcType =3D=3D dwr.engine.XMLHttpRequest && = batch.map.partialResponse =3D=3D dwr.engine._partialResponseYes) {=0A= dwr.engine._checkCometPoll();=0A= }=0A= };=0A= =0A= /** Try to recover from polling errors */=0A= dwr.engine._pollErrorHandler =3D function(msg, ex) {=0A= // if anything goes wrong then just silently try again (up to 3x) = after 10s=0A= dwr.engine._pollRetries++;=0A= dwr.engine._debug("Reverse Ajax poll failed (pollRetries=3D" + = dwr.engine._pollRetries + "): " + ex.name + " : " + ex.message);=0A= if (dwr.engine._pollRetries < dwr.engine._maxPollRetries) {=0A= setTimeout(dwr.engine._poll, 10000);=0A= }=0A= else {=0A= dwr.engine._activeReverseAjax =3D false;=0A= dwr.engine._debug("Giving up.");=0A= }=0A= };=0A= =0A= /** @private Generate a new standard batch */=0A= dwr.engine._createBatch =3D function() {=0A= var batch =3D {=0A= map:{=0A= callCount:0,=0A= page:window.location.pathname + window.location.search,=0A= httpSessionId:dwr.engine._getJSessionId(),=0A= scriptSessionId:dwr.engine._getScriptSessionId()=0A= },=0A= charsProcessed:0, paramCount:0,=0A= parameters:{}, headers:{},=0A= isPoll:false, handlers:{}, preHooks:[], postHooks:[],=0A= rpcType:dwr.engine._rpcType,=0A= httpMethod:dwr.engine._httpMethod,=0A= async:dwr.engine._async,=0A= timeout:dwr.engine._timeout,=0A= errorHandler:dwr.engine._errorHandler,=0A= warningHandler:dwr.engine._warningHandler,=0A= textHtmlHandler:dwr.engine._textHtmlHandler=0A= };=0A= if (dwr.engine._preHook) batch.preHooks.push(dwr.engine._preHook);=0A= if (dwr.engine._postHook) batch.postHooks.push(dwr.engine._postHook);=0A= var propname, data;=0A= if (dwr.engine._headers) {=0A= for (propname in dwr.engine._headers) {=0A= data =3D dwr.engine._headers[propname];=0A= if (typeof data !=3D "function") batch.headers[propname] =3D data;=0A= }=0A= }=0A= if (dwr.engine._parameters) {=0A= for (propname in dwr.engine._parameters) {=0A= data =3D dwr.engine._parameters[propname];=0A= if (typeof data !=3D "function") batch.parameters[propname] =3D = data;=0A= }=0A= }=0A= return batch;=0A= };=0A= =0A= /** @private Take further options and merge them into */=0A= dwr.engine._mergeBatch =3D function(batch, overrides) {=0A= var propname, data;=0A= for (var i =3D 0; i < dwr.engine._propnames.length; i++) {=0A= propname =3D dwr.engine._propnames[i];=0A= if (overrides[propname] !=3D null) batch[propname] =3D = overrides[propname];=0A= }=0A= if (overrides.preHook !=3D null) = batch.preHooks.unshift(overrides.preHook);=0A= if (overrides.postHook !=3D null) = batch.postHooks.push(overrides.postHook);=0A= if (overrides.headers) {=0A= for (propname in overrides.headers) {=0A= data =3D overrides.headers[propname];=0A= if (typeof data !=3D "function") batch.headers[propname] =3D data;=0A= }=0A= }=0A= if (overrides.parameters) {=0A= for (propname in overrides.parameters) {=0A= data =3D overrides.parameters[propname];=0A= if (typeof data !=3D "function") batch.map["p-" + propname] =3D "" = + data;=0A= }=0A= }=0A= };=0A= =0A= /** @private What is our session id? */=0A= dwr.engine._getJSessionId =3D function() {=0A= var cookies =3D document.cookie.split(';');=0A= for (var i =3D 0; i < cookies.length; i++) {=0A= var cookie =3D cookies[i];=0A= while (cookie.charAt(0) =3D=3D ' ') cookie =3D cookie.substring(1, = cookie.length);=0A= if (cookie.indexOf(dwr.engine._sessionCookieName + "=3D") =3D=3D 0) {=0A= return cookie.substring(dwr.engine._sessionCookieName.length + 1, = cookie.length);=0A= }=0A= }=0A= return "";=0A= };=0A= =0A= /** @private Check for reverse Ajax activity */=0A= dwr.engine._checkCometPoll =3D function() {=0A= for (var i =3D 0; i < dwr.engine._outstandingIFrames.length; i++) {=0A= var text =3D "";=0A= var iframe =3D dwr.engine._outstandingIFrames[i];=0A= try {=0A= text =3D dwr.engine._getTextFromCometIFrame(iframe);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(iframe.batch, ex);=0A= }=0A= if (text !=3D "") dwr.engine._processCometResponse(text, = iframe.batch);=0A= }=0A= if (dwr.engine._pollReq) {=0A= var req =3D dwr.engine._pollReq;=0A= var text =3D req.responseText;=0A= if (text !=3D null) dwr.engine._processCometResponse(text, = req.batch);=0A= }=0A= =0A= // If the poll resources are still there, come back again=0A= if (dwr.engine._outstandingIFrames.length > 0 || dwr.engine._pollReq) {=0A= setTimeout(dwr.engine._checkCometPoll, = dwr.engine._pollCometInterval);=0A= }=0A= };=0A= =0A= /** @private Extract the whole (executed an all) text from the current = iframe */=0A= dwr.engine._getTextFromCometIFrame =3D function(frameEle) {=0A= var body =3D frameEle.contentWindow.document.body;=0A= if (body =3D=3D null) return "";=0A= var text =3D body.innerHTML;=0A= // We need to prevent IE from stripping line feeds=0A= if (text.indexOf("") =3D=3D 0 || text.indexOf("") =3D=3D 0) {=0A= text =3D text.substring(5, text.length - 7);=0A= }=0A= return text;=0A= };=0A= =0A= /** @private Some more text might have come in, test and execute the new = stuff */=0A= dwr.engine._processCometResponse =3D function(response, batch) {=0A= if (batch.charsProcessed =3D=3D response.length) return;=0A= if (response.length =3D=3D 0) {=0A= batch.charsProcessed =3D 0;=0A= return;=0A= }=0A= =0A= var firstStartTag =3D response.indexOf("//#DWR-START#", = batch.charsProcessed);=0A= if (firstStartTag =3D=3D -1) {=0A= // dwr.engine._debug("No start tag (search from " + = batch.charsProcessed + "). skipping '" + = response.substring(batch.charsProcessed) + "'");=0A= batch.charsProcessed =3D response.length;=0A= return;=0A= }=0A= // if (firstStartTag > 0) {=0A= // dwr.engine._debug("Start tag not at start (search from " + = batch.charsProcessed + "). skipping '" + = response.substring(batch.charsProcessed, firstStartTag) + "'");=0A= // }=0A= =0A= var lastEndTag =3D response.lastIndexOf("//#DWR-END#");=0A= if (lastEndTag =3D=3D -1) {=0A= // dwr.engine._debug("No end tag. unchanged charsProcessed=3D" + = batch.charsProcessed);=0A= return;=0A= }=0A= =0A= // Skip the end tag too for next time, remembering CR and LF=0A= if (response.charCodeAt(lastEndTag + 11) =3D=3D 13 && = response.charCodeAt(lastEndTag + 12) =3D=3D 10) {=0A= batch.charsProcessed =3D lastEndTag + 13;=0A= }=0A= else {=0A= batch.charsProcessed =3D lastEndTag + 11;=0A= }=0A= =0A= var exec =3D response.substring(firstStartTag + 13, lastEndTag);=0A= =0A= dwr.engine._receivedBatch =3D batch;=0A= dwr.engine._eval(exec);=0A= dwr.engine._receivedBatch =3D null;=0A= };=0A= =0A= /** @private Actually send the block of data in the batch object. */=0A= dwr.engine._sendData =3D function(batch) {=0A= batch.map.batchId =3D dwr.engine._nextBatchId;=0A= dwr.engine._nextBatchId++;=0A= dwr.engine._batches[batch.map.batchId] =3D batch;=0A= dwr.engine._batchesLength++;=0A= batch.completed =3D false;=0A= =0A= for (var i =3D 0; i < batch.preHooks.length; i++) {=0A= batch.preHooks[i]();=0A= }=0A= batch.preHooks =3D null;=0A= // Set a timeout=0A= if (batch.timeout && batch.timeout !=3D 0) {=0A= batch.timeoutId =3D setTimeout(function() { = dwr.engine._abortRequest(batch); }, batch.timeout);=0A= }=0A= // Get setup for XMLHttpRequest if possible=0A= if (batch.rpcType =3D=3D dwr.engine.XMLHttpRequest) {=0A= if (window.XMLHttpRequest) {=0A= batch.req =3D new XMLHttpRequest();=0A= }=0A= // IE5 for the mac claims to support window.ActiveXObject, but = throws an error when it's used=0A= else if (window.ActiveXObject && = !(navigator.userAgent.indexOf("Mac") >=3D 0 && = navigator.userAgent.indexOf("MSIE") >=3D 0)) {=0A= batch.req =3D dwr.engine._newActiveXObject(dwr.engine._XMLHTTP);=0A= }=0A= }=0A= =0A= var prop, request;=0A= if (batch.req) {=0A= // Proceed using XMLHttpRequest=0A= if (batch.async) {=0A= batch.req.onreadystatechange =3D function() {=0A= if (typeof dwr !=3D 'undefined') dwr.engine._stateChange(batch);=0A= };=0A= }=0A= // If we're polling, record this for monitoring=0A= if (batch.isPoll) {=0A= dwr.engine._pollReq =3D batch.req;=0A= // In IE XHR is an ActiveX control so you can't augment it like = this=0A= if (!(document.all && !window.opera)) batch.req.batch =3D batch;=0A= }=0A= // Workaround for Safari 1.x POST bug=0A= var indexSafari =3D navigator.userAgent.indexOf("Safari/");=0A= if (indexSafari >=3D 0) {=0A= var version =3D navigator.userAgent.substring(indexSafari + 7);=0A= if (parseInt(version, 10) < 400) {=0A= if (dwr.engine._allowGetForSafariButMakeForgeryEasier =3D=3D = "true") batch.httpMethod =3D "GET";=0A= else dwr.engine._handleWarning(batch, { = name:"dwr.engine.oldSafari", message:"Safari GET support disabled. See = getahead.org/dwr/server/servlet and = allowGetForSafariButMakeForgeryEasier." });=0A= }=0A= }=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModePlainPoll : = dwr.engine._ModePlainCall;=0A= request =3D dwr.engine._constructRequest(batch);=0A= try {=0A= batch.req.open(batch.httpMethod, request.url, batch.async);=0A= try {=0A= for (prop in batch.headers) {=0A= var value =3D batch.headers[prop];=0A= if (typeof value =3D=3D "string") = batch.req.setRequestHeader(prop, value);=0A= }=0A= if (!batch.headers["Content-Type"]) = batch.req.setRequestHeader("Content-Type", "text/plain");=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= }=0A= batch.req.send(request.body);=0A= if (!batch.async) dwr.engine._stateChange(batch);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleError(batch, ex);=0A= }=0A= }=0A= else if (batch.rpcType !=3D dwr.engine.ScriptTag) {=0A= var idname =3D batch.isPoll ? "dwr-if-poll-" + batch.map.batchId : = "dwr-if-" + batch.map.batchId;=0A= // Removed htmlfile implementation. Don't expect it to return before = v3=0A= batch.div =3D document.createElement("div");=0A= // Add the div to the document first, otherwise IE 6 will ignore = onload handler.=0A= document.body.appendChild(batch.div);=0A= batch.div.innerHTML =3D "";=0A= batch.document =3D document;=0A= batch.iframe =3D batch.document.getElementById(idname);=0A= batch.iframe.batch =3D batch;=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModeHtmlPoll : = dwr.engine._ModeHtmlCall;=0A= if (batch.isPoll) dwr.engine._outstandingIFrames.push(batch.iframe);=0A= request =3D dwr.engine._constructRequest(batch);=0A= if (batch.httpMethod =3D=3D "GET") {=0A= batch.iframe.setAttribute("src", request.url);=0A= }=0A= else {=0A= batch.form =3D batch.document.createElement("form");=0A= batch.form.setAttribute("id", "dwr-form");=0A= batch.form.setAttribute("action", request.url);=0A= batch.form.setAttribute("style", "display:none;");=0A= batch.form.setAttribute("target", idname);=0A= batch.form.target =3D idname;=0A= batch.form.setAttribute("method", batch.httpMethod);=0A= for (prop in batch.map) {=0A= var value =3D batch.map[prop];=0A= if (typeof value !=3D "function") {=0A= var formInput =3D batch.document.createElement("input");=0A= formInput.setAttribute("type", "hidden");=0A= formInput.setAttribute("name", prop);=0A= formInput.setAttribute("value", value);=0A= batch.form.appendChild(formInput);=0A= }=0A= }=0A= batch.document.body.appendChild(batch.form);=0A= batch.form.submit();=0A= }=0A= }=0A= else {=0A= batch.httpMethod =3D "GET"; // There's no such thing as ScriptTag = using POST=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModePlainPoll : = dwr.engine._ModePlainCall;=0A= request =3D dwr.engine._constructRequest(batch);=0A= batch.script =3D document.createElement("script");=0A= batch.script.id =3D "dwr-st-" + batch.map["c0-id"];=0A= batch.script.src =3D request.url;=0A= document.body.appendChild(batch.script);=0A= }=0A= };=0A= =0A= dwr.engine._ModePlainCall =3D "/call/plaincall/";=0A= dwr.engine._ModeHtmlCall =3D "/call/htmlcall/";=0A= dwr.engine._ModePlainPoll =3D "/call/plainpoll/";=0A= dwr.engine._ModeHtmlPoll =3D "/call/htmlpoll/";=0A= =0A= /** @private Work out what the URL should look like */=0A= dwr.engine._constructRequest =3D function(batch) {=0A= // A quick string to help people that use web log analysers=0A= var request =3D { url:batch.path + batch.mode, body:null };=0A= if (batch.isPoll =3D=3D true) {=0A= request.url +=3D "ReverseAjax.dwr";=0A= }=0A= else if (batch.map.callCount =3D=3D 1) {=0A= request.url +=3D batch.map["c0-scriptName"] + "." + = batch.map["c0-methodName"] + ".dwr";=0A= }=0A= else {=0A= request.url +=3D "Multiple." + batch.map.callCount + ".dwr";=0A= }=0A= // Play nice with url re-writing=0A= var sessionMatch =3D location.href.match(/jsessionid=3D([^?]+)/);=0A= if (sessionMatch !=3D null) {=0A= request.url +=3D ";jsessionid=3D" + sessionMatch[1];=0A= }=0A= =0A= var prop;=0A= if (batch.httpMethod =3D=3D "GET") {=0A= // Some browsers (Opera/Safari2) seem to fail to convert the = callCount value=0A= // to a string in the loop below so we do it manually here.=0A= batch.map.callCount =3D "" + batch.map.callCount;=0A= request.url +=3D "?";=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= request.url +=3D encodeURIComponent(prop) + "=3D" + = encodeURIComponent(batch.map[prop]) + "&";=0A= }=0A= }=0A= request.url =3D request.url.substring(0, request.url.length - 1);=0A= }=0A= else {=0A= // PERFORMANCE: for iframe mode this is thrown away.=0A= request.body =3D "";=0A= if (document.all && !window.opera) {=0A= // Use array joining on IE (fastest)=0A= var buf =3D [];=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= buf.push(prop + "=3D" + batch.map[prop] + = dwr.engine._postSeperator);=0A= }=0A= }=0A= request.body =3D buf.join("");=0A= }=0A= else {=0A= // Use string concat on other browsers (fastest)=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= request.body +=3D prop + "=3D" + batch.map[prop] + = dwr.engine._postSeperator;=0A= }=0A= }=0A= }=0A= request.body =3D dwr.engine._contentRewriteHandler(request.body);=0A= }=0A= request.url =3D dwr.engine._urlRewriteHandler(request.url);=0A= return request;=0A= };=0A= =0A= /** @private Called by XMLHttpRequest to indicate that something has = happened */=0A= dwr.engine._stateChange =3D function(batch) {=0A= var toEval;=0A= =0A= if (batch.completed) {=0A= dwr.engine._debug("Error: _stateChange() with batch.completed");=0A= return;=0A= }=0A= =0A= var req =3D batch.req;=0A= try {=0A= if (req.readyState !=3D 4) return;=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= // It's broken - clear up and forget this call=0A= dwr.engine._clearUp(batch);=0A= return;=0A= }=0A= =0A= if (dwr.engine._unloading) {=0A= dwr.engine._debug("Ignoring reply from server as page is = unloading.");=0A= return;=0A= }=0A= =0A= try {=0A= var reply =3D req.responseText;=0A= reply =3D dwr.engine._replyRewriteHandler(reply);=0A= var status =3D req.status; // causes Mozilla to except on page moves=0A= =0A= if (reply =3D=3D null || reply =3D=3D "") {=0A= dwr.engine._handleWarning(batch, { name:"dwr.engine.missingData", = message:"No data received from server" });=0A= }=0A= else if (status !=3D 200) {=0A= dwr.engine._handleError(batch, { name:"dwr.engine.http." + status, = message:req.statusText });=0A= }=0A= else {=0A= var contentType =3D req.getResponseHeader("Content-Type");=0A= if (!contentType.match(/^text\/plain/) && = !contentType.match(/^text\/javascript/)) {=0A= if (contentType.match(/^text\/html/) && typeof = batch.textHtmlHandler =3D=3D "function") {=0A= batch.textHtmlHandler({ status:status, responseText:reply, = contentType:contentType });=0A= }=0A= else {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.invalidMimeType", message:"Invalid content type: '" + = contentType + "'" });=0A= }=0A= }=0A= else {=0A= // Comet replies might have already partially executed=0A= if (batch.isPoll && batch.map.partialResponse =3D=3D = dwr.engine._partialResponseYes) {=0A= dwr.engine._processCometResponse(reply, batch);=0A= }=0A= else {=0A= if (reply.search("//#DWR") =3D=3D -1) {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.invalidReply", message:"Invalid reply from server" });=0A= }=0A= else {=0A= toEval =3D reply;=0A= }=0A= }=0A= }=0A= }=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= }=0A= =0A= dwr.engine._callPostHooks(batch);=0A= =0A= // Outside of the try/catch so errors propogate normally:=0A= dwr.engine._receivedBatch =3D batch;=0A= if (toEval !=3D null) toEval =3D = toEval.replace(dwr.engine._scriptTagProtection, "");=0A= dwr.engine._eval(toEval);=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._validateBatch(batch);=0A= if (!batch.completed) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /**=0A= * @private This function is invoked when a batch reply is received.=0A= * It checks that there is a response for every call in the batch. = Otherwise,=0A= * an error will be signaled (a call without a response indicates that = the =0A= * server failed to send complete batch response). =0A= */=0A= dwr.engine._validateBatch =3D function(batch) {=0A= // If some call left unreplied, report an error.=0A= if (!batch.completed) {=0A= for (var i =3D 0; i < batch.map.callCount; i++) {=0A= if (batch.handlers[i] !=3D null) {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.incompleteReply", message:"Incomplete reply from = server" });=0A= break;=0A= }=0A= }=0A= }=0A= }=0A= =0A= /** @private Called from iframe onload, check batch using batch-id */=0A= dwr.engine._iframeLoadingComplete =3D function(batchId) {=0A= // dwr.engine._checkCometPoll();=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch) dwr.engine._validateBatch(batch);=0A= }=0A= =0A= /** @private Called by the server: Execute a callback */=0A= dwr.engine._remoteHandleCallback =3D function(batchId, callId, reply) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch =3D=3D null) {=0A= dwr.engine._debug("Warning: batch =3D=3D null in = remoteHandleCallback for batchId=3D" + batchId, true);=0A= return;=0A= }=0A= // Error handlers inside here indicate an error that is nothing to do=0A= // with DWR so we handle them differently.=0A= try {=0A= var handlers =3D batch.handlers[callId];=0A= batch.handlers[callId] =3D null;=0A= if (!handlers) {=0A= dwr.engine._debug("Warning: Missing handlers. callId=3D" + callId, = true);=0A= }=0A= else if (typeof handlers.callback =3D=3D "function") = handlers.callback(reply);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleError(batch, ex);=0A= }=0A= };=0A= =0A= /** @private Called by the server: Handle an exception for a call */=0A= dwr.engine._remoteHandleException =3D function(batchId, callId, ex) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch =3D=3D null) { dwr.engine._debug("Warning: null batch in = remoteHandleException", true); return; }=0A= var handlers =3D batch.handlers[callId];=0A= batch.handlers[callId] =3D null;=0A= if (handlers =3D=3D null) { dwr.engine._debug("Warning: null handlers = in remoteHandleException", true); return; }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= if (typeof handlers.exceptionHandler =3D=3D "function") = handlers.exceptionHandler(ex.message, ex);=0A= else if (typeof batch.errorHandler =3D=3D "function") = batch.errorHandler(ex.message, ex);=0A= };=0A= =0A= /** @private Called by the server: The whole batch is broken */=0A= dwr.engine._remoteHandleBatchException =3D function(ex, batchId) {=0A= var searchBatch =3D (dwr.engine._receivedBatch =3D=3D null && batchId = !=3D null);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D dwr.engine._batches[batchId];=0A= }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= dwr.engine._handleError(dwr.engine._receivedBatch, ex);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._clearUp(dwr.engine._batches[batchId]);=0A= }=0A= };=0A= =0A= /** @private Called by the server: Reverse ajax should not be used */=0A= dwr.engine._remotePollCometDisabled =3D function(ex, batchId) {=0A= dwr.engine.setActiveReverseAjax(false);=0A= var searchBatch =3D (dwr.engine._receivedBatch =3D=3D null && batchId = !=3D null);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D dwr.engine._batches[batchId];=0A= }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= dwr.engine._handleError(dwr.engine._receivedBatch, ex);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._clearUp(dwr.engine._batches[batchId]);=0A= }=0A= };=0A= =0A= /** @private Called by the server: An IFrame reply is about to start */=0A= dwr.engine._remoteBeginIFrameResponse =3D function(iframe, batchId) {=0A= if (iframe !=3D null) dwr.engine._receivedBatch =3D iframe.batch;=0A= dwr.engine._callPostHooks(dwr.engine._receivedBatch);=0A= };=0A= =0A= /** @private Called by the server: An IFrame reply is just completing */=0A= dwr.engine._remoteEndIFrameResponse =3D function(batchId) {=0A= dwr.engine._clearUp(dwr.engine._receivedBatch);=0A= dwr.engine._receivedBatch =3D null;=0A= };=0A= =0A= /** @private This is a hack to make the context be this window */=0A= dwr.engine._eval =3D function(script) {=0A= if (script =3D=3D null) return null;=0A= if (script =3D=3D "") { dwr.engine._debug("Warning: blank script", = true); return null; }=0A= // dwr.engine._debug("Exec: [" + script + "]", true);=0A= return eval(script);=0A= };=0A= =0A= /** @private Called as a result of a request timeout */=0A= dwr.engine._abortRequest =3D function(batch) {=0A= if (batch && !batch.completed) {=0A= dwr.engine._clearUp(batch);=0A= if (batch.req) batch.req.abort();=0A= dwr.engine._handleError(batch, { name:"dwr.engine.timeout", = message:"Timeout" });=0A= }=0A= };=0A= =0A= /** @private call all the post hooks for a batch */=0A= dwr.engine._callPostHooks =3D function(batch) {=0A= if (batch.postHooks) {=0A= for (var i =3D 0; i < batch.postHooks.length; i++) {=0A= batch.postHooks[i]();=0A= }=0A= batch.postHooks =3D null;=0A= }=0A= };=0A= =0A= /** @private A call has finished by whatever means and we need to shut = it all down. */=0A= dwr.engine._clearUp =3D function(batch) {=0A= if (!batch) { dwr.engine._debug("Warning: null batch in = dwr.engine._clearUp()", true); return; }=0A= if (batch.completed) { dwr.engine._debug("Warning: Double complete", = true); return; }=0A= =0A= // IFrame tidyup=0A= if (batch.div) batch.div.parentNode.removeChild(batch.div);=0A= if (batch.iframe) {=0A= // If this is a poll frame then stop comet polling=0A= for (var i =3D 0; i < dwr.engine._outstandingIFrames.length; i++) {=0A= if (dwr.engine._outstandingIFrames[i] =3D=3D batch.iframe) {=0A= dwr.engine._outstandingIFrames.splice(i, 1);=0A= }=0A= }=0A= batch.iframe.parentNode.removeChild(batch.iframe);=0A= }=0A= if (batch.form) batch.form.parentNode.removeChild(batch.form);=0A= =0A= // XHR tidyup: avoid IE handles increase=0A= if (batch.req) {=0A= // If this is a poll frame then stop comet polling=0A= if (batch.req =3D=3D dwr.engine._pollReq) dwr.engine._pollReq =3D = null;=0A= delete batch.req;=0A= }=0A= =0A= // Timeout tidyup=0A= if (batch.timeoutId) {=0A= clearTimeout(batch.timeoutId);=0A= delete batch.timeoutId;=0A= }=0A= =0A= if (batch.map && (batch.map.batchId || batch.map.batchId =3D=3D 0)) {=0A= delete dwr.engine._batches[batch.map.batchId];=0A= dwr.engine._batchesLength--;=0A= }=0A= =0A= batch.completed =3D true;=0A= =0A= // If there is anything on the queue waiting to go out, then send it.=0A= // We don't need to check for ordered mode, here because when ordered = mode=0A= // gets turned off, we still process *waiting* batches in an ordered = way.=0A= if (dwr.engine._batchQueue.length !=3D 0) {=0A= var sendbatch =3D dwr.engine._batchQueue.shift();=0A= dwr.engine._sendData(sendbatch);=0A= }=0A= };=0A= =0A= /** @private Abort any XHRs in progress at page unload (solves zombie = socket problems in IE). */=0A= dwr.engine._unloader =3D function() {=0A= dwr.engine._unloading =3D true;=0A= =0A= // Empty queue of waiting ordered requests=0A= dwr.engine._batchQueue.length =3D 0;=0A= =0A= // Abort any ongoing XHRs and clear their batches=0A= for (var batchId in dwr.engine._batches) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= // Only process objects that look like batches (avoid prototype = additions!)=0A= if (batch && batch.map) {=0A= if (batch.req) {=0A= batch.req.abort();=0A= }=0A= dwr.engine._clearUp(batch);=0A= }=0A= }=0A= };=0A= // Now register the unload handler=0A= if (window.addEventListener) window.addEventListener('unload', = dwr.engine._unloader, false);=0A= else if (window.attachEvent) window.attachEvent('onunload', = dwr.engine._unloader);=0A= =0A= /** @private Generic error handling routing to save having null checks = everywhere */=0A= dwr.engine._handleError =3D function(batch, ex) {=0A= if (typeof ex =3D=3D "string") ex =3D { name:"unknown", message:ex };=0A= if (ex.message =3D=3D null) ex.message =3D "";=0A= if (ex.name =3D=3D null) ex.name =3D "unknown";=0A= if (batch && typeof batch.errorHandler =3D=3D "function") = batch.errorHandler(ex.message, ex);=0A= else if (dwr.engine._errorHandler) = dwr.engine._errorHandler(ex.message, ex);=0A= if (batch) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /** @private Generic error handling routing to save having null checks = everywhere */=0A= dwr.engine._handleWarning =3D function(batch, ex) {=0A= if (typeof ex =3D=3D "string") ex =3D { name:"unknown", message:ex };=0A= if (ex.message =3D=3D null) ex.message =3D "";=0A= if (ex.name =3D=3D null) ex.name =3D "unknown";=0A= if (batch && typeof batch.warningHandler =3D=3D "function") = batch.warningHandler(ex.message, ex);=0A= else if (dwr.engine._warningHandler) = dwr.engine._warningHandler(ex.message, ex);=0A= if (batch) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /**=0A= * @private Marshall a data item=0A= * @param batch A map of variables to how they have been marshalled=0A= * @param referto An array of already marshalled variables to prevent = recurrsion=0A= * @param data The data to be marshalled=0A= * @param name The name of the data being marshalled=0A= */=0A= dwr.engine._serializeAll =3D function(batch, referto, data, name) {=0A= if (data =3D=3D null) {=0A= batch.map[name] =3D "null:null";=0A= return;=0A= }=0A= =0A= switch (typeof data) {=0A= case "boolean":=0A= batch.map[name] =3D "boolean:" + data;=0A= break;=0A= case "number":=0A= batch.map[name] =3D "number:" + data;=0A= break;=0A= case "string":=0A= batch.map[name] =3D "string:" + encodeURIComponent(data);=0A= break;=0A= case "object":=0A= if (data instanceof String) batch.map[name] =3D "String:" + = encodeURIComponent(data);=0A= else if (data instanceof Boolean) batch.map[name] =3D "Boolean:" + = data;=0A= else if (data instanceof Number) batch.map[name] =3D "Number:" + = data;=0A= else if (data instanceof Date) batch.map[name] =3D "Date:" + = data.getTime();=0A= else if (data && data.join) batch.map[name] =3D = dwr.engine._serializeArray(batch, referto, data, name);=0A= else batch.map[name] =3D dwr.engine._serializeObject(batch, referto, = data, name);=0A= break;=0A= case "function":=0A= // We just ignore functions.=0A= break;=0A= default:=0A= dwr.engine._handleWarning(null, { name:"dwr.engine.unexpectedType", = message:"Unexpected type: " + typeof data + ", attempting default = converter." });=0A= batch.map[name] =3D "default:" + data;=0A= break;=0A= }=0A= };=0A= =0A= /** @private Have we already converted this object? */=0A= dwr.engine._lookup =3D function(referto, data, name) {=0A= var lookup;=0A= // Can't use a map: getahead.org/ajax/javascript-gotchas=0A= for (var i =3D 0; i < referto.length; i++) {=0A= if (referto[i].data =3D=3D data) {=0A= lookup =3D referto[i];=0A= break;=0A= }=0A= }=0A= if (lookup) return "reference:" + lookup.name;=0A= referto.push({ data:data, name:name });=0A= return null;=0A= };=0A= =0A= /** @private Marshall an object */=0A= dwr.engine._serializeObject =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= // This check for an HTML is not complete, but is there a better way?=0A= // Maybe we should add: data.hasChildNodes typeof "function" =3D=3D = true=0A= if (data.nodeName && data.nodeType) {=0A= return dwr.engine._serializeXml(batch, referto, data, name);=0A= }=0A= =0A= // treat objects as an associative arrays=0A= var reply =3D "Object_" + dwr.engine._getObjectClassName(data) + ":{";=0A= var element;=0A= for (element in data) {=0A= if (typeof data[element] !=3D "function") {=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[element], childName);=0A= =0A= reply +=3D encodeURIComponent(element) + ":reference:" + childName = + ", ";=0A= }=0A= }=0A= =0A= if (reply.substring(reply.length - 2) =3D=3D ", ") {=0A= reply =3D reply.substring(0, reply.length - 2);=0A= }=0A= reply +=3D "}";=0A= =0A= return reply;=0A= };=0A= =0A= /** @private Returns the classname of supplied argument obj */=0A= dwr.engine._errorClasses =3D { "Error":Error, "EvalError":EvalError, = "RangeError":RangeError, "ReferenceError":ReferenceError, = "SyntaxError":SyntaxError, "TypeError":TypeError, "URIError":URIError };=0A= dwr.engine._getObjectClassName =3D function(obj) {=0A= // Try to find the classname by stringifying the object's constructor=0A= // and extract from "function ".=0A= if (obj && obj.constructor && obj.constructor.toString)=0A= {=0A= var str =3D obj.constructor.toString();=0A= var regexpmatch =3D str.match(/function\s+(\w+)/);=0A= if (regexpmatch && regexpmatch.length =3D=3D 2) {=0A= return regexpmatch[1];=0A= }=0A= }=0A= =0A= // Now manually test against the core Error classes, as these in some =0A= // browsers successfully match to the wrong class in the =0A= // Object.toString() test we will do later=0A= if (obj && obj.constructor) {=0A= for (var errorname in dwr.engine._errorClasses) {=0A= if (obj.constructor =3D=3D dwr.engine._errorClasses[errorname]) = return errorname;=0A= }=0A= }=0A= =0A= // Try to find the classname by calling Object.toString() on the object=0A= // and extracting from "[object ]"=0A= if (obj) {=0A= var str =3D Object.prototype.toString.call(obj);=0A= var regexpmatch =3D str.match(/\[object\s+(\w+)/);=0A= if (regexpmatch && regexpmatch.length=3D=3D2) {=0A= return regexpmatch[1];=0A= }=0A= }=0A= =0A= // Supplied argument was probably not an object, but what is better?=0A= return "Object";=0A= };=0A= =0A= /** @private Marshall an object */=0A= dwr.engine._serializeXml =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= var output;=0A= if (window.XMLSerializer) output =3D new = XMLSerializer().serializeToString(data);=0A= else if (data.toXml) output =3D data.toXml;=0A= else output =3D data.innerHTML;=0A= =0A= return "XML:" + encodeURIComponent(output);=0A= };=0A= =0A= /** @private Marshall an array */=0A= dwr.engine._serializeArray =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= if (document.all && !window.opera) {=0A= // Use array joining on IE (fastest)=0A= var buf =3D ["Array:["];=0A= for (var i =3D 0; i < data.length; i++) {=0A= if (i !=3D 0) buf.push(",");=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[i], childName);=0A= buf.push("reference:");=0A= buf.push(childName);=0A= }=0A= buf.push("]");=0A= reply =3D buf.join("");=0A= }=0A= else {=0A= // Use string concat on other browsers (fastest)=0A= var reply =3D "Array:[";=0A= for (var i =3D 0; i < data.length; i++) {=0A= if (i !=3D 0) reply +=3D ",";=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[i], childName);=0A= reply +=3D "reference:";=0A= reply +=3D childName;=0A= }=0A= reply +=3D "]";=0A= }=0A= =0A= return reply;=0A= };=0A= =0A= /** @private Convert an XML string into a DOM object. */=0A= dwr.engine._unserializeDocument =3D function(xml) {=0A= var dom;=0A= if (window.DOMParser) {=0A= var parser =3D new DOMParser();=0A= dom =3D parser.parseFromString(xml, "text/xml");=0A= if (!dom.documentElement || dom.documentElement.tagName =3D=3D = "parsererror") {=0A= var message =3D dom.documentElement.firstChild.data;=0A= message +=3D "\n" + = dom.documentElement.firstChild.nextSibling.firstChild.data;=0A= throw message;=0A= }=0A= return dom;=0A= }=0A= else if (window.ActiveXObject) {=0A= dom =3D dwr.engine._newActiveXObject(dwr.engine._DOMDocument);=0A= dom.loadXML(xml); // What happens on parse fail with IE?=0A= return dom;=0A= }=0A= else {=0A= var div =3D document.createElement("div");=0A= div.innerHTML =3D xml;=0A= return div;=0A= }=0A= };=0A= =0A= /** @param axarray An array of strings to attempt to create ActiveX = objects from */=0A= dwr.engine._newActiveXObject =3D function(axarray) {=0A= var returnValue; =0A= for (var i =3D 0; i < axarray.length; i++) {=0A= try {=0A= returnValue =3D new ActiveXObject(axarray[i]);=0A= break;=0A= }=0A= catch (ex) { /* ignore */ }=0A= }=0A= return returnValue;=0A= };=0A= =0A= /** @private Used internally when some message needs to get to the = programmer */=0A= dwr.engine._debug =3D function(message, stacktrace) {=0A= var written =3D false;=0A= try {=0A= if (window.console) {=0A= if (stacktrace && window.console.trace) window.console.trace();=0A= window.console.log(message);=0A= written =3D true;=0A= }=0A= else if (window.opera && window.opera.postError) {=0A= window.opera.postError(message);=0A= written =3D true;=0A= }=0A= }=0A= catch (ex) { /* ignore */ }=0A= =0A= if (!written) {=0A= var debug =3D document.getElementById("dwr-debug");=0A= if (debug) {=0A= var contents =3D message + "" + debug.innerHTML;=0A= if (contents.length > 2048) contents =3D contents.substring(0, = 2048);=0A= debug.innerHTML =3D contents;=0A= }=0A= }=0A= };=0A= ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/javascript/ngui/lightbox.js?v=9.0.440.7 /* Created By: Chris Campbell Website: http://particletree.com Date: 2/1/2006 Inspired by the lightbox implementation found at = http://www.huddletogether.com/projects/lightbox/ */ /*-------------------------------GLOBAL = VARIABLES------------------------------------*/ var detect =3D navigator.userAgent.toLowerCase(); var OS,browser,version,total,thestring; /*-----------------------------------------------------------------------= ------------------------*/ //Browser detect script origionally created by Peter Paul Koch at = http://www.quirksmode.org/ function getBrowserInfo() { if (checkIt('konqueror')) { browser =3D "Konqueror"; OS =3D "Linux"; } else if (checkIt('safari')) browser =3D "Safari" else if (checkIt('omniweb')) browser =3D "OmniWeb" else if (checkIt('opera')) browser =3D "Opera" else if (checkIt('firefox')) browser =3D "Firefox" else if (checkIt('webtv')) browser =3D "WebTV"; else if (checkIt('icab')) browser =3D "iCab" else if (checkIt('msie')) browser =3D "Internet Explorer" else if (!checkIt('compatible')) { browser =3D "Netscape Navigator" version =3D detect.charAt(8); } else browser =3D "An unknown browser"; if (!version) version =3D detect.charAt(place + thestring.length); if (!OS) { if (checkIt('linux')) OS =3D "Linux"; else if (checkIt('x11')) OS =3D "Unix"; else if (checkIt('mac')) OS =3D "Mac" else if (checkIt('win')) OS =3D "Windows" else OS =3D "an unknown operating system"; } } function checkIt(string) { place =3D detect.indexOf(string) + 1; thestring =3D string; return place; } /*-----------------------------------------------------------------------= ------------------------*/ Event.observe(window, 'load', initialize, false); Event.observe(window, 'load', getBrowserInfo, false); //Event.observe(window, 'unload', Event.unloadCache, false); var lightbox =3D Class.create(); lightbox.prototype =3D { yPos : 0, xPos : 0, =20 initialize: function(ctrl) { this.myplacesLink =3D ctrl; this.content =3D ctrl.href; this.eventListnerMethod =3D this.activate.bindAsEventListener(this); Event.observe(this.myplacesLink, 'click', this.eventListnerMethod, = false); ctrl.onclick =3D function(){return false;}; }, =09 // Turn everything on - mainly the IE fixes activate: function(){ =09 try { =09 this.bigFrame =3D parent.content; this.smallFrame =3D null; if (this.bigFrame.main) // course frameset { this.bigFrame =3D this.bigFrame.main; } else if (this.bigFrame.WFS_Files) // content system frameset { this.smallFrame =3D this.bigFrame.WFS_Navigation;=09 this.bigFrame =3D this.bigFrame.WFS_Files;=09 }=09 =20 if(this.bigFrame.document.getElementById('overlay')) { return; } =09 =09 head =3D this.bigFrame.document.getElementsByTagName('head')[0]; =09 =09 doctype =3D this.bigFrame.document.doctype; =09 =09 if((doctype !=3D null && doctype.name !=3D 'HTML' && browser =3D=3D = 'Firefox') || (doctype =3D=3D null && browser !=3D 'Internet Explorer')) { = this.newwindow=3Dwindow.open('myPlaces?newWindow=3Dtrue','name','resizabl= e=3D0,scrollbars=3D0,height=3D600,width=3D600'); newwindow.focus(); return; } else {=09 var addPrototype =3D true; =09 scripts =3D = $A(this.bigFrame.document.getElementsByTagName('script')).each( function = (link ) { if(link.src.endsWith('prototype.js')) { addPrototype =3D false; }=20 }); =09 if(addPrototype =3D=3D true) { proScript =3D = this.bigFrame.document.createElement('script'); proScript.type =3D 'text/javascript'; proScript.src =3D '/javascript/prototype.js'; head.appendChild(proScript); =09 } =09 /*var addNGDefaultCSS =3D true; =09 scripts =3D = $A(this.bigFrame.document.getElementsByTagName('link')).each( function = (cssLink ) { if(cssLink.href.endsWith('theme.css')) { addNGDefaultCSS =3D false; }=20 }); =09 if(addNGDefaultCSS =3D=3D true) { cssNode =3D this.bigFrame.document.createElement('link'); cssNode.type =3D 'text/css'; cssNode.rel =3D 'stylesheet'; cssNode.href =3D '/ui/styles/ngui/ng_default.css'; head.appendChild(cssNode); }*/ =09 bod =3D this.bigFrame.document.getElementsByTagName('body')[0]; html =3D = this.bigFrame.document.getElementsByTagName('html')[0]; =09 =09 overlay =3D this.bigFrame.document.createElement('div'); overlay.id =3D 'overlay'; =09 lb =3D this.bigFrame.document.createElement('div'); lb.id =3D 'lightboxWrapper'; lb.className =3D 'loading'; =20 =09 bod.appendChild(overlay); bod.appendChild(lb); =09 if(this.smallFrame) { bod =3D = this.smallFrame.document.getElementsByTagName('body')[0]; overlay =3D this.smallFrame.document.createElement('div'); overlay.id =3D 'overlay'; bod.appendChild(overlay); } =09 this.getScroll(); this.setScroll(0,0); if (browser =3D=3D 'Internet Explorer'){ this.prepareIE('100%', 'hidden'); this.hideSelects('hidden'); } this.displayLightbox("block"); } } catch(err) { =09 = newwindow=3Dwindow.open('myPlaces?newWindow=3Dtrue','name','resizable=3D0= ,scrollbars=3D0,height=3D600,width=3D600'); =09 newwindow.focus(); return; }=09 }, =09 // Ie requires height to 100% and overflow hidden or else you can = scroll down past the lightbox prepareIE: function(height, overflow){ bod =3D this.bigFrame.document.getElementsByTagName('body')[0]; bod.style.height =3D height; bod.style.overflow =3D overflow; =20 htm =3D this.bigFrame.document.getElementsByTagName('html')[0]; htm.style.height =3D height; htm.style.overflow =3D overflow;=20 }, =09 // In IE, select elements hover on top of the lightbox hideSelects: function(visibility){ selects =3D this.bigFrame.document.getElementsByTagName('select'); for(i =3D 0; i < selects.length; i++) { selects[i].style.visibility =3D visibility; } }, =09 // Taken from lightbox implementation found at = http://www.huddletogether.com/projects/lightbox/ getScroll: function(){ if (this.bigFrame.pageYOffset) { this.yPos =3D this.bigFrame.document.pageYOffset; } else if (this.bigFrame.document.documentElement && = parent.content.document.documentElement.scrollTop){ this.yPos =3D this.bigFrame.document.documentElement.scrollTop;=20 } else if (this.bigFrame.document.body) { this.yPos =3D this.bigFrame.document.body.scrollTop; } }, =09 setScroll: function(x, y){ this.bigFrame.scrollTo(x, y);=20 }, =09 displayLightbox: function(display){ this.bigFrame.document.getElementById('overlay').style.display =3D = display; this.bigFrame.document.getElementById('lightboxWrapper').style.display = =3D display; =09 if(this.smallFrame) { this.smallFrame.document.getElementById('overlay').style.display =3D = display;=09 } if(display !=3D 'none') this.loadInfo(); }, =09 // Begin Ajax request based off of the href of the clicked linked loadInfo: function() { new Ajax.Request('/webapps/portal/execute/myPlaces', { onSuccess: function(transport, json) { =09 var result =3D transport.responseText.evalJSON( true ); =09 if ( result.success =3D=3D "true" ) { =09 this.bigFrame.document.getElementById('lightboxWrapper').innerHTML = =3D result.myPlacesContent; myPlacesContentDiv =3D = this.bigFrame.document.getElementById('myPlacesContent'); myPlacesContentDiv.getElementsByTagName('a')[0].focus(); =09 //set all tab groups to be inactive active =3D parent.nav.document.getElementsByClassName('active'); for(i =3D 0; i < active.length; i++)=20 { this.activeTab =3D active[0]; active[i].removeClassName('active'); } =20 this.actions(); } else { new page.InlineConfirmation("error", result.errorMessage, false );=20 } =20 }.bind(this) }); =09 }, =20 =09 // Display Ajax response processInfo: function(response){ info =3D "" + = response.responseText + ""; $('lbLoadMessage').insert({before: info}); $('lightbox').className =3D "done";=09 this.actions(); =09 }, =09 // Search through new links within the lightbox, and attach click event actions: function(){ lbAction =3D this.bigFrame.document.getElementById('lbAction'); Event.observe(lbAction, 'click', = this.deactivate.bindAsEventListener(this), false); lbAction.onclick =3D function(){return false;}; }, =09 // Example of creating your own functionality once lightbox is = initiated insert: function(e){ link =3D Event.element(e).parentNode; Element.remove($('lbContent')); =20 var myAjax =3D new Ajax.Request( link.href, {method: 'post', parameters: "", onComplete: = this.processInfo.bindAsEventListener(this)} ); =20 }, =09 // Example of creating your own functionality once lightbox is = initiated deactivate: function(){ if(this.smallFrame) { = this.smallFrame.document.getElementById('overlay').style.display=3D'none'= ; } =09 this.bigFrame.$('lightboxWrapper').remove(); this.bigFrame.$('overlay').remove(); =09 this.setScroll(0,this.yPos); if (browser =3D=3D "Internet Explorer"){ this.prepareIE("auto", "auto"); this.hideSelects("visible"); } =09 = //this.bigFrame.document.getElementById('overlay').style.display=3D'none'= ; =09 =09 if(this.activeTab) this.activeTab.addClassName('active'); //Event.observe(this.myplacesLink, 'click', this.eventListnerMethod, = false); } } /*-----------------------------------------------------------------------= ------------------------*/ // Onload, make all links that need to trigger a lightbox active function initialize(){ lbox =3D document.getElementsByClassName('myPlaces'); for(i =3D 0; i < lbox.length; i++) { valid =3D new lightbox(lbox[i]); } } ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: multipart/alternative; boundary="----=_NextPart_001_0021_01CA341B.AF48DDF0" ------=_NextPart_001_0021_01CA341B.AF48DDF0 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/portal/frameset.jsp?tab_id=_41_1&url=%2Fwebapps%2Fblackboard%2Fexecute%2Flauncher%3Ftype%3DCourse%26id%3D_702465_1%26url%3D =EF=BB=BF Blackboard Learn ------=_NextPart_001_0021_01CA341B.AF48DDF0 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/portal/execute/topframe?tab_tab_group_id=_1_1&frameSize=LARGE =EF=BB=BF Blackboard = Learn Wayne State University Home =20 Utility Links =20 My Places Home Help=20 Logout Tab Groups=20 My Blackboard Content Collection Library Scholar = ------=_NextPart_001_0021_01CA341B.AF48DDF0-- ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://blackboard.wayne.edu/images/ci/ng/small_new_window.gif R0lGODlhEAAPAJEDAO3t7f///5mZmf///yH5BAEAAAMALAAAAAAQAA8AAAIrnI+py+IPRRKgWiuR CLz3PDzeCFLb+B0mmhorG5TAycrRrV4XqN4PAwwCCwA7 ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://blackboard.wayne.edu/images/ci/ng/small_help_on2.gif R0lGODlhEAAPAJECAGZmZv///////wAAACH5BAEAAAIALAAAAAAQAA8AAAIilI+pu+EfmAig2tis xgm6ymWXRI0kGDaPdJSp+CoQS9dKAQA7 ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/branding/themes/wsu_production_theme/theme.css?v=9.0.440.7 BODY { BACKGROUND-POSITION: 0% 0%; MARGIN: 0px; FONT: 0.8em "Lucida grande", = Arial, Verdana, sans-serif; HEIGHT: 100%; BACKGROUND-COLOR: #cdcdcd } FORM { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } A { COLOR: #003366 } * { FONT-FAMILY: "Lucida grande", Arial, verdana, sans-serif } IMG { BORDER-RIGHT: 0px; BORDER-TOP: 0px; VERTICAL-ALIGN: middle; = BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } .hideme { DISPLAY: none! important } H1 { FONT-SIZE: 148%; HEIGHT: 1% } H2 { FONT-SIZE: 123.1% } H3 { FONT-SIZE: 108% } H1 { MARGIN: 1em 0px } H2 { MARGIN: 1em 0px } H3 { MARGIN: 1em 0px } H1 { FONT-WEIGHT: bold } H2 { FONT-WEIGHT: bold } H3 { FONT-WEIGHT: bold } H4 { FONT-WEIGHT: bold } H5 { FONT-WEIGHT: bold } H6 { FONT-WEIGHT: bold } STRONG { FONT-WEIGHT: bold } IMG { BEHAVIOR: url(/javascript/iepngfix.htc) } DIV { BEHAVIOR: url(/javascript/iepngfix.htc) } BODY { MIN-WIDTH: 800px } DIV.topGlobalLinks { MIN-WIDTH: 800px } BODY.popup { PADDING-RIGHT: 0px; MIN-WIDTH: 100%; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; PADDING-TOP: 6px } BODY.csMenuFrame { MIN-WIDTH: 200px; WIDTH: 100%; PADDING-TOP: 12px } BODY.popupMenu { MIN-WIDTH: 200px; WIDTH: 100%; PADDING-TOP: 12px } DIV.locationPane { =09 } DIV.topGlobalLinks { =09 } BODY.popup DIV.locationPane { WIDTH: 100% } .extraLarge { FONT-SIZE: 200%; LINE-HEIGHT: 150% } TABLE.bouncer { WIDTH: 100%; BORDER-COLLAPSE: collapse } TABLE.bouncer TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } DIV.topTabs { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: #dedede 3px solid; ZOOM: 1; POSITION: = relative; HEIGHT: 74px } TABLE.topTabs { BORDER-COLLAPSE: collapse } .frameResizeToggle { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9px; BACKGROUND: = #bbbbbb; LEFT: 0px; PADDING-BOTTOM: 0px; BOTTOM: 0px; LINE-HEIGHT: 1px; = PADDING-TOP: 0px; POSITION: absolute; TOP: 68px; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px } .frameResizeToggle A { BACKGROUND: url(images/top_frame_toggle_2.gif) no-repeat 0px 2px; = FILTER: alpha(opacity=3D60); OVERFLOW: hidden; HEIGHT: 18px; opacity: .6 } .frameResizeToggle A:hover { FILTER: alpha(opacity=3D100); opacity: 1 } .frameResizeToggle A.resize-on { BACKGROUND-POSITION: 0px -15px } .frameResizeToggle A.resize-off { BACKGROUND-POSITION: 0px 2px } .frameResizeToggle A IMG { WIDTH: 16px; HEIGHT: 18px } DIV.topTabs DIV.tabWrapper-left { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } DIV.topTabs DIV.tabWrapper-center { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } DIV.topTabs DIV.tabWrapper-right { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } TABLE.topTabs TR TD DIV.tabWrapper-left { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } TABLE.topTabs TR TD DIV.tabWrapper-center { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } TABLE.topTabs TR TD DIV.tabWrapper-right { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } DIV.topTabs DIV.tabWrapper-center TABLE.appTabs { MARGIN: 0px auto } TABLE.topTabs TR TD DIV.tabWrapper-center TABLE.appTabs { MARGIN: 0px auto } DIV.topTabs DIV.tabWrapper-right TABLE.appTabs { FLOAT: right } TABLE.topTabs TR TD DIV.tabWrapper-right TABLE.appTabs { FLOAT: right } TABLE.appTabs { WIDTH: auto; POSITION: relative; TOP: 3px; border-spacing: 2px } HTML * TABLE.appTabs { TOP: 3px } TABLE.appTabs TBODY TR TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 4px 0px 0px; PADDING-TOP: 0px; POSITION: relative } #topTab { BORDER-RIGHT: #65696e 1px solid; PADDING-RIGHT: 1.2em; = BACKGROUND-POSITION: right 5px; BORDER-TOP: #65696e 1px solid; DISPLAY: = block; PADDING-LEFT: 1.2em; FONT-SIZE: 95%; Z-INDEX: 100; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0.4em; MARGIN: 0px; BORDER-LEFT: = #65696e 1px solid; COLOR: #ffffff; PADDING-TOP: 0.4em; BORDER-BOTTOM: = 0px; BACKGROUND-REPEAT: repeat-x; WHITE-SPACE: nowrap; BACKGROUND-COLOR: = #7c8188; TEXT-ALIGN: center; TEXT-DECORATION: none } TABLE.appTabs TBODY TR TD A { BORDER-RIGHT: #65696e 1px solid; PADDING-RIGHT: 1.2em; = BACKGROUND-POSITION: right 5px; BORDER-TOP: #65696e 1px solid; DISPLAY: = block; PADDING-LEFT: 1.2em; FONT-SIZE: 95%; Z-INDEX: 100; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0.4em; MARGIN: 0px; BORDER-LEFT: = #65696e 1px solid; COLOR: #ffffff; PADDING-TOP: 0.4em; BORDER-BOTTOM: = 0px; BACKGROUND-REPEAT: repeat-x; WHITE-SPACE: nowrap; BACKGROUND-COLOR: = #7c8188; TEXT-ALIGN: center; TEXT-DECORATION: none } TABLE.appTabs TBODY TR TD A:hover { BORDER-RIGHT: #597298 1px solid; BORDER-TOP: #597298 1px solid; = BACKGROUND: #bbb; BORDER-LEFT: #597298 1px solid; COLOR: #000; = BORDER-BOTTOM: 0px } TABLE.appTabs TBODY TR TD A:focus { BORDER-RIGHT: #597298 1px solid; BORDER-TOP: #597298 1px solid; = BACKGROUND: #bbb; BORDER-LEFT: #597298 1px solid; COLOR: #000; = BORDER-BOTTOM: 0px } #topTabActive { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1.2em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1.2em; FONT-WEIGHT: bold; Z-INDEX: = 1000; PADDING-BOTTOM: 0.38em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.34em; BORDER-BOTTOM: medium none; TOP: 1px; = BACKGROUND-COLOR: #dedede; opacity: 1 } TABLE.appTabs TBODY TR TD.active A { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1.2em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1.2em; FONT-WEIGHT: bold; Z-INDEX: = 1000; PADDING-BOTTOM: 0.38em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.34em; BORDER-BOTTOM: medium none; TOP: 1px; = BACKGROUND-COLOR: #dedede; opacity: 1 } TABLE.appTabs TBODY TR TD.active A:hover { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1.2em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1.2em; FONT-WEIGHT: bold; Z-INDEX: = 1000; PADDING-BOTTOM: 0.38em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.34em; BORDER-BOTTOM: medium none; TOP: 1px; = BACKGROUND-COLOR: #dedede; opacity: 1 } TABLE.round1 { POSITION: relative; TOP: 4px } TABLE.round2 { POSITION: relative; TOP: 4px } HTML * TABLE.round1 { TOP: 3px } HTML * TABLE.round2 { TOP: 3px } TABLE.round1 TBODY TR TD A { -moz-border-radius-topright: 9px; -webkit-border-top-right-radius: 9px; = -moz-border-radius-topleft: 9px; -webkit-border-top-left-radius: 9px; = -khtml-border-horizontal-spacing: 9px } TABLE.round2 TBODY TR TD A { -moz-border-radius-topright: 36px; -webkit-border-top-right-radius: = 36px; -moz-border-radius-topleft: 36px; -webkit-border-top-left-radius: = 36px; -khtml-border-horizontal-spacing: 36px } TABLE.appTabs TBODY TR TD H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } TABLE.appTabs TBODY TR TD.active H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } TABLE.appTabs TBODY TR TD.active H2 { FONT-WEIGHT: bold } DIV.topTabs DIV.topGlobalLinks { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; RIGHT: 0px; = BACKGROUND: none transparent scroll repeat 0% 0%; LEFT: 0px; = PADDING-BOTTOM: 0px; WIDTH: 100%; PADDING-TOP: 0px; ZOOM: 1; POSITION: = absolute; TOP: 0px; TEXT-ALIGN: center } TABLE.topTabs TR TD DIV.topGlobalLinks { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; RIGHT: 0px; = BACKGROUND: none transparent scroll repeat 0% 0%; LEFT: 0px; = PADDING-BOTTOM: 0px; WIDTH: 100%; PADDING-TOP: 0px; ZOOM: 1; POSITION: = absolute; TOP: 0px; TEXT-ALIGN: center } DIV.topTabs-compact DIV.topGlobalLinks { RIGHT: 0px; BACKGROUND: #fff; LEFT: auto; WIDTH: 100%; COLOR: #777; = POSITION: absolute; TOP: 0px } TABLE.topTabs-compact TR TD DIV.topGlobalLinks { RIGHT: 0px; BACKGROUND: #fff; LEFT: auto; WIDTH: 100%; COLOR: #777; = POSITION: absolute; TOP: 0px } DIV.topTabs DIV.topGlobalLinks UL { BORDER-RIGHT: medium none; PADDING-RIGHT: 3px; BORDER-TOP: medium none; = PADDING-LEFT: 3px; Z-INDEX: 1001; BACKGROUND: none transparent scroll = repeat 0% 0%; PADDING-BOTTOM: 2px; MARGIN: 0px auto; BORDER-LEFT: medium = none; WIDTH: 440px; PADDING-TOP: 0px; BORDER-BOTTOM: medium none; = LIST-STYLE-TYPE: none } TABLE.topTabs TR TD DIV.topGlobalLinks UL { BORDER-RIGHT: medium none; PADDING-RIGHT: 3px; BORDER-TOP: medium none; = PADDING-LEFT: 3px; Z-INDEX: 1001; BACKGROUND: none transparent scroll = repeat 0% 0%; PADDING-BOTTOM: 2px; MARGIN: 0px auto; BORDER-LEFT: medium = none; WIDTH: 440px; PADDING-TOP: 0px; BORDER-BOTTOM: medium none; = LIST-STYLE-TYPE: none } DIV.topTabs DIV.topGlobalLinks UL LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; Z-INDEX: 499; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; ZOOM: 1; = POSITION: relative; TOP: 0px; HEIGHT: 1% } TABLE.topTabs TR TD DIV.topGlobalLinks UL LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; Z-INDEX: 499; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; ZOOM: 1; = POSITION: relative; TOP: 0px; HEIGHT: 1% } DIV.topGlobalLinks UL LI IMG { LEFT: 0px; POSITION: absolute; TOP: 15px } DIV.topTabs DIV.topGlobalLinks UL LI A { PADDING-RIGHT: 8px; MARGIN-TOP: 15px; DISPLAY: inline-block; = PADDING-LEFT: 30px; FONT-SIZE: 85%; BACKGROUND: none transparent scroll = repeat 0% 0%; PADDING-BOTTOM: 4px; BORDER-LEFT: #555 1px solid; COLOR: = #fff; PADDING-TOP: 4px; ZOOM: 1; TEXT-ALIGN: left; TEXT-DECORATION: none } TABLE.topTabs TR TD DIV.topGlobalLinks UL LI A { PADDING-RIGHT: 8px; MARGIN-TOP: 15px; DISPLAY: inline-block; = PADDING-LEFT: 30px; FONT-SIZE: 85%; BACKGROUND: none transparent scroll = repeat 0% 0%; PADDING-BOTTOM: 4px; BORDER-LEFT: #555 1px solid; COLOR: = #fff; PADDING-TOP: 4px; ZOOM: 1; TEXT-ALIGN: left; TEXT-DECORATION: none } HTML * DIV.topTabs DIV.topGlobalLinks UL LI A { FONT-SIZE: 85% } HTML * DIV.topTabs-compact DIV.topGlobalLinks UL LI A { FONT-SIZE: 85% } DIV.topTabs DIV.topGlobalLinks UL LI A:hover { TEXT-DECORATION: underline } DIV.topTabs DIV.topGlobalLinks UL LI:first-child A { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } DIV.topTabs DIV.topGlobalLinks UL LI:first-child A:hover { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } DIV.topTabs DIV.topGlobalLinks UL LI A.myPlaces { PADDING-RIGHT: 6px! important; PADDING-LEFT: 28px! important; = PADDING-BOTTOM: 3px! important; PADDING-TOP: 3px! important } DIV.topTabs DIV.topGlobalLinks UL LI A.home { BACKGROUND: url(images/home_ti.gif) no-repeat center 0px } DIV.topTabs DIV.topGlobalLinks UL LI A.logout { BACKGROUND: url(images/logout.gif) no-repeat center 0px } DIV.topTabs DIV.topGlobalLinks UL LI A.help { BACKGROUND: url(images/small_help_on2.gif) no-repeat center 0px } DIV.topTabs DIV.topGlobalLinks UL LI A.myPlaces { BACKGROUND-POSITION: 2px center } DIV.topTabs DIV.topGlobalLinks UL LI A.home { BACKGROUND-POSITION: 2px center } DIV.topTabs DIV.topGlobalLinks UL LI A.logout { BACKGROUND-POSITION: 2px center } DIV.topTabs DIV.topGlobalLinks UL LI A.help { BACKGROUND-POSITION: 2px center } DIV.topTabs-compact DIV.topGlobalLinks A { FONT-SIZE: 85%; MARGIN: 0px 3px; TEXT-DECORATION: none } DIV.topTabs-compact DIV.topGlobalLinks A IMG { DISPLAY: none } DIV.topTabs-compact DIV.topGlobalLinks A:hover { COLOR: #000; TEXT-DECORATION: underline } HTML * DIV.topTabs DIV.topGlobalLinks UL LI A { FONT-SIZE: 85% } HTML * DIV.topTabs-compact DIV.topGlobalLinks UL LI A { FONT-SIZE: 85% } DIV.topTabs DIV.hotItems { RIGHT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; WIDTH: = 400px; MAX-HEIGHT: 48px; POSITION: absolute; TOP: 0px; HEIGHT: 48px } DIV.topTabs DIV.hotItems UL.hotLinks { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; Z-INDEX: 1001; PADDING-BOTTOM: 0px; MARGIN: 0px 14px = 2px 0px; OVERFLOW: auto; BORDER-LEFT: medium none; MAX-HEIGHT: 48px; = PADDING-TOP: 0px; BORDER-BOTTOM: medium none; LIST-STYLE-TYPE: none; = HEIGHT: 48px } DIV.topTabs DIV.hotItems UL.hotLinks LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; TOP: 0px } DIV.topTabs DIV.hotItems UL.hotLinks LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 8px; BORDER-TOP: 0px; PADDING-LEFT: = 8px; FONT-SIZE: 85%; BACKGROUND: none transparent scroll repeat 0% 0%; = PADDING-BOTTOM: 1px; MARGIN: 0px; BORDER-LEFT: 0px; LINE-HEIGHT: 100%; = PADDING-TOP: 1px; BORDER-BOTTOM: 0px; TEXT-ALIGN: left; TEXT-DECORATION: = none } DIV.topTabs DIV.hotItems UL.hotLinks LI A:hover { COLOR: #000; TEXT-DECORATION: underline } DIV.topTabs-compact DIV.topGlobalLinks { RIGHT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; TOP: 0px; = TEXT-ALIGN: center } DIV.topTabs-compact { PADDING-TOP: 14px; POSITION: relative } DIV.topTabs-compact DIV.tabWrapper-left { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px; BORDER-BOTTOM: #dedede 3px solid } DIV.topTabs-compact DIV.tabWrapper-center { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px; BORDER-BOTTOM: #dedede 3px solid } DIV.topTabs-compact DIV.tabWrapper-right { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px; BORDER-BOTTOM: #dedede 3px solid } DIV.topTabs-compact TABLE.appTabs { WIDTH: auto; POSITION: relative; TOP: 2px } HTML * DIV.topTabs-compact TABLE.appTabs { TOP: 2px } DIV.topTabs-compact DIV.tabWrapper-center TABLE.appTabs { MARGIN: 0px auto } DIV.topTabs-compact DIV.tabWrapper-right TABLE.appTabs { FLOAT: right } DIV.topTabs-compact TABLE.appTabs TR TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 4px 0px 0px; PADDING-TOP: 0px; POSITION: relative } DIV.topTabs-compact TABLE.appTabs TR TD A { BORDER-RIGHT: #65696e 1px solid; PADDING-RIGHT: 1em; = BACKGROUND-POSITION: right 5px; BORDER-TOP: #65696e 1px solid; DISPLAY: = block; PADDING-LEFT: 1em; FONT-SIZE: 90%; Z-INDEX: 100; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0.2em; MARGIN: 0px; BORDER-LEFT: = #65696e 1px solid; COLOR: #ffffff; PADDING-TOP: 0.3em; BORDER-BOTTOM: = #7c8188 1px solid; BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: = #7c8188; TEXT-ALIGN: center; TEXT-DECORATION: none } DIV.topTabs-compact TABLE.round1 TR TD.active A { -moz-border-radius-topright: 9px; -webkit-border-top-right-radius: 9px; = -moz-border-radius-topleft: 9px; -webkit-border-top-left-radius: 9px; = -khtml-border-horizontal-spacing: 9px } DIV.topTabs-compact TABLE.round1 TR TD A { -moz-border-radius-topright: 9px; -webkit-border-top-right-radius: 9px; = -moz-border-radius-topleft: 9px; -webkit-border-top-left-radius: 9px; = -khtml-border-horizontal-spacing: 9px } DIV.topTabs-compact TABLE.round2 TR TD.active A { -moz-border-radius-topright: 36px; -webkit-border-top-right-radius: = 36px; -moz-border-radius-topleft: 36px; -webkit-border-top-left-radius: = 36px; -khtml-border-horizontal-spacing: 36px } DIV.topTabs-compact TABLE.round2 TR TD A { -moz-border-radius-topright: 36px; -webkit-border-top-right-radius: = 36px; -moz-border-radius-topleft: 36px; -webkit-border-top-left-radius: = 36px; -khtml-border-horizontal-spacing: 36px } DIV.topTabs-compact TABLE.appTabs TR TD A:hover { BORDER-RIGHT: #597298 1px solid; BORDER-TOP: #597298 1px solid; = BACKGROUND: #bbb; BORDER-LEFT: #597298 1px solid; COLOR: #000; = BORDER-BOTTOM: #bbb 1px solid } DIV.topTabs-compact TABLE.appTabs TR TD.active A { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1em; FONT-WEIGHT: bold; BACKGROUND: = #dedede; PADDING-BOTTOM: 0.2em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.3em; BORDER-BOTTOM: medium none; TEXT-DECORATION: = none } DIV.topTabs-compact TABLE.appTabs TR TD.active A:hover { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1em; FONT-WEIGHT: bold; BACKGROUND: = #dedede; PADDING-BOTTOM: 0.2em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.3em; BORDER-BOTTOM: medium none; TEXT-DECORATION: = none } DIV.topTabs-compact UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #777d86 1px solid; = LIST-STYLE-TYPE: none } DIV.topTabs-compact UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.topTabs-compact UL LI.gap { MARGIN-LEFT: 3px } DIV.topTabs-compact UL LI.gap A:hover { =09 } DIV.topTabs-compact UL LI A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; FONT-SIZE: = 85%; PADDING-BOTTOM: 5px; MARGIN: 0px; COLOR: #fff; PADDING-TOP: 5px; = TEXT-DECORATION: none } .topTabs-compact UL LI A:hover { COLOR: #fff; TEXT-DECORATION: underline } .topTabs-compact UL LI.active { Z-INDEX: 2500; MARGIN: 0px; BORDER-BOTTOM: medium none } .topTabs-compact UL LI.active { POSITION: relative; TOP: 1px } .topTabs-compact UL LI.active A { BORDER-RIGHT: #777d86 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: = #777d86 1px solid; DISPLAY: block; PADDING-LEFT: 12px; FONT-WEIGHT: = bold; BACKGROUND: #cdcdcd; PADDING-BOTTOM: 4px; MARGIN: 0px; = BORDER-LEFT: #777d86 1px solid; COLOR: #000! important; PADDING-TOP: = 6px; BORDER-BOTTOM: medium none; TEXT-DECORATION: none; = -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; = -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px } .topTabs-compact UL LI.gap { MARGIN-LEFT: 12px } .topTabs-compact DIV.hotItems { DISPLAY: none } .topTabs-compact DIV.topGlobalLinks UL { BORDER-RIGHT: 0px; BORDER-TOP: 0px; FLOAT: right; BORDER-LEFT: 0px; = BORDER-BOTTOM: 0px } .topTabs-compact DIV.topGlobalLinks UL LI { Z-INDEX: 499; FLOAT: left; MARGIN: 0px 4px; POSITION: relative } .topTabs-compact DIV.topGlobalLinks UL LI A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .topTabs DIV.brandingImgWrap { OVERFLOW: hidden; HEIGHT: 43px } .topTabs DIV.brandingImgWrap IMG.bannerImage { MARGIN: 0px } .topTabs-compact IMG.bannerImage { DISPLAY: none } .topTabs-compact DIV.brandingImgWrap { DISPLAY: none } #topFrame { BACKGROUND-POSITION: 0px 0px; COLOR: #fff; BACKGROUND-REPEAT: = no-repeat; BACKGROUND-COLOR: #8192a8 } .bgBanner { BACKGROUND-POSITION: 0px 0px; COLOR: #fff; BACKGROUND-REPEAT: = no-repeat; BACKGROUND-COLOR: #8192a8 } DIV.locationPane { MARGIN-TOP: 10px; OVERFLOW: visible; ZOOM: 1; POSITION: relative } #navigationPane { CLEAR: both; PADDING-RIGHT: 0px; MARGIN-TOP: 0px; PADDING-LEFT: 0px; = LEFT: 0px; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 212px; = PADDING-TOP: 0px; ZOOM: 1; POSITION: absolute; TOP: 0px } DIV.navigationPane { CLEAR: both; PADDING-RIGHT: 0px; MARGIN-TOP: 0px; PADDING-LEFT: 0px; = LEFT: 0px; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 212px; = PADDING-TOP: 0px; ZOOM: 1; POSITION: absolute; TOP: 0px } DIV.menuWrap { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: = 212px; PADDING-TOP: 0px; POSITION: relative; BACKGROUND-COLOR: = transparent } .navcollapsed { WIDTH: 0px! important } .pullcollapsed { LEFT: 1px! important } .pullcollapsed A { DISPLAY: block; BACKGROUND: url(images/menu_expand3.gif) no-repeat 0px = 0px; WIDTH: 14px; HEIGHT: 29px } .contcollapsed { MARGIN-LEFT: 15px! important } #puller { MARGIN-TOP: 180px; Z-INDEX: 3; LEFT: 198px; POSITION: absolute; HEIGHT: = 1px; BACKGROUND-COLOR: transparent! important } #puller A { DISPLAY: block; BACKGROUND: url(images/menu_collapse3.gif) no-repeat = 0px 0px; WIDTH: 14px; HEIGHT: 29px } #puller A IMG { WIDTH: 14px; HEIGHT: 29px } #contentPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px 0px 212px; = OVERFLOW: visible; PADDING-TOP: 0px; ZOOM: 1 } DIV.contentPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px 0px 212px; = OVERFLOW: visible; PADDING-TOP: 0px; ZOOM: 1 } #contentPaneWide { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px; = PADDING-TOP: 0px; ZOOM: 1 } DIV.contentPaneWide { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px; = PADDING-TOP: 0px; ZOOM: 1 } DIV.portalPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px; = PADDING-TOP: 0px; ZOOM: 1 } #content { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; ZOOM: 1 } DIV.contentBox { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; ZOOM: 1 } DIV.portal DIV.content { =09 } DIV.paneTabs { PADDING-RIGHT: 1px; MIN-WIDTH: 600px; PADDING-LEFT: 1px; BACKGROUND: = none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 0px } DIV.paneTabs UL { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.paneTabs UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 200; FLOAT: left; = PADDING-BOTTOM: 1px; MARGIN: 0px 5px 0px 0px; PADDING-TOP: 1px; = POSITION: relative; TEXT-ALIGN: center } DIV.paneTabs UL LI A { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; BACKGROUND: = #dedede; PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; = TEXT-DECORATION: none; -moz-border-radius: 3px; -webkit-border-radius: = 3px } DIV.paneTabs UL LI.active { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 95%; Z-INDEX: 10; BACKGROUND: none transparent scroll repeat 0% 0%; = FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px 4px 0px -1px; COLOR: #000; = PADDING-TOP: 0px; POSITION: relative; TEXT-ALIGN: center! important } DIV.paneTabs UL LI.active A { BORDER-RIGHT: medium none; PADDING-RIGHT: 16px; BORDER-TOP: medium = none; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: = 5px; BORDER-BOTTOM: medium none; TEXT-DECORATION: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.active A:hover { BORDER-RIGHT: medium none; PADDING-RIGHT: 16px; BORDER-TOP: medium = none; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: = 5px; BORDER-BOTTOM: medium none; TEXT-DECORATION: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.activepersonal A { BORDER-RIGHT: medium none; PADDING-RIGHT: 16px; BORDER-TOP: medium = none; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: = 5px; BORDER-BOTTOM: medium none; TEXT-DECORATION: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.activepersonal A:hover { BORDER-RIGHT: medium none; PADDING-RIGHT: 16px; BORDER-TOP: medium = none; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: = 5px; BORDER-BOTTOM: medium none; TEXT-DECORATION: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.active H3 { BORDER-RIGHT: medium none; PADDING-RIGHT: 16px; BORDER-TOP: medium = none; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: = 5px; BORDER-BOTTOM: medium none; TEXT-DECORATION: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.activepersonal A { PADDING-RIGHT: 22px; PADDING-LEFT: 16px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 5px; PADDING-TOP: 5px } DIV.paneTabs UL LI.activepersonal A:hover { PADDING-RIGHT: 22px; PADDING-LEFT: 16px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 5px; PADDING-TOP: 5px } DIV.paneTabs UL LI.addbutton { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 100; BACKGROUND: none = transparent scroll repeat 0% 0%; FLOAT: left; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 1px; POSITION: relative; TEXT-ALIGN: center } DIV.paneTabs UL LI.personal A { PADDING-RIGHT: 20px; DISPLAY: block; PADDING-LEFT: 9px; BACKGROUND: = #dedede; PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; = TEXT-DECORATION: none } DIV.paneTabs UL LI.external A { PADDING-LEFT: 20px; BACKGROUND: url(images/small_external_content.gif) = #dedede no-repeat 2px center } DIV.paneTabs UL LI.external A:hover { PADDING-LEFT: 20px; BACKGROUND: url(images/small_external_content.gif) = #fff1c5 no-repeat 2px center } DIV.paneTabs UL LI.activepersonal A.paneTabOptions { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; RIGHT: 5px; = FILTER: alpha(opacity=3D30); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; = POSITION: absolute! important; TOP: 4px; BACKGROUND-COLOR: transparent; = opacity: 0.3 } DIV.paneTabs UL LI.personal A.paneTabOptions { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; RIGHT: 5px; = FILTER: alpha(opacity=3D30); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; = POSITION: absolute! important; TOP: 4px; BACKGROUND-COLOR: transparent; = opacity: 0.3 } DIV.paneTabs UL LI A.paneTabOptions { DISPLAY: none } DIV.paneTabs UL LI.activepersonal:hover A.paneTabOptions { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.paneTabs UL LI.button A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 9px; BACKGROUND: #d3e2f5; = PADDING-BOTTOM: 3px; BORDER-LEFT: #acc2df 1px solid; COLOR: #555; = PADDING-TOP: 2px; BORDER-BOTTOM: #acc2df 1px solid; TEXT-DECORATION: = none; -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.button A:hover { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #acc2df 1px solid; = BACKGROUND: url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = BORDER-LEFT: #acc2df 1px solid; BORDER-BOTTOM: #5577bb 1px solid } DIV.paneTabs UL LI A:hover { BACKGROUND: #fff1c5; TEXT-DECORATION: none } DIV.paneTabs UL LI A:hover { TEXT-DECORATION: none } DIV.paneTabs LI.active A:hover { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } DIV.paneTabs UL LI A.hiddenTabsLink IMG { WIDTH: 2px; HEIGHT: 2px } DIV.paneTabs UL.nav LI.sub A.hiddenTabsLink { BACKGROUND-POSITION: center center; BACKGROUND-IMAGE: = url(images/more_options.gif); BACKGROUND-REPEAT: no-repeat } DIV.paneTabs UL.nav LI.sub UL.more { BORDER-RIGHT: #888 1px solid; BORDER-TOP: #ccc 1px solid; MARGIN-TOP: = -4px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #888 1px solid } DIV.paneTabs UL.nav LI.sub UL.more LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px! important; BORDER-TOP: 0px; = DISPLAY: block; PADDING-LEFT: 18px! important; FONT-WEIGHT: normal; = FONT-SIZE: 105%; BACKGROUND: url(images/cm_bullet_single.gif) #ddd = no-repeat 5px 3px; PADDING-BOTTOM: 2px! important; MARGIN: 0px; = BORDER-LEFT: 0px; COLOR: #444; PADDING-TOP: 2px! important; = BORDER-BOTTOM: 0px; TEXT-ALIGN: left; TEXT-DECORATION: none } DIV.paneTabs UL.nav LI.sub UL.more LI A:hover { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff1c5 no-repeat 5px 3px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px; TEXT-DECORATION: none } #contentPane DIV.topRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } #contentPane DIV.bottomRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.topRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.bottomRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.topRound B { DISPLAY: block; OVERFLOW: hidden } DIV.bottomRound B { DISPLAY: block; OVERFLOW: hidden } DIV.topRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.bottomRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.topRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } DIV.bottomRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } DIV.topRound B { BACKGROUND: #fff1c5 } DIV.bottomRound B { BACKGROUND: #fff } DIV.landing DIV.container { BACKGROUND: #ededed } DIV.landing DIV.bottomRound B { BACKGROUND: #ededed } DIV.error DIV.container { BACKGROUND: #ededed } DIV.error DIV.bottomRound B { BACKGROUND: #ededed } DIV.portal DIV.bottomRound B { BACKGROUND-COLOR: #e3efff } DIV.portal DIV.container { BACKGROUND-COLOR: #e3efff } DIV.tabbedPane DIV.topRound B { DISPLAY: none } DIV.hasTopBanner DIV.topRound B { DISPLAY: none } DIV.error DIV.topRound B { BACKGROUND-COLOR: red } DIV.pickerMenu DIV.topRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.pickerMenu DIV.bottomRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.pickerMenu DIV.topRound B.middle { MARGIN: 0px 1px; HEIGHT: 2px } DIV.pickerMenu DIV.bottomRound B.middle { MARGIN: 0px 1px; HEIGHT: 2px } DIV.pickerMenu DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 1px } DIV.pickerMenu DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 1px } DIV.breadcrumbs { BACKGROUND: none transparent scroll repeat 0% 0%; MARGIN: 0px 14px; = POSITION: relative; HEIGHT: 1% } DIV.banner + DIV.breadcrumbs { MARGIN: 0px; BACKGROUND-COLOR: transparent } DIV.breadcrumbs A.close { Z-INDEX: 100; RIGHT: 20px; FILTER: alpha(opacity=3D70); POSITION: = absolute; TOP: 3px; opacity: 0.7 } DIV.path { PADDING-RIGHT: 200px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 85%; BACKGROUND: #dedede; PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #000; = PADDING-TOP: 4px; POSITION: relative; HEIGHT: 1px } DIV.simplePath { PADDING-RIGHT: 200px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 85%; BACKGROUND: #dedede; PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #000; = PADDING-TOP: 4px; POSITION: relative; HEIGHT: 1px } DIV.breadcrumbs DIV.noToggle { PADDING-RIGHT: 24px; PADDING-LEFT: 6px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px } DIV.simplePath { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; PADDING-TOP: 4px } DIV.path OL { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.simplePath OL { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.path OL LI.label { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; = PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.simplePath OL LI.label { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; = PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.path OL LI { PADDING-RIGHT: 12px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = BACKGROUND: url(images/breadcrumb_arrow.gif) no-repeat right center; = FLOAT: left; PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.simplePath OL LI { PADDING-RIGHT: 12px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = BACKGROUND: url(images/breadcrumb_arrow.gif) no-repeat right center; = FLOAT: left; PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.path OL LI.placeholder { PADDING-RIGHT: 0px; PADDING-LEFT: 3px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: = 0px } DIV.simplePath OL LI.placeholder { PADDING-RIGHT: 0px; PADDING-LEFT: 3px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: = 0px } DIV.path A { FONT-WEIGHT: normal; COLOR: #000000; TEXT-DECORATION: none } DIV.simplePath A { FONT-WEIGHT: normal; COLOR: #000000; TEXT-DECORATION: none } DIV.path A:hover { COLOR: #000; TEXT-DECORATION: underline } DIV.simplePath A:hover { COLOR: #000; TEXT-DECORATION: underline } DIV.path OL LI.button { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 2px; MARGIN: = -2px 6px -2px -2px; PADDING-TOP: 0px; BACKGROUND-COLOR: #f6f6f6; = -moz-border-radius: 3px; -webkit-border-radius: 3px } DIV.simplePath OL LI.button { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 2px; MARGIN: = -2px 6px -2px -2px; PADDING-TOP: 0px; BACKGROUND-COLOR: #f6f6f6; = -moz-border-radius: 3px; -webkit-border-radius: 3px } DIV.path OL LI.button A { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; PADDING-TOP: 1px } DIV.simplePath OL LI.button A { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; PADDING-TOP: 1px } DIV.path OL LI.root { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 2px; MARGIN: -2px 8px -2px 0px; = COLOR: #efefef; PADDING-TOP: 2px; BACKGROUND-COLOR: #949494; = -moz-border-radius: 3px; -webkit-border-radius: 3px } DIV.simplePath OL LI.root { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 2px; MARGIN: -2px 8px -2px 0px; = COLOR: #efefef; PADDING-TOP: 2px; BACKGROUND-COLOR: #949494; = -moz-border-radius: 3px; -webkit-border-radius: 3px } DIV.path OL LI.root A { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 2px; COLOR: #fff; PADDING-TOP: 1px; TEXT-DECORATION: = none } DIV.simplePath OL LI.root A { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 2px; COLOR: #fff; PADDING-TOP: 1px; TEXT-DECORATION: = none } DIV.path OL LI.root A SPAN { FONT-WEIGHT: bold; COLOR: #ffffff; TEXT-DECORATION: none } DIV.simplePath OL LI.root A SPAN { FONT-WEIGHT: bold; COLOR: #ffffff; TEXT-DECORATION: none } DIV.path OL LI.root A:hover { COLOR: #fff; TEXT-DECORATION: underline } DIV.simplePath OL LI.root A:hover { COLOR: #fff; TEXT-DECORATION: underline } DIV.path OL LI.root A:hover SPAN { COLOR: #fff; TEXT-DECORATION: underline } DIV.simplePath OL LI.root A:hover SPAN { COLOR: #fff; TEXT-DECORATION: underline } DIV.path OL LI.root A SPAN.courseName:unknown { content: " - " } DIV.path OL LI.root A SPAN.courseId:unknown { content: "(" } DIV.path OL LI.root A SPAN.courseId:unknown { content: ")" } DIV.path OL:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } DIV.simplePath OL:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } DIV.path OL { DISPLAY: inline-block } DIV.simplePath OL { DISPLAY: inline-block } DIV.path OL { DISPLAY: block } DIV.simplePath OL { DISPLAY: block } DIV.breadcrumbs DIV.topRound { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.breadcrumbs DIV.bottomRound { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.breadcrumbs DIV.topRound B { DISPLAY: block; BACKGROUND: #dedede; OVERFLOW: hidden } DIV.breadcrumbs DIV.bottomRound B { DISPLAY: block; BACKGROUND: #dedede; OVERFLOW: hidden } DIV.breadcrumbs DIV.topRound B.outer { MARGIN: 0px 2px; HEIGHT: 1px } DIV.breadcrumbs DIV.bottomRound B.outer { MARGIN: 0px 2px; HEIGHT: 1px } DIV.breadcrumbs DIV.topRound B.middle { DISPLAY: none } DIV.breadcrumbs DIV.bottomRound B.middle { DISPLAY: none } DIV.breadcrumbs DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 1px } DIV.breadcrumbs DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 1px } DIV.localViewToggle { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-TOP: 0px; POSITION: relative } DIV.localViewToggle UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 4px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; POSITION: relative } DIV.localViewToggle UL LI { FLOAT: right } DIV.localViewToggle UL LI A { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; FONT-SIZE: 85%; = PADDING-BOTTOM: 2px; MARGIN: 1px 0px 0px; PADDING-TOP: 2px; = TEXT-DECORATION: none } DIV.localViewToggle UL LI A:hover { TEXT-DECORATION: underline } DIV.localViewToggle UL LI A.active { BORDER-RIGHT: #ffcc00 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #ffcc00 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: 85%; = BACKGROUND: #fff; PADDING-BOTTOM: 2px; MARGIN: 0px; BORDER-LEFT: #ffcc00 = 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #ffcc00 1px solid } DIV.localViewToggle UL LI H2 { BORDER-RIGHT: #ffcc00 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #ffcc00 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: 85%; = BACKGROUND: #fff; PADDING-BOTTOM: 2px; MARGIN: 0px; BORDER-LEFT: #ffcc00 = 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #ffcc00 1px solid } DIV.localViewToggle UL LI.separator { PADDING-LEFT: 6px; MARGIN-LEFT: 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.viewToggle { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 85%; Z-INDEX: 100; = RIGHT: 10px; PADDING-BOTTOM: 2px; BOTTOM: 0px; PADDING-TOP: 2px; = WHITE-SPACE: nowrap; POSITION: absolute; TOP: 3px } DIV.helpOnlyToggle { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 85%; Z-INDEX: 100; = RIGHT: 10px; PADDING-BOTTOM: 2px; BOTTOM: 0px; PADDING-TOP: 2px; = WHITE-SPACE: nowrap; POSITION: absolute; TOP: 0px } DIV.viewToggle SPAN { COLOR: #666 } DIV.viewToggle UL { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px 6px 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.helpOnlyToggle UL { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px 6px 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.viewToggle UL LI { FLOAT: left; MARGIN: 0px 3px; POSITION: relative; TOP: 2px } DIV.helpOnlyToggle UL LI { FLOAT: left; MARGIN: 0px 3px; POSITION: relative; TOP: 2px } DIV.viewToggle LI A { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px; TEXT-DECORATION: none } DIV.viewToggle LI A:hover { TEXT-DECORATION: underline } DIV.viewToggle UL LI.active { PADDING-RIGHT: 4px; PADDING-LEFT: 7px; BACKGROUND: #cdcdcd; = PADDING-BOTTOM: 6px; PADDING-TOP: 3px; POSITION: relative; TOP: 0px } DIV.viewToggle LI.active A { DISPLAY: inline; FONT-WEIGHT: bold; Z-INDEX: 100; MARGIN: 0px 3px; = COLOR: #222; TEXT-DECORATION: none } DIV.viewToggle LI.active SPAN { COLOR: #aaa } DIV.viewToggle LI.active SPAN A { BORDER-RIGHT: 0px; PADDING-RIGHT: 1px; BORDER-TOP: 0px; PADDING-LEFT: = 1px; FONT-WEIGHT: normal; BACKGROUND: none transparent scroll repeat 0% = 0%; PADDING-BOTTOM: 2px; MARGIN: 0px -2px 0px -1px; BORDER-LEFT: 0px; = COLOR: #555; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; TEXT-DECORATION: = underline } DIV.helpOnlyToggle LI SPAN A { BORDER-RIGHT: 0px; PADDING-RIGHT: 1px; BORDER-TOP: 0px; PADDING-LEFT: = 1px; FONT-WEIGHT: normal; BACKGROUND: none transparent scroll repeat 0% = 0%; PADDING-BOTTOM: 2px; MARGIN: 0px -2px 0px -1px; BORDER-LEFT: 0px; = COLOR: #555; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; TEXT-DECORATION: = underline } DIV.viewToggle LI SPAN#helpTextToggle A { BORDER-RIGHT: 0px; PADDING-RIGHT: 1px; BORDER-TOP: 0px; PADDING-LEFT: = 1px; FONT-WEIGHT: normal; BACKGROUND: none transparent scroll repeat 0% = 0%; PADDING-BOTTOM: 2px; MARGIN: 0px -2px 0px -1px; BORDER-LEFT: 0px; = COLOR: #555; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; TEXT-DECORATION: = underline } DIV.viewToggle LI SPAN#helpTextToggle { RIGHT: -2px; POSITION: absolute; TOP: -3px } DIV.viewToggle LI.active SPAN#helpTextToggle { MARGIN: -3px 0px 0px; POSITION: static } DIV.viewToggle LI SPAN#helpTextToggle A { PADDING-RIGHT: 1px; DISPLAY: inline-block; PADDING-LEFT: 1px; = PADDING-BOTTOM: 1px; PADDING-TOP: 1px; TEXT-DECORATION: none } DIV.viewToggle LI.active SPAN A:hover { BORDER-RIGHT: 0px; BORDER-TOP: 0px; FONT-WEIGHT: normal; BACKGROUND: = #ededed; BORDER-LEFT: 0px; COLOR: #555; BORDER-BOTTOM: 0px; = TEXT-DECORATION: underline } DIV.helpOnlyToggle LI SPAN A:hover { BORDER-RIGHT: 0px; BORDER-TOP: 0px; FONT-WEIGHT: normal; BACKGROUND: = #ededed; BORDER-LEFT: 0px; COLOR: #555; BORDER-BOTTOM: 0px; = TEXT-DECORATION: underline } DIV.viewToggle LI SPAN#helpTextToggle A:hover { BORDER-RIGHT: 0px; BORDER-TOP: 0px; FONT-WEIGHT: normal; BACKGROUND: = #ededed; BORDER-LEFT: 0px; COLOR: #555; BORDER-BOTTOM: 0px; = TEXT-DECORATION: underline } .modeSwitchWrap { FONT-WEIGHT: bold; FONT-SIZE: 85%; RIGHT: 26px; LEFT: auto; POSITION: = absolute; TOP: 4px } .modeSwitchWrap DIV { FLOAT: left } .modeSwitch { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #666 1px = solid; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; OVERFLOW: = hidden; TEXT-TRANSFORM: uppercase; BORDER-LEFT: #666 1px solid; COLOR: = #fff; PADDING-TOP: 1px; BORDER-BOTTOM: #666 1px solid; POSITION: = relative; TEXT-DECORATION: none } .read-on { PADDING-RIGHT: 16px; BACKGROUND: url(images/mode_toggle_bg.gif) #8091a7 = repeat-y 100% 0px; MARGIN-RIGHT: 0px } A.read-off { PADDING-LEFT: 16px; BACKGROUND: url(images/mode_toggle_bg.gif) repeat-y = 0px 0px; COLOR: #444 } A.read-on:hover { BACKGROUND-COLOR: #444a6c } A.read-on:focus { BACKGROUND-COLOR: #444a6c } A.read-off:hover { BACKGROUND-COLOR: #ccc } A.read-off:focus { BACKGROUND-COLOR: #ccc } A.read-off IMG { RIGHT: auto; LEFT: -17px; BOTTOM: 0px; POSITION: absolute } A.read-on IMG { RIGHT: -1px; BOTTOM: 0px; POSITION: absolute } HTML *.modeSwitch { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } HTML * A.read-off { PADDING-LEFT: 16px } HTML *.read-on { PADDING-RIGHT: 16px } .modeSwitch SPAN { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; BACKGROUND: repeat-x 0px -16px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } .switcherLabel { PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FLOAT: = left; PADDING-BOTTOM: 2px; COLOR: #444; PADDING-TOP: 2px } DIV.helpLink { BORDER-RIGHT: 0px; BORDER-TOP: 0px; FONT-WEIGHT: normal; RIGHT: 4px; = MARGIN: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px; POSITION: absolute; = TOP: 4px } DIV.helpLink A.browseIcon { PADDING-RIGHT: 1px; DISPLAY: block; PADDING-LEFT: 1px; = BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #666; PADDING-BOTTOM: 0px; = BORDER-TOP-COLOR: #999; PADDING-TOP: 0px; BORDER-RIGHT-COLOR: #666 } DIV.localViewToggle A.miniComboButton { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 16px; BORDER-TOP: = #d7bb66 1px solid; BACKGROUND: url(images/more_options.gif) #f5e7bd = no-repeat 97% center; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid; TEXT-DECORATION: none! important } DIV.cmImg { MARGIN: 0px 0px 6px 12px; OVERFLOW: hidden; WIDTH: 180px; TEXT-ALIGN: = center } DIV.cmImg IMG { WIDTH: 180px } DIV.navDivider { PADDING-RIGHT: 9px; BORDER-TOP: #ddd 3px double; PADDING-LEFT: 9px; = FONT-WEIGHT: bold; FONT-SIZE: 80%; BACKGROUND: repeat-x 0px -16px; = PADDING-BOTTOM: 9px; MARGIN: 18px 0px 4px; TEXT-TRANSFORM: uppercase; = COLOR: #555; PADDING-TOP: 9px; LETTER-SPACING: 3px; TEXT-ALIGN: center } DIV.navPalette { MARGIN: 0px 24px 12px 14px; ZOOM: 1 } .csMenuFrame DIV.navPalette { MARGIN: 0px 14px 12px } DIV.navPaletteContent { BACKGROUND: #ffffff; ZOOM: 1 } .navPalette H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 105%; Z-INDEX: 1; = BACKGROUND: #949494 repeat-x center top; PADDING-BOTTOM: 0px; MARGIN: = 0px; COLOR: #fff; PADDING-TOP: 0px; ZOOM: 1; POSITION: relative } DIV.navPalette H3 { FONT-SIZE: 100%; MARGIN: 0px } .navPalette UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; ZOOM: 1; LIST-STYLE-TYPE: none } .navPalette UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; ZOOM: 1; POSITION: relative; HEIGHT: 1% } #courseMenu { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 16px; FONT-WEIGHT: = normal; BACKGROUND: url(images/more_options_white.gif) no-repeat 4px = 7px; PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; ZOOM: 1; = TEXT-DECORATION: none } .navPalette A { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 16px; FONT-WEIGHT: = normal; BACKGROUND: url(images/more_options_white.gif) no-repeat 4px = 7px; PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; ZOOM: 1; = TEXT-DECORATION: none } .navPalette A:hover { BACKGROUND-IMAGE: url(images/more_options.gif); CURSOR: pointer } .navPalette A:focus { BACKGROUND-IMAGE: url(images/more_options.gif); CURSOR: pointer } .navPalette UL LI A { BORDER-TOP: #ddd 1px solid } .navPalette UL LI:first-child H3 A { BORDER-TOP: medium none } .navPalette UL LI:first-child A { BORDER-TOP: medium none } DIV.navPaletteCol H2 A { BACKGROUND-IMAGE: url(images/more_options_white.gif) } DIV.navPaletteCol H2 A:hover { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPaletteCol H2 A:focus { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPaletteCol DIV.navPaletteContent H2 { BACKGROUND-IMAGE: none } DIV.navPaletteCol DIV.actionBarMicro { DISPLAY: none } DIV.navPalette A.simpleLink { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 3px; PADDING-TOP: 3px } DIV.navPalette A.simpleLink:hover { BACKGROUND: url(images/list_bullet.gif) no-repeat 97% center } DIV.navPalette A.simpleLink:focus { BACKGROUND: url(images/list_bullet.gif) no-repeat 97% center } DIV.navPalette A.comboLink { PADDING-RIGHT: 20px; PADDING-LEFT: 16px; BACKGROUND: = url(images/more_options_dark.gif) no-repeat 4px 7px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 3px; WORD-BREAK: normal; PADDING-TOP: 3px; ZOOM: 1; = heigth: 1% } DIV.navPalette A.comboLink_active { PADDING-RIGHT: 20px; PADDING-LEFT: 16px; BACKGROUND: = url(images/more_options_dark.gif) no-repeat 4px 7px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 3px; WORD-BREAK: normal; PADDING-TOP: 3px; ZOOM: 1; = heigth: 1% } DIV.navPalette A.comboLink:hover { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPalette A.comboLink:focus { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPalette A.comboLink_active { BACKGROUND-IMAGE: url(images/less_options_dark.gif) } DIV.navPalette A.open { BACKGROUND-IMAGE: url(images/less_options_dark.gif) } DIV.navPalette A.comboLink_active:hover { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette A.open:hover { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette A.comboLink_active:focus { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette A.open:focus { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette H2 A.comboLink { PADDING-RIGHT: 3px; PADDING-LEFT: 16px; PADDING-BOTTOM: 3px; = MARGIN-RIGHT: 20px; PADDING-TOP: 3px } DIV.navPalette H2 A.comboLink_active { PADDING-RIGHT: 3px; PADDING-LEFT: 16px; PADDING-BOTTOM: 3px; = MARGIN-RIGHT: 20px; PADDING-TOP: 3px } DIV.navPalette A.submenuLink { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 0px; PADDING-BOTTOM: 0px; = BORDER-LEFT: #bbb 1px solid; PADDING-TOP: 0px; ZOOM: 1; POSITION: = absolute; TOP: 0px } DIV.navPalette A.submenuLink_active { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 0px; PADDING-BOTTOM: 0px; = BORDER-LEFT: #bbb 1px solid; PADDING-TOP: 0px; ZOOM: 1; POSITION: = absolute; TOP: 0px } DIV.navPalette A.submenuLink { BACKGROUND: url(images/list_bullet_white.gif) no-repeat center center } DIV.navPalette A.submenuLink_active { BACKGROUND: url(images/list_bullet_dark.gif) no-repeat center center } DIV.navPalette A.submenuLink:hover { BACKGROUND-IMAGE: url(images/list_bullet.gif) } DIV.navPalette A.submenuLink_active:hover { BACKGROUND-IMAGE: url(images/list_bullet.gif) } DIV.navPalette A.submenuLink:focus { BACKGROUND-IMAGE: url(images/list_bullet.gif) } DIV.navPalette A.submenuLink_active:focus { BACKGROUND-IMAGE: url(images/list_bullet.gif) } DIV.navPalette A.submenuLink IMG { WIDTH: 20px; HEIGHT: 22px } DIV.navPalette A.submenuLink_active IMG { WIDTH: 20px; HEIGHT: 22px } .navPalette H2 A { FONT-WEIGHT: bold; BACKGROUND: url(images/less_options_white.gif) = no-repeat 4px 7px; COLOR: #fff } .navPalette H2 A:hover { FONT-WEIGHT: bold; BACKGROUND: url(images/less_options_white.gif) = no-repeat 4px 7px; COLOR: #fff } DIV.navPalette H2 A.comboLink { FONT-WEIGHT: bold; BACKGROUND: url(images/less_options_white.gif) = no-repeat 4px 7px; COLOR: #fff } .navPalette H2 A:hover { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette H2 A.comboLink:hover { BACKGROUND-IMAGE: url(images/less_options.gif) } .navPalette H2 A:focus { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette H2 A.comboLink:focus { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPaletteCol H2 A.comboLink { BACKGROUND: url(images/more_options_white.gif) no-repeat 4px 7px } DIV.navPaletteCol H2 A.comboLink:hover { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPaletteCol H2 A.comboLink:focus { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.listCm UL.courseMenu { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = MARGIN-LEFT: -14px; WIDTH: 176px; MARGIN-RIGHT: -14px; PADDING-TOP: 0px; = HEIGHT: 1% } DIV.listCm UL.courseMenu LI { CLEAR: both; BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; = DISPLAY: block; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 3px; = MARGIN: 0px 0px -3px; OVERFLOW: visible; BORDER-LEFT: 0px; WIDTH: 178px; = PADDING-TOP: 2px; BORDER-BOTTOM: 0px; ZOOM: 1; POSITION: relative; = HEIGHT: 1% } DIV.listCm UL.courseMenu LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 14px; BORDER-TOP: 0px; PADDING-LEFT: = 9px; RIGHT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; = FLOAT: left; OVERFLOW-X: hidden; PADDING-BOTTOM: 0px; MARGIN: 0px 0px = 0px 6px; OVERFLOW: visible; BORDER-LEFT: 0px; COLOR: #003366; = WORD-BREAK: break-all; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; HEIGHT: 1% } DIV.listCm UL.courseMenu LI A:hover { BACKGROUND-IMAGE: none; TEXT-DECORATION: underline } DIV.listCm UL.courseMenu LI A:focus { BACKGROUND-IMAGE: none; TEXT-DECORATION: underline } DIV.listCm UL.courseMenu LI A SPAN { ZOOM: 1; heigth: 1% } DIV.listCm UL.courseMenu LI.here A { PADDING-RIGHT: 16px; PADDING-LEFT: 4px; BACKGROUND: = url(images/list_bullet_single_white.gif) #999 no-repeat 98% center; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 19px; COLOR: #fff; PADDING-TOP: = 1px; TEXT-DECORATION: none; -moz-border-radius: 3px; = -webkit-border-radius: 3px } DIV.listCm UL.courseMenu LI.here A:hover { PADDING-RIGHT: 16px; PADDING-LEFT: 4px; BACKGROUND: = url(images/list_bullet_single_white.gif) #999 no-repeat 98% center; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 19px; COLOR: #fff; PADDING-TOP: = 1px; TEXT-DECORATION: none; -moz-border-radius: 3px; = -webkit-border-radius: 3px } DIV.listCm UL.courseMenu LI.here A:focus { PADDING-RIGHT: 16px; PADDING-LEFT: 4px; BACKGROUND: = url(images/list_bullet_single_white.gif) #999 no-repeat 98% center; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 19px; COLOR: #fff; PADDING-TOP: = 1px; TEXT-DECORATION: none; -moz-border-radius: 3px; = -webkit-border-radius: 3px } DIV.listCm UL.courseMenu LI.here A.cmimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: transparent } DIV.listCm UL.courseMenu LI.here A.cmimg:hover { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: transparent } DIV.listCm H3 { PADDING-RIGHT: 9px; BORDER-TOP: 1px solid; PADDING-LEFT: 9px; = FONT-SIZE: 100%; PADDING-BOTTOM: 1px; MARGIN: 0px 0px 0px 14px; = PADDING-TOP: 3px; HEIGHT: 1% } .navPalette UL LI.subhead H3 A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: = transparent; TEXT-DECORATION: none } .navPalette UL LI.subhead H3 A:hover { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: = transparent; TEXT-DECORATION: none } DIV.listCm UL.courseMenu LI.divider { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; PADDING-BOTTOM: 0px; WIDTH: = 162px; LINE-HEIGHT: 1%; PADDING-TOP: 9px; POSITION: relative; HEIGHT: = 2px } DIV.listCm UL.courseMenu LI.divider HR { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; MARGIN: 0px; VERTICAL-ALIGN: middle; LINE-HEIGHT: 1%; POSITION: = relative; TOP: -9px; HEIGHT: 2px; BACKGROUND-COLOR: #ccc; = BORDER-RIGHT-WIDTH: 0px } DIV.listCm UL.courseMenu LI.collapsed { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; PADDING-BOTTOM: 3px; = LINE-HEIGHT: 1px; PADDING-TOP: 3px; HEIGHT: 2px } DIV.listCm UL.courseMenu LI.collapsed HR { MARGIN: 0px; POSITION: relative; TOP: 0px } DIV.listCm UL.courseMenu LI.invisible A { COLOR: #777; MARGIN-RIGHT: 0px } UL.tree A SPAN.cmLink-hidden { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } UL.tree A SPAN.cmLink-empty { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } LI.invisible A SPAN.cmLink-hidden { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } LI.invisible A SPAN.cmLink-empty { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } LI.invisible SPAN.cmLink-hidden { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } LI.invisible SPAN.cmLink-empty { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } UL.tree A SPAN.cmLink-hidden IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } UL.tree A SPAN.cmLink-empty IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } LI.invisible A SPAN.cmLink-hidden IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } LI.invisible A SPAN.cmLink-empty IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } LI.invisible SPAN.cmLink-hidden IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } LI.invisible SPAN.cmLink-empty IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } UL.tree A SPAN.cmLink-empty { DISPLAY: inline; BACKGROUND: url(images/empty_link.gif) no-repeat 0px = 0px } LI.invisible A SPAN.cmLink-empty { DISPLAY: inline; BACKGROUND: url(images/empty_link.gif) no-repeat 0px = 0px } LI.invisible SPAN.cmLink-empty { DISPLAY: inline; BACKGROUND: url(images/empty_link.gif) no-repeat 0px = 0px } UL.tree A SPAN.cmLink-hidden { DISPLAY: inline-block; BACKGROUND: url(images/hidden_link.gif) = no-repeat 0px 0px } LI.invisible A SPAN.cmLink-hidden { DISPLAY: inline-block; BACKGROUND: url(images/hidden_link.gif) = no-repeat 0px 0px } LI.invisible SPAN.cmLink-hidden { DISPLAY: inline-block; BACKGROUND: url(images/hidden_link.gif) = no-repeat 0px 0px } DIV.listCm UL.courseMenu LI INPUT { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; BACKGROUND: = #f0f0f0; MARGIN-LEFT: 18px; BORDER-LEFT: #666 1px solid; WIDTH: 120px; = BORDER-BOTTOM: #666 1px solid } DIV.listCm UL.courseMenu LI INPUT[type=3D'text'] { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; BACKGROUND: = #f0f0f0; MARGIN-LEFT: 18px; BORDER-LEFT: #666 1px solid; WIDTH: 120px; = BORDER-BOTTOM: #666 1px solid } DIV.renameCourseToc INPUT { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; BACKGROUND: = #f0f0f0; MARGIN-LEFT: 18px; BORDER-LEFT: #666 1px solid; WIDTH: 120px; = BORDER-BOTTOM: #666 1px solid } DIV.renameCourseToc INPUT { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; BACKGROUND: = #f0f0f0; MARGIN-LEFT: 18px; BORDER-LEFT: #666 1px solid; WIDTH: 120px; = BORDER-BOTTOM: #666 1px solid } DIV.renameCourseToc INPUT { MARGIN-LEFT: 0px } DIV.listCm UL.courseMenu LI A.microControl { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: = inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 0px 2px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px } DIV.renameCourseToc A.microControl { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: = inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 0px 2px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px } DIV.listCm UL.courseMenu LI A.save { BACKGROUND: url(images/micro_save.gif) no-repeat 0px 0px } DIV.renameCourseToc A.save { BACKGROUND: url(images/micro_save.gif) no-repeat 0px 0px } DIV.listCm UL.courseMenu LI A.cancel { BACKGROUND: url(images/micro_cancel.gif) no-repeat 0px 0px } DIV.renameCourseToc A.cancel { BACKGROUND: url(images/micro_cancel.gif) no-repeat 0px 0px } DIV.listCm UL.courseMenu LI A.microControl IMG { WIDTH: 12px; HEIGHT: 12px } DIV.renameCourseToc A.microControl IMG { WIDTH: 12px; HEIGHT: 12px } DIV.listCm UL.courseMenu LI SPAN.reorder { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/cm_reorder_updown.gif) #eee no-repeat center center; FILTER: = alpha(opacity=3D100); LEFT: -2px; PADDING-BOTTOM: 0px; WIDTH: 16px; = CURSOR: move; PADDING-TOP: 0px; POSITION: absolute; TOP: 2px; HEIGHT: = 18px; opacity: 1; -moz-border-radius-topleft: 2px; = -moz-border-radius-bottomleft: 3px } DIV.listCm UL.courseMenu LI.subhead SPAN.reorder { TOP: 4px } DIV.controlpanel H2 { BACKGROUND-COLOR: #8192a8 } DIV.controlpanel DIV.topRound B { BACKGROUND-COLOR: #8192a8 } DIV.controlpanel UL { BACKGROUND-COLOR: #a8beda } DIV.controlpanel DIV.bottomRound B { BACKGROUND-COLOR: #a8beda } DIV.controlpanel UL LI:first-child { MARGIN-TOP: 0px } DIV.controlpanel UL LI { MARGIN-TOP: -1px } DIV.controlpanel UL LI A { COLOR: #292e36; BORDER-TOP-COLOR: #94a8c1 } DIV.controlpanel UL LI A:hover { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A:focus { BACKGROUND-COLOR: #e3efff } DIV.controlpanel A.submenuLink { BORDER-LEFT-COLOR: #94a8c1; BORDER-BOTTOM-COLOR: #94a8c1; = BORDER-TOP-COLOR: #94a8c1; BACKGROUND-COLOR: #a8beda; = BORDER-RIGHT-COLOR: #94a8c1 } DIV.controlpanel A.submenuLink_active { BORDER-LEFT-COLOR: #94a8c1; BORDER-BOTTOM-COLOR: #94a8c1; = BORDER-TOP-COLOR: #94a8c1; BACKGROUND-COLOR: #a8beda; = BORDER-RIGHT-COLOR: #94a8c1 } DIV.controlpanel UL LI A.submenuLink_active { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A.submenuLink:hover { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A.submenuLink_active:hover { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A.submenuLink:focus { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A.submenuLink_active:focus { BACKGROUND-COLOR: #e3efff } DIV.controlpanel A.comboLink { BACKGROUND-IMAGE: url(images/more_options_white.gif) } DIV.controlpanel A.comboLink_active { FONT-WEIGHT: bold } DIV.tools A.comboLink_active { FONT-WEIGHT: bold } DIV.controlpanel UL LI H3 A.open:hover { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI H3 A.comboLink_active { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI H3 A.open { FONT-WEIGHT: bold; BACKGROUND-COLOR: #e3efff } DIV.tools UL { BACKGROUND-COLOR: #ededed } DIV.tools DIV.bottomRound B { BACKGROUND-COLOR: #ededed } DIV.pickerMenu UL { BACKGROUND-COLOR: #ededed } DIV.explore UL { BACKGROUND-COLOR: #ededed } DIV.explore DIV.bottomRound B { BACKGROUND-COLOR: #ededed } DIV.tools UL LI H3 A { BACKGROUND: url(images/more_options.gif) no-repeat 4px 7px; COLOR: = #444; BORDER-TOP-COLOR: #ddd; ZOOM: 1 } DIV.pickerMenu UL LI H3 A { BACKGROUND: url(images/more_options.gif) no-repeat 4px 7px; COLOR: = #444; BORDER-TOP-COLOR: #ddd; ZOOM: 1 } DIV.tools UL LI H3 A:hover { BACKGROUND: url(images/more_options.gif) #fff no-repeat 4px 7px } DIV.tools UL LI H3 A.simpleLink:hover { BACKGROUND-COLOR: #ffffff } DIV.tools UL LI H3 A.simpleLink:focus { BACKGROUND-COLOR: #ffffff } DIV.tools UL LI H3 A.open { FONT-WEIGHT: bold; BACKGROUND: url(images/less_options_dark.gif) = #ffffff no-repeat 4px 7px } DIV.tools UL LI H3 A.open:hover { BACKGROUND-IMAGE: url(images/less_options_dark.gif) } DIV.tools UL LI H3 A.open:focus { BACKGROUND-IMAGE: url(images/less_options_dark.gif) } DIV.tools UL LI A.submenuLink { BACKGROUND: url(images/list_bullet_dark.gif) no-repeat center center; = BORDER-LEFT: #bbb 1px solid } DIV.tools UL LI A.submenuLink_active { BACKGROUND: url(images/list_bullet_dark.gif) no-repeat center center; = BORDER-LEFT: #bbb 1px solid } DIV.tools UL LI A.submenuLink:hover { BACKGROUND: url(images/list_bullet.gif) #ffffff no-repeat center center } DIV.tools UL LI A.submenuLink_active:hover { BACKGROUND: url(images/list_bullet.gif) #ffffff no-repeat center center } DIV.tools UL LI A.submenuLink:focus { BACKGROUND: url(images/list_bullet.gif) #ffffff no-repeat center center } DIV.tools UL LI A.submenuLink_active:focus { BACKGROUND: url(images/list_bullet.gif) #ffffff no-repeat center center } DIV.tools UL LI A.submenuLink_active { BACKGROUND: url(images/list_bullet_dark.gif) #ffffff no-repeat center = center } DIV.pickerMenu { LEFT: 14px; MARGIN: 0px; WIDTH: 150px; POSITION: absolute; TOP: 0px } DIV.pickerMenu UL LI H3 A { BACKGROUND-IMAGE: none } DIV.pickerMenu UL LI H3 A.simpleLink { BACKGROUND-IMAGE: none } DIV.pickerMenu UL LI H3 A.open { BACKGROUND: url(images/list_bullet.gif) #fff no-repeat 97% center } DIV.pickerMenu UL LI H3 A:hover { BACKGROUND: url(images/list_bullet.gif) #fff no-repeat 97% center } DIV.pickerMenu UL LI H3 A:focus { BACKGROUND: url(images/list_bullet.gif) #fff no-repeat 97% center } DIV.myPlaces UL { BACKGROUND-COLOR: #fff } DIV.myPlaces DIV.bottomRound B { BACKGROUND-COLOR: #fff } DIV.singleControl A { PADDING-RIGHT: 9px; BORDER-TOP: medium none; PADDING-LEFT: 9px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; ZOOM: 1; = BACKGROUND-COLOR: #a8beda; TEXT-ALIGN: center } DIV.discover A { PADDING-RIGHT: 9px; BORDER-TOP: medium none; PADDING-LEFT: 9px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; ZOOM: 1; = BACKGROUND-COLOR: #a8beda; TEXT-ALIGN: center } DIV.discover A { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: = 105%; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.singleControl A:hover { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.discover A:hover { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.singleControl A:hover { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.singleControl A:focus { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.singleControl A:focus { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.discover A:focus { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.discover A IMG { MARGIN: -1px 3px 0px 0px } DIV.myPlaces UL LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 22px; PADDING-BOTTOM: 3px; BORDER-LEFT: 0px; COLOR: #003399; = PADDING-TOP: 3px; BORDER-BOTTOM: 0px; BACKGROUND-COLOR: transparent } DIV.myPlaces UL LI A:hover { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 22px; PADDING-BOTTOM: 3px; BORDER-LEFT: 0px; COLOR: #003399; = PADDING-TOP: 3px; BORDER-BOTTOM: 0px; BACKGROUND-COLOR: transparent } DIV.myPlaces UL LI A:focus { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 22px; PADDING-BOTTOM: 3px; BORDER-LEFT: 0px; COLOR: #003399; = PADDING-TOP: 3px; BORDER-BOTTOM: 0px; BACKGROUND-COLOR: transparent } DIV.myPlaces UL LI A:hover { TEXT-DECORATION: underline } DIV.myPlaces UL LI A:focus { TEXT-DECORATION: underline } DIV.myPlaces UL LI A.home { PADDING-RIGHT: 20px; BORDER-BOTTOM: #ddd 1px solid } DIV.myPlaces UL LI SPAN.homeIconWrap { RIGHT: 3px; BACKGROUND: url(/images/ci/icons/clphomepage/home_ti.gif) = no-repeat 0px 0px; POSITION: absolute; TOP: 3px } DIV.myPlaces UL LI SPAN.homeIconWrap IMG { WIDTH: 16px; HEIGHT: 16px } DIV.explore UL.parents LI A { BACKGROUND-POSITION: 7px 6px; PADDING-LEFT: 20px; BACKGROUND-IMAGE: = url(images/list_bullet_up.gif); BACKGROUND-REPEAT: no-repeat; = BACKGROUND-COLOR: #ededed } DIV.explore H4 { PADDING-RIGHT: 9px; BORDER-TOP: #999 2px solid; PADDING-LEFT: 9px; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; BACKGROUND-COLOR: = #fff } DIV.explore H4 A { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; COLOR: #000; PADDING-TOP: = 3px; TEXT-DECORATION: none } DIV.explore H4 A:hover { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; COLOR: #000; PADDING-TOP: = 3px; TEXT-DECORATION: none } DIV.explore H4 A { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; COLOR: #000; PADDING-TOP: = 3px; TEXT-DECORATION: none } DIV.explore H4 A:focus { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; COLOR: #000; PADDING-TOP: = 3px; TEXT-DECORATION: none } DIV.explore UL.submenu { BACKGROUND-COLOR: #fff } DIV.explore DIV.bottomRound B { BACKGROUND-COLOR: #fff } LI A.unit { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.course { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.ee { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.program { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.workspace { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.unit { BACKGROUND-IMAGE: url(/images/ci/icons/clp_unit_ti.gif) } LI A.unit:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_unit_ti.gif) } LI A.course { BACKGROUND-IMAGE: url(/images/ci/icons/clp_course_ti.gif) } LI A.course:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_course_ti.gif) } LI A.ee { BACKGROUND-IMAGE: url(/images/ci/icons/clp_ee_ti.gif) } LI A.ee:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_ee_ti.gif) } LI A.program { BACKGROUND-IMAGE: url(/images/ci/icons/clp_program_ti.gif) } LI A.program:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_program_ti.gif) } LI A.workspace { BACKGROUND-IMAGE: url(/images/ci/icons/clp_workspace_ti.gif) } LI A.workspace:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_workspace_ti.gif) } DIV.navPalette UL LI UL.submenu { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-SIZE: 85%; PADDING-BOTTOM: = 9px; MARGIN: 0px; PADDING-TOP: 2px } DIV.explore UL.submenu { FONT-SIZE: 90%; MARGIN: 2px 6px 0px 20px } DIV.controlpanel UL LI UL.submenu { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI UL.submenu LI UL { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI UL.submenu LI { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND-IMAGE: = none; MARGIN: 0px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } DIV.controlpanel UL LI UL.submenu LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: = 2px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: 2px; BORDER-BOTTOM: 0px } DIV.explore UL LI UL.submenu LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: = 2px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: 2px; BORDER-BOTTOM: 0px } DIV.explore UL.submenu LI A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; COLOR: = #003366; PADDING-TOP: 2px } DIV.explore UL.submenu LI SPAN.emptyMsg { COLOR: #777 } DIV.controlpanel UL LI UL.submenu LI A:hover { PADDING-RIGHT: 9px; PADDING-LEFT: 6px; BACKGROUND: = url(images/list_bullet_single.gif) #fff no-repeat 99% center; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } DIV.controlpanel UL LI UL.submenu LI A.here { PADDING-RIGHT: 9px; PADDING-LEFT: 6px; BACKGROUND: = url(images/list_bullet_single.gif) #fff no-repeat 99% center; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } DIV.controlpanel UL LI UL.submenu LI A:focus { PADDING-RIGHT: 9px; PADDING-LEFT: 6px; BACKGROUND: = url(images/list_bullet_single.gif) #fff no-repeat 99% center; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } DIV.explore UL.submenu LI A:hover { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } DIV.explore UL.submenu LI A:focus { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } UL.submenu LI UL LI { PADDING-LEFT: 12px; HEIGHT: 1% } DIV.tools UL.submenu { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 2px 9px 0px; PADDING-TOP: 0px } UL.submenu { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 2px 9px 0px; PADDING-TOP: 0px } DIV.tools UL.submenu LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; BACKGROUND: #fff; PADDING-BOTTOM: 2px; MARGIN: 0px; BORDER-LEFT: = 0px; PADDING-TOP: 2px; BORDER-BOTTOM: 0px } UL.submenu LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; BACKGROUND: #fff; PADDING-BOTTOM: 2px; MARGIN: 0px; BORDER-LEFT: = 0px; PADDING-TOP: 2px; BORDER-BOTTOM: 0px } DIV.tools UL.submenu LI A:hover { BACKGROUND: url(images/list_bullet_single.gif) #f6f6f6 no-repeat 99% = center } UL.submenu LI A:hover { BACKGROUND: url(images/list_bullet_single.gif) #f6f6f6 no-repeat 99% = center } DIV.tools UL.submenu LI A:hover { BACKGROUND: url(images/list_bullet_single.gif) #f6f6f6 no-repeat 99% = center } UL.submenu LI A:focus { BACKGROUND: url(images/list_bullet_single.gif) #f6f6f6 no-repeat 99% = center } DIV.navPalette DIV.topRound { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.navPalette DIV.bottomRound { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.navPalette DIV.topRound B { DISPLAY: block; OVERFLOW: hidden } DIV.navPalette DIV.bottomRound B { DISPLAY: block; OVERFLOW: hidden } DIV.navPalette DIV.topRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } DIV.navPalette DIV.bottomRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } DIV.navPalette DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } DIV.navPalette DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } DIV.navPalette DIV.topRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.navPalette DIV.bottomRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.navPalette DIV.topRound B { BACKGROUND-COLOR: #949494 } DIV.tools DIV.topRound B { BACKGROUND-COLOR: #949494 } DIV.myPlaces DIV.bottomRound B { BACKGROUND-COLOR: #fff } DIV.explore DIV.bottomRound B { BACKGROUND-COLOR: #fff } DIV.listCm DIV.topRound B { BACKGROUND-COLOR: #fff1c5 } DIV.buttonCm DIV.topRound B { BACKGROUND-COLOR: #fff1c5 } DIV.treeContainer DIV.topRound B { BACKGROUND-COLOR: #fff1c5 } DIV.treeViewCs DIV.topRound B { BACKGROUND-COLOR: #fff1c5 } DIV.listCm DIV.bottomRound B { BACKGROUND-COLOR: #ffffff } DIV.buttonCm DIV.bottomRound B { BACKGROUND-COLOR: #ffffff } DIV.treeContainer DIV.bottomRound B { BACKGROUND-COLOR: #ffffff } DIV.tools DIV.bottomRound B { BACKGROUND-COLOR: #ededed } DIV.pickerMenu DIV.topRound B { BACKGROUND-COLOR: #ededed } DIV.pickerMenu DIV.bottomRound B { BACKGROUND-COLOR: #ededed } DIV.singleControl DIV.topRound B { BACKGROUND-COLOR: #a8beda } DIV.singleControl DIV.bottomRound B { BACKGROUND-COLOR: #a8beda } DIV.discover DIV.topRound B { BACKGROUND-COLOR: #a8beda } DIV.discover DIV.bottomRound B { BACKGROUND-COLOR: #a8beda } DIV.navPaletteCol DIV.listCmCol B { BACKGROUND: #949494 } DIV.navPaletteCol DIV.bottomRound B { BACKGROUND: #949494 } DIV.navPaletteCol DIV.topRound B { BACKGROUND: #949494 } DIV.controlpanel DIV.topRound B { BACKGROUND-COLOR: #8192a8 } DIV.navPaletteCol DIV.controlpanelCol B { BACKGROUND-COLOR: #8192a8 } DIV.treeContainer UL.tree { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; PADDING-BOTTOM: 9px; MARGIN: = 0px; PADDING-TOP: 3px; LIST-STYLE-TYPE: none } UL.tree { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; PADDING-BOTTOM: 9px; MARGIN: = 0px; PADDING-TOP: 3px; LIST-STYLE-TYPE: none } DIV.treeContainer UL.tree UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 0px 18px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.tree UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 0px 18px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.listCm DIV.treeContainer UL.tree { OVERFLOW-X: auto } DIV.treeContainer UL.tree LI H3 + UL { PADDING-RIGHT: 0px; PADDING-LEFT: 9px; OVERFLOW-X: auto; = PADDING-BOTTOM: 9px; MARGIN: 0px; OVERFLOW: hidden; PADDING-TOP: 0px; = ZOOM: 1; POSITION: relative } DIV.treeContainer UL.tree LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(/images/ci/icons/nlstree/line.gif) repeat-y 0px 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; WHITE-SPACE: nowrap } UL.tree LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(/images/ci/icons/nlstree/line.gif) repeat-y 0px 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; WHITE-SPACE: nowrap } DIV.treeContainer UL.tree LI.last { BACKGROUND-IMAGE: none } UL.tree LI.last { BACKGROUND-IMAGE: none } DIV.treeContainer UL.tree LI.here A { BACKGROUND-COLOR: #ededed } UL.tree LI.here A { BACKGROUND-COLOR: #ededed } DIV.treeContainer UL.tree LI A { PADDING-RIGHT: 3px; BORDER-TOP: medium none; DISPLAY: inline; = PADDING-LEFT: 0px; FONT-SIZE: 95%; BACKGROUND: none transparent scroll = repeat 0% 0%; PADDING-BOTTOM: 2px; PADDING-TOP: 2px } UL.tree LI A { PADDING-RIGHT: 3px; BORDER-TOP: medium none; DISPLAY: inline; = PADDING-LEFT: 0px; FONT-SIZE: 95%; BACKGROUND: none transparent scroll = repeat 0% 0%; PADDING-BOTTOM: 2px; PADDING-TOP: 2px } DIV.treeContainer UL.tree LI A.open_folder { PADDING-RIGHT: 3px; BORDER-TOP: medium none; DISPLAY: inline; = PADDING-LEFT: 0px; FONT-SIZE: 95%; BACKGROUND: #ebeffa; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } DIV.treeContainer UL.tree LI A.exp { PADDING-RIGHT: 21px; PADDING-LEFT: 0px; BACKGROUND: = url(/images/ci/icons/nlsTree/folder.gif) no-repeat 18px 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } DIV.treeContainer UL.tree LI A.collapse { PADDING-RIGHT: 21px; PADDING-LEFT: 0px; BACKGROUND: = url(/images/ci/icons/nlsTree/folderopen.gif) no-repeat 18px 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } DIV.treeContainer H3.treehead { PADDING-RIGHT: 0px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 8px 0px 2px; PADDING-TOP: 0px } DIV.treeContainer H3.first { MARGIN: 0px 0px 2px } DIV#userTreeDiv { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.treeContainer UL.tree LI.subhead { BACKGROUND-IMAGE: none; MARGIN: 0px 0px 0px -6px } DIV.treeContainer UL.tree LI.subhead H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.treeContainer UL.tree LI.subhead H3.first A { BORDER-TOP: medium none } DIV.treeContainer UL.tree LI.subhead H3 A { PADDING-RIGHT: 9px; BACKGROUND-POSITION: 3px 6px; BORDER-TOP: #ddd 1px = solid; DISPLAY: block; PADDING-LEFT: 18px; BACKGROUND-IMAGE: = url(images/less_options.gif); PADDING-BOTTOM: 3px; PADDING-TOP: 3px; = BACKGROUND-REPEAT: no-repeat; BACKGROUND-COLOR: transparent; = TEXT-DECORATION: none } DIV.treeContainer UL.tree LI.subhead:first-child { MARGIN-TOP: 0px } DIV.treeContainer UL.tree LI.subhead:first-child A { BORDER-TOP: 0px } DIV.treeContainer UL.tree LI.subhead H3.treeSubhead-collapsed A { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.shortcutViewCs UL LI A { BORDER-TOP: #ededed 1px solid; TEXT-ALIGN: center } UL.shortcuts LI A { BORDER-TOP: #ccc 1px solid; BACKGROUND: #fff; TEXT-ALIGN: center } UL.shortcuts LI A:hover { BACKGROUND: url(images/list_bullet_single.gif) #ededed no-repeat 99% = center; TEXT-ALIGN: center } UL.shortcuts LI A:focus { BACKGROUND: url(images/list_bullet_single.gif) #ededed no-repeat 99% = center; TEXT-ALIGN: center } DIV.containerPortal { PADDING-RIGHT: 5px; MIN-WIDTH: 600px; PADDING-LEFT: 5px; MIN-HEIGHT: = 400px; BACKGROUND: #e3efff; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 5px } DIV.portal DIV.container { PADDING-RIGHT: 5px; MIN-WIDTH: 600px; PADDING-LEFT: 5px; MIN-HEIGHT: = 400px; BACKGROUND: #e3efff; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 5px } .column-1 { MIN-HEIGHT: 400px; FLOAT: left; MARGIN: 6px 0px 0px; WIDTH: 100%; = HEIGHT: 400px } .column-2 { MIN-HEIGHT: 400px; FLOAT: left; MARGIN: 6px 0px 0px; WIDTH: 50%; = HEIGHT: 400px } .column-3 { MIN-HEIGHT: 400px; FLOAT: left; MARGIN: 6px 0px 0px; WIDTH: 33.3%; = HEIGHT: 400px } #moduleBody { BORDER-RIGHT: #597298 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #597298 2px solid; PADDING-LEFT: 0px; Z-INDEX: 500; PADDING-BOTTOM: 0px; = MARGIN: 0px 5px 10px; BORDER-LEFT: #597298 2px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #597298 2px solid; POSITION: relative; HEIGHT: 1%; = BACKGROUND-COLOR: #fff } #moduleBorder { BORDER-RIGHT: #597298 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #597298 2px solid; PADDING-LEFT: 0px; Z-INDEX: 500; PADDING-BOTTOM: 0px; = MARGIN: 0px 5px 10px; BORDER-LEFT: #597298 2px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #597298 2px solid; POSITION: relative; HEIGHT: 1%; = BACKGROUND-COLOR: #fff } .portlet { BORDER-RIGHT: #597298 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #597298 2px solid; PADDING-LEFT: 0px; Z-INDEX: 500; PADDING-BOTTOM: 0px; = MARGIN: 0px 5px 10px; BORDER-LEFT: #597298 2px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #597298 2px solid; POSITION: relative; HEIGHT: 1%; = BACKGROUND-COLOR: #fff } #moduleTitle { PADDING-RIGHT: 52px; BACKGROUND-POSITION: 0px center; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 5px; MARGIN: 0px; VERTICAL-ALIGN: middle; OVERFLOW: = visible; COLOR: #fff; PADDING-TOP: 4px; BACKGROUND-REPEAT: repeat-x; = POSITION: relative; BACKGROUND-COLOR: #819ac0 } .portlet H2 { PADDING-RIGHT: 52px; BACKGROUND-POSITION: 0px center; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 5px; MARGIN: 0px; VERTICAL-ALIGN: middle; OVERFLOW: = visible; COLOR: #fff; PADDING-TOP: 4px; BACKGROUND-REPEAT: repeat-x; = POSITION: relative; BACKGROUND-COLOR: #819ac0 } .portlet H2.dragHandle:hover { BACKGROUND: #597298; CURSOR: move } .portlet H2 A { PADDING-RIGHT: 12px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = VERTICAL-ALIGN: middle; COLOR: #fff; PADDING-TOP: 0px } .portlet H2 A IMG { VERTICAL-ALIGN: middle } .portlet H2 A:hover { BACKGROUND: url(images/arrow_white.gif) no-repeat right center; = TEXT-DECORATION: underline } .portlet H2 SPAN.reorder { BORDER-RIGHT: #888 1px solid; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BACKGROUND: url(images/cm_reorder.gif) #fff no-repeat center center; = FILTER: alpha(opacity=3D0); LEFT: -2px; PADDING-BOTTOM: 0px; WIDTH: = 18px; CURSOR: move; PADDING-TOP: 0px; BORDER-BOTTOM: #888 1px solid; = POSITION: absolute; TOP: -2px; HEIGHT: 18px; opacity: 0 } .portlet H2 SPAN.reorder IMG { WIDTH: 18px; HEIGHT: 20px } .portlet H2:hover SPAN.reorder { FILTER: alpha(opacity=3D80)! important; opacity: 0.8 } .portlet H2.noTitle { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: = 0px; MARGIN: 0px; VERTICAL-ALIGN: middle; CURSOR: move; PADDING-TOP: = 0px; POSITION: relative; HEIGHT: 1% } .portlet H2.noTitle:hover { BACKGROUND: #ededed; HEIGHT: 1% } DIV.edit_controls { PADDING-RIGHT: 0px; PADDING-LEFT: 4px; RIGHT: 4px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; POSITION: absolute; TOP: 2px; HEIGHT: 20px } SPAN.edit_controls { PADDING-RIGHT: 0px; PADDING-LEFT: 4px; RIGHT: 4px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; POSITION: absolute; TOP: 2px; HEIGHT: 20px } DIV.edit_controls A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none! = important; PADDING-BOTTOM: 0px; MARGIN-LEFT: 1px; PADDING-TOP: 0px; = opacity: 0.6; verical-align: top } SPAN.edit_controls A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none! = important; PADDING-BOTTOM: 0px; MARGIN-LEFT: 1px; PADDING-TOP: 0px; = opacity: 0.6; verical-align: top } DIV.edit_controls A:hover { opacity: 1 } SPAN.edit_controls A:hover { opacity: 1 } .portlet DIV.collapsible { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; MARGIN: = 0px; OVERFLOW: scroll; WIDTH: 100%; PADDING-TOP: 3px; ZOOM: 1; = BACKGROUND-COLOR: transparent } .portlet DIV.collapsible P { MARGIN: 4px 6px 6px 12px } .portlet H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px; COLOR: #597298; PADDING-TOP: = 1px; BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } #lightbox H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px; COLOR: #597298; PADDING-TOP: = 1px; BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .portlet DIV.portletBlock H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px; COLOR: #597298; PADDING-TOP: = 1px; BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .portlet DIV.blockContents H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px; COLOR: #597298; PADDING-TOP: = 1px; BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .portlet H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px 0px; COLOR: #000; PADDING-TOP: = 1px } .portlet UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 4px = 9px 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #lightbox UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 4px = 9px 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .portlet UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; FONT-SIZE: 95%; BACKGROUND: = url(images/list_bullet_single.gif) no-repeat 5px 3px; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 2px; PADDING-TOP: 0px } #lightbox UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; FONT-SIZE: 95%; BACKGROUND: = url(images/list_bullet_single.gif) no-repeat 5px 3px; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 2px; PADDING-TOP: 0px } .portlet UL.courselist { MARGIN: 6px 6px 9px } .portlet UL.courselist LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 14px; FONT-WEIGHT: bold; = BACKGROUND: url(images/list_bullet_single.gif) no-repeat 4px 5px; = PADDING-BOTTOM: 0px; MARGIN: 0px 0px 6px; PADDING-TOP: 0px } .portlet UL.courselist LI A { FONT-SIZE: 110% } .portlet UL.courselist LI A:hover { TEXT-DECORATION: underline } .portlet UL.courselist LI P { FONT-WEIGHT: normal; FONT-SIZE: 90%; MARGIN: 4px } .portlet UL.scholar { MARGIN: 2px 6px } .portlet UL.scholar LI { PADDING-RIGHT: 6px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 24px; = BACKGROUND: url(images/small_scholar.gif) no-repeat 0px 6px; = MARGIN-BOTTOM: 4px; PADDING-BOTTOM: 4px; PADDING-TOP: 6px } .portlet UL.scholar LI:first-child { BORDER-TOP: medium none } UL.tagcloud { PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; PADDING-BOTTOM: 0pt; MARGIN: 4px = 6px 12px; PADDING-TOP: 0pt } UL.tagcloud LI { PADDING-RIGHT: 3px; DISPLAY: inline; PADDING-LEFT: 3px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; MARGIN: 0pt; = VERTICAL-ALIGN: baseline; PADDING-TOP: 3px; LIST-STYLE-TYPE: none } LI.freq1 A { FONT-SIZE: 90% } LI.freq2 A { FONT-SIZE: 105% } LI.freq3 A { FONT-SIZE: 120% } LI.freq4 A { FONT-SIZE: 135% } LI.freq5 A { FONT-SIZE: 155% } LI.freq6 A { FONT-SIZE: 165% } LI.freq7 A { FONT-SIZE: 175% } LI.freq8 A { FONT-SIZE: 195% } .portletHelp { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 2px; MARGIN: 4px 7px; COLOR: #688ba8; PADDING-TOP: 1px } .portlet FIELDSET { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 9px; PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 6px; BORDER-BOTTOM: 0px } .portlet FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } DIV.portlet FIELDSET A.browse { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 90%; PADDING-BOTTOM: = 1px; COLOR: #666; PADDING-TOP: 1px } DIV.portlet FIELDSET LABEL { DISPLAY: block } DIV.portlet INPUT[type=3D'text'] { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: 0px; MARGIN: = 1px 0px; VERTICAL-ALIGN: middle; BORDER-LEFT: #999 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #999 1px solid } DIV.portlet SELECT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: 0px; MARGIN: = 1px 0px; VERTICAL-ALIGN: middle; BORDER-LEFT: #999 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #999 1px solid } DIV.portlet INPUT[type=3D'button'] { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-SIZE: 90%; BACKGROUND: #ddd; = PADDING-BOTTOM: 0px; MARGIN: 1px 0px; VERTICAL-ALIGN: baseline; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #999 1px = solid } DIV.portlet INPUT[type=3D'button']:hover { BORDER-RIGHT: #999 1px solid; BORDER-TOP: #999 1px solid; FONT-SIZE: = 90%; BACKGROUND: #fff; BORDER-LEFT: #999 1px solid; BORDER-BOTTOM: #999 = 1px solid } .portlet UL LI DIV.location { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 0px; COLOR: #999; PADDING-TOP: 0px } .portlet_cust UL LI DIV.location { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 0px; COLOR: #999; PADDING-TOP: 0px } .portlet UL LI A { =09 } .portlet UL LI SPAN.post_date { FLOAT: right; MARGIN-LEFT: 3px; COLOR: #999 } .portlet UL LI SPAN.info_byline { FLOAT: right; MARGIN-LEFT: 3px; COLOR: #999 } .portlet UL LI SPAN.time { FLOAT: right; MARGIN-LEFT: 3px; COLOR: #999 } .portlet UL.disc LI SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; FLOAT: right; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } .portlet UL.portletTabs { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #ededed; = PADDING-BOTTOM: 0px; MARGIN: 0px 6px; PADDING-TOP: 4px; BORDER-BOTTOM: = #ccc 1px solid; LIST-STYLE-TYPE: none } .portlet UL.portletTabs LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; BACKGROUND-IMAGE: = none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .portlet UL.portletTabs LI A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; FONT-SIZE: = 90%; BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; = TEXT-DECORATION: none } .portlet UL.portletTabs LI A:hover { TEXT-DECORATION: underline } .portlet UL.portletTabs LI.active { POSITION: relative; TOP: 1px } .portlet UL.portletTabs LI.active A { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; FONT-WEIGHT: = bold; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: medium none; = BACKGROUND-COLOR: #fff } .portlet DIV.tabbedPortlet { BACKGROUND: #ededed; PADDING-TOP: 9px } .portlet DIV.portletTabBlock { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: medium = none; PADDING-LEFT: 0px; BACKGROUND: #fff; PADDING-BOTTOM: 6px; MARGIN: = 0px 6px 6px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 6px; = BORDER-BOTTOM: #ccc 1px solid } .blockContents { BACKGROUND: #fff; MARGIN: 2px 0px } .portlet DIV.portletBlock { BORDER-RIGHT: #888 1px solid; BORDER-TOP: #888 1px solid; FONT-SIZE: = 100%; BACKGROUND: #fff; MARGIN: 9px 9px 0px; BORDER-LEFT: #888 1px = solid; BORDER-BOTTOM: #888 1px solid } .portlet DIV.portletBlock H4 { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px } .portlet DIV.portletBlock H4.blockTitle { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px } .portlet DIV.portletBlock H4 A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 9px; FONT-SIZE: 110%; BACKGROUND: #f1f1f1; PADDING-BOTTOM: = 4px; MARGIN: 0px; BORDER-LEFT: 0px; COLOR: #444; PADDING-TOP: 4px; = BORDER-BOTTOM: 0px; LETTER-SPACING: 0px; TEXT-DECORATION: none } .portlet DIV.portletBlock H4.blockTitle A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 9px; FONT-SIZE: 110%; BACKGROUND: #f1f1f1; PADDING-BOTTOM: = 4px; MARGIN: 0px; BORDER-LEFT: 0px; COLOR: #444; PADDING-TOP: 4px; = BORDER-BOTTOM: 0px; LETTER-SPACING: 0px; TEXT-DECORATION: none } .portlet DIV.portletBlock H4 A:hover { BACKGROUND: #eee } .portlet DIV.portletBlock H4.blockTitle A:hover { BACKGROUND: #eee } .portlet DIV.portletBlock H4 A SPAN { FONT-WEIGHT: normal; COLOR: #ddd } .portlet DIV.portletBlock H4.blockTitle A SPAN { FONT-WEIGHT: normal; COLOR: #ddd } .portlet UL.subCategories { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.blockGroups { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .portlet DIV.portletBlock UL.subCategories LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } UL.blockGroups LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .portlet UL.subCategories LI A { PADDING-RIGHT: 16px; BORDER-TOP: #777 1px solid; DISPLAY: block; = PADDING-LEFT: 16px; FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 3px center; = PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #597298; PADDING-TOP: 4px; = LETTER-SPACING: 1px; TEXT-DECORATION: none } UL.blockGroups LI A.itemHead { PADDING-RIGHT: 16px; BORDER-TOP: #777 1px solid; DISPLAY: block; = PADDING-LEFT: 16px; FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 3px center; = PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #597298; PADDING-TOP: 4px; = LETTER-SPACING: 1px; TEXT-DECORATION: none } UL.blockGroups LI A.itemHead:hover { BACKGROUND-COLOR: #e3efff; TEXT-DECORATION: underline } UL.blockGroups LI A.itemHeadOpen { BACKGROUND: url(images/less_options_dark.gif) #fff no-repeat 3px center } UL.blockGroups LI A.itemHeadOpen:hover { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } .portlet UL.subCategories LI:first-child A { BORDER-TOP: medium none } UL.blockGroups LI:first-child A { BORDER-TOP: medium none } .portlet UL.subCategories LI A:hover { FILTER: alpha(opacity=3D100); BACKGROUND-COLOR: #fff; opacity: 1 } UL.blockGroups LI A:hover { FILTER: alpha(opacity=3D100); BACKGROUND-COLOR: #fff; opacity: 1 } .portlet UL.subCategories LI A SPAN { FONT-WEIGHT: normal; COLOR: #777 } UL.blockGroups LI A SPAN { FONT-WEIGHT: normal; COLOR: #777 } .portlet UL.itemGroup LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: = inline; PADDING-LEFT: 0px; FONT-WEIGHT: bold; PADDING-BOTTOM: 0px; = BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; = BACKGROUND-COLOR: transparent } UL.blockGroups LI UL.itemGroups LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: = inline; PADDING-LEFT: 0px; FONT-WEIGHT: bold; PADDING-BOTTOM: 0px; = BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; = BACKGROUND-COLOR: transparent } .portlet UL.itemGroup LI A:hover { TEXT-DECORATION: underline } UL.itemGroups LI A:hover { TEXT-DECORATION: underline } UL.itemGroups LI UL.items { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 2px } UL.blockGroups LI UL.itemGroups LI A { FONT-WEIGHT: normal } UL.itemGroups LI UL.items LI A { FONT-WEIGHT: normal } .portlet DIV.portletBlock H3 { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 100%; PADDING-BOTTOM: = 0px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none; LETTER-SPACING: 0px } .portlet DIV.portletBlock H3 A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 99% center; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; TEXT-DECORATION: = none } .portlet DIV.portletBlock H3 A:hover { TEXT-DECORATION: underline } .portlet DIV.portletBlock:first-child H3 A { BORDER-TOP: medium none } .portlet DIV.portletBlock H3 A.open { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = url(images/less_options.gif) #e3efff no-repeat 99% center; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; TEXT-DECORATION: = none } .portlet UL.objectList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .portletBlock UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .blockContents UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } UL.memberList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .portlet .blockContents UL LI UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .portlet .blockContents UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .portlet UL LI UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } #portalPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 3px 14px 0px; = WIDTH: auto; PADDING-TOP: 0px } DIV.portalPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 3px 14px 0px; = WIDTH: auto; PADDING-TOP: 0px } .imgWrapper { MARGIN: 6px auto; OVERFLOW: scroll; WIDTH: 100%; TEXT-ALIGN: center } .imgWrapper IMG { HEIGHT: 1% } DIV.eudModule { BORDER-RIGHT: #f9f9f9 0px solid; PADDING-RIGHT: 0px; = BACKGROUND-POSITION: 50% 50%; BORDER-TOP: #f9f9f9 1px solid; = PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: = 0px; BORDER-LEFT: #f9f9f9 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: = #f9f9f9 0px solid; BACKGROUND-COLOR: #ededed } DIV.eudModule DIV.eudModule-inner { OVERFLOW-Y: auto; MIN-HEIGHT: 250px; MAX-HEIGHT: 500px; BORDER-BOTTOM: = medium none } DIV.moduleActions { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 0px; = PADDING-TOP: 10px } .portlet UL.memberList { MARGIN: 0px 0px 5px } UL.itemGroups LI UL.itemGroups { MARGIN-BOTTOM: 4px; MARGIN-LEFT: 0px } .portlet UL.blockGroups LI { FONT-SIZE: 100% } .portlet UL.blockGroups LI UL LI A.cmimg { ZOOM: 1; POSITION: static! important } SPAN.itemHead A.cmimg { ZOOM: 1; POSITION: static! important } .portlet UL.itemGroups LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 7px; WIDTH: 100%; LINE-HEIGHT: 120%; PADDING-TOP: 0px } .portlet UL.memberList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = MARGIN-LEFT: 14px! important; PADDING-TOP: 0px } .portlet SPAN.course { DISPLAY: block; FONT-SIZE: 85% } .portlet UL.memberList { DISPLAY: block; FONT-SIZE: 85% } .portlet SPAN.refresh { DISPLAY: block; FONT-SIZE: 85% } .portlet SPAN A { COLOR: #777 } .portlet SPAN.noIndent { MARGIN-LEFT: 0px! important } .portlet .whatsNew SPAN.course { MARGIN-LEFT: 0px! important } .portlet SPAN.course { MARGIN-LEFT: 0px! important } .portlet UL.hierarchyList { MARGIN-LEFT: 22px } .portlet UL.hierarchyList LI { BORDER-RIGHT: transparent 1px solid; BORDER-TOP: transparent 1px solid; = OVERFLOW-X: visible; BORDER-LEFT: transparent 1px solid; TEXT-INDENT: = -18px; BORDER-BOTTOM: transparent 1px solid } .portlet UL.hierarchyList LI * { TEXT-INDENT: 0px } .portlet UL.hierarchyList LI.childless { TEXT-INDENT: 0px } .portlet UL LI UL LI SPAN.warning { DISPLAY: inline; FONT-SIZE: 85%; COLOR: #777777; WHITE-SPACE: nowrap } .portlet UL LI UL LI SPAN.due { DISPLAY: inline; FONT-SIZE: 85%; COLOR: #777777; WHITE-SPACE: nowrap } .portlet UL LI UL LI SPAN.newItemCount { DISPLAY: inline; FONT-SIZE: 85%; COLOR: #777777; WHITE-SPACE: nowrap } .portlet UL LI UL LI SPAN.warning { COLOR: #ff0000 } .portlet UL.memberList SPAN { FONT-SIZE: 100% } .portlet UL.memberList SPAN.newItemCount { FONT-SIZE: 100% } .portletInfoFooter { PADDING-RIGHT: 9px; MARGIN-TOP: 4px; PADDING-LEFT: 9px; FONT-SIZE: 85%; = RIGHT: 0px; PADDING-BOTTOM: 2px; COLOR: #555; BOTTOM: 2px; PADDING-TOP: = 2px; POSITION: static; TEXT-ALIGN: right } .dateSelector { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; BACKGROUND: #f1f1f1; = PADDING-BOTTOM: 4px; PADDING-TOP: 2px; BORDER-BOTTOM: #888 1px solid } UL.blockGroups LI SPAN.itemHeadOpen { BORDER-BOTTOM: #eeeeee 1px solid } UL.blockGroups LI SPAN.itemHead A:hover { BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline } P.noItems { MARGIN: 4px 6px; COLOR: #777; TEXT-ALIGN: center } #contentArea { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = MIN-HEIGHT: 400px; PADDING-BOTTOM: 12px; MARGIN: 0px; OVERFLOW: visible; = PADDING-TOP: 10px; HEIGHT: 400px; BACKGROUND-COLOR: #fff } .container { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = MIN-HEIGHT: 400px; PADDING-BOTTOM: 12px; MARGIN: 0px; OVERFLOW: visible; = PADDING-TOP: 10px; HEIGHT: 400px; BACKGROUND-COLOR: #fff } DIV.okContainer { PADDING-BOTTOM: 38px; POSITION: relative } DIV.ok DIV.container { PADDING-BOTTOM: 38px; POSITION: relative } .contentbottoml { DISPLAY: none } .contentbottomr { DISPLAY: none } .tallPara { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 40px; MARGIN: = 0px; PADDING-TOP: 40px } SPAN.errorCode { MARGIN-TOP: 24px; DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 90% } #pageHeader { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = PADDING-BOTTOM: 6px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 6px; ZOOM: = 1; BACKGROUND-COLOR: #fff1c5 } .pageTitle { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = PADDING-BOTTOM: 6px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 6px; ZOOM: = 1; BACKGROUND-COLOR: #fff1c5 } .pageTitleSmall { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = PADDING-BOTTOM: 6px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 6px; ZOOM: = 1; BACKGROUND-COLOR: #fff1c5 } .pageTitle { BORDER-BOTTOM: #eedd99 1px solid } .error .pageTitle { BACKGROUND: red } .pageTitle H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 150%; PADDING-BOTTOM: = 0px; MARGIN: 6px 0px 0px; PADDING-TOP: 0px } .pageTitleError H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 150%; PADDING-BOTTOM: = 0px; MARGIN: 6px 0px 0px; PADDING-TOP: 0px } .error .pageTitle H1 { COLOR: #fff } .pageTitleSmall H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 135%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } .customBanner { MARGIN: 0px; OVERFLOW: hidden; BACKGROUND-COLOR: transparent; = TEXT-ALIGN: center } .pageTitle #titleicon { FLOAT: left } .pageTitle H1 { FLOAT: left } .pageTitle A.cmimg { FLOAT: left } .pageTitle A.cmimg { MARGIN: 0.8em 0px 0px 6px } .pageTitle #titleicon { MARGIN: 0px 6px 0px 0px } DIV.localViewToggle + DIV.pageTitle { PADDING-TOP: 0px } H1.pageTitle { MARGIN: -11px 0px 5px; PADDING-TOP: 0px } .caliperTitle { MARGIN: -11px 0px 5px; PADDING-TOP: 0px } .discoverTitle { MARGIN: -11px 0px 5px; PADDING-TOP: 0px } .discoverTitle { POSITION: relative; TOP: -11px } .caliperTitle { POSITION: relative; TOP: -11px } .unitHomePageTitle { MARGIN: -11px -12px 5px; PADDING-TOP: 0px } .caliperTitle H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .discoverTitle H1 { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .unitHomePageTitle A.browse { FONT-WEIGHT: normal; FONT-SIZE: 60%; FLOAT: right; PADDING-BOTTOM: 1px; = MARGIN: 4px 0px 0px 6px; PADDING-TOP: 2px } .caliperTitle A.browse { FONT-WEIGHT: normal; FONT-SIZE: 60%; FLOAT: right; PADDING-BOTTOM: 1px; = MARGIN: 4px 0px 0px 6px; PADDING-TOP: 2px } .unitHomePageTitle A.browseNoImg { PADDING-BOTTOM: 3px; PADDING-TOP: 2px } DIV.helphelp { CLEAR: both; PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%; = PADDING-BOTTOM: 0px; MARGIN: 0px 0px 4px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 4px } P.helphelp { CLEAR: both; PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%; = PADDING-BOTTOM: 0px; MARGIN: 0px 0px 4px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 4px } DIV.pageTitle P { CLEAR: both; PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%; = PADDING-BOTTOM: 0px; MARGIN: 0px 0px 4px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 4px } DIV.helphelp P.helphelp { FONT-SIZE: 100% } DIV.helphelp UL { MARGIN: 6px 0px } .colophon { PADDING-RIGHT: 0px; PADDING-LEFT: 55px; FONT-SIZE: 90%; BACKGROUND: = none transparent scroll repeat 0% 0%; FLOAT: right; PADDING-BOTTOM: 3px; = MARGIN: 0px 0px 0px 14px; OVERFLOW: visible; WIDTH: 30em; PADDING-TOP: = 0px; POSITION: relative } .colophon IMG { LEFT: 0px; POSITION: absolute } .installation { FONT-SIZE: 95%; COLOR: #000; LINE-HEIGHT: 1.3em } .installation H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px } .installation H4 SPAN { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; BACKGROUND: = #888; PADDING-BOTTOM: 1px; MARGIN: 0px 0px 0px 6px; COLOR: #fff; = PADDING-TOP: 1px; WHITE-SPACE: nowrap; -moz-border-radius: 8px } .installation SPAN { FONT-WEIGHT: bold } H1 SPAN.version { FONT-SIZE: 75% } UL.containerTabs { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; BACKGROUND: = #fff; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: = #ccc 1px solid; LIST-STYLE-TYPE: none } UL.containerTabs LI { FLOAT: left; MARGIN-RIGHT: 3px; POSITION: relative; TOP: 1px } UL.containerTabs LI A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = #ededed; PADDING-BOTTOM: 6px; PADDING-TOP: 5px; TEXT-DECORATION: none } UL.containerTabs LI A:hover { BACKGROUND: #f6f6f6 } UL.containerTabs LI.active A { BORDER-RIGHT: #dcdcdc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: = #dcdcdc 1px solid; DISPLAY: block; PADDING-LEFT: 12px; FONT-WEIGHT: = bold; BACKGROUND: #ffffff; PADDING-BOTTOM: 7px; MARGIN: 0px; = BORDER-LEFT: #dcdcdc 1px solid; COLOR: #333; PADDING-TOP: 7px; = BORDER-BOTTOM: medium none; TEXT-DECORATION: none } UL.containerTabs LI.active H3 { BORDER-RIGHT: #dcdcdc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: = #dcdcdc 1px solid; DISPLAY: block; PADDING-LEFT: 12px; FONT-WEIGHT: = bold; BACKGROUND: #ffffff; PADDING-BOTTOM: 7px; MARGIN: 0px; = BORDER-LEFT: #dcdcdc 1px solid; COLOR: #333; PADDING-TOP: 7px; = BORDER-BOTTOM: medium none; TEXT-DECORATION: none } DIV.mapTabs { CLEAR: both; PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; MARGIN: -1px -12px 1px; PADDING-TOP: 1px; = BORDER-BOTTOM: #999 1px solid } DIV.mapTabs UL { PADDING-RIGHT: 0px; PADDING-LEFT: 3px; BACKGROUND: #cdcdcd; FLOAT: = left; MARGIN-BOTTOM: -1px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.mapTabs UL LI { PADDING-RIGHT: 0px; MARGIN-TOP: 2px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } DIV.mapTabs UL LI.active H3 { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 12px; FONT-SIZE: 100%; BACKGROUND: #fff1c5; FLOAT: = left; PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: #999 1px solid; = PADDING-TOP: 5px; BORDER-BOTTOM: medium none; HEIGHT: 1% } DIV.mapTabs UL LI A.inprogress { PADDING-LEFT: 26px; BACKGROUND: url(images/workflow_detail_active.gif) = #ededed no-repeat 6px 50% } DIV.mapTabs UL LI A.complete { PADDING-LEFT: 27px; BACKGROUND: = url(images/workflow_detail_complete2.gif) #ededed no-repeat 6px 50% } DIV.mapTabs UL LI A.inprogress:hover { BACKGROUND-COLOR: #f6f6f6 } DIV.mapTabs UL LI A.complete:hover { BACKGROUND-COLOR: #f6f6f6 } DIV.mapTabs UL LI DIV { PADDING-RIGHT: 12px; DISPLAY: none; PADDING-LEFT: 12px; PADDING-BOTTOM: = 7px; PADDING-TOP: 7px } DIV.mapTabs UL LI.saveTab A { DISPLAY: none } UL.containerTabs LI.saveTab IMG { DISPLAY: none } DIV.mapTabs UL LI.saveFadeIn { FILTER: alpha(opacity=3D0); opacity: 0 } DIV.mapTabs UL LI.saveTab DIV { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; FONT-WEIGHT: = bold; BACKGROUND: url(images/tab_receipt_back.gif) #44b10e repeat-x = center bottom; PADDING-BOTTOM: 6px; COLOR: white; PADDING-TOP: 5px } DIV.mapHelp { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 0px; MARGIN: -1px 0px 0px; PADDING-TOP: 4px } UL.setStatus { BORDER-RIGHT: #eee 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #eee 1px = solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 15px 0pt 9px = 30px; BORDER-LEFT: #eee 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #eee = 1px solid; LIST-STYLE-TYPE: none } UL.setStatus LI { FONT-SIZE: 95%; MARGIN: 0px 6px 0px 0px } UL.setStatus LI INPUT { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } UL.setStatus LI LABEL { PADDING-LEFT: 22px; BACKGROUND: url(images/workflow_detail_active.gif) = no-repeat 1px 0px } UL.setStatus LI LABEL.complete { PADDING-LEFT: 22px; BACKGROUND: = url(images/workflow_detail_complete.gif) no-repeat 1px 0px } FORM.mapCanvasForm DIV.steptitle { PADDING-LEFT: 0.8em; MARGIN: 15px 0px 0px 18px } FORM.mapCanvasForm H3.steptitle { PADDING-LEFT: 0.8em; MARGIN: 15px 0px 0px 18px } BODY.ineditmode { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 6px; BACKGROUND-COLOR: #cdcdcd } BODY.noteditmode { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 6px } BODY.ineditmode { BACKGROUND-IMAGE: url(images/readback.png) } BODY.ineditmode { BACKGROUND-IMAGE: url(images/readback.png) } BODY.ineditmode #editModeButton { BACKGROUND-IMAGE: url(images/readback.png); BACKGROUND-COLOR: #cdcdcd } BODY.ineditmode DIV.listCm { BORDER-RIGHT: #666 3px solid; BORDER-TOP: #666 3px solid; BORDER-LEFT: = #666 3px solid; BORDER-BOTTOM: #666 3px solid; BACKGROUND-COLOR: #666; = -moz-border-radius: 9px; -webkit-border-radius: 9px } BODY.ineditmode DIV#editmodeWrapper { BORDER-RIGHT: #666 3px solid; BORDER-TOP: #666 3px solid; BORDER-LEFT: = #666 3px solid; BORDER-BOTTOM: #666 3px solid; BACKGROUND-COLOR: #666; = -moz-border-radius: 9px; -webkit-border-radius: 9px } BODY.ineditmode DIV.listCm { BACKGROUND-IMAGE: none; MARGIN-BOTTOM: 9px; PADDING-BOTTOM: 0px } BODY.ineditmode DIV#editodeWrapper { BACKGROUND-IMAGE: none; MARGIN-BOTTOM: 9px; PADDING-BOTTOM: 0px } BODY.ineditmode DIV.landing DIV#editmodeWrapper { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: = 0px } .actionBar { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; Z-INDEX: 110; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 6px; MARGIN: -1px 0px 0px; PADDING-TOP: 4px; = BORDER-BOTTOM: #eedd99 1px solid; ZOOM: 1 } .actionBar UL { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px; ZOOM: 1; LIST-STYLE-TYPE: none } .actionbar_portal UL { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px; ZOOM: 1; LIST-STYLE-TYPE: none } .actionBar UL LI { PADDING-RIGHT: 1px; FONT-WEIGHT: bold; Z-INDEX: 111; FLOAT: left; = MARGIN: 2px 0px 0px 6px; ZOOM: 1; POSITION: relative } .actionBar UL LI.mainButton { PADDING-RIGHT: 1px; FONT-WEIGHT: bold; Z-INDEX: 111; FLOAT: left; = MARGIN: 2px 0px 0px 6px; ZOOM: 1; POSITION: relative } .actionbar_portal UL LI { PADDING-RIGHT: 1px; FONT-WEIGHT: bold; Z-INDEX: 111; FLOAT: left; = MARGIN: 2px 0px 0px 6px; ZOOM: 1; POSITION: relative } .actionBar UL LI:hover { Z-INDEX: 1001 } .actionBar UL LI.mainButton:hover .actionbar_portal UL LI:hover { Z-INDEX: 1001 } #primaryButton { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } .actionBar UL LI A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } .actionBar UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } .actionbar_portal UL LI A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } DIV.tabPreview DIV.actionBar UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } .navPalette DIV.actionBarMicro UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } .portlet DIV.actionBarMicro UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { CURSOR: default } .actionBar UL LI.sub { =09 } .actionBar UL LI A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .actionBar UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .actionBar UL LI.mainButton A:focus { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .actionbar_portal UL LI A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .navPalette DIV.actionBarMicro UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .navPalette DIV.actionBarMicro UL LI.mainButton A:focus { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .portlet DIV.actionBarMicro UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .actionBar UL LI.sub A.other { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #344a6c 1px solid; PADDING-LEFT: 9px; BACKGROUND: = url(images/action_button_back.gif) #888 repeat-x left top; = PADDING-BOTTOM: 2px; BORDER-LEFT: #344a6c 1px solid; PADDING-TOP: 2px; = BORDER-BOTTOM: #344a6c 1px solid; TEXT-DECORATION: none } .actionBar UL LI.sub A.other:hover { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #666; = BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } .actionBar UL LI A IMG { MARGIN: -2px -4px 0px 4px; VERTICAL-ALIGN: middle } .pageTitle H1 A.secondaryButton IMG { MARGIN: -2px -4px 0px 4px; VERTICAL-ALIGN: middle } .actionBar UL LI.secondaryButton A IMG { MARGIN: -2px -4px 0px } .actionBar UL LI.sub A IMG { MARGIN: -2px -4px 0px 4px } .actionBar UL LI.sub A IMG { MARGIN: -2px -4px 0px 4px } .actionBar UL LI.search { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 2px = 6px 0px 0px; PADDING-TOP: 0px } .actionBar UL LI.secondaryButton { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 2px = 6px 0px 0px; PADDING-TOP: 0px } .actionbar_portal UL LI.search { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 2px = 6px 0px 0px; PADDING-TOP: 0px } #secondaryButton { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } .actionBar UL LI.search A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } .actionBar UL LI.secondaryButton A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } .actionBar_portal UL LI.search A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A:hover { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } .pageTitle H1 A.secondaryButton { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } .actionBar UL LI.secondaryButton DIV.action_bar_paging { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-SIZE: 105%; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } .actionBar UL LI.secondaryButton DIV.action_bar_paging A { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } .actionBar UL LI.secondaryButton DIV.action_bar_paging A:hover { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } .actionBar UL LI.secondaryButton DIV.action_bar_paging A IMG { MARGIN: 0px } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A:hover { CURSOR: default } .actionBar UL LI.buttontotab { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; Z-INDEX: 100; FLOAT: right; PADDING-BOTTOM: 0px; = MARGIN: 0px 6px 0px 0px; BOTTOM: 0px; PADDING-TOP: 0px; TOP: 7px } .actionBar UL LI.secondaryButtonTab { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; Z-INDEX: 100; FLOAT: right; PADDING-BOTTOM: 0px; = MARGIN: 0px 6px 0px 0px; BOTTOM: 0px; PADDING-TOP: 0px; TOP: 7px } .actionBar UL LI.buttontotab A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #d7bb66 1px solid; PADDING-LEFT: 9px; FONT-SIZE: 100%; Z-INDEX: 100; = BACKGROUND: #eddca5; PADDING-BOTTOM: 3px; BORDER-LEFT: #d7bb66 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: medium none; = TEXT-DECORATION: none } .actionBar UL LI.buttontotab A:hover { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #d7bb66 1px solid; PADDING-LEFT: 9px; FONT-SIZE: 100%; Z-INDEX: 100; = BACKGROUND: #eddca5; PADDING-BOTTOM: 3px; BORDER-LEFT: #d7bb66 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: medium none; = TEXT-DECORATION: none } .actionBar UL LI.secondaryButtonTab A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #d7bb66 1px solid; PADDING-LEFT: 9px; FONT-SIZE: 100%; Z-INDEX: 100; = BACKGROUND: #eddca5; PADDING-BOTTOM: 3px; BORDER-LEFT: #d7bb66 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: medium none; = TEXT-DECORATION: none } .actionBar UL LI.secondaryButtonTab A:hover { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #d7bb66 1px solid; PADDING-LEFT: 9px; FONT-SIZE: 100%; Z-INDEX: 100; = BACKGROUND: #eddca5; PADDING-BOTTOM: 3px; BORDER-LEFT: #d7bb66 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: medium none; = TEXT-DECORATION: none } .actionBar UL LI.secondaryButton A.image { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } .actionBar UL LI.search A:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .actionBar_portal UL LI.search A:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .actionBar UL LI.secondaryButton A:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .actionBar UL LI.secondaryButton A:focus { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .actionBar_portal UL LI.secondaryButton A:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .pageTitle A.secondaryButton:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .pageTitle H1 A.secondaryButton { DISPLAY: inline; FONT-WEIGHT: normal; FONT-SIZE: 65% } .reverseButtons UL LI.mainButton { FLOAT: right } .reverseButtons UL LI.secondaryButton { FLOAT: left } .navPalette DIV.actionBarMicro { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 4px; PADDING-TOP: 0px } .portlet DIV.actionBarMicro { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 4px; PADDING-TOP: 0px } .portlet DIV.actionBarMicro { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; MARGIN: = 0px; PADDING-TOP: 4px } .navPalette DIV.actionBarMicro UL { =09 } .portlet DIV.actionBarMicro UL { MARGIN: 2px } DIV.navPalette DIV.actionBarMicro UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 1px 0px 1px 3px; PADDING-TOP: 0px } DIV.navPalette DIV.buttons DIV.actionBarMicro UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 1px 0px 1px 3px; PADDING-TOP: 0px } .portlet DIV.actionBarMicro UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 1px 0px 1px 3px; PADDING-TOP: 0px } .navPalette DIV.actionBarMicro UL LI.mainButton { Z-INDEX: 1000; MARGIN: 0px 3px 0px 0px; POSITION: relative } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton { Z-INDEX: 1000; MARGIN: 0px 3px 0px 0px; POSITION: relative } .portlet DIV.actionBarMicro UL LI.mainButton { Z-INDEX: 1000; MARGIN: 0px 3px 0px 0px; POSITION: relative } DIV.navPalette DIV.actionBarMicro UL LI.secondaryButton { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 10; FLOAT: right; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: relative } DIV.navPalette DIV.buttons DIV.actionBarMicro UL LI.secondaryButton { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 10; FLOAT: right; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: relative } DIV.navPalette DIV.actionBarMicro UL LI A { BORDER-RIGHT: #fff1c5 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #fff1c5 1px solid; DISPLAY: inline-block; PADDING-LEFT: 1px; BACKGROUND: = none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: = #fff1c5 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #fff1c5 1px solid } .navPalette DIV.buttons DIV.actionBarMicro UL LI A { BORDER-RIGHT: #fff1c5 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #fff1c5 1px solid; DISPLAY: inline-block; PADDING-LEFT: 1px; BACKGROUND: = none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: = #fff1c5 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #fff1c5 1px solid } .portlet DIV.actionBarMicro UL LI A { BORDER-RIGHT: #fff1c5 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #fff1c5 1px solid; DISPLAY: inline-block; PADDING-LEFT: 1px; BACKGROUND: = none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: = #fff1c5 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #fff1c5 1px solid } .navPalette DIV.actionBarMicro UL LI A:hover { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .navPalette DIV.buttons DIV.actionBarMicro UL LI A:hover { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .portlet DIV.actionBarMicro UL LI A:hover { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .navPalette DIV.actionBarMicro UL LI.mainButton A { BORDER-TOP-WIDTH: 1px; PADDING-RIGHT: 1px; BACKGROUND-POSITION: 0px = 30%; DISPLAY: inline-block; PADDING-LEFT: 1px; BORDER-LEFT-WIDTH: 1px; = FONT-SIZE: 90%; BACKGROUND-IMAGE: none; BORDER-BOTTOM-WIDTH: 1px; = PADDING-BOTTOM: 1px; COLOR: #000; PADDING-TOP: 1px; BORDER-RIGHT-WIDTH: = 1px } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton A { BORDER-TOP-WIDTH: 1px; PADDING-RIGHT: 1px; BACKGROUND-POSITION: 0px = 30%; DISPLAY: inline-block; PADDING-LEFT: 1px; BORDER-LEFT-WIDTH: 1px; = FONT-SIZE: 90%; BACKGROUND-IMAGE: none; BORDER-BOTTOM-WIDTH: 1px; = PADDING-BOTTOM: 1px; COLOR: #000; PADDING-TOP: 1px; BORDER-RIGHT-WIDTH: = 1px } .portlet DIV.actionBarMicro UL LI.mainButton A { BORDER-TOP-WIDTH: 1px; PADDING-RIGHT: 1px; BACKGROUND-POSITION: 0px = 30%; DISPLAY: inline-block; PADDING-LEFT: 1px; BORDER-LEFT-WIDTH: 1px; = FONT-SIZE: 90%; BACKGROUND-IMAGE: none; BORDER-BOTTOM-WIDTH: 1px; = PADDING-BOTTOM: 1px; COLOR: #000; PADDING-TOP: 1px; BORDER-RIGHT-WIDTH: = 1px } .portlet DIV.actionBarMicro UL LI.mainButton A { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px; TEXT-DECORATION: none } .navPalette DIV.actionBarMicro UL LI.mainButton A:hover { =09 } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton A:hover { =09 } .portlet DIV.actionBarMicro UL LI.mainButton A:hover { =09 } .portlet DIV.actionBarMicro UL LI.mainButton A:hover { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px; TEXT-DECORATION: none } .navPalette DIV.actionBarMicro UL LI.active A { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .navPalette DIV.buttons DIV.actionBarMicro UL LI.active A { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .navPalette DIV.actionBarMicro UL LI.active A.options { BORDER-RIGHT: #ffcc00 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: = #ffcc00 1px solid; BACKGROUND: url(images/more_options.gif) #fff = no-repeat 97% center; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: = #ffcc00 1px solid } DIV.portal DIV.actionBar { MARGIN-TOP: -1px } DIV.portal DIV.actionBar { MARGIN-TOP: 0px } DIV.tabbedPane DIV.actionBar { MARGIN-TOP: 0px } .tableOverflowControl { CLEAR: both; OVERFLOW-X: auto; PADDING-BOTTOM: 1px; WIDTH: 100% } TABLE.inventory { CLEAR: both; PADDING-RIGHT: 0px; OVERFLOW-Y: visible; PADDING-LEFT: = 0px; FONT-SIZE: 100%; BACKGROUND: #fff; OVERFLOW-X: auto; = PADDING-BOTTOM: 1px; MARGIN: 0px; WIDTH: 100%; PADDING-TOP: 0px; ZOOM: = 1; BORDER-COLLAPSE: collapse; HEIGHT: 1%; border-expand: 1px 0 } TABLE.inventory THEAD { BORDER-TOP: #ccc 1px solid; BACKGROUND: #ededed } TABLE.splashTable THEAD { BORDER-TOP: #ccc 1px solid; BACKGROUND: #ededed } TABLE.inventory THEAD TR TH { PADDING-RIGHT: 4px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 4px; = FONT-SIZE: 85%; PADDING-BOTTOM: 5px; BORDER-LEFT: #ccc 1px solid; COLOR: = #999; PADDING-TOP: 5px; BORDER-BOTTOM: #ccc 1px solid; ZOOM: 1; = TEXT-ALIGN: left } TABLE.splashTable THEAD TR TH { PADDING-RIGHT: 4px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 4px; = FONT-SIZE: 85%; PADDING-BOTTOM: 5px; BORDER-LEFT: #ccc 1px solid; COLOR: = #999; PADDING-TOP: 5px; BORDER-BOTTOM: #ccc 1px solid; ZOOM: 1; = TEXT-ALIGN: left } TABLE.inventory THEAD TR TH:first-child { BORDER-LEFT: medium none } TABLE.splashTable THEAD TR TH:first-child { BORDER-LEFT: medium none } TABLE.inventory THEAD TR TH:unknown { BORDER-RIGHT: medium none } TABLE.splashTable THEAD TR TH:unknown { BORDER-RIGHT: medium none } TABLE.inventory TBODY { BORDER-BOTTOM: #eee 2px solid; HEIGHT: 1% } TABLE.inventory TBODY TR { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px; BORDER-BOTTOM: #eee 1px solid; ZOOM: 1; HEIGHT: 1% } TABLE.inventory TBODY TR TD { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 95%; PADDING-BOTTOM: = 3px; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: #eee 1px = solid; ZOOM: 1; WHITE-SPACE: normal; HEIGHT: 1%; WORD-WRAP: break-word } TABLE.inventory TBODY TR TH { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 95%; PADDING-BOTTOM: = 3px; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: #eee 1px = solid; ZOOM: 1; WHITE-SPACE: normal; HEIGHT: 1%; WORD-WRAP: break-word } TABLE.reorder TBODY TR TD { BORDER-BOTTOM: 0px } TABLE.reorder TBODY TR TH { BORDER-BOTTOM: 0px } TABLE.inventory TBODY TR TH { FONT-WEIGHT: normal; TEXT-ALIGN: left } TABLE.inventory TBODY TR TD:first-child { BORDER-LEFT: medium none } TABLE.inventory TBODY TR.gray TD { BACKGROUND: #f0f0f0 } TABLE.inventory TBODY TR.gray TH { BACKGROUND: #f0f0f0 } TABLE.inventory THEAD TR TH.sorted { BACKGROUND: #ccc } TH.sorted { BACKGROUND: #ccc } TABLE.splashTable THEAD TR TH.sorted { BACKGROUND: #ccc } TABLE.inventory TBODY TR TD.sorted { BACKGROUND: #eee } TABLE.inventory THEAD TR TH.sorted A { COLOR: #000! important } TABLE.sortable TH A { COLOR: #666; MARGIN-RIGHT: 9px } TABLE.sortable TBODY TH A { COLOR: #003366; WORD-BREAK: normal; MARGIN-RIGHT: 9px; WORD-WRAP: = break-word } TABLE.sortable TH A:hover { TEXT-DECORATION: underline } TABLE.sortable A.sortheader { PADDING-RIGHT: 17px; DISPLAY: block; FONT-WEIGHT: bold; MARGIN-RIGHT: = 0px; POSITION: relative; TEXT-DECORATION: underline } TABLE.sortable SPAN.sortarrow { FONT-WEIGHT: bold; RIGHT: 0px; LEFT: auto; COLOR: #ffff00; POSITION: = absolute; TOP: 0px; TEXT-DECORATION: none } TR.high { BACKGROUND: #fff1c5 } TABLE.inventory TD.smallCell SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.inventory TBODY SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.inventory TBODY SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.attachments TD.smallCell SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.attachments TBODY SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.attachments TBODY SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.inventory TR:hover TD.smallCell SPAN.reorder { opacity: 1 } TABLE.inventory TBODY TR:hover TD.smallCell SPAN.reorder:hover { opacity: 1 } TABLE.attachments TR:hover TD.smallCell SPAN.reorder { opacity: 1 } TABLE.attachments TBODY TR:hover TD.smallCell SPAN.reorder:hover { opacity: 1 } DIV.checked { =09 } DIV.checked_top { =09 } TABLE.inventory TBODY UL.subtabs { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } TABLE.inventory TBODY UL.subtabs LI { PADDING-RIGHT: 2px; PADDING-LEFT: 20px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px; POSITION: relative } DIV.rumble { PADDING-RIGHT: 7px; PADDING-LEFT: 34px; BACKGROUND: = url(images/checked_items.gif) #fff7de no-repeat 8px -10px; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 6px; PADDING-TOP: 5px } DIV.rumble_top { PADDING-RIGHT: 7px; PADDING-LEFT: 34px; BACKGROUND: = url(images/checked_items_top.gif) #fff7de no-repeat 8px 6px; = PADDING-BOTTOM: 5px; MARGIN: 24px 0px 0px; PADDING-TOP: 5px; HEIGHT: = 0.5em } DIV.noBatchActions { BACKGROUND-IMAGE: none! important } DIV.rumbleBuildList { BORDER-TOP: #eee 2px solid; MARGIN: 0px 0px 0px 1.4em } DIV.rumbleBuildListTop { BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN: 10px 0px = -10px 1.4em; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } DIV.rumbleBuildList UL LI { Z-INDEX: 1000 } DIV.rumbleBuildListTop UL LI { Z-INDEX: 1000 } DIV.rumble_top UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; ZOOM: 1; LIST-STYLE-TYPE: none } DIV.rumble UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; ZOOM: 1; LIST-STYLE-TYPE: none } DIV.rumble_top UL LI { FLOAT: left; MARGIN: 0px 3px 0px 0px } DIV.rumble UL LI { FLOAT: left; MARGIN: 0px 3px 0px 0px } DIV.rumble_top UL LI.primary { FLOAT: left; MARGIN: 0px 3px 0px 0px } DIV.rumble UL LI.primary { FLOAT: left; MARGIN: 0px 3px 0px 0px } DIV.rumble_top UL LI.sub:hover { Z-INDEX: 999 } DIV.rumble UL LI.sub:hover { Z-INDEX: 998 } DIV.rumble_top UL LI.secondary { FLOAT: right; MARGIN: 0px 0px 0px 3px; POSITION: relative } DIV.rumble UL LI.secondary { FLOAT: right; MARGIN: 0px 0px 0px 3px; POSITION: relative } DIV.rumble A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble_top A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble UL LI.primary A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble_top UL LI.primary A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble UL LI.secondary A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble_top UL LI.secondary A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble UL LI.secondary A { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #fff1c5; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444444; = BORDER-BOTTOM: #d7bb66 1px solid } DIV.rumble_top UL LI.secondary A { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #fff1c5; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444444; = BORDER-BOTTOM: #d7bb66 1px solid } DIV.rumble_top A { =09 } DIV.rumble A:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 95%; BACKGROUND: = url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; COLOR: #000; = PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid; TEXT-DECORATION: = none } DIV.rumble_top A:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 95%; BACKGROUND: = url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; COLOR: #000; = PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid; TEXT-DECORATION: = none } DIV.rumble LI.multiple LABEL { DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 95%; FLOAT: left; MARGIN: = 0px 3px 0px 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.rumble_top LI.multiple LABEL { DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 95%; FLOAT: left; MARGIN: = 0px 3px 0px 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.rumble LI#addTagActionItem_bottom LABEL { DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 95%; FLOAT: left; MARGIN: = 0px 3px 0px 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.rumble_top LI#addTagActionItem_top LABEL { DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 95%; FLOAT: left; MARGIN: = 0px 3px 0px 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.rumble LI.multiple INPUT { FONT-SIZE: 95%; MARGIN-LEFT: 3px; VERTICAL-ALIGN: middle; WIDTH: 8em } DIV.rumble_top LI.multiple INPUT { FONT-SIZE: 95%; MARGIN-LEFT: 3px; VERTICAL-ALIGN: middle; WIDTH: 8em } DIV.rumble LI#addTagActionItem_bottom INPUT { FONT-SIZE: 95%; MARGIN-LEFT: 3px; VERTICAL-ALIGN: middle; WIDTH: 8em } DIV.rumble_top LI#addTagActionItem_top INPUT { FONT-SIZE: 95%; MARGIN-LEFT: 3px; VERTICAL-ALIGN: middle; WIDTH: 8em } DIV.rumble LI.multiple A { FLOAT: left; MARGIN: 0px 0px 0px 3px } DIV.rumble_top LI.multiple A { FLOAT: left; MARGIN: 0px 0px 0px 3px } DIV.rumble LI#addTagActionItem_bottom A { FLOAT: left; MARGIN: 0px 0px 0px 3px } DIV.rumble_top LI#addTagActionItem_top A { FLOAT: left; MARGIN: 0px 0px 0px 3px } DIV.rumble_top UL LI.inventory_paging { PADDING-LEFT: 9px; FONT-SIZE: 95%; FLOAT: right; MARGIN-LEFT: 9px; = VERTICAL-ALIGN: middle } DIV.rumble UL LI.inventory_paging { PADDING-LEFT: 9px; FONT-SIZE: 95%; FLOAT: right; MARGIN-LEFT: 9px; = VERTICAL-ALIGN: middle } LI.inventory_paging INPUT { BORDER-RIGHT: #edd999 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #edd999 1px solid; DISPLAY: inline-block; PADDING-LEFT: 0px; = FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: #ffffff; PADDING-BOTTOM: = 0px; VERTICAL-ALIGN: middle; BORDER-LEFT: #edd999 1px solid; WIDTH: = 1.5em; PADDING-TOP: 0px; BORDER-BOTTOM: #edd999 1px solid; TEXT-ALIGN: = center } DIV.rumble_top UL LI.inventory_paging A { BORDER-RIGHT: #e6d8b1 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 1px; BACKGROUND: #f5e7bd; = PADDING-BOTTOM: 2px; BORDER-LEFT: #edd999 1px solid; COLOR: #666666; = PADDING-TOP: 1px; BORDER-BOTTOM: #e6d8b1 1px solid; TOP: 0px } DIV.rumble UL LI.inventory_paging A { BORDER-RIGHT: #e6d8b1 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 1px; BACKGROUND: #f5e7bd; = PADDING-BOTTOM: 2px; BORDER-LEFT: #edd999 1px solid; COLOR: #666666; = PADDING-TOP: 1px; BORDER-BOTTOM: #e6d8b1 1px solid; TOP: 0px } DIV.rumble_top UL LI.inventory_paging A:hover { BORDER-RIGHT: #e6d8b1 1px solid; BORDER-TOP: #edd999 1px solid; = BACKGROUND: url(images/actionsearch_button_back.gif) #fff7de repeat-x; = BORDER-LEFT: #edd999 1px solid; BORDER-BOTTOM: #e6d8b1 1px solid } DIV.rumble UL LI.inventory_paging A:hover { BORDER-RIGHT: #e6d8b1 1px solid; BORDER-TOP: #edd999 1px solid; = BACKGROUND: url(images/actionsearch_button_back.gif) #fff7de repeat-x; = BORDER-LEFT: #edd999 1px solid; BORDER-BOTTOM: #e6d8b1 1px solid } DIV.rumble_top UL LI.inventory_paging DIV { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble_top UL LI.inventory_paging A { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble_top UL LI.inventory_paging IMG { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble UL LI.inventory_paging DIV { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble UL LI.inventory_paging A { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble UL LI.inventory_paging IMG { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble UL LI.inventory_paging SPAN { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble_top UL LI.inventory_paging IMG { MARGIN: 2px 2px 3px } DIV.rumble UL LI.inventory_paging IMG { MARGIN: 2px 2px 3px } DIV.rumble_top UL LI.inventory_paging A IMG { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.rumble UL LI.inventory_paging A IMG { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.rumble_top UL LI.inventory_paging A.inactive { FILTER: alpha(opacity=3D40); opacity: .4 } DIV.rumble UL LI.inventory_paging A.inactive { FILTER: alpha(opacity=3D40); opacity: .4 } DIV.rumble_top UL LI.secondaryControl { FLOAT: right } DIV.rumble UL LI.secondaryControl { FLOAT: right } DIV.rumble_top UL LI.secondaryControl A { BORDER-RIGHT: #e6d8b1 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 5px; BACKGROUND: #f5e7bd; = PADDING-BOTTOM: 2px; BORDER-LEFT: #edd999 1px solid; COLOR: #666666; = PADDING-TOP: 1px; BORDER-BOTTOM: #e6d8b1 1px solid; TOP: 1px } DIV.rumble UL LI.secondaryControl A { BORDER-RIGHT: #e6d8b1 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 5px; BACKGROUND: #f5e7bd; = PADDING-BOTTOM: 2px; BORDER-LEFT: #edd999 1px solid; COLOR: #666666; = PADDING-TOP: 1px; BORDER-BOTTOM: #e6d8b1 1px solid; TOP: 1px } DIV.rumble_top UL LI.secondaryControl A:hover { BORDER-RIGHT: #e6d8b1 1px solid; BORDER-TOP: #edd999 1px solid; = BACKGROUND: url(images/actionsearch_button_back.gif) #fff7de repeat-x; = BORDER-LEFT: #edd999 1px solid; BORDER-BOTTOM: #e6d8b1 1px solid } DIV.rumble UL LI.secondaryControl A:hover { BORDER-RIGHT: #e6d8b1 1px solid; BORDER-TOP: #edd999 1px solid; = BACKGROUND: url(images/actionsearch_button_back.gif) #fff7de repeat-x; = BORDER-LEFT: #edd999 1px solid; BORDER-BOTTOM: #e6d8b1 1px solid } .rumble UL LI.secondary A { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BORDER-LEFT: #d7bb66 1px solid; BORDER-BOTTOM: #d7bb66 1px solid; = BACKGROUND-COLOR: #fff1c5 } .rumble_top UL LI.secondary A { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BORDER-LEFT: #d7bb66 1px solid; BORDER-BOTTOM: #d7bb66 1px solid; = BACKGROUND-COLOR: #fff1c5 } DIV.extraData { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; COLOR: #666; PADDING-TOP: 3px } DIV.extraData SPAN { DISPLAY: inline; FONT-WEIGHT: bold; FONT-SIZE: 95% } DIV.extraData P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } TABLE.splashTable DIV.extraData { FONT-WEIGHT: normal; FONT-SIZE: 100% } TABLE.attachments { MARGIN: 0px 0px 12px; WIDTH: 100%; BORDER-COLLAPSE: collapse } TABLE.attachments THEAD TR { COLOR: #999; BORDER-BOTTOM: #ccc 2px solid } TABLE.attachments THEAD TR TH { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; BORDER-BOTTOM: #ccc 2px solid; = TEXT-ALIGN: left } TABLE.attachments TBODY TR { BORDER-TOP: #eee 1px solid } TABLE.attachments TBODY TR TH { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; TEXT-ALIGN: left } TABLE.attachments TBODY TR TD { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; TEXT-ALIGN: left } TABLE.attachments TBODY TR TH { COLOR: #000; TEXT-ALIGN: left } TABLE.attachments TBODY TR.removeCell { BACKGROUND: #ededed; COLOR: #777 } TABLE.attachments TBODY TR.removeCell { BACKGROUND: #ededed; COLOR: #777 } TABLE.attachments TBODY TR.removeCell TD { COLOR: #999 } TABLE.attachments TBODY TR.removeCell TH { COLOR: #999 } TABLE.attachments TBODY TR.removeCell TD A IMG { FILTER: alpha(opacity=3D40); opacity: 0.4 } TABLE.attachments TH.smallCell { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 1%; = PADDING-TOP: 0px; WHITE-SPACE: nowrap } TABLE.attachments TD.smallCell { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 1%; = PADDING-TOP: 0px; WHITE-SPACE: nowrap } TABLE.attachments TBODY TR.inEditMode { BORDER-RIGHT: #444 2px solid; BORDER-TOP: #444 2px solid; BACKGROUND: = #ededed; BORDER-LEFT: #444 2px solid; BORDER-BOTTOM: #444 2px solid; = -moz-border-radius: 0 } TABLE.attachments TBODY TR.inEditMode TD { BORDER-TOP: #444 2px solid; -moz-border-radius: 0 } TABLE.attachments TBODY TR.inEditMode TH { BORDER-TOP: #444 2px solid; -moz-border-radius: 0 } TABLE.stepItems-reorder { FONT-SIZE: 85%; MARGIN-BOTTOM: 0px; ZOOM: 1; BORDER-COLLAPSE: collapse; = border-spacing: 1px 0; border-separate: 1px 0 } TABLE.gbColumns { FONT-SIZE: 90%; ZOOM: 1 } TABLE.stepItems-reorder TD { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px } TABLE.stepItems-reorder TH { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px } TABLE.stepItems-reorder THEAD TR TH { BACKGROUND: #fff; COLOR: #999; BORDER-BOTTOM: #ccc 1px solid; = TEXT-ALIGN: left } TABLE.gbColumns THEAD TR TH { BACKGROUND: #bbb; COLOR: #fff; BORDER-BOTTOM: #999 2px solid } TABLE.gbColumns THEAD TR TD { BACKGROUND: #bbb; COLOR: #fff; BORDER-BOTTOM: #999 2px solid } TABLE.gbColumns THEAD TR TH.sorted { BORDER-RIGHT: #777 1px solid; BACKGROUND: #999; BORDER-LEFT: #777 1px = solid } TABLE.gbColumns THEAD TR TH A { COLOR: #fff } TABLE.gbColumns THEAD TR TD A { COLOR: #fff } TABLE.stepItems-reorder THEAD TR.lowerHeader TH { COLOR: #333; BORDER-BOTTOM: #ccc 2px solid } TABLE.stepItems-reorder TBODY TR TD.shaded { BORDER-TOP: #ccc 1px solid; BACKGROUND: #f6f6f6 } TABLE.stepItems-reorder THEAD TR TH.shaded { BORDER-TOP: #ccc 1px solid; BACKGROUND: #f6f6f6 } TABLE.stepItems-reorder TR TH.clearCell { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; = BORDER-BOTTOM: 0px } TABLE.stepItems-reorder TBODY { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #999 2px solid; ZOOM: 1; HEIGHT: = 1px } TABLE.stepItems-reorder TBODY TR TD { BORDER-TOP: #ccc 1px solid; BACKGROUND: #fff; ZOOM: 1; HEIGHT: 1% } TABLE.stepItems-reorder THEAD TR TH.shaded { BORDER-TOP: 0px } TABLE.stepItems-reorder THEAD TR.upperHeader TH { BORDER-TOP: 0px } TABLE.stepItems-reorder TBODY TR { BACKGROUND: #ccc } TABLE.stepItems-reorder TBODY TR:first-child TD { BORDER-TOP: 0px } TABLE.stepItems-reorder TBODY TR:first-child TH { BORDER-TOP: 0px } TABLE.stepItems-reorder THEAD TR:first-child { BORDER-TOP: 0px } TABLE.stepItems-reorder TBODY TR TD.dragCell { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; VERTICAL-ALIGN: top; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; TEXT-ALIGN: right } TABLE.stepItems-reorder TBODY TR TD SPAN.reorder { BORDER-RIGHT: #ccc 1px solid; DISPLAY: block; RIGHT: 0px; BACKGROUND: = url(images/cm_reorder_updown.gif) #ededed no-repeat center center; = FILTER: alpha(opacity=3D100); LEFT: auto; WIDTH: 18px! important; = CURSOR: move; POSITION: relative; TOP: 2px; HEIGHT: 20px; opacity: 1; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: = 3px } TABLE.gbColumns TBODY TR TD SPAN.reorder { BACKGROUND: url(images/cm_reorder.gif) #ededed no-repeat center center } TABLE.stepItems-reorder TBODY TR.frozenbar TD SPAN.reorder { TOP: 1px } TABLE.stepItems-reorder TBODY TR TD INPUT { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 2px; = VERTICAL-ALIGN: middle; WIDTH: 95%; PADDING-TOP: 2px } TABLE.stepItems-reorder TBODY TR TD.points INPUT { WIDTH: 3em } TABLE.stepItems-reorder TBODY TR TD.entry INPUT[type=3Dtext] { WIDTH: 90% } TABLE.stepItems-reorder TBODY TR TD.entry INPUT[type=3Dcheckbox] { WIDTH: auto } TABLE.stepItems-reorder TBODY TR TD INPUT[type=3Dcheckbox] { MARGIN: 0px 4px 0px 0px } TABLE.gbColumns TBODY TR TD INPUT[type=3Dcheckbox] { MARGIN: 0px; WIDTH: auto } TABLE.gbColumns TBODY TR TD { PADDING-RIGHT: 8px; PADDING-LEFT: 8px; PADDING-BOTTOM: 4px; = VERTICAL-ALIGN: top; PADDING-TOP: 4px } TABLE.gbColumns TBODY TR.frozenbar TD { PADDING-RIGHT: 8px; BORDER-TOP: 0px; PADDING-LEFT: 8px; FONT-SIZE: 95%; = BACKGROUND: #ccc; PADDING-BOTTOM: 4px; COLOR: #444; PADDING-TOP: 3px } TABLE.gbColumns TFOOT TR.lastRow TD { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #999; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = LINE-HEIGHT: 0; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; HEIGHT: 2px } TABLE.gbColumns TBODY TR.frozen TD { BACKGROUND: #ededed } TABLE.gbColumns THEAD TR TD.checkBox { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; PADDING-BOTTOM: 1px; = PADDING-TOP: 3px; TEXT-ALIGN: center } TABLE.gbColumns TBODY TR TD.checkBox { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; PADDING-BOTTOM: 1px; = PADDING-TOP: 3px; TEXT-ALIGN: center } DIV.areaHighlight TABLE.gbColumns THEAD TR TD.clear { BACKGROUND: #f9f9f9 } TD.clear { BACKGROUND: #f9f9f9 } DIV.areaHighlight TABLE.gbColumns TBODY TR.frozenbar TD.dragCell { BACKGROUND: #f9f9f9 } DIV.areaHighlight TABLE.gbColumns TBODY TR TD.dragCell { BACKGROUND: #f9f9f9 } DIV.areaHighlight TABLE.gbColumns TBODY TR.frozen TD.dragCell { BACKGROUND: #f9f9f9 } DIV.areaHighlight TABLE.gbColumns TFOOT TR.lastRow TD.clear { BACKGROUND: #f9f9f9 } TABLE.gbColumns TBODY TR.frozenbar TD.dragCell { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = PADDING-BOTTOM: 0px! important; PADDING-TOP: 0px! important } TABLE.gbColumns TBODY TR.placeholder TD { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; LINE-HEIGHT: 0; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px; HEIGHT: 1px } TABLE.gbColumns TBODY TR.placeholder TD.clear { BACKGROUND: #f9f9f9 } TABLE.gbColumns TBODY TR TD.dragCell { OVERFLOW: visible; WIDTH: 4%; POSITION: relative } TABLE.gbColumns THEAD TR TD.clear { OVERFLOW: visible; WIDTH: 4%; POSITION: relative } UL.dragableHighlight LI TABLE.gbColumns THEAD TR TD.clear { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } UL.dragableHighlight LI TD.clear { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } UL.dragableHighlight LI TABLE.gbColumns TBODY TR.frozenbar TD.dragCell { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } UL.dragableHighlight LI TABLE.gbColumns TBODY TR TD.dragCell { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } UL.dragableHighlight LI TABLE.gbColumns TBODY TR.frozen TD.dragCell { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } UL.dragableHighlight LI TABLE.gbColumns TFOOT TR.lastRow TD.clear { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } TABLE.gbColumns THEAD TR TD.clear { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } TR.rowdrag { Z-INDEX: 1; BACKGROUND: #ccc } .insertImg { Z-INDEX: 20; POSITION: relative; TOP: 12px } .insertImgUp { Z-INDEX: 20; RIGHT: -10px; POSITION: absolute } TABLE.inventory TBODY TR TD.smallCell { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; WIDTH: 1%; = PADDING-TOP: 3px; WHITE-SPACE: nowrap } TABLE.inventory THEAD TR TH.smallCell { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; WIDTH: 1%; = PADDING-TOP: 3px; WHITE-SPACE: nowrap } .clickOrder { DISPLAY: none } TABLE.inventory TBODY TR TD.clickOrder { BORDER-LEFT: medium none; BACKGROUND-COLOR: #ddd } TABLE.inventory TR TD.endCell { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = PADDING-BOTTOM: 0px! important; WIDTH: 1px! important; PADDING-TOP: 0px! = important; BACKGROUND-COLOR: #ddd! important } TABLE.inventory TR.orderRow TD.clickOrder { BACKGROUND-COLOR: #ddd; TEXT-ALIGN: center } TABLE.inventory TR.orderRow TD.clickOrder DIV { POSITION: relative } .sortedplus { BACKGROUND-POSITION: 48% 2px; BACKGROUND-IMAGE: = url(images/sort_on.gif); BACKGROUND-REPEAT: no-repeat } .dragCol { BACKGROUND-COLOR: #999 } .dragHover { BACKGROUND-POSITION: right top; BACKGROUND-IMAGE: = url(images/dragarrow.gif); BACKGROUND-REPEAT: no-repeat } .hideoff { LEFT: -1000px; OVERFLOW: hidden; WIDTH: 1px; POSITION: absolute; TOP: = 0px; HEIGHT: 1px } DIV.rumble UL LI.jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #e2eefe; = PADDING-BOTTOM: 1px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #5577bb 1px solid; TEXT-ALIGN: left } DIV.rumble UL LI.jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #e2eefe; = PADDING-BOTTOM: 1px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #5577bb 1px solid; TEXT-ALIGN: left } DIV.rumble_top UL LI.jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #e2eefe; = PADDING-BOTTOM: 1px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #5577bb 1px solid; TEXT-ALIGN: left } DIV.rumble_top UL LI.jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #e2eefe; = PADDING-BOTTOM: 1px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #5577bb 1px solid; TEXT-ALIGN: left } .hideme { DISPLAY: none } LI.jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #5577bb 1px solid; = BORDER-LEFT: #5577bb 1px solid; BORDER-BOTTOM: #5577bb 1px solid } .jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 18px! important; = BORDER-TOP: #acc2df 1px solid; PADDING-LEFT: 6px! important; BACKGROUND: = #e2eefe; PADDING-BOTTOM: 2px! important; BORDER-LEFT: #acc2df 1px solid; = PADDING-TOP: 2px! important; BORDER-BOTTOM: #5577bb 1px solid; POSITION: = relative; TEXT-ALIGN: left } DIV.jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 18px! important; = BORDER-TOP: #acc2df 1px solid; PADDING-LEFT: 6px! important; BACKGROUND: = #e2eefe; PADDING-BOTTOM: 2px! important; BORDER-LEFT: #acc2df 1px solid; = PADDING-TOP: 2px! important; BORDER-BOTTOM: #5577bb 1px solid; POSITION: = relative; TEXT-ALIGN: left } DIV.jumptopage { FLOAT: right } .hideme { DISPLAY: none } LI.jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #5577bb 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #5577bb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid } .jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #5577bb 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #5577bb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid } DIV.jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #5577bb 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #5577bb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid } DIV.jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #5577bb 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #5577bb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid } .jumptopage INPUT.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #566e94 1px solid; PADDING-LEFT: 1px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; BACKGROUND: url(images/action_button_back.gif) #888 repeat-x left = top; PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px = solid; WIDTH: auto; COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: = #344a6c 1px solid; TEXT-DECORATION: none } DIV.jumptopage INPUT.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #566e94 1px solid; PADDING-LEFT: 1px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; BACKGROUND: url(images/action_button_back.gif) #888 repeat-x left = top; PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px = solid; WIDTH: auto; COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: = #344a6c 1px solid; TEXT-DECORATION: none } DIV.jumptopage BUTTON { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; RIGHT: 0px! important; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: medium none; = PADDING-TOP: 0px; BORDER-BOTTOM: medium none; POSITION: absolute; TOP: = -2px } .jumptopage BUTTON { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; RIGHT: 0px! important; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: medium none; = PADDING-TOP: 0px; BORDER-BOTTOM: medium none; POSITION: absolute; TOP: = -2px } LI.inventory_paging BUTTON { RIGHT: -2px! important } DIV.jumptopage INPUT#currentpage_bot { WIDTH: auto } DIV.jumptopage INPUT#currentpage_top { WIDTH: auto } INPUT#currentpage_bot { WIDTH: auto } INPUT#currentpage_top { WIDTH: auto } .paging { CLEAR: left; FONT-SIZE: 95%; FLOAT: right; TEXT-ALIGN: right } .paging SPAN { BORDER-RIGHT: #ccc 1px dotted; PADDING-RIGHT: 6px; PADDING-LEFT: 0px; = PADDING-BOTTOM: 1px; MARGIN: 0px 9px 0px 0px; PADDING-TOP: 1px } .paging INPUT { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; FONT-WEIGHT: = bold; FONT-SIZE: 100%; BORDER-LEFT: #ccc 1px solid; WIDTH: 2em; = BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: center } .paging A { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline-block; PADDING-LEFT: 4px; BACKGROUND: = url(images/button3_back.gif) #ededed; PADDING-BOTTOM: 1px; BORDER-LEFT: = #ccc 1px solid; COLOR: #444; PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px = solid; TEXT-DECORATION: none } .paging A:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fafafa; BORDER-LEFT: #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid; = TEXT-DECORATION: none } .paging A.inactive { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; BACKGROUND: = #ededed; BORDER-LEFT: #ddd 1px solid; COLOR: #bbb; BORDER-BOTTOM: #ddd = 1px solid; TEXT-DECORATION: none } .paging A.inactive:hover { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; BACKGROUND: = #ededed; BORDER-LEFT: #ddd 1px solid; COLOR: #bbb; BORDER-BOTTOM: #ddd = 1px solid; TEXT-DECORATION: none } .pagingprefs { PADDING-RIGHT: 0px; MARGIN-TOP: 3px; PADDING-LEFT: 0px; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; COLOR: #999; PADDING-TOP: 3px; TEXT-ALIGN: = right } .pagingprefs A.microedit { BORDER-RIGHT: 0px; PADDING-RIGHT: 4px; BORDER-TOP: 0px; PADDING-LEFT: = 4px; BACKGROUND: #fff7de; PADDING-BOTTOM: 1px; BORDER-LEFT: 0px; COLOR: = #999; PADDING-TOP: 1px; BORDER-BOTTOM: 0px } .pagingprefs A.microedit:hover { COLOR: #666; TEXT-DECORATION: underline } .pagingform { PADDING-RIGHT: 28px; PADDING-LEFT: 12px; BACKGROUND: #fff7de; = PADDING-BOTTOM: 4px; COLOR: #666; LINE-HEIGHT: 160%; PADDING-TOP: 4px; = POSITION: relative; TEXT-ALIGN: left } .pagingform A.close { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; RIGHT: 4px; BACKGROUND: none transparent scroll repeat 0% 0%; = PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: = 0px; POSITION: absolute; TOP: 4px } .pagingform DIV { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 0px; = PADDING-TOP: 3px } .pagingprefs SPAN#backandforth A { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold! important; = FONT-SIZE: 110%; PADDING-BOTTOM: 2px; LINE-HEIGHT: 90%; PADDING-TOP: 0px } DIV.rumble UL LI.jumptopage A.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 5px; = BACKGROUND-POSITION: left top; BORDER-TOP: #566e94 1px solid; = PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 100%; = BACKGROUND-IMAGE: url(images/gradient_black_short_bt.png); = PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px solid; = COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: #344a6c 1px solid; = BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: #819ac0 } DIV.rumble_top UL LI.jumptopage A.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 5px; = BACKGROUND-POSITION: left top; BORDER-TOP: #566e94 1px solid; = PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 100%; = BACKGROUND-IMAGE: url(images/gradient_black_short_bt.png); = PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px solid; = COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: #344a6c 1px solid; = BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: #819ac0 } .paging A.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 5px; = BACKGROUND-POSITION: left top; BORDER-TOP: #566e94 1px solid; = PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 100%; = BACKGROUND-IMAGE: url(images/gradient_black_short_bt.png); = PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px solid; = COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: #344a6c 1px solid; = BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: #819ac0 } DIV.rumble UL LI.jumptopage A.gotopage:hover { BORDER-LEFT-COLOR: #566e94; BACKGROUND: #566e94; BORDER-BOTTOM-COLOR: = #566e94; BORDER-TOP-COLOR: #566e94; BORDER-RIGHT-COLOR: #566e94 } DIV.rumble_top UL LI.jumptopage A.gotopage:hover { BORDER-LEFT-COLOR: #566e94; BACKGROUND: #566e94; BORDER-BOTTOM-COLOR: = #566e94; BORDER-TOP-COLOR: #566e94; BORDER-RIGHT-COLOR: #566e94 } .paging A.gotopage:hover { BORDER-LEFT-COLOR: #566e94; BACKGROUND: #566e94; BORDER-BOTTOM-COLOR: = #566e94; BORDER-TOP-COLOR: #566e94; BORDER-RIGHT-COLOR: #566e94 } TABLE.splashTable { MARGIN: 3px 0px 12px; WIDTH: 100%; BORDER-BOTTOM: #ccc 2px solid; = BORDER-COLLAPSE: collapse } TABLE.splashTable THEAD TR { COLOR: #999 } TABLE.splashTable THEAD TR TH { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 85%; = PADDING-BOTTOM: 6px; PADDING-TOP: 6px } TABLE.splashTable THEAD TR TH A { BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #666; = TEXT-DECORATION: none } TABLE.splashTable THEAD TR TH A:hover { BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #333; = TEXT-DECORATION: underline } TABLE.splashTable TBODY TR { BORDER-TOP: #ddd 1px solid } TABLE.splashTable TBODY TR TH { PADDING-RIGHT: 9px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 9px; = FONT-SIZE: 85%; PADDING-BOTTOM: 2px; COLOR: #777; PADDING-TOP: 2px } TABLE.splashTable TBODY TR TD { PADDING-RIGHT: 9px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 9px; = FONT-SIZE: 85%; PADDING-BOTTOM: 2px; COLOR: #777; PADDING-TOP: 2px } TABLE.splashTable TBODY TR TD.controls { TEXT-ALIGN: center } TABLE.splashTable TBODY TR TH { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 2px; COLOR: = #000; PADDING-TOP: 2px; TEXT-ALIGN: left } TABLE.splashTable TH.smallCell { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 1%; = PADDING-TOP: 0px; WHITE-SPACE: nowrap } TABLE.splashTable TD.smallCell { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 1%; = PADDING-TOP: 0px; WHITE-SPACE: nowrap } .contentBlock A { DISPLAY: block; BACKGROUND: url(images/more_options.gif) no-repeat 99% = center; TEXT-DECORATION: none } .contentBlock A.collapse { DISPLAY: block; BACKGROUND: url(images/less_options.gif) no-repeat 99% = center; TEXT-DECORATION: none } .contentBlock A.collapse:hover { TEXT-DECORATION: underline } .contentBlock A.hover { TEXT-DECORATION: underline } DIV#dataCollectionContainer DIV.contentBlock { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 6px; MARGIN: 0pt 0px 0em; BORDER-LEFT: 0px; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px } UNKNOWN { BACKGROUND: red } TABLE.splashTable INPUT { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: = 0px } TABLE.reorderCols { CLEAR: both; FONT-SIZE: 95%; MARGIN: 18px 0pt 9px; WIDTH: 100%; = BORDER-COLLAPSE: collapse } TABLE.reorderCols THEAD TR TH { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 4px; BACKGROUND: #ededed; PADDING-BOTTOM: 0px; = BORDER-LEFT: #ccc 1px solid; CURSOR: move; PADDING-TOP: 0px; = BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: left } TABLE.reorderCols THEAD TR TH.noReorderCol { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: none = transparent scroll repeat 0% 0%; BORDER-LEFT: medium none; CURSOR: = default; BORDER-BOTTOM: #ccc 1px solid } TABLE.reorderCols TBODY TR TD { BORDER-RIGHT: #dddddd 1px solid; PADDING-RIGHT: 4px; PADDING-LEFT: 4px; = PADDING-BOTTOM: 2px; VERTICAL-ALIGN: top; BORDER-LEFT: #dddddd 1px = solid; PADDING-TOP: 2px; BORDER-BOTTOM: #eeeeee 1px solid; TEXT-ALIGN: = left } TABLE.reorderCols TBODY TR TH { BORDER-RIGHT: #dddddd 1px solid; PADDING-RIGHT: 4px; PADDING-LEFT: 4px; = PADDING-BOTTOM: 2px; VERTICAL-ALIGN: top; BORDER-LEFT: #dddddd 1px = solid; PADDING-TOP: 2px; BORDER-BOTTOM: #eeeeee 1px solid; TEXT-ALIGN: = left } TABLE.reorderCols TBODY TR TH { BACKGROUND: #ededed; COLOR: #555555; BORDER-BOTTOM: #cccccc 1px solid } TABLE.reorderCols THEAD TH SPAN.reorderToolTip { BACKGROUND: url(images/cm_reorder_leftright.gif) #dddddd no-repeat 8px = 50% } TABLE.reorderCols THEAD TH SPAN.firstItem { BACKGROUND: url(images/cm_reorder_right.gif) #dddddd no-repeat 8px 50% } TABLE.reorderCols THEAD TH SPAN.reorder2:hover { CURSOR: move; BACKGROUND-COLOR: #efefef } TABLE.reorderCols THEAD TR TH.axis { BACKGROUND: #ededed 0% 50%; COLOR: #555555; BORDER-BOTTOM: #cccccc 1px = solid } .ghostTd { BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: #000 1px = solid; PADDING-LEFT: 8px; BACKGROUND: #eee; PADDING-BOTTOM: 2px; FONT: = 10px arial; BORDER-LEFT: #000 1px solid; WIDTH: auto; PADDING-TOP: 2px; = BORDER-BOTTOM: #000 1px solid; POSITION: absolute; HEIGHT: auto } TABLE.reorderCols THEAD TH.dragging { BACKGROUND: #ccc } TABLE.reorderCols THEAD TH.hovering { BACKGROUND: #666666 } TABLE.reorderCols THEAD TH.hovering IMG { DISPLAY: none } TD.removeCell { COLOR: #999; TEXT-DECORATION: line-through } TD.removeCell SPAN A { COLOR: #999; TEXT-DECORATION: line-through } TD.removeCell SPAN A IMG { FILTER: alpha(opacity=3D30); opacity: 0.3 } UL.easylist { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 10px 0px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: = none } UL.contentList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 10px 0px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: = none } UL.easylist { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 3px; PADDING-TOP: 0px; POSITION: relative } UL.contentList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 3px; PADDING-TOP: 0px; POSITION: relative } .contentPageItem { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 3px; PADDING-TOP: 0px; POSITION: relative } .contentListRight { FONT-WEIGHT: normal; RIGHT: 6px; LEFT: auto; POSITION: absolute } .pagedContentListRight { TOP: 4px } UL.noimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 10px 0px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: = none } UL.buildList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 10px 0px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: = none } UL.contentListPlain { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 10px 0px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: = none } UL.announcementList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 10px 0px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: = none } UL.noimg LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px; POSITION: = relative } UL.buildList LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px; POSITION: = relative } UL.contentListPlain LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px; POSITION: = relative } UL.announcementList LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px; POSITION: = relative } UL.noimg LI DIV.item_icon { DISPLAY: none } UL.contentListPlain LI DIV.item_icon { DISPLAY: none } UL.noimg LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.buildList LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.contentListPlain LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.contentList LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.announcementList LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } DIV.staticHeader H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } DIV.staticFooter H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.contentList LI.read H3.item { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: = 0px } UL.buildList LI INPUT { FLOAT: left; MARGIN: 8px 8px 8px 26px } UL.buildList LI INPUT.browse { MARGIN: 0px 0px 6px } UL.buildList LI INPUT.genericButton { MARGIN: 0px 0px 6px } UL.buildList LI INPUT[type=3Dbutton] { MARGIN: 0px 0px 6px } UL.easylist LI H3.item { PADDING-RIGHT: 6px; PADDING-LEFT: 75px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.contentList LI H3.item { PADDING-RIGHT: 6px; PADDING-LEFT: 75px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.easylist LI DIV.item_icon { LEFT: 12px; MARGIN: 0px 8px 0px 18px; POSITION: absolute } UL.contentList LI DIV.item_icon { LEFT: 12px; MARGIN: 0px 8px 0px 18px; POSITION: absolute } UL.easylist LI DIV.item_icon A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } UL.contentList LI DIV.item_icon A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } UL.iconsOnly { MARGIN: 0px auto; WIDTH: 80% } UL.iconsOnly LI DIV.item_icon { DISPLAY: block! important; POSITION: relative! important; TEXT-ALIGN: = center! important } UL.iconsOnly LI.read DIV.item_icon { DISPLAY: block! important; POSITION: relative! important; TEXT-ALIGN: = center! important } UL.iconsOnly LI.read DIV.item_icon { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: = 0px } UL.iconsOnly LI { FLOAT: left! important; WIDTH: 49%; MARGIN-RIGHT: 6px; TEXT-ALIGN: = center } UL.iconsOnly LI:hover DIV.item_icon { BACKGROUND: #ededed } UL.iconsOnly LI:hover H3 { BACKGROUND: #ededed } UL.iconsOnly LI:focus DIV.item_icon { BACKGROUND: #ededed } UL.iconsOnly LI:focus H3 { BACKGROUND: #ededed } UL.iconsOnly LI H3.item { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; PADDING-BOTTOM: 6px; BORDER-LEFT: #ededed 2px solid; PADDING-TOP: = 6px; BORDER-BOTTOM: 0px } UL.iconsOnly LI DIV.item_icon { BORDER-TOP: #ededed 2px solid; MIN-HEIGHT: 50px; LEFT: auto; MARGIN: = 0px 0px 0px 18px; BORDER-LEFT: #ededed 2px solid; TOP: 0px } UL.iconsOnly LI SPAN.reorder { BACKGROUND-POSITION: center 50%; FILTER: alpha(opacity=3D100); LEFT: = -2px; BACKGROUND-IMAGE: url(images/cm_reorder.gif); WIDTH: 20px; CURSOR: = move; BACKGROUND-REPEAT: no-repeat; POSITION: absolute; TOP: 2px; = HEIGHT: 28px; BACKGROUND-COLOR: #ededed; opacity: 1; = -moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px } .details { PADDING-RIGHT: 0px; PADDING-LEFT: 20px; FONT-WEIGHT: normal; = PADDING-BOTTOM: 0px; BORDER-LEFT: #ccc 2px solid; COLOR: #444; = PADDING-TOP: 1px } DIV.details P { PADDING-RIGHT: 6px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 6px; MARGIN: 0px; PADDING-TOP: 3px } .container P { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 95%; = PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-TOP: 6px } .container P.important { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 95%; = PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-TOP: 6px } .container P.centered { TEXT-ALIGN: center } .details P SPAN.note { FONT-WEIGHT: bold } .details P.important { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 9px; PADDING-TOP: 0px } .details P.important SPAN { FONT-WEIGHT: normal; COLOR: #888 } .details P SPAN.note { FONT-WEIGHT: bold } DIV.announcementInfo { PADDING-LEFT: 12px; RIGHT: 0px; BACKGROUND: #fff; BORDER-LEFT: #ccc 1px = dotted; WIDTH: 13em; BOTTOM: 12px; PADDING-TOP: 4px; POSITION: absolute; = TOP: 0px } P.itemDetails { PADDING-LEFT: 12px; RIGHT: 0px; BACKGROUND: #fff; BORDER-LEFT: #ccc 1px = dotted; WIDTH: 13em; BOTTOM: 12px; PADDING-TOP: 4px; POSITION: absolute; = TOP: 0px } DIV.itemDetails { PADDING-LEFT: 12px; RIGHT: 0px; BACKGROUND: #fff; BORDER-LEFT: #ccc 1px = dotted; WIDTH: 13em; BOTTOM: 12px; PADDING-TOP: 4px; POSITION: absolute; = TOP: 0px } P.itemDetails { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px; TOP: 2px } DIV.itemDetails { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px; TOP: 2px } .buildList DIV.announcementInfo { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px; TOP: 2px } DIV.announcementInfo P { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 85%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 2px } DIV.announcementInfo { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 85%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 2px } P.itemDetails P { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 85%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 2px } DIV.itemDetails P { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 85%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 2px } DIV.announcementInfo P { FONT-SIZE: 100% } DIV.announcementInfo P SPAN { COLOR: #999 } DIV.announcementInfo SPAN { COLOR: #999 } P.itemDetails SPAN { COLOR: #999 } DIV.itemDetails SPAN { COLOR: #999 } P.itemDetails { FONT-SIZE: 90% } DIV.itemDetails { FONT-SIZE: 90% } P.itemDetails SPAN { FONT-SIZE: 95% } DIV.itemDetails SPAN { FONT-SIZE: 95% } DIV.announcementInfo P SPAN SPAN { FONT-SIZE: 95%! important } DIV.announcementInfo SPAN SPAN { FONT-SIZE: 95%! important } DIV.noItems { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; FONT-SIZE: 95%; = PADDING-BOTTOM: 6px; COLOR: #555; PADDING-TOP: 6px; TEXT-ALIGN: center } .details P.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; WIDTH: 98%; PADDING-TOP: = 0px } .details UL.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; WIDTH: 98%; PADDING-TOP: = 0px } P.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; WIDTH: 98%; PADDING-TOP: = 0px } UL.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; WIDTH: 98%; PADDING-TOP: = 0px } .details UL.attachments { MARGIN: 3px 0px 9px; LIST-STYLE-TYPE: none } UL.attachments { MARGIN: 3px 0px 9px; LIST-STYLE-TYPE: none } .container UL.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } .details UL.attachments LI { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px 6px 0px = 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px; BORDER-BOTTOM: medium = none } UL.attachments LI { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px 6px 0px = 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px; BORDER-BOTTOM: medium = none } UL.attachments LI.read { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px 6px 0px = 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px; BORDER-BOTTOM: medium = none } .details P.attachments SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } .details UL.attachments LI.label { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } P.attachments SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } UL.attachments LI.label { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } .details UL.attachments LI.read { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } .details P.attachments SPAN { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } .details UL.attachments LI.label SPAN { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } P.attachments SPAN { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } UL.attachments LI.label SPAN { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } .details P.attachments A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } .details UL.attachments LI A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } P.attachments A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } UL.attachments LI A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } UL.attachments LI A.removeTag { PADDING-RIGHT: 9px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } UL.attachments LI.addTag { WHITE-SPACE: nowrap } UL.attachments LI.addTag SPAN { DISPLAY: inline } UL.attachments LI.addTag A.browse { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; = PADDING-BOTTOM: 2px; PADDING-TOP: 0px; WHITE-SPACE: nowrap } UL.attachments LI.addTag SPAN.addTagField { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; BACKGROUND: #eee; FLOAT: none; = PADDING-BOTTOM: 6px; WIDTH: auto; PADDING-TOP: 6px } UL.attachments LI.addTag SPAN.addTagField INPUT { FLOAT: none; MARGIN: 0px; VERTICAL-ALIGN: middle } .details P.attachments A { PADDING-LEFT: 3px; TEXT-DECORATION: none } .details UL.attachments LI A SPAN { PADDING-LEFT: 3px; TEXT-DECORATION: none } P.attachments A { PADDING-LEFT: 3px; TEXT-DECORATION: none } UL.attachments LI A SPAN { PADDING-LEFT: 3px; TEXT-DECORATION: none } UL.noimg LI DIV.details { MARGIN-LEFT: 18px } UL.buildList LI DIV.details { MARGIN-LEFT: 18px } UL.contentListPlain LI DIV.details { MARGIN-LEFT: 18px } DIV.staticHeader DIV.details { MARGIN-LEFT: 18px } DIV.staticFooter DIV.details { MARGIN-LEFT: 18px } UL.announcementList LI DIV.details { PADDING-RIGHT: 0px; OVERFLOW-Y: visible; PADDING-LEFT: 20px; = OVERFLOW-X: auto; PADDING-BOTTOM: 0px; MARGIN: 0px 13em 0px 18px; = OVERFLOW: scroll; WIDTH: 70%; PADDING-TOP: 0px; HEIGHT: 1% } UL#announcementList LI DIV.details { PADDING-RIGHT: 0px; OVERFLOW-Y: visible; PADDING-LEFT: 20px; = OVERFLOW-X: auto; PADDING-BOTTOM: 0px; MARGIN: 0px 13em 0px 18px; = OVERFLOW: scroll; WIDTH: 70%; PADDING-TOP: 0px; HEIGHT: 1% } UL.announcementList-read LI DIV.details { MARGIN-LEFT: 0px! important } DIV.staticFooter DIV.details { MARGIN-LEFT: 18px } DIV.staticHeader { MARGIN: 10px 0px 0px } DIV.staticFooter DIV.details { PADDING-BOTTOM: 12px; BORDER-BOTTOM: #ddd 1px solid } .gbColumns_rumble { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN-LEFT: = 60px! important; BORDER-LEFT: #ddd 1px solid; BORDER-BOTTOM: 0px } .gbColumns_rumble_bottom { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN-LEFT: = 60px! important; BORDER-LEFT: #ddd 1px solid; BORDER-BOTTOM: 0px } .gbColumns_rumble_bottom { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: 0px; BORDER-LEFT: #ddd 1px = solid; BORDER-BOTTOM: #ddd 1px solid } .staticHeader { CLEAR: both; ZOOM: 1; POSITION: relative } .staticFooter { CLEAR: both; ZOOM: 1; POSITION: relative } .staticHeader DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } .staticFooter DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } UL.gbCategories LI DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } .staticHeader DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } .staticFooter DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } UL.gbCategories LI DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } .staticHeader DIV.itemHeaderControl A { DISPLAY: inline-block } .staticFooter DIV.itemHeaderControl A { DISPLAY: inline-block } UL.gbCategories LI DIV.itemHeaderControl A { DISPLAY: inline-block } HTML *.staticHeader DIV.itemHeaderControl { TOP: 5px } HTML *.staticFooter DIV.itemHeaderControl { TOP: 5px } HTML * UL.gbCategories LI DIV.itemHeaderControl { TOP: 5px } UL.dragableHighlight { PADDING-RIGHT: 12px; BORDER-TOP: #999 1px dashed; PADDING-LEFT: 12px; = BACKGROUND: #fff; PADDING-BOTTOM: 3px; MARGIN: 12px -12px; PADDING-TOP: = 12px; BORDER-BOTTOM: #999 1px dashed } UL.gbCategories LI H3.item { PADDING-LEFT: 9px } DIV.staticHeader H3.item { PADDING-LEFT: 9px } DIV.staticFooter H3.item { PADDING-LEFT: 9px } UL.gbCategories LI H3.item A.toggleLink { MARGIN-TOP: -2px; MARGIN-RIGHT: 6px } DIV.staticHeader H3.item A.toggleLink { MARGIN-TOP: -2px; MARGIN-RIGHT: 6px } DIV.staticFooter H3.item A.toggleLink { MARGIN-TOP: -2px; MARGIN-RIGHT: 6px } DIV.areaHighlight DIV.container { BACKGROUND: #f9f9f9 } DIV.areaHighlight DIV.bottomRound B { BACKGROUND: #f9f9f9 } UL.dragableHighlight LI H3.item { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .dragableHighlight DIV.details { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .caretTitleModifier { PADDING-RIGHT: 0px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; FONT-SIZE: = 90%; PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 1px } DIV.landingPageColumn UL LI H3.hiddenLink .linkStatus { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 85%; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: = 0.4em } .caretTitleModifier A.browse { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 92%; PADDING-BOTTOM: = 1px; COLOR: #444; PADDING-TOP: 0px; WHITE-SPACE: nowrap } DIV.landingPageColumn UL LI H3.hiddenLink A.browse { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 92%; PADDING-BOTTOM: = 1px; COLOR: #444; PADDING-TOP: 0px; WHITE-SPACE: nowrap } .caretTitleModifier A.browse:hover { TEXT-DECORATION: none } DIV.landingPageColumn UL LI H3.hiddenLink A.browse:hover { TEXT-DECORATION: none } .caretTitleModifier A.browse:focus { TEXT-DECORATION: none } DIV.landingPageColumn UL LI H3.hiddenLink A.browse:focus { TEXT-DECORATION: none } UL.easylist LI.read { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 9px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px } UL.noimg LI.read { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 9px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px } UL.buildList LI.read { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 9px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px } UL.contentList LI.read { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 9px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px } UL.contentListPlain LI.read { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 9px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px } DIV.read { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 9px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px } UL.noimg LI.read H3.item { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.noimg LI.read H3 { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.buildList LI.read H3 { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.contentListPlain LI.read H3.item { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.contentListPlain LI.read H3 { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.announcementList LI.read H3 { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.announcementList-read LI H3.item { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.announcementList LI.read H3 { PADDING-RIGHT: 13em; PADDING-LEFT: 18px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; WORD-BREAK: normal; PADDING-TOP: 6px; WORD-WRAP: = break-word } UL.announcementList LI H3.item { PADDING-RIGHT: 13em; PADDING-LEFT: 18px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; WORD-BREAK: normal; PADDING-TOP: 6px; WORD-WRAP: = break-word } UL.announcementList-read LI H3.item { PADDING-RIGHT: 13em; PADDING-LEFT: 18px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; WORD-BREAK: normal; PADDING-TOP: 6px; WORD-WRAP: = break-word } UL#announcementList LI H3.item { PADDING-RIGHT: 13em; PADDING-LEFT: 18px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; WORD-BREAK: normal; PADDING-TOP: 6px; WORD-WRAP: = break-word } UL.easylist LI.read H3.item { PADDING-RIGHT: 6px; PADDING-LEFT: 58px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.easylist LI.read H3 { PADDING-RIGHT: 6px; PADDING-LEFT: 58px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.contentList LI.read H3.item { PADDING-RIGHT: 6px; PADDING-LEFT: 58px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.contentList LI.read H3 { PADDING-RIGHT: 6px; PADDING-LEFT: 58px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.easylist LI.read DIV.item_icon { LEFT: 0px; MARGIN: 0px 8px 0px 12px; POSITION: absolute; TOP: 0px } UL.contentList LI.read DIV.item_icon { LEFT: 0px; MARGIN: 0px 8px 0px 12px; POSITION: absolute; TOP: 0px } UL.noimg LI.read DIV.details { BORDER-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; MARGIN-LEFT: = 6px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } UL.buildList LI.read DIV.details { BORDER-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; MARGIN-LEFT: = 6px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } UL.contentListPlain LI.read DIV.details { BORDER-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; MARGIN-LEFT: = 6px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } UL.announcementList LI.read DIV.details { BORDER-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; MARGIN-LEFT: = 6px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } UL.announcementList-read LI DIV.details { BORDER-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; MARGIN-LEFT: = 6px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } UL.easylist LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.noimg LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.buildList LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentList LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentListPlain LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.announcementList LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.announcementList-read LI H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.buildList LI.read H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentList LI.read H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentListPlain LI.read H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.announcementList LI.read H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.announcementList-read LI H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentList LI.read DIV.details { BORDER-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; MARGIN-LEFT: = 75px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } UL.contentList LI DIV.details { PADDING-LEFT: 72px; OVERFLOW-X: auto; MARGIN-LEFT: 18px; WORD-BREAK: = normal; WORD-WRAP: break-word } UL.staffInfoList LI DIV.details { MARGIN-RIGHT: 160px } UL.staffInfoList LI.hasPhoto DIV.details { MIN-HEIGHT: 135px; HEIGHT: 135px } UL.subList { PADDING-RIGHT: 0px; BORDER-TOP: #cccccc 1px dotted; PADDING-LEFT: 6px; = BACKGROUND: #fff; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 6px 12px; = BORDER-LEFT: #cccccc 1px dotted; PADDING-TOP: 4px; LIST-STYLE-TYPE: none } UL.subList-reorder { PADDING-RIGHT: 0px; BORDER-TOP: #cccccc 1px dotted; PADDING-LEFT: 6px; = BACKGROUND: #fff; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 6px 12px; = BORDER-LEFT: #cccccc 1px dotted; PADDING-TOP: 4px; LIST-STYLE-TYPE: none } UL.subList-reorder { =09 } UL.subList LI { BORDER-RIGHT: medium none; PADDING-RIGHT: 3px; BORDER-TOP: medium none; = PADDING-LEFT: 23px; PADDING-BOTTOM: 3px; MARGIN: 0px; BORDER-LEFT: = medium none; PADDING-TOP: 3px; BORDER-BOTTOM: medium none } UL.buildList UL.detailList { PADDING-RIGHT: 3px; PADDING-LEFT: 23px; PADDING-BOTTOM: 3px; MARGIN: = 0px; PADDING-TOP: 3px } UL.subList-reorder LI { PADDING-RIGHT: 3px; PADDING-LEFT: 23px; PADDING-BOTTOM: 3px; MARGIN: = 0px; PADDING-TOP: 3px } UL.subList-reorder LI { CURSOR: move } UL.subList LI A IMG { VERTICAL-ALIGN: middle } UL.subList-reorder LI A IMG { VERTICAL-ALIGN: middle } UL.subList LI P { PADDING-RIGHT: 0px; DISPLAY: none; PADDING-LEFT: 0px; FONT-SIZE: 90%; = PADDING-BOTTOM: 0px; MARGIN: 3px 6px 3px 24px; COLOR: #444; PADDING-TOP: = 0px } UL.subList-reorder LI P { PADDING-RIGHT: 0px; DISPLAY: none; PADDING-LEFT: 0px; FONT-SIZE: 90%; = PADDING-BOTTOM: 0px; MARGIN: 3px 6px 3px 24px; COLOR: #444; PADDING-TOP: = 0px } UL.subList LI P SPAN { DISPLAY: inline; FONT-WEIGHT: bold; FLOAT: none } UL.buildList UL.detailList LI UL.subList LI P SPAN { DISPLAY: inline; FONT-WEIGHT: bold; FLOAT: none } UL.subList-reorder LI P SPAN { DISPLAY: inline; FONT-WEIGHT: bold; FLOAT: none } UL.buildList UL.subList-reorder LI SPAN.reorder { BORDER-RIGHT: #ccc 1px solid; BACKGROUND: = url(images/cm_reorder_updown.gif) #ededed no-repeat center center; = FILTER: alpha(opacity=3D100); LEFT: 0px; WIDTH: 16px! important; CURSOR: = move; POSITION: absolute; TOP: 3px; HEIGHT: 18px; opacity: 1; = -moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px } UL.subList-reorder LI:hover SPAN.reorder { opacity: 1 } UL.subList-reorder LI:focus SPAN.reorder { opacity: 1 } UL.subList LI P { PADDING-RIGHT: 0px; DISPLAY: none; PADDING-LEFT: 0px; FONT-SIZE: 90%; = VISIBILITY: hidden; PADDING-BOTTOM: 0px; MARGIN: 3px 6px 3px 24px; = COLOR: #444; PADDING-TOP: 0px } UL.subList-reorder P.itemDetails { DISPLAY: none } UL.subList-reorder LI DIV.itemDetails { DISPLAY: none } UL.subList-reorder DIV.details { DISPLAY: none } UL.subList DIV.details { DISPLAY: none } P.itemDetails + DIV.details { OVERFLOW: visible; MARGIN-RIGHT: 12.5em } DIV.itemDetails + DIV.details { OVERFLOW: visible; MARGIN-RIGHT: 12.5em } UL.subList LI P SPAN { FONT-WEIGHT: bold } UL.subListArtifact { CLEAR: both } UL.detailList UL.subListArtifact { CLEAR: both } UL.subListArtifact LI { POSITION: static } UL.detailList UL.subListArtifact LI { POSITION: static } UL.detailList UL.subListArtifact { ZOOM: 1 } UL.detailList UL.subListArtifact LI { ZOOM: 1 } UL.detailList UL.subListArtifact LI A { ZOOM: 1 } UL.buildList UL.detailList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 0.6em 0.7em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.buildList UL.detailList UL.subList { MARGIN: 0px 0px 6px } UL.buildList UL.detailList OL.subList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; LIST-STYLE-POSITION: inside; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: = decimal } UL.buildList UL.detailList LI { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; PADDING-BOTTOM: 0.2em; MARGIN: 0px 0px 0.2em; = BORDER-LEFT: medium none; PADDING-TOP: 0px; BORDER-BOTTOM: medium none } UL.buildList UL.detailList LI SPAN { DISPLAY: block; FONT-WEIGHT: bold; FLOAT: left; WIDTH: 20% } UL.buildList UL LI DIV { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0.3em; FLOAT: left; = PADDING-BOTTOM: 0px; WIDTH: 79%; PADDING-TOP: 0px } UL.buildList UL LI DIV.contextMenuContainer { DISPLAY: inline; FLOAT: none; WIDTH: auto } UL.noimg LI DIV.contextMenuContainer { DISPLAY: inline; FLOAT: none; WIDTH: auto } UL.buildList LI.pageBreak H3.item { BORDER-TOP: #ccc 2px dotted; BACKGROUND-IMAGE: = url(images/readback.png); COLOR: #777 } UL.buildList LI.sectionBreak H3.item { BORDER-TOP: #ccc 2px dotted; BACKGROUND-IMAGE: = url(images/readback.png); COLOR: #777 } DIV.itemHeaderControl { RIGHT: 12.7em; POSITION: absolute; TOP: 9px } DIV.itemHeaderControl A { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline-block; PADDING-LEFT: 3px; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x; PADDING-BOTTOM: 2px; = BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #aaa 1px = solid } DIV.itemHeaderControl A:hover { =09 } DIV.itemHeaderControl A IMG { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } H3 SPAN.reorder { BACKGROUND: url(images/cm_reorder_updown.gif) #ededed no-repeat center = center; FILTER: alpha(opacity=3D100); LEFT: -2px; WIDTH: 20px; POSITION: = absolute; TOP: 2px; HEIGHT: 28px; opacity: 1; = -moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px } UL.iconsOnly LI H3.item SPAN.reorder { BACKGROUND-POSITION: center center; BACKGROUND-IMAGE: = url(images/cm_reorder.gif); BACKGROUND-REPEAT: no-repeat; TOP: 8px } UL.easylist LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.easylist LI H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.noimg LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.noimg LI H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.buildList LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentList LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } .contentPageItem H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } .contentPageItem H3.item A.cmimg:hover { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.iconsOnly LI:hover H3.item SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.announcementList LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.buildList LI H3.item:focus SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentList LI H3.item:focus SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:focus A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:focus SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:focus A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } .contentPageItem H3.item:focus A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } .contentPageItem H3.item A.cmimg:focus { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.iconsOnly LI:focus H3.item SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.announcementList LI H3.item:focus SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.easylist LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.noimg LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.buildList LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.contentList LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.contentListPlain LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.announcementList LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.buildList LI H3.item:focus { BACKGROUND: #efefef; CURSOR: move } UL.contentList LI H3.item:focus { BACKGROUND: #efefef; CURSOR: move } UL.contentListPlain LI H3.item:focus { BACKGROUND: #efefef; CURSOR: move } UL.announcementList LI H3.item:focus { BACKGROUND: #efefef; CURSOR: move } DIV.multiAssign { MARGIN: 3px 0px 9px } DIV.multiAssign UL { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: none } DIV.multiAssign UL LI { CLEAR: none; BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; = PADDING-LEFT: 6px; FONT-SIZE: 90%; BACKGROUND: #f6f6f6; FLOAT: left; = PADDING-BOTTOM: 6px; MARGIN: 0px 9px 0px 0px; BORDER-LEFT: 0px; WIDTH: = 13em; LINE-HEIGHT: 1.3em; PADDING-TOP: 1px; BORDER-BOTTOM: 0px; = TEXT-ALIGN: center; -moz-border-radius: 3px } DIV.multiAssign UL LI.read { CLEAR: none; BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; = PADDING-LEFT: 6px; FONT-SIZE: 90%; BACKGROUND: #f6f6f6; FLOAT: left; = PADDING-BOTTOM: 6px; MARGIN: 0px 9px 0px 0px; BORDER-LEFT: 0px; WIDTH: = 13em; LINE-HEIGHT: 1.3em; PADDING-TOP: 1px; BORDER-BOTTOM: 0px; = TEXT-ALIGN: center; -moz-border-radius: 3px } DIV.multiAssign UL LI A { FONT-WEIGHT: bold; FONT-SIZE: 100% } DIV.multiAssign UL LI A { FONT-WEIGHT: bold; FONT-SIZE: 100% } DIV.multiAssign UL LI P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 1px } DIV.multiAssign UL LI.label { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; FONT-WEIGHT: normal; FONT-SIZE: 95%; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; WIDTH: 12em; = COLOR: #888; LINE-HEIGHT: 1.1em; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; = WHITE-SPACE: normal; TEXT-ALIGN: left } DIV.multiAssign UL LI P SPAN { COLOR: #888 } DIV.multiAssign A.buttonMicro { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 5px; FONT-SIZE: 90%; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x 0% 50%; PADDING-BOTTOM: = 0px; MARGIN: 1px auto 12px; BORDER-LEFT: #ccc 1px solid; COLOR: #666; = PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px solid; WHITE-SPACE: nowrap; = TEXT-DECORATION: none } H3 A.buttonMicro { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 5px; FONT-SIZE: 90%; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x 0% 50%; PADDING-BOTTOM: = 0px; MARGIN: 1px auto 12px; BORDER-LEFT: #ccc 1px solid; COLOR: #666; = PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px solid; WHITE-SPACE: nowrap; = TEXT-DECORATION: none } DIV.multiAssign A.buttonMicro:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } H3 A.buttonMicro:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } DIV.multiAssign A.buttonMicro:focus { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } H3 A.buttonMicro:focus { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } DIV.multiAssign A.simpleLink { DISPLAY: block; FONT-WEIGHT: normal; COLOR: #666 } H3 SPAN.status A.buttonMicro { FONT-WEIGHT: normal; FONT-SIZE: 90%; MARGIN-LEFT: 6px } H3 SPAN.status { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: = 80%; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 3px; MARGIN-LEFT: 6px; = PADDING-TOP: 3px } H3 DIV.status { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: = 80%; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 3px; MARGIN-LEFT: 6px; = PADDING-TOP: 3px } H3 SPAN.status SPAN { COLOR: #888 } H3 DIV.status SPAN { COLOR: #888 } H3 DIV.status { DISPLAY: inline } .contentBlock { BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 1.4em; BORDER-TOP: #ddd = 1px solid; PADDING-LEFT: 1.4em; PADDING-BOTTOM: 1em; MARGIN: 0px 1em = 0.6em; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 0.6em; BORDER-BOTTOM: = #ddd 1px solid } .contentBlock H3 { PADDING-RIGHT: 0.4em; PADDING-LEFT: 0.4em; FONT-SIZE: 110%; = PADDING-BOTTOM: 0.4em; MARGIN: 0px 0px 1em; PADDING-TOP: 0.4em; = BORDER-BOTTOM: #ddd 1px solid } .contentBlock UL { PADDING-RIGHT: 0px; PADDING-LEFT: 1.2em; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .contentBlock UL.threeCol { FLOAT: left; WIDTH: 30% } .contentBlock UL.threeCol LI { PADDING-RIGHT: 0px; PADDING-LEFT: 22px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; BACKGROUND: url(images/list_bullet.gif) no-repeat 9px 4px; FLOAT: = none; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-TOP: 0px } .contentBlock UL.threeCol LI A { BACKGROUND-IMAGE: none } .contentBlock UL.threeCol LI A:hover { TEXT-DECORATION: underline } .contentBlock UL.threeCol LI A:focus { TEXT-DECORATION: underline } .contentBlock H3 INPUT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: normal; FONT-SIZE: 90%; = PADDING-BOTTOM: 1px; MARGIN-LEFT: 6px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #999 1px = solid } .contentBlock H3 SELECT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: normal; FONT-SIZE: 90%; = PADDING-BOTTOM: 1px; MARGIN-LEFT: 6px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #999 1px = solid } .contentBlock INPUT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: normal; FONT-SIZE: 90%; = PADDING-BOTTOM: 1px; MARGIN-LEFT: 6px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #999 1px = solid } .contentBlock SELECT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: normal; FONT-SIZE: 90%; = PADDING-BOTTOM: 1px; MARGIN-LEFT: 6px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #999 1px = solid } .contentBlock OL LI INPUT[type=3D'checkbox'] { VERTICAL-ALIGN: middle; MARGIN-RIGHT: 6px } .contentBlock H3 A.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = FONT-SIZE: 90%; BACKGROUND: url(images/button3_back.gif) #ededed = repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: = 1px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } .contentBlock A.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = FONT-SIZE: 90%; BACKGROUND: url(images/button3_back.gif) #ededed = repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: = 1px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } .contentBlock INPUT.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = FONT-SIZE: 90%; BACKGROUND: url(images/button3_back.gif) #ededed = repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: = 1px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } DIV.landingListWrapper { MARGIN: 1.6em 0px 0px; TEXT-ALIGN: center } DIV.landingListWrapper UL.landingList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = auto; WIDTH: 90%; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.landingListWrapper UL.landingList-2cols { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = auto; WIDTH: 90%; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.landingListWrapper UL.landingList LI { MARGIN: 0px 0px 1.6em 0em; WIDTH: 50%; TEXT-ALIGN: left } DIV.landingListWrapper UL.landingList-2cols LI { FLOAT: left; MARGIN: 0px 3em 1.6em 0em; WIDTH: 45%; TEXT-ALIGN: left } DIV.landingListWrapper UL.landingList LI.restart { MARGIN-TOP: -13.6em } DIV.landingListWrapper UL.landingList LI A { TEXT-DECORATION: none } DIV.landingListWrapper UL.landingList-2cols LI A { TEXT-DECORATION: none } DIV.landingListWrapper UL.landingList LI A:hover { TEXT-DECORATION: underline } DIV.landingListWrapper UL.landingList-2cols LI A:hover { TEXT-DECORATION: underline } DIV.landingListWrapper UL.landingList LI A:focus { TEXT-DECORATION: underline } DIV.landingListWrapper UL.landingList-2cols LI A:focus { TEXT-DECORATION: underline } DIV.landingListWrapper UL.landingList LI P { PADDING-RIGHT: 0.6em; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 1.4em; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingListWrapper UL.landingList-2cols LI P { PADDING-RIGHT: 0.6em; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 1.4em; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingListWrapper UL.landingList LI UL { MARGIN: 0em 0.4em 0.4em 0.8em; LIST-STYLE-TYPE: square } DIV.landingListWrapper UL.landingList LI UL LI { CLEAR: left; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.landingListWrapper UL.landingList-2cols LI UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: = 0px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.landingListWrapper UL.landingList LI H3 { PADDING-RIGHT: 1.2em; PADDING-LEFT: 1.2em; FONT-SIZE: 110%; BACKGROUND: = url(images/list_bullet.gif) no-repeat 0.1em 0.7em; PADDING-BOTTOM: = 0.4em; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingListWrapper UL.landingList-2cols H3 { PADDING-RIGHT: 1.2em; PADDING-LEFT: 1.2em; FONT-SIZE: 110%; BACKGROUND: = url(images/list_bullet.gif) no-repeat 0.1em 0.7em; PADDING-BOTTOM: = 0.4em; MARGIN: 0px; PADDING-TOP: 0.4em } .containerLanding { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 400px; BACKGROUND: = #ededed; PADDING-BOTTOM: 12px; MARGIN: 0px; PADDING-TOP: 10px } DIV.landing DIV.container { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 400px; BACKGROUND: = #ededed; PADDING-BOTTOM: 12px; MARGIN: 0px; PADDING-TOP: 10px } BODY.landingBody DIV.container { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 400px; BACKGROUND: = #ededed; PADDING-BOTTOM: 12px; MARGIN: 0px; PADDING-TOP: 10px } DIV.landingPageColumn { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 1.2em 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.landingPageColumn { FLOAT: left } DIV.oneCol { =09 } DIV.twoCol { MARGIN: 1.2em 0px; WIDTH: 49% } DIV.threeCol { MARGIN: 1.2em 0px; WIDTH: 32.5% } DIV.landingPageColumn UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 0px 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.landingPageColumn UL.outcomesLanding { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0.4em; = PADDING-TOP: 0px } DIV.landingPageColumn UL LI { MARGIN: 0px 0px 1.6em 0em; TEXT-ALIGN: left } DIV.landingPageColumn UL.outcomesLanding LI { MARGIN: 0px 0px 1.2em 0em } DIV.landingPageColumn UL LI A { TEXT-DECORATION: none } DIV.landingPageColumn UL LI A:hover { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI H3 { PADDING-RIGHT: 1.2em; PADDING-LEFT: 1.2em; FONT-SIZE: 110%; BACKGROUND: = url(images/list_bullet.gif) no-repeat 0.1em 0.7em; PADDING-BOTTOM: = 0.4em; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingPageColumn UL.outcomesLanding LI A { PADDING-RIGHT: 1.2em; PADDING-LEFT: 1.2em; FONT-SIZE: 110%; BACKGROUND: = url(images/list_bullet.gif) no-repeat 0.1em 0.7em; PADDING-BOTTOM: = 0.4em; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingPageColumn UL.outcomesLanding LI H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 115%; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0.4em; PADDING-TOP: 0.4em; = BORDER-BOTTOM: #ddd 1px solid } DIV.landingPageColumn UL.outcomesLanding LI A { FONT-WEIGHT: bold; FONT-SIZE: 100% } DIV.landingPageColumn UL.outcomesLanding LI P { BORDER-TOP: 0px } DIV.landingPageColumn UL LI H3 IMG { MARGIN: 0px 0px 0px -12px } DIV.landingPageColumn UL LI H3.hiddenLink { PADDING-RIGHT: 1.2em; PADDING-LEFT: 4.2em; PADDING-BOTTOM: 0.6em; = PADDING-TOP: 1em; POSITION: relative } DIV.landingPageColumn UL LI H3.hiddenLink A { COLOR: #777; TEXT-DECORATION: none } DIV.landingPageColumn UL LI H3.hiddenLink A:hover { COLOR: #777; TEXT-DECORATION: none } DIV.landingPageColumn UL LI H3.hiddenLink IMG { FILTER: alpha(opacity=3D40); LEFT: -3.1em; POSITION: absolute; TOP: = 0px; opacity: 0.4 } DIV.landingPageColumn UL LI UL { PADDING-RIGHT: 0px; PADDING-LEFT: 2.5em; PADDING-BOTTOM: 0px; MARGIN: = 0em 0.4em 0.4em 0.8em; PADDING-TOP: 0px; LIST-STYLE-TYPE: square } DIV.landingPageColumn UL LI UL LI { COLOR: #999! important } DIV.landingPageColumn UL LI UL LI.more { PADDING-TOP: 3px; LIST-STYLE-TYPE: none } DIV.landingPageColumn UL LI UL LI.more A { PADDING-RIGHT: 9px; PADDING-LEFT: 0px; BACKGROUND: = url(images/list_bullet_single.gif) no-repeat right 4px; PADDING-BOTTOM: = 0px; COLOR: #666; PADDING-TOP: 0px } DIV.landingPageColumn UL LI P { PADDING-RIGHT: 0.6em; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 1.4em; = PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #666; PADDING-TOP: 0.4em } DIV.landingPageColumn UL LI UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: = 0px; MARGIN: 0px; COLOR: #666; PADDING-TOP: 0px } #contentPaneWide DIV.gray B { BACKGROUND: #ededed } #contentPane DIV.gray B { BACKGROUND: #ededed } .subhead_text { PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; FONT-SIZE: 90%; PADDING-BOTTOM: = 2px; COLOR: #333333; PADDING-TOP: 0pt } .list_text { PADDING-RIGHT: 2px; PADDING-LEFT: 1.3em; FONT-WEIGHT: normal; = FONT-SIZE: 85%; PADDING-BOTTOM: 2px; COLOR: #666666; PADDING-TOP: 0pt } DIV.landingPageColumn UL.outcomesLanding LI .list_text A { PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; FONT-WEIGHT: normal; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0pt; MARGIN-LEFT: 3px; = PADDING-TOP: 0pt } DIV.datalistScroll { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN: 0.4em = 0px 0.4em 1.4em; OVERFLOW: auto; BORDER-LEFT: #ddd 1px solid; = BORDER-BOTTOM: #ddd 1px solid; HEIGHT: 360px; BACKGROUND-COLOR: white } DIV.datalist { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN: 0.4em = 0px 0.4em 1.4em; BORDER-LEFT: #ddd 1px solid; BORDER-BOTTOM: #ddd 1px = solid; BACKGROUND-COLOR: white } DIV.landingPageColumn UL LI UL.datalistScroll { BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: medium = none; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0.4em 0px 0.4em = 1.4em; OVERFLOW: auto; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #ddd 1px solid; LIST-STYLE-TYPE: none; HEIGHT: 250px; = BACKGROUND-COLOR: white } DIV.landingPageColumn UL LI UL.datalistScroll LI { PADDING-RIGHT: 2px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 2px; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px; BACKGROUND-COLOR: white } DIV.landingPageColumn UL LI UL.datalistScroll LI:hover { BACKGROUND-COLOR: #ffffcc } DIV.landingPageColumn UL LI UL.datalistScroll LI:focus { BACKGROUND-COLOR: #ffffcc } DIV.datalist TABLE THEAD TR TH { COLOR: #fff; BACKGROUND-COLOR: #aaa } DIV.datalistScroll TABLE THEAD TR TH { COLOR: #fff; BACKGROUND-COLOR: #aaa } DIV.datalist TABLE TD.overdue { PADDING-RIGHT: 0pt; PADDING-LEFT: 20px; FONT-WEIGHT: bold; BACKGROUND: = url(images/stage_deadline4.gif) no-repeat left center; PADDING-BOTTOM: = 1px; COLOR: red; PADDING-TOP: 1px } .emptylist { BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: #ddd 1px = solid; PADDING-LEFT: 12px; PADDING-BOTTOM: 12px; MARGIN: 6px 0px 0px = 1.4em; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 12px; BORDER-BOTTOM: = #ddd 1px solid; BACKGROUND-COLOR: white } DIV.landingPageColumn UL LI UL.subcaret { BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: medium = none; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0.4em 0em 0.4em = 1.4em; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: = #ddd 1px solid; LIST-STYLE-TYPE: none } DIV.landingPageColumn UL LI UL.subcaret LI { PADDING-RIGHT: 1px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 2px; = FONT-WEIGHT: normal; BACKGROUND: white; PADDING-BOTTOM: 2px; MARGIN: = 0px; PADDING-TOP: 2px; LIST-STYLE-TYPE: none } DIV.landingPageColumn UL LI UL.subcaret LI.complete { PADDING-RIGHT: 1px; PADDING-LEFT: 20px; BACKGROUND: = url(images/workflow_detail_complete2.gif) white no-repeat 2px 2px; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } DIV.landingPageColumn UL LI UL.subcaret LI.inprogress { PADDING-RIGHT: 1px; PADDING-LEFT: 20px; BACKGROUND: = url(images/workflow_detail_active.gif) white no-repeat 2px 2px; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } .iconLegendLabel { FONT-SIZE: 95%; MARGIN: 1px 0px 1px 1.6em } DIV.landingPageColumn UL LI UL.subcaret LI A { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI UL.datalist LI A { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI DIV A { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI TABLE A { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI P A { TEXT-DECORATION: underline } DIV.designAreaHeader { BORDER-RIGHT: #eee 1px solid; BORDER-TOP: #eee 1px solid; MARGIN: 0.6em = 0px 0.6em 18px; BORDER-LEFT: #eee 1px solid; BORDER-BOTTOM: #eee 1px = solid } DIV.designAreaFooter { BORDER-RIGHT: #eee 1px solid; BORDER-TOP: #eee 1px solid; MARGIN: 0.6em = 0px 0.6em 18px; BORDER-LEFT: #eee 1px solid; BORDER-BOTTOM: #eee 1px = solid } DIV.designAreaHeader H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0.8em; PADDING-BOTTOM: 0.4em; MARGIN: = 0px; COLOR: #666; PADDING-TOP: 0.4em } DIV.designAreaFooter H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0.8em; PADDING-BOTTOM: 0.4em; MARGIN: = 0px; COLOR: #666; PADDING-TOP: 0.4em } DIV.designAreaHeader DIV.headertext { PADDING-RIGHT: 0px; PADDING-LEFT: 0.8em; PADDING-BOTTOM: 0.4em; MARGIN: = 0px; PADDING-TOP: 0px } DIV.designAreaFooter DIV.footertext { PADDING-RIGHT: 0px; PADDING-LEFT: 0.8em; PADDING-BOTTOM: 0.4em; MARGIN: = 0px; PADDING-TOP: 0px } DIV#emptyText { MARGIN: 0.6em 18px } .sequenceMapHead { MARGIN: 6px 0px } .sequenceMapHead H3 { MARGIN: 12px 0px 6px } .sequenceMapHead P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 6px; COLOR: #666666; PADDING-TOP: 0px } DIV.sequenceMapHead DIV.actionBar { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: = #fff7de; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } UL.metaDataList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.metaDataList LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 2px } UL.metaDataList LI H3 { DISPLAY: inline; MARGIN: 0px } INPUT { FONT-SIZE: 100%; VERTICAL-ALIGN: middle } SELECT { FONT-SIZE: 100%; VERTICAL-ALIGN: middle } .additional { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 0px = 0px 6px; PADDING-TOP: 2px; ZOOM: 1; HEIGHT: 1% } .additional .left { FLOAT: left } .additional .right { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FLOAT: right; PADDING-BOTTOM: = 2px; COLOR: #777; PADDING-TOP: 2px } .additional .right SPAN.size { FONT-WEIGHT: bold; COLOR: #000 } .additional .left SPAN.suboption { DISPLAY: block; PADDING-LEFT: 18px } .vtbe_footer { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: 0px; = PADDING-LEFT: 9px; FONT-SIZE: 70%; PADDING-BOTTOM: 2px; BORDER-LEFT: = #ccc 1px solid; COLOR: #666; PADDING-TOP: 2px; BORDER-BOTTOM: #ccc 1px = solid; BACKGROUND-COLOR: #eee } .vtbe_footer SPAN { FONT-SIZE: 100% } .vtbe_footer INPUT[type=3Dbutton] { FONT-SIZE: 95% } .vtbe_footer A { MARGIN: 0px 0px 0px 3px } DIV.steptitle { PADDING-RIGHT: 4px; PADDING-LEFT: 3.2em; FONT-WEIGHT: bold; FONT-SIZE: = 110%; BACKGROUND: #888; PADDING-BOTTOM: 0.33em; MARGIN: 9px 0px 0px; = COLOR: #ffffff; LINE-HEIGHT: 1; PADDING-TOP: 0.33em; LETTER-SPACING: = 1px; POSITION: relative } H3.steptitle { PADDING-RIGHT: 4px; PADDING-LEFT: 3.2em; FONT-WEIGHT: bold; FONT-SIZE: = 110%; BACKGROUND: #888; PADDING-BOTTOM: 0.33em; MARGIN: 9px 0px 0px; = COLOR: #ffffff; LINE-HEIGHT: 1; PADDING-TOP: 0.33em; LETTER-SPACING: = 1px; POSITION: relative } DIV.steptitle SPAN { PADDING-RIGHT: 9px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; BACKGROUND: = #fae7ae; LEFT: 0px; PADDING-BOTTOM: 0.33em; MARGIN: 0px 0px 0px -3.2em; = COLOR: #000; LINE-HEIGHT: 100%; PADDING-TOP: 0.33em; POSITION: absolute; = TOP: 1px } H3.steptitle SPAN { PADDING-RIGHT: 9px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; BACKGROUND: = #fae7ae; LEFT: 0px; PADDING-BOTTOM: 0.33em; MARGIN: 0px 0px 0px -3.2em; = COLOR: #000; LINE-HEIGHT: 100%; PADDING-TOP: 0.33em; POSITION: absolute; = TOP: 1px } H3.noNumber { PADDING-RIGHT: 16px; PADDING-LEFT: 16px; PADDING-BOTTOM: 5px; = PADDING-TOP: 4px } FIELDSET.stepcontent { BORDER-RIGHT: medium none; PADDING-RIGHT: 4px; BORDER-TOP: medium none; = PADDING-LEFT: 16px; PADDING-BOTTOM: 12px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: medium none; PADDING-TOP: 6px; BORDER-BOTTOM: medium none } DIV.stepcontent { BORDER-RIGHT: medium none; PADDING-RIGHT: 4px; BORDER-TOP: medium none; = PADDING-LEFT: 16px; PADDING-BOTTOM: 12px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: medium none; PADDING-TOP: 6px; BORDER-BOTTOM: medium none } FIELDSET.stepcontent FIELDSET { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: medium = none; PADDING-TOP: 0px; BORDER-BOTTOM: medium none } FIELDSET.stepcontent LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .stepHelp { PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%! important; = PADDING-BOTTOM: 4px; MARGIN: 0px 0px 6px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 0px; BORDER-BOTTOM: medium none } FIELDSET.stepcontent OL LI.stepHelp { PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%! important; = PADDING-BOTTOM: 4px; MARGIN: 0px 0px 6px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 0px; BORDER-BOTTOM: medium none } FIELDSET.stepcontent OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } FIELDSET.stepcontent FIELDSET OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.contentBlock OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } FIELDSET.stepcontent OL LI { MARGIN-BOTTOM: 4px; PADDING-BOTTOM: 4px; BORDER-BOTTOM: #eee 1px solid; = HEIGHT: 1% } FIELDSET.stepcontent OL LI:unknown { CLEAR: both; DISPLAY: block; BACKGROUND: red; VISIBILITY: hidden; = HEIGHT: 1%; content: "." } DIV.contentBlock OL LI:unknown { CLEAR: both; DISPLAY: block; BACKGROUND: red; VISIBILITY: hidden; = HEIGHT: 1%; content: "." } FIELDSET.stepcontent UL.nestedList { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: none } FIELDSET.stepcontent OL.nestedList { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: none } FIELDSET.stepcontent UL.nestedList LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 1px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 1px; BORDER-BOTTOM: 0px } FIELDSET.stepcontent OL.nestedList LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 1px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 1px; BORDER-BOTTOM: 0px } FIELDSET.stepcontent UL.nestedList LI INPUT { VERTICAL-ALIGN: middle } FIELDSET.stepcontent OL.nestedList LI INPUT { VERTICAL-ALIGN: middle } UL.nestedListSmall LI { FONT-SIZE: 90% } OL.nestedListSmall LI { FONT-SIZE: 90% } FIELDSET.stepcontent UL.nestedSubList { MARGIN: 6px 6px 6px 30px } FIELDSET.stepcontent OL.nestedSubList { MARGIN: 6px 6px 6px 30px } DIV.nestedSubList { MARGIN: 6px 6px 6px 30px } DIV.stepLite { PADDING-RIGHT: 16px; PADDING-LEFT: 16px; PADDING-BOTTOM: 12px; = PADDING-TOP: 6px } DIV.columnStep DIV.column-3 { MIN-HEIGHT: 200px } DIV.columnStep DIV.column-3 DIV TABLE.attachments TR TH { FONT-SIZE: 90% } DIV.columnStep DIV.column-3 DIV TABLE.attachments TR TD { FONT-SIZE: 90% } DIV.columnStep DIV H3 { MARGIN: 6px } DIV.columnStep DIV DIV { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } FIELDSET OL LI SPAN { PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; COLOR: #666666; PADDING-TOP: 0px; BORDER-BOTTOM: = medium none } FIELDSET OL LI OL LI SPAN { PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; COLOR: #666666; PADDING-TOP: 0px; BORDER-BOTTOM: = medium none } .contentBlock OL LI SPAN { PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; COLOR: #666666; PADDING-TOP: 0px; BORDER-BOTTOM: = medium none } FIELDSET OL LI SPAN.nonHelp { FONT-SIZE: 95%; COLOR: #000 } FIELDSET OL LI OL LI SPAN.nonHelp { FONT-SIZE: 95%; COLOR: #000 } FIELDSET OL LI SPAN.fieldHelp { FONT-SIZE: 95% } FIELDSET OL LI SPAN.tagContainer INPUT { FONT-SIZE: 95% } FIELDSET OL LI SPAN.tagContainer A.browse { FONT-SIZE: 95% } FIELDSET OL LI SPAN.tagContainer { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; = PADDING-TOP: 2px } FIELDSET OL LI SPAN.tagContainer SPAN { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; = PADDING-TOP: 2px } FIELDSET OL LI OL LI SPAN.tagContainer { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; = PADDING-TOP: 2px } FIELDSET OL LI OL LI SPAN.tagContainer SPAN { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; = PADDING-TOP: 2px } FIELDSET OL LI SPAN.tagContainer SPAN.hidden { DISPLAY: none } FIELDSET OL LI OL LI SPAN.tagContainer SPAN.hidden { DISPLAY: none } FIELDSET OL LI SPAN.hidden { DISPLAY: none } FIELDSET OL LI OL LI SPAN.hidden { DISPLAY: none } .contentBlock OL LI SPAN.hidden { DISPLAY: none } OL.nestedList LI DIV.imgLabel { WIDTH: auto } OL.nestedList LI DIV.imgLabel SPAN.fileName { PADDING-RIGHT: 6px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = bold; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } OL.nestedList LI DIV.imgLabel SPAN.control { DISPLAY: inline } OL.nestedList LI DIV.imgLabel SPAN A { =09 } #title_color_value { PADDING-TOP: 6px } .largeText DIV.label { FONT-WEIGHT: bold; FONT-SIZE: 130% } .largeText DIV.field { FONT-WEIGHT: bold; FONT-SIZE: 130% } .largeText A.browse { FONT-WEIGHT: normal; FONT-SIZE: 75%! important; MARGIN: 0px 0px 0px 3px } .field A.browse { FONT-SIZE: 95%; MARGIN: 0px 0px 0px 3px } DIV.editBlock { FLOAT: left; MARGIN-RIGHT: 12px } .largeText DIV.field DIV.editBlock LABEL { FONT-WEIGHT: normal; FONT-SIZE: 80% } .largeText DIV.field DIV.exemptdiv LABEL { FONT-SIZE: 120% } .largeText TEXTAREA { FONT-SIZE: 80% } LI.inEditMode { BORDER-RIGHT: #444 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: #444 2px = solid; PADDING-LEFT: 9px; BACKGROUND: #ededed; PADDING-BOTTOM: 3px; = BORDER-LEFT: #444 2px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #444 2px = solid; -moz-border-radius: 6px } FIELDSET.stepcontent OL LI.fieldError { PADDING-RIGHT: 0px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 0px; PADDING-TOP: 2px; BORDER-BOTTOM: #fff 1px solid } LI.fieldError { PADDING-RIGHT: 0px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 0px; PADDING-TOP: 2px; BORDER-BOTTOM: #fff 1px solid } FIELDSET.stepcontent OL LI.fieldError SPAN.fieldErrorText { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: red } SPAN.warningMsg { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: red } SPAN.warningMsg { DISPLAY: inline; MARGIN-LEFT: 0px } .reqfield { FLOAT: left; COLOR: #666 } LI.required DIV.label LABEL IMG { MARGIN: 0px } LI.required DIV.label IMG { MARGIN: 0px } LI DIV.label IMG.indicator { LEFT: -18px; POSITION: absolute; TOP: 0px } LI.required INPUT { CLEAR: none } FIELDSET.info { BACKGROUND: #f6f6f6; MARGIN: 0px } DIV.info { BACKGROUND: #f6f6f6; MARGIN: 0px } FIELDSET.info DIV.label { COLOR: #666 } DIV.label { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 3px; WIDTH: 20%; COLOR: black; PADDING-TOP: 0px; POSITION: relative; = TOP: 0px } DIV.field { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 3px; OVERFLOW: visible; = WIDTH: 79%; WORD-BREAK: normal; WORD-WRAP: break-word } DIV.noLabelField { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 3px; OVERFLOW: visible; = WIDTH: 79%; WORD-BREAK: normal; WORD-WRAP: break-word } DIV.noLabelField { WIDTH: 100% } DIV.label SPAN.contextMenuContainer { DISPLAY: inline } .vtbeSwitch { POSITION: relative; HEIGHT: 1em } .legacy .vtbeSwitch { HEIGHT: 2.2em } .vtbeSwitch DIV.modeSwitchWrap { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #cccccc 1px solid; PADDING-LEFT: 6px; RIGHT: 0px; PADDING-BOTTOM: 4px; = BORDER-LEFT: #cccccc 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: 0px; = BACKGROUND-COLOR: #eeeeee } .vtbeSwitch DIV.modeSwitchWrap A { WIDTH: 4em } .vtbeSwitch DIV.modeSwitchWrap A SPAN#statusText { WIDTH: 2.7em } .vtbeSwitch DIV.modeSwitchWrap A.read-off { BACKGROUND-COLOR: #eee } .vtbeSwitch DIV.modeSwitchWrap A.read-off:hover { BACKGROUND-COLOR: #fff } .vtbeSwitch DIV.modeSwitchWrap A.read-on SPAN#statusText { COLOR: #ffffff } .vtbeSwitch DIV.modeSwitchWrap A.read-off:hover SPAN#statusText { COLOR: #000 } TABLE.vtbeTable-legacy { WIDTH: 30em } .vtbeTable-legacy TEXTAREA { WIDTH: 99% } DIV.quickAddPal FIELDSET.stepcontent { PADDING-RIGHT: 6px; PADDING-LEFT: 9px; PADDING-BOTTOM: 3px; MARGIN: = 0px; PADDING-TOP: 3px } DIV.quickAddPal FIELDSET.stepcontent OL LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 1px; BORDER-TOP: 0px; PADDING-LEFT: = 1px; PADDING-BOTTOM: 0px; MARGIN: 0px 2px; BORDER-LEFT: 0px; = PADDING-TOP: 1px; BORDER-BOTTOM: 0px } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.label { PADDING-RIGHT: 2px; OVERFLOW: visible; WIDTH: 30% } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.field { WIDTH: 65% } DIV.quickAddPal FIELDSET.stepcontent OL LI.required DIV.label LABEL IMG = { MARGIN: 0px } DIV.quickAddPal FIELDSET.stepcontent OL LI.required DIV.label IMG { MARGIN: 0px } DIV.quickAddPal UL LI.fieldError SPAN.fieldErrorText { DISPLAY: block; FONT-WEIGHT: normal; FONT-SIZE: 90%; MARGIN-LEFT: 74px; = COLOR: red } DIV.quickAddPal DIV.field INPUT[type=3Dtext] { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; FONT-SIZE: = 100%; BORDER-LEFT: #666 1px solid; WIDTH: 100%; BORDER-BOTTOM: #666 1px = solid } DIV.quickAddPal DIV.field SELECT { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; FONT-SIZE: = 100%; BORDER-LEFT: #666 1px solid; WIDTH: 100%; BORDER-BOTTOM: #666 1px = solid } DIV.quickAddPal DIV.field TEXTAREA { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; FONT-SIZE: = 100%; BORDER-LEFT: #666 1px solid; WIDTH: 100%; BORDER-BOTTOM: #666 1px = solid } DIV.quickAddPal DIV.field INPUT[type=3Dcheckbox] { WIDTH: auto } DIV.quickAddPal LI.stepHelp { WIDTH: auto } DIV.quickAddPal LI DIV SPAN { WIDTH: auto } DIV.field SPAN.fileName { PADDING-RIGHT: 6px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = bold; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } DIV.field SPAN.control { DISPLAY: inline } DIV.quickAddPal DIV.field INPUT.datePickerInput { WIDTH: 8em } DIV.quickAddPal DIV.field INPUT.timePickerInput { WIDTH: 8em } DIV#texteditor { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FLOAT: left; PADDING-BOTTOM: = 3px; MARGIN: 0px; PADDING-TOP: 3px } DIV#texteditor TEXTAREA { DISPLAY: block; MARGIN-LEFT: 0px; WIDTH: 450px } DIV#texteditor A.textBoxItem { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; PADDING-BOTTOM: = 2px; WIDTH: 80%; PADDING-TOP: 2px; TEXT-ALIGN: right } FIELDSET.stepcontent OL LI INPUT[type=3D'text'] { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666 1px = solid } SELECT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666 1px = solid } TEXTAREA { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666 1px = solid } SELECT.survey_question { MAX-WIDTH: 100% } HTML * SELECT.survey_question { WIDTH: 100% } TEXTAREA { FONT-SIZE: 100% } TEXTAREA { FONT-SIZE: 100% } INPUT:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } TEXTAREA:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } #loginBox INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } #loginBox INPUT[type=3D'password']:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } .portlet #loginBoxFull LI INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } .portlet #loginBoxFull LI INPUT[type=3D'password']:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } FIELDSET.stepcontent OL LI INPUT.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 9px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 0px; OVERFLOW: visible; BORDER-LEFT: = #ccc 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; = FONT-FAMILY: "Lucida Grande",Arial, Verdana, sans-serif } INPUT.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 9px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 0px; OVERFLOW: visible; BORDER-LEFT: = #ccc 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; = FONT-FAMILY: "Lucida Grande",Arial, Verdana, sans-serif } A.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 6px; FONT-SIZE: 95%; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x right bottom; = PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #aaa 1px solid; FONT-FAMILY: "Lucida Grande", Arial, = Verdana, sans-serif; TEXT-DECORATION: none } FIELDSET.stepcontent OL LI A.browseIcon { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 1px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } .stepcontent A.browseIcon { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 1px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } DIV.portlet DIV.portletBlock A.browseIcon { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 1px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } A.browseIcon { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 1px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } A.browse:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.browseIcon:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.browse:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.browseIcon:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } DIV.details A.browse { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 1px; MARGIN: 0px = auto; PADDING-TOP: 0px } DIV.details A.browse:hover { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 1px; MARGIN: 0px = auto; PADDING-TOP: 0px } P.taskbuttondiv { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 16px; = PADDING-BOTTOM: 6px; MARGIN: 9px 0px 0px; PADDING-TOP: 6px; TEXT-ALIGN: = right } P.taskButtonsContent { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 16px; = PADDING-BOTTOM: 6px; MARGIN: 9px 0px 0px; PADDING-TOP: 6px; TEXT-ALIGN: = right } P.okbutton { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 16px; = PADDING-BOTTOM: 6px; MARGIN: 9px 0px 0px; PADDING-TOP: 6px; TEXT-ALIGN: = right } DIV.container P.taskbuttondiv:first-child { MARGIN-TOP: 0px } DIV#dataCollectionContainer P.taskbuttondiv:first-child { MARGIN-TOP: 12px } DIV#dataCollectionContainer SPAN.reqfield + P.taskbuttondiv { MARGIN-TOP: 12px } DIV#containerdiv FORM.mapCanvasForm P.taskbuttondiv:first-child { MARGIN-TOP: 12px } DIV#dataCollectionContainer P.taskbuttonhelp + P.taskbuttondiv { MARGIN-TOP: 0px; PADDING-TOP: 0px } SPAN.stepTitleRight P.taskbuttondiv { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; FONT-SIZE: = 80%! important; PADDING-BOTTOM: 0px! important; MARGIN: -2pt 0px; = PADDING-TOP: 0px! important } SPAN.contentListRight P.taskbuttondiv { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; FONT-SIZE: = 80%! important; PADDING-BOTTOM: 0px! important; MARGIN: -2pt 0px; = PADDING-TOP: 0px! important } P.backLink { RIGHT: 4px; MARGIN: 0px; BOTTOM: 6px; POSITION: absolute } P.backLink A { PADDING-RIGHT: 8px; DISPLAY: inline-block; PADDING-LEFT: 8px; = FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: #bbb; PADDING-BOTTOM: = 2px; COLOR: #fff; PADDING-TOP: 2px; TEXT-DECORATION: none; = -moz-border-radius: 3px; -webkit-border-radius: 3px } .taskButtonsContent { PADDING-RIGHT: 12px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 12px; = PADDING-BOTTOM: 0px; MARGIN: 24px -12px 0px; PADDING-TOP: 9px } .taskbuttondiv BUTTON { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } .taskbuttondiv INPUT { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } .taskButtonsContent BUTTON { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } .taskButtonsContent INPUT { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } DIV.controls BUTTON { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } DIV.controls INPUT { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } P.okbutton INPUT { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } BUTTON.secondary { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } INPUT.secondary { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } A.secondary { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } P.okbutton INPUT { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 100%; PADDING-BOTTOM: = 1px; PADDING-TOP: 1px } .taskbuttondiv BUTTON.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskbuttondiv INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskButtonsContent BUTTON.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskButtonsContent INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } DIV.controls BUTTON.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } DIV.controls INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskbuttondiv BUTTON.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskbuttondiv INPUT.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskButtonsContent BUTTON.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskButtonsContent INPUT.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } DIV.controls BUTTON.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } DIV.controls INPUT.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } #loginBox LI INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } BUTTON.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } A.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } #loginBox LI INPUT[type=3D'submit'] { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } #loginBox LI INPUT[type=3D'submit']:hover { BACKGROUND-COLOR: #344a6c } .portlet INPUT.submit:hover { BACKGROUND-COLOR: #344a6c } .taskbuttondiv BUTTON.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .taskbuttondiv INPUT.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .taskButtonsContent BUTTON.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .taskButtonsContent INPUT.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } DIV.controls BUTTON.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } DIV.controls INPUT.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } BUTTON.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } INPUT.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .disabled:hover { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } A.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } A.disabled:hover { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } A.disabled:focus { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .quickAddPal DIV.controls INPUT { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 100%; PADDING-BOTTOM: = 1px; MARGIN: 0px 1px; PADDING-TOP: 1px } .taskbuttonhelp { PADDING-RIGHT: 4px; PADDING-LEFT: 30px; FONT-SIZE: 95%! important; = PADDING-BOTTOM: 0px; MARGIN: 9px 0px 0px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 0px } .container P.taskbuttonhelp { PADDING-LEFT: 33px } #taskbuttondiv P { BORDER-RIGHT: red 1px solid; BORDER-TOP: red 1px solid; DISPLAY: block; = FONT-SIZE: 90%; MARGIN: 6px 0px; BORDER-LEFT: red 1px solid; = BORDER-BOTTOM: red 1px solid; FONT-STYLE: italic; TEXT-ALIGN: left } DIV.lbContainer P.taskButtonsContent { MARGIN: 12px 0px 6px } FIELDSET.stepcontent OL LI A.colorChip { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 2px; = PADDING-BOTTOM: 1px; PADDING-TOP: 1px } A.colorChip { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 2px; = PADDING-BOTTOM: 1px; PADDING-TOP: 1px } FIELDSET.stepcontent OL LI A.colorChip SPAN { DISPLAY: inline-block; PADDING-LEFT: 2px; BACKGROUND: = url(images/cm_arrow.gif) no-repeat 2px 0px; VERTICAL-ALIGN: middle } A.colorChip SPAN { DISPLAY: inline-block; PADDING-LEFT: 2px; BACKGROUND: = url(images/cm_arrow.gif) no-repeat 2px 0px; VERTICAL-ALIGN: middle } A.colorChip IMG.chipSwatch { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #ccc 1px solid; BORDER-LEFT: = #ccc 1px solid; WIDTH: 16px; BORDER-BOTTOM: #aaa 1px solid; HEIGHT: 16px } FIELDSET.stepcontent OL LI A.colorChip SPAN IMG { FILTER: alpha(opacity=3D0); WIDTH: 16px; HEIGHT: 16px; opacity: 0 } A.colorChip SPAN IMG { FILTER: alpha(opacity=3D0); WIDTH: 16px; HEIGHT: 16px; opacity: 0 } SPAN.colorChipName { DISPLAY: inline-block; VERTICAL-ALIGN: middle } .stepTitleRight { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; RIGHT: 6px! important; BACKGROUND: #fae7ae; LEFT: auto! important; = PADDING-BOTTOM: 4px; COLOR: #000; LINE-HEIGHT: 1; PADDING-TOP: 3px; = LETTER-SPACING: 1px; POSITION: absolute; TOP: 0px } .saver { CLEAR: left } .exemptdiv { FONT-SIZE: 60% } TABLE .exemptdiv { CLEAR: left; FONT-SIZE: 100% } .gbtablesimple .exemptdiv { MARGIN-TOP: 5px; PADDING-LEFT: 20px; FONT-SIZE: 90% } DIV .editgrade TABLE.resizeCommentsTable TEXTAREA { FONT-SIZE: 130% } .gc_info UL { TEXT-ALIGN: left! important } .gbtablesimple .exemptdiv INPUT { MARGIN-LEFT: -20px } DIV.field TABLE TBODY TR TD TABLE LABEL { FONT-SIZE: 110% } DIV.field TABLE TBODY TR TD TABLE SELECT { FONT-SIZE: 110% } DIV.selectItems { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: none; PADDING-LEFT: 3px; BACKGROUND: #eee; FLOAT: left; = PADDING-BOTTOM: 9px; MARGIN: 2px 0px 0px 9px; BORDER-LEFT: #ccc 1px = solid; WIDTH: 580px; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid } DIV.selectItems DIV { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FLOAT: left; PADDING-BOTTOM: = 3px; MARGIN: 0px; PADDING-TOP: 3px } DIV.selectItems DIV SELECT { DISPLAY: block; MARGIN: 6px 0px; WIDTH: 265px } DIV.selectItems DIV INPUT[type=3Dbutton] { MARGIN: 6px 0px } DIV.selectItems DIV.selectArrows { MARGIN: 40px 0px } DIV.selectArrows A { DISPLAY: block; MARGIN: 6px 0px } DIV.noLabelField DIV.selectItems { WIDTH: 97% } DIV.noLabelField DIV.selectItems DIV { WIDTH: 46% } DIV.noLabelField DIV.selectItems DIV SELECT { WIDTH: 100% } DIV.noLabelField DIV.selectItems DIV.selectArrows { WIDTH: 5%; TEXT-ALIGN: center } DIV.noLabelField DIV.selectArrows A { MARGIN: 6px auto } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 6px; WIDTH: 288px; PADDING-TOP: 0px; = LIST-STYLE-TYPE: none } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI { BORDER-RIGHT: #333 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #333 1px = solid; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; = OVERFLOW: hidden; BORDER-LEFT: #333 1px solid; WIDTH: 14px; CURSOR: = pointer; PADDING-TOP: 0px; BORDER-BOTTOM: #333 1px solid; = LIST-STYLE-TYPE: none; HEIGHT: 14px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A { DISPLAY: block; OVERFLOW: hidden; WIDTH: 14px; HEIGHT: 14px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A:link { DISPLAY: block; OVERFLOW: hidden; WIDTH: 14px; HEIGHT: 14px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A:hover { BORDER-RIGHT: #333 1px solid; BORDER-TOP: #333 1px solid; BORDER-LEFT: = #333 1px solid; WIDTH: 12px; BORDER-BOTTOM: #333 1px solid; HEIGHT: 12px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A:active { BORDER-RIGHT: #fff 2px solid; BORDER-TOP: #fff 2px solid; BORDER-LEFT: = #fff 2px solid; WIDTH: 10px; BORDER-BOTTOM: #fff 2px solid; HEIGHT: 10px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A:focus { BORDER-RIGHT: #fff 2px solid; BORDER-TOP: #fff 2px solid; BORDER-LEFT: = #fff 2px solid; WIDTH: 10px; BORDER-BOTTOM: #fff 2px solid; HEIGHT: 10px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI = A.whiteSwatch:active { BORDER-RIGHT: #ddd 2px solid; BORDER-TOP: #ddd 2px solid; BORDER-LEFT: = #ddd 2px solid; WIDTH: 10px; BORDER-BOTTOM: #ddd 2px solid; HEIGHT: 10px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI = A.whiteSwatch:focus { BORDER-RIGHT: #ddd 2px solid; BORDER-TOP: #ddd 2px solid; BORDER-LEFT: = #ddd 2px solid; WIDTH: 10px; BORDER-BOTTOM: #ddd 2px solid; HEIGHT: 10px } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.colorPreview { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; BACKGROUND: white; = PADDING-BOTTOM: 3px; PADDING-TOP: 3px } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.colorPreview IMG { BORDER-RIGHT: #444 1px solid; BORDER-TOP: #444 1px solid; DISPLAY: = block; BACKGROUND: black; FLOAT: left; MARGIN: 3px; BORDER-LEFT: #444 = 1px solid; WIDTH: 42px; BORDER-BOTTOM: #444 1px solid; HEIGHT: 42px } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.colorPreview DIV { FLOAT: left; MARGIN-LEFT: 3px; WIDTH: 66% } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.colorPreview SPAN { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 0px; = FONT-SIZE: 100%; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 100%; COLOR: = black; PADDING-TOP: 0px } SPAN.title_color_name { COLOR: #666666 } UL.stepPanels { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; PADDING-BOTTOM: 12px; MARGIN: 0px; BORDER-LEFT: = medium none; PADDING-TOP: 6px; BORDER-BOTTOM: medium none; = LIST-STYLE-TYPE: none } UL.stepPanels LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM: medium none } FIELDSET.stepcontent OL LI UL.stepPanels LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM: medium none } H3.mdHead { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #ddd; = PADDING-BOTTOM: 3px; MARGIN: 4px 0px 0px; CURSOR: pointer; PADDING-TOP: = 3px; ZOOM: 1; POSITION: relative } H4.panelTitle { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #ddd; = PADDING-BOTTOM: 3px; MARGIN: 4px 0px 0px; CURSOR: pointer; PADDING-TOP: = 3px; ZOOM: 1; POSITION: relative } H3.mdHead A { COLOR: #000; TEXT-DECORATION: none } H4.panelTitle A { COLOR: #000; TEXT-DECORATION: none } H4.panelTitle A SPAN.date { FONT-WEIGHT: normal; FONT-SIZE: 95%; RIGHT: 6px; COLOR: #666; POSITION: = absolute; TOP: 2px; TEXT-DECORATION: none } H4.panelTitle SPAN.date { FONT-WEIGHT: normal; FONT-SIZE: 95%; RIGHT: 6px; COLOR: #666; POSITION: = absolute; TOP: 2px; TEXT-DECORATION: none } H4.panelTitle A { DISPLAY: block; WIDTH: 100% } H4.panelTitle A SPAN { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-SIZE: 95%; = PADDING-BOTTOM: 2px; COLOR: black; PADDING-TOP: 2px } H3.mdHead A SPAN.date { FONT-WEIGHT: normal } DIV.mdList { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; BACKGROUND: #f6f6f6; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 9px; PADDING-TOP: 9px } DIV.stepPanel { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; BACKGROUND: #f6f6f6; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 9px; PADDING-TOP: 9px } DIV.stepPanel P SPAN { COLOR: #666 } DIV.mdList H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.stepPanel H5 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.mdList P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 5px 5px 5px 12px; PADDING-TOP: 0px } DIV.stepPanel P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 5px 5px 5px 12px; PADDING-TOP: 0px } DIV.stepPanelControls { FONT-SIZE: 90% } .contentAreaBlock { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: 0px; = PADDING-LEFT: 12px; BACKGROUND: no-repeat right bottom; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 24px; BORDER-LEFT: #dcdcdc 1px solid; PADDING-TOP: = 12px; BORDER-BOTTOM: #aaa 1px solid } UL.buttonLibrary { BORDER-RIGHT: #bbb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #bbb 1px = solid; PADDING-LEFT: 6px; BACKGROUND: #f6f6f6; PADDING-BOTTOM: 6px; = MARGIN: 9px 0px; OVERFLOW: auto; BORDER-LEFT: #bbb 1px solid; = MAX-HEIGHT: 300px; PADDING-TOP: 6px; BORDER-BOTTOM: #bbb 1px solid; = LIST-STYLE-TYPE: none } UL.buttonLibrary LI { BORDER-RIGHT: medium none; BORDER-TOP: medium none; FLOAT: left; = BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } UL.buttonLibrary LI A { PADDING-RIGHT: 7px; DISPLAY: block; PADDING-LEFT: 7px; FONT-SIZE: 105%; = PADDING-BOTTOM: 3px; COLOR: #777; PADDING-TOP: 3px; TEXT-ALIGN: center; = TEXT-DECORATION: none } UL.buttonLibrary LI A.selected { FONT-WEIGHT: bold; TEXT-DECORATION: none } UL.buttonLibrary LI A:hover { TEXT-DECORATION: underline } DIV.menuStyleStep { FLOAT: left; MARGIN: 9px 40px 0pt 0pt; WIDTH: 212px } DIV.menuStyleStep DIV.topRound { DISPLAY: none } DIV.menuDefaultStyleStep { MARGIN: 9px auto; WIDTH: 212px } .fileInputWrapper { PADDING-RIGHT: 3px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; OVERFLOW: hidden; MARGIN-RIGHT: 9px; PADDING-TOP: 0px; POSITION: = relative; TOP: -5px } .fileInputWrapper INPUT.hiddenInput { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 210%; Z-INDEX: 2; = RIGHT: 0px; FILTER: alpha(opacity=3D0); PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; POSITION: absolute; TOP: 0px; TEXT-ALIGN: right; = opacity: 0 } .fileInputWrapper INPUT[type=3D'file'] { FILTER: alpha(opacity=3D0)! important } .fileInputWrapper INPUT.visibleInput { Z-INDEX: 1; RIGHT: 0px; POSITION: relative; TOP: 0px } .schemeWrapper { FLOAT: left; MARGIN: 0pt 12px 0pt 0pt } UL.buttonLibrary LI DIV.schemeWrapper { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 0px = solid; PADDING-LEFT: 5px; BACKGROUND: #fff; PADDING-BOTTOM: 5px; MARGIN: = 0px; BORDER-LEFT: #ccc 0px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #ccc = 1px solid } .schemeWrapper SPAN { FONT-SIZE: 95%; TEXT-ALIGN: center } UL.buttonLibrary LI.selected { BACKGROUND: url(images/dcp_block_bg.png) #555555 no-repeat right bottom } UL.buttonLibrary LI.selected A.selected { FONT-WEIGHT: bold; COLOR: #ffffff! important } UL.buttonLibrary LI.selected A.selected SPAN { FONT-WEIGHT: bold; COLOR: #ffffff! important } UL.buttonLibrary LI.selected A { FONT-WEIGHT: bold; COLOR: #ffffff! important } UL.buttonLibrary LI.selected A SPAN { FONT-WEIGHT: bold; COLOR: #ffffff! important } UL.buttonLibrary LI .schemeWrapper { FLOAT: none; MARGIN-RIGHT: 6px } UL.buttonLibrary LI { PADDING-RIGHT: 6px! important; PADDING-LEFT: 6px! important; = PADDING-BOTTOM: 6px! important; MARGIN: 0px 4px 4px 0px; PADDING-TOP: = 6px! important } .schemePreview { BORDER-RIGHT: #ededed 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #ededed 0px solid; PADDING-LEFT: 16px; PADDING-BOTTOM: 0px; BORDER-LEFT: = #ededed 0px solid; WIDTH: 160px; PADDING-TOP: 12px; BORDER-BOTTOM: = #ededed 1px solid } .modulePreview { BORDER-RIGHT: 0px solid; PADDING-RIGHT: 0px; BORDER-TOP: 2px solid; = PADDING-LEFT: 0px; FONT-SIZE: 85%; RIGHT: 0px; LEFT: auto; = PADDING-BOTTOM: 0px; MARGIN: 6px 0px 0px auto; BORDER-LEFT: 2px solid; = WIDTH: 140px; BOTTOM: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px solid; = POSITION: relative } .schemePreviewHead { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; PADDING-BOTTOM: 3px; PADDING-TOP: 3px } .modulePreviewHead { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; BACKGROUND: = url(images/gradient_black_short_bt.png) repeat-x 0pt center; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } .schemePreviewBody { PADDING-RIGHT: 0px; PADDING-LEFT: 9px; PADDING-BOTTOM: 0px; = PADDING-TOP: 3px; POSITION: relative } .modulePreviewBody { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 3px; = PADDING-TOP: 2px } .themeDefault .schemePreview { BACKGROUND: #cdcdcd } .themeDefault .schemePreviewHead { COLOR: #000; BACKGROUND-COLOR: #fff1c5 } .themeDefault .schemePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .themeDefault .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .themeDefault .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .themeDefault .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .opal .schemePreview { BACKGROUND: #e4ecf4 } .opal .schemePreviewHead { COLOR: #e4ecf4; BACKGROUND-COLOR: #891414 } .opal .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .opal .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .opal .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .opal .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .desert .schemePreview { BACKGROUND: #f7f5d2 } .desert .schemePreviewHead { COLOR: #383023; BACKGROUND-COLOR: #c5a97b } .desert .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .desert .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .desert .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .desert .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .plum .schemePreview { BORDER-RIGHT: #666699 2px solid; BORDER-TOP: #666699 2px solid; = BORDER-LEFT: #666699 2px solid; BORDER-BOTTOM: #666699 2px solid } .plum .schemePreviewHead { COLOR: #ffcc00; BACKGROUND-COLOR: #666699 } .plum .schemePreviewBody { BACKGROUND: #f2f0f4; COLOR: #000 } .fall .schemePreview { BACKGROUND: #e8dfa9 } .fall .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #e87b28 } .fall .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .fall .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .fall .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .fall .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .sandstone .schemePreview { BORDER-RIGHT: #336666 2px solid; BORDER-TOP: #336666 2px solid; = BORDER-LEFT: #336666 2px solid; BORDER-BOTTOM: #336666 2px solid } .sandstone .schemePreviewHead { COLOR: #666600; BACKGROUND-COLOR: #cccc99 } .sandstone .schemePreviewBody { BACKGROUND: #e7e7b8; COLOR: #000 } .forest .schemePreview { BORDER-RIGHT: #339933 2px solid; BORDER-TOP: #339933 2px solid; = BORDER-LEFT: #339933 2px solid; BORDER-BOTTOM: #339933 2px solid } .forest .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #339933 } .forest .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .spring .schemePreview { BORDER-RIGHT: #cc99cc 2px solid; BORDER-TOP: #cc99cc 2px solid; = BORDER-LEFT: #cc99cc 2px solid; BORDER-BOTTOM: #cc99cc 2px solid } .spring .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #cc99cc } .spring .schemePreviewBody { BACKGROUND: #fddede; COLOR: #000 } .state .schemePreview { BORDER-RIGHT: #eee 2px solid; BORDER-TOP: #eee 2px solid; BORDER-LEFT: = #eee 2px solid; BORDER-BOTTOM: #eee 2px solid } .state .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #ccc } .state .schemePreviewBody { BACKGROUND: #eee; COLOR: #000 } .mesa .schemePreview { BORDER-RIGHT: #ffffcc 2px solid; BORDER-TOP: #ffffcc 2px solid; = BORDER-LEFT: #ffffcc 2px solid; BORDER-BOTTOM: #ffffcc 2px solid } .mesa .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #993333 } .mesa .schemePreviewBody { BACKGROUND: #ffcccc; COLOR: #000 } .summer .schemePreview { BORDER-RIGHT: #669999 2px solid; BORDER-TOP: #669999 2px solid; = BORDER-LEFT: #669999 2px solid; BORDER-BOTTOM: #669999 2px solid } .summer .schemePreviewHead { COLOR: #ffffcc; BACKGROUND-COLOR: #99cccc } .summer .schemePreviewBody { BACKGROUND: #ffffcc; COLOR: #000 } .ocean .schemePreview { BACKGROUND: #dfdfff } .ocean .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #47478e } .ocean .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .ocean .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .ocean .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .ocean .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .tree .schemePreview { BORDER-RIGHT: #669966 2px solid; BORDER-TOP: #669966 2px solid; = BORDER-LEFT: #669966 2px solid; BORDER-BOTTOM: #669966 2px solid } .tree .schemePreviewHead { COLOR: #225522; BACKGROUND-COLOR: #669966 } .tree .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } DIV.fontPreview { BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #000 1px = solid; DISPLAY: block; PADDING-LEFT: 4px; BACKGROUND: #fff; FLOAT: left; = PADDING-BOTTOM: 4px; MARGIN: 3px 0px; BORDER-LEFT: #000 1px solid; = PADDING-TOP: 4px; BORDER-BOTTOM: #000 1px solid } .textareaDiv { PADDING-BOTTOM: 6px } .textareaDiv TABLE { WIDTH: 98% } .textareaDiv TABLE TABLE { WIDTH: 100% } .textareaDiv TABLE TABLE TABLE { WIDTH: 100% } .textareaDiv TEXTAREA { BORDER-TOP: #666 2px solid; WIDTH: 100% } DIV.textToolbar { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 0px; BACKGROUND: #f6f6f6; PADDING-BOTTOM: 4px; = BORDER-LEFT: #ccc 1px solid; WIDTH: 97.7%; PADDING-TOP: 4px; = BORDER-BOTTOM: #ccc 1px solid } DIV.textToolbar A { FONT-SIZE: 90%; WHITE-SPACE: nowrap } DIV.textToolbar LABEL { PADDING-LEFT: 4px; FONT-SIZE: 90%; VERTICAL-ALIGN: middle } DIV.textToolbar SELECT { FONT-SIZE: 90%; VERTICAL-ALIGN: middle } .previewTextArea { BORDER-RIGHT: #999 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: #999 2px = solid; DISPLAY: none; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 0px; OVERFLOW: auto; BORDER-LEFT: #999 2px solid; WIDTH: = 459px; PADDING-TOP: 0px; BORDER-BOTTOM: #999 2px solid; HEIGHT: 112px } .previewTextArea DIV.previewTitle { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #eee; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 4px; PADDING-TOP: 2px; = BORDER-BOTTOM: #eee 2px solid } .previewTextArea DIV.previewTitle A { FLOAT: right } .previewTextArea DIV.previewTitle H6 { FONT-SIZE: 90%; FLOAT: left; MARGIN: 0px } .previewTextArea DIV.previewContent { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px } FIELDSET.stepcontent OL.hierarchy { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; COLOR: #999; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } FIELDSET.stepcontent OL.hierarchy LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: #ddd 1px solid; = PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; BACKGROUND-COLOR: #fff } OL.hierarchy LI OL LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: #ddd 1px solid; = PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; BACKGROUND-COLOR: #fff } OL.hierarchy LI OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 8px = 0px 0px 30px; COLOR: #999; PADDING-TOP: 0px } OL.hierarchy LI H5 { PADDING-RIGHT: 11em; PADDING-LEFT: 3px; FONT-SIZE: 100%; = PADDING-BOTTOM: 3px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 8px; = POSITION: relative; BACKGROUND-COLOR: #fff } OL.hierarchy LI H5 SPAN { DISPLAY: inline; FONT-SIZE: 100%; COLOR: #888; BORDER-BOTTOM: medium = none } OL.hierarchy LI H5 A { FONT-WEIGHT: normal; FONT-SIZE: 90%; RIGHT: 0px; POSITION: absolute; = TOP: 9px } OL.hierarchy LI DIV { PADDING-RIGHT: 2px; PADDING-LEFT: 12px; FONT-SIZE: 95%; PADDING-BOTTOM: = 2px; VERTICAL-ALIGN: middle; PADDING-TOP: 9px; TEXT-ALIGN: right } OL.hierarchy LI DIV.gbData SPAN { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 9px; FONT-SIZE: = 100%; PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 9px; BORDER-LEFT: #ccc = 1px dotted; COLOR: #000; PADDING-TOP: 2px } OL.hierarchy LI DIV.gbData SPAN:first-child { PADDING-LEFT: 0px; MARGIN-LEFT: 0px; BORDER-LEFT: medium none } OL.hierarchy LI DIV INPUT.points { VERTICAL-ALIGN: middle } OL.hierarchy LI DIV INPUT { VERTICAL-ALIGN: middle } OL.hierarchy LI DIV INPUT.points { WIDTH: 2em } OL.hierarchy LI DIV INPUT.name { WIDTH: 16em } LI.parent { PADDING-BOTTOM: 0px! important } OL.hierarchy LI.parent OL LI H5 { BACKGROUND-IMAGE: none } A.genericButton { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BACKGROUND-POSITION: = center -7px; BORDER-TOP: #ccc 1px solid; DISPLAY: inline-block; = PADDING-LEFT: 6px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 1px; BORDER-LEFT: #ccc 1px solid; COLOR: #333; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-REPEAT: = repeat-x; FONT-FAMILY: "Lucida Grande", Arial, Verdana, sans-serif; = BACKGROUND-COLOR: #ededed; TEXT-DECORATION: none } A.genericButtonImg { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BACKGROUND-POSITION: = center -7px; BORDER-TOP: #ccc 1px solid; DISPLAY: inline-block; = PADDING-LEFT: 6px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 1px; BORDER-LEFT: #ccc 1px solid; COLOR: #333; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-REPEAT: = repeat-x; FONT-FAMILY: "Lucida Grande", Arial, Verdana, sans-serif; = BACKGROUND-COLOR: #ededed; TEXT-DECORATION: none } INPUT.genericButton { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BACKGROUND-POSITION: = center -7px; BORDER-TOP: #ccc 1px solid; DISPLAY: inline-block; = PADDING-LEFT: 6px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 1px; BORDER-LEFT: #ccc 1px solid; COLOR: #333; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-REPEAT: = repeat-x; FONT-FAMILY: "Lucida Grande", Arial, Verdana, sans-serif; = BACKGROUND-COLOR: #ededed; TEXT-DECORATION: none } .searchbar FIELDSET INPUT.genericButton { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BACKGROUND-POSITION: = center -7px; BORDER-TOP: #ccc 1px solid; DISPLAY: inline-block; = PADDING-LEFT: 6px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 1px; BORDER-LEFT: #ccc 1px solid; COLOR: #333; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-REPEAT: = repeat-x; FONT-FAMILY: "Lucida Grande", Arial, Verdana, sans-serif; = BACKGROUND-COLOR: #ededed; TEXT-DECORATION: none } A.genericButtonImg { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 2px; = PADDING-TOP: 0px } INPUT.genericButton { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 1px; OVERFLOW: = visible; PADDING-TOP: 1px } .searchbar FIELDSET INPUT.genericButton { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 1px; OVERFLOW: = visible; PADDING-TOP: 1px } A.genericButton:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.genericButtonImg:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.genericButton:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.genericButtonImg:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } .searchbar FIELDSET INPUT.genericButton:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } .searchbar FIELDSET INPUT.genericButton:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.add { BORDER-LEFT-COLOR: #42af41; BORDER-BOTTOM-COLOR: #42af41; = BORDER-TOP-COLOR: #42af41; BACKGROUND-COLOR: #b3efb3; = BORDER-RIGHT-COLOR: #42af41 } A.add:hover { BORDER-LEFT-COLOR: #42af41; BORDER-BOTTOM-COLOR: #42af41; = BORDER-TOP-COLOR: #42af41; BACKGROUND-COLOR: #e4ffdf; = BORDER-RIGHT-COLOR: #42af41 } A.remove { BORDER-LEFT-COLOR: #ef3b3b; BORDER-BOTTOM-COLOR: #ef3b3b; = BORDER-TOP-COLOR: #ef3b3b; BACKGROUND-COLOR: #ffc4bf; = BORDER-RIGHT-COLOR: #ef3b3b } A.remove:hover { BORDER-LEFT-COLOR: #ef3b3b; BORDER-BOTTOM-COLOR: #ef3b3b; = BORDER-TOP-COLOR: #ef3b3b; BACKGROUND-COLOR: #ffd2cf; = BORDER-RIGHT-COLOR: #ef3b3b } DIV.calendarTitle { MARGIN: 9px 0px 0px; TEXT-ALIGN: center } DIV.announcementTitle { MARGIN: 9px 0px 0px; TEXT-ALIGN: center } DIV.calendarTitle H3 { PADDING-RIGHT: 4px; DISPLAY: inline; PADDING-LEFT: 4px; FONT-SIZE: = 130%; PADDING-BOTTOM: 2px; MARGIN: 0px; VERTICAL-ALIGN: middle; = PADDING-TOP: 2px } DIV.announcementTitle H3 { PADDING-RIGHT: 4px; DISPLAY: inline; PADDING-LEFT: 4px; FONT-SIZE: = 130%; PADDING-BOTTOM: 2px; MARGIN: 0px; VERTICAL-ALIGN: middle; = PADDING-TOP: 2px } DIV.calMonth { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; PADDING-BOTTOM: = 2px; MARGIN: 10px 4px 4px; OVERFLOW: auto; PADDING-TOP: 2px } DIV.calMonth TABLE { BORDER-RIGHT: #a8beda 2px solid; BORDER-TOP: #a8beda 2px solid; MARGIN: = 0px auto; BORDER-LEFT: 2px; BORDER-BOTTOM: #a8beda 2px solid; = BORDER-COLLAPSE: collapse } DIV.calMonth TABLE THEAD TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #a8beda; = PADDING-BOTTOM: 0px; WIDTH: 1px; PADDING-TOP: 0px } DIV.calMonth TABLE TBODY TH { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #a8beda; = PADDING-BOTTOM: 0px; WIDTH: 1px; PADDING-TOP: 0px } DIV.calMonth TABLE THEAD TD DIV { LEFT: -1000px; POSITION: absolute; TOP: 0px } DIV.calMonth TABLE TBODY TH DIV { LEFT: -1000px; POSITION: absolute; TOP: 0px } DIV.calMonth TABLE THEAD TH { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 2px; PADDING-LEFT: 2px; = FONT-WEIGHT: bold; BACKGROUND: url(images/cal_year_head_bg.gif) #ddd = repeat-x right bottom; PADDING-BOTTOM: 2px; OVERFLOW: hidden; WIDTH: = 8em; COLOR: #333; PADDING-TOP: 2px; BORDER-BOTTOM: #a0a0a0 1px solid; = TEXT-ALIGN: center } DIV.calMonth TABLE TBODY TD { BORDER-RIGHT: #a8beda 1px solid; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BACKGROUND: url(images/cal_month_cell_bg.gif) white repeat-x 50% bottom; = PADDING-BOTTOM: 0px; OVERFLOW: hidden; WIDTH: 8em; PADDING-TOP: 0px; = BORDER-BOTTOM: #a8beda 1px solid; HEIGHT: 8em } DIV.calMonth TABLE TH:hover { BACKGROUND: url(images/cal_year_head_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TH:focus { BACKGROUND: url(images/cal_year_head_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TH:active { BACKGROUND: url(images/cal_year_head_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TD:hover { BACKGROUND: url(images/cal_month_cell_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TD:focus { BACKGROUND: url(images/cal_month_cell_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TD:active { BACKGROUND: url(images/cal_month_cell_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TD A.daylink { BORDER-RIGHT: #a8beda 1px solid; PADDING-RIGHT: 0.2em; DISPLAY: block; = PADDING-LEFT: 0.2em; FONT-WEIGHT: bold; FONT-SIZE: 110%; BACKGROUND: = #e3efff; FLOAT: left; PADDING-BOTTOM: 0.2em; WIDTH: 1.2em; PADDING-TOP: = 0.2em; BORDER-BOTTOM: #a8beda 1px solid; TEXT-ALIGN: center; = TEXT-DECORATION: none } DIV.calMonth TABLE TD A.daylink:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x } DIV.calMonth TABLE TD A.daylink SPAN { LEFT: -1000px; POSITION: absolute; TOP: 0px } DIV.calMonth TABLE TD.today { BACKGROUND: url(images/cal_month_today_bg.gif) #f9e091 no-repeat left = top } DIV.calMonth TABLE TD.today A.daylink { FONT-WEIGHT: bold; BACKGROUND: #f9e091 } DIV.calMonth TABLE TD.today A.daylink:hover { BACKGROUND: url(images/cal_year_today_bg.gif) repeat-x } DIV.calMonth TABLE TD.offday { BACKGROUND: #eeeeee } DIV.calMonth TABLE TD DIV { CLEAR: both; OVERFLOW: hidden; WIDTH: 8em } DIV.calMonth TABLE TD DIV UL { PADDING-RIGHT: 0.4em; PADDING-LEFT: 0.4em; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.calMonth TABLE TD DIV UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 1px; MARGIN: 0px; PADDING-TOP: 1px; WHITE-SPACE: nowrap } TABLE.calYear { BORDER-RIGHT: #a8beda 1px solid; BORDER-TOP: #a8beda 1px solid; = MIN-WIDTH: 200px; FONT-SIZE: 95%; MARGIN: 6px; BORDER-LEFT: #a8beda 1px = solid; BORDER-BOTTOM: #a8beda 1px solid; POSITION: relative; = BORDER-COLLAPSE: collapse } TABLE.calYearFloat { FLOAT: left; MARGIN: 6px 0.66%; WIDTH: 32% } TABLE.calYear THEAD TD { LEFT: -10000px; POSITION: absolute; TOP: 0px } TABLE.calYear TBODY TH { LEFT: -10000px; POSITION: absolute; TOP: 0px } TABLE.calYear CAPTION { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-SIZE: 108%; PADDING-BOTTOM: = 4px; MARGIN: 0px; PADDING-TOP: 2px; TEXT-ALIGN: center } TABLE.calYear CAPTION A { FONT-WEIGHT: bold; TEXT-DECORATION: none } TABLE.calYear CAPTION A:hover { TEXT-DECORATION: underline } TABLE.calYear THEAD TH { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #a8beda = 1px solid; PADDING-LEFT: 2px; FONT-WEIGHT: bold; BACKGROUND: = url(images/cal_year_head_bg.gif) #ddd repeat-x 50% bottom; = PADDING-BOTTOM: 2px; BORDER-LEFT: #aaa 1px solid; WIDTH: 14.3%; COLOR: = #333; PADDING-TOP: 2px; BORDER-BOTTOM: #a0a0a0 1px solid; TEXT-ALIGN: = center } TABLE.calYear TBODY TD { BORDER-RIGHT: #a8beda 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #a8beda 1px solid; PADDING-LEFT: 2px; BACKGROUND: white; PADDING-BOTTOM: = 2px; BORDER-LEFT: #a8beda 1px solid; WIDTH: 14.3%; PADDING-TOP: 2px; = BORDER-BOTTOM: #a8beda 1px solid; WHITE-SPACE: nowrap; TEXT-ALIGN: right } TABLE.calYear TD A { DISPLAY: block; WIDTH: 100%; POSITION: relative; TEXT-DECORATION: none } TABLE.calYear TD A IMG { FLOAT: left } TABLE.calYear TD:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD:focus { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD:active { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD.offday:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD.offday:focus { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD.offday:active { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TH:hover { BACKGROUND-IMAGE: url(images/cal_year_head_hover_bg.gif) } TABLE.calYear TH:focus { BACKGROUND-IMAGE: url(images/cal_year_head_hover_bg.gif) } TABLE.calYear TH:active { BACKGROUND-IMAGE: url(images/cal_year_head_hover_bg.gif) } TABLE.calYear TD.today { BACKGROUND: #f9e091 } TABLE.calYear TD.today:hover { BACKGROUND: url(images/cal_year_today_bg.gif) #f9e091 repeat-x 0px 0px } TABLE.calYear TD.today:focus { BACKGROUND: url(images/cal_year_today_bg.gif) #f9e091 repeat-x 0px 0px } TABLE.calYear TD.today A { FONT-WEIGHT: bold; COLOR: black } TABLE.calYear TD.today A:hover { BACKGROUND-IMAGE: none } TABLE.calYear TD.today A:active { BACKGROUND-IMAGE: none } TABLE.calYear TD.today A:focus { BACKGROUND-IMAGE: none } TABLE.calYear TD.offday { BORDER-RIGHT: #a8beda 1px solid; BORDER-TOP: #a8beda 1px solid; = BACKGROUND: #eee; BORDER-LEFT: #a8beda 1px solid; COLOR: #444444; = BORDER-BOTTOM: #a8beda 1px solid; TEXT-DECORATION: none } TABLE.calYear TD.hasEvent { FONT-WEIGHT: bold; BACKGROUND: url(images/cal_year_cell_bg.gif) = repeat-x right bottom } TABLE.calendarDay { BORDER-RIGHT: #cdcdcd 1px solid; BORDER-TOP: medium none; MARGIN: 10px = 0px 0px; BORDER-LEFT: #cdcdcd 1px solid; WIDTH: 100%; BORDER-BOTTOM: = #cdcdcd 1px solid; BORDER-COLLAPSE: collapse } TABLE.calendarDay THEAD { LEFT: -1000px; POSITION: absolute; TOP: 0px; HEIGHT: 1px } TABLE.calendarDay THEAD TH { LEFT: -1000px; POSITION: absolute; TOP: 0px; HEIGHT: 1px } UL.calendarWeek LI TABLE.calendarDay { BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN: 0px; = BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } TABLE.calendarDay TBODY TH { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = url(images/cal_day_time_bg.gif) #f3f3f3 repeat-x 50% bottom; = PADDING-BOTTOM: 14px; VERTICAL-ALIGN: top; BORDER-LEFT: #ccc 1px solid; = WIDTH: 6%; COLOR: #555; PADDING-TOP: 1px; BORDER-BOTTOM: #ccc 1px solid; = TEXT-ALIGN: right } TABLE.calendarDay TBODY TH:hover { BACKGROUND: url(images/cal_day_time_hover_bg.gif) #e6e5e5 repeat-x 50% = bottom } TABLE.calendarDay TBODY TH:focus { BACKGROUND: url(images/cal_day_time_hover_bg.gif) #e6e5e5 repeat-x 50% = bottom } TABLE.calendarDay TBODY TH:active { BACKGROUND: url(images/cal_day_time_hover_bg.gif) #e6e5e5 repeat-x 50% = bottom } TABLE.calendarDay TBODY TD { PADDING-RIGHT: 12px; BORDER-TOP: #cdcdcd 1px solid; PADDING-LEFT: 0px; = BACKGROUND: #fff; PADDING-BOTTOM: 3px; VERTICAL-ALIGN: top; PADDING-TOP: = 0px } TABLE.calendarDay TBODY TD.hasEvent { PADDING-LEFT: 6px; BACKGROUND: url(images/cal_day_cell_bg.gif) repeat-y = 0px 0px } TABLE.calendarDay TBODY TD.hasEvent A.jumpToEvent { LEFT: -1000px; POSITION: absolute; TOP: 0px } TABLE.calendarDay TBODY TR.halfHour TH { BORDER-TOP: #ededed 1px solid } TABLE.calendarDay TBODY TR.halfHour TD { BORDER-TOP: #ededed 1px solid } TABLE.calendarDay TBODY TR.midday TH { BORDER-TOP: #cdcdcd 2px solid } TABLE.calendarDay TBODY TR.midday TD { BORDER-TOP: #cdcdcd 2px solid } TABLE.calendarDay TR.notBusinessHours TH { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BACKGROUND: = #f3f3f3; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid } TABLE.calendarDay TR.notBusinessHours TD { BACKGROUND: #fafafa } TABLE.calendarDay TBODY TR.notBusinessHours TD.hasEvent { BACKGROUND: url(images/cal_day_cell_bg2.gif) #fafafa repeat-y 0px 0px } TABLE.calendarDay TR TH SPAN.ampm { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-SIZE: 75%; BACKGROUND: = #bbb; LEFT: -4px; PADDING-BOTTOM: 0px; COLOR: #fff; PADDING-TOP: 0px; = LETTER-SPACING: 0.1em; POSITION: relative; TOP: -1.2em } TABLE.calendarDay TBODY TR:hover TH { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:hover TD { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:focus TH { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:focus TD { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:active TH { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:active TD { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:hover TD.hasEvent { BACKGROUND: url(images/cal_day_hover_bg.gif) #f0f0f0 repeat-y 0px 0px } TABLE.calendarDay TBODY TR:focus TD.hasEvent { BACKGROUND: url(images/cal_day_hover_bg.gif) #f0f0f0 repeat-y 0px 0px } TABLE.calendarDay TBODY TR:active TD.hasEvent { BACKGROUND: url(images/cal_day_hover_bg.gif) #f0f0f0 repeat-y 0px 0px } TABLE.calendarDay TD DIV DIV { PADDING-RIGHT: 3px; DISPLAY: block; PADDING-LEFT: 3px; FONT-WEIGHT: = normal; FONT-SIZE: 85%; BACKGROUND: #b5ccea; FLOAT: left; = PADDING-BOTTOM: 1px; MARGIN: 0px 4px 0px -6px; PADDING-TOP: 1px } TABLE.calendarDay TD DIV DIV.contextMenuContainer { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; BACKGROUND: = none transparent scroll repeat 0% 0%; FLOAT: none; PADDING-BOTTOM: 0px; = MARGIN: 0px 0px 0px -3px; PADDING-TOP: 0px } TABLE.calendarDay TD DIV SPAN { FONT-SIZE: 90%; COLOR: #555 } UL.calendarWeek { BORDER-RIGHT: #cdcdcd 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #cdcdcd 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 10px = 0px 0px; BORDER-LEFT: #cdcdcd 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #cdcdcd 1px solid; LIST-STYLE-TYPE: none; HEIGHT: 1% } UL.calendarWeek LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #cdcdcd 1px solid; = POSITION: relative } UL.calendarWeek LI UL:first-child { BORDER-TOP: medium none } UL.calendarWeek UL LI:first-child { BORDER-TOP: medium none } UL.calendarWeek LI H3.weekDay { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; FONT-WEIGHT: bold; = FONT-SIZE: 110%; BACKGROUND: #e3efff; PADDING-BOTTOM: 0.3em; MARGIN: = 0px; COLOR: #666; PADDING-TOP: 0.3em } UL.calendarWeek LI H3.weekDay:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) #e3efff repeat-x 50% = bottom } UL.calendarWeek LI H3.weekDay:focus { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) #e3efff repeat-x 50% = bottom } UL.calendarWeek LI H3.weekDay:active { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) #e3efff repeat-x 50% = bottom } UL.calendarWeek LI UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 12px 6px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.calendarWeek LI UL LI { PADDING-RIGHT: 0px; BORDER-TOP: #ededed 1px solid; PADDING-LEFT: 0px; = PADDING-BOTTOM: 12px; PADDING-TOP: 6px; BORDER-BOTTOM: medium none } UL.calendarWeek LI UL LI:hover { BACKGROUND: url(images/cal_year_cell_bg.gif) repeat-x right bottom } UL.calendarWeek LI UL LI:focus { BACKGROUND: url(images/cal_year_cell_bg.gif) repeat-x right bottom } UL.calendarWeek LI UL LI:active { BACKGROUND: url(images/cal_year_cell_bg.gif) repeat-x right bottom } UL.calendarWeek LI UL LI H4 { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; FLOAT: left; PADDING-BOTTOM: 1px; MARGIN: 0px 12px 0px 0px; WIDTH: = 10em; COLOR: #555; PADDING-TOP: 1px } UL.calendarWeek LI DIV { MARGIN-LEFT: 11em } UL.calendarWeek LI DIV.contextMenuContainer { MARGIN: 0px 0px 0px -3px } UL.calendarWeek LI UL LI SPAN { FONT-SIZE: 90%; COLOR: #555 } .hidden { DISPLAY: none } UL.announcementList LI H4 { PADDING-RIGHT: 0.3em; PADDING-LEFT: 0px; FONT-WEIGHT: normal; = FONT-SIZE: 95%; LEFT: 0.2em; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: = 5em; COLOR: #555; PADDING-TOP: 0px; POSITION: absolute; TOP: 0.5em; = TEXT-ALIGN: right } UL.announcementList LI H4 { WIDTH: 6.7em; TOP: 0.8em; TEXT-ALIGN: center } UL.announcementList LI H4 SPAN { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 115% } UL.announcementList LI UL { PADDING-RIGHT: 0px; BORDER-TOP: #ededed 1px solid; PADDING-LEFT: 0px; = PADDING-BOTTOM: 6px; MARGIN: 0px 0.6em; PADDING-TOP: 6px; = LIST-STYLE-TYPE: none; POSITION: relative } UL.announcementList LI UL LI { PADDING-RIGHT: 0px; BORDER-TOP: #ededed 1px solid; PADDING-LEFT: 0.7em; = PADDING-BOTTOM: 0.6em; MARGIN: 0px; PADDING-TOP: 0.6em; BORDER-BOTTOM: = medium none; HEIGHT: 1% } UL.announcementList LI UL LI:unknown { PADDING-RIGHT: 0px; PADDING-LEFT: 0.7em; PADDING-BOTTOM: 0.3em; = PADDING-TOP: 0.6em } UL.announcementList LI UL LI:first-child { PADDING-RIGHT: 0px; BORDER-TOP: medium none; PADDING-LEFT: 0.7em; = PADDING-BOTTOM: 0.6em; PADDING-TOP: 0.3em } UL.announcementList LI UL LI H5 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } UL.announcementList LI UL LI H5 { FONT-SIZE: 105% } UL.announcementList LI UL LI P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0.2em } UL.announcementList LI UL LI P SPAN { FONT-WEIGHT: bold } UL.announcementList LI UL LI SPAN.postedBy { FONT-SIZE: 90%; FLOAT: right; COLOR: #777 } UL.calendarDay LI DIV.addEvent { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 1px; BORDER-LEFT: 0px; PADDING-TOP: 1px; = BORDER-BOTTOM: 0px; opacity: 0 } UL.calendarWeek LI DIV.addEvent { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 3px; BORDER-LEFT: 0px; PADDING-TOP: 3px; = BORDER-BOTTOM: 0px; opacity: 0 } DIV.addEvent A { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; BACKGROUND: #ededed; PADDING-BOTTOM: 1px; MARGIN: 0px 0px 0px = 6.2em; PADDING-TOP: 1px } UL.calendarWeek LI:hover DIV.addEvent { opacity: 1 } UL.calendarDay DIV:hover DIV.addEvent { opacity: 1 } UL.calDay LI A.addEvent { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #cccccc 1px solid; PADDING-LEFT: 6px; FONT-SIZE: 90%; RIGHT: 2px; = BACKGROUND: #e3efff; FILTER: alpha(opacity=3D0); PADDING-BOTTOM: 1px; = MARGIN: 2px 0px 0px 2px; BORDER-LEFT: #cccccc 1px solid; COLOR: #444444; = PADDING-TOP: 1px; BORDER-BOTTOM: #cccccc 1px solid; POSITION: absolute; = TEXT-DECORATION: none; opacity: 0 } UL.calendarWeek LI DIV.addEvent A { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #cccccc 1px solid; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: = 90%; BACKGROUND: #e3efff; FILTER: alpha(opacity=3D0); PADDING-BOTTOM: = 1px; MARGIN: 2px 0px 0px 2px; BORDER-LEFT: #cccccc 1px solid; COLOR: = #444444; PADDING-TOP: 1px; BORDER-BOTTOM: #cccccc 1px solid; = TEXT-DECORATION: none; opacity: 0 } UL.calendarWeek LI DIV.addEvent { MARGIN: 0px 0px 2px 3em } DIV.calMonth TABLE TD A.addEvent:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) 0% 50% } UL.calendarWeek LI DIV.addEvent A:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) 0% 50% } UL.calDay LI A.addEvent:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) 0% 50% } DIV.calMonth TABLE TD:hover A.addEvent { FILTER: alpha(opacity=3D100); opacity: 1 } UL.calendarWeek LI:hover DIV.addEvent A { FILTER: alpha(opacity=3D100); opacity: 1 } UL.calDay LI:hover A.addEvent { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.blogContainer { FLOAT: left; WIDTH: 74%; MARGIN-RIGHT: 1% } DIV.blogContainer H3.blogHead { PADDING-RIGHT: 15px; PADDING-LEFT: 15px; FONT-SIZE: 100%; BACKGROUND: = #aaa; PADDING-BOTTOM: 3px; MARGIN: 0px 0px 12px; COLOR: #fff; = PADDING-TOP: 3px } DIV.blogContainer DIV.blogEntry { BORDER-RIGHT: #ccc 0px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ccc 2px = solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 12px 0px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 0px = solid } DIV.blogContainer DIV.blogEntry H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 18px; FONT-SIZE: 110%; BACKGROUND: = url(images/small_discussions.gif) no-repeat 0px 2px; PADDING-BOTTOM: = 0px; MARGIN: 6px 12px 0px; OVERFLOW: hidden; PADDING-TOP: 3px; = WORD-WRAP: break-word } DIV.blogContainer DIV.blogEntry DIV.entryText { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: white; OVERFLOW-X: = auto; PADDING-BOTTOM: 18px; MARGIN: 3px 12px 12px; WIDTH: 96%; = PADDING-TOP: 9px } DIV.blogContainer DIV.entryDate { FONT-SIZE: 95%; MARGIN: 3px 0px 6px 12px; COLOR: #444 } DIV.blogContainer DIV.entryDate A { FONT-WEIGHT: bold } DIV.blogContainer DIV.entryFooter { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; BACKGROUND: #f6f6f6; = PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-TOP: 6px } DIV.blogContainer DIV.entryFooter DIV.commentControls { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.blogContainer DIV.entryFooter DIV.commentControls H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; BACKGROUND: = none transparent scroll repeat 0% 0%; FLOAT: left; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 0px } DIV.blogContainer DIV.entryFooter A.browse { DISPLAY: block; FLOAT: right } DIV.blogContainer DIV.entryFooter DIV.addBlogComment TABLE { WIDTH: 98% } DIV.blogContainer DIV.entryFooter DIV.addBlogComment TEXTAREA { WIDTH: 99% } DIV.blogContainer DIV.entryFooter DIV.addBlogComment { DISPLAY: none; FONT-SIZE: 100%; LEFT: 0px! important; MARGIN: 6px; = WIDTH: 98%; POSITION: static! important; TOP: 0px! important } DIV.blogContainer DIV.entryFooter DIV.addBlogComment DIV.controls { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } DIV.blogContainer UL.entryComments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 6px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.blogContainer UL.entryComments LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 6px; MARGIN: = 0px; PADDING-TOP: 6px; LIST-STYLE-TYPE: none } DIV.blogContainer UL.entryComments LI P { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 12px; BACKGROUND: #fff; PADDING-BOTTOM: 12px; = MARGIN: 0px 0px 4px; OVERFLOW: hidden; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 12px; BORDER-BOTTOM: #ccc 1px solid; HEIGHT: 1% } DIV.blogContainer UL.entryComments LI P.commentDate { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; FONT-SIZE: 90%; Z-INDEX: 10; BACKGROUND: = url(images/bubble_top_thin.gif) no-repeat 15px 100%; PADDING-BOTTOM: = 4px; MARGIN: 2px 0px -1px; BORDER-LEFT: medium none; COLOR: #444; = PADDING-TOP: 0px; BORDER-BOTTOM: medium none; POSITION: relative; = TEXT-ALIGN: right } DIV.blogContainer UL.entryComments LI H5 { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #444; PADDING-TOP: 3px } DIV.blogContainer UL.entryComments LI.newComment H5 { FONT-WEIGHT: bold } DIV.blogContainer DIV.blogInstructions { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #f1f1f1; = PADDING-BOTTOM: 6px; MARGIN: 0px 0px 12px; PADDING-TOP: 3px; POSITION: = relative } DIV.blogContainer DIV.blogInstructions H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 3px 0px; = PADDING-TOP: 0px } DIV.blogNav { FLOAT: right; WIDTH: 25% } DIV.blogNav DIV.portlet { BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN: 0px; = BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } DIV.blogNav DIV.portlet { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.blogNav DIV.portletBlock { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.blogNav UL { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.blogNav UL LI { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.blogNav UL LI { OVERFLOW: hidden; WIDTH: 100% } DIV.blogNav DIV.portlet DIV.portletBlock { BORDER-RIGHT: #a8beda 2px solid; BORDER-TOP: #a8beda 2px solid; MARGIN: = 0px; BORDER-LEFT: #a8beda 2px solid; BORDER-BOTTOM: #a8beda 2px solid } DIV.blogNav DIV.portlet UL.blockGroups LI A.itemHead { BORDER-TOP: #a8beda 1px solid } DIV.blogNav DIV.portlet UL.blockGroups LI:first-child A { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } DIV.blogNav LI.currentBlog { FONT-WEIGHT: bold } DIV.blogNav LI.currentBlog SPAN { FONT-WEIGHT: normal } DIV.blogContainer A.newItem { FONT-WEIGHT: normal } DIV.blogContainer A SPAN.newItem { FONT-WEIGHT: normal } DIV.blogNav A.newItem { FONT-WEIGHT: normal } DIV.blogNav A SPAN.newItem { FONT-WEIGHT: normal } DIV.blogNav DIV.portlet UL.blockGroups DIV.blogAction { FONT-SIZE: 95%; MARGIN: 4px 9px 6px } DIV.blogContainer UL.entryComments LI SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.blogContainer DIV.entryFooter DIV.commentControls SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.blogContainer DIV.blogEntry H4 SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.blogContainer DIV.commentControls SPAN.newItems { DISPLAY: block; FLOAT: left; MARGIN-LEFT: 4px } DIV.blogNav DIV.portletBlock UL.blockGroups LI SPAN.newItems { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN-LEFT: 0px; COLOR: black; PADDING-TOP: 0px } DIV.blogNav UL.iconLegend LI SPAN.newItems { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN-LEFT: 0px; COLOR: black; PADDING-TOP: 0px } DIV.blogNav UL.iconLegend { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 9px = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.blogNav UL.iconLegend LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 0px } DIV.blogNav UL UL { MARGIN-LEFT: 9px } DIV.blogNav UL#blogArchive UL { MARGIN: 0px 9px 9px 18px } DIV.journalContainer { FLOAT: left; WIDTH: 74%; MARGIN-RIGHT: 1% } DIV.journalContainer H3.blogHead { PADDING-RIGHT: 15px; PADDING-LEFT: 15px; FONT-SIZE: 100%; BACKGROUND: = #aaa; PADDING-BOTTOM: 3px; MARGIN: 0px 0px 12px; COLOR: #fff; = PADDING-TOP: 3px; TEXT-ALIGN: center } DIV.journalContainer DIV.blogEntry { BORDER-RIGHT: #eee 3px solid; PADDING-RIGHT: 0px; BORDER-TOP: #eee 3px = solid; PADDING-LEFT: 36px; BACKGROUND: = url(images/blog_notebook_paper.gif) #fff repeat-y 0px 0px; = PADDING-BOTTOM: 0px; MARGIN: 12px 0px; BORDER-LEFT: medium none; = PADDING-TOP: 0px; BORDER-BOTTOM: #eee 3px solid; POSITION: relative } DIV.journalContainer DIV.blogEntry H4 { PADDING-RIGHT: 24px; PADDING-LEFT: 18px; FONT-SIZE: 110%; BACKGROUND: = #fff; PADDING-BOTTOM: 0px; MARGIN: 0px; OVERFLOW: hidden; PADDING-TOP: = 12px; TEXT-ALIGN: center; WORD-WRAP: break-word } DIV.journalContainer DIV.entryDate { PADDING-RIGHT: 24px; PADDING-LEFT: 18px; FONT-SIZE: 95%; Z-INDEX: 100; = BACKGROUND: #fff; PADDING-BOTTOM: 12px; MARGIN: 0px; COLOR: #444; = PADDING-TOP: 3px; BORDER-BOTTOM: #c0dace 1px solid; TEXT-ALIGN: center } DIV.journalContainer DIV.entryDate A { FONT-WEIGHT: bold } DIV.journalContainer DIV.blogEntry DIV.entryText { PADDING-RIGHT: 12px; PADDING-LEFT: 18px; BACKGROUND: #fff; OVERFLOW-X: = auto; PADDING-BOTTOM: 18px; MARGIN: 0px; WIDTH: 92%; PADDING-TOP: 12px } DIV.journalContainer DIV.entryFooter { PADDING-RIGHT: 0px; PADDING-LEFT: 31px; BACKGROUND: = url(images/blog_notebook_paper_bot.gif) repeat-x center bottom; = PADDING-BOTTOM: 4px; MARGIN: 0px 0px 0px -31px; PADDING-TOP: 0px; ZOOM: = 1 } DIV.journalContainer DIV.entryFooter DIV.commentControls { PADDING-RIGHT: 12px; PADDING-LEFT: 18px; BACKGROUND: #fff; = PADDING-BOTTOM: 12px; COLOR: #444; PADDING-TOP: 6px } DIV.journalContainer DIV.entryFooter DIV.commentControls H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; BACKGROUND: = none transparent scroll repeat 0% 0%; FLOAT: left; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 0px } DIV.journalContainer DIV.entryFooter A.browse { DISPLAY: block; FLOAT: right } DIV.journalContainer DIV.entryFooter DIV.addBlogComment TABLE { WIDTH: 98% } DIV.journalContainer DIV.entryFooter DIV.addBlogComment TEXTAREA { WIDTH: 99% } DIV.journalContainer DIV.entryFooter DIV.addBlogComment { DISPLAY: none; FONT-SIZE: 100%; LEFT: 0px! important; MARGIN: 0px 12px = 18px 18px; WIDTH: auto; POSITION: static! important; TOP: 0px! important } DIV.journalContainer DIV.entryFooter DIV.addBlogComment DIV.controls { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } DIV.journalContainer UL.entryComments { PADDING-RIGHT: 0px; PADDING-LEFT: 18px; BACKGROUND: #fff; = PADDING-BOTTOM: 12px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: = none } DIV.journalContainer UL.entryComments LI { PADDING-RIGHT: 6px; BORDER-TOP: #c0dace 1px solid; PADDING-LEFT: 0px; = PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-TOP: 4px; LIST-STYLE-TYPE: = none } DIV.journalContainer UL.entryComments LI P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 4px = 18px 4px 19px; PADDING-TOP: 0px } DIV.journalContainer UL.entryComments LI P.commentDate { FONT-SIZE: 90%; MARGIN-LEFT: 19px; COLOR: #444 } DIV.journalContainer UL.entryComments LI H5 { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 18px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; BACKGROUND: url(images/small_blog_comment.gif) = no-repeat 0px 3px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #000; = PADDING-TOP: 3px } DIV.journalContainer UL.entryComments LI.newComment H5 { FONT-WEIGHT: bold } DIV.journalContainer DIV.blogInstructions { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #f1f1f1; = PADDING-BOTTOM: 6px; MARGIN: 0px 0px 12px; PADDING-TOP: 3px; POSITION: = relative } DIV.journalContainer DIV.blogInstructions H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; BACKGROUND: = none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 3px = 0px; PADDING-TOP: 0px; TEXT-ALIGN: left } DIV.journalContainer DIV.blogInstructions P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.journalNav { FLOAT: right; WIDTH: 25% } DIV.journalNav DIV.portlet { BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN: 0px; = BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } DIV.journalNav DIV.portlet { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.journalNav DIV.portletBlock { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.journalNav UL { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.journalNav UL LI { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.journalNav UL LI { OVERFLOW: hidden; WIDTH: 100% } DIV.journalNav DIV.portlet DIV.portletBlock { BORDER-RIGHT: #a8beda 2px solid; BORDER-TOP: #a8beda 2px solid; MARGIN: = 0px; BORDER-LEFT: #a8beda 2px solid; BORDER-BOTTOM: #a8beda 2px solid } DIV.journalNav DIV.portlet UL.blockGroups LI A.itemHead { BORDER-TOP: #a8beda 1px solid } DIV.journalNav DIV.portlet UL.blockGroups LI:first-child A { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } DIV.journalNav LI.currentBlog { FONT-WEIGHT: bold } DIV.journalNav LI.currentBlog SPAN { FONT-WEIGHT: normal } DIV.journalContainer A.newItem { FONT-WEIGHT: normal } DIV.journalContainer A SPAN.newItem { FONT-WEIGHT: normal } DIV.journalNav A.newItem { FONT-WEIGHT: normal } DIV.journalNav A SPAN.newItem { FONT-WEIGHT: normal } DIV.journalNav DIV.portlet UL.blockGroups DIV.blogAction { FONT-SIZE: 95%; MARGIN: 4px 9px 6px } DIV.journalContainer UL.entryComments LI SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.journalContainer DIV.entryFooter DIV.commentControls SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.journalContainer DIV.blogEntry H4 SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.journalContainer DIV.commentControls SPAN.newItems { DISPLAY: block; FLOAT: left; MARGIN-LEFT: 4px } DIV.journalNav DIV.portletBlock UL.blockGroups LI SPAN.newItems { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN-LEFT: 0px; COLOR: black; PADDING-TOP: 0px } DIV.journalNav UL.iconLegend LI SPAN.newItems { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN-LEFT: 0px; COLOR: black; PADDING-TOP: 0px } DIV.journalNav UL.iconLegend { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 9px = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.journalNav UL.iconLegend LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 0px } DIV.journalNav UL UL { MARGIN-LEFT: 9px } DIV.journalNav UL#blogArchive UL { MARGIN: 0px 9px 9px 18px } .subActionBar { BORDER-RIGHT: medium none; PADDING-RIGHT: 12px; BORDER-TOP: #d7bb66 1px = solid; PADDING-LEFT: 12px; FONT-SIZE: 95%; BACKGROUND: #eddca5 repeat-x = 0px -18px; PADDING-BOTTOM: 6px; MARGIN: -1px 0px 0px; BORDER-LEFT: = medium none; PADDING-TOP: 0px; BORDER-BOTTOM: #d7bb66 1px solid } .subActionBar FIELDSET { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: = 0px } .subActionBar FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .subActionBar DIV.block { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 3px 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px } .subActionBar DIV.button { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 3px 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px } .subActionBar SPAN.block { FLOAT: none } .subActionBar SPAN.button { FLOAT: none } .subActionBar LI.sub { POSITION: relative } .subActionBar FIELDSET LEGEND + DIV.block { BORDER-LEFT: 0px } .subActionBar SELECT { MAX-WIDTH: 180px; VERTICAL-ALIGN: middle } .subActionBar SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 9px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .subActionBar DIV.button { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } .subActionBar DIV.last { BORDER-RIGHT: medium none } .subActionBar FIELDSET { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .subActionBar OPTGROUP { BORDER-TOP: #ddd 1px solid; MARGIN-TOP: 6px; FONT-WEIGHT: normal; = COLOR: #777; FONT-STYLE: normal } .subActionBar OPTGROUP OPTION { COLOR: #000 } .subActionBar UL LI.sortableSelector A { PADDING-LEFT: 18px } .navPageHeader { MARGIN: 1em 0px; TEXT-ALIGN: center } .navPageHeader H3 { DISPLAY: inline; MARGIN-LEFT: 12px } .navPageHeader SPAN { FONT-WEIGHT: normal; MARGIN: 0px 6px 0px 0px; COLOR: #888 } FIELDSET.secondaryActions { FLOAT: right } DIV.secondaryBlock { FLOAT: right } .cellStatus { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN-TOP: = 4px; FONT-SIZE: 90%; BACKGROUND: #efefef; BORDER-LEFT: #ddd 1px solid; = BORDER-BOTTOM: #ddd 1px solid; WHITE-SPACE: nowrap } .cellStatus DIV { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 8px; DISPLAY: inline; = PADDING-LEFT: 8px; PADDING-BOTTOM: 2px; PADDING-TOP: 2px; WHITE-SPACE: = nowrap } .statusTitle { =09 } .cellStatus DIV.iconlegend { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; FLOAT: right; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN-RIGHT: = 3px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px } .sortImage { LEFT: 6px; POSITION: absolute; TOP: 9px } .bubble { PADDING-RIGHT: 0pt; DISPLAY: none; PADDING-LEFT: 0pt; Z-INDEX: 1000; = PADDING-BOTTOM: 0pt; WIDTH: 190px; PADDING-TOP: 0pt; POSITION: absolute } .bubble UL { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 6px; Z-INDEX: 1000; PADDING-BOTTOM: = 6px; MARGIN: 0px; OVERFLOW: hidden; BORDER-LEFT: #acc2df 1px solid; = PADDING-TOP: 6px; BORDER-BOTTOM: #5577bb 1px solid; LIST-STYLE-TYPE: = none; BACKGROUND-COLOR: #e2eefe } .bubble UL LI { CLEAR: left; PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; FONT-WEIGHT: bold; = FONT-SIZE: 90%; FLOAT: left; PADDING-BOTTOM: 0pt; MARGIN: 0pt 0pt 4px; = WIDTH: 174px; COLOR: #666666; PADDING-TOP: 0pt } .bubble UL LI SPAN { DISPLAY: block; FONT-WEIGHT: normal; FLOAT: left; WIDTH: 80px; COLOR: = #666666; MARGIN-RIGHT: 3px } .bubble UL LI SPAN.icon { FLOAT: left; WIDTH: 20px } .bubble UL LI SPAN.label { FONT-WEIGHT: normal; FONT-SIZE: 100%; WIDTH: 147px } .bubbleStem { WIDTH: 190px; POSITION: relative; HEIGHT: 14px } .bottom .bubbleStem { BOTTOM: 4px } .top .bubbleStem { TOP: -2px } .left .bubbleStem { PADDING-LEFT: 24px } .right .bubbleStem { RIGHT: 24px; TEXT-ALIGN: right } UL.selectList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px 6px 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.selectList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 99; FLOAT: left; = PADDING-BOTTOM: 4px; MARGIN: 0px 3px 0px 0px; PADDING-TOP: 2px } UL.selectList LI.sub { PADDING-TOP: 0px } UL.selectList LI.sub A { PADDING-RIGHT: 3px; DISPLAY: block; PADDING-LEFT: 9px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px; TEXT-DECORATION: none } UL.selectList LI.sub:hover UL { LEFT: 0px; TOP: 20px! important } UL.selectList LI.sub UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; POSITION: static! important } UL.selectList LI.sub UL LI H4 { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 3px; FONT-WEIGHT: = bold; FONT-SIZE: 90%; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #888; = PADDING-TOP: 6px; BORDER-BOTTOM: #ccc 1px solid } UL.selectList LI.sub UL LI H4 { WIDTH: 152px } UL.selectList LI.sub UL LI A { BORDER-RIGHT: medium none; PADDING-RIGHT: 3px; BORDER-TOP: medium none; = PADDING-LEFT: 14px; BACKGROUND-IMAGE: none! important; PADDING-BOTTOM: = 2px; BORDER-LEFT: medium none; WIDTH: 128px! important; PADDING-TOP: = 2px; BORDER-BOTTOM: medium none } UL.selectList LI.sub UL LI A:hover { BORDER-RIGHT: medium none; PADDING-RIGHT: 3px; BORDER-TOP: medium none; = PADDING-LEFT: 14px; BACKGROUND-IMAGE: none! important; PADDING-BOTTOM: = 2px; BORDER-LEFT: medium none; WIDTH: 128px! important; PADDING-TOP: = 2px; BORDER-BOTTOM: medium none } UL.selectList LI.sub UL LI A:hover { BACKGROUND-COLOR: #ffffff } UL.selectList LI.sub A SPAN IMG { WIDTH: 12px; HEIGHT: 12px; opacity: 0 } UL.selectList LI.sub A SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/expand.gif) no-repeat center center; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } UL.selectList LI.sub A SPAN#currentView { BACKGROUND-IMAGE: none } UL.selectList LI.sub A SPAN#currentSortBy { BACKGROUND-IMAGE: none } UL.selectList LI.sub A SPAN#currentColSortDir { BACKGROUND-IMAGE: none } UL.selectList LI.sub UL LI.current A { BACKGROUND: url(images/current.gif) #c7d9f3 no-repeat 1px 4px } UL.selectList LI.sub UL LI.current A:hover { BACKGROUND: url(images/current.gif) #c7d9f3 no-repeat 1px 4px } DIV.gradeDetails { PADDING-RIGHT: 0px; PADDING-LEFT: 12px; FONT-SIZE: 90%; PADDING-BOTTOM: = 0px; PADDING-TOP: 6px } DIV.gradeDetails DIV.label { WIDTH: 15% } SPAN.unstyled { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; COLOR: #000000; PADDING-TOP: 0px } @media Print =20 { DIV.hideOnPrint { DISPLAY: none } } BODY.reports { BACKGROUND: #f0f0f0 } BODY.reports UL { PADDING-RIGHT: 24px; PADDING-LEFT: 24px; PADDING-BOTTOM: 24px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } BODY.reports UL LI { CLEAR: both; PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: = 6px; PADDING-TOP: 0px } BODY.reports UL LI DIV.label { COLOR: #777 } BODY.reports UL LI:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } DIV.toc_div OL LI UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } BODY.reports H1 { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; FONT-SIZE: 160%; BACKGROUND: = #555 repeat-x right bottom; PADDING-BOTTOM: 9px; MARGIN: 0px; COLOR: = #fff; PADDING-TOP: 9px } BODY.reports H2 { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 150%; PADDING-BOTTOM: = 3px; MARGIN: 6px 18px 6px 14px; COLOR: #000; PADDING-TOP: 3px } BODY.reports DIV.toc_div H2 { BACKGROUND: none transparent scroll repeat 0% 0% } BODY.reports H3 { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 140%; PADDING-BOTTOM: = 3px; MARGIN: 6px 18px 6px 30px; PADDING-TOP: 3px } BODY.reports H3 A { COLOR: #7d899e; TEXT-DECORATION: none } BODY.reports H3 A IMG { VERTICAL-ALIGN: middle; MARGIN-RIGHT: 6px } BODY.reports H4 { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 115%; BACKGROUND: = #bbb; PADDING-BOTTOM: 3px; MARGIN: 0px 10px; COLOR: #fff; PADDING-TOP: = 3px; HEIGHT: 1% } BODY.reports UL LI H5 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; PADDING-BOTTOM: = 6px; MARGIN: 12px -12px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px = solid } BODY.reports TABLE.attachments { MARGIN: 0px; WIDTH: auto } BODY.reports TABLE.wide { MARGIN: 0px; WIDTH: 100% } DIV.toc_div { CLEAR: both; BORDER-RIGHT: #ccc 2px solid; PADDING-RIGHT: 0px; = BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 8px; PADDING-BOTTOM: 4px; = MARGIN: 6px 18px 18px; BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #ccc 2px solid } DIV.toc_div H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.toc_div H2 A { FONT-SIZE: 85%; TEXT-DECORATION: none } DIV.toc_div H2 A IMG { MARGIN-RIGHT: 6px } DIV.toc_div A.toggle { PADDING-RIGHT: 10px; MARGIN-TOP: 2px; PADDING-LEFT: 10px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; BACKGROUND: #f6f6f6; FLOAT: right; = PADDING-BOTTOM: 6px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 5px; = BORDER-BOTTOM: #ccc 1px solid; POSITION: relative; TOP: -2px; = TEXT-DECORATION: none } DIV.toc_div A.toggle:hover { BACKGROUND: #fff } DIV.backtotop { FLOAT: right } DIV.dateofreport { FLOAT: right } DIV.dateofreport { MARGIN: 6px 18px 12px 0px } BODY.reports DIV.block { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BACKGROUND: = #fff; MARGIN: 0px 36px 24px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: = #ccc 1px solid } DIV.backtotop { FLOAT: right; MARGIN-BOTTOM: -40px; MARGIN-RIGHT: -1px; POSITION: = relative } DIV.backtotop A { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: medium = none; DISPLAY: block; PADDING-LEFT: 8px; FONT-SIZE: 95%; BACKGROUND: = #f6f6f6; PADDING-BOTTOM: 3px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: = 3px; BORDER-BOTTOM: #ccc 1px solid; TEXT-DECORATION: none } DIV.backtotop A:hover { BACKGROUND: #fff } DIV.backtotop A IMG { MARGIN-RIGHT: 5px } A.cmimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 12px; BACKGROUND: = url(images/cm_arrow.gif) #f9f9f9 no-repeat -1px -1px; FILTER: = alpha(opacity=3D80); PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 3px; = PADDING-TOP: 0px; ZOOM: 1; opacity: 0.8 } A.cmimg:hover { FILTER: alpha(opacity=3D100); opacity: 1 } A.cmimg:focus { FILTER: alpha(opacity=3D100); opacity: 1 } A.cmimg IMG { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FILTER: alpha(opacity=3D0); = PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 16px; PADDING-TOP: 0px; HEIGHT: = 14px; opacity: 0 } DIV.navPalette UL.courseMenu A.cmimg { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 0px; RIGHT: = 0px; BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; = FILTER: alpha(opacity=3D70); PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 0px; ZOOM: 1; POSITION: absolute; TOP: 5px; opacity: 0.7 } .portlet A.cmimg { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 0px; RIGHT: = 0px; BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; = FILTER: alpha(opacity=3D70); PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 0px; ZOOM: 1; POSITION: absolute; TOP: 5px; opacity: 0.7 } DIV.navPalette UL.courseMenu A.cmimg:hover { BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D100); ZOOM: 1; opacity: 1 } .portlet A.cmimg:hover { BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D100); ZOOM: 1; opacity: 1 } DIV.navPalette UL.courseMenu A.cmimg:focus { BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D100); ZOOM: 1; opacity: 1 } .portlet A.cmimg:focus { BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D100); ZOOM: 1; opacity: 1 } DIV.navPalette UL.courseMenu LI.subhead A.cmimg { TOP: 9px } .portlet A.cmimg { RIGHT: 0px; POSITION: relative; TOP: 2px } DIV.navPalette UL.courseMenu A.cmimg IMG { FILTER: alpha(opacity=3D0); WIDTH: 13px; HEIGHT: 13px; opacity: 0 } .portlet A.cmimg IMG { FILTER: alpha(opacity=3D0); WIDTH: 13px; HEIGHT: 13px; opacity: 0 } SPAN.reorder IMG { FILTER: alpha(opacity=3D0); opacity: 0 } H3 SPAN.reorder IMG { MARGIN: 6px 3px } .cmdiv { DISPLAY: none; Z-INDEX: 200; ZOOM: 1; POSITION: absolute } .menumini { DISPLAY: none; Z-INDEX: 200; ZOOM: 1; POSITION: absolute } DIV.quickAddPal { DISPLAY: none; Z-INDEX: 200; ZOOM: 1; POSITION: absolute } DIV.keyboardAccess { DISPLAY: none; Z-INDEX: 200; ZOOM: 1; POSITION: absolute } UL.nav LI.sub UL { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; WIDTH: 138px; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; = BACKGROUND-COLOR: #e2eefe } .cmdiv UL { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; WIDTH: 138px; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; = BACKGROUND-COLOR: #e2eefe } .menumini UL { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; WIDTH: 138px; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; = BACKGROUND-COLOR: #e2eefe } DIV.quickAddPal { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; WIDTH: 138px; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; = BACKGROUND-COLOR: #e2eefe } DIV.keyboardAccess { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; WIDTH: 138px; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; = BACKGROUND-COLOR: #e2eefe } .quickAddPal { FONT-SIZE: 85%; WIDTH: 19em } .quickAddColor { WIDTH: 311px } .quickAddColor A.genericButton { FLOAT: left; MARGIN: 2px 0px } .modalOverlay { DISPLAY: none; Z-INDEX: 90; RIGHT: 0px; FILTER: alpha(opacity=3D1); = LEFT: 0px; WIDTH: 100%; BOTTOM: 0px; POSITION: absolute; TOP: 0px; = HEIGHT: 100%; BACKGROUND-COLOR: #000; opacity: .01 } UL.nav LI.sub { POSITION: static } UL.nav LI.sub:hover { POSITION: relative } UL.nav LI.sub UL { Z-INDEX: 1000; POSITION: absolute; TOP: -10000px } UL.nav LI.sub:hover { Z-INDEX: 1010! important } UL.nav LI.sub:hover UL { Z-INDEX: 1010! important } .cmdiv { Z-INDEX: 1150! important; BORDER-BOTTOM: #5577bb 1px solid } .cmdiv UL { BORDER-TOP: #acc2df 1px solid; WIDTH: 180px; BORDER-BOTTOM: 0px } .menumini UL { WIDTH: 120px } .cmdiv UL:first-child { BORDER-TOP: medium none } .menumini UL:first-child { BORDER-TOP: medium none } UL.nav LI.sub UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; ZOOM: 1 } UL.nav LI.sub UL LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; = DISPLAY: block; PADDING-LEFT: 20px; FONT-WEIGHT: normal; BACKGROUND: = url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; OVERFLOW-X: = hidden; PADDING-BOTTOM: 3px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: = 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: = 0px; ZOOM: 1; TEXT-DECORATION: none; WORD-WRAP: break-word } UL.nav LI.sub UL LI A:hover { BORDER-RIGHT: 0px; PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; = DISPLAY: block; PADDING-LEFT: 20px; FONT-WEIGHT: normal; BACKGROUND: = url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; OVERFLOW-X: = hidden; PADDING-BOTTOM: 3px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: = 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: = 0px; ZOOM: 1; TEXT-DECORATION: none; WORD-WRAP: break-word } .cmdiv A { BORDER-RIGHT: 0px; PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; = DISPLAY: block; PADDING-LEFT: 20px; FONT-WEIGHT: normal; BACKGROUND: = url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; OVERFLOW-X: = hidden; PADDING-BOTTOM: 3px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: = 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: = 0px; ZOOM: 1; TEXT-DECORATION: none; WORD-WRAP: break-word } .menumini A { BORDER-RIGHT: 0px; PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; = DISPLAY: block; PADDING-LEFT: 20px; FONT-WEIGHT: normal; BACKGROUND: = url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; OVERFLOW-X: = hidden; PADDING-BOTTOM: 3px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: = 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: = 0px; ZOOM: 1; TEXT-DECORATION: none; WORD-WRAP: break-word } UL.nav LI.sub UL LI A:focus { BORDER-RIGHT: 0px; PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; = DISPLAY: block; PADDING-LEFT: 20px; FONT-WEIGHT: normal; BACKGROUND: = url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; OVERFLOW-X: = hidden; PADDING-BOTTOM: 3px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: = 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: = 0px; ZOOM: 1; TEXT-DECORATION: none; WORD-WRAP: break-word } .cmdiv A { BORDER-RIGHT: medium none; BORDER-TOP: medium none; FONT-SIZE: 95%; = BORDER-LEFT: medium none; WIDTH: auto; BORDER-BOTTOM: medium none } .menumini A { BORDER-RIGHT: medium none; PADDING-RIGHT: 10px; BORDER-TOP: medium = none; PADDING-LEFT: 16px; FONT-SIZE: 85%; PADDING-BOTTOM: 2px; = BORDER-LEFT: medium none; WIDTH: auto; PADDING-TOP: 2px; BORDER-BOTTOM: = medium none } UL.nav LI.sub UL.narrow { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 5000! = important; FLOAT: none; PADDING-BOTTOM: 0px; WIDTH: 130px; PADDING-TOP: = 0px; ZOOM: 1; HEIGHT: 1% } UL.nav LI.sub UL.narrow LI { CLEAR: both; BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; = PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: -2px 0px = 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; ZOOM: 1; = HEIGHT: 1% } UL.nav LI.sub UL.narrow LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 6px; FONT-SIZE: 85%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: 118px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; ZOOM: 1; TEXT-ALIGN: left } UL.nav LI.sub UL.narrow LI A:hover { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 6px; FONT-SIZE: 85%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: 118px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; ZOOM: 1; TEXT-ALIGN: left } UL.nav LI.sub UL.narrow LI A:focus { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 6px; FONT-SIZE: 85%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: 118px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; ZOOM: 1; TEXT-ALIGN: left } DIV.topGlobalLinks UL.nav LI.sub { Z-INDEX: 1000! important; ZOOM: 1; HEIGHT: 1% } UL.nav LI.sub UL LI:first-child A { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: = 0px } DIV.actionBarMicro UL.nav LI.sub UL LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px! important; BORDER-TOP: 0px; = DISPLAY: block; PADDING-LEFT: 14px! important; FONT-WEIGHT: normal; = FONT-SIZE: 85%; BACKGROUND: url(images/cm_bullet_single.gif) #e2eefe = no-repeat 5px 3px; PADDING-BOTTOM: 2px! important; MARGIN: 0px; = BORDER-LEFT: 0px; WIDTH: 100px; COLOR: #444; PADDING-TOP: 2px! = important; BORDER-BOTTOM: 0px; TEXT-DECORATION: none } DIV.paneTabs UL.nav LI.sub UL LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px! important; BORDER-TOP: 0px; = DISPLAY: block; PADDING-LEFT: 14px! important; FONT-WEIGHT: normal; = FONT-SIZE: 85%; BACKGROUND: url(images/cm_bullet_single.gif) #e2eefe = no-repeat 5px 3px; PADDING-BOTTOM: 2px! important; MARGIN: 0px; = BORDER-LEFT: 0px; WIDTH: 100px; COLOR: #444; PADDING-TOP: 2px! = important; BORDER-BOTTOM: 0px; TEXT-DECORATION: none } DIV.paneTabs UL.nav LI.sub UL LI A { TEXT-ALIGN: left } UL.nav LI.sub UL LI A:hover { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } .cmdiv A:hover { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } .menumini A:hover { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } UL.nav LI.sub UL LI A:focus { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } .cmdiv A:focus { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } .menumini A:focus { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } DIV.timediv UL LI A:hover { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px } .timediv UL LI A:focus { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px } DIV.timediv UL LI A:focus { COLOR: #444444; BACKGROUND-COLOR: #e2eefe } DIV.timediv UL LI A:hover:focus { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.actionBarMicro UL.nav LI.sub UL LI A:hover { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff no-repeat 5px 3px; BORDER-LEFT: = 0px; COLOR: #000; BORDER-BOTTOM: 0px } DIV.paneTabs UL.nav LI.sub UL LI A:hover { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff no-repeat 5px 3px; BORDER-LEFT: = 0px; COLOR: #000; BORDER-BOTTOM: 0px } DIV.actionBarMicro UL.nav LI.sub UL LI A:focus { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff no-repeat 5px 3px; BORDER-LEFT: = 0px; COLOR: #000; BORDER-BOTTOM: 0px } DIV.paneTabs UL.nav LI.sub UL LI A:focus { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff no-repeat 5px 3px; BORDER-LEFT: = 0px; COLOR: #000; BORDER-BOTTOM: 0px } UL.nav LI.sub:hover UL { Z-INDEX: 101; LEFT: 0px; TOP: 22px } DIV.actionBarMicro UL.nav LI.sub:hover UL { Z-INDEX: 101; LEFT: 0px; TOP: 22px } DIV.topGlobalLinks UL.nav LI.sub:hover UL { Z-INDEX: 101; LEFT: 0px; TOP: 0px } DIV.topTabs-compact DIV.topGlobalLinks UL.nav LI.sub:hover UL { Z-INDEX: 101; RIGHT: 0px; LEFT: auto; TOP: 0px } DIV.actionBarMicro UL.nav LI.sub:hover UL { TOP: 18px } DIV.rumble_top UL.nav LI.sub:hover UL { TOP: 18px } DIV.rumble UL.nav LI.sub:hover UL { TOP: 18px } .cmdiv LI.contextmenubar_top { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = DISPLAY: block; PADDING-LEFT: 0px; RIGHT: 0px; BACKGROUND: none = transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: = medium none; WIDTH: 182px; PADDING-TOP: 0px; BORDER-BOTTOM: medium none; = POSITION: absolute; TOP: -17px; TEXT-ALIGN: right } .menumini LI.contextmenubar { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = DISPLAY: block; PADDING-LEFT: 0px; RIGHT: 0px; BACKGROUND: none = transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: = medium none; WIDTH: 182px; PADDING-TOP: 0px; BORDER-BOTTOM: medium none; = POSITION: absolute; TOP: -17px; TEXT-ALIGN: right } .menumini LI.contextmenubar { WIDTH: 122px; TOP: -17px } .cmdiv LI.contextmenubar_top A { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .cmdiv LI.contextmenubar_top A:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .cmdiv LI.contextmenubar_top A { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .cmdiv LI.contextmenubar_top A:focus { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .menumini LI.contextmenubar A { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .menumini LI.contextmenubar A:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .menumini LI.contextmenubar A { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .menumini LI.contextmenubar A:focus { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } DIV.quickAddPal H3 { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; BACKGROUND: #cedff6 repeat-x 0px 0px; PADDING-BOTTOM: 3px; MARGIN: = 0px 0px 4px; PADDING-TOP: 3px; BORDER-BOTTOM: #b5c9e5 1px solid } DIV.keyboardAccess H3 { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; BACKGROUND: #cedff6 repeat-x 0px 0px; PADDING-BOTTOM: 3px; MARGIN: = 0px 0px 4px; PADDING-TOP: 3px; BORDER-BOTTOM: #b5c9e5 1px solid } DIV.quickAddPal DIV.quickAddPalHeader { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; BACKGROUND: #cedff6 repeat-x 0px 0px; PADDING-BOTTOM: 3px; MARGIN: = 0px 0px 4px; PADDING-TOP: 3px; BORDER-BOTTOM: #b5c9e5 1px solid } DIV.quickAddPal H4 { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 100%; PADDING-BOTTOM: = 3px; MARGIN: 0px 0px 4px; PADDING-TOP: 3px } DIV.keyboardAccess H4 { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 100%; PADDING-BOTTOM: = 3px; MARGIN: 0px 0px 4px; PADDING-TOP: 3px } DIV.quickAddPal DIV.controls { CLEAR: both; PADDING-RIGHT: 3px; BORDER-TOP: #acc2df 1px solid; = PADDING-LEFT: 9px; FONT-SIZE: 95%; PADDING-BOTTOM: 3px; MARGIN: 0px 2px; = PADDING-TOP: 3px; TEXT-ALIGN: right } DIV.keyboardAccess DIV.controls { CLEAR: both; PADDING-RIGHT: 3px; BORDER-TOP: #acc2df 1px solid; = PADDING-LEFT: 9px; FONT-SIZE: 95%; PADDING-BOTTOM: 3px; MARGIN: 0px 2px; = PADDING-TOP: 3px; TEXT-ALIGN: right } .comText DIV.controls { CLEAR: both; PADDING-RIGHT: 3px; BORDER-TOP: #acc2df 1px solid; = PADDING-LEFT: 9px; FONT-SIZE: 95%; PADDING-BOTTOM: 3px; MARGIN: 0px 2px; = PADDING-TOP: 3px; TEXT-ALIGN: right } .comText DIV.controls { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; MARGIN: 3px = 0px 0px; PADDING-TOP: 6px } DIV.keyboardAccess DIV.minicolumn { FLOAT: left } DIV.keyboardAccess DIV.minicolumn { MARGIN: 0px 9px } DIV.keyboardAccess P.paletteHelp { BORDER-RIGHT: #ffcc00 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #ffcc00 1px solid; PADDING-LEFT: 6px; FONT-SIZE: 90%; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 3px; MARGIN: 6px 9px; BORDER-LEFT: #ffcc00 1px = solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ffcc00 1px solid; WHITE-SPACE: = normal } DIV.keyboardAccess P.colspan-1 { WIDTH: 120px } DIV.keyboardAccess P.colspan-2 { WIDTH: 260px } DIV.keyboardAccess P.colspan-3 { WIDTH: 390px } DIV.orderingControls-ns { PADDING-RIGHT: 3px; DISPLAY: block; PADDING-LEFT: 25px; FLOAT: none; = PADDING-BOTTOM: 3px; PADDING-TOP: 9px; TEXT-ALIGN: center } DIV.orderingControls-ew { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; PADDING-TOP: 40px } DIV.orderingControls-ns A { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; DISPLAY: = inline; MARGIN: 0px 2px 0px 0px; BORDER-LEFT: #ccc 1px solid; = BORDER-BOTTOM: #ccc 1px solid } DIV.orderingControls-ew A { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; DISPLAY: = inline; MARGIN: 0px 2px 0px 0px; BORDER-LEFT: #ccc 1px solid; = BORDER-BOTTOM: #ccc 1px solid } DIV.orderingControls-ew A { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; DISPLAY: = block; MARGIN: 0px 0px 2px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: = #ccc 1px solid } DIV.orderingControls-ns A IMG { WIDTH: 16px; HEIGHT: 16px } DIV.orderingControls-ew A IMG { WIDTH: 16px; HEIGHT: 16px } DIV.orderingControls-ns A.up { BACKGROUND: url(images/small_up.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ns A.down { BACKGROUND: url(images/small_down.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ns A.top { BACKGROUND: url(images/small_top.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ns A.bottom { BACKGROUND: url(images/small_bottom.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ew A.first { BACKGROUND: url(images/small_rewind.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ew A.next { BACKGROUND: url(images/small_next.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ew A.previous { BACKGROUND: url(images/small_previous.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ew A.last { BACKGROUND: url(images/small_ffwd.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ns A:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BORDER-LEFT: = #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-COLOR: #fff } DIV.orderingControls-ew A:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BORDER-LEFT: = #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-COLOR: #fff } .receipt { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 6px; MARGIN: 0px = 3px 6px; PADDING-TOP: 6px; POSITION: relative; -moz-border-radius: 6px; = -webkit-border-radius: 6px } .receipt A.close { RIGHT: 20px; FILTER: alpha(opacity=3D70); POSITION: absolute; TOP: 3px; = opacity: 0.7 } .bad { FONT-WEIGHT: bold; BACKGROUND: #fb6767; COLOR: #fff } .good { FONT-WEIGHT: bold; BACKGROUND: #85bd3d; COLOR: #fff } .infoReceipt { FONT-WEIGHT: bold; BACKGROUND: #6495ed; COLOR: #fff } .inlineReceipt { PADDING-RIGHT: 9px; DISPLAY: none; PADDING-LEFT: 9px; PADDING-BOTTOM: = 6px; MARGIN: 0px 3px 6px; PADDING-TOP: 6px; POSITION: absolute; = -moz-border-radius: 6px; -webkit-border-radius: 6px } BODY.cmPopup #navigationPane { MARGIN: 0px; WIDTH: auto; POSITION: relative } .cmWrapper { PADDING-TOP: 12px! important; POSITION: relative } .cmWrapper DIV.navPalette { MARGIN: 0px 14px 12px; POSITION: relative } DIV.tabPreview { BORDER-RIGHT: #cdcdcd 12px solid; BORDER-TOP: #cdcdcd 12px solid; = Z-INDEX: 1; BACKGROUND: #cdcdcd; MARGIN: 0px 6px 6px; BORDER-LEFT: = #cdcdcd 12px solid; WIDTH: auto; BORDER-BOTTOM: #cdcdcd 12px solid; = POSITION: relative } DIV.tabPreview DIV.paneTabs { MARGIN-TOP: 12px } DIV.status { PADDING-RIGHT: 6px; DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 90%; = BACKGROUND: #f9f9f9; PADDING-BOTTOM: 3px; MARGIN: 0px; COLOR: #000; = PADDING-TOP: 1px; TEXT-ALIGN: left } DIV.status A IMG { VERTICAL-ALIGN: middle } DIV.status P { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 2px; FONT-SIZE: 90%; BACKGROUND: #fff; = PADDING-BOTTOM: 0px; MARGIN: 2px auto 4px; BORDER-LEFT: #ccc 1px solid; = COLOR: #444444; LINE-HEIGHT: 10%; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc = 1px solid; HEIGHT: 12px! important; TEXT-ALIGN: left! important } DIV.status P IMG { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; HEIGHT: 8px; BACKGROUND-COLOR: #8dafaf } DIV.stopped P IMG { BACKGROUND: url(images/progress_stopped.gif) #fff } DIV.status A.buttonMicro { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 5px; FONT-SIZE: 90%; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x 0% 50%; PADDING-BOTTOM: = 0px; MARGIN: 1px auto; BORDER-LEFT: #ccc 1px solid; COLOR: #666; = PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px solid; TEXT-DECORATION: none } DIV.status DIV { POSITION: relative; TEXT-ALIGN: center } DIV.status A.buttonMicro:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } .searchbar { BORDER-RIGHT: medium none; PADDING-RIGHT: 2px; BORDER-TOP: #d7bb66 1px = solid; PADDING-LEFT: 2px; BACKGROUND: #eddca5; PADDING-BOTTOM: 2px; = MARGIN: -1px 0px 0px; BORDER-LEFT: medium none; PADDING-TOP: 2px; = BORDER-BOTTOM: #d7bb66 1px solid; POSITION: relative; HEIGHT: 1% } .searchbarPicker { BORDER-RIGHT: medium none; PADDING-RIGHT: 2px; BORDER-TOP: #d7bb66 1px = solid; PADDING-LEFT: 2px; BACKGROUND: #eddca5; PADDING-BOTTOM: 2px; = MARGIN: -1px 0px 0px; BORDER-LEFT: medium none; PADDING-TOP: 2px; = BORDER-BOTTOM: #d7bb66 1px solid; POSITION: relative; HEIGHT: 1% } .searchbar { FONT-SIZE: 85%; MARGIN: 0px -9px 0px 0px } .searchbarPicker TABLE { FONT-SIZE: 85%; MARGIN: 0px -9px 0px 0px } .searchbar TABLE TD { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } .searchbar TABLE TD TABLE TD { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } .searchbar TABLE FIELDSET { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px; HEIGHT: 1% } .searchbar TABLE DIV { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } .searchbar FORM { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .searchbarPicker { BORDER-RIGHT: medium none; BORDER-TOP: medium none; FONT-SIZE: 90%; = BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } .searchbar:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } .searchbarPicker:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } .searchbar A.close { RIGHT: 6px; POSITION: absolute; TOP: 3px; opacity: 0.8 } .searchbarPicker A.close { RIGHT: 6px; POSITION: absolute; TOP: 3px; opacity: 0.8 } .slideshowControls { FONT-SIZE: 100%; MARGIN: 8px auto 12px; TEXT-ALIGN: center } .searchbar FIELDSET { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 9px; PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 6px; BORDER-BOTTOM: 0px } .searchbarPicker FIELDSET { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 9px; PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 6px; BORDER-BOTTOM: 0px } .searchbar FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .portlet FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .searchbarPicker FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .searchbar FIELDSET INPUT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px 0px; = VERTICAL-ALIGN: middle; BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #666 1px solid } .searchbar FIELDSET SELECT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px 0px; = VERTICAL-ALIGN: middle; BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #666 1px solid } .searchbarPicker FIELDSET INPUT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px 0px; = VERTICAL-ALIGN: middle; BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #666 1px solid } .searchbarPicker FIELDSET SELECT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px 0px; = VERTICAL-ALIGN: middle; BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #666 1px solid } .searchbar * INPUT[type=3D'radio'] { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } .searchbarPicker * INPUT[type=3D'radio'] { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } .searchbar * INPUT[type=3D'checkbox'] { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } .searchbarPicker * INPUT[type=3D'checkbox'] { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } .searchbar FIELDSET LABEL { FONT-SIZE: 100% } .portlet FIELDSET LABEL { FONT-SIZE: 100% } .searchbarPicker FIELDSET LABEL { FONT-SIZE: 100% } .searchbar H2 { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; PADDING-BOTTOM: 1px; MARGIN: 0px; PADDING-TOP: 1px } .searchbarPicker H2 { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; PADDING-BOTTOM: 1px; MARGIN: 0px; PADDING-TOP: 1px } .searchbar FIELDSET OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .searchbarPicker FIELDSET OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .searchbar FIELDSET OL LI.groupLabel { PADDING-RIGHT: 3px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; PADDING-TOP: 5px } .searchbarPicker FIELDSET OL LI.groupLabel { PADDING-RIGHT: 3px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; PADDING-TOP: 5px } .searchbar FIELDSET OL LI { FLOAT: left } .searchbarPicker FIELDSET OL LI { FLOAT: left } .searchbar FIELDSET OL LI.options { FLOAT: right } .searchbarPicker FIELDSET OL LI.options { FLOAT: right } .searchbarPicker FIELDSET OL LI SPAN { DISPLAY: inline } .searchbarPicker FIELDSET OL LI OL LI SPAN { DISPLAY: inline } .searchbar SPAN.spacer { MARGIN: 0px 4px } .tabGroupsPreview { FONT-SIZE: 100%; MARGIN: -11px -12px 24px } .previewContent { PADDING-RIGHT: 14px; PADDING-LEFT: 14px; Z-INDEX: 1; BACKGROUND: = url(images/dcp_block_bg.png) #aaa no-repeat right bottom; = PADDING-BOTTOM: 14px; MARGIN: 0px 14px 11px; WIDTH: auto; PADDING-TOP: = 14px; POSITION: relative } .previewContent IFRAME { WIDTH: 100%; HEIGHT: 300px } .previewOverlay { FONT-WEIGHT: bold; FONT-SIZE: 300%; FILTER: alpha(opacity=3D30); = TEXT-TRANSFORM: uppercase; WIDTH: 100%; COLOR: #555; LETTER-SPACING: = 10px; POSITION: absolute; TOP: 130px; TEXT-ALIGN: center } .previewOverlay SPAN { PADDING-RIGHT: 12px; PADDING-LEFT: 24px; FILTER: alpha(opacity=3D30); = PADDING-BOTTOM: 6px; PADDING-TOP: 6px; BACKGROUND-COLOR: white; opacity: = .30 } P.warning { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; FONT-SIZE: 100%; = PADDING-BOTTOM: 12px; MARGIN: 12px 0px 24px; COLOR: #fff; PADDING-TOP: = 9px; BACKGROUND-COLOR: #cf1d19 } .tabGroupsPreview .previewOverlay { TOP: 54px } B.shadow { DISPLAY: block; BACKGROUND: url(images/bg_content_shadow.png) repeat-x = 0px -3px; MARGIN: 0px 1px; OVERFLOW: hidden; HEIGHT: 9px } HTML * DIV.calPicker { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MAX-WIDTH: 60%; PADDING-BOTTOM: = 21px; OVERFLOW: auto; WIDTH: 30em; PADDING-TOP: 0px } DIV.calPicker { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; Z-INDEX: = 1500! important; PADDING-BOTTOM: 0px! important; OVERFLOW: visible! = important; WIDTH: auto! important; PADDING-TOP: 0px! important } DIV.calPicker DIV.calHead { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px; POSITION: relative } DIV.calPicker H3 { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; = PADDING-BOTTOM: 0px; MARGIN: 0px 40px; BORDER-LEFT: medium none; = PADDING-TOP: 0px; BORDER-BOTTOM: medium none; TEXT-ALIGN: center } DIV.calPicker DIV.previous { LEFT: 2px; POSITION: absolute; TOP: 2px } DIV.calPicker DIV.next { RIGHT: 2px; POSITION: absolute; TOP: 2px; TEXT-ALIGN: right } DIV.calPicker DIV.calFoot { CLEAR: both; PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: = 6px; PADDING-TOP: 6px; TEXT-ALIGN: center } DIV.calPicker A.contextmenubar { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; BACKGROUND: = #c8dbf4; PADDING-BOTTOM: 2px; PADDING-TOP: 0px; TEXT-ALIGN: right } DIV.calPicker A.contextmenubar:hover { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; BACKGROUND: = #c8dbf4; PADDING-BOTTOM: 2px; PADDING-TOP: 0px; TEXT-ALIGN: right } DIV.timediv UL { OVERFLOW: auto; WIDTH: 8em; HEIGHT: 200px } DIV.timediv UL LI.contextmenubar_top { WIDTH: 8.15em } DIV.timediv UL LI A { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 3px; PADDING-TOP: 3px } UL.buildList UL.detailList LI SPAN.hidden { DISPLAY: none } UL.buildList UL.detailList LI SPAN.tagContainer { POSITION: relative } UL.buildList UL.detailList LI SPAN.tagContainer SPAN.hidden { DISPLAY: none } UL.buildList UL.detailList LI SPAN.tagContainer { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; PADDING-TOP: 2px } UL.buildList UL.detailList LI SPAN.tagContainer SPAN { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; PADDING-TOP: 2px } UL.buildList UL.detailList LI SPAN.tagContainer INPUT { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; DISPLAY: = inline; FONT-SIZE: 95%; FLOAT: none; MARGIN: 0px; VERTICAL-ALIGN: = middle; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } SPAN.tagContainer INPUT { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; DISPLAY: = inline; FONT-SIZE: 95%; FLOAT: none; MARGIN: 0px; VERTICAL-ALIGN: = middle; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } UL.buildList UL.detailList LI SPAN.tagContainer A.browse { FONT-SIZE: 95%; VERTICAL-ALIGN: middle } SPAN.tagContainer A.browse { FONT-SIZE: 95%; VERTICAL-ALIGN: middle } SPAN.tagContainer SPAN.newTagForm { MARGIN-LEFT: 6px; BORDER-LEFT: #999 1px dotted } SPAN.tagContainer SPAN.newTagForm LABEL { PADDING-LEFT: 6px } SPAN.currentTags { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #acc2df 1px solid; = DISPLAY: none; Z-INDEX: 100; RIGHT: 0px; OVERFLOW: hidden; BORDER-LEFT: = #acc2df 1px solid; WIDTH: 16em; LINE-HEIGHT: 1.8; BORDER-BOTTOM: #5577bb = 1px solid; ZOOM: 1; POSITION: absolute; TOP: 1.2em; BACKGROUND-COLOR: = #e2eefe } SPAN.currentTags SPAN { PADDING-RIGHT: 6px; DISPLAY: block; PADDING-LEFT: 6px; PADDING-BOTTOM: = 6px; PADDING-TOP: 18px } SPAN.currentTags A { FONT-WEIGHT: bold } SPAN.currentTags A.closeCloud { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; BACKGROUND: = #c8dbf4; LEFT: 0px; PADDING-BOTTOM: 1px; WIDTH: 98%; LINE-HEIGHT: 1; = PADDING-TOP: 0px; POSITION: absolute; TOP: 0px; TEXT-ALIGN: right } DIV.auto_complete { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #acc2df 1px solid; = Z-INDEX: 1000; BACKGROUND: #e2eefe; BORDER-LEFT: #acc2df 1px solid; = WIDTH: 12em; BORDER-BOTTOM: #5577bb 1px solid } DIV.auto_complete UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: 100%; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.auto_complete UL LI { PADDING-RIGHT: 1%; PADDING-LEFT: 3%; PADDING-BOTTOM: 2px; MARGIN: 0px; = OVERFLOW: hidden; WIDTH: 96%; CURSOR: pointer; PADDING-TOP: 2px } DIV.auto_complete UL LI.selected { BACKGROUND-COLOR: #fff } DIV.auto_complete UL STRONG.highlight { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.dropzone { BORDER-RIGHT: #333333 2px dashed; BORDER-TOP: #333333 2px dashed; = MARGIN: 5px; BORDER-LEFT: #333333 2px dashed; BORDER-BOTTOM: #333333 2px = dashed } #copyright { DISPLAY: block! important; FONT-SIZE: 85%; BACKGROUND: none transparent = scroll repeat 0% 0%; MARGIN: 12px auto; WIDTH: 500px; COLOR: #555; = POSITION: relative } .loginCopyright { WIDTH: 580px! important } DIV.logo { MIN-HEIGHT: 4em; FLOAT: left; VERTICAL-ALIGN: bottom; LINE-HEIGHT: = 1.3em } DIV.productTitle { MIN-HEIGHT: 4em; FLOAT: left; VERTICAL-ALIGN: bottom; LINE-HEIGHT: = 1.3em } DIV.legal { MIN-HEIGHT: 4em; FLOAT: left; VERTICAL-ALIGN: bottom; LINE-HEIGHT: = 1.3em } DIV.additionalInfo { MIN-HEIGHT: 4em; FLOAT: left; VERTICAL-ALIGN: bottom; LINE-HEIGHT: = 1.3em } DIV.productTitle { PADDING-RIGHT: 12px; PADDING-LEFT: 9px; MIN-HEIGHT: auto; = PADDING-BOTTOM: 0px; PADDING-TOP: 9px } DIV.logo { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } DIV.legal { PADDING-RIGHT: 3px; PADDING-LEFT: 12px; PADDING-BOTTOM: 6px; = BORDER-LEFT: #efefef 1px dotted; WIDTH: 18.5em; PADDING-TOP: 3px } DIV.additionalInfo { PADDING-RIGHT: 3px; PADDING-LEFT: 12px; PADDING-BOTTOM: 6px; = BORDER-LEFT: #efefef 1px dotted; WIDTH: 18.5em; PADDING-TOP: 3px } DIV.legal P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.additionalInfo P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: = 0px; PADDING-TOP: 0px } .loginCopyright DIV.legal { MIN-HEIGHT: 2.5em; WIDTH: 24em } .loginCopyright DIV.additionalInfo { MIN-HEIGHT: 2.5em; WIDTH: 24em } .loginCopyright DIV.legal { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 6px; = BORDER-LEFT: medium none; WIDTH: 24.5em; PADDING-TOP: 3px } DIV.productTitle A { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 125%; COLOR: #333; = LINE-HEIGHT: 1.1em; TEXT-ALIGN: right; TEXT-DECORATION: none } DIV.productTitle A:hover { TEXT-DECORATION: underline } DIV.additionalInfo A { COLOR: #333 } DIV.copyrightDetailContents { CLEAR: left; PADDING-RIGHT: 6px; DISPLAY: none; PADDING-LEFT: 20px; = MIN-HEIGHT: 5em; LEFT: 5.2em; PADDING-BOTTOM: 9px; WIDTH: 42em; COLOR: = #fff; PADDING-TOP: 6px; POSITION: absolute; TOP: -0.2em; = BACKGROUND-COLOR: #404040; -moz-border-radius: 5px } .productImg { MARGIN-TOP: 5px; FLOAT: left } DIV.copyrightDetailContents UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 0px 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.copyrightDetailContents UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.copyrightDetailContents UL LI SPAN { FONT-WEIGHT: bold } A.closeCopyright { FLOAT: right } DIV#lightboxWrapper { Z-INDEX: 1001; RIGHT: 0px; LEFT: 0px; POSITION: absolute; TOP: 0px } DIV#lightboxWrapper-inner { Z-INDEX: 1002; LEFT: 0px; WIDTH: 100%; POSITION: relative; TOP: 0px; = TEXT-ALIGN: center } DIV#lightbox { DISPLAY: block; Z-INDEX: 1003; LEFT: auto; MARGIN: 40px 0px 0px; = POSITION: relative; TOP: auto; TEXT-ALIGN: left } #lightbox DIV#lightboxContent { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = auto; WIDTH: 600px; PADDING-TOP: 0px; POSITION: relative; = BACKGROUND-COLOR: transparent! important } #lightbox DIV#lightboxContent DIV.lbContainer { BACKGROUND: #ffffff; MAX-HEIGHT: 300px } #lightbox DIV#lightboxContent DIV.lbContainer:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } DIV#lightboxContent H2 { PADDING-RIGHT: 1em; PADDING-LEFT: 1em; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 0.3em; MARGIN: 0px; PADDING-TOP: 0.3em; BORDER-BOTTOM: = #ed9 1px solid; POSITION: relative } .lbAction { Z-INDEX: 1005; RIGHT: 9px; POSITION: absolute; TOP: 6px } #overlay { DISPLAY: none; Z-INDEX: 1000; RIGHT: 0px; FILTER: alpha(opacity=3D30); = LEFT: 0px; WIDTH: 100%; BOTTOM: 0px; POSITION: fixed; TOP: 0px; HEIGHT: = 100%; BACKGROUND-COLOR: #000; opacity: .30 } DIV#overlay { POSITION: absolute } .done#lightbox #lbLoadMessage { DISPLAY: none } .done#lightbox #lbContent { DISPLAY: block } .loading#lightbox #lbContent { DISPLAY: none } .loading#lightbox #lbLoadMessage { DISPLAY: block } .done#lightbox IMG { =09 } .myPlacesContent { BORDER-RIGHT: medium none; PADDING-RIGHT: 12px; BORDER-TOP: medium = none; PADDING-LEFT: 12px; BACKGROUND: #fff; PADDING-BOTTOM: 16px; = OVERFLOW: auto; BORDER-LEFT: medium none; MAX-HEIGHT: 500px! important; = PADDING-TOP: 16px; BORDER-BOTTOM: medium none; HEIGHT: auto! important } UL.langOptions { LIST-STYLE-TYPE: none } UL.langOptions LI { BACKGROUND: none transparent scroll repeat 0% 0% } .avatar { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; MARGIN: auto; = BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #ccc 1px = solid } .myavatar { OVERFLOW: hidden; MAX-HEIGHT: 150px } #lightbox DIV.topRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } #lightbox DIV.bottomRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } #lightbox DIV.topRound B { DISPLAY: block; BACKGROUND: #fff; OVERFLOW: hidden } #lightbox DIV.bottomRound B { DISPLAY: block; BACKGROUND: #fff; OVERFLOW: hidden } #lightbox DIV.topRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } #lightbox DIV.bottomRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } #lightbox DIV.topRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } #lightbox DIV.bottomRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } #lightbox DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } #lightbox DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } #lightbox DIV.topRound B { BACKGROUND: #fff1c5 } #lightbox DIV.lightBlue B { BACKGROUND: #e3efff } #lightbox DIV.error B { BACKGROUND: #ff0000 } #lightbox .tallPara { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 14px; MARGIN: = 0px; PADDING-TOP: 14px } #lightbox UL { MARGIN: 0px 0px 12px } #lightbox DIV.column-3 { MIN-HEIGHT: 200px! important; MARGIN: 0px; WIDTH: 33%; HEIGHT: auto! = important } #lightbox DIV.column-2 { MIN-HEIGHT: 200px! important; MARGIN: 0px; WIDTH: 33%; HEIGHT: auto! = important } #lightbox DIV.column-2 { WIDTH: 50% } .clearfix:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } .clearfix { DISPLAY: inline-block } .clearfix { DISPLAY: block } .clearfloats { CLEAR: both } .qShow { DISPLAY: block } .qHide { DISPLAY: none } .completionContainer { PADDING-BOTTOM: 6px; OVERFLOW: auto; PADDING-TOP: 6px } .completionContainerLarge { PADDING-BOTTOM: 6px; OVERFLOW: auto; PADDING-TOP: 6px; HEIGHT: 75px } .pagedAssessment { BACKGROUND: #888; MARGIN: 0px; COLOR: #ffffff! important } .pagedRumble { BACKGROUND: #fff7de } .pagedControls { PADDING-RIGHT: 4px; PADDING-LEFT: 40px; BACKGROUND: #fff7de; = PADDING-BOTTOM: 6px; MARGIN: -5px -4px -5px -40px; COLOR: #000000! = important; PADDING-TOP: 5px } .pagedPointsOutsideBar { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; RIGHT: 6px; BACKGROUND: #fae7ae 0% 50%; LEFT: auto; = PADDING-BOTTOM: 0px; MARGIN: 0pt 0px 0pt 0pt; COLOR: #000000! important; = LINE-HEIGHT: 100%; PADDING-TOP: 0px; LETTER-SPACING: 1px; POSITION: = relative; TOP: 0pt } .pagedPoints { PADDING-RIGHT: 0px; PADDING-LEFT: 10px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; BACKGROUND: #fae7ae 0% 50%; PADDING-BOTTOM: 6px; MARGIN: -5px 24px = -5px -10px; COLOR: #000000! important; LINE-HEIGHT: 100%; PADDING-TOP: = 5px; LETTER-SPACING: 1px } .bb-cpgbtd { FONT-SIZE: 10pt; FONT-FAMILY: Arial,Helvetica,sans-serif } .bb-cpgbth { FONT-SIZE: 10pt; FONT-FAMILY: Arial,Helvetica,sans-serif } .bb-cpmgtd { FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: Arial,Helvetica,sans-serif } .bb-cpmgth { FONT-WEIGHT: bold; FONT-SIZE: 9pt; FONT-FAMILY: = Arial,Helvetica,sans-serif } .actionBar UL LI.mainButton-legacy { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 2px = 0px 0px 6px; PADDING-TOP: 0px } .reverseButtons UL LI.mainButton-legacy { FLOAT: right } .actionBar UL LI.mainButton-legacy A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 7px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 7px; FONT-SIZE: 100%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 3px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } .actionBar UL LI.mainButton-legacy A:hover { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #acc2df 1px solid; = BACKGROUND: url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = BORDER-LEFT: #acc2df 1px solid; BORDER-BOTTOM: #5577bb 1px solid } A.inlineAction-legacy { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 95%; BACKGROUND: = #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; COLOR: = #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } A.inlineAction-legacy:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 95%; BACKGROUND: = url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; COLOR: #000; = PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid; TEXT-DECORATION: = none } DIV.buttonCm DIV.navPaletteContent { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.buttonCm UL.courseMenu { WIDTH: 190px } DIV.buttonCm UL.courseMenu LI { BACKGROUND-POSITION: 14px 0px; MARGIN: 4px -14px; BACKGROUND-REPEAT: = no-repeat; POSITION: relative; BACKGROUND-COLOR: transparent } DIV.buttonCm UL.courseMenu LI.here { BACKGROUND-POSITION: 14px 0px; MARGIN: 4px -14px; BACKGROUND-REPEAT: = no-repeat; POSITION: relative; BACKGROUND-COLOR: transparent } DIV.buttonCm UL.courseMenu LI.subhead { PADDING-RIGHT: 0px; PADDING-LEFT: 20px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; HEIGHT: 1% } DIV.buttonCm UL.courseMenu LI.subhead H4 { PADDING-RIGHT: 16px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0pt 0pt 0pt 14px; PADDING-TOP: 0px; = HEIGHT: 1% } DIV.buttonCm UL.courseMenu LI.divider { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 4px; MARGIN: 0px; PADDING-TOP: 0px } DIV.buttonCm UL.courseMenu LI.divider HR { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px; VERTICAL-ALIGN: = middle; BORDER-LEFT: 0px; LINE-HEIGHT: 1%; BORDER-BOTTOM: 0px; POSITION: = relative; TOP: -9px; HEIGHT: 1px; BACKGROUND-COLOR: #777 } DIV.buttonCm UL.courseMenu LI A { PADDING-RIGHT: 6px; BORDER-TOP: 0px; DISPLAY: block; PADDING-LEFT: 6px; = FONT-WEIGHT: normal; BACKGROUND-IMAGE: none; PADDING-BOTTOM: 6px; = MARGIN: 0px 0px 0px 14px; OVERFLOW: hidden; PADDING-TOP: 4px; = WHITE-SPACE: nowrap; POSITION: relative; BACKGROUND-COLOR: transparent; = TEXT-DECORATION: none } DIV.buttonCm UL.courseMenu LI A:hover { PADDING-RIGHT: 6px; BORDER-TOP: 0px; DISPLAY: block; PADDING-LEFT: 6px; = FONT-WEIGHT: normal; BACKGROUND-IMAGE: none; PADDING-BOTTOM: 6px; = MARGIN: 0px 0px 0px 14px; OVERFLOW: hidden; PADDING-TOP: 4px; = WHITE-SPACE: nowrap; POSITION: relative; BACKGROUND-COLOR: transparent; = TEXT-DECORATION: none } DIV.buttonCm UL.courseMenu LI.here A { BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline } DIV.buttonCm UL.courseMenu LI.here A:hover { BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline } DIV.buttonCm UL.courseMenu LI A.cmimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 4px; BACKGROUND: = url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: = absolute; TOP: 7px; opacity: 0.2 } DIV.buttonCm UL.courseMenu LI A.cmimg:hover { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 4px; BACKGROUND: = url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: = absolute; TOP: 7px; opacity: 0.2 } DIV.buttonCm H3 A.cmimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 4px; BACKGROUND: = url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: = absolute; TOP: 7px; opacity: 0.2 } DIV.buttonCm UL.courseMenu LI A.cmimg IMG { WIDTH: 13px; HEIGHT: 13px } DIV.buttonCm UL.courseMenu LI A.cmimg:hover IMG { WIDTH: 13px; HEIGHT: 13px } DIV.buttonCm H3 A.cmimg IMG { WIDTH: 13px; HEIGHT: 13px } DIV.buttonCm UL.courseMenu LI.subhead A.cmimg IMG { WIDTH: 13px; HEIGHT: 13px } DIV.buttonCm UL.courseMenu LI.divider A.cmimg { TOP: -4px } DIV.buttonCm UL.courseMenu LI.subhead A.cmimg { TOP: 3px } DIV.buttonCm UL.courseMenu LI.subhead A.cmimg:hover { TOP: 3px } DIV.buttonCm UL.courseMenu LI A.cmimg:hover { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm H3 A.cmimg:hover { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI A:hover SPAN.reorder { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI A:hover A.cmimg { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI:hover SPAN.reorder { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI:hover A.cmimg { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm H3:hover A.cmimg { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI SPAN.reorder { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 2px; FILTER: = alpha(opacity=3D60); LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 20px; = CURSOR: move; PADDING-TOP: 0px; POSITION: absolute; TOP: 5px; HEIGHT: = 16px; opacity: 0.6 } DIV.buttonCm UL.courseMenu LI.invisible SPAN.reorder { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 2px; FILTER: = alpha(opacity=3D60); LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 20px; = CURSOR: move; PADDING-TOP: 0px; POSITION: absolute; TOP: 5px; HEIGHT: = 16px; opacity: 0.6 } DIV.buttonCm UL.courseMenu LI.subhead SPAN.reorder { TOP: 0px } DIV.buttonCm UL.courseMenu LI.divider SPAN.reorder { TOP: -10px } DIV.buttonCm LI.invisible A SPAN.cmLink-hidden { RIGHT: 20px; POSITION: absolute; TOP: 7px } DIV.buttonCm LI.invisible SPAN.cmLink-empty { RIGHT: 20px; POSITION: absolute; TOP: 7px } DIV.buttonCm LI.invisible SPAN.cmLink-empty { RIGHT: 32px } DIV.buttonCm DIV.bottomRound { DISPLAY: none } DIV.instructionData { MARGIN: 0px 0px 12px } DIV.instructionData UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px solid; LIST-STYLE-TYPE: = none } DIV.instructionData UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 6px; MARGIN: 0px 12px 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.instructionData UL LI SPAN { FONT-SIZE: 90%; COLOR: #555 } DIV.instructionData UL LI H3 { DISPLAY: inline; FONT-SIZE: 100%; MARGIN: 0px } DIV.instructionData UL LI.instructions { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: = 0px; MARGIN: 6px 0px 0px; PADDING-TOP: 0px } DIV.instructionData UL LI.saving { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 0px 0px; PADDING-TOP: 0px } DIV.instructionData UL LI.instructions A.browse { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; FONT-SIZE: = 90%; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: medium none } .assessmentInstructions { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #f1f1f1; = PADDING-BOTTOM: 6px; MARGIN: 0px 0px 12px; PADDING-TOP: 3px; POSITION: = relative } .assessmentInstructions H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px = 0px; PADDING-TOP: 0px } .assessmentPortlet { Z-INDEX: 1; RIGHT: 26px; POSITION: fixed } .assessmentPortlet H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; COLOR: #597298; PADDING-TOP: 1px; = BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .assessmentPortlet DIV.assessmentPortletBlock H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; COLOR: #597298; PADDING-TOP: 1px; = BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .assessmentPortlet DIV.blockContents H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; COLOR: #597298; PADDING-TOP: 1px; = BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .assessmentPortlet DIV.assessmentPortletBlock { BORDER-RIGHT: #777 1px solid; BORDER-TOP: #777 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #777 1px solid; BORDER-BOTTOM: #777 1px solid } .assessmentPortlet DIV.assessmentPortletBlock H4 { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px } .assessmentPortlet DIV.assessmentPortletBlock H4.blockTitle { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px } .assessmentPortlet DIV.assessmentPortletBlock H4 A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 9px; FONT-SIZE: 110%; BACKGROUND: #f1f1f1; PADDING-BOTTOM: = 4px; MARGIN: 0px; BORDER-LEFT: 0px; COLOR: #444; PADDING-TOP: 4px; = BORDER-BOTTOM: 0px; LETTER-SPACING: 0px; TEXT-DECORATION: none } .assessmentPortlet DIV.assessmentPortletBlock H4.blockTitle A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 9px; FONT-SIZE: 110%; BACKGROUND: #f1f1f1; PADDING-BOTTOM: = 4px; MARGIN: 0px; BORDER-LEFT: 0px; COLOR: #444; PADDING-TOP: 4px; = BORDER-BOTTOM: 0px; LETTER-SPACING: 0px; TEXT-DECORATION: none } .assessmentPortlet DIV.assessmentPortletBlock H4 A:hover { BACKGROUND: #eee } .assessmentPortlet DIV.assessmentPortletBlock H4.blockTitle A:hover { BACKGROUND: #eee } .assessmentPortlet DIV.assessmentPortletBlock H4 A SPAN { FONT-WEIGHT: normal; COLOR: #ddd } .assessmentPortlet DIV.assessmentPortletBlock H4.blockTitle A SPAN { FONT-WEIGHT: normal; COLOR: #ddd } .assessmentPortlet UL.subCategories { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.assessmentBlockGroups { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .assessmentPortlet DIV.assessmentPortletBlock UL.subCategories LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.assessmentBlockGroups LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .assessmentPortlet UL.subCategories LI A { PADDING-RIGHT: 16px; BORDER-TOP: #777 1px solid; DISPLAY: block; = PADDING-LEFT: 16px; FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 3px center; = PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #597298; PADDING-TOP: 4px; = LETTER-SPACING: 1px; TEXT-DECORATION: none } UL.assessmentBlockGroups LI A.itemHead { PADDING-RIGHT: 16px; BORDER-TOP: #777 1px solid; DISPLAY: block; = PADDING-LEFT: 16px; FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 3px center; = PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #597298; PADDING-TOP: 4px; = LETTER-SPACING: 1px; TEXT-DECORATION: none } UL.assessmentBlockGroups LI A.itemHead:hover { BACKGROUND-COLOR: #e3efff; TEXT-DECORATION: underline } UL.assessmentBlockGroups LI A.itemHeadOpen { BACKGROUND: #fff no-repeat 3px center } UL.assessmentBlockGroups LI A.itemHeadOpen:hover { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } .assessmentPortlet UL.subCategories LI:first-child A { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } UL.assessmentBlockGroups LI:first-child A { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } .assessmentPortlet UL.subCategories LI A:hover { FILTER: alpha(opacity=3D100); BACKGROUND-COLOR: #fff; opacity: 1 } UL.assessmentBlockGroups LI A:hover { FILTER: alpha(opacity=3D100); BACKGROUND-COLOR: #fff; opacity: 1 } .assessmentPortlet UL.subCategories LI A SPAN { FONT-WEIGHT: normal; COLOR: #777 } UL.assessmentBlockGroups LI A SPAN { FONT-WEIGHT: normal; COLOR: #777 } .assessmentPortlet UL.itemGroup LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: = inline; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 105%; = PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: = 0px } UL.assessmentBlockGroups LI UL.itemGroups LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: = inline; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 105%; = PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: = 0px } .assessmentPortlet UL.itemGroup LI A:hover { TEXT-DECORATION: underline } UL.itemGroups LI A:hover { TEXT-DECORATION: underline } UL.itemGroups LI UL.items { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; FONT-SIZE: 110%; = PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-TOP: 2px } UL.assessmentBlockGroups LI UL.itemGroups LI A { FONT-WEIGHT: normal } UL.itemGroups LI UL.items LI A { FONT-WEIGHT: normal } .assessmentPortlet DIV.assessmentPortletBlock H3 { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 100%; PADDING-BOTTOM: = 0px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none; LETTER-SPACING: 0px } .assessmentPortlet DIV.assessmentPortletBlock H3 A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 99% center; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; TEXT-DECORATION: = none } .assessmentPortlet DIV.assessmentPortletBlock H3 A:hover { TEXT-DECORATION: underline } .assessmentPortlet DIV.assessmentPortletBlock:first-child H3 A { BORDER-TOP: medium none } .assessmentPortlet DIV.assessmentPortletBlock H3 A.open { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = url(images/less_options.gif) #e3efff no-repeat 99% center; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; TEXT-DECORATION: = none } .assessmentPortlet UL.objectList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .assessmentPortletBlock UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .blockContents UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } UL.memberList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .assessmentPortlet .blockContents UL LI UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .assessmentPortlet .blockContents UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .assessmentPortlet UL LI UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .savingQuestion { PADDING-RIGHT: 2px; DISPLAY: none; PADDING-LEFT: 2px; FONT-SIZE: 150%; = BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 2px; = COLOR: #cc0033; PADDING-TOP: 2px; POSITION: relative } TR.dummyVTBEFooter TD { BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #666666 1px solid; PADDING-LEFT: 2px; BACKGROUND: #eee; PADDING-BOTTOM: = 2px; BORDER-LEFT: #666666 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: = #666666 1px solid; TEXT-ALIGN: right } DIV.canvasHead { PADDING-RIGHT: 16px; PADDING-LEFT: 16px; BACKGROUND: #f6f6f6; = PADDING-BOTTOM: 12px; MARGIN: 0.6em 0px; PADDING-TOP: 6px } DIV.canvasHead UL LI { BORDER-TOP: #eeeeee 1px solid } DIV.canvasHead UL LI:first-child { BORDER-TOP: medium none } DIV.canvasHead UL LI DIV.label { COLOR: #555 } .peer_instructions { MARGIN: 12px 6px } .peerHelp { COLOR: #555 } H2.evaluator { MARGIN: 1em 0px 0.3em } H2.evaluator SPAN { FONT-WEIGHT: normal; FONT-SIZE: 90% } DIV.peerCriteriaStatus { BORDER-RIGHT: #bbb 1px solid; PADDING-RIGHT: 0.3em; BORDER-TOP: #bbb = 1px solid; PADDING-LEFT: 0.3em; BACKGROUND: #fff; PADDING-BOTTOM: 0.3em; = BORDER-LEFT: #bbb 1px solid; PADDING-TOP: 0.3em; BORDER-BOTTOM: #bbb 1px = solid } DIV.peerCriteriaStatus A.itemHeadOpen { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 0px; COLOR: = #597298; LETTER-SPACING: 1px; TEXT-DECORATION: none } DIV.peerCriteriaStatus A.itemHeadOpen:hover { TEXT-DECORATION: underline } DIV.peerCriteriaStatus TD.qStatus { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 4px; WIDTH: 5%; = PADDING-TOP: 4px } DIV.peerCriteriaStatus TD.qStatus A SPAN { BORDER-RIGHT: #fff 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #fff 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: bold; BACKGROUND: white; = PADDING-BOTTOM: 1px; BORDER-LEFT: #fff 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #fff 1px solid } DIV.peerCriteriaStatus TD.qStatus A SPAN.qComplete { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BACKGROUND: = #eee; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid } DIV.peerCriteriaStatus TD.qStatus A.qActive SPAN.qComplete { BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; = BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid; = TEXT-DECORATION: none } DIV.peerCriteriaStatus TD.qStatus A.qActive SPAN.qIncomplete { BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; = BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid; = TEXT-DECORATION: none } DIV.peerCriteriaStatus A SPAN IMG { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; WIDTH: = 12px; PADDING-TOP: 2px; HEIGHT: 12px } .questionNumber { FONT-WEIGHT: bold } .questionType { FONT-WEIGHT: bold } .questionDiv { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0.6em; BORDER-TOP: #ccc = 1px solid; PADDING-LEFT: 0.6em; PADDING-BOTTOM: 0.6em; MARGIN: -1px 0px = 6px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 0.6em; BORDER-BOTTOM: = #ccc 1px solid } .questionDiv H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0.6em; MARGIN: = 0px 0px 0.6em; PADDING-TOP: 0px; BORDER-BOTTOM: #ddd 1px solid } .questionDiv P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0.6em 1.2em; PADDING-TOP: 0px } .questionDiv DIV.criteriaText { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0.6em 1.2em; PADDING-TOP: 0px } .questionDiv DIV.submission_text { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 2px; OVERFLOW: auto; = BORDER-LEFT: #ccc 1px solid; WIDTH: 100%; PADDING-TOP: 2px; = BORDER-BOTTOM: #ccc 1px solid; HEIGHT: 150px } .questionDiv TABLE { WIDTH: 98% } .questionDiv TABLE TABLE { WIDTH: auto } .questionDiv TD.label { WIDTH: 150px; WHITE-SPACE: nowrap } #creceipt { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 4px; COLOR: red; PADDING-TOP: 4px } UL.fileData { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 3px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.fileData LI { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FLOAT: left; PADDING-BOTTOM: = 2px; MARGIN: 0px; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 2px } UL.containerTabs LI.tabhead { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: none = transparent scroll repeat 0% 0%; BORDER-LEFT: medium none; = BORDER-BOTTOM: medium none; TEXT-ALIGN: left } UL.containerTabs LI H3 { BORDER-RIGHT: medium none; PADDING-RIGHT: 12px; BORDER-TOP: medium = none; PADDING-LEFT: 0px; FONT-SIZE: 100%; PADDING-BOTTOM: 6px; MARGIN: = 0px; BORDER-LEFT: medium none; PADDING-TOP: 5px; BORDER-BOTTOM: medium = none; WHITE-SPACE: nowrap } UL.listNav { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #ddd; = PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 100%; PADDING-TOP: 0px; = LIST-STYLE-TYPE: none } UL.listNav LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #ededed; FLOAT: = left; PADDING-BOTTOM: 0px; MARGIN: 1px; COLOR: #2d2680; PADDING-TOP: = 0px; WHITE-SPACE: nowrap; TEXT-ALIGN: center } UL.listNav LI A { PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; TEXT-DECORATION: none } UL.listNav LI A:hover { BACKGROUND-COLOR: #dedede; TEXT-DECORATION: underline } UL.listNav LI A.active { BORDER-RIGHT: #000 2px solid; PADDING-RIGHT: 8px; BORDER-TOP: #000 2px = solid; PADDING-LEFT: 8px; FONT-WEIGHT: bold; BACKGROUND: #fff; = PADDING-BOTTOM: 2px; BORDER-LEFT: #000 2px solid; COLOR: #000; = PADDING-TOP: 2px; BORDER-BOTTOM: #000 2px solid } UL.evaluation { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 0.6em 1.2em; = PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.evaluation LI { CLEAR: both; PADDING-RIGHT: 0px; BORDER-TOP: #ddd 1px solid; = PADDING-LEFT: 0px; PADDING-BOTTOM: 4px; MARGIN: 0px; PADDING-TOP: 4px } UL.evaluation LI P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 1px 0px; WIDTH: 79%; PADDING-TOP: 0px } UL.evaluation H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 4px; FONT-SIZE: 100%; FLOAT: left; = PADDING-BOTTOM: 0px; MARGIN: 1px 0px; WIDTH: 20%; PADDING-TOP: 0px } UL.evaluation LI P SPAN { COLOR: #555 } DIV.stepPanel DIV.user_html { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 5px = 5px 12px 12px; PADDING-TOP: 0px } UL.stepPanels H4.defaultCursor { CURSOR: default } H4.defaultCursor { CURSOR: default } DL { MARGIN: 1em } DT { CLEAR: left; PADDING-RIGHT: 0.1em; PADDING-LEFT: 0.1em; FONT-WEIGHT: = bold; FLOAT: left; PADDING-BOTTOM: 0.1em; MARGIN: 0px; WIDTH: 8em; = PADDING-TOP: 0.1em } DD { PADDING-RIGHT: 0.1em; PADDING-LEFT: 0.1em; PADDING-BOTTOM: 0.1em; = MARGIN: 0px 0px 0px 9em; PADDING-TOP: 0.1em } .rating { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/star-matrix.gif) no-repeat 0px 0px; PADDING-BOTTOM: 0px; = MARGIN: 0px; WIDTH: 80px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; = POSITION: relative; HEIGHT: 16px } .star0 { BACKGROUND-POSITION: 0px 0px } .star1 { BACKGROUND-POSITION: 0px -16px } .star2 { BACKGROUND-POSITION: 0px -32px } .star3 { BACKGROUND-POSITION: 0px -48px } .star4 { BACKGROUND-POSITION: 0px -64px } .star5 { BACKGROUND-POSITION: 0px -80px } UL.rating LI { FLOAT: left; CURSOR: pointer; TEXT-INDENT: -999em } UL.rating LI A { Z-INDEX: 200; LEFT: 0px; WIDTH: 16px; POSITION: absolute; TOP: 0px; = HEIGHT: 16px; TEXT-DECORATION: none } UL.rating LI.one A { LEFT: 0px } UL.rating LI.two A { LEFT: 16px } UL.rating LI.three A { LEFT: 32px } UL.rating LI.four A { LEFT: 48px } UL.rating LI.five A { LEFT: 64px } UL.rating LI A:hover { Z-INDEX: 2; BACKGROUND: url(images/star-matrix.gif) no-repeat 0px 0px; = LEFT: 0px; OVERFLOW: hidden; WIDTH: 80px; HEIGHT: 16px } UL.rating LI.one A:hover { BACKGROUND-POSITION: 0px -96px } UL.rating LI.two A:hover { BACKGROUND-POSITION: 0px -112px } UL.rating LI.three A:hover { BACKGROUND-POSITION: 0px -128px } UL.rating LI.four A:hover { BACKGROUND-POSITION: 0px -144px } UL.rating LI.five A:hover { BACKGROUND-POSITION: 0px -160px } DIV.collectionViewReadMessageBorder { MARGIN-LEFT: 30px; BORDER-LEFT: #ccc 1px solid } DIV.collectionViewUnreadMessageBorder { BORDER-RIGHT: #999 3px solid; BORDER-TOP: #999 3px solid; MARGIN-LEFT: = 30px; BORDER-LEFT: #999 3px solid; BORDER-BOTTOM: #999 3px solid } TABLE.treeframe TR TD { VERTICAL-ALIGN: middle } TABLE.tree_view TR TD IMG { VERTICAL-ALIGN: middle } TABLE.treeframe { MARGIN: 0px } TABLE.treeframe TBODY TR TD { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } TABLE.treeframe THEAD TR TH { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } TABLE.treeframe TR.high { BACKGROUND-COLOR: transparent } TR.thread TD { BORDER-TOP: #ccc 1px solid; VERTICAL-ALIGN: middle } TR.thread TD IMG { VERTICAL-ALIGN: middle } TABLE.unreadmessageborder { BORDER-RIGHT: rgb(102,102,102) 3px solid; BORDER-TOP: rgb(102,102,102) = 3px solid; BORDER-LEFT: rgb(102,102,102) 3px solid; BORDER-BOTTOM: = rgb(102,102,102) 3px solid } TABLE.readmessageborder { BORDER-RIGHT: rgb(204,204,204) 1px solid; BORDER-TOP: rgb(204,204,204) = 1px solid; BORDER-LEFT: rgb(204,204,204) 1px solid; BORDER-BOTTOM: = rgb(204,204,204) 1px solid } TR.show { =09 } TR.hide { DISPLAY: none } .loadingelipse { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 14px; BORDER-TOP: #ccc 1px = solid; DISPLAY: block; PADDING-LEFT: 14px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; BACKGROUND: #ffffcc; PADDING-BOTTOM: 4px; MARGIN: auto; = BORDER-LEFT: #ccc 1px solid; WIDTH: 140px; PADDING-TOP: 4px; = BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: center } .gradefield { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 120%; = PADDING-BOTTOM: 4px; MARGIN: 9px 0px; VERTICAL-ALIGN: middle; OVERFLOW: = visible; COLOR: #000; PADDING-TOP: 4px; HEIGHT: 1%; TEXT-ALIGN: center } .gradefield INPUT { BORDER-RIGHT: #666 2px solid; PADDING-RIGHT: 3px; BORDER-TOP: #666 2px = solid; PADDING-LEFT: 3px; FONT-WEIGHT: bold; FONT-SIZE: 110%; = BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; MARGIN: 0px; VERTICAL-ALIGN: = middle; BORDER-LEFT: #666 2px solid; LINE-HEIGHT: 120%; PADDING-TOP: = 1px; BORDER-BOTTOM: #666 2px solid; FONT-FAMILY: arial,sans-serif } .gradefield INPUT.inputtypebutton { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline; PADDING-LEFT: 8px; FONT-WEIGHT: normal; = FONT-SIZE: 80%; BACKGROUND: #ededed; PADDING-BOTTOM: 1px; OVERFLOW: = visible; BORDER-LEFT: #ccc 1px solid; WIDTH: auto; PADDING-TOP: 2px; = BORDER-BOTTOM: #ccc 1px solid; HEIGHT: auto } .gradefield A { FONT-WEIGHT: bold; FONT-SIZE: 120% } .gradefield SPAN { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-SIZE: 80%; PADDING-BOTTOM: = 0px; COLOR: #555; PADDING-TOP: 0px } .overridegrade { PADDING-RIGHT: 12px; DISPLAY: inline; PADDING-LEFT: 12px; FONT-SIZE: = 80%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 3px 9px; VERTICAL-ALIGN: = middle; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 0px } .overridegrade INPUT.inputtypebutton { MARGIN-TOP: -3px; FONT-WEIGHT: normal; FONT-SIZE: 70%; VERTICAL-ALIGN: = middle } DIV.parentmessage { CLEAR: both; BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 6px; = BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 6px; FONT-SIZE: 90%; = BACKGROUND: #ededed; PADDING-BOTTOM: 9px; MARGIN: 6px; BORDER-LEFT: #ccc = 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid } .availability { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 85%; PADDING-BOTTOM: = 1px; MARGIN: 6px 0px; WIDTH: auto; PADDING-TOP: 1px; FONT-STYLE: italic } TD.tag_controls { PADDING-RIGHT: 3px; PADDING-LEFT: 6px; BACKGROUND: #cad7e7; = PADDING-BOTTOM: 3px; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid } TD.msg_controls { PADDING-RIGHT: 3px; PADDING-LEFT: 0px; BACKGROUND: #cad7e7; = PADDING-BOTTOM: 3px; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid } TD.checkbox_cell { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 6px; PADDING-LEFT: 6px; = PADDING-BOTTOM: 0px; VERTICAL-ALIGN: top; PADDING-TOP: 6px } TD.prevnextpostarea { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 5px; BACKGROUND: #fff; PADDING-BOTTOM: 3px; = BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #ccc 1px = solid; WHITE-SPACE: nowrap; TEXT-ALIGN: center } H3.dbheading { MARGIN-TOP: 0px; DISPLAY: inline; FONT-WEIGHT: normal; MARGIN-BOTTOM: = 0px } DIV.dbThread { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; MARGIN: 0.9em = 0px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid; = POSITION: relative } DIV.dbThreadCheckbox { POSITION: absolute } DIV.dbThreadCheckbox INPUT { MARGIN: 10px } DIV.dbThreadInfo { BACKGROUND: #eee } DIV.dbThreadInfo DL { FONT-SIZE: 95%; FLOAT: left; MARGIN: 0.6em; WIDTH: 45% } DIV.dbThreadBody { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; PADDING-BOTTOM: 1.2em; = PADDING-TOP: 1.2em } P.dbAttachment { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 1.2em } DIV.dbParentPost P.dbAttachment { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 1.2em } DIV.dbThreadHeader { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; BACKGROUND: #e3efff; = PADDING-BOTTOM: 0.6em; PADDING-TOP: 0.6em; BORDER-BOTTOM: #ccc 1px solid } DIV.dbThreadFooter { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; BACKGROUND: #e3efff; = PADDING-BOTTOM: 0.6em; PADDING-TOP: 0.6em } DIV.dbThreadFooter DIV.navButtons { FLOAT: left; WIDTH: 49% } DIV.dbThreadHeader DIV.navButtons { FLOAT: left; WIDTH: 49% } DIV.dbThreadFooter DIV.threadButtons { FLOAT: right; WIDTH: 49%; TEXT-ALIGN: right } DIV.dbThreadHeader DIV.threadButtons { FLOAT: right; WIDTH: 49%; TEXT-ALIGN: right } DIV.dbThreadFooter A { DISPLAY: inline-block; VERTICAL-ALIGN: middle } DIV.dbThreadHeader A { DISPLAY: inline-block; VERTICAL-ALIGN: middle } DIV.spacerDiv { CLEAR: both } DIV.threadButtons A.reply { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 6px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; = PADDING-LEFT: 6px; FONT-WEIGHT: bold; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 0px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } DIV.dbThreadInfo P A.reply { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 6px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; = PADDING-LEFT: 6px; FONT-WEIGHT: bold; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 0px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } DIV.threadButtons A.reply:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } DIV.dbThreadInfo P A.reply:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } DIV.dbThreadInfo P { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; PADDING-BOTTOM: 0.6em; = PADDING-TOP: 0.6em } DIV.dbThreadInfo P.detailButtons { FLOAT: right } DIV.dbThreadTree { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BORDER-LEFT: = #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid; HEIGHT: 200px } DIV.dbThreadMessage { MARGIN-TOP: 10px } DIV.dbParentPost { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; FONT-SIZE: 95%; BACKGROUND: = #eee; PADDING-BOTTOM: 0px; MARGIN: -0.6em 0px 1.2em; COLOR: #444; = PADDING-TOP: 0.6em } DIV.dbParentPost H4 { MARGIN: 0px 0px 0.6em } DIV.dbParentPost H4 A { DISPLAY: block; WIDTH: 100% } DIV.dbParentPost P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; PADDING-BOTTOM: = 1.2em; MARGIN: 0px; PADDING-TOP: 0px } DIV.dbParentPostBody { CLEAR: both; PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; BACKGROUND: = #fcfcfc; MARGIN-BOTTOM: 0.6em; PADDING-BOTTOM: 0.6em; PADDING-TOP: 0.6em } .loadingElipse { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 14px; BORDER-TOP: #ccc 1px = solid; DISPLAY: block; PADDING-LEFT: 14px; FONT-WEIGHT: bold; = BACKGROUND: #fff7de; PADDING-BOTTOM: 4px; MARGIN: 12px auto; = BORDER-LEFT: #ccc 1px solid; WIDTH: 140px; PADDING-TOP: 4px; = BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: center } .unreadmessage { FONT-WEIGHT: bold } H3.unreadmessage { FONT-WEIGHT: bold } BODY.wizardBody { MARGIN-TOP: 10px } BODY.wizardBody DIV#contentPanel { MARGIN-BOTTOM: 10px; MARGIN-LEFT: 159px } BODY.wizardBody DIV#pageTitleDiv IMG { DISPLAY: none } BODY.wizardBody DIV.reqfield { FLOAT: none; MARGIN: 0px 0px 6px -6px } DIV.wizardHead { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 2px; PADDING-TOP: 0px } DIV.wizardHead H2 { MARGIN: 0px } DIV.wizardHead P.helphelp { PADDING-RIGHT: 4px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 4px } BODY.wizardBody DIV.container { MIN-HEIGHT: 80% } BODY.wizardBody DIV.containerWizard { BORDER-RIGHT: #bbb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #bbb 1px = solid; PADDING-LEFT: 0px; BACKGROUND: #cdcdcd; PADDING-BOTTOM: 14px; = MARGIN: 0px -12px; BORDER-LEFT: #bbb 1px solid; PADDING-TOP: 3px; = BORDER-BOTTOM: #bbb 1px solid } BODY.wizardBody DIV.containerWizard DIV.locationPane { WIDTH: 99% } BODY.wizardBody UL.contentList LI DIV.details { OVERFLOW-X: visible } P.wizardFinishText { MARGIN: 6px 0px 150px } P.wizardSubmit { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 6px; MARGIN: = 0px; PADDING-TOP: 12px } P.wizardSubmit INPUT[type=3Dimage] { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; = PADDING-TOP: 2px } P.wizardSubmit INPUT.submit { BORDER-LEFT-COLOR: #566e94; BACKGROUND: #819ac0; BORDER-BOTTOM-COLOR: = #566e94; COLOR: #fff; BORDER-TOP-COLOR: #566e94; BORDER-RIGHT-COLOR: = #566e94 } P.wizardSubmit SPAN { FONT-SIZE: 95% } P.wizardSubmit SPAN STRONG { COLOR: #000 } DIV.wizardBottomRound B.inner { BACKGROUND: #fff1c5 } DIV.wizardBottomRound B.outer { BACKGROUND: #fff1c5 } DIV.wizardBottomRound B.middle { BACKGROUND: #fff1c5 } DIV.navigationPaneWizard { MARGIN-TOP: 55px; WIDTH: 159px } DIV.navigationPaneWizard DIV B.inner { MARGIN-RIGHT: 0px! important } DIV.navigationPaneWizard DIV B.middle { MARGIN-RIGHT: 0px! important } DIV.navigationPaneWizard DIV B.outer { MARGIN-RIGHT: 0px! important } DIV.navigationPaneWizard DIV.navPalette { MARGIN: 0px 0px 12px 12px } DIV.navigationPaneWizard DIV.navPalette DIV.navPaletteContent H2 { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px } DIV.navigationPaneWizard DIV.navPalette SPAN { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; PADDING-BOTTOM: = 6px; PADDING-TOP: 6px; BACKGROUND-COLOR: #ededed } DIV.navigationPaneWizard DIV.navPalette UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none! important; = BACKGROUND-COLOR: #ededed } DIV.navigationPaneWizard DIV.navPalette UL LI { PADDING-RIGHT: 9px; BORDER-TOP: #cdcdcd 1px solid; PADDING-LEFT: 24px; = BACKGROUND: url(images/bullet_off_ia.gif) no-repeat 0px 0px; = PADDING-BOTTOM: 4px; MARGIN: 0px; BORDER-LEFT: #cdcdcd 1px solid; COLOR: = #444; PADDING-TOP: 4px } DIV.navigationPaneWizard DIV.navPalette UL LI:first-child { BORDER-TOP: medium none } DIV.navigationPaneWizard DIV.navPalette UL LI.currentStep { FONT-WEIGHT: bold; BACKGROUND: url(images/bullet_active_ia.gif) white = no-repeat 0px 0px } DIV.navigationPaneWizard DIV.navPalette UL LI.visitedStep { BACKGROUND: url(images/bullet_inactive_ia.gif) no-repeat 0px 0px } #loginPageContainer { MIN-HEIGHT: 100%; MARGIN: 0px auto; WIDTH: 728px; POSITION: relative; = HEIGHT: 100%; TEXT-ALIGN: left } #loginPane { MARGIN: 40px 0px 20px } #loginPane DIV.loginBack B { BACKGROUND: #94b3de } #loginContainer { BORDER-RIGHT: #94b3de 8px solid; BORDER-TOP: #94b3de 4px solid; = BACKGROUND: #fff; MARGIN: 0px auto; BORDER-LEFT: #94b3de 8px solid; = BORDER-BOTTOM: #94b3de 4px solid; ZOOM: 1 } #loginHeader { FONT-SIZE: 0.85em; BACKGROUND: #eee; COLOR: #444 } #loginHeader IMG.productLogo { FLOAT: left; MARGIN: 12px 8px 0px 20px; WIDTH: 60px; HEIGHT: 58px } #loginHeader UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: = 0px; MARGIN: 10px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #loginHeader UL LI { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px; BORDER-LEFT: #999 1px dotted; PADDING-TOP: 0px } #loginHeader UL LI:first-child { BORDER-LEFT: medium none } #loginHeader UL LI :link .active { COLOR: #666; TEXT-DECORATION: none } #loginLang { CLEAR: both; PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 0.85em; = BACKGROUND: #eee; PADDING-BOTTOM: 6px; MARGIN: 0px auto; COLOR: #444; = PADDING-TOP: 6px } #loginLang H2 { MARGIN: 1em 0px 0.1em } #loginLang H3 { FLOAT: left; MARGIN: 6px } #loginLang UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #loginLang UL LI { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px; BORDER-LEFT: #999 1px dotted; PADDING-TOP: 0px; = WHITE-SPACE: nowrap } #loginLang UL LI:first-child { BORDER-LEFT: medium none } #loginLang UL LI :link .active { COLOR: #666; TEXT-DECORATION: none } DIV.loginBody { PADDING-RIGHT: 0px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 0px; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; HEIGHT: 1%; BACKGROUND-COLOR: = #94b3de } #loginBox { BACKGROUND: #fff1c5; FLOAT: left; WIDTH: 49.5% } #loginBox H2 { MARGIN: 10px } #loginBox P { FONT-SIZE: 0.85em; MARGIN: 10px; COLOR: #444 } #loginBox UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #loginBox LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 2px } #loginBox LI LABEL { PADDING-RIGHT: 3px; FONT-WEIGHT: bold; FLOAT: left; WIDTH: 90px } #loginBox LI INPUT { FLOAT: left } #loginBox LI INPUT[type=3D'text'] { BORDER-RIGHT: #ccc 2px solid; BORDER-TOP: #ccc 2px solid; BORDER-LEFT: = #ccc 2px solid; BORDER-BOTTOM: #ccc 2px solid } #loginBox LI INPUT[type=3D'password'] { BORDER-RIGHT: #ccc 2px solid; BORDER-TOP: #ccc 2px solid; BORDER-LEFT: = #ccc 2px solid; BORDER-BOTTOM: #ccc 2px solid } #loginBox .forgot { FONT-SIZE: 85%; MARGIN-LEFT: 93px } #loginBox LI INPUT[type=3D'submit'] { MARGIN-LEFT: 93px } #loginBox LI INPUT.submit { MARGIN-LEFT: 94px } #loginBox LI INPUT[type=3D'submit']:hover { =09 } #loginOptions { PADDING-LEFT: 4px; FLOAT: left; BORDER-LEFT: #ccc 1px solid; WIDTH: 49% } #loginOptions H2 { MARGIN: 10px } #loginOptions P { FONT-SIZE: 0.85em; MARGIN: 10px; COLOR: #444 } #loginOptions UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #loginOptions UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #loginOptions UL LI A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 24px; FONT-WEIGHT: = bold; FONT-SIZE: 95%; BACKGROUND: url(images/list_bullet.gif) #e3efff = no-repeat 6px center; PADDING-BOTTOM: 9px; COLOR: #52637b; PADDING-TOP: = 9px; TEXT-DECORATION: none } #loginOptions UL LI.subOption A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 24px; FONT-WEIGHT: = bold; FONT-SIZE: 95%; BACKGROUND: url(images/list_bullet.gif) #e3efff = no-repeat 6px center; PADDING-BOTTOM: 9px; COLOR: #52637b; PADDING-TOP: = 9px; TEXT-DECORATION: none } #loginOptions UL LI.subOption A { BORDER-TOP: #aaa 1px solid } #loginOptions UL LI A:hover { COLOR: #000; BACKGROUND-COLOR: #b4cdeb } #loginOptions UL LI.subOption A:hover { COLOR: #000; BACKGROUND-COLOR: #b4cdeb } #loginText { PADDING-RIGHT: 80px; BORDER-TOP: #777 1px solid; PADDING-LEFT: 80px; = BACKGROUND: #5f6062; PADDING-BOTTOM: 18px; PADDING-TOP: 12px; = TEXT-ALIGN: center } #loginText P SPAN { FONT-WEIGHT: bold; FONT-SIZE: 105%; COLOR: #fff } #loginText P { FONT-SIZE: 95%; MARGIN: 0px; COLOR: #ededed } #loginImage { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; BACKGROUND-COLOR: #fff; TEXT-ALIGN: center } #loginImage IMG { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = -1px auto 0px; PADDING-TOP: 0px } #loginAnnouncements { CLEAR: both; PADDING-RIGHT: 0px; BORDER-TOP: #eee 1px solid; = PADDING-LEFT: 0px; BACKGROUND: #ddd; PADDING-BOTTOM: 7px; PADDING-TOP: = 0px } #loginAnnouncements H3 { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 110%; PADDING-BOTTOM: = 6px; MARGIN: 0px 9px; COLOR: #555; PADDING-TOP: 6px; BORDER-BOTTOM: #bbb = 1px solid } #loginAnnouncements UL { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #ebebeb; = LIST-STYLE-IMAGE: url(/images/ci/ng/list_bullet_single.gif); = PADDING-BOTTOM: 8px; MARGIN: 0px 9px; PADDING-TOP: 1px } #loginAnnouncements UL LI { PADDING-RIGHT: 0px; BORDER-TOP: #999 1px dotted; PADDING-LEFT: 0px; = FONT-SIZE: 90%; PADDING-BOTTOM: 0px; MARGIN: 5px 5px 5px 15px; = PADDING-TOP: 4px } #loginAnnouncements UL LI:first-child { BORDER-TOP: 0px } #loginAnnouncements UL LI A { FONT-SIZE: 95%; COLOR: #495a71 } .portlet #loginBoxFull { BORDER-RIGHT: #fff1c5 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #fff1c5 2px solid; PADDING-LEFT: 0px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 15px; MARGIN: 0px; BORDER-LEFT: #fff1c5 2px solid; = PADDING-TOP: 10px; BORDER-BOTTOM: #fff1c5 2px solid } .portlet #loginBoxFull P { PADDING-LEFT: 0px; FONT-SIZE: 0.85em; MARGIN: 10px; COLOR: #444 } .portlet #loginBoxFull P.welcome { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 1em; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: = 0px; MARGIN: 10px; COLOR: #000000; PADDING-TOP: 0px } .portlet #loginBoxFull UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .portlet #loginBoxFull LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: = none; PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-TOP: 2px } .portlet #loginBoxFull LI LABEL { MARGIN-TOP: 3px; FONT-WEIGHT: bold; FLOAT: left; WIDTH: 80px; = MARGIN-RIGHT: 3px } .portlet #loginBoxFull LI INPUT[type=3D'text'] { BORDER-RIGHT: #ccc 2px solid; BORDER-TOP: #ccc 2px solid; FONT-SIZE: = 100%; FLOAT: left; BORDER-LEFT: #ccc 2px solid; BORDER-BOTTOM: #ccc 2px = solid } .portlet #loginBoxFull LI INPUT[type=3D'password'] { BORDER-RIGHT: #ccc 2px solid; BORDER-TOP: #ccc 2px solid; FONT-SIZE: = 100%; FLOAT: left; BORDER-LEFT: #ccc 2px solid; BORDER-BOTTOM: #ccc 2px = solid } .portlet #loginBoxFull .forgot { FLOAT: left; MARGIN-LEFT: 83px } .portlet #loginBoxFull A { FONT-SIZE: 0.85em } .portlet #loginBoxFull P A { FONT-SIZE: 1em } .portlet #loginBoxFull P.welcome A { FONT-SIZE: 1em } .portlet #loginBoxFull LI INPUT.submit { MARGIN-LEFT: 83px } .portlet #loginPaneShort { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; MARGIN: 9px; = BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid } .portlet #loginFooter { PADDING-RIGHT: 0pt; PADDING-LEFT: 0px; FONT-SIZE: 0.85em; = BACKGROUND-ATTACHMENT: scroll; BACKGROUND-IMAGE: none; PADDING-BOTTOM: = 9px; MARGIN: 0px; COLOR: #444444; PADDING-TOP: 0px; BACKGROUND-REPEAT: = repeat; BACKGROUND-COLOR: #eeeeee; background-x-position: 0%; = background-y-position: 0% } .portlet #loginFooter UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .portlet #loginFooter UL LI { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FLOAT: left; BACKGROUND-IMAGE: = none; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: #999 1px dotted; = PADDING-TOP: 0px } .portlet #loginFooter UL LI:first-child { BORDER-LEFT: medium none } .portlet #loginFooter UL LI .active:link { COLOR: #666; TEXT-DECORATION: none } #courseMenu { BORDER-TOP: #ddd 1px solid; COLOR: #444; BACKGROUND-COLOR: #ededed } #moduleBorder { BORDER-LEFT-COLOR: #597298; BORDER-BOTTOM-COLOR: #597298; = BORDER-TOP-COLOR: #597298; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #597298 } #moduleBody { BORDER-LEFT-COLOR: #597298; BORDER-BOTTOM-COLOR: #597298; = BORDER-TOP-COLOR: #597298; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #597298 } #moduleTitle { COLOR: #fff; BACKGROUND-COLOR: #819ac0 } #schemePreviewBody { COLOR: #000000; BACKGROUND-COLOR: #fff } #schemePreview { COLOR: #000000; BACKGROUND-COLOR: #cdcdcd } #schemePreviewHead { COLOR: #000000; BACKGROUND-COLOR: #fff1c5 } .qIncomplete { BORDER-RIGHT: #cccccc 1px solid; BORDER-TOP: #cccccc 1px solid; = DISPLAY: block; FONT-WEIGHT: bold; FLOAT: left; MARGIN: 1px; = BORDER-LEFT: #cccccc 1px solid; WIDTH: 30px; BORDER-BOTTOM: #cccccc 1px = solid; TEXT-ALIGN: center } .qComplete { BORDER-RIGHT: #999999 1px solid; BORDER-TOP: #999999 1px solid; = DISPLAY: block; FONT-WEIGHT: bold; FLOAT: left; MARGIN: 1px; = BORDER-LEFT: #999999 1px solid; WIDTH: 30px; COLOR: #003366; = BORDER-BOTTOM: #999999 1px solid; BACKGROUND-COLOR: #cccccc; TEXT-ALIGN: = center } ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/branding/colorpalettes/wsu_production_colors/colorpalette.css?v=9.0.440.7 #topTabActive { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; BORDER-TOP-COLOR: = #fff; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: #fff } TABLE.appTabs TBODY TR TD.active A { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; BORDER-TOP-COLOR: = #fff; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: #fff } TABLE.appTabs TBODY TR TD.active A:hover { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; BORDER-TOP-COLOR: = #fff; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: #fff } #topTab { BORDER-LEFT-COLOR: #565a5c; COLOR: #fff; BORDER-TOP-COLOR: #565a5c; = BORDER-BOTTOM: 0px; BACKGROUND-COLOR: black; BORDER-RIGHT-COLOR: #565a5c } TABLE.appTabs TBODY TR TD A { BORDER-LEFT-COLOR: #565a5c; COLOR: #fff; BORDER-TOP-COLOR: #565a5c; = BORDER-BOTTOM: 0px; BACKGROUND-COLOR: black; BORDER-RIGHT-COLOR: #565a5c } TABLE.appTabs TBODY TR TD A:hover { BORDER-LEFT-COLOR: #67675c; BORDER-TOP-COLOR: #67675c; BORDER-BOTTOM: = 0px; BACKGROUND-COLOR: #bbbdb7; BORDER-RIGHT-COLOR: #67675c } DIV.topTabs { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } #topFrame { BACKGROUND-COLOR: #0c5449 } .bgBanner { BACKGROUND-COLOR: #0c5449 } #contentFrame { BACKGROUND-COLOR: #999 } #schemePreview { BACKGROUND-COLOR: #999 } BODY { BACKGROUND-COLOR: #999 } BODY.ineditmode { BACKGROUND-COLOR: #999 } BODY.topFrame { BACKGROUND-COLOR: #999 } DIV.breadcrumbs { BACKGROUND-COLOR: #999 } DIV.paneTabs UL LI.active { BACKGROUND-COLOR: #999 } DIV.paneTabs UL LI { BACKGROUND-COLOR: #999 } BODY.wizardBody DIV.containerWizard { BACKGROUND-COLOR: #999 } DIV.breadcrumbs { BORDER-LEFT-COLOR: #7a8c50; BORDER-BOTTOM-COLOR: #7a8c50; = BORDER-TOP-COLOR: #7a8c50; BORDER-RIGHT-COLOR: #7a8c50 } DIV.menuWrap { =09 } #navigationPane { =09 } DIV.navigationPane { =09 } BODY.ineditmode DIV.listCm { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } BODY.ineditmode DIV#editmodeWrapper { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.breadcrumbs DIV.path { BACKGROUND-COLOR: #dfddd1 } DIV.breadcrumbs DIV.simplePath { BACKGROUND-COLOR: #dfddd1 } DIV.breadcrumbs DIV.topRound B { BACKGROUND-COLOR: #dfddd1 } DIV.breadcrumbs DIV.bottomRound B { BACKGROUND-COLOR: #dfddd1 } DIV.breadcrumbs DIV.path OL LI.root { BACKGROUND-COLOR: #999 } DIV.simplePath OL LI.root { BACKGROUND-COLOR: #999 } DIV.simplePath A { COLOR: #fff } DIV.breadcrumbs DIV.path OL LI.root A { COLOR: #fff } DIV.breadcrumbs DIV.simplePath OL LI.root A { COLOR: #fff } DIV.simplePath A { COLOR: #fff } DIV.breadcrumbs DIV.path OL LI.root A:hover { COLOR: #fff } DIV.breadcrumbs DIV.simplePath OL LI.root A:hover { COLOR: #fff } DIV.breadcrumbs DIV.path A { COLOR: #222 } DIV.breadcrumbs DIV.path A:hover { COLOR: #000 } DIV.breadcrumbs DIV.path { COLOR: #000 } DIV.simplePath { COLOR: #000 } .navPalette H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.listCm H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.tools H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.classicCs .navPalette H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.explore H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.myPlaces H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.tools DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.myPlaces DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.explore DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.controlpanel H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.controlpanel DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } .navPalette H2 A { COLOR: #fff } DIV.controlpanel H2 A { COLOR: #fff } DIV.controlpanel H2 A:hover { COLOR: #fff } DIV.navPaletteExpCol DIV.navPaletteContent H2 A { COLOR: #fff } DIV.navPaletteExpCol DIV.navPaletteContent H2 A:hover { COLOR: #fff } DIV.tools UL { BACKGROUND-COLOR: #dfddd1 } DIV.pickerMenu UL { BACKGROUND-COLOR: #dfddd1 } DIV.tools DIV.bottomRound B { BACKGROUND-COLOR: #dfddd1 } DIV.tools UL LI A.submenuLink { BORDER-LEFT-COLOR: #0c5449; BORDER-BOTTOM-COLOR: #0c5449; = BORDER-TOP-COLOR: #0c5449; BORDER-RIGHT-COLOR: #0c5449 } DIV.tools UL LI A { BORDER-LEFT-COLOR: #0c5449; BORDER-BOTTOM-COLOR: #0c5449; = BORDER-TOP-COLOR: #0c5449; BORDER-RIGHT-COLOR: #0c5449 } DIV.controlpanel UL { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.discover UL LI H3 A { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.singleControl A { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.singleControl DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.singleControl DIV.bottomRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.discover A { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.discover DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.discover DIV.bottomRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.controlpanel DIV.bottomRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.controlpanel A.submenuLink { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.controlpanel DIV.controlpanelCol B { BACKGROUND-COLOR: #0c5449! important } DIV.controlpanel DIV.topRound B { BACKGROUND-COLOR: #0c5449! important } H3.listCmCol A { BACKGROUND-COLOR: #0c5449! important } DIV.controlpanel UL LI A { BORDER-LEFT-COLOR: #336666; BORDER-BOTTOM-COLOR: #336666; COLOR: #fff; = BORDER-TOP-COLOR: #336666; BORDER-RIGHT-COLOR: #336666 } DIV.controlpanel A.submenuLink { BORDER-LEFT-COLOR: #336666; BORDER-BOTTOM-COLOR: #336666; COLOR: #fff; = BORDER-TOP-COLOR: #336666; BORDER-RIGHT-COLOR: #336666 } DIV.controlpanel A.submenuLink_active { BORDER-LEFT-COLOR: #336666; BORDER-BOTTOM-COLOR: #336666; COLOR: #fff; = BORDER-TOP-COLOR: #336666; BORDER-RIGHT-COLOR: #336666 } DIV.controlpanel UL LI A:hover { BACKGROUND-IMAGE: url(/images/ci/ng/more_options_white.gif) } DIV.controlpanel UL LI A.comboLink:hover { BACKGROUND-IMAGE: url(/images/ci/ng/more_options_white.gif) } DIV.controlpanel A.comboLink_active { BACKGROUND-IMAGE: url(/images/ci/ng/less_options_dark.gif) } DIV.controlpanel A.open { BACKGROUND-IMAGE: url(/images/ci/ng/less_options_dark.gif) } DIV.navPalette A.comboLink_active:hover { BACKGROUND-IMAGE: url(/images/ci/ng/less_options.gif) } DIV.navPalette A.open:hover { BACKGROUND-IMAGE: url(/images/ci/ng/less_options.gif) } DIV.navPalette A.submenuLink_active { =09 } DIV.controlpanel UL LI H3 A:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.controlpanel UL LI H3 A.comboLink:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.controlpanel UL LI A.submenuLink:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.controlpanel UL LI H3 A.simpleLink:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.singleControl A:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.discover A:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.controlpanel UL LI H3 A.open { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI H3 A.open:hover { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI H3 A.comboLink_active { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI H3 A.comboLink_active:hover { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI A.submenuLink_active { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI A.submenuLink_active:hover { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI UL.submenu LI A { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.tools UL LI H3 A.comboLink_active { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel A.comboLink { BACKGROUND-IMAGE: url(/images/ci/ng/more_options_white.gif) } DIV.controlpanel A.submenuLink:hover { BACKGROUND-IMAGE: url(/images/ci/ng/list_bullet_white.gif) } DIV.controlpanel UL LI UL.submenu { BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI UL.submenu LI A:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.navDivider { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; COLOR: #555; = BORDER-TOP-COLOR: #fff; BORDER-RIGHT-COLOR: #fff } DIV.singleControl UL LI A { COLOR: #fff } .navPalette DIV.actionBarMicro UL LI A { =09 } DIV.treeViewCs DIV.topRound B { BACKGROUND-COLOR: #0c5449 } DIV.navPaletteExpCol DIV.navPaletteContent { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #fff; = BORDER-RIGHT-COLOR: #000! important } DIV.paneTabs UL { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } DIV.paneTabs UL LI A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #dfddd1; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.external A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #dfddd1; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.personal A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #dfddd1; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.active A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.active A:hover { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI A:hover { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.external A:hover { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.activepersonal A:hover { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } #contentArea { BACKGROUND-POSITION: 0% 0%; BACKGROUND-COLOR: #fff } #schemePreviewBody { BACKGROUND-POSITION: 0% 0%; BACKGROUND-COLOR: #fff } .container { BACKGROUND-POSITION: 0% 0%; BACKGROUND-COLOR: #fff } .contentPane DIV.bottomRound B { BACKGROUND-POSITION: 0% 0%; BACKGROUND-COLOR: #fff } DIV.portal DIV.container { BACKGROUND-COLOR: #dfddd1 } DIV.containerPortal { BACKGROUND-COLOR: #dfddd1 } DIV.portal DIV.bottomRound B { BACKGROUND-COLOR: #dfddd1 } DIV.landing DIV.container { BACKGROUND-COLOR: #dfddd1 } DIV.landing DIV.bottomRound B { BACKGROUND-COLOR: #dfddd1 } DIV.landingPageColumn UL LI A { COLOR: #000000 } DIV.landingPageColumn UL.outcomesLanding LI H3 { BORDER-LEFT-COLOR: #bbbdb7; BORDER-BOTTOM-COLOR: #bbbdb7; COLOR: #333; = BORDER-TOP-COLOR: #bbbdb7; BORDER-RIGHT-COLOR: #bbbdb7 } DIV.landingPageColumn UL LI P { BORDER-LEFT-COLOR: #bbbdb7; BORDER-BOTTOM-COLOR: #bbbdb7; COLOR: #333; = BORDER-TOP-COLOR: #bbbdb7; BORDER-RIGHT-COLOR: #bbbdb7 } #pageHeader { BACKGROUND-COLOR: #cedddb } #schemePreviewHead { BACKGROUND-COLOR: #cedddb } DIV.actionBar { BACKGROUND-COLOR: #cedddb } DIV.contentPaneWide DIV.actionBar { BACKGROUND-COLOR: #cedddb } DIV.actionBar UL { BACKGROUND-COLOR: #cedddb } DIV.localViewToggle { BACKGROUND-COLOR: #cedddb } .navPalette DIV.actionBarMicro { BACKGROUND-COLOR: #cedddb } DIV.contentPane DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.listCm DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.buttonCm DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.treeContainer DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.treeViewCs DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV#lightboxContent H2 { BACKGROUND-COLOR: #cedddb } #lightbox DIV.topRound B { BACKGROUND-COLOR: #cedddb } #puller { BACKGROUND-COLOR: #cedddb } #puller { BORDER-LEFT-COLOR: #000; BORDER-BOTTOM-COLOR: #000; BORDER-TOP-COLOR: = #000; BORDER-RIGHT-COLOR: #000 } DIV.pageTitle H1 { COLOR: #000 } DIV.pageTitle { BORDER-BOTTOM-COLOR: #dfddd1 } DIV.actionBar { BORDER-BOTTOM-COLOR: #dfddd1 } DIV#lightboxContent H2 { BORDER-BOTTOM-COLOR: #dfddd1 } DIV.helphelp { COLOR: #222 } P.helphelp { COLOR: #222 } DIV.pageTitle P { COLOR: #222 } DIV.helphelp A { COLOR: #000 } P.helphelp A { COLOR: #000 } DIV.pageTitle P A { COLOR: #000 } .actionBar UL { BORDER-LEFT-COLOR: #000; BORDER-BOTTOM-COLOR: #000; BORDER-TOP-COLOR: = #000; BORDER-RIGHT-COLOR: #000 } DIV.navPalette DIV.actionBarMicro { BORDER-LEFT-COLOR: #000; BORDER-BOTTOM-COLOR: #000; BORDER-TOP-COLOR: = #000; BORDER-RIGHT-COLOR: #000 } DIV.localViewToggle UL LI A.active { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #b5dfb5 } .navPalette DIV.actionBarMicro UL LI.active A { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #b5dfb5 } .navPalette DIV.actionBarMicro UL LI A:hover { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #b5dfb5 } .navPalette DIV.actionBarMicro UL LI.active A.options { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #b5dfb5 } DIV.localViewToggle UL LI A { COLOR: #000 } DIV.localViewToggle UL LI A.active { COLOR: #000 } DIV.localViewToggle UL LI.separator { BORDER-LEFT-COLOR: #8b835f } #primaryButton { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI.mainButton A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .actionbar_portal UL LI A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.navPalette DIV.actionBarMicro UL LI.mainButton A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } INPUT.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.threadButtons A.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskbuttondiv BUTTON.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskbuttondiv INPUT.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskButtonsContent BUTTON.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskButtonsContent INPUT.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.controls BUTTON.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.controls INPUT.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskbuttondiv BUTTON.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskbuttondiv INPUT.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskButtonsContent BUTTON.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskButtonsContent INPUT.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.controls BUTTON.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.controls INPUT.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.threadButtons A.reply { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.dbThreadInfo P A.reply { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage A.gotopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble_top UL LI.jumptopage A.gotopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .paging A.gotopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } #loginBox LI INPUT[type=3D'submit'] { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .actionBar UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .actionbar_portal UL LI A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.navPalette DIV.actionBarMicro UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .taskbuttondiv BUTTON.submit:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .taskbuttondiv INPUT.submit:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.controls BUTTON.submit:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.controls INPUT.submit:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.threadButtons A.reply:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.dbThreadInfo P A.reply:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage A.gotopage:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.rumble_top UL LI.jumptopage A.gotopage:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .paging A.gotopage:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } #loginBox LI INPUT[type=3D'submit']:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } #secondaryButton { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .actionBar UL LI.search A { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .actionBar UL LI.secondaryButton A { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .actionBar_portal UL LI.search A { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .pageTitle H1 A.secondaryButton { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .taskbuttondiv BUTTON { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .taskbuttondiv INPUT { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .taskButtonsContent BUTTON { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .taskButtonsContent INPUT { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } DIV.controls BUTTON { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } DIV.controls INPUT { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } P.okbutton INPUT { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .actionBar UL LI.secondaryButton A:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } .taskbuttondiv BUTTON:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } .taskbuttondiv INPUT:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } DIV.controls BUTTON:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } DIV.controls INPUT:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } .paging A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble_top UL LI.secondaryControl A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble UL LI.secondaryControl A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble_top A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble A:hover { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble_top UL LI.inventory_paging A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble UL LI.inventory_paging A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } .paging A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble_top UL LI.secondaryControl A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble UL LI.secondaryControl A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble_top A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble_top UL LI.inventory_paging A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble UL LI.inventory_paging A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } #moduleBorder { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BACKGROUND-COLOR: #ffffff; BORDER-RIGHT-COLOR: #999 } #moduleBody { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BACKGROUND-COLOR: #ffffff; BORDER-RIGHT-COLOR: #999 } .portlet { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BACKGROUND-COLOR: #ffffff; BORDER-RIGHT-COLOR: #999 } .portlet H2 SPAN.reorder { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BACKGROUND-COLOR: #ffffff; BORDER-RIGHT-COLOR: #999 } #moduleTitle { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } .portlet H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } .portlet H2:hover { BACKGROUND-COLOR: #cedddb } .portlet H3 { BORDER-LEFT-COLOR: #777; BORDER-BOTTOM-COLOR: #777; COLOR: #000; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } #lightbox H3 { BORDER-LEFT-COLOR: #777; BORDER-BOTTOM-COLOR: #777; COLOR: #000; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } .portlet DIV.portletBlock H4 { BORDER-LEFT-COLOR: #777; BORDER-BOTTOM-COLOR: #777; COLOR: #000; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } .portlet DIV.blockContents H4 { BORDER-LEFT-COLOR: #777; BORDER-BOTTOM-COLOR: #777; COLOR: #000; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } .portlet H2 A { COLOR: #333333 } .actionBar UL LI.buttontotab A { BACKGROUND: #ffcc33 } .actionBar UL LI.buttontotab A:hover { BACKGROUND: #ffcc33 } .actionBar UL LI.secondaryButtonTab A { BACKGROUND: #ffcc33 } .actionBar UL LI.secondaryButtonTab A:hover { BACKGROUND: #ffcc33 } .actionBar UL LI.buttontotab A { BORDER-LEFT-COLOR: #999; BORDER-TOP-COLOR: #999; BORDER-BOTTOM: medium = none; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI.buttontotab A:hover { BORDER-LEFT-COLOR: #999; BORDER-TOP-COLOR: #999; BORDER-BOTTOM: medium = none; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI.secondaryButtonTab A { BORDER-LEFT-COLOR: #999; BORDER-TOP-COLOR: #999; BORDER-BOTTOM: medium = none; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI.secondaryButtonTab A:hover { BORDER-LEFT-COLOR: #999; BORDER-TOP-COLOR: #999; BORDER-BOTTOM: medium = none; BORDER-RIGHT-COLOR: #999 } UL.nav LI.sub UL { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .cmdiv UL { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .menumini UL { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.quickAddPal { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.keyboardAccess { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } UL.nav LI.sub UL LI A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .cmdiv A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .menumini A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.actionBarMicro UL.nav LI.sub UL LI A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.paneTabs UL.nav LI.sub UL LI A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } SPAN.currentTags { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .loadingElipse { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.quickAddPal DIV.quickAddPalHeader { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BACKGROUND-COLOR: #ddd; BORDER-RIGHT-COLOR: = #355533 } DIV.quickAddPal DIV.controls { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BORDER-RIGHT-COLOR: #355533 } DIV.keyboardAccess DIV.controls { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BORDER-RIGHT-COLOR: #355533 } .comText DIV.controls { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BORDER-RIGHT-COLOR: #355533 } UL.nav LI.sub UL LI A:hover { COLOR: #000! important; BACKGROUND-COLOR: #fff! important } .cmdiv A:hover { COLOR: #000! important; BACKGROUND-COLOR: #fff! important } .menumini A:hover { COLOR: #000! important; BACKGROUND-COLOR: #fff! important } UL.nav LI.sub UL { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .cmdiv UL { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .menumini UL { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.quickAddPal { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.keyboardAccess { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .cmdiv { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } SPAN.currentTags { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble_top UL LI.jumptopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble_top UL LI.jumptopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } LI.inventory_paging INPUT { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.jumptopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.jumptopage INPUT { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage { BACKGROUND-COLOR: #ddd } DIV.rumble UL LI.jumptopage { BACKGROUND-COLOR: #ddd } DIV.rumble_top UL LI.jumptopage { BACKGROUND-COLOR: #ddd } DIV.rumble_top UL LI.jumptopage { BACKGROUND-COLOR: #ddd } DIV.jumptopage { BACKGROUND-COLOR: #ddd } UL.nav LI.sub UL LI A:hover { BORDER-TOP-COLOR: #ddd } .cmdiv UL { BORDER-TOP-COLOR: #ddd } .cmdiv LI.contextmenubar_top A { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BACKGROUND-COLOR: #ddd! important; = BORDER-RIGHT-COLOR: #355533 } .cmdiv LI.contextmenubar_top A:hover { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BACKGROUND-COLOR: #ddd! important; = BORDER-RIGHT-COLOR: #355533 } SPAN.currentTags A.closeCloud { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BACKGROUND-COLOR: #ddd! important; = BORDER-RIGHT-COLOR: #355533 } DIV.quickAddPal H3 { BACKGROUND-COLOR: #ffc59f } DIV.keyboardAccess H3 { BACKGROUND-COLOR: #ffc59f } .searchbar { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BORDER-RIGHT-COLOR: #b5dfb5 } .subActionBar { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BORDER-RIGHT-COLOR: #b5dfb5 } TR.high { BORDER-LEFT-COLOR: #aaa; BORDER-BOTTOM-COLOR: #aaa; BORDER-TOP-COLOR: = #aaa; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: #aaa } TABLE.inventory TBODY TR.high TD { BORDER-LEFT-COLOR: #aaa; BORDER-BOTTOM-COLOR: #aaa; BORDER-TOP-COLOR: = #aaa; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: #aaa } TABLE.inventory TBODY TR.high TH { BORDER-LEFT-COLOR: #aaa; BORDER-BOTTOM-COLOR: #aaa; BORDER-TOP-COLOR: = #aaa; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: #aaa } TABLE.inventory THEAD { BACKGROUND-COLOR: #cfcfcf } TABLE.inventory THEAD TR TH { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #333; = BORDER-TOP-COLOR: #777 } TABLE.inventory TBODY { BORDER-BOTTOM-COLOR: #777 } TABLE.inventory TBODY TR { =09 } TABLE.inventory TBODY TR TD { =09 } TABLE.inventory TBODY TR TH { =09 } TABLE.inventory THEAD TR TH.sorted { =09 } TH.sorted { =09 } TABLE.sortable TH A { COLOR: #333 } DIV.rumble { BACKGROUND-COLOR: #cedddb } DIV.rumble_top { BACKGROUND-COLOR: #cedddb } DIV.dbThreadFooter { BACKGROUND-COLOR: #cedddb } DIV.dbThreadHeader { BACKGROUND-COLOR: #cedddb } .bad { COLOR: #fff; BACKGROUND-COLOR: #8b2145 } .good { COLOR: #fff; BACKGROUND-COLOR: #006666 } FIELDSET.stepcontent OL LI.fieldError { BACKGROUND-COLOR: #fff6b3 } LI.fieldError { BACKGROUND-COLOR: #fff6b3 } DIV.loginBack B { BACKGROUND-COLOR: #fff } DIV.loginBody { BACKGROUND-COLOR: #c8cac4 } #loginContainer { BORDER-LEFT-COLOR: #ffffff; BACKGROUND: #ffffff; BORDER-BOTTOM-COLOR: = #ffffff; BORDER-TOP-COLOR: #ffffff; BORDER-RIGHT-COLOR: #ffffff } #loginBox { BACKGROUND: none transparent scroll repeat 0% 0% } #loginOptions { BACKGROUND: #bbbdb7 } #loginBox LI INPUT[type=3D'text'] { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } #loginBox LI INPUT[type=3D'password'] { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } TEXTAREA:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } #loginBox LI INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } #loginBox LI INPUT[type=3D'password']:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } #loginBox LI TEXTAREA:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } DIV.quickAddPal DIV.field INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } DIV.quickAddPal DIV.field SELECT:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } DIV.quickAddPal DIV.field TEXTAREA:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } #loginOptions UL LI A { COLOR: #000; BORDER-TOP-COLOR: #0c5449; BACKGROUND-COLOR: #bbbdb7 } #loginOptions UL LI.subOption A { COLOR: #000; BORDER-TOP-COLOR: #0c5449; BACKGROUND-COLOR: #bbbdb7 } #loginOptions UL LI A:hover { BACKGROUND-COLOR: #cedddb } #loginOptions UL LI.subOption A:hover { BACKGROUND-COLOR: #cedddb } #loginText { BACKGROUND-COLOR: #bbbdb7 } #loginText P { COLOR: #000 } #loginHeader { BACKGROUND: #dfddd1 } #loginLang { BACKGROUND: #dfddd1 } DIV.listCm DIV.bottomRound B { BACKGROUND: #ffffff } DIV.buttonCm DIV.bottomRound B { BACKGROUND: #ffffff } DIV.contentTree DIV.bottomRound B { BACKGROUND: #ffffff } DIV.contentTree DIV.bottomRound B { BACKGROUND: #ffffff } DIV.navPaletteCol DIV.controlpanelCol B { BACKGROUND-COLOR: #13621c } DIV.navPaletteCol DIV.listCmCol B { BACKGROUND-COLOR: #617057 } DIV.navPaletteCol DIV.bottomRound B { BACKGROUND-COLOR: #617057 } DIV.navPaletteCol DIV.topRound B { BACKGROUND-COLOR: #617057 } DIV.listCm DIV.listCmCol B { BACKGROUND-COLOR: #0c5449! important } TABLE.inventory TBODY TR.gray TD { BACKGROUND-COLOR: #f0f0f0 } TABLE.inventory TBODY TR.gray TH { BACKGROUND-COLOR: #f0f0f0 } TABLE.inventory TBODY TR TD.sorted { BACKGROUND-COLOR: #eeeeee } UL.easylist { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.contentList LI { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } .contentPageItem { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.noimg LI { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.buildList LI { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.contentListPlain LI { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.buildList LI H3.item:hover { BACKGROUND: #efefef } UL.contentList LI H3.item:hover { BACKGROUND: #efefef } UL.contentListPlain LI H3.item:hover { BACKGROUND: #efefef } H3 SPAN.reorder { BACKGROUND-COLOR: #ededed } .portlet H2 SPAN.reorder { BACKGROUND-COLOR: #ddd } DIV.listCm UL.courseMenu LI SPAN.reorder { BACKGROUND-COLOR: #ddd } DIV.listCm UL.courseMenu LI.invisible SPAN.reorder { BACKGROUND-COLOR: #ddd } DIV.steptitle { BACKGROUND: #aaa; COLOR: #fff } H3.steptitle { BACKGROUND: #aaa; COLOR: #fff } DIV.steptitle SPAN { BACKGROUND: #dfdddb; COLOR: #000000 } H3.steptitle SPAN { BACKGROUND: #dfdddb; COLOR: #000000 } .stepHelp { COLOR: #666666 } FIELDSET.stepcontent OL LI.stepHelp { COLOR: #666666 } FIELDSET.stepcontent OL LI { BORDER-BOTTOM-COLOR: #eeeeee } UL.containerTabs { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } UL.containerTabs LI.active A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } UL.containerTabs LI.active H3 { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } .contentAreaBlock { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } .modeSwitch { BORDER-LEFT-COLOR: #cedddb; BORDER-BOTTOM-COLOR: #cedddb; COLOR: #fff; = BORDER-TOP-COLOR: #cedddb; BORDER-RIGHT-COLOR: #cedddb } .read-on { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } .read-off { COLOR: #444; BACKGROUND-COLOR: #0c5449 } .switcherLabel { COLOR: #000 } DIV.helpLink A.browseIcon { BORDER-LEFT-COLOR: #333; BORDER-BOTTOM-COLOR: #000; BORDER-TOP-COLOR: = #333; BORDER-RIGHT-COLOR: #000 } A.cmimg { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.legal { BORDER-LEFT-COLOR: #9f9e8b; BORDER-BOTTOM-COLOR: #9f9e8b; = BORDER-TOP-COLOR: #9f9e8b; BORDER-RIGHT-COLOR: #9f9e8b } DIV.additionalInfo { BORDER-LEFT-COLOR: #9f9e8b; BORDER-BOTTOM-COLOR: #9f9e8b; = BORDER-TOP-COLOR: #9f9e8b; BORDER-RIGHT-COLOR: #9f9e8b } #copyright { COLOR: #2d341e } #copyright A { COLOR: #2d341e } .installation { COLOR: #000000! important } #lightbox DIV#lightboxContent { BORDER-LEFT-COLOR: #fff6b3; BACKGROUND: #000; BORDER-BOTTOM-COLOR: = #fff6b3; BORDER-TOP-COLOR: #fff6b3; BORDER-RIGHT-COLOR: #fff6b3 } .myPlacesContent { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; BORDER-TOP-COLOR: = #fff; BORDER-RIGHT-COLOR: #fff } DIV.actionBar UL.nav LI.sub UL LI { COLOR: #fff6b3 } DIV.actionBar UL.nav LI { COLOR: #fff6b3 } DIV.actionBar UL.nav LI.sub { COLOR: #ccc } .actionBar UL LI { COLOR: #fff } .actionBar UL LI.mainButton { COLOR: #fff } .actionbar_portal UL LI { COLOR: #fff } DIV.actionBar UL.nav LI.sub A { =09 } DIV.actionBar UL.nav LI.sub A:hover { =09 } DIV.actionBar UL.nav LI A { =09 } DIV.actionBar UL.nav LI A:hover { =09 } element { =09 } ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/branding/_1_1/brand.css?ts=1241886188000&v=9.0.440.7 #contentFrame { COLOR: #000000; BACKGROUND-COLOR: #999999 } #schemePreview { COLOR: #000000; BACKGROUND-COLOR: #999999 } BODY { COLOR: #000000; BACKGROUND-COLOR: #999999 } BODY.ineditmode { COLOR: #000000; BACKGROUND-COLOR: #999999 } BODY.topFrame { COLOR: #000000; BACKGROUND-COLOR: #999999 } DIV.breadcrumbs { COLOR: #000000; BACKGROUND-COLOR: #999999 } DIV.paneTabs UL LI.active { COLOR: #000000; BACKGROUND-COLOR: #999999 } DIV.paneTabs UL LI { COLOR: #000000; BACKGROUND-COLOR: #999999 } BODY.wizardBody DIV.containerWizard { COLOR: #000000; BACKGROUND-COLOR: #999999 } #contentArea { COLOR: #000000; BACKGROUND-COLOR: #ffffff } #schemePreviewBody { COLOR: #000000; BACKGROUND-COLOR: #ffffff } .container { COLOR: #000000; BACKGROUND-COLOR: #ffffff } .contentPane DIV.bottomRound B { COLOR: #000000; BACKGROUND-COLOR: #ffffff } #primaryButton { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .actionBar UL LI A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .actionBar UL LI.mainButton A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .actionbar_portal UL LI A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.navPalette DIV.actionBarMicro UL LI.mainButton A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } INPUT.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.threadButtons A.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskbuttondiv BUTTON.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskbuttondiv INPUT.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskButtonsContent BUTTON.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskButtonsContent INPUT.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.controls BUTTON.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.controls INPUT.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskbuttondiv BUTTON.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskbuttondiv INPUT.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskButtonsContent BUTTON.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskButtonsContent INPUT.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.controls BUTTON.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.controls INPUT.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.threadButtons A.reply { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.dbThreadInfo P A.reply { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.rumble UL LI.jumptopage A.gotopage { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.rumble_top UL LI.jumptopage A.gotopage { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .paging A.gotopage { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } #loginBox LI INPUT[type=3D'submit'] { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } #secondaryButton { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .actionBar UL LI.search A { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .actionBar UL LI.secondaryButton A { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .actionBar_portal UL LI.search A { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A:hover { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .pageTitle H1 A.secondaryButton { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .taskbuttondiv BUTTON { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .taskbuttondiv INPUT { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .taskButtonsContent BUTTON { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .taskButtonsContent INPUT { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } DIV.controls BUTTON { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } DIV.controls INPUT { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } P.okbutton INPUT { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } #pageHeader { COLOR: #000000; BACKGROUND-COLOR: #cedddb } #schemePreviewHead { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.pageTitle { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.actionBar { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.contentPaneWide DIV.actionBar { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.actionBar UL { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.localViewToggle { COLOR: #000000; BACKGROUND-COLOR: #cedddb } .navPalette DIV.actionBarMicro { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.contentPane DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.listCm DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.buttonCm DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.treeContainer DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.treeViewCs DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV#lightboxContent H2 { COLOR: #000000; BACKGROUND-COLOR: #cedddb } #lightbox DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } #puller { COLOR: #000000; BACKGROUND-COLOR: #cedddb } #topFrame { COLOR: #ffffff } DIV.topTabs DIV.topGlobalLinks UL LI A.topLevel { COLOR: #ffffff } DIV.topTabs-compact DIV.topGlobalLinks UL LI A.topLevel { COLOR: #ffffff } DIV.topTabs DIV.hotItems UL.hotLinks LI A { COLOR: #ffffff } #topFrame { BACKGROUND-POSITION: 0px 0px; BACKGROUND-IMAGE: url(bg3.jpg); = BACKGROUND-REPEAT: repeat; BACKGROUND-COLOR: #0c5449 } .bgBanner { BACKGROUND-POSITION: 0px 0px; BACKGROUND-IMAGE: url(bg3.jpg); = BACKGROUND-REPEAT: repeat; BACKGROUND-COLOR: #0c5449 } DIV.topTabs-compact { BACKGROUND: #0c5449 } #topTab { COLOR: #ffffff; BACKGROUND-COLOR: #000000 } TABLE.appTabs TBODY TR TD A { COLOR: #ffffff; BACKGROUND-COLOR: #000000 } DIV.topTabs-compact TABLE.appTabs TR TD A { COLOR: #ffffff; BACKGROUND-COLOR: #000000 } #topTabActive { COLOR: #000000; BACKGROUND-COLOR: #ffffff } TABLE.appTabs TBODY TR TD.active A { COLOR: #000000; BACKGROUND-COLOR: #ffffff } TABLE.appTabs TBODY TR TD.active A:hover { COLOR: #000000; BACKGROUND-COLOR: #ffffff } DIV.topTabs-compact TABLE.appTabs TR TD.active A { COLOR: #000000; BACKGROUND-COLOR: #ffffff } DIV.topTabs-compact TABLE.appTabs TR TD.active A:hover { COLOR: #000000; BACKGROUND-COLOR: #ffffff } TABLE.appTabs TBODY TR TD A:hover { COLOR: #000000; BACKGROUND-COLOR: #ffffff } DIV.topTabs-compact TABLE.appTabs TR TD A:hover { COLOR: #000000; BACKGROUND-COLOR: #ffffff } #moduleTitle { COLOR: #ffffff; BACKGROUND-COLOR: #0c5449 } .portlet H2 { COLOR: #ffffff; BACKGROUND-COLOR: #0c5449 } .portlet H2 SPAN.reorder { COLOR: #ffffff; BACKGROUND-COLOR: #0c5449 } .portlet H2 A { COLOR: #ffffff; BACKGROUND-COLOR: transparent } #moduleBorder { BORDER-LEFT-COLOR: #999999; BORDER-BOTTOM-COLOR: #999999; COLOR: = #000000; BORDER-TOP-COLOR: #999999; BACKGROUND-COLOR: #ffffff; = BORDER-RIGHT-COLOR: #999999 } #moduleBody { BORDER-LEFT-COLOR: #999999; BORDER-BOTTOM-COLOR: #999999; COLOR: = #000000; BORDER-TOP-COLOR: #999999; BACKGROUND-COLOR: #ffffff; = BORDER-RIGHT-COLOR: #999999 } .portlet { BORDER-LEFT-COLOR: #999999; BORDER-BOTTOM-COLOR: #999999; COLOR: = #000000; BORDER-TOP-COLOR: #999999; BACKGROUND-COLOR: #ffffff; = BORDER-RIGHT-COLOR: #999999 } ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/blackboard/dwr_open/interface/UserPageInstructionsSettingDWRFacade.js?v=9.0.440.7 =0A= // Provide a default path to dwr.engine=0A= if (dwr =3D=3D null) var dwr =3D {};=0A= if (dwr.engine =3D=3D null) dwr.engine =3D {};=0A= if (DWREngine =3D=3D null) var DWREngine =3D dwr.engine;=0A= =0A= if (UserPageInstructionsSettingDWRFacade =3D=3D null) var = UserPageInstructionsSettingDWRFacade =3D {};=0A= UserPageInstructionsSettingDWRFacade._path =3D = '/webapps/blackboard/dwr_open';=0A= UserPageInstructionsSettingDWRFacade.setShowPageInstructions =3D = function(p0, callback) {=0A= dwr.engine._execute(UserPageInstructionsSettingDWRFacade._path, = 'UserPageInstructionsSettingDWRFacade', 'setShowPageInstructions', p0, = callback);=0A= }=0A= UserPageInstructionsSettingDWRFacade.getShowPageInstructions =3D = function(callback) {=0A= dwr.engine._execute(UserPageInstructionsSettingDWRFacade._path, = 'UserPageInstructionsSettingDWRFacade', 'getShowPageInstructions', = callback);=0A= }=0A= ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/blackboard/dwr_open/engine.js?v=9.0.440.7 /*=0A= * Copyright 2005 Joe Walker=0A= *=0A= * Licensed under the Apache License, Version 2.0 (the "License");=0A= * you may not use this file except in compliance with the License.=0A= * You may obtain a copy of the License at=0A= *=0A= * http://www.apache.org/licenses/LICENSE-2.0=0A= *=0A= * Unless required by applicable law or agreed to in writing, software=0A= * distributed under the License is distributed on an "AS IS" BASIS,=0A= * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or = implied.=0A= * See the License for the specific language governing permissions and=0A= * limitations under the License.=0A= */=0A= =0A= /**=0A= * Declare an object to which we can add real functions.=0A= */=0A= if (dwr =3D=3D null) var dwr =3D {};=0A= if (dwr.engine =3D=3D null) dwr.engine =3D {};=0A= if (DWREngine =3D=3D null) var DWREngine =3D dwr.engine;=0A= =0A= /**=0A= * Set an alternative error handler from the default alert box.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.setErrorHandler =3D function(handler) {=0A= dwr.engine._errorHandler =3D handler;=0A= };=0A= =0A= /**=0A= * Set an alternative warning handler from the default alert box.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.setWarningHandler =3D function(handler) {=0A= dwr.engine._warningHandler =3D handler;=0A= };=0A= =0A= /**=0A= * Setter for the text/html handler - what happens if a DWR request gets = an HTML=0A= * reply rather than the expected Javascript. Often due to login timeout=0A= */=0A= dwr.engine.setTextHtmlHandler =3D function(handler) {=0A= dwr.engine._textHtmlHandler =3D handler;=0A= };=0A= =0A= /**=0A= * Set a default timeout value for all calls. 0 (the default) turns = timeouts off.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.setTimeout =3D function(timeout) {=0A= dwr.engine._timeout =3D timeout;=0A= };=0A= =0A= /**=0A= * The Pre-Hook is called before any DWR remoting is done.=0A= * @see getahead.org/dwr/browser/engine/hooks=0A= */=0A= dwr.engine.setPreHook =3D function(handler) {=0A= dwr.engine._preHook =3D handler;=0A= };=0A= =0A= /**=0A= * The Post-Hook is called after any DWR remoting is done.=0A= * @see getahead.org/dwr/browser/engine/hooks=0A= */=0A= dwr.engine.setPostHook =3D function(handler) {=0A= dwr.engine._postHook =3D handler;=0A= };=0A= =0A= /**=0A= * Custom headers for all DWR calls=0A= * @see getahead.org/dwr/????=0A= */=0A= dwr.engine.setHeaders =3D function(headers) {=0A= dwr.engine._headers =3D headers;=0A= };=0A= =0A= /**=0A= * Custom parameters for all DWR calls=0A= * @see getahead.org/dwr/????=0A= */=0A= dwr.engine.setParameters =3D function(parameters) {=0A= dwr.engine._parameters =3D parameters;=0A= };=0A= =0A= /** XHR remoting type constant. See dwr.engine.set[Rpc|Poll]Type() */=0A= dwr.engine.XMLHttpRequest =3D 1;=0A= =0A= /** XHR remoting type constant. See dwr.engine.set[Rpc|Poll]Type() */=0A= dwr.engine.IFrame =3D 2;=0A= =0A= /** XHR remoting type constant. See dwr.engine.setRpcType() */=0A= dwr.engine.ScriptTag =3D 3;=0A= =0A= /**=0A= * Set the preferred remoting type.=0A= * @param newType One of dwr.engine.XMLHttpRequest or dwr.engine.IFrame = or dwr.engine.ScriptTag=0A= * @see getahead.org/dwr/browser/engine/options=0A= */=0A= dwr.engine.setRpcType =3D function(newType) {=0A= if (newType !=3D dwr.engine.XMLHttpRequest && newType !=3D = dwr.engine.IFrame && newType !=3D dwr.engine.ScriptTag) {=0A= dwr.engine._handleError(null, { name:"dwr.engine.invalidRpcType", = message:"RpcType must be one of dwr.engine.XMLHttpRequest or = dwr.engine.IFrame or dwr.engine.ScriptTag" });=0A= return;=0A= }=0A= dwr.engine._rpcType =3D newType;=0A= };=0A= =0A= /**=0A= * Which HTTP method do we use to send results? Must be one of "GET" or = "POST".=0A= * @see getahead.org/dwr/browser/engine/options=0A= */=0A= dwr.engine.setHttpMethod =3D function(httpMethod) {=0A= if (httpMethod !=3D "GET" && httpMethod !=3D "POST") {=0A= dwr.engine._handleError(null, { name:"dwr.engine.invalidHttpMethod", = message:"Remoting method must be one of GET or POST" });=0A= return;=0A= }=0A= dwr.engine._httpMethod =3D httpMethod;=0A= };=0A= =0A= /**=0A= * Ensure that remote calls happen in the order in which they were sent? = (Default: false)=0A= * @see getahead.org/dwr/browser/engine/ordering=0A= */=0A= dwr.engine.setOrdered =3D function(ordered) {=0A= dwr.engine._ordered =3D ordered;=0A= };=0A= =0A= /**=0A= * Do we ask the XHR object to be asynchronous? (Default: true)=0A= * @see getahead.org/dwr/browser/engine/options=0A= */=0A= dwr.engine.setAsync =3D function(async) {=0A= dwr.engine._async =3D async;=0A= };=0A= =0A= /**=0A= * Does DWR poll the server for updates? (Default: false)=0A= * @see getahead.org/dwr/browser/engine/options=0A= */=0A= dwr.engine.setActiveReverseAjax =3D function(activeReverseAjax) {=0A= if (activeReverseAjax) {=0A= // Bail if we are already started=0A= if (dwr.engine._activeReverseAjax) return;=0A= dwr.engine._activeReverseAjax =3D true;=0A= dwr.engine._poll();=0A= }=0A= else {=0A= // Can we cancel an existing request?=0A= if (dwr.engine._activeReverseAjax && dwr.engine._pollReq) = dwr.engine._pollReq.abort();=0A= dwr.engine._activeReverseAjax =3D false;=0A= }=0A= // TODO: in iframe mode, if we start, stop, start then the second = start may=0A= // well kick off a second iframe while the first is still about to = return=0A= // we should cope with this but we don't=0A= };=0A= =0A= /**=0A= * The default message handler.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.defaultErrorHandler =3D function(message, ex) {=0A= dwr.engine._debug("Error: " + ex.name + ", " + ex.message, true);=0A= if (message =3D=3D null || message =3D=3D "") alert("A server error = has occured.");=0A= // Ignore NS_ERROR_NOT_AVAILABLE if Mozilla is being narky=0A= else if (message.indexOf("0x80040111") !=3D -1) = dwr.engine._debug(message);=0A= else alert(message);=0A= };=0A= =0A= /**=0A= * The default warning handler.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.defaultWarningHandler =3D function(message, ex) {=0A= dwr.engine._debug(message);=0A= };=0A= =0A= /**=0A= * For reduced latency you can group several remote calls together using = a batch.=0A= * @see getahead.org/dwr/browser/engine/batch=0A= */=0A= dwr.engine.beginBatch =3D function() {=0A= if (dwr.engine._batch) {=0A= dwr.engine._handleError(null, { name:"dwr.engine.batchBegun", = message:"Batch already begun" });=0A= return;=0A= }=0A= dwr.engine._batch =3D dwr.engine._createBatch();=0A= };=0A= =0A= /**=0A= * Finished grouping a set of remote calls together. Go and execute them = all.=0A= * @see getahead.org/dwr/browser/engine/batch=0A= */=0A= dwr.engine.endBatch =3D function(options) {=0A= var batch =3D dwr.engine._batch;=0A= if (batch =3D=3D null) {=0A= dwr.engine._handleError(null, { name:"dwr.engine.batchNotBegun", = message:"No batch in progress" });=0A= return;=0A= }=0A= dwr.engine._batch =3D null;=0A= if (batch.map.callCount =3D=3D 0) return;=0A= =0A= // The hooks need to be merged carefully to preserve ordering=0A= if (options) dwr.engine._mergeBatch(batch, options);=0A= =0A= // In ordered mode, we don't send unless the list of sent items is = empty=0A= if (dwr.engine._ordered && dwr.engine._batchesLength !=3D 0) {=0A= dwr.engine._batchQueue[dwr.engine._batchQueue.length] =3D batch;=0A= }=0A= else {=0A= dwr.engine._sendData(batch);=0A= }=0A= };=0A= =0A= /** @deprecated */=0A= dwr.engine.setPollMethod =3D function(type) { = dwr.engine.setPollType(type); };=0A= dwr.engine.setMethod =3D function(type) { dwr.engine.setRpcType(type); };=0A= dwr.engine.setVerb =3D function(verb) { dwr.engine.setHttpMethod(verb); = };=0A= dwr.engine.setPollType =3D function() { dwr.engine._debug("Manually = setting the Poll Type is not supported"); };=0A= =0A= //=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=0A= // Only private stuff below here=0A= //=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=0A= =0A= /** The original page id sent from the server */=0A= dwr.engine._origScriptSessionId =3D "52ED1884EB05ACCBB0BBC38622D63D42";=0A= =0A= /** The session cookie name */=0A= dwr.engine._sessionCookieName =3D "JSESSIONID"; // JSESSIONID=0A= =0A= /** Is GET enabled for the benefit of Safari? */=0A= dwr.engine._allowGetForSafariButMakeForgeryEasier =3D "false";=0A= =0A= /** The script prefix to strip in the case of scriptTagProtection. */=0A= dwr.engine._scriptTagProtection =3D "throw 'allowScriptTagRemoting is = false.';";=0A= =0A= /** The default path to the DWR servlet */=0A= dwr.engine._defaultPath =3D "/webapps/blackboard/dwr_open";=0A= =0A= /** Do we use XHR for reverse ajax because we are not streaming? */=0A= dwr.engine._pollWithXhr =3D "false";=0A= =0A= /** The read page id that we calculate */=0A= dwr.engine._scriptSessionId =3D null;=0A= =0A= /** The function that we use to fetch/calculate a session id */=0A= dwr.engine._getScriptSessionId =3D function() {=0A= if (dwr.engine._scriptSessionId =3D=3D null) {=0A= dwr.engine._scriptSessionId =3D dwr.engine._origScriptSessionId + = Math.floor(Math.random() * 1000);=0A= }=0A= return dwr.engine._scriptSessionId;=0A= };=0A= =0A= /** A function to call if something fails. */=0A= dwr.engine._errorHandler =3D dwr.engine.defaultErrorHandler;=0A= =0A= /** For debugging when something unexplained happens. */=0A= dwr.engine._warningHandler =3D dwr.engine.defaultWarningHandler;=0A= =0A= /** A function to be called before requests are marshalled. Can be null. = */=0A= dwr.engine._preHook =3D null;=0A= =0A= /** A function to be called after replies are received. Can be null. */=0A= dwr.engine._postHook =3D null;=0A= =0A= /** An map of the batches that we have sent and are awaiting a reply on. = */=0A= dwr.engine._batches =3D {};=0A= =0A= /** A count of the number of outstanding batches. Should be =3D=3D to = _batches.length unless prototype has messed things up */=0A= dwr.engine._batchesLength =3D 0;=0A= =0A= /** In ordered mode, the array of batches waiting to be sent */=0A= dwr.engine._batchQueue =3D [];=0A= =0A= /** What is the default rpc type */=0A= dwr.engine._rpcType =3D dwr.engine.XMLHttpRequest;=0A= =0A= /** What is the default remoting method (ie GET or POST) */=0A= dwr.engine._httpMethod =3D "POST";=0A= =0A= /** Do we attempt to ensure that calls happen in the order in which they = were sent? */=0A= dwr.engine._ordered =3D false;=0A= =0A= /** Do we make the calls async? */=0A= dwr.engine._async =3D true;=0A= =0A= /** The current batch (if we are in batch mode) */=0A= dwr.engine._batch =3D null;=0A= =0A= /** The global timeout */=0A= dwr.engine._timeout =3D 0;=0A= =0A= /** ActiveX objects to use when we want to convert an xml string into a = DOM object. */=0A= dwr.engine._DOMDocument =3D ["Msxml2.DOMDocument.6.0", = "Msxml2.DOMDocument.5.0", "Msxml2.DOMDocument.4.0", = "Msxml2.DOMDocument.3.0", "MSXML2.DOMDocument", "MSXML.DOMDocument", = "Microsoft.XMLDOM"];=0A= =0A= /** The ActiveX objects to use when we want to do an XMLHttpRequest = call. */=0A= dwr.engine._XMLHTTP =3D ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0", = "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", = "Microsoft.XMLHTTP"];=0A= =0A= /** Are we doing comet or polling? */=0A= dwr.engine._activeReverseAjax =3D false;=0A= =0A= /** The iframe that we are using to poll */=0A= dwr.engine._outstandingIFrames =3D [];=0A= =0A= /** The xhr object that we are using to poll */=0A= dwr.engine._pollReq =3D null;=0A= =0A= /** How many milliseconds between internal comet polls */=0A= dwr.engine._pollCometInterval =3D 200;=0A= =0A= /** How many times have we re-tried to poll? */=0A= dwr.engine._pollRetries =3D 0;=0A= dwr.engine._maxPollRetries =3D 0;=0A= =0A= /** Do we do a document.reload if we get a text/html reply? */=0A= dwr.engine._textHtmlHandler =3D null;=0A= =0A= /** If you wish to send custom headers with every request */=0A= dwr.engine._headers =3D null;=0A= =0A= /** If you wish to send extra custom request parameters with each = request */=0A= dwr.engine._parameters =3D null;=0A= =0A= /** Undocumented interceptors - do not use */=0A= dwr.engine._postSeperator =3D "\n";=0A= dwr.engine._defaultInterceptor =3D function(data) { return data; };=0A= dwr.engine._urlRewriteHandler =3D dwr.engine._defaultInterceptor;=0A= dwr.engine._contentRewriteHandler =3D dwr.engine._defaultInterceptor;=0A= dwr.engine._replyRewriteHandler =3D dwr.engine._defaultInterceptor;=0A= =0A= /** Batch ids allow us to know which batch the server is answering */=0A= dwr.engine._nextBatchId =3D 0;=0A= =0A= /** A list of the properties that need merging from calls to a batch */=0A= dwr.engine._propnames =3D [ "rpcType", "httpMethod", "async", "timeout", = "errorHandler", "warningHandler", "textHtmlHandler" ];=0A= =0A= /** Do we stream, or can be hacked to do so? */=0A= dwr.engine._partialResponseNo =3D 0;=0A= dwr.engine._partialResponseYes =3D 1;=0A= dwr.engine._partialResponseFlush =3D 2;=0A= =0A= /** Is this page in the process of unloading? */=0A= dwr.engine._unloading =3D false;=0A= =0A= /**=0A= * @private Send a request. Called by the Javascript interface stub=0A= * @param path part of URL after the host and before the exec bit = without leading or trailing /s=0A= * @param scriptName The class to execute=0A= * @param methodName The method on said class to execute=0A= * @param func The callback function to which any returned data should = be passed=0A= * if this is null, any returned data will be ignored=0A= * @param vararg_params The parameters to pass to the above class=0A= */=0A= dwr.engine._execute =3D function(path, scriptName, methodName, = vararg_params) {=0A= var singleShot =3D false;=0A= if (dwr.engine._batch =3D=3D null) {=0A= dwr.engine.beginBatch();=0A= singleShot =3D true;=0A= }=0A= var batch =3D dwr.engine._batch;=0A= // To make them easy to manipulate we copy the arguments into an args = array=0A= var args =3D [];=0A= for (var i =3D 0; i < arguments.length - 3; i++) {=0A= args[i] =3D arguments[i + 3];=0A= }=0A= // All the paths MUST be to the same servlet=0A= if (batch.path =3D=3D null) {=0A= batch.path =3D path;=0A= }=0A= else {=0A= if (batch.path !=3D path) {=0A= dwr.engine._handleError(batch, { = name:"dwr.engine.multipleServlets", message:"Can't batch requests to = multiple DWR Servlets." });=0A= return;=0A= }=0A= }=0A= // From the other params, work out which is the function (or object = with=0A= // call meta-data) and which is the call parameters=0A= var callData;=0A= var lastArg =3D args[args.length - 1];=0A= if (typeof lastArg =3D=3D "function" || lastArg =3D=3D null) callData = =3D { callback:args.pop() };=0A= else callData =3D args.pop();=0A= =0A= // Merge from the callData into the batch=0A= dwr.engine._mergeBatch(batch, callData);=0A= batch.handlers[batch.map.callCount] =3D {=0A= exceptionHandler:callData.exceptionHandler,=0A= callback:callData.callback=0A= };=0A= =0A= // Copy to the map the things that need serializing=0A= var prefix =3D "c" + batch.map.callCount + "-";=0A= batch.map[prefix + "scriptName"] =3D scriptName;=0A= batch.map[prefix + "methodName"] =3D methodName;=0A= batch.map[prefix + "id"] =3D batch.map.callCount;=0A= for (i =3D 0; i < args.length; i++) {=0A= dwr.engine._serializeAll(batch, [], args[i], prefix + "param" + i);=0A= }=0A= =0A= // Now we have finished remembering the call, we incr the call count=0A= batch.map.callCount++;=0A= if (singleShot) dwr.engine.endBatch();=0A= };=0A= =0A= /** @private Poll the server to see if there is any data waiting */=0A= dwr.engine._poll =3D function() {=0A= if (!dwr.engine._activeReverseAjax) return;=0A= =0A= var batch =3D dwr.engine._createBatch();=0A= batch.map.id =3D 0; // TODO: Do we need this??=0A= batch.map.callCount =3D 1;=0A= batch.isPoll =3D true;=0A= if (dwr.engine._pollWithXhr =3D=3D "true") {=0A= batch.rpcType =3D dwr.engine.XMLHttpRequest;=0A= batch.map.partialResponse =3D dwr.engine._partialResponseNo;=0A= }=0A= else {=0A= if (navigator.userAgent.indexOf("Gecko/") !=3D -1) {=0A= batch.rpcType =3D dwr.engine.XMLHttpRequest;=0A= batch.map.partialResponse =3D dwr.engine._partialResponseYes;=0A= }=0A= else {=0A= batch.rpcType =3D dwr.engine.XMLHttpRequest;=0A= batch.map.partialResponse =3D dwr.engine._partialResponseNo;=0A= }=0A= }=0A= batch.httpMethod =3D "POST";=0A= batch.async =3D true;=0A= batch.timeout =3D 0;=0A= batch.path =3D dwr.engine._defaultPath;=0A= batch.preHooks =3D [];=0A= batch.postHooks =3D [];=0A= batch.errorHandler =3D dwr.engine._pollErrorHandler;=0A= batch.warningHandler =3D dwr.engine._pollErrorHandler;=0A= batch.handlers[0] =3D {=0A= callback:function(pause) {=0A= dwr.engine._pollRetries =3D 0;=0A= setTimeout(dwr.engine._poll, pause);=0A= }=0A= };=0A= =0A= // Send the data=0A= dwr.engine._sendData(batch);=0A= if (batch.rpcType =3D=3D dwr.engine.XMLHttpRequest && = batch.map.partialResponse =3D=3D dwr.engine._partialResponseYes) {=0A= dwr.engine._checkCometPoll();=0A= }=0A= };=0A= =0A= /** Try to recover from polling errors */=0A= dwr.engine._pollErrorHandler =3D function(msg, ex) {=0A= // if anything goes wrong then just silently try again (up to 3x) = after 10s=0A= dwr.engine._pollRetries++;=0A= dwr.engine._debug("Reverse Ajax poll failed (pollRetries=3D" + = dwr.engine._pollRetries + "): " + ex.name + " : " + ex.message);=0A= if (dwr.engine._pollRetries < dwr.engine._maxPollRetries) {=0A= setTimeout(dwr.engine._poll, 10000);=0A= }=0A= else {=0A= dwr.engine._activeReverseAjax =3D false;=0A= dwr.engine._debug("Giving up.");=0A= }=0A= };=0A= =0A= /** @private Generate a new standard batch */=0A= dwr.engine._createBatch =3D function() {=0A= var batch =3D {=0A= map:{=0A= callCount:0,=0A= page:window.location.pathname + window.location.search,=0A= httpSessionId:dwr.engine._getJSessionId(),=0A= scriptSessionId:dwr.engine._getScriptSessionId()=0A= },=0A= charsProcessed:0, paramCount:0,=0A= parameters:{}, headers:{},=0A= isPoll:false, handlers:{}, preHooks:[], postHooks:[],=0A= rpcType:dwr.engine._rpcType,=0A= httpMethod:dwr.engine._httpMethod,=0A= async:dwr.engine._async,=0A= timeout:dwr.engine._timeout,=0A= errorHandler:dwr.engine._errorHandler,=0A= warningHandler:dwr.engine._warningHandler,=0A= textHtmlHandler:dwr.engine._textHtmlHandler=0A= };=0A= if (dwr.engine._preHook) batch.preHooks.push(dwr.engine._preHook);=0A= if (dwr.engine._postHook) batch.postHooks.push(dwr.engine._postHook);=0A= var propname, data;=0A= if (dwr.engine._headers) {=0A= for (propname in dwr.engine._headers) {=0A= data =3D dwr.engine._headers[propname];=0A= if (typeof data !=3D "function") batch.headers[propname] =3D data;=0A= }=0A= }=0A= if (dwr.engine._parameters) {=0A= for (propname in dwr.engine._parameters) {=0A= data =3D dwr.engine._parameters[propname];=0A= if (typeof data !=3D "function") batch.parameters[propname] =3D = data;=0A= }=0A= }=0A= return batch;=0A= };=0A= =0A= /** @private Take further options and merge them into */=0A= dwr.engine._mergeBatch =3D function(batch, overrides) {=0A= var propname, data;=0A= for (var i =3D 0; i < dwr.engine._propnames.length; i++) {=0A= propname =3D dwr.engine._propnames[i];=0A= if (overrides[propname] !=3D null) batch[propname] =3D = overrides[propname];=0A= }=0A= if (overrides.preHook !=3D null) = batch.preHooks.unshift(overrides.preHook);=0A= if (overrides.postHook !=3D null) = batch.postHooks.push(overrides.postHook);=0A= if (overrides.headers) {=0A= for (propname in overrides.headers) {=0A= data =3D overrides.headers[propname];=0A= if (typeof data !=3D "function") batch.headers[propname] =3D data;=0A= }=0A= }=0A= if (overrides.parameters) {=0A= for (propname in overrides.parameters) {=0A= data =3D overrides.parameters[propname];=0A= if (typeof data !=3D "function") batch.map["p-" + propname] =3D "" = + data;=0A= }=0A= }=0A= };=0A= =0A= /** @private What is our session id? */=0A= dwr.engine._getJSessionId =3D function() {=0A= var cookies =3D document.cookie.split(';');=0A= for (var i =3D 0; i < cookies.length; i++) {=0A= var cookie =3D cookies[i];=0A= while (cookie.charAt(0) =3D=3D ' ') cookie =3D cookie.substring(1, = cookie.length);=0A= if (cookie.indexOf(dwr.engine._sessionCookieName + "=3D") =3D=3D 0) {=0A= return cookie.substring(dwr.engine._sessionCookieName.length + 1, = cookie.length);=0A= }=0A= }=0A= return "";=0A= };=0A= =0A= /** @private Check for reverse Ajax activity */=0A= dwr.engine._checkCometPoll =3D function() {=0A= for (var i =3D 0; i < dwr.engine._outstandingIFrames.length; i++) {=0A= var text =3D "";=0A= var iframe =3D dwr.engine._outstandingIFrames[i];=0A= try {=0A= text =3D dwr.engine._getTextFromCometIFrame(iframe);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(iframe.batch, ex);=0A= }=0A= if (text !=3D "") dwr.engine._processCometResponse(text, = iframe.batch);=0A= }=0A= if (dwr.engine._pollReq) {=0A= var req =3D dwr.engine._pollReq;=0A= var text =3D req.responseText;=0A= if (text !=3D null) dwr.engine._processCometResponse(text, = req.batch);=0A= }=0A= =0A= // If the poll resources are still there, come back again=0A= if (dwr.engine._outstandingIFrames.length > 0 || dwr.engine._pollReq) {=0A= setTimeout(dwr.engine._checkCometPoll, = dwr.engine._pollCometInterval);=0A= }=0A= };=0A= =0A= /** @private Extract the whole (executed an all) text from the current = iframe */=0A= dwr.engine._getTextFromCometIFrame =3D function(frameEle) {=0A= var body =3D frameEle.contentWindow.document.body;=0A= if (body =3D=3D null) return "";=0A= var text =3D body.innerHTML;=0A= // We need to prevent IE from stripping line feeds=0A= if (text.indexOf("") =3D=3D 0 || text.indexOf("") =3D=3D 0) {=0A= text =3D text.substring(5, text.length - 7);=0A= }=0A= return text;=0A= };=0A= =0A= /** @private Some more text might have come in, test and execute the new = stuff */=0A= dwr.engine._processCometResponse =3D function(response, batch) {=0A= if (batch.charsProcessed =3D=3D response.length) return;=0A= if (response.length =3D=3D 0) {=0A= batch.charsProcessed =3D 0;=0A= return;=0A= }=0A= =0A= var firstStartTag =3D response.indexOf("//#DWR-START#", = batch.charsProcessed);=0A= if (firstStartTag =3D=3D -1) {=0A= // dwr.engine._debug("No start tag (search from " + = batch.charsProcessed + "). skipping '" + = response.substring(batch.charsProcessed) + "'");=0A= batch.charsProcessed =3D response.length;=0A= return;=0A= }=0A= // if (firstStartTag > 0) {=0A= // dwr.engine._debug("Start tag not at start (search from " + = batch.charsProcessed + "). skipping '" + = response.substring(batch.charsProcessed, firstStartTag) + "'");=0A= // }=0A= =0A= var lastEndTag =3D response.lastIndexOf("//#DWR-END#");=0A= if (lastEndTag =3D=3D -1) {=0A= // dwr.engine._debug("No end tag. unchanged charsProcessed=3D" + = batch.charsProcessed);=0A= return;=0A= }=0A= =0A= // Skip the end tag too for next time, remembering CR and LF=0A= if (response.charCodeAt(lastEndTag + 11) =3D=3D 13 && = response.charCodeAt(lastEndTag + 12) =3D=3D 10) {=0A= batch.charsProcessed =3D lastEndTag + 13;=0A= }=0A= else {=0A= batch.charsProcessed =3D lastEndTag + 11;=0A= }=0A= =0A= var exec =3D response.substring(firstStartTag + 13, lastEndTag);=0A= =0A= dwr.engine._receivedBatch =3D batch;=0A= dwr.engine._eval(exec);=0A= dwr.engine._receivedBatch =3D null;=0A= };=0A= =0A= /** @private Actually send the block of data in the batch object. */=0A= dwr.engine._sendData =3D function(batch) {=0A= batch.map.batchId =3D dwr.engine._nextBatchId;=0A= dwr.engine._nextBatchId++;=0A= dwr.engine._batches[batch.map.batchId] =3D batch;=0A= dwr.engine._batchesLength++;=0A= batch.completed =3D false;=0A= =0A= for (var i =3D 0; i < batch.preHooks.length; i++) {=0A= batch.preHooks[i]();=0A= }=0A= batch.preHooks =3D null;=0A= // Set a timeout=0A= if (batch.timeout && batch.timeout !=3D 0) {=0A= batch.timeoutId =3D setTimeout(function() { = dwr.engine._abortRequest(batch); }, batch.timeout);=0A= }=0A= // Get setup for XMLHttpRequest if possible=0A= if (batch.rpcType =3D=3D dwr.engine.XMLHttpRequest) {=0A= if (window.XMLHttpRequest) {=0A= batch.req =3D new XMLHttpRequest();=0A= }=0A= // IE5 for the mac claims to support window.ActiveXObject, but = throws an error when it's used=0A= else if (window.ActiveXObject && = !(navigator.userAgent.indexOf("Mac") >=3D 0 && = navigator.userAgent.indexOf("MSIE") >=3D 0)) {=0A= batch.req =3D dwr.engine._newActiveXObject(dwr.engine._XMLHTTP);=0A= }=0A= }=0A= =0A= var prop, request;=0A= if (batch.req) {=0A= // Proceed using XMLHttpRequest=0A= if (batch.async) {=0A= batch.req.onreadystatechange =3D function() {=0A= if (typeof dwr !=3D 'undefined') dwr.engine._stateChange(batch);=0A= };=0A= }=0A= // If we're polling, record this for monitoring=0A= if (batch.isPoll) {=0A= dwr.engine._pollReq =3D batch.req;=0A= // In IE XHR is an ActiveX control so you can't augment it like = this=0A= if (!(document.all && !window.opera)) batch.req.batch =3D batch;=0A= }=0A= // Workaround for Safari 1.x POST bug=0A= var indexSafari =3D navigator.userAgent.indexOf("Safari/");=0A= if (indexSafari >=3D 0) {=0A= var version =3D navigator.userAgent.substring(indexSafari + 7);=0A= if (parseInt(version, 10) < 400) {=0A= if (dwr.engine._allowGetForSafariButMakeForgeryEasier =3D=3D = "true") batch.httpMethod =3D "GET";=0A= else dwr.engine._handleWarning(batch, { = name:"dwr.engine.oldSafari", message:"Safari GET support disabled. See = getahead.org/dwr/server/servlet and = allowGetForSafariButMakeForgeryEasier." });=0A= }=0A= }=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModePlainPoll : = dwr.engine._ModePlainCall;=0A= request =3D dwr.engine._constructRequest(batch);=0A= try {=0A= batch.req.open(batch.httpMethod, request.url, batch.async);=0A= try {=0A= for (prop in batch.headers) {=0A= var value =3D batch.headers[prop];=0A= if (typeof value =3D=3D "string") = batch.req.setRequestHeader(prop, value);=0A= }=0A= if (!batch.headers["Content-Type"]) = batch.req.setRequestHeader("Content-Type", "text/plain");=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= }=0A= batch.req.send(request.body);=0A= if (!batch.async) dwr.engine._stateChange(batch);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleError(batch, ex);=0A= }=0A= }=0A= else if (batch.rpcType !=3D dwr.engine.ScriptTag) {=0A= var idname =3D batch.isPoll ? "dwr-if-poll-" + batch.map.batchId : = "dwr-if-" + batch.map.batchId;=0A= // Removed htmlfile implementation. Don't expect it to return before = v3=0A= batch.div =3D document.createElement("div");=0A= // Add the div to the document first, otherwise IE 6 will ignore = onload handler.=0A= document.body.appendChild(batch.div);=0A= batch.div.innerHTML =3D "";=0A= batch.document =3D document;=0A= batch.iframe =3D batch.document.getElementById(idname);=0A= batch.iframe.batch =3D batch;=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModeHtmlPoll : = dwr.engine._ModeHtmlCall;=0A= if (batch.isPoll) dwr.engine._outstandingIFrames.push(batch.iframe);=0A= request =3D dwr.engine._constructRequest(batch);=0A= if (batch.httpMethod =3D=3D "GET") {=0A= batch.iframe.setAttribute("src", request.url);=0A= }=0A= else {=0A= batch.form =3D batch.document.createElement("form");=0A= batch.form.setAttribute("id", "dwr-form");=0A= batch.form.setAttribute("action", request.url);=0A= batch.form.setAttribute("style", "display:none;");=0A= batch.form.setAttribute("target", idname);=0A= batch.form.target =3D idname;=0A= batch.form.setAttribute("method", batch.httpMethod);=0A= for (prop in batch.map) {=0A= var value =3D batch.map[prop];=0A= if (typeof value !=3D "function") {=0A= var formInput =3D batch.document.createElement("input");=0A= formInput.setAttribute("type", "hidden");=0A= formInput.setAttribute("name", prop);=0A= formInput.setAttribute("value", value);=0A= batch.form.appendChild(formInput);=0A= }=0A= }=0A= batch.document.body.appendChild(batch.form);=0A= batch.form.submit();=0A= }=0A= }=0A= else {=0A= batch.httpMethod =3D "GET"; // There's no such thing as ScriptTag = using POST=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModePlainPoll : = dwr.engine._ModePlainCall;=0A= request =3D dwr.engine._constructRequest(batch);=0A= batch.script =3D document.createElement("script");=0A= batch.script.id =3D "dwr-st-" + batch.map["c0-id"];=0A= batch.script.src =3D request.url;=0A= document.body.appendChild(batch.script);=0A= }=0A= };=0A= =0A= dwr.engine._ModePlainCall =3D "/call/plaincall/";=0A= dwr.engine._ModeHtmlCall =3D "/call/htmlcall/";=0A= dwr.engine._ModePlainPoll =3D "/call/plainpoll/";=0A= dwr.engine._ModeHtmlPoll =3D "/call/htmlpoll/";=0A= =0A= /** @private Work out what the URL should look like */=0A= dwr.engine._constructRequest =3D function(batch) {=0A= // A quick string to help people that use web log analysers=0A= var request =3D { url:batch.path + batch.mode, body:null };=0A= if (batch.isPoll =3D=3D true) {=0A= request.url +=3D "ReverseAjax.dwr";=0A= }=0A= else if (batch.map.callCount =3D=3D 1) {=0A= request.url +=3D batch.map["c0-scriptName"] + "." + = batch.map["c0-methodName"] + ".dwr";=0A= }=0A= else {=0A= request.url +=3D "Multiple." + batch.map.callCount + ".dwr";=0A= }=0A= // Play nice with url re-writing=0A= var sessionMatch =3D location.href.match(/jsessionid=3D([^?]+)/);=0A= if (sessionMatch !=3D null) {=0A= request.url +=3D ";jsessionid=3D" + sessionMatch[1];=0A= }=0A= =0A= var prop;=0A= if (batch.httpMethod =3D=3D "GET") {=0A= // Some browsers (Opera/Safari2) seem to fail to convert the = callCount value=0A= // to a string in the loop below so we do it manually here.=0A= batch.map.callCount =3D "" + batch.map.callCount;=0A= request.url +=3D "?";=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= request.url +=3D encodeURIComponent(prop) + "=3D" + = encodeURIComponent(batch.map[prop]) + "&";=0A= }=0A= }=0A= request.url =3D request.url.substring(0, request.url.length - 1);=0A= }=0A= else {=0A= // PERFORMANCE: for iframe mode this is thrown away.=0A= request.body =3D "";=0A= if (document.all && !window.opera) {=0A= // Use array joining on IE (fastest)=0A= var buf =3D [];=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= buf.push(prop + "=3D" + batch.map[prop] + = dwr.engine._postSeperator);=0A= }=0A= }=0A= request.body =3D buf.join("");=0A= }=0A= else {=0A= // Use string concat on other browsers (fastest)=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= request.body +=3D prop + "=3D" + batch.map[prop] + = dwr.engine._postSeperator;=0A= }=0A= }=0A= }=0A= request.body =3D dwr.engine._contentRewriteHandler(request.body);=0A= }=0A= request.url =3D dwr.engine._urlRewriteHandler(request.url);=0A= return request;=0A= };=0A= =0A= /** @private Called by XMLHttpRequest to indicate that something has = happened */=0A= dwr.engine._stateChange =3D function(batch) {=0A= var toEval;=0A= =0A= if (batch.completed) {=0A= dwr.engine._debug("Error: _stateChange() with batch.completed");=0A= return;=0A= }=0A= =0A= var req =3D batch.req;=0A= try {=0A= if (req.readyState !=3D 4) return;=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= // It's broken - clear up and forget this call=0A= dwr.engine._clearUp(batch);=0A= return;=0A= }=0A= =0A= if (dwr.engine._unloading) {=0A= dwr.engine._debug("Ignoring reply from server as page is = unloading.");=0A= return;=0A= }=0A= =0A= try {=0A= var reply =3D req.responseText;=0A= reply =3D dwr.engine._replyRewriteHandler(reply);=0A= var status =3D req.status; // causes Mozilla to except on page moves=0A= =0A= if (reply =3D=3D null || reply =3D=3D "") {=0A= dwr.engine._handleWarning(batch, { name:"dwr.engine.missingData", = message:"No data received from server" });=0A= }=0A= else if (status !=3D 200) {=0A= dwr.engine._handleError(batch, { name:"dwr.engine.http." + status, = message:req.statusText });=0A= }=0A= else {=0A= var contentType =3D req.getResponseHeader("Content-Type");=0A= if (!contentType.match(/^text\/plain/) && = !contentType.match(/^text\/javascript/)) {=0A= if (contentType.match(/^text\/html/) && typeof = batch.textHtmlHandler =3D=3D "function") {=0A= batch.textHtmlHandler({ status:status, responseText:reply, = contentType:contentType });=0A= }=0A= else {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.invalidMimeType", message:"Invalid content type: '" + = contentType + "'" });=0A= }=0A= }=0A= else {=0A= // Comet replies might have already partially executed=0A= if (batch.isPoll && batch.map.partialResponse =3D=3D = dwr.engine._partialResponseYes) {=0A= dwr.engine._processCometResponse(reply, batch);=0A= }=0A= else {=0A= if (reply.search("//#DWR") =3D=3D -1) {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.invalidReply", message:"Invalid reply from server" });=0A= }=0A= else {=0A= toEval =3D reply;=0A= }=0A= }=0A= }=0A= }=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= }=0A= =0A= dwr.engine._callPostHooks(batch);=0A= =0A= // Outside of the try/catch so errors propogate normally:=0A= dwr.engine._receivedBatch =3D batch;=0A= if (toEval !=3D null) toEval =3D = toEval.replace(dwr.engine._scriptTagProtection, "");=0A= dwr.engine._eval(toEval);=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._validateBatch(batch);=0A= if (!batch.completed) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /**=0A= * @private This function is invoked when a batch reply is received.=0A= * It checks that there is a response for every call in the batch. = Otherwise,=0A= * an error will be signaled (a call without a response indicates that = the =0A= * server failed to send complete batch response). =0A= */=0A= dwr.engine._validateBatch =3D function(batch) {=0A= // If some call left unreplied, report an error.=0A= if (!batch.completed) {=0A= for (var i =3D 0; i < batch.map.callCount; i++) {=0A= if (batch.handlers[i] !=3D null) {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.incompleteReply", message:"Incomplete reply from = server" });=0A= break;=0A= }=0A= }=0A= }=0A= }=0A= =0A= /** @private Called from iframe onload, check batch using batch-id */=0A= dwr.engine._iframeLoadingComplete =3D function(batchId) {=0A= // dwr.engine._checkCometPoll();=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch) dwr.engine._validateBatch(batch);=0A= }=0A= =0A= /** @private Called by the server: Execute a callback */=0A= dwr.engine._remoteHandleCallback =3D function(batchId, callId, reply) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch =3D=3D null) {=0A= dwr.engine._debug("Warning: batch =3D=3D null in = remoteHandleCallback for batchId=3D" + batchId, true);=0A= return;=0A= }=0A= // Error handlers inside here indicate an error that is nothing to do=0A= // with DWR so we handle them differently.=0A= try {=0A= var handlers =3D batch.handlers[callId];=0A= batch.handlers[callId] =3D null;=0A= if (!handlers) {=0A= dwr.engine._debug("Warning: Missing handlers. callId=3D" + callId, = true);=0A= }=0A= else if (typeof handlers.callback =3D=3D "function") = handlers.callback(reply);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleError(batch, ex);=0A= }=0A= };=0A= =0A= /** @private Called by the server: Handle an exception for a call */=0A= dwr.engine._remoteHandleException =3D function(batchId, callId, ex) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch =3D=3D null) { dwr.engine._debug("Warning: null batch in = remoteHandleException", true); return; }=0A= var handlers =3D batch.handlers[callId];=0A= batch.handlers[callId] =3D null;=0A= if (handlers =3D=3D null) { dwr.engine._debug("Warning: null handlers = in remoteHandleException", true); return; }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= if (typeof handlers.exceptionHandler =3D=3D "function") = handlers.exceptionHandler(ex.message, ex);=0A= else if (typeof batch.errorHandler =3D=3D "function") = batch.errorHandler(ex.message, ex);=0A= };=0A= =0A= /** @private Called by the server: The whole batch is broken */=0A= dwr.engine._remoteHandleBatchException =3D function(ex, batchId) {=0A= var searchBatch =3D (dwr.engine._receivedBatch =3D=3D null && batchId = !=3D null);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D dwr.engine._batches[batchId];=0A= }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= dwr.engine._handleError(dwr.engine._receivedBatch, ex);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._clearUp(dwr.engine._batches[batchId]);=0A= }=0A= };=0A= =0A= /** @private Called by the server: Reverse ajax should not be used */=0A= dwr.engine._remotePollCometDisabled =3D function(ex, batchId) {=0A= dwr.engine.setActiveReverseAjax(false);=0A= var searchBatch =3D (dwr.engine._receivedBatch =3D=3D null && batchId = !=3D null);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D dwr.engine._batches[batchId];=0A= }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= dwr.engine._handleError(dwr.engine._receivedBatch, ex);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._clearUp(dwr.engine._batches[batchId]);=0A= }=0A= };=0A= =0A= /** @private Called by the server: An IFrame reply is about to start */=0A= dwr.engine._remoteBeginIFrameResponse =3D function(iframe, batchId) {=0A= if (iframe !=3D null) dwr.engine._receivedBatch =3D iframe.batch;=0A= dwr.engine._callPostHooks(dwr.engine._receivedBatch);=0A= };=0A= =0A= /** @private Called by the server: An IFrame reply is just completing */=0A= dwr.engine._remoteEndIFrameResponse =3D function(batchId) {=0A= dwr.engine._clearUp(dwr.engine._receivedBatch);=0A= dwr.engine._receivedBatch =3D null;=0A= };=0A= =0A= /** @private This is a hack to make the context be this window */=0A= dwr.engine._eval =3D function(script) {=0A= if (script =3D=3D null) return null;=0A= if (script =3D=3D "") { dwr.engine._debug("Warning: blank script", = true); return null; }=0A= // dwr.engine._debug("Exec: [" + script + "]", true);=0A= return eval(script);=0A= };=0A= =0A= /** @private Called as a result of a request timeout */=0A= dwr.engine._abortRequest =3D function(batch) {=0A= if (batch && !batch.completed) {=0A= dwr.engine._clearUp(batch);=0A= if (batch.req) batch.req.abort();=0A= dwr.engine._handleError(batch, { name:"dwr.engine.timeout", = message:"Timeout" });=0A= }=0A= };=0A= =0A= /** @private call all the post hooks for a batch */=0A= dwr.engine._callPostHooks =3D function(batch) {=0A= if (batch.postHooks) {=0A= for (var i =3D 0; i < batch.postHooks.length; i++) {=0A= batch.postHooks[i]();=0A= }=0A= batch.postHooks =3D null;=0A= }=0A= };=0A= =0A= /** @private A call has finished by whatever means and we need to shut = it all down. */=0A= dwr.engine._clearUp =3D function(batch) {=0A= if (!batch) { dwr.engine._debug("Warning: null batch in = dwr.engine._clearUp()", true); return; }=0A= if (batch.completed) { dwr.engine._debug("Warning: Double complete", = true); return; }=0A= =0A= // IFrame tidyup=0A= if (batch.div) batch.div.parentNode.removeChild(batch.div);=0A= if (batch.iframe) {=0A= // If this is a poll frame then stop comet polling=0A= for (var i =3D 0; i < dwr.engine._outstandingIFrames.length; i++) {=0A= if (dwr.engine._outstandingIFrames[i] =3D=3D batch.iframe) {=0A= dwr.engine._outstandingIFrames.splice(i, 1);=0A= }=0A= }=0A= batch.iframe.parentNode.removeChild(batch.iframe);=0A= }=0A= if (batch.form) batch.form.parentNode.removeChild(batch.form);=0A= =0A= // XHR tidyup: avoid IE handles increase=0A= if (batch.req) {=0A= // If this is a poll frame then stop comet polling=0A= if (batch.req =3D=3D dwr.engine._pollReq) dwr.engine._pollReq =3D = null;=0A= delete batch.req;=0A= }=0A= =0A= // Timeout tidyup=0A= if (batch.timeoutId) {=0A= clearTimeout(batch.timeoutId);=0A= delete batch.timeoutId;=0A= }=0A= =0A= if (batch.map && (batch.map.batchId || batch.map.batchId =3D=3D 0)) {=0A= delete dwr.engine._batches[batch.map.batchId];=0A= dwr.engine._batchesLength--;=0A= }=0A= =0A= batch.completed =3D true;=0A= =0A= // If there is anything on the queue waiting to go out, then send it.=0A= // We don't need to check for ordered mode, here because when ordered = mode=0A= // gets turned off, we still process *waiting* batches in an ordered = way.=0A= if (dwr.engine._batchQueue.length !=3D 0) {=0A= var sendbatch =3D dwr.engine._batchQueue.shift();=0A= dwr.engine._sendData(sendbatch);=0A= }=0A= };=0A= =0A= /** @private Abort any XHRs in progress at page unload (solves zombie = socket problems in IE). */=0A= dwr.engine._unloader =3D function() {=0A= dwr.engine._unloading =3D true;=0A= =0A= // Empty queue of waiting ordered requests=0A= dwr.engine._batchQueue.length =3D 0;=0A= =0A= // Abort any ongoing XHRs and clear their batches=0A= for (var batchId in dwr.engine._batches) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= // Only process objects that look like batches (avoid prototype = additions!)=0A= if (batch && batch.map) {=0A= if (batch.req) {=0A= batch.req.abort();=0A= }=0A= dwr.engine._clearUp(batch);=0A= }=0A= }=0A= };=0A= // Now register the unload handler=0A= if (window.addEventListener) window.addEventListener('unload', = dwr.engine._unloader, false);=0A= else if (window.attachEvent) window.attachEvent('onunload', = dwr.engine._unloader);=0A= =0A= /** @private Generic error handling routing to save having null checks = everywhere */=0A= dwr.engine._handleError =3D function(batch, ex) {=0A= if (typeof ex =3D=3D "string") ex =3D { name:"unknown", message:ex };=0A= if (ex.message =3D=3D null) ex.message =3D "";=0A= if (ex.name =3D=3D null) ex.name =3D "unknown";=0A= if (batch && typeof batch.errorHandler =3D=3D "function") = batch.errorHandler(ex.message, ex);=0A= else if (dwr.engine._errorHandler) = dwr.engine._errorHandler(ex.message, ex);=0A= if (batch) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /** @private Generic error handling routing to save having null checks = everywhere */=0A= dwr.engine._handleWarning =3D function(batch, ex) {=0A= if (typeof ex =3D=3D "string") ex =3D { name:"unknown", message:ex };=0A= if (ex.message =3D=3D null) ex.message =3D "";=0A= if (ex.name =3D=3D null) ex.name =3D "unknown";=0A= if (batch && typeof batch.warningHandler =3D=3D "function") = batch.warningHandler(ex.message, ex);=0A= else if (dwr.engine._warningHandler) = dwr.engine._warningHandler(ex.message, ex);=0A= if (batch) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /**=0A= * @private Marshall a data item=0A= * @param batch A map of variables to how they have been marshalled=0A= * @param referto An array of already marshalled variables to prevent = recurrsion=0A= * @param data The data to be marshalled=0A= * @param name The name of the data being marshalled=0A= */=0A= dwr.engine._serializeAll =3D function(batch, referto, data, name) {=0A= if (data =3D=3D null) {=0A= batch.map[name] =3D "null:null";=0A= return;=0A= }=0A= =0A= switch (typeof data) {=0A= case "boolean":=0A= batch.map[name] =3D "boolean:" + data;=0A= break;=0A= case "number":=0A= batch.map[name] =3D "number:" + data;=0A= break;=0A= case "string":=0A= batch.map[name] =3D "string:" + encodeURIComponent(data);=0A= break;=0A= case "object":=0A= if (data instanceof String) batch.map[name] =3D "String:" + = encodeURIComponent(data);=0A= else if (data instanceof Boolean) batch.map[name] =3D "Boolean:" + = data;=0A= else if (data instanceof Number) batch.map[name] =3D "Number:" + = data;=0A= else if (data instanceof Date) batch.map[name] =3D "Date:" + = data.getTime();=0A= else if (data && data.join) batch.map[name] =3D = dwr.engine._serializeArray(batch, referto, data, name);=0A= else batch.map[name] =3D dwr.engine._serializeObject(batch, referto, = data, name);=0A= break;=0A= case "function":=0A= // We just ignore functions.=0A= break;=0A= default:=0A= dwr.engine._handleWarning(null, { name:"dwr.engine.unexpectedType", = message:"Unexpected type: " + typeof data + ", attempting default = converter." });=0A= batch.map[name] =3D "default:" + data;=0A= break;=0A= }=0A= };=0A= =0A= /** @private Have we already converted this object? */=0A= dwr.engine._lookup =3D function(referto, data, name) {=0A= var lookup;=0A= // Can't use a map: getahead.org/ajax/javascript-gotchas=0A= for (var i =3D 0; i < referto.length; i++) {=0A= if (referto[i].data =3D=3D data) {=0A= lookup =3D referto[i];=0A= break;=0A= }=0A= }=0A= if (lookup) return "reference:" + lookup.name;=0A= referto.push({ data:data, name:name });=0A= return null;=0A= };=0A= =0A= /** @private Marshall an object */=0A= dwr.engine._serializeObject =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= // This check for an HTML is not complete, but is there a better way?=0A= // Maybe we should add: data.hasChildNodes typeof "function" =3D=3D = true=0A= if (data.nodeName && data.nodeType) {=0A= return dwr.engine._serializeXml(batch, referto, data, name);=0A= }=0A= =0A= // treat objects as an associative arrays=0A= var reply =3D "Object_" + dwr.engine._getObjectClassName(data) + ":{";=0A= var element;=0A= for (element in data) {=0A= if (typeof data[element] !=3D "function") {=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[element], childName);=0A= =0A= reply +=3D encodeURIComponent(element) + ":reference:" + childName = + ", ";=0A= }=0A= }=0A= =0A= if (reply.substring(reply.length - 2) =3D=3D ", ") {=0A= reply =3D reply.substring(0, reply.length - 2);=0A= }=0A= reply +=3D "}";=0A= =0A= return reply;=0A= };=0A= =0A= /** @private Returns the classname of supplied argument obj */=0A= dwr.engine._errorClasses =3D { "Error":Error, "EvalError":EvalError, = "RangeError":RangeError, "ReferenceError":ReferenceError, = "SyntaxError":SyntaxError, "TypeError":TypeError, "URIError":URIError };=0A= dwr.engine._getObjectClassName =3D function(obj) {=0A= // Try to find the classname by stringifying the object's constructor=0A= // and extract from "function ".=0A= if (obj && obj.constructor && obj.constructor.toString)=0A= {=0A= var str =3D obj.constructor.toString();=0A= var regexpmatch =3D str.match(/function\s+(\w+)/);=0A= if (regexpmatch && regexpmatch.length =3D=3D 2) {=0A= return regexpmatch[1];=0A= }=0A= }=0A= =0A= // Now manually test against the core Error classes, as these in some =0A= // browsers successfully match to the wrong class in the =0A= // Object.toString() test we will do later=0A= if (obj && obj.constructor) {=0A= for (var errorname in dwr.engine._errorClasses) {=0A= if (obj.constructor =3D=3D dwr.engine._errorClasses[errorname]) = return errorname;=0A= }=0A= }=0A= =0A= // Try to find the classname by calling Object.toString() on the object=0A= // and extracting from "[object ]"=0A= if (obj) {=0A= var str =3D Object.prototype.toString.call(obj);=0A= var regexpmatch =3D str.match(/\[object\s+(\w+)/);=0A= if (regexpmatch && regexpmatch.length=3D=3D2) {=0A= return regexpmatch[1];=0A= }=0A= }=0A= =0A= // Supplied argument was probably not an object, but what is better?=0A= return "Object";=0A= };=0A= =0A= /** @private Marshall an object */=0A= dwr.engine._serializeXml =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= var output;=0A= if (window.XMLSerializer) output =3D new = XMLSerializer().serializeToString(data);=0A= else if (data.toXml) output =3D data.toXml;=0A= else output =3D data.innerHTML;=0A= =0A= return "XML:" + encodeURIComponent(output);=0A= };=0A= =0A= /** @private Marshall an array */=0A= dwr.engine._serializeArray =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= if (document.all && !window.opera) {=0A= // Use array joining on IE (fastest)=0A= var buf =3D ["Array:["];=0A= for (var i =3D 0; i < data.length; i++) {=0A= if (i !=3D 0) buf.push(",");=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[i], childName);=0A= buf.push("reference:");=0A= buf.push(childName);=0A= }=0A= buf.push("]");=0A= reply =3D buf.join("");=0A= }=0A= else {=0A= // Use string concat on other browsers (fastest)=0A= var reply =3D "Array:[";=0A= for (var i =3D 0; i < data.length; i++) {=0A= if (i !=3D 0) reply +=3D ",";=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[i], childName);=0A= reply +=3D "reference:";=0A= reply +=3D childName;=0A= }=0A= reply +=3D "]";=0A= }=0A= =0A= return reply;=0A= };=0A= =0A= /** @private Convert an XML string into a DOM object. */=0A= dwr.engine._unserializeDocument =3D function(xml) {=0A= var dom;=0A= if (window.DOMParser) {=0A= var parser =3D new DOMParser();=0A= dom =3D parser.parseFromString(xml, "text/xml");=0A= if (!dom.documentElement || dom.documentElement.tagName =3D=3D = "parsererror") {=0A= var message =3D dom.documentElement.firstChild.data;=0A= message +=3D "\n" + = dom.documentElement.firstChild.nextSibling.firstChild.data;=0A= throw message;=0A= }=0A= return dom;=0A= }=0A= else if (window.ActiveXObject) {=0A= dom =3D dwr.engine._newActiveXObject(dwr.engine._DOMDocument);=0A= dom.loadXML(xml); // What happens on parse fail with IE?=0A= return dom;=0A= }=0A= else {=0A= var div =3D document.createElement("div");=0A= div.innerHTML =3D xml;=0A= return div;=0A= }=0A= };=0A= =0A= /** @param axarray An array of strings to attempt to create ActiveX = objects from */=0A= dwr.engine._newActiveXObject =3D function(axarray) {=0A= var returnValue; =0A= for (var i =3D 0; i < axarray.length; i++) {=0A= try {=0A= returnValue =3D new ActiveXObject(axarray[i]);=0A= break;=0A= }=0A= catch (ex) { /* ignore */ }=0A= }=0A= return returnValue;=0A= };=0A= =0A= /** @private Used internally when some message needs to get to the = programmer */=0A= dwr.engine._debug =3D function(message, stacktrace) {=0A= var written =3D false;=0A= try {=0A= if (window.console) {=0A= if (stacktrace && window.console.trace) window.console.trace();=0A= window.console.log(message);=0A= written =3D true;=0A= }=0A= else if (window.opera && window.opera.postError) {=0A= window.opera.postError(message);=0A= written =3D true;=0A= }=0A= }=0A= catch (ex) { /* ignore */ }=0A= =0A= if (!written) {=0A= var debug =3D document.getElementById("dwr-debug");=0A= if (debug) {=0A= var contents =3D message + "" + debug.innerHTML;=0A= if (contents.length > 2048) contents =3D contents.substring(0, = 2048);=0A= debug.innerHTML =3D contents;=0A= }=0A= }=0A= };=0A= ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/blackboard/content/contentWrapperItem.jsp?course_id=_702465_1&content_id=_2356318_1&displayName=Herodotus&navItem=content&attachment=true =EF=BB=BF Blackboard Learn Current Location Fall 2009 (HS) Wrld Civizatn to 1500 Sec 001 = Course Documents Course Documents Week 3 Herodotus = =20 ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/courses/1/HIS_1000_0909_001/content/_2356318_1/Herodotus.htm Herodotus Herodotus [Note: you might find it helpful to consult the = maps on=20 Mesopotamia and Egypt under Course = Documents as you=20 read Herodotus.] On Babylon and = Mesopotamia: [1.178] Assyria possesses a vast number of great = cities,=20 whereof the most renowned and strongest at this time was Babylon, whither, after the fall of Nineveh, the = seat of=20 government had been removed. The following is a description of the = place:- The=20 city stands on a broad plain, and is an exact square, a hundred and = twenty=20 furlongs in length each way, so that the entire circuit is four hundred = and=20 eighty furlongs. While such is its size, in magnificence there is no = other city=20 that approaches to it. It is surrounded, in the first place, by a broad = and deep=20 moat, full of water, behind which rises a wall fifty royal cubits in = width, and=20 two hundred in height. (The royal cubit is longer by three fingers' = breadth than=20 the common cubit.) [1.179] And here I may not omit to tell the use to = which the=20 mould dug out of the great moat was turned, nor the manner wherein the = wall was=20 wrought. As fast as they dug the moat the soil which they got from the = cutting=20 was made into bricks, and when a sufficient number were completed they = baked the=20 bricks in kilns. Then they set to building, and began with bricking the = borders=20 of the moat, after which they proceeded to construct the wall itself, = using=20 throughout for their cement hot bitumen, and interposing a layer of = wattled=20 reeds at every thirtieth course of the bricks. On the top, along the = edges of=20 the wall, they constructed buildings of a single chamber facing one = another,=20 leaving between them room for a four-horse chariot to turn. In the = circuit of=20 the wall are a hundred gates, all of brass, with brazen lintels and = side-posts.=20 The bitumen used in the work was brought to Babylon from the Is, a small = stream=20 which flows into the Euphrates at the point where the city of the same = name=20 stands, eight days' journey from Babylon. Lumps of bitumen are found in = great=20 abundance in this river. [1.180] The city is divided into two portions by = the river=20 which runs through the midst of it. This river is the Euphrates, a = broad, deep,=20 swift stream, which rises in Armenia, and empties itself = into the=20 Erythraean sea. The city wall is brought down on both sides to the edge = of the=20 stream: thence, from the corners of the wall, there is carried along = each bank=20 of the river a fence of burnt bricks. The houses are mostly three and = four=20 stories high; the streets all run in straight lines, not only those = parallel to=20 the river, but also the cross streets which lead down to the water-side. = At the=20 river end of these cross streets are low gates in the fence that skirts = the=20 stream, which are, like the great gates in the outer wall, of brass, and = open on=20 the water. [1.181] The outer wall is the main defence of the = city. There=20 is, however, a second inner wall, of less thickness than the first, but = very=20 little inferior to it in strength. The centre of each division of the = town was=20 occupied by a fortress. In the one stood the palace of the kings, = surrounded by=20 a wall of great strength and size: in the other was the sacred precinct = of=20 Jupiter Belus, a square enclosure two furlongs each way, with gates of = solid=20 brass; which was also remaining in my time. In the middle of the = precinct there=20 was a tower of solid masonry, a furlong in length and breadth, upon = which was=20 raised a second tower, and on that a third, and so on up to eight. The = ascent to=20 the top is on the outside, by a path which winds round all the towers. = When one=20 is about half-way up, one finds a resting-place and seats, where persons = are=20 wont to sit some time on their way to the summit. On the topmost tower = there is=20 a spacious temple, and inside the temple stands a couch of unusual size, = richly=20 adorned, with a golden table by its side. There is no statue of any kind = set up=20 in the place, nor is the chamber occupied of nights by any one but a = single=20 native woman, who, as the Chaldaeans, the priests of this god, affirm, = is chosen=20 for himself by the deity out of all the women of the land. [1.182] They also declare - but I for my part do = not credit=20 it - that the god comes down in person into this chamber, and sleeps = upon the=20 couch. This is like the story told by the Egyptians of what takes place = in their=20 city of Thebes, where a woman always passes the night in the temple of = the=20 Theban Jupiter. In each case the woman is said to be debarred all = intercourse=20 with men. It is also like the custom of Patara, in Lycia, where the = priestess=20 who delivers the oracles, during the time that she is so employed - for = at=20 Patara there is not always an oracle - is shut up in the temple every = night.=20 [1.183] Below, in the same precinct, there is a = second=20 temple, in which is a sitting figure of Jupiter, all of gold. Before the = figure=20 stands a large golden table, and the throne whereon it sits, and the = base on=20 which the throne is placed, are likewise of gold. The Chaldaeans told me = that=20 all the gold together was eight hundred talents' weight. Outside the = temple are=20 two altars, one of solid gold, on which it is only lawful to offer = sucklings;=20 the other a common altar, but of great size, on which the full-grown = animals are=20 sacrificed. It is also on the great altar that the Chaldaeans burn the=20 frankincense, which is offered to the amount of a thousand talents' = weight,=20 every year, at the festival of the God. In the time of Cyrus there was = likewise=20 in this temple a figure of a man, twelve cubits high, entirely of solid = gold. I=20 myself did not see this figure, but I relate what the Chaldaeans report=20 concerning it. Darius, the son of Hystaspes, plotted to carry the statue = off,=20 but had not the hardihood to lay his hands upon it. Xerxes, however, the = son of=20 Darius, killed the priest who forbade him to move the statue, and took = it away.=20 Besides the ornaments which I have mentioned, there are a large number = of=20 private offerings in this holy precinct. [1.184] Many sovereigns have ruled over this city = of=20 Babylon, and=20 lent their aid to the building of its walls and the adornment of its = temples, of=20 whom I shall make mention in my Assyrian history. Among them two were = women. Of=20 these, the earlier, called Semiramis, held the throne five generations = before=20 the later princess. She raised certain embankments well worthy of = inspection, in=20 the plain near Babylon, to control the river, which, till then, used to=20 overflow, and flood the whole country round about. [1.185] The later of the two queens, whose name was = Nitocris,=20 a wiser princess than her predecessor, not only left behind her, as = memorials of=20 her occupancy of the throne, the works which I shall presently describe, = but=20 also, observing the great power and restless enterprise of the Medes, = who had=20 taken so large a number of cities, and among them Nineveh, and expecting = to be=20 attacked in her turn, made all possible exertions to increase the = defences of=20 her empire. And first, whereas the river Euphrates, which traverses the = city,=20 ran formerly with a straight course to Babylon, she, by certain = excavations=20 which she made at some distance up the stream, rendered it so winding = that it=20 comes three several times in sight of the same village, a village in = Assyria,=20 which is called Ardericea; and to this day, they who would go from our = sea to=20 Babylon, on descending to the river touch three times, and on three = different=20 days, at this very place. She also made an embankment along each side of = the=20 Euphrates, wonderful both for breadth and height, and dug a basin for a = lake a=20 great way above Babylon, close alongside of the stream, which was sunk=20 everywhere to the point where they came to water, and was of such = breadth that=20 the whole circuit measured four hundred and twenty furlongs. The soil = dug out of=20 this basin was made use of in the embankments along the waterside. When = the=20 excavation was finished, she had stones brought, and bordered with them = the=20 entire margin of the reservoir. These two things were done, the river = made to=20 wind, and the lake excavated, that the stream might be slacker by reason = of the=20 number of curves, and the voyage be rendered circuitous, and that at the = end of=20 the voyage it might be necessary to skirt the lake and so make a long = round. All=20 these works were on that side of Babylon where the passes lay, and the = roads=20 into Media were the straightest, and the aim of the queen in making them = was to=20 prevent the Medes from holding intercourse with the Babylonians, and so = to keep=20 them in ignorance of her affairs. [1.186] While the soil from the excavation was = being thus=20 used for the defense of the city, Nitocris engaged also in another = undertaking,=20 a mere by-work compared with those we have already mentioned. The city, = as I=20 said, was divided by the river into two distinct portions. Under the = former=20 kings, if a man wanted to pass from one of these divisions to the other, = he had=20 to cross in a boat; which must, it seems to me, have been very = troublesome.=20 Accordingly, while she was digging the lake, Nitocris thought herself of = turning=20 it to a use which should at once remove this inconvenience, and enable = her to=20 leave another monument of her reign over Babylon. She gave orders for the = hewing of=20 immense blocks of stone, and when they were ready and the basin was = excavated,=20 she turned the entire stream of the Euphrates into the cutting, and thus = for a=20 time, while the basin was filling, the natural channel of the river was = left=20 dry. Forthwith she set to work, and in the first place lined the banks = of the=20 stream within the city with quays of burnt brick, and also bricked the=20 landing-places opposite the river-gates, adopting throughout the same = fashion of=20 brickwork which had been used in the town wall; after which, with the = materials=20 which had been prepared, she built, as near the middle of the town as = possible,=20 a stone bridge, the blocks whereof were bound together with iron and = lead. In=20 the daytime square wooden platforms were laid along from pier to pier, = on which=20 the inhabitants crossed the stream; but at night they were withdrawn, to = prevent=20 people passing from side to side in the dark to commit robberies. When = the river=20 had filled the cutting, and the bridge was finished, the Euphrates was = turned=20 back again into its ancient bed; and thus the basin, transformed = suddenly into a=20 lake, was seen to answer the purpose for which it was made, and the = inhabitants,=20 by help of the basin, obtained the advantage of a bridge. [1.187] It was this same princess by whom a = remarkable=20 deception was planned. She had her tomb constructed in the upper part of = one of=20 the principal gateways of the city, high above the heads of the passers = by, with=20 this inscription cut upon it:- "If there be one among my successors on = the=20 throne of Babylon who is in want of treasure, let him open my tomb, and = take as=20 much as he chooses - not, however, unless he be truly in want, for it = will not=20 be for his good." This tomb continued untouched until Darius came to the = kingdom. To him it seemed a monstrous thing that he should be unable to = use one=20 of the gates of the town, and that a sum of money should be lying idle, = and=20 moreover inviting his grasp, and he not seize upon it. Now he could not = use the=20 gate, because, as he drove through, the dead body would have been over = his head.=20 Accordingly he opened the tomb; but instead of money, found only the = dead body,=20 and a writing which said - "Had you not been insatiate of self, and = careless how=20 you got it, you would not have broken open the sepulchres of the dead." = [1.188] The expedition of Cyrus was undertaken = against the=20 son of this princess, who bore the same name as his father Labynetus, = and was=20 king of the Assyrians. The Great King, when he goes to the wars, is = always=20 supplied with provisions carefully prepared at home, and with cattle of = his own.=20 Water too from the river Choaspes, which flows by Susa, is taken with = him for=20 his drink, as that is the only water which the kings of Persia taste. = Wherever=20 he travels, he is attended by a number of four-wheeled cars drawn by = mules, in=20 which the Choaspes water, ready boiled for use, and stored in flagons of = silver,=20 is moved with him from place to place. [1.189] Cyrus on his way to Babylon came to the = banks of the=20 Gyndes, a stream which, rising in the Matienian mountains, runs through = the=20 country of the Dardanians, and empties itself into the river Tigris. The = Tigris,=20 after receiving the Gyndes, flows on by the city of Opis, and = discharges its=20 waters into the Erythraean sea. When Cyrus reached this stream, which = could only=20 be passed in boats, one of the sacred white horses accompanying his = march, full=20 of spirit and high mettle, walked into the water, and tried to cross by = himself;=20 but the current seized him, swept him along with it, and drowned him in = its=20 depths. Cyrus, enraged at the insolence of the river, threatened so to = break its=20 strength that in future even women should cross it easily without = wetting their=20 knees. Accordingly he put off for a time his attack on Babylon, and, = dividing=20 his army into two parts, he marked out by ropes one hundred and eighty = trenches=20 on each side of the Gyndes, leading off from it in all directions, and = setting=20 his army to dig, some on one side of the river, some on the other, he=20 accomplished his threat by the aid of so great a number of hands, but = not=20 without losing thereby the whole summer season. [1.190] Having, however, thus wreaked his vengeance = on the=20 Gyndes, by dispersing it through three hundred and sixty channels, = Cyrus, with=20 the first approach of the ensuing spring, marched forward against = Babylon. The=20 Babylonians, encamped without their walls, awaited his coming. A battle = was=20 fought at a short distance from the city, in which the Babylonians were = defeated=20 by the Persian king, whereupon they withdrew within their defences. Here = they=20 shut themselves up, and made light of his siege, having laid in a store = of=20 provisions for many years in preparation against this attack; for when = they saw=20 Cyrus conquering nation after nation, they were convinced that he would = never=20 stop, and that their turn would come at last. [1.191] Cyrus was now reduced to great perplexity, = as time=20 went on and he made no progress against the place. In this distress = either some=20 one made the suggestion to him, or he bethought himself of a plan, which = he=20 proceeded to put in execution. He placed a portion of his army at the = point=20 where the river enters the city, and another body at the back of the = place where=20 it issues forth, with orders to march into the town by the bed of the = stream, as=20 soon as the water became shallow enough: he then himself drew off with = the=20 unwarlike portion of his host, and made for the place where Nitocris dug = the=20 basin for the river, where he did exactly what she had done formerly: he = turned=20 the Euphrates by a canal into the basin, which was then a marsh, on = which the=20 river sank to such an extent that the natural bed of the stream became = fordable.=20 Hereupon the Persians who had been left for the purpose at Babylon by = the,=20 river-side, entered the stream, which had now sunk so as to reach about = midway=20 up a man's thigh, and thus got into the town. Had the Babylonians been = apprised=20 of what Cyrus was about, or had they noticed their danger, they would = never have=20 allowed the Persians to enter the city, but would have destroyed them = utterly;=20 for they would have made fast all the street-gates which gave upon the = river,=20 and mounting upon the walls along both sides of the stream, would so = have caught=20 the enemy, as it were, in a trap. But, as it was, the Persians came upon = them by=20 surprise and so took the city. Owing to the vast size of the place, the=20 inhabitants of the central parts (as the residents at Babylon declare) = long=20 after the outer portions of the town were taken, knew nothing of what = had=20 chanced, but as they were engaged in a festival, continued dancing and = revelling=20 until they learnt the capture but too certainly. Such, then, were the=20 circumstances of the first taking of Babylon. [1.192] Among many proofs which I shall bring = forward of the=20 power and resources of the Babylonians, the following is of special = account. The=20 whole country under the dominion of the Persians, besides paying a fixed = tribute, is parcelled out into divisions, which have to supply food to = the Great=20 King and his army during different portions of the year. Now out of the = twelve=20 months which go to a year, the district of Babylon furnishes food during = four,=20 the other of Asia during eight; by which it appears that Assyria, in = respect of=20 resources, is one-third of the whole of Asia.=20 Of all the Persian governments, or satrapies as they are called by the = natives,=20 this is by far the best. When Tritantaechmes, son of Artabazus, held it = of the=20 king, it brought him in an artaba of silver every day. The artaba is a = Persian=20 measure, and holds three choenixes more than the medimnus of the = Athenians. He=20 also had, belonging to his own private stud, besides war horses, eight = hundred=20 stallions and sixteen thousand mares, twenty to each stallion. Besides = which he=20 kept so great a number of Indian hounds, that four large villages of the = plain=20 were exempted from all other charges on condition of finding them food. = [1.193] But little rain falls in Assyria, enough, = however, to=20 make the grain begin to sprout, after which the plant is nourished and = the ears=20 formed by means of irrigation from the river. For the river does not, as = in=20 Egypt, overflow the = grain-lands of=20 its own accord, but is spread over them by the hand, or by the help of = engines.=20 The whole of Babylonia is, like Egypt, intersected with canals. The = largest of=20 them all, which runs towards the winter sun, and is impassable except in = boats,=20 is carried from the Euphrates into another stream, called the Tigris, = the river=20 upon which the town of Nineveh formerly stood. Of all the = countries=20 that we know there is none which is so fruitful in grain. It makes no = pretension=20 indeed of growing the fig, the olive, the vine, or any other tree of the = kind;=20 but in grain it is so fruitful as to yield commonly two-hundred-fold, = and when=20 the production is the greatest, even three-hundred-fold. The blade of = the=20 wheat-plant and barley-plant is often four fingers in breadth. As for = the millet=20 and the sesame, I shall not say to what height they grow, though within = my own=20 knowledge; for I am not ignorant that what I have already written = concerning the=20 fruitfulness of Babylonia must seem incredible to those who have never = visited=20 the country. The only oil they use is made from the sesame-plant. = Palm-trees=20 grow in great numbers over the whole of the flat country, mostly of the = kind=20 which bears fruit, and this fruit supplies them with bread, wine, and = honey.=20 They are cultivated like the fig-tree in all respects, among others in = this. The=20 natives tie the fruit of the male-palms, as they are called by the = Greeks, to=20 the branches of the date-bearing palm, to let the gall-fly enter the = dates and=20 ripen them, and to prevent the fruit from falling off. The male-palms, = like the=20 wild fig-trees, have usually the gall-fly in their fruit. [1.194] But that which surprises me most in the = land, after=20 the city itself, I will now proceed to mention. The boats which come = down the=20 river to Babylon are circular, and made of skins. The frames, which are = of=20 willow, are cut in the country of the Armenians above Assyria, and on = these,=20 which serve for hulls, a covering of skins is stretched outside, and = thus the=20 boats are made, without either stem or stern, quite round like a shield. = They=20 are then entirely filled with straw, and their cargo is put on board, = after=20 which they are suffered to float down the stream. Their chief freight is = wine,=20 stored in casks made of the wood of the palm-tree. They are managed by = two men=20 who stand upright in them, each plying an oar, one pulling and the other = pushing. The boats are of various sizes, some larger, some smaller; the = biggest=20 reach as high as five thousand talents' burden. Each vessel has a live = ass on=20 board; those of larger size have more than one. When they reach Babylon, = the=20 cargo is landed and offered for sale; after which the men break up their = boats,=20 sell the straw and the frames, and loading their asses with the skins, = set off=20 on their way back to Armenia. The current is too strong to allow a boat = to=20 return upstream, for which reason they make their boats of skins rather = than=20 wood. On their return to Armenia they build fresh boats for the next = voyage.=20 [1.195] The dress of the Babylonians is a linen = tunic=20 reaching to the feet, and above it another tunic made in wool, besides = which=20 they have a short white cloak thrown round them, and shoes of a peculiar = fashion, not unlike those worn by the Boeotians. They have long hair, = wear=20 turbans on their heads, and anoint their whole body with perfumes. Every = one=20 carries a seal, and a walking-stick, carved at the top into the form of = an=20 apple, a rose, a lily, an eagle, or something similar; for it is not = their habit=20 to use a stick without an ornament. [1.196] Of their customs, whereof I shall now = proceed to give=20 an account, the following (which I understand belongs to them in common = with the=20 Illyrian tribe of the Eneti) is the wisest in my judgment. Once a year = in each=20 village the maidens of age to marry were collected all together into one = place;=20 while the men stood round them in a circle. Then a herald called up the = damsels=20 one by one, and offered them for sale. He began with the most beautiful. = When=20 she was sold for no small sum of money, he offered for sale the one who = came=20 next to her in beauty. All of them were sold to be wives. The richest of = the=20 Babylonians who wished to wed bid against each other for the loveliest = maidens,=20 while the humbler wife-seekers, who were indifferent about beauty, took = the more=20 homely damsels with marriage-portions. For the custom was that when the = herald=20 had gone through the whole number of the beautiful damsels, he should = then call=20 up the ugliest - a cripple, if there chanced to be one - and offer her = to the=20 men, asking who would agree to take her with the smallest = marriage-portion [i.e.=20 in these cases the man was paid to take the woman]. And the man who was = offered=20 the smallest sum had her assigned to him. The marriage-portions were = furnished=20 by the money paid for the beautiful damsels, and thus the fairer maidens = portioned out the uglier. No one was allowed to give his daughter in = marriage to=20 the man of his choice, nor might any one carry away the damsel whom he = had=20 purchased without finding bail really and truly to make her his wife; = if,=20 however, it turned out that they did not agree, the money might be paid = back.=20 All who liked might come even from distant villages and bid for the = women. This=20 was the best of all their customs, but it has now fallen into disuse. = They have=20 lately hit upon a very different plan to save their maidens from = violence, and=20 prevent their being torn from them and carried to distant cities, which = is to=20 bring up their daughters to be courtesans. This is now done by all the = poorer of=20 the common people, who since the conquest have been maltreated by their = lords,=20 and have had ruin brought upon their families. [1.197] The following custom seems to me the wisest = of their=20 institutions next to the one lately praised. They have no physicians, = but when a=20 man is ill, they lay him in the public square, and the passers-by come = up to=20 him, and if they have ever had his disease themselves or have known any = one who=20 has suffered from it, they give him advice, recommending him to do = whatever they=20 found good in their own case, or in the case known to them; and no one = is=20 allowed to pass the sick man in silence without asking him what his = ailment is.=20 [1.198] They bury their dead in honey, and have = funeral=20 lamentations like the Egyptians. When a Babylonian has consorted with = his wife,=20 he sits down before a censer of burning incense, and the woman sits = opposite to=20 him. At dawn of day they wash; for till they are washed they will not = touch any=20 of their common vessels. This practice is observed also by the Arabians. = [1.199] The Babylonians have one most shameful = custom. Every=20 woman born in the country must once in her life go and sit down in the = precinct=20 of Venus, and there consort with a stranger. Many of the wealthier sort, = who are=20 too proud to mix with the others, drive in covered carriages to the = precinct,=20 followed by a goodly train of attendants, and there take their station. = But the=20 larger number seat themselves within the holy enclosure with wreaths of = string=20 about their heads - and here there is always a great crowd, some coming = and=20 others going; lines of cord mark out paths in all directions the women, = and the=20 strangers pass along them to make their choice. A woman who has once = taken her=20 seat is not allowed to return home till one of the strangers throws a = silver=20 coin into her lap, and takes her with him beyond the holy ground. When = he throws=20 the coin he says these words - "The goddess Mylitta prosper thee." = (Venus is=20 called Mylitta by the Assyrians.) The silver coin may be of any size; it = cannot=20 be refused, for that is forbidden by the law, since once thrown it is = sacred.=20 The woman goes with the first man who throws her money, and rejects no = one. When=20 she has gone with him, and so satisfied the goddess, she returns home, = and from=20 that time forth no gift however great will prevail with her. Such of the = women=20 as are tall and beautiful are soon released, but others who are ugly = have to=20 stay a long time before they can fulfil the law. Some have waited three = or four=20 years in the precinct. A custom very much like this is found also in = certain=20 parts of the island of Cyprus. [1.200] Such are the customs of the Babylonians = generally.=20 There are likewise three tribes among them who eat nothing but fish. = These are=20 caught and dried in the sun, after which they are brayed in a mortar, = and=20 strained through a linen sieve. Some prefer to make cakes of this = material,=20 while others bake it into a kind of bread. On Egypt: [2.2] Now the Egyptians, before the reign of their = king=20 Psammetichus, believed themselves to be the most ancient of mankind. = Since=20 Psammetichus, however, made an attempt to discover who were actually the = primitive race, the Egyptians have been of opinion that while they = surpass all=20 other nations, the Phrygians surpass them in antiquity. This king, = finding it=20 impossible to make out by dint of inquiry what men were the most = ancient,=20 contrived the following method of discovery:- He took two children of = the common=20 sort, and gave them over to a herdsman to bring up at his folds, = strictly=20 charging him to let no one utter a word in their presence, but to keep = them in a=20 sequestered cottage, and from time to time introduce goats to their = apartment,=20 see that they got their fill of milk, and in all other respects look = after them.=20 His object herein was to know, after the indistinct babblings of infancy = were=20 over, what word they would first articulate. It happened as he had = anticipated.=20 The herdsman obeyed his orders for two years, and at the end of that = time, on=20 his one day opening the door of their room and going in, the children = both ran=20 up to him with outstretched arms, and distinctly said "Becos." When this = first=20 happened the herdsman took no notice; but afterwards when he observed, = on coming=20 often to see after them, that the word was constantly in their mouths, = he=20 informed his lord, and by his command brought the children into his = presence.=20 Psammetichus then himself heard them say the word, upon which he = proceeded to=20 make inquiry what people there was who called anything "becos," and = hereupon he=20 learnt that "becos" was the Phrygian name for bread. In consideration of = this=20 circumstance the Egyptians yielded their claims, and admitted the = greater=20 antiquity of the Phrygians. [2.3] That these were the real facts I learnt at = Memphis from = the priests of=20 Vulcan. The Greeks, among other foolish tales, relate that Psammetichus = had the=20 children brought up by women whose tongues he had previously cut out; = but the=20 priests said their bringing up was such as I have stated above. I got = much other=20 information also from conversation with these priests while I was at = Memphis,=20 and I even went to Heliopolis and to Thebes, expressly to try whether = the=20 priests of those places would agree in their accounts with the priests = at=20 Memphis. The Heliopolitans have the reputation of being the best skilled = in=20 history of all the Egyptians. What they told me concerning their = religion it is=20 not my intention to repeat, except the names of their deities, which I = believe=20 all men know equally. If I relate anything else concerning these = matters, it=20 will only be when compelled to do so by the course of my narrative. [2.4] Now with regard to mere human matters, the = accounts=20 which they gave, and in which all agreed, were the following. The = Egyptians,=20 they said, were the first to discover the solar year, and to portion out = its=20 course into twelve parts. They obtained this knowledge from the stars. = (To my=20 mind they contrive their year much more cleverly than the Greeks, for = these last=20 every other year intercalate a whole month, but the Egyptians, dividing = the year=20 into twelve months of thirty days each, add every year a space of five = days=20 besides, whereby the circuit of the seasons is made to return with = uniformity.)=20 The Egyptians, they went on to affirm, first brought into use the names = of the=20 twelve gods, which the Greeks adopted from them; and first erected = altars,=20 images, and temples to the gods; and also first engraved upon stone the = figures=20 of animals. In most of these cases they proved to me that what they said = was=20 true. And they told me that the first man who ruled over Egypt was Min, = and that=20 in his time all Egypt, except the Thebaic canton, was a marsh, none of = the land=20 below Lake Moeris then showing itself above the surface of the water. = This is a=20 distance of seven days' sail from the sea up the river. [2.5] What they said of their country seemed to me = very=20 reasonable. For any one who sees Egypt, without having heard a word = about it=20 before, must perceive, if he has only common powers of observation, that = the=20 Egypt to which the Greeks go in their ships is an acquired country, the = gift of=20 the river. The same is true of the land above the lake, to the distance = of three=20 days' voyage, concerning which the Egyptians say nothing, but which = exactly the=20 same kind of country. The following is the general character of the = region. In the=20 first place, on approaching it by sea, when you are still a day's sail = from the=20 land, if you let down a sounding-line you will bring up mud, and find = yourself=20 in eleven fathoms' water, which shows that the soil washed down by the = stream=20 extends to that distance. [2.6] The length of the country along shore, = according to the=20 bounds that we assign to Egypt, namely from the Plinthinetic = gulf to=20 Lake Serbonis, which extends along the base of = Mount = Casius, is sixty schoenes. The = nations=20 whose territories are scanty measure them by the fathom; those whose = bounds are=20 less confined, by the furlong; those who have an ample territory, by the = parasang; but if men have a country which is very vast, they measure it = by the=20 schoene. Now the length of the parasang is thirty furlongs, but the = schoene,=20 which is an Egyptian measure, is sixty furlongs. Thus the coastline of = Egypt=20 would extend a length of three thousand six hundred furlongs. [2.7] From the coast inland as far as Heliopolis the breadth of Egypt=20 is considerable, the country is flat, without springs, and full of = swamps. The=20 length of the route from the sea up to Heliopolis is almost exactly the = same as=20 that of the road which runs from the altar of the twelve gods at Athens = to the=20 temple of Olympian Jove at Pisa. If a person made a calculation he would = find=20 but a very little difference between the two routes, not more than about = fifteen=20 furlongs; for the road from Athens to Pisa falls short of fifteen = hundred=20 furlongs by exactly fifteen, whereas the distance of Heliopolis from the = sea is=20 just the round number. [2.8] As one proceeds beyond Heliopolis up the country, Egypt=20 becomes narrow, the Arabian range of hills, which has a direction from = north to=20 south, shutting it in upon the one side, and the Libyan range upon the = other.=20 The former ridge runs on without a break, and stretches away to the sea = called=20 the Erythraean; it contains the quarries whence the stone was cut for = the=20 pyramids of Memphis: and this is the point where it ceases its first = direction,=20 and bends away in the manner above indicated. In its greatest length = from east=20 to west it is, as I have been informed, a distance of two months' = journey=20 towards the extreme east its skirts produce frankincense. Such are the = chief=20 features of this range. On the Libyan side, the other ridge whereon the = pyramids=20 stand is rocky and covered with sand; its direction is the same as that = of the=20 Arabian ridge in the first part of its course. Above Heliopolis, then, = there is=20 no great breadth of territory for such a country as Egypt, but during = four days'=20 sail Egypt is narrow; the valley between the two ranges is a level = plain, and=20 seemed to me to be, at the narrowest point, not more than two hundred = furlongs=20 across from the Arabian to the Libyan hills. Above this point Egypt = again=20 widens. [2.9] From Heliopolis to Thebes is nine days' sail = up the=20 river; the distance is eighty-one schoenes, or 4860 furlongs. If we now = put=20 together the several measurements of the country we shall find that the = distance=20 along shore is, as I stated above, 3600 furlongs, and the distance from = the sea=20 inland to Thebes 6120 furlongs. Further, it is a distance of eighteen = hundred=20 furlongs from Thebes to the place called Elephantine. [2.10] The greater portion of the country above = described=20 seemed to me to be, as the priests declared, a tract gained by the = inhabitants.=20 For the whole region above Memphis, lying between the two ranges = of hills=20 that have been spoken of, appeared evidently to have formed at one time = a gulf=20 of the sea. It resembles (to compare small things with great) the parts = about=20 Ilium and Teuthrania, Ephesus, and the plain of the Maeander. In all = these=20 regions the land has been formed by rivers, whereof the greatest is not = to=20 compare for size with any one of the five mouths of the Nile. I could = mention=20 other rivers also, far inferior to the Nile in=20 magnitude, that have effected very great changes. Among these not the = least is=20 the Achelous, which, after passing through Acarnania, empties itself = into the=20 sea opposite the islands called Echinades, and has already joined = one-half of=20 them to the continent. [2.11] In Arabia, not far from Egypt, there is a long and narrow gulf = running=20 inland from the sea called the Erythraean [i.e. the Red=20 Sea], of which I will here set down the dimensions. Starting = from=20 its innermost recess, and using a row-boat, you take forty days to reach = the=20 open main, while you may cross the gulf at its widest part in the space = of half=20 a day. In this sea there is an ebb and flow of the tide every day. My = opinion is=20 that Egypt was formerly very much such a gulf as this - one gulf = penetrated from=20 the sea that washes Egypt on the north, and extended itself towards = Ethiopia;=20 another entered from the southern ocean, and stretched towards Syria; = the two=20 gulfs ran into the land so as almost to meet each other, and left = between them=20 only a very narrow tract of country. Now if the Nile should choose to = divert his=20 waters from their present bed into this Arabian=20 gulf, what is there to hinder it from being filled up by the = stream=20 within, at the utmost, twenty thousand years? For my part, I think it = would be=20 filled in half the time. How then should not a gulf, even of much = greater size,=20 have been filled up in the ages that passed before I was born, by a = river that=20 is at once so large and so given to working changes? [2.12] Thus I give credit to those from whom I = received this=20 account of Egypt, and am myself, moreover, strongly of the same opinion, = since I=20 remarked that the country projects into the sea further than the = neighbouring=20 shores, and I observed that there were shells upon the hills, and that = salt=20 exuded from the soil to such an extent as even to injure the pyramids; = and I=20 noticed also that there is but a single hill in all Egypt where sand is = found,=20 namely, the hill above Memphis; and further, I found the country to bear = no=20 resemblance either to its borderland Arabia, or to Libya - nay, nor even = to=20 Syria, which forms the seaboard of Arabia; but whereas the soil of Libya = is, we=20 know, sandy and of a reddish hue, and that of Arabia and Syria inclines = to stone=20 and clay, Egypt has a soil that is black and crumbly, as being alluvial = and=20 formed of the deposits brought down by the river from Ethiopia. [2.13] One fact which I learnt of the priests is to = me a=20 strong evidence of the origin of the country. They said that when Moeris = was=20 king, the Nile overflowed all Egypt below Memphis, as soon as it rose so = little=20 as eight cubits. Now Moeris had not been dead 900 years at the time when = I heard=20 this of the priests; yet at the present day, unless the river rise = sixteen, or,=20 at the very least, fifteen cubits, it does not overflow the lands. It = seems to=20 me, therefore, that if the land goes on rising and growing at this rate, = the=20 Egyptians who dwell below Lake Moeris, in the Delta (as it is called) = and=20 elsewhere, will one day, by the stoppage of the inundations, suffer = permanently=20 the fate which they told me they expected would some time or other = befall the=20 Greeks. On hearing that the whole land of Greece is watered by rain from = heaven,=20 and not, like their own, inundated by rivers, they observed - "Some day = the=20 Greeks will be disappointed of their grand hope, and then they will be=20 wretchedly hungry"; which was as much as to say, "If God shall some day = see fit=20 not to grant the Greeks rain, but shall afflict them with a long = drought, the=20 Greeks will be swept away by a famine, since they have nothing to rely = on but=20 rain from Jove, and have no other resource for water." [2.14] And in thus speaking of the Greeks the = Egyptians say=20 nothing but what is true. But now let me tell the Egyptians how the case = stands=20 with themselves. If, as I said before, the country below Memphis, which = is the=20 land that is always rising, continues to increase in height at the rate = at which=20 it has risen in times gone by, how will it be possible for the = inhabitants of=20 that region to avoid hunger, when they will certainly have no rain, and = the=20 river will not be able to overflow their cornlands? At present, it must = be=20 confessed, they obtain the fruits of the field with less trouble than = any other=20 people in the world, the rest of the Egyptians included, since they have = no need=20 to break up the ground with the plough, nor to use the hoe, nor to do = any of the=20 work which the rest of mankind find necessary if they are to get a crop; = but the=20 husbandman waits till the river has of its own accord spread itself over = the=20 fields and withdrawn again to its bed, and then sows his plot of ground, = and=20 after sowing turns his swine into it - the swine tread in the corn - = after which=20 he has only to await the harvest. The swine serve him also to thrash the = grain,=20 which is then carried to the garner. [2.15] If then we choose to adopt the views of the = Ionians=20 concerning Egypt, we must come to the conclusion that the Egyptians had = formerly=20 no country at all. For the Ionians say that nothing is really Egypt but = the=20 Delta, which extends along shore from the Watch-tower of Perseus, as it = is=20 called, to the Pelusiac Salt-Pans, a distance of forty schoenes, and = stretches=20 inland as far as the city of Cercasorus, where the Nile divides into the = two=20 streams which reach the sea at Pelusium and Canobus respectively. The = rest of=20 what is accounted Egypt belongs, they say, either to Arabia or Libya. = But the=20 Delta, as the Egyptians affirm, and as I myself am persuaded, is formed = of the=20 deposits of the river, and has only recently, if I may use the = expression, come=20 to light. If, then, they had formerly no territory at all, how came they = to be=20 so extravagant as to fancy themselves the most ancient race in the = world? Surely=20 there was no need of their making the experiment with the children to = see what=20 language they would first speak. But in truth I do not believe that the=20 Egyptians came into being at the same time with the Delta, as the = Ionians call=20 it; I think they have always existed ever since the human race began; as = the=20 land went on increasing, part of the population came down into the new = country,=20 part remained in their old settlements. In ancient times the Thebais = bore the=20 name of Egypt, a district of which the entire circumference is but 6120=20 furlongs. [2.16] If, then, my judgment on these matters be = right, the=20 Ionians are mistaken in what they say of Egypt.=20 If, on the contrary, it is they who are right, then I undertake to show = that=20 neither the Ionians nor any of the other Greeks know how to count. For = they all=20 say that the earth is divided into three parts, Europe, Asia, and Libya, = whereas=20 they ought to add a fourth part, the Delta of Egypt, since they do not = include=20 it either in Asia or Libya. For is it not their theory that the Nile = separates=20 Asia from Libya? As the Nile, therefore, splits in two at the apex of = the Delta,=20 the Delta itself must be a separate country, not contained in either = Asia or=20 Libya. [2.17] Here I take my leave of the opinions of the = Ionians,=20 and proceed to deliver my own sentiments on these subjects. I consider = Egypt to=20 be the whole country inhabited by the Egyptians, just as Cilicia is the = tract=20 occupied by the Cilicians, and Assyria that possessed by the Assyrians. = And I=20 regard the only proper boundary-line between Libya and Asia to be that = which is=20 marked out by the Egyptian frontier. For if we take the boundary-line = commonly=20 received by the Greeks, we must regard Egypt as divided, along its whole = length=20 from Elephantine and the Cataracts to Cercasorus, into two parts, each = belonging=20 to a different portion of the world, one to Asia, the other to Libya; = since the=20 Nile divides Egypt in two from the Cataracts to the sea, running as far = as the=20 city of Cercasorus in a single stream, but at that point separating into = three=20 branches, whereof the one which bends eastward is called the Pelusiac = mouth, and=20 that which slants to the west, the Canobic. Meanwhile the straight = course of the=20 stream, which comes down from the upper country and meets the apex of = the Delta,=20 continues on, dividing the Delta down the middle, and empties itself = into the=20 sea by a mouth, which is as celebrated, and carries as large a body of = water, as=20 most of the others, the mouth called the Sebennytic. Besides these there = are two=20 other mouths which run out of the Sebennytic called respectively the = Saitic and=20 the Mendesian. The Bolbitine mouth, and the Bucolic, are not natural = branches,=20 but channels made by excavation. [2.18] My judgment as to the extent of Egypt is = confirmed by=20 an oracle delivered at the shrine of Ammon, of which I had no knowledge = at all=20 until after I had formed my opinion. It happened that the people of the = cities=20 Marea and Apis, who live in the part of Egypt that borders on Libya, = took a=20 dislike to the religious usages of the country concerning sacrificial = animals,=20 and wished no longer to be restricted from eating the flesh of cows. So, = as they=20 believed themselves to be Libyans and not Egyptians, they sent to the = shrine to=20 say that, having nothing in common with the Egyptians, neither = inhabiting the=20 Delta nor using the Egyptian tongue, they claimed to be allowed to eat = whatever=20 they pleased. Their request, however, was refused by the god, who = declared in=20 reply that Egypt was the entire tract of country which the Nile = overspreads and=20 irrigates, and the Egyptians were the people who lived below = Elephantine, and=20 drank the waters of that river. [2.19] So said the oracle. Now the Nile, when it = overflows,=20 floods not only the Delta, but also the tracts of country on both sides = the=20 stream which are thought to belong to Libya and Arabia, in some places = reaching=20 to the extent of two days' journey from its banks, in some even = exceeding that=20 distance, but in others falling short of it. Concerning the nature of the river, I was not able = to gain=20 any information either from the priests or from others. I was = particularly=20 anxious to learn from them why the Nile, at the commencement of the = summer=20 solstice, begins to rise, and continues to increase for a hundred days - = and=20 why, as soon as that number is past, it forthwith retires and contracts = its=20 stream, continuing low during the whole of the winter until the summer = solstice=20 comes round again. On none of these points could I obtain any = explanation from=20 the inhabitants, though I made every inquiry, wishing to know what was = commonly=20 reported - they could neither tell me what special virtue the Nile has = which=20 makes it so opposite in its nature to all other streams, nor why, unlike = every=20 other river, it gives forth no breezes from its surface. [2.20] Some of the Greeks, however, wishing to get = a=20 reputation for cleverness, have offered explanations of the phenomena of = the=20 river, for which they have accounted in three different ways. Two of = these I do=20 not think it worth while to speak of, further than simply to mention = what they=20 are. One pretends that the Etesian winds cause the rise of the river by=20 preventing the Nile-water from running off into the sea. But in the = first place=20 it has often happened, when the Etesian winds did not blow, that the = Nile has=20 risen according to its usual wont; and further, if the Etesian winds = produced=20 the effect, the other rivers which flow in a direction opposite to those = winds=20 ought to present the same phenomena as the Nile, and the more so as they = are all=20 smaller streams, and have a weaker current. But these rivers, of which = there are=20 many both in Syria and Libya, are entirely unlike the Nile in this = respect. [2.21] The second opinion is even more unscientific = than the=20 one just mentioned, and also, if I may so say, more marvellous. It is = that the=20 Nile acts so strangely, because it flows from the ocean, and that the = ocean=20 flows all round the earth. [2.22] The third explanation, which is very much = more=20 plausible than either of the others, is positively the furthest from the = truth;=20 for there is really nothing in what it says, any more than in the other=20 theories. It is, that the inundation of the Nile is caused by the melting of snows. Now, as = the Nile=20 flows out of Libya, through Ethiopia, into Egypt, how is it possible = that it can=20 be formed of melted snow, running, as it does, from the hottest regions = of the=20 world into cooler countries? Many are the proofs whereby any one capable = of=20 reasoning on the subject may be convinced that it is most unlikely this = should=20 be the case. The first and strongest argument is furnished by the winds, = which=20 always blow hot from these regions. The second is that rain and frost = are=20 unknown there. Now whenever snow falls, it must of necessity rain within = five=20 days;.so that, if there were snow, there must be rain also in those = parts.=20 Thirdly, it is certain that the natives of the country are black with = the heat,=20 that the kites and the swallows remain there the whole year, and that = the=20 cranes, when they fly from the rigours of a Scythian winter, flock = thither to=20 pass the cold season. If then, in the country whence the Nile has its = source, or=20 in that through which it flows, there fell ever so little snow, it is = absolutely=20 impossible that any of these circumstances could take place. [2.23] As for the writer who attributes the = phenomenon to the=20 ocean, his account is involved in such obscurity that it is impossible = to=20 disprove it by argument. For my part I know of no river called Ocean, = and I=20 think that Homer, or one of the earlier poets, invented the name, and = introduced=20 it into his poetry. [2.24] Perhaps, after censuring all the opinions = that have=20 been put forward on this obscure subject, one ought to propose some = theory of=20 one's own. I will therefore proceed to explain what I think to be the = reason of=20 the Nile's swelling in the summer time. During the winter, the sun is = driven out=20 of his usual course by the storms, and removes to the upper parts of = Libya. This=20 is the whole secret in the fewest possible words; for it stands to = reason that=20 the country to which the Sun-god approaches the nearest, and which he = passes=20 most directly over, will be scantest of water, and that there the = streams which=20 feed the rivers will shrink the most. [2.25] To explain, however, more at length, the = case is this.=20 The sun, in his passage across the upper parts of Libya, affects them in = the=20 following way. As the air in those regions is constantly clear, and the = country=20 warm through the absence of cold winds, the sun in his passage across = them acts=20 upon them exactly as he wont to act elsewhere in summer, when his path = is in the=20 middle of heaven - that is, he attracts the water. After attracting it, = he again=20 repels it into the upper regions, where the winds lay hold of it, = scatter it,=20 and reduce it to a vapour, whence it naturally enough comes to pass that = the=20 winds which blow from this quarter - the south and south-west - are of = all winds=20 the most rainy. And my own opinion is that the sun does not get rid of = all the=20 water which he draws year by year from the Nile, but retains some about = him.=20 When the winter begins to soften, the sun goes back again to his old = place in=20 the middle of the heaven, and proceeds to attract water equally from all = countries. Till then the other rivers run big, from the quantity of = rain-water=20 which they bring down from countries where so much moisture falls that = all the=20 land is cut into gullies; but in summer, when the showers fail, and the = sun=20 attracts their water, they become low. The Nile, on the contrary, not deriving any of its = bulk from=20 rains, and being in winter subject to the attraction of the sun, = naturally runs=20 at that season, unlike all other streams, with a less burden of water = than in=20 the summer time. For in summer it is exposed to attraction equally with = all=20 other rivers, but in winter it suffers alone. The sun, therefore, I = regard as=20 the sole cause of the phenomenon. [2.26] It is the sun also, in my opinion, which, by = heating=20 the space through which it passes, makes the air in Egypt=20 so dry. There is thus perpetual summer in the upper parts of Libya. Were = the=20 position of the heavenly regions reversed, so that the place where now = the north=20 wind and the winter have their dwelling became the station of the south = wind and=20 of the noon-day, while, on the other hand, the station of the south wind = became=20 that of the north, the consequence would be that the sun, driven from = the=20 mid-heaven by the winter and the northern gales, would betake himself to = the=20 upper parts of Europe, as he now does to those of Libya, and then I = believe his=20 passage across Europe would affect the Ister exactly as the Nile is = affected at=20 the present day. [2.27] And with respect to the fact that no breeze = blows from=20 the Nile, I am of opinion that no = wind is=20 likely to arise in very hot countries, for breezes love to blow from = some cold=20 quarter. [2.28] Let us leave these things, however, to their = natural=20 course, to continue as they are and have been from the beginning. With = regard to=20 the sources of the Nile, I have found no one among all those with whom I = have=20 conversed, whether Egyptians, Libyans, or Greeks, who professed to have = any=20 knowledge, except a single person. He was the scribe who kept the = register of=20 the sacred treasures of Minerva in the city of Sais, and he did not seem = to me=20 to be in earnest when he said that he knew them perfectly well. His = story was as=20 follows:- "Between Syene, a city of the Thebais, and Elephantine, there are" (he said) "two hills = with sharp=20 conical tops; the name of the one is Crophi, of the other, Mophi. Midway = between=20 them are the fountains of the Nile, fountains which it is impossible to = fathom.=20 Half the water runs northward into Egypt, half to the south towards = Ethiopia."=20 The fountains were known to be unfathomable, he declared, because = Psammetichus,=20 an Egyptian king, had made trial of them. He had caused a rope to be = made, many=20 thousand fathoms in length, and had sounded the fountain with it, but = could find=20 no bottom. By this the scribe gave me to understand, if there was any = truth at=20 all in what he said, that in this fountain there are certain strong = eddies, and=20 a regurgitation, owing to the force wherewith the water dashes against = the=20 mountains, and hence a Sounding-line cannot be got to reach the bottom = of the=20 spring. [2.29] No other information on this could I obtain = from any=20 quarter. All that I succeeded in learning further of the more distant = portions=20 of the Nile, by ascending myself as high as Elephantine and making = inquiries=20 concerning the parts beyond, was the following:- As one advances beyond=20 Elephantine, the land rises. Hence it = is=20 necessary in this part of the river to attach a rope to the boat on each = side,=20 as men harness an ox, and so proceed on the journey. If the rope snaps, = the=20 vessel is borne away down stream by the force of the current. The = navigation=20 continues the same for four days, the river winding greatly, like the = Maeander,=20 and the distance traversed amounting to twelve schoenes. Here you come = upon a=20 smooth and level plain, where the Nile flows in two branches, round an = island=20 called Tachompso. The country above Elephantine=20 is inhabited by the Ethiopians, who possess one-half of this island, the = Egyptians occupying the other. Above the island there is a great lake, = the=20 shores of which are inhabited by Ethiopian nomads; after passing it, you = come=20 again to the stream of the Nile, which runs into the lake. Here you = land, and=20 travel for forty days along the banks of the river, since it is = impossible to=20 proceed further in a boat on account of the sharp peaks which jut out = from the=20 water, and the sunken rocks which abound in that part of the stream. = When you=20 have passed this portion of the river in the space of forty days, you go = on=20 board another boat and proceed by water for twelve days more, at the end = of=20 which time you reach a great city called Meroe, which is said to be the = capital=20 of the other Ethiopians. The only gods worshipped by the inhabitants are = Jupiter=20 and Bacchus, to whom great honours are paid. There is an oracle of = Jupiter in=20 the city, which directs the warlike expeditions of the Ethiopians; when = it=20 commands they go to war, and in whatever direction it bids them march, = thither=20 straightway they carry their arms. [2.30] On leaving this city, and again mounting the = stream,=20 in the same space of time which it took you to reach the capital from=20 Elephantine, you come to the Deserters, who bear the name of Asmach. = This word,=20 translated into our language, means "the men who stand on the left hand = of the=20 king." These Deserters are Egyptians of the warrior caste, who, to the = number of=20 two hundred and forty thousand, went over to the Ethiopians in the reign = of king=20 Psammetichus. The cause of their desertion was the following:- Three = garrisons=20 were maintained in Egypt at=20 that time, one in the city of Elephantine against the Ethiopians, = another in=20 the Pelusiac Daphnae, against the Syrians and Arabians, and a third, = against the=20 Libyans, in Marea. (The very same posts are to this day occupied by the=20 Persians, whose forces are in garrison both in Daphnae and in = Elephantine.) Now=20 it happened, that on one occasion the garrisons were not relieved during = the=20 space of three years; the soldiers, therefore, at the end of that time,=20 consulted together, and having determined by common consent to revolt, = marched=20 away towards Ethiopia. Psammetichus, informed of the movement, set out = in=20 pursuit, and coming up with them, besought them with many words not to = desert=20 the gods of their country, nor abandon their wives and children. "Nay, = but,"=20 said one of the deserters with an unseemly gesture, "wherever we go, we = are sure=20 enough of finding wives and children." Arrived in Ethiopia, they placed=20 themselves at the disposal of the king. In return, he made them a = present of a=20 tract of land which belonged to certain Ethiopians with whom he was at = feud,=20 bidding them expel the inhabitants and take possession of their = territory. From=20 the time that this settlement was formed, their acquaintance with = Egyptian=20 manners has tended to civilise the Ethiopians. [2.31] Thus the course of the Nile is known, not = only=20 throughout Egypt, but to the extent of four months' journey either by = land or=20 water above the Egyptian boundary; for on calculation it will be found = that it=20 takes that length of time to travel from Elephantine to the country of = the=20 Deserters. There the direction of the river is from west to east. = Beyond, no one=20 has any certain knowledge of its course, since the country is = uninhabited by=20 reason of the excessive heat. [2.32] I did hear, indeed, what I will now relate, = from=20 certain natives of Cyrene. Once upon a time, they said, they were on a = visit to=20 the oracular shrine of Ammon, when it chanced that in the course of = conversation=20 with Etearchus, the Ammonian king, the talk fell upon the Nile, how that = its=20 sources were unknown to all men. Etearchus upon this mentioned that some = Nasamonians had once come to his court, and when asked if they could = give any=20 information concerning the uninhabited parts of Libya, had told the = following=20 tale. (The Nasamonians are a Libyan race who occupy the Syrtis, and a = tract of=20 no great size towards the east.) They said there had grown up among them = some=20 wild young men, the sons of certain chiefs, who, when they came to man's = estate,=20 indulged in all manner of extravagancies, and among other things drew = lots for=20 five of their number to go and explore the desert parts of Libya, and = try if=20 they could not penetrate further than any had done previously. The coast = of=20 Libya along the sea which washes it to the north, throughout its entire = length=20 from Egypt to Cape Soloeis, which is its furthest point, is inhabited by = Libyans=20 of many distinct tribes who possess the whole tract except certain = portions=20 which belong to the Phoenicians and the Greeks. Above the coast-line and = the=20 country inhabited by the maritime tribes, Libya is full of wild beasts; = while=20 beyond the wild beast region there is a tract which is wholly sand, very = scant=20 of water, and utterly and entirely a desert. The young men therefore, = despatched=20 on this errand by their comrades with a plentiful supply of water and=20 provisions, travelled at first through the inhabited region, passing = which they=20 came to the wild beast tract, whence they finally entered upon the = desert, which=20 they proceeded to cross in a direction from east to west. After = journeying for=20 many days over a wide extent of sand, they came at last to a plain where = they=20 observed trees growing; approaching them, and seeing fruit on them, they = proceeded to gather it. While they were thus engaged, there came upon = them some=20 dwarfish men, under the middle height, who seized them and carried them = off. The=20 Nasamonians could not understand a word of their language, nor had they = any=20 acquaintance with the language of the Nasamonians. They were led across=20 extensive marshes, and finally came to a town, where all the men were of = the=20 height of their conductors, and black-complexioned. A great river flowed = by the=20 town, running from west to east, and containing crocodiles. [Although he = was=20 unaware of it, Herodotus actually might have been describing the Niger = River in=20 central Africa, which would have been accessible by caravan routes = through the=20 Sahara desert.] [2.33] Here let me dismiss Etearchus the Ammonian, = and his=20 story, only adding that (according to the Cyrenaeans) he declared that = the=20 Nasamonians got safe back to their country, and that the men whose city = they had=20 reached were a nation of sorcerers. With respect to the river which ran = by their=20 town, Etearchus conjectured it to be the Nile; and reason favours that = view. For=20 the Nile certainly flows out of Libya, dividing it down the middle, and = as I=20 conceive, judging the unknown from the known, rises at the same distance = from=20 its mouth as the Danube. The Danube = river has=20 its source in the country of the Celts near the city Pyrene, and runs = through=20 the middle of Europe, dividing it = into two=20 portions. The Celts live beyond the pillars of Hercules, and border on = the=20 Cynesians, who dwell at the extreme west of Europe. Thus the Danube flows through the whole = of Europe=20 before it finally empties itself into the Euxine at Istria, one of the colonies of the Milesians. = [2.34] Now as this river flows through regions that = are=20 inhabited, its course is perfectly well known; but of the sources of the = Nile no=20 one can give any account, since Libya, the country through which it = passes, is=20 desert and without inhabitants. As far as it was possible to get = information by=20 inquiry, I have given a description of the stream. It enters Egypt from = the=20 parts beyond. Egypt lies almost exactly opposite the mountainous portion = of=20 Cilicia, whence a lightly-equipped traveller may reach Sinope on the = Euxine in=20 five days by the direct route. Sinope lies opposite the place where the=20 Danube falls into the sea. My opinion = therefore=20 is that the Nile, as it traverses the whole of Libya, is of equal length with the = Danube. And here I take my leave of this = subject. [2.35] Concerning Egypt itself I shall extend my = remarks to a=20 great length, because there is no country that possesses so many = wonders, nor=20 any that has such a number of works which defy description. Not only is = the=20 climate different from that of the rest of the world, and the rivers = unlike any=20 other rivers, but the people also, in most of their manners and customs, = exactly=20 reverse the common practice of mankind. The women attend the markets and = trade,=20 while the men sit at home at the loom; and here, while the rest of the = world=20 works the woof up the warp, the Egyptians work it down; the women = likewise carry=20 burdens upon their shoulders, while the men carry them upon their heads. = They=20 eat their food out of doors in the streets, but retire for private = purposes to=20 their houses, giving as a reason that what is unseemly, but necessary, = ought to=20 be done in secret, but what has nothing unseemly about it, should be = done=20 openly. A woman cannot serve the priestly office, either for god or = goddess, but=20 men are priests to both; sons need not support their parents unless they = choose,=20 but daughters must, whether they choose or no. [2.36] In other countries the priests have long = hair, in=20 Egypt their heads are shaven; elsewhere it is customary, in mourning, = for near=20 relations to cut their hair close: the Egyptians, who wear no hair at = any other=20 time, when they lose a relative, let their beards and the hair of their = heads=20 grow long. All other men pass their lives separate from animals, the = Egyptians=20 have animals always living with them; others make barley and wheat their = food;=20 it is a disgrace to do so in Egypt, where the grain they live on is = spelt, which=20 some call zea. Dough they knead with their feet; but they mix mud, and = even take=20 up dirt, with their hands. They are the only people in the world- they = at least,=20 and such as have learnt the practice from them - who use circumcision. = Their men=20 wear two garments apiece, their women but one. They put on the rings and = fasten=20 the ropes to sails inside; others put them outside. When they write or=20 calculate, instead of going, like the Greeks, from left to right, they = move=20 their hand from right to left; and they insist, notwithstanding, that it = is they=20 who go to the right, and the Greeks who go to the left. They have two = quite=20 different kinds of writing, one of which is called sacred, the other = common.=20 [2.37] They are religious to excess, far beyond any = other=20 race of men, and use the following ceremonies:- They drink out of brazen = cups,=20 which they scour every day: there is no exception to this practice. They = wear=20 linen garments, which they are specially careful to have always fresh = washed.=20 They practise circumcision for the sake of cleanliness, considering it = better to=20 be cleanly than comely. The priests shave their whole body every other = day, that=20 no lice or other impure thing may adhere to them when they are engaged = in the=20 service of the gods. Their dress is entirely of linen, and their shoes = of the=20 papyrus plant: it is not lawful for them to wear either dress or shoes = of any=20 other material. They bathe twice every day in cold water, and twice each = night;=20 besides which they observe, so to speak, thousands of ceremonies. They = enjoy,=20 however, not a few advantages. They consume none of their own property, = and are=20 at no expense for anything; but every day bread is baked for them of the = sacred=20 grain, and a plentiful supply of beef and of goose's flesh is assigned = to each,=20 and also a portion of wine made from the grape. Fish they are not = allowed to=20 eat; and beans - which none of the Egyptians ever sow, or eat, if they = come up=20 of their own accord, either raw or boiled - the priests will not even = endure to=20 look on, since they consider it an unclean kind of pulse. Instead of a = single=20 priest, each god has the attendance of a college, at the head of which = is a=20 chief priest; when one of these dies, his son is appointed in his room. = [2.38] Male cattle are reckoned to belong to = Epaphus, and are=20 therefore tested in the following manner:- One of the priests appointed = for the=20 purpose searches to see if there is a single black hair on the whole = body, since=20 in that case the beast is unclean. He examines him all over, standing on = his=20 legs, and again laid upon his back; after which he takes the tongue out = of his=20 mouth, to see if it be clean in respect of the prescribed marks (what = they are I=20 will mention elsewhere); he also inspects the hairs of the tail, to = observe if=20 they grow naturally. If the animal is pronounced clean in all these = various=20 points, the priest marks him by twisting a piece of papyrus round his = horns, and=20 attaching thereto some sealing-clay, which he then stamps with his own=20 signet-ring. After this the beast is led away; and it is forbidden, = under the=20 penalty of death, to sacrifice an animal which has not been marked in = this way.=20 [2.39] The following is their manner of sacrifice:- = They lead=20 the victim, marked with their signet, to the altar where they are about = to offer=20 it, and setting the wood alight, pour a libation of wine upon the altar = in front=20 of the victim, and at the same time invoke the god. Then they slay the = animal,=20 and cutting off his head, proceed to flay the body. Next they take the = head, and=20 heaping imprecations on it, if there is a market-place and a body of = Greek=20 traders in the city, they carry it there and sell it instantly; if, = however,=20 there are no Greeks among them, they throw the head into the river. The=20 imprecation is to this effect:- They pray that if any evil is impending = either=20 over those who sacrifice, or over universal Egypt,=20 it may be made to fall upon that head. These practices, the imprecations = upon=20 the heads, and the libations of wine, prevail all over Egypt, and extend = to=20 victims of all sorts; and hence the Egyptians will never eat the head of = any=20 animal. [2.40] The disembowelling and burning are, however, = different=20 in different sacrifices. I will mention the mode in use with respect to = the=20 goddess whom they regard as the greatest, and honour with the chiefest = festival.=20 When they have flayed their steer they pray, and when their prayer is = ended they=20 take the paunch of the animal out entire, leaving the intestines and the = fat=20 inside the body; they then cut off the legs, the ends of the loins, the=20 shoulders, and the neck; and having so done, they fill the body of the = steer=20 with clean bread, honey, raisins, figs, frankincense, myrrh, and other=20 aromatics. Thus filled, they burn the body, pouring over it great = quantities of=20 oil. Before offering the sacrifice they fast, and while the bodies of = the=20 victims are being consumed they beat themselves. Afterwards, when they = have=20 concluded this part of the ceremony, they have the other parts of the = victim=20 served up to them for a repast. On Scythians: [4.2] Now the Scythians blind all their slaves, to = use them=20 in preparing their milk. The plan they follow is to thrust tubes made of = bone,=20 not unlike our musical pipes, up the vulva of the mare, and then to blow = into=20 the tubes with their mouths, some milking while the others blow. They = say that=20 they do this because when the veins of the animal are full of air, the = udder is=20 forced down. The milk thus obtained is poured into deep wooden casks, = about=20 which the blind slaves are placed, and then the milk is stirred round. = That=20 which rises to the top is drawn off, and considered the best part; the = under=20 portion is of less account. Such is the reason why the Scythians blind = all those=20 whom they take in war; it arises from their not being tillers of the = ground, but=20 a pastoral race. [4.59] Thus abundantly are the Scythians provided = with the=20 most important necessaries. Their manners and customs come now to be = described.=20 They worship only the following gods, namely, Vesta, whom they reverence = beyond=20 all the rest, Jupiter, and Tellus, whom they consider to be the wife of = Jupiter;=20 and after these Apollo, Celestial Venus, Hercules, and Mars. These gods = are=20 worshipped by the whole nation: the Royal Scythians offer sacrifice = likewise to=20 Neptune. In the Scythic tongue Vesta is called Tabiti, Jupiter (very = properly,=20 in my judgment) Papaeus, Tellus Apia, Apollo Oetosyrus, Celestial Venus=20 Artimpasa, and Neptune Thamimasadas. They use no images, altars, or = temples,=20 except in the worship of Mars; but in his worship they do use them. [4.60] The manner of their sacrifices is everywhere = and in=20 every case the same; the victim stands with its two fore-feet bound = together by=20 a cord, and the person who is about to offer, taking his station behind = the=20 victim, gives the rope a pull, and thereby throws the animal down; as it = falls=20 he invokes the god to whom he is offering; after which he puts a noose = round the=20 animal's neck, and, inserting a small stick, twists it round, and so = strangles=20 him. No fire is lighted, there is no consecration, and no pouring out of = drink-offerings; but directly after the beast is strangled the = sacrificer flays=20 him, and then sets to work to boil the flesh. [4.61] As Scythia, however, is utterly barren of = firewood, a=20 plan has had to be contrived for boiling the flesh, which is the = following.=20 After flaying the beasts, they take out all the bones, and (if they = possess such=20 gear) put the flesh into boilers made in the country, which are very = like the=20 cauldrons of the Lesbians, except that they are of a much larger size; = then=20 placing the bones of the animals beneath the cauldron, they set them = alight, and=20 so boil the meat. If they do not happen to possess a cauldron, they make = the=20 animal's paunch hold the flesh, and pouring in at the same time a little = water,=20 lay the bones under and light them. The bones burn beautifully; and the = paunch=20 easily contains all the flesh when it is stript from the bones, so that = by this=20 plan your ox is made to boil himself, and other victims also to do the = like.=20 When the meat is all cooked, the sacrificer offers a portion of the = flesh and of=20 the entrails, by casting it on the ground before him. They sacrifice all = sorts=20 of cattle, but most commonly horses. [4.62] Such are the victims offered to the other = gods, and=20 such is the mode in which they are sacrificed; but the rites paid to = Mars are=20 different. In every district, at the seat of government, there stands a = temple=20 of this god, whereof the following is a description. It is a pile of = brushwood,=20 made of a vast quantity of fagots, in length and breadth three furlongs; = in=20 height somewhat less, having a square platform upon the top, three sides = of=20 which are precipitous, while the fourth slopes so that men may walk up = it. Each=20 year a hundred and fifty wagon-loads of brushwood are added to the pile, = which=20 sinks continually by reason of the rains. An antique iron sword is = planted on=20 the top of every such mound, and serves as the image of Mars: yearly = sacrifices=20 of cattle and of horses are made to it, and more victims are offered = thus than=20 to all the rest of their gods. When prisoners are taken in war, out of = every=20 hundred men they sacrifice one, not however with the same rites as the = cattle,=20 but with different. Libations of wine are first poured upon their heads, = after=20 which they are slaughtered over a vessel; the vessel is then carried up = to the=20 top of the pile, and the blood poured upon the scimitar. While this = takes place=20 at the top of the mound, below, by the side of the temple, the right = hands and=20 arms of the slaughtered prisoners are cut off, and tossed on high into = the air.=20 Then the other victims are slain, and those who have offered the = sacrifice=20 depart, leaving the hands and arms where they may chance to have fallen, = and the=20 bodies also, separate. [4.63] Such are the observances of the Scythians = with respect=20 to sacrifice. They never use swine for the purpose, nor indeed is it = their wont=20 to breed them in any part of their country. [4.64] In what concerns war, their customs are the = following.=20 The Scythian soldier drinks the blood of the first man he overthrows in = battle.=20 Whatever number he slays, he cuts off all their heads, and carries them = to the=20 king; since he is thus entitled to a share of the booty, whereto he = forfeits all=20 claim if he does not produce a head. In order to strip the skull of its=20 covering, he makes a cut round the head above the ears, and, laying hold = of the=20 scalp, shakes the skull out; then with the rib of an ox he scrapes the = scalp=20 clean of flesh, and softening it by rubbing between the hands, uses it=20 thenceforth as a napkin. The Scyth is proud of these scalps, and hangs = them from=20 his bridle-rein; the greater the number of such napkins that a man can = show, the=20 more highly is he esteemed among them. Many make themselves cloaks, like = the=20 capotes of our peasants, by sewing a quantity of these scalps together. = Others=20 flay the right arms of their dead enemies, and make of the skin, which = stripped=20 off with the nails hanging to it, a covering for their quivers. Now the = skin of=20 a man is thick and glossy, and would in whiteness surpass almost all = other=20 hides. Some even flay the entire body of their enemy, and stretching it = upon a=20 frame carry it about with them wherever they ride. Such are the Scythian = customs=20 with respect to scalps and skins. [4.70] Oaths among the Scyths are accompanied with = the=20 following ceremonies: a large earthen bowl is filled with wine, and the = parties=20 to the oath, wounding themselves slightly with a knife or an awl, drop = some of=20 their blood into the wine; then they plunge into the mixture a scimitar, = some=20 arrows, a battle-axe, and a javelin, all the while repeating prayers; = lastly the=20 two contracting parties drink each a draught from the bowl, as do also = the chief=20 men among their followers. [4.71] The tombs of their kings are in the land of = the=20 Gerrhi, who dwell at the point where the Borysthenes is first navigable. = Here,=20 when the king dies, they dig a grave, which is square in shape, and of = great=20 size. When it is ready, they take the king's corpse, and, having opened = the=20 belly, and cleaned out the inside, fill the cavity with a preparation of = chopped=20 cypress, frankincense, parsley-seed, and anise-seed, after which they = sew up the=20 opening, enclose the body in wax, and, placing it on a wagon, carry it = about=20 through all the different tribes. On this procession each tribe, when it = receives the corpse, imitates the example which is first set by the = Royal=20 Scythians; every man chops off a piece of his ear, crops his hair close, = and=20 makes a cut all round his arm, lacerates his forehead and his nose, and = thrusts=20 an arrow through his left hand. Then they who have the care of the = corpse carry=20 it with them to another of the tribes which are under the Scythian rule, = followed by those whom they first visited. On completing the circuit of = all the=20 tribes under their sway, they find themselves in the country of the = Gerrhi, who=20 are the most remote of all, and so they come to the tombs of the kings. = There=20 the body of the dead king is laid in the grave prepared for it, = stretched upon a=20 mattress; spears are fixed in the ground on either side of the corpse, = and beams=20 stretched across above it to form a roof, which is covered with a = thatching of=20 osier twigs. In the open space around the body of the king they bury one = of his=20 concubines, first killing her by strangling, and also his cup-bearer, = his cook,=20 his groom, his lacquey, his messenger, some of his horses, firstlings of = all his=20 other possessions, and some golden cups; for they use neither silver nor = brass.=20 After this they set to work, and raise a vast mound above the grave, all = of them=20 vying with each other and seeking to make it as tall as possible. [4.72] When a year is gone by, further ceremonies = take place.=20 Fifty of the best of the late king's attendants are taken, all native = Scythians=20 - for, as bought slaves are unknown in the country, the Scythian kings = choose=20 any of their subjects that they like, to wait on them - fifty of these = are taken=20 and strangled, with fifty of the most beautiful horses. When they are = dead,=20 their bowels are taken out, and the cavity cleaned, filled full of = chaff, and=20 straightway sewn up again. This done, a number of posts are driven into = the=20 ground, in sets of two pairs each, and on every pair half the felly of a = wheel=20 is placed archwise; then strong stakes are run lengthways through the = bodies of=20 the horses from tail to neck, and they are mounted up upon the fellies, = so that=20 the felly in front supports the shoulders of the horse, while that = behind=20 sustains the belly and quarters, the legs dangling in mid-air; each = horse is=20 furnished with a bit and bridle, which latter is stretched out in front = of the=20 horse, and fastened to a peg. The fifty strangled youths are then = mounted=20 severally on the fifty horses. To effect this, a second stake is passed = through=20 their bodies along the course of the spine to the neck; the lower end of = which=20 projects from the body, and is fixed into a socket, made in the stake = that runs=20 lengthwise down the horse. The fifty riders are thus ranged in a circle = round=20 the tomb, and so left. [4.73] Such, then, is the mode in which the kings = are buried:=20 as for the people, when any one dies, his nearest of kin lay him upon a = wagon=20 and take him round to all his friends in succession: each receives them = in turn=20 and entertains them with a banquet, whereat the dead man is served with = a=20 portion of all that is set before the others; this is done for forty = days, at=20 the end of which time the burial takes place. After the burial, those = engaged in=20 it have to purify themselves, which they do in the following way. First = they=20 well soap and wash their heads; then, in order to cleanse their bodies, = they act=20 as follows: they make a booth by fixing in the ground three sticks = inclined=20 towards one another, and stretching around them woolen felts, which they = arrange=20 so as to fit as close as possible: inside the booth a dish is placed = upon the=20 ground, into which they put a number of red-hot stones, and then add = some=20 hemp-seed. [4.74] Hemp grows in Scythia: it is very like flax; = only that=20 it is a much coarser and taller plant: some grows wild about the = country, some=20 is produced by cultivation: the Thracians make garments of it which = closely=20 resemble linen; so much so, indeed, that if a person has never seen hemp = he is=20 sure to think they are linen, and if he has, unless he is very = experienced in=20 such matters, he will not know of which material they are. [4.75] The Scythians, as I said, take some of this = hemp-seed,=20 and, creeping under the felt coverings, throw it upon the red-hot = stones;=20 immediately it smokes, and gives out such a vapour as no Grecian = vapour-bath can=20 exceed; the Scyths, delighted, shout for joy, and this vapour serves = them=20 instead of a water-bath; for they never by any chance wash their bodies = with=20 water. Their women make a mixture of cypress, cedar, and frankincense = wood,=20 which they pound into a paste upon a rough piece of stone, adding a = little water=20 to it. With this substance, which is of a thick consistency, they = plaster their=20 faces all over, and indeed their whole bodies. A sweet odour is thereby = imparted=20 to them, and when they take off the plaster on the day following, their = skin is=20 clean and glossy. ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/blackboard/content/contentWrapper.jsp?attachment=true&navItem=content&content_id=_2356318_1&displayName=Herodotus&course_id=_702465_1&href=/courses/1/HIS_1000_0909_001/content/_2356318_1/Herodotus.htm ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/javascript/date.js?v=9.0.440.7 // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D // Author: Matt Kruse // WWW: http://www.mattkruse.com/ // // NOTICE: You may use this code for any purpose, commercial or // private, without any further permission from the author. You may // remove this notice from your final code if you wish, however it is // appreciated by the author if at least my web site address is kept. // // You may *NOT* re-distribute this code in any way except through its // use. That means, you can include it in your product, or your web // site, or any other form where the code is actually being used. You // may not put the plain javascript up on your site for download or // include it in your javascript libraries for download.=20 // If you wish to share this code with others, please just point them // to the URL instead. // Please DO NOT link directly to my .js files from your site. Copy // the files to your server and use them there. Thank you. // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D // HISTORY // ------------------------------------------------------------------ // May 17, 2003: Fixed bug in parseDate() for dates <1970 // March 11, 2003: Added parseDate() function // March 11, 2003: Added "NNN" formatting option. Doesn't match up // perfectly with SimpleDateFormat formats, but=20 // backwards-compatability was required. // ------------------------------------------------------------------ // These functions use the same 'format' strings as the=20 // java.text.SimpleDateFormat class, with minor exceptions. // The format string consists of the following abbreviations: //=20 // Field | Full Form | Short Form // -------------+--------------------+----------------------- // Year | yyyy (4 digits) | yy (2 digits), y (2 or 4 digits) // Month | MMM (name or abbr.)| MM (2 digits), M (1 or 2 digits) // | NNN (abbr.) | // Day of Month | dd (2 digits) | d (1 or 2 digits) // Day of Week | EE (name) | E (abbr) // Hour (1-12) | hh (2 digits) | h (1 or 2 digits) // Hour (0-23) | HH (2 digits) | H (1 or 2 digits) // Hour (0-11) | KK (2 digits) | K (1 or 2 digits) // Hour (1-24) | kk (2 digits) | k (1 or 2 digits) // Minute | mm (2 digits) | m (1 or 2 digits) // Second | ss (2 digits) | s (1 or 2 digits) // AM/PM | a | // // NOTE THE DIFFERENCE BETWEEN MM and mm! Month=3DMM, not mm! // Examples: // "MMM d, y" matches: January 01, 2000 // Dec 1, 1900 // Nov 20, 00 // "M/d/yy" matches: 01/20/00 // 9/2/00 // "MMM dd, yyyy hh:mm:ssa" matches: "January 01, 2000 12:30:45AM" // ------------------------------------------------------------------ var MONTH_NAMES=3Dnew = Array('January','February','March','April','May','June','July','August','= September','October','November','December','Jan','Feb','Mar','Apr','May',= 'Jun','Jul','Aug','Sep','Oct','Nov','Dec'); var DAY_NAMES=3Dnew = Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturd= ay','Sun','Mon','Tue','Wed','Thu','Fri','Sat'); function LZ(x) {return(x<0||x>9?"":"0")+x} // ------------------------------------------------------------------ // isDate ( date_string, format_string ) // Returns true if date string matches format of format string and // is a valid date. Else returns false. // It is recommended that you trim whitespace around the value before // passing it to this function, as whitespace is NOT ignored! // ------------------------------------------------------------------ function isDate(val,format) { var date=3DgetDateFromFormat(val,format); if (date=3D=3D0) { return false; } return true; } // ------------------------------------------------------------------- // compareDates(date1,date1format,date2,date2format) // Compare two date strings to see which is greater. // Returns: // 1 if date1 is greater than date2 // 0 if date2 is greater than date1 of if they are the same // -1 if either of the dates is in an invalid format // ------------------------------------------------------------------- function compareDates(date1,dateformat1,date2,dateformat2) { var d1=3DgetDateFromFormat(date1,dateformat1); var d2=3DgetDateFromFormat(date2,dateformat2); if (d1=3D=3D0 || d2=3D=3D0) { return -1; } else if (d1 > d2) { return 1; } return 0; } // ------------------------------------------------------------------ // formatDate (date_object, format) // Returns a date in the output format specified. // The format string uses the same abbreviations as in = getDateFromFormat() // ------------------------------------------------------------------ function formatDate(date,format) { format=3Dformat+""; var result=3D""; var i_format=3D0; var c=3D""; var token=3D""; var y=3Ddate.getYear()+""; var M=3Ddate.getMonth()+1; var d=3Ddate.getDate(); var E=3Ddate.getDay(); var H=3Ddate.getHours(); var m=3Ddate.getMinutes(); var s=3Ddate.getSeconds(); var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k; // Convert real date parts into formatted versions var value=3Dnew Object(); if (y.length < 4) {y=3D""+(y-0+1900);} value["y"]=3D""+y; value["yyyy"]=3Dy; value["yy"]=3Dy.substring(2,4); value["M"]=3DM; value["MM"]=3DLZ(M); value["MMM"]=3DMONTH_NAMES[M-1]; value["NNN"]=3DMONTH_NAMES[M+11]; value["d"]=3Dd; value["dd"]=3DLZ(d); value["E"]=3DDAY_NAMES[E+7]; value["EE"]=3DDAY_NAMES[E]; value["H"]=3DH; value["HH"]=3DLZ(H); if (H=3D=3D0){value["h"]=3D12;} else if (H>12){value["h"]=3DH-12;} else {value["h"]=3DH;} value["hh"]=3DLZ(value["h"]); if (H>11){value["K"]=3DH-12;} else {value["K"]=3DH;} value["k"]=3DH+1; value["KK"]=3DLZ(value["K"]); value["kk"]=3DLZ(value["k"]); if (H > 11) { value["a"]=3D"PM"; } else { value["a"]=3D"AM"; } value["m"]=3Dm; value["mm"]=3DLZ(m); value["s"]=3Ds; value["ss"]=3DLZ(s); while (i_format < format.length) { c=3Dformat.charAt(i_format); token=3D""; while ((format.charAt(i_format)=3D=3Dc) && (i_format < format.length)) = { token +=3D format.charAt(i_format++); } if (value[token] !=3D null) { result=3Dresult + value[token]; } else { result=3Dresult + token; } } return result; } =09 // ------------------------------------------------------------------ // Utility functions for parsing in getDateFromFormat() // ------------------------------------------------------------------ function _isInteger(val) { var digits=3D"1234567890"; for (var i=3D0; i < val.length; i++) { if (digits.indexOf(val.charAt(i))=3D=3D-1) { return false; } } return true; } function _getInt(str,i,minlength,maxlength) { for (var x=3Dmaxlength; x>=3Dminlength; x--) { var token=3Dstr.substring(i,i+x); if (token.length < minlength) { return null; } if (_isInteger(token)) { return token; } } return null; } =09 // ------------------------------------------------------------------ // getDateFromFormat( date_string , format_string ) // // This function takes a date string and a format string. It matches // If the date string matches the format string, it returns the=20 // getTime() of the date. If it does not match, it returns 0. // ------------------------------------------------------------------ function getDateFromFormat(val,format) { val=3Dval+""; format=3Dformat+""; var i_val=3D0; var i_format=3D0; var c=3D""; var token=3D""; var token2=3D""; var x,y; var now=3Dnew Date(); var year=3Dnow.getYear(); var month=3Dnow.getMonth()+1; var date=3D1; var hh=3Dnow.getHours(); var mm=3Dnow.getMinutes(); var ss=3Dnow.getSeconds(); var ampm=3D""; =09 while (i_format < format.length) { // Get next token from format string c=3Dformat.charAt(i_format); token=3D""; while ((format.charAt(i_format)=3D=3Dc) && (i_format < format.length)) = { token +=3D format.charAt(i_format++); } // Extract contents of value based on format token if (token=3D=3D"yyyy" || token=3D=3D"yy" || token=3D=3D"y") { if (token=3D=3D"yyyy") { x=3D4;y=3D4; } if (token=3D=3D"yy") { x=3D2;y=3D2; } if (token=3D=3D"y") { x=3D2;y=3D4; } year=3D_getInt(val,i_val,x,y); if (year=3D=3Dnull) { return 0; } i_val +=3D year.length; if (year.length=3D=3D2) { if (year > 70) { year=3D1900+(year-0); } else { year=3D2000+(year-0); } } } else if (token=3D=3D"MMM"||token=3D=3D"NNN"){ month=3D0; for (var i=3D0; i11)) { month=3Di+1; if (month>12) { month -=3D 12; } i_val +=3D month_name.length; break; } } } if ((month < 1)||(month>12)){return 0;} } else if (token=3D=3D"EE"||token=3D=3D"E"){ for (var i=3D0; i12)){return 0;} i_val+=3Dmonth.length;} else if (token=3D=3D"dd"||token=3D=3D"d") { date=3D_getInt(val,i_val,token.length,2); if(date=3D=3Dnull||(date<1)||(date>31)){return 0;} i_val+=3Ddate.length;} else if (token=3D=3D"hh"||token=3D=3D"h") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<1)||(hh>12)){return 0;} i_val+=3Dhh.length;} else if (token=3D=3D"HH"||token=3D=3D"H") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<0)||(hh>23)){return 0;} i_val+=3Dhh.length;} else if (token=3D=3D"KK"||token=3D=3D"K") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<0)||(hh>11)){return 0;} i_val+=3Dhh.length;} else if (token=3D=3D"kk"||token=3D=3D"k") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<1)||(hh>24)){return 0;} i_val+=3Dhh.length;hh--;} else if (token=3D=3D"mm"||token=3D=3D"m") { mm=3D_getInt(val,i_val,token.length,2); if(mm=3D=3Dnull||(mm<0)||(mm>59)){return 0;} i_val+=3Dmm.length;} else if (token=3D=3D"ss"||token=3D=3D"s") { ss=3D_getInt(val,i_val,token.length,2); if(ss=3D=3Dnull||(ss<0)||(ss>59)){return 0;} i_val+=3Dss.length;} else if (token=3D=3D"a") { if (val.substring(i_val,i_val+2).toLowerCase()=3D=3D"am") = {ampm=3D"AM";} else if (val.substring(i_val,i_val+2).toLowerCase()=3D=3D"pm") = {ampm=3D"PM";} else {return 0;} i_val+=3D2;} else { if (val.substring(i_val,i_val+token.length)!=3Dtoken) {return 0;} else {i_val+=3Dtoken.length;} } } // If there are any trailing characters left in the value, it doesn't = match if (i_val !=3D val.length) { return 0; } // Is date valid for month? if (month=3D=3D2) { // Check for leap year if ( ( (year%4=3D=3D0)&&(year%100 !=3D 0) ) || (year%400=3D=3D0) ) { = // leap year if (date > 29){ return 0; } } else { if (date > 28) { return 0; } } } if ((month=3D=3D4)||(month=3D=3D6)||(month=3D=3D9)||(month=3D=3D11)) { if (date > 30) { return 0; } } // Correct hours value if (hh<12 && ampm=3D=3D"PM") { hh=3Dhh-0+12; } else if (hh>11 && ampm=3D=3D"AM") { hh-=3D12; } var newdate=3Dnew Date(year,month-1,date,hh,mm,ss); return newdate.getTime(); } // ------------------------------------------------------------------ // parseDate( date_string [, prefer_euro_format] ) // // This function takes a date string and tries to match it to a // number of possible date formats to get the value. It will try to // match against the following international formats, in this order: // y-M-d MMM d, y MMM d,y y-MMM-d d-MMM-y MMM d // M/d/y M-d-y M.d.y MMM-d M/d M-d // d/M/y d-M-y d.M.y d-MMM d/M d-M // A second argument may be passed to instruct the method to search // for formats like d/M/y (european format) before M/d/y (American). // Returns a Date object or null if no patterns match. // ------------------------------------------------------------------ function parseDate(val) { var preferEuro=3D(arguments.length=3D=3D2)?arguments[1]:false; generalFormats=3Dnew Array('y-M-d','MMM d, y','MMM = d,y','y-MMM-d','d-MMM-y','MMM d'); monthFirst=3Dnew Array('M/d/y','M-d-y','M.d.y','MMM-d','M/d','M-d'); dateFirst =3Dnew Array('d/M/y','d-M-y','d.M.y','d-MMM','d/M','d-M'); var checkList=3Dnew = Array('generalFormats',preferEuro?'dateFirst':'monthFirst',preferEuro?'mo= nthFirst':'dateFirst'); var d=3Dnull; for (var i=3D0; i 0 ) { oneRowHeight =3D = this.table.rows[this.table.rows.length-1].offsetHeight + 1 /*border = spacing*/; } //need to account for the wider header row var h =3D Math.max(this.options.tableHeight, ( ( = this.model.getMinimumRows() + 1 ) * oneRowHeight + 10 ) ); h =3D Math.min( h, this.table.offsetHeight+19 ); var w =3D Math.min(this.options.tableWidth, = this.table.offsetWidth+19); contDiv.style.height =3D h + "px"; contDiv.style.width =3D w + "px"; contDiv.style.overflow =3D "auto"; }, _initializeHTML: function() { this._sizeHTMLTable(); // wrap table with a new container div: relative see IE7 bug: = http://rowanw.com/bugs/overflow_relative.htm this.table.insert({before: ""}); this.table.previousSibling.appendChild(this.table); if (this.options.accessibleMode) { this.setAccessibleViewportSize( ); return; } // wrap table with a new viewport div this.table.insert({before: ""}); this.table.previousSibling.appendChild(this.table); var viewportDiv =3D $(this.tableId+'_viewport'); viewportDiv.style.height =3D (this.table.offsetHeight) + "px"; viewportDiv.style.overflow =3D "hidden"; =09 // add controllers to table cells var tableHeader =3D $(this.table.id + '_header'); if (tableHeader) { var numHCols =3D tableHeader.rows[0].cells.length; for (var c =3D 0; c < numHCols; c++) { new Gradebook.CellController(tableHeader.rows[0].cells[c], = this, 0, c, true); } } var numRows =3D this.table.rows.length; for (var r =3D 0; r < numRows; r++) { var numCols =3D this.table.rows[0].cells.length; for (var c =3D 0; c < numCols; c++) { var cell =3D this.table.rows[r].cells[c]; new Gradebook.CellController(cell, this, r, c, false); } } if (document.onClickHandler){ Event.stopObserving(document,'click',document.onClickHandler); } document.onClickHandler =3D = this.onDocumentClickHandler.bindAsEventListener(this); Event.observe(document,'click',document.onClickHandler); =09 if (document.onKeydownHandler){ Event.stopObserving(document,'keydown',document.onKeydownHandler); } document.onKeydownHandler =3D = this.onDocumentKeyDownHandler.bindAsEventListener(this); Event.observe(document,'keydown',document.onKeydownHandler); }, unload: function() { Gradebook.CellController.prototype.removeAllSavingDivs(); var numRows =3D this.table.rows.length; for (var r =3D 0; r < numRows; r++){ var numCols =3D this.table.rows[0].cells.length; for (var c =3D 0; c < numCols; c++){ var cell =3D this.table.rows[r].cells[c]; if (cell.controller) { cell.controller.unload(); } } } var tableHeader =3D $(this.table.id + '_header'); if (tableHeader){ var numHCols =3D tableHeader.rows[0].cells.length; for (var c =3D 0; c < numHCols; c++){ var cell =3D tableHeader.rows[0].cells[c]; if (cell.controller) { cell.controller.unload(); } } } if (this.viewPort) this.viewPort.unload(); this.model.removeModelListeners(); this.table =3D null; this.model =3D null; this.viewPort =3D null; this.options =3D null; this.sortCell =3D null; }, _sizeHTMLTable: function() { var tbl =3D this.table; var tableHeader =3D $(this.table.id + '_header'); var numRows =3D 0; var numCols =3D 0; =20 var numFrozenColumns =3D this.options.numFrozenColumns; // presence of th impacts the calculation of the row height // so we remove it before the calculation occurs if (numFrozenColumns =3D=3D 0){ for (var i=3D0; i=3D numCols){ numFrozenColumns =3D numCols-1; this.options.numFrozenColumns =3D numFrozenColumns; } =09 // assumes the table has at least 1 row & 2 cols // the first column is a frozen column // the second column is a non-frozen column // clone frozen columns for (var i =3D 0; i < numFrozenColumns-1; i++){ this._cloneColumn(1); // skip check box column } // clone non-frozen columns var numNonFrozenColumns =3D numCols - numFrozenColumns - 1; for (var i =3D 0; i < numNonFrozenColumns; i++){ this._cloneColumn(numFrozenColumns+1); // skip check box column } =09 var checkColumnWidth =3D this.table.rows[0].cells[0].offsetWidth; var visibleWidth =3D this.table.offsetWidth; this.avgColWidth =3D (visibleWidth - checkColumnWidth)/numCols; var frozenWidth =3D (numFrozenColumns * this.avgColWidth) + = checkColumnWidth; $("selectedRows").style.width=3Dthis.isIE?frozenWidth + "px": = frozenWidth-2 +"px"; =09 =09 // clone rows var numRowsToAdd =3D numRows - tbl.rows.length; if (tableHeader) numRowsToAdd--; =09 var rowToClone =3D tbl.rows[this.table.rows.length-1]; for (var i =3D 0; i < numRowsToAdd; i++){ tbl.tBodies[0].appendChild(rowToClone.cloneNode(true)); } // remove table rows if html table is bigger than numRows while (tbl.rows.length > numRows){ if (tbl.rows.length > 0) tbl.deleteRow(tbl.rows.length - 1); } // remove table columns if html table is bigger than model var allRows =3D tbl.rows;=09 while (tbl.rows.length > 0 && tbl.rows[0].cells.length-1 > = this.model.getNumColDefs()){ for (var i=3D0; i 1) { allRows[i].deleteCell(-1); } } } while (tableHeader && tableHeader.rows[0].cells.length-1 > = this.model.getNumColDefs()){ tableHeader.rows[0].deleteCell(-1); } }, _cloneColumn: function(colIndex){ var tbl =3D this.table; for (var i =3D 0; i < tbl.rows.length; i++) { var origCell =3D tbl.rows[i].cells[colIndex];=20 var newCell =3D origCell.cloneNode(true); tbl.rows[i].insertBefore(newCell,origCell); } var tableHeader =3D $(this.table.id + '_header'); if (tableHeader){ var tbl =3D tableHeader; for (var i =3D 0; i < tbl.rows.length; i++) { var origCell =3D tbl.rows[i].cells[colIndex];=20 var newCell =3D origCell.cloneNode(true); tbl.rows[i].insertBefore(newCell,origCell); } } }, =20 _setAccessibilityHeaders: function(){ if (!this.options.accessibleMode){ return; } var tbl =3D this.table; // add abbr attributes to all header cells var hdrRow =3D tbl.rows[0]; for ( var i =3D 1; i < hdrRow.cells.length; i++ ) { var cell =3D hdrRow.cells[i]; cell.abbr =3D cell.controller.getGridCell().getName(); } tbl.rows[0].cells[0].abbr =3D " "; var abbrColIndexs =3D this.getAbbrColIndexs(); =09 if ( tbl.rows.length > 1 && tbl.rows[1].cells.length > 1 )=20 { for ( var i =3D 1; i < tbl.rows.length; i++ )=20 { abbrColIndexs.each(function(idx) { var cell =3D tbl.rows[i].cells[ idx + 1 ]; // skip checkbox = cell cell.abbr =3D cell.controller.getGridCell().getValue(); cell.scope =3D 'row'; }); } } }, =20 getAbbrColIndexs: function()=20 { if ( !this.abbrColIndexs ) { this.abbrColIndexs =3D new Array(); /* Add abbr attributes to specific columns to allow screen readers to=20 announce meaningful column headers based on the following rules: =09 1. If both first and last name are visible, use those. 2. If the username is visible, use that. 3. If neither of the first cases pass, use the first column as the = header.=20 */ var lastNameColIndex =3D this.model.getVisibleColDefIndex('LN'); var firstNameColIndex =3D this.model.getVisibleColDefIndex('FN'); var userNameColIndex =3D this.model.getVisibleColDefIndex('UN'); if ( lastNameColIndex !=3D -1 && firstNameColIndex !=3D -1 ) { this.abbrColIndexs.push( lastNameColIndex );=20 this.abbrColIndexs.push( firstNameColIndex ); } else if ( userNameColIndex !=3D -1 ) { this.abbrColIndexs.push( userNameColIndex ); } else { this.abbrColIndexs.push( 0 ); } } return this.abbrColIndexs; }, =20 onDocumentClickHandler: function(evt) { if ( document.ignoreOnClick ) return; Gradebook.CellController.prototype.closePopupsAndRestoreFocus(evt); }, onDocumentKeyDownHandler: function(evt) { GradebookUtil.debug('onDocumentKeyDownHandler keyCode =3D = '+evt.keyCode); if (!Gradebook.CellController.prototype.tableHasFocus) return; var ek=3Devt.keyCode; var visibleRowCount =3D this.viewPort.getNumVisibleRows(); var deltaRow =3D 0; var deltaCol =3D 0; /* * the model grid cell index is R2L agnostic: thus moving right in L2R = is moving towards the next col (+1),=20 * while in R2L it is going towards the previous col (-1). */ switch (ek) { case (Event.KEY_LEFT): deltaCol =3D page.util.isRTL()?1:-1; break; case (Event.KEY_RIGHT): deltaCol =3D page.util.isRTL()?-1:1; break; case (Event.KEY_UP): deltaRow =3D -1; break; case (Event.KEY_DOWN): deltaRow =3D 1; break; case (33/* page up */): if ( !this.options.accessibleMode ) deltaRow = =3D -visibleRowCount; break; case (34/* page down */): if ( !this.options.accessibleMode ) = deltaRow =3D visibleRowCount; break; case (Event.KEY_TAB): if ( !Gradebook.CellController.currentSelectedCell || !Element.descendantOf( evt.element(), = Gradebook.CellController.currentSelectedCell.controller.htmlCell ) ) = break; if ( evt.shiftKey ) { if ( !evt.element().hasClassName('cmimg') && !this.isFirstCell() = ) deltaCol =3D -1; break; } else if ( !this.isLastCell() && ( evt.element().hasClassName('cmimg') || = this.isCurrentCellWithoutMenu() ) ) { deltaCol =3D 1; } break; } if (deltaRow =3D=3D 0 && deltaCol =3D=3D 0) { return; } else { Event.stop( evt ); this.selectRelativeCell(deltaRow, deltaCol); Gradebook.CellController.prototype.closePopups(evt); } }, =09 isLastCell: function() { if ( Gradebook.CellController.currentSelectedCell =3D=3D null ) = return false; // last cell if it is the last displayed cell with no more scroll = available right or down var nextSelectedCol =3D = Gradebook.CellController.currentSelectedCell.controller.col; var nextSelectedRow =3D = Gradebook.CellController.currentSelectedCell.controller.row+1; return ( nextSelectedCol >=3D this.viewPort.numVisibleCols ) && ( nextSelectedRow >=3D this.viewPort.numVisibleRows ) && ( ( this.viewPort.lastRowPos/*offset*/ + = this.viewPort.numVisibleRows ) =3D=3D this.model.getNumRows() ) &&=20 ( ( this.viewPort.colOffset + this.viewPort.numVisibleCols ) = =3D=3D this.model.getNumColDefs() ); }, isFirstCell: function() { if ( Gradebook.CellController.currentSelectedCell =3D=3D null ) = return false; return ( = Gradebook.CellController.currentSelectedCell.controller.col=3D=3D1/*check= box*/ && = Gradebook.CellController.currentSelectedCell.controller.row=3D=3D0 && ( !this.viewPort.scrollerDiv /*null if no vertical scroll*/ = || this.viewPort.scrollerDiv.scrollTop =3D=3D 0 ) ); }, isCurrentCellWithoutMenu: function() { // the only cell type that does not display a context menu are = calculated columns if ( Gradebook.CellController.currentSelectedCell =3D=3D null ) = return false; var gridCell =3D = Gradebook.CellController.currentSelectedCell.controller.getGridCell(); if ( !gridCell ) return true; return gridCell.isGrade() && !gridCell.canEdit();=20 }, =09 selectRelativeCell: function(deltaRow, deltaCol) { var visibleRowCount =3D this.viewPort.getNumVisibleRows(); var visibleColumnCount =3D this.viewPort.getNumVisibleCols(); var modelRowCount =3D this.model.getNumRows(); var modelColumnCount =3D this.model.getNumColDefs(); var cellController =3D this.currentCellController; if (Gradebook.CellController.currentSelectedCell !=3D null){ cellController =3D = Gradebook.CellController.currentSelectedCell.controller; } var currentSelectedRow =3D cellController.row; var currentSelectedCol =3D cellController.col - 1; // skip checkbox = col var selectDelay =3D 100; currentSelectedRow +=3D deltaRow; if (currentSelectedRow < 0 || currentSelectedRow >=3D = visibleRowCount){ currentSelectedRow -=3D deltaRow; selectDelay =3D 500; // need longer delay to select cell until scroll = completes if (this.viewPort.scrollRows(deltaRow ) =3D=3D false) { if (deltaRow < 0){=20 // wrap to bottom of previous col if (currentSelectedCol =3D=3D 0) return; deltaRow =3D modelRowCount - visibleRowCount; currentSelectedRow =3D visibleRowCount - 1; currentSelectedCol -=3D 1; } else { // wrap to top of next col deltaRow =3D visibleRowCount - modelRowCount; currentSelectedRow =3D 0; if (currentSelectedCol < visibleColumnCount-1){=20 currentSelectedCol +=3D 1; } else { this.viewPort.scrollCols(1); }=20 } this.viewPort.scrollRows(deltaRow); } } currentSelectedCol +=3D deltaCol; if ((currentSelectedCol < this.options.numFrozenColumns && deltaCol < = 0) || currentSelectedCol >=3D visibleColumnCount){ currentSelectedCol -=3D deltaCol; selectDelay =3D 500; // need longer delay to select cell until scroll = completes if (this.viewPort.scrollCols( deltaCol ) =3D=3D false) { if (deltaCol < 0){=20 if (currentSelectedCol > 0) { // navigate in frozen columns currentSelectedCol +=3D deltaCol; } else { // wrap to end of previous row if (currentSelectedRow =3D=3D 0) return; deltaCol =3D modelColumnCount - visibleColumnCount; currentSelectedCol =3D visibleColumnCount - 1; currentSelectedRow -=3D 1; } } else { // wrap to beginning of next row deltaCol =3D visibleColumnCount - modelColumnCount; currentSelectedCol =3D 0; if (currentSelectedRow < visibleRowCount-1){=20 currentSelectedRow +=3D 1; } else { this.viewPort.scrollRows(1); }=20 } this.viewPort.scrollCols(deltaCol); } } // select the current cell after servicing the main event loop to = allow current events to complete // this was needed for AS-110508 to apply the left/right arrow event = to cell navigation only and not to cell editing too. this.currentCellController =3D = this.table.rows[currentSelectedRow].cells[currentSelectedCol+1].controlle= r; setTimeout(this.selectCell.bind(this), selectDelay ); }, =09 selectCell: function() { this.currentCellController.selectCell(); }, sortColumn: function(newSortCell,sortDir) { if (newSortCell !=3D this.sortCell) { this.sortDir =3D 'ASC'; if (this.sortCell) { this.sortCell.setSortImage('NO_SORT'); // remove current sort image } } else { this.sortDir =3D (this.sortDir =3D=3D 'ASC')?'DESC':'ASC'; // toggle } if (sortDir){ this.sortDir =3D sortDir; } this.sortCell =3D newSortCell; this.sortCell.setSortImage(this.sortDir); // show new sort image =09 // sort the model this.modelSortIndex =3D = this.viewPort.toModelIndex(this.sortCell.col-1); // skip checkbox column this.model.sort(this.modelSortIndex,this.sortDir); =09 // refresh the view this.viewPort.moveScroll(0); this.viewPort.refreshContents(0); }, updateSortImage: function(){ if (!this.viewPort){ return; } if (this.sortCell) { this.sortCell.setSortImage('NO_SORT'); // remove current sort image } var viewSortIndex =3D this.viewPort.toViewIndex(this.modelSortIndex); if (viewSortIndex < 0){ this.sortCell =3D null; } else { var headerTable =3D $(this.table.id + '_header'); if (!headerTable){ return; } this.sortCell =3D = headerTable.rows[0].cells[viewSortIndex+1].controller; // add 1 to = account for check column =09 this.sortCell.setSortImage(this.sortDir); } }, =09 //focused is restored only in AX view since user has to leave the page = for update restoreFocus: function() { if ( !this.options || !this.options.accessibleMode || = !Gradebook.getModel().lastFocusedRow || = !Gradebook.getModel().lastFocusedCol ) return; if ( GradebookUtil.isIE() ) { setTimeout(this.doRestoreFocus.bind(this), 0 ); } else { this.doRestoreFocus(); } }, =09 doRestoreFocus: function() { var lastFocusedRow =3D Gradebook.getModel().lastFocusedRow; var lastFocusedCol =3D Gradebook.getModel().lastFocusedCol; = this.table.rows[lastFocusedRow].cells[lastFocusedCol].controller.selectCe= ll(); Gradebook.getModel().lastFocusedRow =3D null; Gradebook.getModel().lastFocusedCell =3D null; } =09 }; //Gradebook.GridViewPort = -------------------------------------------------- Gradebook.GridViewPort =3D Class.create(); Gradebook.GridViewPort.prototype =3D { initialize: function(table, model, options,grid) { this.isIE =3D GradebookUtil.isIE(); this.isNS7 =3D GradebookUtil.isNS7(); this.table =3D table; this.model =3D model; this.options =3D options; this.grid =3D grid; this.lastPixelOffset =3D 0; this.colOffset =3D 0; this.lastRowPos =3D 0; this.startScrollLeft =3D 0; this.headerTableId =3D this.table.id + '_header'; this.headerTable =3D $(this.headerTableId); if (!this.headerTable)=20 this.headerTable =3D this.table; this.numVisibleRows =3D this.table.rows.length; if ( this.headerTable.rows[0] ) { this.numVisibleCols =3D this.headerTable.rows[0].cells.length-1; // = don't include check column } this.rowHeight =3D this.table.offsetHeight/this.numVisibleRows; this.div =3D this.table.parentNode; this.initScrollers(); }, unload: function() { this.grid =3D null; this.model =3D null; this.table =3D null; this.headerTable =3D null; this.div =3D null; this.scrollerDiv =3D null; this.heightDiv =3D null; this.scrollerDivH =3D null; this.widthDiv =3D null; this.options =3D null; }, =09 modelChanged: function() { this.refreshContentsH(); }, =09 getModelGridCell: function(row, col) { // in accessibleMode, row 0 is header, so we need to compensate to get = model row if (this.options.accessibleMode && row > 0){ row -=3D 1; } if (col > 0) col -=3D 1; // skip check col if (col >=3D this.options.numFrozenColumns)=20 col +=3D this.colOffset;=20 var iterators =3D this.model.getRowIterators(row+this.lastRowPos, 1, = col); if (!iterators || iterators.length !=3D 1 || !iterators[0].hasNext()){ GradebookUtil.error('getModelGridCell cannot get grid cell for row: = '+ row+' col: '+col); } return iterators[0].next(); }, getHeaderGridCell: function(col) { if (col > 0) col -=3D 1; // skip check col if (col >=3D this.options.numFrozenColumns)=20 col +=3D this.colOffset;=20 var iterator =3D this.model.getColDefIterator(col); if (!iterator || !iterator.hasNext()){ GradebookUtil.error('getHeaderGridCell cannot get header cell for = col: '+col); } return iterator.next(); }, getNumVisibleRows: function() { return this.numVisibleRows; }, getNumVisibleCols: function() { return this.numVisibleCols; }, populateRow: function(htmlRow, frozenColRowIterator, = scrollableColRowIterator) { var numFrozenColumns =3D this.options.numFrozenColumns; for (var j=3D0; j < (this.numVisibleCols); j++) { var iterator =3D (j < = numFrozenColumns)?frozenColRowIterator:scrollableColRowIterator; var gridCell =3D iterator.next(); var htmlCell =3D htmlRow.cells[j+1]; // set check box column based on isRowChecked flag for first grid = cell if (j =3D=3D 0){ var checkInput =3D = GradebookUtil.getChildElementByClassName(htmlRow.cells[0], 'input', = 'checkInput'); checkInput.checked =3D gridCell.isRowChecked(); } htmlCell.controller.renderHTML(gridCell); } }, =20 refreshContents: function(rowOffset) { if (this.model.getNumRows() =3D=3D 0) return; if (this.options.accessibleMode){ this.refreshAccessibleContents(); return; } Gradebook.CellController.prototype.hideAllSavingDivs(); var numRows =3D this.numVisibleRows; var numModelRows =3D this.model.getNumRows(); if (rowOffset + numRows > numModelRows) rowOffset =3D numModelRows - numRows - 1 var numFrozenColumns =3D this.options.numFrozenColumns; var frozenColRowIterators =3D this.model.getRowIterators(rowOffset, = numRows, 0); var scrollableColRowIterators =3D frozenColRowIterators; if (this.numVisibleCols > numFrozenColumns){ scrollableColRowIterators =3D this.model.getRowIterators(rowOffset, = numRows, numFrozenColumns+this.colOffset); } for (var i=3D0; i < numRows; i++) { this.populateRow(this.table.rows[i], frozenColRowIterators[i], = scrollableColRowIterators[i]); } this.lastRowPos =3D rowOffset; }, refreshAccessibleContents: function() { var numModelRows =3D this.model.getNumRows(); var iters =3D this.model.getRowIterators(); var numCols =3D this.table.rows[0].cells.length - 1; // skip check = column var start =3D new Date().getTime(); if (this.refreshRowCounter =3D=3D undefined) this.refreshRowCounter = =3D 0; for (var i =3D this.refreshRowCounter; i < numModelRows; i++) { var htmlRowIndex =3D i+1; // skip header row var htmlRow =3D this.table.rows[htmlRowIndex]; // if we are rendering for more than 3 seconds, give Firefox some = time to get // rid of the "unresponsive script" message. if(new Date().getTime() - start > 3000){ setTimeout(this.refreshAccessibleContents.bind(this), 0 ); return; } =09 for (var j=3D0; j < numCols; j++) { var gridCell =3D iters[i].next(); var htmlCell =3D htmlRow.cells[j+1]; // skip check column if (htmlCell.controller =3D=3D undefined){ new Gradebook.CellController(htmlCell, this.grid, htmlRowIndex, = j+1, true ); } htmlCell.controller.renderHTML(gridCell); // set check box column based on isRowChecked flag for first grid = cell if (j =3D=3D 0){ var htmlCell =3D htmlRow.cells[0]; if (htmlCell.controller =3D=3D undefined){ new Gradebook.CellController(htmlCell, this.grid, htmlRowIndex, j, = true ); } var checkInput =3D $(htmlCell).down('input'); checkInput.checked =3D gridCell.isRowChecked(); } } var rowTitle =3D gradebook2Messages['selectUserMsg']; this.grid.getAbbrColIndexs().each(function(idx) { var cell =3D htmlRow.cells[ idx + 1 ]; // skip checkbox cell rowTitle +=3D " " + cell.controller.getGridCell().getValue(); }); htmlRow.cells[ 0 ].controller.checkInput.title =3D rowTitle; =09 this.refreshRowCounter++; } this.refreshRowCounter =3D null; }, refreshContentsH: function() { // refresh data cells this.refreshContents(this.lastRowPos); // refresh the header cells var numFrozenColumns =3D this.options.numFrozenColumns; var hdrCells =3D null; var hdr =3D $(this.table.id+'_header'); if (hdr)=20 hdrCells =3D hdr.rows[0].cells; else hdrCells =3D this.table.rows[0].cells; if ( !hdrCells ) return; var frozenColIterator =3D this.model.getColDefIterator(0); var scrollableColIterator =3D null; if (this.numVisibleCols > numFrozenColumns){ scrollableColIterator =3D = this.model.getColDefIterator(numFrozenColumns+this.colOffset); } for (var i=3D0; i < this.numVisibleCols; i++) { var iterator =3D (i < = numFrozenColumns)?frozenColIterator:scrollableColIterator; var htmlCell =3D hdrCells[i+1]; // skip check column var colDef =3D iterator.next(); if (htmlCell.controller =3D=3D undefined){ new Gradebook.CellController(htmlCell, this.grid, 0, i+1, true); } htmlCell.controller.renderHeaderCellHTML( colDef ); =20 } // add the check all listener if not present if ( !hdrCells[0].controller ) new = Gradebook.CellController(hdrCells[0], this.grid, 0, 0, true); this.grid.updateSortImage(); }, visibleHeight: function() { return parseInt(GradebookUtil.getElementsComputedStyle(this.div, = 'height')); }, toViewIndex: function(modelSortIndex){ var numFrozenColumns =3D this.options.numFrozenColumns; if (modelSortIndex < numFrozenColumns){ return modelSortIndex; } var vi =3D (modelSortIndex - this.colOffset); if (numFrozenColumns <=3D vi && vi < this.numVisibleCols)=20 return vi; else return -1; }, toModelIndex: function(viewSortIndex) { if (viewSortIndex =3D=3D -1)=20 return -1; var numFrozenColumns =3D this.options.numFrozenColumns; var mi =3D (viewSortIndex < numFrozenColumns) ? viewSortIndex : = (this.colOffset + viewSortIndex); return mi; }, // scrolling management initScrollers: function() { this.createVScrollBar(); this.createHScrollBar(); this.lastVScrollPos =3D 0; if ( this.scrollerDivH !=3D null )=20 this.lastHScrollPos =3D this.scrollerDivH.scrollLeft; else=20 this.lastHScrollPos =3D 0; this.startScrollLeft =3D this.lastHScrollPos; }, createVScrollBar: function() { // see comments on createHScroolBar() if (this.table.rows.length >=3D this.model.getNumRows()) return; var visibleHeight =3D this.visibleHeight(); // create the outer div... this.scrollerDiv =3D document.createElement("div"); var scrollerStyle =3D this.scrollerDiv.style; scrollerStyle.borderRight =3D this.options.scrollerBorderRight; scrollerStyle.position =3D "absolute"; var tableWidth =3D this.isIE? this.table.offsetWidth-2+"px" : = this.isNS7? this.table.offsetWidth-15+"px" : = this.table.offsetWidth-3+"px"; if ( document.documentElement.dir =3D=3D 'rtl' )=20 scrollerStyle.right =3D tableWidth; else=20 scrollerStyle.left =3D tableWidth; scrollerStyle.top =3D "0px"; scrollerStyle.width =3D this.isNS7 ? "30px" : "19px"; scrollerStyle.height =3D visibleHeight + "px"; scrollerStyle.overflow =3D "auto"; // create the inner div... this.heightDiv =3D document.createElement("div"); this.heightDiv.style.width =3D "1px"; =09 this.rowHeight =3D = this.table.rows[this.table.rows.length-1].cells[1].offsetHeight; var divHeight =3D this.rowHeight * this.model.getNumRows(); divHeight +=3D ( this.numVisibleRows + 1 ); // looks like we are = missing one pix per row, if not added we cannot scroll to the last item =09 this.heightDiv.style.height =3D parseInt(divHeight) + "px" ; this.scrollerDiv.appendChild(this.heightDiv); = Event.observe(this.scrollerDiv,'scroll',this.handleVScroll.bindAsEventLis= tener(this)); GradebookUtil.debug('createVScrollBar - this.rowHeight =3D = '+this.rowHeight); GradebookUtil.debug('createVScrollBar - visibleHeight =3D = '+visibleHeight); GradebookUtil.debug('createVScrollBar - numVisibleRows =3D = '+this.numVisibleRows); GradebookUtil.debug('createVScrollBar - this.model.getNumRows() =3D = '+this.model.getNumRows()); GradebookUtil.debug('createVScrollBar - this.heightDiv.style.height = =3D '+this.heightDiv.style.height); this.table.parentNode.parentNode.insertBefore( this.scrollerDiv, = this.table.parentNode.nextSibling ); var eventName =3D this.isIE ? "mousewheel" : "DOMMouseScroll"; Event.observe(this.table, eventName,=20 function(evt) { if (evt.wheelDelta>=3D0 || evt.detail < 0) = //wheel-up this.scrollerDiv.scrollTop -=3D = (2*this.rowHeight); else this.scrollerDiv.scrollTop +=3D = (2*this.rowHeight); this.handleVScroll(); }.bindAsEventListener(this),=20 false); }, createHScrollBar: function() { // logic here is to create an div the same width that the non = frozen columns // then put inside it an invisible inner div that would be the = width of the non // frozen if they were all visible; by setting the parent with = overflow: auto=20 // scroll bars will appear, and the scrolling events are captured = to decide what // portion of the table should be displayed. if (!this.headerTable.rows[0] || = this.headerTable.rows[0].cells.length > this.model.getNumColDefs()) = return; var totalColumnCount =3D this.model.getNumColDefs(); var visibleColumnCount =3D this.numVisibleCols; var numFrozenColumns =3D this.options.numFrozenColumns; this.maxColOffset =3D totalColumnCount - (visibleColumnCount - = numFrozenColumns) - 1; var visibleHeight =3D this.isIE ? this.table.offsetHeight - 23 : = this.isNS7 ? this.table.offsetHeight - 16 : this.table.offsetHeight - 3; var checkColumnWidth =3D = this.headerTable.rows[0].cells[0].offsetWidth; // set avg col width to be based on actual cell width (not = including padding, etc.) // this will allow scrolling to be more accurate this.avgColWidth =3D this.headerTable.rows[0].cells[1].offsetWidth; var frozenWidth =3D (numFrozenColumns * this.avgColWidth) + = checkColumnWidth; visibleWidth =3D ( visibleColumnCount - numFrozenColumns ) * = this.avgColWidth; // create the outer div... this.scrollerDivH =3D document.createElement("div"); var scrollerStyle =3D this.scrollerDivH.style; scrollerStyle.position =3D "absolute"; if ( document.documentElement.dir =3D=3D 'rtl' )=20 scrollerStyle.right =3DfrozenWidth + "px"; else=20 scrollerStyle.left =3D frozenWidth + "px"; scrollerStyle.top =3D visibleHeight + "px"; scrollerStyle.height =3D this.isIE ? "40px" : this.isNS7 ? = "30px" : "19px"; scrollerStyle.width =3D visibleWidth + "px"; scrollerStyle.overflow =3D "auto"; // create the inner div... this.widthDiv =3D document.createElement("div"); this.widthDiv.style.height =3D "1px"; this.widthDiv.style.direction =3D 'ltr'; this.widthDiv.style.width =3D ( this.avgColWidth * ( = totalColumnCount-numFrozenColumns ) ) + "px"; this.scrollerDivH.appendChild(this.widthDiv); = Event.observe(this.scrollerDivH,'scroll',this.handleHScroll.bindAsEventLi= stener(this)); if (this.scrollerDiv){ this.table.parentNode.parentNode.insertBefore( this.scrollerDivH, = this.scrollerDiv.nextSibling ); } else { this.table.parentNode.parentNode.insertBefore( this.scrollerDivH, = this.table.parentNode.nextSibling ); } }, rowToPixel: function(rowOffset) { return (rowOffset / this.model.getNumRows()) * = this.heightDiv.offsetHeight }, =20 moveScroll: function(rowOffset) { if (this.scrollerDiv){ this.scrollerDiv.scrollTop =3D this.rowToPixel(rowOffset); } }, /* When scrolling, IE sends multiple onscroll events for a single = scroll action by the user. To get around this, we set a timer and wait until the dust settles = before doing the scroll Here is info on the work around: = http://support.microsoft.com/kb/238004 */ // scroll numRows, can be negative. returns false if scroll request is = out of range scrollRows: function(numRows) { if (!this.scrollerDiv) return false; if ((numRows < 0 && this.scrollerDiv.scrollTop =3D=3D 0) ||=20 (numRows > 0 && this.lastRowPos =3D=3D (this.model.getNumRows() - = this.numVisibleRows))) { return false; } this.ignoreOnVscroll =3D true; this.scrollerDiv.scrollTop +=3D (numRows * this.rowHeight); setTimeout(this.doVScroll.bind(this), 200 ); }, handleVScroll: function(evt) { if (this.ignoreOnVscroll) return; this.ignoreOnVscroll =3D true; setTimeout(this.doVScroll.bind(this), 200 ); }, doVScroll: function() { Gradebook.CellController.prototype.onGridScroll(); var incomingscrollTop =3D this.scrollerDiv.scrollTop; var scrollDiff =3D this.lastVScrollPos-this.scrollerDiv.scrollTop; if (scrollDiff !=3D 0.00) { var r =3D this.scrollerDiv.scrollTop % this.rowHeight; if (r !=3D 0) { if (scrollDiff < 0 ) { this.scrollerDiv.scrollTop +=3D (this.rowHeight-r); } else { this.scrollerDiv.scrollTop -=3D r; } } var contentOffset =3D parseInt(this.scrollerDiv.scrollTop / = parseInt(this.rowHeight)); GradebookUtil.debug('doVScroll - incomingscrollTop =3D = '+incomingscrollTop+ ' r =3D '+r+ ' new scrollTop =3D '+this.scrollerDiv.scrollTop+ ' lastVScrollPos =3D '+this.lastVScrollPos+ ' contentOffset =3D '+contentOffset); this.refreshContents(contentOffset); this.lastVScrollPos =3D this.scrollerDiv.scrollTop; } this.ignoreOnVscroll =3D false; }, handleHScroll: function(evt) { if (this.ignoreOnHscroll) return; this.ignoreOnHscroll =3D true; setTimeout(this.doHScroll.bind(this), 200 ); }, =09 // scroll numCols, can be negative. returns false if scroll request is = out of // range scrollCols : function(numCols) { if (!this.scrollerDivH) return false; var totalColumnCount =3D this.model.getNumColDefs(); if ((numCols < 0 && this.scrollerDivH.scrollLeft =3D=3D 0) || (numCols > 0 && this.colOffset =3D=3D = (this.model.getNumColDefs() - this.numVisibleCols))) { return false; } this.ignoreOnHscroll =3D true; /* * so here we need to translate delta to actual scroll value. The = delta is screen orientation agnostic (we need to move to that col in the = model)=20 * we need to translate the move in a pixel move to the left: a move = to the left in l2r means we move to the next col, * while in r2l it means we move to previous col, thus the inversion = of orientation if r2l. */ this.scrollerDivH.scrollLeft +=3D (numCols * this.avgColWidth * = (page.util.isRTL()?-1:1) ); setTimeout(this.doHScroll.bind(this), 200); return true; }, doHScroll: function() { Gradebook.CellController.prototype.onGridScroll(); var scrollDiff =3D this.lastHScrollPos - = this.scrollerDivH.scrollLeft; if (scrollDiff !=3D 0.00) { // To align the column scroll - we move by column increment var r =3D this.scrollerDivH.scrollLeft % this.avgColWidth; if (r !=3D 0) { if (scrollDiff < 0 ) { this.scrollerDivH.scrollLeft +=3D (this.avgColWidth-r); } else { this.scrollerDivH.scrollLeft -=3D r; } } if ( document.documentElement.dir =3D=3D 'rtl' ) { // Subtract the max scroll left with the current one and divide = with the avgColWidth=20 this.colOffset =3D parseInt( (this.startScrollLeft - = this.scrollerDivH.scrollLeft) / this.avgColWidth); } else { this.colOffset =3D parseInt(this.scrollerDivH.scrollLeft / = this.avgColWidth); } this.colOffset =3D Math.min(this.colOffset,this.maxColOffset); this.refreshContentsH(); this.lastHScrollPos =3D this.scrollerDivH.scrollLeft; } this.ignoreOnHscroll =3D false; } }; //********************************************************************* //************ Gradebook.CellController ******************************* //********************************************************************* Gradebook.CellController =3D Class.create(); Gradebook.CellController.prototype =3D { /* Controls all user interaction with an HTM table cell and its = corresponding grid model cell including: =09 cell-type specific context menus sorting by clicking on header cell selecting a table cell editing of cell value, which includes: going into edit mode - showing an input text values to be entered validating input as typed listening for certain keys to submit or cancel editing submitting changes to server and showing "Saving indicator" check box in first column for selecting students rendering of cell value and state indicators grade comment & column into popups */ initialize: function(htmlCell, grid, row, column, isHeaderTable ) { =09 this.htmlCell =3D $(htmlCell); this.htmlCell.id =3D row+','+column; this.htmlCell.controller =3D this; this.grid =3D grid; this.row =3D row; this.col =3D column; this.isHeaderTable =3D isHeaderTable; Gradebook.CellController.tableId =3D this.grid.table.id; var accessibleMode =3D this.grid.options.accessibleMode; this.isTopLeft =3D (this.row =3D=3D 0 && this.col =3D=3D 0) && = isHeaderTable; if (accessibleMode) { this._accessibleInit(); } else { this._nonAccessibleInit(); } }, _nonAccessibleInit: function( ) { // get elements in cell this.viewDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbView'); this.editDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbEdit'); this.editInput =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'input', = 'editInput'); this.textDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbText'); this.dataDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbData'); this.titleAnchor =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'a', = 'titleAnchor'); this.contextMenuAnchor =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'a', 'cmimg'); this.checkInput =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'input', = 'checkInput'); if ( this.isTopLeft ) { Event.observe(this.checkInput, 'click', = this.toggleSelection.bindAsEventListener(this)); GradebookViewSpreadsheet.grid.checkAllCellController =3D this; return; } // add listeners to cell & anchors = Event.observe(this.htmlCell,'mouseover',this.onMouseOver.bindAsEventListe= ner(this)); = Event.observe(this.htmlCell,'mouseout',this.onMouseOut.bindAsEventListene= r(this)); // add listeners to cell elements if (this.contextMenuAnchor) { = Event.observe(this.contextMenuAnchor,'click',this.onContextMenuClicked.bi= ndAsEventListener(this)); } if (this.row =3D=3D 0 && this.col !=3D 0 && this.textDiv && = this.dataDiv) { this.getGridCell =3D this.getHeaderGridCell; = Event.observe(this.textDiv,'click',this.onHeaderClicked.bindAsEventListen= er(this)); Event.observe(this.dataDiv,'focus', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.dataDiv,'mouseover', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.dataDiv,'mouseout', = this.onHeaderMouseOut.bindAsEventListener(this)); this.htmlCell.style.cursor =3D 'pointer'; } else { this.getGridCell =3D this.getGradeGridCell; if (this.editInput){ = Event.observe(this.editInput,'keydown',this.onInputKeyDown.bindAsEventLis= tener(this)); = Event.observe(this.editInput,'keyup',this.onInputKeyUp.bindAsEventListene= r(this)); } =09 if (this.checkInput) { = Event.observe(this.checkInput,'click',this.onCheckBoxClicked.bindAsEventL= istener(this)); } else { = Event.observe(this.htmlCell,'click',this.onClicked.bindAsEventListener(th= is)); } if ( this.titleAnchor ) = Event.observe(this.titleAnchor,'focus',this.onFocus.bindAsEventListener(t= his) ); } }, =09 _accessibleInit: function( ) { // get elements in cell this.checkInput =3D this.htmlCell.down('input'); this.titleAnchor =3D this.htmlCell.down('a'); this.contextMenuAnchor =3D (this.titleAnchor) ? this.titleAnchor : = this.htmlCell; if ( this.isTopLeft )=20 { Event.observe(this.checkInput, 'click', = this.toggleSelection.bindAsEventListener(this)); GradebookViewSpreadsheet.grid.checkAllCellController =3D this; return; } if (this.row =3D=3D 0 && this.col !=3D 0) { this.dataDiv =3D this.titleAnchor;=20 this.getGridCell =3D this.getHeaderGridCell; Event.observe(this.titleAnchor,'focus', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.htmlCell,'mouseover', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.htmlCell,'mouseout', = this.onHeaderMouseOut.bindAsEventListener(this)); }=20 else=20 { this.getGridCell =3D this.getGradeGridCell; } if (this.checkInput)=20 { = Event.observe(this.checkInput,'click',this.onCheckBoxClicked.bindAsEventL= istener(this)); } else if (this.getGridCell().getContextMenuInfo(this))=20 { = Event.observe(this.contextMenuAnchor,'click',this.onContextMenuClicked.bi= ndAsEventListener(this)); } else { // no link/menu for calculated grades, grade goes right in cell=20 this.titleAnchor.remove(); this.titleAnchor =3D this.htmlCell; } }, =09 isHeaderCell: function() { return this.isHeaderTable; }, unload: function() { this.grid =3D null; this.htmlCell.controller =3D null; this.htmlCell =3D null; this.grid =3D null; this.viewDiv =3D null; this.editDiv =3D null; this.editInput =3D null; this.textDiv =3D null; this.dataDiv =3D null; this.titleAnchor =3D null; this.contextMenuAnchor =3D null; this.checkInput =3D null; this.getGridCell =3D null; this.editGridcell =3D null; }, //************ checkbox logic ******************************* onCheckBoxClicked: function(evt) { var gridcell =3D this.getGridCell(); gridcell.setRowChecked(this.checkInput.checked); var userId =3D gridcell.userId; if(this.checkInput.checked){ if (evt.shiftKey && = Gradebook.CellController.prototype.lastCheckedUserId){ = this.grid.model.checkedRangeOfStudents(gridcell.userId,Gradebook.CellCont= roller.prototype.lastCheckedUserId); } Gradebook.CellController.prototype.lastCheckedUserId =3D = gridcell.userId; } else { Gradebook.CellController.prototype.lastCheckedUserId =3D null; } =09 this.updateNumSelectedIndicator(); }, toggleSelection: function() { if( this.checkInput.checked ) { this.onSelectAllStudents(); } else { this.onSelectNoStudents(); } }, onSelectAllStudents: function(evt) { this.grid.model.checkedAllStudents(); this.updateNumSelectedIndicator(); }, onSelectNoStudents: function(evt) { this.grid.model.checkedNoStudents(); this.updateNumSelectedIndicator(); }, =09 onSelectInvertStudents: function(evt) { this.grid.model.invertCheckedStudents(); this.updateNumSelectedIndicator(); }, =09 onSortCheckedStudents: function(evt) { // always show checked students at top this.grid.sortColumn(this,'DESC'); }, =09 updateNumSelectedIndicator: function() { var ids =3D this.grid.model.getCheckedStudentIds(); $("rowindicator").update( ids.length ); }, =09 =09 //************ sort logic ******************************* onHeaderClicked: function(evt) { this.grid.sortColumn(this); }, setSortImage: function(dir) { this.htmlCell.removeClassName('sortedUp'); this.htmlCell.removeClassName('sortedDown'); if ( dir =3D=3D 'ASC' ){ this.htmlCell.addClassName('sortedUp'); } else if ( dir =3D=3D 'DESC' ){ this.htmlCell.addClassName('sortedDown'); } }, onSortAscending: function(dir) { this.grid.sortColumn(this,'ASC'); this.contextMenuDiv.hide(); }, =09 onSortDescending: function(dir) { this.grid.sortColumn(this,'DESC'); this.contextMenuDiv.hide(); }, =09 //************ select cell logic ******************************* onFocus: function( evt ) { document.ignoreOnClick =3D true; //IE7 issue where focus is followed = by on click on the document - AS-123689 window.setTimeout( "document.ignoreOnClick =3D false", 2000 ); this.onClicked( evt ); }, =09 onClicked: function(evt) { var eventTarget =3D evt.target ? evt.target : evt.srcElement; Gradebook.CellController.prototype.lastEventTarget =3D eventTarget; this.selectCell( eventTarget ); Event.stop( evt ); }, =09 isSelected: function() { return (Gradebook.CellController.currentSelectedCell =3D=3D = this.htmlCell); }, =09 selectCell: function( optionalEventTarget ) { Gradebook.CellController.prototype.tableHasFocus =3D true; if ( this.isSelected() || this.checkInput ) return; this.closePopups(); this.unselectCurrentCell( true /*do not clear status bar */ ); GradebookUtil.debug('selectCell row =3D '+this.row+' col =3D = '+this.col); var gridCell =3D this.getGridCell(); Gradebook.CellController.currentSelectedCell =3D this.htmlCell; var hascm =3D this.hasContextMenu(); Element.addClassName(this.htmlCell, hascm?"cellClick":"cellClickNoCM") Element.addClassName(this.htmlCell.parentNode, "focusRowHigh"); var headerTable =3D $(Gradebook.CellController.tableId + '_header'); if (headerTable){ = Element.addClassName(headerTable.rows[0].cells[this.col],"focusHeader"); }=09 if (!this.isEditing && this.titleAnchor){ // no need to put focus on the anchor if it is already the active = element if ( !optionalEventTarget || ( optionalEventTarget !=3D = this.titleAnchor ) ) this.titleAnchor.focus(); } else if ( this.grid.options.accessibleMode ) { this.htmlCell.focus(); } this.setTaskbarInfo(gridCell); if (!this.grid.options.accessibleMode) this.startEdit(); }, showHeaderInfoInTaskbar: function() { var colDef =3D this.getGridCell(); var type =3D colDef.getType();=20 if ( type =3D=3D "student" ) { GradebookViewSpreadsheet.setMsgInTaskBar( colDef.getName() ); } else { if ( type =3D=3D "grade" ) points =3D NumberFormatter.getDisplayFloat( colDef.points ); else=20 points =3D GradebookUtil.getMessage( 'variesPerStudentMsg' ); GradebookViewSpreadsheet.setHeaderInfoInTaskBar( colDef.getName(), = GradebookUtil.getMessage( colDef.getType() + 'Msg' ),=20 points ); } }, =09 setTaskbarInfo: function(gridCell) { if (!gridCell) {=20 GradebookViewSpreadsheet.clearTaskBar(); } else if (gridCell.isGrade()) { var colDef =3D gridCell.colDef; var gradeType =3D ' ' var pointsPossible =3D ' ' var primaryDisplay =3D ' ' var visibileToStudents =3D ' ' try { if ( gridCell.canEdit() ) {=20 gradeType =3D = GradebookUtil.getMessage((gridCell.isOverride())?'overrideGradeMsg':'grad= eMsg'); } else {=20 gradeType =3D GradebookUtil.getMessage( colDef.getType() + 'Msg' ); } primaryDisplay =3D colDef.primarySchema.name; pointsPossible =3D NumberFormatter.getDisplayFloat( = gridCell.getPointsPossible() ); visibileToStudents =3D = GradebookUtil.getMessage((colDef.vis)?'isMsg':'isNotMsg'); } catch ( ignore ) { }; = GradebookViewSpreadsheet.setTaskBar(gradeType,pointsPossible,primaryDispl= ay,visibileToStudents); } else { GradebookViewSpreadsheet.setTaskBar(); } }, unselectCell: function( doNotClearStatusBar ) { GradebookUtil.debug('unselectCell row =3D '+this.row+' col =3D = '+this.col); Element.removeClassName(this.htmlCell, "cellClick"); Element.removeClassName(this.htmlCell, "cellClickNoCM"); Element.removeClassName(this.htmlCell.parentNode, "focusRowHigh"); var headerTable =3D $(Gradebook.CellController.tableId + '_header'); if (headerTable){ = Element.removeClassName(headerTable.rows[0].cells[this.htmlCell.cellIndex= ],"focusHeader"); }=09 if ( !doNotClearStatusBar ) this.setTaskbarInfo(); }, unselectCurrentCell: function( doNotClearStatusBar ) { var cell =3D Gradebook.CellController.currentSelectedCell; if (cell)=20 { var commit =3D false; var cellController =3D cell.controller; if ( cellController)=20 { if ( cellController.hasUncommittedChanges()) { var validationError =3D = cellController.editGridcell.validate(cellController.editInput.value); if (!validationError) { commit =3D = confirm(GradebookUtil.getMessage('uncommitedchangeErrorMsg')); }=20 else=20 { = alert(GradebookUtil.getMessage('uncommitedchangeNotSavedErrorMsg')); } } cellController.stopEdit(commit, true /* no focus on the cell we are = exiting */); cellController.unselectCell( doNotClearStatusBar ); } Gradebook.CellController.currentSelectedCell =3D null; } }, //************ edit grade logic ******************************* =09 startEdit: function(){ try { this.editGridcell =3D this.getGridCell(); if (!this.editGridcell.canEdit() || !this.isSelected() || = !this.editInput) return; GradebookUtil.debug('startEdit row =3D '+this.row+' col =3D = '+this.col); this.isEditing =3D true; this.editInput.value =3D this.editGridcell.getEditValue(); this.viewDiv.style.display =3D "none"; this.editDiv.style.display =3D "block"; this.editInput.focus(); this.editInput.select(); } catch ( ignore ) { } }, onInputKeyDown: function(evt){ GradebookUtil.debug('onInputKeyDown row =3D '+this.row+' col =3D = '+this.col+' keyCode =3D '+evt.keyCode); switch (evt.keyCode) { case (Event.KEY_TAB): this.stopEdit(true, false); //commit, Set Focus back to cell content Event.stop( evt ); break; } }, =09 onInputKeyUp: function(evt){ Event.stop( evt ); GradebookUtil.debug('onInputKeyUp row =3D '+this.row+' col =3D = '+this.col+' keyCode =3D '+evt.keyCode); switch (evt.keyCode) { case (Event.KEY_UP): case (Event.KEY_DOWN): case (Event.KEY_LEFT): case (Event.KEY_RIGHT): evt.cancelBubble =3D false; // allow event to bubble so attempted = navigation will occur break; case (Event.KEY_RETURN): try { Gradebook.noResize =3D true; /*IEHack*/ if (this.hasUncommittedChanges() && this.stopEdit(true)){ = //commit // select cell below this.grid.selectRelativeCell(1, 0); } } finally { Gradebook.noResize =3D false; } break; case (Event.KEY_ESC): =09 this.stopEdit(false); // don't commit break; default: var validationError =3D this.editGridcell.validate( = this.editInput.value, true ); // match partial if (validationError){ this.showValidationError(validationError); } else { this.hideValidationError(); } } },=09 // returns false if validation error occurs when committing stopEdit: function(commit, doNotSetFocus){ if (!this.isEditing){ return; } GradebookUtil.debug('stopEdit row =3D '+this.row+' col =3D = '+this.col+' commit =3D '+commit); if (commit && this.hasUncommittedChanges()){ var inputVal =3D this.editInput.value; var validationError =3D this.editGridcell.validate( inputVal ); if (validationError){ this.showValidationError(validationError); this.editInput.select(); this.editInput.focus(); return false; } var save =3D true; if (inputVal =3D=3D '') inputVal =3D '-'; // confirm if OK to delete or null grade if (inputVal =3D=3D '-'){ if (this.editGridcell.v =3D=3D '-'){ save =3D false; } else { var msg =3D = (this.editGridcell.isOverride()?'confirmRevertMsg':'confirmNullMsg'); save =3D confirm(GradebookUtil.getMessage(msg)); } } if (save){ // send update to server this.editGridcell.update(inputVal); =09 // show saving message this.addSavingDiv(); =09 } } this.hideValidationError(); this.isEditing =3D false; this.editGridcell =3D null; this.viewDiv.style.display =3D "block"; if (!doNotSetFocus){ this.titleAnchor.focus(); } this.editDiv.style.display =3D "none"; return true; }, hasUncommittedChanges: function(evt){ return (this.isEditing && this.editInput.value !=3D = this.editGridcell.getEditValue()); },=09 //************ rendering logic ******************************* renderHTML: function(gridCell) { var anchorVal; var altVal; if (gridCell.savingDiv){ this.showSavingDiv(gridCell.savingDiv); gridCell.savingDiv.htmlCell =3D this.htmlCell; } else if (gridCell.isExempt()){ anchorVal =3D gridImages.exemptGrade; altVal =3D gridCell.getAltValue(); } else if (gridCell.needsGrading() && !gridCell.isOverride()){ anchorVal =3D gridImages.needsGrading; } else if (gridCell.attemptInProgress() && !gridCell.isOverride()){ anchorVal =3D gridImages.attemptInProgress; } else if (gridCell.isComplete()){ anchorVal =3D gridCell.getCellValue(); altVal =3D GradebookUtil.getMessage('completedMsg'); } else if ( this.grid.options.accessibleMode && gridCell.isGrade() && = !gridCell.isGraded() ) { anchorVal =3D gridImages.noGrade; altVal =3D gridCell.getAltValue(); } else { anchorVal =3D gridCell.getCellValue(); altVal =3D gridCell.getAltValue(); } if (anchorVal !=3D undefined){ if (this.col =3D=3D 1 && !gridCell.isAvailable()){ anchorVal =3D gridImages.studentUnavailable+" "+anchorVal; } if (gridCell.isModified()){ anchorVal =3D gridImages.gradeModified+" "+anchorVal; } if (anchorVal.blank()){ anchorVal =3D ' ' } if (this.titleAnchor){ this.titleAnchor.innerHTML =3D anchorVal; this.titleAnchor.title =3D altVal; } } }, renderHeaderCellHTML: function( colDef ) { var anchorVal =3D ''; var title =3D colDef.name.unescapeHTML(); // IE hack so that unicode are properly escaped this.dataDiv.innerHTML =3D title; this.dataDiv.title =3D this.dataDiv.innerHTML; if (!colDef.isVisibleToStudents()){ anchorVal +=3D gridImages.itemNotVisible; } if (colDef.isPublic()){ anchorVal +=3D gridImages.externalGrade; } if (colDef.hasError()){ anchorVal +=3D gridImages.gradingError; } anchorVal +=3D title; this.dataDiv.innerHTML =3D anchorVal; }, =09 =20 addSavingDiv: function() { // create a "Saving" message by cloning the existing message var savingDiv =3D $("saveDiv").cloneNode(true); document.body.appendChild(savingDiv); // associate savingDiv with gridCell so saving message will scroll = with gridCell var gridCell =3D this.editGridcell; if (!gridCell) gridCell =3D this.getGridCell(); gridCell.savingDiv =3D savingDiv; savingDiv.gridCell =3D gridCell; savingDiv.htmlCell =3D this.htmlCell; =09 // store savingDivs in a class-level array to allow hiding all = savingDivs before scrolling refresh if (!Gradebook.CellController.prototype.savingDivs){ Gradebook.CellController.prototype.savingDivs =3D new Array(); } Gradebook.CellController.prototype.savingDivs.push(savingDiv); =09 // show the savingDiv on top of htmlCell this.showSavingDiv(savingDiv); =09 // show div for a period of time, then hide/remove it if grade change = has been committed on server setTimeout(function(){ var gc =3D savingDiv.gridCell; if (gc.isUncommitted){ savingDiv.timerExpired =3D true; } else { savingDiv.style.display =3D 'none'; savingDiv.parentNode.removeChild(savingDiv); gc.savingDiv =3D null; savingDiv.htmlCell.controller.renderHTML(gc); } },1000); }, showSavingDiv: function(savingDiv){ var pos =3D Element.cumulativeOffset( this.htmlCell ); savingDiv.style.top =3D pos.top + "px"; savingDiv.style.left =3D pos.left + "px"; if ( !this.htmlCell ) return;=20 savingDiv.style.minWidth =3D this.htmlCell.offsetWidth + "px"; savingDiv.style.minHeight =3D this.htmlCell.offsetHeight + "px"; savingDiv.style.display =3D "block"; }, hideAllSavingDivs: function(){ var savingDivs =3D Gradebook.CellController.prototype.savingDivs; if (!savingDivs) return; for (var i =3D savingDivs.length-1; i >=3D 0; i--){ if (!savingDivs[i].parentNode){ // remove div if no longer in document savingDivs.splice(i,1);=20 } else { savingDivs[i].style.display =3D 'none'; } } }, =09 removeAllSavingDivs: function(){ var savingDivs =3D Gradebook.CellController.prototype.savingDivs; if (!savingDivs) return; for (var i =3D savingDivs.length-1; i >=3D 0; i--){ var savingDiv =3D savingDivs[i]; if (savingDiv.gridCell) { savingDiv.gridCell.savingDiv =3D null; savingDiv.gridCell =3D null; savingDiv.htmlCell =3D null; } if (!savingDivs[i].parentNode){ // remove div if no longer in document savingDivs.splice(i,1);=20 } else { savingDivs[i].style.display =3D 'none'; } } }, =09 showValidationError: function(error) { var errDiv =3D $("errorDiv"); var p =3D GradebookUtil.getChildElementByClassName(errDiv, 'p', = 'errorDiv2'); p.innerHTML =3D error; errDiv.style.display =3D "block"; var pos =3D GradebookUtil._toAbsolute(this.htmlCell, false, = errDiv.offsetParent ); errDiv.style.top =3D pos.y + this.htmlCell.offsetHeight + "px"; errDiv.style.left =3D pos.x -1 + "px"; Element.addClassName(this.htmlCell, "cellError"); }, =09 hideValidationError: function() { var errDiv =3D $("errorDiv"); errDiv.style.display =3D "none"; Element.removeClassName(this.htmlCell, "cellError"); }, =09 hasContextMenu: function() { if ( this.isTopLeft ){ return true; } else { return (this.getGridCell().getContextMenuInfo(this) !=3D null); } }, =09 onMouseOver: function(evt) { if (!this.htmlCell || this.htmlCell.className =3D=3D "cellClick") = return; var hascm =3D this.hasContextMenu(); Element.addClassName(this.htmlCell, hascm?"cellhigh":"cellhighNoCM") var rowElement =3D this.htmlCell.parentNode; if (rowElement.className !=3D "focusRowHigh"){ Element.addClassName(rowElement, "rowhigh"); } }, =20 =09 onMouseOut: function(evt) { if (!this.htmlCell || this.htmlCell.className =3D=3D "cellClick") = return; Element.removeClassName(this.htmlCell, "cellhigh") Element.removeClassName(this.htmlCell, "cellhighNoCM") var rowElement =3D this.htmlCell.parentNode; if (rowElement.className !=3D "focusRowHigh"){ Element.removeClassName(rowElement, "rowhigh"); } }, =09 onHeaderMouseOut: function( evt ) { if ( Gradebook.CellController.currentSelectedCell ) { var selectedCell =3D = Gradebook.CellController.currentSelectedCell.controller; selectedCell.setTaskbarInfo( selectedCell.getGridCell() ); } else { GradebookViewSpreadsheet.clearTaskBar(); } }, //************ context menu logic ******************************* onContextMenuClicked: function(evt) { GradebookUtil.debug('onContextMenuClicked'); Gradebook.CellController.prototype.closePopups(evt); var gridCell =3D this.getGridCell(); var menuInfo =3D gridCell.getContextMenuInfo(this); if (menuInfo) { this.setContextMenuInfo(menuInfo); } Event.stop( evt ); }, onCloseContextMenu: function(evt) { Event.stop( evt ); if ( GradebookUtil.isIE() ){ if ( !this.isHeaderCell() )=20 { this.selectCell(); } else { this.contextMenuAnchor.focus(); } } else { this.contextMenuAnchor.focus(); } this.contextMenuDiv.hide(); $("shimDiv").hide(); }, =09 onContextMenuTabPress: function(evt, withShift) {=09 var ek =3D evt.keyCode || evt.which; if ( (ek =3D=3D Event.KEY_TAB) && ( withShift =3D=3D evt.shiftKey ) = ) { this.onCloseContextMenu(evt); Event.stop( evt ); } }, =20 =09 onContextMenuKeyDown: function(evt) {=09 var key =3D evt.keyCode || evt.which; if ( key =3D=3D Event.KEY_UP ) { =20 var elem =3D Event.element ( evt ); var index =3D this.menuItemLinks.indexOf( elem ); if ( index > 0 ) { this.menuItemLinks[index - 1].focus(); }=20 Event.stop( evt ); } else if ( key =3D=3D Event.KEY_DOWN ) { var elem =3D Event.element ( evt ); var index =3D this.menuItemLinks.indexOf( elem ); if ( index < ( this.menuItemLinks.length - 1 ) ) { this.menuItemLinks[index + 1].focus(); } =20 Event.stop( evt ); } else if ( key =3D=3D Event.KEY_ESC ) { this.onCloseContextMenu(evt); Event.stop( evt ); } }, =20 =09 setContextMenuInfo: function(menuInfo) { this.contextMenuId =3D menuInfo.id; var menuDiv =3D $(this.contextMenuId); this.contextMenuDiv =3D menuDiv; var firstItem =3D null; var lastItem =3D null; if (menuDiv.onkeydownHandler){ Event.stopObserving(menuDiv, 'keydown', menuDiv.onkeydownHandler); } menuDiv.onkeydownHandler =3D = this.onContextMenuKeyDown.bindAsEventListener( this ); Event.observe( menuDiv, "keydown", menuDiv.onkeydownHandler ); =09 this.menuItemLinks =3D new Array(); var onCloseHandler =3D = this.onCloseContextMenu.bindAsEventListener(this); menuInfo.items.push({id: 'close_'+menuInfo.id, visible:true, onclick: onCloseHandler}); menuInfo.items.each(function(mi) { var itemLink =3D $(mi.id);=20 itemLink.parentNode.style.display =3D (mi.visible)?"block":"none"; if (mi.visible) { this.menuItemLinks.push( itemLink ); } // remove previous click handler, if any if (itemLink.onclickHandler){ Event.stopObserving(mi.id, 'click', itemLink.onclickHandler); itemLink.onclickHandler =3D null; } if (mi.onclick && mi.visible){ // add click handler for menu item and save for later removal itemLink.onclickHandler =3D function( evt ) { onCloseHandler( evt ); mi.onclick( evt ); if ( mi.receipt ) { GradebookUtil.showInlineReceipt( gradebook2Messages[mi.receipt] = ); } } Event.observe(mi.id, 'click', itemLink.onclickHandler); } if (!firstItem) firstItem =3D itemLink; lastItem =3D itemLink; }.bind(this)); =09 // Handle tabbing out of the menu if ( lastItem.previousTABListener ) Event.stopObserving( lastItem.id, = 'keydown', lastItem.previousTABListener ); var tabListener =3D = this.onContextMenuTabPress.bindAsEventListener(this, false); lastItem.previousTABListener =3D tabListener; Event.observe( lastItem.id, 'keydown', tabListener ); if ( firstItem.previousTABListener ) Event.stopObserving( = firstItem.id, 'keydown', lastItem.previousTABListener ); var shiftTabListener =3D = this.onContextMenuTabPress.bindAsEventListener(this, true); firstItem.previousTABListener =3D shiftTabListener; Event.observe( firstItem.id, 'keydown', shiftTabListener ); =09 // position and show menu var offset =3D Position.cumulativeOffset( this.contextMenuAnchor); if ( this.grid.options.accessibleMode ) { var tableContainer =3D $( 'table1_accessible_container' ); offset[0] -=3D tableContainer.scrollLeft; offset[1] -=3D tableContainer.scrollTop; } menuDiv.setStyle({display: "block"}); var width =3D menuDiv.getWidth(); var bodyWidth =3D $(document.body).getWidth(); if ( page.util.isRTL() ) { offset[0] =3D offset[0] + this.contextMenuAnchor.getWidth() - width; if ( offset[0] < 0 ) offset[0]=3D 0; } if ( offset[0] + width > bodyWidth ) { offset[0] =3D offset[0] - width + this.contextMenuAnchor.getWidth(); } var ypos =3D offset[1] + this.contextMenuAnchor.getHeight(); menuDiv.setStyle({ left: offset[0] + "px", top: ypos + "px"}); if ( GradebookUtil.isFFonMac() ) GradebookUtil.shimDiv( menuDiv ); (function() { firstItem.focus(); }).defer(); =20 }, =20 =09 //************ comments logic ******************************* addGradeComment: function(evt,colDef) { Event.stop( evt ); // swallow event this.closePopups(); // here rather than on close to fix a UI glitch 1st time the div is = shown GradebookViewSpreadsheet.instructorCommentsResize._reset(); GradebookViewSpreadsheet.studentCommentsResize._reset(); var pos =3D GradebookUtil._toAbsolute(this.htmlCell); var submitCommentsButton =3D $("submitCommentsButton"); if (submitCommentsButton.onclickHandler){ Event.stopObserving(submitCommentsButton, 'click', = submitCommentsButton.onclickHandler); } submitCommentsButton.onclickHandler =3D = this.onSubmitComments.bindAsEventListener(this); = Event.observe(submitCommentsButton,'click',submitCommentsButton.onclickHa= ndler); var commentsDiv =3D $("commentsDiv"); if (commentsDiv.onclickHandler){ Event.stopObserving(commentsDiv, 'click', = commentsDiv.onclickHandler); } commentsDiv.onclickHandler =3D = this.onClickCommentsDiv.bindAsEventListener(this); Event.observe(commentsDiv,'click',commentsDiv.onclickHandler); var ie =3D GradebookUtil.isIE(); var rightedge =3D ie ? document.body.clientWidth: window.innerWidth; var bottomedge =3D ie ? document.body.clientHeight: = window.innerHeight; var offright=3Dfalse; var offbottom=3Dfalse; if( pos.y+commentsDiv.offsetHeight>bottomedge ) offbottom =3D true; if( pos.y-commentsDiv.offsetHeight<0 )offbottom =3D false; if( pos.x+commentsDiv.offsetWidth>rightedge-20 ) offright =3D true; if( offbottom ) { $("commentArrowUp").style.display=3D"none"; $("commentArrowDown").style.display=3D"block"; $("commentArrowDown").className=3D"bubArrowBot"; pos.y=3Dpos.y-commentsDiv.offsetHeight; } else { $("commentArrowUp").style.display=3D"block"; $("commentArrowDown").style.display=3D"none"; $("commentArrowUp").className=3D"bubArrowTop"; } if ( offright ) { $("commentArrowDown").className=3D"bubArrowBot2"; $("commentArrowUp").className=3D"bubArrowTop2"; pos.x=3Dpos.x-200; } commentsDiv.style.top =3D ( pos.y - this.htmlCell.offsetHeight )+"px"; commentsDiv.style.left =3D pos.x+"px"; commentsDiv.style.display=3D"block"; if ( GradebookUtil.isFFonMac() ) GradebookUtil.shimDiv( commentsDiv ); }, onSubmitComments: function() { this.getGridCell().setComments($("studentComments").value, = $("instructorComments").value); this.addSavingDiv(); this.closeComments(); }, onClickCommentsDiv: function(evt) { var eventTarget =3D evt.target ? evt.target : evt.srcElement; Gradebook.CellController.prototype.lastCommentsEventTarget =3D = eventTarget; }, testCommentsOpen: function(evt) { if (!evt) return; var ctrl =3D Gradebook.CellController.prototype; var eventTarget =3D evt.target ? evt.target : evt.srcElement; // if editing comments prompt user to save if click outside comments = div if (parseInt($("commentsDiv").style.display !=3D 'none') &&=20 ctrl.lastCommentsEventTarget !=3D eventTarget) { if = (confirm(GradebookUtil.getMessage('uncommitedCommentChangeErrorMsg'))){ $("submitCommentsButton").onclick(); } else { ctrl.closeComments(); } } }, closeComments: function() { $("commentsDiv").style.display=3D"none"; var submitCommentsButton =3D $("submitCommentsButton"); if (submitCommentsButton.onclickHandler){ Event.stopObserving(submitCommentsButton, 'click', = submitCommentsButton.onclickHandler); submitCommentsButton.onclickHandler =3D null; } var commentsDiv =3D $("commentsDiv"); if (commentsDiv.onclickHandler){ Event.stopObserving(commentsDiv, 'click', = commentsDiv.onclickHandler); commentsDiv.onclickHandler =3D null; } $("shimDiv").style.display=3D"none"; }, //************ miscellaneous ******************************* closePopups: function(evt) { $("gradeHeaderCM").style.display=3D"none"; $("studentInfoHeaderCM").style.display=3D"none"; $("gradeCM").style.display=3D"none"; $("studentInfoCM").style.display=3D"none"; $("infodiv").style.display=3D"none"; $("icondiv_up").style.display=3D"none"; $("icondiv_down").style.display=3D"none"; $("shadow").style.display =3D "none"; if ( Gradebook.doNotCloseAttemptsForm ) { Gradebook.doNotCloseAttemptsForm =3D false; } else { $("clearAttemptsFlyOut").style.display =3D "none"; } Gradebook.CellController.prototype.testCommentsOpen(evt); $("shimDiv").style.display=3D"none"; }, =09 getGradeGridCell: function(){ return this.grid.viewPort.getModelGridCell(this.row, this.col); }, =09 getHeaderGridCell: function(){ return this.grid.viewPort.getHeaderGridCell(this.col); }, =09 closePopupsAndRestoreFocus: function(evt) { var ctrl =3D Gradebook.CellController.prototype; ctrl.closePopups(evt); var eventTarget =3D evt.target ? evt.target : evt.srcElement; if (ctrl.lastEventTarget =3D=3D eventTarget){ ctrl.tableHasFocus =3D true; } else if (ctrl.tableHasFocus) { ctrl.unselectCurrentCell(); ctrl.tableHasFocus =3D false; } }, showClearAttemptsFlyOut: function( event, colDef ) { var linkElement =3D $('gh_clearAllAttempts'); var offset =3D Position.cumulativeOffset( linkElement ); var formDiv =3D $('clearAttemptsFlyOut'); var width =3D formDiv.getWidth(); var bodyWidth =3D $(document.body).getWidth(); // reposition form if it goes off the screen // align right edge of flyout form with link button if ( offset[0] + width > bodyWidth ) { offset[0] =3D (offset[0] + linkElement.getWidth()) - width; } formDiv.setStyle({ left: offset[0] + "px", top: ( offset[1] - Gradebook.Grid.pageHeightOffset ) + "px", display: "block" }); $("gradeHeaderCM").hide(); // restoring default values if ( Gradebook.clearAttemptsFormDefault ) { $('selectOption').value =3D = Gradebook.clearAttemptsFormDefault.defaultSelect; $('dp_bbDateTimePicker_start_date').value =3D = Gradebook.clearAttemptsFormDefault.defaultStartDate; $('dp_bbDateTimePicker_end_date').value =3D = Gradebook.clearAttemptsFormDefault.defaultEndDate; $('bbDateTimePickerstart').value =3D = Gradebook.clearAttemptsFormDefault.defaultStartDateHidden; $('bbDateTimePickerend').value =3D = Gradebook.clearAttemptsFormDefault.defaultEndDateHidden; } $('clearAttemptsOptionSelect').checked =3D true; $('clearAttemptsFlyOutSubmit').onclick =3D = this.onSubmitClearAttempts.bindAsEventListener( this ) ; =20 Event.stop( event ); }, onSubmitClearAttempts: function( event ) { Event.stop( event ); if ( !confirm( gradebook2Messages.clearAttemptConfirmMsg ) ) return = false; if ( $('clearAttemptsOptionSelect').checked ) { this.getGridCell().clearAttempts( $('selectOption').value ); } else { var startDate =3D $('bbDateTimePickerstart').value; var endDate =3D $('bbDateTimePickerend').value; this.getGridCell().clearAttemptsByDate(startDate, endDate); } return false; }, viewColumnInfo: function(evt,colDef) { Event.stop( evt ); // swallow event this.closePopups(evt); var info =3D colDef.getInfo(); info.each(function(ii) { $(ii.id).innerHTML =3D " "+ii.value; }); var pos =3D GradebookUtil._toAbsolute(this.htmlCell); var infoDiv =3D $('infodiv'); var ie =3D GradebookUtil.isIE(); var rightedge =3D ie ? document.body.clientWidth: = window.innerWidth; if(pos.x+infoDiv.offsetWidth>rightedge-20){ pos.x=3Dpos.x-infoDiv.offsetWidth+50; $("bubbleArrowTop").className=3D"bubArrowTop2"; }else{ $("bubbleArrowTop").className=3D"bubArrowTop"; } infoDiv.style.top =3D ( pos.y - this.htmlCell.offsetHeight ) + "px"; infoDiv.style.left =3D pos.x+"px"; infoDiv.style.display =3D "block"; if ( GradebookUtil.isFFonMac() ) GradebookUtil.shimDiv( infoDiv ); }, sendEmail: function(type,studentIds){ var sendEmailFunc =3D this.grid.options.sendEmailFunc; if (sendEmailFunc) { sendEmailFunc(type,studentIds); } }, onGridScroll: function(){ this.closePopups(); this.unselectCurrentCell(); } };=09 var GradebookUtil =3D { isValidFloat: function ( n ) { var n =3D ''+n; var trimmedVal =3D n.strip(); var numberFormatDecimalPoint =3D null; if ( window.LOCALE_SETTINGS ) { numberFormatDecimalPoint =3D = LOCALE_SETTINGS.getString('number_format.decimal_point'); } else { numberFormatDecimalPoint =3D = page.bundle.getString('number_format.decimal_point'); } if (trimmedVal.endsWith( numberFormatDecimalPoint )) trimmedVal +=3D = '0'; var numFormat =3D '^[-]?[0-9]*(\\.[0-9]+)?$'; var re =3D new RegExp( numFormat );=09 var isValidNum =3D trimmedVal.search( re ) =3D=3D 0; return isValidNum; }, =20 showInlineReceipt: function( message ) { window.location.href =3D = viewSpreadsheetURL+'&inline_receipt_message=3D'+message; }, =20 formatStudentName: function ( student ) { var nameTemplate =3D new = Template(GradebookUtil.getMessage('userNameTemplate')); var nameData =3D {first:student.first, last:student.last, = user:student.user}; return nameTemplate.evaluate(nameData); }, =20 isIE: function () { return navigator.userAgent.toLowerCase().indexOf("msie") >=3D 0; }, isNS7: function () { return navigator.userAgent.toLowerCase().indexOf("netscape/7") = >=3D 0; }, =20 isFFonMac: function() { return GradebookUtil.isMac() && GradebookUtil.isFirefox(); }, =20 isFirefox: function() { return (navigator.userAgent.toLowerCase().indexOf("firefox") !=3D = -1); }, =20 isMac: function() { return (navigator.userAgent.toLowerCase().indexOf("mac") !=3D -1); }, =20 trimId: function( primaryKey ) { if ( primaryKey.charAt(0) !=3D '_' ) return primaryKey; return primaryKey.slice(1, primaryKey.lastIndexOf('_') ); }, getMessage: function (key) { if ( Gradebook.getModel() ){ return Gradebook.getModel().getMessage(key); } else { // in case the model is not loaded but we are on the grid page if ( gradebook2Messages && gradebook2Messages[ key ] ) return = gradebook2Messages[ key ]; return key; } }, getElementsComputedStyle: function ( htmlElement, cssProperty, = mozillaEquivalentCSS) { if ( arguments.length =3D=3D 2 ) mozillaEquivalentCSS =3D cssProperty; var el =3D $(htmlElement); if ( el.currentStyle ) return el.currentStyle[cssProperty]; else return document.defaultView.getComputedStyle(el, = null).getPropertyValue(mozillaEquivalentCSS); }, toViewportPosition: function(element) { return this._toAbsolute(element,true); }, /** * Compute the elements position in terms of the window viewport * so that it can be compared to the position of the mouse (dnd) * This is additions of all the offsetTop,offsetLeft values up the * offsetParent hierarchy, ...taking into account any scrollTop, * scrollLeft values along the way... * * Note: initially there was 2 implementations, one for IE, one for = others. * Mozilla one seems to fit all though (tested XP: FF2,IE7, OSX: = FF2, SAFARI) **/ _toAbsolute: function(element,accountForDocScroll, topParent ) { return = this._toAbsoluteMozilla(element,accountForDocScroll,topParent); }, /** * Mozilla did not report all of the parents up the hierarchy via = the * offsetParent property that IE did. So for the calculation of the * offsets we use the offsetParent property, but for the calculation = of * the scrollTop/scrollLeft adjustments we navigate up via the = parentNode * property instead so as to get the scroll offsets... * **/ _toAbsoluteMozilla: function(element,accountForDocScroll, topParent) = { var x =3D 0; var y =3D 0; var parent =3D element; while ( parent && ( !topParent || parent!=3DtopParent ) ) { x +=3D parent.offsetLeft; y +=3D parent.offsetTop; parent =3D parent.offsetParent; } parent =3D element; while ( parent && parent !=3D document.body && parent !=3D document.documentElement && ( !topParent || parent!=3DtopParent ) ) { if ( parent.scrollLeft ) x -=3D parent.scrollLeft; if ( parent.scrollTop ) y -=3D parent.scrollTop; parent =3D parent.parentNode; } if ( accountForDocScroll ) { x -=3D this.docScrollLeft(); y -=3D this.docScrollTop(); } return { x:x, y:y }; }, docScrollLeft: function() { if ( window.pageXOffset ) return window.pageXOffset; else if ( document.documentElement && = document.documentElement.scrollLeft ) return document.documentElement.scrollLeft; else if ( document.body ) return document.body.scrollLeft; else return 0; }, docScrollTop: function() { if ( window.pageYOffset ) return window.pageYOffset; else if ( document.documentElement && = document.documentElement.scrollTop ) return document.documentElement.scrollTop; else if ( document.body ) return document.body.scrollTop; else return 0; }, getChildElementByClassName: function(parent, childTag, = childClassName){ var children =3D parent.getElementsByTagName(childTag); if (!children || children.length =3D=3D 0) return null; for (var i =3D 0; i < children.length; i++){ if (children[i].className.indexOf(childClassName) >=3D 0){ return children[i]; } } return null; }, =09 setChildElementTextByClassName: function(parent, childTag, = childClassName, text){ var child =3D GradebookUtil.getChildElementByClassName(parent, = childTag, childClassName); if (child =3D=3D null) return; child.innerHTML =3D text; }, =09 getLogger: function() { if (window.gbModel) return gbModel.getLogger(); // in case current = scope owns gbModel if (parent.gbModel) return parent.gbModel.getLogger(); }, debug: function(s) { var logger =3D this.getLogger(); if (logger) { logger.debug(s); } }, error: function(s) { var logger =3D this.getLogger(); if (logger) { logger.error(s); } }, =09 //on firefox/mac scroll bars will show ontop of anything if not shimmed shimDiv: function( menuDiv ) { var shimIFrame =3D $('shimDiv'); if (!shimIFrame) return; shimIFrame.style.width =3D menuDiv.offsetWidth; shimIFrame.style.height =3D menuDiv.offsetHeight; var position =3D Position.page(menuDiv); shimIFrame.style.top =3D position[1]; shimIFrame.style.left =3D position[0]; shimIFrame.style.zIndex =3D 2; shimIFrame.style.display =3D "block"; =20 }, =20 clearShim: function() { if ( $("shimDiv") ) $("shimDiv").style.display=3D"none"; } }; ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/gradebook/js/gradebookgridmodel.js?v=9.0.440.7 /** * Gradebook data grid * * PORTIONS OF THIS FILE ARE BASED ON RICO LIVEGRID 1.1.2 * * Copyright 2005 Sabre Airline Solutions * * Licensed under the Apache License, Version 2.0 (the "License"); you = may not use this * file except in compliance with the License. You may obtain a copy = of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software = distributed under the * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR = CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific = language governing permissions * and limitations under the License. * * @author "Bill Richard" * @version $Revision: #9 $ $Date: 2007/02/12 $ * * **/ // Gradebook.GridModel = ----------------------------------------------------- Gradebook.GridModel =3D Class.create(); Gradebook.GridModel.prototype =3D { initialize: function(gradebookService) { this.gradebookService =3D gradebookService; this.courseId =3D gradebookService.courseId; this.rows =3D new Array(); this.colDefs =3D new Array(); this.colOrderMap =3D new Array(); this.customViews =3D new Array(); this.listeners =3D new Array(); this.accessibleMode =3D false; this.resizingWindow =3D false; this.minimumRows =3D 10; this.isolatedStudentId =3D ''; }, getCustomViews: function() { this.customViews.sort( function(a,b){ var aa =3D a.name.toLowerCase(); var bb =3D b.name.toLowerCase(); if (aa =3D=3D bb) return 0; else if (aa < bb) return -1; else return 1; } ); return this.customViews; }, =09 // notify registered listeners that model data has changed fireModelChanged: function() { for (var i =3D 0; i < this.listeners.length; i++){ this.listeners[i].modelChanged(); } }, // notify registered listeners that model error has occured fireModelError: function( exception, serverReply) { for (var i =3D 0; i < this.listeners.length; i++){ if (this.listeners[i].modelError){ this.listeners[i].modelError( exception, serverReply); } } }, addModelListener: function(listener) { this.listeners.push(listener); }, removeModelListeners: function() { this.listeners =3D new Array(); }, updateGrade: function( newValue, newTextValue, userId, colDefId) { = this.gradebookService.updateGrade((this.updateGradeCallback).bind(this), = this.version, newValue, newTextValue, userId, colDefId); }, deleteColumn: function(colDefId) { this.gradebookService.deleteColumn(colDefId); }, modifyColumn: function(colDefId, colType) { this.gradebookService.modifyColumn(colDefId, colType); }, =09 =09 viewItemStats: function(itemId) { this.gradebookService.viewItemStats(itemId); }, viewSingleStudentGrades: function(userId) { this.isolatedStudentId =3D userId; this.gradebookService.reloadGrid(); }, =09 restoreFromSingleStudentView: function() { this.isolatedStudentId =3D ''; this.gradebookService.reloadGrid(); }, =09 viewStudentStats: function(userId) { this.gradebookService.viewStudentStats(userId); }, =09 viewAdaptiveRelease: function(userName) { this.gradebookService.viewAdaptiveRelease(userName); }, =09 hideColumn: function(colDefId) { this.gradebookService.hideColumn(colDefId); }, showGradeDetails: function(userId, colDefId){ this.gradebookService.showGradeDetails( userId, colDefId ); }, onAddComment: function(userId, colDefId){ this.gradebookService.loadComments( userId, colDefId, = "studentComments", "instructorComments" ); }, =09 exemptGrade: function(userId, colDefId){ this.gradebookService.setExemption( = (this.updateGradeCallback).bind(this), this.version, userId, colDefId, = true ); }, clearExemption: function(userId, colDefId){ this.gradebookService.setExemption( = (this.updateGradeCallback).bind(this), this.version, userId, colDefId, = false ); }, setComments: function(userId, colDefId, studentComments, = instructorComments){ this.gradebookService.setComments( userId, colDefId, studentComments, = instructorComments ); }, =09 getRowByUserId: function(userId) { var rows =3D this.rows; for (var i =3D 0, len =3D rows.length; i < len; i++){ if (rows[i][0].getUserId() =3D=3D userId) return rows[i]; } return null; }, =09 _getGradesForItemId: function(itemId, includeUnavailable) { var grades =3D new Array() var colIndex =3D this.colDefMap[itemId]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _getGradesForItemId contains data for = invalid column id: '+itemId); return grades; } var rows =3D this.rows; for (var i =3D 0, len =3D rows.length; i < len; i++){ var grade =3D rows[i][colIndex]; if (includeUnavailable || grade.isAvailable()){ grades.push( grade ); } } return grades; }, updateGradeCallback: function(retData) { if (!retData || retData.length =3D=3D 0){ GradebookUtil.error('GridModel error updating grade'); return; } for (var i =3D 0, len =3D retData.length; i < len; i++) { var data =3D retData[i]; var colDefId =3D data.itemId; var userId =3D data.courseUserId; var score =3D data.score; var textInput =3D data.textInput; var row =3D this.getRowByUserId(userId); var colIndex =3D this.colDefMap[colDefId]; if (colIndex =3D=3D undefined){ // ignore continue; } var gridCell =3D row[colIndex]; gridCell.tv =3D textInput; if (textInput.length =3D=3D 0 && score =3D=3D 0){ gridCell.v =3D '-'; } else { gridCell.v =3D score; } gridCell.gc =3D (data.modified)?"y":null; gridCell.or =3D (data.override)?"y":null; gridCell.x =3D (data.exempt)?"y":null; gridCell.mp =3D data.points; gridCell.isUncommitted =3D false; var savingDiv =3D gridCell.savingDiv; if (savingDiv && savingDiv.timerExpired && savingDiv.parentNode){ savingDiv.style.display =3D 'none'; savingDiv.parentNode.removeChild(savingDiv); gridCell.savingDiv =3D null; } =09 } this.fireModelChanged(); }, // called to load model with server data=20 requestLoadData: function() { GradebookUtil.debug('GridModel requestLoadData called'); this.lastUpdateTS =3D new Date().getTime(); this.gradebookService.requestLoadData( (this._loadDataFromJSON).bind(this), (this._reportError).bind(this), (this._reportException).bind(this)); }, // called to update model with server data=20 requestUpdateData: function() { var timeSinceLastUpdate =3D new Date().getTime() - this.lastUpdateTS; // don't update if window is resizing and we've reloaded in the last 5 = minutes if (this.resizingWindow && ( timeSinceLastUpdate < 5*60*1000) ){ this.fireModelChanged(); return;=20 } this.lastUpdateTS =3D new Date().getTime(); GradebookUtil.debug('GridModel requestUpdateData called'); var customViewId =3D null; if (this.currentCustomView && this.currentCustomView.usesGroups()){ customViewId =3D this.currentCustomView.id; } this.gradebookService.requestUpdateData(this.version, = this.lastUserChangeTS, this.usersHash, customViewId, (this._updateDataFromJSON).bind(this), (this._reportError).bind(this), (this._reportException).bind(this)); }, setResizingWindow: function(f) { this.resizingWindow =3D f; }, getResizingWindow: function() { return this.resizingWindow; }, setMinimumRows: function( minRows ) { if ( minRows < 5 ) minRows =3D 5; if ( minRows > 50 ) minRows =3D 50; this.minimumRows =3D minRows; }, =09 getMinimumRows: function() { return this.minimumRows; }, _reportException: function(e) { GradebookUtil.error('exception getting data from server: '+ = e.message); }, _reportError: function(t) { GradebookUtil.error('error getting data from server: '+ t.status + ' = -- ' + t.statusText); }, =09 getVisibleColDefIndex: function(id) { var colnum =3D this.colDefMap[id];=20 if (colnum =3D=3D=3D undefined || this.colDefs[colnum] =3D=3D=3D = undefined || !this.colDefs[colnum].gbvis ){ return -1; } for (var i =3D 0, len =3D this.colOrderMap.length; i < len; i++){ if (this.colOrderMap[i] =3D=3D colnum) return i; } return -1; }, // callback when initializing this gradebook model with server data _loadDataFromJSON: function(reply) { GradebookUtil.debug('GridModel _loadDataFromJSON called'); try { var jsonBook =3D eval('(' + reply.responseText + ')'); } catch (e) { this.fireModelError(e, reply.responseText); return; } try { this.schemaMap =3D new Array(); for (var i =3D 0; i < jsonBook.schemas.length; i++){ jsonBook.schemas[i] =3D this._createSchema(jsonBook.schemas[i].type, = jsonBook.schemas[i]); this.schemaMap[jsonBook.schemas[i].id] =3D jsonBook.schemas[i]; } this.colDefMap =3D new Array(); for (var i =3D 0; i < jsonBook.colDefs.length; i++){ jsonBook.colDefs[i] =3D this._createColDef( jsonBook.colDefs[i], = this, this.schemaMap ); this.colDefMap[jsonBook.colDefs[i].id] =3D i; } for (var i =3D 0; i < jsonBook.rows.length; i++){ jsonBook.rows[i] =3D this._loadRowDataFromJSON(jsonBook.rows[i], = jsonBook.colDefs, this.colDefMap); } this.customViewMap =3D new Array(); =09 if (jsonBook.customViews){ for (var i =3D 0; i < jsonBook.customViews.length; i++){ jsonBook.customViews[i] =3D new Gradebook.CustomView( = jsonBook.customViews[i], this ); this.customViewMap[jsonBook.customViews[i].id] =3D i; } } this.groupsMap =3D new Array(); if (jsonBook.groups){ for (var i =3D 0; i < jsonBook.groups.length; i++){ this.groupsMap[jsonBook.groups[i].id] =3D i; } } this._buildCategoryNameMap( jsonBook ); Object.extend(this, jsonBook); // assign json properties to this = object this._buildGradingPeriodMap(); if ( this.customViewIdParam !=3D null && = this.customViewIdParam.length > 0 ) { this._internalChangeCurrentView( 'cv_' + this.customViewIdParam ); } else if (this.defCVID) { this._internalChangeCurrentView( 'cv_' + this.defCVID ); } else if (this.defGPID){ this._internalChangeCurrentView( this.defGPID ); } =09 this._setStudentInfoLayout(); this._updateVisibleRows(jsonBook); this.sortColumns(); if (this.colDefMap['LN'] !=3D undefined){ this.sortColumnId =3D 'LN'; this.sortDir =3D 'ASC'; this.reSort(); } this.fireModelChanged(); } catch (e) { this.fireModelError(e); } }, =09 // callback when updating this gradebook model with server data _updateDataFromJSON: function(reply) { GradebookUtil.debug('GridModel _updateDataFromJSON called'); try { var jsonBook =3D eval('(' + reply.responseText + ')'); } catch (e) { this.fireModelError(e, reply.responseText); return; } try { // need to reinitialize if new users added to pick up existing grades // when a user is re-enabled if (this._hasNewUsers(jsonBook)) { this.requestLoadData(); return; } this.version =3D jsonBook.version; this.lastUserChangeTS =3D jsonBook.lastUserChangeTS; this.usersHash =3D jsonBook.usersHash; this.numFrozenColumns =3D jsonBook.numFrozenColumns; this.gradingPeriods =3D jsonBook.gradingPeriods; this.categories =3D jsonBook.categories; this._buildCategoryNameMap( jsonBook ); this.studentInfoLayouts =3D jsonBook.studentInfoLayouts; this.pubColID =3D jsonBook.pubColID; this.defCVID =3D jsonBook.defCVID; this.defGPID =3D jsonBook.defGPID; if (jsonBook.schemas){ for (var i =3D 0; i < jsonBook.schemas.length; i++){ // create a new schema if one with same id does not already exists var schema =3D this.schemaMap[jsonBook.schemas[i].id];=20 if (schema =3D=3D=3D undefined){ schema =3D this._createSchema(jsonBook.schemas[i].type, = jsonBook.schemas[i]); this.schemaMap[jsonBook.schemas[i].id] =3D schema; } else { Object.extend(schema, jsonBook.schemas[i]); } } } if (jsonBook.groups){ if (!this.groupsMap || !this.groups || this.groups.length =3D=3D 0){ this.groupsMap =3D new Array(); this.groups =3D jsonBook.groups; for (var i =3D 0; i < jsonBook.groups.length; i++){ this.groupsMap[jsonBook.groups[i].id] =3D i; } } else { for (var i =3D 0; i < jsonBook.groups.length; i++){ var group =3D this.groupsMap[jsonBook.groups[i].id];=20 if (group =3D=3D=3D undefined){ this.groupsMap[jsonBook.groups[i].id] =3D this.groups.length; this.groups.push( jsonBook.groups[i] ); } else { this.groups[group] =3D jsonBook.groups[i]; } } } } if (jsonBook.colDefs){ for (var i =3D 0; i < jsonBook.colDefs.length; i++){ // create a new colDef if one with same id does not already exists var colIndex =3D this.colDefMap[jsonBook.colDefs[i].id]; if (colIndex =3D=3D undefined){ if ( jsonBook.colDefs[i].deleted ) continue; this.colDefMap[jsonBook.colDefs[i].id] =3D this.colDefs.length; this.colDefs.push(this._createColDef( jsonBook.colDefs[i], this, = this.schemaMap )); } else { var colDef =3D this.colDefs[colIndex];=20 colDef.comput_err =3D false; Object.extend(colDef, jsonBook.colDefs[i]); // clear all grades in column if computation error for column if (jsonBook.colDefs[i].comput_err){ var grades =3D this._getGradesForItemId(jsonBook.colDefs[i].id, = true); for (var g =3D 0; g < grades.length; g++){ grades[g].initialize( grades[g].colDef, grades[g].metaData); } } if (colDef.deleted){ this.colDefMap[colDef.id] =3D null; } if (colDef.sid){ colDef.primarySchema =3D this.schemaMap[colDef.sid]; } if (colDef.ssid && colDef.ssid.length > 0){ colDef.secondarySchema =3D this.schemaMap[colDef.ssid]; } else { colDef.secondarySchema =3D null; } } } } // need to add any new row data? while (this.rows.length > 0 && this.colDefs.length > = this.rows[0].length){ var colDefIndex =3D this.rows[0].length; for (var i =3D 0; i < this.rows.length; i++){ var metaData =3D this.rows[i][0].metaData; var colDef =3D this.colDefs[colDefIndex]; if ( colDef instanceof Gradebook.GradeColDef )=20 this.rows[i].push(new Gradebook.Grade( colDef, metaData )); else this.rows[i].push(new Gradebook.StudentAttribute( colDef, metaData = )); } } if (jsonBook.rows){ // users changed, need to resync if (jsonBook.type =3D=3D "delta_with_user"){ // remove rows from model that are not in json data var tempArray =3D new Array(); for (var i =3D 0; i < this.rows.length; i++){ if (this._containsUser(jsonBook.rows, = this.rows[i][0].getUserId())) { tempArray.push(this.rows[i]); } } this.rows =3D tempArray; } // add new json rows to model or update existing rows for (var i =3D 0; i < jsonBook.rows.length; i++){ var row =3D this.getRowByUserId(jsonBook.rows[i][0].uid); if (row =3D=3D null){ // new row this.rows.push(this._loadRowDataFromJSON(jsonBook.rows[i], = this.colDefs, this.colDefMap)); } else { this._updateRowDataFromJSON(row, jsonBook.rows[i], this.colDefs, = this.colDefMap); } } } this._buildGradingPeriodMap(); if (jsonBook.customViews){ for (var i =3D 0; i < jsonBook.customViews.length; i++){ // create a new custom view if one with same id does not already = exists var idx =3D this.customViewMap[jsonBook.customViews[i].id];=20 if (idx =3D=3D=3D undefined){ this.customViewMap[jsonBook.customViews[i].id] =3D = this.customViews.length; this.customViews.push(new Gradebook.CustomView( = jsonBook.customViews[i], this )); } else { this.customViews[idx] =3D new Gradebook.CustomView( = jsonBook.customViews[i], this ); } } } // remove any custom views not in customViewIds if (this.customViews){ var tempArray =3D new Array(); this.customViewMap =3D new Array(); for (var i =3D 0; i < this.customViews.length; i++){ if ( jsonBook.customViewIds.indexOf( Number( this.customViews[i].id = ) ) !=3D -1 ) { this.customViewMap[this.customViews[i].id] =3D tempArray.length; tempArray.push(this.customViews[i]); } } this.customViews =3D tempArray; } if (this.customViewIdParam !=3D null && this.customViewIdParam.length = > 0 ) { this._internalChangeCurrentView( 'cv_' + this.customViewIdParam ); } else if (this.currentView) { this._internalChangeCurrentView( this.currentView ); } this._setStudentInfoLayout(); this._updateVisibleRows(jsonBook); this.sortColumns(); this.reSort(); this.checkedNoStudents(); // do this last, it will fireModelChanged } catch (e) { this.fireModelError(e); } }, _buildCategoryNameMap: function( jsonBook ) { this.catNameMap =3D new Array(); if ( jsonBook.categories ) { for (var i =3D 0; i < jsonBook.categories.length; i++){ this.catNameMap[jsonBook.categories[i].id] =3D = jsonBook.categories[i].name; } } }, _updateVisibleRows: function(jsonBook) { var showAll =3D (!jsonBook.hiddenStudentIds || = jsonBook.hiddenStudentIds.length =3D=3D 0); this.visibleRows =3D new Array(); var rows =3D this.rows; // loop through rows and set hidden flag for each row, add to = visibleRows if not hidden for (var i =3D 0, len =3D rows.length; i < len; i++){ var row =3D rows[i]; var isHidden =3D !showAll && ( jsonBook.hiddenStudentIds.indexOf( = Number( row[0].getUserId() ) ) !=3D -1 ); row[0].setHidden( isHidden ); if ( !isHidden ) { this.visibleRows.push( row ); } } this._applyCustomView(); =09 }, updateUserVisibility: function ( userId, visible ) { this.gradebookService.updateUserVisibility( userId, visible ); }, =20 _hasNewUsers: function(jsonBook) { if (!jsonBook || !jsonBook.rows) return false; for (var i =3D 0; i < jsonBook.rows.length; i++){ if (this.getRowByUserId(jsonBook.rows[i][0].uid) =3D=3D null) return = true; } return false; }, _containsUser: function(rows, userId) { for (var i =3D 0; i < rows.length; i++){ if (rows[i][0].uid =3D=3D userId) return true; } return false; }, _createColDef: function(jsonColDef,model,schemaMap) { if (jsonColDef.type =3D=3D "s"){ return new Gradebook.StudentAttributeColDef( jsonColDef, model, = schemaMap ); } else { return new Gradebook.GradeColDef( jsonColDef, model, schemaMap ); } }, _createSchema: function(type,jsonSchema) { if (type =3D=3D "S"){ return new Gradebook.NumericSchema( jsonSchema, this ); } else if (type =3D=3D "X") { return new Gradebook.TextSchema( jsonSchema, this ); } else if (type =3D=3D "P") { return new Gradebook.PercentageSchema( jsonSchema, this ); } else if (type =3D=3D "C") { return new Gradebook.CompleteIncompleteSchema( jsonSchema, this ); } else if (type =3D=3D "T") { return new Gradebook.LetterSchema( jsonSchema, this ); } else { GradebookUtil.debug('GridModel _createSchema invalid type: '+type); return null; } =09 }, _setStudentInfoLayout: function(){ // set pos & gbvis for student attribute columns from = studentInfoLayouts for (var i =3D 0; i < this.studentInfoLayouts.length; i++){ var colIndex =3D this.colDefMap[this.studentInfoLayouts[i].id];=20 if (colIndex =3D=3D=3D undefined){ continue; } var colDef =3D this.colDefs[colIndex]; colDef.gbvis =3D this.studentInfoLayouts[i].gbvis; colDef.pos =3D this.studentInfoLayouts[i].pos; } }, _loadRowDataFromJSON: function(jsonRow, colDefs, colDefMap){ // create a student attribute/grade for each column with a default = blank value var tempRow =3D new Array(); var userId =3D ''; if (jsonRow[0].uid){ userId =3D jsonRow[0].uid; } var metaData =3D new Gradebook.RowMetaData( userId ); // create a gridcell of appropriate type for each column in the row for (var i =3D 0; i < colDefs.length; i++){ if ( colDefs[i] instanceof Gradebook.GradeColDef )=20 tempRow[i] =3D new Gradebook.Grade( colDefs[i], metaData ); else tempRow[i] =3D new Gradebook.StudentAttribute( colDefs[i], metaData = ); } // populate cell data from json - may not include all cells (I.e. null = grades) for (var i =3D 0; i < jsonRow.length; i++){ //use json colDefID to get column index from map var colIndex =3D colDefMap[jsonRow[i].c]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _loadRowDataFromJSON jsonRow contains = data for invalid column id: '+jsonRow[i].c); continue; } //overwrite default value with json value =20 tempRow[colIndex]._loadFromJSON(jsonRow[i]); } return tempRow; }, =09 _updateRowDataFromJSON: function(thisRow, jsonRow, colDefs, colDefMap){ var metaData =3D thisRow[0].metaData; for (var i =3D 0; i < jsonRow.length; i++){ var colIndex =3D colDefMap[jsonRow[i].c]; var grade =3D thisRow[colIndex]; if (grade =3D=3D=3D undefined){ // new grade? if ( colDefs[colIndex] instanceof Gradebook.GradeColDef )=20 grade =3D new Gradebook.Grade( colDefs[colIndex], metaData ); else grade =3D new Gradebook.StudentAttribute( colDefs[colIndex], = metaData ); thisRow.push(grade); } colDefs[colIndex].comput_err =3D false; grade._loadFromJSON(jsonRow[i]); } }, =09 // called by view to get a window of row data // returns iterators to get row data in correct order while skipping = hidden columns getRowIterators: function(startRow, numRows, startCol) { var rows =3D this.visibleRows; if (!startRow) startRow =3D 0; if (!startCol) startCol =3D 0; if (!numRows) numRows =3D rows.length; var endRow =3D startRow + numRows if (startRow < 0 || startRow >=3D rows.length) { GradebookUtil.error('getRowIterators startRow out of range. Max is: = '+rows.length-1+' startRow is: '+startRow); return null; } if (numRows < 0 || numRows > rows.length) { GradebookUtil.error('getRowIterators numRows out of range. Max is: = '+rows.length+' numRows is: '+numRows); return null; } if (startCol < 0 || startCol >=3D this.colOrderMap.length) { GradebookUtil.error('getRowIterators startCol out of range. Max is: = '+this.orderMap.length+' startCol is: '+startCol); return null; } if ( endRow > rows.length){ endRow =3D rows.length GradebookUtil.error('Error: GridModel getRowIterators input args = requesting too much data. startRow =3D '+startRow+' numRows =3D = '+numRows+' rows.length =3D '+rows.length); return null; } var results =3D new Array() var index =3D 0; for ( var i=3DstartRow ; i < endRow; i++ ) { results[index++] =3D new = Gradebook.GridRowIterator(rows[i],this.colOrderMap,startCol); } return results; }, =09 // called by view to get the column definitions // returns iterator to get definitions in correct order while skipping = hidden columns getColDefIterator: function(startCol) { if (!startCol) startCol =3D 0; if (startCol < 0 || startCol >=3D this.colOrderMap.length) { GradebookUtil.error('getColDefIterator startCol out of range. Max is: = '+this.orderMap.length+' startCol is: '+startCol); return null; } return new = Gradebook.GridRowIterator(this.colDefs,this.colOrderMap,startCol); }, =09 // called by view to determine how much vertical scroll is needed getNumRows: function() { if (this.visibleRows) return this.visibleRows.length; else=20 return 0; }, // called by view to determine how much horizontal scroll is needed getNumColDefs: function() { return this.colOrderMap.length; }, // called by view to determine how many columns to freeze getNumFrozenColumns: function() { return this.numFrozenColumns; }, getSortDir: function(){ return this.sortDir; },=20 =09 getSortIndex: function(){ if (this.sortColumnId =3D=3D=3D undefined){ return -1; } var colnum =3D this.colDefMap[this.sortColumnId]; if (colnum =3D=3D=3D undefined){ return -1; } else { var sortColumn =3D this.colOrderMap[colnum]; if (sortColumn =3D=3D=3D undefined || this.colDefs[sortColumn] = =3D=3D=3D undefined || this.colDefs[sortColumn].deleted =3D=3D "Y"){ return -1; } else { return colnum; } } },=20 =09 reSort: function() { if (this.sortColumnId =3D=3D=3D undefined || this.sortDir =3D=3D=3D = undefined) return; var colnum =3D this.getSortIndex(); if (colnum =3D=3D -1) return; this.sort(colnum, this.sortDir); }, setDefaultView: function(view) { this.gradebookService.setDefaultView( view ); },=09 =09 getDefaultView: function() { // do not return a view that does not exist in model if (this.defCVID) { if ( this.customViewMap[ this.defCVID ] ) return 'cv_' + = this.defCVID; return null; } else if (this.defGPID){ if ( this.gradingPeriodMap && !this.gradingPeriodMap[ this.defGPID = ] ) return null; return this.defGPID; } else { return null; } },=09 =09 // changes the current view to a grading period or custom view // returns error string or null if no error changeCurrentView: function(view) { // null out customViewIdParam so that it will not override the view = set by the user next time the page is reloaded this.customViewIdParam =3D null; return this._internalChangeCurrentView(view); }, =09 _internalChangeCurrentView: function(view) { var origView =3D this.currentView; this.currentView =3D view; this.currentCustomView =3D null; this.currentGradingPeriodId =3D null; if (view.startsWith('cv_')){ var idx =3D this.customViewMap[view.substring(3)];=20 if (idx =3D=3D undefined){ if ( this.defCVID ) { var defaultView =3D 'cv_' + this.defCVID; if ( defaultView !=3D view ) { this._internalChangeCurrentView( defaultView ); } else { this.currentView =3D (this.currentView !=3D origView) ? origView = : null; return null; //this.getMessage('custViewDoesNotExistMsg'); } } else if (this.defGPID) { this._internalChangeCurrentView( this.defGPID ); } else { this.currentView =3D (this.currentView !=3D origView) ? origView : = null; return null; //this.getMessage('custViewDoesNotExistMsg'); } } else { if (!this.customViews[idx].evaluate()){ this.currentView =3D (this.currentView !=3D origView) ? origView : = null; return this.getMessage('changesEffectCustViewMsg'); } this.currentCustomView =3D this.customViews[idx]; } } else { if ( this.gradingPeriodMap && !this.gradingPeriodMap[ view ] )=20 { if ( this.defCVID ) { this._internalChangeCurrentView( 'cv_' + this.defCVID = ); } else if (this.defGPID && this.defGPID!=3Dview) { this._internalChangeCurrentView( this.defGPID ); } else { this.currentView =3D (this.currentView !=3D origView) ? origView : = null; this.currentGradingPeriodId =3D null; } return null; } this.currentGradingPeriodId =3D view; } return null; }, _applyCustomView: function() { if ( this.isolatedStudentId ) { this.visibleRows =3D new Array(); var row =3D this.getRowByUserId(this.isolatedStudentId); this.visibleRows.push( row ); } if(this.currentCustomView =3D=3D null || this.currentCustomView = =3D=3D undefined){ return; } this.currentCustomView.evaluate( this ); var userIds =3D this.currentCustomView.getUserIds(); if ( this.isolatedStudentId ) return; this.visibleRows =3D new Array(); // loop through custom view users and add to visibleRows for (var i =3D 0, len =3D userIds.length; i < len; i++){ var row =3D this.getRowByUserId(userIds[i]); if (row) this.visibleRows.push( row ); } }, =09 _buildGradingPeriodMap: function() { this.gradingPeriodMap =3D new Array(); if (this.gradingPeriods){ for (var i =3D 0, len =3D this.gradingPeriods.length; i < len; i++){ this.gradingPeriodMap[this.gradingPeriods[i].id] =3D = this.gradingPeriods[i]; =09 } this.gradingPeriods.sort( function(a,b){ var aa =3D a.name.toLowerCase(); var bb =3D b.name.toLowerCase(); if (aa =3D=3D bb) return 0; else if (aa < bb) return -1; else return 1; } ); } }, getCustomView: function(cvId) { var idx =3D this.customViewMap[cvId];=20 if (idx =3D=3D undefined){ return null; } else { return this.customViews[idx]; } }, getCurrentCustomView: function(cvId) { return this.currentCustomView; }, sortColumns: function(sortBy) { if (this.sortColAscending =3D=3D undefined){ this.sortColAscending =3D true; } =09 if (sortBy){ if (this.currentSortColumnBy =3D=3D sortBy){ this.sortColAscending =3D !this.sortColAscending; } else { this.sortColAscending =3D true; this.currentSortColumnBy =3D sortBy; } } else if (!this.currentSortColumnBy){ this.currentSortColumnBy =3D 'pos'; } var sortFunc =3D null; sortBy =3D this.currentSortColumnBy; if (sortBy =3D=3D 'pos'){ sortFunc =3D this._sortColByPosFunc.bind(this); } else if (sortBy =3D=3D 'categories'){ sortFunc =3D this._sortColByCategoriesFunc.bind(this); } else if (sortBy =3D=3D 'dueDate') { sortFunc =3D this._sortColByDueDateFunc.bind(this); } else if (sortBy =3D=3D 'creationdate') { sortFunc =3D this._sortColByCreationDateFunc.bind(this); } else if (sortBy =3D=3D 'points') { sortFunc =3D this._sortColByPointsFunc.bind(this); } else if (sortBy =3D=3D 'name') { sortFunc =3D this._sortColByNameFunc.bind(this); } =09 var tempColDefs =3D new Array(); =09 if(this.currentCustomView){ var colIds =3D this.currentCustomView.getDisplayItemIds(); tempColDefs =3D this._getVisibleToAll( = this.currentCustomView.includeHiddenItems, colIds ); for (var i =3D 0, len =3D colIds.length; i < len; i++){ var cd =3D this.colDefs[this.colDefMap[colIds[i]]]; tempColDefs.push(cd); } } else { // filter out colDefs that are: deleted, hidden, not in all grading = periods // or not in current grading period for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ var cd =3D this.colDefs[i]; if (cd.deleted || !cd.gbvis) continue; var cgp =3D this.currentGradingPeriodId; var ingp =3D (cgp =3D=3D undefined || cgp =3D=3D cd.gpid || cgp = =3D=3D 'all' || (cgp =3D=3D 'none' && cd.gpid =3D=3D '')); if (cd.visAll || !cd.isGrade() || ingp){ tempColDefs.push(cd); } } } tempColDefs.sort(sortFunc); // compute colOrderMap based on the sorted columns this.colOrderMap =3D new Array(); for (var i =3D 0, len =3D tempColDefs.length, idx =3D 0; i < len; = i++){ this.colOrderMap[idx++] =3D this.colDefMap[tempColDefs[i].id]; } =09 }, _getVisibleToAll: function( includeHidden, excludeIds ) { var tempColDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ var cd =3D this.colDefs[i]; if (excludeIds.indexOf( cd.id ) !=3D -1) continue; var visAll =3D cd.visAll || !cd.isGrade(); if (cd.deleted || !visAll || (!includeHidden && !cd.gbvis)) continue; tempColDefs.push(cd); } return tempColDefs; }, // if both a & b are NOT visible to all, returns null // if both a & b are visible to all, sorts by position // if a is visible to all, returns -1 so visible to all columns come = first // if b is visible to all, returns 1 so visible to all columns come = first _sortVisibleToAll: function(a,b) { var aVisAll =3D a.visAll || !a.isGrade(); var bVisAll =3D b.visAll || !b.isGrade(); if (!aVisAll && !bVisAll) { return null; } else if (aVisAll && bVisAll) { return a.pos - b.pos; } else if (aVisAll) { return -1; } else if (bVisAll) { return 1; } }, _sortColDir: function(result) { return (this.sortColAscending)?result:result*-1; }, _sortColByPosFunc: function(a,b) { var sf =3D this._sortVisibleToAll(a,b); if (sf !=3D null) return sf; var gpPosA =3D (a.gpid.blank())?-1:this.gradingPeriodMap[a.gpid].pos; = var gpPosB =3D (b.gpid.blank())?-1:this.gradingPeriodMap[b.gpid].pos;=09 var res;=09 if (gpPosA =3D=3D gpPosB){ res =3D a.pos - b.pos; } else if (gpPosA >=3D 0 && gpPosB >=3D 0){ res =3D gpPosA - gpPosB; } else if (gpPosB =3D=3D -1) { res =3D -1; } else { res =3D 1; } return this._sortColDir( res ); }, _sortColByPointsFunc: function(a,b) { var sf =3D this._sortVisibleToAll(a,b); if (sf !=3D null) return sf; var aa =3D a.points; var bb =3D b.points; var res;=09 if (aa=3D=3Dbb)=20 res =3D a.cdate - b.cdate; else if (aa=3D this.colOrderMap.length) { GradebookUtil.error('sort colnum out of range. Max is: = '+this.orderMap.length+' colnum is: '+colnum); return; } GradebookUtil.debug('GridModel sort called. colnum: '+colnum+' = sortdir: '+sortdir); this.sortDir =3D sortdir; var sortFunc; if (colnum =3D=3D -1){ this.sortColumnId =3D null; if (sortdir=3D=3D'ASC') sortFunc =3D this._sortCheckedASC.bind(this); else sortFunc =3D this._sortCheckedDESC.bind(this); } else { var sortColumn =3D this.colOrderMap[colnum]; var secondarySortColumn =3D this.colDefMap['LN']; var colDef =3D this.colDefs[sortColumn]; this.sortColumnId =3D colDef.id; if ( this.sortColumnId =3D=3D 'LN' ){ secondarySortColumn =3D this.colDefMap['FN']; } sortFunc =3D colDef.getSortFunction(sortColumn, sortdir, = secondarySortColumn); } this.visibleRows.sort(sortFunc); }, _sortCheckedASC: function(a,b) { var aa =3D a[0].isRowChecked()?1:0; var bb =3D b[0].isRowChecked()?1:0; if (aa=3D=3Dbb) return 0; if (aa=3D 0) { crsId =3D crsId.split("_")[1]; } var gradeCenterContentFrame =3D window.frames['gradecenterframe']; // = Grade Center Frame in SSL mode if (!gradeCenterContentFrame) gradeCenterContentFrame =3D = window.frames['content']; // regular course content frame if (!gradeCenterContentFrame.GradebookDWRFacade) = gradeCenterContentFrame =3D window.frames['content'].frames['main'];=20 gradeCenterContentFrame.GradebookDWRFacade.getGroups(crsId, = Gradebook.GridModel.prototype.updateGroupsCallback ); }, =20 updateGroupsCallback: function (retData) { var groupsMap =3D new Array(); var groups =3D new Array(); var h =3D $H(retData); h.each(function(pair) { var g =3D {}; g.id =3D pair.key; g.uids =3D pair.value; groupsMap[g.id] =3D groups.length; groups.push( g ); }); var model =3D Gradebook.getModel(); =20 model.groupsMap =3D groupsMap; model.groups =3D groups; }, =20 // used by reporting getReportData: function (reportDef) { // get rows for students to include in report var userIds =3D null; if (reportDef.students =3D=3D 'BYGROUPS'){ if ( reportDef.groupIds =3D=3D null ){ GradebookUtil.error('GridModel error getReportData: no = reportDef.groupIds'); return null; } userIds =3D this._getUserIdsByGroupIds( reportDef.groupIds ); } else if (reportDef.students =3D=3D 'BYSTUDENT') { if ( reportDef.studentIds =3D=3D null ){ GradebookUtil.error('GridModel error getReportData: no = reportDef.studentIds'); return null; } userIds =3D reportDef.studentIds; } var rows =3D this._getRowsByUserIds( userIds );=20 if ( !reportDef.includeHiddenStudents ) rows =3D this._removeHiddenStudents(rows); // get columns to include in report var colDefs =3D this.getColDefs(true,true); if (reportDef.columns =3D=3D 'BYITEM'){ colDefs =3D this._getColDefsById( reportDef.itemIds ); } else if (reportDef.columns =3D=3D 'BYGP'){ colDefs =3D this._getColDefsByGradingPeriodId( = reportDef.gradingPeriodIds ); } else if (reportDef.columns =3D=3D 'BYCAT'){ colDefs =3D this._getColDefsByCategoryId( reportDef.categoryIds ); } if (!reportDef.includeHiddenColumns){ colDefs =3D this._removeHiddenColumns( colDefs ); } // create return data structure var reportData =3D {}; reportData.columnInfoMap =3D new Array(); reportData.studentGradeInfo =3D new Array(); // add column data for (var i =3D 0, len =3D colDefs.length; i < len; i++){ var cdef =3D colDefs[i]; var cdata =3D {}; reportData.columnInfoMap[cdef.id] =3D cdata; cdata.name =3D cdef.getName(); if (reportDef.columnInfoDescription){ cdata.description =3D 'tbd'; // server will provide desc map } if (reportDef.columnInfoDueDate){ cdata.dueDate =3D cdef.getDueDate(); } if (reportDef.columnInfoStatsMedian || = reportDef.columnInfoStatsAverage){ var stats =3D cdef.getStats( true ); // include unavailable students cdata.statsMedian =3D stats.median; cdata.statsAverage =3D stats.avg; } } =09 // add student data for (var i =3D 0, len0 =3D rows.length; i < len0; i++){ var row =3D rows[i]; var rd =3D {}; reportData.studentGradeInfo.push(rd); =09 if (reportDef.firstName){ rd.firstName =3D this._getStudentAttribute( row, 'FN' ); } if (reportDef.lastName){ rd.lastName =3D this._getStudentAttribute( row, 'LN' ); } if ( reportDef.studentId ){ rd.studentId =3D this._getStudentAttribute( row, 'SI' ); } if ( reportDef.userName ){ rd.userName =3D this._getStudentAttribute( row, 'UN' ); } if ( reportDef.lastAccessed ){ rd.lastAccessed =3D this._getStudentAttribute( row, 'LA' ); if (rd.lastAccessed && rd.lastAccessed > 0){=20 var date =3D new Date(); date.setTime(rd.studentId); rd.lastAccessed =3D formatDate(date,'MMM d, y'); } } rd.grades =3D new Array(); for (var c =3D 0, len1 =3D colDefs.length; c < len1; c++){ var g =3D {}; g.cid =3D colDefs[c].id; var gridCell =3D this._getGrade( row, colDefs[c]); if (gridCell.attemptInProgress() && !gridCell.isOverride())=20 g.grade =3D this.getMessage('inProgressMsg'); else if (gridCell.needsGrading() && !gridCell.isOverride())=20 g.grade =3D this.getMessage('needsGradingMsg'); else=20 g.grade =3D gridCell.getCellValue(); rd.grades.push( g ); } } return reportData; }, _getGrade: function( row, colDef ) { var colIndex =3D this.colDefMap[colDef.id]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _getGrade invalid column id: = '+colDef.id); return null; } return row[colIndex]; }, _getStudentAttribute: function( row, colDefId ) { var colIndex =3D this.colDefMap[colDefId]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _getStudentAttribute invalid column = id: '+colDefId); return null; } return row[colIndex].getValue(); }, _removeHiddenStudents: function( students ) { var retStudents =3D new Array(); for (var i =3D 0, len =3D students.length; i < len; i++){ if (!students[i][0].isHidden()){=09 retStudents.push( students[i] ); } } return retStudents; }, _removeHiddenColumns: function( colDefs ) { var retColDefs =3D new Array(); for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if (!colDefs[i].isHidden()){=09 retColDefs.push( colDefs[i] ); } } return retColDefs; }, _getColDefsById: function( itemIds ) { var colDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ if (itemIds.indexOf( this.colDefs[i].id ) !=3D -1){=09 colDefs.push( this.colDefs[i] ); } } return colDefs; }, _getColDefsByCategoryId: function( categoryIds ) { var colDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ if (categoryIds.indexOf( this.colDefs[i].catid ) !=3D -1){=09 colDefs.push( this.colDefs[i] ); } } return colDefs; }, _getColDefsByGradingPeriodId: function( gradingPeriodIds ) { var colDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ if (gradingPeriodIds.indexOf( this.colDefs[i].gpid ) !=3D -1){=09 colDefs.push( this.colDefs[i] ); } } return colDefs; }, _getRowsByUserIds: function( userIds ) { var rows =3D this.rows; if (userIds =3D=3D null){ return rows; } var retRows =3D new Array(); for (var i =3D 0, len =3D rows.length; i < len; i++){ if (userIds.indexOf(rows[i][0].getUserId()) !=3D -1){ retRows.push(rows[i]); } } return retRows; }, _getUserIdsByGroupIds: function( groupIds ) { if ( !this.groupsMap || !this.groups ){ GradebookUtil.error('GridModel error getUserIdsByGroupIds: no = groups'); return null; } var userIds =3D new Array(); for (var i =3D 0; i < groupIds.length; i++){ var index =3D this.groupsMap[Number(groupIds[i])]; if (index =3D=3D undefined){ GradebookUtil.error('GridModel error getUserIdsByGroupIds: no group = for id: '+groupIds[i]); continue; } var group =3D this.groups[index]; for (var g =3D 0; g < group.uids.length; g++){ if (userIds.indexOf(group.uids[g]) =3D=3D -1){ userIds.push( String( group.uids[g] ) ); } } } return userIds; }, // called by student stats page getStudentStats: function( userId, currentViewOnly ) { var studentStats =3D {}; studentStats.catStats =3D new Array(); var catMap =3D new Array(); =09 // get columns, either all or current view var colDefs =3D new Array(); var len =3D currentViewOnly ? this.colOrderMap.length : = this.colDefs.length; for (var i =3D 0; i < len; i++){ var idx =3D currentViewOnly ? this.colOrderMap[i] : i; var c =3D this.colDefs[idx]; if (!c.deleted && c.isGrade() && !c.isCalculated()) { colDefs.push( c ); } } var row =3D this.getRowByUserId(userId); =09 for (var i =3D 0; i < colDefs.length; i++){ var colDef =3D colDefs[i]; var catId =3D colDef.getCategoryID(); var catStat =3D catMap[catId]; if (catStat =3D=3D null){ catStat =3D {}; catStat.name =3D colDef.getCategory(); catStat.qtyGraded =3D 0; catStat.qtyInProgress =3D 0; catStat.qtyNeedsGrading =3D 0; catStat.qtyExempt =3D 0; catStat.sum =3D 0; catStat.avg =3D 0; catMap[catId] =3D catStat; studentStats.catStats.push( catStat ); } var grade =3D this._getGrade( row, colDef); var val =3D grade.getSortValue(); var isNull =3D (val =3D=3D '-'); var isIP =3D grade.attemptInProgress(); var isNG =3D grade.needsGrading(); var isExempt =3D grade.isExempt(); var isVal =3D (!isNull && !isIP && !isNG && !isExempt); if (isIP)=20 catStat.qtyInProgress++; else if (isNG)=20 catStat.qtyNeedsGrading++; else if (isExempt)=20 catStat.qtyExempt++; =09 if (isVal){ catStat.qtyGraded++; if (colDef.isCalculated()){ val =3D parseFloat(val)/parseFloat(grade.getPointsPossible()) * = 100.0;=09 } catStat.sum +=3D parseFloat( val ); } } studentStats.numItemsCompleted =3D 0; var totNumExempt =3D 0; for (var i =3D 0; i < studentStats.catStats.length; i++){ var catStat =3D studentStats.catStats[i]; if (catStat.sum > 0){ catStat.avg =3D catStat.sum/parseFloat( catStat.qtyGraded ); catStat.avg =3D NumberFormatter.getDisplayFloat( = catStat.avg.toFixed(2) ); } totNumExempt +=3D catStat.qtyExempt; studentStats.numItemsCompleted +=3D (catStat.qtyNeedsGrading + = catStat.qtyGraded); } studentStats.numItems =3D colDefs.length - totNumExempt; return studentStats; }, getAccessibleMode: function() { return this.accessibleMode; }, =09 setAccessibleMode: function( accessibleMode ) { this.accessibleMode =3D accessibleMode; }, =09 setLoggerDebugLevel: function(logger) { this.logger.setLevel(top.content.log4javascript.Level.DEBUG); }, setLogger: function(logger) { this.logger =3D logger; }, getLogger: function() { return this.logger; }, setMessages: function (messages) { this.messages =3D messages; }, getMessage: function (key) { if (this.messages){ return this.messages[key]; } else { return key; } } }; Gradebook.RowMetaData =3D Class.create(); Gradebook.RowMetaData.prototype =3D { initialize: function(userId) { this.userId =3D userId; this.isChecked =3D false; this.isHidden =3D false; this.comput_err =3D false; } }; //////////////////////////// Column Defs = ////////////////////////////////////// Gradebook.ColDef =3D Class.create(); Gradebook.ColDef.prototype =3D { initialize: function(jsonObj, model, schemaMap) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object if (this.sid){ this.primarySchema =3D schemaMap[this.sid]; } if (this.ssid){ this.secondarySchema =3D schemaMap[this.ssid]; } }, getSortFunction: function(sortColumn, sortdir, secondarySortColumn) { this.sortColumn =3D sortColumn; this.secondarySortColumn =3D secondarySortColumn; if (sortdir=3D=3D'ASC') return this._sortASC.bind(this); else return this._sortDESC.bind(this); }, validate: function(newValue, matchPartial) { if (!this.primarySchema){ return null; } else { return this.primarySchema.validate(newValue, matchPartial); } }, _sortASC: function(a,b) { var aa =3D a[this.sortColumn].getValue(); var bb =3D b[this.sortColumn].getValue(); if( !aa && !bb ) return this._secondarySortASC(a,b); if( !aa ) return -1; if( !bb ) return 1; aa =3D aa.toUpperCase(); bb =3D bb.toUpperCase(); if (aa=3D=3Dbb)return this._secondarySortASC(a,b); if (aa('+cellVal2+')'; } =20 return new String(cellVal); }, // called by GridCell.getAltValue to get alt (mouse over) value for = rendering in spreadsheet // same as getCellValue unless there is a secondary schema getAltValue: function( gridCell ){ if (gridCell.isExempt()) { return this.model.getMessage('cmExemptGrade'); } =09 if (!this.secondarySchema){ return this.getCellValue( gridCell ); } var cellVal =3D this.primarySchema.getCellValue( gridCell ); if (this.secondarySchema){ var cellVal2 =3D this.secondarySchema.getCellValue( gridCell ); cellVal +=3D ' ('+cellVal2+')'; } return new String(cellVal); }, getSortValue: function( gridCell ){ return gridCell.getValue(); }, getName: function() { return this.name; }, getID: function() { return this.id; }, getPoints: function() { if ( this.isCalculated() )=20 return GradebookUtil.getMessage( 'variesPerStudentMsg' ); else return this.points; }, getAliasID: function() { return this.id; }, getCategoryID: function() { return this.catid; }, getCategory: function() { if (! this.catid ) return ""; if (! this.model.catNameMap ) return ""; var name =3D this.model.catNameMap[ Number(this.catid) ]; if ( name ) return name; return ""; }, getCategoryAliasID: function() { return this.catid; }, isHidden: function() { return !this.gbvis; }, isScorable: function() { return this.scrble; }, isPublic: function() { return (this.id =3D=3D this.model.pubColID); }, isVisibleToStudents: function() { return this.vis; }, onHideColumn: function( evt ) { Event.stop( evt ); this.gbvis =3D false; this.model.hideColumn(this.id); }, onSortAscending: function ( evt ) { Event.stop( evt ); this.cellController.onSortAscending(); }, =20 onSortDescending: function ( evt ) { Event.stop( evt ); this.cellController.onSortDescending(); }, =20 onToggleColumnStudentVisibility : function( evt ){ Event.stop( evt ); this.model.setColumnStudentVisibility( this.id, !this.vis ); this.cellController.closePopupsAndRestoreFocus(evt); }, getDisplayType: function( ) { return this.primarySchema.type; }, hasError: function( ) { return this.comput_err; }, =09 // called by model.getDisplayValue when external pages need to convert = a rawValue // This function passes this.points to schema.getDisplayValue.=20 // This method should not be called for this colDef if this colDef is a = calculated=20 // column, because we do not have access to the gridCell to get its max = points. // todo: determine how to handle error condition if this column is a = calulated col getDisplayValue: function( rawValue ) { if (this.primarySchema){ return this.primarySchema.getDisplayValue( rawValue, this.points ); } else { return rawValue; } } }; Gradebook.GradeColDef =3D Class.create(); Object.extend(Gradebook.GradeColDef.prototype, = Gradebook.ColDef.prototype); Object.extend (Gradebook.GradeColDef.prototype, { =20 initialize: function(jsonObj, model, schemaMap) { Gradebook.ColDef.prototype.initialize.call(this,jsonObj, model, = schemaMap); }, getRawValue: function( newValue ){ var score =3D newValue; // compute score based on primary schema if (this.primarySchema){ var rawValue =3D this.primarySchema.getRawValue(newValue,this); score =3D parseFloat( rawValue ); if (!GradebookUtil.isValidFloat( rawValue )){ if (typeof(rawValue) =3D=3D "string") return rawValue; score =3D 0; } } return score; }, getSortValue: function( gridCell ){ if (this.primarySchema){ return this.primarySchema.getSortValue( gridCell ); } else { return gridCell.getValue(); } }, updateGrade: function( newValue, userId ){ var score =3D this.getRawValue(newValue); var textValue =3D newValue; this.model.updateGrade(score, textValue, userId, this.id); }, _sortASC: function(a,b) { var gradeA =3D a[this.sortColumn]; var gradeB =3D b[this.sortColumn]; var aa =3D gradeA.getSortValue(); var bb =3D gradeB.getSortValue(); if (gradeA.colDef.primarySchema instanceof Gradebook.TextSchema){ if (aa=3D=3Dbb) return this._secondarySortASC(a,b); if (aa 0){=20 var date =3D new Date(); date.setTime(this.due); dueDate =3D formatDate(date,'MMM d, y'); } return dueDate; }, =09 // called by item stats page getStats: function ( includeUnavailableStudents ) { var grades =3D this.model._getGradesForItemId(this.id, = includeUnavailableStudents); if (this.primarySchema instanceof Gradebook.TextSchema){ grades =3D new Array(); } =09 var values =3D new Array(); var sum =3D 0; var stats =3D {}; stats.count =3D 0; stats.minVal =3D null; stats.maxVal =3D null; stats.qtyNull =3D 0; stats.qtyInProgress =3D 0; stats.qtyNeedsGrading =3D 0; stats.qtyExempt =3D 0; =09 for (var i =3D 0; i < grades.length; i++){ var grade =3D grades[i]; var val =3D grade.getSortValue(); var isNull =3D (val =3D=3D '-'); var isIP =3D grade.attemptInProgress(); var isNG =3D grade.needsGrading(); var isExempt =3D grade.isExempt(); var isVal =3D (!isNull && !isIP && !isNG && !isExempt); if (isIP)=20 stats.qtyInProgress++; else if (isNG)=20 stats.qtyNeedsGrading++; else if (isExempt)=20 stats.qtyExempt++; else if (isNull)=20 stats.qtyNull++; =09 if (isVal){ if (this.isCalculated()){ val =3D (parseFloat(val)/parseFloat(grade.getPointsPossible()) * = 100.0);=09 } values.push( val ); sum +=3D parseFloat( val ); stats.minVal =3D (stats.minVal =3D=3D null) ? val : Math.min( val, = stats.minVal); stats.maxVal =3D (stats.maxVal =3D=3D null) ? val : Math.max( val, = stats.maxVal); } } stats.count =3D values.length; =09 if (values.length =3D=3D 0){ stats.avg =3D ''; stats.range =3D ''; stats.minVal =3D ''; stats.maxVal =3D ''; stats.median =3D ''; stats.variance =3D ''; stats.stdDev =3D ''; } else { stats.avg =3D sum/values.length; stats.range =3D stats.maxVal - stats.minVal; =09 values.sort( Gradebook.numberComparator ); if (values.length =3D=3D 1){ stats.median =3D values[0]; } else if (values.length % 2){ // number of values is odd, the median is the middle value stats.median =3D values[parseInt(values.length/2)]; } else { // number of values is even, the median is the average of the two = middle values stats.median =3D (values[values.length/2-1] + = values[values.length/2])/2; } stats.variance =3D this._computeVariance( values, stats.avg ); stats.stdDev =3D Math.sqrt( stats.variance ); stats.maxVal =3D this._formatFloat( stats.maxVal ); stats.minVal =3D this._formatFloat( stats.minVal ); stats.avg =3D this._formatFloat( stats.avg ); stats.range =3D this._formatFloat( stats.range ); stats.median =3D this._formatFloat( stats.median ); stats.variance =3D this._formatFloat( stats.variance ); stats.stdDev =3D this._formatFloat( stats.stdDev ); } stats.gradeDistribution =3D this.primarySchema.getGradeDistribution( = values, this.points, stats ); return stats; }, _formatFloat: function( f ) { try { if ( f !=3D null )=20 return NumberFormatter.getDisplayFloat( f.toFixed(2) ); } catch ( e ) { //ignore and return the current value=20 } return f; =09 }, _computeVariance: function( values, average ) { var sumXMeanSquare =3D 0; for (var i =3D 0; i < values.length; i++){ var xMean =3D values[i] - average; sumXMeanSquare +=3D (xMean * xMean); } return sumXMeanSquare / values.length; }, =09 getInfo: function() { var publicLabel; if (this.isPublic()) publicLabel =3D GradebookUtil.getMessage('isMsg'); else publicLabel =3D GradebookUtil.getMessage('isNotMsg'); var includedInCalculationsLabel; if (this.isScorable()) includedInCalculationsLabel =3D GradebookUtil.getMessage('yesMsg'); else includedInCalculationsLabel =3D GradebookUtil.getMessage('noMsg'); var points; if ( this.isCalculated() ) points =3D GradebookUtil.getMessage( 'variesPerStudentMsg' ); else points =3D NumberFormatter.getDisplayFloat( this.points ); var info =3D [ {id: "itemInfoId", value: this.getID()}, =20 {id: "itemInfoName", value: this.name}, {id: "itemInfoCategory", value: this.getCategory()}, {id: "itemInfoSchema", value: this.primarySchema.name}, {id: "itemInfoPoints", value: (points=3D=3D0?"-":points)}, {id: "itemInfoPublic", value: publicLabel}, {id: "itemInfoIncludedInCalculations", value: = includedInCalculationsLabel}, {id: "itemInfoDueDate", value: this.getDueDate()} ]; return info; } }); Gradebook.StudentAttributeColDef =3D Class.create(); Object.extend(Gradebook.StudentAttributeColDef.prototype, = Gradebook.ColDef.prototype); Object.extend (Gradebook.StudentAttributeColDef.prototype, { =20 initialize: function(jsonObj, model, schemaMap) { Gradebook.ColDef.prototype.initialize.call(this,jsonObj, model, = schemaMap); this.vis =3D true; }, isGrade: function() { return false; }, isCalculated: function() { return false; }, =09 isTotal: function() { return false; }, =09 isWeighted: function() { return false; }, =09 getType: function() { return "student"; }, =09 // called by GridCell.getCellValue to get value for rendering in = spreadsheet // format date for last access column, all other columns just return = gridcell value getCellValue: function( gridCell ){ var cellVal =3D gridCell.getValue(); if (this.id =3D=3D 'LA'){ // last accessed column var dueDate =3D ''; if (cellVal && cellVal > 0){=20 var date =3D new Date(); date.setTime(cellVal); cellVal =3D formatDate(date,'MMM d, y'); } } return cellVal; }, getRawValue: function( newValue ){ return newValue; }, updateUserVisibility: function ( userId, visible ) { this.model.updateUserVisibility( userId, visible ); }, =20 getContextMenuInfo: function(cellController) { this.cellController =3D cellController; var canHide =3D (this.model.colOrderMap[0] !=3D = this.model.colDefMap[this.id]); var menu =3D { id: "studentInfoHeaderCM", items: [ {id: "sih_sortAscending", visible:true, onclick: this.onSortAscending.bindAsEventListener(this)}, {id: "sih_sortDescending", visible:true, onclick: this.onSortDescending.bindAsEventListener(this)}, {id: "sih_hideColumn", visible:canHide, onclick: this.onHideColumn.bindAsEventListener(this), receipt: = 'hideColumnInlineMsg' } ]}; return menu; =09 } }); //////////////////////////// Grid Cells = ////////////////////////////////////// Gradebook.GridCell =3D Class.create(); Gradebook.GridCell.prototype =3D { =09 initialize: function(colDef, metaData) { this.colDef =3D colDef; this.metaData =3D metaData; this.v =3D "-"; this.canBeEdited =3D true; this.isBeingEdited =3D false; this.isUncommitted =3D false; if (this.colDef.id =3D=3D 'UN'){ this.metaData.userNameGridCell =3D this; } }, _loadFromJSON: function(jsonObj) { this.gc =3D null; // grade change flag this.ip =3D null; // in progress flag this.ng =3D null; // needs grading flag this.or =3D null; // override flag this.x =3D null; // exempt flag cleared if ( !(jsonObj.avail =3D=3D=3D undefined) ){ this.metaData.avail =3D jsonObj.avail; } Object.extend(this, jsonObj); // assign json properties to this object }, =09 getUserId: function() { return this.metaData.userId; }, getUserName: function() { return this.metaData.userNameGridCell.v; }, =09 isHidden: function() { return this.metaData.isHidden; }, =09 setHidden: function( h ) { this.metaData.isHidden =3D h; }, =09 isRowChecked: function() { return this.metaData.isChecked; }, =09 setRowChecked: function(c) { this.metaData.isChecked =3D c; }, =09 invertChecked: function() { this.metaData.isChecked =3D !this.metaData.isChecked; }, =09 isAvailable: function() { return this.metaData.avail; }, isGrade: function() { return (this.colDef.isGrade()); }, =09 isOverride: function() { return (this.or && this.or =3D=3D "y"); }, =09 needsGrading: function() { return (this.ng !=3D null && this.ng && this.ng =3D=3D "y"); }, =09 attemptInProgress: function() { return (this.ip !=3D null && this.ip && this.ip =3D=3D "y"); }, =09 isModified: function() { return (this.gc && this.gc =3D=3D "y"); }, isGraded: function() { var tv =3D this.getTextValue(); return (tv !=3D '-' && tv.length > 0); }, =09 isComplete: function() { if (this.colDef.primarySchema instanceof = Gradebook.CompleteIncompleteSchema){ return this.isGraded(); }else{ =09 return false; } }, isExempt: function() { return (this.x =3D=3D "y"); }, validate: function(newValue, matchPartial) { return this.colDef.validate(newValue, matchPartial); }, =09 update: function(newValue) { this.isUncommitted =3D true; this.gc =3D "y"; this.colDef.updateGrade( newValue, this.getUserId() ); }, // called by CellController.renderHTML to get value for spreadsheet getCellValue: function() { return this.colDef.getCellValue( this ); }, // called by GridCell.getAltValue to get alt (mouse over) value for = rendering in spreadsheet getAltValue: function(){ if ( this.isGrade() && !this.isGraded() ) return = GradebookUtil.getMessage('noGradeMsg'); return this.colDef.getAltValue( this ); }, // called by CellController.startEdit to get input value for editing getEditValue: function() { return this.colDef.getEditValue( this ); }, getSortValue: function() { return this.colDef.getSortValue( this ); }, getPointsPossible: function() { if (this.mp){ return this.mp; } else if (this.colDef.points){ return this.colDef.points; } else { return 0; } }, getTextValue: function() { if (this.tv) { return this.tv; } else { return '-'; } }, getValue: function() { return this.v; } };=09 Gradebook.Grade =3D Class.create(); Object.extend(Gradebook.Grade.prototype, Gradebook.GridCell.prototype); Object.extend (Gradebook.Grade.prototype, { =20 initialize: function(colDef, metaData) { Gradebook.GridCell.prototype.initialize.call(this,colDef, metaData); }, =09 canEdit: function(){ return (!this.colDef.isCalculated() && = !this.colDef.isHideAttemptScore()&& !this.savingDiv); }, showGradeDetails: function( evt ){ Event.stop( evt ); this.colDef.showGradeDetails( this.getUserId() ); }, =09 onAddComment: function(evt){ this.cellController.addGradeComment(evt, this); this.colDef.onAddComment( this.getUserId() ); }, =09 exemptGrade: function(evt){ Event.stop( evt ); this.cellController.stopEdit(false, true); this.colDef.exemptGrade( this.getUserId(), this ); this.cellController.closePopupsAndRestoreFocus(evt) }, =09 clearExemption: function(evt){ Event.stop( evt ); this.colDef.clearExemption( this.getUserId() ); this.cellController.closePopupsAndRestoreFocus(evt); }, onClearModified: function( evt ){ Event.stop( evt ); this.clearModifiedIndicator( ); this.colDef.clearModifiedIndicator( this.getUserId() ); this.cellController.closePopupsAndRestoreFocus(evt); }, =09 clearModifiedIndicator: function(){ this.gc =3D null; if (this.cellController){ this.cellController.renderHTML(this); } }, =09 setComments: function(studentComments, instructorComments){ this.colDef.setComments( this.getUserId(), studentComments, = instructorComments ); }, =09 getContextMenuInfo: function(cellController) { if (this.colDef.isCalculated()){ return null; } this.cellController =3D cellController; // Can add comments for non-null manual column grades &=20 // system column grades that have been overridden var isManual =3D this.colDef.isManual(); var isExempt =3D this.isExempt(); var canAddComment =3D (isManual && this.v !=3D '-') || (!isManual && = this.isOverride()) || isExempt; var menu =3D { id: "gradeCM", items: [ {id: "g_360View", visible:true, onclick: this.showGradeDetails.bindAsEventListener(this)}, {id: "g_addComment", visible: canAddComment, onclick: this.onAddComment.bindAsEventListener(this)}, {id: "g_clearModified", visible:(this.isModified()), onclick: this.onClearModified.bindAsEventListener(this)}, {id: "g_exemptGrade", visible: !isExempt, onclick: this.exemptGrade.bindAsEventListener(this)}, {id: "g_clearExemption", visible: isExempt, onclick: this.clearExemption.bindAsEventListener(this)} ]}; return menu; =09 } }); Gradebook.StudentAttribute =3D Class.create(); Object.extend(Gradebook.StudentAttribute.prototype, = Gradebook.GridCell.prototype); Object.extend (Gradebook.StudentAttribute.prototype, { =20 initialize: function(colDef, metaData) { Gradebook.GridCell.prototype.initialize.call(this,colDef, metaData); }, =09 onSendEmail: function( evt ){ Event.stop( evt ); var ids =3D new Array() ids[0] =3D this.getUserId(); this.cellController.sendEmail('S',ids); }, =09 onShowUser: function( evt ){ Event.stop( evt ); this.colDef.updateUserVisibility( this.getUserId(), true ); }, =09 onHideOtherStudents: function( evt ){ Event.stop( evt ); this.colDef.model.viewSingleStudentGrades( this.getUserId() ); }, =09 onShowAllRows: function( evt ){ Event.stop( evt ); this.colDef.model.restoreFromSingleStudentView(); }, =09 onStudentStats: function( evt ){ Event.stop( evt ); this.colDef.model.viewStudentStats( this.getUserId() ); }, =09 onHideUser: function( evt ){ Event.stop( evt ); this.colDef.updateUserVisibility( this.getUserId(), false ); }, =09 onAdaptiveReleaseUser: function( evt ){ Event.stop( evt ); this.colDef.model.viewAdaptiveRelease( this.getUserName() ); }, =09 canEdit: function(){ return false; }, =09 getContextMenuInfo: function(cellController) { this.cellController =3D cellController; var menu =3D { id: "studentInfoCM", items: [ {id: "si_studentHideOtherStudents", = visible:this.colDef.model.isolatedStudentId?false:true, onclick: this.onHideOtherStudents.bindAsEventListener(this)}, {id: "si_showAllRows", = visible:this.colDef.model.isolatedStudentId?true:false, onclick: this.onShowAllRows.bindAsEventListener(this)}, {id: "si_studentStats", visible:true, onclick: this.onStudentStats.bindAsEventListener(this)}, {id: "si_adaptiveReleaseColumn", visible:true, onclick: this.onAdaptiveReleaseUser.bindAsEventListener(this)}, {id: "si_sendEmail", visible:true, onclick: this.onSendEmail.bindAsEventListener(this)}, {id: "si_hideUser", visible:!this.isHidden(), onclick: this.onHideUser.bindAsEventListener(this), receipt: 'hideStudentInlineMsg'}, {id: "si_showUser", visible:this.isHidden(), onclick: this.onShowUser.bindAsEventListener(this)} ]}; return menu; =09 } }); //////////////////////////// Schemas = ////////////////////////////////////// Gradebook.NumericSchema =3D Class.create(); Gradebook.NumericSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 getGradeDistribution: function( grades, points, stats ){ return Gradebook.PercentageSchema.prototype.getGradeDistribution( = grades, points, stats ); }, =09 // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getValue(), = gridCell.getPointsPossible());=09 }, =09 // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, getSortValue: function( gridCell ){ return gridCell.getValue();=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (rawValue =3D=3D '-' || rawValue.length =3D=3D 0){ return rawValue; } return NumberFormatter.getDisplayFloat( = parseFloat(rawValue).toFixed(2) ) }, getRawValue: function(displayValue,colDef) { return NumberFormatter.getDotFloat( displayValue ); }, validate: function(newValue, matchPartial) { if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; var val =3D NumberFormatter.getDotFloat( newValue ); if (!GradebookUtil.isValidFloat( val )){ return GradebookUtil.getMessage('invalidNumberErrorMsg'); } val =3D ''+val; var idx =3D val.indexOf('.'); if (idx > -1 && (val.length - idx - 1) > 4) return GradebookUtil.getMessage('tooManyDecimalPlacesErrorMsg'); else { return null; } } }; Gradebook.TextSchema =3D Class.create(); Gradebook.TextSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, getGradeDistribution: function( grades, points, stats ){ return null; }, =09 // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getTextValue(), = gridCell.getPointsPossible());=09 }, getSortValue: function( gridCell ){ var tv =3D gridCell.getTextValue().toUpperCase(); //if (tv =3D=3D '-') tv =3D ''; return tv;=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ return rawValue;=09 }, getRawValue: function(displayValue,colDef) { return displayValue; }, validate: function(newValue, matchPartial) { // is any value bad? return null; } }; Gradebook.PercentageSchema =3D Class.create(); Gradebook.PercentageSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 // called by ColDef.getStats=20 getGradeDistribution: function( grades, points, stats ){ var dist =3D new Array(); var range =3D new Array(); range.count =3D 0; range.text =3D 'less than 0'; dist.push( range ); for (var i =3D 0; i < 10; i++){ range =3D new Array(); range.count =3D 0; range.low =3D (i * 10); range.high =3D (i * 10) + ((i < 9)?9:10); range.text =3D range.low + ' - ' + range.high; dist.push( range ); } var range =3D new Array(); range.count =3D 0; range.text =3D 'greater than 100'; dist.push( range ); for (var i =3D 0, len =3D grades.length; i < len; i++){ var percent =3D (points)?(parseFloat(grades[i])/parseFloat(points) * = 100.0) : parseFloat(grades[i]);=09 if (percent =3D=3D 100) percent -=3D 0.1; // 100 should fall into = 90-100 bin var index =3D parseInt(percent/10.0) + 1; if (percent < 0) index =3D 0; if (percent > 100) index =3D 11; dist[index].count++; } dist.reverse(); return dist; }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getValue(), = gridCell.getPointsPossible());=09 }, // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, getSortValue: function( gridCell ){ return gridCell.getValue();=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (parseFloat(points) =3D=3D 0.0 || rawValue =3D=3D '-' || = rawValue.length =3D=3D 0){ return rawValue; } var percent =3D parseFloat(rawValue)/parseFloat(points) * 100.0;=09 return NumberFormatter.getDisplayFloat( parseFloat(percent).toFixed(2) = )+'%';=09 }, getRawValue: function(displayValue,colDef) { var points =3D (colDef.points)?colDef.points:100; displayValue =3D displayValue.replace('%',''); displayValue =3D NumberFormatter.getDotFloat( displayValue ); return parseFloat(displayValue)/100.0 * parseFloat(points);=09 }, validate: function(newValue, matchPartial) { newValue =3D newValue.replace('%',''); if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; var val =3D NumberFormatter.getDotFloat( newValue ); if (!GradebookUtil.isValidFloat( val )){ return GradebookUtil.getMessage('invalidNumberErrorMsg'); } val =3D ''+val; var idx =3D val.indexOf('.'); if (idx > -1 && (val.length - idx - 1) > 4) return GradebookUtil.getMessage('tooManyDecimalPlacesErrorMsg'); else { return null; } } }; Gradebook.CompleteIncompleteSchema =3D Class.create(); Gradebook.CompleteIncompleteSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 // called by ColDef.getStats=20 getGradeDistribution: function( grades, points, stats ){ var dist =3D new Array(); var range =3D new Array(); range.count =3D stats.qtyNull; range.text =3D 'Incomplete'; dist.push( range ); range =3D new Array(); range.count =3D grades.length; range.text =3D 'Complete'; dist.push( range ); dist.reverse(); return dist; }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getTextValue(), = gridCell.getPointsPossible());=09 }, // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return gridCell.getValue(); }, getSortValue: function( gridCell ){ var tv =3D gridCell.getTextValue().toUpperCase(); if (tv =3D=3D '-'){ return '-'; } else { return gridCell.getValue(); } }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (rawValue !=3D '-' && rawValue.length > 0){ return ''; } else { return '-'; } }, getRawValue: function(displayValue,colDef) { return displayValue; }, validate: function(newValue, matchPartial) { if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; // todo: determine what is allowed. I.E. is "-" allowed? // allow empty string or number // return (newValue.length =3D=3D 0 || parseFloat(newValue)); if (!GradebookUtil.isValidFloat(newValue)){ return GradebookUtil.getMessage('invalidNumberErrorMsg'); } else { return null; } } }; Gradebook.LetterSchema =3D Class.create(); Gradebook.LetterSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 // called by ColDef.getStats=20 getGradeDistribution: function( grades, points, stats ){ var dist =3D new Array(); var symMap =3D new Array(); this.symbols.each(function(s) { var range =3D new Array(); range.count =3D 0; range.text =3D s.sym; symMap[s.sym] =3D dist.length; dist.push( range ); }); for (var i =3D 0, len =3D grades.length; i < len; i++){ var val =3D this.getDisplayValue(grades[i], points);=09 var index =3D symMap[val]; if (index !=3D undefined){ dist[index].count++; } } return dist; }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getValue(), = gridCell.getPointsPossible());=09 }, // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, getSortValue: function( gridCell ){ return gridCell.getValue();=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (parseFloat(points) =3D=3D 0.0 || rawValue =3D=3D '-' || = rawValue.length =3D=3D 0){ return rawValue; } var percent =3D parseFloat(rawValue)/parseFloat(points) * 100.0;=09 percent =3D percent.toFixed(2);=09 if (!parseFloat(percent) && percent !=3D 0){ // see if raw value is one of the symbols var matchingSymbol; rawValue =3D rawValue.toUpperCase(); this.symbols.each(function(s) { if (rawValue =3D=3D s.sym.toUpperCase()){ matchingSymbol =3D s.sym; throw $break; // needed to get out of each loop } }); if (matchingSymbol){ return matchingSymbol; } else { return rawValue; } } var retVal =3D rawValue; this.symbols.each(function(s) { if (percent >=3D s.lb && percent <=3D s.ub){ retVal =3D s.sym; throw $break; // needed to get out of each loop } }); return retVal; }, getRawValue: function(displayValue,colDef) { //What it SHOULD be doing is: //Column created with Letter as primary display and secondary display of = % - worth 10 points //Enter A - go to schema and determine that A =3D 95% use 95% to = determine score of 9.5 - store 9.5 and display A //Enter 9 - determine the 9 is 90% (item is out of 10) 90% is an A - = store 9 and display A=20 var points =3D (colDef.points)?colDef.points:100; displayValue =3D ''+displayValue; displayValue =3D displayValue.replace('%',''); var score =3D displayValue.toUpperCase(); var score; this.symbols.each(function(s) { if (score =3D=3D s.sym.toUpperCase()){ score =3D (parseFloat(s.abs)/100.0) * points; throw $break; // needed to get out of each loop } }); return score; }, validate: function(newValue, matchPartial) { if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; // allow numeric value for letter schemas too if (GradebookUtil.isValidFloat(newValue)){ return null; } var retVal =3D GradebookUtil.getMessage('invalidLetterErrorMsg'); newValue =3D newValue.toUpperCase(); this.symbols.each(function(s) { if (newValue =3D=3D s.sym.toUpperCase() ||=20 (matchPartial && s.sym.toUpperCase().startsWith(newValue)) ){ retVal =3D null; throw $break; // needed to get out of each loop } }); return retVal; } }; //////////////////////////// Custom View = ////////////////////////////////////// Gradebook.CustomView =3D Class.create(); Gradebook.CustomView.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =20 // evaluate this custom view; determine userIds & itemIds for view // returns false if the formula cannot be evaluated, else true evaluate: function( ) { try { if ( this.definition ) { var ext =3D eval('({'+ this.definition+'})' ); Object.extend( this, ext ); this.definition =3D null; } this.userIds =3D new Array(); this.colIds =3D new Array(); this.aliasMap =3D new Array(); for (var i =3D 0, len =3D this.aliases.length; i < len; i++){ this.aliasMap[this.aliases[i].key] =3D this.aliases[i].val; } if (this.formula){ this._evaluateAdvanced(); } else { this._evaluateBasic(); } this._computeDisplayItems(); return true; } catch (e) { alert(this.model.getMessage('custViewRenderErrorMsg')); return false; } }, usesGroups: function( ) { for (var i =3D 0, len =3D this.aliases.length; i < len; i++){ if (this.aliases[i].key.startsWith('gr')){ return true; } } return false; }, getUserIds: function() { return this.userIds; }, getDisplayItemIds: function() { return this.colIds; }, _computeDisplayItems: function() { // map aliased ids to real ids if (this.display.ids){ this.display.unAliasedIds =3D new Array(); for (var i =3D 0, len =3D this.display.ids.length; i < len; i++){ var id =3D this.aliasMap[this.display.ids[i]];=09 if (id =3D=3D undefined) throw 'missing alias'; this.display.unAliasedIds.push( id ); } } var colDefs =3D this.model.getColDefs( false, this.display.showhidden = ); var dispType =3D this.display.items.toUpperCase(); if (dispType =3D=3D "BYITEM"){=20 this.colIds =3D this._getItemsById(); } else if (dispType =3D=3D "INCRI"){ // in criteria this.colIds =3D this._getItemsInCriteria(); } else if (dispType =3D=3D "BYCAT"){ // by category this.colIds =3D this._getItemsByCategoryId( colDefs ); } else if (dispType =3D=3D "BYGP"){ // by grading period this.colIds =3D this._getItemsByGradingPeriodId( colDefs ); } else if (dispType =3D=3D "ALLITEM"){ this.colIds =3D this._getAllItems( colDefs ); } else if (dispType =3D=3D "IVS"){ this.colIds =3D this._getItemsByVisibilityToStudents( colDefs, true = ); } else if (dispType =3D=3D "INVS"){ this.colIds =3D this._getItemsByVisibilityToStudents( colDefs, false = ); } else if (dispType =3D=3D "NOITEM"){=20 this.colIds =3D new Array() } }, _getItemsById: function() { return this.display.unAliasedIds;=09 }, _getItemsInCriteria: function() { var itemIds =3D new Array(); // get items that are used in criteria; which are in aliases for (var i =3D 0, len =3D this.aliases.length; i < len; i++){ if (this.aliases[i].key.startsWith('I_')){ itemIds.push( this.aliases[i].val ); } } return itemIds; }, _getItemsByCategoryId: function( colDefs ) { var itemIds =3D new Array(); // get items that have category id in display.ids for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if (this.display.unAliasedIds.indexOf( colDefs[i].catid ) !=3D -1){=09 itemIds.push( colDefs[i].id ); } } return itemIds; }, _getItemsByGradingPeriodId: function( colDefs ) { var itemIds =3D new Array(); // get items that have grading period id in display.ids for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if (this.display.unAliasedIds.indexOf( colDefs[i].gpid ) !=3D -1){=09 itemIds.push( colDefs[i].id ); } } return itemIds; }, _getItemsByVisibilityToStudents: function( colDefs, vis ) { var itemIds =3D new Array(); // get items that have grading period id in display.ids for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if ( colDefs[i].vis =3D=3D vis ){=09 itemIds.push( colDefs[i].id ); } } return itemIds; }, _getAllItems: function( colDefs ) { var itemIds =3D new Array(); for (var i =3D 0, len =3D colDefs.length; i < len; i++){ itemIds.push( colDefs[i].id ); } return itemIds; }, _evaluateBasic: function() { if ( this.students.userIds && this.students.userIds[0] !=3D "all") { var uids =3D this.students.userIds; for (var i =3D 0, len =3D uids.length; i < len; i++){ var id =3D this.aliasMap[uids[i]]; if (id =3D=3D undefined) throw 'missing alias' this.userIds.push( id ); } } else { // all students var showstuhidden =3D this.students.showstuhidden; var modelStudents =3D this.model.getStudents( showstuhidden ); for (var i =3D 0, len =3D modelStudents.length; i < len; i++){ this.userIds.push( modelStudents[i].id ); } } }, _evaluateAdvanced: function() { // lazily compute postfix formula & criteriaMap if (!this.postFixFormula){ this.postFixFormula =3D this.infix2postfix( this.formula ); } if (!this.criteriaMap){ this.criteriaMap =3D new Array(); for (var i =3D 0, len =3D this.criteria.length; i < len; i++){ this.criteriaMap[this.criteria[i].fid] =3D i; } } // test each row and add to userIds if it passes formula var rows =3D this.model.rows; for (var i =3D 0, len =3D rows.length; i < len; i++){ if ( this._evaluateFormulaForRow( rows[i] ) ){ this.userIds.push( rows[i][0].getUserId() ); } } }, _evaluateFormulaForRow: function( row )=20 { // only one criteria in formula if (this.postFixFormula.length =3D=3D 1){ return this._evalCriteria( this.postFixFormula[0], row ); } // evaluate postfix formula: // * push non-operators on stack // * when operators are encountered: // pop two operands off stack // evaluate operands (criteria) // apply operator to the two evaluated operands // store result on stack // * pop & return final result var stack =3D new Array(); for (var i =3D 0, len =3D this.postFixFormula.length; i < len; i++){ var tok =3D this.postFixFormula[i]; switch (tok){ case "AND":=20 case "OR":=20 if (stack.length < 2) throw (this.model.getMessage('custViewStackEmptyMsg') + tok); var op2 =3D stack.pop(); var op1 =3D stack.pop(); var firstValue =3D op1 ; if ( typeof(op1) =3D=3D 'string' ) firstValue =3D = this._evalCriteria( op1, row ); var secondValue =3D op2;=20 if ( typeof(op2) =3D=3D 'string' ) secondValue =3D = this._evalCriteria( op2, row ); if (tok =3D=3D "AND")=20 stack.push( ( firstValue && secondValue) ); else if (tok =3D=3D "OR") stack.push( (firstValue || secondValue) ); break; default: stack.push(tok);=20 break; } } if (stack.length !=3D 1) throw this.model.getMessage('custViewUnableToEvaluateMsg'); else return stack.pop(); }, _getAliasOrId: function( id ) { if ( id.startsWith('I_') || id.startsWith('c_') || = id.startsWith('gp_')=20 || id.startsWith('gr_') || id.startsWith('st_') ){ return this.aliasMap[id];=09 } else { return id; } =09 }, _evalCriteria: function( fid, row )=20 { // look up criteria by fid var crit =3D this.criteria[ this.criteriaMap[fid] ];=09 var colId =3D this._getAliasOrId( crit.cid );=09 if (colId =3D=3D undefined){ throw 'missing alias' } var colDefMap =3D this.model.colDefMap; var colIdx =3D colDefMap[colId]; if ( colId =3D=3D 'SV' || colId =3D=3D 'GM') colIdx =3D 0; if (colIdx =3D=3D undefined) { throw 'missing alias' } var gridCell =3D row[colIdx]; var evalFunc =3D this._getEvalCriteriaFunc( crit ); return evalFunc( crit, gridCell ); }, _evalAvailableCriteria: function( crit, gridCell )=20 { var avail =3D (gridCell.isAvailable())?"A":"U"; return crit.value =3D=3D avail;=09 }, _evalStatusCriteria: function( crit, gridCell )=20 { if (crit.value =3D=3D 'IP') return gridCell.attemptInProgress(); else if (crit.value =3D=3D 'NG') return gridCell.needsGrading(); else if (crit.value =3D=3D 'NU') return gridCell.getSortValue() =3D=3D '-'; else if (crit.value =3D=3D 'X') return gridCell.isExempt(); }, _evalStudentVisibleCriteria: function( crit, gridCell )=20 { var avail =3D (gridCell.isHidden())?"H":"V"; return crit.value =3D=3D avail;=09 }, _evalGroupMembershipCriteria: function( crit, gridCell )=20 { // There may be 1 or more values passed. We allow multiple selection = of Groups var result =3D (crit.cond =3D=3D "eq") ? false : true; var groupNames =3D crit.value.split(","); for (var i =3D 0, len =3D groupNames.length; i < len; i++) { var groupId =3D this.aliasMap[groupNames[i]]; if (groupId =3D=3D undefined) throw 'missing alias' var userId =3D gridCell.getUserId(); var inGroup =3D this._userIsInGroup( userId, groupId ); result =3D ( (crit.cond =3D=3D "eq") ? result || inGroup : result && = !inGroup ) ; } return result; }, _evalLastAccessedCriteria: function( crit, gridCell )=20 { var cellVal =3D gridCell.getSortValue(); if (crit.cond =3D=3D "eq"){ var numMSecPerDay =3D 1000*60*60*24; var v1 =3D parseInt(cellVal/numMSecPerDay); var v2 =3D parseInt(crit.value/numMSecPerDay); return (v1 =3D=3D v2); } else if (crit.cond =3D=3D "be") return (cellVal < crit.value); else if (crit.cond =3D=3D "af") return (cellVal > crit.value); }, _defaultEvalCriteria: function( crit, gridCell )=20 { var cellVal =3D gridCell.getSortValue(); if (gridCell.attemptInProgress() || gridCell.needsGrading() || = (cellVal =3D=3D '-') || gridCell.isExempt()) { return false; } var operator =3D crit.cond; var critVal =3D gridCell.colDef.getRawValue( crit.value ); if (this._isNumber(cellVal) && this._isNumber(critVal)) { var dblCellVal =3D this._toNumber(cellVal); var dblCritVal =3D this._toNumber(critVal); var dblCritVal2 =3D (crit.value2 !=3D = undefined)?this._toNumber(gridCell.colDef.getRawValue( crit.value2 )):0; if (operator =3D=3D "eq") return (dblCellVal =3D=3D dblCritVal); else if (operator =3D=3D "neq") return (dblCellVal !=3D dblCritVal); else if (operator =3D=3D "gt") return (dblCellVal > dblCritVal); else if (operator =3D=3D "lt") return (dblCellVal < dblCritVal); else if (operator =3D=3D "le") return (dblCellVal <=3D dblCritVal); else if (operator =3D=3D "ge") return (dblCellVal >=3D dblCritVal); else if (operator =3D=3D "bet") return ((dblCritVal <=3D dblCellVal) && (dblCellVal <=3D = dblCritVal2)) ; } else if (typeof(cellVal) =3D=3D "string" && typeof(critVal) = =3D=3D "string") { cellVal =3D cellVal.toUpperCase(); critVal =3D critVal.toUpperCase(); if (operator =3D=3D "eq") return (cellVal =3D=3D critVal); else if (operator =3D=3D "neq") return (cellVal !=3D critVal); else if (operator =3D=3D "bw") return (cellVal.startsWith( critVal )); else if (operator =3D=3D "con") return (cellVal.indexOf( critVal ) !=3D -1 ); } else throw (this.model.getMessage('custViewDataTypeMismatchMsg')+' = '+crit.fid); }, _getEvalCriteriaFunc: function( crit )=20 { if (!this.evalCriteriaFuncMap) { this.evalCriteriaFuncMap =3D new Array(); this.evalCriteriaFuncMap["AV"] =3D = this._evalAvailableCriteria.bind(this); this.evalCriteriaFuncMap["SV"] =3D = this._evalStudentVisibleCriteria.bind(this); this.evalCriteriaFuncMap["LA"] =3D = this._evalLastAccessedCriteria.bind(this); this.evalCriteriaFuncMap["GM"] =3D = this._evalGroupMembershipCriteria.bind(this); } var func =3D this.evalCriteriaFuncMap[crit.cid]; if (!func)=20 { if (crit.cond =3D=3D 'se') { func =3D this._evalStatusCriteria.bind(this); } else { func =3D this._defaultEvalCriteria.bind(this); } } return func;=09 }, _userIsInGroup: function( userId, groupId )=20 { userId =3D Number( userId ); var groups =3D this.model.groups; for (var i =3D 0, len =3D groups.length; i < len; i++){ if ( groups[i].id =3D=3D groupId ){ return (groups[i].uids.indexOf( userId ) !=3D -1); } } return false; }, getValidationError: function( f , criteriaLst )=20 { try=20 { var postFix =3D this.infix2postfix( f,criteriaLst ); return null; }=20 catch (e) { return e; } }, infix2postfix: function( formula,criteriaLst )=20 { var f =3D formula; f =3D f.gsub( /\(/,' ( '); // add spaces around parens f =3D f.gsub( /\)/,' ) '); // add spaces around parens var a =3D $w(f); // split into array var stack =3D new Array(); var out =3D new Array(); for (var i =3D 0, len =3D a.length; i < len; i++){ var tok =3D a[i].toUpperCase(); switch (tok){ case "AND":=20 case "OR":=20 while( this._isOperator(stack[stack.length-1]) ){ out.push(stack.pop());=20 } stack.push(tok.toUpperCase());=20 break; case "(":=20 stack.push(tok);=20 break; case ")":=20 foundStart =3D false; while(stack.length > 0){ tok =3D stack.pop();=20 if ( tok =3D=3D "(" ){ foundStart =3D true; break; } else { out.push(tok);=20 } } if (stack.length =3D=3D 0 && !foundStart) throw (this.model.getMessage('custViewMismatchedParensMsg')+' = '+this.name); break; default: if ( criteriaLst && criteriaLst.indexOf(tok) =3D=3D -1 )=20 throw this.model.getMessage('criteriaNotFoundMsg'); out.push(tok);=20 break; } } while(stack.length > 0){ tok =3D stack.pop(); if (tok =3D=3D '(') throw (this.model.getMessage('custViewMismatchedParensMsg')+' = '+this.name); out.push(tok);=20 } return out; }, =09 _isOperator: function(s) { return (s=3D=3D'OR' || s=3D=3D'AND'); }, _isNumber: function( s ) { return (isNaN( new Number(s) ) ? false : = true); }, _toNumber: function( s )=20 { if (typeof(s) =3D=3D "number") return s; else { var n =3D new Number(s); return n.valueOf(); } } }; //////////////////////////// Utility = ////////////////////////////////////// Gradebook.GridRowIterator =3D Class.create(); Gradebook.GridRowIterator.prototype =3D { initialize: function(dataArray, orderMap, startIndex) { this.dataArray =3D dataArray; this.orderMap =3D orderMap; this.currentIndex =3D startIndex; }, hasNext: function() {return this.currentIndex < this.orderMap.length;}, next: function() { if (this.currentIndex >=3D this.orderMap.length) { GradebookUtil.error('GridRowIterator out of data. length =3D = '+this.orderMap.length); return null; } return this.dataArray[this.orderMap[this.currentIndex++]]; } }; Gradebook.numberComparator =3D function( a, b ) { return a - b; } var NumberFormatter =3D { =20 // usually called from frameset scope and re-set when grid is = initialized with grid page LOCALE SETTINGS needToConvert: ( ( window.LOCALE_SETTINGS ) ? = LOCALE_SETTINGS.getString('number_format.decimal_point') =3D=3D ',' : = page.bundle.getString('number_format.decimal_point') =3D=3D ','), =20 getDisplayFloat: function ( f ) { if (!NumberFormatter.needToConvert) return f; f =3D ''+f; return f.replace('.',','); }, getDotFloat: function ( f ) { if (!NumberFormatter.needToConvert) return f; f =3D ''+f; return f.replace(',','.'); } }; ------=_NextPart_000_0000_01CA341B.AF3F6810--
") =3D=3D 0 || text.indexOf("") =3D=3D 0) {=0A= text =3D text.substring(5, text.length - 7);=0A= }=0A= return text;=0A= };=0A= =0A= /** @private Some more text might have come in, test and execute the new = stuff */=0A= dwr.engine._processCometResponse =3D function(response, batch) {=0A= if (batch.charsProcessed =3D=3D response.length) return;=0A= if (response.length =3D=3D 0) {=0A= batch.charsProcessed =3D 0;=0A= return;=0A= }=0A= =0A= var firstStartTag =3D response.indexOf("//#DWR-START#", = batch.charsProcessed);=0A= if (firstStartTag =3D=3D -1) {=0A= // dwr.engine._debug("No start tag (search from " + = batch.charsProcessed + "). skipping '" + = response.substring(batch.charsProcessed) + "'");=0A= batch.charsProcessed =3D response.length;=0A= return;=0A= }=0A= // if (firstStartTag > 0) {=0A= // dwr.engine._debug("Start tag not at start (search from " + = batch.charsProcessed + "). skipping '" + = response.substring(batch.charsProcessed, firstStartTag) + "'");=0A= // }=0A= =0A= var lastEndTag =3D response.lastIndexOf("//#DWR-END#");=0A= if (lastEndTag =3D=3D -1) {=0A= // dwr.engine._debug("No end tag. unchanged charsProcessed=3D" + = batch.charsProcessed);=0A= return;=0A= }=0A= =0A= // Skip the end tag too for next time, remembering CR and LF=0A= if (response.charCodeAt(lastEndTag + 11) =3D=3D 13 && = response.charCodeAt(lastEndTag + 12) =3D=3D 10) {=0A= batch.charsProcessed =3D lastEndTag + 13;=0A= }=0A= else {=0A= batch.charsProcessed =3D lastEndTag + 11;=0A= }=0A= =0A= var exec =3D response.substring(firstStartTag + 13, lastEndTag);=0A= =0A= dwr.engine._receivedBatch =3D batch;=0A= dwr.engine._eval(exec);=0A= dwr.engine._receivedBatch =3D null;=0A= };=0A= =0A= /** @private Actually send the block of data in the batch object. */=0A= dwr.engine._sendData =3D function(batch) {=0A= batch.map.batchId =3D dwr.engine._nextBatchId;=0A= dwr.engine._nextBatchId++;=0A= dwr.engine._batches[batch.map.batchId] =3D batch;=0A= dwr.engine._batchesLength++;=0A= batch.completed =3D false;=0A= =0A= for (var i =3D 0; i < batch.preHooks.length; i++) {=0A= batch.preHooks[i]();=0A= }=0A= batch.preHooks =3D null;=0A= // Set a timeout=0A= if (batch.timeout && batch.timeout !=3D 0) {=0A= batch.timeoutId =3D setTimeout(function() { = dwr.engine._abortRequest(batch); }, batch.timeout);=0A= }=0A= // Get setup for XMLHttpRequest if possible=0A= if (batch.rpcType =3D=3D dwr.engine.XMLHttpRequest) {=0A= if (window.XMLHttpRequest) {=0A= batch.req =3D new XMLHttpRequest();=0A= }=0A= // IE5 for the mac claims to support window.ActiveXObject, but = throws an error when it's used=0A= else if (window.ActiveXObject && = !(navigator.userAgent.indexOf("Mac") >=3D 0 && = navigator.userAgent.indexOf("MSIE") >=3D 0)) {=0A= batch.req =3D dwr.engine._newActiveXObject(dwr.engine._XMLHTTP);=0A= }=0A= }=0A= =0A= var prop, request;=0A= if (batch.req) {=0A= // Proceed using XMLHttpRequest=0A= if (batch.async) {=0A= batch.req.onreadystatechange =3D function() {=0A= if (typeof dwr !=3D 'undefined') dwr.engine._stateChange(batch);=0A= };=0A= }=0A= // If we're polling, record this for monitoring=0A= if (batch.isPoll) {=0A= dwr.engine._pollReq =3D batch.req;=0A= // In IE XHR is an ActiveX control so you can't augment it like = this=0A= if (!(document.all && !window.opera)) batch.req.batch =3D batch;=0A= }=0A= // Workaround for Safari 1.x POST bug=0A= var indexSafari =3D navigator.userAgent.indexOf("Safari/");=0A= if (indexSafari >=3D 0) {=0A= var version =3D navigator.userAgent.substring(indexSafari + 7);=0A= if (parseInt(version, 10) < 400) {=0A= if (dwr.engine._allowGetForSafariButMakeForgeryEasier =3D=3D = "true") batch.httpMethod =3D "GET";=0A= else dwr.engine._handleWarning(batch, { = name:"dwr.engine.oldSafari", message:"Safari GET support disabled. See = getahead.org/dwr/server/servlet and = allowGetForSafariButMakeForgeryEasier." });=0A= }=0A= }=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModePlainPoll : = dwr.engine._ModePlainCall;=0A= request =3D dwr.engine._constructRequest(batch);=0A= try {=0A= batch.req.open(batch.httpMethod, request.url, batch.async);=0A= try {=0A= for (prop in batch.headers) {=0A= var value =3D batch.headers[prop];=0A= if (typeof value =3D=3D "string") = batch.req.setRequestHeader(prop, value);=0A= }=0A= if (!batch.headers["Content-Type"]) = batch.req.setRequestHeader("Content-Type", "text/plain");=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= }=0A= batch.req.send(request.body);=0A= if (!batch.async) dwr.engine._stateChange(batch);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleError(batch, ex);=0A= }=0A= }=0A= else if (batch.rpcType !=3D dwr.engine.ScriptTag) {=0A= var idname =3D batch.isPoll ? "dwr-if-poll-" + batch.map.batchId : = "dwr-if-" + batch.map.batchId;=0A= // Removed htmlfile implementation. Don't expect it to return before = v3=0A= batch.div =3D document.createElement("div");=0A= // Add the div to the document first, otherwise IE 6 will ignore = onload handler.=0A= document.body.appendChild(batch.div);=0A= batch.div.innerHTML =3D "";=0A= batch.document =3D document;=0A= batch.iframe =3D batch.document.getElementById(idname);=0A= batch.iframe.batch =3D batch;=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModeHtmlPoll : = dwr.engine._ModeHtmlCall;=0A= if (batch.isPoll) dwr.engine._outstandingIFrames.push(batch.iframe);=0A= request =3D dwr.engine._constructRequest(batch);=0A= if (batch.httpMethod =3D=3D "GET") {=0A= batch.iframe.setAttribute("src", request.url);=0A= }=0A= else {=0A= batch.form =3D batch.document.createElement("form");=0A= batch.form.setAttribute("id", "dwr-form");=0A= batch.form.setAttribute("action", request.url);=0A= batch.form.setAttribute("style", "display:none;");=0A= batch.form.setAttribute("target", idname);=0A= batch.form.target =3D idname;=0A= batch.form.setAttribute("method", batch.httpMethod);=0A= for (prop in batch.map) {=0A= var value =3D batch.map[prop];=0A= if (typeof value !=3D "function") {=0A= var formInput =3D batch.document.createElement("input");=0A= formInput.setAttribute("type", "hidden");=0A= formInput.setAttribute("name", prop);=0A= formInput.setAttribute("value", value);=0A= batch.form.appendChild(formInput);=0A= }=0A= }=0A= batch.document.body.appendChild(batch.form);=0A= batch.form.submit();=0A= }=0A= }=0A= else {=0A= batch.httpMethod =3D "GET"; // There's no such thing as ScriptTag = using POST=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModePlainPoll : = dwr.engine._ModePlainCall;=0A= request =3D dwr.engine._constructRequest(batch);=0A= batch.script =3D document.createElement("script");=0A= batch.script.id =3D "dwr-st-" + batch.map["c0-id"];=0A= batch.script.src =3D request.url;=0A= document.body.appendChild(batch.script);=0A= }=0A= };=0A= =0A= dwr.engine._ModePlainCall =3D "/call/plaincall/";=0A= dwr.engine._ModeHtmlCall =3D "/call/htmlcall/";=0A= dwr.engine._ModePlainPoll =3D "/call/plainpoll/";=0A= dwr.engine._ModeHtmlPoll =3D "/call/htmlpoll/";=0A= =0A= /** @private Work out what the URL should look like */=0A= dwr.engine._constructRequest =3D function(batch) {=0A= // A quick string to help people that use web log analysers=0A= var request =3D { url:batch.path + batch.mode, body:null };=0A= if (batch.isPoll =3D=3D true) {=0A= request.url +=3D "ReverseAjax.dwr";=0A= }=0A= else if (batch.map.callCount =3D=3D 1) {=0A= request.url +=3D batch.map["c0-scriptName"] + "." + = batch.map["c0-methodName"] + ".dwr";=0A= }=0A= else {=0A= request.url +=3D "Multiple." + batch.map.callCount + ".dwr";=0A= }=0A= // Play nice with url re-writing=0A= var sessionMatch =3D location.href.match(/jsessionid=3D([^?]+)/);=0A= if (sessionMatch !=3D null) {=0A= request.url +=3D ";jsessionid=3D" + sessionMatch[1];=0A= }=0A= =0A= var prop;=0A= if (batch.httpMethod =3D=3D "GET") {=0A= // Some browsers (Opera/Safari2) seem to fail to convert the = callCount value=0A= // to a string in the loop below so we do it manually here.=0A= batch.map.callCount =3D "" + batch.map.callCount;=0A= request.url +=3D "?";=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= request.url +=3D encodeURIComponent(prop) + "=3D" + = encodeURIComponent(batch.map[prop]) + "&";=0A= }=0A= }=0A= request.url =3D request.url.substring(0, request.url.length - 1);=0A= }=0A= else {=0A= // PERFORMANCE: for iframe mode this is thrown away.=0A= request.body =3D "";=0A= if (document.all && !window.opera) {=0A= // Use array joining on IE (fastest)=0A= var buf =3D [];=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= buf.push(prop + "=3D" + batch.map[prop] + = dwr.engine._postSeperator);=0A= }=0A= }=0A= request.body =3D buf.join("");=0A= }=0A= else {=0A= // Use string concat on other browsers (fastest)=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= request.body +=3D prop + "=3D" + batch.map[prop] + = dwr.engine._postSeperator;=0A= }=0A= }=0A= }=0A= request.body =3D dwr.engine._contentRewriteHandler(request.body);=0A= }=0A= request.url =3D dwr.engine._urlRewriteHandler(request.url);=0A= return request;=0A= };=0A= =0A= /** @private Called by XMLHttpRequest to indicate that something has = happened */=0A= dwr.engine._stateChange =3D function(batch) {=0A= var toEval;=0A= =0A= if (batch.completed) {=0A= dwr.engine._debug("Error: _stateChange() with batch.completed");=0A= return;=0A= }=0A= =0A= var req =3D batch.req;=0A= try {=0A= if (req.readyState !=3D 4) return;=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= // It's broken - clear up and forget this call=0A= dwr.engine._clearUp(batch);=0A= return;=0A= }=0A= =0A= if (dwr.engine._unloading) {=0A= dwr.engine._debug("Ignoring reply from server as page is = unloading.");=0A= return;=0A= }=0A= =0A= try {=0A= var reply =3D req.responseText;=0A= reply =3D dwr.engine._replyRewriteHandler(reply);=0A= var status =3D req.status; // causes Mozilla to except on page moves=0A= =0A= if (reply =3D=3D null || reply =3D=3D "") {=0A= dwr.engine._handleWarning(batch, { name:"dwr.engine.missingData", = message:"No data received from server" });=0A= }=0A= else if (status !=3D 200) {=0A= dwr.engine._handleError(batch, { name:"dwr.engine.http." + status, = message:req.statusText });=0A= }=0A= else {=0A= var contentType =3D req.getResponseHeader("Content-Type");=0A= if (!contentType.match(/^text\/plain/) && = !contentType.match(/^text\/javascript/)) {=0A= if (contentType.match(/^text\/html/) && typeof = batch.textHtmlHandler =3D=3D "function") {=0A= batch.textHtmlHandler({ status:status, responseText:reply, = contentType:contentType });=0A= }=0A= else {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.invalidMimeType", message:"Invalid content type: '" + = contentType + "'" });=0A= }=0A= }=0A= else {=0A= // Comet replies might have already partially executed=0A= if (batch.isPoll && batch.map.partialResponse =3D=3D = dwr.engine._partialResponseYes) {=0A= dwr.engine._processCometResponse(reply, batch);=0A= }=0A= else {=0A= if (reply.search("//#DWR") =3D=3D -1) {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.invalidReply", message:"Invalid reply from server" });=0A= }=0A= else {=0A= toEval =3D reply;=0A= }=0A= }=0A= }=0A= }=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= }=0A= =0A= dwr.engine._callPostHooks(batch);=0A= =0A= // Outside of the try/catch so errors propogate normally:=0A= dwr.engine._receivedBatch =3D batch;=0A= if (toEval !=3D null) toEval =3D = toEval.replace(dwr.engine._scriptTagProtection, "");=0A= dwr.engine._eval(toEval);=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._validateBatch(batch);=0A= if (!batch.completed) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /**=0A= * @private This function is invoked when a batch reply is received.=0A= * It checks that there is a response for every call in the batch. = Otherwise,=0A= * an error will be signaled (a call without a response indicates that = the =0A= * server failed to send complete batch response). =0A= */=0A= dwr.engine._validateBatch =3D function(batch) {=0A= // If some call left unreplied, report an error.=0A= if (!batch.completed) {=0A= for (var i =3D 0; i < batch.map.callCount; i++) {=0A= if (batch.handlers[i] !=3D null) {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.incompleteReply", message:"Incomplete reply from = server" });=0A= break;=0A= }=0A= }=0A= }=0A= }=0A= =0A= /** @private Called from iframe onload, check batch using batch-id */=0A= dwr.engine._iframeLoadingComplete =3D function(batchId) {=0A= // dwr.engine._checkCometPoll();=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch) dwr.engine._validateBatch(batch);=0A= }=0A= =0A= /** @private Called by the server: Execute a callback */=0A= dwr.engine._remoteHandleCallback =3D function(batchId, callId, reply) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch =3D=3D null) {=0A= dwr.engine._debug("Warning: batch =3D=3D null in = remoteHandleCallback for batchId=3D" + batchId, true);=0A= return;=0A= }=0A= // Error handlers inside here indicate an error that is nothing to do=0A= // with DWR so we handle them differently.=0A= try {=0A= var handlers =3D batch.handlers[callId];=0A= batch.handlers[callId] =3D null;=0A= if (!handlers) {=0A= dwr.engine._debug("Warning: Missing handlers. callId=3D" + callId, = true);=0A= }=0A= else if (typeof handlers.callback =3D=3D "function") = handlers.callback(reply);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleError(batch, ex);=0A= }=0A= };=0A= =0A= /** @private Called by the server: Handle an exception for a call */=0A= dwr.engine._remoteHandleException =3D function(batchId, callId, ex) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch =3D=3D null) { dwr.engine._debug("Warning: null batch in = remoteHandleException", true); return; }=0A= var handlers =3D batch.handlers[callId];=0A= batch.handlers[callId] =3D null;=0A= if (handlers =3D=3D null) { dwr.engine._debug("Warning: null handlers = in remoteHandleException", true); return; }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= if (typeof handlers.exceptionHandler =3D=3D "function") = handlers.exceptionHandler(ex.message, ex);=0A= else if (typeof batch.errorHandler =3D=3D "function") = batch.errorHandler(ex.message, ex);=0A= };=0A= =0A= /** @private Called by the server: The whole batch is broken */=0A= dwr.engine._remoteHandleBatchException =3D function(ex, batchId) {=0A= var searchBatch =3D (dwr.engine._receivedBatch =3D=3D null && batchId = !=3D null);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D dwr.engine._batches[batchId];=0A= }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= dwr.engine._handleError(dwr.engine._receivedBatch, ex);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._clearUp(dwr.engine._batches[batchId]);=0A= }=0A= };=0A= =0A= /** @private Called by the server: Reverse ajax should not be used */=0A= dwr.engine._remotePollCometDisabled =3D function(ex, batchId) {=0A= dwr.engine.setActiveReverseAjax(false);=0A= var searchBatch =3D (dwr.engine._receivedBatch =3D=3D null && batchId = !=3D null);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D dwr.engine._batches[batchId];=0A= }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= dwr.engine._handleError(dwr.engine._receivedBatch, ex);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._clearUp(dwr.engine._batches[batchId]);=0A= }=0A= };=0A= =0A= /** @private Called by the server: An IFrame reply is about to start */=0A= dwr.engine._remoteBeginIFrameResponse =3D function(iframe, batchId) {=0A= if (iframe !=3D null) dwr.engine._receivedBatch =3D iframe.batch;=0A= dwr.engine._callPostHooks(dwr.engine._receivedBatch);=0A= };=0A= =0A= /** @private Called by the server: An IFrame reply is just completing */=0A= dwr.engine._remoteEndIFrameResponse =3D function(batchId) {=0A= dwr.engine._clearUp(dwr.engine._receivedBatch);=0A= dwr.engine._receivedBatch =3D null;=0A= };=0A= =0A= /** @private This is a hack to make the context be this window */=0A= dwr.engine._eval =3D function(script) {=0A= if (script =3D=3D null) return null;=0A= if (script =3D=3D "") { dwr.engine._debug("Warning: blank script", = true); return null; }=0A= // dwr.engine._debug("Exec: [" + script + "]", true);=0A= return eval(script);=0A= };=0A= =0A= /** @private Called as a result of a request timeout */=0A= dwr.engine._abortRequest =3D function(batch) {=0A= if (batch && !batch.completed) {=0A= dwr.engine._clearUp(batch);=0A= if (batch.req) batch.req.abort();=0A= dwr.engine._handleError(batch, { name:"dwr.engine.timeout", = message:"Timeout" });=0A= }=0A= };=0A= =0A= /** @private call all the post hooks for a batch */=0A= dwr.engine._callPostHooks =3D function(batch) {=0A= if (batch.postHooks) {=0A= for (var i =3D 0; i < batch.postHooks.length; i++) {=0A= batch.postHooks[i]();=0A= }=0A= batch.postHooks =3D null;=0A= }=0A= };=0A= =0A= /** @private A call has finished by whatever means and we need to shut = it all down. */=0A= dwr.engine._clearUp =3D function(batch) {=0A= if (!batch) { dwr.engine._debug("Warning: null batch in = dwr.engine._clearUp()", true); return; }=0A= if (batch.completed) { dwr.engine._debug("Warning: Double complete", = true); return; }=0A= =0A= // IFrame tidyup=0A= if (batch.div) batch.div.parentNode.removeChild(batch.div);=0A= if (batch.iframe) {=0A= // If this is a poll frame then stop comet polling=0A= for (var i =3D 0; i < dwr.engine._outstandingIFrames.length; i++) {=0A= if (dwr.engine._outstandingIFrames[i] =3D=3D batch.iframe) {=0A= dwr.engine._outstandingIFrames.splice(i, 1);=0A= }=0A= }=0A= batch.iframe.parentNode.removeChild(batch.iframe);=0A= }=0A= if (batch.form) batch.form.parentNode.removeChild(batch.form);=0A= =0A= // XHR tidyup: avoid IE handles increase=0A= if (batch.req) {=0A= // If this is a poll frame then stop comet polling=0A= if (batch.req =3D=3D dwr.engine._pollReq) dwr.engine._pollReq =3D = null;=0A= delete batch.req;=0A= }=0A= =0A= // Timeout tidyup=0A= if (batch.timeoutId) {=0A= clearTimeout(batch.timeoutId);=0A= delete batch.timeoutId;=0A= }=0A= =0A= if (batch.map && (batch.map.batchId || batch.map.batchId =3D=3D 0)) {=0A= delete dwr.engine._batches[batch.map.batchId];=0A= dwr.engine._batchesLength--;=0A= }=0A= =0A= batch.completed =3D true;=0A= =0A= // If there is anything on the queue waiting to go out, then send it.=0A= // We don't need to check for ordered mode, here because when ordered = mode=0A= // gets turned off, we still process *waiting* batches in an ordered = way.=0A= if (dwr.engine._batchQueue.length !=3D 0) {=0A= var sendbatch =3D dwr.engine._batchQueue.shift();=0A= dwr.engine._sendData(sendbatch);=0A= }=0A= };=0A= =0A= /** @private Abort any XHRs in progress at page unload (solves zombie = socket problems in IE). */=0A= dwr.engine._unloader =3D function() {=0A= dwr.engine._unloading =3D true;=0A= =0A= // Empty queue of waiting ordered requests=0A= dwr.engine._batchQueue.length =3D 0;=0A= =0A= // Abort any ongoing XHRs and clear their batches=0A= for (var batchId in dwr.engine._batches) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= // Only process objects that look like batches (avoid prototype = additions!)=0A= if (batch && batch.map) {=0A= if (batch.req) {=0A= batch.req.abort();=0A= }=0A= dwr.engine._clearUp(batch);=0A= }=0A= }=0A= };=0A= // Now register the unload handler=0A= if (window.addEventListener) window.addEventListener('unload', = dwr.engine._unloader, false);=0A= else if (window.attachEvent) window.attachEvent('onunload', = dwr.engine._unloader);=0A= =0A= /** @private Generic error handling routing to save having null checks = everywhere */=0A= dwr.engine._handleError =3D function(batch, ex) {=0A= if (typeof ex =3D=3D "string") ex =3D { name:"unknown", message:ex };=0A= if (ex.message =3D=3D null) ex.message =3D "";=0A= if (ex.name =3D=3D null) ex.name =3D "unknown";=0A= if (batch && typeof batch.errorHandler =3D=3D "function") = batch.errorHandler(ex.message, ex);=0A= else if (dwr.engine._errorHandler) = dwr.engine._errorHandler(ex.message, ex);=0A= if (batch) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /** @private Generic error handling routing to save having null checks = everywhere */=0A= dwr.engine._handleWarning =3D function(batch, ex) {=0A= if (typeof ex =3D=3D "string") ex =3D { name:"unknown", message:ex };=0A= if (ex.message =3D=3D null) ex.message =3D "";=0A= if (ex.name =3D=3D null) ex.name =3D "unknown";=0A= if (batch && typeof batch.warningHandler =3D=3D "function") = batch.warningHandler(ex.message, ex);=0A= else if (dwr.engine._warningHandler) = dwr.engine._warningHandler(ex.message, ex);=0A= if (batch) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /**=0A= * @private Marshall a data item=0A= * @param batch A map of variables to how they have been marshalled=0A= * @param referto An array of already marshalled variables to prevent = recurrsion=0A= * @param data The data to be marshalled=0A= * @param name The name of the data being marshalled=0A= */=0A= dwr.engine._serializeAll =3D function(batch, referto, data, name) {=0A= if (data =3D=3D null) {=0A= batch.map[name] =3D "null:null";=0A= return;=0A= }=0A= =0A= switch (typeof data) {=0A= case "boolean":=0A= batch.map[name] =3D "boolean:" + data;=0A= break;=0A= case "number":=0A= batch.map[name] =3D "number:" + data;=0A= break;=0A= case "string":=0A= batch.map[name] =3D "string:" + encodeURIComponent(data);=0A= break;=0A= case "object":=0A= if (data instanceof String) batch.map[name] =3D "String:" + = encodeURIComponent(data);=0A= else if (data instanceof Boolean) batch.map[name] =3D "Boolean:" + = data;=0A= else if (data instanceof Number) batch.map[name] =3D "Number:" + = data;=0A= else if (data instanceof Date) batch.map[name] =3D "Date:" + = data.getTime();=0A= else if (data && data.join) batch.map[name] =3D = dwr.engine._serializeArray(batch, referto, data, name);=0A= else batch.map[name] =3D dwr.engine._serializeObject(batch, referto, = data, name);=0A= break;=0A= case "function":=0A= // We just ignore functions.=0A= break;=0A= default:=0A= dwr.engine._handleWarning(null, { name:"dwr.engine.unexpectedType", = message:"Unexpected type: " + typeof data + ", attempting default = converter." });=0A= batch.map[name] =3D "default:" + data;=0A= break;=0A= }=0A= };=0A= =0A= /** @private Have we already converted this object? */=0A= dwr.engine._lookup =3D function(referto, data, name) {=0A= var lookup;=0A= // Can't use a map: getahead.org/ajax/javascript-gotchas=0A= for (var i =3D 0; i < referto.length; i++) {=0A= if (referto[i].data =3D=3D data) {=0A= lookup =3D referto[i];=0A= break;=0A= }=0A= }=0A= if (lookup) return "reference:" + lookup.name;=0A= referto.push({ data:data, name:name });=0A= return null;=0A= };=0A= =0A= /** @private Marshall an object */=0A= dwr.engine._serializeObject =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= // This check for an HTML is not complete, but is there a better way?=0A= // Maybe we should add: data.hasChildNodes typeof "function" =3D=3D = true=0A= if (data.nodeName && data.nodeType) {=0A= return dwr.engine._serializeXml(batch, referto, data, name);=0A= }=0A= =0A= // treat objects as an associative arrays=0A= var reply =3D "Object_" + dwr.engine._getObjectClassName(data) + ":{";=0A= var element;=0A= for (element in data) {=0A= if (typeof data[element] !=3D "function") {=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[element], childName);=0A= =0A= reply +=3D encodeURIComponent(element) + ":reference:" + childName = + ", ";=0A= }=0A= }=0A= =0A= if (reply.substring(reply.length - 2) =3D=3D ", ") {=0A= reply =3D reply.substring(0, reply.length - 2);=0A= }=0A= reply +=3D "}";=0A= =0A= return reply;=0A= };=0A= =0A= /** @private Returns the classname of supplied argument obj */=0A= dwr.engine._errorClasses =3D { "Error":Error, "EvalError":EvalError, = "RangeError":RangeError, "ReferenceError":ReferenceError, = "SyntaxError":SyntaxError, "TypeError":TypeError, "URIError":URIError };=0A= dwr.engine._getObjectClassName =3D function(obj) {=0A= // Try to find the classname by stringifying the object's constructor=0A= // and extract from "function ".=0A= if (obj && obj.constructor && obj.constructor.toString)=0A= {=0A= var str =3D obj.constructor.toString();=0A= var regexpmatch =3D str.match(/function\s+(\w+)/);=0A= if (regexpmatch && regexpmatch.length =3D=3D 2) {=0A= return regexpmatch[1];=0A= }=0A= }=0A= =0A= // Now manually test against the core Error classes, as these in some =0A= // browsers successfully match to the wrong class in the =0A= // Object.toString() test we will do later=0A= if (obj && obj.constructor) {=0A= for (var errorname in dwr.engine._errorClasses) {=0A= if (obj.constructor =3D=3D dwr.engine._errorClasses[errorname]) = return errorname;=0A= }=0A= }=0A= =0A= // Try to find the classname by calling Object.toString() on the object=0A= // and extracting from "[object ]"=0A= if (obj) {=0A= var str =3D Object.prototype.toString.call(obj);=0A= var regexpmatch =3D str.match(/\[object\s+(\w+)/);=0A= if (regexpmatch && regexpmatch.length=3D=3D2) {=0A= return regexpmatch[1];=0A= }=0A= }=0A= =0A= // Supplied argument was probably not an object, but what is better?=0A= return "Object";=0A= };=0A= =0A= /** @private Marshall an object */=0A= dwr.engine._serializeXml =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= var output;=0A= if (window.XMLSerializer) output =3D new = XMLSerializer().serializeToString(data);=0A= else if (data.toXml) output =3D data.toXml;=0A= else output =3D data.innerHTML;=0A= =0A= return "XML:" + encodeURIComponent(output);=0A= };=0A= =0A= /** @private Marshall an array */=0A= dwr.engine._serializeArray =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= if (document.all && !window.opera) {=0A= // Use array joining on IE (fastest)=0A= var buf =3D ["Array:["];=0A= for (var i =3D 0; i < data.length; i++) {=0A= if (i !=3D 0) buf.push(",");=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[i], childName);=0A= buf.push("reference:");=0A= buf.push(childName);=0A= }=0A= buf.push("]");=0A= reply =3D buf.join("");=0A= }=0A= else {=0A= // Use string concat on other browsers (fastest)=0A= var reply =3D "Array:[";=0A= for (var i =3D 0; i < data.length; i++) {=0A= if (i !=3D 0) reply +=3D ",";=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[i], childName);=0A= reply +=3D "reference:";=0A= reply +=3D childName;=0A= }=0A= reply +=3D "]";=0A= }=0A= =0A= return reply;=0A= };=0A= =0A= /** @private Convert an XML string into a DOM object. */=0A= dwr.engine._unserializeDocument =3D function(xml) {=0A= var dom;=0A= if (window.DOMParser) {=0A= var parser =3D new DOMParser();=0A= dom =3D parser.parseFromString(xml, "text/xml");=0A= if (!dom.documentElement || dom.documentElement.tagName =3D=3D = "parsererror") {=0A= var message =3D dom.documentElement.firstChild.data;=0A= message +=3D "\n" + = dom.documentElement.firstChild.nextSibling.firstChild.data;=0A= throw message;=0A= }=0A= return dom;=0A= }=0A= else if (window.ActiveXObject) {=0A= dom =3D dwr.engine._newActiveXObject(dwr.engine._DOMDocument);=0A= dom.loadXML(xml); // What happens on parse fail with IE?=0A= return dom;=0A= }=0A= else {=0A= var div =3D document.createElement("div");=0A= div.innerHTML =3D xml;=0A= return div;=0A= }=0A= };=0A= =0A= /** @param axarray An array of strings to attempt to create ActiveX = objects from */=0A= dwr.engine._newActiveXObject =3D function(axarray) {=0A= var returnValue; =0A= for (var i =3D 0; i < axarray.length; i++) {=0A= try {=0A= returnValue =3D new ActiveXObject(axarray[i]);=0A= break;=0A= }=0A= catch (ex) { /* ignore */ }=0A= }=0A= return returnValue;=0A= };=0A= =0A= /** @private Used internally when some message needs to get to the = programmer */=0A= dwr.engine._debug =3D function(message, stacktrace) {=0A= var written =3D false;=0A= try {=0A= if (window.console) {=0A= if (stacktrace && window.console.trace) window.console.trace();=0A= window.console.log(message);=0A= written =3D true;=0A= }=0A= else if (window.opera && window.opera.postError) {=0A= window.opera.postError(message);=0A= written =3D true;=0A= }=0A= }=0A= catch (ex) { /* ignore */ }=0A= =0A= if (!written) {=0A= var debug =3D document.getElementById("dwr-debug");=0A= if (debug) {=0A= var contents =3D message + "" + debug.innerHTML;=0A= if (contents.length > 2048) contents =3D contents.substring(0, = 2048);=0A= debug.innerHTML =3D contents;=0A= }=0A= }=0A= };=0A= ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/javascript/ngui/lightbox.js?v=9.0.440.7 /* Created By: Chris Campbell Website: http://particletree.com Date: 2/1/2006 Inspired by the lightbox implementation found at = http://www.huddletogether.com/projects/lightbox/ */ /*-------------------------------GLOBAL = VARIABLES------------------------------------*/ var detect =3D navigator.userAgent.toLowerCase(); var OS,browser,version,total,thestring; /*-----------------------------------------------------------------------= ------------------------*/ //Browser detect script origionally created by Peter Paul Koch at = http://www.quirksmode.org/ function getBrowserInfo() { if (checkIt('konqueror')) { browser =3D "Konqueror"; OS =3D "Linux"; } else if (checkIt('safari')) browser =3D "Safari" else if (checkIt('omniweb')) browser =3D "OmniWeb" else if (checkIt('opera')) browser =3D "Opera" else if (checkIt('firefox')) browser =3D "Firefox" else if (checkIt('webtv')) browser =3D "WebTV"; else if (checkIt('icab')) browser =3D "iCab" else if (checkIt('msie')) browser =3D "Internet Explorer" else if (!checkIt('compatible')) { browser =3D "Netscape Navigator" version =3D detect.charAt(8); } else browser =3D "An unknown browser"; if (!version) version =3D detect.charAt(place + thestring.length); if (!OS) { if (checkIt('linux')) OS =3D "Linux"; else if (checkIt('x11')) OS =3D "Unix"; else if (checkIt('mac')) OS =3D "Mac" else if (checkIt('win')) OS =3D "Windows" else OS =3D "an unknown operating system"; } } function checkIt(string) { place =3D detect.indexOf(string) + 1; thestring =3D string; return place; } /*-----------------------------------------------------------------------= ------------------------*/ Event.observe(window, 'load', initialize, false); Event.observe(window, 'load', getBrowserInfo, false); //Event.observe(window, 'unload', Event.unloadCache, false); var lightbox =3D Class.create(); lightbox.prototype =3D { yPos : 0, xPos : 0, =20 initialize: function(ctrl) { this.myplacesLink =3D ctrl; this.content =3D ctrl.href; this.eventListnerMethod =3D this.activate.bindAsEventListener(this); Event.observe(this.myplacesLink, 'click', this.eventListnerMethod, = false); ctrl.onclick =3D function(){return false;}; }, =09 // Turn everything on - mainly the IE fixes activate: function(){ =09 try { =09 this.bigFrame =3D parent.content; this.smallFrame =3D null; if (this.bigFrame.main) // course frameset { this.bigFrame =3D this.bigFrame.main; } else if (this.bigFrame.WFS_Files) // content system frameset { this.smallFrame =3D this.bigFrame.WFS_Navigation;=09 this.bigFrame =3D this.bigFrame.WFS_Files;=09 }=09 =20 if(this.bigFrame.document.getElementById('overlay')) { return; } =09 =09 head =3D this.bigFrame.document.getElementsByTagName('head')[0]; =09 =09 doctype =3D this.bigFrame.document.doctype; =09 =09 if((doctype !=3D null && doctype.name !=3D 'HTML' && browser =3D=3D = 'Firefox') || (doctype =3D=3D null && browser !=3D 'Internet Explorer')) { = this.newwindow=3Dwindow.open('myPlaces?newWindow=3Dtrue','name','resizabl= e=3D0,scrollbars=3D0,height=3D600,width=3D600'); newwindow.focus(); return; } else {=09 var addPrototype =3D true; =09 scripts =3D = $A(this.bigFrame.document.getElementsByTagName('script')).each( function = (link ) { if(link.src.endsWith('prototype.js')) { addPrototype =3D false; }=20 }); =09 if(addPrototype =3D=3D true) { proScript =3D = this.bigFrame.document.createElement('script'); proScript.type =3D 'text/javascript'; proScript.src =3D '/javascript/prototype.js'; head.appendChild(proScript); =09 } =09 /*var addNGDefaultCSS =3D true; =09 scripts =3D = $A(this.bigFrame.document.getElementsByTagName('link')).each( function = (cssLink ) { if(cssLink.href.endsWith('theme.css')) { addNGDefaultCSS =3D false; }=20 }); =09 if(addNGDefaultCSS =3D=3D true) { cssNode =3D this.bigFrame.document.createElement('link'); cssNode.type =3D 'text/css'; cssNode.rel =3D 'stylesheet'; cssNode.href =3D '/ui/styles/ngui/ng_default.css'; head.appendChild(cssNode); }*/ =09 bod =3D this.bigFrame.document.getElementsByTagName('body')[0]; html =3D = this.bigFrame.document.getElementsByTagName('html')[0]; =09 =09 overlay =3D this.bigFrame.document.createElement('div'); overlay.id =3D 'overlay'; =09 lb =3D this.bigFrame.document.createElement('div'); lb.id =3D 'lightboxWrapper'; lb.className =3D 'loading'; =20 =09 bod.appendChild(overlay); bod.appendChild(lb); =09 if(this.smallFrame) { bod =3D = this.smallFrame.document.getElementsByTagName('body')[0]; overlay =3D this.smallFrame.document.createElement('div'); overlay.id =3D 'overlay'; bod.appendChild(overlay); } =09 this.getScroll(); this.setScroll(0,0); if (browser =3D=3D 'Internet Explorer'){ this.prepareIE('100%', 'hidden'); this.hideSelects('hidden'); } this.displayLightbox("block"); } } catch(err) { =09 = newwindow=3Dwindow.open('myPlaces?newWindow=3Dtrue','name','resizable=3D0= ,scrollbars=3D0,height=3D600,width=3D600'); =09 newwindow.focus(); return; }=09 }, =09 // Ie requires height to 100% and overflow hidden or else you can = scroll down past the lightbox prepareIE: function(height, overflow){ bod =3D this.bigFrame.document.getElementsByTagName('body')[0]; bod.style.height =3D height; bod.style.overflow =3D overflow; =20 htm =3D this.bigFrame.document.getElementsByTagName('html')[0]; htm.style.height =3D height; htm.style.overflow =3D overflow;=20 }, =09 // In IE, select elements hover on top of the lightbox hideSelects: function(visibility){ selects =3D this.bigFrame.document.getElementsByTagName('select'); for(i =3D 0; i < selects.length; i++) { selects[i].style.visibility =3D visibility; } }, =09 // Taken from lightbox implementation found at = http://www.huddletogether.com/projects/lightbox/ getScroll: function(){ if (this.bigFrame.pageYOffset) { this.yPos =3D this.bigFrame.document.pageYOffset; } else if (this.bigFrame.document.documentElement && = parent.content.document.documentElement.scrollTop){ this.yPos =3D this.bigFrame.document.documentElement.scrollTop;=20 } else if (this.bigFrame.document.body) { this.yPos =3D this.bigFrame.document.body.scrollTop; } }, =09 setScroll: function(x, y){ this.bigFrame.scrollTo(x, y);=20 }, =09 displayLightbox: function(display){ this.bigFrame.document.getElementById('overlay').style.display =3D = display; this.bigFrame.document.getElementById('lightboxWrapper').style.display = =3D display; =09 if(this.smallFrame) { this.smallFrame.document.getElementById('overlay').style.display =3D = display;=09 } if(display !=3D 'none') this.loadInfo(); }, =09 // Begin Ajax request based off of the href of the clicked linked loadInfo: function() { new Ajax.Request('/webapps/portal/execute/myPlaces', { onSuccess: function(transport, json) { =09 var result =3D transport.responseText.evalJSON( true ); =09 if ( result.success =3D=3D "true" ) { =09 this.bigFrame.document.getElementById('lightboxWrapper').innerHTML = =3D result.myPlacesContent; myPlacesContentDiv =3D = this.bigFrame.document.getElementById('myPlacesContent'); myPlacesContentDiv.getElementsByTagName('a')[0].focus(); =09 //set all tab groups to be inactive active =3D parent.nav.document.getElementsByClassName('active'); for(i =3D 0; i < active.length; i++)=20 { this.activeTab =3D active[0]; active[i].removeClassName('active'); } =20 this.actions(); } else { new page.InlineConfirmation("error", result.errorMessage, false );=20 } =20 }.bind(this) }); =09 }, =20 =09 // Display Ajax response processInfo: function(response){ info =3D "" + = response.responseText + ""; $('lbLoadMessage').insert({before: info}); $('lightbox').className =3D "done";=09 this.actions(); =09 }, =09 // Search through new links within the lightbox, and attach click event actions: function(){ lbAction =3D this.bigFrame.document.getElementById('lbAction'); Event.observe(lbAction, 'click', = this.deactivate.bindAsEventListener(this), false); lbAction.onclick =3D function(){return false;}; }, =09 // Example of creating your own functionality once lightbox is = initiated insert: function(e){ link =3D Event.element(e).parentNode; Element.remove($('lbContent')); =20 var myAjax =3D new Ajax.Request( link.href, {method: 'post', parameters: "", onComplete: = this.processInfo.bindAsEventListener(this)} ); =20 }, =09 // Example of creating your own functionality once lightbox is = initiated deactivate: function(){ if(this.smallFrame) { = this.smallFrame.document.getElementById('overlay').style.display=3D'none'= ; } =09 this.bigFrame.$('lightboxWrapper').remove(); this.bigFrame.$('overlay').remove(); =09 this.setScroll(0,this.yPos); if (browser =3D=3D "Internet Explorer"){ this.prepareIE("auto", "auto"); this.hideSelects("visible"); } =09 = //this.bigFrame.document.getElementById('overlay').style.display=3D'none'= ; =09 =09 if(this.activeTab) this.activeTab.addClassName('active'); //Event.observe(this.myplacesLink, 'click', this.eventListnerMethod, = false); } } /*-----------------------------------------------------------------------= ------------------------*/ // Onload, make all links that need to trigger a lightbox active function initialize(){ lbox =3D document.getElementsByClassName('myPlaces'); for(i =3D 0; i < lbox.length; i++) { valid =3D new lightbox(lbox[i]); } } ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: multipart/alternative; boundary="----=_NextPart_001_0021_01CA341B.AF48DDF0" ------=_NextPart_001_0021_01CA341B.AF48DDF0 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/portal/frameset.jsp?tab_id=_41_1&url=%2Fwebapps%2Fblackboard%2Fexecute%2Flauncher%3Ftype%3DCourse%26id%3D_702465_1%26url%3D =EF=BB=BF Blackboard Learn ------=_NextPart_001_0021_01CA341B.AF48DDF0 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/portal/execute/topframe?tab_tab_group_id=_1_1&frameSize=LARGE =EF=BB=BF Blackboard = Learn Wayne State University Home =20 Utility Links =20 My Places Home Help=20 Logout Tab Groups=20 My Blackboard Content Collection Library Scholar = ------=_NextPart_001_0021_01CA341B.AF48DDF0-- ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://blackboard.wayne.edu/images/ci/ng/small_new_window.gif R0lGODlhEAAPAJEDAO3t7f///5mZmf///yH5BAEAAAMALAAAAAAQAA8AAAIrnI+py+IPRRKgWiuR CLz3PDzeCFLb+B0mmhorG5TAycrRrV4XqN4PAwwCCwA7 ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://blackboard.wayne.edu/images/ci/ng/small_help_on2.gif R0lGODlhEAAPAJECAGZmZv///////wAAACH5BAEAAAIALAAAAAAQAA8AAAIilI+pu+EfmAig2tis xgm6ymWXRI0kGDaPdJSp+CoQS9dKAQA7 ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/branding/themes/wsu_production_theme/theme.css?v=9.0.440.7 BODY { BACKGROUND-POSITION: 0% 0%; MARGIN: 0px; FONT: 0.8em "Lucida grande", = Arial, Verdana, sans-serif; HEIGHT: 100%; BACKGROUND-COLOR: #cdcdcd } FORM { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } A { COLOR: #003366 } * { FONT-FAMILY: "Lucida grande", Arial, verdana, sans-serif } IMG { BORDER-RIGHT: 0px; BORDER-TOP: 0px; VERTICAL-ALIGN: middle; = BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } .hideme { DISPLAY: none! important } H1 { FONT-SIZE: 148%; HEIGHT: 1% } H2 { FONT-SIZE: 123.1% } H3 { FONT-SIZE: 108% } H1 { MARGIN: 1em 0px } H2 { MARGIN: 1em 0px } H3 { MARGIN: 1em 0px } H1 { FONT-WEIGHT: bold } H2 { FONT-WEIGHT: bold } H3 { FONT-WEIGHT: bold } H4 { FONT-WEIGHT: bold } H5 { FONT-WEIGHT: bold } H6 { FONT-WEIGHT: bold } STRONG { FONT-WEIGHT: bold } IMG { BEHAVIOR: url(/javascript/iepngfix.htc) } DIV { BEHAVIOR: url(/javascript/iepngfix.htc) } BODY { MIN-WIDTH: 800px } DIV.topGlobalLinks { MIN-WIDTH: 800px } BODY.popup { PADDING-RIGHT: 0px; MIN-WIDTH: 100%; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; PADDING-TOP: 6px } BODY.csMenuFrame { MIN-WIDTH: 200px; WIDTH: 100%; PADDING-TOP: 12px } BODY.popupMenu { MIN-WIDTH: 200px; WIDTH: 100%; PADDING-TOP: 12px } DIV.locationPane { =09 } DIV.topGlobalLinks { =09 } BODY.popup DIV.locationPane { WIDTH: 100% } .extraLarge { FONT-SIZE: 200%; LINE-HEIGHT: 150% } TABLE.bouncer { WIDTH: 100%; BORDER-COLLAPSE: collapse } TABLE.bouncer TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } DIV.topTabs { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: #dedede 3px solid; ZOOM: 1; POSITION: = relative; HEIGHT: 74px } TABLE.topTabs { BORDER-COLLAPSE: collapse } .frameResizeToggle { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9px; BACKGROUND: = #bbbbbb; LEFT: 0px; PADDING-BOTTOM: 0px; BOTTOM: 0px; LINE-HEIGHT: 1px; = PADDING-TOP: 0px; POSITION: absolute; TOP: 68px; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px } .frameResizeToggle A { BACKGROUND: url(images/top_frame_toggle_2.gif) no-repeat 0px 2px; = FILTER: alpha(opacity=3D60); OVERFLOW: hidden; HEIGHT: 18px; opacity: .6 } .frameResizeToggle A:hover { FILTER: alpha(opacity=3D100); opacity: 1 } .frameResizeToggle A.resize-on { BACKGROUND-POSITION: 0px -15px } .frameResizeToggle A.resize-off { BACKGROUND-POSITION: 0px 2px } .frameResizeToggle A IMG { WIDTH: 16px; HEIGHT: 18px } DIV.topTabs DIV.tabWrapper-left { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } DIV.topTabs DIV.tabWrapper-center { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } DIV.topTabs DIV.tabWrapper-right { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } TABLE.topTabs TR TD DIV.tabWrapper-left { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } TABLE.topTabs TR TD DIV.tabWrapper-center { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } TABLE.topTabs TR TD DIV.tabWrapper-right { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } DIV.topTabs DIV.tabWrapper-center TABLE.appTabs { MARGIN: 0px auto } TABLE.topTabs TR TD DIV.tabWrapper-center TABLE.appTabs { MARGIN: 0px auto } DIV.topTabs DIV.tabWrapper-right TABLE.appTabs { FLOAT: right } TABLE.topTabs TR TD DIV.tabWrapper-right TABLE.appTabs { FLOAT: right } TABLE.appTabs { WIDTH: auto; POSITION: relative; TOP: 3px; border-spacing: 2px } HTML * TABLE.appTabs { TOP: 3px } TABLE.appTabs TBODY TR TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 4px 0px 0px; PADDING-TOP: 0px; POSITION: relative } #topTab { BORDER-RIGHT: #65696e 1px solid; PADDING-RIGHT: 1.2em; = BACKGROUND-POSITION: right 5px; BORDER-TOP: #65696e 1px solid; DISPLAY: = block; PADDING-LEFT: 1.2em; FONT-SIZE: 95%; Z-INDEX: 100; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0.4em; MARGIN: 0px; BORDER-LEFT: = #65696e 1px solid; COLOR: #ffffff; PADDING-TOP: 0.4em; BORDER-BOTTOM: = 0px; BACKGROUND-REPEAT: repeat-x; WHITE-SPACE: nowrap; BACKGROUND-COLOR: = #7c8188; TEXT-ALIGN: center; TEXT-DECORATION: none } TABLE.appTabs TBODY TR TD A { BORDER-RIGHT: #65696e 1px solid; PADDING-RIGHT: 1.2em; = BACKGROUND-POSITION: right 5px; BORDER-TOP: #65696e 1px solid; DISPLAY: = block; PADDING-LEFT: 1.2em; FONT-SIZE: 95%; Z-INDEX: 100; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0.4em; MARGIN: 0px; BORDER-LEFT: = #65696e 1px solid; COLOR: #ffffff; PADDING-TOP: 0.4em; BORDER-BOTTOM: = 0px; BACKGROUND-REPEAT: repeat-x; WHITE-SPACE: nowrap; BACKGROUND-COLOR: = #7c8188; TEXT-ALIGN: center; TEXT-DECORATION: none } TABLE.appTabs TBODY TR TD A:hover { BORDER-RIGHT: #597298 1px solid; BORDER-TOP: #597298 1px solid; = BACKGROUND: #bbb; BORDER-LEFT: #597298 1px solid; COLOR: #000; = BORDER-BOTTOM: 0px } TABLE.appTabs TBODY TR TD A:focus { BORDER-RIGHT: #597298 1px solid; BORDER-TOP: #597298 1px solid; = BACKGROUND: #bbb; BORDER-LEFT: #597298 1px solid; COLOR: #000; = BORDER-BOTTOM: 0px } #topTabActive { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1.2em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1.2em; FONT-WEIGHT: bold; Z-INDEX: = 1000; PADDING-BOTTOM: 0.38em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.34em; BORDER-BOTTOM: medium none; TOP: 1px; = BACKGROUND-COLOR: #dedede; opacity: 1 } TABLE.appTabs TBODY TR TD.active A { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1.2em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1.2em; FONT-WEIGHT: bold; Z-INDEX: = 1000; PADDING-BOTTOM: 0.38em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.34em; BORDER-BOTTOM: medium none; TOP: 1px; = BACKGROUND-COLOR: #dedede; opacity: 1 } TABLE.appTabs TBODY TR TD.active A:hover { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1.2em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1.2em; FONT-WEIGHT: bold; Z-INDEX: = 1000; PADDING-BOTTOM: 0.38em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.34em; BORDER-BOTTOM: medium none; TOP: 1px; = BACKGROUND-COLOR: #dedede; opacity: 1 } TABLE.round1 { POSITION: relative; TOP: 4px } TABLE.round2 { POSITION: relative; TOP: 4px } HTML * TABLE.round1 { TOP: 3px } HTML * TABLE.round2 { TOP: 3px } TABLE.round1 TBODY TR TD A { -moz-border-radius-topright: 9px; -webkit-border-top-right-radius: 9px; = -moz-border-radius-topleft: 9px; -webkit-border-top-left-radius: 9px; = -khtml-border-horizontal-spacing: 9px } TABLE.round2 TBODY TR TD A { -moz-border-radius-topright: 36px; -webkit-border-top-right-radius: = 36px; -moz-border-radius-topleft: 36px; -webkit-border-top-left-radius: = 36px; -khtml-border-horizontal-spacing: 36px } TABLE.appTabs TBODY TR TD H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } TABLE.appTabs TBODY TR TD.active H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } TABLE.appTabs TBODY TR TD.active H2 { FONT-WEIGHT: bold } DIV.topTabs DIV.topGlobalLinks { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; RIGHT: 0px; = BACKGROUND: none transparent scroll repeat 0% 0%; LEFT: 0px; = PADDING-BOTTOM: 0px; WIDTH: 100%; PADDING-TOP: 0px; ZOOM: 1; POSITION: = absolute; TOP: 0px; TEXT-ALIGN: center } TABLE.topTabs TR TD DIV.topGlobalLinks { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; RIGHT: 0px; = BACKGROUND: none transparent scroll repeat 0% 0%; LEFT: 0px; = PADDING-BOTTOM: 0px; WIDTH: 100%; PADDING-TOP: 0px; ZOOM: 1; POSITION: = absolute; TOP: 0px; TEXT-ALIGN: center } DIV.topTabs-compact DIV.topGlobalLinks { RIGHT: 0px; BACKGROUND: #fff; LEFT: auto; WIDTH: 100%; COLOR: #777; = POSITION: absolute; TOP: 0px } TABLE.topTabs-compact TR TD DIV.topGlobalLinks { RIGHT: 0px; BACKGROUND: #fff; LEFT: auto; WIDTH: 100%; COLOR: #777; = POSITION: absolute; TOP: 0px } DIV.topTabs DIV.topGlobalLinks UL { BORDER-RIGHT: medium none; PADDING-RIGHT: 3px; BORDER-TOP: medium none; = PADDING-LEFT: 3px; Z-INDEX: 1001; BACKGROUND: none transparent scroll = repeat 0% 0%; PADDING-BOTTOM: 2px; MARGIN: 0px auto; BORDER-LEFT: medium = none; WIDTH: 440px; PADDING-TOP: 0px; BORDER-BOTTOM: medium none; = LIST-STYLE-TYPE: none } TABLE.topTabs TR TD DIV.topGlobalLinks UL { BORDER-RIGHT: medium none; PADDING-RIGHT: 3px; BORDER-TOP: medium none; = PADDING-LEFT: 3px; Z-INDEX: 1001; BACKGROUND: none transparent scroll = repeat 0% 0%; PADDING-BOTTOM: 2px; MARGIN: 0px auto; BORDER-LEFT: medium = none; WIDTH: 440px; PADDING-TOP: 0px; BORDER-BOTTOM: medium none; = LIST-STYLE-TYPE: none } DIV.topTabs DIV.topGlobalLinks UL LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; Z-INDEX: 499; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; ZOOM: 1; = POSITION: relative; TOP: 0px; HEIGHT: 1% } TABLE.topTabs TR TD DIV.topGlobalLinks UL LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; Z-INDEX: 499; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; ZOOM: 1; = POSITION: relative; TOP: 0px; HEIGHT: 1% } DIV.topGlobalLinks UL LI IMG { LEFT: 0px; POSITION: absolute; TOP: 15px } DIV.topTabs DIV.topGlobalLinks UL LI A { PADDING-RIGHT: 8px; MARGIN-TOP: 15px; DISPLAY: inline-block; = PADDING-LEFT: 30px; FONT-SIZE: 85%; BACKGROUND: none transparent scroll = repeat 0% 0%; PADDING-BOTTOM: 4px; BORDER-LEFT: #555 1px solid; COLOR: = #fff; PADDING-TOP: 4px; ZOOM: 1; TEXT-ALIGN: left; TEXT-DECORATION: none } TABLE.topTabs TR TD DIV.topGlobalLinks UL LI A { PADDING-RIGHT: 8px; MARGIN-TOP: 15px; DISPLAY: inline-block; = PADDING-LEFT: 30px; FONT-SIZE: 85%; BACKGROUND: none transparent scroll = repeat 0% 0%; PADDING-BOTTOM: 4px; BORDER-LEFT: #555 1px solid; COLOR: = #fff; PADDING-TOP: 4px; ZOOM: 1; TEXT-ALIGN: left; TEXT-DECORATION: none } HTML * DIV.topTabs DIV.topGlobalLinks UL LI A { FONT-SIZE: 85% } HTML * DIV.topTabs-compact DIV.topGlobalLinks UL LI A { FONT-SIZE: 85% } DIV.topTabs DIV.topGlobalLinks UL LI A:hover { TEXT-DECORATION: underline } DIV.topTabs DIV.topGlobalLinks UL LI:first-child A { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } DIV.topTabs DIV.topGlobalLinks UL LI:first-child A:hover { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } DIV.topTabs DIV.topGlobalLinks UL LI A.myPlaces { PADDING-RIGHT: 6px! important; PADDING-LEFT: 28px! important; = PADDING-BOTTOM: 3px! important; PADDING-TOP: 3px! important } DIV.topTabs DIV.topGlobalLinks UL LI A.home { BACKGROUND: url(images/home_ti.gif) no-repeat center 0px } DIV.topTabs DIV.topGlobalLinks UL LI A.logout { BACKGROUND: url(images/logout.gif) no-repeat center 0px } DIV.topTabs DIV.topGlobalLinks UL LI A.help { BACKGROUND: url(images/small_help_on2.gif) no-repeat center 0px } DIV.topTabs DIV.topGlobalLinks UL LI A.myPlaces { BACKGROUND-POSITION: 2px center } DIV.topTabs DIV.topGlobalLinks UL LI A.home { BACKGROUND-POSITION: 2px center } DIV.topTabs DIV.topGlobalLinks UL LI A.logout { BACKGROUND-POSITION: 2px center } DIV.topTabs DIV.topGlobalLinks UL LI A.help { BACKGROUND-POSITION: 2px center } DIV.topTabs-compact DIV.topGlobalLinks A { FONT-SIZE: 85%; MARGIN: 0px 3px; TEXT-DECORATION: none } DIV.topTabs-compact DIV.topGlobalLinks A IMG { DISPLAY: none } DIV.topTabs-compact DIV.topGlobalLinks A:hover { COLOR: #000; TEXT-DECORATION: underline } HTML * DIV.topTabs DIV.topGlobalLinks UL LI A { FONT-SIZE: 85% } HTML * DIV.topTabs-compact DIV.topGlobalLinks UL LI A { FONT-SIZE: 85% } DIV.topTabs DIV.hotItems { RIGHT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; WIDTH: = 400px; MAX-HEIGHT: 48px; POSITION: absolute; TOP: 0px; HEIGHT: 48px } DIV.topTabs DIV.hotItems UL.hotLinks { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; Z-INDEX: 1001; PADDING-BOTTOM: 0px; MARGIN: 0px 14px = 2px 0px; OVERFLOW: auto; BORDER-LEFT: medium none; MAX-HEIGHT: 48px; = PADDING-TOP: 0px; BORDER-BOTTOM: medium none; LIST-STYLE-TYPE: none; = HEIGHT: 48px } DIV.topTabs DIV.hotItems UL.hotLinks LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; TOP: 0px } DIV.topTabs DIV.hotItems UL.hotLinks LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 8px; BORDER-TOP: 0px; PADDING-LEFT: = 8px; FONT-SIZE: 85%; BACKGROUND: none transparent scroll repeat 0% 0%; = PADDING-BOTTOM: 1px; MARGIN: 0px; BORDER-LEFT: 0px; LINE-HEIGHT: 100%; = PADDING-TOP: 1px; BORDER-BOTTOM: 0px; TEXT-ALIGN: left; TEXT-DECORATION: = none } DIV.topTabs DIV.hotItems UL.hotLinks LI A:hover { COLOR: #000; TEXT-DECORATION: underline } DIV.topTabs-compact DIV.topGlobalLinks { RIGHT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; TOP: 0px; = TEXT-ALIGN: center } DIV.topTabs-compact { PADDING-TOP: 14px; POSITION: relative } DIV.topTabs-compact DIV.tabWrapper-left { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px; BORDER-BOTTOM: #dedede 3px solid } DIV.topTabs-compact DIV.tabWrapper-center { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px; BORDER-BOTTOM: #dedede 3px solid } DIV.topTabs-compact DIV.tabWrapper-right { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px; BORDER-BOTTOM: #dedede 3px solid } DIV.topTabs-compact TABLE.appTabs { WIDTH: auto; POSITION: relative; TOP: 2px } HTML * DIV.topTabs-compact TABLE.appTabs { TOP: 2px } DIV.topTabs-compact DIV.tabWrapper-center TABLE.appTabs { MARGIN: 0px auto } DIV.topTabs-compact DIV.tabWrapper-right TABLE.appTabs { FLOAT: right } DIV.topTabs-compact TABLE.appTabs TR TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 4px 0px 0px; PADDING-TOP: 0px; POSITION: relative } DIV.topTabs-compact TABLE.appTabs TR TD A { BORDER-RIGHT: #65696e 1px solid; PADDING-RIGHT: 1em; = BACKGROUND-POSITION: right 5px; BORDER-TOP: #65696e 1px solid; DISPLAY: = block; PADDING-LEFT: 1em; FONT-SIZE: 90%; Z-INDEX: 100; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0.2em; MARGIN: 0px; BORDER-LEFT: = #65696e 1px solid; COLOR: #ffffff; PADDING-TOP: 0.3em; BORDER-BOTTOM: = #7c8188 1px solid; BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: = #7c8188; TEXT-ALIGN: center; TEXT-DECORATION: none } DIV.topTabs-compact TABLE.round1 TR TD.active A { -moz-border-radius-topright: 9px; -webkit-border-top-right-radius: 9px; = -moz-border-radius-topleft: 9px; -webkit-border-top-left-radius: 9px; = -khtml-border-horizontal-spacing: 9px } DIV.topTabs-compact TABLE.round1 TR TD A { -moz-border-radius-topright: 9px; -webkit-border-top-right-radius: 9px; = -moz-border-radius-topleft: 9px; -webkit-border-top-left-radius: 9px; = -khtml-border-horizontal-spacing: 9px } DIV.topTabs-compact TABLE.round2 TR TD.active A { -moz-border-radius-topright: 36px; -webkit-border-top-right-radius: = 36px; -moz-border-radius-topleft: 36px; -webkit-border-top-left-radius: = 36px; -khtml-border-horizontal-spacing: 36px } DIV.topTabs-compact TABLE.round2 TR TD A { -moz-border-radius-topright: 36px; -webkit-border-top-right-radius: = 36px; -moz-border-radius-topleft: 36px; -webkit-border-top-left-radius: = 36px; -khtml-border-horizontal-spacing: 36px } DIV.topTabs-compact TABLE.appTabs TR TD A:hover { BORDER-RIGHT: #597298 1px solid; BORDER-TOP: #597298 1px solid; = BACKGROUND: #bbb; BORDER-LEFT: #597298 1px solid; COLOR: #000; = BORDER-BOTTOM: #bbb 1px solid } DIV.topTabs-compact TABLE.appTabs TR TD.active A { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1em; FONT-WEIGHT: bold; BACKGROUND: = #dedede; PADDING-BOTTOM: 0.2em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.3em; BORDER-BOTTOM: medium none; TEXT-DECORATION: = none } DIV.topTabs-compact TABLE.appTabs TR TD.active A:hover { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1em; FONT-WEIGHT: bold; BACKGROUND: = #dedede; PADDING-BOTTOM: 0.2em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.3em; BORDER-BOTTOM: medium none; TEXT-DECORATION: = none } DIV.topTabs-compact UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #777d86 1px solid; = LIST-STYLE-TYPE: none } DIV.topTabs-compact UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.topTabs-compact UL LI.gap { MARGIN-LEFT: 3px } DIV.topTabs-compact UL LI.gap A:hover { =09 } DIV.topTabs-compact UL LI A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; FONT-SIZE: = 85%; PADDING-BOTTOM: 5px; MARGIN: 0px; COLOR: #fff; PADDING-TOP: 5px; = TEXT-DECORATION: none } .topTabs-compact UL LI A:hover { COLOR: #fff; TEXT-DECORATION: underline } .topTabs-compact UL LI.active { Z-INDEX: 2500; MARGIN: 0px; BORDER-BOTTOM: medium none } .topTabs-compact UL LI.active { POSITION: relative; TOP: 1px } .topTabs-compact UL LI.active A { BORDER-RIGHT: #777d86 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: = #777d86 1px solid; DISPLAY: block; PADDING-LEFT: 12px; FONT-WEIGHT: = bold; BACKGROUND: #cdcdcd; PADDING-BOTTOM: 4px; MARGIN: 0px; = BORDER-LEFT: #777d86 1px solid; COLOR: #000! important; PADDING-TOP: = 6px; BORDER-BOTTOM: medium none; TEXT-DECORATION: none; = -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; = -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px } .topTabs-compact UL LI.gap { MARGIN-LEFT: 12px } .topTabs-compact DIV.hotItems { DISPLAY: none } .topTabs-compact DIV.topGlobalLinks UL { BORDER-RIGHT: 0px; BORDER-TOP: 0px; FLOAT: right; BORDER-LEFT: 0px; = BORDER-BOTTOM: 0px } .topTabs-compact DIV.topGlobalLinks UL LI { Z-INDEX: 499; FLOAT: left; MARGIN: 0px 4px; POSITION: relative } .topTabs-compact DIV.topGlobalLinks UL LI A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .topTabs DIV.brandingImgWrap { OVERFLOW: hidden; HEIGHT: 43px } .topTabs DIV.brandingImgWrap IMG.bannerImage { MARGIN: 0px } .topTabs-compact IMG.bannerImage { DISPLAY: none } .topTabs-compact DIV.brandingImgWrap { DISPLAY: none } #topFrame { BACKGROUND-POSITION: 0px 0px; COLOR: #fff; BACKGROUND-REPEAT: = no-repeat; BACKGROUND-COLOR: #8192a8 } .bgBanner { BACKGROUND-POSITION: 0px 0px; COLOR: #fff; BACKGROUND-REPEAT: = no-repeat; BACKGROUND-COLOR: #8192a8 } DIV.locationPane { MARGIN-TOP: 10px; OVERFLOW: visible; ZOOM: 1; POSITION: relative } #navigationPane { CLEAR: both; PADDING-RIGHT: 0px; MARGIN-TOP: 0px; PADDING-LEFT: 0px; = LEFT: 0px; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 212px; = PADDING-TOP: 0px; ZOOM: 1; POSITION: absolute; TOP: 0px } DIV.navigationPane { CLEAR: both; PADDING-RIGHT: 0px; MARGIN-TOP: 0px; PADDING-LEFT: 0px; = LEFT: 0px; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 212px; = PADDING-TOP: 0px; ZOOM: 1; POSITION: absolute; TOP: 0px } DIV.menuWrap { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: = 212px; PADDING-TOP: 0px; POSITION: relative; BACKGROUND-COLOR: = transparent } .navcollapsed { WIDTH: 0px! important } .pullcollapsed { LEFT: 1px! important } .pullcollapsed A { DISPLAY: block; BACKGROUND: url(images/menu_expand3.gif) no-repeat 0px = 0px; WIDTH: 14px; HEIGHT: 29px } .contcollapsed { MARGIN-LEFT: 15px! important } #puller { MARGIN-TOP: 180px; Z-INDEX: 3; LEFT: 198px; POSITION: absolute; HEIGHT: = 1px; BACKGROUND-COLOR: transparent! important } #puller A { DISPLAY: block; BACKGROUND: url(images/menu_collapse3.gif) no-repeat = 0px 0px; WIDTH: 14px; HEIGHT: 29px } #puller A IMG { WIDTH: 14px; HEIGHT: 29px } #contentPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px 0px 212px; = OVERFLOW: visible; PADDING-TOP: 0px; ZOOM: 1 } DIV.contentPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px 0px 212px; = OVERFLOW: visible; PADDING-TOP: 0px; ZOOM: 1 } #contentPaneWide { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px; = PADDING-TOP: 0px; ZOOM: 1 } DIV.contentPaneWide { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px; = PADDING-TOP: 0px; ZOOM: 1 } DIV.portalPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px; = PADDING-TOP: 0px; ZOOM: 1 } #content { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; ZOOM: 1 } DIV.contentBox { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; ZOOM: 1 } DIV.portal DIV.content { =09 } DIV.paneTabs { PADDING-RIGHT: 1px; MIN-WIDTH: 600px; PADDING-LEFT: 1px; BACKGROUND: = none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 0px } DIV.paneTabs UL { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.paneTabs UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 200; FLOAT: left; = PADDING-BOTTOM: 1px; MARGIN: 0px 5px 0px 0px; PADDING-TOP: 1px; = POSITION: relative; TEXT-ALIGN: center } DIV.paneTabs UL LI A { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; BACKGROUND: = #dedede; PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; = TEXT-DECORATION: none; -moz-border-radius: 3px; -webkit-border-radius: = 3px } DIV.paneTabs UL LI.active { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 95%; Z-INDEX: 10; BACKGROUND: none transparent scroll repeat 0% 0%; = FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px 4px 0px -1px; COLOR: #000; = PADDING-TOP: 0px; POSITION: relative; TEXT-ALIGN: center! important } DIV.paneTabs UL LI.active A { BORDER-RIGHT: medium none; PADDING-RIGHT: 16px; BORDER-TOP: medium = none; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: = 5px; BORDER-BOTTOM: medium none; TEXT-DECORATION: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.active A:hover { BORDER-RIGHT: medium none; PADDING-RIGHT: 16px; BORDER-TOP: medium = none; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: = 5px; BORDER-BOTTOM: medium none; TEXT-DECORATION: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.activepersonal A { BORDER-RIGHT: medium none; PADDING-RIGHT: 16px; BORDER-TOP: medium = none; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: = 5px; BORDER-BOTTOM: medium none; TEXT-DECORATION: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.activepersonal A:hover { BORDER-RIGHT: medium none; PADDING-RIGHT: 16px; BORDER-TOP: medium = none; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: = 5px; BORDER-BOTTOM: medium none; TEXT-DECORATION: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.active H3 { BORDER-RIGHT: medium none; PADDING-RIGHT: 16px; BORDER-TOP: medium = none; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: = 5px; BORDER-BOTTOM: medium none; TEXT-DECORATION: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.activepersonal A { PADDING-RIGHT: 22px; PADDING-LEFT: 16px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 5px; PADDING-TOP: 5px } DIV.paneTabs UL LI.activepersonal A:hover { PADDING-RIGHT: 22px; PADDING-LEFT: 16px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 5px; PADDING-TOP: 5px } DIV.paneTabs UL LI.addbutton { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 100; BACKGROUND: none = transparent scroll repeat 0% 0%; FLOAT: left; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 1px; POSITION: relative; TEXT-ALIGN: center } DIV.paneTabs UL LI.personal A { PADDING-RIGHT: 20px; DISPLAY: block; PADDING-LEFT: 9px; BACKGROUND: = #dedede; PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; = TEXT-DECORATION: none } DIV.paneTabs UL LI.external A { PADDING-LEFT: 20px; BACKGROUND: url(images/small_external_content.gif) = #dedede no-repeat 2px center } DIV.paneTabs UL LI.external A:hover { PADDING-LEFT: 20px; BACKGROUND: url(images/small_external_content.gif) = #fff1c5 no-repeat 2px center } DIV.paneTabs UL LI.activepersonal A.paneTabOptions { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; RIGHT: 5px; = FILTER: alpha(opacity=3D30); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; = POSITION: absolute! important; TOP: 4px; BACKGROUND-COLOR: transparent; = opacity: 0.3 } DIV.paneTabs UL LI.personal A.paneTabOptions { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; RIGHT: 5px; = FILTER: alpha(opacity=3D30); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; = POSITION: absolute! important; TOP: 4px; BACKGROUND-COLOR: transparent; = opacity: 0.3 } DIV.paneTabs UL LI A.paneTabOptions { DISPLAY: none } DIV.paneTabs UL LI.activepersonal:hover A.paneTabOptions { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.paneTabs UL LI.button A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 9px; BACKGROUND: #d3e2f5; = PADDING-BOTTOM: 3px; BORDER-LEFT: #acc2df 1px solid; COLOR: #555; = PADDING-TOP: 2px; BORDER-BOTTOM: #acc2df 1px solid; TEXT-DECORATION: = none; -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.button A:hover { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #acc2df 1px solid; = BACKGROUND: url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = BORDER-LEFT: #acc2df 1px solid; BORDER-BOTTOM: #5577bb 1px solid } DIV.paneTabs UL LI A:hover { BACKGROUND: #fff1c5; TEXT-DECORATION: none } DIV.paneTabs UL LI A:hover { TEXT-DECORATION: none } DIV.paneTabs LI.active A:hover { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } DIV.paneTabs UL LI A.hiddenTabsLink IMG { WIDTH: 2px; HEIGHT: 2px } DIV.paneTabs UL.nav LI.sub A.hiddenTabsLink { BACKGROUND-POSITION: center center; BACKGROUND-IMAGE: = url(images/more_options.gif); BACKGROUND-REPEAT: no-repeat } DIV.paneTabs UL.nav LI.sub UL.more { BORDER-RIGHT: #888 1px solid; BORDER-TOP: #ccc 1px solid; MARGIN-TOP: = -4px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #888 1px solid } DIV.paneTabs UL.nav LI.sub UL.more LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px! important; BORDER-TOP: 0px; = DISPLAY: block; PADDING-LEFT: 18px! important; FONT-WEIGHT: normal; = FONT-SIZE: 105%; BACKGROUND: url(images/cm_bullet_single.gif) #ddd = no-repeat 5px 3px; PADDING-BOTTOM: 2px! important; MARGIN: 0px; = BORDER-LEFT: 0px; COLOR: #444; PADDING-TOP: 2px! important; = BORDER-BOTTOM: 0px; TEXT-ALIGN: left; TEXT-DECORATION: none } DIV.paneTabs UL.nav LI.sub UL.more LI A:hover { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff1c5 no-repeat 5px 3px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px; TEXT-DECORATION: none } #contentPane DIV.topRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } #contentPane DIV.bottomRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.topRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.bottomRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.topRound B { DISPLAY: block; OVERFLOW: hidden } DIV.bottomRound B { DISPLAY: block; OVERFLOW: hidden } DIV.topRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.bottomRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.topRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } DIV.bottomRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } DIV.topRound B { BACKGROUND: #fff1c5 } DIV.bottomRound B { BACKGROUND: #fff } DIV.landing DIV.container { BACKGROUND: #ededed } DIV.landing DIV.bottomRound B { BACKGROUND: #ededed } DIV.error DIV.container { BACKGROUND: #ededed } DIV.error DIV.bottomRound B { BACKGROUND: #ededed } DIV.portal DIV.bottomRound B { BACKGROUND-COLOR: #e3efff } DIV.portal DIV.container { BACKGROUND-COLOR: #e3efff } DIV.tabbedPane DIV.topRound B { DISPLAY: none } DIV.hasTopBanner DIV.topRound B { DISPLAY: none } DIV.error DIV.topRound B { BACKGROUND-COLOR: red } DIV.pickerMenu DIV.topRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.pickerMenu DIV.bottomRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.pickerMenu DIV.topRound B.middle { MARGIN: 0px 1px; HEIGHT: 2px } DIV.pickerMenu DIV.bottomRound B.middle { MARGIN: 0px 1px; HEIGHT: 2px } DIV.pickerMenu DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 1px } DIV.pickerMenu DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 1px } DIV.breadcrumbs { BACKGROUND: none transparent scroll repeat 0% 0%; MARGIN: 0px 14px; = POSITION: relative; HEIGHT: 1% } DIV.banner + DIV.breadcrumbs { MARGIN: 0px; BACKGROUND-COLOR: transparent } DIV.breadcrumbs A.close { Z-INDEX: 100; RIGHT: 20px; FILTER: alpha(opacity=3D70); POSITION: = absolute; TOP: 3px; opacity: 0.7 } DIV.path { PADDING-RIGHT: 200px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 85%; BACKGROUND: #dedede; PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #000; = PADDING-TOP: 4px; POSITION: relative; HEIGHT: 1px } DIV.simplePath { PADDING-RIGHT: 200px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 85%; BACKGROUND: #dedede; PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #000; = PADDING-TOP: 4px; POSITION: relative; HEIGHT: 1px } DIV.breadcrumbs DIV.noToggle { PADDING-RIGHT: 24px; PADDING-LEFT: 6px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px } DIV.simplePath { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; PADDING-TOP: 4px } DIV.path OL { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.simplePath OL { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.path OL LI.label { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; = PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.simplePath OL LI.label { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; = PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.path OL LI { PADDING-RIGHT: 12px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = BACKGROUND: url(images/breadcrumb_arrow.gif) no-repeat right center; = FLOAT: left; PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.simplePath OL LI { PADDING-RIGHT: 12px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = BACKGROUND: url(images/breadcrumb_arrow.gif) no-repeat right center; = FLOAT: left; PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.path OL LI.placeholder { PADDING-RIGHT: 0px; PADDING-LEFT: 3px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: = 0px } DIV.simplePath OL LI.placeholder { PADDING-RIGHT: 0px; PADDING-LEFT: 3px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: = 0px } DIV.path A { FONT-WEIGHT: normal; COLOR: #000000; TEXT-DECORATION: none } DIV.simplePath A { FONT-WEIGHT: normal; COLOR: #000000; TEXT-DECORATION: none } DIV.path A:hover { COLOR: #000; TEXT-DECORATION: underline } DIV.simplePath A:hover { COLOR: #000; TEXT-DECORATION: underline } DIV.path OL LI.button { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 2px; MARGIN: = -2px 6px -2px -2px; PADDING-TOP: 0px; BACKGROUND-COLOR: #f6f6f6; = -moz-border-radius: 3px; -webkit-border-radius: 3px } DIV.simplePath OL LI.button { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 2px; MARGIN: = -2px 6px -2px -2px; PADDING-TOP: 0px; BACKGROUND-COLOR: #f6f6f6; = -moz-border-radius: 3px; -webkit-border-radius: 3px } DIV.path OL LI.button A { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; PADDING-TOP: 1px } DIV.simplePath OL LI.button A { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; PADDING-TOP: 1px } DIV.path OL LI.root { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 2px; MARGIN: -2px 8px -2px 0px; = COLOR: #efefef; PADDING-TOP: 2px; BACKGROUND-COLOR: #949494; = -moz-border-radius: 3px; -webkit-border-radius: 3px } DIV.simplePath OL LI.root { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 2px; MARGIN: -2px 8px -2px 0px; = COLOR: #efefef; PADDING-TOP: 2px; BACKGROUND-COLOR: #949494; = -moz-border-radius: 3px; -webkit-border-radius: 3px } DIV.path OL LI.root A { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 2px; COLOR: #fff; PADDING-TOP: 1px; TEXT-DECORATION: = none } DIV.simplePath OL LI.root A { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 2px; COLOR: #fff; PADDING-TOP: 1px; TEXT-DECORATION: = none } DIV.path OL LI.root A SPAN { FONT-WEIGHT: bold; COLOR: #ffffff; TEXT-DECORATION: none } DIV.simplePath OL LI.root A SPAN { FONT-WEIGHT: bold; COLOR: #ffffff; TEXT-DECORATION: none } DIV.path OL LI.root A:hover { COLOR: #fff; TEXT-DECORATION: underline } DIV.simplePath OL LI.root A:hover { COLOR: #fff; TEXT-DECORATION: underline } DIV.path OL LI.root A:hover SPAN { COLOR: #fff; TEXT-DECORATION: underline } DIV.simplePath OL LI.root A:hover SPAN { COLOR: #fff; TEXT-DECORATION: underline } DIV.path OL LI.root A SPAN.courseName:unknown { content: " - " } DIV.path OL LI.root A SPAN.courseId:unknown { content: "(" } DIV.path OL LI.root A SPAN.courseId:unknown { content: ")" } DIV.path OL:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } DIV.simplePath OL:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } DIV.path OL { DISPLAY: inline-block } DIV.simplePath OL { DISPLAY: inline-block } DIV.path OL { DISPLAY: block } DIV.simplePath OL { DISPLAY: block } DIV.breadcrumbs DIV.topRound { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.breadcrumbs DIV.bottomRound { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.breadcrumbs DIV.topRound B { DISPLAY: block; BACKGROUND: #dedede; OVERFLOW: hidden } DIV.breadcrumbs DIV.bottomRound B { DISPLAY: block; BACKGROUND: #dedede; OVERFLOW: hidden } DIV.breadcrumbs DIV.topRound B.outer { MARGIN: 0px 2px; HEIGHT: 1px } DIV.breadcrumbs DIV.bottomRound B.outer { MARGIN: 0px 2px; HEIGHT: 1px } DIV.breadcrumbs DIV.topRound B.middle { DISPLAY: none } DIV.breadcrumbs DIV.bottomRound B.middle { DISPLAY: none } DIV.breadcrumbs DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 1px } DIV.breadcrumbs DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 1px } DIV.localViewToggle { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-TOP: 0px; POSITION: relative } DIV.localViewToggle UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 4px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; POSITION: relative } DIV.localViewToggle UL LI { FLOAT: right } DIV.localViewToggle UL LI A { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; FONT-SIZE: 85%; = PADDING-BOTTOM: 2px; MARGIN: 1px 0px 0px; PADDING-TOP: 2px; = TEXT-DECORATION: none } DIV.localViewToggle UL LI A:hover { TEXT-DECORATION: underline } DIV.localViewToggle UL LI A.active { BORDER-RIGHT: #ffcc00 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #ffcc00 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: 85%; = BACKGROUND: #fff; PADDING-BOTTOM: 2px; MARGIN: 0px; BORDER-LEFT: #ffcc00 = 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #ffcc00 1px solid } DIV.localViewToggle UL LI H2 { BORDER-RIGHT: #ffcc00 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #ffcc00 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: 85%; = BACKGROUND: #fff; PADDING-BOTTOM: 2px; MARGIN: 0px; BORDER-LEFT: #ffcc00 = 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #ffcc00 1px solid } DIV.localViewToggle UL LI.separator { PADDING-LEFT: 6px; MARGIN-LEFT: 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.viewToggle { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 85%; Z-INDEX: 100; = RIGHT: 10px; PADDING-BOTTOM: 2px; BOTTOM: 0px; PADDING-TOP: 2px; = WHITE-SPACE: nowrap; POSITION: absolute; TOP: 3px } DIV.helpOnlyToggle { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 85%; Z-INDEX: 100; = RIGHT: 10px; PADDING-BOTTOM: 2px; BOTTOM: 0px; PADDING-TOP: 2px; = WHITE-SPACE: nowrap; POSITION: absolute; TOP: 0px } DIV.viewToggle SPAN { COLOR: #666 } DIV.viewToggle UL { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px 6px 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.helpOnlyToggle UL { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px 6px 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.viewToggle UL LI { FLOAT: left; MARGIN: 0px 3px; POSITION: relative; TOP: 2px } DIV.helpOnlyToggle UL LI { FLOAT: left; MARGIN: 0px 3px; POSITION: relative; TOP: 2px } DIV.viewToggle LI A { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px; TEXT-DECORATION: none } DIV.viewToggle LI A:hover { TEXT-DECORATION: underline } DIV.viewToggle UL LI.active { PADDING-RIGHT: 4px; PADDING-LEFT: 7px; BACKGROUND: #cdcdcd; = PADDING-BOTTOM: 6px; PADDING-TOP: 3px; POSITION: relative; TOP: 0px } DIV.viewToggle LI.active A { DISPLAY: inline; FONT-WEIGHT: bold; Z-INDEX: 100; MARGIN: 0px 3px; = COLOR: #222; TEXT-DECORATION: none } DIV.viewToggle LI.active SPAN { COLOR: #aaa } DIV.viewToggle LI.active SPAN A { BORDER-RIGHT: 0px; PADDING-RIGHT: 1px; BORDER-TOP: 0px; PADDING-LEFT: = 1px; FONT-WEIGHT: normal; BACKGROUND: none transparent scroll repeat 0% = 0%; PADDING-BOTTOM: 2px; MARGIN: 0px -2px 0px -1px; BORDER-LEFT: 0px; = COLOR: #555; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; TEXT-DECORATION: = underline } DIV.helpOnlyToggle LI SPAN A { BORDER-RIGHT: 0px; PADDING-RIGHT: 1px; BORDER-TOP: 0px; PADDING-LEFT: = 1px; FONT-WEIGHT: normal; BACKGROUND: none transparent scroll repeat 0% = 0%; PADDING-BOTTOM: 2px; MARGIN: 0px -2px 0px -1px; BORDER-LEFT: 0px; = COLOR: #555; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; TEXT-DECORATION: = underline } DIV.viewToggle LI SPAN#helpTextToggle A { BORDER-RIGHT: 0px; PADDING-RIGHT: 1px; BORDER-TOP: 0px; PADDING-LEFT: = 1px; FONT-WEIGHT: normal; BACKGROUND: none transparent scroll repeat 0% = 0%; PADDING-BOTTOM: 2px; MARGIN: 0px -2px 0px -1px; BORDER-LEFT: 0px; = COLOR: #555; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; TEXT-DECORATION: = underline } DIV.viewToggle LI SPAN#helpTextToggle { RIGHT: -2px; POSITION: absolute; TOP: -3px } DIV.viewToggle LI.active SPAN#helpTextToggle { MARGIN: -3px 0px 0px; POSITION: static } DIV.viewToggle LI SPAN#helpTextToggle A { PADDING-RIGHT: 1px; DISPLAY: inline-block; PADDING-LEFT: 1px; = PADDING-BOTTOM: 1px; PADDING-TOP: 1px; TEXT-DECORATION: none } DIV.viewToggle LI.active SPAN A:hover { BORDER-RIGHT: 0px; BORDER-TOP: 0px; FONT-WEIGHT: normal; BACKGROUND: = #ededed; BORDER-LEFT: 0px; COLOR: #555; BORDER-BOTTOM: 0px; = TEXT-DECORATION: underline } DIV.helpOnlyToggle LI SPAN A:hover { BORDER-RIGHT: 0px; BORDER-TOP: 0px; FONT-WEIGHT: normal; BACKGROUND: = #ededed; BORDER-LEFT: 0px; COLOR: #555; BORDER-BOTTOM: 0px; = TEXT-DECORATION: underline } DIV.viewToggle LI SPAN#helpTextToggle A:hover { BORDER-RIGHT: 0px; BORDER-TOP: 0px; FONT-WEIGHT: normal; BACKGROUND: = #ededed; BORDER-LEFT: 0px; COLOR: #555; BORDER-BOTTOM: 0px; = TEXT-DECORATION: underline } .modeSwitchWrap { FONT-WEIGHT: bold; FONT-SIZE: 85%; RIGHT: 26px; LEFT: auto; POSITION: = absolute; TOP: 4px } .modeSwitchWrap DIV { FLOAT: left } .modeSwitch { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #666 1px = solid; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; OVERFLOW: = hidden; TEXT-TRANSFORM: uppercase; BORDER-LEFT: #666 1px solid; COLOR: = #fff; PADDING-TOP: 1px; BORDER-BOTTOM: #666 1px solid; POSITION: = relative; TEXT-DECORATION: none } .read-on { PADDING-RIGHT: 16px; BACKGROUND: url(images/mode_toggle_bg.gif) #8091a7 = repeat-y 100% 0px; MARGIN-RIGHT: 0px } A.read-off { PADDING-LEFT: 16px; BACKGROUND: url(images/mode_toggle_bg.gif) repeat-y = 0px 0px; COLOR: #444 } A.read-on:hover { BACKGROUND-COLOR: #444a6c } A.read-on:focus { BACKGROUND-COLOR: #444a6c } A.read-off:hover { BACKGROUND-COLOR: #ccc } A.read-off:focus { BACKGROUND-COLOR: #ccc } A.read-off IMG { RIGHT: auto; LEFT: -17px; BOTTOM: 0px; POSITION: absolute } A.read-on IMG { RIGHT: -1px; BOTTOM: 0px; POSITION: absolute } HTML *.modeSwitch { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } HTML * A.read-off { PADDING-LEFT: 16px } HTML *.read-on { PADDING-RIGHT: 16px } .modeSwitch SPAN { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; BACKGROUND: repeat-x 0px -16px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } .switcherLabel { PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FLOAT: = left; PADDING-BOTTOM: 2px; COLOR: #444; PADDING-TOP: 2px } DIV.helpLink { BORDER-RIGHT: 0px; BORDER-TOP: 0px; FONT-WEIGHT: normal; RIGHT: 4px; = MARGIN: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px; POSITION: absolute; = TOP: 4px } DIV.helpLink A.browseIcon { PADDING-RIGHT: 1px; DISPLAY: block; PADDING-LEFT: 1px; = BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #666; PADDING-BOTTOM: 0px; = BORDER-TOP-COLOR: #999; PADDING-TOP: 0px; BORDER-RIGHT-COLOR: #666 } DIV.localViewToggle A.miniComboButton { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 16px; BORDER-TOP: = #d7bb66 1px solid; BACKGROUND: url(images/more_options.gif) #f5e7bd = no-repeat 97% center; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid; TEXT-DECORATION: none! important } DIV.cmImg { MARGIN: 0px 0px 6px 12px; OVERFLOW: hidden; WIDTH: 180px; TEXT-ALIGN: = center } DIV.cmImg IMG { WIDTH: 180px } DIV.navDivider { PADDING-RIGHT: 9px; BORDER-TOP: #ddd 3px double; PADDING-LEFT: 9px; = FONT-WEIGHT: bold; FONT-SIZE: 80%; BACKGROUND: repeat-x 0px -16px; = PADDING-BOTTOM: 9px; MARGIN: 18px 0px 4px; TEXT-TRANSFORM: uppercase; = COLOR: #555; PADDING-TOP: 9px; LETTER-SPACING: 3px; TEXT-ALIGN: center } DIV.navPalette { MARGIN: 0px 24px 12px 14px; ZOOM: 1 } .csMenuFrame DIV.navPalette { MARGIN: 0px 14px 12px } DIV.navPaletteContent { BACKGROUND: #ffffff; ZOOM: 1 } .navPalette H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 105%; Z-INDEX: 1; = BACKGROUND: #949494 repeat-x center top; PADDING-BOTTOM: 0px; MARGIN: = 0px; COLOR: #fff; PADDING-TOP: 0px; ZOOM: 1; POSITION: relative } DIV.navPalette H3 { FONT-SIZE: 100%; MARGIN: 0px } .navPalette UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; ZOOM: 1; LIST-STYLE-TYPE: none } .navPalette UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; ZOOM: 1; POSITION: relative; HEIGHT: 1% } #courseMenu { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 16px; FONT-WEIGHT: = normal; BACKGROUND: url(images/more_options_white.gif) no-repeat 4px = 7px; PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; ZOOM: 1; = TEXT-DECORATION: none } .navPalette A { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 16px; FONT-WEIGHT: = normal; BACKGROUND: url(images/more_options_white.gif) no-repeat 4px = 7px; PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; ZOOM: 1; = TEXT-DECORATION: none } .navPalette A:hover { BACKGROUND-IMAGE: url(images/more_options.gif); CURSOR: pointer } .navPalette A:focus { BACKGROUND-IMAGE: url(images/more_options.gif); CURSOR: pointer } .navPalette UL LI A { BORDER-TOP: #ddd 1px solid } .navPalette UL LI:first-child H3 A { BORDER-TOP: medium none } .navPalette UL LI:first-child A { BORDER-TOP: medium none } DIV.navPaletteCol H2 A { BACKGROUND-IMAGE: url(images/more_options_white.gif) } DIV.navPaletteCol H2 A:hover { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPaletteCol H2 A:focus { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPaletteCol DIV.navPaletteContent H2 { BACKGROUND-IMAGE: none } DIV.navPaletteCol DIV.actionBarMicro { DISPLAY: none } DIV.navPalette A.simpleLink { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 3px; PADDING-TOP: 3px } DIV.navPalette A.simpleLink:hover { BACKGROUND: url(images/list_bullet.gif) no-repeat 97% center } DIV.navPalette A.simpleLink:focus { BACKGROUND: url(images/list_bullet.gif) no-repeat 97% center } DIV.navPalette A.comboLink { PADDING-RIGHT: 20px; PADDING-LEFT: 16px; BACKGROUND: = url(images/more_options_dark.gif) no-repeat 4px 7px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 3px; WORD-BREAK: normal; PADDING-TOP: 3px; ZOOM: 1; = heigth: 1% } DIV.navPalette A.comboLink_active { PADDING-RIGHT: 20px; PADDING-LEFT: 16px; BACKGROUND: = url(images/more_options_dark.gif) no-repeat 4px 7px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 3px; WORD-BREAK: normal; PADDING-TOP: 3px; ZOOM: 1; = heigth: 1% } DIV.navPalette A.comboLink:hover { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPalette A.comboLink:focus { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPalette A.comboLink_active { BACKGROUND-IMAGE: url(images/less_options_dark.gif) } DIV.navPalette A.open { BACKGROUND-IMAGE: url(images/less_options_dark.gif) } DIV.navPalette A.comboLink_active:hover { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette A.open:hover { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette A.comboLink_active:focus { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette A.open:focus { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette H2 A.comboLink { PADDING-RIGHT: 3px; PADDING-LEFT: 16px; PADDING-BOTTOM: 3px; = MARGIN-RIGHT: 20px; PADDING-TOP: 3px } DIV.navPalette H2 A.comboLink_active { PADDING-RIGHT: 3px; PADDING-LEFT: 16px; PADDING-BOTTOM: 3px; = MARGIN-RIGHT: 20px; PADDING-TOP: 3px } DIV.navPalette A.submenuLink { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 0px; PADDING-BOTTOM: 0px; = BORDER-LEFT: #bbb 1px solid; PADDING-TOP: 0px; ZOOM: 1; POSITION: = absolute; TOP: 0px } DIV.navPalette A.submenuLink_active { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 0px; PADDING-BOTTOM: 0px; = BORDER-LEFT: #bbb 1px solid; PADDING-TOP: 0px; ZOOM: 1; POSITION: = absolute; TOP: 0px } DIV.navPalette A.submenuLink { BACKGROUND: url(images/list_bullet_white.gif) no-repeat center center } DIV.navPalette A.submenuLink_active { BACKGROUND: url(images/list_bullet_dark.gif) no-repeat center center } DIV.navPalette A.submenuLink:hover { BACKGROUND-IMAGE: url(images/list_bullet.gif) } DIV.navPalette A.submenuLink_active:hover { BACKGROUND-IMAGE: url(images/list_bullet.gif) } DIV.navPalette A.submenuLink:focus { BACKGROUND-IMAGE: url(images/list_bullet.gif) } DIV.navPalette A.submenuLink_active:focus { BACKGROUND-IMAGE: url(images/list_bullet.gif) } DIV.navPalette A.submenuLink IMG { WIDTH: 20px; HEIGHT: 22px } DIV.navPalette A.submenuLink_active IMG { WIDTH: 20px; HEIGHT: 22px } .navPalette H2 A { FONT-WEIGHT: bold; BACKGROUND: url(images/less_options_white.gif) = no-repeat 4px 7px; COLOR: #fff } .navPalette H2 A:hover { FONT-WEIGHT: bold; BACKGROUND: url(images/less_options_white.gif) = no-repeat 4px 7px; COLOR: #fff } DIV.navPalette H2 A.comboLink { FONT-WEIGHT: bold; BACKGROUND: url(images/less_options_white.gif) = no-repeat 4px 7px; COLOR: #fff } .navPalette H2 A:hover { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette H2 A.comboLink:hover { BACKGROUND-IMAGE: url(images/less_options.gif) } .navPalette H2 A:focus { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette H2 A.comboLink:focus { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPaletteCol H2 A.comboLink { BACKGROUND: url(images/more_options_white.gif) no-repeat 4px 7px } DIV.navPaletteCol H2 A.comboLink:hover { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPaletteCol H2 A.comboLink:focus { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.listCm UL.courseMenu { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = MARGIN-LEFT: -14px; WIDTH: 176px; MARGIN-RIGHT: -14px; PADDING-TOP: 0px; = HEIGHT: 1% } DIV.listCm UL.courseMenu LI { CLEAR: both; BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; = DISPLAY: block; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 3px; = MARGIN: 0px 0px -3px; OVERFLOW: visible; BORDER-LEFT: 0px; WIDTH: 178px; = PADDING-TOP: 2px; BORDER-BOTTOM: 0px; ZOOM: 1; POSITION: relative; = HEIGHT: 1% } DIV.listCm UL.courseMenu LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 14px; BORDER-TOP: 0px; PADDING-LEFT: = 9px; RIGHT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; = FLOAT: left; OVERFLOW-X: hidden; PADDING-BOTTOM: 0px; MARGIN: 0px 0px = 0px 6px; OVERFLOW: visible; BORDER-LEFT: 0px; COLOR: #003366; = WORD-BREAK: break-all; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; HEIGHT: 1% } DIV.listCm UL.courseMenu LI A:hover { BACKGROUND-IMAGE: none; TEXT-DECORATION: underline } DIV.listCm UL.courseMenu LI A:focus { BACKGROUND-IMAGE: none; TEXT-DECORATION: underline } DIV.listCm UL.courseMenu LI A SPAN { ZOOM: 1; heigth: 1% } DIV.listCm UL.courseMenu LI.here A { PADDING-RIGHT: 16px; PADDING-LEFT: 4px; BACKGROUND: = url(images/list_bullet_single_white.gif) #999 no-repeat 98% center; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 19px; COLOR: #fff; PADDING-TOP: = 1px; TEXT-DECORATION: none; -moz-border-radius: 3px; = -webkit-border-radius: 3px } DIV.listCm UL.courseMenu LI.here A:hover { PADDING-RIGHT: 16px; PADDING-LEFT: 4px; BACKGROUND: = url(images/list_bullet_single_white.gif) #999 no-repeat 98% center; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 19px; COLOR: #fff; PADDING-TOP: = 1px; TEXT-DECORATION: none; -moz-border-radius: 3px; = -webkit-border-radius: 3px } DIV.listCm UL.courseMenu LI.here A:focus { PADDING-RIGHT: 16px; PADDING-LEFT: 4px; BACKGROUND: = url(images/list_bullet_single_white.gif) #999 no-repeat 98% center; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 19px; COLOR: #fff; PADDING-TOP: = 1px; TEXT-DECORATION: none; -moz-border-radius: 3px; = -webkit-border-radius: 3px } DIV.listCm UL.courseMenu LI.here A.cmimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: transparent } DIV.listCm UL.courseMenu LI.here A.cmimg:hover { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: transparent } DIV.listCm H3 { PADDING-RIGHT: 9px; BORDER-TOP: 1px solid; PADDING-LEFT: 9px; = FONT-SIZE: 100%; PADDING-BOTTOM: 1px; MARGIN: 0px 0px 0px 14px; = PADDING-TOP: 3px; HEIGHT: 1% } .navPalette UL LI.subhead H3 A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: = transparent; TEXT-DECORATION: none } .navPalette UL LI.subhead H3 A:hover { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: = transparent; TEXT-DECORATION: none } DIV.listCm UL.courseMenu LI.divider { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; PADDING-BOTTOM: 0px; WIDTH: = 162px; LINE-HEIGHT: 1%; PADDING-TOP: 9px; POSITION: relative; HEIGHT: = 2px } DIV.listCm UL.courseMenu LI.divider HR { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; MARGIN: 0px; VERTICAL-ALIGN: middle; LINE-HEIGHT: 1%; POSITION: = relative; TOP: -9px; HEIGHT: 2px; BACKGROUND-COLOR: #ccc; = BORDER-RIGHT-WIDTH: 0px } DIV.listCm UL.courseMenu LI.collapsed { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; PADDING-BOTTOM: 3px; = LINE-HEIGHT: 1px; PADDING-TOP: 3px; HEIGHT: 2px } DIV.listCm UL.courseMenu LI.collapsed HR { MARGIN: 0px; POSITION: relative; TOP: 0px } DIV.listCm UL.courseMenu LI.invisible A { COLOR: #777; MARGIN-RIGHT: 0px } UL.tree A SPAN.cmLink-hidden { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } UL.tree A SPAN.cmLink-empty { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } LI.invisible A SPAN.cmLink-hidden { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } LI.invisible A SPAN.cmLink-empty { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } LI.invisible SPAN.cmLink-hidden { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } LI.invisible SPAN.cmLink-empty { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } UL.tree A SPAN.cmLink-hidden IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } UL.tree A SPAN.cmLink-empty IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } LI.invisible A SPAN.cmLink-hidden IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } LI.invisible A SPAN.cmLink-empty IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } LI.invisible SPAN.cmLink-hidden IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } LI.invisible SPAN.cmLink-empty IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } UL.tree A SPAN.cmLink-empty { DISPLAY: inline; BACKGROUND: url(images/empty_link.gif) no-repeat 0px = 0px } LI.invisible A SPAN.cmLink-empty { DISPLAY: inline; BACKGROUND: url(images/empty_link.gif) no-repeat 0px = 0px } LI.invisible SPAN.cmLink-empty { DISPLAY: inline; BACKGROUND: url(images/empty_link.gif) no-repeat 0px = 0px } UL.tree A SPAN.cmLink-hidden { DISPLAY: inline-block; BACKGROUND: url(images/hidden_link.gif) = no-repeat 0px 0px } LI.invisible A SPAN.cmLink-hidden { DISPLAY: inline-block; BACKGROUND: url(images/hidden_link.gif) = no-repeat 0px 0px } LI.invisible SPAN.cmLink-hidden { DISPLAY: inline-block; BACKGROUND: url(images/hidden_link.gif) = no-repeat 0px 0px } DIV.listCm UL.courseMenu LI INPUT { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; BACKGROUND: = #f0f0f0; MARGIN-LEFT: 18px; BORDER-LEFT: #666 1px solid; WIDTH: 120px; = BORDER-BOTTOM: #666 1px solid } DIV.listCm UL.courseMenu LI INPUT[type=3D'text'] { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; BACKGROUND: = #f0f0f0; MARGIN-LEFT: 18px; BORDER-LEFT: #666 1px solid; WIDTH: 120px; = BORDER-BOTTOM: #666 1px solid } DIV.renameCourseToc INPUT { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; BACKGROUND: = #f0f0f0; MARGIN-LEFT: 18px; BORDER-LEFT: #666 1px solid; WIDTH: 120px; = BORDER-BOTTOM: #666 1px solid } DIV.renameCourseToc INPUT { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; BACKGROUND: = #f0f0f0; MARGIN-LEFT: 18px; BORDER-LEFT: #666 1px solid; WIDTH: 120px; = BORDER-BOTTOM: #666 1px solid } DIV.renameCourseToc INPUT { MARGIN-LEFT: 0px } DIV.listCm UL.courseMenu LI A.microControl { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: = inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 0px 2px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px } DIV.renameCourseToc A.microControl { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: = inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 0px 2px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px } DIV.listCm UL.courseMenu LI A.save { BACKGROUND: url(images/micro_save.gif) no-repeat 0px 0px } DIV.renameCourseToc A.save { BACKGROUND: url(images/micro_save.gif) no-repeat 0px 0px } DIV.listCm UL.courseMenu LI A.cancel { BACKGROUND: url(images/micro_cancel.gif) no-repeat 0px 0px } DIV.renameCourseToc A.cancel { BACKGROUND: url(images/micro_cancel.gif) no-repeat 0px 0px } DIV.listCm UL.courseMenu LI A.microControl IMG { WIDTH: 12px; HEIGHT: 12px } DIV.renameCourseToc A.microControl IMG { WIDTH: 12px; HEIGHT: 12px } DIV.listCm UL.courseMenu LI SPAN.reorder { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/cm_reorder_updown.gif) #eee no-repeat center center; FILTER: = alpha(opacity=3D100); LEFT: -2px; PADDING-BOTTOM: 0px; WIDTH: 16px; = CURSOR: move; PADDING-TOP: 0px; POSITION: absolute; TOP: 2px; HEIGHT: = 18px; opacity: 1; -moz-border-radius-topleft: 2px; = -moz-border-radius-bottomleft: 3px } DIV.listCm UL.courseMenu LI.subhead SPAN.reorder { TOP: 4px } DIV.controlpanel H2 { BACKGROUND-COLOR: #8192a8 } DIV.controlpanel DIV.topRound B { BACKGROUND-COLOR: #8192a8 } DIV.controlpanel UL { BACKGROUND-COLOR: #a8beda } DIV.controlpanel DIV.bottomRound B { BACKGROUND-COLOR: #a8beda } DIV.controlpanel UL LI:first-child { MARGIN-TOP: 0px } DIV.controlpanel UL LI { MARGIN-TOP: -1px } DIV.controlpanel UL LI A { COLOR: #292e36; BORDER-TOP-COLOR: #94a8c1 } DIV.controlpanel UL LI A:hover { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A:focus { BACKGROUND-COLOR: #e3efff } DIV.controlpanel A.submenuLink { BORDER-LEFT-COLOR: #94a8c1; BORDER-BOTTOM-COLOR: #94a8c1; = BORDER-TOP-COLOR: #94a8c1; BACKGROUND-COLOR: #a8beda; = BORDER-RIGHT-COLOR: #94a8c1 } DIV.controlpanel A.submenuLink_active { BORDER-LEFT-COLOR: #94a8c1; BORDER-BOTTOM-COLOR: #94a8c1; = BORDER-TOP-COLOR: #94a8c1; BACKGROUND-COLOR: #a8beda; = BORDER-RIGHT-COLOR: #94a8c1 } DIV.controlpanel UL LI A.submenuLink_active { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A.submenuLink:hover { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A.submenuLink_active:hover { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A.submenuLink:focus { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A.submenuLink_active:focus { BACKGROUND-COLOR: #e3efff } DIV.controlpanel A.comboLink { BACKGROUND-IMAGE: url(images/more_options_white.gif) } DIV.controlpanel A.comboLink_active { FONT-WEIGHT: bold } DIV.tools A.comboLink_active { FONT-WEIGHT: bold } DIV.controlpanel UL LI H3 A.open:hover { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI H3 A.comboLink_active { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI H3 A.open { FONT-WEIGHT: bold; BACKGROUND-COLOR: #e3efff } DIV.tools UL { BACKGROUND-COLOR: #ededed } DIV.tools DIV.bottomRound B { BACKGROUND-COLOR: #ededed } DIV.pickerMenu UL { BACKGROUND-COLOR: #ededed } DIV.explore UL { BACKGROUND-COLOR: #ededed } DIV.explore DIV.bottomRound B { BACKGROUND-COLOR: #ededed } DIV.tools UL LI H3 A { BACKGROUND: url(images/more_options.gif) no-repeat 4px 7px; COLOR: = #444; BORDER-TOP-COLOR: #ddd; ZOOM: 1 } DIV.pickerMenu UL LI H3 A { BACKGROUND: url(images/more_options.gif) no-repeat 4px 7px; COLOR: = #444; BORDER-TOP-COLOR: #ddd; ZOOM: 1 } DIV.tools UL LI H3 A:hover { BACKGROUND: url(images/more_options.gif) #fff no-repeat 4px 7px } DIV.tools UL LI H3 A.simpleLink:hover { BACKGROUND-COLOR: #ffffff } DIV.tools UL LI H3 A.simpleLink:focus { BACKGROUND-COLOR: #ffffff } DIV.tools UL LI H3 A.open { FONT-WEIGHT: bold; BACKGROUND: url(images/less_options_dark.gif) = #ffffff no-repeat 4px 7px } DIV.tools UL LI H3 A.open:hover { BACKGROUND-IMAGE: url(images/less_options_dark.gif) } DIV.tools UL LI H3 A.open:focus { BACKGROUND-IMAGE: url(images/less_options_dark.gif) } DIV.tools UL LI A.submenuLink { BACKGROUND: url(images/list_bullet_dark.gif) no-repeat center center; = BORDER-LEFT: #bbb 1px solid } DIV.tools UL LI A.submenuLink_active { BACKGROUND: url(images/list_bullet_dark.gif) no-repeat center center; = BORDER-LEFT: #bbb 1px solid } DIV.tools UL LI A.submenuLink:hover { BACKGROUND: url(images/list_bullet.gif) #ffffff no-repeat center center } DIV.tools UL LI A.submenuLink_active:hover { BACKGROUND: url(images/list_bullet.gif) #ffffff no-repeat center center } DIV.tools UL LI A.submenuLink:focus { BACKGROUND: url(images/list_bullet.gif) #ffffff no-repeat center center } DIV.tools UL LI A.submenuLink_active:focus { BACKGROUND: url(images/list_bullet.gif) #ffffff no-repeat center center } DIV.tools UL LI A.submenuLink_active { BACKGROUND: url(images/list_bullet_dark.gif) #ffffff no-repeat center = center } DIV.pickerMenu { LEFT: 14px; MARGIN: 0px; WIDTH: 150px; POSITION: absolute; TOP: 0px } DIV.pickerMenu UL LI H3 A { BACKGROUND-IMAGE: none } DIV.pickerMenu UL LI H3 A.simpleLink { BACKGROUND-IMAGE: none } DIV.pickerMenu UL LI H3 A.open { BACKGROUND: url(images/list_bullet.gif) #fff no-repeat 97% center } DIV.pickerMenu UL LI H3 A:hover { BACKGROUND: url(images/list_bullet.gif) #fff no-repeat 97% center } DIV.pickerMenu UL LI H3 A:focus { BACKGROUND: url(images/list_bullet.gif) #fff no-repeat 97% center } DIV.myPlaces UL { BACKGROUND-COLOR: #fff } DIV.myPlaces DIV.bottomRound B { BACKGROUND-COLOR: #fff } DIV.singleControl A { PADDING-RIGHT: 9px; BORDER-TOP: medium none; PADDING-LEFT: 9px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; ZOOM: 1; = BACKGROUND-COLOR: #a8beda; TEXT-ALIGN: center } DIV.discover A { PADDING-RIGHT: 9px; BORDER-TOP: medium none; PADDING-LEFT: 9px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; ZOOM: 1; = BACKGROUND-COLOR: #a8beda; TEXT-ALIGN: center } DIV.discover A { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: = 105%; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.singleControl A:hover { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.discover A:hover { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.singleControl A:hover { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.singleControl A:focus { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.singleControl A:focus { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.discover A:focus { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.discover A IMG { MARGIN: -1px 3px 0px 0px } DIV.myPlaces UL LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 22px; PADDING-BOTTOM: 3px; BORDER-LEFT: 0px; COLOR: #003399; = PADDING-TOP: 3px; BORDER-BOTTOM: 0px; BACKGROUND-COLOR: transparent } DIV.myPlaces UL LI A:hover { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 22px; PADDING-BOTTOM: 3px; BORDER-LEFT: 0px; COLOR: #003399; = PADDING-TOP: 3px; BORDER-BOTTOM: 0px; BACKGROUND-COLOR: transparent } DIV.myPlaces UL LI A:focus { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 22px; PADDING-BOTTOM: 3px; BORDER-LEFT: 0px; COLOR: #003399; = PADDING-TOP: 3px; BORDER-BOTTOM: 0px; BACKGROUND-COLOR: transparent } DIV.myPlaces UL LI A:hover { TEXT-DECORATION: underline } DIV.myPlaces UL LI A:focus { TEXT-DECORATION: underline } DIV.myPlaces UL LI A.home { PADDING-RIGHT: 20px; BORDER-BOTTOM: #ddd 1px solid } DIV.myPlaces UL LI SPAN.homeIconWrap { RIGHT: 3px; BACKGROUND: url(/images/ci/icons/clphomepage/home_ti.gif) = no-repeat 0px 0px; POSITION: absolute; TOP: 3px } DIV.myPlaces UL LI SPAN.homeIconWrap IMG { WIDTH: 16px; HEIGHT: 16px } DIV.explore UL.parents LI A { BACKGROUND-POSITION: 7px 6px; PADDING-LEFT: 20px; BACKGROUND-IMAGE: = url(images/list_bullet_up.gif); BACKGROUND-REPEAT: no-repeat; = BACKGROUND-COLOR: #ededed } DIV.explore H4 { PADDING-RIGHT: 9px; BORDER-TOP: #999 2px solid; PADDING-LEFT: 9px; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; BACKGROUND-COLOR: = #fff } DIV.explore H4 A { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; COLOR: #000; PADDING-TOP: = 3px; TEXT-DECORATION: none } DIV.explore H4 A:hover { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; COLOR: #000; PADDING-TOP: = 3px; TEXT-DECORATION: none } DIV.explore H4 A { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; COLOR: #000; PADDING-TOP: = 3px; TEXT-DECORATION: none } DIV.explore H4 A:focus { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; COLOR: #000; PADDING-TOP: = 3px; TEXT-DECORATION: none } DIV.explore UL.submenu { BACKGROUND-COLOR: #fff } DIV.explore DIV.bottomRound B { BACKGROUND-COLOR: #fff } LI A.unit { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.course { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.ee { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.program { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.workspace { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.unit { BACKGROUND-IMAGE: url(/images/ci/icons/clp_unit_ti.gif) } LI A.unit:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_unit_ti.gif) } LI A.course { BACKGROUND-IMAGE: url(/images/ci/icons/clp_course_ti.gif) } LI A.course:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_course_ti.gif) } LI A.ee { BACKGROUND-IMAGE: url(/images/ci/icons/clp_ee_ti.gif) } LI A.ee:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_ee_ti.gif) } LI A.program { BACKGROUND-IMAGE: url(/images/ci/icons/clp_program_ti.gif) } LI A.program:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_program_ti.gif) } LI A.workspace { BACKGROUND-IMAGE: url(/images/ci/icons/clp_workspace_ti.gif) } LI A.workspace:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_workspace_ti.gif) } DIV.navPalette UL LI UL.submenu { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-SIZE: 85%; PADDING-BOTTOM: = 9px; MARGIN: 0px; PADDING-TOP: 2px } DIV.explore UL.submenu { FONT-SIZE: 90%; MARGIN: 2px 6px 0px 20px } DIV.controlpanel UL LI UL.submenu { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI UL.submenu LI UL { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI UL.submenu LI { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND-IMAGE: = none; MARGIN: 0px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } DIV.controlpanel UL LI UL.submenu LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: = 2px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: 2px; BORDER-BOTTOM: 0px } DIV.explore UL LI UL.submenu LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: = 2px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: 2px; BORDER-BOTTOM: 0px } DIV.explore UL.submenu LI A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; COLOR: = #003366; PADDING-TOP: 2px } DIV.explore UL.submenu LI SPAN.emptyMsg { COLOR: #777 } DIV.controlpanel UL LI UL.submenu LI A:hover { PADDING-RIGHT: 9px; PADDING-LEFT: 6px; BACKGROUND: = url(images/list_bullet_single.gif) #fff no-repeat 99% center; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } DIV.controlpanel UL LI UL.submenu LI A.here { PADDING-RIGHT: 9px; PADDING-LEFT: 6px; BACKGROUND: = url(images/list_bullet_single.gif) #fff no-repeat 99% center; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } DIV.controlpanel UL LI UL.submenu LI A:focus { PADDING-RIGHT: 9px; PADDING-LEFT: 6px; BACKGROUND: = url(images/list_bullet_single.gif) #fff no-repeat 99% center; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } DIV.explore UL.submenu LI A:hover { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } DIV.explore UL.submenu LI A:focus { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } UL.submenu LI UL LI { PADDING-LEFT: 12px; HEIGHT: 1% } DIV.tools UL.submenu { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 2px 9px 0px; PADDING-TOP: 0px } UL.submenu { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 2px 9px 0px; PADDING-TOP: 0px } DIV.tools UL.submenu LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; BACKGROUND: #fff; PADDING-BOTTOM: 2px; MARGIN: 0px; BORDER-LEFT: = 0px; PADDING-TOP: 2px; BORDER-BOTTOM: 0px } UL.submenu LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; BACKGROUND: #fff; PADDING-BOTTOM: 2px; MARGIN: 0px; BORDER-LEFT: = 0px; PADDING-TOP: 2px; BORDER-BOTTOM: 0px } DIV.tools UL.submenu LI A:hover { BACKGROUND: url(images/list_bullet_single.gif) #f6f6f6 no-repeat 99% = center } UL.submenu LI A:hover { BACKGROUND: url(images/list_bullet_single.gif) #f6f6f6 no-repeat 99% = center } DIV.tools UL.submenu LI A:hover { BACKGROUND: url(images/list_bullet_single.gif) #f6f6f6 no-repeat 99% = center } UL.submenu LI A:focus { BACKGROUND: url(images/list_bullet_single.gif) #f6f6f6 no-repeat 99% = center } DIV.navPalette DIV.topRound { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.navPalette DIV.bottomRound { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.navPalette DIV.topRound B { DISPLAY: block; OVERFLOW: hidden } DIV.navPalette DIV.bottomRound B { DISPLAY: block; OVERFLOW: hidden } DIV.navPalette DIV.topRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } DIV.navPalette DIV.bottomRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } DIV.navPalette DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } DIV.navPalette DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } DIV.navPalette DIV.topRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.navPalette DIV.bottomRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.navPalette DIV.topRound B { BACKGROUND-COLOR: #949494 } DIV.tools DIV.topRound B { BACKGROUND-COLOR: #949494 } DIV.myPlaces DIV.bottomRound B { BACKGROUND-COLOR: #fff } DIV.explore DIV.bottomRound B { BACKGROUND-COLOR: #fff } DIV.listCm DIV.topRound B { BACKGROUND-COLOR: #fff1c5 } DIV.buttonCm DIV.topRound B { BACKGROUND-COLOR: #fff1c5 } DIV.treeContainer DIV.topRound B { BACKGROUND-COLOR: #fff1c5 } DIV.treeViewCs DIV.topRound B { BACKGROUND-COLOR: #fff1c5 } DIV.listCm DIV.bottomRound B { BACKGROUND-COLOR: #ffffff } DIV.buttonCm DIV.bottomRound B { BACKGROUND-COLOR: #ffffff } DIV.treeContainer DIV.bottomRound B { BACKGROUND-COLOR: #ffffff } DIV.tools DIV.bottomRound B { BACKGROUND-COLOR: #ededed } DIV.pickerMenu DIV.topRound B { BACKGROUND-COLOR: #ededed } DIV.pickerMenu DIV.bottomRound B { BACKGROUND-COLOR: #ededed } DIV.singleControl DIV.topRound B { BACKGROUND-COLOR: #a8beda } DIV.singleControl DIV.bottomRound B { BACKGROUND-COLOR: #a8beda } DIV.discover DIV.topRound B { BACKGROUND-COLOR: #a8beda } DIV.discover DIV.bottomRound B { BACKGROUND-COLOR: #a8beda } DIV.navPaletteCol DIV.listCmCol B { BACKGROUND: #949494 } DIV.navPaletteCol DIV.bottomRound B { BACKGROUND: #949494 } DIV.navPaletteCol DIV.topRound B { BACKGROUND: #949494 } DIV.controlpanel DIV.topRound B { BACKGROUND-COLOR: #8192a8 } DIV.navPaletteCol DIV.controlpanelCol B { BACKGROUND-COLOR: #8192a8 } DIV.treeContainer UL.tree { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; PADDING-BOTTOM: 9px; MARGIN: = 0px; PADDING-TOP: 3px; LIST-STYLE-TYPE: none } UL.tree { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; PADDING-BOTTOM: 9px; MARGIN: = 0px; PADDING-TOP: 3px; LIST-STYLE-TYPE: none } DIV.treeContainer UL.tree UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 0px 18px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.tree UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 0px 18px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.listCm DIV.treeContainer UL.tree { OVERFLOW-X: auto } DIV.treeContainer UL.tree LI H3 + UL { PADDING-RIGHT: 0px; PADDING-LEFT: 9px; OVERFLOW-X: auto; = PADDING-BOTTOM: 9px; MARGIN: 0px; OVERFLOW: hidden; PADDING-TOP: 0px; = ZOOM: 1; POSITION: relative } DIV.treeContainer UL.tree LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(/images/ci/icons/nlstree/line.gif) repeat-y 0px 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; WHITE-SPACE: nowrap } UL.tree LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(/images/ci/icons/nlstree/line.gif) repeat-y 0px 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; WHITE-SPACE: nowrap } DIV.treeContainer UL.tree LI.last { BACKGROUND-IMAGE: none } UL.tree LI.last { BACKGROUND-IMAGE: none } DIV.treeContainer UL.tree LI.here A { BACKGROUND-COLOR: #ededed } UL.tree LI.here A { BACKGROUND-COLOR: #ededed } DIV.treeContainer UL.tree LI A { PADDING-RIGHT: 3px; BORDER-TOP: medium none; DISPLAY: inline; = PADDING-LEFT: 0px; FONT-SIZE: 95%; BACKGROUND: none transparent scroll = repeat 0% 0%; PADDING-BOTTOM: 2px; PADDING-TOP: 2px } UL.tree LI A { PADDING-RIGHT: 3px; BORDER-TOP: medium none; DISPLAY: inline; = PADDING-LEFT: 0px; FONT-SIZE: 95%; BACKGROUND: none transparent scroll = repeat 0% 0%; PADDING-BOTTOM: 2px; PADDING-TOP: 2px } DIV.treeContainer UL.tree LI A.open_folder { PADDING-RIGHT: 3px; BORDER-TOP: medium none; DISPLAY: inline; = PADDING-LEFT: 0px; FONT-SIZE: 95%; BACKGROUND: #ebeffa; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } DIV.treeContainer UL.tree LI A.exp { PADDING-RIGHT: 21px; PADDING-LEFT: 0px; BACKGROUND: = url(/images/ci/icons/nlsTree/folder.gif) no-repeat 18px 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } DIV.treeContainer UL.tree LI A.collapse { PADDING-RIGHT: 21px; PADDING-LEFT: 0px; BACKGROUND: = url(/images/ci/icons/nlsTree/folderopen.gif) no-repeat 18px 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } DIV.treeContainer H3.treehead { PADDING-RIGHT: 0px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 8px 0px 2px; PADDING-TOP: 0px } DIV.treeContainer H3.first { MARGIN: 0px 0px 2px } DIV#userTreeDiv { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.treeContainer UL.tree LI.subhead { BACKGROUND-IMAGE: none; MARGIN: 0px 0px 0px -6px } DIV.treeContainer UL.tree LI.subhead H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.treeContainer UL.tree LI.subhead H3.first A { BORDER-TOP: medium none } DIV.treeContainer UL.tree LI.subhead H3 A { PADDING-RIGHT: 9px; BACKGROUND-POSITION: 3px 6px; BORDER-TOP: #ddd 1px = solid; DISPLAY: block; PADDING-LEFT: 18px; BACKGROUND-IMAGE: = url(images/less_options.gif); PADDING-BOTTOM: 3px; PADDING-TOP: 3px; = BACKGROUND-REPEAT: no-repeat; BACKGROUND-COLOR: transparent; = TEXT-DECORATION: none } DIV.treeContainer UL.tree LI.subhead:first-child { MARGIN-TOP: 0px } DIV.treeContainer UL.tree LI.subhead:first-child A { BORDER-TOP: 0px } DIV.treeContainer UL.tree LI.subhead H3.treeSubhead-collapsed A { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.shortcutViewCs UL LI A { BORDER-TOP: #ededed 1px solid; TEXT-ALIGN: center } UL.shortcuts LI A { BORDER-TOP: #ccc 1px solid; BACKGROUND: #fff; TEXT-ALIGN: center } UL.shortcuts LI A:hover { BACKGROUND: url(images/list_bullet_single.gif) #ededed no-repeat 99% = center; TEXT-ALIGN: center } UL.shortcuts LI A:focus { BACKGROUND: url(images/list_bullet_single.gif) #ededed no-repeat 99% = center; TEXT-ALIGN: center } DIV.containerPortal { PADDING-RIGHT: 5px; MIN-WIDTH: 600px; PADDING-LEFT: 5px; MIN-HEIGHT: = 400px; BACKGROUND: #e3efff; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 5px } DIV.portal DIV.container { PADDING-RIGHT: 5px; MIN-WIDTH: 600px; PADDING-LEFT: 5px; MIN-HEIGHT: = 400px; BACKGROUND: #e3efff; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 5px } .column-1 { MIN-HEIGHT: 400px; FLOAT: left; MARGIN: 6px 0px 0px; WIDTH: 100%; = HEIGHT: 400px } .column-2 { MIN-HEIGHT: 400px; FLOAT: left; MARGIN: 6px 0px 0px; WIDTH: 50%; = HEIGHT: 400px } .column-3 { MIN-HEIGHT: 400px; FLOAT: left; MARGIN: 6px 0px 0px; WIDTH: 33.3%; = HEIGHT: 400px } #moduleBody { BORDER-RIGHT: #597298 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #597298 2px solid; PADDING-LEFT: 0px; Z-INDEX: 500; PADDING-BOTTOM: 0px; = MARGIN: 0px 5px 10px; BORDER-LEFT: #597298 2px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #597298 2px solid; POSITION: relative; HEIGHT: 1%; = BACKGROUND-COLOR: #fff } #moduleBorder { BORDER-RIGHT: #597298 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #597298 2px solid; PADDING-LEFT: 0px; Z-INDEX: 500; PADDING-BOTTOM: 0px; = MARGIN: 0px 5px 10px; BORDER-LEFT: #597298 2px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #597298 2px solid; POSITION: relative; HEIGHT: 1%; = BACKGROUND-COLOR: #fff } .portlet { BORDER-RIGHT: #597298 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #597298 2px solid; PADDING-LEFT: 0px; Z-INDEX: 500; PADDING-BOTTOM: 0px; = MARGIN: 0px 5px 10px; BORDER-LEFT: #597298 2px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #597298 2px solid; POSITION: relative; HEIGHT: 1%; = BACKGROUND-COLOR: #fff } #moduleTitle { PADDING-RIGHT: 52px; BACKGROUND-POSITION: 0px center; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 5px; MARGIN: 0px; VERTICAL-ALIGN: middle; OVERFLOW: = visible; COLOR: #fff; PADDING-TOP: 4px; BACKGROUND-REPEAT: repeat-x; = POSITION: relative; BACKGROUND-COLOR: #819ac0 } .portlet H2 { PADDING-RIGHT: 52px; BACKGROUND-POSITION: 0px center; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 5px; MARGIN: 0px; VERTICAL-ALIGN: middle; OVERFLOW: = visible; COLOR: #fff; PADDING-TOP: 4px; BACKGROUND-REPEAT: repeat-x; = POSITION: relative; BACKGROUND-COLOR: #819ac0 } .portlet H2.dragHandle:hover { BACKGROUND: #597298; CURSOR: move } .portlet H2 A { PADDING-RIGHT: 12px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = VERTICAL-ALIGN: middle; COLOR: #fff; PADDING-TOP: 0px } .portlet H2 A IMG { VERTICAL-ALIGN: middle } .portlet H2 A:hover { BACKGROUND: url(images/arrow_white.gif) no-repeat right center; = TEXT-DECORATION: underline } .portlet H2 SPAN.reorder { BORDER-RIGHT: #888 1px solid; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BACKGROUND: url(images/cm_reorder.gif) #fff no-repeat center center; = FILTER: alpha(opacity=3D0); LEFT: -2px; PADDING-BOTTOM: 0px; WIDTH: = 18px; CURSOR: move; PADDING-TOP: 0px; BORDER-BOTTOM: #888 1px solid; = POSITION: absolute; TOP: -2px; HEIGHT: 18px; opacity: 0 } .portlet H2 SPAN.reorder IMG { WIDTH: 18px; HEIGHT: 20px } .portlet H2:hover SPAN.reorder { FILTER: alpha(opacity=3D80)! important; opacity: 0.8 } .portlet H2.noTitle { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: = 0px; MARGIN: 0px; VERTICAL-ALIGN: middle; CURSOR: move; PADDING-TOP: = 0px; POSITION: relative; HEIGHT: 1% } .portlet H2.noTitle:hover { BACKGROUND: #ededed; HEIGHT: 1% } DIV.edit_controls { PADDING-RIGHT: 0px; PADDING-LEFT: 4px; RIGHT: 4px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; POSITION: absolute; TOP: 2px; HEIGHT: 20px } SPAN.edit_controls { PADDING-RIGHT: 0px; PADDING-LEFT: 4px; RIGHT: 4px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; POSITION: absolute; TOP: 2px; HEIGHT: 20px } DIV.edit_controls A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none! = important; PADDING-BOTTOM: 0px; MARGIN-LEFT: 1px; PADDING-TOP: 0px; = opacity: 0.6; verical-align: top } SPAN.edit_controls A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none! = important; PADDING-BOTTOM: 0px; MARGIN-LEFT: 1px; PADDING-TOP: 0px; = opacity: 0.6; verical-align: top } DIV.edit_controls A:hover { opacity: 1 } SPAN.edit_controls A:hover { opacity: 1 } .portlet DIV.collapsible { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; MARGIN: = 0px; OVERFLOW: scroll; WIDTH: 100%; PADDING-TOP: 3px; ZOOM: 1; = BACKGROUND-COLOR: transparent } .portlet DIV.collapsible P { MARGIN: 4px 6px 6px 12px } .portlet H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px; COLOR: #597298; PADDING-TOP: = 1px; BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } #lightbox H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px; COLOR: #597298; PADDING-TOP: = 1px; BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .portlet DIV.portletBlock H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px; COLOR: #597298; PADDING-TOP: = 1px; BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .portlet DIV.blockContents H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px; COLOR: #597298; PADDING-TOP: = 1px; BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .portlet H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px 0px; COLOR: #000; PADDING-TOP: = 1px } .portlet UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 4px = 9px 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #lightbox UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 4px = 9px 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .portlet UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; FONT-SIZE: 95%; BACKGROUND: = url(images/list_bullet_single.gif) no-repeat 5px 3px; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 2px; PADDING-TOP: 0px } #lightbox UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; FONT-SIZE: 95%; BACKGROUND: = url(images/list_bullet_single.gif) no-repeat 5px 3px; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 2px; PADDING-TOP: 0px } .portlet UL.courselist { MARGIN: 6px 6px 9px } .portlet UL.courselist LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 14px; FONT-WEIGHT: bold; = BACKGROUND: url(images/list_bullet_single.gif) no-repeat 4px 5px; = PADDING-BOTTOM: 0px; MARGIN: 0px 0px 6px; PADDING-TOP: 0px } .portlet UL.courselist LI A { FONT-SIZE: 110% } .portlet UL.courselist LI A:hover { TEXT-DECORATION: underline } .portlet UL.courselist LI P { FONT-WEIGHT: normal; FONT-SIZE: 90%; MARGIN: 4px } .portlet UL.scholar { MARGIN: 2px 6px } .portlet UL.scholar LI { PADDING-RIGHT: 6px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 24px; = BACKGROUND: url(images/small_scholar.gif) no-repeat 0px 6px; = MARGIN-BOTTOM: 4px; PADDING-BOTTOM: 4px; PADDING-TOP: 6px } .portlet UL.scholar LI:first-child { BORDER-TOP: medium none } UL.tagcloud { PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; PADDING-BOTTOM: 0pt; MARGIN: 4px = 6px 12px; PADDING-TOP: 0pt } UL.tagcloud LI { PADDING-RIGHT: 3px; DISPLAY: inline; PADDING-LEFT: 3px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; MARGIN: 0pt; = VERTICAL-ALIGN: baseline; PADDING-TOP: 3px; LIST-STYLE-TYPE: none } LI.freq1 A { FONT-SIZE: 90% } LI.freq2 A { FONT-SIZE: 105% } LI.freq3 A { FONT-SIZE: 120% } LI.freq4 A { FONT-SIZE: 135% } LI.freq5 A { FONT-SIZE: 155% } LI.freq6 A { FONT-SIZE: 165% } LI.freq7 A { FONT-SIZE: 175% } LI.freq8 A { FONT-SIZE: 195% } .portletHelp { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 2px; MARGIN: 4px 7px; COLOR: #688ba8; PADDING-TOP: 1px } .portlet FIELDSET { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 9px; PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 6px; BORDER-BOTTOM: 0px } .portlet FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } DIV.portlet FIELDSET A.browse { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 90%; PADDING-BOTTOM: = 1px; COLOR: #666; PADDING-TOP: 1px } DIV.portlet FIELDSET LABEL { DISPLAY: block } DIV.portlet INPUT[type=3D'text'] { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: 0px; MARGIN: = 1px 0px; VERTICAL-ALIGN: middle; BORDER-LEFT: #999 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #999 1px solid } DIV.portlet SELECT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: 0px; MARGIN: = 1px 0px; VERTICAL-ALIGN: middle; BORDER-LEFT: #999 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #999 1px solid } DIV.portlet INPUT[type=3D'button'] { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-SIZE: 90%; BACKGROUND: #ddd; = PADDING-BOTTOM: 0px; MARGIN: 1px 0px; VERTICAL-ALIGN: baseline; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #999 1px = solid } DIV.portlet INPUT[type=3D'button']:hover { BORDER-RIGHT: #999 1px solid; BORDER-TOP: #999 1px solid; FONT-SIZE: = 90%; BACKGROUND: #fff; BORDER-LEFT: #999 1px solid; BORDER-BOTTOM: #999 = 1px solid } .portlet UL LI DIV.location { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 0px; COLOR: #999; PADDING-TOP: 0px } .portlet_cust UL LI DIV.location { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 0px; COLOR: #999; PADDING-TOP: 0px } .portlet UL LI A { =09 } .portlet UL LI SPAN.post_date { FLOAT: right; MARGIN-LEFT: 3px; COLOR: #999 } .portlet UL LI SPAN.info_byline { FLOAT: right; MARGIN-LEFT: 3px; COLOR: #999 } .portlet UL LI SPAN.time { FLOAT: right; MARGIN-LEFT: 3px; COLOR: #999 } .portlet UL.disc LI SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; FLOAT: right; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } .portlet UL.portletTabs { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #ededed; = PADDING-BOTTOM: 0px; MARGIN: 0px 6px; PADDING-TOP: 4px; BORDER-BOTTOM: = #ccc 1px solid; LIST-STYLE-TYPE: none } .portlet UL.portletTabs LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; BACKGROUND-IMAGE: = none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .portlet UL.portletTabs LI A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; FONT-SIZE: = 90%; BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; = TEXT-DECORATION: none } .portlet UL.portletTabs LI A:hover { TEXT-DECORATION: underline } .portlet UL.portletTabs LI.active { POSITION: relative; TOP: 1px } .portlet UL.portletTabs LI.active A { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; FONT-WEIGHT: = bold; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: medium none; = BACKGROUND-COLOR: #fff } .portlet DIV.tabbedPortlet { BACKGROUND: #ededed; PADDING-TOP: 9px } .portlet DIV.portletTabBlock { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: medium = none; PADDING-LEFT: 0px; BACKGROUND: #fff; PADDING-BOTTOM: 6px; MARGIN: = 0px 6px 6px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 6px; = BORDER-BOTTOM: #ccc 1px solid } .blockContents { BACKGROUND: #fff; MARGIN: 2px 0px } .portlet DIV.portletBlock { BORDER-RIGHT: #888 1px solid; BORDER-TOP: #888 1px solid; FONT-SIZE: = 100%; BACKGROUND: #fff; MARGIN: 9px 9px 0px; BORDER-LEFT: #888 1px = solid; BORDER-BOTTOM: #888 1px solid } .portlet DIV.portletBlock H4 { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px } .portlet DIV.portletBlock H4.blockTitle { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px } .portlet DIV.portletBlock H4 A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 9px; FONT-SIZE: 110%; BACKGROUND: #f1f1f1; PADDING-BOTTOM: = 4px; MARGIN: 0px; BORDER-LEFT: 0px; COLOR: #444; PADDING-TOP: 4px; = BORDER-BOTTOM: 0px; LETTER-SPACING: 0px; TEXT-DECORATION: none } .portlet DIV.portletBlock H4.blockTitle A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 9px; FONT-SIZE: 110%; BACKGROUND: #f1f1f1; PADDING-BOTTOM: = 4px; MARGIN: 0px; BORDER-LEFT: 0px; COLOR: #444; PADDING-TOP: 4px; = BORDER-BOTTOM: 0px; LETTER-SPACING: 0px; TEXT-DECORATION: none } .portlet DIV.portletBlock H4 A:hover { BACKGROUND: #eee } .portlet DIV.portletBlock H4.blockTitle A:hover { BACKGROUND: #eee } .portlet DIV.portletBlock H4 A SPAN { FONT-WEIGHT: normal; COLOR: #ddd } .portlet DIV.portletBlock H4.blockTitle A SPAN { FONT-WEIGHT: normal; COLOR: #ddd } .portlet UL.subCategories { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.blockGroups { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .portlet DIV.portletBlock UL.subCategories LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } UL.blockGroups LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .portlet UL.subCategories LI A { PADDING-RIGHT: 16px; BORDER-TOP: #777 1px solid; DISPLAY: block; = PADDING-LEFT: 16px; FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 3px center; = PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #597298; PADDING-TOP: 4px; = LETTER-SPACING: 1px; TEXT-DECORATION: none } UL.blockGroups LI A.itemHead { PADDING-RIGHT: 16px; BORDER-TOP: #777 1px solid; DISPLAY: block; = PADDING-LEFT: 16px; FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 3px center; = PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #597298; PADDING-TOP: 4px; = LETTER-SPACING: 1px; TEXT-DECORATION: none } UL.blockGroups LI A.itemHead:hover { BACKGROUND-COLOR: #e3efff; TEXT-DECORATION: underline } UL.blockGroups LI A.itemHeadOpen { BACKGROUND: url(images/less_options_dark.gif) #fff no-repeat 3px center } UL.blockGroups LI A.itemHeadOpen:hover { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } .portlet UL.subCategories LI:first-child A { BORDER-TOP: medium none } UL.blockGroups LI:first-child A { BORDER-TOP: medium none } .portlet UL.subCategories LI A:hover { FILTER: alpha(opacity=3D100); BACKGROUND-COLOR: #fff; opacity: 1 } UL.blockGroups LI A:hover { FILTER: alpha(opacity=3D100); BACKGROUND-COLOR: #fff; opacity: 1 } .portlet UL.subCategories LI A SPAN { FONT-WEIGHT: normal; COLOR: #777 } UL.blockGroups LI A SPAN { FONT-WEIGHT: normal; COLOR: #777 } .portlet UL.itemGroup LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: = inline; PADDING-LEFT: 0px; FONT-WEIGHT: bold; PADDING-BOTTOM: 0px; = BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; = BACKGROUND-COLOR: transparent } UL.blockGroups LI UL.itemGroups LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: = inline; PADDING-LEFT: 0px; FONT-WEIGHT: bold; PADDING-BOTTOM: 0px; = BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; = BACKGROUND-COLOR: transparent } .portlet UL.itemGroup LI A:hover { TEXT-DECORATION: underline } UL.itemGroups LI A:hover { TEXT-DECORATION: underline } UL.itemGroups LI UL.items { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 2px } UL.blockGroups LI UL.itemGroups LI A { FONT-WEIGHT: normal } UL.itemGroups LI UL.items LI A { FONT-WEIGHT: normal } .portlet DIV.portletBlock H3 { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 100%; PADDING-BOTTOM: = 0px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none; LETTER-SPACING: 0px } .portlet DIV.portletBlock H3 A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 99% center; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; TEXT-DECORATION: = none } .portlet DIV.portletBlock H3 A:hover { TEXT-DECORATION: underline } .portlet DIV.portletBlock:first-child H3 A { BORDER-TOP: medium none } .portlet DIV.portletBlock H3 A.open { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = url(images/less_options.gif) #e3efff no-repeat 99% center; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; TEXT-DECORATION: = none } .portlet UL.objectList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .portletBlock UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .blockContents UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } UL.memberList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .portlet .blockContents UL LI UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .portlet .blockContents UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .portlet UL LI UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } #portalPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 3px 14px 0px; = WIDTH: auto; PADDING-TOP: 0px } DIV.portalPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 3px 14px 0px; = WIDTH: auto; PADDING-TOP: 0px } .imgWrapper { MARGIN: 6px auto; OVERFLOW: scroll; WIDTH: 100%; TEXT-ALIGN: center } .imgWrapper IMG { HEIGHT: 1% } DIV.eudModule { BORDER-RIGHT: #f9f9f9 0px solid; PADDING-RIGHT: 0px; = BACKGROUND-POSITION: 50% 50%; BORDER-TOP: #f9f9f9 1px solid; = PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: = 0px; BORDER-LEFT: #f9f9f9 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: = #f9f9f9 0px solid; BACKGROUND-COLOR: #ededed } DIV.eudModule DIV.eudModule-inner { OVERFLOW-Y: auto; MIN-HEIGHT: 250px; MAX-HEIGHT: 500px; BORDER-BOTTOM: = medium none } DIV.moduleActions { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 0px; = PADDING-TOP: 10px } .portlet UL.memberList { MARGIN: 0px 0px 5px } UL.itemGroups LI UL.itemGroups { MARGIN-BOTTOM: 4px; MARGIN-LEFT: 0px } .portlet UL.blockGroups LI { FONT-SIZE: 100% } .portlet UL.blockGroups LI UL LI A.cmimg { ZOOM: 1; POSITION: static! important } SPAN.itemHead A.cmimg { ZOOM: 1; POSITION: static! important } .portlet UL.itemGroups LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 7px; WIDTH: 100%; LINE-HEIGHT: 120%; PADDING-TOP: 0px } .portlet UL.memberList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = MARGIN-LEFT: 14px! important; PADDING-TOP: 0px } .portlet SPAN.course { DISPLAY: block; FONT-SIZE: 85% } .portlet UL.memberList { DISPLAY: block; FONT-SIZE: 85% } .portlet SPAN.refresh { DISPLAY: block; FONT-SIZE: 85% } .portlet SPAN A { COLOR: #777 } .portlet SPAN.noIndent { MARGIN-LEFT: 0px! important } .portlet .whatsNew SPAN.course { MARGIN-LEFT: 0px! important } .portlet SPAN.course { MARGIN-LEFT: 0px! important } .portlet UL.hierarchyList { MARGIN-LEFT: 22px } .portlet UL.hierarchyList LI { BORDER-RIGHT: transparent 1px solid; BORDER-TOP: transparent 1px solid; = OVERFLOW-X: visible; BORDER-LEFT: transparent 1px solid; TEXT-INDENT: = -18px; BORDER-BOTTOM: transparent 1px solid } .portlet UL.hierarchyList LI * { TEXT-INDENT: 0px } .portlet UL.hierarchyList LI.childless { TEXT-INDENT: 0px } .portlet UL LI UL LI SPAN.warning { DISPLAY: inline; FONT-SIZE: 85%; COLOR: #777777; WHITE-SPACE: nowrap } .portlet UL LI UL LI SPAN.due { DISPLAY: inline; FONT-SIZE: 85%; COLOR: #777777; WHITE-SPACE: nowrap } .portlet UL LI UL LI SPAN.newItemCount { DISPLAY: inline; FONT-SIZE: 85%; COLOR: #777777; WHITE-SPACE: nowrap } .portlet UL LI UL LI SPAN.warning { COLOR: #ff0000 } .portlet UL.memberList SPAN { FONT-SIZE: 100% } .portlet UL.memberList SPAN.newItemCount { FONT-SIZE: 100% } .portletInfoFooter { PADDING-RIGHT: 9px; MARGIN-TOP: 4px; PADDING-LEFT: 9px; FONT-SIZE: 85%; = RIGHT: 0px; PADDING-BOTTOM: 2px; COLOR: #555; BOTTOM: 2px; PADDING-TOP: = 2px; POSITION: static; TEXT-ALIGN: right } .dateSelector { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; BACKGROUND: #f1f1f1; = PADDING-BOTTOM: 4px; PADDING-TOP: 2px; BORDER-BOTTOM: #888 1px solid } UL.blockGroups LI SPAN.itemHeadOpen { BORDER-BOTTOM: #eeeeee 1px solid } UL.blockGroups LI SPAN.itemHead A:hover { BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline } P.noItems { MARGIN: 4px 6px; COLOR: #777; TEXT-ALIGN: center } #contentArea { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = MIN-HEIGHT: 400px; PADDING-BOTTOM: 12px; MARGIN: 0px; OVERFLOW: visible; = PADDING-TOP: 10px; HEIGHT: 400px; BACKGROUND-COLOR: #fff } .container { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = MIN-HEIGHT: 400px; PADDING-BOTTOM: 12px; MARGIN: 0px; OVERFLOW: visible; = PADDING-TOP: 10px; HEIGHT: 400px; BACKGROUND-COLOR: #fff } DIV.okContainer { PADDING-BOTTOM: 38px; POSITION: relative } DIV.ok DIV.container { PADDING-BOTTOM: 38px; POSITION: relative } .contentbottoml { DISPLAY: none } .contentbottomr { DISPLAY: none } .tallPara { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 40px; MARGIN: = 0px; PADDING-TOP: 40px } SPAN.errorCode { MARGIN-TOP: 24px; DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 90% } #pageHeader { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = PADDING-BOTTOM: 6px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 6px; ZOOM: = 1; BACKGROUND-COLOR: #fff1c5 } .pageTitle { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = PADDING-BOTTOM: 6px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 6px; ZOOM: = 1; BACKGROUND-COLOR: #fff1c5 } .pageTitleSmall { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = PADDING-BOTTOM: 6px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 6px; ZOOM: = 1; BACKGROUND-COLOR: #fff1c5 } .pageTitle { BORDER-BOTTOM: #eedd99 1px solid } .error .pageTitle { BACKGROUND: red } .pageTitle H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 150%; PADDING-BOTTOM: = 0px; MARGIN: 6px 0px 0px; PADDING-TOP: 0px } .pageTitleError H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 150%; PADDING-BOTTOM: = 0px; MARGIN: 6px 0px 0px; PADDING-TOP: 0px } .error .pageTitle H1 { COLOR: #fff } .pageTitleSmall H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 135%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } .customBanner { MARGIN: 0px; OVERFLOW: hidden; BACKGROUND-COLOR: transparent; = TEXT-ALIGN: center } .pageTitle #titleicon { FLOAT: left } .pageTitle H1 { FLOAT: left } .pageTitle A.cmimg { FLOAT: left } .pageTitle A.cmimg { MARGIN: 0.8em 0px 0px 6px } .pageTitle #titleicon { MARGIN: 0px 6px 0px 0px } DIV.localViewToggle + DIV.pageTitle { PADDING-TOP: 0px } H1.pageTitle { MARGIN: -11px 0px 5px; PADDING-TOP: 0px } .caliperTitle { MARGIN: -11px 0px 5px; PADDING-TOP: 0px } .discoverTitle { MARGIN: -11px 0px 5px; PADDING-TOP: 0px } .discoverTitle { POSITION: relative; TOP: -11px } .caliperTitle { POSITION: relative; TOP: -11px } .unitHomePageTitle { MARGIN: -11px -12px 5px; PADDING-TOP: 0px } .caliperTitle H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .discoverTitle H1 { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .unitHomePageTitle A.browse { FONT-WEIGHT: normal; FONT-SIZE: 60%; FLOAT: right; PADDING-BOTTOM: 1px; = MARGIN: 4px 0px 0px 6px; PADDING-TOP: 2px } .caliperTitle A.browse { FONT-WEIGHT: normal; FONT-SIZE: 60%; FLOAT: right; PADDING-BOTTOM: 1px; = MARGIN: 4px 0px 0px 6px; PADDING-TOP: 2px } .unitHomePageTitle A.browseNoImg { PADDING-BOTTOM: 3px; PADDING-TOP: 2px } DIV.helphelp { CLEAR: both; PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%; = PADDING-BOTTOM: 0px; MARGIN: 0px 0px 4px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 4px } P.helphelp { CLEAR: both; PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%; = PADDING-BOTTOM: 0px; MARGIN: 0px 0px 4px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 4px } DIV.pageTitle P { CLEAR: both; PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%; = PADDING-BOTTOM: 0px; MARGIN: 0px 0px 4px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 4px } DIV.helphelp P.helphelp { FONT-SIZE: 100% } DIV.helphelp UL { MARGIN: 6px 0px } .colophon { PADDING-RIGHT: 0px; PADDING-LEFT: 55px; FONT-SIZE: 90%; BACKGROUND: = none transparent scroll repeat 0% 0%; FLOAT: right; PADDING-BOTTOM: 3px; = MARGIN: 0px 0px 0px 14px; OVERFLOW: visible; WIDTH: 30em; PADDING-TOP: = 0px; POSITION: relative } .colophon IMG { LEFT: 0px; POSITION: absolute } .installation { FONT-SIZE: 95%; COLOR: #000; LINE-HEIGHT: 1.3em } .installation H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px } .installation H4 SPAN { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; BACKGROUND: = #888; PADDING-BOTTOM: 1px; MARGIN: 0px 0px 0px 6px; COLOR: #fff; = PADDING-TOP: 1px; WHITE-SPACE: nowrap; -moz-border-radius: 8px } .installation SPAN { FONT-WEIGHT: bold } H1 SPAN.version { FONT-SIZE: 75% } UL.containerTabs { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; BACKGROUND: = #fff; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: = #ccc 1px solid; LIST-STYLE-TYPE: none } UL.containerTabs LI { FLOAT: left; MARGIN-RIGHT: 3px; POSITION: relative; TOP: 1px } UL.containerTabs LI A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = #ededed; PADDING-BOTTOM: 6px; PADDING-TOP: 5px; TEXT-DECORATION: none } UL.containerTabs LI A:hover { BACKGROUND: #f6f6f6 } UL.containerTabs LI.active A { BORDER-RIGHT: #dcdcdc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: = #dcdcdc 1px solid; DISPLAY: block; PADDING-LEFT: 12px; FONT-WEIGHT: = bold; BACKGROUND: #ffffff; PADDING-BOTTOM: 7px; MARGIN: 0px; = BORDER-LEFT: #dcdcdc 1px solid; COLOR: #333; PADDING-TOP: 7px; = BORDER-BOTTOM: medium none; TEXT-DECORATION: none } UL.containerTabs LI.active H3 { BORDER-RIGHT: #dcdcdc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: = #dcdcdc 1px solid; DISPLAY: block; PADDING-LEFT: 12px; FONT-WEIGHT: = bold; BACKGROUND: #ffffff; PADDING-BOTTOM: 7px; MARGIN: 0px; = BORDER-LEFT: #dcdcdc 1px solid; COLOR: #333; PADDING-TOP: 7px; = BORDER-BOTTOM: medium none; TEXT-DECORATION: none } DIV.mapTabs { CLEAR: both; PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; MARGIN: -1px -12px 1px; PADDING-TOP: 1px; = BORDER-BOTTOM: #999 1px solid } DIV.mapTabs UL { PADDING-RIGHT: 0px; PADDING-LEFT: 3px; BACKGROUND: #cdcdcd; FLOAT: = left; MARGIN-BOTTOM: -1px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.mapTabs UL LI { PADDING-RIGHT: 0px; MARGIN-TOP: 2px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } DIV.mapTabs UL LI.active H3 { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 12px; FONT-SIZE: 100%; BACKGROUND: #fff1c5; FLOAT: = left; PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: #999 1px solid; = PADDING-TOP: 5px; BORDER-BOTTOM: medium none; HEIGHT: 1% } DIV.mapTabs UL LI A.inprogress { PADDING-LEFT: 26px; BACKGROUND: url(images/workflow_detail_active.gif) = #ededed no-repeat 6px 50% } DIV.mapTabs UL LI A.complete { PADDING-LEFT: 27px; BACKGROUND: = url(images/workflow_detail_complete2.gif) #ededed no-repeat 6px 50% } DIV.mapTabs UL LI A.inprogress:hover { BACKGROUND-COLOR: #f6f6f6 } DIV.mapTabs UL LI A.complete:hover { BACKGROUND-COLOR: #f6f6f6 } DIV.mapTabs UL LI DIV { PADDING-RIGHT: 12px; DISPLAY: none; PADDING-LEFT: 12px; PADDING-BOTTOM: = 7px; PADDING-TOP: 7px } DIV.mapTabs UL LI.saveTab A { DISPLAY: none } UL.containerTabs LI.saveTab IMG { DISPLAY: none } DIV.mapTabs UL LI.saveFadeIn { FILTER: alpha(opacity=3D0); opacity: 0 } DIV.mapTabs UL LI.saveTab DIV { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; FONT-WEIGHT: = bold; BACKGROUND: url(images/tab_receipt_back.gif) #44b10e repeat-x = center bottom; PADDING-BOTTOM: 6px; COLOR: white; PADDING-TOP: 5px } DIV.mapHelp { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 0px; MARGIN: -1px 0px 0px; PADDING-TOP: 4px } UL.setStatus { BORDER-RIGHT: #eee 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #eee 1px = solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 15px 0pt 9px = 30px; BORDER-LEFT: #eee 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #eee = 1px solid; LIST-STYLE-TYPE: none } UL.setStatus LI { FONT-SIZE: 95%; MARGIN: 0px 6px 0px 0px } UL.setStatus LI INPUT { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } UL.setStatus LI LABEL { PADDING-LEFT: 22px; BACKGROUND: url(images/workflow_detail_active.gif) = no-repeat 1px 0px } UL.setStatus LI LABEL.complete { PADDING-LEFT: 22px; BACKGROUND: = url(images/workflow_detail_complete.gif) no-repeat 1px 0px } FORM.mapCanvasForm DIV.steptitle { PADDING-LEFT: 0.8em; MARGIN: 15px 0px 0px 18px } FORM.mapCanvasForm H3.steptitle { PADDING-LEFT: 0.8em; MARGIN: 15px 0px 0px 18px } BODY.ineditmode { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 6px; BACKGROUND-COLOR: #cdcdcd } BODY.noteditmode { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 6px } BODY.ineditmode { BACKGROUND-IMAGE: url(images/readback.png) } BODY.ineditmode { BACKGROUND-IMAGE: url(images/readback.png) } BODY.ineditmode #editModeButton { BACKGROUND-IMAGE: url(images/readback.png); BACKGROUND-COLOR: #cdcdcd } BODY.ineditmode DIV.listCm { BORDER-RIGHT: #666 3px solid; BORDER-TOP: #666 3px solid; BORDER-LEFT: = #666 3px solid; BORDER-BOTTOM: #666 3px solid; BACKGROUND-COLOR: #666; = -moz-border-radius: 9px; -webkit-border-radius: 9px } BODY.ineditmode DIV#editmodeWrapper { BORDER-RIGHT: #666 3px solid; BORDER-TOP: #666 3px solid; BORDER-LEFT: = #666 3px solid; BORDER-BOTTOM: #666 3px solid; BACKGROUND-COLOR: #666; = -moz-border-radius: 9px; -webkit-border-radius: 9px } BODY.ineditmode DIV.listCm { BACKGROUND-IMAGE: none; MARGIN-BOTTOM: 9px; PADDING-BOTTOM: 0px } BODY.ineditmode DIV#editodeWrapper { BACKGROUND-IMAGE: none; MARGIN-BOTTOM: 9px; PADDING-BOTTOM: 0px } BODY.ineditmode DIV.landing DIV#editmodeWrapper { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: = 0px } .actionBar { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; Z-INDEX: 110; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 6px; MARGIN: -1px 0px 0px; PADDING-TOP: 4px; = BORDER-BOTTOM: #eedd99 1px solid; ZOOM: 1 } .actionBar UL { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px; ZOOM: 1; LIST-STYLE-TYPE: none } .actionbar_portal UL { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px; ZOOM: 1; LIST-STYLE-TYPE: none } .actionBar UL LI { PADDING-RIGHT: 1px; FONT-WEIGHT: bold; Z-INDEX: 111; FLOAT: left; = MARGIN: 2px 0px 0px 6px; ZOOM: 1; POSITION: relative } .actionBar UL LI.mainButton { PADDING-RIGHT: 1px; FONT-WEIGHT: bold; Z-INDEX: 111; FLOAT: left; = MARGIN: 2px 0px 0px 6px; ZOOM: 1; POSITION: relative } .actionbar_portal UL LI { PADDING-RIGHT: 1px; FONT-WEIGHT: bold; Z-INDEX: 111; FLOAT: left; = MARGIN: 2px 0px 0px 6px; ZOOM: 1; POSITION: relative } .actionBar UL LI:hover { Z-INDEX: 1001 } .actionBar UL LI.mainButton:hover .actionbar_portal UL LI:hover { Z-INDEX: 1001 } #primaryButton { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } .actionBar UL LI A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } .actionBar UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } .actionbar_portal UL LI A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } DIV.tabPreview DIV.actionBar UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } .navPalette DIV.actionBarMicro UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } .portlet DIV.actionBarMicro UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { CURSOR: default } .actionBar UL LI.sub { =09 } .actionBar UL LI A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .actionBar UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .actionBar UL LI.mainButton A:focus { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .actionbar_portal UL LI A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .navPalette DIV.actionBarMicro UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .navPalette DIV.actionBarMicro UL LI.mainButton A:focus { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .portlet DIV.actionBarMicro UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .actionBar UL LI.sub A.other { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #344a6c 1px solid; PADDING-LEFT: 9px; BACKGROUND: = url(images/action_button_back.gif) #888 repeat-x left top; = PADDING-BOTTOM: 2px; BORDER-LEFT: #344a6c 1px solid; PADDING-TOP: 2px; = BORDER-BOTTOM: #344a6c 1px solid; TEXT-DECORATION: none } .actionBar UL LI.sub A.other:hover { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #666; = BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } .actionBar UL LI A IMG { MARGIN: -2px -4px 0px 4px; VERTICAL-ALIGN: middle } .pageTitle H1 A.secondaryButton IMG { MARGIN: -2px -4px 0px 4px; VERTICAL-ALIGN: middle } .actionBar UL LI.secondaryButton A IMG { MARGIN: -2px -4px 0px } .actionBar UL LI.sub A IMG { MARGIN: -2px -4px 0px 4px } .actionBar UL LI.sub A IMG { MARGIN: -2px -4px 0px 4px } .actionBar UL LI.search { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 2px = 6px 0px 0px; PADDING-TOP: 0px } .actionBar UL LI.secondaryButton { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 2px = 6px 0px 0px; PADDING-TOP: 0px } .actionbar_portal UL LI.search { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 2px = 6px 0px 0px; PADDING-TOP: 0px } #secondaryButton { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } .actionBar UL LI.search A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } .actionBar UL LI.secondaryButton A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } .actionBar_portal UL LI.search A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A:hover { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } .pageTitle H1 A.secondaryButton { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } .actionBar UL LI.secondaryButton DIV.action_bar_paging { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-SIZE: 105%; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } .actionBar UL LI.secondaryButton DIV.action_bar_paging A { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } .actionBar UL LI.secondaryButton DIV.action_bar_paging A:hover { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } .actionBar UL LI.secondaryButton DIV.action_bar_paging A IMG { MARGIN: 0px } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A:hover { CURSOR: default } .actionBar UL LI.buttontotab { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; Z-INDEX: 100; FLOAT: right; PADDING-BOTTOM: 0px; = MARGIN: 0px 6px 0px 0px; BOTTOM: 0px; PADDING-TOP: 0px; TOP: 7px } .actionBar UL LI.secondaryButtonTab { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; Z-INDEX: 100; FLOAT: right; PADDING-BOTTOM: 0px; = MARGIN: 0px 6px 0px 0px; BOTTOM: 0px; PADDING-TOP: 0px; TOP: 7px } .actionBar UL LI.buttontotab A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #d7bb66 1px solid; PADDING-LEFT: 9px; FONT-SIZE: 100%; Z-INDEX: 100; = BACKGROUND: #eddca5; PADDING-BOTTOM: 3px; BORDER-LEFT: #d7bb66 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: medium none; = TEXT-DECORATION: none } .actionBar UL LI.buttontotab A:hover { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #d7bb66 1px solid; PADDING-LEFT: 9px; FONT-SIZE: 100%; Z-INDEX: 100; = BACKGROUND: #eddca5; PADDING-BOTTOM: 3px; BORDER-LEFT: #d7bb66 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: medium none; = TEXT-DECORATION: none } .actionBar UL LI.secondaryButtonTab A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #d7bb66 1px solid; PADDING-LEFT: 9px; FONT-SIZE: 100%; Z-INDEX: 100; = BACKGROUND: #eddca5; PADDING-BOTTOM: 3px; BORDER-LEFT: #d7bb66 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: medium none; = TEXT-DECORATION: none } .actionBar UL LI.secondaryButtonTab A:hover { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #d7bb66 1px solid; PADDING-LEFT: 9px; FONT-SIZE: 100%; Z-INDEX: 100; = BACKGROUND: #eddca5; PADDING-BOTTOM: 3px; BORDER-LEFT: #d7bb66 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: medium none; = TEXT-DECORATION: none } .actionBar UL LI.secondaryButton A.image { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } .actionBar UL LI.search A:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .actionBar_portal UL LI.search A:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .actionBar UL LI.secondaryButton A:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .actionBar UL LI.secondaryButton A:focus { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .actionBar_portal UL LI.secondaryButton A:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .pageTitle A.secondaryButton:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .pageTitle H1 A.secondaryButton { DISPLAY: inline; FONT-WEIGHT: normal; FONT-SIZE: 65% } .reverseButtons UL LI.mainButton { FLOAT: right } .reverseButtons UL LI.secondaryButton { FLOAT: left } .navPalette DIV.actionBarMicro { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 4px; PADDING-TOP: 0px } .portlet DIV.actionBarMicro { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 4px; PADDING-TOP: 0px } .portlet DIV.actionBarMicro { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; MARGIN: = 0px; PADDING-TOP: 4px } .navPalette DIV.actionBarMicro UL { =09 } .portlet DIV.actionBarMicro UL { MARGIN: 2px } DIV.navPalette DIV.actionBarMicro UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 1px 0px 1px 3px; PADDING-TOP: 0px } DIV.navPalette DIV.buttons DIV.actionBarMicro UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 1px 0px 1px 3px; PADDING-TOP: 0px } .portlet DIV.actionBarMicro UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 1px 0px 1px 3px; PADDING-TOP: 0px } .navPalette DIV.actionBarMicro UL LI.mainButton { Z-INDEX: 1000; MARGIN: 0px 3px 0px 0px; POSITION: relative } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton { Z-INDEX: 1000; MARGIN: 0px 3px 0px 0px; POSITION: relative } .portlet DIV.actionBarMicro UL LI.mainButton { Z-INDEX: 1000; MARGIN: 0px 3px 0px 0px; POSITION: relative } DIV.navPalette DIV.actionBarMicro UL LI.secondaryButton { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 10; FLOAT: right; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: relative } DIV.navPalette DIV.buttons DIV.actionBarMicro UL LI.secondaryButton { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 10; FLOAT: right; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: relative } DIV.navPalette DIV.actionBarMicro UL LI A { BORDER-RIGHT: #fff1c5 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #fff1c5 1px solid; DISPLAY: inline-block; PADDING-LEFT: 1px; BACKGROUND: = none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: = #fff1c5 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #fff1c5 1px solid } .navPalette DIV.buttons DIV.actionBarMicro UL LI A { BORDER-RIGHT: #fff1c5 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #fff1c5 1px solid; DISPLAY: inline-block; PADDING-LEFT: 1px; BACKGROUND: = none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: = #fff1c5 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #fff1c5 1px solid } .portlet DIV.actionBarMicro UL LI A { BORDER-RIGHT: #fff1c5 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #fff1c5 1px solid; DISPLAY: inline-block; PADDING-LEFT: 1px; BACKGROUND: = none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: = #fff1c5 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #fff1c5 1px solid } .navPalette DIV.actionBarMicro UL LI A:hover { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .navPalette DIV.buttons DIV.actionBarMicro UL LI A:hover { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .portlet DIV.actionBarMicro UL LI A:hover { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .navPalette DIV.actionBarMicro UL LI.mainButton A { BORDER-TOP-WIDTH: 1px; PADDING-RIGHT: 1px; BACKGROUND-POSITION: 0px = 30%; DISPLAY: inline-block; PADDING-LEFT: 1px; BORDER-LEFT-WIDTH: 1px; = FONT-SIZE: 90%; BACKGROUND-IMAGE: none; BORDER-BOTTOM-WIDTH: 1px; = PADDING-BOTTOM: 1px; COLOR: #000; PADDING-TOP: 1px; BORDER-RIGHT-WIDTH: = 1px } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton A { BORDER-TOP-WIDTH: 1px; PADDING-RIGHT: 1px; BACKGROUND-POSITION: 0px = 30%; DISPLAY: inline-block; PADDING-LEFT: 1px; BORDER-LEFT-WIDTH: 1px; = FONT-SIZE: 90%; BACKGROUND-IMAGE: none; BORDER-BOTTOM-WIDTH: 1px; = PADDING-BOTTOM: 1px; COLOR: #000; PADDING-TOP: 1px; BORDER-RIGHT-WIDTH: = 1px } .portlet DIV.actionBarMicro UL LI.mainButton A { BORDER-TOP-WIDTH: 1px; PADDING-RIGHT: 1px; BACKGROUND-POSITION: 0px = 30%; DISPLAY: inline-block; PADDING-LEFT: 1px; BORDER-LEFT-WIDTH: 1px; = FONT-SIZE: 90%; BACKGROUND-IMAGE: none; BORDER-BOTTOM-WIDTH: 1px; = PADDING-BOTTOM: 1px; COLOR: #000; PADDING-TOP: 1px; BORDER-RIGHT-WIDTH: = 1px } .portlet DIV.actionBarMicro UL LI.mainButton A { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px; TEXT-DECORATION: none } .navPalette DIV.actionBarMicro UL LI.mainButton A:hover { =09 } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton A:hover { =09 } .portlet DIV.actionBarMicro UL LI.mainButton A:hover { =09 } .portlet DIV.actionBarMicro UL LI.mainButton A:hover { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px; TEXT-DECORATION: none } .navPalette DIV.actionBarMicro UL LI.active A { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .navPalette DIV.buttons DIV.actionBarMicro UL LI.active A { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .navPalette DIV.actionBarMicro UL LI.active A.options { BORDER-RIGHT: #ffcc00 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: = #ffcc00 1px solid; BACKGROUND: url(images/more_options.gif) #fff = no-repeat 97% center; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: = #ffcc00 1px solid } DIV.portal DIV.actionBar { MARGIN-TOP: -1px } DIV.portal DIV.actionBar { MARGIN-TOP: 0px } DIV.tabbedPane DIV.actionBar { MARGIN-TOP: 0px } .tableOverflowControl { CLEAR: both; OVERFLOW-X: auto; PADDING-BOTTOM: 1px; WIDTH: 100% } TABLE.inventory { CLEAR: both; PADDING-RIGHT: 0px; OVERFLOW-Y: visible; PADDING-LEFT: = 0px; FONT-SIZE: 100%; BACKGROUND: #fff; OVERFLOW-X: auto; = PADDING-BOTTOM: 1px; MARGIN: 0px; WIDTH: 100%; PADDING-TOP: 0px; ZOOM: = 1; BORDER-COLLAPSE: collapse; HEIGHT: 1%; border-expand: 1px 0 } TABLE.inventory THEAD { BORDER-TOP: #ccc 1px solid; BACKGROUND: #ededed } TABLE.splashTable THEAD { BORDER-TOP: #ccc 1px solid; BACKGROUND: #ededed } TABLE.inventory THEAD TR TH { PADDING-RIGHT: 4px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 4px; = FONT-SIZE: 85%; PADDING-BOTTOM: 5px; BORDER-LEFT: #ccc 1px solid; COLOR: = #999; PADDING-TOP: 5px; BORDER-BOTTOM: #ccc 1px solid; ZOOM: 1; = TEXT-ALIGN: left } TABLE.splashTable THEAD TR TH { PADDING-RIGHT: 4px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 4px; = FONT-SIZE: 85%; PADDING-BOTTOM: 5px; BORDER-LEFT: #ccc 1px solid; COLOR: = #999; PADDING-TOP: 5px; BORDER-BOTTOM: #ccc 1px solid; ZOOM: 1; = TEXT-ALIGN: left } TABLE.inventory THEAD TR TH:first-child { BORDER-LEFT: medium none } TABLE.splashTable THEAD TR TH:first-child { BORDER-LEFT: medium none } TABLE.inventory THEAD TR TH:unknown { BORDER-RIGHT: medium none } TABLE.splashTable THEAD TR TH:unknown { BORDER-RIGHT: medium none } TABLE.inventory TBODY { BORDER-BOTTOM: #eee 2px solid; HEIGHT: 1% } TABLE.inventory TBODY TR { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px; BORDER-BOTTOM: #eee 1px solid; ZOOM: 1; HEIGHT: 1% } TABLE.inventory TBODY TR TD { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 95%; PADDING-BOTTOM: = 3px; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: #eee 1px = solid; ZOOM: 1; WHITE-SPACE: normal; HEIGHT: 1%; WORD-WRAP: break-word } TABLE.inventory TBODY TR TH { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 95%; PADDING-BOTTOM: = 3px; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: #eee 1px = solid; ZOOM: 1; WHITE-SPACE: normal; HEIGHT: 1%; WORD-WRAP: break-word } TABLE.reorder TBODY TR TD { BORDER-BOTTOM: 0px } TABLE.reorder TBODY TR TH { BORDER-BOTTOM: 0px } TABLE.inventory TBODY TR TH { FONT-WEIGHT: normal; TEXT-ALIGN: left } TABLE.inventory TBODY TR TD:first-child { BORDER-LEFT: medium none } TABLE.inventory TBODY TR.gray TD { BACKGROUND: #f0f0f0 } TABLE.inventory TBODY TR.gray TH { BACKGROUND: #f0f0f0 } TABLE.inventory THEAD TR TH.sorted { BACKGROUND: #ccc } TH.sorted { BACKGROUND: #ccc } TABLE.splashTable THEAD TR TH.sorted { BACKGROUND: #ccc } TABLE.inventory TBODY TR TD.sorted { BACKGROUND: #eee } TABLE.inventory THEAD TR TH.sorted A { COLOR: #000! important } TABLE.sortable TH A { COLOR: #666; MARGIN-RIGHT: 9px } TABLE.sortable TBODY TH A { COLOR: #003366; WORD-BREAK: normal; MARGIN-RIGHT: 9px; WORD-WRAP: = break-word } TABLE.sortable TH A:hover { TEXT-DECORATION: underline } TABLE.sortable A.sortheader { PADDING-RIGHT: 17px; DISPLAY: block; FONT-WEIGHT: bold; MARGIN-RIGHT: = 0px; POSITION: relative; TEXT-DECORATION: underline } TABLE.sortable SPAN.sortarrow { FONT-WEIGHT: bold; RIGHT: 0px; LEFT: auto; COLOR: #ffff00; POSITION: = absolute; TOP: 0px; TEXT-DECORATION: none } TR.high { BACKGROUND: #fff1c5 } TABLE.inventory TD.smallCell SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.inventory TBODY SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.inventory TBODY SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.attachments TD.smallCell SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.attachments TBODY SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.attachments TBODY SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.inventory TR:hover TD.smallCell SPAN.reorder { opacity: 1 } TABLE.inventory TBODY TR:hover TD.smallCell SPAN.reorder:hover { opacity: 1 } TABLE.attachments TR:hover TD.smallCell SPAN.reorder { opacity: 1 } TABLE.attachments TBODY TR:hover TD.smallCell SPAN.reorder:hover { opacity: 1 } DIV.checked { =09 } DIV.checked_top { =09 } TABLE.inventory TBODY UL.subtabs { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } TABLE.inventory TBODY UL.subtabs LI { PADDING-RIGHT: 2px; PADDING-LEFT: 20px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px; POSITION: relative } DIV.rumble { PADDING-RIGHT: 7px; PADDING-LEFT: 34px; BACKGROUND: = url(images/checked_items.gif) #fff7de no-repeat 8px -10px; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 6px; PADDING-TOP: 5px } DIV.rumble_top { PADDING-RIGHT: 7px; PADDING-LEFT: 34px; BACKGROUND: = url(images/checked_items_top.gif) #fff7de no-repeat 8px 6px; = PADDING-BOTTOM: 5px; MARGIN: 24px 0px 0px; PADDING-TOP: 5px; HEIGHT: = 0.5em } DIV.noBatchActions { BACKGROUND-IMAGE: none! important } DIV.rumbleBuildList { BORDER-TOP: #eee 2px solid; MARGIN: 0px 0px 0px 1.4em } DIV.rumbleBuildListTop { BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN: 10px 0px = -10px 1.4em; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } DIV.rumbleBuildList UL LI { Z-INDEX: 1000 } DIV.rumbleBuildListTop UL LI { Z-INDEX: 1000 } DIV.rumble_top UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; ZOOM: 1; LIST-STYLE-TYPE: none } DIV.rumble UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; ZOOM: 1; LIST-STYLE-TYPE: none } DIV.rumble_top UL LI { FLOAT: left; MARGIN: 0px 3px 0px 0px } DIV.rumble UL LI { FLOAT: left; MARGIN: 0px 3px 0px 0px } DIV.rumble_top UL LI.primary { FLOAT: left; MARGIN: 0px 3px 0px 0px } DIV.rumble UL LI.primary { FLOAT: left; MARGIN: 0px 3px 0px 0px } DIV.rumble_top UL LI.sub:hover { Z-INDEX: 999 } DIV.rumble UL LI.sub:hover { Z-INDEX: 998 } DIV.rumble_top UL LI.secondary { FLOAT: right; MARGIN: 0px 0px 0px 3px; POSITION: relative } DIV.rumble UL LI.secondary { FLOAT: right; MARGIN: 0px 0px 0px 3px; POSITION: relative } DIV.rumble A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble_top A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble UL LI.primary A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble_top UL LI.primary A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble UL LI.secondary A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble_top UL LI.secondary A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble UL LI.secondary A { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #fff1c5; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444444; = BORDER-BOTTOM: #d7bb66 1px solid } DIV.rumble_top UL LI.secondary A { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #fff1c5; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444444; = BORDER-BOTTOM: #d7bb66 1px solid } DIV.rumble_top A { =09 } DIV.rumble A:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 95%; BACKGROUND: = url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; COLOR: #000; = PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid; TEXT-DECORATION: = none } DIV.rumble_top A:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 95%; BACKGROUND: = url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; COLOR: #000; = PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid; TEXT-DECORATION: = none } DIV.rumble LI.multiple LABEL { DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 95%; FLOAT: left; MARGIN: = 0px 3px 0px 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.rumble_top LI.multiple LABEL { DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 95%; FLOAT: left; MARGIN: = 0px 3px 0px 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.rumble LI#addTagActionItem_bottom LABEL { DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 95%; FLOAT: left; MARGIN: = 0px 3px 0px 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.rumble_top LI#addTagActionItem_top LABEL { DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 95%; FLOAT: left; MARGIN: = 0px 3px 0px 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.rumble LI.multiple INPUT { FONT-SIZE: 95%; MARGIN-LEFT: 3px; VERTICAL-ALIGN: middle; WIDTH: 8em } DIV.rumble_top LI.multiple INPUT { FONT-SIZE: 95%; MARGIN-LEFT: 3px; VERTICAL-ALIGN: middle; WIDTH: 8em } DIV.rumble LI#addTagActionItem_bottom INPUT { FONT-SIZE: 95%; MARGIN-LEFT: 3px; VERTICAL-ALIGN: middle; WIDTH: 8em } DIV.rumble_top LI#addTagActionItem_top INPUT { FONT-SIZE: 95%; MARGIN-LEFT: 3px; VERTICAL-ALIGN: middle; WIDTH: 8em } DIV.rumble LI.multiple A { FLOAT: left; MARGIN: 0px 0px 0px 3px } DIV.rumble_top LI.multiple A { FLOAT: left; MARGIN: 0px 0px 0px 3px } DIV.rumble LI#addTagActionItem_bottom A { FLOAT: left; MARGIN: 0px 0px 0px 3px } DIV.rumble_top LI#addTagActionItem_top A { FLOAT: left; MARGIN: 0px 0px 0px 3px } DIV.rumble_top UL LI.inventory_paging { PADDING-LEFT: 9px; FONT-SIZE: 95%; FLOAT: right; MARGIN-LEFT: 9px; = VERTICAL-ALIGN: middle } DIV.rumble UL LI.inventory_paging { PADDING-LEFT: 9px; FONT-SIZE: 95%; FLOAT: right; MARGIN-LEFT: 9px; = VERTICAL-ALIGN: middle } LI.inventory_paging INPUT { BORDER-RIGHT: #edd999 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #edd999 1px solid; DISPLAY: inline-block; PADDING-LEFT: 0px; = FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: #ffffff; PADDING-BOTTOM: = 0px; VERTICAL-ALIGN: middle; BORDER-LEFT: #edd999 1px solid; WIDTH: = 1.5em; PADDING-TOP: 0px; BORDER-BOTTOM: #edd999 1px solid; TEXT-ALIGN: = center } DIV.rumble_top UL LI.inventory_paging A { BORDER-RIGHT: #e6d8b1 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 1px; BACKGROUND: #f5e7bd; = PADDING-BOTTOM: 2px; BORDER-LEFT: #edd999 1px solid; COLOR: #666666; = PADDING-TOP: 1px; BORDER-BOTTOM: #e6d8b1 1px solid; TOP: 0px } DIV.rumble UL LI.inventory_paging A { BORDER-RIGHT: #e6d8b1 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 1px; BACKGROUND: #f5e7bd; = PADDING-BOTTOM: 2px; BORDER-LEFT: #edd999 1px solid; COLOR: #666666; = PADDING-TOP: 1px; BORDER-BOTTOM: #e6d8b1 1px solid; TOP: 0px } DIV.rumble_top UL LI.inventory_paging A:hover { BORDER-RIGHT: #e6d8b1 1px solid; BORDER-TOP: #edd999 1px solid; = BACKGROUND: url(images/actionsearch_button_back.gif) #fff7de repeat-x; = BORDER-LEFT: #edd999 1px solid; BORDER-BOTTOM: #e6d8b1 1px solid } DIV.rumble UL LI.inventory_paging A:hover { BORDER-RIGHT: #e6d8b1 1px solid; BORDER-TOP: #edd999 1px solid; = BACKGROUND: url(images/actionsearch_button_back.gif) #fff7de repeat-x; = BORDER-LEFT: #edd999 1px solid; BORDER-BOTTOM: #e6d8b1 1px solid } DIV.rumble_top UL LI.inventory_paging DIV { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble_top UL LI.inventory_paging A { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble_top UL LI.inventory_paging IMG { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble UL LI.inventory_paging DIV { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble UL LI.inventory_paging A { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble UL LI.inventory_paging IMG { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble UL LI.inventory_paging SPAN { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble_top UL LI.inventory_paging IMG { MARGIN: 2px 2px 3px } DIV.rumble UL LI.inventory_paging IMG { MARGIN: 2px 2px 3px } DIV.rumble_top UL LI.inventory_paging A IMG { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.rumble UL LI.inventory_paging A IMG { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.rumble_top UL LI.inventory_paging A.inactive { FILTER: alpha(opacity=3D40); opacity: .4 } DIV.rumble UL LI.inventory_paging A.inactive { FILTER: alpha(opacity=3D40); opacity: .4 } DIV.rumble_top UL LI.secondaryControl { FLOAT: right } DIV.rumble UL LI.secondaryControl { FLOAT: right } DIV.rumble_top UL LI.secondaryControl A { BORDER-RIGHT: #e6d8b1 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 5px; BACKGROUND: #f5e7bd; = PADDING-BOTTOM: 2px; BORDER-LEFT: #edd999 1px solid; COLOR: #666666; = PADDING-TOP: 1px; BORDER-BOTTOM: #e6d8b1 1px solid; TOP: 1px } DIV.rumble UL LI.secondaryControl A { BORDER-RIGHT: #e6d8b1 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 5px; BACKGROUND: #f5e7bd; = PADDING-BOTTOM: 2px; BORDER-LEFT: #edd999 1px solid; COLOR: #666666; = PADDING-TOP: 1px; BORDER-BOTTOM: #e6d8b1 1px solid; TOP: 1px } DIV.rumble_top UL LI.secondaryControl A:hover { BORDER-RIGHT: #e6d8b1 1px solid; BORDER-TOP: #edd999 1px solid; = BACKGROUND: url(images/actionsearch_button_back.gif) #fff7de repeat-x; = BORDER-LEFT: #edd999 1px solid; BORDER-BOTTOM: #e6d8b1 1px solid } DIV.rumble UL LI.secondaryControl A:hover { BORDER-RIGHT: #e6d8b1 1px solid; BORDER-TOP: #edd999 1px solid; = BACKGROUND: url(images/actionsearch_button_back.gif) #fff7de repeat-x; = BORDER-LEFT: #edd999 1px solid; BORDER-BOTTOM: #e6d8b1 1px solid } .rumble UL LI.secondary A { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BORDER-LEFT: #d7bb66 1px solid; BORDER-BOTTOM: #d7bb66 1px solid; = BACKGROUND-COLOR: #fff1c5 } .rumble_top UL LI.secondary A { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BORDER-LEFT: #d7bb66 1px solid; BORDER-BOTTOM: #d7bb66 1px solid; = BACKGROUND-COLOR: #fff1c5 } DIV.extraData { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; COLOR: #666; PADDING-TOP: 3px } DIV.extraData SPAN { DISPLAY: inline; FONT-WEIGHT: bold; FONT-SIZE: 95% } DIV.extraData P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } TABLE.splashTable DIV.extraData { FONT-WEIGHT: normal; FONT-SIZE: 100% } TABLE.attachments { MARGIN: 0px 0px 12px; WIDTH: 100%; BORDER-COLLAPSE: collapse } TABLE.attachments THEAD TR { COLOR: #999; BORDER-BOTTOM: #ccc 2px solid } TABLE.attachments THEAD TR TH { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; BORDER-BOTTOM: #ccc 2px solid; = TEXT-ALIGN: left } TABLE.attachments TBODY TR { BORDER-TOP: #eee 1px solid } TABLE.attachments TBODY TR TH { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; TEXT-ALIGN: left } TABLE.attachments TBODY TR TD { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; TEXT-ALIGN: left } TABLE.attachments TBODY TR TH { COLOR: #000; TEXT-ALIGN: left } TABLE.attachments TBODY TR.removeCell { BACKGROUND: #ededed; COLOR: #777 } TABLE.attachments TBODY TR.removeCell { BACKGROUND: #ededed; COLOR: #777 } TABLE.attachments TBODY TR.removeCell TD { COLOR: #999 } TABLE.attachments TBODY TR.removeCell TH { COLOR: #999 } TABLE.attachments TBODY TR.removeCell TD A IMG { FILTER: alpha(opacity=3D40); opacity: 0.4 } TABLE.attachments TH.smallCell { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 1%; = PADDING-TOP: 0px; WHITE-SPACE: nowrap } TABLE.attachments TD.smallCell { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 1%; = PADDING-TOP: 0px; WHITE-SPACE: nowrap } TABLE.attachments TBODY TR.inEditMode { BORDER-RIGHT: #444 2px solid; BORDER-TOP: #444 2px solid; BACKGROUND: = #ededed; BORDER-LEFT: #444 2px solid; BORDER-BOTTOM: #444 2px solid; = -moz-border-radius: 0 } TABLE.attachments TBODY TR.inEditMode TD { BORDER-TOP: #444 2px solid; -moz-border-radius: 0 } TABLE.attachments TBODY TR.inEditMode TH { BORDER-TOP: #444 2px solid; -moz-border-radius: 0 } TABLE.stepItems-reorder { FONT-SIZE: 85%; MARGIN-BOTTOM: 0px; ZOOM: 1; BORDER-COLLAPSE: collapse; = border-spacing: 1px 0; border-separate: 1px 0 } TABLE.gbColumns { FONT-SIZE: 90%; ZOOM: 1 } TABLE.stepItems-reorder TD { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px } TABLE.stepItems-reorder TH { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px } TABLE.stepItems-reorder THEAD TR TH { BACKGROUND: #fff; COLOR: #999; BORDER-BOTTOM: #ccc 1px solid; = TEXT-ALIGN: left } TABLE.gbColumns THEAD TR TH { BACKGROUND: #bbb; COLOR: #fff; BORDER-BOTTOM: #999 2px solid } TABLE.gbColumns THEAD TR TD { BACKGROUND: #bbb; COLOR: #fff; BORDER-BOTTOM: #999 2px solid } TABLE.gbColumns THEAD TR TH.sorted { BORDER-RIGHT: #777 1px solid; BACKGROUND: #999; BORDER-LEFT: #777 1px = solid } TABLE.gbColumns THEAD TR TH A { COLOR: #fff } TABLE.gbColumns THEAD TR TD A { COLOR: #fff } TABLE.stepItems-reorder THEAD TR.lowerHeader TH { COLOR: #333; BORDER-BOTTOM: #ccc 2px solid } TABLE.stepItems-reorder TBODY TR TD.shaded { BORDER-TOP: #ccc 1px solid; BACKGROUND: #f6f6f6 } TABLE.stepItems-reorder THEAD TR TH.shaded { BORDER-TOP: #ccc 1px solid; BACKGROUND: #f6f6f6 } TABLE.stepItems-reorder TR TH.clearCell { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; = BORDER-BOTTOM: 0px } TABLE.stepItems-reorder TBODY { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #999 2px solid; ZOOM: 1; HEIGHT: = 1px } TABLE.stepItems-reorder TBODY TR TD { BORDER-TOP: #ccc 1px solid; BACKGROUND: #fff; ZOOM: 1; HEIGHT: 1% } TABLE.stepItems-reorder THEAD TR TH.shaded { BORDER-TOP: 0px } TABLE.stepItems-reorder THEAD TR.upperHeader TH { BORDER-TOP: 0px } TABLE.stepItems-reorder TBODY TR { BACKGROUND: #ccc } TABLE.stepItems-reorder TBODY TR:first-child TD { BORDER-TOP: 0px } TABLE.stepItems-reorder TBODY TR:first-child TH { BORDER-TOP: 0px } TABLE.stepItems-reorder THEAD TR:first-child { BORDER-TOP: 0px } TABLE.stepItems-reorder TBODY TR TD.dragCell { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; VERTICAL-ALIGN: top; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; TEXT-ALIGN: right } TABLE.stepItems-reorder TBODY TR TD SPAN.reorder { BORDER-RIGHT: #ccc 1px solid; DISPLAY: block; RIGHT: 0px; BACKGROUND: = url(images/cm_reorder_updown.gif) #ededed no-repeat center center; = FILTER: alpha(opacity=3D100); LEFT: auto; WIDTH: 18px! important; = CURSOR: move; POSITION: relative; TOP: 2px; HEIGHT: 20px; opacity: 1; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: = 3px } TABLE.gbColumns TBODY TR TD SPAN.reorder { BACKGROUND: url(images/cm_reorder.gif) #ededed no-repeat center center } TABLE.stepItems-reorder TBODY TR.frozenbar TD SPAN.reorder { TOP: 1px } TABLE.stepItems-reorder TBODY TR TD INPUT { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 2px; = VERTICAL-ALIGN: middle; WIDTH: 95%; PADDING-TOP: 2px } TABLE.stepItems-reorder TBODY TR TD.points INPUT { WIDTH: 3em } TABLE.stepItems-reorder TBODY TR TD.entry INPUT[type=3Dtext] { WIDTH: 90% } TABLE.stepItems-reorder TBODY TR TD.entry INPUT[type=3Dcheckbox] { WIDTH: auto } TABLE.stepItems-reorder TBODY TR TD INPUT[type=3Dcheckbox] { MARGIN: 0px 4px 0px 0px } TABLE.gbColumns TBODY TR TD INPUT[type=3Dcheckbox] { MARGIN: 0px; WIDTH: auto } TABLE.gbColumns TBODY TR TD { PADDING-RIGHT: 8px; PADDING-LEFT: 8px; PADDING-BOTTOM: 4px; = VERTICAL-ALIGN: top; PADDING-TOP: 4px } TABLE.gbColumns TBODY TR.frozenbar TD { PADDING-RIGHT: 8px; BORDER-TOP: 0px; PADDING-LEFT: 8px; FONT-SIZE: 95%; = BACKGROUND: #ccc; PADDING-BOTTOM: 4px; COLOR: #444; PADDING-TOP: 3px } TABLE.gbColumns TFOOT TR.lastRow TD { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #999; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = LINE-HEIGHT: 0; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; HEIGHT: 2px } TABLE.gbColumns TBODY TR.frozen TD { BACKGROUND: #ededed } TABLE.gbColumns THEAD TR TD.checkBox { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; PADDING-BOTTOM: 1px; = PADDING-TOP: 3px; TEXT-ALIGN: center } TABLE.gbColumns TBODY TR TD.checkBox { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; PADDING-BOTTOM: 1px; = PADDING-TOP: 3px; TEXT-ALIGN: center } DIV.areaHighlight TABLE.gbColumns THEAD TR TD.clear { BACKGROUND: #f9f9f9 } TD.clear { BACKGROUND: #f9f9f9 } DIV.areaHighlight TABLE.gbColumns TBODY TR.frozenbar TD.dragCell { BACKGROUND: #f9f9f9 } DIV.areaHighlight TABLE.gbColumns TBODY TR TD.dragCell { BACKGROUND: #f9f9f9 } DIV.areaHighlight TABLE.gbColumns TBODY TR.frozen TD.dragCell { BACKGROUND: #f9f9f9 } DIV.areaHighlight TABLE.gbColumns TFOOT TR.lastRow TD.clear { BACKGROUND: #f9f9f9 } TABLE.gbColumns TBODY TR.frozenbar TD.dragCell { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = PADDING-BOTTOM: 0px! important; PADDING-TOP: 0px! important } TABLE.gbColumns TBODY TR.placeholder TD { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; LINE-HEIGHT: 0; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px; HEIGHT: 1px } TABLE.gbColumns TBODY TR.placeholder TD.clear { BACKGROUND: #f9f9f9 } TABLE.gbColumns TBODY TR TD.dragCell { OVERFLOW: visible; WIDTH: 4%; POSITION: relative } TABLE.gbColumns THEAD TR TD.clear { OVERFLOW: visible; WIDTH: 4%; POSITION: relative } UL.dragableHighlight LI TABLE.gbColumns THEAD TR TD.clear { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } UL.dragableHighlight LI TD.clear { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } UL.dragableHighlight LI TABLE.gbColumns TBODY TR.frozenbar TD.dragCell { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } UL.dragableHighlight LI TABLE.gbColumns TBODY TR TD.dragCell { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } UL.dragableHighlight LI TABLE.gbColumns TBODY TR.frozen TD.dragCell { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } UL.dragableHighlight LI TABLE.gbColumns TFOOT TR.lastRow TD.clear { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } TABLE.gbColumns THEAD TR TD.clear { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } TR.rowdrag { Z-INDEX: 1; BACKGROUND: #ccc } .insertImg { Z-INDEX: 20; POSITION: relative; TOP: 12px } .insertImgUp { Z-INDEX: 20; RIGHT: -10px; POSITION: absolute } TABLE.inventory TBODY TR TD.smallCell { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; WIDTH: 1%; = PADDING-TOP: 3px; WHITE-SPACE: nowrap } TABLE.inventory THEAD TR TH.smallCell { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; WIDTH: 1%; = PADDING-TOP: 3px; WHITE-SPACE: nowrap } .clickOrder { DISPLAY: none } TABLE.inventory TBODY TR TD.clickOrder { BORDER-LEFT: medium none; BACKGROUND-COLOR: #ddd } TABLE.inventory TR TD.endCell { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = PADDING-BOTTOM: 0px! important; WIDTH: 1px! important; PADDING-TOP: 0px! = important; BACKGROUND-COLOR: #ddd! important } TABLE.inventory TR.orderRow TD.clickOrder { BACKGROUND-COLOR: #ddd; TEXT-ALIGN: center } TABLE.inventory TR.orderRow TD.clickOrder DIV { POSITION: relative } .sortedplus { BACKGROUND-POSITION: 48% 2px; BACKGROUND-IMAGE: = url(images/sort_on.gif); BACKGROUND-REPEAT: no-repeat } .dragCol { BACKGROUND-COLOR: #999 } .dragHover { BACKGROUND-POSITION: right top; BACKGROUND-IMAGE: = url(images/dragarrow.gif); BACKGROUND-REPEAT: no-repeat } .hideoff { LEFT: -1000px; OVERFLOW: hidden; WIDTH: 1px; POSITION: absolute; TOP: = 0px; HEIGHT: 1px } DIV.rumble UL LI.jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #e2eefe; = PADDING-BOTTOM: 1px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #5577bb 1px solid; TEXT-ALIGN: left } DIV.rumble UL LI.jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #e2eefe; = PADDING-BOTTOM: 1px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #5577bb 1px solid; TEXT-ALIGN: left } DIV.rumble_top UL LI.jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #e2eefe; = PADDING-BOTTOM: 1px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #5577bb 1px solid; TEXT-ALIGN: left } DIV.rumble_top UL LI.jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #e2eefe; = PADDING-BOTTOM: 1px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #5577bb 1px solid; TEXT-ALIGN: left } .hideme { DISPLAY: none } LI.jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #5577bb 1px solid; = BORDER-LEFT: #5577bb 1px solid; BORDER-BOTTOM: #5577bb 1px solid } .jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 18px! important; = BORDER-TOP: #acc2df 1px solid; PADDING-LEFT: 6px! important; BACKGROUND: = #e2eefe; PADDING-BOTTOM: 2px! important; BORDER-LEFT: #acc2df 1px solid; = PADDING-TOP: 2px! important; BORDER-BOTTOM: #5577bb 1px solid; POSITION: = relative; TEXT-ALIGN: left } DIV.jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 18px! important; = BORDER-TOP: #acc2df 1px solid; PADDING-LEFT: 6px! important; BACKGROUND: = #e2eefe; PADDING-BOTTOM: 2px! important; BORDER-LEFT: #acc2df 1px solid; = PADDING-TOP: 2px! important; BORDER-BOTTOM: #5577bb 1px solid; POSITION: = relative; TEXT-ALIGN: left } DIV.jumptopage { FLOAT: right } .hideme { DISPLAY: none } LI.jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #5577bb 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #5577bb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid } .jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #5577bb 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #5577bb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid } DIV.jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #5577bb 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #5577bb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid } DIV.jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #5577bb 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #5577bb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid } .jumptopage INPUT.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #566e94 1px solid; PADDING-LEFT: 1px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; BACKGROUND: url(images/action_button_back.gif) #888 repeat-x left = top; PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px = solid; WIDTH: auto; COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: = #344a6c 1px solid; TEXT-DECORATION: none } DIV.jumptopage INPUT.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #566e94 1px solid; PADDING-LEFT: 1px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; BACKGROUND: url(images/action_button_back.gif) #888 repeat-x left = top; PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px = solid; WIDTH: auto; COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: = #344a6c 1px solid; TEXT-DECORATION: none } DIV.jumptopage BUTTON { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; RIGHT: 0px! important; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: medium none; = PADDING-TOP: 0px; BORDER-BOTTOM: medium none; POSITION: absolute; TOP: = -2px } .jumptopage BUTTON { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; RIGHT: 0px! important; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: medium none; = PADDING-TOP: 0px; BORDER-BOTTOM: medium none; POSITION: absolute; TOP: = -2px } LI.inventory_paging BUTTON { RIGHT: -2px! important } DIV.jumptopage INPUT#currentpage_bot { WIDTH: auto } DIV.jumptopage INPUT#currentpage_top { WIDTH: auto } INPUT#currentpage_bot { WIDTH: auto } INPUT#currentpage_top { WIDTH: auto } .paging { CLEAR: left; FONT-SIZE: 95%; FLOAT: right; TEXT-ALIGN: right } .paging SPAN { BORDER-RIGHT: #ccc 1px dotted; PADDING-RIGHT: 6px; PADDING-LEFT: 0px; = PADDING-BOTTOM: 1px; MARGIN: 0px 9px 0px 0px; PADDING-TOP: 1px } .paging INPUT { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; FONT-WEIGHT: = bold; FONT-SIZE: 100%; BORDER-LEFT: #ccc 1px solid; WIDTH: 2em; = BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: center } .paging A { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline-block; PADDING-LEFT: 4px; BACKGROUND: = url(images/button3_back.gif) #ededed; PADDING-BOTTOM: 1px; BORDER-LEFT: = #ccc 1px solid; COLOR: #444; PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px = solid; TEXT-DECORATION: none } .paging A:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fafafa; BORDER-LEFT: #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid; = TEXT-DECORATION: none } .paging A.inactive { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; BACKGROUND: = #ededed; BORDER-LEFT: #ddd 1px solid; COLOR: #bbb; BORDER-BOTTOM: #ddd = 1px solid; TEXT-DECORATION: none } .paging A.inactive:hover { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; BACKGROUND: = #ededed; BORDER-LEFT: #ddd 1px solid; COLOR: #bbb; BORDER-BOTTOM: #ddd = 1px solid; TEXT-DECORATION: none } .pagingprefs { PADDING-RIGHT: 0px; MARGIN-TOP: 3px; PADDING-LEFT: 0px; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; COLOR: #999; PADDING-TOP: 3px; TEXT-ALIGN: = right } .pagingprefs A.microedit { BORDER-RIGHT: 0px; PADDING-RIGHT: 4px; BORDER-TOP: 0px; PADDING-LEFT: = 4px; BACKGROUND: #fff7de; PADDING-BOTTOM: 1px; BORDER-LEFT: 0px; COLOR: = #999; PADDING-TOP: 1px; BORDER-BOTTOM: 0px } .pagingprefs A.microedit:hover { COLOR: #666; TEXT-DECORATION: underline } .pagingform { PADDING-RIGHT: 28px; PADDING-LEFT: 12px; BACKGROUND: #fff7de; = PADDING-BOTTOM: 4px; COLOR: #666; LINE-HEIGHT: 160%; PADDING-TOP: 4px; = POSITION: relative; TEXT-ALIGN: left } .pagingform A.close { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; RIGHT: 4px; BACKGROUND: none transparent scroll repeat 0% 0%; = PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: = 0px; POSITION: absolute; TOP: 4px } .pagingform DIV { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 0px; = PADDING-TOP: 3px } .pagingprefs SPAN#backandforth A { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold! important; = FONT-SIZE: 110%; PADDING-BOTTOM: 2px; LINE-HEIGHT: 90%; PADDING-TOP: 0px } DIV.rumble UL LI.jumptopage A.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 5px; = BACKGROUND-POSITION: left top; BORDER-TOP: #566e94 1px solid; = PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 100%; = BACKGROUND-IMAGE: url(images/gradient_black_short_bt.png); = PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px solid; = COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: #344a6c 1px solid; = BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: #819ac0 } DIV.rumble_top UL LI.jumptopage A.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 5px; = BACKGROUND-POSITION: left top; BORDER-TOP: #566e94 1px solid; = PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 100%; = BACKGROUND-IMAGE: url(images/gradient_black_short_bt.png); = PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px solid; = COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: #344a6c 1px solid; = BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: #819ac0 } .paging A.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 5px; = BACKGROUND-POSITION: left top; BORDER-TOP: #566e94 1px solid; = PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 100%; = BACKGROUND-IMAGE: url(images/gradient_black_short_bt.png); = PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px solid; = COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: #344a6c 1px solid; = BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: #819ac0 } DIV.rumble UL LI.jumptopage A.gotopage:hover { BORDER-LEFT-COLOR: #566e94; BACKGROUND: #566e94; BORDER-BOTTOM-COLOR: = #566e94; BORDER-TOP-COLOR: #566e94; BORDER-RIGHT-COLOR: #566e94 } DIV.rumble_top UL LI.jumptopage A.gotopage:hover { BORDER-LEFT-COLOR: #566e94; BACKGROUND: #566e94; BORDER-BOTTOM-COLOR: = #566e94; BORDER-TOP-COLOR: #566e94; BORDER-RIGHT-COLOR: #566e94 } .paging A.gotopage:hover { BORDER-LEFT-COLOR: #566e94; BACKGROUND: #566e94; BORDER-BOTTOM-COLOR: = #566e94; BORDER-TOP-COLOR: #566e94; BORDER-RIGHT-COLOR: #566e94 } TABLE.splashTable { MARGIN: 3px 0px 12px; WIDTH: 100%; BORDER-BOTTOM: #ccc 2px solid; = BORDER-COLLAPSE: collapse } TABLE.splashTable THEAD TR { COLOR: #999 } TABLE.splashTable THEAD TR TH { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 85%; = PADDING-BOTTOM: 6px; PADDING-TOP: 6px } TABLE.splashTable THEAD TR TH A { BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #666; = TEXT-DECORATION: none } TABLE.splashTable THEAD TR TH A:hover { BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #333; = TEXT-DECORATION: underline } TABLE.splashTable TBODY TR { BORDER-TOP: #ddd 1px solid } TABLE.splashTable TBODY TR TH { PADDING-RIGHT: 9px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 9px; = FONT-SIZE: 85%; PADDING-BOTTOM: 2px; COLOR: #777; PADDING-TOP: 2px } TABLE.splashTable TBODY TR TD { PADDING-RIGHT: 9px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 9px; = FONT-SIZE: 85%; PADDING-BOTTOM: 2px; COLOR: #777; PADDING-TOP: 2px } TABLE.splashTable TBODY TR TD.controls { TEXT-ALIGN: center } TABLE.splashTable TBODY TR TH { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 2px; COLOR: = #000; PADDING-TOP: 2px; TEXT-ALIGN: left } TABLE.splashTable TH.smallCell { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 1%; = PADDING-TOP: 0px; WHITE-SPACE: nowrap } TABLE.splashTable TD.smallCell { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 1%; = PADDING-TOP: 0px; WHITE-SPACE: nowrap } .contentBlock A { DISPLAY: block; BACKGROUND: url(images/more_options.gif) no-repeat 99% = center; TEXT-DECORATION: none } .contentBlock A.collapse { DISPLAY: block; BACKGROUND: url(images/less_options.gif) no-repeat 99% = center; TEXT-DECORATION: none } .contentBlock A.collapse:hover { TEXT-DECORATION: underline } .contentBlock A.hover { TEXT-DECORATION: underline } DIV#dataCollectionContainer DIV.contentBlock { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 6px; MARGIN: 0pt 0px 0em; BORDER-LEFT: 0px; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px } UNKNOWN { BACKGROUND: red } TABLE.splashTable INPUT { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: = 0px } TABLE.reorderCols { CLEAR: both; FONT-SIZE: 95%; MARGIN: 18px 0pt 9px; WIDTH: 100%; = BORDER-COLLAPSE: collapse } TABLE.reorderCols THEAD TR TH { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 4px; BACKGROUND: #ededed; PADDING-BOTTOM: 0px; = BORDER-LEFT: #ccc 1px solid; CURSOR: move; PADDING-TOP: 0px; = BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: left } TABLE.reorderCols THEAD TR TH.noReorderCol { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: none = transparent scroll repeat 0% 0%; BORDER-LEFT: medium none; CURSOR: = default; BORDER-BOTTOM: #ccc 1px solid } TABLE.reorderCols TBODY TR TD { BORDER-RIGHT: #dddddd 1px solid; PADDING-RIGHT: 4px; PADDING-LEFT: 4px; = PADDING-BOTTOM: 2px; VERTICAL-ALIGN: top; BORDER-LEFT: #dddddd 1px = solid; PADDING-TOP: 2px; BORDER-BOTTOM: #eeeeee 1px solid; TEXT-ALIGN: = left } TABLE.reorderCols TBODY TR TH { BORDER-RIGHT: #dddddd 1px solid; PADDING-RIGHT: 4px; PADDING-LEFT: 4px; = PADDING-BOTTOM: 2px; VERTICAL-ALIGN: top; BORDER-LEFT: #dddddd 1px = solid; PADDING-TOP: 2px; BORDER-BOTTOM: #eeeeee 1px solid; TEXT-ALIGN: = left } TABLE.reorderCols TBODY TR TH { BACKGROUND: #ededed; COLOR: #555555; BORDER-BOTTOM: #cccccc 1px solid } TABLE.reorderCols THEAD TH SPAN.reorderToolTip { BACKGROUND: url(images/cm_reorder_leftright.gif) #dddddd no-repeat 8px = 50% } TABLE.reorderCols THEAD TH SPAN.firstItem { BACKGROUND: url(images/cm_reorder_right.gif) #dddddd no-repeat 8px 50% } TABLE.reorderCols THEAD TH SPAN.reorder2:hover { CURSOR: move; BACKGROUND-COLOR: #efefef } TABLE.reorderCols THEAD TR TH.axis { BACKGROUND: #ededed 0% 50%; COLOR: #555555; BORDER-BOTTOM: #cccccc 1px = solid } .ghostTd { BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: #000 1px = solid; PADDING-LEFT: 8px; BACKGROUND: #eee; PADDING-BOTTOM: 2px; FONT: = 10px arial; BORDER-LEFT: #000 1px solid; WIDTH: auto; PADDING-TOP: 2px; = BORDER-BOTTOM: #000 1px solid; POSITION: absolute; HEIGHT: auto } TABLE.reorderCols THEAD TH.dragging { BACKGROUND: #ccc } TABLE.reorderCols THEAD TH.hovering { BACKGROUND: #666666 } TABLE.reorderCols THEAD TH.hovering IMG { DISPLAY: none } TD.removeCell { COLOR: #999; TEXT-DECORATION: line-through } TD.removeCell SPAN A { COLOR: #999; TEXT-DECORATION: line-through } TD.removeCell SPAN A IMG { FILTER: alpha(opacity=3D30); opacity: 0.3 } UL.easylist { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 10px 0px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: = none } UL.contentList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 10px 0px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: = none } UL.easylist { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 3px; PADDING-TOP: 0px; POSITION: relative } UL.contentList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 3px; PADDING-TOP: 0px; POSITION: relative } .contentPageItem { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 3px; PADDING-TOP: 0px; POSITION: relative } .contentListRight { FONT-WEIGHT: normal; RIGHT: 6px; LEFT: auto; POSITION: absolute } .pagedContentListRight { TOP: 4px } UL.noimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 10px 0px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: = none } UL.buildList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 10px 0px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: = none } UL.contentListPlain { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 10px 0px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: = none } UL.announcementList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 10px 0px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: = none } UL.noimg LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px; POSITION: = relative } UL.buildList LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px; POSITION: = relative } UL.contentListPlain LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px; POSITION: = relative } UL.announcementList LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px; POSITION: = relative } UL.noimg LI DIV.item_icon { DISPLAY: none } UL.contentListPlain LI DIV.item_icon { DISPLAY: none } UL.noimg LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.buildList LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.contentListPlain LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.contentList LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.announcementList LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } DIV.staticHeader H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } DIV.staticFooter H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.contentList LI.read H3.item { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: = 0px } UL.buildList LI INPUT { FLOAT: left; MARGIN: 8px 8px 8px 26px } UL.buildList LI INPUT.browse { MARGIN: 0px 0px 6px } UL.buildList LI INPUT.genericButton { MARGIN: 0px 0px 6px } UL.buildList LI INPUT[type=3Dbutton] { MARGIN: 0px 0px 6px } UL.easylist LI H3.item { PADDING-RIGHT: 6px; PADDING-LEFT: 75px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.contentList LI H3.item { PADDING-RIGHT: 6px; PADDING-LEFT: 75px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.easylist LI DIV.item_icon { LEFT: 12px; MARGIN: 0px 8px 0px 18px; POSITION: absolute } UL.contentList LI DIV.item_icon { LEFT: 12px; MARGIN: 0px 8px 0px 18px; POSITION: absolute } UL.easylist LI DIV.item_icon A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } UL.contentList LI DIV.item_icon A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } UL.iconsOnly { MARGIN: 0px auto; WIDTH: 80% } UL.iconsOnly LI DIV.item_icon { DISPLAY: block! important; POSITION: relative! important; TEXT-ALIGN: = center! important } UL.iconsOnly LI.read DIV.item_icon { DISPLAY: block! important; POSITION: relative! important; TEXT-ALIGN: = center! important } UL.iconsOnly LI.read DIV.item_icon { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: = 0px } UL.iconsOnly LI { FLOAT: left! important; WIDTH: 49%; MARGIN-RIGHT: 6px; TEXT-ALIGN: = center } UL.iconsOnly LI:hover DIV.item_icon { BACKGROUND: #ededed } UL.iconsOnly LI:hover H3 { BACKGROUND: #ededed } UL.iconsOnly LI:focus DIV.item_icon { BACKGROUND: #ededed } UL.iconsOnly LI:focus H3 { BACKGROUND: #ededed } UL.iconsOnly LI H3.item { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; PADDING-BOTTOM: 6px; BORDER-LEFT: #ededed 2px solid; PADDING-TOP: = 6px; BORDER-BOTTOM: 0px } UL.iconsOnly LI DIV.item_icon { BORDER-TOP: #ededed 2px solid; MIN-HEIGHT: 50px; LEFT: auto; MARGIN: = 0px 0px 0px 18px; BORDER-LEFT: #ededed 2px solid; TOP: 0px } UL.iconsOnly LI SPAN.reorder { BACKGROUND-POSITION: center 50%; FILTER: alpha(opacity=3D100); LEFT: = -2px; BACKGROUND-IMAGE: url(images/cm_reorder.gif); WIDTH: 20px; CURSOR: = move; BACKGROUND-REPEAT: no-repeat; POSITION: absolute; TOP: 2px; = HEIGHT: 28px; BACKGROUND-COLOR: #ededed; opacity: 1; = -moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px } .details { PADDING-RIGHT: 0px; PADDING-LEFT: 20px; FONT-WEIGHT: normal; = PADDING-BOTTOM: 0px; BORDER-LEFT: #ccc 2px solid; COLOR: #444; = PADDING-TOP: 1px } DIV.details P { PADDING-RIGHT: 6px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 6px; MARGIN: 0px; PADDING-TOP: 3px } .container P { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 95%; = PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-TOP: 6px } .container P.important { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 95%; = PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-TOP: 6px } .container P.centered { TEXT-ALIGN: center } .details P SPAN.note { FONT-WEIGHT: bold } .details P.important { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 9px; PADDING-TOP: 0px } .details P.important SPAN { FONT-WEIGHT: normal; COLOR: #888 } .details P SPAN.note { FONT-WEIGHT: bold } DIV.announcementInfo { PADDING-LEFT: 12px; RIGHT: 0px; BACKGROUND: #fff; BORDER-LEFT: #ccc 1px = dotted; WIDTH: 13em; BOTTOM: 12px; PADDING-TOP: 4px; POSITION: absolute; = TOP: 0px } P.itemDetails { PADDING-LEFT: 12px; RIGHT: 0px; BACKGROUND: #fff; BORDER-LEFT: #ccc 1px = dotted; WIDTH: 13em; BOTTOM: 12px; PADDING-TOP: 4px; POSITION: absolute; = TOP: 0px } DIV.itemDetails { PADDING-LEFT: 12px; RIGHT: 0px; BACKGROUND: #fff; BORDER-LEFT: #ccc 1px = dotted; WIDTH: 13em; BOTTOM: 12px; PADDING-TOP: 4px; POSITION: absolute; = TOP: 0px } P.itemDetails { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px; TOP: 2px } DIV.itemDetails { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px; TOP: 2px } .buildList DIV.announcementInfo { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px; TOP: 2px } DIV.announcementInfo P { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 85%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 2px } DIV.announcementInfo { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 85%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 2px } P.itemDetails P { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 85%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 2px } DIV.itemDetails P { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 85%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 2px } DIV.announcementInfo P { FONT-SIZE: 100% } DIV.announcementInfo P SPAN { COLOR: #999 } DIV.announcementInfo SPAN { COLOR: #999 } P.itemDetails SPAN { COLOR: #999 } DIV.itemDetails SPAN { COLOR: #999 } P.itemDetails { FONT-SIZE: 90% } DIV.itemDetails { FONT-SIZE: 90% } P.itemDetails SPAN { FONT-SIZE: 95% } DIV.itemDetails SPAN { FONT-SIZE: 95% } DIV.announcementInfo P SPAN SPAN { FONT-SIZE: 95%! important } DIV.announcementInfo SPAN SPAN { FONT-SIZE: 95%! important } DIV.noItems { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; FONT-SIZE: 95%; = PADDING-BOTTOM: 6px; COLOR: #555; PADDING-TOP: 6px; TEXT-ALIGN: center } .details P.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; WIDTH: 98%; PADDING-TOP: = 0px } .details UL.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; WIDTH: 98%; PADDING-TOP: = 0px } P.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; WIDTH: 98%; PADDING-TOP: = 0px } UL.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; WIDTH: 98%; PADDING-TOP: = 0px } .details UL.attachments { MARGIN: 3px 0px 9px; LIST-STYLE-TYPE: none } UL.attachments { MARGIN: 3px 0px 9px; LIST-STYLE-TYPE: none } .container UL.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } .details UL.attachments LI { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px 6px 0px = 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px; BORDER-BOTTOM: medium = none } UL.attachments LI { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px 6px 0px = 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px; BORDER-BOTTOM: medium = none } UL.attachments LI.read { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px 6px 0px = 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px; BORDER-BOTTOM: medium = none } .details P.attachments SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } .details UL.attachments LI.label { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } P.attachments SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } UL.attachments LI.label { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } .details UL.attachments LI.read { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } .details P.attachments SPAN { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } .details UL.attachments LI.label SPAN { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } P.attachments SPAN { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } UL.attachments LI.label SPAN { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } .details P.attachments A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } .details UL.attachments LI A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } P.attachments A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } UL.attachments LI A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } UL.attachments LI A.removeTag { PADDING-RIGHT: 9px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } UL.attachments LI.addTag { WHITE-SPACE: nowrap } UL.attachments LI.addTag SPAN { DISPLAY: inline } UL.attachments LI.addTag A.browse { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; = PADDING-BOTTOM: 2px; PADDING-TOP: 0px; WHITE-SPACE: nowrap } UL.attachments LI.addTag SPAN.addTagField { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; BACKGROUND: #eee; FLOAT: none; = PADDING-BOTTOM: 6px; WIDTH: auto; PADDING-TOP: 6px } UL.attachments LI.addTag SPAN.addTagField INPUT { FLOAT: none; MARGIN: 0px; VERTICAL-ALIGN: middle } .details P.attachments A { PADDING-LEFT: 3px; TEXT-DECORATION: none } .details UL.attachments LI A SPAN { PADDING-LEFT: 3px; TEXT-DECORATION: none } P.attachments A { PADDING-LEFT: 3px; TEXT-DECORATION: none } UL.attachments LI A SPAN { PADDING-LEFT: 3px; TEXT-DECORATION: none } UL.noimg LI DIV.details { MARGIN-LEFT: 18px } UL.buildList LI DIV.details { MARGIN-LEFT: 18px } UL.contentListPlain LI DIV.details { MARGIN-LEFT: 18px } DIV.staticHeader DIV.details { MARGIN-LEFT: 18px } DIV.staticFooter DIV.details { MARGIN-LEFT: 18px } UL.announcementList LI DIV.details { PADDING-RIGHT: 0px; OVERFLOW-Y: visible; PADDING-LEFT: 20px; = OVERFLOW-X: auto; PADDING-BOTTOM: 0px; MARGIN: 0px 13em 0px 18px; = OVERFLOW: scroll; WIDTH: 70%; PADDING-TOP: 0px; HEIGHT: 1% } UL#announcementList LI DIV.details { PADDING-RIGHT: 0px; OVERFLOW-Y: visible; PADDING-LEFT: 20px; = OVERFLOW-X: auto; PADDING-BOTTOM: 0px; MARGIN: 0px 13em 0px 18px; = OVERFLOW: scroll; WIDTH: 70%; PADDING-TOP: 0px; HEIGHT: 1% } UL.announcementList-read LI DIV.details { MARGIN-LEFT: 0px! important } DIV.staticFooter DIV.details { MARGIN-LEFT: 18px } DIV.staticHeader { MARGIN: 10px 0px 0px } DIV.staticFooter DIV.details { PADDING-BOTTOM: 12px; BORDER-BOTTOM: #ddd 1px solid } .gbColumns_rumble { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN-LEFT: = 60px! important; BORDER-LEFT: #ddd 1px solid; BORDER-BOTTOM: 0px } .gbColumns_rumble_bottom { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN-LEFT: = 60px! important; BORDER-LEFT: #ddd 1px solid; BORDER-BOTTOM: 0px } .gbColumns_rumble_bottom { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: 0px; BORDER-LEFT: #ddd 1px = solid; BORDER-BOTTOM: #ddd 1px solid } .staticHeader { CLEAR: both; ZOOM: 1; POSITION: relative } .staticFooter { CLEAR: both; ZOOM: 1; POSITION: relative } .staticHeader DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } .staticFooter DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } UL.gbCategories LI DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } .staticHeader DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } .staticFooter DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } UL.gbCategories LI DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } .staticHeader DIV.itemHeaderControl A { DISPLAY: inline-block } .staticFooter DIV.itemHeaderControl A { DISPLAY: inline-block } UL.gbCategories LI DIV.itemHeaderControl A { DISPLAY: inline-block } HTML *.staticHeader DIV.itemHeaderControl { TOP: 5px } HTML *.staticFooter DIV.itemHeaderControl { TOP: 5px } HTML * UL.gbCategories LI DIV.itemHeaderControl { TOP: 5px } UL.dragableHighlight { PADDING-RIGHT: 12px; BORDER-TOP: #999 1px dashed; PADDING-LEFT: 12px; = BACKGROUND: #fff; PADDING-BOTTOM: 3px; MARGIN: 12px -12px; PADDING-TOP: = 12px; BORDER-BOTTOM: #999 1px dashed } UL.gbCategories LI H3.item { PADDING-LEFT: 9px } DIV.staticHeader H3.item { PADDING-LEFT: 9px } DIV.staticFooter H3.item { PADDING-LEFT: 9px } UL.gbCategories LI H3.item A.toggleLink { MARGIN-TOP: -2px; MARGIN-RIGHT: 6px } DIV.staticHeader H3.item A.toggleLink { MARGIN-TOP: -2px; MARGIN-RIGHT: 6px } DIV.staticFooter H3.item A.toggleLink { MARGIN-TOP: -2px; MARGIN-RIGHT: 6px } DIV.areaHighlight DIV.container { BACKGROUND: #f9f9f9 } DIV.areaHighlight DIV.bottomRound B { BACKGROUND: #f9f9f9 } UL.dragableHighlight LI H3.item { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .dragableHighlight DIV.details { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .caretTitleModifier { PADDING-RIGHT: 0px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; FONT-SIZE: = 90%; PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 1px } DIV.landingPageColumn UL LI H3.hiddenLink .linkStatus { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 85%; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: = 0.4em } .caretTitleModifier A.browse { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 92%; PADDING-BOTTOM: = 1px; COLOR: #444; PADDING-TOP: 0px; WHITE-SPACE: nowrap } DIV.landingPageColumn UL LI H3.hiddenLink A.browse { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 92%; PADDING-BOTTOM: = 1px; COLOR: #444; PADDING-TOP: 0px; WHITE-SPACE: nowrap } .caretTitleModifier A.browse:hover { TEXT-DECORATION: none } DIV.landingPageColumn UL LI H3.hiddenLink A.browse:hover { TEXT-DECORATION: none } .caretTitleModifier A.browse:focus { TEXT-DECORATION: none } DIV.landingPageColumn UL LI H3.hiddenLink A.browse:focus { TEXT-DECORATION: none } UL.easylist LI.read { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 9px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px } UL.noimg LI.read { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 9px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px } UL.buildList LI.read { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 9px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px } UL.contentList LI.read { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 9px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px } UL.contentListPlain LI.read { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 9px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px } DIV.read { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 9px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px } UL.noimg LI.read H3.item { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.noimg LI.read H3 { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.buildList LI.read H3 { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.contentListPlain LI.read H3.item { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.contentListPlain LI.read H3 { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.announcementList LI.read H3 { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.announcementList-read LI H3.item { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.announcementList LI.read H3 { PADDING-RIGHT: 13em; PADDING-LEFT: 18px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; WORD-BREAK: normal; PADDING-TOP: 6px; WORD-WRAP: = break-word } UL.announcementList LI H3.item { PADDING-RIGHT: 13em; PADDING-LEFT: 18px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; WORD-BREAK: normal; PADDING-TOP: 6px; WORD-WRAP: = break-word } UL.announcementList-read LI H3.item { PADDING-RIGHT: 13em; PADDING-LEFT: 18px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; WORD-BREAK: normal; PADDING-TOP: 6px; WORD-WRAP: = break-word } UL#announcementList LI H3.item { PADDING-RIGHT: 13em; PADDING-LEFT: 18px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; WORD-BREAK: normal; PADDING-TOP: 6px; WORD-WRAP: = break-word } UL.easylist LI.read H3.item { PADDING-RIGHT: 6px; PADDING-LEFT: 58px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.easylist LI.read H3 { PADDING-RIGHT: 6px; PADDING-LEFT: 58px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.contentList LI.read H3.item { PADDING-RIGHT: 6px; PADDING-LEFT: 58px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.contentList LI.read H3 { PADDING-RIGHT: 6px; PADDING-LEFT: 58px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.easylist LI.read DIV.item_icon { LEFT: 0px; MARGIN: 0px 8px 0px 12px; POSITION: absolute; TOP: 0px } UL.contentList LI.read DIV.item_icon { LEFT: 0px; MARGIN: 0px 8px 0px 12px; POSITION: absolute; TOP: 0px } UL.noimg LI.read DIV.details { BORDER-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; MARGIN-LEFT: = 6px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } UL.buildList LI.read DIV.details { BORDER-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; MARGIN-LEFT: = 6px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } UL.contentListPlain LI.read DIV.details { BORDER-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; MARGIN-LEFT: = 6px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } UL.announcementList LI.read DIV.details { BORDER-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; MARGIN-LEFT: = 6px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } UL.announcementList-read LI DIV.details { BORDER-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; MARGIN-LEFT: = 6px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } UL.easylist LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.noimg LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.buildList LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentList LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentListPlain LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.announcementList LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.announcementList-read LI H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.buildList LI.read H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentList LI.read H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentListPlain LI.read H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.announcementList LI.read H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.announcementList-read LI H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentList LI.read DIV.details { BORDER-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; MARGIN-LEFT: = 75px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } UL.contentList LI DIV.details { PADDING-LEFT: 72px; OVERFLOW-X: auto; MARGIN-LEFT: 18px; WORD-BREAK: = normal; WORD-WRAP: break-word } UL.staffInfoList LI DIV.details { MARGIN-RIGHT: 160px } UL.staffInfoList LI.hasPhoto DIV.details { MIN-HEIGHT: 135px; HEIGHT: 135px } UL.subList { PADDING-RIGHT: 0px; BORDER-TOP: #cccccc 1px dotted; PADDING-LEFT: 6px; = BACKGROUND: #fff; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 6px 12px; = BORDER-LEFT: #cccccc 1px dotted; PADDING-TOP: 4px; LIST-STYLE-TYPE: none } UL.subList-reorder { PADDING-RIGHT: 0px; BORDER-TOP: #cccccc 1px dotted; PADDING-LEFT: 6px; = BACKGROUND: #fff; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 6px 12px; = BORDER-LEFT: #cccccc 1px dotted; PADDING-TOP: 4px; LIST-STYLE-TYPE: none } UL.subList-reorder { =09 } UL.subList LI { BORDER-RIGHT: medium none; PADDING-RIGHT: 3px; BORDER-TOP: medium none; = PADDING-LEFT: 23px; PADDING-BOTTOM: 3px; MARGIN: 0px; BORDER-LEFT: = medium none; PADDING-TOP: 3px; BORDER-BOTTOM: medium none } UL.buildList UL.detailList { PADDING-RIGHT: 3px; PADDING-LEFT: 23px; PADDING-BOTTOM: 3px; MARGIN: = 0px; PADDING-TOP: 3px } UL.subList-reorder LI { PADDING-RIGHT: 3px; PADDING-LEFT: 23px; PADDING-BOTTOM: 3px; MARGIN: = 0px; PADDING-TOP: 3px } UL.subList-reorder LI { CURSOR: move } UL.subList LI A IMG { VERTICAL-ALIGN: middle } UL.subList-reorder LI A IMG { VERTICAL-ALIGN: middle } UL.subList LI P { PADDING-RIGHT: 0px; DISPLAY: none; PADDING-LEFT: 0px; FONT-SIZE: 90%; = PADDING-BOTTOM: 0px; MARGIN: 3px 6px 3px 24px; COLOR: #444; PADDING-TOP: = 0px } UL.subList-reorder LI P { PADDING-RIGHT: 0px; DISPLAY: none; PADDING-LEFT: 0px; FONT-SIZE: 90%; = PADDING-BOTTOM: 0px; MARGIN: 3px 6px 3px 24px; COLOR: #444; PADDING-TOP: = 0px } UL.subList LI P SPAN { DISPLAY: inline; FONT-WEIGHT: bold; FLOAT: none } UL.buildList UL.detailList LI UL.subList LI P SPAN { DISPLAY: inline; FONT-WEIGHT: bold; FLOAT: none } UL.subList-reorder LI P SPAN { DISPLAY: inline; FONT-WEIGHT: bold; FLOAT: none } UL.buildList UL.subList-reorder LI SPAN.reorder { BORDER-RIGHT: #ccc 1px solid; BACKGROUND: = url(images/cm_reorder_updown.gif) #ededed no-repeat center center; = FILTER: alpha(opacity=3D100); LEFT: 0px; WIDTH: 16px! important; CURSOR: = move; POSITION: absolute; TOP: 3px; HEIGHT: 18px; opacity: 1; = -moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px } UL.subList-reorder LI:hover SPAN.reorder { opacity: 1 } UL.subList-reorder LI:focus SPAN.reorder { opacity: 1 } UL.subList LI P { PADDING-RIGHT: 0px; DISPLAY: none; PADDING-LEFT: 0px; FONT-SIZE: 90%; = VISIBILITY: hidden; PADDING-BOTTOM: 0px; MARGIN: 3px 6px 3px 24px; = COLOR: #444; PADDING-TOP: 0px } UL.subList-reorder P.itemDetails { DISPLAY: none } UL.subList-reorder LI DIV.itemDetails { DISPLAY: none } UL.subList-reorder DIV.details { DISPLAY: none } UL.subList DIV.details { DISPLAY: none } P.itemDetails + DIV.details { OVERFLOW: visible; MARGIN-RIGHT: 12.5em } DIV.itemDetails + DIV.details { OVERFLOW: visible; MARGIN-RIGHT: 12.5em } UL.subList LI P SPAN { FONT-WEIGHT: bold } UL.subListArtifact { CLEAR: both } UL.detailList UL.subListArtifact { CLEAR: both } UL.subListArtifact LI { POSITION: static } UL.detailList UL.subListArtifact LI { POSITION: static } UL.detailList UL.subListArtifact { ZOOM: 1 } UL.detailList UL.subListArtifact LI { ZOOM: 1 } UL.detailList UL.subListArtifact LI A { ZOOM: 1 } UL.buildList UL.detailList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 0.6em 0.7em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.buildList UL.detailList UL.subList { MARGIN: 0px 0px 6px } UL.buildList UL.detailList OL.subList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; LIST-STYLE-POSITION: inside; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: = decimal } UL.buildList UL.detailList LI { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; PADDING-BOTTOM: 0.2em; MARGIN: 0px 0px 0.2em; = BORDER-LEFT: medium none; PADDING-TOP: 0px; BORDER-BOTTOM: medium none } UL.buildList UL.detailList LI SPAN { DISPLAY: block; FONT-WEIGHT: bold; FLOAT: left; WIDTH: 20% } UL.buildList UL LI DIV { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0.3em; FLOAT: left; = PADDING-BOTTOM: 0px; WIDTH: 79%; PADDING-TOP: 0px } UL.buildList UL LI DIV.contextMenuContainer { DISPLAY: inline; FLOAT: none; WIDTH: auto } UL.noimg LI DIV.contextMenuContainer { DISPLAY: inline; FLOAT: none; WIDTH: auto } UL.buildList LI.pageBreak H3.item { BORDER-TOP: #ccc 2px dotted; BACKGROUND-IMAGE: = url(images/readback.png); COLOR: #777 } UL.buildList LI.sectionBreak H3.item { BORDER-TOP: #ccc 2px dotted; BACKGROUND-IMAGE: = url(images/readback.png); COLOR: #777 } DIV.itemHeaderControl { RIGHT: 12.7em; POSITION: absolute; TOP: 9px } DIV.itemHeaderControl A { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline-block; PADDING-LEFT: 3px; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x; PADDING-BOTTOM: 2px; = BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #aaa 1px = solid } DIV.itemHeaderControl A:hover { =09 } DIV.itemHeaderControl A IMG { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } H3 SPAN.reorder { BACKGROUND: url(images/cm_reorder_updown.gif) #ededed no-repeat center = center; FILTER: alpha(opacity=3D100); LEFT: -2px; WIDTH: 20px; POSITION: = absolute; TOP: 2px; HEIGHT: 28px; opacity: 1; = -moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px } UL.iconsOnly LI H3.item SPAN.reorder { BACKGROUND-POSITION: center center; BACKGROUND-IMAGE: = url(images/cm_reorder.gif); BACKGROUND-REPEAT: no-repeat; TOP: 8px } UL.easylist LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.easylist LI H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.noimg LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.noimg LI H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.buildList LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentList LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } .contentPageItem H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } .contentPageItem H3.item A.cmimg:hover { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.iconsOnly LI:hover H3.item SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.announcementList LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.buildList LI H3.item:focus SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentList LI H3.item:focus SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:focus A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:focus SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:focus A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } .contentPageItem H3.item:focus A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } .contentPageItem H3.item A.cmimg:focus { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.iconsOnly LI:focus H3.item SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.announcementList LI H3.item:focus SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.easylist LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.noimg LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.buildList LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.contentList LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.contentListPlain LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.announcementList LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.buildList LI H3.item:focus { BACKGROUND: #efefef; CURSOR: move } UL.contentList LI H3.item:focus { BACKGROUND: #efefef; CURSOR: move } UL.contentListPlain LI H3.item:focus { BACKGROUND: #efefef; CURSOR: move } UL.announcementList LI H3.item:focus { BACKGROUND: #efefef; CURSOR: move } DIV.multiAssign { MARGIN: 3px 0px 9px } DIV.multiAssign UL { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: none } DIV.multiAssign UL LI { CLEAR: none; BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; = PADDING-LEFT: 6px; FONT-SIZE: 90%; BACKGROUND: #f6f6f6; FLOAT: left; = PADDING-BOTTOM: 6px; MARGIN: 0px 9px 0px 0px; BORDER-LEFT: 0px; WIDTH: = 13em; LINE-HEIGHT: 1.3em; PADDING-TOP: 1px; BORDER-BOTTOM: 0px; = TEXT-ALIGN: center; -moz-border-radius: 3px } DIV.multiAssign UL LI.read { CLEAR: none; BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; = PADDING-LEFT: 6px; FONT-SIZE: 90%; BACKGROUND: #f6f6f6; FLOAT: left; = PADDING-BOTTOM: 6px; MARGIN: 0px 9px 0px 0px; BORDER-LEFT: 0px; WIDTH: = 13em; LINE-HEIGHT: 1.3em; PADDING-TOP: 1px; BORDER-BOTTOM: 0px; = TEXT-ALIGN: center; -moz-border-radius: 3px } DIV.multiAssign UL LI A { FONT-WEIGHT: bold; FONT-SIZE: 100% } DIV.multiAssign UL LI A { FONT-WEIGHT: bold; FONT-SIZE: 100% } DIV.multiAssign UL LI P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 1px } DIV.multiAssign UL LI.label { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; FONT-WEIGHT: normal; FONT-SIZE: 95%; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; WIDTH: 12em; = COLOR: #888; LINE-HEIGHT: 1.1em; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; = WHITE-SPACE: normal; TEXT-ALIGN: left } DIV.multiAssign UL LI P SPAN { COLOR: #888 } DIV.multiAssign A.buttonMicro { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 5px; FONT-SIZE: 90%; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x 0% 50%; PADDING-BOTTOM: = 0px; MARGIN: 1px auto 12px; BORDER-LEFT: #ccc 1px solid; COLOR: #666; = PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px solid; WHITE-SPACE: nowrap; = TEXT-DECORATION: none } H3 A.buttonMicro { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 5px; FONT-SIZE: 90%; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x 0% 50%; PADDING-BOTTOM: = 0px; MARGIN: 1px auto 12px; BORDER-LEFT: #ccc 1px solid; COLOR: #666; = PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px solid; WHITE-SPACE: nowrap; = TEXT-DECORATION: none } DIV.multiAssign A.buttonMicro:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } H3 A.buttonMicro:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } DIV.multiAssign A.buttonMicro:focus { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } H3 A.buttonMicro:focus { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } DIV.multiAssign A.simpleLink { DISPLAY: block; FONT-WEIGHT: normal; COLOR: #666 } H3 SPAN.status A.buttonMicro { FONT-WEIGHT: normal; FONT-SIZE: 90%; MARGIN-LEFT: 6px } H3 SPAN.status { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: = 80%; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 3px; MARGIN-LEFT: 6px; = PADDING-TOP: 3px } H3 DIV.status { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: = 80%; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 3px; MARGIN-LEFT: 6px; = PADDING-TOP: 3px } H3 SPAN.status SPAN { COLOR: #888 } H3 DIV.status SPAN { COLOR: #888 } H3 DIV.status { DISPLAY: inline } .contentBlock { BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 1.4em; BORDER-TOP: #ddd = 1px solid; PADDING-LEFT: 1.4em; PADDING-BOTTOM: 1em; MARGIN: 0px 1em = 0.6em; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 0.6em; BORDER-BOTTOM: = #ddd 1px solid } .contentBlock H3 { PADDING-RIGHT: 0.4em; PADDING-LEFT: 0.4em; FONT-SIZE: 110%; = PADDING-BOTTOM: 0.4em; MARGIN: 0px 0px 1em; PADDING-TOP: 0.4em; = BORDER-BOTTOM: #ddd 1px solid } .contentBlock UL { PADDING-RIGHT: 0px; PADDING-LEFT: 1.2em; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .contentBlock UL.threeCol { FLOAT: left; WIDTH: 30% } .contentBlock UL.threeCol LI { PADDING-RIGHT: 0px; PADDING-LEFT: 22px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; BACKGROUND: url(images/list_bullet.gif) no-repeat 9px 4px; FLOAT: = none; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-TOP: 0px } .contentBlock UL.threeCol LI A { BACKGROUND-IMAGE: none } .contentBlock UL.threeCol LI A:hover { TEXT-DECORATION: underline } .contentBlock UL.threeCol LI A:focus { TEXT-DECORATION: underline } .contentBlock H3 INPUT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: normal; FONT-SIZE: 90%; = PADDING-BOTTOM: 1px; MARGIN-LEFT: 6px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #999 1px = solid } .contentBlock H3 SELECT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: normal; FONT-SIZE: 90%; = PADDING-BOTTOM: 1px; MARGIN-LEFT: 6px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #999 1px = solid } .contentBlock INPUT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: normal; FONT-SIZE: 90%; = PADDING-BOTTOM: 1px; MARGIN-LEFT: 6px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #999 1px = solid } .contentBlock SELECT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: normal; FONT-SIZE: 90%; = PADDING-BOTTOM: 1px; MARGIN-LEFT: 6px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #999 1px = solid } .contentBlock OL LI INPUT[type=3D'checkbox'] { VERTICAL-ALIGN: middle; MARGIN-RIGHT: 6px } .contentBlock H3 A.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = FONT-SIZE: 90%; BACKGROUND: url(images/button3_back.gif) #ededed = repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: = 1px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } .contentBlock A.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = FONT-SIZE: 90%; BACKGROUND: url(images/button3_back.gif) #ededed = repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: = 1px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } .contentBlock INPUT.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = FONT-SIZE: 90%; BACKGROUND: url(images/button3_back.gif) #ededed = repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: = 1px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } DIV.landingListWrapper { MARGIN: 1.6em 0px 0px; TEXT-ALIGN: center } DIV.landingListWrapper UL.landingList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = auto; WIDTH: 90%; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.landingListWrapper UL.landingList-2cols { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = auto; WIDTH: 90%; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.landingListWrapper UL.landingList LI { MARGIN: 0px 0px 1.6em 0em; WIDTH: 50%; TEXT-ALIGN: left } DIV.landingListWrapper UL.landingList-2cols LI { FLOAT: left; MARGIN: 0px 3em 1.6em 0em; WIDTH: 45%; TEXT-ALIGN: left } DIV.landingListWrapper UL.landingList LI.restart { MARGIN-TOP: -13.6em } DIV.landingListWrapper UL.landingList LI A { TEXT-DECORATION: none } DIV.landingListWrapper UL.landingList-2cols LI A { TEXT-DECORATION: none } DIV.landingListWrapper UL.landingList LI A:hover { TEXT-DECORATION: underline } DIV.landingListWrapper UL.landingList-2cols LI A:hover { TEXT-DECORATION: underline } DIV.landingListWrapper UL.landingList LI A:focus { TEXT-DECORATION: underline } DIV.landingListWrapper UL.landingList-2cols LI A:focus { TEXT-DECORATION: underline } DIV.landingListWrapper UL.landingList LI P { PADDING-RIGHT: 0.6em; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 1.4em; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingListWrapper UL.landingList-2cols LI P { PADDING-RIGHT: 0.6em; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 1.4em; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingListWrapper UL.landingList LI UL { MARGIN: 0em 0.4em 0.4em 0.8em; LIST-STYLE-TYPE: square } DIV.landingListWrapper UL.landingList LI UL LI { CLEAR: left; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.landingListWrapper UL.landingList-2cols LI UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: = 0px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.landingListWrapper UL.landingList LI H3 { PADDING-RIGHT: 1.2em; PADDING-LEFT: 1.2em; FONT-SIZE: 110%; BACKGROUND: = url(images/list_bullet.gif) no-repeat 0.1em 0.7em; PADDING-BOTTOM: = 0.4em; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingListWrapper UL.landingList-2cols H3 { PADDING-RIGHT: 1.2em; PADDING-LEFT: 1.2em; FONT-SIZE: 110%; BACKGROUND: = url(images/list_bullet.gif) no-repeat 0.1em 0.7em; PADDING-BOTTOM: = 0.4em; MARGIN: 0px; PADDING-TOP: 0.4em } .containerLanding { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 400px; BACKGROUND: = #ededed; PADDING-BOTTOM: 12px; MARGIN: 0px; PADDING-TOP: 10px } DIV.landing DIV.container { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 400px; BACKGROUND: = #ededed; PADDING-BOTTOM: 12px; MARGIN: 0px; PADDING-TOP: 10px } BODY.landingBody DIV.container { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 400px; BACKGROUND: = #ededed; PADDING-BOTTOM: 12px; MARGIN: 0px; PADDING-TOP: 10px } DIV.landingPageColumn { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 1.2em 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.landingPageColumn { FLOAT: left } DIV.oneCol { =09 } DIV.twoCol { MARGIN: 1.2em 0px; WIDTH: 49% } DIV.threeCol { MARGIN: 1.2em 0px; WIDTH: 32.5% } DIV.landingPageColumn UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 0px 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.landingPageColumn UL.outcomesLanding { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0.4em; = PADDING-TOP: 0px } DIV.landingPageColumn UL LI { MARGIN: 0px 0px 1.6em 0em; TEXT-ALIGN: left } DIV.landingPageColumn UL.outcomesLanding LI { MARGIN: 0px 0px 1.2em 0em } DIV.landingPageColumn UL LI A { TEXT-DECORATION: none } DIV.landingPageColumn UL LI A:hover { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI H3 { PADDING-RIGHT: 1.2em; PADDING-LEFT: 1.2em; FONT-SIZE: 110%; BACKGROUND: = url(images/list_bullet.gif) no-repeat 0.1em 0.7em; PADDING-BOTTOM: = 0.4em; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingPageColumn UL.outcomesLanding LI A { PADDING-RIGHT: 1.2em; PADDING-LEFT: 1.2em; FONT-SIZE: 110%; BACKGROUND: = url(images/list_bullet.gif) no-repeat 0.1em 0.7em; PADDING-BOTTOM: = 0.4em; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingPageColumn UL.outcomesLanding LI H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 115%; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0.4em; PADDING-TOP: 0.4em; = BORDER-BOTTOM: #ddd 1px solid } DIV.landingPageColumn UL.outcomesLanding LI A { FONT-WEIGHT: bold; FONT-SIZE: 100% } DIV.landingPageColumn UL.outcomesLanding LI P { BORDER-TOP: 0px } DIV.landingPageColumn UL LI H3 IMG { MARGIN: 0px 0px 0px -12px } DIV.landingPageColumn UL LI H3.hiddenLink { PADDING-RIGHT: 1.2em; PADDING-LEFT: 4.2em; PADDING-BOTTOM: 0.6em; = PADDING-TOP: 1em; POSITION: relative } DIV.landingPageColumn UL LI H3.hiddenLink A { COLOR: #777; TEXT-DECORATION: none } DIV.landingPageColumn UL LI H3.hiddenLink A:hover { COLOR: #777; TEXT-DECORATION: none } DIV.landingPageColumn UL LI H3.hiddenLink IMG { FILTER: alpha(opacity=3D40); LEFT: -3.1em; POSITION: absolute; TOP: = 0px; opacity: 0.4 } DIV.landingPageColumn UL LI UL { PADDING-RIGHT: 0px; PADDING-LEFT: 2.5em; PADDING-BOTTOM: 0px; MARGIN: = 0em 0.4em 0.4em 0.8em; PADDING-TOP: 0px; LIST-STYLE-TYPE: square } DIV.landingPageColumn UL LI UL LI { COLOR: #999! important } DIV.landingPageColumn UL LI UL LI.more { PADDING-TOP: 3px; LIST-STYLE-TYPE: none } DIV.landingPageColumn UL LI UL LI.more A { PADDING-RIGHT: 9px; PADDING-LEFT: 0px; BACKGROUND: = url(images/list_bullet_single.gif) no-repeat right 4px; PADDING-BOTTOM: = 0px; COLOR: #666; PADDING-TOP: 0px } DIV.landingPageColumn UL LI P { PADDING-RIGHT: 0.6em; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 1.4em; = PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #666; PADDING-TOP: 0.4em } DIV.landingPageColumn UL LI UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: = 0px; MARGIN: 0px; COLOR: #666; PADDING-TOP: 0px } #contentPaneWide DIV.gray B { BACKGROUND: #ededed } #contentPane DIV.gray B { BACKGROUND: #ededed } .subhead_text { PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; FONT-SIZE: 90%; PADDING-BOTTOM: = 2px; COLOR: #333333; PADDING-TOP: 0pt } .list_text { PADDING-RIGHT: 2px; PADDING-LEFT: 1.3em; FONT-WEIGHT: normal; = FONT-SIZE: 85%; PADDING-BOTTOM: 2px; COLOR: #666666; PADDING-TOP: 0pt } DIV.landingPageColumn UL.outcomesLanding LI .list_text A { PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; FONT-WEIGHT: normal; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0pt; MARGIN-LEFT: 3px; = PADDING-TOP: 0pt } DIV.datalistScroll { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN: 0.4em = 0px 0.4em 1.4em; OVERFLOW: auto; BORDER-LEFT: #ddd 1px solid; = BORDER-BOTTOM: #ddd 1px solid; HEIGHT: 360px; BACKGROUND-COLOR: white } DIV.datalist { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN: 0.4em = 0px 0.4em 1.4em; BORDER-LEFT: #ddd 1px solid; BORDER-BOTTOM: #ddd 1px = solid; BACKGROUND-COLOR: white } DIV.landingPageColumn UL LI UL.datalistScroll { BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: medium = none; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0.4em 0px 0.4em = 1.4em; OVERFLOW: auto; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #ddd 1px solid; LIST-STYLE-TYPE: none; HEIGHT: 250px; = BACKGROUND-COLOR: white } DIV.landingPageColumn UL LI UL.datalistScroll LI { PADDING-RIGHT: 2px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 2px; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px; BACKGROUND-COLOR: white } DIV.landingPageColumn UL LI UL.datalistScroll LI:hover { BACKGROUND-COLOR: #ffffcc } DIV.landingPageColumn UL LI UL.datalistScroll LI:focus { BACKGROUND-COLOR: #ffffcc } DIV.datalist TABLE THEAD TR TH { COLOR: #fff; BACKGROUND-COLOR: #aaa } DIV.datalistScroll TABLE THEAD TR TH { COLOR: #fff; BACKGROUND-COLOR: #aaa } DIV.datalist TABLE TD.overdue { PADDING-RIGHT: 0pt; PADDING-LEFT: 20px; FONT-WEIGHT: bold; BACKGROUND: = url(images/stage_deadline4.gif) no-repeat left center; PADDING-BOTTOM: = 1px; COLOR: red; PADDING-TOP: 1px } .emptylist { BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: #ddd 1px = solid; PADDING-LEFT: 12px; PADDING-BOTTOM: 12px; MARGIN: 6px 0px 0px = 1.4em; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 12px; BORDER-BOTTOM: = #ddd 1px solid; BACKGROUND-COLOR: white } DIV.landingPageColumn UL LI UL.subcaret { BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: medium = none; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0.4em 0em 0.4em = 1.4em; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: = #ddd 1px solid; LIST-STYLE-TYPE: none } DIV.landingPageColumn UL LI UL.subcaret LI { PADDING-RIGHT: 1px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 2px; = FONT-WEIGHT: normal; BACKGROUND: white; PADDING-BOTTOM: 2px; MARGIN: = 0px; PADDING-TOP: 2px; LIST-STYLE-TYPE: none } DIV.landingPageColumn UL LI UL.subcaret LI.complete { PADDING-RIGHT: 1px; PADDING-LEFT: 20px; BACKGROUND: = url(images/workflow_detail_complete2.gif) white no-repeat 2px 2px; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } DIV.landingPageColumn UL LI UL.subcaret LI.inprogress { PADDING-RIGHT: 1px; PADDING-LEFT: 20px; BACKGROUND: = url(images/workflow_detail_active.gif) white no-repeat 2px 2px; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } .iconLegendLabel { FONT-SIZE: 95%; MARGIN: 1px 0px 1px 1.6em } DIV.landingPageColumn UL LI UL.subcaret LI A { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI UL.datalist LI A { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI DIV A { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI TABLE A { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI P A { TEXT-DECORATION: underline } DIV.designAreaHeader { BORDER-RIGHT: #eee 1px solid; BORDER-TOP: #eee 1px solid; MARGIN: 0.6em = 0px 0.6em 18px; BORDER-LEFT: #eee 1px solid; BORDER-BOTTOM: #eee 1px = solid } DIV.designAreaFooter { BORDER-RIGHT: #eee 1px solid; BORDER-TOP: #eee 1px solid; MARGIN: 0.6em = 0px 0.6em 18px; BORDER-LEFT: #eee 1px solid; BORDER-BOTTOM: #eee 1px = solid } DIV.designAreaHeader H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0.8em; PADDING-BOTTOM: 0.4em; MARGIN: = 0px; COLOR: #666; PADDING-TOP: 0.4em } DIV.designAreaFooter H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0.8em; PADDING-BOTTOM: 0.4em; MARGIN: = 0px; COLOR: #666; PADDING-TOP: 0.4em } DIV.designAreaHeader DIV.headertext { PADDING-RIGHT: 0px; PADDING-LEFT: 0.8em; PADDING-BOTTOM: 0.4em; MARGIN: = 0px; PADDING-TOP: 0px } DIV.designAreaFooter DIV.footertext { PADDING-RIGHT: 0px; PADDING-LEFT: 0.8em; PADDING-BOTTOM: 0.4em; MARGIN: = 0px; PADDING-TOP: 0px } DIV#emptyText { MARGIN: 0.6em 18px } .sequenceMapHead { MARGIN: 6px 0px } .sequenceMapHead H3 { MARGIN: 12px 0px 6px } .sequenceMapHead P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 6px; COLOR: #666666; PADDING-TOP: 0px } DIV.sequenceMapHead DIV.actionBar { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: = #fff7de; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } UL.metaDataList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.metaDataList LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 2px } UL.metaDataList LI H3 { DISPLAY: inline; MARGIN: 0px } INPUT { FONT-SIZE: 100%; VERTICAL-ALIGN: middle } SELECT { FONT-SIZE: 100%; VERTICAL-ALIGN: middle } .additional { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 0px = 0px 6px; PADDING-TOP: 2px; ZOOM: 1; HEIGHT: 1% } .additional .left { FLOAT: left } .additional .right { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FLOAT: right; PADDING-BOTTOM: = 2px; COLOR: #777; PADDING-TOP: 2px } .additional .right SPAN.size { FONT-WEIGHT: bold; COLOR: #000 } .additional .left SPAN.suboption { DISPLAY: block; PADDING-LEFT: 18px } .vtbe_footer { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: 0px; = PADDING-LEFT: 9px; FONT-SIZE: 70%; PADDING-BOTTOM: 2px; BORDER-LEFT: = #ccc 1px solid; COLOR: #666; PADDING-TOP: 2px; BORDER-BOTTOM: #ccc 1px = solid; BACKGROUND-COLOR: #eee } .vtbe_footer SPAN { FONT-SIZE: 100% } .vtbe_footer INPUT[type=3Dbutton] { FONT-SIZE: 95% } .vtbe_footer A { MARGIN: 0px 0px 0px 3px } DIV.steptitle { PADDING-RIGHT: 4px; PADDING-LEFT: 3.2em; FONT-WEIGHT: bold; FONT-SIZE: = 110%; BACKGROUND: #888; PADDING-BOTTOM: 0.33em; MARGIN: 9px 0px 0px; = COLOR: #ffffff; LINE-HEIGHT: 1; PADDING-TOP: 0.33em; LETTER-SPACING: = 1px; POSITION: relative } H3.steptitle { PADDING-RIGHT: 4px; PADDING-LEFT: 3.2em; FONT-WEIGHT: bold; FONT-SIZE: = 110%; BACKGROUND: #888; PADDING-BOTTOM: 0.33em; MARGIN: 9px 0px 0px; = COLOR: #ffffff; LINE-HEIGHT: 1; PADDING-TOP: 0.33em; LETTER-SPACING: = 1px; POSITION: relative } DIV.steptitle SPAN { PADDING-RIGHT: 9px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; BACKGROUND: = #fae7ae; LEFT: 0px; PADDING-BOTTOM: 0.33em; MARGIN: 0px 0px 0px -3.2em; = COLOR: #000; LINE-HEIGHT: 100%; PADDING-TOP: 0.33em; POSITION: absolute; = TOP: 1px } H3.steptitle SPAN { PADDING-RIGHT: 9px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; BACKGROUND: = #fae7ae; LEFT: 0px; PADDING-BOTTOM: 0.33em; MARGIN: 0px 0px 0px -3.2em; = COLOR: #000; LINE-HEIGHT: 100%; PADDING-TOP: 0.33em; POSITION: absolute; = TOP: 1px } H3.noNumber { PADDING-RIGHT: 16px; PADDING-LEFT: 16px; PADDING-BOTTOM: 5px; = PADDING-TOP: 4px } FIELDSET.stepcontent { BORDER-RIGHT: medium none; PADDING-RIGHT: 4px; BORDER-TOP: medium none; = PADDING-LEFT: 16px; PADDING-BOTTOM: 12px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: medium none; PADDING-TOP: 6px; BORDER-BOTTOM: medium none } DIV.stepcontent { BORDER-RIGHT: medium none; PADDING-RIGHT: 4px; BORDER-TOP: medium none; = PADDING-LEFT: 16px; PADDING-BOTTOM: 12px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: medium none; PADDING-TOP: 6px; BORDER-BOTTOM: medium none } FIELDSET.stepcontent FIELDSET { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: medium = none; PADDING-TOP: 0px; BORDER-BOTTOM: medium none } FIELDSET.stepcontent LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .stepHelp { PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%! important; = PADDING-BOTTOM: 4px; MARGIN: 0px 0px 6px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 0px; BORDER-BOTTOM: medium none } FIELDSET.stepcontent OL LI.stepHelp { PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%! important; = PADDING-BOTTOM: 4px; MARGIN: 0px 0px 6px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 0px; BORDER-BOTTOM: medium none } FIELDSET.stepcontent OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } FIELDSET.stepcontent FIELDSET OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.contentBlock OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } FIELDSET.stepcontent OL LI { MARGIN-BOTTOM: 4px; PADDING-BOTTOM: 4px; BORDER-BOTTOM: #eee 1px solid; = HEIGHT: 1% } FIELDSET.stepcontent OL LI:unknown { CLEAR: both; DISPLAY: block; BACKGROUND: red; VISIBILITY: hidden; = HEIGHT: 1%; content: "." } DIV.contentBlock OL LI:unknown { CLEAR: both; DISPLAY: block; BACKGROUND: red; VISIBILITY: hidden; = HEIGHT: 1%; content: "." } FIELDSET.stepcontent UL.nestedList { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: none } FIELDSET.stepcontent OL.nestedList { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: none } FIELDSET.stepcontent UL.nestedList LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 1px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 1px; BORDER-BOTTOM: 0px } FIELDSET.stepcontent OL.nestedList LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 1px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 1px; BORDER-BOTTOM: 0px } FIELDSET.stepcontent UL.nestedList LI INPUT { VERTICAL-ALIGN: middle } FIELDSET.stepcontent OL.nestedList LI INPUT { VERTICAL-ALIGN: middle } UL.nestedListSmall LI { FONT-SIZE: 90% } OL.nestedListSmall LI { FONT-SIZE: 90% } FIELDSET.stepcontent UL.nestedSubList { MARGIN: 6px 6px 6px 30px } FIELDSET.stepcontent OL.nestedSubList { MARGIN: 6px 6px 6px 30px } DIV.nestedSubList { MARGIN: 6px 6px 6px 30px } DIV.stepLite { PADDING-RIGHT: 16px; PADDING-LEFT: 16px; PADDING-BOTTOM: 12px; = PADDING-TOP: 6px } DIV.columnStep DIV.column-3 { MIN-HEIGHT: 200px } DIV.columnStep DIV.column-3 DIV TABLE.attachments TR TH { FONT-SIZE: 90% } DIV.columnStep DIV.column-3 DIV TABLE.attachments TR TD { FONT-SIZE: 90% } DIV.columnStep DIV H3 { MARGIN: 6px } DIV.columnStep DIV DIV { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } FIELDSET OL LI SPAN { PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; COLOR: #666666; PADDING-TOP: 0px; BORDER-BOTTOM: = medium none } FIELDSET OL LI OL LI SPAN { PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; COLOR: #666666; PADDING-TOP: 0px; BORDER-BOTTOM: = medium none } .contentBlock OL LI SPAN { PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; COLOR: #666666; PADDING-TOP: 0px; BORDER-BOTTOM: = medium none } FIELDSET OL LI SPAN.nonHelp { FONT-SIZE: 95%; COLOR: #000 } FIELDSET OL LI OL LI SPAN.nonHelp { FONT-SIZE: 95%; COLOR: #000 } FIELDSET OL LI SPAN.fieldHelp { FONT-SIZE: 95% } FIELDSET OL LI SPAN.tagContainer INPUT { FONT-SIZE: 95% } FIELDSET OL LI SPAN.tagContainer A.browse { FONT-SIZE: 95% } FIELDSET OL LI SPAN.tagContainer { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; = PADDING-TOP: 2px } FIELDSET OL LI SPAN.tagContainer SPAN { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; = PADDING-TOP: 2px } FIELDSET OL LI OL LI SPAN.tagContainer { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; = PADDING-TOP: 2px } FIELDSET OL LI OL LI SPAN.tagContainer SPAN { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; = PADDING-TOP: 2px } FIELDSET OL LI SPAN.tagContainer SPAN.hidden { DISPLAY: none } FIELDSET OL LI OL LI SPAN.tagContainer SPAN.hidden { DISPLAY: none } FIELDSET OL LI SPAN.hidden { DISPLAY: none } FIELDSET OL LI OL LI SPAN.hidden { DISPLAY: none } .contentBlock OL LI SPAN.hidden { DISPLAY: none } OL.nestedList LI DIV.imgLabel { WIDTH: auto } OL.nestedList LI DIV.imgLabel SPAN.fileName { PADDING-RIGHT: 6px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = bold; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } OL.nestedList LI DIV.imgLabel SPAN.control { DISPLAY: inline } OL.nestedList LI DIV.imgLabel SPAN A { =09 } #title_color_value { PADDING-TOP: 6px } .largeText DIV.label { FONT-WEIGHT: bold; FONT-SIZE: 130% } .largeText DIV.field { FONT-WEIGHT: bold; FONT-SIZE: 130% } .largeText A.browse { FONT-WEIGHT: normal; FONT-SIZE: 75%! important; MARGIN: 0px 0px 0px 3px } .field A.browse { FONT-SIZE: 95%; MARGIN: 0px 0px 0px 3px } DIV.editBlock { FLOAT: left; MARGIN-RIGHT: 12px } .largeText DIV.field DIV.editBlock LABEL { FONT-WEIGHT: normal; FONT-SIZE: 80% } .largeText DIV.field DIV.exemptdiv LABEL { FONT-SIZE: 120% } .largeText TEXTAREA { FONT-SIZE: 80% } LI.inEditMode { BORDER-RIGHT: #444 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: #444 2px = solid; PADDING-LEFT: 9px; BACKGROUND: #ededed; PADDING-BOTTOM: 3px; = BORDER-LEFT: #444 2px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #444 2px = solid; -moz-border-radius: 6px } FIELDSET.stepcontent OL LI.fieldError { PADDING-RIGHT: 0px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 0px; PADDING-TOP: 2px; BORDER-BOTTOM: #fff 1px solid } LI.fieldError { PADDING-RIGHT: 0px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 0px; PADDING-TOP: 2px; BORDER-BOTTOM: #fff 1px solid } FIELDSET.stepcontent OL LI.fieldError SPAN.fieldErrorText { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: red } SPAN.warningMsg { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: red } SPAN.warningMsg { DISPLAY: inline; MARGIN-LEFT: 0px } .reqfield { FLOAT: left; COLOR: #666 } LI.required DIV.label LABEL IMG { MARGIN: 0px } LI.required DIV.label IMG { MARGIN: 0px } LI DIV.label IMG.indicator { LEFT: -18px; POSITION: absolute; TOP: 0px } LI.required INPUT { CLEAR: none } FIELDSET.info { BACKGROUND: #f6f6f6; MARGIN: 0px } DIV.info { BACKGROUND: #f6f6f6; MARGIN: 0px } FIELDSET.info DIV.label { COLOR: #666 } DIV.label { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 3px; WIDTH: 20%; COLOR: black; PADDING-TOP: 0px; POSITION: relative; = TOP: 0px } DIV.field { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 3px; OVERFLOW: visible; = WIDTH: 79%; WORD-BREAK: normal; WORD-WRAP: break-word } DIV.noLabelField { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 3px; OVERFLOW: visible; = WIDTH: 79%; WORD-BREAK: normal; WORD-WRAP: break-word } DIV.noLabelField { WIDTH: 100% } DIV.label SPAN.contextMenuContainer { DISPLAY: inline } .vtbeSwitch { POSITION: relative; HEIGHT: 1em } .legacy .vtbeSwitch { HEIGHT: 2.2em } .vtbeSwitch DIV.modeSwitchWrap { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #cccccc 1px solid; PADDING-LEFT: 6px; RIGHT: 0px; PADDING-BOTTOM: 4px; = BORDER-LEFT: #cccccc 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: 0px; = BACKGROUND-COLOR: #eeeeee } .vtbeSwitch DIV.modeSwitchWrap A { WIDTH: 4em } .vtbeSwitch DIV.modeSwitchWrap A SPAN#statusText { WIDTH: 2.7em } .vtbeSwitch DIV.modeSwitchWrap A.read-off { BACKGROUND-COLOR: #eee } .vtbeSwitch DIV.modeSwitchWrap A.read-off:hover { BACKGROUND-COLOR: #fff } .vtbeSwitch DIV.modeSwitchWrap A.read-on SPAN#statusText { COLOR: #ffffff } .vtbeSwitch DIV.modeSwitchWrap A.read-off:hover SPAN#statusText { COLOR: #000 } TABLE.vtbeTable-legacy { WIDTH: 30em } .vtbeTable-legacy TEXTAREA { WIDTH: 99% } DIV.quickAddPal FIELDSET.stepcontent { PADDING-RIGHT: 6px; PADDING-LEFT: 9px; PADDING-BOTTOM: 3px; MARGIN: = 0px; PADDING-TOP: 3px } DIV.quickAddPal FIELDSET.stepcontent OL LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 1px; BORDER-TOP: 0px; PADDING-LEFT: = 1px; PADDING-BOTTOM: 0px; MARGIN: 0px 2px; BORDER-LEFT: 0px; = PADDING-TOP: 1px; BORDER-BOTTOM: 0px } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.label { PADDING-RIGHT: 2px; OVERFLOW: visible; WIDTH: 30% } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.field { WIDTH: 65% } DIV.quickAddPal FIELDSET.stepcontent OL LI.required DIV.label LABEL IMG = { MARGIN: 0px } DIV.quickAddPal FIELDSET.stepcontent OL LI.required DIV.label IMG { MARGIN: 0px } DIV.quickAddPal UL LI.fieldError SPAN.fieldErrorText { DISPLAY: block; FONT-WEIGHT: normal; FONT-SIZE: 90%; MARGIN-LEFT: 74px; = COLOR: red } DIV.quickAddPal DIV.field INPUT[type=3Dtext] { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; FONT-SIZE: = 100%; BORDER-LEFT: #666 1px solid; WIDTH: 100%; BORDER-BOTTOM: #666 1px = solid } DIV.quickAddPal DIV.field SELECT { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; FONT-SIZE: = 100%; BORDER-LEFT: #666 1px solid; WIDTH: 100%; BORDER-BOTTOM: #666 1px = solid } DIV.quickAddPal DIV.field TEXTAREA { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; FONT-SIZE: = 100%; BORDER-LEFT: #666 1px solid; WIDTH: 100%; BORDER-BOTTOM: #666 1px = solid } DIV.quickAddPal DIV.field INPUT[type=3Dcheckbox] { WIDTH: auto } DIV.quickAddPal LI.stepHelp { WIDTH: auto } DIV.quickAddPal LI DIV SPAN { WIDTH: auto } DIV.field SPAN.fileName { PADDING-RIGHT: 6px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = bold; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } DIV.field SPAN.control { DISPLAY: inline } DIV.quickAddPal DIV.field INPUT.datePickerInput { WIDTH: 8em } DIV.quickAddPal DIV.field INPUT.timePickerInput { WIDTH: 8em } DIV#texteditor { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FLOAT: left; PADDING-BOTTOM: = 3px; MARGIN: 0px; PADDING-TOP: 3px } DIV#texteditor TEXTAREA { DISPLAY: block; MARGIN-LEFT: 0px; WIDTH: 450px } DIV#texteditor A.textBoxItem { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; PADDING-BOTTOM: = 2px; WIDTH: 80%; PADDING-TOP: 2px; TEXT-ALIGN: right } FIELDSET.stepcontent OL LI INPUT[type=3D'text'] { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666 1px = solid } SELECT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666 1px = solid } TEXTAREA { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666 1px = solid } SELECT.survey_question { MAX-WIDTH: 100% } HTML * SELECT.survey_question { WIDTH: 100% } TEXTAREA { FONT-SIZE: 100% } TEXTAREA { FONT-SIZE: 100% } INPUT:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } TEXTAREA:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } #loginBox INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } #loginBox INPUT[type=3D'password']:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } .portlet #loginBoxFull LI INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } .portlet #loginBoxFull LI INPUT[type=3D'password']:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } FIELDSET.stepcontent OL LI INPUT.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 9px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 0px; OVERFLOW: visible; BORDER-LEFT: = #ccc 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; = FONT-FAMILY: "Lucida Grande",Arial, Verdana, sans-serif } INPUT.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 9px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 0px; OVERFLOW: visible; BORDER-LEFT: = #ccc 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; = FONT-FAMILY: "Lucida Grande",Arial, Verdana, sans-serif } A.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 6px; FONT-SIZE: 95%; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x right bottom; = PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #aaa 1px solid; FONT-FAMILY: "Lucida Grande", Arial, = Verdana, sans-serif; TEXT-DECORATION: none } FIELDSET.stepcontent OL LI A.browseIcon { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 1px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } .stepcontent A.browseIcon { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 1px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } DIV.portlet DIV.portletBlock A.browseIcon { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 1px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } A.browseIcon { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 1px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } A.browse:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.browseIcon:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.browse:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.browseIcon:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } DIV.details A.browse { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 1px; MARGIN: 0px = auto; PADDING-TOP: 0px } DIV.details A.browse:hover { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 1px; MARGIN: 0px = auto; PADDING-TOP: 0px } P.taskbuttondiv { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 16px; = PADDING-BOTTOM: 6px; MARGIN: 9px 0px 0px; PADDING-TOP: 6px; TEXT-ALIGN: = right } P.taskButtonsContent { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 16px; = PADDING-BOTTOM: 6px; MARGIN: 9px 0px 0px; PADDING-TOP: 6px; TEXT-ALIGN: = right } P.okbutton { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 16px; = PADDING-BOTTOM: 6px; MARGIN: 9px 0px 0px; PADDING-TOP: 6px; TEXT-ALIGN: = right } DIV.container P.taskbuttondiv:first-child { MARGIN-TOP: 0px } DIV#dataCollectionContainer P.taskbuttondiv:first-child { MARGIN-TOP: 12px } DIV#dataCollectionContainer SPAN.reqfield + P.taskbuttondiv { MARGIN-TOP: 12px } DIV#containerdiv FORM.mapCanvasForm P.taskbuttondiv:first-child { MARGIN-TOP: 12px } DIV#dataCollectionContainer P.taskbuttonhelp + P.taskbuttondiv { MARGIN-TOP: 0px; PADDING-TOP: 0px } SPAN.stepTitleRight P.taskbuttondiv { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; FONT-SIZE: = 80%! important; PADDING-BOTTOM: 0px! important; MARGIN: -2pt 0px; = PADDING-TOP: 0px! important } SPAN.contentListRight P.taskbuttondiv { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; FONT-SIZE: = 80%! important; PADDING-BOTTOM: 0px! important; MARGIN: -2pt 0px; = PADDING-TOP: 0px! important } P.backLink { RIGHT: 4px; MARGIN: 0px; BOTTOM: 6px; POSITION: absolute } P.backLink A { PADDING-RIGHT: 8px; DISPLAY: inline-block; PADDING-LEFT: 8px; = FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: #bbb; PADDING-BOTTOM: = 2px; COLOR: #fff; PADDING-TOP: 2px; TEXT-DECORATION: none; = -moz-border-radius: 3px; -webkit-border-radius: 3px } .taskButtonsContent { PADDING-RIGHT: 12px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 12px; = PADDING-BOTTOM: 0px; MARGIN: 24px -12px 0px; PADDING-TOP: 9px } .taskbuttondiv BUTTON { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } .taskbuttondiv INPUT { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } .taskButtonsContent BUTTON { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } .taskButtonsContent INPUT { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } DIV.controls BUTTON { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } DIV.controls INPUT { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } P.okbutton INPUT { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } BUTTON.secondary { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } INPUT.secondary { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } A.secondary { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } P.okbutton INPUT { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 100%; PADDING-BOTTOM: = 1px; PADDING-TOP: 1px } .taskbuttondiv BUTTON.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskbuttondiv INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskButtonsContent BUTTON.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskButtonsContent INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } DIV.controls BUTTON.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } DIV.controls INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskbuttondiv BUTTON.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskbuttondiv INPUT.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskButtonsContent BUTTON.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskButtonsContent INPUT.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } DIV.controls BUTTON.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } DIV.controls INPUT.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } #loginBox LI INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } BUTTON.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } A.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } #loginBox LI INPUT[type=3D'submit'] { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } #loginBox LI INPUT[type=3D'submit']:hover { BACKGROUND-COLOR: #344a6c } .portlet INPUT.submit:hover { BACKGROUND-COLOR: #344a6c } .taskbuttondiv BUTTON.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .taskbuttondiv INPUT.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .taskButtonsContent BUTTON.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .taskButtonsContent INPUT.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } DIV.controls BUTTON.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } DIV.controls INPUT.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } BUTTON.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } INPUT.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .disabled:hover { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } A.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } A.disabled:hover { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } A.disabled:focus { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .quickAddPal DIV.controls INPUT { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 100%; PADDING-BOTTOM: = 1px; MARGIN: 0px 1px; PADDING-TOP: 1px } .taskbuttonhelp { PADDING-RIGHT: 4px; PADDING-LEFT: 30px; FONT-SIZE: 95%! important; = PADDING-BOTTOM: 0px; MARGIN: 9px 0px 0px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 0px } .container P.taskbuttonhelp { PADDING-LEFT: 33px } #taskbuttondiv P { BORDER-RIGHT: red 1px solid; BORDER-TOP: red 1px solid; DISPLAY: block; = FONT-SIZE: 90%; MARGIN: 6px 0px; BORDER-LEFT: red 1px solid; = BORDER-BOTTOM: red 1px solid; FONT-STYLE: italic; TEXT-ALIGN: left } DIV.lbContainer P.taskButtonsContent { MARGIN: 12px 0px 6px } FIELDSET.stepcontent OL LI A.colorChip { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 2px; = PADDING-BOTTOM: 1px; PADDING-TOP: 1px } A.colorChip { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 2px; = PADDING-BOTTOM: 1px; PADDING-TOP: 1px } FIELDSET.stepcontent OL LI A.colorChip SPAN { DISPLAY: inline-block; PADDING-LEFT: 2px; BACKGROUND: = url(images/cm_arrow.gif) no-repeat 2px 0px; VERTICAL-ALIGN: middle } A.colorChip SPAN { DISPLAY: inline-block; PADDING-LEFT: 2px; BACKGROUND: = url(images/cm_arrow.gif) no-repeat 2px 0px; VERTICAL-ALIGN: middle } A.colorChip IMG.chipSwatch { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #ccc 1px solid; BORDER-LEFT: = #ccc 1px solid; WIDTH: 16px; BORDER-BOTTOM: #aaa 1px solid; HEIGHT: 16px } FIELDSET.stepcontent OL LI A.colorChip SPAN IMG { FILTER: alpha(opacity=3D0); WIDTH: 16px; HEIGHT: 16px; opacity: 0 } A.colorChip SPAN IMG { FILTER: alpha(opacity=3D0); WIDTH: 16px; HEIGHT: 16px; opacity: 0 } SPAN.colorChipName { DISPLAY: inline-block; VERTICAL-ALIGN: middle } .stepTitleRight { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; RIGHT: 6px! important; BACKGROUND: #fae7ae; LEFT: auto! important; = PADDING-BOTTOM: 4px; COLOR: #000; LINE-HEIGHT: 1; PADDING-TOP: 3px; = LETTER-SPACING: 1px; POSITION: absolute; TOP: 0px } .saver { CLEAR: left } .exemptdiv { FONT-SIZE: 60% } TABLE .exemptdiv { CLEAR: left; FONT-SIZE: 100% } .gbtablesimple .exemptdiv { MARGIN-TOP: 5px; PADDING-LEFT: 20px; FONT-SIZE: 90% } DIV .editgrade TABLE.resizeCommentsTable TEXTAREA { FONT-SIZE: 130% } .gc_info UL { TEXT-ALIGN: left! important } .gbtablesimple .exemptdiv INPUT { MARGIN-LEFT: -20px } DIV.field TABLE TBODY TR TD TABLE LABEL { FONT-SIZE: 110% } DIV.field TABLE TBODY TR TD TABLE SELECT { FONT-SIZE: 110% } DIV.selectItems { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: none; PADDING-LEFT: 3px; BACKGROUND: #eee; FLOAT: left; = PADDING-BOTTOM: 9px; MARGIN: 2px 0px 0px 9px; BORDER-LEFT: #ccc 1px = solid; WIDTH: 580px; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid } DIV.selectItems DIV { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FLOAT: left; PADDING-BOTTOM: = 3px; MARGIN: 0px; PADDING-TOP: 3px } DIV.selectItems DIV SELECT { DISPLAY: block; MARGIN: 6px 0px; WIDTH: 265px } DIV.selectItems DIV INPUT[type=3Dbutton] { MARGIN: 6px 0px } DIV.selectItems DIV.selectArrows { MARGIN: 40px 0px } DIV.selectArrows A { DISPLAY: block; MARGIN: 6px 0px } DIV.noLabelField DIV.selectItems { WIDTH: 97% } DIV.noLabelField DIV.selectItems DIV { WIDTH: 46% } DIV.noLabelField DIV.selectItems DIV SELECT { WIDTH: 100% } DIV.noLabelField DIV.selectItems DIV.selectArrows { WIDTH: 5%; TEXT-ALIGN: center } DIV.noLabelField DIV.selectArrows A { MARGIN: 6px auto } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 6px; WIDTH: 288px; PADDING-TOP: 0px; = LIST-STYLE-TYPE: none } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI { BORDER-RIGHT: #333 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #333 1px = solid; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; = OVERFLOW: hidden; BORDER-LEFT: #333 1px solid; WIDTH: 14px; CURSOR: = pointer; PADDING-TOP: 0px; BORDER-BOTTOM: #333 1px solid; = LIST-STYLE-TYPE: none; HEIGHT: 14px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A { DISPLAY: block; OVERFLOW: hidden; WIDTH: 14px; HEIGHT: 14px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A:link { DISPLAY: block; OVERFLOW: hidden; WIDTH: 14px; HEIGHT: 14px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A:hover { BORDER-RIGHT: #333 1px solid; BORDER-TOP: #333 1px solid; BORDER-LEFT: = #333 1px solid; WIDTH: 12px; BORDER-BOTTOM: #333 1px solid; HEIGHT: 12px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A:active { BORDER-RIGHT: #fff 2px solid; BORDER-TOP: #fff 2px solid; BORDER-LEFT: = #fff 2px solid; WIDTH: 10px; BORDER-BOTTOM: #fff 2px solid; HEIGHT: 10px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A:focus { BORDER-RIGHT: #fff 2px solid; BORDER-TOP: #fff 2px solid; BORDER-LEFT: = #fff 2px solid; WIDTH: 10px; BORDER-BOTTOM: #fff 2px solid; HEIGHT: 10px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI = A.whiteSwatch:active { BORDER-RIGHT: #ddd 2px solid; BORDER-TOP: #ddd 2px solid; BORDER-LEFT: = #ddd 2px solid; WIDTH: 10px; BORDER-BOTTOM: #ddd 2px solid; HEIGHT: 10px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI = A.whiteSwatch:focus { BORDER-RIGHT: #ddd 2px solid; BORDER-TOP: #ddd 2px solid; BORDER-LEFT: = #ddd 2px solid; WIDTH: 10px; BORDER-BOTTOM: #ddd 2px solid; HEIGHT: 10px } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.colorPreview { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; BACKGROUND: white; = PADDING-BOTTOM: 3px; PADDING-TOP: 3px } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.colorPreview IMG { BORDER-RIGHT: #444 1px solid; BORDER-TOP: #444 1px solid; DISPLAY: = block; BACKGROUND: black; FLOAT: left; MARGIN: 3px; BORDER-LEFT: #444 = 1px solid; WIDTH: 42px; BORDER-BOTTOM: #444 1px solid; HEIGHT: 42px } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.colorPreview DIV { FLOAT: left; MARGIN-LEFT: 3px; WIDTH: 66% } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.colorPreview SPAN { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 0px; = FONT-SIZE: 100%; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 100%; COLOR: = black; PADDING-TOP: 0px } SPAN.title_color_name { COLOR: #666666 } UL.stepPanels { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; PADDING-BOTTOM: 12px; MARGIN: 0px; BORDER-LEFT: = medium none; PADDING-TOP: 6px; BORDER-BOTTOM: medium none; = LIST-STYLE-TYPE: none } UL.stepPanels LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM: medium none } FIELDSET.stepcontent OL LI UL.stepPanels LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM: medium none } H3.mdHead { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #ddd; = PADDING-BOTTOM: 3px; MARGIN: 4px 0px 0px; CURSOR: pointer; PADDING-TOP: = 3px; ZOOM: 1; POSITION: relative } H4.panelTitle { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #ddd; = PADDING-BOTTOM: 3px; MARGIN: 4px 0px 0px; CURSOR: pointer; PADDING-TOP: = 3px; ZOOM: 1; POSITION: relative } H3.mdHead A { COLOR: #000; TEXT-DECORATION: none } H4.panelTitle A { COLOR: #000; TEXT-DECORATION: none } H4.panelTitle A SPAN.date { FONT-WEIGHT: normal; FONT-SIZE: 95%; RIGHT: 6px; COLOR: #666; POSITION: = absolute; TOP: 2px; TEXT-DECORATION: none } H4.panelTitle SPAN.date { FONT-WEIGHT: normal; FONT-SIZE: 95%; RIGHT: 6px; COLOR: #666; POSITION: = absolute; TOP: 2px; TEXT-DECORATION: none } H4.panelTitle A { DISPLAY: block; WIDTH: 100% } H4.panelTitle A SPAN { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-SIZE: 95%; = PADDING-BOTTOM: 2px; COLOR: black; PADDING-TOP: 2px } H3.mdHead A SPAN.date { FONT-WEIGHT: normal } DIV.mdList { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; BACKGROUND: #f6f6f6; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 9px; PADDING-TOP: 9px } DIV.stepPanel { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; BACKGROUND: #f6f6f6; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 9px; PADDING-TOP: 9px } DIV.stepPanel P SPAN { COLOR: #666 } DIV.mdList H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.stepPanel H5 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.mdList P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 5px 5px 5px 12px; PADDING-TOP: 0px } DIV.stepPanel P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 5px 5px 5px 12px; PADDING-TOP: 0px } DIV.stepPanelControls { FONT-SIZE: 90% } .contentAreaBlock { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: 0px; = PADDING-LEFT: 12px; BACKGROUND: no-repeat right bottom; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 24px; BORDER-LEFT: #dcdcdc 1px solid; PADDING-TOP: = 12px; BORDER-BOTTOM: #aaa 1px solid } UL.buttonLibrary { BORDER-RIGHT: #bbb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #bbb 1px = solid; PADDING-LEFT: 6px; BACKGROUND: #f6f6f6; PADDING-BOTTOM: 6px; = MARGIN: 9px 0px; OVERFLOW: auto; BORDER-LEFT: #bbb 1px solid; = MAX-HEIGHT: 300px; PADDING-TOP: 6px; BORDER-BOTTOM: #bbb 1px solid; = LIST-STYLE-TYPE: none } UL.buttonLibrary LI { BORDER-RIGHT: medium none; BORDER-TOP: medium none; FLOAT: left; = BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } UL.buttonLibrary LI A { PADDING-RIGHT: 7px; DISPLAY: block; PADDING-LEFT: 7px; FONT-SIZE: 105%; = PADDING-BOTTOM: 3px; COLOR: #777; PADDING-TOP: 3px; TEXT-ALIGN: center; = TEXT-DECORATION: none } UL.buttonLibrary LI A.selected { FONT-WEIGHT: bold; TEXT-DECORATION: none } UL.buttonLibrary LI A:hover { TEXT-DECORATION: underline } DIV.menuStyleStep { FLOAT: left; MARGIN: 9px 40px 0pt 0pt; WIDTH: 212px } DIV.menuStyleStep DIV.topRound { DISPLAY: none } DIV.menuDefaultStyleStep { MARGIN: 9px auto; WIDTH: 212px } .fileInputWrapper { PADDING-RIGHT: 3px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; OVERFLOW: hidden; MARGIN-RIGHT: 9px; PADDING-TOP: 0px; POSITION: = relative; TOP: -5px } .fileInputWrapper INPUT.hiddenInput { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 210%; Z-INDEX: 2; = RIGHT: 0px; FILTER: alpha(opacity=3D0); PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; POSITION: absolute; TOP: 0px; TEXT-ALIGN: right; = opacity: 0 } .fileInputWrapper INPUT[type=3D'file'] { FILTER: alpha(opacity=3D0)! important } .fileInputWrapper INPUT.visibleInput { Z-INDEX: 1; RIGHT: 0px; POSITION: relative; TOP: 0px } .schemeWrapper { FLOAT: left; MARGIN: 0pt 12px 0pt 0pt } UL.buttonLibrary LI DIV.schemeWrapper { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 0px = solid; PADDING-LEFT: 5px; BACKGROUND: #fff; PADDING-BOTTOM: 5px; MARGIN: = 0px; BORDER-LEFT: #ccc 0px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #ccc = 1px solid } .schemeWrapper SPAN { FONT-SIZE: 95%; TEXT-ALIGN: center } UL.buttonLibrary LI.selected { BACKGROUND: url(images/dcp_block_bg.png) #555555 no-repeat right bottom } UL.buttonLibrary LI.selected A.selected { FONT-WEIGHT: bold; COLOR: #ffffff! important } UL.buttonLibrary LI.selected A.selected SPAN { FONT-WEIGHT: bold; COLOR: #ffffff! important } UL.buttonLibrary LI.selected A { FONT-WEIGHT: bold; COLOR: #ffffff! important } UL.buttonLibrary LI.selected A SPAN { FONT-WEIGHT: bold; COLOR: #ffffff! important } UL.buttonLibrary LI .schemeWrapper { FLOAT: none; MARGIN-RIGHT: 6px } UL.buttonLibrary LI { PADDING-RIGHT: 6px! important; PADDING-LEFT: 6px! important; = PADDING-BOTTOM: 6px! important; MARGIN: 0px 4px 4px 0px; PADDING-TOP: = 6px! important } .schemePreview { BORDER-RIGHT: #ededed 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #ededed 0px solid; PADDING-LEFT: 16px; PADDING-BOTTOM: 0px; BORDER-LEFT: = #ededed 0px solid; WIDTH: 160px; PADDING-TOP: 12px; BORDER-BOTTOM: = #ededed 1px solid } .modulePreview { BORDER-RIGHT: 0px solid; PADDING-RIGHT: 0px; BORDER-TOP: 2px solid; = PADDING-LEFT: 0px; FONT-SIZE: 85%; RIGHT: 0px; LEFT: auto; = PADDING-BOTTOM: 0px; MARGIN: 6px 0px 0px auto; BORDER-LEFT: 2px solid; = WIDTH: 140px; BOTTOM: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px solid; = POSITION: relative } .schemePreviewHead { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; PADDING-BOTTOM: 3px; PADDING-TOP: 3px } .modulePreviewHead { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; BACKGROUND: = url(images/gradient_black_short_bt.png) repeat-x 0pt center; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } .schemePreviewBody { PADDING-RIGHT: 0px; PADDING-LEFT: 9px; PADDING-BOTTOM: 0px; = PADDING-TOP: 3px; POSITION: relative } .modulePreviewBody { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 3px; = PADDING-TOP: 2px } .themeDefault .schemePreview { BACKGROUND: #cdcdcd } .themeDefault .schemePreviewHead { COLOR: #000; BACKGROUND-COLOR: #fff1c5 } .themeDefault .schemePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .themeDefault .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .themeDefault .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .themeDefault .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .opal .schemePreview { BACKGROUND: #e4ecf4 } .opal .schemePreviewHead { COLOR: #e4ecf4; BACKGROUND-COLOR: #891414 } .opal .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .opal .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .opal .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .opal .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .desert .schemePreview { BACKGROUND: #f7f5d2 } .desert .schemePreviewHead { COLOR: #383023; BACKGROUND-COLOR: #c5a97b } .desert .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .desert .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .desert .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .desert .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .plum .schemePreview { BORDER-RIGHT: #666699 2px solid; BORDER-TOP: #666699 2px solid; = BORDER-LEFT: #666699 2px solid; BORDER-BOTTOM: #666699 2px solid } .plum .schemePreviewHead { COLOR: #ffcc00; BACKGROUND-COLOR: #666699 } .plum .schemePreviewBody { BACKGROUND: #f2f0f4; COLOR: #000 } .fall .schemePreview { BACKGROUND: #e8dfa9 } .fall .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #e87b28 } .fall .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .fall .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .fall .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .fall .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .sandstone .schemePreview { BORDER-RIGHT: #336666 2px solid; BORDER-TOP: #336666 2px solid; = BORDER-LEFT: #336666 2px solid; BORDER-BOTTOM: #336666 2px solid } .sandstone .schemePreviewHead { COLOR: #666600; BACKGROUND-COLOR: #cccc99 } .sandstone .schemePreviewBody { BACKGROUND: #e7e7b8; COLOR: #000 } .forest .schemePreview { BORDER-RIGHT: #339933 2px solid; BORDER-TOP: #339933 2px solid; = BORDER-LEFT: #339933 2px solid; BORDER-BOTTOM: #339933 2px solid } .forest .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #339933 } .forest .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .spring .schemePreview { BORDER-RIGHT: #cc99cc 2px solid; BORDER-TOP: #cc99cc 2px solid; = BORDER-LEFT: #cc99cc 2px solid; BORDER-BOTTOM: #cc99cc 2px solid } .spring .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #cc99cc } .spring .schemePreviewBody { BACKGROUND: #fddede; COLOR: #000 } .state .schemePreview { BORDER-RIGHT: #eee 2px solid; BORDER-TOP: #eee 2px solid; BORDER-LEFT: = #eee 2px solid; BORDER-BOTTOM: #eee 2px solid } .state .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #ccc } .state .schemePreviewBody { BACKGROUND: #eee; COLOR: #000 } .mesa .schemePreview { BORDER-RIGHT: #ffffcc 2px solid; BORDER-TOP: #ffffcc 2px solid; = BORDER-LEFT: #ffffcc 2px solid; BORDER-BOTTOM: #ffffcc 2px solid } .mesa .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #993333 } .mesa .schemePreviewBody { BACKGROUND: #ffcccc; COLOR: #000 } .summer .schemePreview { BORDER-RIGHT: #669999 2px solid; BORDER-TOP: #669999 2px solid; = BORDER-LEFT: #669999 2px solid; BORDER-BOTTOM: #669999 2px solid } .summer .schemePreviewHead { COLOR: #ffffcc; BACKGROUND-COLOR: #99cccc } .summer .schemePreviewBody { BACKGROUND: #ffffcc; COLOR: #000 } .ocean .schemePreview { BACKGROUND: #dfdfff } .ocean .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #47478e } .ocean .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .ocean .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .ocean .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .ocean .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .tree .schemePreview { BORDER-RIGHT: #669966 2px solid; BORDER-TOP: #669966 2px solid; = BORDER-LEFT: #669966 2px solid; BORDER-BOTTOM: #669966 2px solid } .tree .schemePreviewHead { COLOR: #225522; BACKGROUND-COLOR: #669966 } .tree .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } DIV.fontPreview { BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #000 1px = solid; DISPLAY: block; PADDING-LEFT: 4px; BACKGROUND: #fff; FLOAT: left; = PADDING-BOTTOM: 4px; MARGIN: 3px 0px; BORDER-LEFT: #000 1px solid; = PADDING-TOP: 4px; BORDER-BOTTOM: #000 1px solid } .textareaDiv { PADDING-BOTTOM: 6px } .textareaDiv TABLE { WIDTH: 98% } .textareaDiv TABLE TABLE { WIDTH: 100% } .textareaDiv TABLE TABLE TABLE { WIDTH: 100% } .textareaDiv TEXTAREA { BORDER-TOP: #666 2px solid; WIDTH: 100% } DIV.textToolbar { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 0px; BACKGROUND: #f6f6f6; PADDING-BOTTOM: 4px; = BORDER-LEFT: #ccc 1px solid; WIDTH: 97.7%; PADDING-TOP: 4px; = BORDER-BOTTOM: #ccc 1px solid } DIV.textToolbar A { FONT-SIZE: 90%; WHITE-SPACE: nowrap } DIV.textToolbar LABEL { PADDING-LEFT: 4px; FONT-SIZE: 90%; VERTICAL-ALIGN: middle } DIV.textToolbar SELECT { FONT-SIZE: 90%; VERTICAL-ALIGN: middle } .previewTextArea { BORDER-RIGHT: #999 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: #999 2px = solid; DISPLAY: none; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 0px; OVERFLOW: auto; BORDER-LEFT: #999 2px solid; WIDTH: = 459px; PADDING-TOP: 0px; BORDER-BOTTOM: #999 2px solid; HEIGHT: 112px } .previewTextArea DIV.previewTitle { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #eee; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 4px; PADDING-TOP: 2px; = BORDER-BOTTOM: #eee 2px solid } .previewTextArea DIV.previewTitle A { FLOAT: right } .previewTextArea DIV.previewTitle H6 { FONT-SIZE: 90%; FLOAT: left; MARGIN: 0px } .previewTextArea DIV.previewContent { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px } FIELDSET.stepcontent OL.hierarchy { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; COLOR: #999; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } FIELDSET.stepcontent OL.hierarchy LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: #ddd 1px solid; = PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; BACKGROUND-COLOR: #fff } OL.hierarchy LI OL LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: #ddd 1px solid; = PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; BACKGROUND-COLOR: #fff } OL.hierarchy LI OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 8px = 0px 0px 30px; COLOR: #999; PADDING-TOP: 0px } OL.hierarchy LI H5 { PADDING-RIGHT: 11em; PADDING-LEFT: 3px; FONT-SIZE: 100%; = PADDING-BOTTOM: 3px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 8px; = POSITION: relative; BACKGROUND-COLOR: #fff } OL.hierarchy LI H5 SPAN { DISPLAY: inline; FONT-SIZE: 100%; COLOR: #888; BORDER-BOTTOM: medium = none } OL.hierarchy LI H5 A { FONT-WEIGHT: normal; FONT-SIZE: 90%; RIGHT: 0px; POSITION: absolute; = TOP: 9px } OL.hierarchy LI DIV { PADDING-RIGHT: 2px; PADDING-LEFT: 12px; FONT-SIZE: 95%; PADDING-BOTTOM: = 2px; VERTICAL-ALIGN: middle; PADDING-TOP: 9px; TEXT-ALIGN: right } OL.hierarchy LI DIV.gbData SPAN { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 9px; FONT-SIZE: = 100%; PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 9px; BORDER-LEFT: #ccc = 1px dotted; COLOR: #000; PADDING-TOP: 2px } OL.hierarchy LI DIV.gbData SPAN:first-child { PADDING-LEFT: 0px; MARGIN-LEFT: 0px; BORDER-LEFT: medium none } OL.hierarchy LI DIV INPUT.points { VERTICAL-ALIGN: middle } OL.hierarchy LI DIV INPUT { VERTICAL-ALIGN: middle } OL.hierarchy LI DIV INPUT.points { WIDTH: 2em } OL.hierarchy LI DIV INPUT.name { WIDTH: 16em } LI.parent { PADDING-BOTTOM: 0px! important } OL.hierarchy LI.parent OL LI H5 { BACKGROUND-IMAGE: none } A.genericButton { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BACKGROUND-POSITION: = center -7px; BORDER-TOP: #ccc 1px solid; DISPLAY: inline-block; = PADDING-LEFT: 6px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 1px; BORDER-LEFT: #ccc 1px solid; COLOR: #333; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-REPEAT: = repeat-x; FONT-FAMILY: "Lucida Grande", Arial, Verdana, sans-serif; = BACKGROUND-COLOR: #ededed; TEXT-DECORATION: none } A.genericButtonImg { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BACKGROUND-POSITION: = center -7px; BORDER-TOP: #ccc 1px solid; DISPLAY: inline-block; = PADDING-LEFT: 6px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 1px; BORDER-LEFT: #ccc 1px solid; COLOR: #333; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-REPEAT: = repeat-x; FONT-FAMILY: "Lucida Grande", Arial, Verdana, sans-serif; = BACKGROUND-COLOR: #ededed; TEXT-DECORATION: none } INPUT.genericButton { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BACKGROUND-POSITION: = center -7px; BORDER-TOP: #ccc 1px solid; DISPLAY: inline-block; = PADDING-LEFT: 6px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 1px; BORDER-LEFT: #ccc 1px solid; COLOR: #333; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-REPEAT: = repeat-x; FONT-FAMILY: "Lucida Grande", Arial, Verdana, sans-serif; = BACKGROUND-COLOR: #ededed; TEXT-DECORATION: none } .searchbar FIELDSET INPUT.genericButton { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BACKGROUND-POSITION: = center -7px; BORDER-TOP: #ccc 1px solid; DISPLAY: inline-block; = PADDING-LEFT: 6px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 1px; BORDER-LEFT: #ccc 1px solid; COLOR: #333; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-REPEAT: = repeat-x; FONT-FAMILY: "Lucida Grande", Arial, Verdana, sans-serif; = BACKGROUND-COLOR: #ededed; TEXT-DECORATION: none } A.genericButtonImg { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 2px; = PADDING-TOP: 0px } INPUT.genericButton { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 1px; OVERFLOW: = visible; PADDING-TOP: 1px } .searchbar FIELDSET INPUT.genericButton { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 1px; OVERFLOW: = visible; PADDING-TOP: 1px } A.genericButton:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.genericButtonImg:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.genericButton:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.genericButtonImg:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } .searchbar FIELDSET INPUT.genericButton:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } .searchbar FIELDSET INPUT.genericButton:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.add { BORDER-LEFT-COLOR: #42af41; BORDER-BOTTOM-COLOR: #42af41; = BORDER-TOP-COLOR: #42af41; BACKGROUND-COLOR: #b3efb3; = BORDER-RIGHT-COLOR: #42af41 } A.add:hover { BORDER-LEFT-COLOR: #42af41; BORDER-BOTTOM-COLOR: #42af41; = BORDER-TOP-COLOR: #42af41; BACKGROUND-COLOR: #e4ffdf; = BORDER-RIGHT-COLOR: #42af41 } A.remove { BORDER-LEFT-COLOR: #ef3b3b; BORDER-BOTTOM-COLOR: #ef3b3b; = BORDER-TOP-COLOR: #ef3b3b; BACKGROUND-COLOR: #ffc4bf; = BORDER-RIGHT-COLOR: #ef3b3b } A.remove:hover { BORDER-LEFT-COLOR: #ef3b3b; BORDER-BOTTOM-COLOR: #ef3b3b; = BORDER-TOP-COLOR: #ef3b3b; BACKGROUND-COLOR: #ffd2cf; = BORDER-RIGHT-COLOR: #ef3b3b } DIV.calendarTitle { MARGIN: 9px 0px 0px; TEXT-ALIGN: center } DIV.announcementTitle { MARGIN: 9px 0px 0px; TEXT-ALIGN: center } DIV.calendarTitle H3 { PADDING-RIGHT: 4px; DISPLAY: inline; PADDING-LEFT: 4px; FONT-SIZE: = 130%; PADDING-BOTTOM: 2px; MARGIN: 0px; VERTICAL-ALIGN: middle; = PADDING-TOP: 2px } DIV.announcementTitle H3 { PADDING-RIGHT: 4px; DISPLAY: inline; PADDING-LEFT: 4px; FONT-SIZE: = 130%; PADDING-BOTTOM: 2px; MARGIN: 0px; VERTICAL-ALIGN: middle; = PADDING-TOP: 2px } DIV.calMonth { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; PADDING-BOTTOM: = 2px; MARGIN: 10px 4px 4px; OVERFLOW: auto; PADDING-TOP: 2px } DIV.calMonth TABLE { BORDER-RIGHT: #a8beda 2px solid; BORDER-TOP: #a8beda 2px solid; MARGIN: = 0px auto; BORDER-LEFT: 2px; BORDER-BOTTOM: #a8beda 2px solid; = BORDER-COLLAPSE: collapse } DIV.calMonth TABLE THEAD TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #a8beda; = PADDING-BOTTOM: 0px; WIDTH: 1px; PADDING-TOP: 0px } DIV.calMonth TABLE TBODY TH { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #a8beda; = PADDING-BOTTOM: 0px; WIDTH: 1px; PADDING-TOP: 0px } DIV.calMonth TABLE THEAD TD DIV { LEFT: -1000px; POSITION: absolute; TOP: 0px } DIV.calMonth TABLE TBODY TH DIV { LEFT: -1000px; POSITION: absolute; TOP: 0px } DIV.calMonth TABLE THEAD TH { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 2px; PADDING-LEFT: 2px; = FONT-WEIGHT: bold; BACKGROUND: url(images/cal_year_head_bg.gif) #ddd = repeat-x right bottom; PADDING-BOTTOM: 2px; OVERFLOW: hidden; WIDTH: = 8em; COLOR: #333; PADDING-TOP: 2px; BORDER-BOTTOM: #a0a0a0 1px solid; = TEXT-ALIGN: center } DIV.calMonth TABLE TBODY TD { BORDER-RIGHT: #a8beda 1px solid; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BACKGROUND: url(images/cal_month_cell_bg.gif) white repeat-x 50% bottom; = PADDING-BOTTOM: 0px; OVERFLOW: hidden; WIDTH: 8em; PADDING-TOP: 0px; = BORDER-BOTTOM: #a8beda 1px solid; HEIGHT: 8em } DIV.calMonth TABLE TH:hover { BACKGROUND: url(images/cal_year_head_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TH:focus { BACKGROUND: url(images/cal_year_head_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TH:active { BACKGROUND: url(images/cal_year_head_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TD:hover { BACKGROUND: url(images/cal_month_cell_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TD:focus { BACKGROUND: url(images/cal_month_cell_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TD:active { BACKGROUND: url(images/cal_month_cell_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TD A.daylink { BORDER-RIGHT: #a8beda 1px solid; PADDING-RIGHT: 0.2em; DISPLAY: block; = PADDING-LEFT: 0.2em; FONT-WEIGHT: bold; FONT-SIZE: 110%; BACKGROUND: = #e3efff; FLOAT: left; PADDING-BOTTOM: 0.2em; WIDTH: 1.2em; PADDING-TOP: = 0.2em; BORDER-BOTTOM: #a8beda 1px solid; TEXT-ALIGN: center; = TEXT-DECORATION: none } DIV.calMonth TABLE TD A.daylink:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x } DIV.calMonth TABLE TD A.daylink SPAN { LEFT: -1000px; POSITION: absolute; TOP: 0px } DIV.calMonth TABLE TD.today { BACKGROUND: url(images/cal_month_today_bg.gif) #f9e091 no-repeat left = top } DIV.calMonth TABLE TD.today A.daylink { FONT-WEIGHT: bold; BACKGROUND: #f9e091 } DIV.calMonth TABLE TD.today A.daylink:hover { BACKGROUND: url(images/cal_year_today_bg.gif) repeat-x } DIV.calMonth TABLE TD.offday { BACKGROUND: #eeeeee } DIV.calMonth TABLE TD DIV { CLEAR: both; OVERFLOW: hidden; WIDTH: 8em } DIV.calMonth TABLE TD DIV UL { PADDING-RIGHT: 0.4em; PADDING-LEFT: 0.4em; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.calMonth TABLE TD DIV UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 1px; MARGIN: 0px; PADDING-TOP: 1px; WHITE-SPACE: nowrap } TABLE.calYear { BORDER-RIGHT: #a8beda 1px solid; BORDER-TOP: #a8beda 1px solid; = MIN-WIDTH: 200px; FONT-SIZE: 95%; MARGIN: 6px; BORDER-LEFT: #a8beda 1px = solid; BORDER-BOTTOM: #a8beda 1px solid; POSITION: relative; = BORDER-COLLAPSE: collapse } TABLE.calYearFloat { FLOAT: left; MARGIN: 6px 0.66%; WIDTH: 32% } TABLE.calYear THEAD TD { LEFT: -10000px; POSITION: absolute; TOP: 0px } TABLE.calYear TBODY TH { LEFT: -10000px; POSITION: absolute; TOP: 0px } TABLE.calYear CAPTION { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-SIZE: 108%; PADDING-BOTTOM: = 4px; MARGIN: 0px; PADDING-TOP: 2px; TEXT-ALIGN: center } TABLE.calYear CAPTION A { FONT-WEIGHT: bold; TEXT-DECORATION: none } TABLE.calYear CAPTION A:hover { TEXT-DECORATION: underline } TABLE.calYear THEAD TH { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #a8beda = 1px solid; PADDING-LEFT: 2px; FONT-WEIGHT: bold; BACKGROUND: = url(images/cal_year_head_bg.gif) #ddd repeat-x 50% bottom; = PADDING-BOTTOM: 2px; BORDER-LEFT: #aaa 1px solid; WIDTH: 14.3%; COLOR: = #333; PADDING-TOP: 2px; BORDER-BOTTOM: #a0a0a0 1px solid; TEXT-ALIGN: = center } TABLE.calYear TBODY TD { BORDER-RIGHT: #a8beda 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #a8beda 1px solid; PADDING-LEFT: 2px; BACKGROUND: white; PADDING-BOTTOM: = 2px; BORDER-LEFT: #a8beda 1px solid; WIDTH: 14.3%; PADDING-TOP: 2px; = BORDER-BOTTOM: #a8beda 1px solid; WHITE-SPACE: nowrap; TEXT-ALIGN: right } TABLE.calYear TD A { DISPLAY: block; WIDTH: 100%; POSITION: relative; TEXT-DECORATION: none } TABLE.calYear TD A IMG { FLOAT: left } TABLE.calYear TD:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD:focus { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD:active { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD.offday:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD.offday:focus { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD.offday:active { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TH:hover { BACKGROUND-IMAGE: url(images/cal_year_head_hover_bg.gif) } TABLE.calYear TH:focus { BACKGROUND-IMAGE: url(images/cal_year_head_hover_bg.gif) } TABLE.calYear TH:active { BACKGROUND-IMAGE: url(images/cal_year_head_hover_bg.gif) } TABLE.calYear TD.today { BACKGROUND: #f9e091 } TABLE.calYear TD.today:hover { BACKGROUND: url(images/cal_year_today_bg.gif) #f9e091 repeat-x 0px 0px } TABLE.calYear TD.today:focus { BACKGROUND: url(images/cal_year_today_bg.gif) #f9e091 repeat-x 0px 0px } TABLE.calYear TD.today A { FONT-WEIGHT: bold; COLOR: black } TABLE.calYear TD.today A:hover { BACKGROUND-IMAGE: none } TABLE.calYear TD.today A:active { BACKGROUND-IMAGE: none } TABLE.calYear TD.today A:focus { BACKGROUND-IMAGE: none } TABLE.calYear TD.offday { BORDER-RIGHT: #a8beda 1px solid; BORDER-TOP: #a8beda 1px solid; = BACKGROUND: #eee; BORDER-LEFT: #a8beda 1px solid; COLOR: #444444; = BORDER-BOTTOM: #a8beda 1px solid; TEXT-DECORATION: none } TABLE.calYear TD.hasEvent { FONT-WEIGHT: bold; BACKGROUND: url(images/cal_year_cell_bg.gif) = repeat-x right bottom } TABLE.calendarDay { BORDER-RIGHT: #cdcdcd 1px solid; BORDER-TOP: medium none; MARGIN: 10px = 0px 0px; BORDER-LEFT: #cdcdcd 1px solid; WIDTH: 100%; BORDER-BOTTOM: = #cdcdcd 1px solid; BORDER-COLLAPSE: collapse } TABLE.calendarDay THEAD { LEFT: -1000px; POSITION: absolute; TOP: 0px; HEIGHT: 1px } TABLE.calendarDay THEAD TH { LEFT: -1000px; POSITION: absolute; TOP: 0px; HEIGHT: 1px } UL.calendarWeek LI TABLE.calendarDay { BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN: 0px; = BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } TABLE.calendarDay TBODY TH { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = url(images/cal_day_time_bg.gif) #f3f3f3 repeat-x 50% bottom; = PADDING-BOTTOM: 14px; VERTICAL-ALIGN: top; BORDER-LEFT: #ccc 1px solid; = WIDTH: 6%; COLOR: #555; PADDING-TOP: 1px; BORDER-BOTTOM: #ccc 1px solid; = TEXT-ALIGN: right } TABLE.calendarDay TBODY TH:hover { BACKGROUND: url(images/cal_day_time_hover_bg.gif) #e6e5e5 repeat-x 50% = bottom } TABLE.calendarDay TBODY TH:focus { BACKGROUND: url(images/cal_day_time_hover_bg.gif) #e6e5e5 repeat-x 50% = bottom } TABLE.calendarDay TBODY TH:active { BACKGROUND: url(images/cal_day_time_hover_bg.gif) #e6e5e5 repeat-x 50% = bottom } TABLE.calendarDay TBODY TD { PADDING-RIGHT: 12px; BORDER-TOP: #cdcdcd 1px solid; PADDING-LEFT: 0px; = BACKGROUND: #fff; PADDING-BOTTOM: 3px; VERTICAL-ALIGN: top; PADDING-TOP: = 0px } TABLE.calendarDay TBODY TD.hasEvent { PADDING-LEFT: 6px; BACKGROUND: url(images/cal_day_cell_bg.gif) repeat-y = 0px 0px } TABLE.calendarDay TBODY TD.hasEvent A.jumpToEvent { LEFT: -1000px; POSITION: absolute; TOP: 0px } TABLE.calendarDay TBODY TR.halfHour TH { BORDER-TOP: #ededed 1px solid } TABLE.calendarDay TBODY TR.halfHour TD { BORDER-TOP: #ededed 1px solid } TABLE.calendarDay TBODY TR.midday TH { BORDER-TOP: #cdcdcd 2px solid } TABLE.calendarDay TBODY TR.midday TD { BORDER-TOP: #cdcdcd 2px solid } TABLE.calendarDay TR.notBusinessHours TH { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BACKGROUND: = #f3f3f3; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid } TABLE.calendarDay TR.notBusinessHours TD { BACKGROUND: #fafafa } TABLE.calendarDay TBODY TR.notBusinessHours TD.hasEvent { BACKGROUND: url(images/cal_day_cell_bg2.gif) #fafafa repeat-y 0px 0px } TABLE.calendarDay TR TH SPAN.ampm { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-SIZE: 75%; BACKGROUND: = #bbb; LEFT: -4px; PADDING-BOTTOM: 0px; COLOR: #fff; PADDING-TOP: 0px; = LETTER-SPACING: 0.1em; POSITION: relative; TOP: -1.2em } TABLE.calendarDay TBODY TR:hover TH { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:hover TD { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:focus TH { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:focus TD { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:active TH { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:active TD { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:hover TD.hasEvent { BACKGROUND: url(images/cal_day_hover_bg.gif) #f0f0f0 repeat-y 0px 0px } TABLE.calendarDay TBODY TR:focus TD.hasEvent { BACKGROUND: url(images/cal_day_hover_bg.gif) #f0f0f0 repeat-y 0px 0px } TABLE.calendarDay TBODY TR:active TD.hasEvent { BACKGROUND: url(images/cal_day_hover_bg.gif) #f0f0f0 repeat-y 0px 0px } TABLE.calendarDay TD DIV DIV { PADDING-RIGHT: 3px; DISPLAY: block; PADDING-LEFT: 3px; FONT-WEIGHT: = normal; FONT-SIZE: 85%; BACKGROUND: #b5ccea; FLOAT: left; = PADDING-BOTTOM: 1px; MARGIN: 0px 4px 0px -6px; PADDING-TOP: 1px } TABLE.calendarDay TD DIV DIV.contextMenuContainer { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; BACKGROUND: = none transparent scroll repeat 0% 0%; FLOAT: none; PADDING-BOTTOM: 0px; = MARGIN: 0px 0px 0px -3px; PADDING-TOP: 0px } TABLE.calendarDay TD DIV SPAN { FONT-SIZE: 90%; COLOR: #555 } UL.calendarWeek { BORDER-RIGHT: #cdcdcd 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #cdcdcd 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 10px = 0px 0px; BORDER-LEFT: #cdcdcd 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #cdcdcd 1px solid; LIST-STYLE-TYPE: none; HEIGHT: 1% } UL.calendarWeek LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #cdcdcd 1px solid; = POSITION: relative } UL.calendarWeek LI UL:first-child { BORDER-TOP: medium none } UL.calendarWeek UL LI:first-child { BORDER-TOP: medium none } UL.calendarWeek LI H3.weekDay { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; FONT-WEIGHT: bold; = FONT-SIZE: 110%; BACKGROUND: #e3efff; PADDING-BOTTOM: 0.3em; MARGIN: = 0px; COLOR: #666; PADDING-TOP: 0.3em } UL.calendarWeek LI H3.weekDay:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) #e3efff repeat-x 50% = bottom } UL.calendarWeek LI H3.weekDay:focus { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) #e3efff repeat-x 50% = bottom } UL.calendarWeek LI H3.weekDay:active { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) #e3efff repeat-x 50% = bottom } UL.calendarWeek LI UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 12px 6px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.calendarWeek LI UL LI { PADDING-RIGHT: 0px; BORDER-TOP: #ededed 1px solid; PADDING-LEFT: 0px; = PADDING-BOTTOM: 12px; PADDING-TOP: 6px; BORDER-BOTTOM: medium none } UL.calendarWeek LI UL LI:hover { BACKGROUND: url(images/cal_year_cell_bg.gif) repeat-x right bottom } UL.calendarWeek LI UL LI:focus { BACKGROUND: url(images/cal_year_cell_bg.gif) repeat-x right bottom } UL.calendarWeek LI UL LI:active { BACKGROUND: url(images/cal_year_cell_bg.gif) repeat-x right bottom } UL.calendarWeek LI UL LI H4 { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; FLOAT: left; PADDING-BOTTOM: 1px; MARGIN: 0px 12px 0px 0px; WIDTH: = 10em; COLOR: #555; PADDING-TOP: 1px } UL.calendarWeek LI DIV { MARGIN-LEFT: 11em } UL.calendarWeek LI DIV.contextMenuContainer { MARGIN: 0px 0px 0px -3px } UL.calendarWeek LI UL LI SPAN { FONT-SIZE: 90%; COLOR: #555 } .hidden { DISPLAY: none } UL.announcementList LI H4 { PADDING-RIGHT: 0.3em; PADDING-LEFT: 0px; FONT-WEIGHT: normal; = FONT-SIZE: 95%; LEFT: 0.2em; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: = 5em; COLOR: #555; PADDING-TOP: 0px; POSITION: absolute; TOP: 0.5em; = TEXT-ALIGN: right } UL.announcementList LI H4 { WIDTH: 6.7em; TOP: 0.8em; TEXT-ALIGN: center } UL.announcementList LI H4 SPAN { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 115% } UL.announcementList LI UL { PADDING-RIGHT: 0px; BORDER-TOP: #ededed 1px solid; PADDING-LEFT: 0px; = PADDING-BOTTOM: 6px; MARGIN: 0px 0.6em; PADDING-TOP: 6px; = LIST-STYLE-TYPE: none; POSITION: relative } UL.announcementList LI UL LI { PADDING-RIGHT: 0px; BORDER-TOP: #ededed 1px solid; PADDING-LEFT: 0.7em; = PADDING-BOTTOM: 0.6em; MARGIN: 0px; PADDING-TOP: 0.6em; BORDER-BOTTOM: = medium none; HEIGHT: 1% } UL.announcementList LI UL LI:unknown { PADDING-RIGHT: 0px; PADDING-LEFT: 0.7em; PADDING-BOTTOM: 0.3em; = PADDING-TOP: 0.6em } UL.announcementList LI UL LI:first-child { PADDING-RIGHT: 0px; BORDER-TOP: medium none; PADDING-LEFT: 0.7em; = PADDING-BOTTOM: 0.6em; PADDING-TOP: 0.3em } UL.announcementList LI UL LI H5 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } UL.announcementList LI UL LI H5 { FONT-SIZE: 105% } UL.announcementList LI UL LI P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0.2em } UL.announcementList LI UL LI P SPAN { FONT-WEIGHT: bold } UL.announcementList LI UL LI SPAN.postedBy { FONT-SIZE: 90%; FLOAT: right; COLOR: #777 } UL.calendarDay LI DIV.addEvent { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 1px; BORDER-LEFT: 0px; PADDING-TOP: 1px; = BORDER-BOTTOM: 0px; opacity: 0 } UL.calendarWeek LI DIV.addEvent { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 3px; BORDER-LEFT: 0px; PADDING-TOP: 3px; = BORDER-BOTTOM: 0px; opacity: 0 } DIV.addEvent A { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; BACKGROUND: #ededed; PADDING-BOTTOM: 1px; MARGIN: 0px 0px 0px = 6.2em; PADDING-TOP: 1px } UL.calendarWeek LI:hover DIV.addEvent { opacity: 1 } UL.calendarDay DIV:hover DIV.addEvent { opacity: 1 } UL.calDay LI A.addEvent { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #cccccc 1px solid; PADDING-LEFT: 6px; FONT-SIZE: 90%; RIGHT: 2px; = BACKGROUND: #e3efff; FILTER: alpha(opacity=3D0); PADDING-BOTTOM: 1px; = MARGIN: 2px 0px 0px 2px; BORDER-LEFT: #cccccc 1px solid; COLOR: #444444; = PADDING-TOP: 1px; BORDER-BOTTOM: #cccccc 1px solid; POSITION: absolute; = TEXT-DECORATION: none; opacity: 0 } UL.calendarWeek LI DIV.addEvent A { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #cccccc 1px solid; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: = 90%; BACKGROUND: #e3efff; FILTER: alpha(opacity=3D0); PADDING-BOTTOM: = 1px; MARGIN: 2px 0px 0px 2px; BORDER-LEFT: #cccccc 1px solid; COLOR: = #444444; PADDING-TOP: 1px; BORDER-BOTTOM: #cccccc 1px solid; = TEXT-DECORATION: none; opacity: 0 } UL.calendarWeek LI DIV.addEvent { MARGIN: 0px 0px 2px 3em } DIV.calMonth TABLE TD A.addEvent:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) 0% 50% } UL.calendarWeek LI DIV.addEvent A:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) 0% 50% } UL.calDay LI A.addEvent:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) 0% 50% } DIV.calMonth TABLE TD:hover A.addEvent { FILTER: alpha(opacity=3D100); opacity: 1 } UL.calendarWeek LI:hover DIV.addEvent A { FILTER: alpha(opacity=3D100); opacity: 1 } UL.calDay LI:hover A.addEvent { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.blogContainer { FLOAT: left; WIDTH: 74%; MARGIN-RIGHT: 1% } DIV.blogContainer H3.blogHead { PADDING-RIGHT: 15px; PADDING-LEFT: 15px; FONT-SIZE: 100%; BACKGROUND: = #aaa; PADDING-BOTTOM: 3px; MARGIN: 0px 0px 12px; COLOR: #fff; = PADDING-TOP: 3px } DIV.blogContainer DIV.blogEntry { BORDER-RIGHT: #ccc 0px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ccc 2px = solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 12px 0px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 0px = solid } DIV.blogContainer DIV.blogEntry H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 18px; FONT-SIZE: 110%; BACKGROUND: = url(images/small_discussions.gif) no-repeat 0px 2px; PADDING-BOTTOM: = 0px; MARGIN: 6px 12px 0px; OVERFLOW: hidden; PADDING-TOP: 3px; = WORD-WRAP: break-word } DIV.blogContainer DIV.blogEntry DIV.entryText { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: white; OVERFLOW-X: = auto; PADDING-BOTTOM: 18px; MARGIN: 3px 12px 12px; WIDTH: 96%; = PADDING-TOP: 9px } DIV.blogContainer DIV.entryDate { FONT-SIZE: 95%; MARGIN: 3px 0px 6px 12px; COLOR: #444 } DIV.blogContainer DIV.entryDate A { FONT-WEIGHT: bold } DIV.blogContainer DIV.entryFooter { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; BACKGROUND: #f6f6f6; = PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-TOP: 6px } DIV.blogContainer DIV.entryFooter DIV.commentControls { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.blogContainer DIV.entryFooter DIV.commentControls H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; BACKGROUND: = none transparent scroll repeat 0% 0%; FLOAT: left; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 0px } DIV.blogContainer DIV.entryFooter A.browse { DISPLAY: block; FLOAT: right } DIV.blogContainer DIV.entryFooter DIV.addBlogComment TABLE { WIDTH: 98% } DIV.blogContainer DIV.entryFooter DIV.addBlogComment TEXTAREA { WIDTH: 99% } DIV.blogContainer DIV.entryFooter DIV.addBlogComment { DISPLAY: none; FONT-SIZE: 100%; LEFT: 0px! important; MARGIN: 6px; = WIDTH: 98%; POSITION: static! important; TOP: 0px! important } DIV.blogContainer DIV.entryFooter DIV.addBlogComment DIV.controls { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } DIV.blogContainer UL.entryComments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 6px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.blogContainer UL.entryComments LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 6px; MARGIN: = 0px; PADDING-TOP: 6px; LIST-STYLE-TYPE: none } DIV.blogContainer UL.entryComments LI P { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 12px; BACKGROUND: #fff; PADDING-BOTTOM: 12px; = MARGIN: 0px 0px 4px; OVERFLOW: hidden; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 12px; BORDER-BOTTOM: #ccc 1px solid; HEIGHT: 1% } DIV.blogContainer UL.entryComments LI P.commentDate { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; FONT-SIZE: 90%; Z-INDEX: 10; BACKGROUND: = url(images/bubble_top_thin.gif) no-repeat 15px 100%; PADDING-BOTTOM: = 4px; MARGIN: 2px 0px -1px; BORDER-LEFT: medium none; COLOR: #444; = PADDING-TOP: 0px; BORDER-BOTTOM: medium none; POSITION: relative; = TEXT-ALIGN: right } DIV.blogContainer UL.entryComments LI H5 { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #444; PADDING-TOP: 3px } DIV.blogContainer UL.entryComments LI.newComment H5 { FONT-WEIGHT: bold } DIV.blogContainer DIV.blogInstructions { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #f1f1f1; = PADDING-BOTTOM: 6px; MARGIN: 0px 0px 12px; PADDING-TOP: 3px; POSITION: = relative } DIV.blogContainer DIV.blogInstructions H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 3px 0px; = PADDING-TOP: 0px } DIV.blogNav { FLOAT: right; WIDTH: 25% } DIV.blogNav DIV.portlet { BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN: 0px; = BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } DIV.blogNav DIV.portlet { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.blogNav DIV.portletBlock { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.blogNav UL { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.blogNav UL LI { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.blogNav UL LI { OVERFLOW: hidden; WIDTH: 100% } DIV.blogNav DIV.portlet DIV.portletBlock { BORDER-RIGHT: #a8beda 2px solid; BORDER-TOP: #a8beda 2px solid; MARGIN: = 0px; BORDER-LEFT: #a8beda 2px solid; BORDER-BOTTOM: #a8beda 2px solid } DIV.blogNav DIV.portlet UL.blockGroups LI A.itemHead { BORDER-TOP: #a8beda 1px solid } DIV.blogNav DIV.portlet UL.blockGroups LI:first-child A { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } DIV.blogNav LI.currentBlog { FONT-WEIGHT: bold } DIV.blogNav LI.currentBlog SPAN { FONT-WEIGHT: normal } DIV.blogContainer A.newItem { FONT-WEIGHT: normal } DIV.blogContainer A SPAN.newItem { FONT-WEIGHT: normal } DIV.blogNav A.newItem { FONT-WEIGHT: normal } DIV.blogNav A SPAN.newItem { FONT-WEIGHT: normal } DIV.blogNav DIV.portlet UL.blockGroups DIV.blogAction { FONT-SIZE: 95%; MARGIN: 4px 9px 6px } DIV.blogContainer UL.entryComments LI SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.blogContainer DIV.entryFooter DIV.commentControls SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.blogContainer DIV.blogEntry H4 SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.blogContainer DIV.commentControls SPAN.newItems { DISPLAY: block; FLOAT: left; MARGIN-LEFT: 4px } DIV.blogNav DIV.portletBlock UL.blockGroups LI SPAN.newItems { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN-LEFT: 0px; COLOR: black; PADDING-TOP: 0px } DIV.blogNav UL.iconLegend LI SPAN.newItems { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN-LEFT: 0px; COLOR: black; PADDING-TOP: 0px } DIV.blogNav UL.iconLegend { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 9px = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.blogNav UL.iconLegend LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 0px } DIV.blogNav UL UL { MARGIN-LEFT: 9px } DIV.blogNav UL#blogArchive UL { MARGIN: 0px 9px 9px 18px } DIV.journalContainer { FLOAT: left; WIDTH: 74%; MARGIN-RIGHT: 1% } DIV.journalContainer H3.blogHead { PADDING-RIGHT: 15px; PADDING-LEFT: 15px; FONT-SIZE: 100%; BACKGROUND: = #aaa; PADDING-BOTTOM: 3px; MARGIN: 0px 0px 12px; COLOR: #fff; = PADDING-TOP: 3px; TEXT-ALIGN: center } DIV.journalContainer DIV.blogEntry { BORDER-RIGHT: #eee 3px solid; PADDING-RIGHT: 0px; BORDER-TOP: #eee 3px = solid; PADDING-LEFT: 36px; BACKGROUND: = url(images/blog_notebook_paper.gif) #fff repeat-y 0px 0px; = PADDING-BOTTOM: 0px; MARGIN: 12px 0px; BORDER-LEFT: medium none; = PADDING-TOP: 0px; BORDER-BOTTOM: #eee 3px solid; POSITION: relative } DIV.journalContainer DIV.blogEntry H4 { PADDING-RIGHT: 24px; PADDING-LEFT: 18px; FONT-SIZE: 110%; BACKGROUND: = #fff; PADDING-BOTTOM: 0px; MARGIN: 0px; OVERFLOW: hidden; PADDING-TOP: = 12px; TEXT-ALIGN: center; WORD-WRAP: break-word } DIV.journalContainer DIV.entryDate { PADDING-RIGHT: 24px; PADDING-LEFT: 18px; FONT-SIZE: 95%; Z-INDEX: 100; = BACKGROUND: #fff; PADDING-BOTTOM: 12px; MARGIN: 0px; COLOR: #444; = PADDING-TOP: 3px; BORDER-BOTTOM: #c0dace 1px solid; TEXT-ALIGN: center } DIV.journalContainer DIV.entryDate A { FONT-WEIGHT: bold } DIV.journalContainer DIV.blogEntry DIV.entryText { PADDING-RIGHT: 12px; PADDING-LEFT: 18px; BACKGROUND: #fff; OVERFLOW-X: = auto; PADDING-BOTTOM: 18px; MARGIN: 0px; WIDTH: 92%; PADDING-TOP: 12px } DIV.journalContainer DIV.entryFooter { PADDING-RIGHT: 0px; PADDING-LEFT: 31px; BACKGROUND: = url(images/blog_notebook_paper_bot.gif) repeat-x center bottom; = PADDING-BOTTOM: 4px; MARGIN: 0px 0px 0px -31px; PADDING-TOP: 0px; ZOOM: = 1 } DIV.journalContainer DIV.entryFooter DIV.commentControls { PADDING-RIGHT: 12px; PADDING-LEFT: 18px; BACKGROUND: #fff; = PADDING-BOTTOM: 12px; COLOR: #444; PADDING-TOP: 6px } DIV.journalContainer DIV.entryFooter DIV.commentControls H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; BACKGROUND: = none transparent scroll repeat 0% 0%; FLOAT: left; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 0px } DIV.journalContainer DIV.entryFooter A.browse { DISPLAY: block; FLOAT: right } DIV.journalContainer DIV.entryFooter DIV.addBlogComment TABLE { WIDTH: 98% } DIV.journalContainer DIV.entryFooter DIV.addBlogComment TEXTAREA { WIDTH: 99% } DIV.journalContainer DIV.entryFooter DIV.addBlogComment { DISPLAY: none; FONT-SIZE: 100%; LEFT: 0px! important; MARGIN: 0px 12px = 18px 18px; WIDTH: auto; POSITION: static! important; TOP: 0px! important } DIV.journalContainer DIV.entryFooter DIV.addBlogComment DIV.controls { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } DIV.journalContainer UL.entryComments { PADDING-RIGHT: 0px; PADDING-LEFT: 18px; BACKGROUND: #fff; = PADDING-BOTTOM: 12px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: = none } DIV.journalContainer UL.entryComments LI { PADDING-RIGHT: 6px; BORDER-TOP: #c0dace 1px solid; PADDING-LEFT: 0px; = PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-TOP: 4px; LIST-STYLE-TYPE: = none } DIV.journalContainer UL.entryComments LI P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 4px = 18px 4px 19px; PADDING-TOP: 0px } DIV.journalContainer UL.entryComments LI P.commentDate { FONT-SIZE: 90%; MARGIN-LEFT: 19px; COLOR: #444 } DIV.journalContainer UL.entryComments LI H5 { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 18px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; BACKGROUND: url(images/small_blog_comment.gif) = no-repeat 0px 3px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #000; = PADDING-TOP: 3px } DIV.journalContainer UL.entryComments LI.newComment H5 { FONT-WEIGHT: bold } DIV.journalContainer DIV.blogInstructions { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #f1f1f1; = PADDING-BOTTOM: 6px; MARGIN: 0px 0px 12px; PADDING-TOP: 3px; POSITION: = relative } DIV.journalContainer DIV.blogInstructions H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; BACKGROUND: = none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 3px = 0px; PADDING-TOP: 0px; TEXT-ALIGN: left } DIV.journalContainer DIV.blogInstructions P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.journalNav { FLOAT: right; WIDTH: 25% } DIV.journalNav DIV.portlet { BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN: 0px; = BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } DIV.journalNav DIV.portlet { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.journalNav DIV.portletBlock { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.journalNav UL { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.journalNav UL LI { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.journalNav UL LI { OVERFLOW: hidden; WIDTH: 100% } DIV.journalNav DIV.portlet DIV.portletBlock { BORDER-RIGHT: #a8beda 2px solid; BORDER-TOP: #a8beda 2px solid; MARGIN: = 0px; BORDER-LEFT: #a8beda 2px solid; BORDER-BOTTOM: #a8beda 2px solid } DIV.journalNav DIV.portlet UL.blockGroups LI A.itemHead { BORDER-TOP: #a8beda 1px solid } DIV.journalNav DIV.portlet UL.blockGroups LI:first-child A { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } DIV.journalNav LI.currentBlog { FONT-WEIGHT: bold } DIV.journalNav LI.currentBlog SPAN { FONT-WEIGHT: normal } DIV.journalContainer A.newItem { FONT-WEIGHT: normal } DIV.journalContainer A SPAN.newItem { FONT-WEIGHT: normal } DIV.journalNav A.newItem { FONT-WEIGHT: normal } DIV.journalNav A SPAN.newItem { FONT-WEIGHT: normal } DIV.journalNav DIV.portlet UL.blockGroups DIV.blogAction { FONT-SIZE: 95%; MARGIN: 4px 9px 6px } DIV.journalContainer UL.entryComments LI SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.journalContainer DIV.entryFooter DIV.commentControls SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.journalContainer DIV.blogEntry H4 SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.journalContainer DIV.commentControls SPAN.newItems { DISPLAY: block; FLOAT: left; MARGIN-LEFT: 4px } DIV.journalNav DIV.portletBlock UL.blockGroups LI SPAN.newItems { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN-LEFT: 0px; COLOR: black; PADDING-TOP: 0px } DIV.journalNav UL.iconLegend LI SPAN.newItems { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN-LEFT: 0px; COLOR: black; PADDING-TOP: 0px } DIV.journalNav UL.iconLegend { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 9px = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.journalNav UL.iconLegend LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 0px } DIV.journalNav UL UL { MARGIN-LEFT: 9px } DIV.journalNav UL#blogArchive UL { MARGIN: 0px 9px 9px 18px } .subActionBar { BORDER-RIGHT: medium none; PADDING-RIGHT: 12px; BORDER-TOP: #d7bb66 1px = solid; PADDING-LEFT: 12px; FONT-SIZE: 95%; BACKGROUND: #eddca5 repeat-x = 0px -18px; PADDING-BOTTOM: 6px; MARGIN: -1px 0px 0px; BORDER-LEFT: = medium none; PADDING-TOP: 0px; BORDER-BOTTOM: #d7bb66 1px solid } .subActionBar FIELDSET { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: = 0px } .subActionBar FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .subActionBar DIV.block { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 3px 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px } .subActionBar DIV.button { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 3px 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px } .subActionBar SPAN.block { FLOAT: none } .subActionBar SPAN.button { FLOAT: none } .subActionBar LI.sub { POSITION: relative } .subActionBar FIELDSET LEGEND + DIV.block { BORDER-LEFT: 0px } .subActionBar SELECT { MAX-WIDTH: 180px; VERTICAL-ALIGN: middle } .subActionBar SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 9px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .subActionBar DIV.button { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } .subActionBar DIV.last { BORDER-RIGHT: medium none } .subActionBar FIELDSET { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .subActionBar OPTGROUP { BORDER-TOP: #ddd 1px solid; MARGIN-TOP: 6px; FONT-WEIGHT: normal; = COLOR: #777; FONT-STYLE: normal } .subActionBar OPTGROUP OPTION { COLOR: #000 } .subActionBar UL LI.sortableSelector A { PADDING-LEFT: 18px } .navPageHeader { MARGIN: 1em 0px; TEXT-ALIGN: center } .navPageHeader H3 { DISPLAY: inline; MARGIN-LEFT: 12px } .navPageHeader SPAN { FONT-WEIGHT: normal; MARGIN: 0px 6px 0px 0px; COLOR: #888 } FIELDSET.secondaryActions { FLOAT: right } DIV.secondaryBlock { FLOAT: right } .cellStatus { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN-TOP: = 4px; FONT-SIZE: 90%; BACKGROUND: #efefef; BORDER-LEFT: #ddd 1px solid; = BORDER-BOTTOM: #ddd 1px solid; WHITE-SPACE: nowrap } .cellStatus DIV { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 8px; DISPLAY: inline; = PADDING-LEFT: 8px; PADDING-BOTTOM: 2px; PADDING-TOP: 2px; WHITE-SPACE: = nowrap } .statusTitle { =09 } .cellStatus DIV.iconlegend { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; FLOAT: right; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN-RIGHT: = 3px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px } .sortImage { LEFT: 6px; POSITION: absolute; TOP: 9px } .bubble { PADDING-RIGHT: 0pt; DISPLAY: none; PADDING-LEFT: 0pt; Z-INDEX: 1000; = PADDING-BOTTOM: 0pt; WIDTH: 190px; PADDING-TOP: 0pt; POSITION: absolute } .bubble UL { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 6px; Z-INDEX: 1000; PADDING-BOTTOM: = 6px; MARGIN: 0px; OVERFLOW: hidden; BORDER-LEFT: #acc2df 1px solid; = PADDING-TOP: 6px; BORDER-BOTTOM: #5577bb 1px solid; LIST-STYLE-TYPE: = none; BACKGROUND-COLOR: #e2eefe } .bubble UL LI { CLEAR: left; PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; FONT-WEIGHT: bold; = FONT-SIZE: 90%; FLOAT: left; PADDING-BOTTOM: 0pt; MARGIN: 0pt 0pt 4px; = WIDTH: 174px; COLOR: #666666; PADDING-TOP: 0pt } .bubble UL LI SPAN { DISPLAY: block; FONT-WEIGHT: normal; FLOAT: left; WIDTH: 80px; COLOR: = #666666; MARGIN-RIGHT: 3px } .bubble UL LI SPAN.icon { FLOAT: left; WIDTH: 20px } .bubble UL LI SPAN.label { FONT-WEIGHT: normal; FONT-SIZE: 100%; WIDTH: 147px } .bubbleStem { WIDTH: 190px; POSITION: relative; HEIGHT: 14px } .bottom .bubbleStem { BOTTOM: 4px } .top .bubbleStem { TOP: -2px } .left .bubbleStem { PADDING-LEFT: 24px } .right .bubbleStem { RIGHT: 24px; TEXT-ALIGN: right } UL.selectList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px 6px 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.selectList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 99; FLOAT: left; = PADDING-BOTTOM: 4px; MARGIN: 0px 3px 0px 0px; PADDING-TOP: 2px } UL.selectList LI.sub { PADDING-TOP: 0px } UL.selectList LI.sub A { PADDING-RIGHT: 3px; DISPLAY: block; PADDING-LEFT: 9px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px; TEXT-DECORATION: none } UL.selectList LI.sub:hover UL { LEFT: 0px; TOP: 20px! important } UL.selectList LI.sub UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; POSITION: static! important } UL.selectList LI.sub UL LI H4 { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 3px; FONT-WEIGHT: = bold; FONT-SIZE: 90%; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #888; = PADDING-TOP: 6px; BORDER-BOTTOM: #ccc 1px solid } UL.selectList LI.sub UL LI H4 { WIDTH: 152px } UL.selectList LI.sub UL LI A { BORDER-RIGHT: medium none; PADDING-RIGHT: 3px; BORDER-TOP: medium none; = PADDING-LEFT: 14px; BACKGROUND-IMAGE: none! important; PADDING-BOTTOM: = 2px; BORDER-LEFT: medium none; WIDTH: 128px! important; PADDING-TOP: = 2px; BORDER-BOTTOM: medium none } UL.selectList LI.sub UL LI A:hover { BORDER-RIGHT: medium none; PADDING-RIGHT: 3px; BORDER-TOP: medium none; = PADDING-LEFT: 14px; BACKGROUND-IMAGE: none! important; PADDING-BOTTOM: = 2px; BORDER-LEFT: medium none; WIDTH: 128px! important; PADDING-TOP: = 2px; BORDER-BOTTOM: medium none } UL.selectList LI.sub UL LI A:hover { BACKGROUND-COLOR: #ffffff } UL.selectList LI.sub A SPAN IMG { WIDTH: 12px; HEIGHT: 12px; opacity: 0 } UL.selectList LI.sub A SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/expand.gif) no-repeat center center; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } UL.selectList LI.sub A SPAN#currentView { BACKGROUND-IMAGE: none } UL.selectList LI.sub A SPAN#currentSortBy { BACKGROUND-IMAGE: none } UL.selectList LI.sub A SPAN#currentColSortDir { BACKGROUND-IMAGE: none } UL.selectList LI.sub UL LI.current A { BACKGROUND: url(images/current.gif) #c7d9f3 no-repeat 1px 4px } UL.selectList LI.sub UL LI.current A:hover { BACKGROUND: url(images/current.gif) #c7d9f3 no-repeat 1px 4px } DIV.gradeDetails { PADDING-RIGHT: 0px; PADDING-LEFT: 12px; FONT-SIZE: 90%; PADDING-BOTTOM: = 0px; PADDING-TOP: 6px } DIV.gradeDetails DIV.label { WIDTH: 15% } SPAN.unstyled { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; COLOR: #000000; PADDING-TOP: 0px } @media Print =20 { DIV.hideOnPrint { DISPLAY: none } } BODY.reports { BACKGROUND: #f0f0f0 } BODY.reports UL { PADDING-RIGHT: 24px; PADDING-LEFT: 24px; PADDING-BOTTOM: 24px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } BODY.reports UL LI { CLEAR: both; PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: = 6px; PADDING-TOP: 0px } BODY.reports UL LI DIV.label { COLOR: #777 } BODY.reports UL LI:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } DIV.toc_div OL LI UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } BODY.reports H1 { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; FONT-SIZE: 160%; BACKGROUND: = #555 repeat-x right bottom; PADDING-BOTTOM: 9px; MARGIN: 0px; COLOR: = #fff; PADDING-TOP: 9px } BODY.reports H2 { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 150%; PADDING-BOTTOM: = 3px; MARGIN: 6px 18px 6px 14px; COLOR: #000; PADDING-TOP: 3px } BODY.reports DIV.toc_div H2 { BACKGROUND: none transparent scroll repeat 0% 0% } BODY.reports H3 { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 140%; PADDING-BOTTOM: = 3px; MARGIN: 6px 18px 6px 30px; PADDING-TOP: 3px } BODY.reports H3 A { COLOR: #7d899e; TEXT-DECORATION: none } BODY.reports H3 A IMG { VERTICAL-ALIGN: middle; MARGIN-RIGHT: 6px } BODY.reports H4 { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 115%; BACKGROUND: = #bbb; PADDING-BOTTOM: 3px; MARGIN: 0px 10px; COLOR: #fff; PADDING-TOP: = 3px; HEIGHT: 1% } BODY.reports UL LI H5 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; PADDING-BOTTOM: = 6px; MARGIN: 12px -12px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px = solid } BODY.reports TABLE.attachments { MARGIN: 0px; WIDTH: auto } BODY.reports TABLE.wide { MARGIN: 0px; WIDTH: 100% } DIV.toc_div { CLEAR: both; BORDER-RIGHT: #ccc 2px solid; PADDING-RIGHT: 0px; = BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 8px; PADDING-BOTTOM: 4px; = MARGIN: 6px 18px 18px; BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #ccc 2px solid } DIV.toc_div H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.toc_div H2 A { FONT-SIZE: 85%; TEXT-DECORATION: none } DIV.toc_div H2 A IMG { MARGIN-RIGHT: 6px } DIV.toc_div A.toggle { PADDING-RIGHT: 10px; MARGIN-TOP: 2px; PADDING-LEFT: 10px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; BACKGROUND: #f6f6f6; FLOAT: right; = PADDING-BOTTOM: 6px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 5px; = BORDER-BOTTOM: #ccc 1px solid; POSITION: relative; TOP: -2px; = TEXT-DECORATION: none } DIV.toc_div A.toggle:hover { BACKGROUND: #fff } DIV.backtotop { FLOAT: right } DIV.dateofreport { FLOAT: right } DIV.dateofreport { MARGIN: 6px 18px 12px 0px } BODY.reports DIV.block { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BACKGROUND: = #fff; MARGIN: 0px 36px 24px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: = #ccc 1px solid } DIV.backtotop { FLOAT: right; MARGIN-BOTTOM: -40px; MARGIN-RIGHT: -1px; POSITION: = relative } DIV.backtotop A { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: medium = none; DISPLAY: block; PADDING-LEFT: 8px; FONT-SIZE: 95%; BACKGROUND: = #f6f6f6; PADDING-BOTTOM: 3px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: = 3px; BORDER-BOTTOM: #ccc 1px solid; TEXT-DECORATION: none } DIV.backtotop A:hover { BACKGROUND: #fff } DIV.backtotop A IMG { MARGIN-RIGHT: 5px } A.cmimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 12px; BACKGROUND: = url(images/cm_arrow.gif) #f9f9f9 no-repeat -1px -1px; FILTER: = alpha(opacity=3D80); PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 3px; = PADDING-TOP: 0px; ZOOM: 1; opacity: 0.8 } A.cmimg:hover { FILTER: alpha(opacity=3D100); opacity: 1 } A.cmimg:focus { FILTER: alpha(opacity=3D100); opacity: 1 } A.cmimg IMG { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FILTER: alpha(opacity=3D0); = PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 16px; PADDING-TOP: 0px; HEIGHT: = 14px; opacity: 0 } DIV.navPalette UL.courseMenu A.cmimg { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 0px; RIGHT: = 0px; BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; = FILTER: alpha(opacity=3D70); PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 0px; ZOOM: 1; POSITION: absolute; TOP: 5px; opacity: 0.7 } .portlet A.cmimg { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 0px; RIGHT: = 0px; BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; = FILTER: alpha(opacity=3D70); PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 0px; ZOOM: 1; POSITION: absolute; TOP: 5px; opacity: 0.7 } DIV.navPalette UL.courseMenu A.cmimg:hover { BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D100); ZOOM: 1; opacity: 1 } .portlet A.cmimg:hover { BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D100); ZOOM: 1; opacity: 1 } DIV.navPalette UL.courseMenu A.cmimg:focus { BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D100); ZOOM: 1; opacity: 1 } .portlet A.cmimg:focus { BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D100); ZOOM: 1; opacity: 1 } DIV.navPalette UL.courseMenu LI.subhead A.cmimg { TOP: 9px } .portlet A.cmimg { RIGHT: 0px; POSITION: relative; TOP: 2px } DIV.navPalette UL.courseMenu A.cmimg IMG { FILTER: alpha(opacity=3D0); WIDTH: 13px; HEIGHT: 13px; opacity: 0 } .portlet A.cmimg IMG { FILTER: alpha(opacity=3D0); WIDTH: 13px; HEIGHT: 13px; opacity: 0 } SPAN.reorder IMG { FILTER: alpha(opacity=3D0); opacity: 0 } H3 SPAN.reorder IMG { MARGIN: 6px 3px } .cmdiv { DISPLAY: none; Z-INDEX: 200; ZOOM: 1; POSITION: absolute } .menumini { DISPLAY: none; Z-INDEX: 200; ZOOM: 1; POSITION: absolute } DIV.quickAddPal { DISPLAY: none; Z-INDEX: 200; ZOOM: 1; POSITION: absolute } DIV.keyboardAccess { DISPLAY: none; Z-INDEX: 200; ZOOM: 1; POSITION: absolute } UL.nav LI.sub UL { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; WIDTH: 138px; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; = BACKGROUND-COLOR: #e2eefe } .cmdiv UL { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; WIDTH: 138px; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; = BACKGROUND-COLOR: #e2eefe } .menumini UL { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; WIDTH: 138px; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; = BACKGROUND-COLOR: #e2eefe } DIV.quickAddPal { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; WIDTH: 138px; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; = BACKGROUND-COLOR: #e2eefe } DIV.keyboardAccess { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; WIDTH: 138px; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; = BACKGROUND-COLOR: #e2eefe } .quickAddPal { FONT-SIZE: 85%; WIDTH: 19em } .quickAddColor { WIDTH: 311px } .quickAddColor A.genericButton { FLOAT: left; MARGIN: 2px 0px } .modalOverlay { DISPLAY: none; Z-INDEX: 90; RIGHT: 0px; FILTER: alpha(opacity=3D1); = LEFT: 0px; WIDTH: 100%; BOTTOM: 0px; POSITION: absolute; TOP: 0px; = HEIGHT: 100%; BACKGROUND-COLOR: #000; opacity: .01 } UL.nav LI.sub { POSITION: static } UL.nav LI.sub:hover { POSITION: relative } UL.nav LI.sub UL { Z-INDEX: 1000; POSITION: absolute; TOP: -10000px } UL.nav LI.sub:hover { Z-INDEX: 1010! important } UL.nav LI.sub:hover UL { Z-INDEX: 1010! important } .cmdiv { Z-INDEX: 1150! important; BORDER-BOTTOM: #5577bb 1px solid } .cmdiv UL { BORDER-TOP: #acc2df 1px solid; WIDTH: 180px; BORDER-BOTTOM: 0px } .menumini UL { WIDTH: 120px } .cmdiv UL:first-child { BORDER-TOP: medium none } .menumini UL:first-child { BORDER-TOP: medium none } UL.nav LI.sub UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; ZOOM: 1 } UL.nav LI.sub UL LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; = DISPLAY: block; PADDING-LEFT: 20px; FONT-WEIGHT: normal; BACKGROUND: = url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; OVERFLOW-X: = hidden; PADDING-BOTTOM: 3px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: = 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: = 0px; ZOOM: 1; TEXT-DECORATION: none; WORD-WRAP: break-word } UL.nav LI.sub UL LI A:hover { BORDER-RIGHT: 0px; PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; = DISPLAY: block; PADDING-LEFT: 20px; FONT-WEIGHT: normal; BACKGROUND: = url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; OVERFLOW-X: = hidden; PADDING-BOTTOM: 3px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: = 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: = 0px; ZOOM: 1; TEXT-DECORATION: none; WORD-WRAP: break-word } .cmdiv A { BORDER-RIGHT: 0px; PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; = DISPLAY: block; PADDING-LEFT: 20px; FONT-WEIGHT: normal; BACKGROUND: = url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; OVERFLOW-X: = hidden; PADDING-BOTTOM: 3px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: = 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: = 0px; ZOOM: 1; TEXT-DECORATION: none; WORD-WRAP: break-word } .menumini A { BORDER-RIGHT: 0px; PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; = DISPLAY: block; PADDING-LEFT: 20px; FONT-WEIGHT: normal; BACKGROUND: = url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; OVERFLOW-X: = hidden; PADDING-BOTTOM: 3px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: = 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: = 0px; ZOOM: 1; TEXT-DECORATION: none; WORD-WRAP: break-word } UL.nav LI.sub UL LI A:focus { BORDER-RIGHT: 0px; PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; = DISPLAY: block; PADDING-LEFT: 20px; FONT-WEIGHT: normal; BACKGROUND: = url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; OVERFLOW-X: = hidden; PADDING-BOTTOM: 3px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: = 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: = 0px; ZOOM: 1; TEXT-DECORATION: none; WORD-WRAP: break-word } .cmdiv A { BORDER-RIGHT: medium none; BORDER-TOP: medium none; FONT-SIZE: 95%; = BORDER-LEFT: medium none; WIDTH: auto; BORDER-BOTTOM: medium none } .menumini A { BORDER-RIGHT: medium none; PADDING-RIGHT: 10px; BORDER-TOP: medium = none; PADDING-LEFT: 16px; FONT-SIZE: 85%; PADDING-BOTTOM: 2px; = BORDER-LEFT: medium none; WIDTH: auto; PADDING-TOP: 2px; BORDER-BOTTOM: = medium none } UL.nav LI.sub UL.narrow { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 5000! = important; FLOAT: none; PADDING-BOTTOM: 0px; WIDTH: 130px; PADDING-TOP: = 0px; ZOOM: 1; HEIGHT: 1% } UL.nav LI.sub UL.narrow LI { CLEAR: both; BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; = PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: -2px 0px = 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; ZOOM: 1; = HEIGHT: 1% } UL.nav LI.sub UL.narrow LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 6px; FONT-SIZE: 85%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: 118px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; ZOOM: 1; TEXT-ALIGN: left } UL.nav LI.sub UL.narrow LI A:hover { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 6px; FONT-SIZE: 85%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: 118px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; ZOOM: 1; TEXT-ALIGN: left } UL.nav LI.sub UL.narrow LI A:focus { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 6px; FONT-SIZE: 85%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: 118px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; ZOOM: 1; TEXT-ALIGN: left } DIV.topGlobalLinks UL.nav LI.sub { Z-INDEX: 1000! important; ZOOM: 1; HEIGHT: 1% } UL.nav LI.sub UL LI:first-child A { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: = 0px } DIV.actionBarMicro UL.nav LI.sub UL LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px! important; BORDER-TOP: 0px; = DISPLAY: block; PADDING-LEFT: 14px! important; FONT-WEIGHT: normal; = FONT-SIZE: 85%; BACKGROUND: url(images/cm_bullet_single.gif) #e2eefe = no-repeat 5px 3px; PADDING-BOTTOM: 2px! important; MARGIN: 0px; = BORDER-LEFT: 0px; WIDTH: 100px; COLOR: #444; PADDING-TOP: 2px! = important; BORDER-BOTTOM: 0px; TEXT-DECORATION: none } DIV.paneTabs UL.nav LI.sub UL LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px! important; BORDER-TOP: 0px; = DISPLAY: block; PADDING-LEFT: 14px! important; FONT-WEIGHT: normal; = FONT-SIZE: 85%; BACKGROUND: url(images/cm_bullet_single.gif) #e2eefe = no-repeat 5px 3px; PADDING-BOTTOM: 2px! important; MARGIN: 0px; = BORDER-LEFT: 0px; WIDTH: 100px; COLOR: #444; PADDING-TOP: 2px! = important; BORDER-BOTTOM: 0px; TEXT-DECORATION: none } DIV.paneTabs UL.nav LI.sub UL LI A { TEXT-ALIGN: left } UL.nav LI.sub UL LI A:hover { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } .cmdiv A:hover { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } .menumini A:hover { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } UL.nav LI.sub UL LI A:focus { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } .cmdiv A:focus { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } .menumini A:focus { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } DIV.timediv UL LI A:hover { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px } .timediv UL LI A:focus { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px } DIV.timediv UL LI A:focus { COLOR: #444444; BACKGROUND-COLOR: #e2eefe } DIV.timediv UL LI A:hover:focus { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.actionBarMicro UL.nav LI.sub UL LI A:hover { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff no-repeat 5px 3px; BORDER-LEFT: = 0px; COLOR: #000; BORDER-BOTTOM: 0px } DIV.paneTabs UL.nav LI.sub UL LI A:hover { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff no-repeat 5px 3px; BORDER-LEFT: = 0px; COLOR: #000; BORDER-BOTTOM: 0px } DIV.actionBarMicro UL.nav LI.sub UL LI A:focus { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff no-repeat 5px 3px; BORDER-LEFT: = 0px; COLOR: #000; BORDER-BOTTOM: 0px } DIV.paneTabs UL.nav LI.sub UL LI A:focus { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff no-repeat 5px 3px; BORDER-LEFT: = 0px; COLOR: #000; BORDER-BOTTOM: 0px } UL.nav LI.sub:hover UL { Z-INDEX: 101; LEFT: 0px; TOP: 22px } DIV.actionBarMicro UL.nav LI.sub:hover UL { Z-INDEX: 101; LEFT: 0px; TOP: 22px } DIV.topGlobalLinks UL.nav LI.sub:hover UL { Z-INDEX: 101; LEFT: 0px; TOP: 0px } DIV.topTabs-compact DIV.topGlobalLinks UL.nav LI.sub:hover UL { Z-INDEX: 101; RIGHT: 0px; LEFT: auto; TOP: 0px } DIV.actionBarMicro UL.nav LI.sub:hover UL { TOP: 18px } DIV.rumble_top UL.nav LI.sub:hover UL { TOP: 18px } DIV.rumble UL.nav LI.sub:hover UL { TOP: 18px } .cmdiv LI.contextmenubar_top { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = DISPLAY: block; PADDING-LEFT: 0px; RIGHT: 0px; BACKGROUND: none = transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: = medium none; WIDTH: 182px; PADDING-TOP: 0px; BORDER-BOTTOM: medium none; = POSITION: absolute; TOP: -17px; TEXT-ALIGN: right } .menumini LI.contextmenubar { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = DISPLAY: block; PADDING-LEFT: 0px; RIGHT: 0px; BACKGROUND: none = transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: = medium none; WIDTH: 182px; PADDING-TOP: 0px; BORDER-BOTTOM: medium none; = POSITION: absolute; TOP: -17px; TEXT-ALIGN: right } .menumini LI.contextmenubar { WIDTH: 122px; TOP: -17px } .cmdiv LI.contextmenubar_top A { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .cmdiv LI.contextmenubar_top A:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .cmdiv LI.contextmenubar_top A { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .cmdiv LI.contextmenubar_top A:focus { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .menumini LI.contextmenubar A { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .menumini LI.contextmenubar A:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .menumini LI.contextmenubar A { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .menumini LI.contextmenubar A:focus { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } DIV.quickAddPal H3 { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; BACKGROUND: #cedff6 repeat-x 0px 0px; PADDING-BOTTOM: 3px; MARGIN: = 0px 0px 4px; PADDING-TOP: 3px; BORDER-BOTTOM: #b5c9e5 1px solid } DIV.keyboardAccess H3 { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; BACKGROUND: #cedff6 repeat-x 0px 0px; PADDING-BOTTOM: 3px; MARGIN: = 0px 0px 4px; PADDING-TOP: 3px; BORDER-BOTTOM: #b5c9e5 1px solid } DIV.quickAddPal DIV.quickAddPalHeader { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; BACKGROUND: #cedff6 repeat-x 0px 0px; PADDING-BOTTOM: 3px; MARGIN: = 0px 0px 4px; PADDING-TOP: 3px; BORDER-BOTTOM: #b5c9e5 1px solid } DIV.quickAddPal H4 { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 100%; PADDING-BOTTOM: = 3px; MARGIN: 0px 0px 4px; PADDING-TOP: 3px } DIV.keyboardAccess H4 { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 100%; PADDING-BOTTOM: = 3px; MARGIN: 0px 0px 4px; PADDING-TOP: 3px } DIV.quickAddPal DIV.controls { CLEAR: both; PADDING-RIGHT: 3px; BORDER-TOP: #acc2df 1px solid; = PADDING-LEFT: 9px; FONT-SIZE: 95%; PADDING-BOTTOM: 3px; MARGIN: 0px 2px; = PADDING-TOP: 3px; TEXT-ALIGN: right } DIV.keyboardAccess DIV.controls { CLEAR: both; PADDING-RIGHT: 3px; BORDER-TOP: #acc2df 1px solid; = PADDING-LEFT: 9px; FONT-SIZE: 95%; PADDING-BOTTOM: 3px; MARGIN: 0px 2px; = PADDING-TOP: 3px; TEXT-ALIGN: right } .comText DIV.controls { CLEAR: both; PADDING-RIGHT: 3px; BORDER-TOP: #acc2df 1px solid; = PADDING-LEFT: 9px; FONT-SIZE: 95%; PADDING-BOTTOM: 3px; MARGIN: 0px 2px; = PADDING-TOP: 3px; TEXT-ALIGN: right } .comText DIV.controls { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; MARGIN: 3px = 0px 0px; PADDING-TOP: 6px } DIV.keyboardAccess DIV.minicolumn { FLOAT: left } DIV.keyboardAccess DIV.minicolumn { MARGIN: 0px 9px } DIV.keyboardAccess P.paletteHelp { BORDER-RIGHT: #ffcc00 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #ffcc00 1px solid; PADDING-LEFT: 6px; FONT-SIZE: 90%; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 3px; MARGIN: 6px 9px; BORDER-LEFT: #ffcc00 1px = solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ffcc00 1px solid; WHITE-SPACE: = normal } DIV.keyboardAccess P.colspan-1 { WIDTH: 120px } DIV.keyboardAccess P.colspan-2 { WIDTH: 260px } DIV.keyboardAccess P.colspan-3 { WIDTH: 390px } DIV.orderingControls-ns { PADDING-RIGHT: 3px; DISPLAY: block; PADDING-LEFT: 25px; FLOAT: none; = PADDING-BOTTOM: 3px; PADDING-TOP: 9px; TEXT-ALIGN: center } DIV.orderingControls-ew { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; PADDING-TOP: 40px } DIV.orderingControls-ns A { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; DISPLAY: = inline; MARGIN: 0px 2px 0px 0px; BORDER-LEFT: #ccc 1px solid; = BORDER-BOTTOM: #ccc 1px solid } DIV.orderingControls-ew A { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; DISPLAY: = inline; MARGIN: 0px 2px 0px 0px; BORDER-LEFT: #ccc 1px solid; = BORDER-BOTTOM: #ccc 1px solid } DIV.orderingControls-ew A { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; DISPLAY: = block; MARGIN: 0px 0px 2px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: = #ccc 1px solid } DIV.orderingControls-ns A IMG { WIDTH: 16px; HEIGHT: 16px } DIV.orderingControls-ew A IMG { WIDTH: 16px; HEIGHT: 16px } DIV.orderingControls-ns A.up { BACKGROUND: url(images/small_up.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ns A.down { BACKGROUND: url(images/small_down.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ns A.top { BACKGROUND: url(images/small_top.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ns A.bottom { BACKGROUND: url(images/small_bottom.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ew A.first { BACKGROUND: url(images/small_rewind.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ew A.next { BACKGROUND: url(images/small_next.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ew A.previous { BACKGROUND: url(images/small_previous.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ew A.last { BACKGROUND: url(images/small_ffwd.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ns A:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BORDER-LEFT: = #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-COLOR: #fff } DIV.orderingControls-ew A:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BORDER-LEFT: = #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-COLOR: #fff } .receipt { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 6px; MARGIN: 0px = 3px 6px; PADDING-TOP: 6px; POSITION: relative; -moz-border-radius: 6px; = -webkit-border-radius: 6px } .receipt A.close { RIGHT: 20px; FILTER: alpha(opacity=3D70); POSITION: absolute; TOP: 3px; = opacity: 0.7 } .bad { FONT-WEIGHT: bold; BACKGROUND: #fb6767; COLOR: #fff } .good { FONT-WEIGHT: bold; BACKGROUND: #85bd3d; COLOR: #fff } .infoReceipt { FONT-WEIGHT: bold; BACKGROUND: #6495ed; COLOR: #fff } .inlineReceipt { PADDING-RIGHT: 9px; DISPLAY: none; PADDING-LEFT: 9px; PADDING-BOTTOM: = 6px; MARGIN: 0px 3px 6px; PADDING-TOP: 6px; POSITION: absolute; = -moz-border-radius: 6px; -webkit-border-radius: 6px } BODY.cmPopup #navigationPane { MARGIN: 0px; WIDTH: auto; POSITION: relative } .cmWrapper { PADDING-TOP: 12px! important; POSITION: relative } .cmWrapper DIV.navPalette { MARGIN: 0px 14px 12px; POSITION: relative } DIV.tabPreview { BORDER-RIGHT: #cdcdcd 12px solid; BORDER-TOP: #cdcdcd 12px solid; = Z-INDEX: 1; BACKGROUND: #cdcdcd; MARGIN: 0px 6px 6px; BORDER-LEFT: = #cdcdcd 12px solid; WIDTH: auto; BORDER-BOTTOM: #cdcdcd 12px solid; = POSITION: relative } DIV.tabPreview DIV.paneTabs { MARGIN-TOP: 12px } DIV.status { PADDING-RIGHT: 6px; DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 90%; = BACKGROUND: #f9f9f9; PADDING-BOTTOM: 3px; MARGIN: 0px; COLOR: #000; = PADDING-TOP: 1px; TEXT-ALIGN: left } DIV.status A IMG { VERTICAL-ALIGN: middle } DIV.status P { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 2px; FONT-SIZE: 90%; BACKGROUND: #fff; = PADDING-BOTTOM: 0px; MARGIN: 2px auto 4px; BORDER-LEFT: #ccc 1px solid; = COLOR: #444444; LINE-HEIGHT: 10%; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc = 1px solid; HEIGHT: 12px! important; TEXT-ALIGN: left! important } DIV.status P IMG { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; HEIGHT: 8px; BACKGROUND-COLOR: #8dafaf } DIV.stopped P IMG { BACKGROUND: url(images/progress_stopped.gif) #fff } DIV.status A.buttonMicro { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 5px; FONT-SIZE: 90%; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x 0% 50%; PADDING-BOTTOM: = 0px; MARGIN: 1px auto; BORDER-LEFT: #ccc 1px solid; COLOR: #666; = PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px solid; TEXT-DECORATION: none } DIV.status DIV { POSITION: relative; TEXT-ALIGN: center } DIV.status A.buttonMicro:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } .searchbar { BORDER-RIGHT: medium none; PADDING-RIGHT: 2px; BORDER-TOP: #d7bb66 1px = solid; PADDING-LEFT: 2px; BACKGROUND: #eddca5; PADDING-BOTTOM: 2px; = MARGIN: -1px 0px 0px; BORDER-LEFT: medium none; PADDING-TOP: 2px; = BORDER-BOTTOM: #d7bb66 1px solid; POSITION: relative; HEIGHT: 1% } .searchbarPicker { BORDER-RIGHT: medium none; PADDING-RIGHT: 2px; BORDER-TOP: #d7bb66 1px = solid; PADDING-LEFT: 2px; BACKGROUND: #eddca5; PADDING-BOTTOM: 2px; = MARGIN: -1px 0px 0px; BORDER-LEFT: medium none; PADDING-TOP: 2px; = BORDER-BOTTOM: #d7bb66 1px solid; POSITION: relative; HEIGHT: 1% } .searchbar { FONT-SIZE: 85%; MARGIN: 0px -9px 0px 0px } .searchbarPicker TABLE { FONT-SIZE: 85%; MARGIN: 0px -9px 0px 0px } .searchbar TABLE TD { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } .searchbar TABLE TD TABLE TD { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } .searchbar TABLE FIELDSET { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px; HEIGHT: 1% } .searchbar TABLE DIV { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } .searchbar FORM { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .searchbarPicker { BORDER-RIGHT: medium none; BORDER-TOP: medium none; FONT-SIZE: 90%; = BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } .searchbar:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } .searchbarPicker:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } .searchbar A.close { RIGHT: 6px; POSITION: absolute; TOP: 3px; opacity: 0.8 } .searchbarPicker A.close { RIGHT: 6px; POSITION: absolute; TOP: 3px; opacity: 0.8 } .slideshowControls { FONT-SIZE: 100%; MARGIN: 8px auto 12px; TEXT-ALIGN: center } .searchbar FIELDSET { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 9px; PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 6px; BORDER-BOTTOM: 0px } .searchbarPicker FIELDSET { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 9px; PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 6px; BORDER-BOTTOM: 0px } .searchbar FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .portlet FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .searchbarPicker FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .searchbar FIELDSET INPUT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px 0px; = VERTICAL-ALIGN: middle; BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #666 1px solid } .searchbar FIELDSET SELECT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px 0px; = VERTICAL-ALIGN: middle; BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #666 1px solid } .searchbarPicker FIELDSET INPUT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px 0px; = VERTICAL-ALIGN: middle; BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #666 1px solid } .searchbarPicker FIELDSET SELECT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px 0px; = VERTICAL-ALIGN: middle; BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #666 1px solid } .searchbar * INPUT[type=3D'radio'] { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } .searchbarPicker * INPUT[type=3D'radio'] { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } .searchbar * INPUT[type=3D'checkbox'] { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } .searchbarPicker * INPUT[type=3D'checkbox'] { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } .searchbar FIELDSET LABEL { FONT-SIZE: 100% } .portlet FIELDSET LABEL { FONT-SIZE: 100% } .searchbarPicker FIELDSET LABEL { FONT-SIZE: 100% } .searchbar H2 { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; PADDING-BOTTOM: 1px; MARGIN: 0px; PADDING-TOP: 1px } .searchbarPicker H2 { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; PADDING-BOTTOM: 1px; MARGIN: 0px; PADDING-TOP: 1px } .searchbar FIELDSET OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .searchbarPicker FIELDSET OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .searchbar FIELDSET OL LI.groupLabel { PADDING-RIGHT: 3px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; PADDING-TOP: 5px } .searchbarPicker FIELDSET OL LI.groupLabel { PADDING-RIGHT: 3px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; PADDING-TOP: 5px } .searchbar FIELDSET OL LI { FLOAT: left } .searchbarPicker FIELDSET OL LI { FLOAT: left } .searchbar FIELDSET OL LI.options { FLOAT: right } .searchbarPicker FIELDSET OL LI.options { FLOAT: right } .searchbarPicker FIELDSET OL LI SPAN { DISPLAY: inline } .searchbarPicker FIELDSET OL LI OL LI SPAN { DISPLAY: inline } .searchbar SPAN.spacer { MARGIN: 0px 4px } .tabGroupsPreview { FONT-SIZE: 100%; MARGIN: -11px -12px 24px } .previewContent { PADDING-RIGHT: 14px; PADDING-LEFT: 14px; Z-INDEX: 1; BACKGROUND: = url(images/dcp_block_bg.png) #aaa no-repeat right bottom; = PADDING-BOTTOM: 14px; MARGIN: 0px 14px 11px; WIDTH: auto; PADDING-TOP: = 14px; POSITION: relative } .previewContent IFRAME { WIDTH: 100%; HEIGHT: 300px } .previewOverlay { FONT-WEIGHT: bold; FONT-SIZE: 300%; FILTER: alpha(opacity=3D30); = TEXT-TRANSFORM: uppercase; WIDTH: 100%; COLOR: #555; LETTER-SPACING: = 10px; POSITION: absolute; TOP: 130px; TEXT-ALIGN: center } .previewOverlay SPAN { PADDING-RIGHT: 12px; PADDING-LEFT: 24px; FILTER: alpha(opacity=3D30); = PADDING-BOTTOM: 6px; PADDING-TOP: 6px; BACKGROUND-COLOR: white; opacity: = .30 } P.warning { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; FONT-SIZE: 100%; = PADDING-BOTTOM: 12px; MARGIN: 12px 0px 24px; COLOR: #fff; PADDING-TOP: = 9px; BACKGROUND-COLOR: #cf1d19 } .tabGroupsPreview .previewOverlay { TOP: 54px } B.shadow { DISPLAY: block; BACKGROUND: url(images/bg_content_shadow.png) repeat-x = 0px -3px; MARGIN: 0px 1px; OVERFLOW: hidden; HEIGHT: 9px } HTML * DIV.calPicker { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MAX-WIDTH: 60%; PADDING-BOTTOM: = 21px; OVERFLOW: auto; WIDTH: 30em; PADDING-TOP: 0px } DIV.calPicker { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; Z-INDEX: = 1500! important; PADDING-BOTTOM: 0px! important; OVERFLOW: visible! = important; WIDTH: auto! important; PADDING-TOP: 0px! important } DIV.calPicker DIV.calHead { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px; POSITION: relative } DIV.calPicker H3 { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; = PADDING-BOTTOM: 0px; MARGIN: 0px 40px; BORDER-LEFT: medium none; = PADDING-TOP: 0px; BORDER-BOTTOM: medium none; TEXT-ALIGN: center } DIV.calPicker DIV.previous { LEFT: 2px; POSITION: absolute; TOP: 2px } DIV.calPicker DIV.next { RIGHT: 2px; POSITION: absolute; TOP: 2px; TEXT-ALIGN: right } DIV.calPicker DIV.calFoot { CLEAR: both; PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: = 6px; PADDING-TOP: 6px; TEXT-ALIGN: center } DIV.calPicker A.contextmenubar { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; BACKGROUND: = #c8dbf4; PADDING-BOTTOM: 2px; PADDING-TOP: 0px; TEXT-ALIGN: right } DIV.calPicker A.contextmenubar:hover { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; BACKGROUND: = #c8dbf4; PADDING-BOTTOM: 2px; PADDING-TOP: 0px; TEXT-ALIGN: right } DIV.timediv UL { OVERFLOW: auto; WIDTH: 8em; HEIGHT: 200px } DIV.timediv UL LI.contextmenubar_top { WIDTH: 8.15em } DIV.timediv UL LI A { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 3px; PADDING-TOP: 3px } UL.buildList UL.detailList LI SPAN.hidden { DISPLAY: none } UL.buildList UL.detailList LI SPAN.tagContainer { POSITION: relative } UL.buildList UL.detailList LI SPAN.tagContainer SPAN.hidden { DISPLAY: none } UL.buildList UL.detailList LI SPAN.tagContainer { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; PADDING-TOP: 2px } UL.buildList UL.detailList LI SPAN.tagContainer SPAN { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; PADDING-TOP: 2px } UL.buildList UL.detailList LI SPAN.tagContainer INPUT { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; DISPLAY: = inline; FONT-SIZE: 95%; FLOAT: none; MARGIN: 0px; VERTICAL-ALIGN: = middle; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } SPAN.tagContainer INPUT { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; DISPLAY: = inline; FONT-SIZE: 95%; FLOAT: none; MARGIN: 0px; VERTICAL-ALIGN: = middle; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } UL.buildList UL.detailList LI SPAN.tagContainer A.browse { FONT-SIZE: 95%; VERTICAL-ALIGN: middle } SPAN.tagContainer A.browse { FONT-SIZE: 95%; VERTICAL-ALIGN: middle } SPAN.tagContainer SPAN.newTagForm { MARGIN-LEFT: 6px; BORDER-LEFT: #999 1px dotted } SPAN.tagContainer SPAN.newTagForm LABEL { PADDING-LEFT: 6px } SPAN.currentTags { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #acc2df 1px solid; = DISPLAY: none; Z-INDEX: 100; RIGHT: 0px; OVERFLOW: hidden; BORDER-LEFT: = #acc2df 1px solid; WIDTH: 16em; LINE-HEIGHT: 1.8; BORDER-BOTTOM: #5577bb = 1px solid; ZOOM: 1; POSITION: absolute; TOP: 1.2em; BACKGROUND-COLOR: = #e2eefe } SPAN.currentTags SPAN { PADDING-RIGHT: 6px; DISPLAY: block; PADDING-LEFT: 6px; PADDING-BOTTOM: = 6px; PADDING-TOP: 18px } SPAN.currentTags A { FONT-WEIGHT: bold } SPAN.currentTags A.closeCloud { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; BACKGROUND: = #c8dbf4; LEFT: 0px; PADDING-BOTTOM: 1px; WIDTH: 98%; LINE-HEIGHT: 1; = PADDING-TOP: 0px; POSITION: absolute; TOP: 0px; TEXT-ALIGN: right } DIV.auto_complete { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #acc2df 1px solid; = Z-INDEX: 1000; BACKGROUND: #e2eefe; BORDER-LEFT: #acc2df 1px solid; = WIDTH: 12em; BORDER-BOTTOM: #5577bb 1px solid } DIV.auto_complete UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: 100%; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.auto_complete UL LI { PADDING-RIGHT: 1%; PADDING-LEFT: 3%; PADDING-BOTTOM: 2px; MARGIN: 0px; = OVERFLOW: hidden; WIDTH: 96%; CURSOR: pointer; PADDING-TOP: 2px } DIV.auto_complete UL LI.selected { BACKGROUND-COLOR: #fff } DIV.auto_complete UL STRONG.highlight { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.dropzone { BORDER-RIGHT: #333333 2px dashed; BORDER-TOP: #333333 2px dashed; = MARGIN: 5px; BORDER-LEFT: #333333 2px dashed; BORDER-BOTTOM: #333333 2px = dashed } #copyright { DISPLAY: block! important; FONT-SIZE: 85%; BACKGROUND: none transparent = scroll repeat 0% 0%; MARGIN: 12px auto; WIDTH: 500px; COLOR: #555; = POSITION: relative } .loginCopyright { WIDTH: 580px! important } DIV.logo { MIN-HEIGHT: 4em; FLOAT: left; VERTICAL-ALIGN: bottom; LINE-HEIGHT: = 1.3em } DIV.productTitle { MIN-HEIGHT: 4em; FLOAT: left; VERTICAL-ALIGN: bottom; LINE-HEIGHT: = 1.3em } DIV.legal { MIN-HEIGHT: 4em; FLOAT: left; VERTICAL-ALIGN: bottom; LINE-HEIGHT: = 1.3em } DIV.additionalInfo { MIN-HEIGHT: 4em; FLOAT: left; VERTICAL-ALIGN: bottom; LINE-HEIGHT: = 1.3em } DIV.productTitle { PADDING-RIGHT: 12px; PADDING-LEFT: 9px; MIN-HEIGHT: auto; = PADDING-BOTTOM: 0px; PADDING-TOP: 9px } DIV.logo { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } DIV.legal { PADDING-RIGHT: 3px; PADDING-LEFT: 12px; PADDING-BOTTOM: 6px; = BORDER-LEFT: #efefef 1px dotted; WIDTH: 18.5em; PADDING-TOP: 3px } DIV.additionalInfo { PADDING-RIGHT: 3px; PADDING-LEFT: 12px; PADDING-BOTTOM: 6px; = BORDER-LEFT: #efefef 1px dotted; WIDTH: 18.5em; PADDING-TOP: 3px } DIV.legal P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.additionalInfo P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: = 0px; PADDING-TOP: 0px } .loginCopyright DIV.legal { MIN-HEIGHT: 2.5em; WIDTH: 24em } .loginCopyright DIV.additionalInfo { MIN-HEIGHT: 2.5em; WIDTH: 24em } .loginCopyright DIV.legal { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 6px; = BORDER-LEFT: medium none; WIDTH: 24.5em; PADDING-TOP: 3px } DIV.productTitle A { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 125%; COLOR: #333; = LINE-HEIGHT: 1.1em; TEXT-ALIGN: right; TEXT-DECORATION: none } DIV.productTitle A:hover { TEXT-DECORATION: underline } DIV.additionalInfo A { COLOR: #333 } DIV.copyrightDetailContents { CLEAR: left; PADDING-RIGHT: 6px; DISPLAY: none; PADDING-LEFT: 20px; = MIN-HEIGHT: 5em; LEFT: 5.2em; PADDING-BOTTOM: 9px; WIDTH: 42em; COLOR: = #fff; PADDING-TOP: 6px; POSITION: absolute; TOP: -0.2em; = BACKGROUND-COLOR: #404040; -moz-border-radius: 5px } .productImg { MARGIN-TOP: 5px; FLOAT: left } DIV.copyrightDetailContents UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 0px 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.copyrightDetailContents UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.copyrightDetailContents UL LI SPAN { FONT-WEIGHT: bold } A.closeCopyright { FLOAT: right } DIV#lightboxWrapper { Z-INDEX: 1001; RIGHT: 0px; LEFT: 0px; POSITION: absolute; TOP: 0px } DIV#lightboxWrapper-inner { Z-INDEX: 1002; LEFT: 0px; WIDTH: 100%; POSITION: relative; TOP: 0px; = TEXT-ALIGN: center } DIV#lightbox { DISPLAY: block; Z-INDEX: 1003; LEFT: auto; MARGIN: 40px 0px 0px; = POSITION: relative; TOP: auto; TEXT-ALIGN: left } #lightbox DIV#lightboxContent { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = auto; WIDTH: 600px; PADDING-TOP: 0px; POSITION: relative; = BACKGROUND-COLOR: transparent! important } #lightbox DIV#lightboxContent DIV.lbContainer { BACKGROUND: #ffffff; MAX-HEIGHT: 300px } #lightbox DIV#lightboxContent DIV.lbContainer:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } DIV#lightboxContent H2 { PADDING-RIGHT: 1em; PADDING-LEFT: 1em; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 0.3em; MARGIN: 0px; PADDING-TOP: 0.3em; BORDER-BOTTOM: = #ed9 1px solid; POSITION: relative } .lbAction { Z-INDEX: 1005; RIGHT: 9px; POSITION: absolute; TOP: 6px } #overlay { DISPLAY: none; Z-INDEX: 1000; RIGHT: 0px; FILTER: alpha(opacity=3D30); = LEFT: 0px; WIDTH: 100%; BOTTOM: 0px; POSITION: fixed; TOP: 0px; HEIGHT: = 100%; BACKGROUND-COLOR: #000; opacity: .30 } DIV#overlay { POSITION: absolute } .done#lightbox #lbLoadMessage { DISPLAY: none } .done#lightbox #lbContent { DISPLAY: block } .loading#lightbox #lbContent { DISPLAY: none } .loading#lightbox #lbLoadMessage { DISPLAY: block } .done#lightbox IMG { =09 } .myPlacesContent { BORDER-RIGHT: medium none; PADDING-RIGHT: 12px; BORDER-TOP: medium = none; PADDING-LEFT: 12px; BACKGROUND: #fff; PADDING-BOTTOM: 16px; = OVERFLOW: auto; BORDER-LEFT: medium none; MAX-HEIGHT: 500px! important; = PADDING-TOP: 16px; BORDER-BOTTOM: medium none; HEIGHT: auto! important } UL.langOptions { LIST-STYLE-TYPE: none } UL.langOptions LI { BACKGROUND: none transparent scroll repeat 0% 0% } .avatar { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; MARGIN: auto; = BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #ccc 1px = solid } .myavatar { OVERFLOW: hidden; MAX-HEIGHT: 150px } #lightbox DIV.topRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } #lightbox DIV.bottomRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } #lightbox DIV.topRound B { DISPLAY: block; BACKGROUND: #fff; OVERFLOW: hidden } #lightbox DIV.bottomRound B { DISPLAY: block; BACKGROUND: #fff; OVERFLOW: hidden } #lightbox DIV.topRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } #lightbox DIV.bottomRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } #lightbox DIV.topRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } #lightbox DIV.bottomRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } #lightbox DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } #lightbox DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } #lightbox DIV.topRound B { BACKGROUND: #fff1c5 } #lightbox DIV.lightBlue B { BACKGROUND: #e3efff } #lightbox DIV.error B { BACKGROUND: #ff0000 } #lightbox .tallPara { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 14px; MARGIN: = 0px; PADDING-TOP: 14px } #lightbox UL { MARGIN: 0px 0px 12px } #lightbox DIV.column-3 { MIN-HEIGHT: 200px! important; MARGIN: 0px; WIDTH: 33%; HEIGHT: auto! = important } #lightbox DIV.column-2 { MIN-HEIGHT: 200px! important; MARGIN: 0px; WIDTH: 33%; HEIGHT: auto! = important } #lightbox DIV.column-2 { WIDTH: 50% } .clearfix:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } .clearfix { DISPLAY: inline-block } .clearfix { DISPLAY: block } .clearfloats { CLEAR: both } .qShow { DISPLAY: block } .qHide { DISPLAY: none } .completionContainer { PADDING-BOTTOM: 6px; OVERFLOW: auto; PADDING-TOP: 6px } .completionContainerLarge { PADDING-BOTTOM: 6px; OVERFLOW: auto; PADDING-TOP: 6px; HEIGHT: 75px } .pagedAssessment { BACKGROUND: #888; MARGIN: 0px; COLOR: #ffffff! important } .pagedRumble { BACKGROUND: #fff7de } .pagedControls { PADDING-RIGHT: 4px; PADDING-LEFT: 40px; BACKGROUND: #fff7de; = PADDING-BOTTOM: 6px; MARGIN: -5px -4px -5px -40px; COLOR: #000000! = important; PADDING-TOP: 5px } .pagedPointsOutsideBar { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; RIGHT: 6px; BACKGROUND: #fae7ae 0% 50%; LEFT: auto; = PADDING-BOTTOM: 0px; MARGIN: 0pt 0px 0pt 0pt; COLOR: #000000! important; = LINE-HEIGHT: 100%; PADDING-TOP: 0px; LETTER-SPACING: 1px; POSITION: = relative; TOP: 0pt } .pagedPoints { PADDING-RIGHT: 0px; PADDING-LEFT: 10px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; BACKGROUND: #fae7ae 0% 50%; PADDING-BOTTOM: 6px; MARGIN: -5px 24px = -5px -10px; COLOR: #000000! important; LINE-HEIGHT: 100%; PADDING-TOP: = 5px; LETTER-SPACING: 1px } .bb-cpgbtd { FONT-SIZE: 10pt; FONT-FAMILY: Arial,Helvetica,sans-serif } .bb-cpgbth { FONT-SIZE: 10pt; FONT-FAMILY: Arial,Helvetica,sans-serif } .bb-cpmgtd { FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: Arial,Helvetica,sans-serif } .bb-cpmgth { FONT-WEIGHT: bold; FONT-SIZE: 9pt; FONT-FAMILY: = Arial,Helvetica,sans-serif } .actionBar UL LI.mainButton-legacy { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 2px = 0px 0px 6px; PADDING-TOP: 0px } .reverseButtons UL LI.mainButton-legacy { FLOAT: right } .actionBar UL LI.mainButton-legacy A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 7px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 7px; FONT-SIZE: 100%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 3px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } .actionBar UL LI.mainButton-legacy A:hover { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #acc2df 1px solid; = BACKGROUND: url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = BORDER-LEFT: #acc2df 1px solid; BORDER-BOTTOM: #5577bb 1px solid } A.inlineAction-legacy { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 95%; BACKGROUND: = #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; COLOR: = #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } A.inlineAction-legacy:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 95%; BACKGROUND: = url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; COLOR: #000; = PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid; TEXT-DECORATION: = none } DIV.buttonCm DIV.navPaletteContent { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.buttonCm UL.courseMenu { WIDTH: 190px } DIV.buttonCm UL.courseMenu LI { BACKGROUND-POSITION: 14px 0px; MARGIN: 4px -14px; BACKGROUND-REPEAT: = no-repeat; POSITION: relative; BACKGROUND-COLOR: transparent } DIV.buttonCm UL.courseMenu LI.here { BACKGROUND-POSITION: 14px 0px; MARGIN: 4px -14px; BACKGROUND-REPEAT: = no-repeat; POSITION: relative; BACKGROUND-COLOR: transparent } DIV.buttonCm UL.courseMenu LI.subhead { PADDING-RIGHT: 0px; PADDING-LEFT: 20px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; HEIGHT: 1% } DIV.buttonCm UL.courseMenu LI.subhead H4 { PADDING-RIGHT: 16px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0pt 0pt 0pt 14px; PADDING-TOP: 0px; = HEIGHT: 1% } DIV.buttonCm UL.courseMenu LI.divider { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 4px; MARGIN: 0px; PADDING-TOP: 0px } DIV.buttonCm UL.courseMenu LI.divider HR { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px; VERTICAL-ALIGN: = middle; BORDER-LEFT: 0px; LINE-HEIGHT: 1%; BORDER-BOTTOM: 0px; POSITION: = relative; TOP: -9px; HEIGHT: 1px; BACKGROUND-COLOR: #777 } DIV.buttonCm UL.courseMenu LI A { PADDING-RIGHT: 6px; BORDER-TOP: 0px; DISPLAY: block; PADDING-LEFT: 6px; = FONT-WEIGHT: normal; BACKGROUND-IMAGE: none; PADDING-BOTTOM: 6px; = MARGIN: 0px 0px 0px 14px; OVERFLOW: hidden; PADDING-TOP: 4px; = WHITE-SPACE: nowrap; POSITION: relative; BACKGROUND-COLOR: transparent; = TEXT-DECORATION: none } DIV.buttonCm UL.courseMenu LI A:hover { PADDING-RIGHT: 6px; BORDER-TOP: 0px; DISPLAY: block; PADDING-LEFT: 6px; = FONT-WEIGHT: normal; BACKGROUND-IMAGE: none; PADDING-BOTTOM: 6px; = MARGIN: 0px 0px 0px 14px; OVERFLOW: hidden; PADDING-TOP: 4px; = WHITE-SPACE: nowrap; POSITION: relative; BACKGROUND-COLOR: transparent; = TEXT-DECORATION: none } DIV.buttonCm UL.courseMenu LI.here A { BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline } DIV.buttonCm UL.courseMenu LI.here A:hover { BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline } DIV.buttonCm UL.courseMenu LI A.cmimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 4px; BACKGROUND: = url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: = absolute; TOP: 7px; opacity: 0.2 } DIV.buttonCm UL.courseMenu LI A.cmimg:hover { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 4px; BACKGROUND: = url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: = absolute; TOP: 7px; opacity: 0.2 } DIV.buttonCm H3 A.cmimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 4px; BACKGROUND: = url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: = absolute; TOP: 7px; opacity: 0.2 } DIV.buttonCm UL.courseMenu LI A.cmimg IMG { WIDTH: 13px; HEIGHT: 13px } DIV.buttonCm UL.courseMenu LI A.cmimg:hover IMG { WIDTH: 13px; HEIGHT: 13px } DIV.buttonCm H3 A.cmimg IMG { WIDTH: 13px; HEIGHT: 13px } DIV.buttonCm UL.courseMenu LI.subhead A.cmimg IMG { WIDTH: 13px; HEIGHT: 13px } DIV.buttonCm UL.courseMenu LI.divider A.cmimg { TOP: -4px } DIV.buttonCm UL.courseMenu LI.subhead A.cmimg { TOP: 3px } DIV.buttonCm UL.courseMenu LI.subhead A.cmimg:hover { TOP: 3px } DIV.buttonCm UL.courseMenu LI A.cmimg:hover { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm H3 A.cmimg:hover { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI A:hover SPAN.reorder { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI A:hover A.cmimg { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI:hover SPAN.reorder { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI:hover A.cmimg { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm H3:hover A.cmimg { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI SPAN.reorder { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 2px; FILTER: = alpha(opacity=3D60); LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 20px; = CURSOR: move; PADDING-TOP: 0px; POSITION: absolute; TOP: 5px; HEIGHT: = 16px; opacity: 0.6 } DIV.buttonCm UL.courseMenu LI.invisible SPAN.reorder { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 2px; FILTER: = alpha(opacity=3D60); LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 20px; = CURSOR: move; PADDING-TOP: 0px; POSITION: absolute; TOP: 5px; HEIGHT: = 16px; opacity: 0.6 } DIV.buttonCm UL.courseMenu LI.subhead SPAN.reorder { TOP: 0px } DIV.buttonCm UL.courseMenu LI.divider SPAN.reorder { TOP: -10px } DIV.buttonCm LI.invisible A SPAN.cmLink-hidden { RIGHT: 20px; POSITION: absolute; TOP: 7px } DIV.buttonCm LI.invisible SPAN.cmLink-empty { RIGHT: 20px; POSITION: absolute; TOP: 7px } DIV.buttonCm LI.invisible SPAN.cmLink-empty { RIGHT: 32px } DIV.buttonCm DIV.bottomRound { DISPLAY: none } DIV.instructionData { MARGIN: 0px 0px 12px } DIV.instructionData UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px solid; LIST-STYLE-TYPE: = none } DIV.instructionData UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 6px; MARGIN: 0px 12px 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.instructionData UL LI SPAN { FONT-SIZE: 90%; COLOR: #555 } DIV.instructionData UL LI H3 { DISPLAY: inline; FONT-SIZE: 100%; MARGIN: 0px } DIV.instructionData UL LI.instructions { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: = 0px; MARGIN: 6px 0px 0px; PADDING-TOP: 0px } DIV.instructionData UL LI.saving { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 0px 0px; PADDING-TOP: 0px } DIV.instructionData UL LI.instructions A.browse { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; FONT-SIZE: = 90%; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: medium none } .assessmentInstructions { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #f1f1f1; = PADDING-BOTTOM: 6px; MARGIN: 0px 0px 12px; PADDING-TOP: 3px; POSITION: = relative } .assessmentInstructions H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px = 0px; PADDING-TOP: 0px } .assessmentPortlet { Z-INDEX: 1; RIGHT: 26px; POSITION: fixed } .assessmentPortlet H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; COLOR: #597298; PADDING-TOP: 1px; = BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .assessmentPortlet DIV.assessmentPortletBlock H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; COLOR: #597298; PADDING-TOP: 1px; = BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .assessmentPortlet DIV.blockContents H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; COLOR: #597298; PADDING-TOP: 1px; = BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .assessmentPortlet DIV.assessmentPortletBlock { BORDER-RIGHT: #777 1px solid; BORDER-TOP: #777 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #777 1px solid; BORDER-BOTTOM: #777 1px solid } .assessmentPortlet DIV.assessmentPortletBlock H4 { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px } .assessmentPortlet DIV.assessmentPortletBlock H4.blockTitle { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px } .assessmentPortlet DIV.assessmentPortletBlock H4 A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 9px; FONT-SIZE: 110%; BACKGROUND: #f1f1f1; PADDING-BOTTOM: = 4px; MARGIN: 0px; BORDER-LEFT: 0px; COLOR: #444; PADDING-TOP: 4px; = BORDER-BOTTOM: 0px; LETTER-SPACING: 0px; TEXT-DECORATION: none } .assessmentPortlet DIV.assessmentPortletBlock H4.blockTitle A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 9px; FONT-SIZE: 110%; BACKGROUND: #f1f1f1; PADDING-BOTTOM: = 4px; MARGIN: 0px; BORDER-LEFT: 0px; COLOR: #444; PADDING-TOP: 4px; = BORDER-BOTTOM: 0px; LETTER-SPACING: 0px; TEXT-DECORATION: none } .assessmentPortlet DIV.assessmentPortletBlock H4 A:hover { BACKGROUND: #eee } .assessmentPortlet DIV.assessmentPortletBlock H4.blockTitle A:hover { BACKGROUND: #eee } .assessmentPortlet DIV.assessmentPortletBlock H4 A SPAN { FONT-WEIGHT: normal; COLOR: #ddd } .assessmentPortlet DIV.assessmentPortletBlock H4.blockTitle A SPAN { FONT-WEIGHT: normal; COLOR: #ddd } .assessmentPortlet UL.subCategories { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.assessmentBlockGroups { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .assessmentPortlet DIV.assessmentPortletBlock UL.subCategories LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.assessmentBlockGroups LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .assessmentPortlet UL.subCategories LI A { PADDING-RIGHT: 16px; BORDER-TOP: #777 1px solid; DISPLAY: block; = PADDING-LEFT: 16px; FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 3px center; = PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #597298; PADDING-TOP: 4px; = LETTER-SPACING: 1px; TEXT-DECORATION: none } UL.assessmentBlockGroups LI A.itemHead { PADDING-RIGHT: 16px; BORDER-TOP: #777 1px solid; DISPLAY: block; = PADDING-LEFT: 16px; FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 3px center; = PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #597298; PADDING-TOP: 4px; = LETTER-SPACING: 1px; TEXT-DECORATION: none } UL.assessmentBlockGroups LI A.itemHead:hover { BACKGROUND-COLOR: #e3efff; TEXT-DECORATION: underline } UL.assessmentBlockGroups LI A.itemHeadOpen { BACKGROUND: #fff no-repeat 3px center } UL.assessmentBlockGroups LI A.itemHeadOpen:hover { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } .assessmentPortlet UL.subCategories LI:first-child A { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } UL.assessmentBlockGroups LI:first-child A { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } .assessmentPortlet UL.subCategories LI A:hover { FILTER: alpha(opacity=3D100); BACKGROUND-COLOR: #fff; opacity: 1 } UL.assessmentBlockGroups LI A:hover { FILTER: alpha(opacity=3D100); BACKGROUND-COLOR: #fff; opacity: 1 } .assessmentPortlet UL.subCategories LI A SPAN { FONT-WEIGHT: normal; COLOR: #777 } UL.assessmentBlockGroups LI A SPAN { FONT-WEIGHT: normal; COLOR: #777 } .assessmentPortlet UL.itemGroup LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: = inline; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 105%; = PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: = 0px } UL.assessmentBlockGroups LI UL.itemGroups LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: = inline; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 105%; = PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: = 0px } .assessmentPortlet UL.itemGroup LI A:hover { TEXT-DECORATION: underline } UL.itemGroups LI A:hover { TEXT-DECORATION: underline } UL.itemGroups LI UL.items { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; FONT-SIZE: 110%; = PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-TOP: 2px } UL.assessmentBlockGroups LI UL.itemGroups LI A { FONT-WEIGHT: normal } UL.itemGroups LI UL.items LI A { FONT-WEIGHT: normal } .assessmentPortlet DIV.assessmentPortletBlock H3 { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 100%; PADDING-BOTTOM: = 0px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none; LETTER-SPACING: 0px } .assessmentPortlet DIV.assessmentPortletBlock H3 A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 99% center; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; TEXT-DECORATION: = none } .assessmentPortlet DIV.assessmentPortletBlock H3 A:hover { TEXT-DECORATION: underline } .assessmentPortlet DIV.assessmentPortletBlock:first-child H3 A { BORDER-TOP: medium none } .assessmentPortlet DIV.assessmentPortletBlock H3 A.open { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = url(images/less_options.gif) #e3efff no-repeat 99% center; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; TEXT-DECORATION: = none } .assessmentPortlet UL.objectList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .assessmentPortletBlock UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .blockContents UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } UL.memberList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .assessmentPortlet .blockContents UL LI UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .assessmentPortlet .blockContents UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .assessmentPortlet UL LI UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .savingQuestion { PADDING-RIGHT: 2px; DISPLAY: none; PADDING-LEFT: 2px; FONT-SIZE: 150%; = BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 2px; = COLOR: #cc0033; PADDING-TOP: 2px; POSITION: relative } TR.dummyVTBEFooter TD { BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #666666 1px solid; PADDING-LEFT: 2px; BACKGROUND: #eee; PADDING-BOTTOM: = 2px; BORDER-LEFT: #666666 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: = #666666 1px solid; TEXT-ALIGN: right } DIV.canvasHead { PADDING-RIGHT: 16px; PADDING-LEFT: 16px; BACKGROUND: #f6f6f6; = PADDING-BOTTOM: 12px; MARGIN: 0.6em 0px; PADDING-TOP: 6px } DIV.canvasHead UL LI { BORDER-TOP: #eeeeee 1px solid } DIV.canvasHead UL LI:first-child { BORDER-TOP: medium none } DIV.canvasHead UL LI DIV.label { COLOR: #555 } .peer_instructions { MARGIN: 12px 6px } .peerHelp { COLOR: #555 } H2.evaluator { MARGIN: 1em 0px 0.3em } H2.evaluator SPAN { FONT-WEIGHT: normal; FONT-SIZE: 90% } DIV.peerCriteriaStatus { BORDER-RIGHT: #bbb 1px solid; PADDING-RIGHT: 0.3em; BORDER-TOP: #bbb = 1px solid; PADDING-LEFT: 0.3em; BACKGROUND: #fff; PADDING-BOTTOM: 0.3em; = BORDER-LEFT: #bbb 1px solid; PADDING-TOP: 0.3em; BORDER-BOTTOM: #bbb 1px = solid } DIV.peerCriteriaStatus A.itemHeadOpen { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 0px; COLOR: = #597298; LETTER-SPACING: 1px; TEXT-DECORATION: none } DIV.peerCriteriaStatus A.itemHeadOpen:hover { TEXT-DECORATION: underline } DIV.peerCriteriaStatus TD.qStatus { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 4px; WIDTH: 5%; = PADDING-TOP: 4px } DIV.peerCriteriaStatus TD.qStatus A SPAN { BORDER-RIGHT: #fff 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #fff 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: bold; BACKGROUND: white; = PADDING-BOTTOM: 1px; BORDER-LEFT: #fff 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #fff 1px solid } DIV.peerCriteriaStatus TD.qStatus A SPAN.qComplete { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BACKGROUND: = #eee; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid } DIV.peerCriteriaStatus TD.qStatus A.qActive SPAN.qComplete { BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; = BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid; = TEXT-DECORATION: none } DIV.peerCriteriaStatus TD.qStatus A.qActive SPAN.qIncomplete { BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; = BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid; = TEXT-DECORATION: none } DIV.peerCriteriaStatus A SPAN IMG { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; WIDTH: = 12px; PADDING-TOP: 2px; HEIGHT: 12px } .questionNumber { FONT-WEIGHT: bold } .questionType { FONT-WEIGHT: bold } .questionDiv { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0.6em; BORDER-TOP: #ccc = 1px solid; PADDING-LEFT: 0.6em; PADDING-BOTTOM: 0.6em; MARGIN: -1px 0px = 6px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 0.6em; BORDER-BOTTOM: = #ccc 1px solid } .questionDiv H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0.6em; MARGIN: = 0px 0px 0.6em; PADDING-TOP: 0px; BORDER-BOTTOM: #ddd 1px solid } .questionDiv P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0.6em 1.2em; PADDING-TOP: 0px } .questionDiv DIV.criteriaText { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0.6em 1.2em; PADDING-TOP: 0px } .questionDiv DIV.submission_text { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 2px; OVERFLOW: auto; = BORDER-LEFT: #ccc 1px solid; WIDTH: 100%; PADDING-TOP: 2px; = BORDER-BOTTOM: #ccc 1px solid; HEIGHT: 150px } .questionDiv TABLE { WIDTH: 98% } .questionDiv TABLE TABLE { WIDTH: auto } .questionDiv TD.label { WIDTH: 150px; WHITE-SPACE: nowrap } #creceipt { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 4px; COLOR: red; PADDING-TOP: 4px } UL.fileData { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 3px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.fileData LI { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FLOAT: left; PADDING-BOTTOM: = 2px; MARGIN: 0px; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 2px } UL.containerTabs LI.tabhead { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: none = transparent scroll repeat 0% 0%; BORDER-LEFT: medium none; = BORDER-BOTTOM: medium none; TEXT-ALIGN: left } UL.containerTabs LI H3 { BORDER-RIGHT: medium none; PADDING-RIGHT: 12px; BORDER-TOP: medium = none; PADDING-LEFT: 0px; FONT-SIZE: 100%; PADDING-BOTTOM: 6px; MARGIN: = 0px; BORDER-LEFT: medium none; PADDING-TOP: 5px; BORDER-BOTTOM: medium = none; WHITE-SPACE: nowrap } UL.listNav { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #ddd; = PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 100%; PADDING-TOP: 0px; = LIST-STYLE-TYPE: none } UL.listNav LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #ededed; FLOAT: = left; PADDING-BOTTOM: 0px; MARGIN: 1px; COLOR: #2d2680; PADDING-TOP: = 0px; WHITE-SPACE: nowrap; TEXT-ALIGN: center } UL.listNav LI A { PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; TEXT-DECORATION: none } UL.listNav LI A:hover { BACKGROUND-COLOR: #dedede; TEXT-DECORATION: underline } UL.listNav LI A.active { BORDER-RIGHT: #000 2px solid; PADDING-RIGHT: 8px; BORDER-TOP: #000 2px = solid; PADDING-LEFT: 8px; FONT-WEIGHT: bold; BACKGROUND: #fff; = PADDING-BOTTOM: 2px; BORDER-LEFT: #000 2px solid; COLOR: #000; = PADDING-TOP: 2px; BORDER-BOTTOM: #000 2px solid } UL.evaluation { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 0.6em 1.2em; = PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.evaluation LI { CLEAR: both; PADDING-RIGHT: 0px; BORDER-TOP: #ddd 1px solid; = PADDING-LEFT: 0px; PADDING-BOTTOM: 4px; MARGIN: 0px; PADDING-TOP: 4px } UL.evaluation LI P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 1px 0px; WIDTH: 79%; PADDING-TOP: 0px } UL.evaluation H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 4px; FONT-SIZE: 100%; FLOAT: left; = PADDING-BOTTOM: 0px; MARGIN: 1px 0px; WIDTH: 20%; PADDING-TOP: 0px } UL.evaluation LI P SPAN { COLOR: #555 } DIV.stepPanel DIV.user_html { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 5px = 5px 12px 12px; PADDING-TOP: 0px } UL.stepPanels H4.defaultCursor { CURSOR: default } H4.defaultCursor { CURSOR: default } DL { MARGIN: 1em } DT { CLEAR: left; PADDING-RIGHT: 0.1em; PADDING-LEFT: 0.1em; FONT-WEIGHT: = bold; FLOAT: left; PADDING-BOTTOM: 0.1em; MARGIN: 0px; WIDTH: 8em; = PADDING-TOP: 0.1em } DD { PADDING-RIGHT: 0.1em; PADDING-LEFT: 0.1em; PADDING-BOTTOM: 0.1em; = MARGIN: 0px 0px 0px 9em; PADDING-TOP: 0.1em } .rating { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/star-matrix.gif) no-repeat 0px 0px; PADDING-BOTTOM: 0px; = MARGIN: 0px; WIDTH: 80px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; = POSITION: relative; HEIGHT: 16px } .star0 { BACKGROUND-POSITION: 0px 0px } .star1 { BACKGROUND-POSITION: 0px -16px } .star2 { BACKGROUND-POSITION: 0px -32px } .star3 { BACKGROUND-POSITION: 0px -48px } .star4 { BACKGROUND-POSITION: 0px -64px } .star5 { BACKGROUND-POSITION: 0px -80px } UL.rating LI { FLOAT: left; CURSOR: pointer; TEXT-INDENT: -999em } UL.rating LI A { Z-INDEX: 200; LEFT: 0px; WIDTH: 16px; POSITION: absolute; TOP: 0px; = HEIGHT: 16px; TEXT-DECORATION: none } UL.rating LI.one A { LEFT: 0px } UL.rating LI.two A { LEFT: 16px } UL.rating LI.three A { LEFT: 32px } UL.rating LI.four A { LEFT: 48px } UL.rating LI.five A { LEFT: 64px } UL.rating LI A:hover { Z-INDEX: 2; BACKGROUND: url(images/star-matrix.gif) no-repeat 0px 0px; = LEFT: 0px; OVERFLOW: hidden; WIDTH: 80px; HEIGHT: 16px } UL.rating LI.one A:hover { BACKGROUND-POSITION: 0px -96px } UL.rating LI.two A:hover { BACKGROUND-POSITION: 0px -112px } UL.rating LI.three A:hover { BACKGROUND-POSITION: 0px -128px } UL.rating LI.four A:hover { BACKGROUND-POSITION: 0px -144px } UL.rating LI.five A:hover { BACKGROUND-POSITION: 0px -160px } DIV.collectionViewReadMessageBorder { MARGIN-LEFT: 30px; BORDER-LEFT: #ccc 1px solid } DIV.collectionViewUnreadMessageBorder { BORDER-RIGHT: #999 3px solid; BORDER-TOP: #999 3px solid; MARGIN-LEFT: = 30px; BORDER-LEFT: #999 3px solid; BORDER-BOTTOM: #999 3px solid } TABLE.treeframe TR TD { VERTICAL-ALIGN: middle } TABLE.tree_view TR TD IMG { VERTICAL-ALIGN: middle } TABLE.treeframe { MARGIN: 0px } TABLE.treeframe TBODY TR TD { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } TABLE.treeframe THEAD TR TH { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } TABLE.treeframe TR.high { BACKGROUND-COLOR: transparent } TR.thread TD { BORDER-TOP: #ccc 1px solid; VERTICAL-ALIGN: middle } TR.thread TD IMG { VERTICAL-ALIGN: middle } TABLE.unreadmessageborder { BORDER-RIGHT: rgb(102,102,102) 3px solid; BORDER-TOP: rgb(102,102,102) = 3px solid; BORDER-LEFT: rgb(102,102,102) 3px solid; BORDER-BOTTOM: = rgb(102,102,102) 3px solid } TABLE.readmessageborder { BORDER-RIGHT: rgb(204,204,204) 1px solid; BORDER-TOP: rgb(204,204,204) = 1px solid; BORDER-LEFT: rgb(204,204,204) 1px solid; BORDER-BOTTOM: = rgb(204,204,204) 1px solid } TR.show { =09 } TR.hide { DISPLAY: none } .loadingelipse { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 14px; BORDER-TOP: #ccc 1px = solid; DISPLAY: block; PADDING-LEFT: 14px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; BACKGROUND: #ffffcc; PADDING-BOTTOM: 4px; MARGIN: auto; = BORDER-LEFT: #ccc 1px solid; WIDTH: 140px; PADDING-TOP: 4px; = BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: center } .gradefield { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 120%; = PADDING-BOTTOM: 4px; MARGIN: 9px 0px; VERTICAL-ALIGN: middle; OVERFLOW: = visible; COLOR: #000; PADDING-TOP: 4px; HEIGHT: 1%; TEXT-ALIGN: center } .gradefield INPUT { BORDER-RIGHT: #666 2px solid; PADDING-RIGHT: 3px; BORDER-TOP: #666 2px = solid; PADDING-LEFT: 3px; FONT-WEIGHT: bold; FONT-SIZE: 110%; = BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; MARGIN: 0px; VERTICAL-ALIGN: = middle; BORDER-LEFT: #666 2px solid; LINE-HEIGHT: 120%; PADDING-TOP: = 1px; BORDER-BOTTOM: #666 2px solid; FONT-FAMILY: arial,sans-serif } .gradefield INPUT.inputtypebutton { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline; PADDING-LEFT: 8px; FONT-WEIGHT: normal; = FONT-SIZE: 80%; BACKGROUND: #ededed; PADDING-BOTTOM: 1px; OVERFLOW: = visible; BORDER-LEFT: #ccc 1px solid; WIDTH: auto; PADDING-TOP: 2px; = BORDER-BOTTOM: #ccc 1px solid; HEIGHT: auto } .gradefield A { FONT-WEIGHT: bold; FONT-SIZE: 120% } .gradefield SPAN { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-SIZE: 80%; PADDING-BOTTOM: = 0px; COLOR: #555; PADDING-TOP: 0px } .overridegrade { PADDING-RIGHT: 12px; DISPLAY: inline; PADDING-LEFT: 12px; FONT-SIZE: = 80%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 3px 9px; VERTICAL-ALIGN: = middle; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 0px } .overridegrade INPUT.inputtypebutton { MARGIN-TOP: -3px; FONT-WEIGHT: normal; FONT-SIZE: 70%; VERTICAL-ALIGN: = middle } DIV.parentmessage { CLEAR: both; BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 6px; = BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 6px; FONT-SIZE: 90%; = BACKGROUND: #ededed; PADDING-BOTTOM: 9px; MARGIN: 6px; BORDER-LEFT: #ccc = 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid } .availability { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 85%; PADDING-BOTTOM: = 1px; MARGIN: 6px 0px; WIDTH: auto; PADDING-TOP: 1px; FONT-STYLE: italic } TD.tag_controls { PADDING-RIGHT: 3px; PADDING-LEFT: 6px; BACKGROUND: #cad7e7; = PADDING-BOTTOM: 3px; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid } TD.msg_controls { PADDING-RIGHT: 3px; PADDING-LEFT: 0px; BACKGROUND: #cad7e7; = PADDING-BOTTOM: 3px; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid } TD.checkbox_cell { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 6px; PADDING-LEFT: 6px; = PADDING-BOTTOM: 0px; VERTICAL-ALIGN: top; PADDING-TOP: 6px } TD.prevnextpostarea { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 5px; BACKGROUND: #fff; PADDING-BOTTOM: 3px; = BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #ccc 1px = solid; WHITE-SPACE: nowrap; TEXT-ALIGN: center } H3.dbheading { MARGIN-TOP: 0px; DISPLAY: inline; FONT-WEIGHT: normal; MARGIN-BOTTOM: = 0px } DIV.dbThread { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; MARGIN: 0.9em = 0px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid; = POSITION: relative } DIV.dbThreadCheckbox { POSITION: absolute } DIV.dbThreadCheckbox INPUT { MARGIN: 10px } DIV.dbThreadInfo { BACKGROUND: #eee } DIV.dbThreadInfo DL { FONT-SIZE: 95%; FLOAT: left; MARGIN: 0.6em; WIDTH: 45% } DIV.dbThreadBody { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; PADDING-BOTTOM: 1.2em; = PADDING-TOP: 1.2em } P.dbAttachment { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 1.2em } DIV.dbParentPost P.dbAttachment { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 1.2em } DIV.dbThreadHeader { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; BACKGROUND: #e3efff; = PADDING-BOTTOM: 0.6em; PADDING-TOP: 0.6em; BORDER-BOTTOM: #ccc 1px solid } DIV.dbThreadFooter { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; BACKGROUND: #e3efff; = PADDING-BOTTOM: 0.6em; PADDING-TOP: 0.6em } DIV.dbThreadFooter DIV.navButtons { FLOAT: left; WIDTH: 49% } DIV.dbThreadHeader DIV.navButtons { FLOAT: left; WIDTH: 49% } DIV.dbThreadFooter DIV.threadButtons { FLOAT: right; WIDTH: 49%; TEXT-ALIGN: right } DIV.dbThreadHeader DIV.threadButtons { FLOAT: right; WIDTH: 49%; TEXT-ALIGN: right } DIV.dbThreadFooter A { DISPLAY: inline-block; VERTICAL-ALIGN: middle } DIV.dbThreadHeader A { DISPLAY: inline-block; VERTICAL-ALIGN: middle } DIV.spacerDiv { CLEAR: both } DIV.threadButtons A.reply { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 6px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; = PADDING-LEFT: 6px; FONT-WEIGHT: bold; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 0px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } DIV.dbThreadInfo P A.reply { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 6px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; = PADDING-LEFT: 6px; FONT-WEIGHT: bold; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 0px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } DIV.threadButtons A.reply:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } DIV.dbThreadInfo P A.reply:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } DIV.dbThreadInfo P { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; PADDING-BOTTOM: 0.6em; = PADDING-TOP: 0.6em } DIV.dbThreadInfo P.detailButtons { FLOAT: right } DIV.dbThreadTree { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BORDER-LEFT: = #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid; HEIGHT: 200px } DIV.dbThreadMessage { MARGIN-TOP: 10px } DIV.dbParentPost { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; FONT-SIZE: 95%; BACKGROUND: = #eee; PADDING-BOTTOM: 0px; MARGIN: -0.6em 0px 1.2em; COLOR: #444; = PADDING-TOP: 0.6em } DIV.dbParentPost H4 { MARGIN: 0px 0px 0.6em } DIV.dbParentPost H4 A { DISPLAY: block; WIDTH: 100% } DIV.dbParentPost P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; PADDING-BOTTOM: = 1.2em; MARGIN: 0px; PADDING-TOP: 0px } DIV.dbParentPostBody { CLEAR: both; PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; BACKGROUND: = #fcfcfc; MARGIN-BOTTOM: 0.6em; PADDING-BOTTOM: 0.6em; PADDING-TOP: 0.6em } .loadingElipse { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 14px; BORDER-TOP: #ccc 1px = solid; DISPLAY: block; PADDING-LEFT: 14px; FONT-WEIGHT: bold; = BACKGROUND: #fff7de; PADDING-BOTTOM: 4px; MARGIN: 12px auto; = BORDER-LEFT: #ccc 1px solid; WIDTH: 140px; PADDING-TOP: 4px; = BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: center } .unreadmessage { FONT-WEIGHT: bold } H3.unreadmessage { FONT-WEIGHT: bold } BODY.wizardBody { MARGIN-TOP: 10px } BODY.wizardBody DIV#contentPanel { MARGIN-BOTTOM: 10px; MARGIN-LEFT: 159px } BODY.wizardBody DIV#pageTitleDiv IMG { DISPLAY: none } BODY.wizardBody DIV.reqfield { FLOAT: none; MARGIN: 0px 0px 6px -6px } DIV.wizardHead { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 2px; PADDING-TOP: 0px } DIV.wizardHead H2 { MARGIN: 0px } DIV.wizardHead P.helphelp { PADDING-RIGHT: 4px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 4px } BODY.wizardBody DIV.container { MIN-HEIGHT: 80% } BODY.wizardBody DIV.containerWizard { BORDER-RIGHT: #bbb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #bbb 1px = solid; PADDING-LEFT: 0px; BACKGROUND: #cdcdcd; PADDING-BOTTOM: 14px; = MARGIN: 0px -12px; BORDER-LEFT: #bbb 1px solid; PADDING-TOP: 3px; = BORDER-BOTTOM: #bbb 1px solid } BODY.wizardBody DIV.containerWizard DIV.locationPane { WIDTH: 99% } BODY.wizardBody UL.contentList LI DIV.details { OVERFLOW-X: visible } P.wizardFinishText { MARGIN: 6px 0px 150px } P.wizardSubmit { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 6px; MARGIN: = 0px; PADDING-TOP: 12px } P.wizardSubmit INPUT[type=3Dimage] { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; = PADDING-TOP: 2px } P.wizardSubmit INPUT.submit { BORDER-LEFT-COLOR: #566e94; BACKGROUND: #819ac0; BORDER-BOTTOM-COLOR: = #566e94; COLOR: #fff; BORDER-TOP-COLOR: #566e94; BORDER-RIGHT-COLOR: = #566e94 } P.wizardSubmit SPAN { FONT-SIZE: 95% } P.wizardSubmit SPAN STRONG { COLOR: #000 } DIV.wizardBottomRound B.inner { BACKGROUND: #fff1c5 } DIV.wizardBottomRound B.outer { BACKGROUND: #fff1c5 } DIV.wizardBottomRound B.middle { BACKGROUND: #fff1c5 } DIV.navigationPaneWizard { MARGIN-TOP: 55px; WIDTH: 159px } DIV.navigationPaneWizard DIV B.inner { MARGIN-RIGHT: 0px! important } DIV.navigationPaneWizard DIV B.middle { MARGIN-RIGHT: 0px! important } DIV.navigationPaneWizard DIV B.outer { MARGIN-RIGHT: 0px! important } DIV.navigationPaneWizard DIV.navPalette { MARGIN: 0px 0px 12px 12px } DIV.navigationPaneWizard DIV.navPalette DIV.navPaletteContent H2 { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px } DIV.navigationPaneWizard DIV.navPalette SPAN { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; PADDING-BOTTOM: = 6px; PADDING-TOP: 6px; BACKGROUND-COLOR: #ededed } DIV.navigationPaneWizard DIV.navPalette UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none! important; = BACKGROUND-COLOR: #ededed } DIV.navigationPaneWizard DIV.navPalette UL LI { PADDING-RIGHT: 9px; BORDER-TOP: #cdcdcd 1px solid; PADDING-LEFT: 24px; = BACKGROUND: url(images/bullet_off_ia.gif) no-repeat 0px 0px; = PADDING-BOTTOM: 4px; MARGIN: 0px; BORDER-LEFT: #cdcdcd 1px solid; COLOR: = #444; PADDING-TOP: 4px } DIV.navigationPaneWizard DIV.navPalette UL LI:first-child { BORDER-TOP: medium none } DIV.navigationPaneWizard DIV.navPalette UL LI.currentStep { FONT-WEIGHT: bold; BACKGROUND: url(images/bullet_active_ia.gif) white = no-repeat 0px 0px } DIV.navigationPaneWizard DIV.navPalette UL LI.visitedStep { BACKGROUND: url(images/bullet_inactive_ia.gif) no-repeat 0px 0px } #loginPageContainer { MIN-HEIGHT: 100%; MARGIN: 0px auto; WIDTH: 728px; POSITION: relative; = HEIGHT: 100%; TEXT-ALIGN: left } #loginPane { MARGIN: 40px 0px 20px } #loginPane DIV.loginBack B { BACKGROUND: #94b3de } #loginContainer { BORDER-RIGHT: #94b3de 8px solid; BORDER-TOP: #94b3de 4px solid; = BACKGROUND: #fff; MARGIN: 0px auto; BORDER-LEFT: #94b3de 8px solid; = BORDER-BOTTOM: #94b3de 4px solid; ZOOM: 1 } #loginHeader { FONT-SIZE: 0.85em; BACKGROUND: #eee; COLOR: #444 } #loginHeader IMG.productLogo { FLOAT: left; MARGIN: 12px 8px 0px 20px; WIDTH: 60px; HEIGHT: 58px } #loginHeader UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: = 0px; MARGIN: 10px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #loginHeader UL LI { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px; BORDER-LEFT: #999 1px dotted; PADDING-TOP: 0px } #loginHeader UL LI:first-child { BORDER-LEFT: medium none } #loginHeader UL LI :link .active { COLOR: #666; TEXT-DECORATION: none } #loginLang { CLEAR: both; PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 0.85em; = BACKGROUND: #eee; PADDING-BOTTOM: 6px; MARGIN: 0px auto; COLOR: #444; = PADDING-TOP: 6px } #loginLang H2 { MARGIN: 1em 0px 0.1em } #loginLang H3 { FLOAT: left; MARGIN: 6px } #loginLang UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #loginLang UL LI { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px; BORDER-LEFT: #999 1px dotted; PADDING-TOP: 0px; = WHITE-SPACE: nowrap } #loginLang UL LI:first-child { BORDER-LEFT: medium none } #loginLang UL LI :link .active { COLOR: #666; TEXT-DECORATION: none } DIV.loginBody { PADDING-RIGHT: 0px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 0px; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; HEIGHT: 1%; BACKGROUND-COLOR: = #94b3de } #loginBox { BACKGROUND: #fff1c5; FLOAT: left; WIDTH: 49.5% } #loginBox H2 { MARGIN: 10px } #loginBox P { FONT-SIZE: 0.85em; MARGIN: 10px; COLOR: #444 } #loginBox UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #loginBox LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 2px } #loginBox LI LABEL { PADDING-RIGHT: 3px; FONT-WEIGHT: bold; FLOAT: left; WIDTH: 90px } #loginBox LI INPUT { FLOAT: left } #loginBox LI INPUT[type=3D'text'] { BORDER-RIGHT: #ccc 2px solid; BORDER-TOP: #ccc 2px solid; BORDER-LEFT: = #ccc 2px solid; BORDER-BOTTOM: #ccc 2px solid } #loginBox LI INPUT[type=3D'password'] { BORDER-RIGHT: #ccc 2px solid; BORDER-TOP: #ccc 2px solid; BORDER-LEFT: = #ccc 2px solid; BORDER-BOTTOM: #ccc 2px solid } #loginBox .forgot { FONT-SIZE: 85%; MARGIN-LEFT: 93px } #loginBox LI INPUT[type=3D'submit'] { MARGIN-LEFT: 93px } #loginBox LI INPUT.submit { MARGIN-LEFT: 94px } #loginBox LI INPUT[type=3D'submit']:hover { =09 } #loginOptions { PADDING-LEFT: 4px; FLOAT: left; BORDER-LEFT: #ccc 1px solid; WIDTH: 49% } #loginOptions H2 { MARGIN: 10px } #loginOptions P { FONT-SIZE: 0.85em; MARGIN: 10px; COLOR: #444 } #loginOptions UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #loginOptions UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #loginOptions UL LI A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 24px; FONT-WEIGHT: = bold; FONT-SIZE: 95%; BACKGROUND: url(images/list_bullet.gif) #e3efff = no-repeat 6px center; PADDING-BOTTOM: 9px; COLOR: #52637b; PADDING-TOP: = 9px; TEXT-DECORATION: none } #loginOptions UL LI.subOption A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 24px; FONT-WEIGHT: = bold; FONT-SIZE: 95%; BACKGROUND: url(images/list_bullet.gif) #e3efff = no-repeat 6px center; PADDING-BOTTOM: 9px; COLOR: #52637b; PADDING-TOP: = 9px; TEXT-DECORATION: none } #loginOptions UL LI.subOption A { BORDER-TOP: #aaa 1px solid } #loginOptions UL LI A:hover { COLOR: #000; BACKGROUND-COLOR: #b4cdeb } #loginOptions UL LI.subOption A:hover { COLOR: #000; BACKGROUND-COLOR: #b4cdeb } #loginText { PADDING-RIGHT: 80px; BORDER-TOP: #777 1px solid; PADDING-LEFT: 80px; = BACKGROUND: #5f6062; PADDING-BOTTOM: 18px; PADDING-TOP: 12px; = TEXT-ALIGN: center } #loginText P SPAN { FONT-WEIGHT: bold; FONT-SIZE: 105%; COLOR: #fff } #loginText P { FONT-SIZE: 95%; MARGIN: 0px; COLOR: #ededed } #loginImage { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; BACKGROUND-COLOR: #fff; TEXT-ALIGN: center } #loginImage IMG { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = -1px auto 0px; PADDING-TOP: 0px } #loginAnnouncements { CLEAR: both; PADDING-RIGHT: 0px; BORDER-TOP: #eee 1px solid; = PADDING-LEFT: 0px; BACKGROUND: #ddd; PADDING-BOTTOM: 7px; PADDING-TOP: = 0px } #loginAnnouncements H3 { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 110%; PADDING-BOTTOM: = 6px; MARGIN: 0px 9px; COLOR: #555; PADDING-TOP: 6px; BORDER-BOTTOM: #bbb = 1px solid } #loginAnnouncements UL { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #ebebeb; = LIST-STYLE-IMAGE: url(/images/ci/ng/list_bullet_single.gif); = PADDING-BOTTOM: 8px; MARGIN: 0px 9px; PADDING-TOP: 1px } #loginAnnouncements UL LI { PADDING-RIGHT: 0px; BORDER-TOP: #999 1px dotted; PADDING-LEFT: 0px; = FONT-SIZE: 90%; PADDING-BOTTOM: 0px; MARGIN: 5px 5px 5px 15px; = PADDING-TOP: 4px } #loginAnnouncements UL LI:first-child { BORDER-TOP: 0px } #loginAnnouncements UL LI A { FONT-SIZE: 95%; COLOR: #495a71 } .portlet #loginBoxFull { BORDER-RIGHT: #fff1c5 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #fff1c5 2px solid; PADDING-LEFT: 0px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 15px; MARGIN: 0px; BORDER-LEFT: #fff1c5 2px solid; = PADDING-TOP: 10px; BORDER-BOTTOM: #fff1c5 2px solid } .portlet #loginBoxFull P { PADDING-LEFT: 0px; FONT-SIZE: 0.85em; MARGIN: 10px; COLOR: #444 } .portlet #loginBoxFull P.welcome { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 1em; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: = 0px; MARGIN: 10px; COLOR: #000000; PADDING-TOP: 0px } .portlet #loginBoxFull UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .portlet #loginBoxFull LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: = none; PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-TOP: 2px } .portlet #loginBoxFull LI LABEL { MARGIN-TOP: 3px; FONT-WEIGHT: bold; FLOAT: left; WIDTH: 80px; = MARGIN-RIGHT: 3px } .portlet #loginBoxFull LI INPUT[type=3D'text'] { BORDER-RIGHT: #ccc 2px solid; BORDER-TOP: #ccc 2px solid; FONT-SIZE: = 100%; FLOAT: left; BORDER-LEFT: #ccc 2px solid; BORDER-BOTTOM: #ccc 2px = solid } .portlet #loginBoxFull LI INPUT[type=3D'password'] { BORDER-RIGHT: #ccc 2px solid; BORDER-TOP: #ccc 2px solid; FONT-SIZE: = 100%; FLOAT: left; BORDER-LEFT: #ccc 2px solid; BORDER-BOTTOM: #ccc 2px = solid } .portlet #loginBoxFull .forgot { FLOAT: left; MARGIN-LEFT: 83px } .portlet #loginBoxFull A { FONT-SIZE: 0.85em } .portlet #loginBoxFull P A { FONT-SIZE: 1em } .portlet #loginBoxFull P.welcome A { FONT-SIZE: 1em } .portlet #loginBoxFull LI INPUT.submit { MARGIN-LEFT: 83px } .portlet #loginPaneShort { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; MARGIN: 9px; = BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid } .portlet #loginFooter { PADDING-RIGHT: 0pt; PADDING-LEFT: 0px; FONT-SIZE: 0.85em; = BACKGROUND-ATTACHMENT: scroll; BACKGROUND-IMAGE: none; PADDING-BOTTOM: = 9px; MARGIN: 0px; COLOR: #444444; PADDING-TOP: 0px; BACKGROUND-REPEAT: = repeat; BACKGROUND-COLOR: #eeeeee; background-x-position: 0%; = background-y-position: 0% } .portlet #loginFooter UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .portlet #loginFooter UL LI { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FLOAT: left; BACKGROUND-IMAGE: = none; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: #999 1px dotted; = PADDING-TOP: 0px } .portlet #loginFooter UL LI:first-child { BORDER-LEFT: medium none } .portlet #loginFooter UL LI .active:link { COLOR: #666; TEXT-DECORATION: none } #courseMenu { BORDER-TOP: #ddd 1px solid; COLOR: #444; BACKGROUND-COLOR: #ededed } #moduleBorder { BORDER-LEFT-COLOR: #597298; BORDER-BOTTOM-COLOR: #597298; = BORDER-TOP-COLOR: #597298; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #597298 } #moduleBody { BORDER-LEFT-COLOR: #597298; BORDER-BOTTOM-COLOR: #597298; = BORDER-TOP-COLOR: #597298; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #597298 } #moduleTitle { COLOR: #fff; BACKGROUND-COLOR: #819ac0 } #schemePreviewBody { COLOR: #000000; BACKGROUND-COLOR: #fff } #schemePreview { COLOR: #000000; BACKGROUND-COLOR: #cdcdcd } #schemePreviewHead { COLOR: #000000; BACKGROUND-COLOR: #fff1c5 } .qIncomplete { BORDER-RIGHT: #cccccc 1px solid; BORDER-TOP: #cccccc 1px solid; = DISPLAY: block; FONT-WEIGHT: bold; FLOAT: left; MARGIN: 1px; = BORDER-LEFT: #cccccc 1px solid; WIDTH: 30px; BORDER-BOTTOM: #cccccc 1px = solid; TEXT-ALIGN: center } .qComplete { BORDER-RIGHT: #999999 1px solid; BORDER-TOP: #999999 1px solid; = DISPLAY: block; FONT-WEIGHT: bold; FLOAT: left; MARGIN: 1px; = BORDER-LEFT: #999999 1px solid; WIDTH: 30px; COLOR: #003366; = BORDER-BOTTOM: #999999 1px solid; BACKGROUND-COLOR: #cccccc; TEXT-ALIGN: = center } ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/branding/colorpalettes/wsu_production_colors/colorpalette.css?v=9.0.440.7 #topTabActive { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; BORDER-TOP-COLOR: = #fff; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: #fff } TABLE.appTabs TBODY TR TD.active A { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; BORDER-TOP-COLOR: = #fff; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: #fff } TABLE.appTabs TBODY TR TD.active A:hover { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; BORDER-TOP-COLOR: = #fff; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: #fff } #topTab { BORDER-LEFT-COLOR: #565a5c; COLOR: #fff; BORDER-TOP-COLOR: #565a5c; = BORDER-BOTTOM: 0px; BACKGROUND-COLOR: black; BORDER-RIGHT-COLOR: #565a5c } TABLE.appTabs TBODY TR TD A { BORDER-LEFT-COLOR: #565a5c; COLOR: #fff; BORDER-TOP-COLOR: #565a5c; = BORDER-BOTTOM: 0px; BACKGROUND-COLOR: black; BORDER-RIGHT-COLOR: #565a5c } TABLE.appTabs TBODY TR TD A:hover { BORDER-LEFT-COLOR: #67675c; BORDER-TOP-COLOR: #67675c; BORDER-BOTTOM: = 0px; BACKGROUND-COLOR: #bbbdb7; BORDER-RIGHT-COLOR: #67675c } DIV.topTabs { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } #topFrame { BACKGROUND-COLOR: #0c5449 } .bgBanner { BACKGROUND-COLOR: #0c5449 } #contentFrame { BACKGROUND-COLOR: #999 } #schemePreview { BACKGROUND-COLOR: #999 } BODY { BACKGROUND-COLOR: #999 } BODY.ineditmode { BACKGROUND-COLOR: #999 } BODY.topFrame { BACKGROUND-COLOR: #999 } DIV.breadcrumbs { BACKGROUND-COLOR: #999 } DIV.paneTabs UL LI.active { BACKGROUND-COLOR: #999 } DIV.paneTabs UL LI { BACKGROUND-COLOR: #999 } BODY.wizardBody DIV.containerWizard { BACKGROUND-COLOR: #999 } DIV.breadcrumbs { BORDER-LEFT-COLOR: #7a8c50; BORDER-BOTTOM-COLOR: #7a8c50; = BORDER-TOP-COLOR: #7a8c50; BORDER-RIGHT-COLOR: #7a8c50 } DIV.menuWrap { =09 } #navigationPane { =09 } DIV.navigationPane { =09 } BODY.ineditmode DIV.listCm { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } BODY.ineditmode DIV#editmodeWrapper { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.breadcrumbs DIV.path { BACKGROUND-COLOR: #dfddd1 } DIV.breadcrumbs DIV.simplePath { BACKGROUND-COLOR: #dfddd1 } DIV.breadcrumbs DIV.topRound B { BACKGROUND-COLOR: #dfddd1 } DIV.breadcrumbs DIV.bottomRound B { BACKGROUND-COLOR: #dfddd1 } DIV.breadcrumbs DIV.path OL LI.root { BACKGROUND-COLOR: #999 } DIV.simplePath OL LI.root { BACKGROUND-COLOR: #999 } DIV.simplePath A { COLOR: #fff } DIV.breadcrumbs DIV.path OL LI.root A { COLOR: #fff } DIV.breadcrumbs DIV.simplePath OL LI.root A { COLOR: #fff } DIV.simplePath A { COLOR: #fff } DIV.breadcrumbs DIV.path OL LI.root A:hover { COLOR: #fff } DIV.breadcrumbs DIV.simplePath OL LI.root A:hover { COLOR: #fff } DIV.breadcrumbs DIV.path A { COLOR: #222 } DIV.breadcrumbs DIV.path A:hover { COLOR: #000 } DIV.breadcrumbs DIV.path { COLOR: #000 } DIV.simplePath { COLOR: #000 } .navPalette H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.listCm H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.tools H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.classicCs .navPalette H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.explore H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.myPlaces H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.tools DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.myPlaces DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.explore DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.controlpanel H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.controlpanel DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } .navPalette H2 A { COLOR: #fff } DIV.controlpanel H2 A { COLOR: #fff } DIV.controlpanel H2 A:hover { COLOR: #fff } DIV.navPaletteExpCol DIV.navPaletteContent H2 A { COLOR: #fff } DIV.navPaletteExpCol DIV.navPaletteContent H2 A:hover { COLOR: #fff } DIV.tools UL { BACKGROUND-COLOR: #dfddd1 } DIV.pickerMenu UL { BACKGROUND-COLOR: #dfddd1 } DIV.tools DIV.bottomRound B { BACKGROUND-COLOR: #dfddd1 } DIV.tools UL LI A.submenuLink { BORDER-LEFT-COLOR: #0c5449; BORDER-BOTTOM-COLOR: #0c5449; = BORDER-TOP-COLOR: #0c5449; BORDER-RIGHT-COLOR: #0c5449 } DIV.tools UL LI A { BORDER-LEFT-COLOR: #0c5449; BORDER-BOTTOM-COLOR: #0c5449; = BORDER-TOP-COLOR: #0c5449; BORDER-RIGHT-COLOR: #0c5449 } DIV.controlpanel UL { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.discover UL LI H3 A { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.singleControl A { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.singleControl DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.singleControl DIV.bottomRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.discover A { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.discover DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.discover DIV.bottomRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.controlpanel DIV.bottomRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.controlpanel A.submenuLink { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.controlpanel DIV.controlpanelCol B { BACKGROUND-COLOR: #0c5449! important } DIV.controlpanel DIV.topRound B { BACKGROUND-COLOR: #0c5449! important } H3.listCmCol A { BACKGROUND-COLOR: #0c5449! important } DIV.controlpanel UL LI A { BORDER-LEFT-COLOR: #336666; BORDER-BOTTOM-COLOR: #336666; COLOR: #fff; = BORDER-TOP-COLOR: #336666; BORDER-RIGHT-COLOR: #336666 } DIV.controlpanel A.submenuLink { BORDER-LEFT-COLOR: #336666; BORDER-BOTTOM-COLOR: #336666; COLOR: #fff; = BORDER-TOP-COLOR: #336666; BORDER-RIGHT-COLOR: #336666 } DIV.controlpanel A.submenuLink_active { BORDER-LEFT-COLOR: #336666; BORDER-BOTTOM-COLOR: #336666; COLOR: #fff; = BORDER-TOP-COLOR: #336666; BORDER-RIGHT-COLOR: #336666 } DIV.controlpanel UL LI A:hover { BACKGROUND-IMAGE: url(/images/ci/ng/more_options_white.gif) } DIV.controlpanel UL LI A.comboLink:hover { BACKGROUND-IMAGE: url(/images/ci/ng/more_options_white.gif) } DIV.controlpanel A.comboLink_active { BACKGROUND-IMAGE: url(/images/ci/ng/less_options_dark.gif) } DIV.controlpanel A.open { BACKGROUND-IMAGE: url(/images/ci/ng/less_options_dark.gif) } DIV.navPalette A.comboLink_active:hover { BACKGROUND-IMAGE: url(/images/ci/ng/less_options.gif) } DIV.navPalette A.open:hover { BACKGROUND-IMAGE: url(/images/ci/ng/less_options.gif) } DIV.navPalette A.submenuLink_active { =09 } DIV.controlpanel UL LI H3 A:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.controlpanel UL LI H3 A.comboLink:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.controlpanel UL LI A.submenuLink:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.controlpanel UL LI H3 A.simpleLink:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.singleControl A:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.discover A:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.controlpanel UL LI H3 A.open { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI H3 A.open:hover { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI H3 A.comboLink_active { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI H3 A.comboLink_active:hover { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI A.submenuLink_active { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI A.submenuLink_active:hover { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI UL.submenu LI A { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.tools UL LI H3 A.comboLink_active { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel A.comboLink { BACKGROUND-IMAGE: url(/images/ci/ng/more_options_white.gif) } DIV.controlpanel A.submenuLink:hover { BACKGROUND-IMAGE: url(/images/ci/ng/list_bullet_white.gif) } DIV.controlpanel UL LI UL.submenu { BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI UL.submenu LI A:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.navDivider { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; COLOR: #555; = BORDER-TOP-COLOR: #fff; BORDER-RIGHT-COLOR: #fff } DIV.singleControl UL LI A { COLOR: #fff } .navPalette DIV.actionBarMicro UL LI A { =09 } DIV.treeViewCs DIV.topRound B { BACKGROUND-COLOR: #0c5449 } DIV.navPaletteExpCol DIV.navPaletteContent { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #fff; = BORDER-RIGHT-COLOR: #000! important } DIV.paneTabs UL { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } DIV.paneTabs UL LI A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #dfddd1; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.external A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #dfddd1; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.personal A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #dfddd1; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.active A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.active A:hover { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI A:hover { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.external A:hover { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.activepersonal A:hover { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } #contentArea { BACKGROUND-POSITION: 0% 0%; BACKGROUND-COLOR: #fff } #schemePreviewBody { BACKGROUND-POSITION: 0% 0%; BACKGROUND-COLOR: #fff } .container { BACKGROUND-POSITION: 0% 0%; BACKGROUND-COLOR: #fff } .contentPane DIV.bottomRound B { BACKGROUND-POSITION: 0% 0%; BACKGROUND-COLOR: #fff } DIV.portal DIV.container { BACKGROUND-COLOR: #dfddd1 } DIV.containerPortal { BACKGROUND-COLOR: #dfddd1 } DIV.portal DIV.bottomRound B { BACKGROUND-COLOR: #dfddd1 } DIV.landing DIV.container { BACKGROUND-COLOR: #dfddd1 } DIV.landing DIV.bottomRound B { BACKGROUND-COLOR: #dfddd1 } DIV.landingPageColumn UL LI A { COLOR: #000000 } DIV.landingPageColumn UL.outcomesLanding LI H3 { BORDER-LEFT-COLOR: #bbbdb7; BORDER-BOTTOM-COLOR: #bbbdb7; COLOR: #333; = BORDER-TOP-COLOR: #bbbdb7; BORDER-RIGHT-COLOR: #bbbdb7 } DIV.landingPageColumn UL LI P { BORDER-LEFT-COLOR: #bbbdb7; BORDER-BOTTOM-COLOR: #bbbdb7; COLOR: #333; = BORDER-TOP-COLOR: #bbbdb7; BORDER-RIGHT-COLOR: #bbbdb7 } #pageHeader { BACKGROUND-COLOR: #cedddb } #schemePreviewHead { BACKGROUND-COLOR: #cedddb } DIV.actionBar { BACKGROUND-COLOR: #cedddb } DIV.contentPaneWide DIV.actionBar { BACKGROUND-COLOR: #cedddb } DIV.actionBar UL { BACKGROUND-COLOR: #cedddb } DIV.localViewToggle { BACKGROUND-COLOR: #cedddb } .navPalette DIV.actionBarMicro { BACKGROUND-COLOR: #cedddb } DIV.contentPane DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.listCm DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.buttonCm DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.treeContainer DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.treeViewCs DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV#lightboxContent H2 { BACKGROUND-COLOR: #cedddb } #lightbox DIV.topRound B { BACKGROUND-COLOR: #cedddb } #puller { BACKGROUND-COLOR: #cedddb } #puller { BORDER-LEFT-COLOR: #000; BORDER-BOTTOM-COLOR: #000; BORDER-TOP-COLOR: = #000; BORDER-RIGHT-COLOR: #000 } DIV.pageTitle H1 { COLOR: #000 } DIV.pageTitle { BORDER-BOTTOM-COLOR: #dfddd1 } DIV.actionBar { BORDER-BOTTOM-COLOR: #dfddd1 } DIV#lightboxContent H2 { BORDER-BOTTOM-COLOR: #dfddd1 } DIV.helphelp { COLOR: #222 } P.helphelp { COLOR: #222 } DIV.pageTitle P { COLOR: #222 } DIV.helphelp A { COLOR: #000 } P.helphelp A { COLOR: #000 } DIV.pageTitle P A { COLOR: #000 } .actionBar UL { BORDER-LEFT-COLOR: #000; BORDER-BOTTOM-COLOR: #000; BORDER-TOP-COLOR: = #000; BORDER-RIGHT-COLOR: #000 } DIV.navPalette DIV.actionBarMicro { BORDER-LEFT-COLOR: #000; BORDER-BOTTOM-COLOR: #000; BORDER-TOP-COLOR: = #000; BORDER-RIGHT-COLOR: #000 } DIV.localViewToggle UL LI A.active { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #b5dfb5 } .navPalette DIV.actionBarMicro UL LI.active A { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #b5dfb5 } .navPalette DIV.actionBarMicro UL LI A:hover { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #b5dfb5 } .navPalette DIV.actionBarMicro UL LI.active A.options { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #b5dfb5 } DIV.localViewToggle UL LI A { COLOR: #000 } DIV.localViewToggle UL LI A.active { COLOR: #000 } DIV.localViewToggle UL LI.separator { BORDER-LEFT-COLOR: #8b835f } #primaryButton { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI.mainButton A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .actionbar_portal UL LI A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.navPalette DIV.actionBarMicro UL LI.mainButton A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } INPUT.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.threadButtons A.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskbuttondiv BUTTON.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskbuttondiv INPUT.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskButtonsContent BUTTON.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskButtonsContent INPUT.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.controls BUTTON.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.controls INPUT.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskbuttondiv BUTTON.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskbuttondiv INPUT.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskButtonsContent BUTTON.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskButtonsContent INPUT.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.controls BUTTON.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.controls INPUT.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.threadButtons A.reply { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.dbThreadInfo P A.reply { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage A.gotopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble_top UL LI.jumptopage A.gotopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .paging A.gotopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } #loginBox LI INPUT[type=3D'submit'] { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .actionBar UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .actionbar_portal UL LI A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.navPalette DIV.actionBarMicro UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .taskbuttondiv BUTTON.submit:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .taskbuttondiv INPUT.submit:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.controls BUTTON.submit:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.controls INPUT.submit:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.threadButtons A.reply:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.dbThreadInfo P A.reply:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage A.gotopage:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.rumble_top UL LI.jumptopage A.gotopage:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .paging A.gotopage:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } #loginBox LI INPUT[type=3D'submit']:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } #secondaryButton { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .actionBar UL LI.search A { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .actionBar UL LI.secondaryButton A { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .actionBar_portal UL LI.search A { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .pageTitle H1 A.secondaryButton { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .taskbuttondiv BUTTON { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .taskbuttondiv INPUT { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .taskButtonsContent BUTTON { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .taskButtonsContent INPUT { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } DIV.controls BUTTON { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } DIV.controls INPUT { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } P.okbutton INPUT { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .actionBar UL LI.secondaryButton A:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } .taskbuttondiv BUTTON:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } .taskbuttondiv INPUT:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } DIV.controls BUTTON:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } DIV.controls INPUT:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } .paging A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble_top UL LI.secondaryControl A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble UL LI.secondaryControl A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble_top A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble A:hover { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble_top UL LI.inventory_paging A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble UL LI.inventory_paging A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } .paging A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble_top UL LI.secondaryControl A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble UL LI.secondaryControl A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble_top A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble_top UL LI.inventory_paging A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble UL LI.inventory_paging A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } #moduleBorder { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BACKGROUND-COLOR: #ffffff; BORDER-RIGHT-COLOR: #999 } #moduleBody { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BACKGROUND-COLOR: #ffffff; BORDER-RIGHT-COLOR: #999 } .portlet { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BACKGROUND-COLOR: #ffffff; BORDER-RIGHT-COLOR: #999 } .portlet H2 SPAN.reorder { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BACKGROUND-COLOR: #ffffff; BORDER-RIGHT-COLOR: #999 } #moduleTitle { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } .portlet H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } .portlet H2:hover { BACKGROUND-COLOR: #cedddb } .portlet H3 { BORDER-LEFT-COLOR: #777; BORDER-BOTTOM-COLOR: #777; COLOR: #000; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } #lightbox H3 { BORDER-LEFT-COLOR: #777; BORDER-BOTTOM-COLOR: #777; COLOR: #000; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } .portlet DIV.portletBlock H4 { BORDER-LEFT-COLOR: #777; BORDER-BOTTOM-COLOR: #777; COLOR: #000; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } .portlet DIV.blockContents H4 { BORDER-LEFT-COLOR: #777; BORDER-BOTTOM-COLOR: #777; COLOR: #000; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } .portlet H2 A { COLOR: #333333 } .actionBar UL LI.buttontotab A { BACKGROUND: #ffcc33 } .actionBar UL LI.buttontotab A:hover { BACKGROUND: #ffcc33 } .actionBar UL LI.secondaryButtonTab A { BACKGROUND: #ffcc33 } .actionBar UL LI.secondaryButtonTab A:hover { BACKGROUND: #ffcc33 } .actionBar UL LI.buttontotab A { BORDER-LEFT-COLOR: #999; BORDER-TOP-COLOR: #999; BORDER-BOTTOM: medium = none; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI.buttontotab A:hover { BORDER-LEFT-COLOR: #999; BORDER-TOP-COLOR: #999; BORDER-BOTTOM: medium = none; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI.secondaryButtonTab A { BORDER-LEFT-COLOR: #999; BORDER-TOP-COLOR: #999; BORDER-BOTTOM: medium = none; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI.secondaryButtonTab A:hover { BORDER-LEFT-COLOR: #999; BORDER-TOP-COLOR: #999; BORDER-BOTTOM: medium = none; BORDER-RIGHT-COLOR: #999 } UL.nav LI.sub UL { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .cmdiv UL { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .menumini UL { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.quickAddPal { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.keyboardAccess { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } UL.nav LI.sub UL LI A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .cmdiv A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .menumini A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.actionBarMicro UL.nav LI.sub UL LI A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.paneTabs UL.nav LI.sub UL LI A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } SPAN.currentTags { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .loadingElipse { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.quickAddPal DIV.quickAddPalHeader { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BACKGROUND-COLOR: #ddd; BORDER-RIGHT-COLOR: = #355533 } DIV.quickAddPal DIV.controls { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BORDER-RIGHT-COLOR: #355533 } DIV.keyboardAccess DIV.controls { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BORDER-RIGHT-COLOR: #355533 } .comText DIV.controls { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BORDER-RIGHT-COLOR: #355533 } UL.nav LI.sub UL LI A:hover { COLOR: #000! important; BACKGROUND-COLOR: #fff! important } .cmdiv A:hover { COLOR: #000! important; BACKGROUND-COLOR: #fff! important } .menumini A:hover { COLOR: #000! important; BACKGROUND-COLOR: #fff! important } UL.nav LI.sub UL { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .cmdiv UL { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .menumini UL { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.quickAddPal { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.keyboardAccess { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .cmdiv { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } SPAN.currentTags { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble_top UL LI.jumptopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble_top UL LI.jumptopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } LI.inventory_paging INPUT { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.jumptopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.jumptopage INPUT { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage { BACKGROUND-COLOR: #ddd } DIV.rumble UL LI.jumptopage { BACKGROUND-COLOR: #ddd } DIV.rumble_top UL LI.jumptopage { BACKGROUND-COLOR: #ddd } DIV.rumble_top UL LI.jumptopage { BACKGROUND-COLOR: #ddd } DIV.jumptopage { BACKGROUND-COLOR: #ddd } UL.nav LI.sub UL LI A:hover { BORDER-TOP-COLOR: #ddd } .cmdiv UL { BORDER-TOP-COLOR: #ddd } .cmdiv LI.contextmenubar_top A { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BACKGROUND-COLOR: #ddd! important; = BORDER-RIGHT-COLOR: #355533 } .cmdiv LI.contextmenubar_top A:hover { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BACKGROUND-COLOR: #ddd! important; = BORDER-RIGHT-COLOR: #355533 } SPAN.currentTags A.closeCloud { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BACKGROUND-COLOR: #ddd! important; = BORDER-RIGHT-COLOR: #355533 } DIV.quickAddPal H3 { BACKGROUND-COLOR: #ffc59f } DIV.keyboardAccess H3 { BACKGROUND-COLOR: #ffc59f } .searchbar { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BORDER-RIGHT-COLOR: #b5dfb5 } .subActionBar { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BORDER-RIGHT-COLOR: #b5dfb5 } TR.high { BORDER-LEFT-COLOR: #aaa; BORDER-BOTTOM-COLOR: #aaa; BORDER-TOP-COLOR: = #aaa; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: #aaa } TABLE.inventory TBODY TR.high TD { BORDER-LEFT-COLOR: #aaa; BORDER-BOTTOM-COLOR: #aaa; BORDER-TOP-COLOR: = #aaa; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: #aaa } TABLE.inventory TBODY TR.high TH { BORDER-LEFT-COLOR: #aaa; BORDER-BOTTOM-COLOR: #aaa; BORDER-TOP-COLOR: = #aaa; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: #aaa } TABLE.inventory THEAD { BACKGROUND-COLOR: #cfcfcf } TABLE.inventory THEAD TR TH { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #333; = BORDER-TOP-COLOR: #777 } TABLE.inventory TBODY { BORDER-BOTTOM-COLOR: #777 } TABLE.inventory TBODY TR { =09 } TABLE.inventory TBODY TR TD { =09 } TABLE.inventory TBODY TR TH { =09 } TABLE.inventory THEAD TR TH.sorted { =09 } TH.sorted { =09 } TABLE.sortable TH A { COLOR: #333 } DIV.rumble { BACKGROUND-COLOR: #cedddb } DIV.rumble_top { BACKGROUND-COLOR: #cedddb } DIV.dbThreadFooter { BACKGROUND-COLOR: #cedddb } DIV.dbThreadHeader { BACKGROUND-COLOR: #cedddb } .bad { COLOR: #fff; BACKGROUND-COLOR: #8b2145 } .good { COLOR: #fff; BACKGROUND-COLOR: #006666 } FIELDSET.stepcontent OL LI.fieldError { BACKGROUND-COLOR: #fff6b3 } LI.fieldError { BACKGROUND-COLOR: #fff6b3 } DIV.loginBack B { BACKGROUND-COLOR: #fff } DIV.loginBody { BACKGROUND-COLOR: #c8cac4 } #loginContainer { BORDER-LEFT-COLOR: #ffffff; BACKGROUND: #ffffff; BORDER-BOTTOM-COLOR: = #ffffff; BORDER-TOP-COLOR: #ffffff; BORDER-RIGHT-COLOR: #ffffff } #loginBox { BACKGROUND: none transparent scroll repeat 0% 0% } #loginOptions { BACKGROUND: #bbbdb7 } #loginBox LI INPUT[type=3D'text'] { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } #loginBox LI INPUT[type=3D'password'] { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } TEXTAREA:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } #loginBox LI INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } #loginBox LI INPUT[type=3D'password']:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } #loginBox LI TEXTAREA:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } DIV.quickAddPal DIV.field INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } DIV.quickAddPal DIV.field SELECT:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } DIV.quickAddPal DIV.field TEXTAREA:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } #loginOptions UL LI A { COLOR: #000; BORDER-TOP-COLOR: #0c5449; BACKGROUND-COLOR: #bbbdb7 } #loginOptions UL LI.subOption A { COLOR: #000; BORDER-TOP-COLOR: #0c5449; BACKGROUND-COLOR: #bbbdb7 } #loginOptions UL LI A:hover { BACKGROUND-COLOR: #cedddb } #loginOptions UL LI.subOption A:hover { BACKGROUND-COLOR: #cedddb } #loginText { BACKGROUND-COLOR: #bbbdb7 } #loginText P { COLOR: #000 } #loginHeader { BACKGROUND: #dfddd1 } #loginLang { BACKGROUND: #dfddd1 } DIV.listCm DIV.bottomRound B { BACKGROUND: #ffffff } DIV.buttonCm DIV.bottomRound B { BACKGROUND: #ffffff } DIV.contentTree DIV.bottomRound B { BACKGROUND: #ffffff } DIV.contentTree DIV.bottomRound B { BACKGROUND: #ffffff } DIV.navPaletteCol DIV.controlpanelCol B { BACKGROUND-COLOR: #13621c } DIV.navPaletteCol DIV.listCmCol B { BACKGROUND-COLOR: #617057 } DIV.navPaletteCol DIV.bottomRound B { BACKGROUND-COLOR: #617057 } DIV.navPaletteCol DIV.topRound B { BACKGROUND-COLOR: #617057 } DIV.listCm DIV.listCmCol B { BACKGROUND-COLOR: #0c5449! important } TABLE.inventory TBODY TR.gray TD { BACKGROUND-COLOR: #f0f0f0 } TABLE.inventory TBODY TR.gray TH { BACKGROUND-COLOR: #f0f0f0 } TABLE.inventory TBODY TR TD.sorted { BACKGROUND-COLOR: #eeeeee } UL.easylist { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.contentList LI { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } .contentPageItem { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.noimg LI { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.buildList LI { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.contentListPlain LI { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.buildList LI H3.item:hover { BACKGROUND: #efefef } UL.contentList LI H3.item:hover { BACKGROUND: #efefef } UL.contentListPlain LI H3.item:hover { BACKGROUND: #efefef } H3 SPAN.reorder { BACKGROUND-COLOR: #ededed } .portlet H2 SPAN.reorder { BACKGROUND-COLOR: #ddd } DIV.listCm UL.courseMenu LI SPAN.reorder { BACKGROUND-COLOR: #ddd } DIV.listCm UL.courseMenu LI.invisible SPAN.reorder { BACKGROUND-COLOR: #ddd } DIV.steptitle { BACKGROUND: #aaa; COLOR: #fff } H3.steptitle { BACKGROUND: #aaa; COLOR: #fff } DIV.steptitle SPAN { BACKGROUND: #dfdddb; COLOR: #000000 } H3.steptitle SPAN { BACKGROUND: #dfdddb; COLOR: #000000 } .stepHelp { COLOR: #666666 } FIELDSET.stepcontent OL LI.stepHelp { COLOR: #666666 } FIELDSET.stepcontent OL LI { BORDER-BOTTOM-COLOR: #eeeeee } UL.containerTabs { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } UL.containerTabs LI.active A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } UL.containerTabs LI.active H3 { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } .contentAreaBlock { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } .modeSwitch { BORDER-LEFT-COLOR: #cedddb; BORDER-BOTTOM-COLOR: #cedddb; COLOR: #fff; = BORDER-TOP-COLOR: #cedddb; BORDER-RIGHT-COLOR: #cedddb } .read-on { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } .read-off { COLOR: #444; BACKGROUND-COLOR: #0c5449 } .switcherLabel { COLOR: #000 } DIV.helpLink A.browseIcon { BORDER-LEFT-COLOR: #333; BORDER-BOTTOM-COLOR: #000; BORDER-TOP-COLOR: = #333; BORDER-RIGHT-COLOR: #000 } A.cmimg { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.legal { BORDER-LEFT-COLOR: #9f9e8b; BORDER-BOTTOM-COLOR: #9f9e8b; = BORDER-TOP-COLOR: #9f9e8b; BORDER-RIGHT-COLOR: #9f9e8b } DIV.additionalInfo { BORDER-LEFT-COLOR: #9f9e8b; BORDER-BOTTOM-COLOR: #9f9e8b; = BORDER-TOP-COLOR: #9f9e8b; BORDER-RIGHT-COLOR: #9f9e8b } #copyright { COLOR: #2d341e } #copyright A { COLOR: #2d341e } .installation { COLOR: #000000! important } #lightbox DIV#lightboxContent { BORDER-LEFT-COLOR: #fff6b3; BACKGROUND: #000; BORDER-BOTTOM-COLOR: = #fff6b3; BORDER-TOP-COLOR: #fff6b3; BORDER-RIGHT-COLOR: #fff6b3 } .myPlacesContent { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; BORDER-TOP-COLOR: = #fff; BORDER-RIGHT-COLOR: #fff } DIV.actionBar UL.nav LI.sub UL LI { COLOR: #fff6b3 } DIV.actionBar UL.nav LI { COLOR: #fff6b3 } DIV.actionBar UL.nav LI.sub { COLOR: #ccc } .actionBar UL LI { COLOR: #fff } .actionBar UL LI.mainButton { COLOR: #fff } .actionbar_portal UL LI { COLOR: #fff } DIV.actionBar UL.nav LI.sub A { =09 } DIV.actionBar UL.nav LI.sub A:hover { =09 } DIV.actionBar UL.nav LI A { =09 } DIV.actionBar UL.nav LI A:hover { =09 } element { =09 } ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/branding/_1_1/brand.css?ts=1241886188000&v=9.0.440.7 #contentFrame { COLOR: #000000; BACKGROUND-COLOR: #999999 } #schemePreview { COLOR: #000000; BACKGROUND-COLOR: #999999 } BODY { COLOR: #000000; BACKGROUND-COLOR: #999999 } BODY.ineditmode { COLOR: #000000; BACKGROUND-COLOR: #999999 } BODY.topFrame { COLOR: #000000; BACKGROUND-COLOR: #999999 } DIV.breadcrumbs { COLOR: #000000; BACKGROUND-COLOR: #999999 } DIV.paneTabs UL LI.active { COLOR: #000000; BACKGROUND-COLOR: #999999 } DIV.paneTabs UL LI { COLOR: #000000; BACKGROUND-COLOR: #999999 } BODY.wizardBody DIV.containerWizard { COLOR: #000000; BACKGROUND-COLOR: #999999 } #contentArea { COLOR: #000000; BACKGROUND-COLOR: #ffffff } #schemePreviewBody { COLOR: #000000; BACKGROUND-COLOR: #ffffff } .container { COLOR: #000000; BACKGROUND-COLOR: #ffffff } .contentPane DIV.bottomRound B { COLOR: #000000; BACKGROUND-COLOR: #ffffff } #primaryButton { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .actionBar UL LI A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .actionBar UL LI.mainButton A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .actionbar_portal UL LI A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.navPalette DIV.actionBarMicro UL LI.mainButton A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } INPUT.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.threadButtons A.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskbuttondiv BUTTON.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskbuttondiv INPUT.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskButtonsContent BUTTON.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskButtonsContent INPUT.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.controls BUTTON.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.controls INPUT.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskbuttondiv BUTTON.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskbuttondiv INPUT.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskButtonsContent BUTTON.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskButtonsContent INPUT.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.controls BUTTON.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.controls INPUT.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.threadButtons A.reply { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.dbThreadInfo P A.reply { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.rumble UL LI.jumptopage A.gotopage { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.rumble_top UL LI.jumptopage A.gotopage { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .paging A.gotopage { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } #loginBox LI INPUT[type=3D'submit'] { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } #secondaryButton { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .actionBar UL LI.search A { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .actionBar UL LI.secondaryButton A { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .actionBar_portal UL LI.search A { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A:hover { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .pageTitle H1 A.secondaryButton { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .taskbuttondiv BUTTON { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .taskbuttondiv INPUT { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .taskButtonsContent BUTTON { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .taskButtonsContent INPUT { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } DIV.controls BUTTON { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } DIV.controls INPUT { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } P.okbutton INPUT { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } #pageHeader { COLOR: #000000; BACKGROUND-COLOR: #cedddb } #schemePreviewHead { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.pageTitle { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.actionBar { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.contentPaneWide DIV.actionBar { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.actionBar UL { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.localViewToggle { COLOR: #000000; BACKGROUND-COLOR: #cedddb } .navPalette DIV.actionBarMicro { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.contentPane DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.listCm DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.buttonCm DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.treeContainer DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.treeViewCs DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV#lightboxContent H2 { COLOR: #000000; BACKGROUND-COLOR: #cedddb } #lightbox DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } #puller { COLOR: #000000; BACKGROUND-COLOR: #cedddb } #topFrame { COLOR: #ffffff } DIV.topTabs DIV.topGlobalLinks UL LI A.topLevel { COLOR: #ffffff } DIV.topTabs-compact DIV.topGlobalLinks UL LI A.topLevel { COLOR: #ffffff } DIV.topTabs DIV.hotItems UL.hotLinks LI A { COLOR: #ffffff } #topFrame { BACKGROUND-POSITION: 0px 0px; BACKGROUND-IMAGE: url(bg3.jpg); = BACKGROUND-REPEAT: repeat; BACKGROUND-COLOR: #0c5449 } .bgBanner { BACKGROUND-POSITION: 0px 0px; BACKGROUND-IMAGE: url(bg3.jpg); = BACKGROUND-REPEAT: repeat; BACKGROUND-COLOR: #0c5449 } DIV.topTabs-compact { BACKGROUND: #0c5449 } #topTab { COLOR: #ffffff; BACKGROUND-COLOR: #000000 } TABLE.appTabs TBODY TR TD A { COLOR: #ffffff; BACKGROUND-COLOR: #000000 } DIV.topTabs-compact TABLE.appTabs TR TD A { COLOR: #ffffff; BACKGROUND-COLOR: #000000 } #topTabActive { COLOR: #000000; BACKGROUND-COLOR: #ffffff } TABLE.appTabs TBODY TR TD.active A { COLOR: #000000; BACKGROUND-COLOR: #ffffff } TABLE.appTabs TBODY TR TD.active A:hover { COLOR: #000000; BACKGROUND-COLOR: #ffffff } DIV.topTabs-compact TABLE.appTabs TR TD.active A { COLOR: #000000; BACKGROUND-COLOR: #ffffff } DIV.topTabs-compact TABLE.appTabs TR TD.active A:hover { COLOR: #000000; BACKGROUND-COLOR: #ffffff } TABLE.appTabs TBODY TR TD A:hover { COLOR: #000000; BACKGROUND-COLOR: #ffffff } DIV.topTabs-compact TABLE.appTabs TR TD A:hover { COLOR: #000000; BACKGROUND-COLOR: #ffffff } #moduleTitle { COLOR: #ffffff; BACKGROUND-COLOR: #0c5449 } .portlet H2 { COLOR: #ffffff; BACKGROUND-COLOR: #0c5449 } .portlet H2 SPAN.reorder { COLOR: #ffffff; BACKGROUND-COLOR: #0c5449 } .portlet H2 A { COLOR: #ffffff; BACKGROUND-COLOR: transparent } #moduleBorder { BORDER-LEFT-COLOR: #999999; BORDER-BOTTOM-COLOR: #999999; COLOR: = #000000; BORDER-TOP-COLOR: #999999; BACKGROUND-COLOR: #ffffff; = BORDER-RIGHT-COLOR: #999999 } #moduleBody { BORDER-LEFT-COLOR: #999999; BORDER-BOTTOM-COLOR: #999999; COLOR: = #000000; BORDER-TOP-COLOR: #999999; BACKGROUND-COLOR: #ffffff; = BORDER-RIGHT-COLOR: #999999 } .portlet { BORDER-LEFT-COLOR: #999999; BORDER-BOTTOM-COLOR: #999999; COLOR: = #000000; BORDER-TOP-COLOR: #999999; BACKGROUND-COLOR: #ffffff; = BORDER-RIGHT-COLOR: #999999 } ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/blackboard/dwr_open/interface/UserPageInstructionsSettingDWRFacade.js?v=9.0.440.7 =0A= // Provide a default path to dwr.engine=0A= if (dwr =3D=3D null) var dwr =3D {};=0A= if (dwr.engine =3D=3D null) dwr.engine =3D {};=0A= if (DWREngine =3D=3D null) var DWREngine =3D dwr.engine;=0A= =0A= if (UserPageInstructionsSettingDWRFacade =3D=3D null) var = UserPageInstructionsSettingDWRFacade =3D {};=0A= UserPageInstructionsSettingDWRFacade._path =3D = '/webapps/blackboard/dwr_open';=0A= UserPageInstructionsSettingDWRFacade.setShowPageInstructions =3D = function(p0, callback) {=0A= dwr.engine._execute(UserPageInstructionsSettingDWRFacade._path, = 'UserPageInstructionsSettingDWRFacade', 'setShowPageInstructions', p0, = callback);=0A= }=0A= UserPageInstructionsSettingDWRFacade.getShowPageInstructions =3D = function(callback) {=0A= dwr.engine._execute(UserPageInstructionsSettingDWRFacade._path, = 'UserPageInstructionsSettingDWRFacade', 'getShowPageInstructions', = callback);=0A= }=0A= ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/blackboard/dwr_open/engine.js?v=9.0.440.7 /*=0A= * Copyright 2005 Joe Walker=0A= *=0A= * Licensed under the Apache License, Version 2.0 (the "License");=0A= * you may not use this file except in compliance with the License.=0A= * You may obtain a copy of the License at=0A= *=0A= * http://www.apache.org/licenses/LICENSE-2.0=0A= *=0A= * Unless required by applicable law or agreed to in writing, software=0A= * distributed under the License is distributed on an "AS IS" BASIS,=0A= * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or = implied.=0A= * See the License for the specific language governing permissions and=0A= * limitations under the License.=0A= */=0A= =0A= /**=0A= * Declare an object to which we can add real functions.=0A= */=0A= if (dwr =3D=3D null) var dwr =3D {};=0A= if (dwr.engine =3D=3D null) dwr.engine =3D {};=0A= if (DWREngine =3D=3D null) var DWREngine =3D dwr.engine;=0A= =0A= /**=0A= * Set an alternative error handler from the default alert box.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.setErrorHandler =3D function(handler) {=0A= dwr.engine._errorHandler =3D handler;=0A= };=0A= =0A= /**=0A= * Set an alternative warning handler from the default alert box.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.setWarningHandler =3D function(handler) {=0A= dwr.engine._warningHandler =3D handler;=0A= };=0A= =0A= /**=0A= * Setter for the text/html handler - what happens if a DWR request gets = an HTML=0A= * reply rather than the expected Javascript. Often due to login timeout=0A= */=0A= dwr.engine.setTextHtmlHandler =3D function(handler) {=0A= dwr.engine._textHtmlHandler =3D handler;=0A= };=0A= =0A= /**=0A= * Set a default timeout value for all calls. 0 (the default) turns = timeouts off.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.setTimeout =3D function(timeout) {=0A= dwr.engine._timeout =3D timeout;=0A= };=0A= =0A= /**=0A= * The Pre-Hook is called before any DWR remoting is done.=0A= * @see getahead.org/dwr/browser/engine/hooks=0A= */=0A= dwr.engine.setPreHook =3D function(handler) {=0A= dwr.engine._preHook =3D handler;=0A= };=0A= =0A= /**=0A= * The Post-Hook is called after any DWR remoting is done.=0A= * @see getahead.org/dwr/browser/engine/hooks=0A= */=0A= dwr.engine.setPostHook =3D function(handler) {=0A= dwr.engine._postHook =3D handler;=0A= };=0A= =0A= /**=0A= * Custom headers for all DWR calls=0A= * @see getahead.org/dwr/????=0A= */=0A= dwr.engine.setHeaders =3D function(headers) {=0A= dwr.engine._headers =3D headers;=0A= };=0A= =0A= /**=0A= * Custom parameters for all DWR calls=0A= * @see getahead.org/dwr/????=0A= */=0A= dwr.engine.setParameters =3D function(parameters) {=0A= dwr.engine._parameters =3D parameters;=0A= };=0A= =0A= /** XHR remoting type constant. See dwr.engine.set[Rpc|Poll]Type() */=0A= dwr.engine.XMLHttpRequest =3D 1;=0A= =0A= /** XHR remoting type constant. See dwr.engine.set[Rpc|Poll]Type() */=0A= dwr.engine.IFrame =3D 2;=0A= =0A= /** XHR remoting type constant. See dwr.engine.setRpcType() */=0A= dwr.engine.ScriptTag =3D 3;=0A= =0A= /**=0A= * Set the preferred remoting type.=0A= * @param newType One of dwr.engine.XMLHttpRequest or dwr.engine.IFrame = or dwr.engine.ScriptTag=0A= * @see getahead.org/dwr/browser/engine/options=0A= */=0A= dwr.engine.setRpcType =3D function(newType) {=0A= if (newType !=3D dwr.engine.XMLHttpRequest && newType !=3D = dwr.engine.IFrame && newType !=3D dwr.engine.ScriptTag) {=0A= dwr.engine._handleError(null, { name:"dwr.engine.invalidRpcType", = message:"RpcType must be one of dwr.engine.XMLHttpRequest or = dwr.engine.IFrame or dwr.engine.ScriptTag" });=0A= return;=0A= }=0A= dwr.engine._rpcType =3D newType;=0A= };=0A= =0A= /**=0A= * Which HTTP method do we use to send results? Must be one of "GET" or = "POST".=0A= * @see getahead.org/dwr/browser/engine/options=0A= */=0A= dwr.engine.setHttpMethod =3D function(httpMethod) {=0A= if (httpMethod !=3D "GET" && httpMethod !=3D "POST") {=0A= dwr.engine._handleError(null, { name:"dwr.engine.invalidHttpMethod", = message:"Remoting method must be one of GET or POST" });=0A= return;=0A= }=0A= dwr.engine._httpMethod =3D httpMethod;=0A= };=0A= =0A= /**=0A= * Ensure that remote calls happen in the order in which they were sent? = (Default: false)=0A= * @see getahead.org/dwr/browser/engine/ordering=0A= */=0A= dwr.engine.setOrdered =3D function(ordered) {=0A= dwr.engine._ordered =3D ordered;=0A= };=0A= =0A= /**=0A= * Do we ask the XHR object to be asynchronous? (Default: true)=0A= * @see getahead.org/dwr/browser/engine/options=0A= */=0A= dwr.engine.setAsync =3D function(async) {=0A= dwr.engine._async =3D async;=0A= };=0A= =0A= /**=0A= * Does DWR poll the server for updates? (Default: false)=0A= * @see getahead.org/dwr/browser/engine/options=0A= */=0A= dwr.engine.setActiveReverseAjax =3D function(activeReverseAjax) {=0A= if (activeReverseAjax) {=0A= // Bail if we are already started=0A= if (dwr.engine._activeReverseAjax) return;=0A= dwr.engine._activeReverseAjax =3D true;=0A= dwr.engine._poll();=0A= }=0A= else {=0A= // Can we cancel an existing request?=0A= if (dwr.engine._activeReverseAjax && dwr.engine._pollReq) = dwr.engine._pollReq.abort();=0A= dwr.engine._activeReverseAjax =3D false;=0A= }=0A= // TODO: in iframe mode, if we start, stop, start then the second = start may=0A= // well kick off a second iframe while the first is still about to = return=0A= // we should cope with this but we don't=0A= };=0A= =0A= /**=0A= * The default message handler.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.defaultErrorHandler =3D function(message, ex) {=0A= dwr.engine._debug("Error: " + ex.name + ", " + ex.message, true);=0A= if (message =3D=3D null || message =3D=3D "") alert("A server error = has occured.");=0A= // Ignore NS_ERROR_NOT_AVAILABLE if Mozilla is being narky=0A= else if (message.indexOf("0x80040111") !=3D -1) = dwr.engine._debug(message);=0A= else alert(message);=0A= };=0A= =0A= /**=0A= * The default warning handler.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.defaultWarningHandler =3D function(message, ex) {=0A= dwr.engine._debug(message);=0A= };=0A= =0A= /**=0A= * For reduced latency you can group several remote calls together using = a batch.=0A= * @see getahead.org/dwr/browser/engine/batch=0A= */=0A= dwr.engine.beginBatch =3D function() {=0A= if (dwr.engine._batch) {=0A= dwr.engine._handleError(null, { name:"dwr.engine.batchBegun", = message:"Batch already begun" });=0A= return;=0A= }=0A= dwr.engine._batch =3D dwr.engine._createBatch();=0A= };=0A= =0A= /**=0A= * Finished grouping a set of remote calls together. Go and execute them = all.=0A= * @see getahead.org/dwr/browser/engine/batch=0A= */=0A= dwr.engine.endBatch =3D function(options) {=0A= var batch =3D dwr.engine._batch;=0A= if (batch =3D=3D null) {=0A= dwr.engine._handleError(null, { name:"dwr.engine.batchNotBegun", = message:"No batch in progress" });=0A= return;=0A= }=0A= dwr.engine._batch =3D null;=0A= if (batch.map.callCount =3D=3D 0) return;=0A= =0A= // The hooks need to be merged carefully to preserve ordering=0A= if (options) dwr.engine._mergeBatch(batch, options);=0A= =0A= // In ordered mode, we don't send unless the list of sent items is = empty=0A= if (dwr.engine._ordered && dwr.engine._batchesLength !=3D 0) {=0A= dwr.engine._batchQueue[dwr.engine._batchQueue.length] =3D batch;=0A= }=0A= else {=0A= dwr.engine._sendData(batch);=0A= }=0A= };=0A= =0A= /** @deprecated */=0A= dwr.engine.setPollMethod =3D function(type) { = dwr.engine.setPollType(type); };=0A= dwr.engine.setMethod =3D function(type) { dwr.engine.setRpcType(type); };=0A= dwr.engine.setVerb =3D function(verb) { dwr.engine.setHttpMethod(verb); = };=0A= dwr.engine.setPollType =3D function() { dwr.engine._debug("Manually = setting the Poll Type is not supported"); };=0A= =0A= //=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=0A= // Only private stuff below here=0A= //=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=0A= =0A= /** The original page id sent from the server */=0A= dwr.engine._origScriptSessionId =3D "52ED1884EB05ACCBB0BBC38622D63D42";=0A= =0A= /** The session cookie name */=0A= dwr.engine._sessionCookieName =3D "JSESSIONID"; // JSESSIONID=0A= =0A= /** Is GET enabled for the benefit of Safari? */=0A= dwr.engine._allowGetForSafariButMakeForgeryEasier =3D "false";=0A= =0A= /** The script prefix to strip in the case of scriptTagProtection. */=0A= dwr.engine._scriptTagProtection =3D "throw 'allowScriptTagRemoting is = false.';";=0A= =0A= /** The default path to the DWR servlet */=0A= dwr.engine._defaultPath =3D "/webapps/blackboard/dwr_open";=0A= =0A= /** Do we use XHR for reverse ajax because we are not streaming? */=0A= dwr.engine._pollWithXhr =3D "false";=0A= =0A= /** The read page id that we calculate */=0A= dwr.engine._scriptSessionId =3D null;=0A= =0A= /** The function that we use to fetch/calculate a session id */=0A= dwr.engine._getScriptSessionId =3D function() {=0A= if (dwr.engine._scriptSessionId =3D=3D null) {=0A= dwr.engine._scriptSessionId =3D dwr.engine._origScriptSessionId + = Math.floor(Math.random() * 1000);=0A= }=0A= return dwr.engine._scriptSessionId;=0A= };=0A= =0A= /** A function to call if something fails. */=0A= dwr.engine._errorHandler =3D dwr.engine.defaultErrorHandler;=0A= =0A= /** For debugging when something unexplained happens. */=0A= dwr.engine._warningHandler =3D dwr.engine.defaultWarningHandler;=0A= =0A= /** A function to be called before requests are marshalled. Can be null. = */=0A= dwr.engine._preHook =3D null;=0A= =0A= /** A function to be called after replies are received. Can be null. */=0A= dwr.engine._postHook =3D null;=0A= =0A= /** An map of the batches that we have sent and are awaiting a reply on. = */=0A= dwr.engine._batches =3D {};=0A= =0A= /** A count of the number of outstanding batches. Should be =3D=3D to = _batches.length unless prototype has messed things up */=0A= dwr.engine._batchesLength =3D 0;=0A= =0A= /** In ordered mode, the array of batches waiting to be sent */=0A= dwr.engine._batchQueue =3D [];=0A= =0A= /** What is the default rpc type */=0A= dwr.engine._rpcType =3D dwr.engine.XMLHttpRequest;=0A= =0A= /** What is the default remoting method (ie GET or POST) */=0A= dwr.engine._httpMethod =3D "POST";=0A= =0A= /** Do we attempt to ensure that calls happen in the order in which they = were sent? */=0A= dwr.engine._ordered =3D false;=0A= =0A= /** Do we make the calls async? */=0A= dwr.engine._async =3D true;=0A= =0A= /** The current batch (if we are in batch mode) */=0A= dwr.engine._batch =3D null;=0A= =0A= /** The global timeout */=0A= dwr.engine._timeout =3D 0;=0A= =0A= /** ActiveX objects to use when we want to convert an xml string into a = DOM object. */=0A= dwr.engine._DOMDocument =3D ["Msxml2.DOMDocument.6.0", = "Msxml2.DOMDocument.5.0", "Msxml2.DOMDocument.4.0", = "Msxml2.DOMDocument.3.0", "MSXML2.DOMDocument", "MSXML.DOMDocument", = "Microsoft.XMLDOM"];=0A= =0A= /** The ActiveX objects to use when we want to do an XMLHttpRequest = call. */=0A= dwr.engine._XMLHTTP =3D ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0", = "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", = "Microsoft.XMLHTTP"];=0A= =0A= /** Are we doing comet or polling? */=0A= dwr.engine._activeReverseAjax =3D false;=0A= =0A= /** The iframe that we are using to poll */=0A= dwr.engine._outstandingIFrames =3D [];=0A= =0A= /** The xhr object that we are using to poll */=0A= dwr.engine._pollReq =3D null;=0A= =0A= /** How many milliseconds between internal comet polls */=0A= dwr.engine._pollCometInterval =3D 200;=0A= =0A= /** How many times have we re-tried to poll? */=0A= dwr.engine._pollRetries =3D 0;=0A= dwr.engine._maxPollRetries =3D 0;=0A= =0A= /** Do we do a document.reload if we get a text/html reply? */=0A= dwr.engine._textHtmlHandler =3D null;=0A= =0A= /** If you wish to send custom headers with every request */=0A= dwr.engine._headers =3D null;=0A= =0A= /** If you wish to send extra custom request parameters with each = request */=0A= dwr.engine._parameters =3D null;=0A= =0A= /** Undocumented interceptors - do not use */=0A= dwr.engine._postSeperator =3D "\n";=0A= dwr.engine._defaultInterceptor =3D function(data) { return data; };=0A= dwr.engine._urlRewriteHandler =3D dwr.engine._defaultInterceptor;=0A= dwr.engine._contentRewriteHandler =3D dwr.engine._defaultInterceptor;=0A= dwr.engine._replyRewriteHandler =3D dwr.engine._defaultInterceptor;=0A= =0A= /** Batch ids allow us to know which batch the server is answering */=0A= dwr.engine._nextBatchId =3D 0;=0A= =0A= /** A list of the properties that need merging from calls to a batch */=0A= dwr.engine._propnames =3D [ "rpcType", "httpMethod", "async", "timeout", = "errorHandler", "warningHandler", "textHtmlHandler" ];=0A= =0A= /** Do we stream, or can be hacked to do so? */=0A= dwr.engine._partialResponseNo =3D 0;=0A= dwr.engine._partialResponseYes =3D 1;=0A= dwr.engine._partialResponseFlush =3D 2;=0A= =0A= /** Is this page in the process of unloading? */=0A= dwr.engine._unloading =3D false;=0A= =0A= /**=0A= * @private Send a request. Called by the Javascript interface stub=0A= * @param path part of URL after the host and before the exec bit = without leading or trailing /s=0A= * @param scriptName The class to execute=0A= * @param methodName The method on said class to execute=0A= * @param func The callback function to which any returned data should = be passed=0A= * if this is null, any returned data will be ignored=0A= * @param vararg_params The parameters to pass to the above class=0A= */=0A= dwr.engine._execute =3D function(path, scriptName, methodName, = vararg_params) {=0A= var singleShot =3D false;=0A= if (dwr.engine._batch =3D=3D null) {=0A= dwr.engine.beginBatch();=0A= singleShot =3D true;=0A= }=0A= var batch =3D dwr.engine._batch;=0A= // To make them easy to manipulate we copy the arguments into an args = array=0A= var args =3D [];=0A= for (var i =3D 0; i < arguments.length - 3; i++) {=0A= args[i] =3D arguments[i + 3];=0A= }=0A= // All the paths MUST be to the same servlet=0A= if (batch.path =3D=3D null) {=0A= batch.path =3D path;=0A= }=0A= else {=0A= if (batch.path !=3D path) {=0A= dwr.engine._handleError(batch, { = name:"dwr.engine.multipleServlets", message:"Can't batch requests to = multiple DWR Servlets." });=0A= return;=0A= }=0A= }=0A= // From the other params, work out which is the function (or object = with=0A= // call meta-data) and which is the call parameters=0A= var callData;=0A= var lastArg =3D args[args.length - 1];=0A= if (typeof lastArg =3D=3D "function" || lastArg =3D=3D null) callData = =3D { callback:args.pop() };=0A= else callData =3D args.pop();=0A= =0A= // Merge from the callData into the batch=0A= dwr.engine._mergeBatch(batch, callData);=0A= batch.handlers[batch.map.callCount] =3D {=0A= exceptionHandler:callData.exceptionHandler,=0A= callback:callData.callback=0A= };=0A= =0A= // Copy to the map the things that need serializing=0A= var prefix =3D "c" + batch.map.callCount + "-";=0A= batch.map[prefix + "scriptName"] =3D scriptName;=0A= batch.map[prefix + "methodName"] =3D methodName;=0A= batch.map[prefix + "id"] =3D batch.map.callCount;=0A= for (i =3D 0; i < args.length; i++) {=0A= dwr.engine._serializeAll(batch, [], args[i], prefix + "param" + i);=0A= }=0A= =0A= // Now we have finished remembering the call, we incr the call count=0A= batch.map.callCount++;=0A= if (singleShot) dwr.engine.endBatch();=0A= };=0A= =0A= /** @private Poll the server to see if there is any data waiting */=0A= dwr.engine._poll =3D function() {=0A= if (!dwr.engine._activeReverseAjax) return;=0A= =0A= var batch =3D dwr.engine._createBatch();=0A= batch.map.id =3D 0; // TODO: Do we need this??=0A= batch.map.callCount =3D 1;=0A= batch.isPoll =3D true;=0A= if (dwr.engine._pollWithXhr =3D=3D "true") {=0A= batch.rpcType =3D dwr.engine.XMLHttpRequest;=0A= batch.map.partialResponse =3D dwr.engine._partialResponseNo;=0A= }=0A= else {=0A= if (navigator.userAgent.indexOf("Gecko/") !=3D -1) {=0A= batch.rpcType =3D dwr.engine.XMLHttpRequest;=0A= batch.map.partialResponse =3D dwr.engine._partialResponseYes;=0A= }=0A= else {=0A= batch.rpcType =3D dwr.engine.XMLHttpRequest;=0A= batch.map.partialResponse =3D dwr.engine._partialResponseNo;=0A= }=0A= }=0A= batch.httpMethod =3D "POST";=0A= batch.async =3D true;=0A= batch.timeout =3D 0;=0A= batch.path =3D dwr.engine._defaultPath;=0A= batch.preHooks =3D [];=0A= batch.postHooks =3D [];=0A= batch.errorHandler =3D dwr.engine._pollErrorHandler;=0A= batch.warningHandler =3D dwr.engine._pollErrorHandler;=0A= batch.handlers[0] =3D {=0A= callback:function(pause) {=0A= dwr.engine._pollRetries =3D 0;=0A= setTimeout(dwr.engine._poll, pause);=0A= }=0A= };=0A= =0A= // Send the data=0A= dwr.engine._sendData(batch);=0A= if (batch.rpcType =3D=3D dwr.engine.XMLHttpRequest && = batch.map.partialResponse =3D=3D dwr.engine._partialResponseYes) {=0A= dwr.engine._checkCometPoll();=0A= }=0A= };=0A= =0A= /** Try to recover from polling errors */=0A= dwr.engine._pollErrorHandler =3D function(msg, ex) {=0A= // if anything goes wrong then just silently try again (up to 3x) = after 10s=0A= dwr.engine._pollRetries++;=0A= dwr.engine._debug("Reverse Ajax poll failed (pollRetries=3D" + = dwr.engine._pollRetries + "): " + ex.name + " : " + ex.message);=0A= if (dwr.engine._pollRetries < dwr.engine._maxPollRetries) {=0A= setTimeout(dwr.engine._poll, 10000);=0A= }=0A= else {=0A= dwr.engine._activeReverseAjax =3D false;=0A= dwr.engine._debug("Giving up.");=0A= }=0A= };=0A= =0A= /** @private Generate a new standard batch */=0A= dwr.engine._createBatch =3D function() {=0A= var batch =3D {=0A= map:{=0A= callCount:0,=0A= page:window.location.pathname + window.location.search,=0A= httpSessionId:dwr.engine._getJSessionId(),=0A= scriptSessionId:dwr.engine._getScriptSessionId()=0A= },=0A= charsProcessed:0, paramCount:0,=0A= parameters:{}, headers:{},=0A= isPoll:false, handlers:{}, preHooks:[], postHooks:[],=0A= rpcType:dwr.engine._rpcType,=0A= httpMethod:dwr.engine._httpMethod,=0A= async:dwr.engine._async,=0A= timeout:dwr.engine._timeout,=0A= errorHandler:dwr.engine._errorHandler,=0A= warningHandler:dwr.engine._warningHandler,=0A= textHtmlHandler:dwr.engine._textHtmlHandler=0A= };=0A= if (dwr.engine._preHook) batch.preHooks.push(dwr.engine._preHook);=0A= if (dwr.engine._postHook) batch.postHooks.push(dwr.engine._postHook);=0A= var propname, data;=0A= if (dwr.engine._headers) {=0A= for (propname in dwr.engine._headers) {=0A= data =3D dwr.engine._headers[propname];=0A= if (typeof data !=3D "function") batch.headers[propname] =3D data;=0A= }=0A= }=0A= if (dwr.engine._parameters) {=0A= for (propname in dwr.engine._parameters) {=0A= data =3D dwr.engine._parameters[propname];=0A= if (typeof data !=3D "function") batch.parameters[propname] =3D = data;=0A= }=0A= }=0A= return batch;=0A= };=0A= =0A= /** @private Take further options and merge them into */=0A= dwr.engine._mergeBatch =3D function(batch, overrides) {=0A= var propname, data;=0A= for (var i =3D 0; i < dwr.engine._propnames.length; i++) {=0A= propname =3D dwr.engine._propnames[i];=0A= if (overrides[propname] !=3D null) batch[propname] =3D = overrides[propname];=0A= }=0A= if (overrides.preHook !=3D null) = batch.preHooks.unshift(overrides.preHook);=0A= if (overrides.postHook !=3D null) = batch.postHooks.push(overrides.postHook);=0A= if (overrides.headers) {=0A= for (propname in overrides.headers) {=0A= data =3D overrides.headers[propname];=0A= if (typeof data !=3D "function") batch.headers[propname] =3D data;=0A= }=0A= }=0A= if (overrides.parameters) {=0A= for (propname in overrides.parameters) {=0A= data =3D overrides.parameters[propname];=0A= if (typeof data !=3D "function") batch.map["p-" + propname] =3D "" = + data;=0A= }=0A= }=0A= };=0A= =0A= /** @private What is our session id? */=0A= dwr.engine._getJSessionId =3D function() {=0A= var cookies =3D document.cookie.split(';');=0A= for (var i =3D 0; i < cookies.length; i++) {=0A= var cookie =3D cookies[i];=0A= while (cookie.charAt(0) =3D=3D ' ') cookie =3D cookie.substring(1, = cookie.length);=0A= if (cookie.indexOf(dwr.engine._sessionCookieName + "=3D") =3D=3D 0) {=0A= return cookie.substring(dwr.engine._sessionCookieName.length + 1, = cookie.length);=0A= }=0A= }=0A= return "";=0A= };=0A= =0A= /** @private Check for reverse Ajax activity */=0A= dwr.engine._checkCometPoll =3D function() {=0A= for (var i =3D 0; i < dwr.engine._outstandingIFrames.length; i++) {=0A= var text =3D "";=0A= var iframe =3D dwr.engine._outstandingIFrames[i];=0A= try {=0A= text =3D dwr.engine._getTextFromCometIFrame(iframe);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(iframe.batch, ex);=0A= }=0A= if (text !=3D "") dwr.engine._processCometResponse(text, = iframe.batch);=0A= }=0A= if (dwr.engine._pollReq) {=0A= var req =3D dwr.engine._pollReq;=0A= var text =3D req.responseText;=0A= if (text !=3D null) dwr.engine._processCometResponse(text, = req.batch);=0A= }=0A= =0A= // If the poll resources are still there, come back again=0A= if (dwr.engine._outstandingIFrames.length > 0 || dwr.engine._pollReq) {=0A= setTimeout(dwr.engine._checkCometPoll, = dwr.engine._pollCometInterval);=0A= }=0A= };=0A= =0A= /** @private Extract the whole (executed an all) text from the current = iframe */=0A= dwr.engine._getTextFromCometIFrame =3D function(frameEle) {=0A= var body =3D frameEle.contentWindow.document.body;=0A= if (body =3D=3D null) return "";=0A= var text =3D body.innerHTML;=0A= // We need to prevent IE from stripping line feeds=0A= if (text.indexOf("") =3D=3D 0 || text.indexOf("") =3D=3D 0) {=0A= text =3D text.substring(5, text.length - 7);=0A= }=0A= return text;=0A= };=0A= =0A= /** @private Some more text might have come in, test and execute the new = stuff */=0A= dwr.engine._processCometResponse =3D function(response, batch) {=0A= if (batch.charsProcessed =3D=3D response.length) return;=0A= if (response.length =3D=3D 0) {=0A= batch.charsProcessed =3D 0;=0A= return;=0A= }=0A= =0A= var firstStartTag =3D response.indexOf("//#DWR-START#", = batch.charsProcessed);=0A= if (firstStartTag =3D=3D -1) {=0A= // dwr.engine._debug("No start tag (search from " + = batch.charsProcessed + "). skipping '" + = response.substring(batch.charsProcessed) + "'");=0A= batch.charsProcessed =3D response.length;=0A= return;=0A= }=0A= // if (firstStartTag > 0) {=0A= // dwr.engine._debug("Start tag not at start (search from " + = batch.charsProcessed + "). skipping '" + = response.substring(batch.charsProcessed, firstStartTag) + "'");=0A= // }=0A= =0A= var lastEndTag =3D response.lastIndexOf("//#DWR-END#");=0A= if (lastEndTag =3D=3D -1) {=0A= // dwr.engine._debug("No end tag. unchanged charsProcessed=3D" + = batch.charsProcessed);=0A= return;=0A= }=0A= =0A= // Skip the end tag too for next time, remembering CR and LF=0A= if (response.charCodeAt(lastEndTag + 11) =3D=3D 13 && = response.charCodeAt(lastEndTag + 12) =3D=3D 10) {=0A= batch.charsProcessed =3D lastEndTag + 13;=0A= }=0A= else {=0A= batch.charsProcessed =3D lastEndTag + 11;=0A= }=0A= =0A= var exec =3D response.substring(firstStartTag + 13, lastEndTag);=0A= =0A= dwr.engine._receivedBatch =3D batch;=0A= dwr.engine._eval(exec);=0A= dwr.engine._receivedBatch =3D null;=0A= };=0A= =0A= /** @private Actually send the block of data in the batch object. */=0A= dwr.engine._sendData =3D function(batch) {=0A= batch.map.batchId =3D dwr.engine._nextBatchId;=0A= dwr.engine._nextBatchId++;=0A= dwr.engine._batches[batch.map.batchId] =3D batch;=0A= dwr.engine._batchesLength++;=0A= batch.completed =3D false;=0A= =0A= for (var i =3D 0; i < batch.preHooks.length; i++) {=0A= batch.preHooks[i]();=0A= }=0A= batch.preHooks =3D null;=0A= // Set a timeout=0A= if (batch.timeout && batch.timeout !=3D 0) {=0A= batch.timeoutId =3D setTimeout(function() { = dwr.engine._abortRequest(batch); }, batch.timeout);=0A= }=0A= // Get setup for XMLHttpRequest if possible=0A= if (batch.rpcType =3D=3D dwr.engine.XMLHttpRequest) {=0A= if (window.XMLHttpRequest) {=0A= batch.req =3D new XMLHttpRequest();=0A= }=0A= // IE5 for the mac claims to support window.ActiveXObject, but = throws an error when it's used=0A= else if (window.ActiveXObject && = !(navigator.userAgent.indexOf("Mac") >=3D 0 && = navigator.userAgent.indexOf("MSIE") >=3D 0)) {=0A= batch.req =3D dwr.engine._newActiveXObject(dwr.engine._XMLHTTP);=0A= }=0A= }=0A= =0A= var prop, request;=0A= if (batch.req) {=0A= // Proceed using XMLHttpRequest=0A= if (batch.async) {=0A= batch.req.onreadystatechange =3D function() {=0A= if (typeof dwr !=3D 'undefined') dwr.engine._stateChange(batch);=0A= };=0A= }=0A= // If we're polling, record this for monitoring=0A= if (batch.isPoll) {=0A= dwr.engine._pollReq =3D batch.req;=0A= // In IE XHR is an ActiveX control so you can't augment it like = this=0A= if (!(document.all && !window.opera)) batch.req.batch =3D batch;=0A= }=0A= // Workaround for Safari 1.x POST bug=0A= var indexSafari =3D navigator.userAgent.indexOf("Safari/");=0A= if (indexSafari >=3D 0) {=0A= var version =3D navigator.userAgent.substring(indexSafari + 7);=0A= if (parseInt(version, 10) < 400) {=0A= if (dwr.engine._allowGetForSafariButMakeForgeryEasier =3D=3D = "true") batch.httpMethod =3D "GET";=0A= else dwr.engine._handleWarning(batch, { = name:"dwr.engine.oldSafari", message:"Safari GET support disabled. See = getahead.org/dwr/server/servlet and = allowGetForSafariButMakeForgeryEasier." });=0A= }=0A= }=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModePlainPoll : = dwr.engine._ModePlainCall;=0A= request =3D dwr.engine._constructRequest(batch);=0A= try {=0A= batch.req.open(batch.httpMethod, request.url, batch.async);=0A= try {=0A= for (prop in batch.headers) {=0A= var value =3D batch.headers[prop];=0A= if (typeof value =3D=3D "string") = batch.req.setRequestHeader(prop, value);=0A= }=0A= if (!batch.headers["Content-Type"]) = batch.req.setRequestHeader("Content-Type", "text/plain");=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= }=0A= batch.req.send(request.body);=0A= if (!batch.async) dwr.engine._stateChange(batch);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleError(batch, ex);=0A= }=0A= }=0A= else if (batch.rpcType !=3D dwr.engine.ScriptTag) {=0A= var idname =3D batch.isPoll ? "dwr-if-poll-" + batch.map.batchId : = "dwr-if-" + batch.map.batchId;=0A= // Removed htmlfile implementation. Don't expect it to return before = v3=0A= batch.div =3D document.createElement("div");=0A= // Add the div to the document first, otherwise IE 6 will ignore = onload handler.=0A= document.body.appendChild(batch.div);=0A= batch.div.innerHTML =3D "";=0A= batch.document =3D document;=0A= batch.iframe =3D batch.document.getElementById(idname);=0A= batch.iframe.batch =3D batch;=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModeHtmlPoll : = dwr.engine._ModeHtmlCall;=0A= if (batch.isPoll) dwr.engine._outstandingIFrames.push(batch.iframe);=0A= request =3D dwr.engine._constructRequest(batch);=0A= if (batch.httpMethod =3D=3D "GET") {=0A= batch.iframe.setAttribute("src", request.url);=0A= }=0A= else {=0A= batch.form =3D batch.document.createElement("form");=0A= batch.form.setAttribute("id", "dwr-form");=0A= batch.form.setAttribute("action", request.url);=0A= batch.form.setAttribute("style", "display:none;");=0A= batch.form.setAttribute("target", idname);=0A= batch.form.target =3D idname;=0A= batch.form.setAttribute("method", batch.httpMethod);=0A= for (prop in batch.map) {=0A= var value =3D batch.map[prop];=0A= if (typeof value !=3D "function") {=0A= var formInput =3D batch.document.createElement("input");=0A= formInput.setAttribute("type", "hidden");=0A= formInput.setAttribute("name", prop);=0A= formInput.setAttribute("value", value);=0A= batch.form.appendChild(formInput);=0A= }=0A= }=0A= batch.document.body.appendChild(batch.form);=0A= batch.form.submit();=0A= }=0A= }=0A= else {=0A= batch.httpMethod =3D "GET"; // There's no such thing as ScriptTag = using POST=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModePlainPoll : = dwr.engine._ModePlainCall;=0A= request =3D dwr.engine._constructRequest(batch);=0A= batch.script =3D document.createElement("script");=0A= batch.script.id =3D "dwr-st-" + batch.map["c0-id"];=0A= batch.script.src =3D request.url;=0A= document.body.appendChild(batch.script);=0A= }=0A= };=0A= =0A= dwr.engine._ModePlainCall =3D "/call/plaincall/";=0A= dwr.engine._ModeHtmlCall =3D "/call/htmlcall/";=0A= dwr.engine._ModePlainPoll =3D "/call/plainpoll/";=0A= dwr.engine._ModeHtmlPoll =3D "/call/htmlpoll/";=0A= =0A= /** @private Work out what the URL should look like */=0A= dwr.engine._constructRequest =3D function(batch) {=0A= // A quick string to help people that use web log analysers=0A= var request =3D { url:batch.path + batch.mode, body:null };=0A= if (batch.isPoll =3D=3D true) {=0A= request.url +=3D "ReverseAjax.dwr";=0A= }=0A= else if (batch.map.callCount =3D=3D 1) {=0A= request.url +=3D batch.map["c0-scriptName"] + "." + = batch.map["c0-methodName"] + ".dwr";=0A= }=0A= else {=0A= request.url +=3D "Multiple." + batch.map.callCount + ".dwr";=0A= }=0A= // Play nice with url re-writing=0A= var sessionMatch =3D location.href.match(/jsessionid=3D([^?]+)/);=0A= if (sessionMatch !=3D null) {=0A= request.url +=3D ";jsessionid=3D" + sessionMatch[1];=0A= }=0A= =0A= var prop;=0A= if (batch.httpMethod =3D=3D "GET") {=0A= // Some browsers (Opera/Safari2) seem to fail to convert the = callCount value=0A= // to a string in the loop below so we do it manually here.=0A= batch.map.callCount =3D "" + batch.map.callCount;=0A= request.url +=3D "?";=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= request.url +=3D encodeURIComponent(prop) + "=3D" + = encodeURIComponent(batch.map[prop]) + "&";=0A= }=0A= }=0A= request.url =3D request.url.substring(0, request.url.length - 1);=0A= }=0A= else {=0A= // PERFORMANCE: for iframe mode this is thrown away.=0A= request.body =3D "";=0A= if (document.all && !window.opera) {=0A= // Use array joining on IE (fastest)=0A= var buf =3D [];=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= buf.push(prop + "=3D" + batch.map[prop] + = dwr.engine._postSeperator);=0A= }=0A= }=0A= request.body =3D buf.join("");=0A= }=0A= else {=0A= // Use string concat on other browsers (fastest)=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= request.body +=3D prop + "=3D" + batch.map[prop] + = dwr.engine._postSeperator;=0A= }=0A= }=0A= }=0A= request.body =3D dwr.engine._contentRewriteHandler(request.body);=0A= }=0A= request.url =3D dwr.engine._urlRewriteHandler(request.url);=0A= return request;=0A= };=0A= =0A= /** @private Called by XMLHttpRequest to indicate that something has = happened */=0A= dwr.engine._stateChange =3D function(batch) {=0A= var toEval;=0A= =0A= if (batch.completed) {=0A= dwr.engine._debug("Error: _stateChange() with batch.completed");=0A= return;=0A= }=0A= =0A= var req =3D batch.req;=0A= try {=0A= if (req.readyState !=3D 4) return;=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= // It's broken - clear up and forget this call=0A= dwr.engine._clearUp(batch);=0A= return;=0A= }=0A= =0A= if (dwr.engine._unloading) {=0A= dwr.engine._debug("Ignoring reply from server as page is = unloading.");=0A= return;=0A= }=0A= =0A= try {=0A= var reply =3D req.responseText;=0A= reply =3D dwr.engine._replyRewriteHandler(reply);=0A= var status =3D req.status; // causes Mozilla to except on page moves=0A= =0A= if (reply =3D=3D null || reply =3D=3D "") {=0A= dwr.engine._handleWarning(batch, { name:"dwr.engine.missingData", = message:"No data received from server" });=0A= }=0A= else if (status !=3D 200) {=0A= dwr.engine._handleError(batch, { name:"dwr.engine.http." + status, = message:req.statusText });=0A= }=0A= else {=0A= var contentType =3D req.getResponseHeader("Content-Type");=0A= if (!contentType.match(/^text\/plain/) && = !contentType.match(/^text\/javascript/)) {=0A= if (contentType.match(/^text\/html/) && typeof = batch.textHtmlHandler =3D=3D "function") {=0A= batch.textHtmlHandler({ status:status, responseText:reply, = contentType:contentType });=0A= }=0A= else {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.invalidMimeType", message:"Invalid content type: '" + = contentType + "'" });=0A= }=0A= }=0A= else {=0A= // Comet replies might have already partially executed=0A= if (batch.isPoll && batch.map.partialResponse =3D=3D = dwr.engine._partialResponseYes) {=0A= dwr.engine._processCometResponse(reply, batch);=0A= }=0A= else {=0A= if (reply.search("//#DWR") =3D=3D -1) {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.invalidReply", message:"Invalid reply from server" });=0A= }=0A= else {=0A= toEval =3D reply;=0A= }=0A= }=0A= }=0A= }=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= }=0A= =0A= dwr.engine._callPostHooks(batch);=0A= =0A= // Outside of the try/catch so errors propogate normally:=0A= dwr.engine._receivedBatch =3D batch;=0A= if (toEval !=3D null) toEval =3D = toEval.replace(dwr.engine._scriptTagProtection, "");=0A= dwr.engine._eval(toEval);=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._validateBatch(batch);=0A= if (!batch.completed) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /**=0A= * @private This function is invoked when a batch reply is received.=0A= * It checks that there is a response for every call in the batch. = Otherwise,=0A= * an error will be signaled (a call without a response indicates that = the =0A= * server failed to send complete batch response). =0A= */=0A= dwr.engine._validateBatch =3D function(batch) {=0A= // If some call left unreplied, report an error.=0A= if (!batch.completed) {=0A= for (var i =3D 0; i < batch.map.callCount; i++) {=0A= if (batch.handlers[i] !=3D null) {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.incompleteReply", message:"Incomplete reply from = server" });=0A= break;=0A= }=0A= }=0A= }=0A= }=0A= =0A= /** @private Called from iframe onload, check batch using batch-id */=0A= dwr.engine._iframeLoadingComplete =3D function(batchId) {=0A= // dwr.engine._checkCometPoll();=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch) dwr.engine._validateBatch(batch);=0A= }=0A= =0A= /** @private Called by the server: Execute a callback */=0A= dwr.engine._remoteHandleCallback =3D function(batchId, callId, reply) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch =3D=3D null) {=0A= dwr.engine._debug("Warning: batch =3D=3D null in = remoteHandleCallback for batchId=3D" + batchId, true);=0A= return;=0A= }=0A= // Error handlers inside here indicate an error that is nothing to do=0A= // with DWR so we handle them differently.=0A= try {=0A= var handlers =3D batch.handlers[callId];=0A= batch.handlers[callId] =3D null;=0A= if (!handlers) {=0A= dwr.engine._debug("Warning: Missing handlers. callId=3D" + callId, = true);=0A= }=0A= else if (typeof handlers.callback =3D=3D "function") = handlers.callback(reply);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleError(batch, ex);=0A= }=0A= };=0A= =0A= /** @private Called by the server: Handle an exception for a call */=0A= dwr.engine._remoteHandleException =3D function(batchId, callId, ex) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch =3D=3D null) { dwr.engine._debug("Warning: null batch in = remoteHandleException", true); return; }=0A= var handlers =3D batch.handlers[callId];=0A= batch.handlers[callId] =3D null;=0A= if (handlers =3D=3D null) { dwr.engine._debug("Warning: null handlers = in remoteHandleException", true); return; }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= if (typeof handlers.exceptionHandler =3D=3D "function") = handlers.exceptionHandler(ex.message, ex);=0A= else if (typeof batch.errorHandler =3D=3D "function") = batch.errorHandler(ex.message, ex);=0A= };=0A= =0A= /** @private Called by the server: The whole batch is broken */=0A= dwr.engine._remoteHandleBatchException =3D function(ex, batchId) {=0A= var searchBatch =3D (dwr.engine._receivedBatch =3D=3D null && batchId = !=3D null);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D dwr.engine._batches[batchId];=0A= }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= dwr.engine._handleError(dwr.engine._receivedBatch, ex);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._clearUp(dwr.engine._batches[batchId]);=0A= }=0A= };=0A= =0A= /** @private Called by the server: Reverse ajax should not be used */=0A= dwr.engine._remotePollCometDisabled =3D function(ex, batchId) {=0A= dwr.engine.setActiveReverseAjax(false);=0A= var searchBatch =3D (dwr.engine._receivedBatch =3D=3D null && batchId = !=3D null);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D dwr.engine._batches[batchId];=0A= }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= dwr.engine._handleError(dwr.engine._receivedBatch, ex);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._clearUp(dwr.engine._batches[batchId]);=0A= }=0A= };=0A= =0A= /** @private Called by the server: An IFrame reply is about to start */=0A= dwr.engine._remoteBeginIFrameResponse =3D function(iframe, batchId) {=0A= if (iframe !=3D null) dwr.engine._receivedBatch =3D iframe.batch;=0A= dwr.engine._callPostHooks(dwr.engine._receivedBatch);=0A= };=0A= =0A= /** @private Called by the server: An IFrame reply is just completing */=0A= dwr.engine._remoteEndIFrameResponse =3D function(batchId) {=0A= dwr.engine._clearUp(dwr.engine._receivedBatch);=0A= dwr.engine._receivedBatch =3D null;=0A= };=0A= =0A= /** @private This is a hack to make the context be this window */=0A= dwr.engine._eval =3D function(script) {=0A= if (script =3D=3D null) return null;=0A= if (script =3D=3D "") { dwr.engine._debug("Warning: blank script", = true); return null; }=0A= // dwr.engine._debug("Exec: [" + script + "]", true);=0A= return eval(script);=0A= };=0A= =0A= /** @private Called as a result of a request timeout */=0A= dwr.engine._abortRequest =3D function(batch) {=0A= if (batch && !batch.completed) {=0A= dwr.engine._clearUp(batch);=0A= if (batch.req) batch.req.abort();=0A= dwr.engine._handleError(batch, { name:"dwr.engine.timeout", = message:"Timeout" });=0A= }=0A= };=0A= =0A= /** @private call all the post hooks for a batch */=0A= dwr.engine._callPostHooks =3D function(batch) {=0A= if (batch.postHooks) {=0A= for (var i =3D 0; i < batch.postHooks.length; i++) {=0A= batch.postHooks[i]();=0A= }=0A= batch.postHooks =3D null;=0A= }=0A= };=0A= =0A= /** @private A call has finished by whatever means and we need to shut = it all down. */=0A= dwr.engine._clearUp =3D function(batch) {=0A= if (!batch) { dwr.engine._debug("Warning: null batch in = dwr.engine._clearUp()", true); return; }=0A= if (batch.completed) { dwr.engine._debug("Warning: Double complete", = true); return; }=0A= =0A= // IFrame tidyup=0A= if (batch.div) batch.div.parentNode.removeChild(batch.div);=0A= if (batch.iframe) {=0A= // If this is a poll frame then stop comet polling=0A= for (var i =3D 0; i < dwr.engine._outstandingIFrames.length; i++) {=0A= if (dwr.engine._outstandingIFrames[i] =3D=3D batch.iframe) {=0A= dwr.engine._outstandingIFrames.splice(i, 1);=0A= }=0A= }=0A= batch.iframe.parentNode.removeChild(batch.iframe);=0A= }=0A= if (batch.form) batch.form.parentNode.removeChild(batch.form);=0A= =0A= // XHR tidyup: avoid IE handles increase=0A= if (batch.req) {=0A= // If this is a poll frame then stop comet polling=0A= if (batch.req =3D=3D dwr.engine._pollReq) dwr.engine._pollReq =3D = null;=0A= delete batch.req;=0A= }=0A= =0A= // Timeout tidyup=0A= if (batch.timeoutId) {=0A= clearTimeout(batch.timeoutId);=0A= delete batch.timeoutId;=0A= }=0A= =0A= if (batch.map && (batch.map.batchId || batch.map.batchId =3D=3D 0)) {=0A= delete dwr.engine._batches[batch.map.batchId];=0A= dwr.engine._batchesLength--;=0A= }=0A= =0A= batch.completed =3D true;=0A= =0A= // If there is anything on the queue waiting to go out, then send it.=0A= // We don't need to check for ordered mode, here because when ordered = mode=0A= // gets turned off, we still process *waiting* batches in an ordered = way.=0A= if (dwr.engine._batchQueue.length !=3D 0) {=0A= var sendbatch =3D dwr.engine._batchQueue.shift();=0A= dwr.engine._sendData(sendbatch);=0A= }=0A= };=0A= =0A= /** @private Abort any XHRs in progress at page unload (solves zombie = socket problems in IE). */=0A= dwr.engine._unloader =3D function() {=0A= dwr.engine._unloading =3D true;=0A= =0A= // Empty queue of waiting ordered requests=0A= dwr.engine._batchQueue.length =3D 0;=0A= =0A= // Abort any ongoing XHRs and clear their batches=0A= for (var batchId in dwr.engine._batches) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= // Only process objects that look like batches (avoid prototype = additions!)=0A= if (batch && batch.map) {=0A= if (batch.req) {=0A= batch.req.abort();=0A= }=0A= dwr.engine._clearUp(batch);=0A= }=0A= }=0A= };=0A= // Now register the unload handler=0A= if (window.addEventListener) window.addEventListener('unload', = dwr.engine._unloader, false);=0A= else if (window.attachEvent) window.attachEvent('onunload', = dwr.engine._unloader);=0A= =0A= /** @private Generic error handling routing to save having null checks = everywhere */=0A= dwr.engine._handleError =3D function(batch, ex) {=0A= if (typeof ex =3D=3D "string") ex =3D { name:"unknown", message:ex };=0A= if (ex.message =3D=3D null) ex.message =3D "";=0A= if (ex.name =3D=3D null) ex.name =3D "unknown";=0A= if (batch && typeof batch.errorHandler =3D=3D "function") = batch.errorHandler(ex.message, ex);=0A= else if (dwr.engine._errorHandler) = dwr.engine._errorHandler(ex.message, ex);=0A= if (batch) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /** @private Generic error handling routing to save having null checks = everywhere */=0A= dwr.engine._handleWarning =3D function(batch, ex) {=0A= if (typeof ex =3D=3D "string") ex =3D { name:"unknown", message:ex };=0A= if (ex.message =3D=3D null) ex.message =3D "";=0A= if (ex.name =3D=3D null) ex.name =3D "unknown";=0A= if (batch && typeof batch.warningHandler =3D=3D "function") = batch.warningHandler(ex.message, ex);=0A= else if (dwr.engine._warningHandler) = dwr.engine._warningHandler(ex.message, ex);=0A= if (batch) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /**=0A= * @private Marshall a data item=0A= * @param batch A map of variables to how they have been marshalled=0A= * @param referto An array of already marshalled variables to prevent = recurrsion=0A= * @param data The data to be marshalled=0A= * @param name The name of the data being marshalled=0A= */=0A= dwr.engine._serializeAll =3D function(batch, referto, data, name) {=0A= if (data =3D=3D null) {=0A= batch.map[name] =3D "null:null";=0A= return;=0A= }=0A= =0A= switch (typeof data) {=0A= case "boolean":=0A= batch.map[name] =3D "boolean:" + data;=0A= break;=0A= case "number":=0A= batch.map[name] =3D "number:" + data;=0A= break;=0A= case "string":=0A= batch.map[name] =3D "string:" + encodeURIComponent(data);=0A= break;=0A= case "object":=0A= if (data instanceof String) batch.map[name] =3D "String:" + = encodeURIComponent(data);=0A= else if (data instanceof Boolean) batch.map[name] =3D "Boolean:" + = data;=0A= else if (data instanceof Number) batch.map[name] =3D "Number:" + = data;=0A= else if (data instanceof Date) batch.map[name] =3D "Date:" + = data.getTime();=0A= else if (data && data.join) batch.map[name] =3D = dwr.engine._serializeArray(batch, referto, data, name);=0A= else batch.map[name] =3D dwr.engine._serializeObject(batch, referto, = data, name);=0A= break;=0A= case "function":=0A= // We just ignore functions.=0A= break;=0A= default:=0A= dwr.engine._handleWarning(null, { name:"dwr.engine.unexpectedType", = message:"Unexpected type: " + typeof data + ", attempting default = converter." });=0A= batch.map[name] =3D "default:" + data;=0A= break;=0A= }=0A= };=0A= =0A= /** @private Have we already converted this object? */=0A= dwr.engine._lookup =3D function(referto, data, name) {=0A= var lookup;=0A= // Can't use a map: getahead.org/ajax/javascript-gotchas=0A= for (var i =3D 0; i < referto.length; i++) {=0A= if (referto[i].data =3D=3D data) {=0A= lookup =3D referto[i];=0A= break;=0A= }=0A= }=0A= if (lookup) return "reference:" + lookup.name;=0A= referto.push({ data:data, name:name });=0A= return null;=0A= };=0A= =0A= /** @private Marshall an object */=0A= dwr.engine._serializeObject =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= // This check for an HTML is not complete, but is there a better way?=0A= // Maybe we should add: data.hasChildNodes typeof "function" =3D=3D = true=0A= if (data.nodeName && data.nodeType) {=0A= return dwr.engine._serializeXml(batch, referto, data, name);=0A= }=0A= =0A= // treat objects as an associative arrays=0A= var reply =3D "Object_" + dwr.engine._getObjectClassName(data) + ":{";=0A= var element;=0A= for (element in data) {=0A= if (typeof data[element] !=3D "function") {=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[element], childName);=0A= =0A= reply +=3D encodeURIComponent(element) + ":reference:" + childName = + ", ";=0A= }=0A= }=0A= =0A= if (reply.substring(reply.length - 2) =3D=3D ", ") {=0A= reply =3D reply.substring(0, reply.length - 2);=0A= }=0A= reply +=3D "}";=0A= =0A= return reply;=0A= };=0A= =0A= /** @private Returns the classname of supplied argument obj */=0A= dwr.engine._errorClasses =3D { "Error":Error, "EvalError":EvalError, = "RangeError":RangeError, "ReferenceError":ReferenceError, = "SyntaxError":SyntaxError, "TypeError":TypeError, "URIError":URIError };=0A= dwr.engine._getObjectClassName =3D function(obj) {=0A= // Try to find the classname by stringifying the object's constructor=0A= // and extract from "function ".=0A= if (obj && obj.constructor && obj.constructor.toString)=0A= {=0A= var str =3D obj.constructor.toString();=0A= var regexpmatch =3D str.match(/function\s+(\w+)/);=0A= if (regexpmatch && regexpmatch.length =3D=3D 2) {=0A= return regexpmatch[1];=0A= }=0A= }=0A= =0A= // Now manually test against the core Error classes, as these in some =0A= // browsers successfully match to the wrong class in the =0A= // Object.toString() test we will do later=0A= if (obj && obj.constructor) {=0A= for (var errorname in dwr.engine._errorClasses) {=0A= if (obj.constructor =3D=3D dwr.engine._errorClasses[errorname]) = return errorname;=0A= }=0A= }=0A= =0A= // Try to find the classname by calling Object.toString() on the object=0A= // and extracting from "[object ]"=0A= if (obj) {=0A= var str =3D Object.prototype.toString.call(obj);=0A= var regexpmatch =3D str.match(/\[object\s+(\w+)/);=0A= if (regexpmatch && regexpmatch.length=3D=3D2) {=0A= return regexpmatch[1];=0A= }=0A= }=0A= =0A= // Supplied argument was probably not an object, but what is better?=0A= return "Object";=0A= };=0A= =0A= /** @private Marshall an object */=0A= dwr.engine._serializeXml =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= var output;=0A= if (window.XMLSerializer) output =3D new = XMLSerializer().serializeToString(data);=0A= else if (data.toXml) output =3D data.toXml;=0A= else output =3D data.innerHTML;=0A= =0A= return "XML:" + encodeURIComponent(output);=0A= };=0A= =0A= /** @private Marshall an array */=0A= dwr.engine._serializeArray =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= if (document.all && !window.opera) {=0A= // Use array joining on IE (fastest)=0A= var buf =3D ["Array:["];=0A= for (var i =3D 0; i < data.length; i++) {=0A= if (i !=3D 0) buf.push(",");=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[i], childName);=0A= buf.push("reference:");=0A= buf.push(childName);=0A= }=0A= buf.push("]");=0A= reply =3D buf.join("");=0A= }=0A= else {=0A= // Use string concat on other browsers (fastest)=0A= var reply =3D "Array:[";=0A= for (var i =3D 0; i < data.length; i++) {=0A= if (i !=3D 0) reply +=3D ",";=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[i], childName);=0A= reply +=3D "reference:";=0A= reply +=3D childName;=0A= }=0A= reply +=3D "]";=0A= }=0A= =0A= return reply;=0A= };=0A= =0A= /** @private Convert an XML string into a DOM object. */=0A= dwr.engine._unserializeDocument =3D function(xml) {=0A= var dom;=0A= if (window.DOMParser) {=0A= var parser =3D new DOMParser();=0A= dom =3D parser.parseFromString(xml, "text/xml");=0A= if (!dom.documentElement || dom.documentElement.tagName =3D=3D = "parsererror") {=0A= var message =3D dom.documentElement.firstChild.data;=0A= message +=3D "\n" + = dom.documentElement.firstChild.nextSibling.firstChild.data;=0A= throw message;=0A= }=0A= return dom;=0A= }=0A= else if (window.ActiveXObject) {=0A= dom =3D dwr.engine._newActiveXObject(dwr.engine._DOMDocument);=0A= dom.loadXML(xml); // What happens on parse fail with IE?=0A= return dom;=0A= }=0A= else {=0A= var div =3D document.createElement("div");=0A= div.innerHTML =3D xml;=0A= return div;=0A= }=0A= };=0A= =0A= /** @param axarray An array of strings to attempt to create ActiveX = objects from */=0A= dwr.engine._newActiveXObject =3D function(axarray) {=0A= var returnValue; =0A= for (var i =3D 0; i < axarray.length; i++) {=0A= try {=0A= returnValue =3D new ActiveXObject(axarray[i]);=0A= break;=0A= }=0A= catch (ex) { /* ignore */ }=0A= }=0A= return returnValue;=0A= };=0A= =0A= /** @private Used internally when some message needs to get to the = programmer */=0A= dwr.engine._debug =3D function(message, stacktrace) {=0A= var written =3D false;=0A= try {=0A= if (window.console) {=0A= if (stacktrace && window.console.trace) window.console.trace();=0A= window.console.log(message);=0A= written =3D true;=0A= }=0A= else if (window.opera && window.opera.postError) {=0A= window.opera.postError(message);=0A= written =3D true;=0A= }=0A= }=0A= catch (ex) { /* ignore */ }=0A= =0A= if (!written) {=0A= var debug =3D document.getElementById("dwr-debug");=0A= if (debug) {=0A= var contents =3D message + "" + debug.innerHTML;=0A= if (contents.length > 2048) contents =3D contents.substring(0, = 2048);=0A= debug.innerHTML =3D contents;=0A= }=0A= }=0A= };=0A= ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/blackboard/content/contentWrapperItem.jsp?course_id=_702465_1&content_id=_2356318_1&displayName=Herodotus&navItem=content&attachment=true =EF=BB=BF Blackboard Learn Current Location Fall 2009 (HS) Wrld Civizatn to 1500 Sec 001 = Course Documents Course Documents Week 3 Herodotus = =20 ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/courses/1/HIS_1000_0909_001/content/_2356318_1/Herodotus.htm Herodotus Herodotus [Note: you might find it helpful to consult the = maps on=20 Mesopotamia and Egypt under Course = Documents as you=20 read Herodotus.] On Babylon and = Mesopotamia: [1.178] Assyria possesses a vast number of great = cities,=20 whereof the most renowned and strongest at this time was Babylon, whither, after the fall of Nineveh, the = seat of=20 government had been removed. The following is a description of the = place:- The=20 city stands on a broad plain, and is an exact square, a hundred and = twenty=20 furlongs in length each way, so that the entire circuit is four hundred = and=20 eighty furlongs. While such is its size, in magnificence there is no = other city=20 that approaches to it. It is surrounded, in the first place, by a broad = and deep=20 moat, full of water, behind which rises a wall fifty royal cubits in = width, and=20 two hundred in height. (The royal cubit is longer by three fingers' = breadth than=20 the common cubit.) [1.179] And here I may not omit to tell the use to = which the=20 mould dug out of the great moat was turned, nor the manner wherein the = wall was=20 wrought. As fast as they dug the moat the soil which they got from the = cutting=20 was made into bricks, and when a sufficient number were completed they = baked the=20 bricks in kilns. Then they set to building, and began with bricking the = borders=20 of the moat, after which they proceeded to construct the wall itself, = using=20 throughout for their cement hot bitumen, and interposing a layer of = wattled=20 reeds at every thirtieth course of the bricks. On the top, along the = edges of=20 the wall, they constructed buildings of a single chamber facing one = another,=20 leaving between them room for a four-horse chariot to turn. In the = circuit of=20 the wall are a hundred gates, all of brass, with brazen lintels and = side-posts.=20 The bitumen used in the work was brought to Babylon from the Is, a small = stream=20 which flows into the Euphrates at the point where the city of the same = name=20 stands, eight days' journey from Babylon. Lumps of bitumen are found in = great=20 abundance in this river. [1.180] The city is divided into two portions by = the river=20 which runs through the midst of it. This river is the Euphrates, a = broad, deep,=20 swift stream, which rises in Armenia, and empties itself = into the=20 Erythraean sea. The city wall is brought down on both sides to the edge = of the=20 stream: thence, from the corners of the wall, there is carried along = each bank=20 of the river a fence of burnt bricks. The houses are mostly three and = four=20 stories high; the streets all run in straight lines, not only those = parallel to=20 the river, but also the cross streets which lead down to the water-side. = At the=20 river end of these cross streets are low gates in the fence that skirts = the=20 stream, which are, like the great gates in the outer wall, of brass, and = open on=20 the water. [1.181] The outer wall is the main defence of the = city. There=20 is, however, a second inner wall, of less thickness than the first, but = very=20 little inferior to it in strength. The centre of each division of the = town was=20 occupied by a fortress. In the one stood the palace of the kings, = surrounded by=20 a wall of great strength and size: in the other was the sacred precinct = of=20 Jupiter Belus, a square enclosure two furlongs each way, with gates of = solid=20 brass; which was also remaining in my time. In the middle of the = precinct there=20 was a tower of solid masonry, a furlong in length and breadth, upon = which was=20 raised a second tower, and on that a third, and so on up to eight. The = ascent to=20 the top is on the outside, by a path which winds round all the towers. = When one=20 is about half-way up, one finds a resting-place and seats, where persons = are=20 wont to sit some time on their way to the summit. On the topmost tower = there is=20 a spacious temple, and inside the temple stands a couch of unusual size, = richly=20 adorned, with a golden table by its side. There is no statue of any kind = set up=20 in the place, nor is the chamber occupied of nights by any one but a = single=20 native woman, who, as the Chaldaeans, the priests of this god, affirm, = is chosen=20 for himself by the deity out of all the women of the land. [1.182] They also declare - but I for my part do = not credit=20 it - that the god comes down in person into this chamber, and sleeps = upon the=20 couch. This is like the story told by the Egyptians of what takes place = in their=20 city of Thebes, where a woman always passes the night in the temple of = the=20 Theban Jupiter. In each case the woman is said to be debarred all = intercourse=20 with men. It is also like the custom of Patara, in Lycia, where the = priestess=20 who delivers the oracles, during the time that she is so employed - for = at=20 Patara there is not always an oracle - is shut up in the temple every = night.=20 [1.183] Below, in the same precinct, there is a = second=20 temple, in which is a sitting figure of Jupiter, all of gold. Before the = figure=20 stands a large golden table, and the throne whereon it sits, and the = base on=20 which the throne is placed, are likewise of gold. The Chaldaeans told me = that=20 all the gold together was eight hundred talents' weight. Outside the = temple are=20 two altars, one of solid gold, on which it is only lawful to offer = sucklings;=20 the other a common altar, but of great size, on which the full-grown = animals are=20 sacrificed. It is also on the great altar that the Chaldaeans burn the=20 frankincense, which is offered to the amount of a thousand talents' = weight,=20 every year, at the festival of the God. In the time of Cyrus there was = likewise=20 in this temple a figure of a man, twelve cubits high, entirely of solid = gold. I=20 myself did not see this figure, but I relate what the Chaldaeans report=20 concerning it. Darius, the son of Hystaspes, plotted to carry the statue = off,=20 but had not the hardihood to lay his hands upon it. Xerxes, however, the = son of=20 Darius, killed the priest who forbade him to move the statue, and took = it away.=20 Besides the ornaments which I have mentioned, there are a large number = of=20 private offerings in this holy precinct. [1.184] Many sovereigns have ruled over this city = of=20 Babylon, and=20 lent their aid to the building of its walls and the adornment of its = temples, of=20 whom I shall make mention in my Assyrian history. Among them two were = women. Of=20 these, the earlier, called Semiramis, held the throne five generations = before=20 the later princess. She raised certain embankments well worthy of = inspection, in=20 the plain near Babylon, to control the river, which, till then, used to=20 overflow, and flood the whole country round about. [1.185] The later of the two queens, whose name was = Nitocris,=20 a wiser princess than her predecessor, not only left behind her, as = memorials of=20 her occupancy of the throne, the works which I shall presently describe, = but=20 also, observing the great power and restless enterprise of the Medes, = who had=20 taken so large a number of cities, and among them Nineveh, and expecting = to be=20 attacked in her turn, made all possible exertions to increase the = defences of=20 her empire. And first, whereas the river Euphrates, which traverses the = city,=20 ran formerly with a straight course to Babylon, she, by certain = excavations=20 which she made at some distance up the stream, rendered it so winding = that it=20 comes three several times in sight of the same village, a village in = Assyria,=20 which is called Ardericea; and to this day, they who would go from our = sea to=20 Babylon, on descending to the river touch three times, and on three = different=20 days, at this very place. She also made an embankment along each side of = the=20 Euphrates, wonderful both for breadth and height, and dug a basin for a = lake a=20 great way above Babylon, close alongside of the stream, which was sunk=20 everywhere to the point where they came to water, and was of such = breadth that=20 the whole circuit measured four hundred and twenty furlongs. The soil = dug out of=20 this basin was made use of in the embankments along the waterside. When = the=20 excavation was finished, she had stones brought, and bordered with them = the=20 entire margin of the reservoir. These two things were done, the river = made to=20 wind, and the lake excavated, that the stream might be slacker by reason = of the=20 number of curves, and the voyage be rendered circuitous, and that at the = end of=20 the voyage it might be necessary to skirt the lake and so make a long = round. All=20 these works were on that side of Babylon where the passes lay, and the = roads=20 into Media were the straightest, and the aim of the queen in making them = was to=20 prevent the Medes from holding intercourse with the Babylonians, and so = to keep=20 them in ignorance of her affairs. [1.186] While the soil from the excavation was = being thus=20 used for the defense of the city, Nitocris engaged also in another = undertaking,=20 a mere by-work compared with those we have already mentioned. The city, = as I=20 said, was divided by the river into two distinct portions. Under the = former=20 kings, if a man wanted to pass from one of these divisions to the other, = he had=20 to cross in a boat; which must, it seems to me, have been very = troublesome.=20 Accordingly, while she was digging the lake, Nitocris thought herself of = turning=20 it to a use which should at once remove this inconvenience, and enable = her to=20 leave another monument of her reign over Babylon. She gave orders for the = hewing of=20 immense blocks of stone, and when they were ready and the basin was = excavated,=20 she turned the entire stream of the Euphrates into the cutting, and thus = for a=20 time, while the basin was filling, the natural channel of the river was = left=20 dry. Forthwith she set to work, and in the first place lined the banks = of the=20 stream within the city with quays of burnt brick, and also bricked the=20 landing-places opposite the river-gates, adopting throughout the same = fashion of=20 brickwork which had been used in the town wall; after which, with the = materials=20 which had been prepared, she built, as near the middle of the town as = possible,=20 a stone bridge, the blocks whereof were bound together with iron and = lead. In=20 the daytime square wooden platforms were laid along from pier to pier, = on which=20 the inhabitants crossed the stream; but at night they were withdrawn, to = prevent=20 people passing from side to side in the dark to commit robberies. When = the river=20 had filled the cutting, and the bridge was finished, the Euphrates was = turned=20 back again into its ancient bed; and thus the basin, transformed = suddenly into a=20 lake, was seen to answer the purpose for which it was made, and the = inhabitants,=20 by help of the basin, obtained the advantage of a bridge. [1.187] It was this same princess by whom a = remarkable=20 deception was planned. She had her tomb constructed in the upper part of = one of=20 the principal gateways of the city, high above the heads of the passers = by, with=20 this inscription cut upon it:- "If there be one among my successors on = the=20 throne of Babylon who is in want of treasure, let him open my tomb, and = take as=20 much as he chooses - not, however, unless he be truly in want, for it = will not=20 be for his good." This tomb continued untouched until Darius came to the = kingdom. To him it seemed a monstrous thing that he should be unable to = use one=20 of the gates of the town, and that a sum of money should be lying idle, = and=20 moreover inviting his grasp, and he not seize upon it. Now he could not = use the=20 gate, because, as he drove through, the dead body would have been over = his head.=20 Accordingly he opened the tomb; but instead of money, found only the = dead body,=20 and a writing which said - "Had you not been insatiate of self, and = careless how=20 you got it, you would not have broken open the sepulchres of the dead." = [1.188] The expedition of Cyrus was undertaken = against the=20 son of this princess, who bore the same name as his father Labynetus, = and was=20 king of the Assyrians. The Great King, when he goes to the wars, is = always=20 supplied with provisions carefully prepared at home, and with cattle of = his own.=20 Water too from the river Choaspes, which flows by Susa, is taken with = him for=20 his drink, as that is the only water which the kings of Persia taste. = Wherever=20 he travels, he is attended by a number of four-wheeled cars drawn by = mules, in=20 which the Choaspes water, ready boiled for use, and stored in flagons of = silver,=20 is moved with him from place to place. [1.189] Cyrus on his way to Babylon came to the = banks of the=20 Gyndes, a stream which, rising in the Matienian mountains, runs through = the=20 country of the Dardanians, and empties itself into the river Tigris. The = Tigris,=20 after receiving the Gyndes, flows on by the city of Opis, and = discharges its=20 waters into the Erythraean sea. When Cyrus reached this stream, which = could only=20 be passed in boats, one of the sacred white horses accompanying his = march, full=20 of spirit and high mettle, walked into the water, and tried to cross by = himself;=20 but the current seized him, swept him along with it, and drowned him in = its=20 depths. Cyrus, enraged at the insolence of the river, threatened so to = break its=20 strength that in future even women should cross it easily without = wetting their=20 knees. Accordingly he put off for a time his attack on Babylon, and, = dividing=20 his army into two parts, he marked out by ropes one hundred and eighty = trenches=20 on each side of the Gyndes, leading off from it in all directions, and = setting=20 his army to dig, some on one side of the river, some on the other, he=20 accomplished his threat by the aid of so great a number of hands, but = not=20 without losing thereby the whole summer season. [1.190] Having, however, thus wreaked his vengeance = on the=20 Gyndes, by dispersing it through three hundred and sixty channels, = Cyrus, with=20 the first approach of the ensuing spring, marched forward against = Babylon. The=20 Babylonians, encamped without their walls, awaited his coming. A battle = was=20 fought at a short distance from the city, in which the Babylonians were = defeated=20 by the Persian king, whereupon they withdrew within their defences. Here = they=20 shut themselves up, and made light of his siege, having laid in a store = of=20 provisions for many years in preparation against this attack; for when = they saw=20 Cyrus conquering nation after nation, they were convinced that he would = never=20 stop, and that their turn would come at last. [1.191] Cyrus was now reduced to great perplexity, = as time=20 went on and he made no progress against the place. In this distress = either some=20 one made the suggestion to him, or he bethought himself of a plan, which = he=20 proceeded to put in execution. He placed a portion of his army at the = point=20 where the river enters the city, and another body at the back of the = place where=20 it issues forth, with orders to march into the town by the bed of the = stream, as=20 soon as the water became shallow enough: he then himself drew off with = the=20 unwarlike portion of his host, and made for the place where Nitocris dug = the=20 basin for the river, where he did exactly what she had done formerly: he = turned=20 the Euphrates by a canal into the basin, which was then a marsh, on = which the=20 river sank to such an extent that the natural bed of the stream became = fordable.=20 Hereupon the Persians who had been left for the purpose at Babylon by = the,=20 river-side, entered the stream, which had now sunk so as to reach about = midway=20 up a man's thigh, and thus got into the town. Had the Babylonians been = apprised=20 of what Cyrus was about, or had they noticed their danger, they would = never have=20 allowed the Persians to enter the city, but would have destroyed them = utterly;=20 for they would have made fast all the street-gates which gave upon the = river,=20 and mounting upon the walls along both sides of the stream, would so = have caught=20 the enemy, as it were, in a trap. But, as it was, the Persians came upon = them by=20 surprise and so took the city. Owing to the vast size of the place, the=20 inhabitants of the central parts (as the residents at Babylon declare) = long=20 after the outer portions of the town were taken, knew nothing of what = had=20 chanced, but as they were engaged in a festival, continued dancing and = revelling=20 until they learnt the capture but too certainly. Such, then, were the=20 circumstances of the first taking of Babylon. [1.192] Among many proofs which I shall bring = forward of the=20 power and resources of the Babylonians, the following is of special = account. The=20 whole country under the dominion of the Persians, besides paying a fixed = tribute, is parcelled out into divisions, which have to supply food to = the Great=20 King and his army during different portions of the year. Now out of the = twelve=20 months which go to a year, the district of Babylon furnishes food during = four,=20 the other of Asia during eight; by which it appears that Assyria, in = respect of=20 resources, is one-third of the whole of Asia.=20 Of all the Persian governments, or satrapies as they are called by the = natives,=20 this is by far the best. When Tritantaechmes, son of Artabazus, held it = of the=20 king, it brought him in an artaba of silver every day. The artaba is a = Persian=20 measure, and holds three choenixes more than the medimnus of the = Athenians. He=20 also had, belonging to his own private stud, besides war horses, eight = hundred=20 stallions and sixteen thousand mares, twenty to each stallion. Besides = which he=20 kept so great a number of Indian hounds, that four large villages of the = plain=20 were exempted from all other charges on condition of finding them food. = [1.193] But little rain falls in Assyria, enough, = however, to=20 make the grain begin to sprout, after which the plant is nourished and = the ears=20 formed by means of irrigation from the river. For the river does not, as = in=20 Egypt, overflow the = grain-lands of=20 its own accord, but is spread over them by the hand, or by the help of = engines.=20 The whole of Babylonia is, like Egypt, intersected with canals. The = largest of=20 them all, which runs towards the winter sun, and is impassable except in = boats,=20 is carried from the Euphrates into another stream, called the Tigris, = the river=20 upon which the town of Nineveh formerly stood. Of all the = countries=20 that we know there is none which is so fruitful in grain. It makes no = pretension=20 indeed of growing the fig, the olive, the vine, or any other tree of the = kind;=20 but in grain it is so fruitful as to yield commonly two-hundred-fold, = and when=20 the production is the greatest, even three-hundred-fold. The blade of = the=20 wheat-plant and barley-plant is often four fingers in breadth. As for = the millet=20 and the sesame, I shall not say to what height they grow, though within = my own=20 knowledge; for I am not ignorant that what I have already written = concerning the=20 fruitfulness of Babylonia must seem incredible to those who have never = visited=20 the country. The only oil they use is made from the sesame-plant. = Palm-trees=20 grow in great numbers over the whole of the flat country, mostly of the = kind=20 which bears fruit, and this fruit supplies them with bread, wine, and = honey.=20 They are cultivated like the fig-tree in all respects, among others in = this. The=20 natives tie the fruit of the male-palms, as they are called by the = Greeks, to=20 the branches of the date-bearing palm, to let the gall-fly enter the = dates and=20 ripen them, and to prevent the fruit from falling off. The male-palms, = like the=20 wild fig-trees, have usually the gall-fly in their fruit. [1.194] But that which surprises me most in the = land, after=20 the city itself, I will now proceed to mention. The boats which come = down the=20 river to Babylon are circular, and made of skins. The frames, which are = of=20 willow, are cut in the country of the Armenians above Assyria, and on = these,=20 which serve for hulls, a covering of skins is stretched outside, and = thus the=20 boats are made, without either stem or stern, quite round like a shield. = They=20 are then entirely filled with straw, and their cargo is put on board, = after=20 which they are suffered to float down the stream. Their chief freight is = wine,=20 stored in casks made of the wood of the palm-tree. They are managed by = two men=20 who stand upright in them, each plying an oar, one pulling and the other = pushing. The boats are of various sizes, some larger, some smaller; the = biggest=20 reach as high as five thousand talents' burden. Each vessel has a live = ass on=20 board; those of larger size have more than one. When they reach Babylon, = the=20 cargo is landed and offered for sale; after which the men break up their = boats,=20 sell the straw and the frames, and loading their asses with the skins, = set off=20 on their way back to Armenia. The current is too strong to allow a boat = to=20 return upstream, for which reason they make their boats of skins rather = than=20 wood. On their return to Armenia they build fresh boats for the next = voyage.=20 [1.195] The dress of the Babylonians is a linen = tunic=20 reaching to the feet, and above it another tunic made in wool, besides = which=20 they have a short white cloak thrown round them, and shoes of a peculiar = fashion, not unlike those worn by the Boeotians. They have long hair, = wear=20 turbans on their heads, and anoint their whole body with perfumes. Every = one=20 carries a seal, and a walking-stick, carved at the top into the form of = an=20 apple, a rose, a lily, an eagle, or something similar; for it is not = their habit=20 to use a stick without an ornament. [1.196] Of their customs, whereof I shall now = proceed to give=20 an account, the following (which I understand belongs to them in common = with the=20 Illyrian tribe of the Eneti) is the wisest in my judgment. Once a year = in each=20 village the maidens of age to marry were collected all together into one = place;=20 while the men stood round them in a circle. Then a herald called up the = damsels=20 one by one, and offered them for sale. He began with the most beautiful. = When=20 she was sold for no small sum of money, he offered for sale the one who = came=20 next to her in beauty. All of them were sold to be wives. The richest of = the=20 Babylonians who wished to wed bid against each other for the loveliest = maidens,=20 while the humbler wife-seekers, who were indifferent about beauty, took = the more=20 homely damsels with marriage-portions. For the custom was that when the = herald=20 had gone through the whole number of the beautiful damsels, he should = then call=20 up the ugliest - a cripple, if there chanced to be one - and offer her = to the=20 men, asking who would agree to take her with the smallest = marriage-portion [i.e.=20 in these cases the man was paid to take the woman]. And the man who was = offered=20 the smallest sum had her assigned to him. The marriage-portions were = furnished=20 by the money paid for the beautiful damsels, and thus the fairer maidens = portioned out the uglier. No one was allowed to give his daughter in = marriage to=20 the man of his choice, nor might any one carry away the damsel whom he = had=20 purchased without finding bail really and truly to make her his wife; = if,=20 however, it turned out that they did not agree, the money might be paid = back.=20 All who liked might come even from distant villages and bid for the = women. This=20 was the best of all their customs, but it has now fallen into disuse. = They have=20 lately hit upon a very different plan to save their maidens from = violence, and=20 prevent their being torn from them and carried to distant cities, which = is to=20 bring up their daughters to be courtesans. This is now done by all the = poorer of=20 the common people, who since the conquest have been maltreated by their = lords,=20 and have had ruin brought upon their families. [1.197] The following custom seems to me the wisest = of their=20 institutions next to the one lately praised. They have no physicians, = but when a=20 man is ill, they lay him in the public square, and the passers-by come = up to=20 him, and if they have ever had his disease themselves or have known any = one who=20 has suffered from it, they give him advice, recommending him to do = whatever they=20 found good in their own case, or in the case known to them; and no one = is=20 allowed to pass the sick man in silence without asking him what his = ailment is.=20 [1.198] They bury their dead in honey, and have = funeral=20 lamentations like the Egyptians. When a Babylonian has consorted with = his wife,=20 he sits down before a censer of burning incense, and the woman sits = opposite to=20 him. At dawn of day they wash; for till they are washed they will not = touch any=20 of their common vessels. This practice is observed also by the Arabians. = [1.199] The Babylonians have one most shameful = custom. Every=20 woman born in the country must once in her life go and sit down in the = precinct=20 of Venus, and there consort with a stranger. Many of the wealthier sort, = who are=20 too proud to mix with the others, drive in covered carriages to the = precinct,=20 followed by a goodly train of attendants, and there take their station. = But the=20 larger number seat themselves within the holy enclosure with wreaths of = string=20 about their heads - and here there is always a great crowd, some coming = and=20 others going; lines of cord mark out paths in all directions the women, = and the=20 strangers pass along them to make their choice. A woman who has once = taken her=20 seat is not allowed to return home till one of the strangers throws a = silver=20 coin into her lap, and takes her with him beyond the holy ground. When = he throws=20 the coin he says these words - "The goddess Mylitta prosper thee." = (Venus is=20 called Mylitta by the Assyrians.) The silver coin may be of any size; it = cannot=20 be refused, for that is forbidden by the law, since once thrown it is = sacred.=20 The woman goes with the first man who throws her money, and rejects no = one. When=20 she has gone with him, and so satisfied the goddess, she returns home, = and from=20 that time forth no gift however great will prevail with her. Such of the = women=20 as are tall and beautiful are soon released, but others who are ugly = have to=20 stay a long time before they can fulfil the law. Some have waited three = or four=20 years in the precinct. A custom very much like this is found also in = certain=20 parts of the island of Cyprus. [1.200] Such are the customs of the Babylonians = generally.=20 There are likewise three tribes among them who eat nothing but fish. = These are=20 caught and dried in the sun, after which they are brayed in a mortar, = and=20 strained through a linen sieve. Some prefer to make cakes of this = material,=20 while others bake it into a kind of bread. On Egypt: [2.2] Now the Egyptians, before the reign of their = king=20 Psammetichus, believed themselves to be the most ancient of mankind. = Since=20 Psammetichus, however, made an attempt to discover who were actually the = primitive race, the Egyptians have been of opinion that while they = surpass all=20 other nations, the Phrygians surpass them in antiquity. This king, = finding it=20 impossible to make out by dint of inquiry what men were the most = ancient,=20 contrived the following method of discovery:- He took two children of = the common=20 sort, and gave them over to a herdsman to bring up at his folds, = strictly=20 charging him to let no one utter a word in their presence, but to keep = them in a=20 sequestered cottage, and from time to time introduce goats to their = apartment,=20 see that they got their fill of milk, and in all other respects look = after them.=20 His object herein was to know, after the indistinct babblings of infancy = were=20 over, what word they would first articulate. It happened as he had = anticipated.=20 The herdsman obeyed his orders for two years, and at the end of that = time, on=20 his one day opening the door of their room and going in, the children = both ran=20 up to him with outstretched arms, and distinctly said "Becos." When this = first=20 happened the herdsman took no notice; but afterwards when he observed, = on coming=20 often to see after them, that the word was constantly in their mouths, = he=20 informed his lord, and by his command brought the children into his = presence.=20 Psammetichus then himself heard them say the word, upon which he = proceeded to=20 make inquiry what people there was who called anything "becos," and = hereupon he=20 learnt that "becos" was the Phrygian name for bread. In consideration of = this=20 circumstance the Egyptians yielded their claims, and admitted the = greater=20 antiquity of the Phrygians. [2.3] That these were the real facts I learnt at = Memphis from = the priests of=20 Vulcan. The Greeks, among other foolish tales, relate that Psammetichus = had the=20 children brought up by women whose tongues he had previously cut out; = but the=20 priests said their bringing up was such as I have stated above. I got = much other=20 information also from conversation with these priests while I was at = Memphis,=20 and I even went to Heliopolis and to Thebes, expressly to try whether = the=20 priests of those places would agree in their accounts with the priests = at=20 Memphis. The Heliopolitans have the reputation of being the best skilled = in=20 history of all the Egyptians. What they told me concerning their = religion it is=20 not my intention to repeat, except the names of their deities, which I = believe=20 all men know equally. If I relate anything else concerning these = matters, it=20 will only be when compelled to do so by the course of my narrative. [2.4] Now with regard to mere human matters, the = accounts=20 which they gave, and in which all agreed, were the following. The = Egyptians,=20 they said, were the first to discover the solar year, and to portion out = its=20 course into twelve parts. They obtained this knowledge from the stars. = (To my=20 mind they contrive their year much more cleverly than the Greeks, for = these last=20 every other year intercalate a whole month, but the Egyptians, dividing = the year=20 into twelve months of thirty days each, add every year a space of five = days=20 besides, whereby the circuit of the seasons is made to return with = uniformity.)=20 The Egyptians, they went on to affirm, first brought into use the names = of the=20 twelve gods, which the Greeks adopted from them; and first erected = altars,=20 images, and temples to the gods; and also first engraved upon stone the = figures=20 of animals. In most of these cases they proved to me that what they said = was=20 true. And they told me that the first man who ruled over Egypt was Min, = and that=20 in his time all Egypt, except the Thebaic canton, was a marsh, none of = the land=20 below Lake Moeris then showing itself above the surface of the water. = This is a=20 distance of seven days' sail from the sea up the river. [2.5] What they said of their country seemed to me = very=20 reasonable. For any one who sees Egypt, without having heard a word = about it=20 before, must perceive, if he has only common powers of observation, that = the=20 Egypt to which the Greeks go in their ships is an acquired country, the = gift of=20 the river. The same is true of the land above the lake, to the distance = of three=20 days' voyage, concerning which the Egyptians say nothing, but which = exactly the=20 same kind of country. The following is the general character of the = region. In the=20 first place, on approaching it by sea, when you are still a day's sail = from the=20 land, if you let down a sounding-line you will bring up mud, and find = yourself=20 in eleven fathoms' water, which shows that the soil washed down by the = stream=20 extends to that distance. [2.6] The length of the country along shore, = according to the=20 bounds that we assign to Egypt, namely from the Plinthinetic = gulf to=20 Lake Serbonis, which extends along the base of = Mount = Casius, is sixty schoenes. The = nations=20 whose territories are scanty measure them by the fathom; those whose = bounds are=20 less confined, by the furlong; those who have an ample territory, by the = parasang; but if men have a country which is very vast, they measure it = by the=20 schoene. Now the length of the parasang is thirty furlongs, but the = schoene,=20 which is an Egyptian measure, is sixty furlongs. Thus the coastline of = Egypt=20 would extend a length of three thousand six hundred furlongs. [2.7] From the coast inland as far as Heliopolis the breadth of Egypt=20 is considerable, the country is flat, without springs, and full of = swamps. The=20 length of the route from the sea up to Heliopolis is almost exactly the = same as=20 that of the road which runs from the altar of the twelve gods at Athens = to the=20 temple of Olympian Jove at Pisa. If a person made a calculation he would = find=20 but a very little difference between the two routes, not more than about = fifteen=20 furlongs; for the road from Athens to Pisa falls short of fifteen = hundred=20 furlongs by exactly fifteen, whereas the distance of Heliopolis from the = sea is=20 just the round number. [2.8] As one proceeds beyond Heliopolis up the country, Egypt=20 becomes narrow, the Arabian range of hills, which has a direction from = north to=20 south, shutting it in upon the one side, and the Libyan range upon the = other.=20 The former ridge runs on without a break, and stretches away to the sea = called=20 the Erythraean; it contains the quarries whence the stone was cut for = the=20 pyramids of Memphis: and this is the point where it ceases its first = direction,=20 and bends away in the manner above indicated. In its greatest length = from east=20 to west it is, as I have been informed, a distance of two months' = journey=20 towards the extreme east its skirts produce frankincense. Such are the = chief=20 features of this range. On the Libyan side, the other ridge whereon the = pyramids=20 stand is rocky and covered with sand; its direction is the same as that = of the=20 Arabian ridge in the first part of its course. Above Heliopolis, then, = there is=20 no great breadth of territory for such a country as Egypt, but during = four days'=20 sail Egypt is narrow; the valley between the two ranges is a level = plain, and=20 seemed to me to be, at the narrowest point, not more than two hundred = furlongs=20 across from the Arabian to the Libyan hills. Above this point Egypt = again=20 widens. [2.9] From Heliopolis to Thebes is nine days' sail = up the=20 river; the distance is eighty-one schoenes, or 4860 furlongs. If we now = put=20 together the several measurements of the country we shall find that the = distance=20 along shore is, as I stated above, 3600 furlongs, and the distance from = the sea=20 inland to Thebes 6120 furlongs. Further, it is a distance of eighteen = hundred=20 furlongs from Thebes to the place called Elephantine. [2.10] The greater portion of the country above = described=20 seemed to me to be, as the priests declared, a tract gained by the = inhabitants.=20 For the whole region above Memphis, lying between the two ranges = of hills=20 that have been spoken of, appeared evidently to have formed at one time = a gulf=20 of the sea. It resembles (to compare small things with great) the parts = about=20 Ilium and Teuthrania, Ephesus, and the plain of the Maeander. In all = these=20 regions the land has been formed by rivers, whereof the greatest is not = to=20 compare for size with any one of the five mouths of the Nile. I could = mention=20 other rivers also, far inferior to the Nile in=20 magnitude, that have effected very great changes. Among these not the = least is=20 the Achelous, which, after passing through Acarnania, empties itself = into the=20 sea opposite the islands called Echinades, and has already joined = one-half of=20 them to the continent. [2.11] In Arabia, not far from Egypt, there is a long and narrow gulf = running=20 inland from the sea called the Erythraean [i.e. the Red=20 Sea], of which I will here set down the dimensions. Starting = from=20 its innermost recess, and using a row-boat, you take forty days to reach = the=20 open main, while you may cross the gulf at its widest part in the space = of half=20 a day. In this sea there is an ebb and flow of the tide every day. My = opinion is=20 that Egypt was formerly very much such a gulf as this - one gulf = penetrated from=20 the sea that washes Egypt on the north, and extended itself towards = Ethiopia;=20 another entered from the southern ocean, and stretched towards Syria; = the two=20 gulfs ran into the land so as almost to meet each other, and left = between them=20 only a very narrow tract of country. Now if the Nile should choose to = divert his=20 waters from their present bed into this Arabian=20 gulf, what is there to hinder it from being filled up by the = stream=20 within, at the utmost, twenty thousand years? For my part, I think it = would be=20 filled in half the time. How then should not a gulf, even of much = greater size,=20 have been filled up in the ages that passed before I was born, by a = river that=20 is at once so large and so given to working changes? [2.12] Thus I give credit to those from whom I = received this=20 account of Egypt, and am myself, moreover, strongly of the same opinion, = since I=20 remarked that the country projects into the sea further than the = neighbouring=20 shores, and I observed that there were shells upon the hills, and that = salt=20 exuded from the soil to such an extent as even to injure the pyramids; = and I=20 noticed also that there is but a single hill in all Egypt where sand is = found,=20 namely, the hill above Memphis; and further, I found the country to bear = no=20 resemblance either to its borderland Arabia, or to Libya - nay, nor even = to=20 Syria, which forms the seaboard of Arabia; but whereas the soil of Libya = is, we=20 know, sandy and of a reddish hue, and that of Arabia and Syria inclines = to stone=20 and clay, Egypt has a soil that is black and crumbly, as being alluvial = and=20 formed of the deposits brought down by the river from Ethiopia. [2.13] One fact which I learnt of the priests is to = me a=20 strong evidence of the origin of the country. They said that when Moeris = was=20 king, the Nile overflowed all Egypt below Memphis, as soon as it rose so = little=20 as eight cubits. Now Moeris had not been dead 900 years at the time when = I heard=20 this of the priests; yet at the present day, unless the river rise = sixteen, or,=20 at the very least, fifteen cubits, it does not overflow the lands. It = seems to=20 me, therefore, that if the land goes on rising and growing at this rate, = the=20 Egyptians who dwell below Lake Moeris, in the Delta (as it is called) = and=20 elsewhere, will one day, by the stoppage of the inundations, suffer = permanently=20 the fate which they told me they expected would some time or other = befall the=20 Greeks. On hearing that the whole land of Greece is watered by rain from = heaven,=20 and not, like their own, inundated by rivers, they observed - "Some day = the=20 Greeks will be disappointed of their grand hope, and then they will be=20 wretchedly hungry"; which was as much as to say, "If God shall some day = see fit=20 not to grant the Greeks rain, but shall afflict them with a long = drought, the=20 Greeks will be swept away by a famine, since they have nothing to rely = on but=20 rain from Jove, and have no other resource for water." [2.14] And in thus speaking of the Greeks the = Egyptians say=20 nothing but what is true. But now let me tell the Egyptians how the case = stands=20 with themselves. If, as I said before, the country below Memphis, which = is the=20 land that is always rising, continues to increase in height at the rate = at which=20 it has risen in times gone by, how will it be possible for the = inhabitants of=20 that region to avoid hunger, when they will certainly have no rain, and = the=20 river will not be able to overflow their cornlands? At present, it must = be=20 confessed, they obtain the fruits of the field with less trouble than = any other=20 people in the world, the rest of the Egyptians included, since they have = no need=20 to break up the ground with the plough, nor to use the hoe, nor to do = any of the=20 work which the rest of mankind find necessary if they are to get a crop; = but the=20 husbandman waits till the river has of its own accord spread itself over = the=20 fields and withdrawn again to its bed, and then sows his plot of ground, = and=20 after sowing turns his swine into it - the swine tread in the corn - = after which=20 he has only to await the harvest. The swine serve him also to thrash the = grain,=20 which is then carried to the garner. [2.15] If then we choose to adopt the views of the = Ionians=20 concerning Egypt, we must come to the conclusion that the Egyptians had = formerly=20 no country at all. For the Ionians say that nothing is really Egypt but = the=20 Delta, which extends along shore from the Watch-tower of Perseus, as it = is=20 called, to the Pelusiac Salt-Pans, a distance of forty schoenes, and = stretches=20 inland as far as the city of Cercasorus, where the Nile divides into the = two=20 streams which reach the sea at Pelusium and Canobus respectively. The = rest of=20 what is accounted Egypt belongs, they say, either to Arabia or Libya. = But the=20 Delta, as the Egyptians affirm, and as I myself am persuaded, is formed = of the=20 deposits of the river, and has only recently, if I may use the = expression, come=20 to light. If, then, they had formerly no territory at all, how came they = to be=20 so extravagant as to fancy themselves the most ancient race in the = world? Surely=20 there was no need of their making the experiment with the children to = see what=20 language they would first speak. But in truth I do not believe that the=20 Egyptians came into being at the same time with the Delta, as the = Ionians call=20 it; I think they have always existed ever since the human race began; as = the=20 land went on increasing, part of the population came down into the new = country,=20 part remained in their old settlements. In ancient times the Thebais = bore the=20 name of Egypt, a district of which the entire circumference is but 6120=20 furlongs. [2.16] If, then, my judgment on these matters be = right, the=20 Ionians are mistaken in what they say of Egypt.=20 If, on the contrary, it is they who are right, then I undertake to show = that=20 neither the Ionians nor any of the other Greeks know how to count. For = they all=20 say that the earth is divided into three parts, Europe, Asia, and Libya, = whereas=20 they ought to add a fourth part, the Delta of Egypt, since they do not = include=20 it either in Asia or Libya. For is it not their theory that the Nile = separates=20 Asia from Libya? As the Nile, therefore, splits in two at the apex of = the Delta,=20 the Delta itself must be a separate country, not contained in either = Asia or=20 Libya. [2.17] Here I take my leave of the opinions of the = Ionians,=20 and proceed to deliver my own sentiments on these subjects. I consider = Egypt to=20 be the whole country inhabited by the Egyptians, just as Cilicia is the = tract=20 occupied by the Cilicians, and Assyria that possessed by the Assyrians. = And I=20 regard the only proper boundary-line between Libya and Asia to be that = which is=20 marked out by the Egyptian frontier. For if we take the boundary-line = commonly=20 received by the Greeks, we must regard Egypt as divided, along its whole = length=20 from Elephantine and the Cataracts to Cercasorus, into two parts, each = belonging=20 to a different portion of the world, one to Asia, the other to Libya; = since the=20 Nile divides Egypt in two from the Cataracts to the sea, running as far = as the=20 city of Cercasorus in a single stream, but at that point separating into = three=20 branches, whereof the one which bends eastward is called the Pelusiac = mouth, and=20 that which slants to the west, the Canobic. Meanwhile the straight = course of the=20 stream, which comes down from the upper country and meets the apex of = the Delta,=20 continues on, dividing the Delta down the middle, and empties itself = into the=20 sea by a mouth, which is as celebrated, and carries as large a body of = water, as=20 most of the others, the mouth called the Sebennytic. Besides these there = are two=20 other mouths which run out of the Sebennytic called respectively the = Saitic and=20 the Mendesian. The Bolbitine mouth, and the Bucolic, are not natural = branches,=20 but channels made by excavation. [2.18] My judgment as to the extent of Egypt is = confirmed by=20 an oracle delivered at the shrine of Ammon, of which I had no knowledge = at all=20 until after I had formed my opinion. It happened that the people of the = cities=20 Marea and Apis, who live in the part of Egypt that borders on Libya, = took a=20 dislike to the religious usages of the country concerning sacrificial = animals,=20 and wished no longer to be restricted from eating the flesh of cows. So, = as they=20 believed themselves to be Libyans and not Egyptians, they sent to the = shrine to=20 say that, having nothing in common with the Egyptians, neither = inhabiting the=20 Delta nor using the Egyptian tongue, they claimed to be allowed to eat = whatever=20 they pleased. Their request, however, was refused by the god, who = declared in=20 reply that Egypt was the entire tract of country which the Nile = overspreads and=20 irrigates, and the Egyptians were the people who lived below = Elephantine, and=20 drank the waters of that river. [2.19] So said the oracle. Now the Nile, when it = overflows,=20 floods not only the Delta, but also the tracts of country on both sides = the=20 stream which are thought to belong to Libya and Arabia, in some places = reaching=20 to the extent of two days' journey from its banks, in some even = exceeding that=20 distance, but in others falling short of it. Concerning the nature of the river, I was not able = to gain=20 any information either from the priests or from others. I was = particularly=20 anxious to learn from them why the Nile, at the commencement of the = summer=20 solstice, begins to rise, and continues to increase for a hundred days - = and=20 why, as soon as that number is past, it forthwith retires and contracts = its=20 stream, continuing low during the whole of the winter until the summer = solstice=20 comes round again. On none of these points could I obtain any = explanation from=20 the inhabitants, though I made every inquiry, wishing to know what was = commonly=20 reported - they could neither tell me what special virtue the Nile has = which=20 makes it so opposite in its nature to all other streams, nor why, unlike = every=20 other river, it gives forth no breezes from its surface. [2.20] Some of the Greeks, however, wishing to get = a=20 reputation for cleverness, have offered explanations of the phenomena of = the=20 river, for which they have accounted in three different ways. Two of = these I do=20 not think it worth while to speak of, further than simply to mention = what they=20 are. One pretends that the Etesian winds cause the rise of the river by=20 preventing the Nile-water from running off into the sea. But in the = first place=20 it has often happened, when the Etesian winds did not blow, that the = Nile has=20 risen according to its usual wont; and further, if the Etesian winds = produced=20 the effect, the other rivers which flow in a direction opposite to those = winds=20 ought to present the same phenomena as the Nile, and the more so as they = are all=20 smaller streams, and have a weaker current. But these rivers, of which = there are=20 many both in Syria and Libya, are entirely unlike the Nile in this = respect. [2.21] The second opinion is even more unscientific = than the=20 one just mentioned, and also, if I may so say, more marvellous. It is = that the=20 Nile acts so strangely, because it flows from the ocean, and that the = ocean=20 flows all round the earth. [2.22] The third explanation, which is very much = more=20 plausible than either of the others, is positively the furthest from the = truth;=20 for there is really nothing in what it says, any more than in the other=20 theories. It is, that the inundation of the Nile is caused by the melting of snows. Now, as = the Nile=20 flows out of Libya, through Ethiopia, into Egypt, how is it possible = that it can=20 be formed of melted snow, running, as it does, from the hottest regions = of the=20 world into cooler countries? Many are the proofs whereby any one capable = of=20 reasoning on the subject may be convinced that it is most unlikely this = should=20 be the case. The first and strongest argument is furnished by the winds, = which=20 always blow hot from these regions. The second is that rain and frost = are=20 unknown there. Now whenever snow falls, it must of necessity rain within = five=20 days;.so that, if there were snow, there must be rain also in those = parts.=20 Thirdly, it is certain that the natives of the country are black with = the heat,=20 that the kites and the swallows remain there the whole year, and that = the=20 cranes, when they fly from the rigours of a Scythian winter, flock = thither to=20 pass the cold season. If then, in the country whence the Nile has its = source, or=20 in that through which it flows, there fell ever so little snow, it is = absolutely=20 impossible that any of these circumstances could take place. [2.23] As for the writer who attributes the = phenomenon to the=20 ocean, his account is involved in such obscurity that it is impossible = to=20 disprove it by argument. For my part I know of no river called Ocean, = and I=20 think that Homer, or one of the earlier poets, invented the name, and = introduced=20 it into his poetry. [2.24] Perhaps, after censuring all the opinions = that have=20 been put forward on this obscure subject, one ought to propose some = theory of=20 one's own. I will therefore proceed to explain what I think to be the = reason of=20 the Nile's swelling in the summer time. During the winter, the sun is = driven out=20 of his usual course by the storms, and removes to the upper parts of = Libya. This=20 is the whole secret in the fewest possible words; for it stands to = reason that=20 the country to which the Sun-god approaches the nearest, and which he = passes=20 most directly over, will be scantest of water, and that there the = streams which=20 feed the rivers will shrink the most. [2.25] To explain, however, more at length, the = case is this.=20 The sun, in his passage across the upper parts of Libya, affects them in = the=20 following way. As the air in those regions is constantly clear, and the = country=20 warm through the absence of cold winds, the sun in his passage across = them acts=20 upon them exactly as he wont to act elsewhere in summer, when his path = is in the=20 middle of heaven - that is, he attracts the water. After attracting it, = he again=20 repels it into the upper regions, where the winds lay hold of it, = scatter it,=20 and reduce it to a vapour, whence it naturally enough comes to pass that = the=20 winds which blow from this quarter - the south and south-west - are of = all winds=20 the most rainy. And my own opinion is that the sun does not get rid of = all the=20 water which he draws year by year from the Nile, but retains some about = him.=20 When the winter begins to soften, the sun goes back again to his old = place in=20 the middle of the heaven, and proceeds to attract water equally from all = countries. Till then the other rivers run big, from the quantity of = rain-water=20 which they bring down from countries where so much moisture falls that = all the=20 land is cut into gullies; but in summer, when the showers fail, and the = sun=20 attracts their water, they become low. The Nile, on the contrary, not deriving any of its = bulk from=20 rains, and being in winter subject to the attraction of the sun, = naturally runs=20 at that season, unlike all other streams, with a less burden of water = than in=20 the summer time. For in summer it is exposed to attraction equally with = all=20 other rivers, but in winter it suffers alone. The sun, therefore, I = regard as=20 the sole cause of the phenomenon. [2.26] It is the sun also, in my opinion, which, by = heating=20 the space through which it passes, makes the air in Egypt=20 so dry. There is thus perpetual summer in the upper parts of Libya. Were = the=20 position of the heavenly regions reversed, so that the place where now = the north=20 wind and the winter have their dwelling became the station of the south = wind and=20 of the noon-day, while, on the other hand, the station of the south wind = became=20 that of the north, the consequence would be that the sun, driven from = the=20 mid-heaven by the winter and the northern gales, would betake himself to = the=20 upper parts of Europe, as he now does to those of Libya, and then I = believe his=20 passage across Europe would affect the Ister exactly as the Nile is = affected at=20 the present day. [2.27] And with respect to the fact that no breeze = blows from=20 the Nile, I am of opinion that no = wind is=20 likely to arise in very hot countries, for breezes love to blow from = some cold=20 quarter. [2.28] Let us leave these things, however, to their = natural=20 course, to continue as they are and have been from the beginning. With = regard to=20 the sources of the Nile, I have found no one among all those with whom I = have=20 conversed, whether Egyptians, Libyans, or Greeks, who professed to have = any=20 knowledge, except a single person. He was the scribe who kept the = register of=20 the sacred treasures of Minerva in the city of Sais, and he did not seem = to me=20 to be in earnest when he said that he knew them perfectly well. His = story was as=20 follows:- "Between Syene, a city of the Thebais, and Elephantine, there are" (he said) "two hills = with sharp=20 conical tops; the name of the one is Crophi, of the other, Mophi. Midway = between=20 them are the fountains of the Nile, fountains which it is impossible to = fathom.=20 Half the water runs northward into Egypt, half to the south towards = Ethiopia."=20 The fountains were known to be unfathomable, he declared, because = Psammetichus,=20 an Egyptian king, had made trial of them. He had caused a rope to be = made, many=20 thousand fathoms in length, and had sounded the fountain with it, but = could find=20 no bottom. By this the scribe gave me to understand, if there was any = truth at=20 all in what he said, that in this fountain there are certain strong = eddies, and=20 a regurgitation, owing to the force wherewith the water dashes against = the=20 mountains, and hence a Sounding-line cannot be got to reach the bottom = of the=20 spring. [2.29] No other information on this could I obtain = from any=20 quarter. All that I succeeded in learning further of the more distant = portions=20 of the Nile, by ascending myself as high as Elephantine and making = inquiries=20 concerning the parts beyond, was the following:- As one advances beyond=20 Elephantine, the land rises. Hence it = is=20 necessary in this part of the river to attach a rope to the boat on each = side,=20 as men harness an ox, and so proceed on the journey. If the rope snaps, = the=20 vessel is borne away down stream by the force of the current. The = navigation=20 continues the same for four days, the river winding greatly, like the = Maeander,=20 and the distance traversed amounting to twelve schoenes. Here you come = upon a=20 smooth and level plain, where the Nile flows in two branches, round an = island=20 called Tachompso. The country above Elephantine=20 is inhabited by the Ethiopians, who possess one-half of this island, the = Egyptians occupying the other. Above the island there is a great lake, = the=20 shores of which are inhabited by Ethiopian nomads; after passing it, you = come=20 again to the stream of the Nile, which runs into the lake. Here you = land, and=20 travel for forty days along the banks of the river, since it is = impossible to=20 proceed further in a boat on account of the sharp peaks which jut out = from the=20 water, and the sunken rocks which abound in that part of the stream. = When you=20 have passed this portion of the river in the space of forty days, you go = on=20 board another boat and proceed by water for twelve days more, at the end = of=20 which time you reach a great city called Meroe, which is said to be the = capital=20 of the other Ethiopians. The only gods worshipped by the inhabitants are = Jupiter=20 and Bacchus, to whom great honours are paid. There is an oracle of = Jupiter in=20 the city, which directs the warlike expeditions of the Ethiopians; when = it=20 commands they go to war, and in whatever direction it bids them march, = thither=20 straightway they carry their arms. [2.30] On leaving this city, and again mounting the = stream,=20 in the same space of time which it took you to reach the capital from=20 Elephantine, you come to the Deserters, who bear the name of Asmach. = This word,=20 translated into our language, means "the men who stand on the left hand = of the=20 king." These Deserters are Egyptians of the warrior caste, who, to the = number of=20 two hundred and forty thousand, went over to the Ethiopians in the reign = of king=20 Psammetichus. The cause of their desertion was the following:- Three = garrisons=20 were maintained in Egypt at=20 that time, one in the city of Elephantine against the Ethiopians, = another in=20 the Pelusiac Daphnae, against the Syrians and Arabians, and a third, = against the=20 Libyans, in Marea. (The very same posts are to this day occupied by the=20 Persians, whose forces are in garrison both in Daphnae and in = Elephantine.) Now=20 it happened, that on one occasion the garrisons were not relieved during = the=20 space of three years; the soldiers, therefore, at the end of that time,=20 consulted together, and having determined by common consent to revolt, = marched=20 away towards Ethiopia. Psammetichus, informed of the movement, set out = in=20 pursuit, and coming up with them, besought them with many words not to = desert=20 the gods of their country, nor abandon their wives and children. "Nay, = but,"=20 said one of the deserters with an unseemly gesture, "wherever we go, we = are sure=20 enough of finding wives and children." Arrived in Ethiopia, they placed=20 themselves at the disposal of the king. In return, he made them a = present of a=20 tract of land which belonged to certain Ethiopians with whom he was at = feud,=20 bidding them expel the inhabitants and take possession of their = territory. From=20 the time that this settlement was formed, their acquaintance with = Egyptian=20 manners has tended to civilise the Ethiopians. [2.31] Thus the course of the Nile is known, not = only=20 throughout Egypt, but to the extent of four months' journey either by = land or=20 water above the Egyptian boundary; for on calculation it will be found = that it=20 takes that length of time to travel from Elephantine to the country of = the=20 Deserters. There the direction of the river is from west to east. = Beyond, no one=20 has any certain knowledge of its course, since the country is = uninhabited by=20 reason of the excessive heat. [2.32] I did hear, indeed, what I will now relate, = from=20 certain natives of Cyrene. Once upon a time, they said, they were on a = visit to=20 the oracular shrine of Ammon, when it chanced that in the course of = conversation=20 with Etearchus, the Ammonian king, the talk fell upon the Nile, how that = its=20 sources were unknown to all men. Etearchus upon this mentioned that some = Nasamonians had once come to his court, and when asked if they could = give any=20 information concerning the uninhabited parts of Libya, had told the = following=20 tale. (The Nasamonians are a Libyan race who occupy the Syrtis, and a = tract of=20 no great size towards the east.) They said there had grown up among them = some=20 wild young men, the sons of certain chiefs, who, when they came to man's = estate,=20 indulged in all manner of extravagancies, and among other things drew = lots for=20 five of their number to go and explore the desert parts of Libya, and = try if=20 they could not penetrate further than any had done previously. The coast = of=20 Libya along the sea which washes it to the north, throughout its entire = length=20 from Egypt to Cape Soloeis, which is its furthest point, is inhabited by = Libyans=20 of many distinct tribes who possess the whole tract except certain = portions=20 which belong to the Phoenicians and the Greeks. Above the coast-line and = the=20 country inhabited by the maritime tribes, Libya is full of wild beasts; = while=20 beyond the wild beast region there is a tract which is wholly sand, very = scant=20 of water, and utterly and entirely a desert. The young men therefore, = despatched=20 on this errand by their comrades with a plentiful supply of water and=20 provisions, travelled at first through the inhabited region, passing = which they=20 came to the wild beast tract, whence they finally entered upon the = desert, which=20 they proceeded to cross in a direction from east to west. After = journeying for=20 many days over a wide extent of sand, they came at last to a plain where = they=20 observed trees growing; approaching them, and seeing fruit on them, they = proceeded to gather it. While they were thus engaged, there came upon = them some=20 dwarfish men, under the middle height, who seized them and carried them = off. The=20 Nasamonians could not understand a word of their language, nor had they = any=20 acquaintance with the language of the Nasamonians. They were led across=20 extensive marshes, and finally came to a town, where all the men were of = the=20 height of their conductors, and black-complexioned. A great river flowed = by the=20 town, running from west to east, and containing crocodiles. [Although he = was=20 unaware of it, Herodotus actually might have been describing the Niger = River in=20 central Africa, which would have been accessible by caravan routes = through the=20 Sahara desert.] [2.33] Here let me dismiss Etearchus the Ammonian, = and his=20 story, only adding that (according to the Cyrenaeans) he declared that = the=20 Nasamonians got safe back to their country, and that the men whose city = they had=20 reached were a nation of sorcerers. With respect to the river which ran = by their=20 town, Etearchus conjectured it to be the Nile; and reason favours that = view. For=20 the Nile certainly flows out of Libya, dividing it down the middle, and = as I=20 conceive, judging the unknown from the known, rises at the same distance = from=20 its mouth as the Danube. The Danube = river has=20 its source in the country of the Celts near the city Pyrene, and runs = through=20 the middle of Europe, dividing it = into two=20 portions. The Celts live beyond the pillars of Hercules, and border on = the=20 Cynesians, who dwell at the extreme west of Europe. Thus the Danube flows through the whole = of Europe=20 before it finally empties itself into the Euxine at Istria, one of the colonies of the Milesians. = [2.34] Now as this river flows through regions that = are=20 inhabited, its course is perfectly well known; but of the sources of the = Nile no=20 one can give any account, since Libya, the country through which it = passes, is=20 desert and without inhabitants. As far as it was possible to get = information by=20 inquiry, I have given a description of the stream. It enters Egypt from = the=20 parts beyond. Egypt lies almost exactly opposite the mountainous portion = of=20 Cilicia, whence a lightly-equipped traveller may reach Sinope on the = Euxine in=20 five days by the direct route. Sinope lies opposite the place where the=20 Danube falls into the sea. My opinion = therefore=20 is that the Nile, as it traverses the whole of Libya, is of equal length with the = Danube. And here I take my leave of this = subject. [2.35] Concerning Egypt itself I shall extend my = remarks to a=20 great length, because there is no country that possesses so many = wonders, nor=20 any that has such a number of works which defy description. Not only is = the=20 climate different from that of the rest of the world, and the rivers = unlike any=20 other rivers, but the people also, in most of their manners and customs, = exactly=20 reverse the common practice of mankind. The women attend the markets and = trade,=20 while the men sit at home at the loom; and here, while the rest of the = world=20 works the woof up the warp, the Egyptians work it down; the women = likewise carry=20 burdens upon their shoulders, while the men carry them upon their heads. = They=20 eat their food out of doors in the streets, but retire for private = purposes to=20 their houses, giving as a reason that what is unseemly, but necessary, = ought to=20 be done in secret, but what has nothing unseemly about it, should be = done=20 openly. A woman cannot serve the priestly office, either for god or = goddess, but=20 men are priests to both; sons need not support their parents unless they = choose,=20 but daughters must, whether they choose or no. [2.36] In other countries the priests have long = hair, in=20 Egypt their heads are shaven; elsewhere it is customary, in mourning, = for near=20 relations to cut their hair close: the Egyptians, who wear no hair at = any other=20 time, when they lose a relative, let their beards and the hair of their = heads=20 grow long. All other men pass their lives separate from animals, the = Egyptians=20 have animals always living with them; others make barley and wheat their = food;=20 it is a disgrace to do so in Egypt, where the grain they live on is = spelt, which=20 some call zea. Dough they knead with their feet; but they mix mud, and = even take=20 up dirt, with their hands. They are the only people in the world- they = at least,=20 and such as have learnt the practice from them - who use circumcision. = Their men=20 wear two garments apiece, their women but one. They put on the rings and = fasten=20 the ropes to sails inside; others put them outside. When they write or=20 calculate, instead of going, like the Greeks, from left to right, they = move=20 their hand from right to left; and they insist, notwithstanding, that it = is they=20 who go to the right, and the Greeks who go to the left. They have two = quite=20 different kinds of writing, one of which is called sacred, the other = common.=20 [2.37] They are religious to excess, far beyond any = other=20 race of men, and use the following ceremonies:- They drink out of brazen = cups,=20 which they scour every day: there is no exception to this practice. They = wear=20 linen garments, which they are specially careful to have always fresh = washed.=20 They practise circumcision for the sake of cleanliness, considering it = better to=20 be cleanly than comely. The priests shave their whole body every other = day, that=20 no lice or other impure thing may adhere to them when they are engaged = in the=20 service of the gods. Their dress is entirely of linen, and their shoes = of the=20 papyrus plant: it is not lawful for them to wear either dress or shoes = of any=20 other material. They bathe twice every day in cold water, and twice each = night;=20 besides which they observe, so to speak, thousands of ceremonies. They = enjoy,=20 however, not a few advantages. They consume none of their own property, = and are=20 at no expense for anything; but every day bread is baked for them of the = sacred=20 grain, and a plentiful supply of beef and of goose's flesh is assigned = to each,=20 and also a portion of wine made from the grape. Fish they are not = allowed to=20 eat; and beans - which none of the Egyptians ever sow, or eat, if they = come up=20 of their own accord, either raw or boiled - the priests will not even = endure to=20 look on, since they consider it an unclean kind of pulse. Instead of a = single=20 priest, each god has the attendance of a college, at the head of which = is a=20 chief priest; when one of these dies, his son is appointed in his room. = [2.38] Male cattle are reckoned to belong to = Epaphus, and are=20 therefore tested in the following manner:- One of the priests appointed = for the=20 purpose searches to see if there is a single black hair on the whole = body, since=20 in that case the beast is unclean. He examines him all over, standing on = his=20 legs, and again laid upon his back; after which he takes the tongue out = of his=20 mouth, to see if it be clean in respect of the prescribed marks (what = they are I=20 will mention elsewhere); he also inspects the hairs of the tail, to = observe if=20 they grow naturally. If the animal is pronounced clean in all these = various=20 points, the priest marks him by twisting a piece of papyrus round his = horns, and=20 attaching thereto some sealing-clay, which he then stamps with his own=20 signet-ring. After this the beast is led away; and it is forbidden, = under the=20 penalty of death, to sacrifice an animal which has not been marked in = this way.=20 [2.39] The following is their manner of sacrifice:- = They lead=20 the victim, marked with their signet, to the altar where they are about = to offer=20 it, and setting the wood alight, pour a libation of wine upon the altar = in front=20 of the victim, and at the same time invoke the god. Then they slay the = animal,=20 and cutting off his head, proceed to flay the body. Next they take the = head, and=20 heaping imprecations on it, if there is a market-place and a body of = Greek=20 traders in the city, they carry it there and sell it instantly; if, = however,=20 there are no Greeks among them, they throw the head into the river. The=20 imprecation is to this effect:- They pray that if any evil is impending = either=20 over those who sacrifice, or over universal Egypt,=20 it may be made to fall upon that head. These practices, the imprecations = upon=20 the heads, and the libations of wine, prevail all over Egypt, and extend = to=20 victims of all sorts; and hence the Egyptians will never eat the head of = any=20 animal. [2.40] The disembowelling and burning are, however, = different=20 in different sacrifices. I will mention the mode in use with respect to = the=20 goddess whom they regard as the greatest, and honour with the chiefest = festival.=20 When they have flayed their steer they pray, and when their prayer is = ended they=20 take the paunch of the animal out entire, leaving the intestines and the = fat=20 inside the body; they then cut off the legs, the ends of the loins, the=20 shoulders, and the neck; and having so done, they fill the body of the = steer=20 with clean bread, honey, raisins, figs, frankincense, myrrh, and other=20 aromatics. Thus filled, they burn the body, pouring over it great = quantities of=20 oil. Before offering the sacrifice they fast, and while the bodies of = the=20 victims are being consumed they beat themselves. Afterwards, when they = have=20 concluded this part of the ceremony, they have the other parts of the = victim=20 served up to them for a repast. On Scythians: [4.2] Now the Scythians blind all their slaves, to = use them=20 in preparing their milk. The plan they follow is to thrust tubes made of = bone,=20 not unlike our musical pipes, up the vulva of the mare, and then to blow = into=20 the tubes with their mouths, some milking while the others blow. They = say that=20 they do this because when the veins of the animal are full of air, the = udder is=20 forced down. The milk thus obtained is poured into deep wooden casks, = about=20 which the blind slaves are placed, and then the milk is stirred round. = That=20 which rises to the top is drawn off, and considered the best part; the = under=20 portion is of less account. Such is the reason why the Scythians blind = all those=20 whom they take in war; it arises from their not being tillers of the = ground, but=20 a pastoral race. [4.59] Thus abundantly are the Scythians provided = with the=20 most important necessaries. Their manners and customs come now to be = described.=20 They worship only the following gods, namely, Vesta, whom they reverence = beyond=20 all the rest, Jupiter, and Tellus, whom they consider to be the wife of = Jupiter;=20 and after these Apollo, Celestial Venus, Hercules, and Mars. These gods = are=20 worshipped by the whole nation: the Royal Scythians offer sacrifice = likewise to=20 Neptune. In the Scythic tongue Vesta is called Tabiti, Jupiter (very = properly,=20 in my judgment) Papaeus, Tellus Apia, Apollo Oetosyrus, Celestial Venus=20 Artimpasa, and Neptune Thamimasadas. They use no images, altars, or = temples,=20 except in the worship of Mars; but in his worship they do use them. [4.60] The manner of their sacrifices is everywhere = and in=20 every case the same; the victim stands with its two fore-feet bound = together by=20 a cord, and the person who is about to offer, taking his station behind = the=20 victim, gives the rope a pull, and thereby throws the animal down; as it = falls=20 he invokes the god to whom he is offering; after which he puts a noose = round the=20 animal's neck, and, inserting a small stick, twists it round, and so = strangles=20 him. No fire is lighted, there is no consecration, and no pouring out of = drink-offerings; but directly after the beast is strangled the = sacrificer flays=20 him, and then sets to work to boil the flesh. [4.61] As Scythia, however, is utterly barren of = firewood, a=20 plan has had to be contrived for boiling the flesh, which is the = following.=20 After flaying the beasts, they take out all the bones, and (if they = possess such=20 gear) put the flesh into boilers made in the country, which are very = like the=20 cauldrons of the Lesbians, except that they are of a much larger size; = then=20 placing the bones of the animals beneath the cauldron, they set them = alight, and=20 so boil the meat. If they do not happen to possess a cauldron, they make = the=20 animal's paunch hold the flesh, and pouring in at the same time a little = water,=20 lay the bones under and light them. The bones burn beautifully; and the = paunch=20 easily contains all the flesh when it is stript from the bones, so that = by this=20 plan your ox is made to boil himself, and other victims also to do the = like.=20 When the meat is all cooked, the sacrificer offers a portion of the = flesh and of=20 the entrails, by casting it on the ground before him. They sacrifice all = sorts=20 of cattle, but most commonly horses. [4.62] Such are the victims offered to the other = gods, and=20 such is the mode in which they are sacrificed; but the rites paid to = Mars are=20 different. In every district, at the seat of government, there stands a = temple=20 of this god, whereof the following is a description. It is a pile of = brushwood,=20 made of a vast quantity of fagots, in length and breadth three furlongs; = in=20 height somewhat less, having a square platform upon the top, three sides = of=20 which are precipitous, while the fourth slopes so that men may walk up = it. Each=20 year a hundred and fifty wagon-loads of brushwood are added to the pile, = which=20 sinks continually by reason of the rains. An antique iron sword is = planted on=20 the top of every such mound, and serves as the image of Mars: yearly = sacrifices=20 of cattle and of horses are made to it, and more victims are offered = thus than=20 to all the rest of their gods. When prisoners are taken in war, out of = every=20 hundred men they sacrifice one, not however with the same rites as the = cattle,=20 but with different. Libations of wine are first poured upon their heads, = after=20 which they are slaughtered over a vessel; the vessel is then carried up = to the=20 top of the pile, and the blood poured upon the scimitar. While this = takes place=20 at the top of the mound, below, by the side of the temple, the right = hands and=20 arms of the slaughtered prisoners are cut off, and tossed on high into = the air.=20 Then the other victims are slain, and those who have offered the = sacrifice=20 depart, leaving the hands and arms where they may chance to have fallen, = and the=20 bodies also, separate. [4.63] Such are the observances of the Scythians = with respect=20 to sacrifice. They never use swine for the purpose, nor indeed is it = their wont=20 to breed them in any part of their country. [4.64] In what concerns war, their customs are the = following.=20 The Scythian soldier drinks the blood of the first man he overthrows in = battle.=20 Whatever number he slays, he cuts off all their heads, and carries them = to the=20 king; since he is thus entitled to a share of the booty, whereto he = forfeits all=20 claim if he does not produce a head. In order to strip the skull of its=20 covering, he makes a cut round the head above the ears, and, laying hold = of the=20 scalp, shakes the skull out; then with the rib of an ox he scrapes the = scalp=20 clean of flesh, and softening it by rubbing between the hands, uses it=20 thenceforth as a napkin. The Scyth is proud of these scalps, and hangs = them from=20 his bridle-rein; the greater the number of such napkins that a man can = show, the=20 more highly is he esteemed among them. Many make themselves cloaks, like = the=20 capotes of our peasants, by sewing a quantity of these scalps together. = Others=20 flay the right arms of their dead enemies, and make of the skin, which = stripped=20 off with the nails hanging to it, a covering for their quivers. Now the = skin of=20 a man is thick and glossy, and would in whiteness surpass almost all = other=20 hides. Some even flay the entire body of their enemy, and stretching it = upon a=20 frame carry it about with them wherever they ride. Such are the Scythian = customs=20 with respect to scalps and skins. [4.70] Oaths among the Scyths are accompanied with = the=20 following ceremonies: a large earthen bowl is filled with wine, and the = parties=20 to the oath, wounding themselves slightly with a knife or an awl, drop = some of=20 their blood into the wine; then they plunge into the mixture a scimitar, = some=20 arrows, a battle-axe, and a javelin, all the while repeating prayers; = lastly the=20 two contracting parties drink each a draught from the bowl, as do also = the chief=20 men among their followers. [4.71] The tombs of their kings are in the land of = the=20 Gerrhi, who dwell at the point where the Borysthenes is first navigable. = Here,=20 when the king dies, they dig a grave, which is square in shape, and of = great=20 size. When it is ready, they take the king's corpse, and, having opened = the=20 belly, and cleaned out the inside, fill the cavity with a preparation of = chopped=20 cypress, frankincense, parsley-seed, and anise-seed, after which they = sew up the=20 opening, enclose the body in wax, and, placing it on a wagon, carry it = about=20 through all the different tribes. On this procession each tribe, when it = receives the corpse, imitates the example which is first set by the = Royal=20 Scythians; every man chops off a piece of his ear, crops his hair close, = and=20 makes a cut all round his arm, lacerates his forehead and his nose, and = thrusts=20 an arrow through his left hand. Then they who have the care of the = corpse carry=20 it with them to another of the tribes which are under the Scythian rule, = followed by those whom they first visited. On completing the circuit of = all the=20 tribes under their sway, they find themselves in the country of the = Gerrhi, who=20 are the most remote of all, and so they come to the tombs of the kings. = There=20 the body of the dead king is laid in the grave prepared for it, = stretched upon a=20 mattress; spears are fixed in the ground on either side of the corpse, = and beams=20 stretched across above it to form a roof, which is covered with a = thatching of=20 osier twigs. In the open space around the body of the king they bury one = of his=20 concubines, first killing her by strangling, and also his cup-bearer, = his cook,=20 his groom, his lacquey, his messenger, some of his horses, firstlings of = all his=20 other possessions, and some golden cups; for they use neither silver nor = brass.=20 After this they set to work, and raise a vast mound above the grave, all = of them=20 vying with each other and seeking to make it as tall as possible. [4.72] When a year is gone by, further ceremonies = take place.=20 Fifty of the best of the late king's attendants are taken, all native = Scythians=20 - for, as bought slaves are unknown in the country, the Scythian kings = choose=20 any of their subjects that they like, to wait on them - fifty of these = are taken=20 and strangled, with fifty of the most beautiful horses. When they are = dead,=20 their bowels are taken out, and the cavity cleaned, filled full of = chaff, and=20 straightway sewn up again. This done, a number of posts are driven into = the=20 ground, in sets of two pairs each, and on every pair half the felly of a = wheel=20 is placed archwise; then strong stakes are run lengthways through the = bodies of=20 the horses from tail to neck, and they are mounted up upon the fellies, = so that=20 the felly in front supports the shoulders of the horse, while that = behind=20 sustains the belly and quarters, the legs dangling in mid-air; each = horse is=20 furnished with a bit and bridle, which latter is stretched out in front = of the=20 horse, and fastened to a peg. The fifty strangled youths are then = mounted=20 severally on the fifty horses. To effect this, a second stake is passed = through=20 their bodies along the course of the spine to the neck; the lower end of = which=20 projects from the body, and is fixed into a socket, made in the stake = that runs=20 lengthwise down the horse. The fifty riders are thus ranged in a circle = round=20 the tomb, and so left. [4.73] Such, then, is the mode in which the kings = are buried:=20 as for the people, when any one dies, his nearest of kin lay him upon a = wagon=20 and take him round to all his friends in succession: each receives them = in turn=20 and entertains them with a banquet, whereat the dead man is served with = a=20 portion of all that is set before the others; this is done for forty = days, at=20 the end of which time the burial takes place. After the burial, those = engaged in=20 it have to purify themselves, which they do in the following way. First = they=20 well soap and wash their heads; then, in order to cleanse their bodies, = they act=20 as follows: they make a booth by fixing in the ground three sticks = inclined=20 towards one another, and stretching around them woolen felts, which they = arrange=20 so as to fit as close as possible: inside the booth a dish is placed = upon the=20 ground, into which they put a number of red-hot stones, and then add = some=20 hemp-seed. [4.74] Hemp grows in Scythia: it is very like flax; = only that=20 it is a much coarser and taller plant: some grows wild about the = country, some=20 is produced by cultivation: the Thracians make garments of it which = closely=20 resemble linen; so much so, indeed, that if a person has never seen hemp = he is=20 sure to think they are linen, and if he has, unless he is very = experienced in=20 such matters, he will not know of which material they are. [4.75] The Scythians, as I said, take some of this = hemp-seed,=20 and, creeping under the felt coverings, throw it upon the red-hot = stones;=20 immediately it smokes, and gives out such a vapour as no Grecian = vapour-bath can=20 exceed; the Scyths, delighted, shout for joy, and this vapour serves = them=20 instead of a water-bath; for they never by any chance wash their bodies = with=20 water. Their women make a mixture of cypress, cedar, and frankincense = wood,=20 which they pound into a paste upon a rough piece of stone, adding a = little water=20 to it. With this substance, which is of a thick consistency, they = plaster their=20 faces all over, and indeed their whole bodies. A sweet odour is thereby = imparted=20 to them, and when they take off the plaster on the day following, their = skin is=20 clean and glossy. ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/blackboard/content/contentWrapper.jsp?attachment=true&navItem=content&content_id=_2356318_1&displayName=Herodotus&course_id=_702465_1&href=/courses/1/HIS_1000_0909_001/content/_2356318_1/Herodotus.htm ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/javascript/date.js?v=9.0.440.7 // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D // Author: Matt Kruse // WWW: http://www.mattkruse.com/ // // NOTICE: You may use this code for any purpose, commercial or // private, without any further permission from the author. You may // remove this notice from your final code if you wish, however it is // appreciated by the author if at least my web site address is kept. // // You may *NOT* re-distribute this code in any way except through its // use. That means, you can include it in your product, or your web // site, or any other form where the code is actually being used. You // may not put the plain javascript up on your site for download or // include it in your javascript libraries for download.=20 // If you wish to share this code with others, please just point them // to the URL instead. // Please DO NOT link directly to my .js files from your site. Copy // the files to your server and use them there. Thank you. // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D // HISTORY // ------------------------------------------------------------------ // May 17, 2003: Fixed bug in parseDate() for dates <1970 // March 11, 2003: Added parseDate() function // March 11, 2003: Added "NNN" formatting option. Doesn't match up // perfectly with SimpleDateFormat formats, but=20 // backwards-compatability was required. // ------------------------------------------------------------------ // These functions use the same 'format' strings as the=20 // java.text.SimpleDateFormat class, with minor exceptions. // The format string consists of the following abbreviations: //=20 // Field | Full Form | Short Form // -------------+--------------------+----------------------- // Year | yyyy (4 digits) | yy (2 digits), y (2 or 4 digits) // Month | MMM (name or abbr.)| MM (2 digits), M (1 or 2 digits) // | NNN (abbr.) | // Day of Month | dd (2 digits) | d (1 or 2 digits) // Day of Week | EE (name) | E (abbr) // Hour (1-12) | hh (2 digits) | h (1 or 2 digits) // Hour (0-23) | HH (2 digits) | H (1 or 2 digits) // Hour (0-11) | KK (2 digits) | K (1 or 2 digits) // Hour (1-24) | kk (2 digits) | k (1 or 2 digits) // Minute | mm (2 digits) | m (1 or 2 digits) // Second | ss (2 digits) | s (1 or 2 digits) // AM/PM | a | // // NOTE THE DIFFERENCE BETWEEN MM and mm! Month=3DMM, not mm! // Examples: // "MMM d, y" matches: January 01, 2000 // Dec 1, 1900 // Nov 20, 00 // "M/d/yy" matches: 01/20/00 // 9/2/00 // "MMM dd, yyyy hh:mm:ssa" matches: "January 01, 2000 12:30:45AM" // ------------------------------------------------------------------ var MONTH_NAMES=3Dnew = Array('January','February','March','April','May','June','July','August','= September','October','November','December','Jan','Feb','Mar','Apr','May',= 'Jun','Jul','Aug','Sep','Oct','Nov','Dec'); var DAY_NAMES=3Dnew = Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturd= ay','Sun','Mon','Tue','Wed','Thu','Fri','Sat'); function LZ(x) {return(x<0||x>9?"":"0")+x} // ------------------------------------------------------------------ // isDate ( date_string, format_string ) // Returns true if date string matches format of format string and // is a valid date. Else returns false. // It is recommended that you trim whitespace around the value before // passing it to this function, as whitespace is NOT ignored! // ------------------------------------------------------------------ function isDate(val,format) { var date=3DgetDateFromFormat(val,format); if (date=3D=3D0) { return false; } return true; } // ------------------------------------------------------------------- // compareDates(date1,date1format,date2,date2format) // Compare two date strings to see which is greater. // Returns: // 1 if date1 is greater than date2 // 0 if date2 is greater than date1 of if they are the same // -1 if either of the dates is in an invalid format // ------------------------------------------------------------------- function compareDates(date1,dateformat1,date2,dateformat2) { var d1=3DgetDateFromFormat(date1,dateformat1); var d2=3DgetDateFromFormat(date2,dateformat2); if (d1=3D=3D0 || d2=3D=3D0) { return -1; } else if (d1 > d2) { return 1; } return 0; } // ------------------------------------------------------------------ // formatDate (date_object, format) // Returns a date in the output format specified. // The format string uses the same abbreviations as in = getDateFromFormat() // ------------------------------------------------------------------ function formatDate(date,format) { format=3Dformat+""; var result=3D""; var i_format=3D0; var c=3D""; var token=3D""; var y=3Ddate.getYear()+""; var M=3Ddate.getMonth()+1; var d=3Ddate.getDate(); var E=3Ddate.getDay(); var H=3Ddate.getHours(); var m=3Ddate.getMinutes(); var s=3Ddate.getSeconds(); var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k; // Convert real date parts into formatted versions var value=3Dnew Object(); if (y.length < 4) {y=3D""+(y-0+1900);} value["y"]=3D""+y; value["yyyy"]=3Dy; value["yy"]=3Dy.substring(2,4); value["M"]=3DM; value["MM"]=3DLZ(M); value["MMM"]=3DMONTH_NAMES[M-1]; value["NNN"]=3DMONTH_NAMES[M+11]; value["d"]=3Dd; value["dd"]=3DLZ(d); value["E"]=3DDAY_NAMES[E+7]; value["EE"]=3DDAY_NAMES[E]; value["H"]=3DH; value["HH"]=3DLZ(H); if (H=3D=3D0){value["h"]=3D12;} else if (H>12){value["h"]=3DH-12;} else {value["h"]=3DH;} value["hh"]=3DLZ(value["h"]); if (H>11){value["K"]=3DH-12;} else {value["K"]=3DH;} value["k"]=3DH+1; value["KK"]=3DLZ(value["K"]); value["kk"]=3DLZ(value["k"]); if (H > 11) { value["a"]=3D"PM"; } else { value["a"]=3D"AM"; } value["m"]=3Dm; value["mm"]=3DLZ(m); value["s"]=3Ds; value["ss"]=3DLZ(s); while (i_format < format.length) { c=3Dformat.charAt(i_format); token=3D""; while ((format.charAt(i_format)=3D=3Dc) && (i_format < format.length)) = { token +=3D format.charAt(i_format++); } if (value[token] !=3D null) { result=3Dresult + value[token]; } else { result=3Dresult + token; } } return result; } =09 // ------------------------------------------------------------------ // Utility functions for parsing in getDateFromFormat() // ------------------------------------------------------------------ function _isInteger(val) { var digits=3D"1234567890"; for (var i=3D0; i < val.length; i++) { if (digits.indexOf(val.charAt(i))=3D=3D-1) { return false; } } return true; } function _getInt(str,i,minlength,maxlength) { for (var x=3Dmaxlength; x>=3Dminlength; x--) { var token=3Dstr.substring(i,i+x); if (token.length < minlength) { return null; } if (_isInteger(token)) { return token; } } return null; } =09 // ------------------------------------------------------------------ // getDateFromFormat( date_string , format_string ) // // This function takes a date string and a format string. It matches // If the date string matches the format string, it returns the=20 // getTime() of the date. If it does not match, it returns 0. // ------------------------------------------------------------------ function getDateFromFormat(val,format) { val=3Dval+""; format=3Dformat+""; var i_val=3D0; var i_format=3D0; var c=3D""; var token=3D""; var token2=3D""; var x,y; var now=3Dnew Date(); var year=3Dnow.getYear(); var month=3Dnow.getMonth()+1; var date=3D1; var hh=3Dnow.getHours(); var mm=3Dnow.getMinutes(); var ss=3Dnow.getSeconds(); var ampm=3D""; =09 while (i_format < format.length) { // Get next token from format string c=3Dformat.charAt(i_format); token=3D""; while ((format.charAt(i_format)=3D=3Dc) && (i_format < format.length)) = { token +=3D format.charAt(i_format++); } // Extract contents of value based on format token if (token=3D=3D"yyyy" || token=3D=3D"yy" || token=3D=3D"y") { if (token=3D=3D"yyyy") { x=3D4;y=3D4; } if (token=3D=3D"yy") { x=3D2;y=3D2; } if (token=3D=3D"y") { x=3D2;y=3D4; } year=3D_getInt(val,i_val,x,y); if (year=3D=3Dnull) { return 0; } i_val +=3D year.length; if (year.length=3D=3D2) { if (year > 70) { year=3D1900+(year-0); } else { year=3D2000+(year-0); } } } else if (token=3D=3D"MMM"||token=3D=3D"NNN"){ month=3D0; for (var i=3D0; i11)) { month=3Di+1; if (month>12) { month -=3D 12; } i_val +=3D month_name.length; break; } } } if ((month < 1)||(month>12)){return 0;} } else if (token=3D=3D"EE"||token=3D=3D"E"){ for (var i=3D0; i12)){return 0;} i_val+=3Dmonth.length;} else if (token=3D=3D"dd"||token=3D=3D"d") { date=3D_getInt(val,i_val,token.length,2); if(date=3D=3Dnull||(date<1)||(date>31)){return 0;} i_val+=3Ddate.length;} else if (token=3D=3D"hh"||token=3D=3D"h") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<1)||(hh>12)){return 0;} i_val+=3Dhh.length;} else if (token=3D=3D"HH"||token=3D=3D"H") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<0)||(hh>23)){return 0;} i_val+=3Dhh.length;} else if (token=3D=3D"KK"||token=3D=3D"K") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<0)||(hh>11)){return 0;} i_val+=3Dhh.length;} else if (token=3D=3D"kk"||token=3D=3D"k") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<1)||(hh>24)){return 0;} i_val+=3Dhh.length;hh--;} else if (token=3D=3D"mm"||token=3D=3D"m") { mm=3D_getInt(val,i_val,token.length,2); if(mm=3D=3Dnull||(mm<0)||(mm>59)){return 0;} i_val+=3Dmm.length;} else if (token=3D=3D"ss"||token=3D=3D"s") { ss=3D_getInt(val,i_val,token.length,2); if(ss=3D=3Dnull||(ss<0)||(ss>59)){return 0;} i_val+=3Dss.length;} else if (token=3D=3D"a") { if (val.substring(i_val,i_val+2).toLowerCase()=3D=3D"am") = {ampm=3D"AM";} else if (val.substring(i_val,i_val+2).toLowerCase()=3D=3D"pm") = {ampm=3D"PM";} else {return 0;} i_val+=3D2;} else { if (val.substring(i_val,i_val+token.length)!=3Dtoken) {return 0;} else {i_val+=3Dtoken.length;} } } // If there are any trailing characters left in the value, it doesn't = match if (i_val !=3D val.length) { return 0; } // Is date valid for month? if (month=3D=3D2) { // Check for leap year if ( ( (year%4=3D=3D0)&&(year%100 !=3D 0) ) || (year%400=3D=3D0) ) { = // leap year if (date > 29){ return 0; } } else { if (date > 28) { return 0; } } } if ((month=3D=3D4)||(month=3D=3D6)||(month=3D=3D9)||(month=3D=3D11)) { if (date > 30) { return 0; } } // Correct hours value if (hh<12 && ampm=3D=3D"PM") { hh=3Dhh-0+12; } else if (hh>11 && ampm=3D=3D"AM") { hh-=3D12; } var newdate=3Dnew Date(year,month-1,date,hh,mm,ss); return newdate.getTime(); } // ------------------------------------------------------------------ // parseDate( date_string [, prefer_euro_format] ) // // This function takes a date string and tries to match it to a // number of possible date formats to get the value. It will try to // match against the following international formats, in this order: // y-M-d MMM d, y MMM d,y y-MMM-d d-MMM-y MMM d // M/d/y M-d-y M.d.y MMM-d M/d M-d // d/M/y d-M-y d.M.y d-MMM d/M d-M // A second argument may be passed to instruct the method to search // for formats like d/M/y (european format) before M/d/y (American). // Returns a Date object or null if no patterns match. // ------------------------------------------------------------------ function parseDate(val) { var preferEuro=3D(arguments.length=3D=3D2)?arguments[1]:false; generalFormats=3Dnew Array('y-M-d','MMM d, y','MMM = d,y','y-MMM-d','d-MMM-y','MMM d'); monthFirst=3Dnew Array('M/d/y','M-d-y','M.d.y','MMM-d','M/d','M-d'); dateFirst =3Dnew Array('d/M/y','d-M-y','d.M.y','d-MMM','d/M','d-M'); var checkList=3Dnew = Array('generalFormats',preferEuro?'dateFirst':'monthFirst',preferEuro?'mo= nthFirst':'dateFirst'); var d=3Dnull; for (var i=3D0; i 0 ) { oneRowHeight =3D = this.table.rows[this.table.rows.length-1].offsetHeight + 1 /*border = spacing*/; } //need to account for the wider header row var h =3D Math.max(this.options.tableHeight, ( ( = this.model.getMinimumRows() + 1 ) * oneRowHeight + 10 ) ); h =3D Math.min( h, this.table.offsetHeight+19 ); var w =3D Math.min(this.options.tableWidth, = this.table.offsetWidth+19); contDiv.style.height =3D h + "px"; contDiv.style.width =3D w + "px"; contDiv.style.overflow =3D "auto"; }, _initializeHTML: function() { this._sizeHTMLTable(); // wrap table with a new container div: relative see IE7 bug: = http://rowanw.com/bugs/overflow_relative.htm this.table.insert({before: ""}); this.table.previousSibling.appendChild(this.table); if (this.options.accessibleMode) { this.setAccessibleViewportSize( ); return; } // wrap table with a new viewport div this.table.insert({before: ""}); this.table.previousSibling.appendChild(this.table); var viewportDiv =3D $(this.tableId+'_viewport'); viewportDiv.style.height =3D (this.table.offsetHeight) + "px"; viewportDiv.style.overflow =3D "hidden"; =09 // add controllers to table cells var tableHeader =3D $(this.table.id + '_header'); if (tableHeader) { var numHCols =3D tableHeader.rows[0].cells.length; for (var c =3D 0; c < numHCols; c++) { new Gradebook.CellController(tableHeader.rows[0].cells[c], = this, 0, c, true); } } var numRows =3D this.table.rows.length; for (var r =3D 0; r < numRows; r++) { var numCols =3D this.table.rows[0].cells.length; for (var c =3D 0; c < numCols; c++) { var cell =3D this.table.rows[r].cells[c]; new Gradebook.CellController(cell, this, r, c, false); } } if (document.onClickHandler){ Event.stopObserving(document,'click',document.onClickHandler); } document.onClickHandler =3D = this.onDocumentClickHandler.bindAsEventListener(this); Event.observe(document,'click',document.onClickHandler); =09 if (document.onKeydownHandler){ Event.stopObserving(document,'keydown',document.onKeydownHandler); } document.onKeydownHandler =3D = this.onDocumentKeyDownHandler.bindAsEventListener(this); Event.observe(document,'keydown',document.onKeydownHandler); }, unload: function() { Gradebook.CellController.prototype.removeAllSavingDivs(); var numRows =3D this.table.rows.length; for (var r =3D 0; r < numRows; r++){ var numCols =3D this.table.rows[0].cells.length; for (var c =3D 0; c < numCols; c++){ var cell =3D this.table.rows[r].cells[c]; if (cell.controller) { cell.controller.unload(); } } } var tableHeader =3D $(this.table.id + '_header'); if (tableHeader){ var numHCols =3D tableHeader.rows[0].cells.length; for (var c =3D 0; c < numHCols; c++){ var cell =3D tableHeader.rows[0].cells[c]; if (cell.controller) { cell.controller.unload(); } } } if (this.viewPort) this.viewPort.unload(); this.model.removeModelListeners(); this.table =3D null; this.model =3D null; this.viewPort =3D null; this.options =3D null; this.sortCell =3D null; }, _sizeHTMLTable: function() { var tbl =3D this.table; var tableHeader =3D $(this.table.id + '_header'); var numRows =3D 0; var numCols =3D 0; =20 var numFrozenColumns =3D this.options.numFrozenColumns; // presence of th impacts the calculation of the row height // so we remove it before the calculation occurs if (numFrozenColumns =3D=3D 0){ for (var i=3D0; i=3D numCols){ numFrozenColumns =3D numCols-1; this.options.numFrozenColumns =3D numFrozenColumns; } =09 // assumes the table has at least 1 row & 2 cols // the first column is a frozen column // the second column is a non-frozen column // clone frozen columns for (var i =3D 0; i < numFrozenColumns-1; i++){ this._cloneColumn(1); // skip check box column } // clone non-frozen columns var numNonFrozenColumns =3D numCols - numFrozenColumns - 1; for (var i =3D 0; i < numNonFrozenColumns; i++){ this._cloneColumn(numFrozenColumns+1); // skip check box column } =09 var checkColumnWidth =3D this.table.rows[0].cells[0].offsetWidth; var visibleWidth =3D this.table.offsetWidth; this.avgColWidth =3D (visibleWidth - checkColumnWidth)/numCols; var frozenWidth =3D (numFrozenColumns * this.avgColWidth) + = checkColumnWidth; $("selectedRows").style.width=3Dthis.isIE?frozenWidth + "px": = frozenWidth-2 +"px"; =09 =09 // clone rows var numRowsToAdd =3D numRows - tbl.rows.length; if (tableHeader) numRowsToAdd--; =09 var rowToClone =3D tbl.rows[this.table.rows.length-1]; for (var i =3D 0; i < numRowsToAdd; i++){ tbl.tBodies[0].appendChild(rowToClone.cloneNode(true)); } // remove table rows if html table is bigger than numRows while (tbl.rows.length > numRows){ if (tbl.rows.length > 0) tbl.deleteRow(tbl.rows.length - 1); } // remove table columns if html table is bigger than model var allRows =3D tbl.rows;=09 while (tbl.rows.length > 0 && tbl.rows[0].cells.length-1 > = this.model.getNumColDefs()){ for (var i=3D0; i 1) { allRows[i].deleteCell(-1); } } } while (tableHeader && tableHeader.rows[0].cells.length-1 > = this.model.getNumColDefs()){ tableHeader.rows[0].deleteCell(-1); } }, _cloneColumn: function(colIndex){ var tbl =3D this.table; for (var i =3D 0; i < tbl.rows.length; i++) { var origCell =3D tbl.rows[i].cells[colIndex];=20 var newCell =3D origCell.cloneNode(true); tbl.rows[i].insertBefore(newCell,origCell); } var tableHeader =3D $(this.table.id + '_header'); if (tableHeader){ var tbl =3D tableHeader; for (var i =3D 0; i < tbl.rows.length; i++) { var origCell =3D tbl.rows[i].cells[colIndex];=20 var newCell =3D origCell.cloneNode(true); tbl.rows[i].insertBefore(newCell,origCell); } } }, =20 _setAccessibilityHeaders: function(){ if (!this.options.accessibleMode){ return; } var tbl =3D this.table; // add abbr attributes to all header cells var hdrRow =3D tbl.rows[0]; for ( var i =3D 1; i < hdrRow.cells.length; i++ ) { var cell =3D hdrRow.cells[i]; cell.abbr =3D cell.controller.getGridCell().getName(); } tbl.rows[0].cells[0].abbr =3D " "; var abbrColIndexs =3D this.getAbbrColIndexs(); =09 if ( tbl.rows.length > 1 && tbl.rows[1].cells.length > 1 )=20 { for ( var i =3D 1; i < tbl.rows.length; i++ )=20 { abbrColIndexs.each(function(idx) { var cell =3D tbl.rows[i].cells[ idx + 1 ]; // skip checkbox = cell cell.abbr =3D cell.controller.getGridCell().getValue(); cell.scope =3D 'row'; }); } } }, =20 getAbbrColIndexs: function()=20 { if ( !this.abbrColIndexs ) { this.abbrColIndexs =3D new Array(); /* Add abbr attributes to specific columns to allow screen readers to=20 announce meaningful column headers based on the following rules: =09 1. If both first and last name are visible, use those. 2. If the username is visible, use that. 3. If neither of the first cases pass, use the first column as the = header.=20 */ var lastNameColIndex =3D this.model.getVisibleColDefIndex('LN'); var firstNameColIndex =3D this.model.getVisibleColDefIndex('FN'); var userNameColIndex =3D this.model.getVisibleColDefIndex('UN'); if ( lastNameColIndex !=3D -1 && firstNameColIndex !=3D -1 ) { this.abbrColIndexs.push( lastNameColIndex );=20 this.abbrColIndexs.push( firstNameColIndex ); } else if ( userNameColIndex !=3D -1 ) { this.abbrColIndexs.push( userNameColIndex ); } else { this.abbrColIndexs.push( 0 ); } } return this.abbrColIndexs; }, =20 onDocumentClickHandler: function(evt) { if ( document.ignoreOnClick ) return; Gradebook.CellController.prototype.closePopupsAndRestoreFocus(evt); }, onDocumentKeyDownHandler: function(evt) { GradebookUtil.debug('onDocumentKeyDownHandler keyCode =3D = '+evt.keyCode); if (!Gradebook.CellController.prototype.tableHasFocus) return; var ek=3Devt.keyCode; var visibleRowCount =3D this.viewPort.getNumVisibleRows(); var deltaRow =3D 0; var deltaCol =3D 0; /* * the model grid cell index is R2L agnostic: thus moving right in L2R = is moving towards the next col (+1),=20 * while in R2L it is going towards the previous col (-1). */ switch (ek) { case (Event.KEY_LEFT): deltaCol =3D page.util.isRTL()?1:-1; break; case (Event.KEY_RIGHT): deltaCol =3D page.util.isRTL()?-1:1; break; case (Event.KEY_UP): deltaRow =3D -1; break; case (Event.KEY_DOWN): deltaRow =3D 1; break; case (33/* page up */): if ( !this.options.accessibleMode ) deltaRow = =3D -visibleRowCount; break; case (34/* page down */): if ( !this.options.accessibleMode ) = deltaRow =3D visibleRowCount; break; case (Event.KEY_TAB): if ( !Gradebook.CellController.currentSelectedCell || !Element.descendantOf( evt.element(), = Gradebook.CellController.currentSelectedCell.controller.htmlCell ) ) = break; if ( evt.shiftKey ) { if ( !evt.element().hasClassName('cmimg') && !this.isFirstCell() = ) deltaCol =3D -1; break; } else if ( !this.isLastCell() && ( evt.element().hasClassName('cmimg') || = this.isCurrentCellWithoutMenu() ) ) { deltaCol =3D 1; } break; } if (deltaRow =3D=3D 0 && deltaCol =3D=3D 0) { return; } else { Event.stop( evt ); this.selectRelativeCell(deltaRow, deltaCol); Gradebook.CellController.prototype.closePopups(evt); } }, =09 isLastCell: function() { if ( Gradebook.CellController.currentSelectedCell =3D=3D null ) = return false; // last cell if it is the last displayed cell with no more scroll = available right or down var nextSelectedCol =3D = Gradebook.CellController.currentSelectedCell.controller.col; var nextSelectedRow =3D = Gradebook.CellController.currentSelectedCell.controller.row+1; return ( nextSelectedCol >=3D this.viewPort.numVisibleCols ) && ( nextSelectedRow >=3D this.viewPort.numVisibleRows ) && ( ( this.viewPort.lastRowPos/*offset*/ + = this.viewPort.numVisibleRows ) =3D=3D this.model.getNumRows() ) &&=20 ( ( this.viewPort.colOffset + this.viewPort.numVisibleCols ) = =3D=3D this.model.getNumColDefs() ); }, isFirstCell: function() { if ( Gradebook.CellController.currentSelectedCell =3D=3D null ) = return false; return ( = Gradebook.CellController.currentSelectedCell.controller.col=3D=3D1/*check= box*/ && = Gradebook.CellController.currentSelectedCell.controller.row=3D=3D0 && ( !this.viewPort.scrollerDiv /*null if no vertical scroll*/ = || this.viewPort.scrollerDiv.scrollTop =3D=3D 0 ) ); }, isCurrentCellWithoutMenu: function() { // the only cell type that does not display a context menu are = calculated columns if ( Gradebook.CellController.currentSelectedCell =3D=3D null ) = return false; var gridCell =3D = Gradebook.CellController.currentSelectedCell.controller.getGridCell(); if ( !gridCell ) return true; return gridCell.isGrade() && !gridCell.canEdit();=20 }, =09 selectRelativeCell: function(deltaRow, deltaCol) { var visibleRowCount =3D this.viewPort.getNumVisibleRows(); var visibleColumnCount =3D this.viewPort.getNumVisibleCols(); var modelRowCount =3D this.model.getNumRows(); var modelColumnCount =3D this.model.getNumColDefs(); var cellController =3D this.currentCellController; if (Gradebook.CellController.currentSelectedCell !=3D null){ cellController =3D = Gradebook.CellController.currentSelectedCell.controller; } var currentSelectedRow =3D cellController.row; var currentSelectedCol =3D cellController.col - 1; // skip checkbox = col var selectDelay =3D 100; currentSelectedRow +=3D deltaRow; if (currentSelectedRow < 0 || currentSelectedRow >=3D = visibleRowCount){ currentSelectedRow -=3D deltaRow; selectDelay =3D 500; // need longer delay to select cell until scroll = completes if (this.viewPort.scrollRows(deltaRow ) =3D=3D false) { if (deltaRow < 0){=20 // wrap to bottom of previous col if (currentSelectedCol =3D=3D 0) return; deltaRow =3D modelRowCount - visibleRowCount; currentSelectedRow =3D visibleRowCount - 1; currentSelectedCol -=3D 1; } else { // wrap to top of next col deltaRow =3D visibleRowCount - modelRowCount; currentSelectedRow =3D 0; if (currentSelectedCol < visibleColumnCount-1){=20 currentSelectedCol +=3D 1; } else { this.viewPort.scrollCols(1); }=20 } this.viewPort.scrollRows(deltaRow); } } currentSelectedCol +=3D deltaCol; if ((currentSelectedCol < this.options.numFrozenColumns && deltaCol < = 0) || currentSelectedCol >=3D visibleColumnCount){ currentSelectedCol -=3D deltaCol; selectDelay =3D 500; // need longer delay to select cell until scroll = completes if (this.viewPort.scrollCols( deltaCol ) =3D=3D false) { if (deltaCol < 0){=20 if (currentSelectedCol > 0) { // navigate in frozen columns currentSelectedCol +=3D deltaCol; } else { // wrap to end of previous row if (currentSelectedRow =3D=3D 0) return; deltaCol =3D modelColumnCount - visibleColumnCount; currentSelectedCol =3D visibleColumnCount - 1; currentSelectedRow -=3D 1; } } else { // wrap to beginning of next row deltaCol =3D visibleColumnCount - modelColumnCount; currentSelectedCol =3D 0; if (currentSelectedRow < visibleRowCount-1){=20 currentSelectedRow +=3D 1; } else { this.viewPort.scrollRows(1); }=20 } this.viewPort.scrollCols(deltaCol); } } // select the current cell after servicing the main event loop to = allow current events to complete // this was needed for AS-110508 to apply the left/right arrow event = to cell navigation only and not to cell editing too. this.currentCellController =3D = this.table.rows[currentSelectedRow].cells[currentSelectedCol+1].controlle= r; setTimeout(this.selectCell.bind(this), selectDelay ); }, =09 selectCell: function() { this.currentCellController.selectCell(); }, sortColumn: function(newSortCell,sortDir) { if (newSortCell !=3D this.sortCell) { this.sortDir =3D 'ASC'; if (this.sortCell) { this.sortCell.setSortImage('NO_SORT'); // remove current sort image } } else { this.sortDir =3D (this.sortDir =3D=3D 'ASC')?'DESC':'ASC'; // toggle } if (sortDir){ this.sortDir =3D sortDir; } this.sortCell =3D newSortCell; this.sortCell.setSortImage(this.sortDir); // show new sort image =09 // sort the model this.modelSortIndex =3D = this.viewPort.toModelIndex(this.sortCell.col-1); // skip checkbox column this.model.sort(this.modelSortIndex,this.sortDir); =09 // refresh the view this.viewPort.moveScroll(0); this.viewPort.refreshContents(0); }, updateSortImage: function(){ if (!this.viewPort){ return; } if (this.sortCell) { this.sortCell.setSortImage('NO_SORT'); // remove current sort image } var viewSortIndex =3D this.viewPort.toViewIndex(this.modelSortIndex); if (viewSortIndex < 0){ this.sortCell =3D null; } else { var headerTable =3D $(this.table.id + '_header'); if (!headerTable){ return; } this.sortCell =3D = headerTable.rows[0].cells[viewSortIndex+1].controller; // add 1 to = account for check column =09 this.sortCell.setSortImage(this.sortDir); } }, =09 //focused is restored only in AX view since user has to leave the page = for update restoreFocus: function() { if ( !this.options || !this.options.accessibleMode || = !Gradebook.getModel().lastFocusedRow || = !Gradebook.getModel().lastFocusedCol ) return; if ( GradebookUtil.isIE() ) { setTimeout(this.doRestoreFocus.bind(this), 0 ); } else { this.doRestoreFocus(); } }, =09 doRestoreFocus: function() { var lastFocusedRow =3D Gradebook.getModel().lastFocusedRow; var lastFocusedCol =3D Gradebook.getModel().lastFocusedCol; = this.table.rows[lastFocusedRow].cells[lastFocusedCol].controller.selectCe= ll(); Gradebook.getModel().lastFocusedRow =3D null; Gradebook.getModel().lastFocusedCell =3D null; } =09 }; //Gradebook.GridViewPort = -------------------------------------------------- Gradebook.GridViewPort =3D Class.create(); Gradebook.GridViewPort.prototype =3D { initialize: function(table, model, options,grid) { this.isIE =3D GradebookUtil.isIE(); this.isNS7 =3D GradebookUtil.isNS7(); this.table =3D table; this.model =3D model; this.options =3D options; this.grid =3D grid; this.lastPixelOffset =3D 0; this.colOffset =3D 0; this.lastRowPos =3D 0; this.startScrollLeft =3D 0; this.headerTableId =3D this.table.id + '_header'; this.headerTable =3D $(this.headerTableId); if (!this.headerTable)=20 this.headerTable =3D this.table; this.numVisibleRows =3D this.table.rows.length; if ( this.headerTable.rows[0] ) { this.numVisibleCols =3D this.headerTable.rows[0].cells.length-1; // = don't include check column } this.rowHeight =3D this.table.offsetHeight/this.numVisibleRows; this.div =3D this.table.parentNode; this.initScrollers(); }, unload: function() { this.grid =3D null; this.model =3D null; this.table =3D null; this.headerTable =3D null; this.div =3D null; this.scrollerDiv =3D null; this.heightDiv =3D null; this.scrollerDivH =3D null; this.widthDiv =3D null; this.options =3D null; }, =09 modelChanged: function() { this.refreshContentsH(); }, =09 getModelGridCell: function(row, col) { // in accessibleMode, row 0 is header, so we need to compensate to get = model row if (this.options.accessibleMode && row > 0){ row -=3D 1; } if (col > 0) col -=3D 1; // skip check col if (col >=3D this.options.numFrozenColumns)=20 col +=3D this.colOffset;=20 var iterators =3D this.model.getRowIterators(row+this.lastRowPos, 1, = col); if (!iterators || iterators.length !=3D 1 || !iterators[0].hasNext()){ GradebookUtil.error('getModelGridCell cannot get grid cell for row: = '+ row+' col: '+col); } return iterators[0].next(); }, getHeaderGridCell: function(col) { if (col > 0) col -=3D 1; // skip check col if (col >=3D this.options.numFrozenColumns)=20 col +=3D this.colOffset;=20 var iterator =3D this.model.getColDefIterator(col); if (!iterator || !iterator.hasNext()){ GradebookUtil.error('getHeaderGridCell cannot get header cell for = col: '+col); } return iterator.next(); }, getNumVisibleRows: function() { return this.numVisibleRows; }, getNumVisibleCols: function() { return this.numVisibleCols; }, populateRow: function(htmlRow, frozenColRowIterator, = scrollableColRowIterator) { var numFrozenColumns =3D this.options.numFrozenColumns; for (var j=3D0; j < (this.numVisibleCols); j++) { var iterator =3D (j < = numFrozenColumns)?frozenColRowIterator:scrollableColRowIterator; var gridCell =3D iterator.next(); var htmlCell =3D htmlRow.cells[j+1]; // set check box column based on isRowChecked flag for first grid = cell if (j =3D=3D 0){ var checkInput =3D = GradebookUtil.getChildElementByClassName(htmlRow.cells[0], 'input', = 'checkInput'); checkInput.checked =3D gridCell.isRowChecked(); } htmlCell.controller.renderHTML(gridCell); } }, =20 refreshContents: function(rowOffset) { if (this.model.getNumRows() =3D=3D 0) return; if (this.options.accessibleMode){ this.refreshAccessibleContents(); return; } Gradebook.CellController.prototype.hideAllSavingDivs(); var numRows =3D this.numVisibleRows; var numModelRows =3D this.model.getNumRows(); if (rowOffset + numRows > numModelRows) rowOffset =3D numModelRows - numRows - 1 var numFrozenColumns =3D this.options.numFrozenColumns; var frozenColRowIterators =3D this.model.getRowIterators(rowOffset, = numRows, 0); var scrollableColRowIterators =3D frozenColRowIterators; if (this.numVisibleCols > numFrozenColumns){ scrollableColRowIterators =3D this.model.getRowIterators(rowOffset, = numRows, numFrozenColumns+this.colOffset); } for (var i=3D0; i < numRows; i++) { this.populateRow(this.table.rows[i], frozenColRowIterators[i], = scrollableColRowIterators[i]); } this.lastRowPos =3D rowOffset; }, refreshAccessibleContents: function() { var numModelRows =3D this.model.getNumRows(); var iters =3D this.model.getRowIterators(); var numCols =3D this.table.rows[0].cells.length - 1; // skip check = column var start =3D new Date().getTime(); if (this.refreshRowCounter =3D=3D undefined) this.refreshRowCounter = =3D 0; for (var i =3D this.refreshRowCounter; i < numModelRows; i++) { var htmlRowIndex =3D i+1; // skip header row var htmlRow =3D this.table.rows[htmlRowIndex]; // if we are rendering for more than 3 seconds, give Firefox some = time to get // rid of the "unresponsive script" message. if(new Date().getTime() - start > 3000){ setTimeout(this.refreshAccessibleContents.bind(this), 0 ); return; } =09 for (var j=3D0; j < numCols; j++) { var gridCell =3D iters[i].next(); var htmlCell =3D htmlRow.cells[j+1]; // skip check column if (htmlCell.controller =3D=3D undefined){ new Gradebook.CellController(htmlCell, this.grid, htmlRowIndex, = j+1, true ); } htmlCell.controller.renderHTML(gridCell); // set check box column based on isRowChecked flag for first grid = cell if (j =3D=3D 0){ var htmlCell =3D htmlRow.cells[0]; if (htmlCell.controller =3D=3D undefined){ new Gradebook.CellController(htmlCell, this.grid, htmlRowIndex, j, = true ); } var checkInput =3D $(htmlCell).down('input'); checkInput.checked =3D gridCell.isRowChecked(); } } var rowTitle =3D gradebook2Messages['selectUserMsg']; this.grid.getAbbrColIndexs().each(function(idx) { var cell =3D htmlRow.cells[ idx + 1 ]; // skip checkbox cell rowTitle +=3D " " + cell.controller.getGridCell().getValue(); }); htmlRow.cells[ 0 ].controller.checkInput.title =3D rowTitle; =09 this.refreshRowCounter++; } this.refreshRowCounter =3D null; }, refreshContentsH: function() { // refresh data cells this.refreshContents(this.lastRowPos); // refresh the header cells var numFrozenColumns =3D this.options.numFrozenColumns; var hdrCells =3D null; var hdr =3D $(this.table.id+'_header'); if (hdr)=20 hdrCells =3D hdr.rows[0].cells; else hdrCells =3D this.table.rows[0].cells; if ( !hdrCells ) return; var frozenColIterator =3D this.model.getColDefIterator(0); var scrollableColIterator =3D null; if (this.numVisibleCols > numFrozenColumns){ scrollableColIterator =3D = this.model.getColDefIterator(numFrozenColumns+this.colOffset); } for (var i=3D0; i < this.numVisibleCols; i++) { var iterator =3D (i < = numFrozenColumns)?frozenColIterator:scrollableColIterator; var htmlCell =3D hdrCells[i+1]; // skip check column var colDef =3D iterator.next(); if (htmlCell.controller =3D=3D undefined){ new Gradebook.CellController(htmlCell, this.grid, 0, i+1, true); } htmlCell.controller.renderHeaderCellHTML( colDef ); =20 } // add the check all listener if not present if ( !hdrCells[0].controller ) new = Gradebook.CellController(hdrCells[0], this.grid, 0, 0, true); this.grid.updateSortImage(); }, visibleHeight: function() { return parseInt(GradebookUtil.getElementsComputedStyle(this.div, = 'height')); }, toViewIndex: function(modelSortIndex){ var numFrozenColumns =3D this.options.numFrozenColumns; if (modelSortIndex < numFrozenColumns){ return modelSortIndex; } var vi =3D (modelSortIndex - this.colOffset); if (numFrozenColumns <=3D vi && vi < this.numVisibleCols)=20 return vi; else return -1; }, toModelIndex: function(viewSortIndex) { if (viewSortIndex =3D=3D -1)=20 return -1; var numFrozenColumns =3D this.options.numFrozenColumns; var mi =3D (viewSortIndex < numFrozenColumns) ? viewSortIndex : = (this.colOffset + viewSortIndex); return mi; }, // scrolling management initScrollers: function() { this.createVScrollBar(); this.createHScrollBar(); this.lastVScrollPos =3D 0; if ( this.scrollerDivH !=3D null )=20 this.lastHScrollPos =3D this.scrollerDivH.scrollLeft; else=20 this.lastHScrollPos =3D 0; this.startScrollLeft =3D this.lastHScrollPos; }, createVScrollBar: function() { // see comments on createHScroolBar() if (this.table.rows.length >=3D this.model.getNumRows()) return; var visibleHeight =3D this.visibleHeight(); // create the outer div... this.scrollerDiv =3D document.createElement("div"); var scrollerStyle =3D this.scrollerDiv.style; scrollerStyle.borderRight =3D this.options.scrollerBorderRight; scrollerStyle.position =3D "absolute"; var tableWidth =3D this.isIE? this.table.offsetWidth-2+"px" : = this.isNS7? this.table.offsetWidth-15+"px" : = this.table.offsetWidth-3+"px"; if ( document.documentElement.dir =3D=3D 'rtl' )=20 scrollerStyle.right =3D tableWidth; else=20 scrollerStyle.left =3D tableWidth; scrollerStyle.top =3D "0px"; scrollerStyle.width =3D this.isNS7 ? "30px" : "19px"; scrollerStyle.height =3D visibleHeight + "px"; scrollerStyle.overflow =3D "auto"; // create the inner div... this.heightDiv =3D document.createElement("div"); this.heightDiv.style.width =3D "1px"; =09 this.rowHeight =3D = this.table.rows[this.table.rows.length-1].cells[1].offsetHeight; var divHeight =3D this.rowHeight * this.model.getNumRows(); divHeight +=3D ( this.numVisibleRows + 1 ); // looks like we are = missing one pix per row, if not added we cannot scroll to the last item =09 this.heightDiv.style.height =3D parseInt(divHeight) + "px" ; this.scrollerDiv.appendChild(this.heightDiv); = Event.observe(this.scrollerDiv,'scroll',this.handleVScroll.bindAsEventLis= tener(this)); GradebookUtil.debug('createVScrollBar - this.rowHeight =3D = '+this.rowHeight); GradebookUtil.debug('createVScrollBar - visibleHeight =3D = '+visibleHeight); GradebookUtil.debug('createVScrollBar - numVisibleRows =3D = '+this.numVisibleRows); GradebookUtil.debug('createVScrollBar - this.model.getNumRows() =3D = '+this.model.getNumRows()); GradebookUtil.debug('createVScrollBar - this.heightDiv.style.height = =3D '+this.heightDiv.style.height); this.table.parentNode.parentNode.insertBefore( this.scrollerDiv, = this.table.parentNode.nextSibling ); var eventName =3D this.isIE ? "mousewheel" : "DOMMouseScroll"; Event.observe(this.table, eventName,=20 function(evt) { if (evt.wheelDelta>=3D0 || evt.detail < 0) = //wheel-up this.scrollerDiv.scrollTop -=3D = (2*this.rowHeight); else this.scrollerDiv.scrollTop +=3D = (2*this.rowHeight); this.handleVScroll(); }.bindAsEventListener(this),=20 false); }, createHScrollBar: function() { // logic here is to create an div the same width that the non = frozen columns // then put inside it an invisible inner div that would be the = width of the non // frozen if they were all visible; by setting the parent with = overflow: auto=20 // scroll bars will appear, and the scrolling events are captured = to decide what // portion of the table should be displayed. if (!this.headerTable.rows[0] || = this.headerTable.rows[0].cells.length > this.model.getNumColDefs()) = return; var totalColumnCount =3D this.model.getNumColDefs(); var visibleColumnCount =3D this.numVisibleCols; var numFrozenColumns =3D this.options.numFrozenColumns; this.maxColOffset =3D totalColumnCount - (visibleColumnCount - = numFrozenColumns) - 1; var visibleHeight =3D this.isIE ? this.table.offsetHeight - 23 : = this.isNS7 ? this.table.offsetHeight - 16 : this.table.offsetHeight - 3; var checkColumnWidth =3D = this.headerTable.rows[0].cells[0].offsetWidth; // set avg col width to be based on actual cell width (not = including padding, etc.) // this will allow scrolling to be more accurate this.avgColWidth =3D this.headerTable.rows[0].cells[1].offsetWidth; var frozenWidth =3D (numFrozenColumns * this.avgColWidth) + = checkColumnWidth; visibleWidth =3D ( visibleColumnCount - numFrozenColumns ) * = this.avgColWidth; // create the outer div... this.scrollerDivH =3D document.createElement("div"); var scrollerStyle =3D this.scrollerDivH.style; scrollerStyle.position =3D "absolute"; if ( document.documentElement.dir =3D=3D 'rtl' )=20 scrollerStyle.right =3DfrozenWidth + "px"; else=20 scrollerStyle.left =3D frozenWidth + "px"; scrollerStyle.top =3D visibleHeight + "px"; scrollerStyle.height =3D this.isIE ? "40px" : this.isNS7 ? = "30px" : "19px"; scrollerStyle.width =3D visibleWidth + "px"; scrollerStyle.overflow =3D "auto"; // create the inner div... this.widthDiv =3D document.createElement("div"); this.widthDiv.style.height =3D "1px"; this.widthDiv.style.direction =3D 'ltr'; this.widthDiv.style.width =3D ( this.avgColWidth * ( = totalColumnCount-numFrozenColumns ) ) + "px"; this.scrollerDivH.appendChild(this.widthDiv); = Event.observe(this.scrollerDivH,'scroll',this.handleHScroll.bindAsEventLi= stener(this)); if (this.scrollerDiv){ this.table.parentNode.parentNode.insertBefore( this.scrollerDivH, = this.scrollerDiv.nextSibling ); } else { this.table.parentNode.parentNode.insertBefore( this.scrollerDivH, = this.table.parentNode.nextSibling ); } }, rowToPixel: function(rowOffset) { return (rowOffset / this.model.getNumRows()) * = this.heightDiv.offsetHeight }, =20 moveScroll: function(rowOffset) { if (this.scrollerDiv){ this.scrollerDiv.scrollTop =3D this.rowToPixel(rowOffset); } }, /* When scrolling, IE sends multiple onscroll events for a single = scroll action by the user. To get around this, we set a timer and wait until the dust settles = before doing the scroll Here is info on the work around: = http://support.microsoft.com/kb/238004 */ // scroll numRows, can be negative. returns false if scroll request is = out of range scrollRows: function(numRows) { if (!this.scrollerDiv) return false; if ((numRows < 0 && this.scrollerDiv.scrollTop =3D=3D 0) ||=20 (numRows > 0 && this.lastRowPos =3D=3D (this.model.getNumRows() - = this.numVisibleRows))) { return false; } this.ignoreOnVscroll =3D true; this.scrollerDiv.scrollTop +=3D (numRows * this.rowHeight); setTimeout(this.doVScroll.bind(this), 200 ); }, handleVScroll: function(evt) { if (this.ignoreOnVscroll) return; this.ignoreOnVscroll =3D true; setTimeout(this.doVScroll.bind(this), 200 ); }, doVScroll: function() { Gradebook.CellController.prototype.onGridScroll(); var incomingscrollTop =3D this.scrollerDiv.scrollTop; var scrollDiff =3D this.lastVScrollPos-this.scrollerDiv.scrollTop; if (scrollDiff !=3D 0.00) { var r =3D this.scrollerDiv.scrollTop % this.rowHeight; if (r !=3D 0) { if (scrollDiff < 0 ) { this.scrollerDiv.scrollTop +=3D (this.rowHeight-r); } else { this.scrollerDiv.scrollTop -=3D r; } } var contentOffset =3D parseInt(this.scrollerDiv.scrollTop / = parseInt(this.rowHeight)); GradebookUtil.debug('doVScroll - incomingscrollTop =3D = '+incomingscrollTop+ ' r =3D '+r+ ' new scrollTop =3D '+this.scrollerDiv.scrollTop+ ' lastVScrollPos =3D '+this.lastVScrollPos+ ' contentOffset =3D '+contentOffset); this.refreshContents(contentOffset); this.lastVScrollPos =3D this.scrollerDiv.scrollTop; } this.ignoreOnVscroll =3D false; }, handleHScroll: function(evt) { if (this.ignoreOnHscroll) return; this.ignoreOnHscroll =3D true; setTimeout(this.doHScroll.bind(this), 200 ); }, =09 // scroll numCols, can be negative. returns false if scroll request is = out of // range scrollCols : function(numCols) { if (!this.scrollerDivH) return false; var totalColumnCount =3D this.model.getNumColDefs(); if ((numCols < 0 && this.scrollerDivH.scrollLeft =3D=3D 0) || (numCols > 0 && this.colOffset =3D=3D = (this.model.getNumColDefs() - this.numVisibleCols))) { return false; } this.ignoreOnHscroll =3D true; /* * so here we need to translate delta to actual scroll value. The = delta is screen orientation agnostic (we need to move to that col in the = model)=20 * we need to translate the move in a pixel move to the left: a move = to the left in l2r means we move to the next col, * while in r2l it means we move to previous col, thus the inversion = of orientation if r2l. */ this.scrollerDivH.scrollLeft +=3D (numCols * this.avgColWidth * = (page.util.isRTL()?-1:1) ); setTimeout(this.doHScroll.bind(this), 200); return true; }, doHScroll: function() { Gradebook.CellController.prototype.onGridScroll(); var scrollDiff =3D this.lastHScrollPos - = this.scrollerDivH.scrollLeft; if (scrollDiff !=3D 0.00) { // To align the column scroll - we move by column increment var r =3D this.scrollerDivH.scrollLeft % this.avgColWidth; if (r !=3D 0) { if (scrollDiff < 0 ) { this.scrollerDivH.scrollLeft +=3D (this.avgColWidth-r); } else { this.scrollerDivH.scrollLeft -=3D r; } } if ( document.documentElement.dir =3D=3D 'rtl' ) { // Subtract the max scroll left with the current one and divide = with the avgColWidth=20 this.colOffset =3D parseInt( (this.startScrollLeft - = this.scrollerDivH.scrollLeft) / this.avgColWidth); } else { this.colOffset =3D parseInt(this.scrollerDivH.scrollLeft / = this.avgColWidth); } this.colOffset =3D Math.min(this.colOffset,this.maxColOffset); this.refreshContentsH(); this.lastHScrollPos =3D this.scrollerDivH.scrollLeft; } this.ignoreOnHscroll =3D false; } }; //********************************************************************* //************ Gradebook.CellController ******************************* //********************************************************************* Gradebook.CellController =3D Class.create(); Gradebook.CellController.prototype =3D { /* Controls all user interaction with an HTM table cell and its = corresponding grid model cell including: =09 cell-type specific context menus sorting by clicking on header cell selecting a table cell editing of cell value, which includes: going into edit mode - showing an input text values to be entered validating input as typed listening for certain keys to submit or cancel editing submitting changes to server and showing "Saving indicator" check box in first column for selecting students rendering of cell value and state indicators grade comment & column into popups */ initialize: function(htmlCell, grid, row, column, isHeaderTable ) { =09 this.htmlCell =3D $(htmlCell); this.htmlCell.id =3D row+','+column; this.htmlCell.controller =3D this; this.grid =3D grid; this.row =3D row; this.col =3D column; this.isHeaderTable =3D isHeaderTable; Gradebook.CellController.tableId =3D this.grid.table.id; var accessibleMode =3D this.grid.options.accessibleMode; this.isTopLeft =3D (this.row =3D=3D 0 && this.col =3D=3D 0) && = isHeaderTable; if (accessibleMode) { this._accessibleInit(); } else { this._nonAccessibleInit(); } }, _nonAccessibleInit: function( ) { // get elements in cell this.viewDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbView'); this.editDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbEdit'); this.editInput =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'input', = 'editInput'); this.textDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbText'); this.dataDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbData'); this.titleAnchor =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'a', = 'titleAnchor'); this.contextMenuAnchor =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'a', 'cmimg'); this.checkInput =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'input', = 'checkInput'); if ( this.isTopLeft ) { Event.observe(this.checkInput, 'click', = this.toggleSelection.bindAsEventListener(this)); GradebookViewSpreadsheet.grid.checkAllCellController =3D this; return; } // add listeners to cell & anchors = Event.observe(this.htmlCell,'mouseover',this.onMouseOver.bindAsEventListe= ner(this)); = Event.observe(this.htmlCell,'mouseout',this.onMouseOut.bindAsEventListene= r(this)); // add listeners to cell elements if (this.contextMenuAnchor) { = Event.observe(this.contextMenuAnchor,'click',this.onContextMenuClicked.bi= ndAsEventListener(this)); } if (this.row =3D=3D 0 && this.col !=3D 0 && this.textDiv && = this.dataDiv) { this.getGridCell =3D this.getHeaderGridCell; = Event.observe(this.textDiv,'click',this.onHeaderClicked.bindAsEventListen= er(this)); Event.observe(this.dataDiv,'focus', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.dataDiv,'mouseover', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.dataDiv,'mouseout', = this.onHeaderMouseOut.bindAsEventListener(this)); this.htmlCell.style.cursor =3D 'pointer'; } else { this.getGridCell =3D this.getGradeGridCell; if (this.editInput){ = Event.observe(this.editInput,'keydown',this.onInputKeyDown.bindAsEventLis= tener(this)); = Event.observe(this.editInput,'keyup',this.onInputKeyUp.bindAsEventListene= r(this)); } =09 if (this.checkInput) { = Event.observe(this.checkInput,'click',this.onCheckBoxClicked.bindAsEventL= istener(this)); } else { = Event.observe(this.htmlCell,'click',this.onClicked.bindAsEventListener(th= is)); } if ( this.titleAnchor ) = Event.observe(this.titleAnchor,'focus',this.onFocus.bindAsEventListener(t= his) ); } }, =09 _accessibleInit: function( ) { // get elements in cell this.checkInput =3D this.htmlCell.down('input'); this.titleAnchor =3D this.htmlCell.down('a'); this.contextMenuAnchor =3D (this.titleAnchor) ? this.titleAnchor : = this.htmlCell; if ( this.isTopLeft )=20 { Event.observe(this.checkInput, 'click', = this.toggleSelection.bindAsEventListener(this)); GradebookViewSpreadsheet.grid.checkAllCellController =3D this; return; } if (this.row =3D=3D 0 && this.col !=3D 0) { this.dataDiv =3D this.titleAnchor;=20 this.getGridCell =3D this.getHeaderGridCell; Event.observe(this.titleAnchor,'focus', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.htmlCell,'mouseover', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.htmlCell,'mouseout', = this.onHeaderMouseOut.bindAsEventListener(this)); }=20 else=20 { this.getGridCell =3D this.getGradeGridCell; } if (this.checkInput)=20 { = Event.observe(this.checkInput,'click',this.onCheckBoxClicked.bindAsEventL= istener(this)); } else if (this.getGridCell().getContextMenuInfo(this))=20 { = Event.observe(this.contextMenuAnchor,'click',this.onContextMenuClicked.bi= ndAsEventListener(this)); } else { // no link/menu for calculated grades, grade goes right in cell=20 this.titleAnchor.remove(); this.titleAnchor =3D this.htmlCell; } }, =09 isHeaderCell: function() { return this.isHeaderTable; }, unload: function() { this.grid =3D null; this.htmlCell.controller =3D null; this.htmlCell =3D null; this.grid =3D null; this.viewDiv =3D null; this.editDiv =3D null; this.editInput =3D null; this.textDiv =3D null; this.dataDiv =3D null; this.titleAnchor =3D null; this.contextMenuAnchor =3D null; this.checkInput =3D null; this.getGridCell =3D null; this.editGridcell =3D null; }, //************ checkbox logic ******************************* onCheckBoxClicked: function(evt) { var gridcell =3D this.getGridCell(); gridcell.setRowChecked(this.checkInput.checked); var userId =3D gridcell.userId; if(this.checkInput.checked){ if (evt.shiftKey && = Gradebook.CellController.prototype.lastCheckedUserId){ = this.grid.model.checkedRangeOfStudents(gridcell.userId,Gradebook.CellCont= roller.prototype.lastCheckedUserId); } Gradebook.CellController.prototype.lastCheckedUserId =3D = gridcell.userId; } else { Gradebook.CellController.prototype.lastCheckedUserId =3D null; } =09 this.updateNumSelectedIndicator(); }, toggleSelection: function() { if( this.checkInput.checked ) { this.onSelectAllStudents(); } else { this.onSelectNoStudents(); } }, onSelectAllStudents: function(evt) { this.grid.model.checkedAllStudents(); this.updateNumSelectedIndicator(); }, onSelectNoStudents: function(evt) { this.grid.model.checkedNoStudents(); this.updateNumSelectedIndicator(); }, =09 onSelectInvertStudents: function(evt) { this.grid.model.invertCheckedStudents(); this.updateNumSelectedIndicator(); }, =09 onSortCheckedStudents: function(evt) { // always show checked students at top this.grid.sortColumn(this,'DESC'); }, =09 updateNumSelectedIndicator: function() { var ids =3D this.grid.model.getCheckedStudentIds(); $("rowindicator").update( ids.length ); }, =09 =09 //************ sort logic ******************************* onHeaderClicked: function(evt) { this.grid.sortColumn(this); }, setSortImage: function(dir) { this.htmlCell.removeClassName('sortedUp'); this.htmlCell.removeClassName('sortedDown'); if ( dir =3D=3D 'ASC' ){ this.htmlCell.addClassName('sortedUp'); } else if ( dir =3D=3D 'DESC' ){ this.htmlCell.addClassName('sortedDown'); } }, onSortAscending: function(dir) { this.grid.sortColumn(this,'ASC'); this.contextMenuDiv.hide(); }, =09 onSortDescending: function(dir) { this.grid.sortColumn(this,'DESC'); this.contextMenuDiv.hide(); }, =09 //************ select cell logic ******************************* onFocus: function( evt ) { document.ignoreOnClick =3D true; //IE7 issue where focus is followed = by on click on the document - AS-123689 window.setTimeout( "document.ignoreOnClick =3D false", 2000 ); this.onClicked( evt ); }, =09 onClicked: function(evt) { var eventTarget =3D evt.target ? evt.target : evt.srcElement; Gradebook.CellController.prototype.lastEventTarget =3D eventTarget; this.selectCell( eventTarget ); Event.stop( evt ); }, =09 isSelected: function() { return (Gradebook.CellController.currentSelectedCell =3D=3D = this.htmlCell); }, =09 selectCell: function( optionalEventTarget ) { Gradebook.CellController.prototype.tableHasFocus =3D true; if ( this.isSelected() || this.checkInput ) return; this.closePopups(); this.unselectCurrentCell( true /*do not clear status bar */ ); GradebookUtil.debug('selectCell row =3D '+this.row+' col =3D = '+this.col); var gridCell =3D this.getGridCell(); Gradebook.CellController.currentSelectedCell =3D this.htmlCell; var hascm =3D this.hasContextMenu(); Element.addClassName(this.htmlCell, hascm?"cellClick":"cellClickNoCM") Element.addClassName(this.htmlCell.parentNode, "focusRowHigh"); var headerTable =3D $(Gradebook.CellController.tableId + '_header'); if (headerTable){ = Element.addClassName(headerTable.rows[0].cells[this.col],"focusHeader"); }=09 if (!this.isEditing && this.titleAnchor){ // no need to put focus on the anchor if it is already the active = element if ( !optionalEventTarget || ( optionalEventTarget !=3D = this.titleAnchor ) ) this.titleAnchor.focus(); } else if ( this.grid.options.accessibleMode ) { this.htmlCell.focus(); } this.setTaskbarInfo(gridCell); if (!this.grid.options.accessibleMode) this.startEdit(); }, showHeaderInfoInTaskbar: function() { var colDef =3D this.getGridCell(); var type =3D colDef.getType();=20 if ( type =3D=3D "student" ) { GradebookViewSpreadsheet.setMsgInTaskBar( colDef.getName() ); } else { if ( type =3D=3D "grade" ) points =3D NumberFormatter.getDisplayFloat( colDef.points ); else=20 points =3D GradebookUtil.getMessage( 'variesPerStudentMsg' ); GradebookViewSpreadsheet.setHeaderInfoInTaskBar( colDef.getName(), = GradebookUtil.getMessage( colDef.getType() + 'Msg' ),=20 points ); } }, =09 setTaskbarInfo: function(gridCell) { if (!gridCell) {=20 GradebookViewSpreadsheet.clearTaskBar(); } else if (gridCell.isGrade()) { var colDef =3D gridCell.colDef; var gradeType =3D ' ' var pointsPossible =3D ' ' var primaryDisplay =3D ' ' var visibileToStudents =3D ' ' try { if ( gridCell.canEdit() ) {=20 gradeType =3D = GradebookUtil.getMessage((gridCell.isOverride())?'overrideGradeMsg':'grad= eMsg'); } else {=20 gradeType =3D GradebookUtil.getMessage( colDef.getType() + 'Msg' ); } primaryDisplay =3D colDef.primarySchema.name; pointsPossible =3D NumberFormatter.getDisplayFloat( = gridCell.getPointsPossible() ); visibileToStudents =3D = GradebookUtil.getMessage((colDef.vis)?'isMsg':'isNotMsg'); } catch ( ignore ) { }; = GradebookViewSpreadsheet.setTaskBar(gradeType,pointsPossible,primaryDispl= ay,visibileToStudents); } else { GradebookViewSpreadsheet.setTaskBar(); } }, unselectCell: function( doNotClearStatusBar ) { GradebookUtil.debug('unselectCell row =3D '+this.row+' col =3D = '+this.col); Element.removeClassName(this.htmlCell, "cellClick"); Element.removeClassName(this.htmlCell, "cellClickNoCM"); Element.removeClassName(this.htmlCell.parentNode, "focusRowHigh"); var headerTable =3D $(Gradebook.CellController.tableId + '_header'); if (headerTable){ = Element.removeClassName(headerTable.rows[0].cells[this.htmlCell.cellIndex= ],"focusHeader"); }=09 if ( !doNotClearStatusBar ) this.setTaskbarInfo(); }, unselectCurrentCell: function( doNotClearStatusBar ) { var cell =3D Gradebook.CellController.currentSelectedCell; if (cell)=20 { var commit =3D false; var cellController =3D cell.controller; if ( cellController)=20 { if ( cellController.hasUncommittedChanges()) { var validationError =3D = cellController.editGridcell.validate(cellController.editInput.value); if (!validationError) { commit =3D = confirm(GradebookUtil.getMessage('uncommitedchangeErrorMsg')); }=20 else=20 { = alert(GradebookUtil.getMessage('uncommitedchangeNotSavedErrorMsg')); } } cellController.stopEdit(commit, true /* no focus on the cell we are = exiting */); cellController.unselectCell( doNotClearStatusBar ); } Gradebook.CellController.currentSelectedCell =3D null; } }, //************ edit grade logic ******************************* =09 startEdit: function(){ try { this.editGridcell =3D this.getGridCell(); if (!this.editGridcell.canEdit() || !this.isSelected() || = !this.editInput) return; GradebookUtil.debug('startEdit row =3D '+this.row+' col =3D = '+this.col); this.isEditing =3D true; this.editInput.value =3D this.editGridcell.getEditValue(); this.viewDiv.style.display =3D "none"; this.editDiv.style.display =3D "block"; this.editInput.focus(); this.editInput.select(); } catch ( ignore ) { } }, onInputKeyDown: function(evt){ GradebookUtil.debug('onInputKeyDown row =3D '+this.row+' col =3D = '+this.col+' keyCode =3D '+evt.keyCode); switch (evt.keyCode) { case (Event.KEY_TAB): this.stopEdit(true, false); //commit, Set Focus back to cell content Event.stop( evt ); break; } }, =09 onInputKeyUp: function(evt){ Event.stop( evt ); GradebookUtil.debug('onInputKeyUp row =3D '+this.row+' col =3D = '+this.col+' keyCode =3D '+evt.keyCode); switch (evt.keyCode) { case (Event.KEY_UP): case (Event.KEY_DOWN): case (Event.KEY_LEFT): case (Event.KEY_RIGHT): evt.cancelBubble =3D false; // allow event to bubble so attempted = navigation will occur break; case (Event.KEY_RETURN): try { Gradebook.noResize =3D true; /*IEHack*/ if (this.hasUncommittedChanges() && this.stopEdit(true)){ = //commit // select cell below this.grid.selectRelativeCell(1, 0); } } finally { Gradebook.noResize =3D false; } break; case (Event.KEY_ESC): =09 this.stopEdit(false); // don't commit break; default: var validationError =3D this.editGridcell.validate( = this.editInput.value, true ); // match partial if (validationError){ this.showValidationError(validationError); } else { this.hideValidationError(); } } },=09 // returns false if validation error occurs when committing stopEdit: function(commit, doNotSetFocus){ if (!this.isEditing){ return; } GradebookUtil.debug('stopEdit row =3D '+this.row+' col =3D = '+this.col+' commit =3D '+commit); if (commit && this.hasUncommittedChanges()){ var inputVal =3D this.editInput.value; var validationError =3D this.editGridcell.validate( inputVal ); if (validationError){ this.showValidationError(validationError); this.editInput.select(); this.editInput.focus(); return false; } var save =3D true; if (inputVal =3D=3D '') inputVal =3D '-'; // confirm if OK to delete or null grade if (inputVal =3D=3D '-'){ if (this.editGridcell.v =3D=3D '-'){ save =3D false; } else { var msg =3D = (this.editGridcell.isOverride()?'confirmRevertMsg':'confirmNullMsg'); save =3D confirm(GradebookUtil.getMessage(msg)); } } if (save){ // send update to server this.editGridcell.update(inputVal); =09 // show saving message this.addSavingDiv(); =09 } } this.hideValidationError(); this.isEditing =3D false; this.editGridcell =3D null; this.viewDiv.style.display =3D "block"; if (!doNotSetFocus){ this.titleAnchor.focus(); } this.editDiv.style.display =3D "none"; return true; }, hasUncommittedChanges: function(evt){ return (this.isEditing && this.editInput.value !=3D = this.editGridcell.getEditValue()); },=09 //************ rendering logic ******************************* renderHTML: function(gridCell) { var anchorVal; var altVal; if (gridCell.savingDiv){ this.showSavingDiv(gridCell.savingDiv); gridCell.savingDiv.htmlCell =3D this.htmlCell; } else if (gridCell.isExempt()){ anchorVal =3D gridImages.exemptGrade; altVal =3D gridCell.getAltValue(); } else if (gridCell.needsGrading() && !gridCell.isOverride()){ anchorVal =3D gridImages.needsGrading; } else if (gridCell.attemptInProgress() && !gridCell.isOverride()){ anchorVal =3D gridImages.attemptInProgress; } else if (gridCell.isComplete()){ anchorVal =3D gridCell.getCellValue(); altVal =3D GradebookUtil.getMessage('completedMsg'); } else if ( this.grid.options.accessibleMode && gridCell.isGrade() && = !gridCell.isGraded() ) { anchorVal =3D gridImages.noGrade; altVal =3D gridCell.getAltValue(); } else { anchorVal =3D gridCell.getCellValue(); altVal =3D gridCell.getAltValue(); } if (anchorVal !=3D undefined){ if (this.col =3D=3D 1 && !gridCell.isAvailable()){ anchorVal =3D gridImages.studentUnavailable+" "+anchorVal; } if (gridCell.isModified()){ anchorVal =3D gridImages.gradeModified+" "+anchorVal; } if (anchorVal.blank()){ anchorVal =3D ' ' } if (this.titleAnchor){ this.titleAnchor.innerHTML =3D anchorVal; this.titleAnchor.title =3D altVal; } } }, renderHeaderCellHTML: function( colDef ) { var anchorVal =3D ''; var title =3D colDef.name.unescapeHTML(); // IE hack so that unicode are properly escaped this.dataDiv.innerHTML =3D title; this.dataDiv.title =3D this.dataDiv.innerHTML; if (!colDef.isVisibleToStudents()){ anchorVal +=3D gridImages.itemNotVisible; } if (colDef.isPublic()){ anchorVal +=3D gridImages.externalGrade; } if (colDef.hasError()){ anchorVal +=3D gridImages.gradingError; } anchorVal +=3D title; this.dataDiv.innerHTML =3D anchorVal; }, =09 =20 addSavingDiv: function() { // create a "Saving" message by cloning the existing message var savingDiv =3D $("saveDiv").cloneNode(true); document.body.appendChild(savingDiv); // associate savingDiv with gridCell so saving message will scroll = with gridCell var gridCell =3D this.editGridcell; if (!gridCell) gridCell =3D this.getGridCell(); gridCell.savingDiv =3D savingDiv; savingDiv.gridCell =3D gridCell; savingDiv.htmlCell =3D this.htmlCell; =09 // store savingDivs in a class-level array to allow hiding all = savingDivs before scrolling refresh if (!Gradebook.CellController.prototype.savingDivs){ Gradebook.CellController.prototype.savingDivs =3D new Array(); } Gradebook.CellController.prototype.savingDivs.push(savingDiv); =09 // show the savingDiv on top of htmlCell this.showSavingDiv(savingDiv); =09 // show div for a period of time, then hide/remove it if grade change = has been committed on server setTimeout(function(){ var gc =3D savingDiv.gridCell; if (gc.isUncommitted){ savingDiv.timerExpired =3D true; } else { savingDiv.style.display =3D 'none'; savingDiv.parentNode.removeChild(savingDiv); gc.savingDiv =3D null; savingDiv.htmlCell.controller.renderHTML(gc); } },1000); }, showSavingDiv: function(savingDiv){ var pos =3D Element.cumulativeOffset( this.htmlCell ); savingDiv.style.top =3D pos.top + "px"; savingDiv.style.left =3D pos.left + "px"; if ( !this.htmlCell ) return;=20 savingDiv.style.minWidth =3D this.htmlCell.offsetWidth + "px"; savingDiv.style.minHeight =3D this.htmlCell.offsetHeight + "px"; savingDiv.style.display =3D "block"; }, hideAllSavingDivs: function(){ var savingDivs =3D Gradebook.CellController.prototype.savingDivs; if (!savingDivs) return; for (var i =3D savingDivs.length-1; i >=3D 0; i--){ if (!savingDivs[i].parentNode){ // remove div if no longer in document savingDivs.splice(i,1);=20 } else { savingDivs[i].style.display =3D 'none'; } } }, =09 removeAllSavingDivs: function(){ var savingDivs =3D Gradebook.CellController.prototype.savingDivs; if (!savingDivs) return; for (var i =3D savingDivs.length-1; i >=3D 0; i--){ var savingDiv =3D savingDivs[i]; if (savingDiv.gridCell) { savingDiv.gridCell.savingDiv =3D null; savingDiv.gridCell =3D null; savingDiv.htmlCell =3D null; } if (!savingDivs[i].parentNode){ // remove div if no longer in document savingDivs.splice(i,1);=20 } else { savingDivs[i].style.display =3D 'none'; } } }, =09 showValidationError: function(error) { var errDiv =3D $("errorDiv"); var p =3D GradebookUtil.getChildElementByClassName(errDiv, 'p', = 'errorDiv2'); p.innerHTML =3D error; errDiv.style.display =3D "block"; var pos =3D GradebookUtil._toAbsolute(this.htmlCell, false, = errDiv.offsetParent ); errDiv.style.top =3D pos.y + this.htmlCell.offsetHeight + "px"; errDiv.style.left =3D pos.x -1 + "px"; Element.addClassName(this.htmlCell, "cellError"); }, =09 hideValidationError: function() { var errDiv =3D $("errorDiv"); errDiv.style.display =3D "none"; Element.removeClassName(this.htmlCell, "cellError"); }, =09 hasContextMenu: function() { if ( this.isTopLeft ){ return true; } else { return (this.getGridCell().getContextMenuInfo(this) !=3D null); } }, =09 onMouseOver: function(evt) { if (!this.htmlCell || this.htmlCell.className =3D=3D "cellClick") = return; var hascm =3D this.hasContextMenu(); Element.addClassName(this.htmlCell, hascm?"cellhigh":"cellhighNoCM") var rowElement =3D this.htmlCell.parentNode; if (rowElement.className !=3D "focusRowHigh"){ Element.addClassName(rowElement, "rowhigh"); } }, =20 =09 onMouseOut: function(evt) { if (!this.htmlCell || this.htmlCell.className =3D=3D "cellClick") = return; Element.removeClassName(this.htmlCell, "cellhigh") Element.removeClassName(this.htmlCell, "cellhighNoCM") var rowElement =3D this.htmlCell.parentNode; if (rowElement.className !=3D "focusRowHigh"){ Element.removeClassName(rowElement, "rowhigh"); } }, =09 onHeaderMouseOut: function( evt ) { if ( Gradebook.CellController.currentSelectedCell ) { var selectedCell =3D = Gradebook.CellController.currentSelectedCell.controller; selectedCell.setTaskbarInfo( selectedCell.getGridCell() ); } else { GradebookViewSpreadsheet.clearTaskBar(); } }, //************ context menu logic ******************************* onContextMenuClicked: function(evt) { GradebookUtil.debug('onContextMenuClicked'); Gradebook.CellController.prototype.closePopups(evt); var gridCell =3D this.getGridCell(); var menuInfo =3D gridCell.getContextMenuInfo(this); if (menuInfo) { this.setContextMenuInfo(menuInfo); } Event.stop( evt ); }, onCloseContextMenu: function(evt) { Event.stop( evt ); if ( GradebookUtil.isIE() ){ if ( !this.isHeaderCell() )=20 { this.selectCell(); } else { this.contextMenuAnchor.focus(); } } else { this.contextMenuAnchor.focus(); } this.contextMenuDiv.hide(); $("shimDiv").hide(); }, =09 onContextMenuTabPress: function(evt, withShift) {=09 var ek =3D evt.keyCode || evt.which; if ( (ek =3D=3D Event.KEY_TAB) && ( withShift =3D=3D evt.shiftKey ) = ) { this.onCloseContextMenu(evt); Event.stop( evt ); } }, =20 =09 onContextMenuKeyDown: function(evt) {=09 var key =3D evt.keyCode || evt.which; if ( key =3D=3D Event.KEY_UP ) { =20 var elem =3D Event.element ( evt ); var index =3D this.menuItemLinks.indexOf( elem ); if ( index > 0 ) { this.menuItemLinks[index - 1].focus(); }=20 Event.stop( evt ); } else if ( key =3D=3D Event.KEY_DOWN ) { var elem =3D Event.element ( evt ); var index =3D this.menuItemLinks.indexOf( elem ); if ( index < ( this.menuItemLinks.length - 1 ) ) { this.menuItemLinks[index + 1].focus(); } =20 Event.stop( evt ); } else if ( key =3D=3D Event.KEY_ESC ) { this.onCloseContextMenu(evt); Event.stop( evt ); } }, =20 =09 setContextMenuInfo: function(menuInfo) { this.contextMenuId =3D menuInfo.id; var menuDiv =3D $(this.contextMenuId); this.contextMenuDiv =3D menuDiv; var firstItem =3D null; var lastItem =3D null; if (menuDiv.onkeydownHandler){ Event.stopObserving(menuDiv, 'keydown', menuDiv.onkeydownHandler); } menuDiv.onkeydownHandler =3D = this.onContextMenuKeyDown.bindAsEventListener( this ); Event.observe( menuDiv, "keydown", menuDiv.onkeydownHandler ); =09 this.menuItemLinks =3D new Array(); var onCloseHandler =3D = this.onCloseContextMenu.bindAsEventListener(this); menuInfo.items.push({id: 'close_'+menuInfo.id, visible:true, onclick: onCloseHandler}); menuInfo.items.each(function(mi) { var itemLink =3D $(mi.id);=20 itemLink.parentNode.style.display =3D (mi.visible)?"block":"none"; if (mi.visible) { this.menuItemLinks.push( itemLink ); } // remove previous click handler, if any if (itemLink.onclickHandler){ Event.stopObserving(mi.id, 'click', itemLink.onclickHandler); itemLink.onclickHandler =3D null; } if (mi.onclick && mi.visible){ // add click handler for menu item and save for later removal itemLink.onclickHandler =3D function( evt ) { onCloseHandler( evt ); mi.onclick( evt ); if ( mi.receipt ) { GradebookUtil.showInlineReceipt( gradebook2Messages[mi.receipt] = ); } } Event.observe(mi.id, 'click', itemLink.onclickHandler); } if (!firstItem) firstItem =3D itemLink; lastItem =3D itemLink; }.bind(this)); =09 // Handle tabbing out of the menu if ( lastItem.previousTABListener ) Event.stopObserving( lastItem.id, = 'keydown', lastItem.previousTABListener ); var tabListener =3D = this.onContextMenuTabPress.bindAsEventListener(this, false); lastItem.previousTABListener =3D tabListener; Event.observe( lastItem.id, 'keydown', tabListener ); if ( firstItem.previousTABListener ) Event.stopObserving( = firstItem.id, 'keydown', lastItem.previousTABListener ); var shiftTabListener =3D = this.onContextMenuTabPress.bindAsEventListener(this, true); firstItem.previousTABListener =3D shiftTabListener; Event.observe( firstItem.id, 'keydown', shiftTabListener ); =09 // position and show menu var offset =3D Position.cumulativeOffset( this.contextMenuAnchor); if ( this.grid.options.accessibleMode ) { var tableContainer =3D $( 'table1_accessible_container' ); offset[0] -=3D tableContainer.scrollLeft; offset[1] -=3D tableContainer.scrollTop; } menuDiv.setStyle({display: "block"}); var width =3D menuDiv.getWidth(); var bodyWidth =3D $(document.body).getWidth(); if ( page.util.isRTL() ) { offset[0] =3D offset[0] + this.contextMenuAnchor.getWidth() - width; if ( offset[0] < 0 ) offset[0]=3D 0; } if ( offset[0] + width > bodyWidth ) { offset[0] =3D offset[0] - width + this.contextMenuAnchor.getWidth(); } var ypos =3D offset[1] + this.contextMenuAnchor.getHeight(); menuDiv.setStyle({ left: offset[0] + "px", top: ypos + "px"}); if ( GradebookUtil.isFFonMac() ) GradebookUtil.shimDiv( menuDiv ); (function() { firstItem.focus(); }).defer(); =20 }, =20 =09 //************ comments logic ******************************* addGradeComment: function(evt,colDef) { Event.stop( evt ); // swallow event this.closePopups(); // here rather than on close to fix a UI glitch 1st time the div is = shown GradebookViewSpreadsheet.instructorCommentsResize._reset(); GradebookViewSpreadsheet.studentCommentsResize._reset(); var pos =3D GradebookUtil._toAbsolute(this.htmlCell); var submitCommentsButton =3D $("submitCommentsButton"); if (submitCommentsButton.onclickHandler){ Event.stopObserving(submitCommentsButton, 'click', = submitCommentsButton.onclickHandler); } submitCommentsButton.onclickHandler =3D = this.onSubmitComments.bindAsEventListener(this); = Event.observe(submitCommentsButton,'click',submitCommentsButton.onclickHa= ndler); var commentsDiv =3D $("commentsDiv"); if (commentsDiv.onclickHandler){ Event.stopObserving(commentsDiv, 'click', = commentsDiv.onclickHandler); } commentsDiv.onclickHandler =3D = this.onClickCommentsDiv.bindAsEventListener(this); Event.observe(commentsDiv,'click',commentsDiv.onclickHandler); var ie =3D GradebookUtil.isIE(); var rightedge =3D ie ? document.body.clientWidth: window.innerWidth; var bottomedge =3D ie ? document.body.clientHeight: = window.innerHeight; var offright=3Dfalse; var offbottom=3Dfalse; if( pos.y+commentsDiv.offsetHeight>bottomedge ) offbottom =3D true; if( pos.y-commentsDiv.offsetHeight<0 )offbottom =3D false; if( pos.x+commentsDiv.offsetWidth>rightedge-20 ) offright =3D true; if( offbottom ) { $("commentArrowUp").style.display=3D"none"; $("commentArrowDown").style.display=3D"block"; $("commentArrowDown").className=3D"bubArrowBot"; pos.y=3Dpos.y-commentsDiv.offsetHeight; } else { $("commentArrowUp").style.display=3D"block"; $("commentArrowDown").style.display=3D"none"; $("commentArrowUp").className=3D"bubArrowTop"; } if ( offright ) { $("commentArrowDown").className=3D"bubArrowBot2"; $("commentArrowUp").className=3D"bubArrowTop2"; pos.x=3Dpos.x-200; } commentsDiv.style.top =3D ( pos.y - this.htmlCell.offsetHeight )+"px"; commentsDiv.style.left =3D pos.x+"px"; commentsDiv.style.display=3D"block"; if ( GradebookUtil.isFFonMac() ) GradebookUtil.shimDiv( commentsDiv ); }, onSubmitComments: function() { this.getGridCell().setComments($("studentComments").value, = $("instructorComments").value); this.addSavingDiv(); this.closeComments(); }, onClickCommentsDiv: function(evt) { var eventTarget =3D evt.target ? evt.target : evt.srcElement; Gradebook.CellController.prototype.lastCommentsEventTarget =3D = eventTarget; }, testCommentsOpen: function(evt) { if (!evt) return; var ctrl =3D Gradebook.CellController.prototype; var eventTarget =3D evt.target ? evt.target : evt.srcElement; // if editing comments prompt user to save if click outside comments = div if (parseInt($("commentsDiv").style.display !=3D 'none') &&=20 ctrl.lastCommentsEventTarget !=3D eventTarget) { if = (confirm(GradebookUtil.getMessage('uncommitedCommentChangeErrorMsg'))){ $("submitCommentsButton").onclick(); } else { ctrl.closeComments(); } } }, closeComments: function() { $("commentsDiv").style.display=3D"none"; var submitCommentsButton =3D $("submitCommentsButton"); if (submitCommentsButton.onclickHandler){ Event.stopObserving(submitCommentsButton, 'click', = submitCommentsButton.onclickHandler); submitCommentsButton.onclickHandler =3D null; } var commentsDiv =3D $("commentsDiv"); if (commentsDiv.onclickHandler){ Event.stopObserving(commentsDiv, 'click', = commentsDiv.onclickHandler); commentsDiv.onclickHandler =3D null; } $("shimDiv").style.display=3D"none"; }, //************ miscellaneous ******************************* closePopups: function(evt) { $("gradeHeaderCM").style.display=3D"none"; $("studentInfoHeaderCM").style.display=3D"none"; $("gradeCM").style.display=3D"none"; $("studentInfoCM").style.display=3D"none"; $("infodiv").style.display=3D"none"; $("icondiv_up").style.display=3D"none"; $("icondiv_down").style.display=3D"none"; $("shadow").style.display =3D "none"; if ( Gradebook.doNotCloseAttemptsForm ) { Gradebook.doNotCloseAttemptsForm =3D false; } else { $("clearAttemptsFlyOut").style.display =3D "none"; } Gradebook.CellController.prototype.testCommentsOpen(evt); $("shimDiv").style.display=3D"none"; }, =09 getGradeGridCell: function(){ return this.grid.viewPort.getModelGridCell(this.row, this.col); }, =09 getHeaderGridCell: function(){ return this.grid.viewPort.getHeaderGridCell(this.col); }, =09 closePopupsAndRestoreFocus: function(evt) { var ctrl =3D Gradebook.CellController.prototype; ctrl.closePopups(evt); var eventTarget =3D evt.target ? evt.target : evt.srcElement; if (ctrl.lastEventTarget =3D=3D eventTarget){ ctrl.tableHasFocus =3D true; } else if (ctrl.tableHasFocus) { ctrl.unselectCurrentCell(); ctrl.tableHasFocus =3D false; } }, showClearAttemptsFlyOut: function( event, colDef ) { var linkElement =3D $('gh_clearAllAttempts'); var offset =3D Position.cumulativeOffset( linkElement ); var formDiv =3D $('clearAttemptsFlyOut'); var width =3D formDiv.getWidth(); var bodyWidth =3D $(document.body).getWidth(); // reposition form if it goes off the screen // align right edge of flyout form with link button if ( offset[0] + width > bodyWidth ) { offset[0] =3D (offset[0] + linkElement.getWidth()) - width; } formDiv.setStyle({ left: offset[0] + "px", top: ( offset[1] - Gradebook.Grid.pageHeightOffset ) + "px", display: "block" }); $("gradeHeaderCM").hide(); // restoring default values if ( Gradebook.clearAttemptsFormDefault ) { $('selectOption').value =3D = Gradebook.clearAttemptsFormDefault.defaultSelect; $('dp_bbDateTimePicker_start_date').value =3D = Gradebook.clearAttemptsFormDefault.defaultStartDate; $('dp_bbDateTimePicker_end_date').value =3D = Gradebook.clearAttemptsFormDefault.defaultEndDate; $('bbDateTimePickerstart').value =3D = Gradebook.clearAttemptsFormDefault.defaultStartDateHidden; $('bbDateTimePickerend').value =3D = Gradebook.clearAttemptsFormDefault.defaultEndDateHidden; } $('clearAttemptsOptionSelect').checked =3D true; $('clearAttemptsFlyOutSubmit').onclick =3D = this.onSubmitClearAttempts.bindAsEventListener( this ) ; =20 Event.stop( event ); }, onSubmitClearAttempts: function( event ) { Event.stop( event ); if ( !confirm( gradebook2Messages.clearAttemptConfirmMsg ) ) return = false; if ( $('clearAttemptsOptionSelect').checked ) { this.getGridCell().clearAttempts( $('selectOption').value ); } else { var startDate =3D $('bbDateTimePickerstart').value; var endDate =3D $('bbDateTimePickerend').value; this.getGridCell().clearAttemptsByDate(startDate, endDate); } return false; }, viewColumnInfo: function(evt,colDef) { Event.stop( evt ); // swallow event this.closePopups(evt); var info =3D colDef.getInfo(); info.each(function(ii) { $(ii.id).innerHTML =3D " "+ii.value; }); var pos =3D GradebookUtil._toAbsolute(this.htmlCell); var infoDiv =3D $('infodiv'); var ie =3D GradebookUtil.isIE(); var rightedge =3D ie ? document.body.clientWidth: = window.innerWidth; if(pos.x+infoDiv.offsetWidth>rightedge-20){ pos.x=3Dpos.x-infoDiv.offsetWidth+50; $("bubbleArrowTop").className=3D"bubArrowTop2"; }else{ $("bubbleArrowTop").className=3D"bubArrowTop"; } infoDiv.style.top =3D ( pos.y - this.htmlCell.offsetHeight ) + "px"; infoDiv.style.left =3D pos.x+"px"; infoDiv.style.display =3D "block"; if ( GradebookUtil.isFFonMac() ) GradebookUtil.shimDiv( infoDiv ); }, sendEmail: function(type,studentIds){ var sendEmailFunc =3D this.grid.options.sendEmailFunc; if (sendEmailFunc) { sendEmailFunc(type,studentIds); } }, onGridScroll: function(){ this.closePopups(); this.unselectCurrentCell(); } };=09 var GradebookUtil =3D { isValidFloat: function ( n ) { var n =3D ''+n; var trimmedVal =3D n.strip(); var numberFormatDecimalPoint =3D null; if ( window.LOCALE_SETTINGS ) { numberFormatDecimalPoint =3D = LOCALE_SETTINGS.getString('number_format.decimal_point'); } else { numberFormatDecimalPoint =3D = page.bundle.getString('number_format.decimal_point'); } if (trimmedVal.endsWith( numberFormatDecimalPoint )) trimmedVal +=3D = '0'; var numFormat =3D '^[-]?[0-9]*(\\.[0-9]+)?$'; var re =3D new RegExp( numFormat );=09 var isValidNum =3D trimmedVal.search( re ) =3D=3D 0; return isValidNum; }, =20 showInlineReceipt: function( message ) { window.location.href =3D = viewSpreadsheetURL+'&inline_receipt_message=3D'+message; }, =20 formatStudentName: function ( student ) { var nameTemplate =3D new = Template(GradebookUtil.getMessage('userNameTemplate')); var nameData =3D {first:student.first, last:student.last, = user:student.user}; return nameTemplate.evaluate(nameData); }, =20 isIE: function () { return navigator.userAgent.toLowerCase().indexOf("msie") >=3D 0; }, isNS7: function () { return navigator.userAgent.toLowerCase().indexOf("netscape/7") = >=3D 0; }, =20 isFFonMac: function() { return GradebookUtil.isMac() && GradebookUtil.isFirefox(); }, =20 isFirefox: function() { return (navigator.userAgent.toLowerCase().indexOf("firefox") !=3D = -1); }, =20 isMac: function() { return (navigator.userAgent.toLowerCase().indexOf("mac") !=3D -1); }, =20 trimId: function( primaryKey ) { if ( primaryKey.charAt(0) !=3D '_' ) return primaryKey; return primaryKey.slice(1, primaryKey.lastIndexOf('_') ); }, getMessage: function (key) { if ( Gradebook.getModel() ){ return Gradebook.getModel().getMessage(key); } else { // in case the model is not loaded but we are on the grid page if ( gradebook2Messages && gradebook2Messages[ key ] ) return = gradebook2Messages[ key ]; return key; } }, getElementsComputedStyle: function ( htmlElement, cssProperty, = mozillaEquivalentCSS) { if ( arguments.length =3D=3D 2 ) mozillaEquivalentCSS =3D cssProperty; var el =3D $(htmlElement); if ( el.currentStyle ) return el.currentStyle[cssProperty]; else return document.defaultView.getComputedStyle(el, = null).getPropertyValue(mozillaEquivalentCSS); }, toViewportPosition: function(element) { return this._toAbsolute(element,true); }, /** * Compute the elements position in terms of the window viewport * so that it can be compared to the position of the mouse (dnd) * This is additions of all the offsetTop,offsetLeft values up the * offsetParent hierarchy, ...taking into account any scrollTop, * scrollLeft values along the way... * * Note: initially there was 2 implementations, one for IE, one for = others. * Mozilla one seems to fit all though (tested XP: FF2,IE7, OSX: = FF2, SAFARI) **/ _toAbsolute: function(element,accountForDocScroll, topParent ) { return = this._toAbsoluteMozilla(element,accountForDocScroll,topParent); }, /** * Mozilla did not report all of the parents up the hierarchy via = the * offsetParent property that IE did. So for the calculation of the * offsets we use the offsetParent property, but for the calculation = of * the scrollTop/scrollLeft adjustments we navigate up via the = parentNode * property instead so as to get the scroll offsets... * **/ _toAbsoluteMozilla: function(element,accountForDocScroll, topParent) = { var x =3D 0; var y =3D 0; var parent =3D element; while ( parent && ( !topParent || parent!=3DtopParent ) ) { x +=3D parent.offsetLeft; y +=3D parent.offsetTop; parent =3D parent.offsetParent; } parent =3D element; while ( parent && parent !=3D document.body && parent !=3D document.documentElement && ( !topParent || parent!=3DtopParent ) ) { if ( parent.scrollLeft ) x -=3D parent.scrollLeft; if ( parent.scrollTop ) y -=3D parent.scrollTop; parent =3D parent.parentNode; } if ( accountForDocScroll ) { x -=3D this.docScrollLeft(); y -=3D this.docScrollTop(); } return { x:x, y:y }; }, docScrollLeft: function() { if ( window.pageXOffset ) return window.pageXOffset; else if ( document.documentElement && = document.documentElement.scrollLeft ) return document.documentElement.scrollLeft; else if ( document.body ) return document.body.scrollLeft; else return 0; }, docScrollTop: function() { if ( window.pageYOffset ) return window.pageYOffset; else if ( document.documentElement && = document.documentElement.scrollTop ) return document.documentElement.scrollTop; else if ( document.body ) return document.body.scrollTop; else return 0; }, getChildElementByClassName: function(parent, childTag, = childClassName){ var children =3D parent.getElementsByTagName(childTag); if (!children || children.length =3D=3D 0) return null; for (var i =3D 0; i < children.length; i++){ if (children[i].className.indexOf(childClassName) >=3D 0){ return children[i]; } } return null; }, =09 setChildElementTextByClassName: function(parent, childTag, = childClassName, text){ var child =3D GradebookUtil.getChildElementByClassName(parent, = childTag, childClassName); if (child =3D=3D null) return; child.innerHTML =3D text; }, =09 getLogger: function() { if (window.gbModel) return gbModel.getLogger(); // in case current = scope owns gbModel if (parent.gbModel) return parent.gbModel.getLogger(); }, debug: function(s) { var logger =3D this.getLogger(); if (logger) { logger.debug(s); } }, error: function(s) { var logger =3D this.getLogger(); if (logger) { logger.error(s); } }, =09 //on firefox/mac scroll bars will show ontop of anything if not shimmed shimDiv: function( menuDiv ) { var shimIFrame =3D $('shimDiv'); if (!shimIFrame) return; shimIFrame.style.width =3D menuDiv.offsetWidth; shimIFrame.style.height =3D menuDiv.offsetHeight; var position =3D Position.page(menuDiv); shimIFrame.style.top =3D position[1]; shimIFrame.style.left =3D position[0]; shimIFrame.style.zIndex =3D 2; shimIFrame.style.display =3D "block"; =20 }, =20 clearShim: function() { if ( $("shimDiv") ) $("shimDiv").style.display=3D"none"; } }; ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/gradebook/js/gradebookgridmodel.js?v=9.0.440.7 /** * Gradebook data grid * * PORTIONS OF THIS FILE ARE BASED ON RICO LIVEGRID 1.1.2 * * Copyright 2005 Sabre Airline Solutions * * Licensed under the Apache License, Version 2.0 (the "License"); you = may not use this * file except in compliance with the License. You may obtain a copy = of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software = distributed under the * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR = CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific = language governing permissions * and limitations under the License. * * @author "Bill Richard" * @version $Revision: #9 $ $Date: 2007/02/12 $ * * **/ // Gradebook.GridModel = ----------------------------------------------------- Gradebook.GridModel =3D Class.create(); Gradebook.GridModel.prototype =3D { initialize: function(gradebookService) { this.gradebookService =3D gradebookService; this.courseId =3D gradebookService.courseId; this.rows =3D new Array(); this.colDefs =3D new Array(); this.colOrderMap =3D new Array(); this.customViews =3D new Array(); this.listeners =3D new Array(); this.accessibleMode =3D false; this.resizingWindow =3D false; this.minimumRows =3D 10; this.isolatedStudentId =3D ''; }, getCustomViews: function() { this.customViews.sort( function(a,b){ var aa =3D a.name.toLowerCase(); var bb =3D b.name.toLowerCase(); if (aa =3D=3D bb) return 0; else if (aa < bb) return -1; else return 1; } ); return this.customViews; }, =09 // notify registered listeners that model data has changed fireModelChanged: function() { for (var i =3D 0; i < this.listeners.length; i++){ this.listeners[i].modelChanged(); } }, // notify registered listeners that model error has occured fireModelError: function( exception, serverReply) { for (var i =3D 0; i < this.listeners.length; i++){ if (this.listeners[i].modelError){ this.listeners[i].modelError( exception, serverReply); } } }, addModelListener: function(listener) { this.listeners.push(listener); }, removeModelListeners: function() { this.listeners =3D new Array(); }, updateGrade: function( newValue, newTextValue, userId, colDefId) { = this.gradebookService.updateGrade((this.updateGradeCallback).bind(this), = this.version, newValue, newTextValue, userId, colDefId); }, deleteColumn: function(colDefId) { this.gradebookService.deleteColumn(colDefId); }, modifyColumn: function(colDefId, colType) { this.gradebookService.modifyColumn(colDefId, colType); }, =09 =09 viewItemStats: function(itemId) { this.gradebookService.viewItemStats(itemId); }, viewSingleStudentGrades: function(userId) { this.isolatedStudentId =3D userId; this.gradebookService.reloadGrid(); }, =09 restoreFromSingleStudentView: function() { this.isolatedStudentId =3D ''; this.gradebookService.reloadGrid(); }, =09 viewStudentStats: function(userId) { this.gradebookService.viewStudentStats(userId); }, =09 viewAdaptiveRelease: function(userName) { this.gradebookService.viewAdaptiveRelease(userName); }, =09 hideColumn: function(colDefId) { this.gradebookService.hideColumn(colDefId); }, showGradeDetails: function(userId, colDefId){ this.gradebookService.showGradeDetails( userId, colDefId ); }, onAddComment: function(userId, colDefId){ this.gradebookService.loadComments( userId, colDefId, = "studentComments", "instructorComments" ); }, =09 exemptGrade: function(userId, colDefId){ this.gradebookService.setExemption( = (this.updateGradeCallback).bind(this), this.version, userId, colDefId, = true ); }, clearExemption: function(userId, colDefId){ this.gradebookService.setExemption( = (this.updateGradeCallback).bind(this), this.version, userId, colDefId, = false ); }, setComments: function(userId, colDefId, studentComments, = instructorComments){ this.gradebookService.setComments( userId, colDefId, studentComments, = instructorComments ); }, =09 getRowByUserId: function(userId) { var rows =3D this.rows; for (var i =3D 0, len =3D rows.length; i < len; i++){ if (rows[i][0].getUserId() =3D=3D userId) return rows[i]; } return null; }, =09 _getGradesForItemId: function(itemId, includeUnavailable) { var grades =3D new Array() var colIndex =3D this.colDefMap[itemId]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _getGradesForItemId contains data for = invalid column id: '+itemId); return grades; } var rows =3D this.rows; for (var i =3D 0, len =3D rows.length; i < len; i++){ var grade =3D rows[i][colIndex]; if (includeUnavailable || grade.isAvailable()){ grades.push( grade ); } } return grades; }, updateGradeCallback: function(retData) { if (!retData || retData.length =3D=3D 0){ GradebookUtil.error('GridModel error updating grade'); return; } for (var i =3D 0, len =3D retData.length; i < len; i++) { var data =3D retData[i]; var colDefId =3D data.itemId; var userId =3D data.courseUserId; var score =3D data.score; var textInput =3D data.textInput; var row =3D this.getRowByUserId(userId); var colIndex =3D this.colDefMap[colDefId]; if (colIndex =3D=3D undefined){ // ignore continue; } var gridCell =3D row[colIndex]; gridCell.tv =3D textInput; if (textInput.length =3D=3D 0 && score =3D=3D 0){ gridCell.v =3D '-'; } else { gridCell.v =3D score; } gridCell.gc =3D (data.modified)?"y":null; gridCell.or =3D (data.override)?"y":null; gridCell.x =3D (data.exempt)?"y":null; gridCell.mp =3D data.points; gridCell.isUncommitted =3D false; var savingDiv =3D gridCell.savingDiv; if (savingDiv && savingDiv.timerExpired && savingDiv.parentNode){ savingDiv.style.display =3D 'none'; savingDiv.parentNode.removeChild(savingDiv); gridCell.savingDiv =3D null; } =09 } this.fireModelChanged(); }, // called to load model with server data=20 requestLoadData: function() { GradebookUtil.debug('GridModel requestLoadData called'); this.lastUpdateTS =3D new Date().getTime(); this.gradebookService.requestLoadData( (this._loadDataFromJSON).bind(this), (this._reportError).bind(this), (this._reportException).bind(this)); }, // called to update model with server data=20 requestUpdateData: function() { var timeSinceLastUpdate =3D new Date().getTime() - this.lastUpdateTS; // don't update if window is resizing and we've reloaded in the last 5 = minutes if (this.resizingWindow && ( timeSinceLastUpdate < 5*60*1000) ){ this.fireModelChanged(); return;=20 } this.lastUpdateTS =3D new Date().getTime(); GradebookUtil.debug('GridModel requestUpdateData called'); var customViewId =3D null; if (this.currentCustomView && this.currentCustomView.usesGroups()){ customViewId =3D this.currentCustomView.id; } this.gradebookService.requestUpdateData(this.version, = this.lastUserChangeTS, this.usersHash, customViewId, (this._updateDataFromJSON).bind(this), (this._reportError).bind(this), (this._reportException).bind(this)); }, setResizingWindow: function(f) { this.resizingWindow =3D f; }, getResizingWindow: function() { return this.resizingWindow; }, setMinimumRows: function( minRows ) { if ( minRows < 5 ) minRows =3D 5; if ( minRows > 50 ) minRows =3D 50; this.minimumRows =3D minRows; }, =09 getMinimumRows: function() { return this.minimumRows; }, _reportException: function(e) { GradebookUtil.error('exception getting data from server: '+ = e.message); }, _reportError: function(t) { GradebookUtil.error('error getting data from server: '+ t.status + ' = -- ' + t.statusText); }, =09 getVisibleColDefIndex: function(id) { var colnum =3D this.colDefMap[id];=20 if (colnum =3D=3D=3D undefined || this.colDefs[colnum] =3D=3D=3D = undefined || !this.colDefs[colnum].gbvis ){ return -1; } for (var i =3D 0, len =3D this.colOrderMap.length; i < len; i++){ if (this.colOrderMap[i] =3D=3D colnum) return i; } return -1; }, // callback when initializing this gradebook model with server data _loadDataFromJSON: function(reply) { GradebookUtil.debug('GridModel _loadDataFromJSON called'); try { var jsonBook =3D eval('(' + reply.responseText + ')'); } catch (e) { this.fireModelError(e, reply.responseText); return; } try { this.schemaMap =3D new Array(); for (var i =3D 0; i < jsonBook.schemas.length; i++){ jsonBook.schemas[i] =3D this._createSchema(jsonBook.schemas[i].type, = jsonBook.schemas[i]); this.schemaMap[jsonBook.schemas[i].id] =3D jsonBook.schemas[i]; } this.colDefMap =3D new Array(); for (var i =3D 0; i < jsonBook.colDefs.length; i++){ jsonBook.colDefs[i] =3D this._createColDef( jsonBook.colDefs[i], = this, this.schemaMap ); this.colDefMap[jsonBook.colDefs[i].id] =3D i; } for (var i =3D 0; i < jsonBook.rows.length; i++){ jsonBook.rows[i] =3D this._loadRowDataFromJSON(jsonBook.rows[i], = jsonBook.colDefs, this.colDefMap); } this.customViewMap =3D new Array(); =09 if (jsonBook.customViews){ for (var i =3D 0; i < jsonBook.customViews.length; i++){ jsonBook.customViews[i] =3D new Gradebook.CustomView( = jsonBook.customViews[i], this ); this.customViewMap[jsonBook.customViews[i].id] =3D i; } } this.groupsMap =3D new Array(); if (jsonBook.groups){ for (var i =3D 0; i < jsonBook.groups.length; i++){ this.groupsMap[jsonBook.groups[i].id] =3D i; } } this._buildCategoryNameMap( jsonBook ); Object.extend(this, jsonBook); // assign json properties to this = object this._buildGradingPeriodMap(); if ( this.customViewIdParam !=3D null && = this.customViewIdParam.length > 0 ) { this._internalChangeCurrentView( 'cv_' + this.customViewIdParam ); } else if (this.defCVID) { this._internalChangeCurrentView( 'cv_' + this.defCVID ); } else if (this.defGPID){ this._internalChangeCurrentView( this.defGPID ); } =09 this._setStudentInfoLayout(); this._updateVisibleRows(jsonBook); this.sortColumns(); if (this.colDefMap['LN'] !=3D undefined){ this.sortColumnId =3D 'LN'; this.sortDir =3D 'ASC'; this.reSort(); } this.fireModelChanged(); } catch (e) { this.fireModelError(e); } }, =09 // callback when updating this gradebook model with server data _updateDataFromJSON: function(reply) { GradebookUtil.debug('GridModel _updateDataFromJSON called'); try { var jsonBook =3D eval('(' + reply.responseText + ')'); } catch (e) { this.fireModelError(e, reply.responseText); return; } try { // need to reinitialize if new users added to pick up existing grades // when a user is re-enabled if (this._hasNewUsers(jsonBook)) { this.requestLoadData(); return; } this.version =3D jsonBook.version; this.lastUserChangeTS =3D jsonBook.lastUserChangeTS; this.usersHash =3D jsonBook.usersHash; this.numFrozenColumns =3D jsonBook.numFrozenColumns; this.gradingPeriods =3D jsonBook.gradingPeriods; this.categories =3D jsonBook.categories; this._buildCategoryNameMap( jsonBook ); this.studentInfoLayouts =3D jsonBook.studentInfoLayouts; this.pubColID =3D jsonBook.pubColID; this.defCVID =3D jsonBook.defCVID; this.defGPID =3D jsonBook.defGPID; if (jsonBook.schemas){ for (var i =3D 0; i < jsonBook.schemas.length; i++){ // create a new schema if one with same id does not already exists var schema =3D this.schemaMap[jsonBook.schemas[i].id];=20 if (schema =3D=3D=3D undefined){ schema =3D this._createSchema(jsonBook.schemas[i].type, = jsonBook.schemas[i]); this.schemaMap[jsonBook.schemas[i].id] =3D schema; } else { Object.extend(schema, jsonBook.schemas[i]); } } } if (jsonBook.groups){ if (!this.groupsMap || !this.groups || this.groups.length =3D=3D 0){ this.groupsMap =3D new Array(); this.groups =3D jsonBook.groups; for (var i =3D 0; i < jsonBook.groups.length; i++){ this.groupsMap[jsonBook.groups[i].id] =3D i; } } else { for (var i =3D 0; i < jsonBook.groups.length; i++){ var group =3D this.groupsMap[jsonBook.groups[i].id];=20 if (group =3D=3D=3D undefined){ this.groupsMap[jsonBook.groups[i].id] =3D this.groups.length; this.groups.push( jsonBook.groups[i] ); } else { this.groups[group] =3D jsonBook.groups[i]; } } } } if (jsonBook.colDefs){ for (var i =3D 0; i < jsonBook.colDefs.length; i++){ // create a new colDef if one with same id does not already exists var colIndex =3D this.colDefMap[jsonBook.colDefs[i].id]; if (colIndex =3D=3D undefined){ if ( jsonBook.colDefs[i].deleted ) continue; this.colDefMap[jsonBook.colDefs[i].id] =3D this.colDefs.length; this.colDefs.push(this._createColDef( jsonBook.colDefs[i], this, = this.schemaMap )); } else { var colDef =3D this.colDefs[colIndex];=20 colDef.comput_err =3D false; Object.extend(colDef, jsonBook.colDefs[i]); // clear all grades in column if computation error for column if (jsonBook.colDefs[i].comput_err){ var grades =3D this._getGradesForItemId(jsonBook.colDefs[i].id, = true); for (var g =3D 0; g < grades.length; g++){ grades[g].initialize( grades[g].colDef, grades[g].metaData); } } if (colDef.deleted){ this.colDefMap[colDef.id] =3D null; } if (colDef.sid){ colDef.primarySchema =3D this.schemaMap[colDef.sid]; } if (colDef.ssid && colDef.ssid.length > 0){ colDef.secondarySchema =3D this.schemaMap[colDef.ssid]; } else { colDef.secondarySchema =3D null; } } } } // need to add any new row data? while (this.rows.length > 0 && this.colDefs.length > = this.rows[0].length){ var colDefIndex =3D this.rows[0].length; for (var i =3D 0; i < this.rows.length; i++){ var metaData =3D this.rows[i][0].metaData; var colDef =3D this.colDefs[colDefIndex]; if ( colDef instanceof Gradebook.GradeColDef )=20 this.rows[i].push(new Gradebook.Grade( colDef, metaData )); else this.rows[i].push(new Gradebook.StudentAttribute( colDef, metaData = )); } } if (jsonBook.rows){ // users changed, need to resync if (jsonBook.type =3D=3D "delta_with_user"){ // remove rows from model that are not in json data var tempArray =3D new Array(); for (var i =3D 0; i < this.rows.length; i++){ if (this._containsUser(jsonBook.rows, = this.rows[i][0].getUserId())) { tempArray.push(this.rows[i]); } } this.rows =3D tempArray; } // add new json rows to model or update existing rows for (var i =3D 0; i < jsonBook.rows.length; i++){ var row =3D this.getRowByUserId(jsonBook.rows[i][0].uid); if (row =3D=3D null){ // new row this.rows.push(this._loadRowDataFromJSON(jsonBook.rows[i], = this.colDefs, this.colDefMap)); } else { this._updateRowDataFromJSON(row, jsonBook.rows[i], this.colDefs, = this.colDefMap); } } } this._buildGradingPeriodMap(); if (jsonBook.customViews){ for (var i =3D 0; i < jsonBook.customViews.length; i++){ // create a new custom view if one with same id does not already = exists var idx =3D this.customViewMap[jsonBook.customViews[i].id];=20 if (idx =3D=3D=3D undefined){ this.customViewMap[jsonBook.customViews[i].id] =3D = this.customViews.length; this.customViews.push(new Gradebook.CustomView( = jsonBook.customViews[i], this )); } else { this.customViews[idx] =3D new Gradebook.CustomView( = jsonBook.customViews[i], this ); } } } // remove any custom views not in customViewIds if (this.customViews){ var tempArray =3D new Array(); this.customViewMap =3D new Array(); for (var i =3D 0; i < this.customViews.length; i++){ if ( jsonBook.customViewIds.indexOf( Number( this.customViews[i].id = ) ) !=3D -1 ) { this.customViewMap[this.customViews[i].id] =3D tempArray.length; tempArray.push(this.customViews[i]); } } this.customViews =3D tempArray; } if (this.customViewIdParam !=3D null && this.customViewIdParam.length = > 0 ) { this._internalChangeCurrentView( 'cv_' + this.customViewIdParam ); } else if (this.currentView) { this._internalChangeCurrentView( this.currentView ); } this._setStudentInfoLayout(); this._updateVisibleRows(jsonBook); this.sortColumns(); this.reSort(); this.checkedNoStudents(); // do this last, it will fireModelChanged } catch (e) { this.fireModelError(e); } }, _buildCategoryNameMap: function( jsonBook ) { this.catNameMap =3D new Array(); if ( jsonBook.categories ) { for (var i =3D 0; i < jsonBook.categories.length; i++){ this.catNameMap[jsonBook.categories[i].id] =3D = jsonBook.categories[i].name; } } }, _updateVisibleRows: function(jsonBook) { var showAll =3D (!jsonBook.hiddenStudentIds || = jsonBook.hiddenStudentIds.length =3D=3D 0); this.visibleRows =3D new Array(); var rows =3D this.rows; // loop through rows and set hidden flag for each row, add to = visibleRows if not hidden for (var i =3D 0, len =3D rows.length; i < len; i++){ var row =3D rows[i]; var isHidden =3D !showAll && ( jsonBook.hiddenStudentIds.indexOf( = Number( row[0].getUserId() ) ) !=3D -1 ); row[0].setHidden( isHidden ); if ( !isHidden ) { this.visibleRows.push( row ); } } this._applyCustomView(); =09 }, updateUserVisibility: function ( userId, visible ) { this.gradebookService.updateUserVisibility( userId, visible ); }, =20 _hasNewUsers: function(jsonBook) { if (!jsonBook || !jsonBook.rows) return false; for (var i =3D 0; i < jsonBook.rows.length; i++){ if (this.getRowByUserId(jsonBook.rows[i][0].uid) =3D=3D null) return = true; } return false; }, _containsUser: function(rows, userId) { for (var i =3D 0; i < rows.length; i++){ if (rows[i][0].uid =3D=3D userId) return true; } return false; }, _createColDef: function(jsonColDef,model,schemaMap) { if (jsonColDef.type =3D=3D "s"){ return new Gradebook.StudentAttributeColDef( jsonColDef, model, = schemaMap ); } else { return new Gradebook.GradeColDef( jsonColDef, model, schemaMap ); } }, _createSchema: function(type,jsonSchema) { if (type =3D=3D "S"){ return new Gradebook.NumericSchema( jsonSchema, this ); } else if (type =3D=3D "X") { return new Gradebook.TextSchema( jsonSchema, this ); } else if (type =3D=3D "P") { return new Gradebook.PercentageSchema( jsonSchema, this ); } else if (type =3D=3D "C") { return new Gradebook.CompleteIncompleteSchema( jsonSchema, this ); } else if (type =3D=3D "T") { return new Gradebook.LetterSchema( jsonSchema, this ); } else { GradebookUtil.debug('GridModel _createSchema invalid type: '+type); return null; } =09 }, _setStudentInfoLayout: function(){ // set pos & gbvis for student attribute columns from = studentInfoLayouts for (var i =3D 0; i < this.studentInfoLayouts.length; i++){ var colIndex =3D this.colDefMap[this.studentInfoLayouts[i].id];=20 if (colIndex =3D=3D=3D undefined){ continue; } var colDef =3D this.colDefs[colIndex]; colDef.gbvis =3D this.studentInfoLayouts[i].gbvis; colDef.pos =3D this.studentInfoLayouts[i].pos; } }, _loadRowDataFromJSON: function(jsonRow, colDefs, colDefMap){ // create a student attribute/grade for each column with a default = blank value var tempRow =3D new Array(); var userId =3D ''; if (jsonRow[0].uid){ userId =3D jsonRow[0].uid; } var metaData =3D new Gradebook.RowMetaData( userId ); // create a gridcell of appropriate type for each column in the row for (var i =3D 0; i < colDefs.length; i++){ if ( colDefs[i] instanceof Gradebook.GradeColDef )=20 tempRow[i] =3D new Gradebook.Grade( colDefs[i], metaData ); else tempRow[i] =3D new Gradebook.StudentAttribute( colDefs[i], metaData = ); } // populate cell data from json - may not include all cells (I.e. null = grades) for (var i =3D 0; i < jsonRow.length; i++){ //use json colDefID to get column index from map var colIndex =3D colDefMap[jsonRow[i].c]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _loadRowDataFromJSON jsonRow contains = data for invalid column id: '+jsonRow[i].c); continue; } //overwrite default value with json value =20 tempRow[colIndex]._loadFromJSON(jsonRow[i]); } return tempRow; }, =09 _updateRowDataFromJSON: function(thisRow, jsonRow, colDefs, colDefMap){ var metaData =3D thisRow[0].metaData; for (var i =3D 0; i < jsonRow.length; i++){ var colIndex =3D colDefMap[jsonRow[i].c]; var grade =3D thisRow[colIndex]; if (grade =3D=3D=3D undefined){ // new grade? if ( colDefs[colIndex] instanceof Gradebook.GradeColDef )=20 grade =3D new Gradebook.Grade( colDefs[colIndex], metaData ); else grade =3D new Gradebook.StudentAttribute( colDefs[colIndex], = metaData ); thisRow.push(grade); } colDefs[colIndex].comput_err =3D false; grade._loadFromJSON(jsonRow[i]); } }, =09 // called by view to get a window of row data // returns iterators to get row data in correct order while skipping = hidden columns getRowIterators: function(startRow, numRows, startCol) { var rows =3D this.visibleRows; if (!startRow) startRow =3D 0; if (!startCol) startCol =3D 0; if (!numRows) numRows =3D rows.length; var endRow =3D startRow + numRows if (startRow < 0 || startRow >=3D rows.length) { GradebookUtil.error('getRowIterators startRow out of range. Max is: = '+rows.length-1+' startRow is: '+startRow); return null; } if (numRows < 0 || numRows > rows.length) { GradebookUtil.error('getRowIterators numRows out of range. Max is: = '+rows.length+' numRows is: '+numRows); return null; } if (startCol < 0 || startCol >=3D this.colOrderMap.length) { GradebookUtil.error('getRowIterators startCol out of range. Max is: = '+this.orderMap.length+' startCol is: '+startCol); return null; } if ( endRow > rows.length){ endRow =3D rows.length GradebookUtil.error('Error: GridModel getRowIterators input args = requesting too much data. startRow =3D '+startRow+' numRows =3D = '+numRows+' rows.length =3D '+rows.length); return null; } var results =3D new Array() var index =3D 0; for ( var i=3DstartRow ; i < endRow; i++ ) { results[index++] =3D new = Gradebook.GridRowIterator(rows[i],this.colOrderMap,startCol); } return results; }, =09 // called by view to get the column definitions // returns iterator to get definitions in correct order while skipping = hidden columns getColDefIterator: function(startCol) { if (!startCol) startCol =3D 0; if (startCol < 0 || startCol >=3D this.colOrderMap.length) { GradebookUtil.error('getColDefIterator startCol out of range. Max is: = '+this.orderMap.length+' startCol is: '+startCol); return null; } return new = Gradebook.GridRowIterator(this.colDefs,this.colOrderMap,startCol); }, =09 // called by view to determine how much vertical scroll is needed getNumRows: function() { if (this.visibleRows) return this.visibleRows.length; else=20 return 0; }, // called by view to determine how much horizontal scroll is needed getNumColDefs: function() { return this.colOrderMap.length; }, // called by view to determine how many columns to freeze getNumFrozenColumns: function() { return this.numFrozenColumns; }, getSortDir: function(){ return this.sortDir; },=20 =09 getSortIndex: function(){ if (this.sortColumnId =3D=3D=3D undefined){ return -1; } var colnum =3D this.colDefMap[this.sortColumnId]; if (colnum =3D=3D=3D undefined){ return -1; } else { var sortColumn =3D this.colOrderMap[colnum]; if (sortColumn =3D=3D=3D undefined || this.colDefs[sortColumn] = =3D=3D=3D undefined || this.colDefs[sortColumn].deleted =3D=3D "Y"){ return -1; } else { return colnum; } } },=20 =09 reSort: function() { if (this.sortColumnId =3D=3D=3D undefined || this.sortDir =3D=3D=3D = undefined) return; var colnum =3D this.getSortIndex(); if (colnum =3D=3D -1) return; this.sort(colnum, this.sortDir); }, setDefaultView: function(view) { this.gradebookService.setDefaultView( view ); },=09 =09 getDefaultView: function() { // do not return a view that does not exist in model if (this.defCVID) { if ( this.customViewMap[ this.defCVID ] ) return 'cv_' + = this.defCVID; return null; } else if (this.defGPID){ if ( this.gradingPeriodMap && !this.gradingPeriodMap[ this.defGPID = ] ) return null; return this.defGPID; } else { return null; } },=09 =09 // changes the current view to a grading period or custom view // returns error string or null if no error changeCurrentView: function(view) { // null out customViewIdParam so that it will not override the view = set by the user next time the page is reloaded this.customViewIdParam =3D null; return this._internalChangeCurrentView(view); }, =09 _internalChangeCurrentView: function(view) { var origView =3D this.currentView; this.currentView =3D view; this.currentCustomView =3D null; this.currentGradingPeriodId =3D null; if (view.startsWith('cv_')){ var idx =3D this.customViewMap[view.substring(3)];=20 if (idx =3D=3D undefined){ if ( this.defCVID ) { var defaultView =3D 'cv_' + this.defCVID; if ( defaultView !=3D view ) { this._internalChangeCurrentView( defaultView ); } else { this.currentView =3D (this.currentView !=3D origView) ? origView = : null; return null; //this.getMessage('custViewDoesNotExistMsg'); } } else if (this.defGPID) { this._internalChangeCurrentView( this.defGPID ); } else { this.currentView =3D (this.currentView !=3D origView) ? origView : = null; return null; //this.getMessage('custViewDoesNotExistMsg'); } } else { if (!this.customViews[idx].evaluate()){ this.currentView =3D (this.currentView !=3D origView) ? origView : = null; return this.getMessage('changesEffectCustViewMsg'); } this.currentCustomView =3D this.customViews[idx]; } } else { if ( this.gradingPeriodMap && !this.gradingPeriodMap[ view ] )=20 { if ( this.defCVID ) { this._internalChangeCurrentView( 'cv_' + this.defCVID = ); } else if (this.defGPID && this.defGPID!=3Dview) { this._internalChangeCurrentView( this.defGPID ); } else { this.currentView =3D (this.currentView !=3D origView) ? origView : = null; this.currentGradingPeriodId =3D null; } return null; } this.currentGradingPeriodId =3D view; } return null; }, _applyCustomView: function() { if ( this.isolatedStudentId ) { this.visibleRows =3D new Array(); var row =3D this.getRowByUserId(this.isolatedStudentId); this.visibleRows.push( row ); } if(this.currentCustomView =3D=3D null || this.currentCustomView = =3D=3D undefined){ return; } this.currentCustomView.evaluate( this ); var userIds =3D this.currentCustomView.getUserIds(); if ( this.isolatedStudentId ) return; this.visibleRows =3D new Array(); // loop through custom view users and add to visibleRows for (var i =3D 0, len =3D userIds.length; i < len; i++){ var row =3D this.getRowByUserId(userIds[i]); if (row) this.visibleRows.push( row ); } }, =09 _buildGradingPeriodMap: function() { this.gradingPeriodMap =3D new Array(); if (this.gradingPeriods){ for (var i =3D 0, len =3D this.gradingPeriods.length; i < len; i++){ this.gradingPeriodMap[this.gradingPeriods[i].id] =3D = this.gradingPeriods[i]; =09 } this.gradingPeriods.sort( function(a,b){ var aa =3D a.name.toLowerCase(); var bb =3D b.name.toLowerCase(); if (aa =3D=3D bb) return 0; else if (aa < bb) return -1; else return 1; } ); } }, getCustomView: function(cvId) { var idx =3D this.customViewMap[cvId];=20 if (idx =3D=3D undefined){ return null; } else { return this.customViews[idx]; } }, getCurrentCustomView: function(cvId) { return this.currentCustomView; }, sortColumns: function(sortBy) { if (this.sortColAscending =3D=3D undefined){ this.sortColAscending =3D true; } =09 if (sortBy){ if (this.currentSortColumnBy =3D=3D sortBy){ this.sortColAscending =3D !this.sortColAscending; } else { this.sortColAscending =3D true; this.currentSortColumnBy =3D sortBy; } } else if (!this.currentSortColumnBy){ this.currentSortColumnBy =3D 'pos'; } var sortFunc =3D null; sortBy =3D this.currentSortColumnBy; if (sortBy =3D=3D 'pos'){ sortFunc =3D this._sortColByPosFunc.bind(this); } else if (sortBy =3D=3D 'categories'){ sortFunc =3D this._sortColByCategoriesFunc.bind(this); } else if (sortBy =3D=3D 'dueDate') { sortFunc =3D this._sortColByDueDateFunc.bind(this); } else if (sortBy =3D=3D 'creationdate') { sortFunc =3D this._sortColByCreationDateFunc.bind(this); } else if (sortBy =3D=3D 'points') { sortFunc =3D this._sortColByPointsFunc.bind(this); } else if (sortBy =3D=3D 'name') { sortFunc =3D this._sortColByNameFunc.bind(this); } =09 var tempColDefs =3D new Array(); =09 if(this.currentCustomView){ var colIds =3D this.currentCustomView.getDisplayItemIds(); tempColDefs =3D this._getVisibleToAll( = this.currentCustomView.includeHiddenItems, colIds ); for (var i =3D 0, len =3D colIds.length; i < len; i++){ var cd =3D this.colDefs[this.colDefMap[colIds[i]]]; tempColDefs.push(cd); } } else { // filter out colDefs that are: deleted, hidden, not in all grading = periods // or not in current grading period for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ var cd =3D this.colDefs[i]; if (cd.deleted || !cd.gbvis) continue; var cgp =3D this.currentGradingPeriodId; var ingp =3D (cgp =3D=3D undefined || cgp =3D=3D cd.gpid || cgp = =3D=3D 'all' || (cgp =3D=3D 'none' && cd.gpid =3D=3D '')); if (cd.visAll || !cd.isGrade() || ingp){ tempColDefs.push(cd); } } } tempColDefs.sort(sortFunc); // compute colOrderMap based on the sorted columns this.colOrderMap =3D new Array(); for (var i =3D 0, len =3D tempColDefs.length, idx =3D 0; i < len; = i++){ this.colOrderMap[idx++] =3D this.colDefMap[tempColDefs[i].id]; } =09 }, _getVisibleToAll: function( includeHidden, excludeIds ) { var tempColDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ var cd =3D this.colDefs[i]; if (excludeIds.indexOf( cd.id ) !=3D -1) continue; var visAll =3D cd.visAll || !cd.isGrade(); if (cd.deleted || !visAll || (!includeHidden && !cd.gbvis)) continue; tempColDefs.push(cd); } return tempColDefs; }, // if both a & b are NOT visible to all, returns null // if both a & b are visible to all, sorts by position // if a is visible to all, returns -1 so visible to all columns come = first // if b is visible to all, returns 1 so visible to all columns come = first _sortVisibleToAll: function(a,b) { var aVisAll =3D a.visAll || !a.isGrade(); var bVisAll =3D b.visAll || !b.isGrade(); if (!aVisAll && !bVisAll) { return null; } else if (aVisAll && bVisAll) { return a.pos - b.pos; } else if (aVisAll) { return -1; } else if (bVisAll) { return 1; } }, _sortColDir: function(result) { return (this.sortColAscending)?result:result*-1; }, _sortColByPosFunc: function(a,b) { var sf =3D this._sortVisibleToAll(a,b); if (sf !=3D null) return sf; var gpPosA =3D (a.gpid.blank())?-1:this.gradingPeriodMap[a.gpid].pos; = var gpPosB =3D (b.gpid.blank())?-1:this.gradingPeriodMap[b.gpid].pos;=09 var res;=09 if (gpPosA =3D=3D gpPosB){ res =3D a.pos - b.pos; } else if (gpPosA >=3D 0 && gpPosB >=3D 0){ res =3D gpPosA - gpPosB; } else if (gpPosB =3D=3D -1) { res =3D -1; } else { res =3D 1; } return this._sortColDir( res ); }, _sortColByPointsFunc: function(a,b) { var sf =3D this._sortVisibleToAll(a,b); if (sf !=3D null) return sf; var aa =3D a.points; var bb =3D b.points; var res;=09 if (aa=3D=3Dbb)=20 res =3D a.cdate - b.cdate; else if (aa=3D this.colOrderMap.length) { GradebookUtil.error('sort colnum out of range. Max is: = '+this.orderMap.length+' colnum is: '+colnum); return; } GradebookUtil.debug('GridModel sort called. colnum: '+colnum+' = sortdir: '+sortdir); this.sortDir =3D sortdir; var sortFunc; if (colnum =3D=3D -1){ this.sortColumnId =3D null; if (sortdir=3D=3D'ASC') sortFunc =3D this._sortCheckedASC.bind(this); else sortFunc =3D this._sortCheckedDESC.bind(this); } else { var sortColumn =3D this.colOrderMap[colnum]; var secondarySortColumn =3D this.colDefMap['LN']; var colDef =3D this.colDefs[sortColumn]; this.sortColumnId =3D colDef.id; if ( this.sortColumnId =3D=3D 'LN' ){ secondarySortColumn =3D this.colDefMap['FN']; } sortFunc =3D colDef.getSortFunction(sortColumn, sortdir, = secondarySortColumn); } this.visibleRows.sort(sortFunc); }, _sortCheckedASC: function(a,b) { var aa =3D a[0].isRowChecked()?1:0; var bb =3D b[0].isRowChecked()?1:0; if (aa=3D=3Dbb) return 0; if (aa=3D 0) { crsId =3D crsId.split("_")[1]; } var gradeCenterContentFrame =3D window.frames['gradecenterframe']; // = Grade Center Frame in SSL mode if (!gradeCenterContentFrame) gradeCenterContentFrame =3D = window.frames['content']; // regular course content frame if (!gradeCenterContentFrame.GradebookDWRFacade) = gradeCenterContentFrame =3D window.frames['content'].frames['main'];=20 gradeCenterContentFrame.GradebookDWRFacade.getGroups(crsId, = Gradebook.GridModel.prototype.updateGroupsCallback ); }, =20 updateGroupsCallback: function (retData) { var groupsMap =3D new Array(); var groups =3D new Array(); var h =3D $H(retData); h.each(function(pair) { var g =3D {}; g.id =3D pair.key; g.uids =3D pair.value; groupsMap[g.id] =3D groups.length; groups.push( g ); }); var model =3D Gradebook.getModel(); =20 model.groupsMap =3D groupsMap; model.groups =3D groups; }, =20 // used by reporting getReportData: function (reportDef) { // get rows for students to include in report var userIds =3D null; if (reportDef.students =3D=3D 'BYGROUPS'){ if ( reportDef.groupIds =3D=3D null ){ GradebookUtil.error('GridModel error getReportData: no = reportDef.groupIds'); return null; } userIds =3D this._getUserIdsByGroupIds( reportDef.groupIds ); } else if (reportDef.students =3D=3D 'BYSTUDENT') { if ( reportDef.studentIds =3D=3D null ){ GradebookUtil.error('GridModel error getReportData: no = reportDef.studentIds'); return null; } userIds =3D reportDef.studentIds; } var rows =3D this._getRowsByUserIds( userIds );=20 if ( !reportDef.includeHiddenStudents ) rows =3D this._removeHiddenStudents(rows); // get columns to include in report var colDefs =3D this.getColDefs(true,true); if (reportDef.columns =3D=3D 'BYITEM'){ colDefs =3D this._getColDefsById( reportDef.itemIds ); } else if (reportDef.columns =3D=3D 'BYGP'){ colDefs =3D this._getColDefsByGradingPeriodId( = reportDef.gradingPeriodIds ); } else if (reportDef.columns =3D=3D 'BYCAT'){ colDefs =3D this._getColDefsByCategoryId( reportDef.categoryIds ); } if (!reportDef.includeHiddenColumns){ colDefs =3D this._removeHiddenColumns( colDefs ); } // create return data structure var reportData =3D {}; reportData.columnInfoMap =3D new Array(); reportData.studentGradeInfo =3D new Array(); // add column data for (var i =3D 0, len =3D colDefs.length; i < len; i++){ var cdef =3D colDefs[i]; var cdata =3D {}; reportData.columnInfoMap[cdef.id] =3D cdata; cdata.name =3D cdef.getName(); if (reportDef.columnInfoDescription){ cdata.description =3D 'tbd'; // server will provide desc map } if (reportDef.columnInfoDueDate){ cdata.dueDate =3D cdef.getDueDate(); } if (reportDef.columnInfoStatsMedian || = reportDef.columnInfoStatsAverage){ var stats =3D cdef.getStats( true ); // include unavailable students cdata.statsMedian =3D stats.median; cdata.statsAverage =3D stats.avg; } } =09 // add student data for (var i =3D 0, len0 =3D rows.length; i < len0; i++){ var row =3D rows[i]; var rd =3D {}; reportData.studentGradeInfo.push(rd); =09 if (reportDef.firstName){ rd.firstName =3D this._getStudentAttribute( row, 'FN' ); } if (reportDef.lastName){ rd.lastName =3D this._getStudentAttribute( row, 'LN' ); } if ( reportDef.studentId ){ rd.studentId =3D this._getStudentAttribute( row, 'SI' ); } if ( reportDef.userName ){ rd.userName =3D this._getStudentAttribute( row, 'UN' ); } if ( reportDef.lastAccessed ){ rd.lastAccessed =3D this._getStudentAttribute( row, 'LA' ); if (rd.lastAccessed && rd.lastAccessed > 0){=20 var date =3D new Date(); date.setTime(rd.studentId); rd.lastAccessed =3D formatDate(date,'MMM d, y'); } } rd.grades =3D new Array(); for (var c =3D 0, len1 =3D colDefs.length; c < len1; c++){ var g =3D {}; g.cid =3D colDefs[c].id; var gridCell =3D this._getGrade( row, colDefs[c]); if (gridCell.attemptInProgress() && !gridCell.isOverride())=20 g.grade =3D this.getMessage('inProgressMsg'); else if (gridCell.needsGrading() && !gridCell.isOverride())=20 g.grade =3D this.getMessage('needsGradingMsg'); else=20 g.grade =3D gridCell.getCellValue(); rd.grades.push( g ); } } return reportData; }, _getGrade: function( row, colDef ) { var colIndex =3D this.colDefMap[colDef.id]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _getGrade invalid column id: = '+colDef.id); return null; } return row[colIndex]; }, _getStudentAttribute: function( row, colDefId ) { var colIndex =3D this.colDefMap[colDefId]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _getStudentAttribute invalid column = id: '+colDefId); return null; } return row[colIndex].getValue(); }, _removeHiddenStudents: function( students ) { var retStudents =3D new Array(); for (var i =3D 0, len =3D students.length; i < len; i++){ if (!students[i][0].isHidden()){=09 retStudents.push( students[i] ); } } return retStudents; }, _removeHiddenColumns: function( colDefs ) { var retColDefs =3D new Array(); for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if (!colDefs[i].isHidden()){=09 retColDefs.push( colDefs[i] ); } } return retColDefs; }, _getColDefsById: function( itemIds ) { var colDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ if (itemIds.indexOf( this.colDefs[i].id ) !=3D -1){=09 colDefs.push( this.colDefs[i] ); } } return colDefs; }, _getColDefsByCategoryId: function( categoryIds ) { var colDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ if (categoryIds.indexOf( this.colDefs[i].catid ) !=3D -1){=09 colDefs.push( this.colDefs[i] ); } } return colDefs; }, _getColDefsByGradingPeriodId: function( gradingPeriodIds ) { var colDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ if (gradingPeriodIds.indexOf( this.colDefs[i].gpid ) !=3D -1){=09 colDefs.push( this.colDefs[i] ); } } return colDefs; }, _getRowsByUserIds: function( userIds ) { var rows =3D this.rows; if (userIds =3D=3D null){ return rows; } var retRows =3D new Array(); for (var i =3D 0, len =3D rows.length; i < len; i++){ if (userIds.indexOf(rows[i][0].getUserId()) !=3D -1){ retRows.push(rows[i]); } } return retRows; }, _getUserIdsByGroupIds: function( groupIds ) { if ( !this.groupsMap || !this.groups ){ GradebookUtil.error('GridModel error getUserIdsByGroupIds: no = groups'); return null; } var userIds =3D new Array(); for (var i =3D 0; i < groupIds.length; i++){ var index =3D this.groupsMap[Number(groupIds[i])]; if (index =3D=3D undefined){ GradebookUtil.error('GridModel error getUserIdsByGroupIds: no group = for id: '+groupIds[i]); continue; } var group =3D this.groups[index]; for (var g =3D 0; g < group.uids.length; g++){ if (userIds.indexOf(group.uids[g]) =3D=3D -1){ userIds.push( String( group.uids[g] ) ); } } } return userIds; }, // called by student stats page getStudentStats: function( userId, currentViewOnly ) { var studentStats =3D {}; studentStats.catStats =3D new Array(); var catMap =3D new Array(); =09 // get columns, either all or current view var colDefs =3D new Array(); var len =3D currentViewOnly ? this.colOrderMap.length : = this.colDefs.length; for (var i =3D 0; i < len; i++){ var idx =3D currentViewOnly ? this.colOrderMap[i] : i; var c =3D this.colDefs[idx]; if (!c.deleted && c.isGrade() && !c.isCalculated()) { colDefs.push( c ); } } var row =3D this.getRowByUserId(userId); =09 for (var i =3D 0; i < colDefs.length; i++){ var colDef =3D colDefs[i]; var catId =3D colDef.getCategoryID(); var catStat =3D catMap[catId]; if (catStat =3D=3D null){ catStat =3D {}; catStat.name =3D colDef.getCategory(); catStat.qtyGraded =3D 0; catStat.qtyInProgress =3D 0; catStat.qtyNeedsGrading =3D 0; catStat.qtyExempt =3D 0; catStat.sum =3D 0; catStat.avg =3D 0; catMap[catId] =3D catStat; studentStats.catStats.push( catStat ); } var grade =3D this._getGrade( row, colDef); var val =3D grade.getSortValue(); var isNull =3D (val =3D=3D '-'); var isIP =3D grade.attemptInProgress(); var isNG =3D grade.needsGrading(); var isExempt =3D grade.isExempt(); var isVal =3D (!isNull && !isIP && !isNG && !isExempt); if (isIP)=20 catStat.qtyInProgress++; else if (isNG)=20 catStat.qtyNeedsGrading++; else if (isExempt)=20 catStat.qtyExempt++; =09 if (isVal){ catStat.qtyGraded++; if (colDef.isCalculated()){ val =3D parseFloat(val)/parseFloat(grade.getPointsPossible()) * = 100.0;=09 } catStat.sum +=3D parseFloat( val ); } } studentStats.numItemsCompleted =3D 0; var totNumExempt =3D 0; for (var i =3D 0; i < studentStats.catStats.length; i++){ var catStat =3D studentStats.catStats[i]; if (catStat.sum > 0){ catStat.avg =3D catStat.sum/parseFloat( catStat.qtyGraded ); catStat.avg =3D NumberFormatter.getDisplayFloat( = catStat.avg.toFixed(2) ); } totNumExempt +=3D catStat.qtyExempt; studentStats.numItemsCompleted +=3D (catStat.qtyNeedsGrading + = catStat.qtyGraded); } studentStats.numItems =3D colDefs.length - totNumExempt; return studentStats; }, getAccessibleMode: function() { return this.accessibleMode; }, =09 setAccessibleMode: function( accessibleMode ) { this.accessibleMode =3D accessibleMode; }, =09 setLoggerDebugLevel: function(logger) { this.logger.setLevel(top.content.log4javascript.Level.DEBUG); }, setLogger: function(logger) { this.logger =3D logger; }, getLogger: function() { return this.logger; }, setMessages: function (messages) { this.messages =3D messages; }, getMessage: function (key) { if (this.messages){ return this.messages[key]; } else { return key; } } }; Gradebook.RowMetaData =3D Class.create(); Gradebook.RowMetaData.prototype =3D { initialize: function(userId) { this.userId =3D userId; this.isChecked =3D false; this.isHidden =3D false; this.comput_err =3D false; } }; //////////////////////////// Column Defs = ////////////////////////////////////// Gradebook.ColDef =3D Class.create(); Gradebook.ColDef.prototype =3D { initialize: function(jsonObj, model, schemaMap) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object if (this.sid){ this.primarySchema =3D schemaMap[this.sid]; } if (this.ssid){ this.secondarySchema =3D schemaMap[this.ssid]; } }, getSortFunction: function(sortColumn, sortdir, secondarySortColumn) { this.sortColumn =3D sortColumn; this.secondarySortColumn =3D secondarySortColumn; if (sortdir=3D=3D'ASC') return this._sortASC.bind(this); else return this._sortDESC.bind(this); }, validate: function(newValue, matchPartial) { if (!this.primarySchema){ return null; } else { return this.primarySchema.validate(newValue, matchPartial); } }, _sortASC: function(a,b) { var aa =3D a[this.sortColumn].getValue(); var bb =3D b[this.sortColumn].getValue(); if( !aa && !bb ) return this._secondarySortASC(a,b); if( !aa ) return -1; if( !bb ) return 1; aa =3D aa.toUpperCase(); bb =3D bb.toUpperCase(); if (aa=3D=3Dbb)return this._secondarySortASC(a,b); if (aa('+cellVal2+')'; } =20 return new String(cellVal); }, // called by GridCell.getAltValue to get alt (mouse over) value for = rendering in spreadsheet // same as getCellValue unless there is a secondary schema getAltValue: function( gridCell ){ if (gridCell.isExempt()) { return this.model.getMessage('cmExemptGrade'); } =09 if (!this.secondarySchema){ return this.getCellValue( gridCell ); } var cellVal =3D this.primarySchema.getCellValue( gridCell ); if (this.secondarySchema){ var cellVal2 =3D this.secondarySchema.getCellValue( gridCell ); cellVal +=3D ' ('+cellVal2+')'; } return new String(cellVal); }, getSortValue: function( gridCell ){ return gridCell.getValue(); }, getName: function() { return this.name; }, getID: function() { return this.id; }, getPoints: function() { if ( this.isCalculated() )=20 return GradebookUtil.getMessage( 'variesPerStudentMsg' ); else return this.points; }, getAliasID: function() { return this.id; }, getCategoryID: function() { return this.catid; }, getCategory: function() { if (! this.catid ) return ""; if (! this.model.catNameMap ) return ""; var name =3D this.model.catNameMap[ Number(this.catid) ]; if ( name ) return name; return ""; }, getCategoryAliasID: function() { return this.catid; }, isHidden: function() { return !this.gbvis; }, isScorable: function() { return this.scrble; }, isPublic: function() { return (this.id =3D=3D this.model.pubColID); }, isVisibleToStudents: function() { return this.vis; }, onHideColumn: function( evt ) { Event.stop( evt ); this.gbvis =3D false; this.model.hideColumn(this.id); }, onSortAscending: function ( evt ) { Event.stop( evt ); this.cellController.onSortAscending(); }, =20 onSortDescending: function ( evt ) { Event.stop( evt ); this.cellController.onSortDescending(); }, =20 onToggleColumnStudentVisibility : function( evt ){ Event.stop( evt ); this.model.setColumnStudentVisibility( this.id, !this.vis ); this.cellController.closePopupsAndRestoreFocus(evt); }, getDisplayType: function( ) { return this.primarySchema.type; }, hasError: function( ) { return this.comput_err; }, =09 // called by model.getDisplayValue when external pages need to convert = a rawValue // This function passes this.points to schema.getDisplayValue.=20 // This method should not be called for this colDef if this colDef is a = calculated=20 // column, because we do not have access to the gridCell to get its max = points. // todo: determine how to handle error condition if this column is a = calulated col getDisplayValue: function( rawValue ) { if (this.primarySchema){ return this.primarySchema.getDisplayValue( rawValue, this.points ); } else { return rawValue; } } }; Gradebook.GradeColDef =3D Class.create(); Object.extend(Gradebook.GradeColDef.prototype, = Gradebook.ColDef.prototype); Object.extend (Gradebook.GradeColDef.prototype, { =20 initialize: function(jsonObj, model, schemaMap) { Gradebook.ColDef.prototype.initialize.call(this,jsonObj, model, = schemaMap); }, getRawValue: function( newValue ){ var score =3D newValue; // compute score based on primary schema if (this.primarySchema){ var rawValue =3D this.primarySchema.getRawValue(newValue,this); score =3D parseFloat( rawValue ); if (!GradebookUtil.isValidFloat( rawValue )){ if (typeof(rawValue) =3D=3D "string") return rawValue; score =3D 0; } } return score; }, getSortValue: function( gridCell ){ if (this.primarySchema){ return this.primarySchema.getSortValue( gridCell ); } else { return gridCell.getValue(); } }, updateGrade: function( newValue, userId ){ var score =3D this.getRawValue(newValue); var textValue =3D newValue; this.model.updateGrade(score, textValue, userId, this.id); }, _sortASC: function(a,b) { var gradeA =3D a[this.sortColumn]; var gradeB =3D b[this.sortColumn]; var aa =3D gradeA.getSortValue(); var bb =3D gradeB.getSortValue(); if (gradeA.colDef.primarySchema instanceof Gradebook.TextSchema){ if (aa=3D=3Dbb) return this._secondarySortASC(a,b); if (aa 0){=20 var date =3D new Date(); date.setTime(this.due); dueDate =3D formatDate(date,'MMM d, y'); } return dueDate; }, =09 // called by item stats page getStats: function ( includeUnavailableStudents ) { var grades =3D this.model._getGradesForItemId(this.id, = includeUnavailableStudents); if (this.primarySchema instanceof Gradebook.TextSchema){ grades =3D new Array(); } =09 var values =3D new Array(); var sum =3D 0; var stats =3D {}; stats.count =3D 0; stats.minVal =3D null; stats.maxVal =3D null; stats.qtyNull =3D 0; stats.qtyInProgress =3D 0; stats.qtyNeedsGrading =3D 0; stats.qtyExempt =3D 0; =09 for (var i =3D 0; i < grades.length; i++){ var grade =3D grades[i]; var val =3D grade.getSortValue(); var isNull =3D (val =3D=3D '-'); var isIP =3D grade.attemptInProgress(); var isNG =3D grade.needsGrading(); var isExempt =3D grade.isExempt(); var isVal =3D (!isNull && !isIP && !isNG && !isExempt); if (isIP)=20 stats.qtyInProgress++; else if (isNG)=20 stats.qtyNeedsGrading++; else if (isExempt)=20 stats.qtyExempt++; else if (isNull)=20 stats.qtyNull++; =09 if (isVal){ if (this.isCalculated()){ val =3D (parseFloat(val)/parseFloat(grade.getPointsPossible()) * = 100.0);=09 } values.push( val ); sum +=3D parseFloat( val ); stats.minVal =3D (stats.minVal =3D=3D null) ? val : Math.min( val, = stats.minVal); stats.maxVal =3D (stats.maxVal =3D=3D null) ? val : Math.max( val, = stats.maxVal); } } stats.count =3D values.length; =09 if (values.length =3D=3D 0){ stats.avg =3D ''; stats.range =3D ''; stats.minVal =3D ''; stats.maxVal =3D ''; stats.median =3D ''; stats.variance =3D ''; stats.stdDev =3D ''; } else { stats.avg =3D sum/values.length; stats.range =3D stats.maxVal - stats.minVal; =09 values.sort( Gradebook.numberComparator ); if (values.length =3D=3D 1){ stats.median =3D values[0]; } else if (values.length % 2){ // number of values is odd, the median is the middle value stats.median =3D values[parseInt(values.length/2)]; } else { // number of values is even, the median is the average of the two = middle values stats.median =3D (values[values.length/2-1] + = values[values.length/2])/2; } stats.variance =3D this._computeVariance( values, stats.avg ); stats.stdDev =3D Math.sqrt( stats.variance ); stats.maxVal =3D this._formatFloat( stats.maxVal ); stats.minVal =3D this._formatFloat( stats.minVal ); stats.avg =3D this._formatFloat( stats.avg ); stats.range =3D this._formatFloat( stats.range ); stats.median =3D this._formatFloat( stats.median ); stats.variance =3D this._formatFloat( stats.variance ); stats.stdDev =3D this._formatFloat( stats.stdDev ); } stats.gradeDistribution =3D this.primarySchema.getGradeDistribution( = values, this.points, stats ); return stats; }, _formatFloat: function( f ) { try { if ( f !=3D null )=20 return NumberFormatter.getDisplayFloat( f.toFixed(2) ); } catch ( e ) { //ignore and return the current value=20 } return f; =09 }, _computeVariance: function( values, average ) { var sumXMeanSquare =3D 0; for (var i =3D 0; i < values.length; i++){ var xMean =3D values[i] - average; sumXMeanSquare +=3D (xMean * xMean); } return sumXMeanSquare / values.length; }, =09 getInfo: function() { var publicLabel; if (this.isPublic()) publicLabel =3D GradebookUtil.getMessage('isMsg'); else publicLabel =3D GradebookUtil.getMessage('isNotMsg'); var includedInCalculationsLabel; if (this.isScorable()) includedInCalculationsLabel =3D GradebookUtil.getMessage('yesMsg'); else includedInCalculationsLabel =3D GradebookUtil.getMessage('noMsg'); var points; if ( this.isCalculated() ) points =3D GradebookUtil.getMessage( 'variesPerStudentMsg' ); else points =3D NumberFormatter.getDisplayFloat( this.points ); var info =3D [ {id: "itemInfoId", value: this.getID()}, =20 {id: "itemInfoName", value: this.name}, {id: "itemInfoCategory", value: this.getCategory()}, {id: "itemInfoSchema", value: this.primarySchema.name}, {id: "itemInfoPoints", value: (points=3D=3D0?"-":points)}, {id: "itemInfoPublic", value: publicLabel}, {id: "itemInfoIncludedInCalculations", value: = includedInCalculationsLabel}, {id: "itemInfoDueDate", value: this.getDueDate()} ]; return info; } }); Gradebook.StudentAttributeColDef =3D Class.create(); Object.extend(Gradebook.StudentAttributeColDef.prototype, = Gradebook.ColDef.prototype); Object.extend (Gradebook.StudentAttributeColDef.prototype, { =20 initialize: function(jsonObj, model, schemaMap) { Gradebook.ColDef.prototype.initialize.call(this,jsonObj, model, = schemaMap); this.vis =3D true; }, isGrade: function() { return false; }, isCalculated: function() { return false; }, =09 isTotal: function() { return false; }, =09 isWeighted: function() { return false; }, =09 getType: function() { return "student"; }, =09 // called by GridCell.getCellValue to get value for rendering in = spreadsheet // format date for last access column, all other columns just return = gridcell value getCellValue: function( gridCell ){ var cellVal =3D gridCell.getValue(); if (this.id =3D=3D 'LA'){ // last accessed column var dueDate =3D ''; if (cellVal && cellVal > 0){=20 var date =3D new Date(); date.setTime(cellVal); cellVal =3D formatDate(date,'MMM d, y'); } } return cellVal; }, getRawValue: function( newValue ){ return newValue; }, updateUserVisibility: function ( userId, visible ) { this.model.updateUserVisibility( userId, visible ); }, =20 getContextMenuInfo: function(cellController) { this.cellController =3D cellController; var canHide =3D (this.model.colOrderMap[0] !=3D = this.model.colDefMap[this.id]); var menu =3D { id: "studentInfoHeaderCM", items: [ {id: "sih_sortAscending", visible:true, onclick: this.onSortAscending.bindAsEventListener(this)}, {id: "sih_sortDescending", visible:true, onclick: this.onSortDescending.bindAsEventListener(this)}, {id: "sih_hideColumn", visible:canHide, onclick: this.onHideColumn.bindAsEventListener(this), receipt: = 'hideColumnInlineMsg' } ]}; return menu; =09 } }); //////////////////////////// Grid Cells = ////////////////////////////////////// Gradebook.GridCell =3D Class.create(); Gradebook.GridCell.prototype =3D { =09 initialize: function(colDef, metaData) { this.colDef =3D colDef; this.metaData =3D metaData; this.v =3D "-"; this.canBeEdited =3D true; this.isBeingEdited =3D false; this.isUncommitted =3D false; if (this.colDef.id =3D=3D 'UN'){ this.metaData.userNameGridCell =3D this; } }, _loadFromJSON: function(jsonObj) { this.gc =3D null; // grade change flag this.ip =3D null; // in progress flag this.ng =3D null; // needs grading flag this.or =3D null; // override flag this.x =3D null; // exempt flag cleared if ( !(jsonObj.avail =3D=3D=3D undefined) ){ this.metaData.avail =3D jsonObj.avail; } Object.extend(this, jsonObj); // assign json properties to this object }, =09 getUserId: function() { return this.metaData.userId; }, getUserName: function() { return this.metaData.userNameGridCell.v; }, =09 isHidden: function() { return this.metaData.isHidden; }, =09 setHidden: function( h ) { this.metaData.isHidden =3D h; }, =09 isRowChecked: function() { return this.metaData.isChecked; }, =09 setRowChecked: function(c) { this.metaData.isChecked =3D c; }, =09 invertChecked: function() { this.metaData.isChecked =3D !this.metaData.isChecked; }, =09 isAvailable: function() { return this.metaData.avail; }, isGrade: function() { return (this.colDef.isGrade()); }, =09 isOverride: function() { return (this.or && this.or =3D=3D "y"); }, =09 needsGrading: function() { return (this.ng !=3D null && this.ng && this.ng =3D=3D "y"); }, =09 attemptInProgress: function() { return (this.ip !=3D null && this.ip && this.ip =3D=3D "y"); }, =09 isModified: function() { return (this.gc && this.gc =3D=3D "y"); }, isGraded: function() { var tv =3D this.getTextValue(); return (tv !=3D '-' && tv.length > 0); }, =09 isComplete: function() { if (this.colDef.primarySchema instanceof = Gradebook.CompleteIncompleteSchema){ return this.isGraded(); }else{ =09 return false; } }, isExempt: function() { return (this.x =3D=3D "y"); }, validate: function(newValue, matchPartial) { return this.colDef.validate(newValue, matchPartial); }, =09 update: function(newValue) { this.isUncommitted =3D true; this.gc =3D "y"; this.colDef.updateGrade( newValue, this.getUserId() ); }, // called by CellController.renderHTML to get value for spreadsheet getCellValue: function() { return this.colDef.getCellValue( this ); }, // called by GridCell.getAltValue to get alt (mouse over) value for = rendering in spreadsheet getAltValue: function(){ if ( this.isGrade() && !this.isGraded() ) return = GradebookUtil.getMessage('noGradeMsg'); return this.colDef.getAltValue( this ); }, // called by CellController.startEdit to get input value for editing getEditValue: function() { return this.colDef.getEditValue( this ); }, getSortValue: function() { return this.colDef.getSortValue( this ); }, getPointsPossible: function() { if (this.mp){ return this.mp; } else if (this.colDef.points){ return this.colDef.points; } else { return 0; } }, getTextValue: function() { if (this.tv) { return this.tv; } else { return '-'; } }, getValue: function() { return this.v; } };=09 Gradebook.Grade =3D Class.create(); Object.extend(Gradebook.Grade.prototype, Gradebook.GridCell.prototype); Object.extend (Gradebook.Grade.prototype, { =20 initialize: function(colDef, metaData) { Gradebook.GridCell.prototype.initialize.call(this,colDef, metaData); }, =09 canEdit: function(){ return (!this.colDef.isCalculated() && = !this.colDef.isHideAttemptScore()&& !this.savingDiv); }, showGradeDetails: function( evt ){ Event.stop( evt ); this.colDef.showGradeDetails( this.getUserId() ); }, =09 onAddComment: function(evt){ this.cellController.addGradeComment(evt, this); this.colDef.onAddComment( this.getUserId() ); }, =09 exemptGrade: function(evt){ Event.stop( evt ); this.cellController.stopEdit(false, true); this.colDef.exemptGrade( this.getUserId(), this ); this.cellController.closePopupsAndRestoreFocus(evt) }, =09 clearExemption: function(evt){ Event.stop( evt ); this.colDef.clearExemption( this.getUserId() ); this.cellController.closePopupsAndRestoreFocus(evt); }, onClearModified: function( evt ){ Event.stop( evt ); this.clearModifiedIndicator( ); this.colDef.clearModifiedIndicator( this.getUserId() ); this.cellController.closePopupsAndRestoreFocus(evt); }, =09 clearModifiedIndicator: function(){ this.gc =3D null; if (this.cellController){ this.cellController.renderHTML(this); } }, =09 setComments: function(studentComments, instructorComments){ this.colDef.setComments( this.getUserId(), studentComments, = instructorComments ); }, =09 getContextMenuInfo: function(cellController) { if (this.colDef.isCalculated()){ return null; } this.cellController =3D cellController; // Can add comments for non-null manual column grades &=20 // system column grades that have been overridden var isManual =3D this.colDef.isManual(); var isExempt =3D this.isExempt(); var canAddComment =3D (isManual && this.v !=3D '-') || (!isManual && = this.isOverride()) || isExempt; var menu =3D { id: "gradeCM", items: [ {id: "g_360View", visible:true, onclick: this.showGradeDetails.bindAsEventListener(this)}, {id: "g_addComment", visible: canAddComment, onclick: this.onAddComment.bindAsEventListener(this)}, {id: "g_clearModified", visible:(this.isModified()), onclick: this.onClearModified.bindAsEventListener(this)}, {id: "g_exemptGrade", visible: !isExempt, onclick: this.exemptGrade.bindAsEventListener(this)}, {id: "g_clearExemption", visible: isExempt, onclick: this.clearExemption.bindAsEventListener(this)} ]}; return menu; =09 } }); Gradebook.StudentAttribute =3D Class.create(); Object.extend(Gradebook.StudentAttribute.prototype, = Gradebook.GridCell.prototype); Object.extend (Gradebook.StudentAttribute.prototype, { =20 initialize: function(colDef, metaData) { Gradebook.GridCell.prototype.initialize.call(this,colDef, metaData); }, =09 onSendEmail: function( evt ){ Event.stop( evt ); var ids =3D new Array() ids[0] =3D this.getUserId(); this.cellController.sendEmail('S',ids); }, =09 onShowUser: function( evt ){ Event.stop( evt ); this.colDef.updateUserVisibility( this.getUserId(), true ); }, =09 onHideOtherStudents: function( evt ){ Event.stop( evt ); this.colDef.model.viewSingleStudentGrades( this.getUserId() ); }, =09 onShowAllRows: function( evt ){ Event.stop( evt ); this.colDef.model.restoreFromSingleStudentView(); }, =09 onStudentStats: function( evt ){ Event.stop( evt ); this.colDef.model.viewStudentStats( this.getUserId() ); }, =09 onHideUser: function( evt ){ Event.stop( evt ); this.colDef.updateUserVisibility( this.getUserId(), false ); }, =09 onAdaptiveReleaseUser: function( evt ){ Event.stop( evt ); this.colDef.model.viewAdaptiveRelease( this.getUserName() ); }, =09 canEdit: function(){ return false; }, =09 getContextMenuInfo: function(cellController) { this.cellController =3D cellController; var menu =3D { id: "studentInfoCM", items: [ {id: "si_studentHideOtherStudents", = visible:this.colDef.model.isolatedStudentId?false:true, onclick: this.onHideOtherStudents.bindAsEventListener(this)}, {id: "si_showAllRows", = visible:this.colDef.model.isolatedStudentId?true:false, onclick: this.onShowAllRows.bindAsEventListener(this)}, {id: "si_studentStats", visible:true, onclick: this.onStudentStats.bindAsEventListener(this)}, {id: "si_adaptiveReleaseColumn", visible:true, onclick: this.onAdaptiveReleaseUser.bindAsEventListener(this)}, {id: "si_sendEmail", visible:true, onclick: this.onSendEmail.bindAsEventListener(this)}, {id: "si_hideUser", visible:!this.isHidden(), onclick: this.onHideUser.bindAsEventListener(this), receipt: 'hideStudentInlineMsg'}, {id: "si_showUser", visible:this.isHidden(), onclick: this.onShowUser.bindAsEventListener(this)} ]}; return menu; =09 } }); //////////////////////////// Schemas = ////////////////////////////////////// Gradebook.NumericSchema =3D Class.create(); Gradebook.NumericSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 getGradeDistribution: function( grades, points, stats ){ return Gradebook.PercentageSchema.prototype.getGradeDistribution( = grades, points, stats ); }, =09 // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getValue(), = gridCell.getPointsPossible());=09 }, =09 // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, getSortValue: function( gridCell ){ return gridCell.getValue();=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (rawValue =3D=3D '-' || rawValue.length =3D=3D 0){ return rawValue; } return NumberFormatter.getDisplayFloat( = parseFloat(rawValue).toFixed(2) ) }, getRawValue: function(displayValue,colDef) { return NumberFormatter.getDotFloat( displayValue ); }, validate: function(newValue, matchPartial) { if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; var val =3D NumberFormatter.getDotFloat( newValue ); if (!GradebookUtil.isValidFloat( val )){ return GradebookUtil.getMessage('invalidNumberErrorMsg'); } val =3D ''+val; var idx =3D val.indexOf('.'); if (idx > -1 && (val.length - idx - 1) > 4) return GradebookUtil.getMessage('tooManyDecimalPlacesErrorMsg'); else { return null; } } }; Gradebook.TextSchema =3D Class.create(); Gradebook.TextSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, getGradeDistribution: function( grades, points, stats ){ return null; }, =09 // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getTextValue(), = gridCell.getPointsPossible());=09 }, getSortValue: function( gridCell ){ var tv =3D gridCell.getTextValue().toUpperCase(); //if (tv =3D=3D '-') tv =3D ''; return tv;=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ return rawValue;=09 }, getRawValue: function(displayValue,colDef) { return displayValue; }, validate: function(newValue, matchPartial) { // is any value bad? return null; } }; Gradebook.PercentageSchema =3D Class.create(); Gradebook.PercentageSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 // called by ColDef.getStats=20 getGradeDistribution: function( grades, points, stats ){ var dist =3D new Array(); var range =3D new Array(); range.count =3D 0; range.text =3D 'less than 0'; dist.push( range ); for (var i =3D 0; i < 10; i++){ range =3D new Array(); range.count =3D 0; range.low =3D (i * 10); range.high =3D (i * 10) + ((i < 9)?9:10); range.text =3D range.low + ' - ' + range.high; dist.push( range ); } var range =3D new Array(); range.count =3D 0; range.text =3D 'greater than 100'; dist.push( range ); for (var i =3D 0, len =3D grades.length; i < len; i++){ var percent =3D (points)?(parseFloat(grades[i])/parseFloat(points) * = 100.0) : parseFloat(grades[i]);=09 if (percent =3D=3D 100) percent -=3D 0.1; // 100 should fall into = 90-100 bin var index =3D parseInt(percent/10.0) + 1; if (percent < 0) index =3D 0; if (percent > 100) index =3D 11; dist[index].count++; } dist.reverse(); return dist; }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getValue(), = gridCell.getPointsPossible());=09 }, // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, getSortValue: function( gridCell ){ return gridCell.getValue();=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (parseFloat(points) =3D=3D 0.0 || rawValue =3D=3D '-' || = rawValue.length =3D=3D 0){ return rawValue; } var percent =3D parseFloat(rawValue)/parseFloat(points) * 100.0;=09 return NumberFormatter.getDisplayFloat( parseFloat(percent).toFixed(2) = )+'%';=09 }, getRawValue: function(displayValue,colDef) { var points =3D (colDef.points)?colDef.points:100; displayValue =3D displayValue.replace('%',''); displayValue =3D NumberFormatter.getDotFloat( displayValue ); return parseFloat(displayValue)/100.0 * parseFloat(points);=09 }, validate: function(newValue, matchPartial) { newValue =3D newValue.replace('%',''); if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; var val =3D NumberFormatter.getDotFloat( newValue ); if (!GradebookUtil.isValidFloat( val )){ return GradebookUtil.getMessage('invalidNumberErrorMsg'); } val =3D ''+val; var idx =3D val.indexOf('.'); if (idx > -1 && (val.length - idx - 1) > 4) return GradebookUtil.getMessage('tooManyDecimalPlacesErrorMsg'); else { return null; } } }; Gradebook.CompleteIncompleteSchema =3D Class.create(); Gradebook.CompleteIncompleteSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 // called by ColDef.getStats=20 getGradeDistribution: function( grades, points, stats ){ var dist =3D new Array(); var range =3D new Array(); range.count =3D stats.qtyNull; range.text =3D 'Incomplete'; dist.push( range ); range =3D new Array(); range.count =3D grades.length; range.text =3D 'Complete'; dist.push( range ); dist.reverse(); return dist; }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getTextValue(), = gridCell.getPointsPossible());=09 }, // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return gridCell.getValue(); }, getSortValue: function( gridCell ){ var tv =3D gridCell.getTextValue().toUpperCase(); if (tv =3D=3D '-'){ return '-'; } else { return gridCell.getValue(); } }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (rawValue !=3D '-' && rawValue.length > 0){ return ''; } else { return '-'; } }, getRawValue: function(displayValue,colDef) { return displayValue; }, validate: function(newValue, matchPartial) { if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; // todo: determine what is allowed. I.E. is "-" allowed? // allow empty string or number // return (newValue.length =3D=3D 0 || parseFloat(newValue)); if (!GradebookUtil.isValidFloat(newValue)){ return GradebookUtil.getMessage('invalidNumberErrorMsg'); } else { return null; } } }; Gradebook.LetterSchema =3D Class.create(); Gradebook.LetterSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 // called by ColDef.getStats=20 getGradeDistribution: function( grades, points, stats ){ var dist =3D new Array(); var symMap =3D new Array(); this.symbols.each(function(s) { var range =3D new Array(); range.count =3D 0; range.text =3D s.sym; symMap[s.sym] =3D dist.length; dist.push( range ); }); for (var i =3D 0, len =3D grades.length; i < len; i++){ var val =3D this.getDisplayValue(grades[i], points);=09 var index =3D symMap[val]; if (index !=3D undefined){ dist[index].count++; } } return dist; }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getValue(), = gridCell.getPointsPossible());=09 }, // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, getSortValue: function( gridCell ){ return gridCell.getValue();=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (parseFloat(points) =3D=3D 0.0 || rawValue =3D=3D '-' || = rawValue.length =3D=3D 0){ return rawValue; } var percent =3D parseFloat(rawValue)/parseFloat(points) * 100.0;=09 percent =3D percent.toFixed(2);=09 if (!parseFloat(percent) && percent !=3D 0){ // see if raw value is one of the symbols var matchingSymbol; rawValue =3D rawValue.toUpperCase(); this.symbols.each(function(s) { if (rawValue =3D=3D s.sym.toUpperCase()){ matchingSymbol =3D s.sym; throw $break; // needed to get out of each loop } }); if (matchingSymbol){ return matchingSymbol; } else { return rawValue; } } var retVal =3D rawValue; this.symbols.each(function(s) { if (percent >=3D s.lb && percent <=3D s.ub){ retVal =3D s.sym; throw $break; // needed to get out of each loop } }); return retVal; }, getRawValue: function(displayValue,colDef) { //What it SHOULD be doing is: //Column created with Letter as primary display and secondary display of = % - worth 10 points //Enter A - go to schema and determine that A =3D 95% use 95% to = determine score of 9.5 - store 9.5 and display A //Enter 9 - determine the 9 is 90% (item is out of 10) 90% is an A - = store 9 and display A=20 var points =3D (colDef.points)?colDef.points:100; displayValue =3D ''+displayValue; displayValue =3D displayValue.replace('%',''); var score =3D displayValue.toUpperCase(); var score; this.symbols.each(function(s) { if (score =3D=3D s.sym.toUpperCase()){ score =3D (parseFloat(s.abs)/100.0) * points; throw $break; // needed to get out of each loop } }); return score; }, validate: function(newValue, matchPartial) { if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; // allow numeric value for letter schemas too if (GradebookUtil.isValidFloat(newValue)){ return null; } var retVal =3D GradebookUtil.getMessage('invalidLetterErrorMsg'); newValue =3D newValue.toUpperCase(); this.symbols.each(function(s) { if (newValue =3D=3D s.sym.toUpperCase() ||=20 (matchPartial && s.sym.toUpperCase().startsWith(newValue)) ){ retVal =3D null; throw $break; // needed to get out of each loop } }); return retVal; } }; //////////////////////////// Custom View = ////////////////////////////////////// Gradebook.CustomView =3D Class.create(); Gradebook.CustomView.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =20 // evaluate this custom view; determine userIds & itemIds for view // returns false if the formula cannot be evaluated, else true evaluate: function( ) { try { if ( this.definition ) { var ext =3D eval('({'+ this.definition+'})' ); Object.extend( this, ext ); this.definition =3D null; } this.userIds =3D new Array(); this.colIds =3D new Array(); this.aliasMap =3D new Array(); for (var i =3D 0, len =3D this.aliases.length; i < len; i++){ this.aliasMap[this.aliases[i].key] =3D this.aliases[i].val; } if (this.formula){ this._evaluateAdvanced(); } else { this._evaluateBasic(); } this._computeDisplayItems(); return true; } catch (e) { alert(this.model.getMessage('custViewRenderErrorMsg')); return false; } }, usesGroups: function( ) { for (var i =3D 0, len =3D this.aliases.length; i < len; i++){ if (this.aliases[i].key.startsWith('gr')){ return true; } } return false; }, getUserIds: function() { return this.userIds; }, getDisplayItemIds: function() { return this.colIds; }, _computeDisplayItems: function() { // map aliased ids to real ids if (this.display.ids){ this.display.unAliasedIds =3D new Array(); for (var i =3D 0, len =3D this.display.ids.length; i < len; i++){ var id =3D this.aliasMap[this.display.ids[i]];=09 if (id =3D=3D undefined) throw 'missing alias'; this.display.unAliasedIds.push( id ); } } var colDefs =3D this.model.getColDefs( false, this.display.showhidden = ); var dispType =3D this.display.items.toUpperCase(); if (dispType =3D=3D "BYITEM"){=20 this.colIds =3D this._getItemsById(); } else if (dispType =3D=3D "INCRI"){ // in criteria this.colIds =3D this._getItemsInCriteria(); } else if (dispType =3D=3D "BYCAT"){ // by category this.colIds =3D this._getItemsByCategoryId( colDefs ); } else if (dispType =3D=3D "BYGP"){ // by grading period this.colIds =3D this._getItemsByGradingPeriodId( colDefs ); } else if (dispType =3D=3D "ALLITEM"){ this.colIds =3D this._getAllItems( colDefs ); } else if (dispType =3D=3D "IVS"){ this.colIds =3D this._getItemsByVisibilityToStudents( colDefs, true = ); } else if (dispType =3D=3D "INVS"){ this.colIds =3D this._getItemsByVisibilityToStudents( colDefs, false = ); } else if (dispType =3D=3D "NOITEM"){=20 this.colIds =3D new Array() } }, _getItemsById: function() { return this.display.unAliasedIds;=09 }, _getItemsInCriteria: function() { var itemIds =3D new Array(); // get items that are used in criteria; which are in aliases for (var i =3D 0, len =3D this.aliases.length; i < len; i++){ if (this.aliases[i].key.startsWith('I_')){ itemIds.push( this.aliases[i].val ); } } return itemIds; }, _getItemsByCategoryId: function( colDefs ) { var itemIds =3D new Array(); // get items that have category id in display.ids for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if (this.display.unAliasedIds.indexOf( colDefs[i].catid ) !=3D -1){=09 itemIds.push( colDefs[i].id ); } } return itemIds; }, _getItemsByGradingPeriodId: function( colDefs ) { var itemIds =3D new Array(); // get items that have grading period id in display.ids for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if (this.display.unAliasedIds.indexOf( colDefs[i].gpid ) !=3D -1){=09 itemIds.push( colDefs[i].id ); } } return itemIds; }, _getItemsByVisibilityToStudents: function( colDefs, vis ) { var itemIds =3D new Array(); // get items that have grading period id in display.ids for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if ( colDefs[i].vis =3D=3D vis ){=09 itemIds.push( colDefs[i].id ); } } return itemIds; }, _getAllItems: function( colDefs ) { var itemIds =3D new Array(); for (var i =3D 0, len =3D colDefs.length; i < len; i++){ itemIds.push( colDefs[i].id ); } return itemIds; }, _evaluateBasic: function() { if ( this.students.userIds && this.students.userIds[0] !=3D "all") { var uids =3D this.students.userIds; for (var i =3D 0, len =3D uids.length; i < len; i++){ var id =3D this.aliasMap[uids[i]]; if (id =3D=3D undefined) throw 'missing alias' this.userIds.push( id ); } } else { // all students var showstuhidden =3D this.students.showstuhidden; var modelStudents =3D this.model.getStudents( showstuhidden ); for (var i =3D 0, len =3D modelStudents.length; i < len; i++){ this.userIds.push( modelStudents[i].id ); } } }, _evaluateAdvanced: function() { // lazily compute postfix formula & criteriaMap if (!this.postFixFormula){ this.postFixFormula =3D this.infix2postfix( this.formula ); } if (!this.criteriaMap){ this.criteriaMap =3D new Array(); for (var i =3D 0, len =3D this.criteria.length; i < len; i++){ this.criteriaMap[this.criteria[i].fid] =3D i; } } // test each row and add to userIds if it passes formula var rows =3D this.model.rows; for (var i =3D 0, len =3D rows.length; i < len; i++){ if ( this._evaluateFormulaForRow( rows[i] ) ){ this.userIds.push( rows[i][0].getUserId() ); } } }, _evaluateFormulaForRow: function( row )=20 { // only one criteria in formula if (this.postFixFormula.length =3D=3D 1){ return this._evalCriteria( this.postFixFormula[0], row ); } // evaluate postfix formula: // * push non-operators on stack // * when operators are encountered: // pop two operands off stack // evaluate operands (criteria) // apply operator to the two evaluated operands // store result on stack // * pop & return final result var stack =3D new Array(); for (var i =3D 0, len =3D this.postFixFormula.length; i < len; i++){ var tok =3D this.postFixFormula[i]; switch (tok){ case "AND":=20 case "OR":=20 if (stack.length < 2) throw (this.model.getMessage('custViewStackEmptyMsg') + tok); var op2 =3D stack.pop(); var op1 =3D stack.pop(); var firstValue =3D op1 ; if ( typeof(op1) =3D=3D 'string' ) firstValue =3D = this._evalCriteria( op1, row ); var secondValue =3D op2;=20 if ( typeof(op2) =3D=3D 'string' ) secondValue =3D = this._evalCriteria( op2, row ); if (tok =3D=3D "AND")=20 stack.push( ( firstValue && secondValue) ); else if (tok =3D=3D "OR") stack.push( (firstValue || secondValue) ); break; default: stack.push(tok);=20 break; } } if (stack.length !=3D 1) throw this.model.getMessage('custViewUnableToEvaluateMsg'); else return stack.pop(); }, _getAliasOrId: function( id ) { if ( id.startsWith('I_') || id.startsWith('c_') || = id.startsWith('gp_')=20 || id.startsWith('gr_') || id.startsWith('st_') ){ return this.aliasMap[id];=09 } else { return id; } =09 }, _evalCriteria: function( fid, row )=20 { // look up criteria by fid var crit =3D this.criteria[ this.criteriaMap[fid] ];=09 var colId =3D this._getAliasOrId( crit.cid );=09 if (colId =3D=3D undefined){ throw 'missing alias' } var colDefMap =3D this.model.colDefMap; var colIdx =3D colDefMap[colId]; if ( colId =3D=3D 'SV' || colId =3D=3D 'GM') colIdx =3D 0; if (colIdx =3D=3D undefined) { throw 'missing alias' } var gridCell =3D row[colIdx]; var evalFunc =3D this._getEvalCriteriaFunc( crit ); return evalFunc( crit, gridCell ); }, _evalAvailableCriteria: function( crit, gridCell )=20 { var avail =3D (gridCell.isAvailable())?"A":"U"; return crit.value =3D=3D avail;=09 }, _evalStatusCriteria: function( crit, gridCell )=20 { if (crit.value =3D=3D 'IP') return gridCell.attemptInProgress(); else if (crit.value =3D=3D 'NG') return gridCell.needsGrading(); else if (crit.value =3D=3D 'NU') return gridCell.getSortValue() =3D=3D '-'; else if (crit.value =3D=3D 'X') return gridCell.isExempt(); }, _evalStudentVisibleCriteria: function( crit, gridCell )=20 { var avail =3D (gridCell.isHidden())?"H":"V"; return crit.value =3D=3D avail;=09 }, _evalGroupMembershipCriteria: function( crit, gridCell )=20 { // There may be 1 or more values passed. We allow multiple selection = of Groups var result =3D (crit.cond =3D=3D "eq") ? false : true; var groupNames =3D crit.value.split(","); for (var i =3D 0, len =3D groupNames.length; i < len; i++) { var groupId =3D this.aliasMap[groupNames[i]]; if (groupId =3D=3D undefined) throw 'missing alias' var userId =3D gridCell.getUserId(); var inGroup =3D this._userIsInGroup( userId, groupId ); result =3D ( (crit.cond =3D=3D "eq") ? result || inGroup : result && = !inGroup ) ; } return result; }, _evalLastAccessedCriteria: function( crit, gridCell )=20 { var cellVal =3D gridCell.getSortValue(); if (crit.cond =3D=3D "eq"){ var numMSecPerDay =3D 1000*60*60*24; var v1 =3D parseInt(cellVal/numMSecPerDay); var v2 =3D parseInt(crit.value/numMSecPerDay); return (v1 =3D=3D v2); } else if (crit.cond =3D=3D "be") return (cellVal < crit.value); else if (crit.cond =3D=3D "af") return (cellVal > crit.value); }, _defaultEvalCriteria: function( crit, gridCell )=20 { var cellVal =3D gridCell.getSortValue(); if (gridCell.attemptInProgress() || gridCell.needsGrading() || = (cellVal =3D=3D '-') || gridCell.isExempt()) { return false; } var operator =3D crit.cond; var critVal =3D gridCell.colDef.getRawValue( crit.value ); if (this._isNumber(cellVal) && this._isNumber(critVal)) { var dblCellVal =3D this._toNumber(cellVal); var dblCritVal =3D this._toNumber(critVal); var dblCritVal2 =3D (crit.value2 !=3D = undefined)?this._toNumber(gridCell.colDef.getRawValue( crit.value2 )):0; if (operator =3D=3D "eq") return (dblCellVal =3D=3D dblCritVal); else if (operator =3D=3D "neq") return (dblCellVal !=3D dblCritVal); else if (operator =3D=3D "gt") return (dblCellVal > dblCritVal); else if (operator =3D=3D "lt") return (dblCellVal < dblCritVal); else if (operator =3D=3D "le") return (dblCellVal <=3D dblCritVal); else if (operator =3D=3D "ge") return (dblCellVal >=3D dblCritVal); else if (operator =3D=3D "bet") return ((dblCritVal <=3D dblCellVal) && (dblCellVal <=3D = dblCritVal2)) ; } else if (typeof(cellVal) =3D=3D "string" && typeof(critVal) = =3D=3D "string") { cellVal =3D cellVal.toUpperCase(); critVal =3D critVal.toUpperCase(); if (operator =3D=3D "eq") return (cellVal =3D=3D critVal); else if (operator =3D=3D "neq") return (cellVal !=3D critVal); else if (operator =3D=3D "bw") return (cellVal.startsWith( critVal )); else if (operator =3D=3D "con") return (cellVal.indexOf( critVal ) !=3D -1 ); } else throw (this.model.getMessage('custViewDataTypeMismatchMsg')+' = '+crit.fid); }, _getEvalCriteriaFunc: function( crit )=20 { if (!this.evalCriteriaFuncMap) { this.evalCriteriaFuncMap =3D new Array(); this.evalCriteriaFuncMap["AV"] =3D = this._evalAvailableCriteria.bind(this); this.evalCriteriaFuncMap["SV"] =3D = this._evalStudentVisibleCriteria.bind(this); this.evalCriteriaFuncMap["LA"] =3D = this._evalLastAccessedCriteria.bind(this); this.evalCriteriaFuncMap["GM"] =3D = this._evalGroupMembershipCriteria.bind(this); } var func =3D this.evalCriteriaFuncMap[crit.cid]; if (!func)=20 { if (crit.cond =3D=3D 'se') { func =3D this._evalStatusCriteria.bind(this); } else { func =3D this._defaultEvalCriteria.bind(this); } } return func;=09 }, _userIsInGroup: function( userId, groupId )=20 { userId =3D Number( userId ); var groups =3D this.model.groups; for (var i =3D 0, len =3D groups.length; i < len; i++){ if ( groups[i].id =3D=3D groupId ){ return (groups[i].uids.indexOf( userId ) !=3D -1); } } return false; }, getValidationError: function( f , criteriaLst )=20 { try=20 { var postFix =3D this.infix2postfix( f,criteriaLst ); return null; }=20 catch (e) { return e; } }, infix2postfix: function( formula,criteriaLst )=20 { var f =3D formula; f =3D f.gsub( /\(/,' ( '); // add spaces around parens f =3D f.gsub( /\)/,' ) '); // add spaces around parens var a =3D $w(f); // split into array var stack =3D new Array(); var out =3D new Array(); for (var i =3D 0, len =3D a.length; i < len; i++){ var tok =3D a[i].toUpperCase(); switch (tok){ case "AND":=20 case "OR":=20 while( this._isOperator(stack[stack.length-1]) ){ out.push(stack.pop());=20 } stack.push(tok.toUpperCase());=20 break; case "(":=20 stack.push(tok);=20 break; case ")":=20 foundStart =3D false; while(stack.length > 0){ tok =3D stack.pop();=20 if ( tok =3D=3D "(" ){ foundStart =3D true; break; } else { out.push(tok);=20 } } if (stack.length =3D=3D 0 && !foundStart) throw (this.model.getMessage('custViewMismatchedParensMsg')+' = '+this.name); break; default: if ( criteriaLst && criteriaLst.indexOf(tok) =3D=3D -1 )=20 throw this.model.getMessage('criteriaNotFoundMsg'); out.push(tok);=20 break; } } while(stack.length > 0){ tok =3D stack.pop(); if (tok =3D=3D '(') throw (this.model.getMessage('custViewMismatchedParensMsg')+' = '+this.name); out.push(tok);=20 } return out; }, =09 _isOperator: function(s) { return (s=3D=3D'OR' || s=3D=3D'AND'); }, _isNumber: function( s ) { return (isNaN( new Number(s) ) ? false : = true); }, _toNumber: function( s )=20 { if (typeof(s) =3D=3D "number") return s; else { var n =3D new Number(s); return n.valueOf(); } } }; //////////////////////////// Utility = ////////////////////////////////////// Gradebook.GridRowIterator =3D Class.create(); Gradebook.GridRowIterator.prototype =3D { initialize: function(dataArray, orderMap, startIndex) { this.dataArray =3D dataArray; this.orderMap =3D orderMap; this.currentIndex =3D startIndex; }, hasNext: function() {return this.currentIndex < this.orderMap.length;}, next: function() { if (this.currentIndex >=3D this.orderMap.length) { GradebookUtil.error('GridRowIterator out of data. length =3D = '+this.orderMap.length); return null; } return this.dataArray[this.orderMap[this.currentIndex++]]; } }; Gradebook.numberComparator =3D function( a, b ) { return a - b; } var NumberFormatter =3D { =20 // usually called from frameset scope and re-set when grid is = initialized with grid page LOCALE SETTINGS needToConvert: ( ( window.LOCALE_SETTINGS ) ? = LOCALE_SETTINGS.getString('number_format.decimal_point') =3D=3D ',' : = page.bundle.getString('number_format.decimal_point') =3D=3D ','), =20 getDisplayFloat: function ( f ) { if (!NumberFormatter.needToConvert) return f; f =3D ''+f; return f.replace('.',','); }, getDotFloat: function ( f ) { if (!NumberFormatter.needToConvert) return f; f =3D ''+f; return f.replace(',','.'); } }; ------=_NextPart_000_0000_01CA341B.AF3F6810--
") =3D=3D 0) {=0A= text =3D text.substring(5, text.length - 7);=0A= }=0A= return text;=0A= };=0A= =0A= /** @private Some more text might have come in, test and execute the new = stuff */=0A= dwr.engine._processCometResponse =3D function(response, batch) {=0A= if (batch.charsProcessed =3D=3D response.length) return;=0A= if (response.length =3D=3D 0) {=0A= batch.charsProcessed =3D 0;=0A= return;=0A= }=0A= =0A= var firstStartTag =3D response.indexOf("//#DWR-START#", = batch.charsProcessed);=0A= if (firstStartTag =3D=3D -1) {=0A= // dwr.engine._debug("No start tag (search from " + = batch.charsProcessed + "). skipping '" + = response.substring(batch.charsProcessed) + "'");=0A= batch.charsProcessed =3D response.length;=0A= return;=0A= }=0A= // if (firstStartTag > 0) {=0A= // dwr.engine._debug("Start tag not at start (search from " + = batch.charsProcessed + "). skipping '" + = response.substring(batch.charsProcessed, firstStartTag) + "'");=0A= // }=0A= =0A= var lastEndTag =3D response.lastIndexOf("//#DWR-END#");=0A= if (lastEndTag =3D=3D -1) {=0A= // dwr.engine._debug("No end tag. unchanged charsProcessed=3D" + = batch.charsProcessed);=0A= return;=0A= }=0A= =0A= // Skip the end tag too for next time, remembering CR and LF=0A= if (response.charCodeAt(lastEndTag + 11) =3D=3D 13 && = response.charCodeAt(lastEndTag + 12) =3D=3D 10) {=0A= batch.charsProcessed =3D lastEndTag + 13;=0A= }=0A= else {=0A= batch.charsProcessed =3D lastEndTag + 11;=0A= }=0A= =0A= var exec =3D response.substring(firstStartTag + 13, lastEndTag);=0A= =0A= dwr.engine._receivedBatch =3D batch;=0A= dwr.engine._eval(exec);=0A= dwr.engine._receivedBatch =3D null;=0A= };=0A= =0A= /** @private Actually send the block of data in the batch object. */=0A= dwr.engine._sendData =3D function(batch) {=0A= batch.map.batchId =3D dwr.engine._nextBatchId;=0A= dwr.engine._nextBatchId++;=0A= dwr.engine._batches[batch.map.batchId] =3D batch;=0A= dwr.engine._batchesLength++;=0A= batch.completed =3D false;=0A= =0A= for (var i =3D 0; i < batch.preHooks.length; i++) {=0A= batch.preHooks[i]();=0A= }=0A= batch.preHooks =3D null;=0A= // Set a timeout=0A= if (batch.timeout && batch.timeout !=3D 0) {=0A= batch.timeoutId =3D setTimeout(function() { = dwr.engine._abortRequest(batch); }, batch.timeout);=0A= }=0A= // Get setup for XMLHttpRequest if possible=0A= if (batch.rpcType =3D=3D dwr.engine.XMLHttpRequest) {=0A= if (window.XMLHttpRequest) {=0A= batch.req =3D new XMLHttpRequest();=0A= }=0A= // IE5 for the mac claims to support window.ActiveXObject, but = throws an error when it's used=0A= else if (window.ActiveXObject && = !(navigator.userAgent.indexOf("Mac") >=3D 0 && = navigator.userAgent.indexOf("MSIE") >=3D 0)) {=0A= batch.req =3D dwr.engine._newActiveXObject(dwr.engine._XMLHTTP);=0A= }=0A= }=0A= =0A= var prop, request;=0A= if (batch.req) {=0A= // Proceed using XMLHttpRequest=0A= if (batch.async) {=0A= batch.req.onreadystatechange =3D function() {=0A= if (typeof dwr !=3D 'undefined') dwr.engine._stateChange(batch);=0A= };=0A= }=0A= // If we're polling, record this for monitoring=0A= if (batch.isPoll) {=0A= dwr.engine._pollReq =3D batch.req;=0A= // In IE XHR is an ActiveX control so you can't augment it like = this=0A= if (!(document.all && !window.opera)) batch.req.batch =3D batch;=0A= }=0A= // Workaround for Safari 1.x POST bug=0A= var indexSafari =3D navigator.userAgent.indexOf("Safari/");=0A= if (indexSafari >=3D 0) {=0A= var version =3D navigator.userAgent.substring(indexSafari + 7);=0A= if (parseInt(version, 10) < 400) {=0A= if (dwr.engine._allowGetForSafariButMakeForgeryEasier =3D=3D = "true") batch.httpMethod =3D "GET";=0A= else dwr.engine._handleWarning(batch, { = name:"dwr.engine.oldSafari", message:"Safari GET support disabled. See = getahead.org/dwr/server/servlet and = allowGetForSafariButMakeForgeryEasier." });=0A= }=0A= }=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModePlainPoll : = dwr.engine._ModePlainCall;=0A= request =3D dwr.engine._constructRequest(batch);=0A= try {=0A= batch.req.open(batch.httpMethod, request.url, batch.async);=0A= try {=0A= for (prop in batch.headers) {=0A= var value =3D batch.headers[prop];=0A= if (typeof value =3D=3D "string") = batch.req.setRequestHeader(prop, value);=0A= }=0A= if (!batch.headers["Content-Type"]) = batch.req.setRequestHeader("Content-Type", "text/plain");=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= }=0A= batch.req.send(request.body);=0A= if (!batch.async) dwr.engine._stateChange(batch);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleError(batch, ex);=0A= }=0A= }=0A= else if (batch.rpcType !=3D dwr.engine.ScriptTag) {=0A= var idname =3D batch.isPoll ? "dwr-if-poll-" + batch.map.batchId : = "dwr-if-" + batch.map.batchId;=0A= // Removed htmlfile implementation. Don't expect it to return before = v3=0A= batch.div =3D document.createElement("div");=0A= // Add the div to the document first, otherwise IE 6 will ignore = onload handler.=0A= document.body.appendChild(batch.div);=0A= batch.div.innerHTML =3D "";=0A= batch.document =3D document;=0A= batch.iframe =3D batch.document.getElementById(idname);=0A= batch.iframe.batch =3D batch;=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModeHtmlPoll : = dwr.engine._ModeHtmlCall;=0A= if (batch.isPoll) dwr.engine._outstandingIFrames.push(batch.iframe);=0A= request =3D dwr.engine._constructRequest(batch);=0A= if (batch.httpMethod =3D=3D "GET") {=0A= batch.iframe.setAttribute("src", request.url);=0A= }=0A= else {=0A= batch.form =3D batch.document.createElement("form");=0A= batch.form.setAttribute("id", "dwr-form");=0A= batch.form.setAttribute("action", request.url);=0A= batch.form.setAttribute("style", "display:none;");=0A= batch.form.setAttribute("target", idname);=0A= batch.form.target =3D idname;=0A= batch.form.setAttribute("method", batch.httpMethod);=0A= for (prop in batch.map) {=0A= var value =3D batch.map[prop];=0A= if (typeof value !=3D "function") {=0A= var formInput =3D batch.document.createElement("input");=0A= formInput.setAttribute("type", "hidden");=0A= formInput.setAttribute("name", prop);=0A= formInput.setAttribute("value", value);=0A= batch.form.appendChild(formInput);=0A= }=0A= }=0A= batch.document.body.appendChild(batch.form);=0A= batch.form.submit();=0A= }=0A= }=0A= else {=0A= batch.httpMethod =3D "GET"; // There's no such thing as ScriptTag = using POST=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModePlainPoll : = dwr.engine._ModePlainCall;=0A= request =3D dwr.engine._constructRequest(batch);=0A= batch.script =3D document.createElement("script");=0A= batch.script.id =3D "dwr-st-" + batch.map["c0-id"];=0A= batch.script.src =3D request.url;=0A= document.body.appendChild(batch.script);=0A= }=0A= };=0A= =0A= dwr.engine._ModePlainCall =3D "/call/plaincall/";=0A= dwr.engine._ModeHtmlCall =3D "/call/htmlcall/";=0A= dwr.engine._ModePlainPoll =3D "/call/plainpoll/";=0A= dwr.engine._ModeHtmlPoll =3D "/call/htmlpoll/";=0A= =0A= /** @private Work out what the URL should look like */=0A= dwr.engine._constructRequest =3D function(batch) {=0A= // A quick string to help people that use web log analysers=0A= var request =3D { url:batch.path + batch.mode, body:null };=0A= if (batch.isPoll =3D=3D true) {=0A= request.url +=3D "ReverseAjax.dwr";=0A= }=0A= else if (batch.map.callCount =3D=3D 1) {=0A= request.url +=3D batch.map["c0-scriptName"] + "." + = batch.map["c0-methodName"] + ".dwr";=0A= }=0A= else {=0A= request.url +=3D "Multiple." + batch.map.callCount + ".dwr";=0A= }=0A= // Play nice with url re-writing=0A= var sessionMatch =3D location.href.match(/jsessionid=3D([^?]+)/);=0A= if (sessionMatch !=3D null) {=0A= request.url +=3D ";jsessionid=3D" + sessionMatch[1];=0A= }=0A= =0A= var prop;=0A= if (batch.httpMethod =3D=3D "GET") {=0A= // Some browsers (Opera/Safari2) seem to fail to convert the = callCount value=0A= // to a string in the loop below so we do it manually here.=0A= batch.map.callCount =3D "" + batch.map.callCount;=0A= request.url +=3D "?";=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= request.url +=3D encodeURIComponent(prop) + "=3D" + = encodeURIComponent(batch.map[prop]) + "&";=0A= }=0A= }=0A= request.url =3D request.url.substring(0, request.url.length - 1);=0A= }=0A= else {=0A= // PERFORMANCE: for iframe mode this is thrown away.=0A= request.body =3D "";=0A= if (document.all && !window.opera) {=0A= // Use array joining on IE (fastest)=0A= var buf =3D [];=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= buf.push(prop + "=3D" + batch.map[prop] + = dwr.engine._postSeperator);=0A= }=0A= }=0A= request.body =3D buf.join("");=0A= }=0A= else {=0A= // Use string concat on other browsers (fastest)=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= request.body +=3D prop + "=3D" + batch.map[prop] + = dwr.engine._postSeperator;=0A= }=0A= }=0A= }=0A= request.body =3D dwr.engine._contentRewriteHandler(request.body);=0A= }=0A= request.url =3D dwr.engine._urlRewriteHandler(request.url);=0A= return request;=0A= };=0A= =0A= /** @private Called by XMLHttpRequest to indicate that something has = happened */=0A= dwr.engine._stateChange =3D function(batch) {=0A= var toEval;=0A= =0A= if (batch.completed) {=0A= dwr.engine._debug("Error: _stateChange() with batch.completed");=0A= return;=0A= }=0A= =0A= var req =3D batch.req;=0A= try {=0A= if (req.readyState !=3D 4) return;=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= // It's broken - clear up and forget this call=0A= dwr.engine._clearUp(batch);=0A= return;=0A= }=0A= =0A= if (dwr.engine._unloading) {=0A= dwr.engine._debug("Ignoring reply from server as page is = unloading.");=0A= return;=0A= }=0A= =0A= try {=0A= var reply =3D req.responseText;=0A= reply =3D dwr.engine._replyRewriteHandler(reply);=0A= var status =3D req.status; // causes Mozilla to except on page moves=0A= =0A= if (reply =3D=3D null || reply =3D=3D "") {=0A= dwr.engine._handleWarning(batch, { name:"dwr.engine.missingData", = message:"No data received from server" });=0A= }=0A= else if (status !=3D 200) {=0A= dwr.engine._handleError(batch, { name:"dwr.engine.http." + status, = message:req.statusText });=0A= }=0A= else {=0A= var contentType =3D req.getResponseHeader("Content-Type");=0A= if (!contentType.match(/^text\/plain/) && = !contentType.match(/^text\/javascript/)) {=0A= if (contentType.match(/^text\/html/) && typeof = batch.textHtmlHandler =3D=3D "function") {=0A= batch.textHtmlHandler({ status:status, responseText:reply, = contentType:contentType });=0A= }=0A= else {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.invalidMimeType", message:"Invalid content type: '" + = contentType + "'" });=0A= }=0A= }=0A= else {=0A= // Comet replies might have already partially executed=0A= if (batch.isPoll && batch.map.partialResponse =3D=3D = dwr.engine._partialResponseYes) {=0A= dwr.engine._processCometResponse(reply, batch);=0A= }=0A= else {=0A= if (reply.search("//#DWR") =3D=3D -1) {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.invalidReply", message:"Invalid reply from server" });=0A= }=0A= else {=0A= toEval =3D reply;=0A= }=0A= }=0A= }=0A= }=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= }=0A= =0A= dwr.engine._callPostHooks(batch);=0A= =0A= // Outside of the try/catch so errors propogate normally:=0A= dwr.engine._receivedBatch =3D batch;=0A= if (toEval !=3D null) toEval =3D = toEval.replace(dwr.engine._scriptTagProtection, "");=0A= dwr.engine._eval(toEval);=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._validateBatch(batch);=0A= if (!batch.completed) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /**=0A= * @private This function is invoked when a batch reply is received.=0A= * It checks that there is a response for every call in the batch. = Otherwise,=0A= * an error will be signaled (a call without a response indicates that = the =0A= * server failed to send complete batch response). =0A= */=0A= dwr.engine._validateBatch =3D function(batch) {=0A= // If some call left unreplied, report an error.=0A= if (!batch.completed) {=0A= for (var i =3D 0; i < batch.map.callCount; i++) {=0A= if (batch.handlers[i] !=3D null) {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.incompleteReply", message:"Incomplete reply from = server" });=0A= break;=0A= }=0A= }=0A= }=0A= }=0A= =0A= /** @private Called from iframe onload, check batch using batch-id */=0A= dwr.engine._iframeLoadingComplete =3D function(batchId) {=0A= // dwr.engine._checkCometPoll();=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch) dwr.engine._validateBatch(batch);=0A= }=0A= =0A= /** @private Called by the server: Execute a callback */=0A= dwr.engine._remoteHandleCallback =3D function(batchId, callId, reply) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch =3D=3D null) {=0A= dwr.engine._debug("Warning: batch =3D=3D null in = remoteHandleCallback for batchId=3D" + batchId, true);=0A= return;=0A= }=0A= // Error handlers inside here indicate an error that is nothing to do=0A= // with DWR so we handle them differently.=0A= try {=0A= var handlers =3D batch.handlers[callId];=0A= batch.handlers[callId] =3D null;=0A= if (!handlers) {=0A= dwr.engine._debug("Warning: Missing handlers. callId=3D" + callId, = true);=0A= }=0A= else if (typeof handlers.callback =3D=3D "function") = handlers.callback(reply);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleError(batch, ex);=0A= }=0A= };=0A= =0A= /** @private Called by the server: Handle an exception for a call */=0A= dwr.engine._remoteHandleException =3D function(batchId, callId, ex) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch =3D=3D null) { dwr.engine._debug("Warning: null batch in = remoteHandleException", true); return; }=0A= var handlers =3D batch.handlers[callId];=0A= batch.handlers[callId] =3D null;=0A= if (handlers =3D=3D null) { dwr.engine._debug("Warning: null handlers = in remoteHandleException", true); return; }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= if (typeof handlers.exceptionHandler =3D=3D "function") = handlers.exceptionHandler(ex.message, ex);=0A= else if (typeof batch.errorHandler =3D=3D "function") = batch.errorHandler(ex.message, ex);=0A= };=0A= =0A= /** @private Called by the server: The whole batch is broken */=0A= dwr.engine._remoteHandleBatchException =3D function(ex, batchId) {=0A= var searchBatch =3D (dwr.engine._receivedBatch =3D=3D null && batchId = !=3D null);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D dwr.engine._batches[batchId];=0A= }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= dwr.engine._handleError(dwr.engine._receivedBatch, ex);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._clearUp(dwr.engine._batches[batchId]);=0A= }=0A= };=0A= =0A= /** @private Called by the server: Reverse ajax should not be used */=0A= dwr.engine._remotePollCometDisabled =3D function(ex, batchId) {=0A= dwr.engine.setActiveReverseAjax(false);=0A= var searchBatch =3D (dwr.engine._receivedBatch =3D=3D null && batchId = !=3D null);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D dwr.engine._batches[batchId];=0A= }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= dwr.engine._handleError(dwr.engine._receivedBatch, ex);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._clearUp(dwr.engine._batches[batchId]);=0A= }=0A= };=0A= =0A= /** @private Called by the server: An IFrame reply is about to start */=0A= dwr.engine._remoteBeginIFrameResponse =3D function(iframe, batchId) {=0A= if (iframe !=3D null) dwr.engine._receivedBatch =3D iframe.batch;=0A= dwr.engine._callPostHooks(dwr.engine._receivedBatch);=0A= };=0A= =0A= /** @private Called by the server: An IFrame reply is just completing */=0A= dwr.engine._remoteEndIFrameResponse =3D function(batchId) {=0A= dwr.engine._clearUp(dwr.engine._receivedBatch);=0A= dwr.engine._receivedBatch =3D null;=0A= };=0A= =0A= /** @private This is a hack to make the context be this window */=0A= dwr.engine._eval =3D function(script) {=0A= if (script =3D=3D null) return null;=0A= if (script =3D=3D "") { dwr.engine._debug("Warning: blank script", = true); return null; }=0A= // dwr.engine._debug("Exec: [" + script + "]", true);=0A= return eval(script);=0A= };=0A= =0A= /** @private Called as a result of a request timeout */=0A= dwr.engine._abortRequest =3D function(batch) {=0A= if (batch && !batch.completed) {=0A= dwr.engine._clearUp(batch);=0A= if (batch.req) batch.req.abort();=0A= dwr.engine._handleError(batch, { name:"dwr.engine.timeout", = message:"Timeout" });=0A= }=0A= };=0A= =0A= /** @private call all the post hooks for a batch */=0A= dwr.engine._callPostHooks =3D function(batch) {=0A= if (batch.postHooks) {=0A= for (var i =3D 0; i < batch.postHooks.length; i++) {=0A= batch.postHooks[i]();=0A= }=0A= batch.postHooks =3D null;=0A= }=0A= };=0A= =0A= /** @private A call has finished by whatever means and we need to shut = it all down. */=0A= dwr.engine._clearUp =3D function(batch) {=0A= if (!batch) { dwr.engine._debug("Warning: null batch in = dwr.engine._clearUp()", true); return; }=0A= if (batch.completed) { dwr.engine._debug("Warning: Double complete", = true); return; }=0A= =0A= // IFrame tidyup=0A= if (batch.div) batch.div.parentNode.removeChild(batch.div);=0A= if (batch.iframe) {=0A= // If this is a poll frame then stop comet polling=0A= for (var i =3D 0; i < dwr.engine._outstandingIFrames.length; i++) {=0A= if (dwr.engine._outstandingIFrames[i] =3D=3D batch.iframe) {=0A= dwr.engine._outstandingIFrames.splice(i, 1);=0A= }=0A= }=0A= batch.iframe.parentNode.removeChild(batch.iframe);=0A= }=0A= if (batch.form) batch.form.parentNode.removeChild(batch.form);=0A= =0A= // XHR tidyup: avoid IE handles increase=0A= if (batch.req) {=0A= // If this is a poll frame then stop comet polling=0A= if (batch.req =3D=3D dwr.engine._pollReq) dwr.engine._pollReq =3D = null;=0A= delete batch.req;=0A= }=0A= =0A= // Timeout tidyup=0A= if (batch.timeoutId) {=0A= clearTimeout(batch.timeoutId);=0A= delete batch.timeoutId;=0A= }=0A= =0A= if (batch.map && (batch.map.batchId || batch.map.batchId =3D=3D 0)) {=0A= delete dwr.engine._batches[batch.map.batchId];=0A= dwr.engine._batchesLength--;=0A= }=0A= =0A= batch.completed =3D true;=0A= =0A= // If there is anything on the queue waiting to go out, then send it.=0A= // We don't need to check for ordered mode, here because when ordered = mode=0A= // gets turned off, we still process *waiting* batches in an ordered = way.=0A= if (dwr.engine._batchQueue.length !=3D 0) {=0A= var sendbatch =3D dwr.engine._batchQueue.shift();=0A= dwr.engine._sendData(sendbatch);=0A= }=0A= };=0A= =0A= /** @private Abort any XHRs in progress at page unload (solves zombie = socket problems in IE). */=0A= dwr.engine._unloader =3D function() {=0A= dwr.engine._unloading =3D true;=0A= =0A= // Empty queue of waiting ordered requests=0A= dwr.engine._batchQueue.length =3D 0;=0A= =0A= // Abort any ongoing XHRs and clear their batches=0A= for (var batchId in dwr.engine._batches) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= // Only process objects that look like batches (avoid prototype = additions!)=0A= if (batch && batch.map) {=0A= if (batch.req) {=0A= batch.req.abort();=0A= }=0A= dwr.engine._clearUp(batch);=0A= }=0A= }=0A= };=0A= // Now register the unload handler=0A= if (window.addEventListener) window.addEventListener('unload', = dwr.engine._unloader, false);=0A= else if (window.attachEvent) window.attachEvent('onunload', = dwr.engine._unloader);=0A= =0A= /** @private Generic error handling routing to save having null checks = everywhere */=0A= dwr.engine._handleError =3D function(batch, ex) {=0A= if (typeof ex =3D=3D "string") ex =3D { name:"unknown", message:ex };=0A= if (ex.message =3D=3D null) ex.message =3D "";=0A= if (ex.name =3D=3D null) ex.name =3D "unknown";=0A= if (batch && typeof batch.errorHandler =3D=3D "function") = batch.errorHandler(ex.message, ex);=0A= else if (dwr.engine._errorHandler) = dwr.engine._errorHandler(ex.message, ex);=0A= if (batch) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /** @private Generic error handling routing to save having null checks = everywhere */=0A= dwr.engine._handleWarning =3D function(batch, ex) {=0A= if (typeof ex =3D=3D "string") ex =3D { name:"unknown", message:ex };=0A= if (ex.message =3D=3D null) ex.message =3D "";=0A= if (ex.name =3D=3D null) ex.name =3D "unknown";=0A= if (batch && typeof batch.warningHandler =3D=3D "function") = batch.warningHandler(ex.message, ex);=0A= else if (dwr.engine._warningHandler) = dwr.engine._warningHandler(ex.message, ex);=0A= if (batch) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /**=0A= * @private Marshall a data item=0A= * @param batch A map of variables to how they have been marshalled=0A= * @param referto An array of already marshalled variables to prevent = recurrsion=0A= * @param data The data to be marshalled=0A= * @param name The name of the data being marshalled=0A= */=0A= dwr.engine._serializeAll =3D function(batch, referto, data, name) {=0A= if (data =3D=3D null) {=0A= batch.map[name] =3D "null:null";=0A= return;=0A= }=0A= =0A= switch (typeof data) {=0A= case "boolean":=0A= batch.map[name] =3D "boolean:" + data;=0A= break;=0A= case "number":=0A= batch.map[name] =3D "number:" + data;=0A= break;=0A= case "string":=0A= batch.map[name] =3D "string:" + encodeURIComponent(data);=0A= break;=0A= case "object":=0A= if (data instanceof String) batch.map[name] =3D "String:" + = encodeURIComponent(data);=0A= else if (data instanceof Boolean) batch.map[name] =3D "Boolean:" + = data;=0A= else if (data instanceof Number) batch.map[name] =3D "Number:" + = data;=0A= else if (data instanceof Date) batch.map[name] =3D "Date:" + = data.getTime();=0A= else if (data && data.join) batch.map[name] =3D = dwr.engine._serializeArray(batch, referto, data, name);=0A= else batch.map[name] =3D dwr.engine._serializeObject(batch, referto, = data, name);=0A= break;=0A= case "function":=0A= // We just ignore functions.=0A= break;=0A= default:=0A= dwr.engine._handleWarning(null, { name:"dwr.engine.unexpectedType", = message:"Unexpected type: " + typeof data + ", attempting default = converter." });=0A= batch.map[name] =3D "default:" + data;=0A= break;=0A= }=0A= };=0A= =0A= /** @private Have we already converted this object? */=0A= dwr.engine._lookup =3D function(referto, data, name) {=0A= var lookup;=0A= // Can't use a map: getahead.org/ajax/javascript-gotchas=0A= for (var i =3D 0; i < referto.length; i++) {=0A= if (referto[i].data =3D=3D data) {=0A= lookup =3D referto[i];=0A= break;=0A= }=0A= }=0A= if (lookup) return "reference:" + lookup.name;=0A= referto.push({ data:data, name:name });=0A= return null;=0A= };=0A= =0A= /** @private Marshall an object */=0A= dwr.engine._serializeObject =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= // This check for an HTML is not complete, but is there a better way?=0A= // Maybe we should add: data.hasChildNodes typeof "function" =3D=3D = true=0A= if (data.nodeName && data.nodeType) {=0A= return dwr.engine._serializeXml(batch, referto, data, name);=0A= }=0A= =0A= // treat objects as an associative arrays=0A= var reply =3D "Object_" + dwr.engine._getObjectClassName(data) + ":{";=0A= var element;=0A= for (element in data) {=0A= if (typeof data[element] !=3D "function") {=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[element], childName);=0A= =0A= reply +=3D encodeURIComponent(element) + ":reference:" + childName = + ", ";=0A= }=0A= }=0A= =0A= if (reply.substring(reply.length - 2) =3D=3D ", ") {=0A= reply =3D reply.substring(0, reply.length - 2);=0A= }=0A= reply +=3D "}";=0A= =0A= return reply;=0A= };=0A= =0A= /** @private Returns the classname of supplied argument obj */=0A= dwr.engine._errorClasses =3D { "Error":Error, "EvalError":EvalError, = "RangeError":RangeError, "ReferenceError":ReferenceError, = "SyntaxError":SyntaxError, "TypeError":TypeError, "URIError":URIError };=0A= dwr.engine._getObjectClassName =3D function(obj) {=0A= // Try to find the classname by stringifying the object's constructor=0A= // and extract from "function ".=0A= if (obj && obj.constructor && obj.constructor.toString)=0A= {=0A= var str =3D obj.constructor.toString();=0A= var regexpmatch =3D str.match(/function\s+(\w+)/);=0A= if (regexpmatch && regexpmatch.length =3D=3D 2) {=0A= return regexpmatch[1];=0A= }=0A= }=0A= =0A= // Now manually test against the core Error classes, as these in some =0A= // browsers successfully match to the wrong class in the =0A= // Object.toString() test we will do later=0A= if (obj && obj.constructor) {=0A= for (var errorname in dwr.engine._errorClasses) {=0A= if (obj.constructor =3D=3D dwr.engine._errorClasses[errorname]) = return errorname;=0A= }=0A= }=0A= =0A= // Try to find the classname by calling Object.toString() on the object=0A= // and extracting from "[object ]"=0A= if (obj) {=0A= var str =3D Object.prototype.toString.call(obj);=0A= var regexpmatch =3D str.match(/\[object\s+(\w+)/);=0A= if (regexpmatch && regexpmatch.length=3D=3D2) {=0A= return regexpmatch[1];=0A= }=0A= }=0A= =0A= // Supplied argument was probably not an object, but what is better?=0A= return "Object";=0A= };=0A= =0A= /** @private Marshall an object */=0A= dwr.engine._serializeXml =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= var output;=0A= if (window.XMLSerializer) output =3D new = XMLSerializer().serializeToString(data);=0A= else if (data.toXml) output =3D data.toXml;=0A= else output =3D data.innerHTML;=0A= =0A= return "XML:" + encodeURIComponent(output);=0A= };=0A= =0A= /** @private Marshall an array */=0A= dwr.engine._serializeArray =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= if (document.all && !window.opera) {=0A= // Use array joining on IE (fastest)=0A= var buf =3D ["Array:["];=0A= for (var i =3D 0; i < data.length; i++) {=0A= if (i !=3D 0) buf.push(",");=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[i], childName);=0A= buf.push("reference:");=0A= buf.push(childName);=0A= }=0A= buf.push("]");=0A= reply =3D buf.join("");=0A= }=0A= else {=0A= // Use string concat on other browsers (fastest)=0A= var reply =3D "Array:[";=0A= for (var i =3D 0; i < data.length; i++) {=0A= if (i !=3D 0) reply +=3D ",";=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[i], childName);=0A= reply +=3D "reference:";=0A= reply +=3D childName;=0A= }=0A= reply +=3D "]";=0A= }=0A= =0A= return reply;=0A= };=0A= =0A= /** @private Convert an XML string into a DOM object. */=0A= dwr.engine._unserializeDocument =3D function(xml) {=0A= var dom;=0A= if (window.DOMParser) {=0A= var parser =3D new DOMParser();=0A= dom =3D parser.parseFromString(xml, "text/xml");=0A= if (!dom.documentElement || dom.documentElement.tagName =3D=3D = "parsererror") {=0A= var message =3D dom.documentElement.firstChild.data;=0A= message +=3D "\n" + = dom.documentElement.firstChild.nextSibling.firstChild.data;=0A= throw message;=0A= }=0A= return dom;=0A= }=0A= else if (window.ActiveXObject) {=0A= dom =3D dwr.engine._newActiveXObject(dwr.engine._DOMDocument);=0A= dom.loadXML(xml); // What happens on parse fail with IE?=0A= return dom;=0A= }=0A= else {=0A= var div =3D document.createElement("div");=0A= div.innerHTML =3D xml;=0A= return div;=0A= }=0A= };=0A= =0A= /** @param axarray An array of strings to attempt to create ActiveX = objects from */=0A= dwr.engine._newActiveXObject =3D function(axarray) {=0A= var returnValue; =0A= for (var i =3D 0; i < axarray.length; i++) {=0A= try {=0A= returnValue =3D new ActiveXObject(axarray[i]);=0A= break;=0A= }=0A= catch (ex) { /* ignore */ }=0A= }=0A= return returnValue;=0A= };=0A= =0A= /** @private Used internally when some message needs to get to the = programmer */=0A= dwr.engine._debug =3D function(message, stacktrace) {=0A= var written =3D false;=0A= try {=0A= if (window.console) {=0A= if (stacktrace && window.console.trace) window.console.trace();=0A= window.console.log(message);=0A= written =3D true;=0A= }=0A= else if (window.opera && window.opera.postError) {=0A= window.opera.postError(message);=0A= written =3D true;=0A= }=0A= }=0A= catch (ex) { /* ignore */ }=0A= =0A= if (!written) {=0A= var debug =3D document.getElementById("dwr-debug");=0A= if (debug) {=0A= var contents =3D message + "" + debug.innerHTML;=0A= if (contents.length > 2048) contents =3D contents.substring(0, = 2048);=0A= debug.innerHTML =3D contents;=0A= }=0A= }=0A= };=0A= ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/javascript/ngui/lightbox.js?v=9.0.440.7 /* Created By: Chris Campbell Website: http://particletree.com Date: 2/1/2006 Inspired by the lightbox implementation found at = http://www.huddletogether.com/projects/lightbox/ */ /*-------------------------------GLOBAL = VARIABLES------------------------------------*/ var detect =3D navigator.userAgent.toLowerCase(); var OS,browser,version,total,thestring; /*-----------------------------------------------------------------------= ------------------------*/ //Browser detect script origionally created by Peter Paul Koch at = http://www.quirksmode.org/ function getBrowserInfo() { if (checkIt('konqueror')) { browser =3D "Konqueror"; OS =3D "Linux"; } else if (checkIt('safari')) browser =3D "Safari" else if (checkIt('omniweb')) browser =3D "OmniWeb" else if (checkIt('opera')) browser =3D "Opera" else if (checkIt('firefox')) browser =3D "Firefox" else if (checkIt('webtv')) browser =3D "WebTV"; else if (checkIt('icab')) browser =3D "iCab" else if (checkIt('msie')) browser =3D "Internet Explorer" else if (!checkIt('compatible')) { browser =3D "Netscape Navigator" version =3D detect.charAt(8); } else browser =3D "An unknown browser"; if (!version) version =3D detect.charAt(place + thestring.length); if (!OS) { if (checkIt('linux')) OS =3D "Linux"; else if (checkIt('x11')) OS =3D "Unix"; else if (checkIt('mac')) OS =3D "Mac" else if (checkIt('win')) OS =3D "Windows" else OS =3D "an unknown operating system"; } } function checkIt(string) { place =3D detect.indexOf(string) + 1; thestring =3D string; return place; } /*-----------------------------------------------------------------------= ------------------------*/ Event.observe(window, 'load', initialize, false); Event.observe(window, 'load', getBrowserInfo, false); //Event.observe(window, 'unload', Event.unloadCache, false); var lightbox =3D Class.create(); lightbox.prototype =3D { yPos : 0, xPos : 0, =20 initialize: function(ctrl) { this.myplacesLink =3D ctrl; this.content =3D ctrl.href; this.eventListnerMethod =3D this.activate.bindAsEventListener(this); Event.observe(this.myplacesLink, 'click', this.eventListnerMethod, = false); ctrl.onclick =3D function(){return false;}; }, =09 // Turn everything on - mainly the IE fixes activate: function(){ =09 try { =09 this.bigFrame =3D parent.content; this.smallFrame =3D null; if (this.bigFrame.main) // course frameset { this.bigFrame =3D this.bigFrame.main; } else if (this.bigFrame.WFS_Files) // content system frameset { this.smallFrame =3D this.bigFrame.WFS_Navigation;=09 this.bigFrame =3D this.bigFrame.WFS_Files;=09 }=09 =20 if(this.bigFrame.document.getElementById('overlay')) { return; } =09 =09 head =3D this.bigFrame.document.getElementsByTagName('head')[0]; =09 =09 doctype =3D this.bigFrame.document.doctype; =09 =09 if((doctype !=3D null && doctype.name !=3D 'HTML' && browser =3D=3D = 'Firefox') || (doctype =3D=3D null && browser !=3D 'Internet Explorer')) { = this.newwindow=3Dwindow.open('myPlaces?newWindow=3Dtrue','name','resizabl= e=3D0,scrollbars=3D0,height=3D600,width=3D600'); newwindow.focus(); return; } else {=09 var addPrototype =3D true; =09 scripts =3D = $A(this.bigFrame.document.getElementsByTagName('script')).each( function = (link ) { if(link.src.endsWith('prototype.js')) { addPrototype =3D false; }=20 }); =09 if(addPrototype =3D=3D true) { proScript =3D = this.bigFrame.document.createElement('script'); proScript.type =3D 'text/javascript'; proScript.src =3D '/javascript/prototype.js'; head.appendChild(proScript); =09 } =09 /*var addNGDefaultCSS =3D true; =09 scripts =3D = $A(this.bigFrame.document.getElementsByTagName('link')).each( function = (cssLink ) { if(cssLink.href.endsWith('theme.css')) { addNGDefaultCSS =3D false; }=20 }); =09 if(addNGDefaultCSS =3D=3D true) { cssNode =3D this.bigFrame.document.createElement('link'); cssNode.type =3D 'text/css'; cssNode.rel =3D 'stylesheet'; cssNode.href =3D '/ui/styles/ngui/ng_default.css'; head.appendChild(cssNode); }*/ =09 bod =3D this.bigFrame.document.getElementsByTagName('body')[0]; html =3D = this.bigFrame.document.getElementsByTagName('html')[0]; =09 =09 overlay =3D this.bigFrame.document.createElement('div'); overlay.id =3D 'overlay'; =09 lb =3D this.bigFrame.document.createElement('div'); lb.id =3D 'lightboxWrapper'; lb.className =3D 'loading'; =20 =09 bod.appendChild(overlay); bod.appendChild(lb); =09 if(this.smallFrame) { bod =3D = this.smallFrame.document.getElementsByTagName('body')[0]; overlay =3D this.smallFrame.document.createElement('div'); overlay.id =3D 'overlay'; bod.appendChild(overlay); } =09 this.getScroll(); this.setScroll(0,0); if (browser =3D=3D 'Internet Explorer'){ this.prepareIE('100%', 'hidden'); this.hideSelects('hidden'); } this.displayLightbox("block"); } } catch(err) { =09 = newwindow=3Dwindow.open('myPlaces?newWindow=3Dtrue','name','resizable=3D0= ,scrollbars=3D0,height=3D600,width=3D600'); =09 newwindow.focus(); return; }=09 }, =09 // Ie requires height to 100% and overflow hidden or else you can = scroll down past the lightbox prepareIE: function(height, overflow){ bod =3D this.bigFrame.document.getElementsByTagName('body')[0]; bod.style.height =3D height; bod.style.overflow =3D overflow; =20 htm =3D this.bigFrame.document.getElementsByTagName('html')[0]; htm.style.height =3D height; htm.style.overflow =3D overflow;=20 }, =09 // In IE, select elements hover on top of the lightbox hideSelects: function(visibility){ selects =3D this.bigFrame.document.getElementsByTagName('select'); for(i =3D 0; i < selects.length; i++) { selects[i].style.visibility =3D visibility; } }, =09 // Taken from lightbox implementation found at = http://www.huddletogether.com/projects/lightbox/ getScroll: function(){ if (this.bigFrame.pageYOffset) { this.yPos =3D this.bigFrame.document.pageYOffset; } else if (this.bigFrame.document.documentElement && = parent.content.document.documentElement.scrollTop){ this.yPos =3D this.bigFrame.document.documentElement.scrollTop;=20 } else if (this.bigFrame.document.body) { this.yPos =3D this.bigFrame.document.body.scrollTop; } }, =09 setScroll: function(x, y){ this.bigFrame.scrollTo(x, y);=20 }, =09 displayLightbox: function(display){ this.bigFrame.document.getElementById('overlay').style.display =3D = display; this.bigFrame.document.getElementById('lightboxWrapper').style.display = =3D display; =09 if(this.smallFrame) { this.smallFrame.document.getElementById('overlay').style.display =3D = display;=09 } if(display !=3D 'none') this.loadInfo(); }, =09 // Begin Ajax request based off of the href of the clicked linked loadInfo: function() { new Ajax.Request('/webapps/portal/execute/myPlaces', { onSuccess: function(transport, json) { =09 var result =3D transport.responseText.evalJSON( true ); =09 if ( result.success =3D=3D "true" ) { =09 this.bigFrame.document.getElementById('lightboxWrapper').innerHTML = =3D result.myPlacesContent; myPlacesContentDiv =3D = this.bigFrame.document.getElementById('myPlacesContent'); myPlacesContentDiv.getElementsByTagName('a')[0].focus(); =09 //set all tab groups to be inactive active =3D parent.nav.document.getElementsByClassName('active'); for(i =3D 0; i < active.length; i++)=20 { this.activeTab =3D active[0]; active[i].removeClassName('active'); } =20 this.actions(); } else { new page.InlineConfirmation("error", result.errorMessage, false );=20 } =20 }.bind(this) }); =09 }, =20 =09 // Display Ajax response processInfo: function(response){ info =3D "" + = response.responseText + ""; $('lbLoadMessage').insert({before: info}); $('lightbox').className =3D "done";=09 this.actions(); =09 }, =09 // Search through new links within the lightbox, and attach click event actions: function(){ lbAction =3D this.bigFrame.document.getElementById('lbAction'); Event.observe(lbAction, 'click', = this.deactivate.bindAsEventListener(this), false); lbAction.onclick =3D function(){return false;}; }, =09 // Example of creating your own functionality once lightbox is = initiated insert: function(e){ link =3D Event.element(e).parentNode; Element.remove($('lbContent')); =20 var myAjax =3D new Ajax.Request( link.href, {method: 'post', parameters: "", onComplete: = this.processInfo.bindAsEventListener(this)} ); =20 }, =09 // Example of creating your own functionality once lightbox is = initiated deactivate: function(){ if(this.smallFrame) { = this.smallFrame.document.getElementById('overlay').style.display=3D'none'= ; } =09 this.bigFrame.$('lightboxWrapper').remove(); this.bigFrame.$('overlay').remove(); =09 this.setScroll(0,this.yPos); if (browser =3D=3D "Internet Explorer"){ this.prepareIE("auto", "auto"); this.hideSelects("visible"); } =09 = //this.bigFrame.document.getElementById('overlay').style.display=3D'none'= ; =09 =09 if(this.activeTab) this.activeTab.addClassName('active'); //Event.observe(this.myplacesLink, 'click', this.eventListnerMethod, = false); } } /*-----------------------------------------------------------------------= ------------------------*/ // Onload, make all links that need to trigger a lightbox active function initialize(){ lbox =3D document.getElementsByClassName('myPlaces'); for(i =3D 0; i < lbox.length; i++) { valid =3D new lightbox(lbox[i]); } } ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: multipart/alternative; boundary="----=_NextPart_001_0021_01CA341B.AF48DDF0" ------=_NextPart_001_0021_01CA341B.AF48DDF0 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/portal/frameset.jsp?tab_id=_41_1&url=%2Fwebapps%2Fblackboard%2Fexecute%2Flauncher%3Ftype%3DCourse%26id%3D_702465_1%26url%3D =EF=BB=BF Blackboard Learn ------=_NextPart_001_0021_01CA341B.AF48DDF0 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/portal/execute/topframe?tab_tab_group_id=_1_1&frameSize=LARGE =EF=BB=BF Blackboard = Learn Wayne State University Home =20 Utility Links =20 My Places Home Help=20 Logout Tab Groups=20 My Blackboard Content Collection Library Scholar = ------=_NextPart_001_0021_01CA341B.AF48DDF0-- ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://blackboard.wayne.edu/images/ci/ng/small_new_window.gif R0lGODlhEAAPAJEDAO3t7f///5mZmf///yH5BAEAAAMALAAAAAAQAA8AAAIrnI+py+IPRRKgWiuR CLz3PDzeCFLb+B0mmhorG5TAycrRrV4XqN4PAwwCCwA7 ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://blackboard.wayne.edu/images/ci/ng/small_help_on2.gif R0lGODlhEAAPAJECAGZmZv///////wAAACH5BAEAAAIALAAAAAAQAA8AAAIilI+pu+EfmAig2tis xgm6ymWXRI0kGDaPdJSp+CoQS9dKAQA7 ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/branding/themes/wsu_production_theme/theme.css?v=9.0.440.7 BODY { BACKGROUND-POSITION: 0% 0%; MARGIN: 0px; FONT: 0.8em "Lucida grande", = Arial, Verdana, sans-serif; HEIGHT: 100%; BACKGROUND-COLOR: #cdcdcd } FORM { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } A { COLOR: #003366 } * { FONT-FAMILY: "Lucida grande", Arial, verdana, sans-serif } IMG { BORDER-RIGHT: 0px; BORDER-TOP: 0px; VERTICAL-ALIGN: middle; = BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } .hideme { DISPLAY: none! important } H1 { FONT-SIZE: 148%; HEIGHT: 1% } H2 { FONT-SIZE: 123.1% } H3 { FONT-SIZE: 108% } H1 { MARGIN: 1em 0px } H2 { MARGIN: 1em 0px } H3 { MARGIN: 1em 0px } H1 { FONT-WEIGHT: bold } H2 { FONT-WEIGHT: bold } H3 { FONT-WEIGHT: bold } H4 { FONT-WEIGHT: bold } H5 { FONT-WEIGHT: bold } H6 { FONT-WEIGHT: bold } STRONG { FONT-WEIGHT: bold } IMG { BEHAVIOR: url(/javascript/iepngfix.htc) } DIV { BEHAVIOR: url(/javascript/iepngfix.htc) } BODY { MIN-WIDTH: 800px } DIV.topGlobalLinks { MIN-WIDTH: 800px } BODY.popup { PADDING-RIGHT: 0px; MIN-WIDTH: 100%; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; PADDING-TOP: 6px } BODY.csMenuFrame { MIN-WIDTH: 200px; WIDTH: 100%; PADDING-TOP: 12px } BODY.popupMenu { MIN-WIDTH: 200px; WIDTH: 100%; PADDING-TOP: 12px } DIV.locationPane { =09 } DIV.topGlobalLinks { =09 } BODY.popup DIV.locationPane { WIDTH: 100% } .extraLarge { FONT-SIZE: 200%; LINE-HEIGHT: 150% } TABLE.bouncer { WIDTH: 100%; BORDER-COLLAPSE: collapse } TABLE.bouncer TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } DIV.topTabs { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: #dedede 3px solid; ZOOM: 1; POSITION: = relative; HEIGHT: 74px } TABLE.topTabs { BORDER-COLLAPSE: collapse } .frameResizeToggle { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 9px; BACKGROUND: = #bbbbbb; LEFT: 0px; PADDING-BOTTOM: 0px; BOTTOM: 0px; LINE-HEIGHT: 1px; = PADDING-TOP: 0px; POSITION: absolute; TOP: 68px; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px } .frameResizeToggle A { BACKGROUND: url(images/top_frame_toggle_2.gif) no-repeat 0px 2px; = FILTER: alpha(opacity=3D60); OVERFLOW: hidden; HEIGHT: 18px; opacity: .6 } .frameResizeToggle A:hover { FILTER: alpha(opacity=3D100); opacity: 1 } .frameResizeToggle A.resize-on { BACKGROUND-POSITION: 0px -15px } .frameResizeToggle A.resize-off { BACKGROUND-POSITION: 0px 2px } .frameResizeToggle A IMG { WIDTH: 16px; HEIGHT: 18px } DIV.topTabs DIV.tabWrapper-left { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } DIV.topTabs DIV.tabWrapper-center { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } DIV.topTabs DIV.tabWrapper-right { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } TABLE.topTabs TR TD DIV.tabWrapper-left { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } TABLE.topTabs TR TD DIV.tabWrapper-center { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } TABLE.topTabs TR TD DIV.tabWrapper-right { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px } DIV.topTabs DIV.tabWrapper-center TABLE.appTabs { MARGIN: 0px auto } TABLE.topTabs TR TD DIV.tabWrapper-center TABLE.appTabs { MARGIN: 0px auto } DIV.topTabs DIV.tabWrapper-right TABLE.appTabs { FLOAT: right } TABLE.topTabs TR TD DIV.tabWrapper-right TABLE.appTabs { FLOAT: right } TABLE.appTabs { WIDTH: auto; POSITION: relative; TOP: 3px; border-spacing: 2px } HTML * TABLE.appTabs { TOP: 3px } TABLE.appTabs TBODY TR TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 4px 0px 0px; PADDING-TOP: 0px; POSITION: relative } #topTab { BORDER-RIGHT: #65696e 1px solid; PADDING-RIGHT: 1.2em; = BACKGROUND-POSITION: right 5px; BORDER-TOP: #65696e 1px solid; DISPLAY: = block; PADDING-LEFT: 1.2em; FONT-SIZE: 95%; Z-INDEX: 100; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0.4em; MARGIN: 0px; BORDER-LEFT: = #65696e 1px solid; COLOR: #ffffff; PADDING-TOP: 0.4em; BORDER-BOTTOM: = 0px; BACKGROUND-REPEAT: repeat-x; WHITE-SPACE: nowrap; BACKGROUND-COLOR: = #7c8188; TEXT-ALIGN: center; TEXT-DECORATION: none } TABLE.appTabs TBODY TR TD A { BORDER-RIGHT: #65696e 1px solid; PADDING-RIGHT: 1.2em; = BACKGROUND-POSITION: right 5px; BORDER-TOP: #65696e 1px solid; DISPLAY: = block; PADDING-LEFT: 1.2em; FONT-SIZE: 95%; Z-INDEX: 100; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0.4em; MARGIN: 0px; BORDER-LEFT: = #65696e 1px solid; COLOR: #ffffff; PADDING-TOP: 0.4em; BORDER-BOTTOM: = 0px; BACKGROUND-REPEAT: repeat-x; WHITE-SPACE: nowrap; BACKGROUND-COLOR: = #7c8188; TEXT-ALIGN: center; TEXT-DECORATION: none } TABLE.appTabs TBODY TR TD A:hover { BORDER-RIGHT: #597298 1px solid; BORDER-TOP: #597298 1px solid; = BACKGROUND: #bbb; BORDER-LEFT: #597298 1px solid; COLOR: #000; = BORDER-BOTTOM: 0px } TABLE.appTabs TBODY TR TD A:focus { BORDER-RIGHT: #597298 1px solid; BORDER-TOP: #597298 1px solid; = BACKGROUND: #bbb; BORDER-LEFT: #597298 1px solid; COLOR: #000; = BORDER-BOTTOM: 0px } #topTabActive { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1.2em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1.2em; FONT-WEIGHT: bold; Z-INDEX: = 1000; PADDING-BOTTOM: 0.38em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.34em; BORDER-BOTTOM: medium none; TOP: 1px; = BACKGROUND-COLOR: #dedede; opacity: 1 } TABLE.appTabs TBODY TR TD.active A { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1.2em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1.2em; FONT-WEIGHT: bold; Z-INDEX: = 1000; PADDING-BOTTOM: 0.38em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.34em; BORDER-BOTTOM: medium none; TOP: 1px; = BACKGROUND-COLOR: #dedede; opacity: 1 } TABLE.appTabs TBODY TR TD.active A:hover { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1.2em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1.2em; FONT-WEIGHT: bold; Z-INDEX: = 1000; PADDING-BOTTOM: 0.38em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.34em; BORDER-BOTTOM: medium none; TOP: 1px; = BACKGROUND-COLOR: #dedede; opacity: 1 } TABLE.round1 { POSITION: relative; TOP: 4px } TABLE.round2 { POSITION: relative; TOP: 4px } HTML * TABLE.round1 { TOP: 3px } HTML * TABLE.round2 { TOP: 3px } TABLE.round1 TBODY TR TD A { -moz-border-radius-topright: 9px; -webkit-border-top-right-radius: 9px; = -moz-border-radius-topleft: 9px; -webkit-border-top-left-radius: 9px; = -khtml-border-horizontal-spacing: 9px } TABLE.round2 TBODY TR TD A { -moz-border-radius-topright: 36px; -webkit-border-top-right-radius: = 36px; -moz-border-radius-topleft: 36px; -webkit-border-top-left-radius: = 36px; -khtml-border-horizontal-spacing: 36px } TABLE.appTabs TBODY TR TD H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } TABLE.appTabs TBODY TR TD.active H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } TABLE.appTabs TBODY TR TD.active H2 { FONT-WEIGHT: bold } DIV.topTabs DIV.topGlobalLinks { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; RIGHT: 0px; = BACKGROUND: none transparent scroll repeat 0% 0%; LEFT: 0px; = PADDING-BOTTOM: 0px; WIDTH: 100%; PADDING-TOP: 0px; ZOOM: 1; POSITION: = absolute; TOP: 0px; TEXT-ALIGN: center } TABLE.topTabs TR TD DIV.topGlobalLinks { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; RIGHT: 0px; = BACKGROUND: none transparent scroll repeat 0% 0%; LEFT: 0px; = PADDING-BOTTOM: 0px; WIDTH: 100%; PADDING-TOP: 0px; ZOOM: 1; POSITION: = absolute; TOP: 0px; TEXT-ALIGN: center } DIV.topTabs-compact DIV.topGlobalLinks { RIGHT: 0px; BACKGROUND: #fff; LEFT: auto; WIDTH: 100%; COLOR: #777; = POSITION: absolute; TOP: 0px } TABLE.topTabs-compact TR TD DIV.topGlobalLinks { RIGHT: 0px; BACKGROUND: #fff; LEFT: auto; WIDTH: 100%; COLOR: #777; = POSITION: absolute; TOP: 0px } DIV.topTabs DIV.topGlobalLinks UL { BORDER-RIGHT: medium none; PADDING-RIGHT: 3px; BORDER-TOP: medium none; = PADDING-LEFT: 3px; Z-INDEX: 1001; BACKGROUND: none transparent scroll = repeat 0% 0%; PADDING-BOTTOM: 2px; MARGIN: 0px auto; BORDER-LEFT: medium = none; WIDTH: 440px; PADDING-TOP: 0px; BORDER-BOTTOM: medium none; = LIST-STYLE-TYPE: none } TABLE.topTabs TR TD DIV.topGlobalLinks UL { BORDER-RIGHT: medium none; PADDING-RIGHT: 3px; BORDER-TOP: medium none; = PADDING-LEFT: 3px; Z-INDEX: 1001; BACKGROUND: none transparent scroll = repeat 0% 0%; PADDING-BOTTOM: 2px; MARGIN: 0px auto; BORDER-LEFT: medium = none; WIDTH: 440px; PADDING-TOP: 0px; BORDER-BOTTOM: medium none; = LIST-STYLE-TYPE: none } DIV.topTabs DIV.topGlobalLinks UL LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; Z-INDEX: 499; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; ZOOM: 1; = POSITION: relative; TOP: 0px; HEIGHT: 1% } TABLE.topTabs TR TD DIV.topGlobalLinks UL LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; Z-INDEX: 499; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; ZOOM: 1; = POSITION: relative; TOP: 0px; HEIGHT: 1% } DIV.topGlobalLinks UL LI IMG { LEFT: 0px; POSITION: absolute; TOP: 15px } DIV.topTabs DIV.topGlobalLinks UL LI A { PADDING-RIGHT: 8px; MARGIN-TOP: 15px; DISPLAY: inline-block; = PADDING-LEFT: 30px; FONT-SIZE: 85%; BACKGROUND: none transparent scroll = repeat 0% 0%; PADDING-BOTTOM: 4px; BORDER-LEFT: #555 1px solid; COLOR: = #fff; PADDING-TOP: 4px; ZOOM: 1; TEXT-ALIGN: left; TEXT-DECORATION: none } TABLE.topTabs TR TD DIV.topGlobalLinks UL LI A { PADDING-RIGHT: 8px; MARGIN-TOP: 15px; DISPLAY: inline-block; = PADDING-LEFT: 30px; FONT-SIZE: 85%; BACKGROUND: none transparent scroll = repeat 0% 0%; PADDING-BOTTOM: 4px; BORDER-LEFT: #555 1px solid; COLOR: = #fff; PADDING-TOP: 4px; ZOOM: 1; TEXT-ALIGN: left; TEXT-DECORATION: none } HTML * DIV.topTabs DIV.topGlobalLinks UL LI A { FONT-SIZE: 85% } HTML * DIV.topTabs-compact DIV.topGlobalLinks UL LI A { FONT-SIZE: 85% } DIV.topTabs DIV.topGlobalLinks UL LI A:hover { TEXT-DECORATION: underline } DIV.topTabs DIV.topGlobalLinks UL LI:first-child A { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } DIV.topTabs DIV.topGlobalLinks UL LI:first-child A:hover { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } DIV.topTabs DIV.topGlobalLinks UL LI A.myPlaces { PADDING-RIGHT: 6px! important; PADDING-LEFT: 28px! important; = PADDING-BOTTOM: 3px! important; PADDING-TOP: 3px! important } DIV.topTabs DIV.topGlobalLinks UL LI A.home { BACKGROUND: url(images/home_ti.gif) no-repeat center 0px } DIV.topTabs DIV.topGlobalLinks UL LI A.logout { BACKGROUND: url(images/logout.gif) no-repeat center 0px } DIV.topTabs DIV.topGlobalLinks UL LI A.help { BACKGROUND: url(images/small_help_on2.gif) no-repeat center 0px } DIV.topTabs DIV.topGlobalLinks UL LI A.myPlaces { BACKGROUND-POSITION: 2px center } DIV.topTabs DIV.topGlobalLinks UL LI A.home { BACKGROUND-POSITION: 2px center } DIV.topTabs DIV.topGlobalLinks UL LI A.logout { BACKGROUND-POSITION: 2px center } DIV.topTabs DIV.topGlobalLinks UL LI A.help { BACKGROUND-POSITION: 2px center } DIV.topTabs-compact DIV.topGlobalLinks A { FONT-SIZE: 85%; MARGIN: 0px 3px; TEXT-DECORATION: none } DIV.topTabs-compact DIV.topGlobalLinks A IMG { DISPLAY: none } DIV.topTabs-compact DIV.topGlobalLinks A:hover { COLOR: #000; TEXT-DECORATION: underline } HTML * DIV.topTabs DIV.topGlobalLinks UL LI A { FONT-SIZE: 85% } HTML * DIV.topTabs-compact DIV.topGlobalLinks UL LI A { FONT-SIZE: 85% } DIV.topTabs DIV.hotItems { RIGHT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; WIDTH: = 400px; MAX-HEIGHT: 48px; POSITION: absolute; TOP: 0px; HEIGHT: 48px } DIV.topTabs DIV.hotItems UL.hotLinks { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; Z-INDEX: 1001; PADDING-BOTTOM: 0px; MARGIN: 0px 14px = 2px 0px; OVERFLOW: auto; BORDER-LEFT: medium none; MAX-HEIGHT: 48px; = PADDING-TOP: 0px; BORDER-BOTTOM: medium none; LIST-STYLE-TYPE: none; = HEIGHT: 48px } DIV.topTabs DIV.hotItems UL.hotLinks LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; TOP: 0px } DIV.topTabs DIV.hotItems UL.hotLinks LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 8px; BORDER-TOP: 0px; PADDING-LEFT: = 8px; FONT-SIZE: 85%; BACKGROUND: none transparent scroll repeat 0% 0%; = PADDING-BOTTOM: 1px; MARGIN: 0px; BORDER-LEFT: 0px; LINE-HEIGHT: 100%; = PADDING-TOP: 1px; BORDER-BOTTOM: 0px; TEXT-ALIGN: left; TEXT-DECORATION: = none } DIV.topTabs DIV.hotItems UL.hotLinks LI A:hover { COLOR: #000; TEXT-DECORATION: underline } DIV.topTabs-compact DIV.topGlobalLinks { RIGHT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; TOP: 0px; = TEXT-ALIGN: center } DIV.topTabs-compact { PADDING-TOP: 14px; POSITION: relative } DIV.topTabs-compact DIV.tabWrapper-left { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px; BORDER-BOTTOM: #dedede 3px solid } DIV.topTabs-compact DIV.tabWrapper-center { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px; BORDER-BOTTOM: #dedede 3px solid } DIV.topTabs-compact DIV.tabWrapper-right { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: auto; PADDING-TOP: 0px; BORDER-BOTTOM: #dedede 3px solid } DIV.topTabs-compact TABLE.appTabs { WIDTH: auto; POSITION: relative; TOP: 2px } HTML * DIV.topTabs-compact TABLE.appTabs { TOP: 2px } DIV.topTabs-compact DIV.tabWrapper-center TABLE.appTabs { MARGIN: 0px auto } DIV.topTabs-compact DIV.tabWrapper-right TABLE.appTabs { FLOAT: right } DIV.topTabs-compact TABLE.appTabs TR TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 4px 0px 0px; PADDING-TOP: 0px; POSITION: relative } DIV.topTabs-compact TABLE.appTabs TR TD A { BORDER-RIGHT: #65696e 1px solid; PADDING-RIGHT: 1em; = BACKGROUND-POSITION: right 5px; BORDER-TOP: #65696e 1px solid; DISPLAY: = block; PADDING-LEFT: 1em; FONT-SIZE: 90%; Z-INDEX: 100; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0.2em; MARGIN: 0px; BORDER-LEFT: = #65696e 1px solid; COLOR: #ffffff; PADDING-TOP: 0.3em; BORDER-BOTTOM: = #7c8188 1px solid; BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: = #7c8188; TEXT-ALIGN: center; TEXT-DECORATION: none } DIV.topTabs-compact TABLE.round1 TR TD.active A { -moz-border-radius-topright: 9px; -webkit-border-top-right-radius: 9px; = -moz-border-radius-topleft: 9px; -webkit-border-top-left-radius: 9px; = -khtml-border-horizontal-spacing: 9px } DIV.topTabs-compact TABLE.round1 TR TD A { -moz-border-radius-topright: 9px; -webkit-border-top-right-radius: 9px; = -moz-border-radius-topleft: 9px; -webkit-border-top-left-radius: 9px; = -khtml-border-horizontal-spacing: 9px } DIV.topTabs-compact TABLE.round2 TR TD.active A { -moz-border-radius-topright: 36px; -webkit-border-top-right-radius: = 36px; -moz-border-radius-topleft: 36px; -webkit-border-top-left-radius: = 36px; -khtml-border-horizontal-spacing: 36px } DIV.topTabs-compact TABLE.round2 TR TD A { -moz-border-radius-topright: 36px; -webkit-border-top-right-radius: = 36px; -moz-border-radius-topleft: 36px; -webkit-border-top-left-radius: = 36px; -khtml-border-horizontal-spacing: 36px } DIV.topTabs-compact TABLE.appTabs TR TD A:hover { BORDER-RIGHT: #597298 1px solid; BORDER-TOP: #597298 1px solid; = BACKGROUND: #bbb; BORDER-LEFT: #597298 1px solid; COLOR: #000; = BORDER-BOTTOM: #bbb 1px solid } DIV.topTabs-compact TABLE.appTabs TR TD.active A { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1em; FONT-WEIGHT: bold; BACKGROUND: = #dedede; PADDING-BOTTOM: 0.2em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.3em; BORDER-BOTTOM: medium none; TEXT-DECORATION: = none } DIV.topTabs-compact TABLE.appTabs TR TD.active A:hover { BORDER-RIGHT: #595c61 2px solid; PADDING-RIGHT: 1em; BORDER-TOP: = #595c61 2px solid; PADDING-LEFT: 1em; FONT-WEIGHT: bold; BACKGROUND: = #dedede; PADDING-BOTTOM: 0.2em; BORDER-LEFT: #595c61 2px solid; COLOR: = #000; PADDING-TOP: 0.3em; BORDER-BOTTOM: medium none; TEXT-DECORATION: = none } DIV.topTabs-compact UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #777d86 1px solid; = LIST-STYLE-TYPE: none } DIV.topTabs-compact UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.topTabs-compact UL LI.gap { MARGIN-LEFT: 3px } DIV.topTabs-compact UL LI.gap A:hover { =09 } DIV.topTabs-compact UL LI A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; FONT-SIZE: = 85%; PADDING-BOTTOM: 5px; MARGIN: 0px; COLOR: #fff; PADDING-TOP: 5px; = TEXT-DECORATION: none } .topTabs-compact UL LI A:hover { COLOR: #fff; TEXT-DECORATION: underline } .topTabs-compact UL LI.active { Z-INDEX: 2500; MARGIN: 0px; BORDER-BOTTOM: medium none } .topTabs-compact UL LI.active { POSITION: relative; TOP: 1px } .topTabs-compact UL LI.active A { BORDER-RIGHT: #777d86 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: = #777d86 1px solid; DISPLAY: block; PADDING-LEFT: 12px; FONT-WEIGHT: = bold; BACKGROUND: #cdcdcd; PADDING-BOTTOM: 4px; MARGIN: 0px; = BORDER-LEFT: #777d86 1px solid; COLOR: #000! important; PADDING-TOP: = 6px; BORDER-BOTTOM: medium none; TEXT-DECORATION: none; = -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; = -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px } .topTabs-compact UL LI.gap { MARGIN-LEFT: 12px } .topTabs-compact DIV.hotItems { DISPLAY: none } .topTabs-compact DIV.topGlobalLinks UL { BORDER-RIGHT: 0px; BORDER-TOP: 0px; FLOAT: right; BORDER-LEFT: 0px; = BORDER-BOTTOM: 0px } .topTabs-compact DIV.topGlobalLinks UL LI { Z-INDEX: 499; FLOAT: left; MARGIN: 0px 4px; POSITION: relative } .topTabs-compact DIV.topGlobalLinks UL LI A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .topTabs DIV.brandingImgWrap { OVERFLOW: hidden; HEIGHT: 43px } .topTabs DIV.brandingImgWrap IMG.bannerImage { MARGIN: 0px } .topTabs-compact IMG.bannerImage { DISPLAY: none } .topTabs-compact DIV.brandingImgWrap { DISPLAY: none } #topFrame { BACKGROUND-POSITION: 0px 0px; COLOR: #fff; BACKGROUND-REPEAT: = no-repeat; BACKGROUND-COLOR: #8192a8 } .bgBanner { BACKGROUND-POSITION: 0px 0px; COLOR: #fff; BACKGROUND-REPEAT: = no-repeat; BACKGROUND-COLOR: #8192a8 } DIV.locationPane { MARGIN-TOP: 10px; OVERFLOW: visible; ZOOM: 1; POSITION: relative } #navigationPane { CLEAR: both; PADDING-RIGHT: 0px; MARGIN-TOP: 0px; PADDING-LEFT: 0px; = LEFT: 0px; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 212px; = PADDING-TOP: 0px; ZOOM: 1; POSITION: absolute; TOP: 0px } DIV.navigationPane { CLEAR: both; PADDING-RIGHT: 0px; MARGIN-TOP: 0px; PADDING-LEFT: 0px; = LEFT: 0px; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 212px; = PADDING-TOP: 0px; ZOOM: 1; POSITION: absolute; TOP: 0px } DIV.menuWrap { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: = 212px; PADDING-TOP: 0px; POSITION: relative; BACKGROUND-COLOR: = transparent } .navcollapsed { WIDTH: 0px! important } .pullcollapsed { LEFT: 1px! important } .pullcollapsed A { DISPLAY: block; BACKGROUND: url(images/menu_expand3.gif) no-repeat 0px = 0px; WIDTH: 14px; HEIGHT: 29px } .contcollapsed { MARGIN-LEFT: 15px! important } #puller { MARGIN-TOP: 180px; Z-INDEX: 3; LEFT: 198px; POSITION: absolute; HEIGHT: = 1px; BACKGROUND-COLOR: transparent! important } #puller A { DISPLAY: block; BACKGROUND: url(images/menu_collapse3.gif) no-repeat = 0px 0px; WIDTH: 14px; HEIGHT: 29px } #puller A IMG { WIDTH: 14px; HEIGHT: 29px } #contentPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px 0px 212px; = OVERFLOW: visible; PADDING-TOP: 0px; ZOOM: 1 } DIV.contentPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px 0px 212px; = OVERFLOW: visible; PADDING-TOP: 0px; ZOOM: 1 } #contentPaneWide { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px; = PADDING-TOP: 0px; ZOOM: 1 } DIV.contentPaneWide { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px; = PADDING-TOP: 0px; ZOOM: 1 } DIV.portalPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 14px; = PADDING-TOP: 0px; ZOOM: 1 } #content { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; ZOOM: 1 } DIV.contentBox { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; ZOOM: 1 } DIV.portal DIV.content { =09 } DIV.paneTabs { PADDING-RIGHT: 1px; MIN-WIDTH: 600px; PADDING-LEFT: 1px; BACKGROUND: = none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 0px } DIV.paneTabs UL { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.paneTabs UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 200; FLOAT: left; = PADDING-BOTTOM: 1px; MARGIN: 0px 5px 0px 0px; PADDING-TOP: 1px; = POSITION: relative; TEXT-ALIGN: center } DIV.paneTabs UL LI A { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; BACKGROUND: = #dedede; PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; = TEXT-DECORATION: none; -moz-border-radius: 3px; -webkit-border-radius: = 3px } DIV.paneTabs UL LI.active { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 95%; Z-INDEX: 10; BACKGROUND: none transparent scroll repeat 0% 0%; = FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px 4px 0px -1px; COLOR: #000; = PADDING-TOP: 0px; POSITION: relative; TEXT-ALIGN: center! important } DIV.paneTabs UL LI.active A { BORDER-RIGHT: medium none; PADDING-RIGHT: 16px; BORDER-TOP: medium = none; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: = 5px; BORDER-BOTTOM: medium none; TEXT-DECORATION: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.active A:hover { BORDER-RIGHT: medium none; PADDING-RIGHT: 16px; BORDER-TOP: medium = none; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: = 5px; BORDER-BOTTOM: medium none; TEXT-DECORATION: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.activepersonal A { BORDER-RIGHT: medium none; PADDING-RIGHT: 16px; BORDER-TOP: medium = none; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: = 5px; BORDER-BOTTOM: medium none; TEXT-DECORATION: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.activepersonal A:hover { BORDER-RIGHT: medium none; PADDING-RIGHT: 16px; BORDER-TOP: medium = none; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: = 5px; BORDER-BOTTOM: medium none; TEXT-DECORATION: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.active H3 { BORDER-RIGHT: medium none; PADDING-RIGHT: 16px; BORDER-TOP: medium = none; DISPLAY: block; PADDING-LEFT: 16px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 5px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: = 5px; BORDER-BOTTOM: medium none; TEXT-DECORATION: none; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.activepersonal A { PADDING-RIGHT: 22px; PADDING-LEFT: 16px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 5px; PADDING-TOP: 5px } DIV.paneTabs UL LI.activepersonal A:hover { PADDING-RIGHT: 22px; PADDING-LEFT: 16px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 5px; PADDING-TOP: 5px } DIV.paneTabs UL LI.addbutton { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 100; BACKGROUND: none = transparent scroll repeat 0% 0%; FLOAT: left; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 1px; POSITION: relative; TEXT-ALIGN: center } DIV.paneTabs UL LI.personal A { PADDING-RIGHT: 20px; DISPLAY: block; PADDING-LEFT: 9px; BACKGROUND: = #dedede; PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; = TEXT-DECORATION: none } DIV.paneTabs UL LI.external A { PADDING-LEFT: 20px; BACKGROUND: url(images/small_external_content.gif) = #dedede no-repeat 2px center } DIV.paneTabs UL LI.external A:hover { PADDING-LEFT: 20px; BACKGROUND: url(images/small_external_content.gif) = #fff1c5 no-repeat 2px center } DIV.paneTabs UL LI.activepersonal A.paneTabOptions { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; RIGHT: 5px; = FILTER: alpha(opacity=3D30); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; = POSITION: absolute! important; TOP: 4px; BACKGROUND-COLOR: transparent; = opacity: 0.3 } DIV.paneTabs UL LI.personal A.paneTabOptions { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; RIGHT: 5px; = FILTER: alpha(opacity=3D30); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; = POSITION: absolute! important; TOP: 4px; BACKGROUND-COLOR: transparent; = opacity: 0.3 } DIV.paneTabs UL LI A.paneTabOptions { DISPLAY: none } DIV.paneTabs UL LI.activepersonal:hover A.paneTabOptions { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.paneTabs UL LI.button A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 9px; BACKGROUND: #d3e2f5; = PADDING-BOTTOM: 3px; BORDER-LEFT: #acc2df 1px solid; COLOR: #555; = PADDING-TOP: 2px; BORDER-BOTTOM: #acc2df 1px solid; TEXT-DECORATION: = none; -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.paneTabs UL LI.button A:hover { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #acc2df 1px solid; = BACKGROUND: url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = BORDER-LEFT: #acc2df 1px solid; BORDER-BOTTOM: #5577bb 1px solid } DIV.paneTabs UL LI A:hover { BACKGROUND: #fff1c5; TEXT-DECORATION: none } DIV.paneTabs UL LI A:hover { TEXT-DECORATION: none } DIV.paneTabs LI.active A:hover { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } DIV.paneTabs UL LI A.hiddenTabsLink IMG { WIDTH: 2px; HEIGHT: 2px } DIV.paneTabs UL.nav LI.sub A.hiddenTabsLink { BACKGROUND-POSITION: center center; BACKGROUND-IMAGE: = url(images/more_options.gif); BACKGROUND-REPEAT: no-repeat } DIV.paneTabs UL.nav LI.sub UL.more { BORDER-RIGHT: #888 1px solid; BORDER-TOP: #ccc 1px solid; MARGIN-TOP: = -4px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #888 1px solid } DIV.paneTabs UL.nav LI.sub UL.more LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px! important; BORDER-TOP: 0px; = DISPLAY: block; PADDING-LEFT: 18px! important; FONT-WEIGHT: normal; = FONT-SIZE: 105%; BACKGROUND: url(images/cm_bullet_single.gif) #ddd = no-repeat 5px 3px; PADDING-BOTTOM: 2px! important; MARGIN: 0px; = BORDER-LEFT: 0px; COLOR: #444; PADDING-TOP: 2px! important; = BORDER-BOTTOM: 0px; TEXT-ALIGN: left; TEXT-DECORATION: none } DIV.paneTabs UL.nav LI.sub UL.more LI A:hover { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff1c5 no-repeat 5px 3px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px; TEXT-DECORATION: none } #contentPane DIV.topRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } #contentPane DIV.bottomRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.topRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.bottomRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.topRound B { DISPLAY: block; OVERFLOW: hidden } DIV.bottomRound B { DISPLAY: block; OVERFLOW: hidden } DIV.topRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.bottomRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.topRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } DIV.bottomRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } DIV.topRound B { BACKGROUND: #fff1c5 } DIV.bottomRound B { BACKGROUND: #fff } DIV.landing DIV.container { BACKGROUND: #ededed } DIV.landing DIV.bottomRound B { BACKGROUND: #ededed } DIV.error DIV.container { BACKGROUND: #ededed } DIV.error DIV.bottomRound B { BACKGROUND: #ededed } DIV.portal DIV.bottomRound B { BACKGROUND-COLOR: #e3efff } DIV.portal DIV.container { BACKGROUND-COLOR: #e3efff } DIV.tabbedPane DIV.topRound B { DISPLAY: none } DIV.hasTopBanner DIV.topRound B { DISPLAY: none } DIV.error DIV.topRound B { BACKGROUND-COLOR: red } DIV.pickerMenu DIV.topRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.pickerMenu DIV.bottomRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.pickerMenu DIV.topRound B.middle { MARGIN: 0px 1px; HEIGHT: 2px } DIV.pickerMenu DIV.bottomRound B.middle { MARGIN: 0px 1px; HEIGHT: 2px } DIV.pickerMenu DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 1px } DIV.pickerMenu DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 1px } DIV.breadcrumbs { BACKGROUND: none transparent scroll repeat 0% 0%; MARGIN: 0px 14px; = POSITION: relative; HEIGHT: 1% } DIV.banner + DIV.breadcrumbs { MARGIN: 0px; BACKGROUND-COLOR: transparent } DIV.breadcrumbs A.close { Z-INDEX: 100; RIGHT: 20px; FILTER: alpha(opacity=3D70); POSITION: = absolute; TOP: 3px; opacity: 0.7 } DIV.path { PADDING-RIGHT: 200px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 85%; BACKGROUND: #dedede; PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #000; = PADDING-TOP: 4px; POSITION: relative; HEIGHT: 1px } DIV.simplePath { PADDING-RIGHT: 200px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 85%; BACKGROUND: #dedede; PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #000; = PADDING-TOP: 4px; POSITION: relative; HEIGHT: 1px } DIV.breadcrumbs DIV.noToggle { PADDING-RIGHT: 24px; PADDING-LEFT: 6px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px } DIV.simplePath { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; PADDING-TOP: 4px } DIV.path OL { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.simplePath OL { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.path OL LI.label { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; = PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.simplePath OL LI.label { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; = PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.path OL LI { PADDING-RIGHT: 12px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = BACKGROUND: url(images/breadcrumb_arrow.gif) no-repeat right center; = FLOAT: left; PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.simplePath OL LI { PADDING-RIGHT: 12px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = BACKGROUND: url(images/breadcrumb_arrow.gif) no-repeat right center; = FLOAT: left; PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.path OL LI.placeholder { PADDING-RIGHT: 0px; PADDING-LEFT: 3px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: = 0px } DIV.simplePath OL LI.placeholder { PADDING-RIGHT: 0px; PADDING-LEFT: 3px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: = 0px } DIV.path A { FONT-WEIGHT: normal; COLOR: #000000; TEXT-DECORATION: none } DIV.simplePath A { FONT-WEIGHT: normal; COLOR: #000000; TEXT-DECORATION: none } DIV.path A:hover { COLOR: #000; TEXT-DECORATION: underline } DIV.simplePath A:hover { COLOR: #000; TEXT-DECORATION: underline } DIV.path OL LI.button { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 2px; MARGIN: = -2px 6px -2px -2px; PADDING-TOP: 0px; BACKGROUND-COLOR: #f6f6f6; = -moz-border-radius: 3px; -webkit-border-radius: 3px } DIV.simplePath OL LI.button { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 2px; MARGIN: = -2px 6px -2px -2px; PADDING-TOP: 0px; BACKGROUND-COLOR: #f6f6f6; = -moz-border-radius: 3px; -webkit-border-radius: 3px } DIV.path OL LI.button A { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; PADDING-TOP: 1px } DIV.simplePath OL LI.button A { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; PADDING-TOP: 1px } DIV.path OL LI.root { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 2px; MARGIN: -2px 8px -2px 0px; = COLOR: #efefef; PADDING-TOP: 2px; BACKGROUND-COLOR: #949494; = -moz-border-radius: 3px; -webkit-border-radius: 3px } DIV.simplePath OL LI.root { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 2px; MARGIN: -2px 8px -2px 0px; = COLOR: #efefef; PADDING-TOP: 2px; BACKGROUND-COLOR: #949494; = -moz-border-radius: 3px; -webkit-border-radius: 3px } DIV.path OL LI.root A { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 2px; COLOR: #fff; PADDING-TOP: 1px; TEXT-DECORATION: = none } DIV.simplePath OL LI.root A { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 2px; COLOR: #fff; PADDING-TOP: 1px; TEXT-DECORATION: = none } DIV.path OL LI.root A SPAN { FONT-WEIGHT: bold; COLOR: #ffffff; TEXT-DECORATION: none } DIV.simplePath OL LI.root A SPAN { FONT-WEIGHT: bold; COLOR: #ffffff; TEXT-DECORATION: none } DIV.path OL LI.root A:hover { COLOR: #fff; TEXT-DECORATION: underline } DIV.simplePath OL LI.root A:hover { COLOR: #fff; TEXT-DECORATION: underline } DIV.path OL LI.root A:hover SPAN { COLOR: #fff; TEXT-DECORATION: underline } DIV.simplePath OL LI.root A:hover SPAN { COLOR: #fff; TEXT-DECORATION: underline } DIV.path OL LI.root A SPAN.courseName:unknown { content: " - " } DIV.path OL LI.root A SPAN.courseId:unknown { content: "(" } DIV.path OL LI.root A SPAN.courseId:unknown { content: ")" } DIV.path OL:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } DIV.simplePath OL:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } DIV.path OL { DISPLAY: inline-block } DIV.simplePath OL { DISPLAY: inline-block } DIV.path OL { DISPLAY: block } DIV.simplePath OL { DISPLAY: block } DIV.breadcrumbs DIV.topRound { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.breadcrumbs DIV.bottomRound { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.breadcrumbs DIV.topRound B { DISPLAY: block; BACKGROUND: #dedede; OVERFLOW: hidden } DIV.breadcrumbs DIV.bottomRound B { DISPLAY: block; BACKGROUND: #dedede; OVERFLOW: hidden } DIV.breadcrumbs DIV.topRound B.outer { MARGIN: 0px 2px; HEIGHT: 1px } DIV.breadcrumbs DIV.bottomRound B.outer { MARGIN: 0px 2px; HEIGHT: 1px } DIV.breadcrumbs DIV.topRound B.middle { DISPLAY: none } DIV.breadcrumbs DIV.bottomRound B.middle { DISPLAY: none } DIV.breadcrumbs DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 1px } DIV.breadcrumbs DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 1px } DIV.localViewToggle { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-TOP: 0px; POSITION: relative } DIV.localViewToggle UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 4px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; POSITION: relative } DIV.localViewToggle UL LI { FLOAT: right } DIV.localViewToggle UL LI A { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; FONT-SIZE: 85%; = PADDING-BOTTOM: 2px; MARGIN: 1px 0px 0px; PADDING-TOP: 2px; = TEXT-DECORATION: none } DIV.localViewToggle UL LI A:hover { TEXT-DECORATION: underline } DIV.localViewToggle UL LI A.active { BORDER-RIGHT: #ffcc00 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #ffcc00 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: 85%; = BACKGROUND: #fff; PADDING-BOTTOM: 2px; MARGIN: 0px; BORDER-LEFT: #ffcc00 = 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #ffcc00 1px solid } DIV.localViewToggle UL LI H2 { BORDER-RIGHT: #ffcc00 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #ffcc00 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: 85%; = BACKGROUND: #fff; PADDING-BOTTOM: 2px; MARGIN: 0px; BORDER-LEFT: #ffcc00 = 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #ffcc00 1px solid } DIV.localViewToggle UL LI.separator { PADDING-LEFT: 6px; MARGIN-LEFT: 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.viewToggle { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 85%; Z-INDEX: 100; = RIGHT: 10px; PADDING-BOTTOM: 2px; BOTTOM: 0px; PADDING-TOP: 2px; = WHITE-SPACE: nowrap; POSITION: absolute; TOP: 3px } DIV.helpOnlyToggle { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 85%; Z-INDEX: 100; = RIGHT: 10px; PADDING-BOTTOM: 2px; BOTTOM: 0px; PADDING-TOP: 2px; = WHITE-SPACE: nowrap; POSITION: absolute; TOP: 0px } DIV.viewToggle SPAN { COLOR: #666 } DIV.viewToggle UL { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px 6px 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.helpOnlyToggle UL { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px 6px 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.viewToggle UL LI { FLOAT: left; MARGIN: 0px 3px; POSITION: relative; TOP: 2px } DIV.helpOnlyToggle UL LI { FLOAT: left; MARGIN: 0px 3px; POSITION: relative; TOP: 2px } DIV.viewToggle LI A { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px; TEXT-DECORATION: none } DIV.viewToggle LI A:hover { TEXT-DECORATION: underline } DIV.viewToggle UL LI.active { PADDING-RIGHT: 4px; PADDING-LEFT: 7px; BACKGROUND: #cdcdcd; = PADDING-BOTTOM: 6px; PADDING-TOP: 3px; POSITION: relative; TOP: 0px } DIV.viewToggle LI.active A { DISPLAY: inline; FONT-WEIGHT: bold; Z-INDEX: 100; MARGIN: 0px 3px; = COLOR: #222; TEXT-DECORATION: none } DIV.viewToggle LI.active SPAN { COLOR: #aaa } DIV.viewToggle LI.active SPAN A { BORDER-RIGHT: 0px; PADDING-RIGHT: 1px; BORDER-TOP: 0px; PADDING-LEFT: = 1px; FONT-WEIGHT: normal; BACKGROUND: none transparent scroll repeat 0% = 0%; PADDING-BOTTOM: 2px; MARGIN: 0px -2px 0px -1px; BORDER-LEFT: 0px; = COLOR: #555; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; TEXT-DECORATION: = underline } DIV.helpOnlyToggle LI SPAN A { BORDER-RIGHT: 0px; PADDING-RIGHT: 1px; BORDER-TOP: 0px; PADDING-LEFT: = 1px; FONT-WEIGHT: normal; BACKGROUND: none transparent scroll repeat 0% = 0%; PADDING-BOTTOM: 2px; MARGIN: 0px -2px 0px -1px; BORDER-LEFT: 0px; = COLOR: #555; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; TEXT-DECORATION: = underline } DIV.viewToggle LI SPAN#helpTextToggle A { BORDER-RIGHT: 0px; PADDING-RIGHT: 1px; BORDER-TOP: 0px; PADDING-LEFT: = 1px; FONT-WEIGHT: normal; BACKGROUND: none transparent scroll repeat 0% = 0%; PADDING-BOTTOM: 2px; MARGIN: 0px -2px 0px -1px; BORDER-LEFT: 0px; = COLOR: #555; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; TEXT-DECORATION: = underline } DIV.viewToggle LI SPAN#helpTextToggle { RIGHT: -2px; POSITION: absolute; TOP: -3px } DIV.viewToggle LI.active SPAN#helpTextToggle { MARGIN: -3px 0px 0px; POSITION: static } DIV.viewToggle LI SPAN#helpTextToggle A { PADDING-RIGHT: 1px; DISPLAY: inline-block; PADDING-LEFT: 1px; = PADDING-BOTTOM: 1px; PADDING-TOP: 1px; TEXT-DECORATION: none } DIV.viewToggle LI.active SPAN A:hover { BORDER-RIGHT: 0px; BORDER-TOP: 0px; FONT-WEIGHT: normal; BACKGROUND: = #ededed; BORDER-LEFT: 0px; COLOR: #555; BORDER-BOTTOM: 0px; = TEXT-DECORATION: underline } DIV.helpOnlyToggle LI SPAN A:hover { BORDER-RIGHT: 0px; BORDER-TOP: 0px; FONT-WEIGHT: normal; BACKGROUND: = #ededed; BORDER-LEFT: 0px; COLOR: #555; BORDER-BOTTOM: 0px; = TEXT-DECORATION: underline } DIV.viewToggle LI SPAN#helpTextToggle A:hover { BORDER-RIGHT: 0px; BORDER-TOP: 0px; FONT-WEIGHT: normal; BACKGROUND: = #ededed; BORDER-LEFT: 0px; COLOR: #555; BORDER-BOTTOM: 0px; = TEXT-DECORATION: underline } .modeSwitchWrap { FONT-WEIGHT: bold; FONT-SIZE: 85%; RIGHT: 26px; LEFT: auto; POSITION: = absolute; TOP: 4px } .modeSwitchWrap DIV { FLOAT: left } .modeSwitch { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #666 1px = solid; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; OVERFLOW: = hidden; TEXT-TRANSFORM: uppercase; BORDER-LEFT: #666 1px solid; COLOR: = #fff; PADDING-TOP: 1px; BORDER-BOTTOM: #666 1px solid; POSITION: = relative; TEXT-DECORATION: none } .read-on { PADDING-RIGHT: 16px; BACKGROUND: url(images/mode_toggle_bg.gif) #8091a7 = repeat-y 100% 0px; MARGIN-RIGHT: 0px } A.read-off { PADDING-LEFT: 16px; BACKGROUND: url(images/mode_toggle_bg.gif) repeat-y = 0px 0px; COLOR: #444 } A.read-on:hover { BACKGROUND-COLOR: #444a6c } A.read-on:focus { BACKGROUND-COLOR: #444a6c } A.read-off:hover { BACKGROUND-COLOR: #ccc } A.read-off:focus { BACKGROUND-COLOR: #ccc } A.read-off IMG { RIGHT: auto; LEFT: -17px; BOTTOM: 0px; POSITION: absolute } A.read-on IMG { RIGHT: -1px; BOTTOM: 0px; POSITION: absolute } HTML *.modeSwitch { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } HTML * A.read-off { PADDING-LEFT: 16px } HTML *.read-on { PADDING-RIGHT: 16px } .modeSwitch SPAN { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; BACKGROUND: repeat-x 0px -16px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } .switcherLabel { PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FLOAT: = left; PADDING-BOTTOM: 2px; COLOR: #444; PADDING-TOP: 2px } DIV.helpLink { BORDER-RIGHT: 0px; BORDER-TOP: 0px; FONT-WEIGHT: normal; RIGHT: 4px; = MARGIN: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px; POSITION: absolute; = TOP: 4px } DIV.helpLink A.browseIcon { PADDING-RIGHT: 1px; DISPLAY: block; PADDING-LEFT: 1px; = BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #666; PADDING-BOTTOM: 0px; = BORDER-TOP-COLOR: #999; PADDING-TOP: 0px; BORDER-RIGHT-COLOR: #666 } DIV.localViewToggle A.miniComboButton { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 16px; BORDER-TOP: = #d7bb66 1px solid; BACKGROUND: url(images/more_options.gif) #f5e7bd = no-repeat 97% center; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid; TEXT-DECORATION: none! important } DIV.cmImg { MARGIN: 0px 0px 6px 12px; OVERFLOW: hidden; WIDTH: 180px; TEXT-ALIGN: = center } DIV.cmImg IMG { WIDTH: 180px } DIV.navDivider { PADDING-RIGHT: 9px; BORDER-TOP: #ddd 3px double; PADDING-LEFT: 9px; = FONT-WEIGHT: bold; FONT-SIZE: 80%; BACKGROUND: repeat-x 0px -16px; = PADDING-BOTTOM: 9px; MARGIN: 18px 0px 4px; TEXT-TRANSFORM: uppercase; = COLOR: #555; PADDING-TOP: 9px; LETTER-SPACING: 3px; TEXT-ALIGN: center } DIV.navPalette { MARGIN: 0px 24px 12px 14px; ZOOM: 1 } .csMenuFrame DIV.navPalette { MARGIN: 0px 14px 12px } DIV.navPaletteContent { BACKGROUND: #ffffff; ZOOM: 1 } .navPalette H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 105%; Z-INDEX: 1; = BACKGROUND: #949494 repeat-x center top; PADDING-BOTTOM: 0px; MARGIN: = 0px; COLOR: #fff; PADDING-TOP: 0px; ZOOM: 1; POSITION: relative } DIV.navPalette H3 { FONT-SIZE: 100%; MARGIN: 0px } .navPalette UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; ZOOM: 1; LIST-STYLE-TYPE: none } .navPalette UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; ZOOM: 1; POSITION: relative; HEIGHT: 1% } #courseMenu { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 16px; FONT-WEIGHT: = normal; BACKGROUND: url(images/more_options_white.gif) no-repeat 4px = 7px; PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; ZOOM: 1; = TEXT-DECORATION: none } .navPalette A { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 16px; FONT-WEIGHT: = normal; BACKGROUND: url(images/more_options_white.gif) no-repeat 4px = 7px; PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; ZOOM: 1; = TEXT-DECORATION: none } .navPalette A:hover { BACKGROUND-IMAGE: url(images/more_options.gif); CURSOR: pointer } .navPalette A:focus { BACKGROUND-IMAGE: url(images/more_options.gif); CURSOR: pointer } .navPalette UL LI A { BORDER-TOP: #ddd 1px solid } .navPalette UL LI:first-child H3 A { BORDER-TOP: medium none } .navPalette UL LI:first-child A { BORDER-TOP: medium none } DIV.navPaletteCol H2 A { BACKGROUND-IMAGE: url(images/more_options_white.gif) } DIV.navPaletteCol H2 A:hover { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPaletteCol H2 A:focus { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPaletteCol DIV.navPaletteContent H2 { BACKGROUND-IMAGE: none } DIV.navPaletteCol DIV.actionBarMicro { DISPLAY: none } DIV.navPalette A.simpleLink { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 3px; PADDING-TOP: 3px } DIV.navPalette A.simpleLink:hover { BACKGROUND: url(images/list_bullet.gif) no-repeat 97% center } DIV.navPalette A.simpleLink:focus { BACKGROUND: url(images/list_bullet.gif) no-repeat 97% center } DIV.navPalette A.comboLink { PADDING-RIGHT: 20px; PADDING-LEFT: 16px; BACKGROUND: = url(images/more_options_dark.gif) no-repeat 4px 7px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 3px; WORD-BREAK: normal; PADDING-TOP: 3px; ZOOM: 1; = heigth: 1% } DIV.navPalette A.comboLink_active { PADDING-RIGHT: 20px; PADDING-LEFT: 16px; BACKGROUND: = url(images/more_options_dark.gif) no-repeat 4px 7px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 3px; WORD-BREAK: normal; PADDING-TOP: 3px; ZOOM: 1; = heigth: 1% } DIV.navPalette A.comboLink:hover { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPalette A.comboLink:focus { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPalette A.comboLink_active { BACKGROUND-IMAGE: url(images/less_options_dark.gif) } DIV.navPalette A.open { BACKGROUND-IMAGE: url(images/less_options_dark.gif) } DIV.navPalette A.comboLink_active:hover { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette A.open:hover { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette A.comboLink_active:focus { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette A.open:focus { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette H2 A.comboLink { PADDING-RIGHT: 3px; PADDING-LEFT: 16px; PADDING-BOTTOM: 3px; = MARGIN-RIGHT: 20px; PADDING-TOP: 3px } DIV.navPalette H2 A.comboLink_active { PADDING-RIGHT: 3px; PADDING-LEFT: 16px; PADDING-BOTTOM: 3px; = MARGIN-RIGHT: 20px; PADDING-TOP: 3px } DIV.navPalette A.submenuLink { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 0px; PADDING-BOTTOM: 0px; = BORDER-LEFT: #bbb 1px solid; PADDING-TOP: 0px; ZOOM: 1; POSITION: = absolute; TOP: 0px } DIV.navPalette A.submenuLink_active { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 0px; PADDING-BOTTOM: 0px; = BORDER-LEFT: #bbb 1px solid; PADDING-TOP: 0px; ZOOM: 1; POSITION: = absolute; TOP: 0px } DIV.navPalette A.submenuLink { BACKGROUND: url(images/list_bullet_white.gif) no-repeat center center } DIV.navPalette A.submenuLink_active { BACKGROUND: url(images/list_bullet_dark.gif) no-repeat center center } DIV.navPalette A.submenuLink:hover { BACKGROUND-IMAGE: url(images/list_bullet.gif) } DIV.navPalette A.submenuLink_active:hover { BACKGROUND-IMAGE: url(images/list_bullet.gif) } DIV.navPalette A.submenuLink:focus { BACKGROUND-IMAGE: url(images/list_bullet.gif) } DIV.navPalette A.submenuLink_active:focus { BACKGROUND-IMAGE: url(images/list_bullet.gif) } DIV.navPalette A.submenuLink IMG { WIDTH: 20px; HEIGHT: 22px } DIV.navPalette A.submenuLink_active IMG { WIDTH: 20px; HEIGHT: 22px } .navPalette H2 A { FONT-WEIGHT: bold; BACKGROUND: url(images/less_options_white.gif) = no-repeat 4px 7px; COLOR: #fff } .navPalette H2 A:hover { FONT-WEIGHT: bold; BACKGROUND: url(images/less_options_white.gif) = no-repeat 4px 7px; COLOR: #fff } DIV.navPalette H2 A.comboLink { FONT-WEIGHT: bold; BACKGROUND: url(images/less_options_white.gif) = no-repeat 4px 7px; COLOR: #fff } .navPalette H2 A:hover { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette H2 A.comboLink:hover { BACKGROUND-IMAGE: url(images/less_options.gif) } .navPalette H2 A:focus { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPalette H2 A.comboLink:focus { BACKGROUND-IMAGE: url(images/less_options.gif) } DIV.navPaletteCol H2 A.comboLink { BACKGROUND: url(images/more_options_white.gif) no-repeat 4px 7px } DIV.navPaletteCol H2 A.comboLink:hover { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.navPaletteCol H2 A.comboLink:focus { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.listCm UL.courseMenu { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = MARGIN-LEFT: -14px; WIDTH: 176px; MARGIN-RIGHT: -14px; PADDING-TOP: 0px; = HEIGHT: 1% } DIV.listCm UL.courseMenu LI { CLEAR: both; BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; = DISPLAY: block; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 3px; = MARGIN: 0px 0px -3px; OVERFLOW: visible; BORDER-LEFT: 0px; WIDTH: 178px; = PADDING-TOP: 2px; BORDER-BOTTOM: 0px; ZOOM: 1; POSITION: relative; = HEIGHT: 1% } DIV.listCm UL.courseMenu LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 14px; BORDER-TOP: 0px; PADDING-LEFT: = 9px; RIGHT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; = FLOAT: left; OVERFLOW-X: hidden; PADDING-BOTTOM: 0px; MARGIN: 0px 0px = 0px 6px; OVERFLOW: visible; BORDER-LEFT: 0px; COLOR: #003366; = WORD-BREAK: break-all; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; HEIGHT: 1% } DIV.listCm UL.courseMenu LI A:hover { BACKGROUND-IMAGE: none; TEXT-DECORATION: underline } DIV.listCm UL.courseMenu LI A:focus { BACKGROUND-IMAGE: none; TEXT-DECORATION: underline } DIV.listCm UL.courseMenu LI A SPAN { ZOOM: 1; heigth: 1% } DIV.listCm UL.courseMenu LI.here A { PADDING-RIGHT: 16px; PADDING-LEFT: 4px; BACKGROUND: = url(images/list_bullet_single_white.gif) #999 no-repeat 98% center; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 19px; COLOR: #fff; PADDING-TOP: = 1px; TEXT-DECORATION: none; -moz-border-radius: 3px; = -webkit-border-radius: 3px } DIV.listCm UL.courseMenu LI.here A:hover { PADDING-RIGHT: 16px; PADDING-LEFT: 4px; BACKGROUND: = url(images/list_bullet_single_white.gif) #999 no-repeat 98% center; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 19px; COLOR: #fff; PADDING-TOP: = 1px; TEXT-DECORATION: none; -moz-border-radius: 3px; = -webkit-border-radius: 3px } DIV.listCm UL.courseMenu LI.here A:focus { PADDING-RIGHT: 16px; PADDING-LEFT: 4px; BACKGROUND: = url(images/list_bullet_single_white.gif) #999 no-repeat 98% center; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 19px; COLOR: #fff; PADDING-TOP: = 1px; TEXT-DECORATION: none; -moz-border-radius: 3px; = -webkit-border-radius: 3px } DIV.listCm UL.courseMenu LI.here A.cmimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: transparent } DIV.listCm UL.courseMenu LI.here A.cmimg:hover { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: transparent } DIV.listCm H3 { PADDING-RIGHT: 9px; BORDER-TOP: 1px solid; PADDING-LEFT: 9px; = FONT-SIZE: 100%; PADDING-BOTTOM: 1px; MARGIN: 0px 0px 0px 14px; = PADDING-TOP: 3px; HEIGHT: 1% } .navPalette UL LI.subhead H3 A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: = transparent; TEXT-DECORATION: none } .navPalette UL LI.subhead H3 A:hover { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: = transparent; TEXT-DECORATION: none } DIV.listCm UL.courseMenu LI.divider { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; PADDING-BOTTOM: 0px; WIDTH: = 162px; LINE-HEIGHT: 1%; PADDING-TOP: 9px; POSITION: relative; HEIGHT: = 2px } DIV.listCm UL.courseMenu LI.divider HR { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; MARGIN: 0px; VERTICAL-ALIGN: middle; LINE-HEIGHT: 1%; POSITION: = relative; TOP: -9px; HEIGHT: 2px; BACKGROUND-COLOR: #ccc; = BORDER-RIGHT-WIDTH: 0px } DIV.listCm UL.courseMenu LI.collapsed { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; PADDING-BOTTOM: 3px; = LINE-HEIGHT: 1px; PADDING-TOP: 3px; HEIGHT: 2px } DIV.listCm UL.courseMenu LI.collapsed HR { MARGIN: 0px; POSITION: relative; TOP: 0px } DIV.listCm UL.courseMenu LI.invisible A { COLOR: #777; MARGIN-RIGHT: 0px } UL.tree A SPAN.cmLink-hidden { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } UL.tree A SPAN.cmLink-empty { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } LI.invisible A SPAN.cmLink-hidden { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } LI.invisible A SPAN.cmLink-empty { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } LI.invisible SPAN.cmLink-hidden { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } LI.invisible SPAN.cmLink-empty { MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: middle } UL.tree A SPAN.cmLink-hidden IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } UL.tree A SPAN.cmLink-empty IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } LI.invisible A SPAN.cmLink-hidden IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } LI.invisible A SPAN.cmLink-empty IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } LI.invisible SPAN.cmLink-hidden IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } LI.invisible SPAN.cmLink-empty IMG { FILTER: alpha(opacity=3D0); WIDTH: 11px; HEIGHT: 11px; opacity: 0 } UL.tree A SPAN.cmLink-empty { DISPLAY: inline; BACKGROUND: url(images/empty_link.gif) no-repeat 0px = 0px } LI.invisible A SPAN.cmLink-empty { DISPLAY: inline; BACKGROUND: url(images/empty_link.gif) no-repeat 0px = 0px } LI.invisible SPAN.cmLink-empty { DISPLAY: inline; BACKGROUND: url(images/empty_link.gif) no-repeat 0px = 0px } UL.tree A SPAN.cmLink-hidden { DISPLAY: inline-block; BACKGROUND: url(images/hidden_link.gif) = no-repeat 0px 0px } LI.invisible A SPAN.cmLink-hidden { DISPLAY: inline-block; BACKGROUND: url(images/hidden_link.gif) = no-repeat 0px 0px } LI.invisible SPAN.cmLink-hidden { DISPLAY: inline-block; BACKGROUND: url(images/hidden_link.gif) = no-repeat 0px 0px } DIV.listCm UL.courseMenu LI INPUT { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; BACKGROUND: = #f0f0f0; MARGIN-LEFT: 18px; BORDER-LEFT: #666 1px solid; WIDTH: 120px; = BORDER-BOTTOM: #666 1px solid } DIV.listCm UL.courseMenu LI INPUT[type=3D'text'] { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; BACKGROUND: = #f0f0f0; MARGIN-LEFT: 18px; BORDER-LEFT: #666 1px solid; WIDTH: 120px; = BORDER-BOTTOM: #666 1px solid } DIV.renameCourseToc INPUT { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; BACKGROUND: = #f0f0f0; MARGIN-LEFT: 18px; BORDER-LEFT: #666 1px solid; WIDTH: 120px; = BORDER-BOTTOM: #666 1px solid } DIV.renameCourseToc INPUT { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; BACKGROUND: = #f0f0f0; MARGIN-LEFT: 18px; BORDER-LEFT: #666 1px solid; WIDTH: 120px; = BORDER-BOTTOM: #666 1px solid } DIV.renameCourseToc INPUT { MARGIN-LEFT: 0px } DIV.listCm UL.courseMenu LI A.microControl { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: = inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 0px 2px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px } DIV.renameCourseToc A.microControl { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: = inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 0px 2px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px } DIV.listCm UL.courseMenu LI A.save { BACKGROUND: url(images/micro_save.gif) no-repeat 0px 0px } DIV.renameCourseToc A.save { BACKGROUND: url(images/micro_save.gif) no-repeat 0px 0px } DIV.listCm UL.courseMenu LI A.cancel { BACKGROUND: url(images/micro_cancel.gif) no-repeat 0px 0px } DIV.renameCourseToc A.cancel { BACKGROUND: url(images/micro_cancel.gif) no-repeat 0px 0px } DIV.listCm UL.courseMenu LI A.microControl IMG { WIDTH: 12px; HEIGHT: 12px } DIV.renameCourseToc A.microControl IMG { WIDTH: 12px; HEIGHT: 12px } DIV.listCm UL.courseMenu LI SPAN.reorder { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/cm_reorder_updown.gif) #eee no-repeat center center; FILTER: = alpha(opacity=3D100); LEFT: -2px; PADDING-BOTTOM: 0px; WIDTH: 16px; = CURSOR: move; PADDING-TOP: 0px; POSITION: absolute; TOP: 2px; HEIGHT: = 18px; opacity: 1; -moz-border-radius-topleft: 2px; = -moz-border-radius-bottomleft: 3px } DIV.listCm UL.courseMenu LI.subhead SPAN.reorder { TOP: 4px } DIV.controlpanel H2 { BACKGROUND-COLOR: #8192a8 } DIV.controlpanel DIV.topRound B { BACKGROUND-COLOR: #8192a8 } DIV.controlpanel UL { BACKGROUND-COLOR: #a8beda } DIV.controlpanel DIV.bottomRound B { BACKGROUND-COLOR: #a8beda } DIV.controlpanel UL LI:first-child { MARGIN-TOP: 0px } DIV.controlpanel UL LI { MARGIN-TOP: -1px } DIV.controlpanel UL LI A { COLOR: #292e36; BORDER-TOP-COLOR: #94a8c1 } DIV.controlpanel UL LI A:hover { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A:focus { BACKGROUND-COLOR: #e3efff } DIV.controlpanel A.submenuLink { BORDER-LEFT-COLOR: #94a8c1; BORDER-BOTTOM-COLOR: #94a8c1; = BORDER-TOP-COLOR: #94a8c1; BACKGROUND-COLOR: #a8beda; = BORDER-RIGHT-COLOR: #94a8c1 } DIV.controlpanel A.submenuLink_active { BORDER-LEFT-COLOR: #94a8c1; BORDER-BOTTOM-COLOR: #94a8c1; = BORDER-TOP-COLOR: #94a8c1; BACKGROUND-COLOR: #a8beda; = BORDER-RIGHT-COLOR: #94a8c1 } DIV.controlpanel UL LI A.submenuLink_active { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A.submenuLink:hover { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A.submenuLink_active:hover { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A.submenuLink:focus { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI A.submenuLink_active:focus { BACKGROUND-COLOR: #e3efff } DIV.controlpanel A.comboLink { BACKGROUND-IMAGE: url(images/more_options_white.gif) } DIV.controlpanel A.comboLink_active { FONT-WEIGHT: bold } DIV.tools A.comboLink_active { FONT-WEIGHT: bold } DIV.controlpanel UL LI H3 A.open:hover { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI H3 A.comboLink_active { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI H3 A.open { FONT-WEIGHT: bold; BACKGROUND-COLOR: #e3efff } DIV.tools UL { BACKGROUND-COLOR: #ededed } DIV.tools DIV.bottomRound B { BACKGROUND-COLOR: #ededed } DIV.pickerMenu UL { BACKGROUND-COLOR: #ededed } DIV.explore UL { BACKGROUND-COLOR: #ededed } DIV.explore DIV.bottomRound B { BACKGROUND-COLOR: #ededed } DIV.tools UL LI H3 A { BACKGROUND: url(images/more_options.gif) no-repeat 4px 7px; COLOR: = #444; BORDER-TOP-COLOR: #ddd; ZOOM: 1 } DIV.pickerMenu UL LI H3 A { BACKGROUND: url(images/more_options.gif) no-repeat 4px 7px; COLOR: = #444; BORDER-TOP-COLOR: #ddd; ZOOM: 1 } DIV.tools UL LI H3 A:hover { BACKGROUND: url(images/more_options.gif) #fff no-repeat 4px 7px } DIV.tools UL LI H3 A.simpleLink:hover { BACKGROUND-COLOR: #ffffff } DIV.tools UL LI H3 A.simpleLink:focus { BACKGROUND-COLOR: #ffffff } DIV.tools UL LI H3 A.open { FONT-WEIGHT: bold; BACKGROUND: url(images/less_options_dark.gif) = #ffffff no-repeat 4px 7px } DIV.tools UL LI H3 A.open:hover { BACKGROUND-IMAGE: url(images/less_options_dark.gif) } DIV.tools UL LI H3 A.open:focus { BACKGROUND-IMAGE: url(images/less_options_dark.gif) } DIV.tools UL LI A.submenuLink { BACKGROUND: url(images/list_bullet_dark.gif) no-repeat center center; = BORDER-LEFT: #bbb 1px solid } DIV.tools UL LI A.submenuLink_active { BACKGROUND: url(images/list_bullet_dark.gif) no-repeat center center; = BORDER-LEFT: #bbb 1px solid } DIV.tools UL LI A.submenuLink:hover { BACKGROUND: url(images/list_bullet.gif) #ffffff no-repeat center center } DIV.tools UL LI A.submenuLink_active:hover { BACKGROUND: url(images/list_bullet.gif) #ffffff no-repeat center center } DIV.tools UL LI A.submenuLink:focus { BACKGROUND: url(images/list_bullet.gif) #ffffff no-repeat center center } DIV.tools UL LI A.submenuLink_active:focus { BACKGROUND: url(images/list_bullet.gif) #ffffff no-repeat center center } DIV.tools UL LI A.submenuLink_active { BACKGROUND: url(images/list_bullet_dark.gif) #ffffff no-repeat center = center } DIV.pickerMenu { LEFT: 14px; MARGIN: 0px; WIDTH: 150px; POSITION: absolute; TOP: 0px } DIV.pickerMenu UL LI H3 A { BACKGROUND-IMAGE: none } DIV.pickerMenu UL LI H3 A.simpleLink { BACKGROUND-IMAGE: none } DIV.pickerMenu UL LI H3 A.open { BACKGROUND: url(images/list_bullet.gif) #fff no-repeat 97% center } DIV.pickerMenu UL LI H3 A:hover { BACKGROUND: url(images/list_bullet.gif) #fff no-repeat 97% center } DIV.pickerMenu UL LI H3 A:focus { BACKGROUND: url(images/list_bullet.gif) #fff no-repeat 97% center } DIV.myPlaces UL { BACKGROUND-COLOR: #fff } DIV.myPlaces DIV.bottomRound B { BACKGROUND-COLOR: #fff } DIV.singleControl A { PADDING-RIGHT: 9px; BORDER-TOP: medium none; PADDING-LEFT: 9px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; ZOOM: 1; = BACKGROUND-COLOR: #a8beda; TEXT-ALIGN: center } DIV.discover A { PADDING-RIGHT: 9px; BORDER-TOP: medium none; PADDING-LEFT: 9px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; ZOOM: 1; = BACKGROUND-COLOR: #a8beda; TEXT-ALIGN: center } DIV.discover A { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: = 105%; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.singleControl A:hover { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.discover A:hover { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.singleControl A:hover { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.singleControl A:focus { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.singleControl A:focus { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.discover A:focus { BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #e3efff } DIV.discover A IMG { MARGIN: -1px 3px 0px 0px } DIV.myPlaces UL LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 22px; PADDING-BOTTOM: 3px; BORDER-LEFT: 0px; COLOR: #003399; = PADDING-TOP: 3px; BORDER-BOTTOM: 0px; BACKGROUND-COLOR: transparent } DIV.myPlaces UL LI A:hover { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 22px; PADDING-BOTTOM: 3px; BORDER-LEFT: 0px; COLOR: #003399; = PADDING-TOP: 3px; BORDER-BOTTOM: 0px; BACKGROUND-COLOR: transparent } DIV.myPlaces UL LI A:focus { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 22px; PADDING-BOTTOM: 3px; BORDER-LEFT: 0px; COLOR: #003399; = PADDING-TOP: 3px; BORDER-BOTTOM: 0px; BACKGROUND-COLOR: transparent } DIV.myPlaces UL LI A:hover { TEXT-DECORATION: underline } DIV.myPlaces UL LI A:focus { TEXT-DECORATION: underline } DIV.myPlaces UL LI A.home { PADDING-RIGHT: 20px; BORDER-BOTTOM: #ddd 1px solid } DIV.myPlaces UL LI SPAN.homeIconWrap { RIGHT: 3px; BACKGROUND: url(/images/ci/icons/clphomepage/home_ti.gif) = no-repeat 0px 0px; POSITION: absolute; TOP: 3px } DIV.myPlaces UL LI SPAN.homeIconWrap IMG { WIDTH: 16px; HEIGHT: 16px } DIV.explore UL.parents LI A { BACKGROUND-POSITION: 7px 6px; PADDING-LEFT: 20px; BACKGROUND-IMAGE: = url(images/list_bullet_up.gif); BACKGROUND-REPEAT: no-repeat; = BACKGROUND-COLOR: #ededed } DIV.explore H4 { PADDING-RIGHT: 9px; BORDER-TOP: #999 2px solid; PADDING-LEFT: 9px; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; BACKGROUND-COLOR: = #fff } DIV.explore H4 A { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; COLOR: #000; PADDING-TOP: = 3px; TEXT-DECORATION: none } DIV.explore H4 A:hover { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; COLOR: #000; PADDING-TOP: = 3px; TEXT-DECORATION: none } DIV.explore H4 A { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; COLOR: #000; PADDING-TOP: = 3px; TEXT-DECORATION: none } DIV.explore H4 A:focus { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; COLOR: #000; PADDING-TOP: = 3px; TEXT-DECORATION: none } DIV.explore UL.submenu { BACKGROUND-COLOR: #fff } DIV.explore DIV.bottomRound B { BACKGROUND-COLOR: #fff } LI A.unit { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.course { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.ee { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.program { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.workspace { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 3px 3px; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; LIST-STYLE-TYPE: none } LI A.unit { BACKGROUND-IMAGE: url(/images/ci/icons/clp_unit_ti.gif) } LI A.unit:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_unit_ti.gif) } LI A.course { BACKGROUND-IMAGE: url(/images/ci/icons/clp_course_ti.gif) } LI A.course:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_course_ti.gif) } LI A.ee { BACKGROUND-IMAGE: url(/images/ci/icons/clp_ee_ti.gif) } LI A.ee:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_ee_ti.gif) } LI A.program { BACKGROUND-IMAGE: url(/images/ci/icons/clp_program_ti.gif) } LI A.program:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_program_ti.gif) } LI A.workspace { BACKGROUND-IMAGE: url(/images/ci/icons/clp_workspace_ti.gif) } LI A.workspace:hover { BACKGROUND-IMAGE: url(/images/ci/icons/clp_workspace_ti.gif) } DIV.navPalette UL LI UL.submenu { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-SIZE: 85%; PADDING-BOTTOM: = 9px; MARGIN: 0px; PADDING-TOP: 2px } DIV.explore UL.submenu { FONT-SIZE: 90%; MARGIN: 2px 6px 0px 20px } DIV.controlpanel UL LI UL.submenu { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI UL.submenu LI UL { BACKGROUND-COLOR: #e3efff } DIV.controlpanel UL LI UL.submenu LI { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND-IMAGE: = none; MARGIN: 0px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } DIV.controlpanel UL LI UL.submenu LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: = 2px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: 2px; BORDER-BOTTOM: 0px } DIV.explore UL LI UL.submenu LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: = 2px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: 2px; BORDER-BOTTOM: 0px } DIV.explore UL.submenu LI A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; COLOR: = #003366; PADDING-TOP: 2px } DIV.explore UL.submenu LI SPAN.emptyMsg { COLOR: #777 } DIV.controlpanel UL LI UL.submenu LI A:hover { PADDING-RIGHT: 9px; PADDING-LEFT: 6px; BACKGROUND: = url(images/list_bullet_single.gif) #fff no-repeat 99% center; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } DIV.controlpanel UL LI UL.submenu LI A.here { PADDING-RIGHT: 9px; PADDING-LEFT: 6px; BACKGROUND: = url(images/list_bullet_single.gif) #fff no-repeat 99% center; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } DIV.controlpanel UL LI UL.submenu LI A:focus { PADDING-RIGHT: 9px; PADDING-LEFT: 6px; BACKGROUND: = url(images/list_bullet_single.gif) #fff no-repeat 99% center; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } DIV.explore UL.submenu LI A:hover { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } DIV.explore UL.submenu LI A:focus { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } UL.submenu LI UL LI { PADDING-LEFT: 12px; HEIGHT: 1% } DIV.tools UL.submenu { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 2px 9px 0px; PADDING-TOP: 0px } UL.submenu { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 2px 9px 0px; PADDING-TOP: 0px } DIV.tools UL.submenu LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; BACKGROUND: #fff; PADDING-BOTTOM: 2px; MARGIN: 0px; BORDER-LEFT: = 0px; PADDING-TOP: 2px; BORDER-BOTTOM: 0px } UL.submenu LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; BACKGROUND: #fff; PADDING-BOTTOM: 2px; MARGIN: 0px; BORDER-LEFT: = 0px; PADDING-TOP: 2px; BORDER-BOTTOM: 0px } DIV.tools UL.submenu LI A:hover { BACKGROUND: url(images/list_bullet_single.gif) #f6f6f6 no-repeat 99% = center } UL.submenu LI A:hover { BACKGROUND: url(images/list_bullet_single.gif) #f6f6f6 no-repeat 99% = center } DIV.tools UL.submenu LI A:hover { BACKGROUND: url(images/list_bullet_single.gif) #f6f6f6 no-repeat 99% = center } UL.submenu LI A:focus { BACKGROUND: url(images/list_bullet_single.gif) #f6f6f6 no-repeat 99% = center } DIV.navPalette DIV.topRound { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.navPalette DIV.bottomRound { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.navPalette DIV.topRound B { DISPLAY: block; OVERFLOW: hidden } DIV.navPalette DIV.bottomRound B { DISPLAY: block; OVERFLOW: hidden } DIV.navPalette DIV.topRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } DIV.navPalette DIV.bottomRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } DIV.navPalette DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } DIV.navPalette DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } DIV.navPalette DIV.topRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.navPalette DIV.bottomRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } DIV.navPalette DIV.topRound B { BACKGROUND-COLOR: #949494 } DIV.tools DIV.topRound B { BACKGROUND-COLOR: #949494 } DIV.myPlaces DIV.bottomRound B { BACKGROUND-COLOR: #fff } DIV.explore DIV.bottomRound B { BACKGROUND-COLOR: #fff } DIV.listCm DIV.topRound B { BACKGROUND-COLOR: #fff1c5 } DIV.buttonCm DIV.topRound B { BACKGROUND-COLOR: #fff1c5 } DIV.treeContainer DIV.topRound B { BACKGROUND-COLOR: #fff1c5 } DIV.treeViewCs DIV.topRound B { BACKGROUND-COLOR: #fff1c5 } DIV.listCm DIV.bottomRound B { BACKGROUND-COLOR: #ffffff } DIV.buttonCm DIV.bottomRound B { BACKGROUND-COLOR: #ffffff } DIV.treeContainer DIV.bottomRound B { BACKGROUND-COLOR: #ffffff } DIV.tools DIV.bottomRound B { BACKGROUND-COLOR: #ededed } DIV.pickerMenu DIV.topRound B { BACKGROUND-COLOR: #ededed } DIV.pickerMenu DIV.bottomRound B { BACKGROUND-COLOR: #ededed } DIV.singleControl DIV.topRound B { BACKGROUND-COLOR: #a8beda } DIV.singleControl DIV.bottomRound B { BACKGROUND-COLOR: #a8beda } DIV.discover DIV.topRound B { BACKGROUND-COLOR: #a8beda } DIV.discover DIV.bottomRound B { BACKGROUND-COLOR: #a8beda } DIV.navPaletteCol DIV.listCmCol B { BACKGROUND: #949494 } DIV.navPaletteCol DIV.bottomRound B { BACKGROUND: #949494 } DIV.navPaletteCol DIV.topRound B { BACKGROUND: #949494 } DIV.controlpanel DIV.topRound B { BACKGROUND-COLOR: #8192a8 } DIV.navPaletteCol DIV.controlpanelCol B { BACKGROUND-COLOR: #8192a8 } DIV.treeContainer UL.tree { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; PADDING-BOTTOM: 9px; MARGIN: = 0px; PADDING-TOP: 3px; LIST-STYLE-TYPE: none } UL.tree { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; PADDING-BOTTOM: 9px; MARGIN: = 0px; PADDING-TOP: 3px; LIST-STYLE-TYPE: none } DIV.treeContainer UL.tree UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 0px 18px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.tree UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 0px 18px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.listCm DIV.treeContainer UL.tree { OVERFLOW-X: auto } DIV.treeContainer UL.tree LI H3 + UL { PADDING-RIGHT: 0px; PADDING-LEFT: 9px; OVERFLOW-X: auto; = PADDING-BOTTOM: 9px; MARGIN: 0px; OVERFLOW: hidden; PADDING-TOP: 0px; = ZOOM: 1; POSITION: relative } DIV.treeContainer UL.tree LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(/images/ci/icons/nlstree/line.gif) repeat-y 0px 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; WHITE-SPACE: nowrap } UL.tree LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(/images/ci/icons/nlstree/line.gif) repeat-y 0px 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; WHITE-SPACE: nowrap } DIV.treeContainer UL.tree LI.last { BACKGROUND-IMAGE: none } UL.tree LI.last { BACKGROUND-IMAGE: none } DIV.treeContainer UL.tree LI.here A { BACKGROUND-COLOR: #ededed } UL.tree LI.here A { BACKGROUND-COLOR: #ededed } DIV.treeContainer UL.tree LI A { PADDING-RIGHT: 3px; BORDER-TOP: medium none; DISPLAY: inline; = PADDING-LEFT: 0px; FONT-SIZE: 95%; BACKGROUND: none transparent scroll = repeat 0% 0%; PADDING-BOTTOM: 2px; PADDING-TOP: 2px } UL.tree LI A { PADDING-RIGHT: 3px; BORDER-TOP: medium none; DISPLAY: inline; = PADDING-LEFT: 0px; FONT-SIZE: 95%; BACKGROUND: none transparent scroll = repeat 0% 0%; PADDING-BOTTOM: 2px; PADDING-TOP: 2px } DIV.treeContainer UL.tree LI A.open_folder { PADDING-RIGHT: 3px; BORDER-TOP: medium none; DISPLAY: inline; = PADDING-LEFT: 0px; FONT-SIZE: 95%; BACKGROUND: #ebeffa; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } DIV.treeContainer UL.tree LI A.exp { PADDING-RIGHT: 21px; PADDING-LEFT: 0px; BACKGROUND: = url(/images/ci/icons/nlsTree/folder.gif) no-repeat 18px 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } DIV.treeContainer UL.tree LI A.collapse { PADDING-RIGHT: 21px; PADDING-LEFT: 0px; BACKGROUND: = url(/images/ci/icons/nlsTree/folderopen.gif) no-repeat 18px 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } DIV.treeContainer H3.treehead { PADDING-RIGHT: 0px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 8px 0px 2px; PADDING-TOP: 0px } DIV.treeContainer H3.first { MARGIN: 0px 0px 2px } DIV#userTreeDiv { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.treeContainer UL.tree LI.subhead { BACKGROUND-IMAGE: none; MARGIN: 0px 0px 0px -6px } DIV.treeContainer UL.tree LI.subhead H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.treeContainer UL.tree LI.subhead H3.first A { BORDER-TOP: medium none } DIV.treeContainer UL.tree LI.subhead H3 A { PADDING-RIGHT: 9px; BACKGROUND-POSITION: 3px 6px; BORDER-TOP: #ddd 1px = solid; DISPLAY: block; PADDING-LEFT: 18px; BACKGROUND-IMAGE: = url(images/less_options.gif); PADDING-BOTTOM: 3px; PADDING-TOP: 3px; = BACKGROUND-REPEAT: no-repeat; BACKGROUND-COLOR: transparent; = TEXT-DECORATION: none } DIV.treeContainer UL.tree LI.subhead:first-child { MARGIN-TOP: 0px } DIV.treeContainer UL.tree LI.subhead:first-child A { BORDER-TOP: 0px } DIV.treeContainer UL.tree LI.subhead H3.treeSubhead-collapsed A { BACKGROUND-IMAGE: url(images/more_options.gif) } DIV.shortcutViewCs UL LI A { BORDER-TOP: #ededed 1px solid; TEXT-ALIGN: center } UL.shortcuts LI A { BORDER-TOP: #ccc 1px solid; BACKGROUND: #fff; TEXT-ALIGN: center } UL.shortcuts LI A:hover { BACKGROUND: url(images/list_bullet_single.gif) #ededed no-repeat 99% = center; TEXT-ALIGN: center } UL.shortcuts LI A:focus { BACKGROUND: url(images/list_bullet_single.gif) #ededed no-repeat 99% = center; TEXT-ALIGN: center } DIV.containerPortal { PADDING-RIGHT: 5px; MIN-WIDTH: 600px; PADDING-LEFT: 5px; MIN-HEIGHT: = 400px; BACKGROUND: #e3efff; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 5px } DIV.portal DIV.container { PADDING-RIGHT: 5px; MIN-WIDTH: 600px; PADDING-LEFT: 5px; MIN-HEIGHT: = 400px; BACKGROUND: #e3efff; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 5px } .column-1 { MIN-HEIGHT: 400px; FLOAT: left; MARGIN: 6px 0px 0px; WIDTH: 100%; = HEIGHT: 400px } .column-2 { MIN-HEIGHT: 400px; FLOAT: left; MARGIN: 6px 0px 0px; WIDTH: 50%; = HEIGHT: 400px } .column-3 { MIN-HEIGHT: 400px; FLOAT: left; MARGIN: 6px 0px 0px; WIDTH: 33.3%; = HEIGHT: 400px } #moduleBody { BORDER-RIGHT: #597298 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #597298 2px solid; PADDING-LEFT: 0px; Z-INDEX: 500; PADDING-BOTTOM: 0px; = MARGIN: 0px 5px 10px; BORDER-LEFT: #597298 2px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #597298 2px solid; POSITION: relative; HEIGHT: 1%; = BACKGROUND-COLOR: #fff } #moduleBorder { BORDER-RIGHT: #597298 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #597298 2px solid; PADDING-LEFT: 0px; Z-INDEX: 500; PADDING-BOTTOM: 0px; = MARGIN: 0px 5px 10px; BORDER-LEFT: #597298 2px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #597298 2px solid; POSITION: relative; HEIGHT: 1%; = BACKGROUND-COLOR: #fff } .portlet { BORDER-RIGHT: #597298 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #597298 2px solid; PADDING-LEFT: 0px; Z-INDEX: 500; PADDING-BOTTOM: 0px; = MARGIN: 0px 5px 10px; BORDER-LEFT: #597298 2px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #597298 2px solid; POSITION: relative; HEIGHT: 1%; = BACKGROUND-COLOR: #fff } #moduleTitle { PADDING-RIGHT: 52px; BACKGROUND-POSITION: 0px center; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 5px; MARGIN: 0px; VERTICAL-ALIGN: middle; OVERFLOW: = visible; COLOR: #fff; PADDING-TOP: 4px; BACKGROUND-REPEAT: repeat-x; = POSITION: relative; BACKGROUND-COLOR: #819ac0 } .portlet H2 { PADDING-RIGHT: 52px; BACKGROUND-POSITION: 0px center; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 5px; MARGIN: 0px; VERTICAL-ALIGN: middle; OVERFLOW: = visible; COLOR: #fff; PADDING-TOP: 4px; BACKGROUND-REPEAT: repeat-x; = POSITION: relative; BACKGROUND-COLOR: #819ac0 } .portlet H2.dragHandle:hover { BACKGROUND: #597298; CURSOR: move } .portlet H2 A { PADDING-RIGHT: 12px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = VERTICAL-ALIGN: middle; COLOR: #fff; PADDING-TOP: 0px } .portlet H2 A IMG { VERTICAL-ALIGN: middle } .portlet H2 A:hover { BACKGROUND: url(images/arrow_white.gif) no-repeat right center; = TEXT-DECORATION: underline } .portlet H2 SPAN.reorder { BORDER-RIGHT: #888 1px solid; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BACKGROUND: url(images/cm_reorder.gif) #fff no-repeat center center; = FILTER: alpha(opacity=3D0); LEFT: -2px; PADDING-BOTTOM: 0px; WIDTH: = 18px; CURSOR: move; PADDING-TOP: 0px; BORDER-BOTTOM: #888 1px solid; = POSITION: absolute; TOP: -2px; HEIGHT: 18px; opacity: 0 } .portlet H2 SPAN.reorder IMG { WIDTH: 18px; HEIGHT: 20px } .portlet H2:hover SPAN.reorder { FILTER: alpha(opacity=3D80)! important; opacity: 0.8 } .portlet H2.noTitle { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: = 0px; MARGIN: 0px; VERTICAL-ALIGN: middle; CURSOR: move; PADDING-TOP: = 0px; POSITION: relative; HEIGHT: 1% } .portlet H2.noTitle:hover { BACKGROUND: #ededed; HEIGHT: 1% } DIV.edit_controls { PADDING-RIGHT: 0px; PADDING-LEFT: 4px; RIGHT: 4px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; POSITION: absolute; TOP: 2px; HEIGHT: 20px } SPAN.edit_controls { PADDING-RIGHT: 0px; PADDING-LEFT: 4px; RIGHT: 4px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; POSITION: absolute; TOP: 2px; HEIGHT: 20px } DIV.edit_controls A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none! = important; PADDING-BOTTOM: 0px; MARGIN-LEFT: 1px; PADDING-TOP: 0px; = opacity: 0.6; verical-align: top } SPAN.edit_controls A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none! = important; PADDING-BOTTOM: 0px; MARGIN-LEFT: 1px; PADDING-TOP: 0px; = opacity: 0.6; verical-align: top } DIV.edit_controls A:hover { opacity: 1 } SPAN.edit_controls A:hover { opacity: 1 } .portlet DIV.collapsible { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; MARGIN: = 0px; OVERFLOW: scroll; WIDTH: 100%; PADDING-TOP: 3px; ZOOM: 1; = BACKGROUND-COLOR: transparent } .portlet DIV.collapsible P { MARGIN: 4px 6px 6px 12px } .portlet H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px; COLOR: #597298; PADDING-TOP: = 1px; BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } #lightbox H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px; COLOR: #597298; PADDING-TOP: = 1px; BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .portlet DIV.portletBlock H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px; COLOR: #597298; PADDING-TOP: = 1px; BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .portlet DIV.blockContents H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px; COLOR: #597298; PADDING-TOP: = 1px; BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .portlet H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 2px; MARGIN: 4px 7px 0px; COLOR: #000; PADDING-TOP: = 1px } .portlet UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 4px = 9px 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #lightbox UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 4px = 9px 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .portlet UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; FONT-SIZE: 95%; BACKGROUND: = url(images/list_bullet_single.gif) no-repeat 5px 3px; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 2px; PADDING-TOP: 0px } #lightbox UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; FONT-SIZE: 95%; BACKGROUND: = url(images/list_bullet_single.gif) no-repeat 5px 3px; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 2px; PADDING-TOP: 0px } .portlet UL.courselist { MARGIN: 6px 6px 9px } .portlet UL.courselist LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 14px; FONT-WEIGHT: bold; = BACKGROUND: url(images/list_bullet_single.gif) no-repeat 4px 5px; = PADDING-BOTTOM: 0px; MARGIN: 0px 0px 6px; PADDING-TOP: 0px } .portlet UL.courselist LI A { FONT-SIZE: 110% } .portlet UL.courselist LI A:hover { TEXT-DECORATION: underline } .portlet UL.courselist LI P { FONT-WEIGHT: normal; FONT-SIZE: 90%; MARGIN: 4px } .portlet UL.scholar { MARGIN: 2px 6px } .portlet UL.scholar LI { PADDING-RIGHT: 6px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 24px; = BACKGROUND: url(images/small_scholar.gif) no-repeat 0px 6px; = MARGIN-BOTTOM: 4px; PADDING-BOTTOM: 4px; PADDING-TOP: 6px } .portlet UL.scholar LI:first-child { BORDER-TOP: medium none } UL.tagcloud { PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; PADDING-BOTTOM: 0pt; MARGIN: 4px = 6px 12px; PADDING-TOP: 0pt } UL.tagcloud LI { PADDING-RIGHT: 3px; DISPLAY: inline; PADDING-LEFT: 3px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; MARGIN: 0pt; = VERTICAL-ALIGN: baseline; PADDING-TOP: 3px; LIST-STYLE-TYPE: none } LI.freq1 A { FONT-SIZE: 90% } LI.freq2 A { FONT-SIZE: 105% } LI.freq3 A { FONT-SIZE: 120% } LI.freq4 A { FONT-SIZE: 135% } LI.freq5 A { FONT-SIZE: 155% } LI.freq6 A { FONT-SIZE: 165% } LI.freq7 A { FONT-SIZE: 175% } LI.freq8 A { FONT-SIZE: 195% } .portletHelp { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 2px; MARGIN: 4px 7px; COLOR: #688ba8; PADDING-TOP: 1px } .portlet FIELDSET { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 9px; PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 6px; BORDER-BOTTOM: 0px } .portlet FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } DIV.portlet FIELDSET A.browse { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 90%; PADDING-BOTTOM: = 1px; COLOR: #666; PADDING-TOP: 1px } DIV.portlet FIELDSET LABEL { DISPLAY: block } DIV.portlet INPUT[type=3D'text'] { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: 0px; MARGIN: = 1px 0px; VERTICAL-ALIGN: middle; BORDER-LEFT: #999 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #999 1px solid } DIV.portlet SELECT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: 0px; MARGIN: = 1px 0px; VERTICAL-ALIGN: middle; BORDER-LEFT: #999 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #999 1px solid } DIV.portlet INPUT[type=3D'button'] { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-SIZE: 90%; BACKGROUND: #ddd; = PADDING-BOTTOM: 0px; MARGIN: 1px 0px; VERTICAL-ALIGN: baseline; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #999 1px = solid } DIV.portlet INPUT[type=3D'button']:hover { BORDER-RIGHT: #999 1px solid; BORDER-TOP: #999 1px solid; FONT-SIZE: = 90%; BACKGROUND: #fff; BORDER-LEFT: #999 1px solid; BORDER-BOTTOM: #999 = 1px solid } .portlet UL LI DIV.location { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 0px; COLOR: #999; PADDING-TOP: 0px } .portlet_cust UL LI DIV.location { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 0px; COLOR: #999; PADDING-TOP: 0px } .portlet UL LI A { =09 } .portlet UL LI SPAN.post_date { FLOAT: right; MARGIN-LEFT: 3px; COLOR: #999 } .portlet UL LI SPAN.info_byline { FLOAT: right; MARGIN-LEFT: 3px; COLOR: #999 } .portlet UL LI SPAN.time { FLOAT: right; MARGIN-LEFT: 3px; COLOR: #999 } .portlet UL.disc LI SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; FLOAT: right; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } .portlet UL.portletTabs { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #ededed; = PADDING-BOTTOM: 0px; MARGIN: 0px 6px; PADDING-TOP: 4px; BORDER-BOTTOM: = #ccc 1px solid; LIST-STYLE-TYPE: none } .portlet UL.portletTabs LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; BACKGROUND-IMAGE: = none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .portlet UL.portletTabs LI A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; FONT-SIZE: = 90%; BACKGROUND-IMAGE: none; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; = TEXT-DECORATION: none } .portlet UL.portletTabs LI A:hover { TEXT-DECORATION: underline } .portlet UL.portletTabs LI.active { POSITION: relative; TOP: 1px } .portlet UL.portletTabs LI.active A { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; FONT-WEIGHT: = bold; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: medium none; = BACKGROUND-COLOR: #fff } .portlet DIV.tabbedPortlet { BACKGROUND: #ededed; PADDING-TOP: 9px } .portlet DIV.portletTabBlock { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: medium = none; PADDING-LEFT: 0px; BACKGROUND: #fff; PADDING-BOTTOM: 6px; MARGIN: = 0px 6px 6px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 6px; = BORDER-BOTTOM: #ccc 1px solid } .blockContents { BACKGROUND: #fff; MARGIN: 2px 0px } .portlet DIV.portletBlock { BORDER-RIGHT: #888 1px solid; BORDER-TOP: #888 1px solid; FONT-SIZE: = 100%; BACKGROUND: #fff; MARGIN: 9px 9px 0px; BORDER-LEFT: #888 1px = solid; BORDER-BOTTOM: #888 1px solid } .portlet DIV.portletBlock H4 { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px } .portlet DIV.portletBlock H4.blockTitle { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px } .portlet DIV.portletBlock H4 A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 9px; FONT-SIZE: 110%; BACKGROUND: #f1f1f1; PADDING-BOTTOM: = 4px; MARGIN: 0px; BORDER-LEFT: 0px; COLOR: #444; PADDING-TOP: 4px; = BORDER-BOTTOM: 0px; LETTER-SPACING: 0px; TEXT-DECORATION: none } .portlet DIV.portletBlock H4.blockTitle A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 9px; FONT-SIZE: 110%; BACKGROUND: #f1f1f1; PADDING-BOTTOM: = 4px; MARGIN: 0px; BORDER-LEFT: 0px; COLOR: #444; PADDING-TOP: 4px; = BORDER-BOTTOM: 0px; LETTER-SPACING: 0px; TEXT-DECORATION: none } .portlet DIV.portletBlock H4 A:hover { BACKGROUND: #eee } .portlet DIV.portletBlock H4.blockTitle A:hover { BACKGROUND: #eee } .portlet DIV.portletBlock H4 A SPAN { FONT-WEIGHT: normal; COLOR: #ddd } .portlet DIV.portletBlock H4.blockTitle A SPAN { FONT-WEIGHT: normal; COLOR: #ddd } .portlet UL.subCategories { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.blockGroups { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .portlet DIV.portletBlock UL.subCategories LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } UL.blockGroups LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .portlet UL.subCategories LI A { PADDING-RIGHT: 16px; BORDER-TOP: #777 1px solid; DISPLAY: block; = PADDING-LEFT: 16px; FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 3px center; = PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #597298; PADDING-TOP: 4px; = LETTER-SPACING: 1px; TEXT-DECORATION: none } UL.blockGroups LI A.itemHead { PADDING-RIGHT: 16px; BORDER-TOP: #777 1px solid; DISPLAY: block; = PADDING-LEFT: 16px; FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 3px center; = PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #597298; PADDING-TOP: 4px; = LETTER-SPACING: 1px; TEXT-DECORATION: none } UL.blockGroups LI A.itemHead:hover { BACKGROUND-COLOR: #e3efff; TEXT-DECORATION: underline } UL.blockGroups LI A.itemHeadOpen { BACKGROUND: url(images/less_options_dark.gif) #fff no-repeat 3px center } UL.blockGroups LI A.itemHeadOpen:hover { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } .portlet UL.subCategories LI:first-child A { BORDER-TOP: medium none } UL.blockGroups LI:first-child A { BORDER-TOP: medium none } .portlet UL.subCategories LI A:hover { FILTER: alpha(opacity=3D100); BACKGROUND-COLOR: #fff; opacity: 1 } UL.blockGroups LI A:hover { FILTER: alpha(opacity=3D100); BACKGROUND-COLOR: #fff; opacity: 1 } .portlet UL.subCategories LI A SPAN { FONT-WEIGHT: normal; COLOR: #777 } UL.blockGroups LI A SPAN { FONT-WEIGHT: normal; COLOR: #777 } .portlet UL.itemGroup LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: = inline; PADDING-LEFT: 0px; FONT-WEIGHT: bold; PADDING-BOTTOM: 0px; = BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; = BACKGROUND-COLOR: transparent } UL.blockGroups LI UL.itemGroups LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: = inline; PADDING-LEFT: 0px; FONT-WEIGHT: bold; PADDING-BOTTOM: 0px; = BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; = BACKGROUND-COLOR: transparent } .portlet UL.itemGroup LI A:hover { TEXT-DECORATION: underline } UL.itemGroups LI A:hover { TEXT-DECORATION: underline } UL.itemGroups LI UL.items { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 2px } UL.blockGroups LI UL.itemGroups LI A { FONT-WEIGHT: normal } UL.itemGroups LI UL.items LI A { FONT-WEIGHT: normal } .portlet DIV.portletBlock H3 { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 100%; PADDING-BOTTOM: = 0px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none; LETTER-SPACING: 0px } .portlet DIV.portletBlock H3 A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 99% center; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; TEXT-DECORATION: = none } .portlet DIV.portletBlock H3 A:hover { TEXT-DECORATION: underline } .portlet DIV.portletBlock:first-child H3 A { BORDER-TOP: medium none } .portlet DIV.portletBlock H3 A.open { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = url(images/less_options.gif) #e3efff no-repeat 99% center; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; TEXT-DECORATION: = none } .portlet UL.objectList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .portletBlock UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .blockContents UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } UL.memberList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .portlet .blockContents UL LI UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .portlet .blockContents UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .portlet UL LI UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } #portalPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 3px 14px 0px; = WIDTH: auto; PADDING-TOP: 0px } DIV.portalPane { PADDING-RIGHT: 0px; MIN-WIDTH: auto; DISPLAY: block; PADDING-LEFT: 0px; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 3px 14px 0px; = WIDTH: auto; PADDING-TOP: 0px } .imgWrapper { MARGIN: 6px auto; OVERFLOW: scroll; WIDTH: 100%; TEXT-ALIGN: center } .imgWrapper IMG { HEIGHT: 1% } DIV.eudModule { BORDER-RIGHT: #f9f9f9 0px solid; PADDING-RIGHT: 0px; = BACKGROUND-POSITION: 50% 50%; BORDER-TOP: #f9f9f9 1px solid; = PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: = 0px; BORDER-LEFT: #f9f9f9 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: = #f9f9f9 0px solid; BACKGROUND-COLOR: #ededed } DIV.eudModule DIV.eudModule-inner { OVERFLOW-Y: auto; MIN-HEIGHT: 250px; MAX-HEIGHT: 500px; BORDER-BOTTOM: = medium none } DIV.moduleActions { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 0px; = PADDING-TOP: 10px } .portlet UL.memberList { MARGIN: 0px 0px 5px } UL.itemGroups LI UL.itemGroups { MARGIN-BOTTOM: 4px; MARGIN-LEFT: 0px } .portlet UL.blockGroups LI { FONT-SIZE: 100% } .portlet UL.blockGroups LI UL LI A.cmimg { ZOOM: 1; POSITION: static! important } SPAN.itemHead A.cmimg { ZOOM: 1; POSITION: static! important } .portlet UL.itemGroups LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 7px; WIDTH: 100%; LINE-HEIGHT: 120%; PADDING-TOP: 0px } .portlet UL.memberList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = MARGIN-LEFT: 14px! important; PADDING-TOP: 0px } .portlet SPAN.course { DISPLAY: block; FONT-SIZE: 85% } .portlet UL.memberList { DISPLAY: block; FONT-SIZE: 85% } .portlet SPAN.refresh { DISPLAY: block; FONT-SIZE: 85% } .portlet SPAN A { COLOR: #777 } .portlet SPAN.noIndent { MARGIN-LEFT: 0px! important } .portlet .whatsNew SPAN.course { MARGIN-LEFT: 0px! important } .portlet SPAN.course { MARGIN-LEFT: 0px! important } .portlet UL.hierarchyList { MARGIN-LEFT: 22px } .portlet UL.hierarchyList LI { BORDER-RIGHT: transparent 1px solid; BORDER-TOP: transparent 1px solid; = OVERFLOW-X: visible; BORDER-LEFT: transparent 1px solid; TEXT-INDENT: = -18px; BORDER-BOTTOM: transparent 1px solid } .portlet UL.hierarchyList LI * { TEXT-INDENT: 0px } .portlet UL.hierarchyList LI.childless { TEXT-INDENT: 0px } .portlet UL LI UL LI SPAN.warning { DISPLAY: inline; FONT-SIZE: 85%; COLOR: #777777; WHITE-SPACE: nowrap } .portlet UL LI UL LI SPAN.due { DISPLAY: inline; FONT-SIZE: 85%; COLOR: #777777; WHITE-SPACE: nowrap } .portlet UL LI UL LI SPAN.newItemCount { DISPLAY: inline; FONT-SIZE: 85%; COLOR: #777777; WHITE-SPACE: nowrap } .portlet UL LI UL LI SPAN.warning { COLOR: #ff0000 } .portlet UL.memberList SPAN { FONT-SIZE: 100% } .portlet UL.memberList SPAN.newItemCount { FONT-SIZE: 100% } .portletInfoFooter { PADDING-RIGHT: 9px; MARGIN-TOP: 4px; PADDING-LEFT: 9px; FONT-SIZE: 85%; = RIGHT: 0px; PADDING-BOTTOM: 2px; COLOR: #555; BOTTOM: 2px; PADDING-TOP: = 2px; POSITION: static; TEXT-ALIGN: right } .dateSelector { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; BACKGROUND: #f1f1f1; = PADDING-BOTTOM: 4px; PADDING-TOP: 2px; BORDER-BOTTOM: #888 1px solid } UL.blockGroups LI SPAN.itemHeadOpen { BORDER-BOTTOM: #eeeeee 1px solid } UL.blockGroups LI SPAN.itemHead A:hover { BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline } P.noItems { MARGIN: 4px 6px; COLOR: #777; TEXT-ALIGN: center } #contentArea { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = MIN-HEIGHT: 400px; PADDING-BOTTOM: 12px; MARGIN: 0px; OVERFLOW: visible; = PADDING-TOP: 10px; HEIGHT: 400px; BACKGROUND-COLOR: #fff } .container { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = MIN-HEIGHT: 400px; PADDING-BOTTOM: 12px; MARGIN: 0px; OVERFLOW: visible; = PADDING-TOP: 10px; HEIGHT: 400px; BACKGROUND-COLOR: #fff } DIV.okContainer { PADDING-BOTTOM: 38px; POSITION: relative } DIV.ok DIV.container { PADDING-BOTTOM: 38px; POSITION: relative } .contentbottoml { DISPLAY: none } .contentbottomr { DISPLAY: none } .tallPara { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 40px; MARGIN: = 0px; PADDING-TOP: 40px } SPAN.errorCode { MARGIN-TOP: 24px; DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 90% } #pageHeader { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = PADDING-BOTTOM: 6px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 6px; ZOOM: = 1; BACKGROUND-COLOR: #fff1c5 } .pageTitle { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = PADDING-BOTTOM: 6px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 6px; ZOOM: = 1; BACKGROUND-COLOR: #fff1c5 } .pageTitleSmall { PADDING-RIGHT: 12px; BACKGROUND-POSITION: 0% 0%; PADDING-LEFT: 12px; = PADDING-BOTTOM: 6px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 6px; ZOOM: = 1; BACKGROUND-COLOR: #fff1c5 } .pageTitle { BORDER-BOTTOM: #eedd99 1px solid } .error .pageTitle { BACKGROUND: red } .pageTitle H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 150%; PADDING-BOTTOM: = 0px; MARGIN: 6px 0px 0px; PADDING-TOP: 0px } .pageTitleError H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 150%; PADDING-BOTTOM: = 0px; MARGIN: 6px 0px 0px; PADDING-TOP: 0px } .error .pageTitle H1 { COLOR: #fff } .pageTitleSmall H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 135%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } .customBanner { MARGIN: 0px; OVERFLOW: hidden; BACKGROUND-COLOR: transparent; = TEXT-ALIGN: center } .pageTitle #titleicon { FLOAT: left } .pageTitle H1 { FLOAT: left } .pageTitle A.cmimg { FLOAT: left } .pageTitle A.cmimg { MARGIN: 0.8em 0px 0px 6px } .pageTitle #titleicon { MARGIN: 0px 6px 0px 0px } DIV.localViewToggle + DIV.pageTitle { PADDING-TOP: 0px } H1.pageTitle { MARGIN: -11px 0px 5px; PADDING-TOP: 0px } .caliperTitle { MARGIN: -11px 0px 5px; PADDING-TOP: 0px } .discoverTitle { MARGIN: -11px 0px 5px; PADDING-TOP: 0px } .discoverTitle { POSITION: relative; TOP: -11px } .caliperTitle { POSITION: relative; TOP: -11px } .unitHomePageTitle { MARGIN: -11px -12px 5px; PADDING-TOP: 0px } .caliperTitle H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .discoverTitle H1 { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .unitHomePageTitle A.browse { FONT-WEIGHT: normal; FONT-SIZE: 60%; FLOAT: right; PADDING-BOTTOM: 1px; = MARGIN: 4px 0px 0px 6px; PADDING-TOP: 2px } .caliperTitle A.browse { FONT-WEIGHT: normal; FONT-SIZE: 60%; FLOAT: right; PADDING-BOTTOM: 1px; = MARGIN: 4px 0px 0px 6px; PADDING-TOP: 2px } .unitHomePageTitle A.browseNoImg { PADDING-BOTTOM: 3px; PADDING-TOP: 2px } DIV.helphelp { CLEAR: both; PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%; = PADDING-BOTTOM: 0px; MARGIN: 0px 0px 4px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 4px } P.helphelp { CLEAR: both; PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%; = PADDING-BOTTOM: 0px; MARGIN: 0px 0px 4px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 4px } DIV.pageTitle P { CLEAR: both; PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%; = PADDING-BOTTOM: 0px; MARGIN: 0px 0px 4px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 4px } DIV.helphelp P.helphelp { FONT-SIZE: 100% } DIV.helphelp UL { MARGIN: 6px 0px } .colophon { PADDING-RIGHT: 0px; PADDING-LEFT: 55px; FONT-SIZE: 90%; BACKGROUND: = none transparent scroll repeat 0% 0%; FLOAT: right; PADDING-BOTTOM: 3px; = MARGIN: 0px 0px 0px 14px; OVERFLOW: visible; WIDTH: 30em; PADDING-TOP: = 0px; POSITION: relative } .colophon IMG { LEFT: 0px; POSITION: absolute } .installation { FONT-SIZE: 95%; COLOR: #000; LINE-HEIGHT: 1.3em } .installation H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px } .installation H4 SPAN { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; BACKGROUND: = #888; PADDING-BOTTOM: 1px; MARGIN: 0px 0px 0px 6px; COLOR: #fff; = PADDING-TOP: 1px; WHITE-SPACE: nowrap; -moz-border-radius: 8px } .installation SPAN { FONT-WEIGHT: bold } H1 SPAN.version { FONT-SIZE: 75% } UL.containerTabs { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; BACKGROUND: = #fff; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: = #ccc 1px solid; LIST-STYLE-TYPE: none } UL.containerTabs LI { FLOAT: left; MARGIN-RIGHT: 3px; POSITION: relative; TOP: 1px } UL.containerTabs LI A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = #ededed; PADDING-BOTTOM: 6px; PADDING-TOP: 5px; TEXT-DECORATION: none } UL.containerTabs LI A:hover { BACKGROUND: #f6f6f6 } UL.containerTabs LI.active A { BORDER-RIGHT: #dcdcdc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: = #dcdcdc 1px solid; DISPLAY: block; PADDING-LEFT: 12px; FONT-WEIGHT: = bold; BACKGROUND: #ffffff; PADDING-BOTTOM: 7px; MARGIN: 0px; = BORDER-LEFT: #dcdcdc 1px solid; COLOR: #333; PADDING-TOP: 7px; = BORDER-BOTTOM: medium none; TEXT-DECORATION: none } UL.containerTabs LI.active H3 { BORDER-RIGHT: #dcdcdc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: = #dcdcdc 1px solid; DISPLAY: block; PADDING-LEFT: 12px; FONT-WEIGHT: = bold; BACKGROUND: #ffffff; PADDING-BOTTOM: 7px; MARGIN: 0px; = BORDER-LEFT: #dcdcdc 1px solid; COLOR: #333; PADDING-TOP: 7px; = BORDER-BOTTOM: medium none; TEXT-DECORATION: none } DIV.mapTabs { CLEAR: both; PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; MARGIN: -1px -12px 1px; PADDING-TOP: 1px; = BORDER-BOTTOM: #999 1px solid } DIV.mapTabs UL { PADDING-RIGHT: 0px; PADDING-LEFT: 3px; BACKGROUND: #cdcdcd; FLOAT: = left; MARGIN-BOTTOM: -1px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; = -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius: 0; -webkit-border-radius: 0 } DIV.mapTabs UL LI { PADDING-RIGHT: 0px; MARGIN-TOP: 2px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } DIV.mapTabs UL LI.active H3 { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 12px; FONT-SIZE: 100%; BACKGROUND: #fff1c5; FLOAT: = left; PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: #999 1px solid; = PADDING-TOP: 5px; BORDER-BOTTOM: medium none; HEIGHT: 1% } DIV.mapTabs UL LI A.inprogress { PADDING-LEFT: 26px; BACKGROUND: url(images/workflow_detail_active.gif) = #ededed no-repeat 6px 50% } DIV.mapTabs UL LI A.complete { PADDING-LEFT: 27px; BACKGROUND: = url(images/workflow_detail_complete2.gif) #ededed no-repeat 6px 50% } DIV.mapTabs UL LI A.inprogress:hover { BACKGROUND-COLOR: #f6f6f6 } DIV.mapTabs UL LI A.complete:hover { BACKGROUND-COLOR: #f6f6f6 } DIV.mapTabs UL LI DIV { PADDING-RIGHT: 12px; DISPLAY: none; PADDING-LEFT: 12px; PADDING-BOTTOM: = 7px; PADDING-TOP: 7px } DIV.mapTabs UL LI.saveTab A { DISPLAY: none } UL.containerTabs LI.saveTab IMG { DISPLAY: none } DIV.mapTabs UL LI.saveFadeIn { FILTER: alpha(opacity=3D0); opacity: 0 } DIV.mapTabs UL LI.saveTab DIV { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; FONT-WEIGHT: = bold; BACKGROUND: url(images/tab_receipt_back.gif) #44b10e repeat-x = center bottom; PADDING-BOTTOM: 6px; COLOR: white; PADDING-TOP: 5px } DIV.mapHelp { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 0px; MARGIN: -1px 0px 0px; PADDING-TOP: 4px } UL.setStatus { BORDER-RIGHT: #eee 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #eee 1px = solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 15px 0pt 9px = 30px; BORDER-LEFT: #eee 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #eee = 1px solid; LIST-STYLE-TYPE: none } UL.setStatus LI { FONT-SIZE: 95%; MARGIN: 0px 6px 0px 0px } UL.setStatus LI INPUT { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } UL.setStatus LI LABEL { PADDING-LEFT: 22px; BACKGROUND: url(images/workflow_detail_active.gif) = no-repeat 1px 0px } UL.setStatus LI LABEL.complete { PADDING-LEFT: 22px; BACKGROUND: = url(images/workflow_detail_complete.gif) no-repeat 1px 0px } FORM.mapCanvasForm DIV.steptitle { PADDING-LEFT: 0.8em; MARGIN: 15px 0px 0px 18px } FORM.mapCanvasForm H3.steptitle { PADDING-LEFT: 0.8em; MARGIN: 15px 0px 0px 18px } BODY.ineditmode { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 6px; BACKGROUND-COLOR: #cdcdcd } BODY.noteditmode { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 6px } BODY.ineditmode { BACKGROUND-IMAGE: url(images/readback.png) } BODY.ineditmode { BACKGROUND-IMAGE: url(images/readback.png) } BODY.ineditmode #editModeButton { BACKGROUND-IMAGE: url(images/readback.png); BACKGROUND-COLOR: #cdcdcd } BODY.ineditmode DIV.listCm { BORDER-RIGHT: #666 3px solid; BORDER-TOP: #666 3px solid; BORDER-LEFT: = #666 3px solid; BORDER-BOTTOM: #666 3px solid; BACKGROUND-COLOR: #666; = -moz-border-radius: 9px; -webkit-border-radius: 9px } BODY.ineditmode DIV#editmodeWrapper { BORDER-RIGHT: #666 3px solid; BORDER-TOP: #666 3px solid; BORDER-LEFT: = #666 3px solid; BORDER-BOTTOM: #666 3px solid; BACKGROUND-COLOR: #666; = -moz-border-radius: 9px; -webkit-border-radius: 9px } BODY.ineditmode DIV.listCm { BACKGROUND-IMAGE: none; MARGIN-BOTTOM: 9px; PADDING-BOTTOM: 0px } BODY.ineditmode DIV#editodeWrapper { BACKGROUND-IMAGE: none; MARGIN-BOTTOM: 9px; PADDING-BOTTOM: 0px } BODY.ineditmode DIV.landing DIV#editmodeWrapper { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: = 0px } .actionBar { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; Z-INDEX: 110; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 6px; MARGIN: -1px 0px 0px; PADDING-TOP: 4px; = BORDER-BOTTOM: #eedd99 1px solid; ZOOM: 1 } .actionBar UL { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px; ZOOM: 1; LIST-STYLE-TYPE: none } .actionbar_portal UL { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px; ZOOM: 1; LIST-STYLE-TYPE: none } .actionBar UL LI { PADDING-RIGHT: 1px; FONT-WEIGHT: bold; Z-INDEX: 111; FLOAT: left; = MARGIN: 2px 0px 0px 6px; ZOOM: 1; POSITION: relative } .actionBar UL LI.mainButton { PADDING-RIGHT: 1px; FONT-WEIGHT: bold; Z-INDEX: 111; FLOAT: left; = MARGIN: 2px 0px 0px 6px; ZOOM: 1; POSITION: relative } .actionbar_portal UL LI { PADDING-RIGHT: 1px; FONT-WEIGHT: bold; Z-INDEX: 111; FLOAT: left; = MARGIN: 2px 0px 0px 6px; ZOOM: 1; POSITION: relative } .actionBar UL LI:hover { Z-INDEX: 1001 } .actionBar UL LI.mainButton:hover .actionbar_portal UL LI:hover { Z-INDEX: 1001 } #primaryButton { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } .actionBar UL LI A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } .actionBar UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } .actionbar_portal UL LI A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } DIV.tabPreview DIV.actionBar UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } .navPalette DIV.actionBarMicro UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } .portlet DIV.actionBarMicro UL LI.mainButton A { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 105%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 2px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { CURSOR: default } .actionBar UL LI.sub { =09 } .actionBar UL LI A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .actionBar UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .actionBar UL LI.mainButton A:focus { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .actionbar_portal UL LI A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .navPalette DIV.actionBarMicro UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .navPalette DIV.actionBarMicro UL LI.mainButton A:focus { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .portlet DIV.actionBarMicro UL LI.mainButton A:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } .actionBar UL LI.sub A.other { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #344a6c 1px solid; PADDING-LEFT: 9px; BACKGROUND: = url(images/action_button_back.gif) #888 repeat-x left top; = PADDING-BOTTOM: 2px; BORDER-LEFT: #344a6c 1px solid; PADDING-TOP: 2px; = BORDER-BOTTOM: #344a6c 1px solid; TEXT-DECORATION: none } .actionBar UL LI.sub A.other:hover { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #666; = BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } .actionBar UL LI A IMG { MARGIN: -2px -4px 0px 4px; VERTICAL-ALIGN: middle } .pageTitle H1 A.secondaryButton IMG { MARGIN: -2px -4px 0px 4px; VERTICAL-ALIGN: middle } .actionBar UL LI.secondaryButton A IMG { MARGIN: -2px -4px 0px } .actionBar UL LI.sub A IMG { MARGIN: -2px -4px 0px 4px } .actionBar UL LI.sub A IMG { MARGIN: -2px -4px 0px 4px } .actionBar UL LI.search { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 2px = 6px 0px 0px; PADDING-TOP: 0px } .actionBar UL LI.secondaryButton { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 2px = 6px 0px 0px; PADDING-TOP: 0px } .actionbar_portal UL LI.search { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 2px = 6px 0px 0px; PADDING-TOP: 0px } #secondaryButton { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } .actionBar UL LI.search A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } .actionBar UL LI.secondaryButton A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } .actionBar_portal UL LI.search A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A:hover { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } .pageTitle H1 A.secondaryButton { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; = BACKGROUND-POSITION: 0px 10%; BORDER-TOP: #d7bb66 1px solid; DISPLAY: = block; PADDING-LEFT: 9px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #d7bb66 1px solid; COLOR: #000000; = PADDING-TOP: 2px; BORDER-BOTTOM: #d7bb66 1px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #fff1c5; TEXT-DECORATION: none } .actionBar UL LI.secondaryButton DIV.action_bar_paging { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-SIZE: 105%; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } .actionBar UL LI.secondaryButton DIV.action_bar_paging A { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } .actionBar UL LI.secondaryButton DIV.action_bar_paging A:hover { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } .actionBar UL LI.secondaryButton DIV.action_bar_paging A IMG { MARGIN: 0px } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A:hover { CURSOR: default } .actionBar UL LI.buttontotab { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; Z-INDEX: 100; FLOAT: right; PADDING-BOTTOM: 0px; = MARGIN: 0px 6px 0px 0px; BOTTOM: 0px; PADDING-TOP: 0px; TOP: 7px } .actionBar UL LI.secondaryButtonTab { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; Z-INDEX: 100; FLOAT: right; PADDING-BOTTOM: 0px; = MARGIN: 0px 6px 0px 0px; BOTTOM: 0px; PADDING-TOP: 0px; TOP: 7px } .actionBar UL LI.buttontotab A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #d7bb66 1px solid; PADDING-LEFT: 9px; FONT-SIZE: 100%; Z-INDEX: 100; = BACKGROUND: #eddca5; PADDING-BOTTOM: 3px; BORDER-LEFT: #d7bb66 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: medium none; = TEXT-DECORATION: none } .actionBar UL LI.buttontotab A:hover { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #d7bb66 1px solid; PADDING-LEFT: 9px; FONT-SIZE: 100%; Z-INDEX: 100; = BACKGROUND: #eddca5; PADDING-BOTTOM: 3px; BORDER-LEFT: #d7bb66 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: medium none; = TEXT-DECORATION: none } .actionBar UL LI.secondaryButtonTab A { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #d7bb66 1px solid; PADDING-LEFT: 9px; FONT-SIZE: 100%; Z-INDEX: 100; = BACKGROUND: #eddca5; PADDING-BOTTOM: 3px; BORDER-LEFT: #d7bb66 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: medium none; = TEXT-DECORATION: none } .actionBar UL LI.secondaryButtonTab A:hover { BORDER-RIGHT: #d7bb66 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #d7bb66 1px solid; PADDING-LEFT: 9px; FONT-SIZE: 100%; Z-INDEX: 100; = BACKGROUND: #eddca5; PADDING-BOTTOM: 3px; BORDER-LEFT: #d7bb66 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: medium none; = TEXT-DECORATION: none } .actionBar UL LI.secondaryButton A.image { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } .actionBar UL LI.search A:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .actionBar_portal UL LI.search A:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .actionBar UL LI.secondaryButton A:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .actionBar UL LI.secondaryButton A:focus { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .actionBar_portal UL LI.secondaryButton A:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .pageTitle A.secondaryButton:hover { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #f5e7bd; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444; = BORDER-BOTTOM: #d7bb66 1px solid } .pageTitle H1 A.secondaryButton { DISPLAY: inline; FONT-WEIGHT: normal; FONT-SIZE: 65% } .reverseButtons UL LI.mainButton { FLOAT: right } .reverseButtons UL LI.secondaryButton { FLOAT: left } .navPalette DIV.actionBarMicro { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 4px; PADDING-TOP: 0px } .portlet DIV.actionBarMicro { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 4px; PADDING-TOP: 0px } .portlet DIV.actionBarMicro { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; MARGIN: = 0px; PADDING-TOP: 4px } .navPalette DIV.actionBarMicro UL { =09 } .portlet DIV.actionBarMicro UL { MARGIN: 2px } DIV.navPalette DIV.actionBarMicro UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 1px 0px 1px 3px; PADDING-TOP: 0px } DIV.navPalette DIV.buttons DIV.actionBarMicro UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 1px 0px 1px 3px; PADDING-TOP: 0px } .portlet DIV.actionBarMicro UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 1px 0px 1px 3px; PADDING-TOP: 0px } .navPalette DIV.actionBarMicro UL LI.mainButton { Z-INDEX: 1000; MARGIN: 0px 3px 0px 0px; POSITION: relative } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton { Z-INDEX: 1000; MARGIN: 0px 3px 0px 0px; POSITION: relative } .portlet DIV.actionBarMicro UL LI.mainButton { Z-INDEX: 1000; MARGIN: 0px 3px 0px 0px; POSITION: relative } DIV.navPalette DIV.actionBarMicro UL LI.secondaryButton { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 10; FLOAT: right; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: relative } DIV.navPalette DIV.buttons DIV.actionBarMicro UL LI.secondaryButton { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 10; FLOAT: right; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: relative } DIV.navPalette DIV.actionBarMicro UL LI A { BORDER-RIGHT: #fff1c5 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #fff1c5 1px solid; DISPLAY: inline-block; PADDING-LEFT: 1px; BACKGROUND: = none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: = #fff1c5 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #fff1c5 1px solid } .navPalette DIV.buttons DIV.actionBarMicro UL LI A { BORDER-RIGHT: #fff1c5 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #fff1c5 1px solid; DISPLAY: inline-block; PADDING-LEFT: 1px; BACKGROUND: = none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: = #fff1c5 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #fff1c5 1px solid } .portlet DIV.actionBarMicro UL LI A { BORDER-RIGHT: #fff1c5 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #fff1c5 1px solid; DISPLAY: inline-block; PADDING-LEFT: 1px; BACKGROUND: = none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: = #fff1c5 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #fff1c5 1px solid } .navPalette DIV.actionBarMicro UL LI A:hover { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .navPalette DIV.buttons DIV.actionBarMicro UL LI A:hover { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .portlet DIV.actionBarMicro UL LI A:hover { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .navPalette DIV.actionBarMicro UL LI.mainButton A { BORDER-TOP-WIDTH: 1px; PADDING-RIGHT: 1px; BACKGROUND-POSITION: 0px = 30%; DISPLAY: inline-block; PADDING-LEFT: 1px; BORDER-LEFT-WIDTH: 1px; = FONT-SIZE: 90%; BACKGROUND-IMAGE: none; BORDER-BOTTOM-WIDTH: 1px; = PADDING-BOTTOM: 1px; COLOR: #000; PADDING-TOP: 1px; BORDER-RIGHT-WIDTH: = 1px } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton A { BORDER-TOP-WIDTH: 1px; PADDING-RIGHT: 1px; BACKGROUND-POSITION: 0px = 30%; DISPLAY: inline-block; PADDING-LEFT: 1px; BORDER-LEFT-WIDTH: 1px; = FONT-SIZE: 90%; BACKGROUND-IMAGE: none; BORDER-BOTTOM-WIDTH: 1px; = PADDING-BOTTOM: 1px; COLOR: #000; PADDING-TOP: 1px; BORDER-RIGHT-WIDTH: = 1px } .portlet DIV.actionBarMicro UL LI.mainButton A { BORDER-TOP-WIDTH: 1px; PADDING-RIGHT: 1px; BACKGROUND-POSITION: 0px = 30%; DISPLAY: inline-block; PADDING-LEFT: 1px; BORDER-LEFT-WIDTH: 1px; = FONT-SIZE: 90%; BACKGROUND-IMAGE: none; BORDER-BOTTOM-WIDTH: 1px; = PADDING-BOTTOM: 1px; COLOR: #000; PADDING-TOP: 1px; BORDER-RIGHT-WIDTH: = 1px } .portlet DIV.actionBarMicro UL LI.mainButton A { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px; TEXT-DECORATION: none } .navPalette DIV.actionBarMicro UL LI.mainButton A:hover { =09 } .navPalette DIV.buttons DIV.actionBarMicro UL LI.mainButton A:hover { =09 } .portlet DIV.actionBarMicro UL LI.mainButton A:hover { =09 } .portlet DIV.actionBarMicro UL LI.mainButton A:hover { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px; TEXT-DECORATION: none } .navPalette DIV.actionBarMicro UL LI.active A { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .navPalette DIV.buttons DIV.actionBarMicro UL LI.active A { BORDER-RIGHT: #ffcc00 1px solid; BORDER-TOP: #ffcc00 1px solid; = BACKGROUND: #fff; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: #ffcc00 = 1px solid } .navPalette DIV.actionBarMicro UL LI.active A.options { BORDER-RIGHT: #ffcc00 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: = #ffcc00 1px solid; BACKGROUND: url(images/more_options.gif) #fff = no-repeat 97% center; BORDER-LEFT: #ffcc00 1px solid; BORDER-BOTTOM: = #ffcc00 1px solid } DIV.portal DIV.actionBar { MARGIN-TOP: -1px } DIV.portal DIV.actionBar { MARGIN-TOP: 0px } DIV.tabbedPane DIV.actionBar { MARGIN-TOP: 0px } .tableOverflowControl { CLEAR: both; OVERFLOW-X: auto; PADDING-BOTTOM: 1px; WIDTH: 100% } TABLE.inventory { CLEAR: both; PADDING-RIGHT: 0px; OVERFLOW-Y: visible; PADDING-LEFT: = 0px; FONT-SIZE: 100%; BACKGROUND: #fff; OVERFLOW-X: auto; = PADDING-BOTTOM: 1px; MARGIN: 0px; WIDTH: 100%; PADDING-TOP: 0px; ZOOM: = 1; BORDER-COLLAPSE: collapse; HEIGHT: 1%; border-expand: 1px 0 } TABLE.inventory THEAD { BORDER-TOP: #ccc 1px solid; BACKGROUND: #ededed } TABLE.splashTable THEAD { BORDER-TOP: #ccc 1px solid; BACKGROUND: #ededed } TABLE.inventory THEAD TR TH { PADDING-RIGHT: 4px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 4px; = FONT-SIZE: 85%; PADDING-BOTTOM: 5px; BORDER-LEFT: #ccc 1px solid; COLOR: = #999; PADDING-TOP: 5px; BORDER-BOTTOM: #ccc 1px solid; ZOOM: 1; = TEXT-ALIGN: left } TABLE.splashTable THEAD TR TH { PADDING-RIGHT: 4px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 4px; = FONT-SIZE: 85%; PADDING-BOTTOM: 5px; BORDER-LEFT: #ccc 1px solid; COLOR: = #999; PADDING-TOP: 5px; BORDER-BOTTOM: #ccc 1px solid; ZOOM: 1; = TEXT-ALIGN: left } TABLE.inventory THEAD TR TH:first-child { BORDER-LEFT: medium none } TABLE.splashTable THEAD TR TH:first-child { BORDER-LEFT: medium none } TABLE.inventory THEAD TR TH:unknown { BORDER-RIGHT: medium none } TABLE.splashTable THEAD TR TH:unknown { BORDER-RIGHT: medium none } TABLE.inventory TBODY { BORDER-BOTTOM: #eee 2px solid; HEIGHT: 1% } TABLE.inventory TBODY TR { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px; BORDER-BOTTOM: #eee 1px solid; ZOOM: 1; HEIGHT: 1% } TABLE.inventory TBODY TR TD { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 95%; PADDING-BOTTOM: = 3px; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: #eee 1px = solid; ZOOM: 1; WHITE-SPACE: normal; HEIGHT: 1%; WORD-WRAP: break-word } TABLE.inventory TBODY TR TH { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 95%; PADDING-BOTTOM: = 3px; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: #eee 1px = solid; ZOOM: 1; WHITE-SPACE: normal; HEIGHT: 1%; WORD-WRAP: break-word } TABLE.reorder TBODY TR TD { BORDER-BOTTOM: 0px } TABLE.reorder TBODY TR TH { BORDER-BOTTOM: 0px } TABLE.inventory TBODY TR TH { FONT-WEIGHT: normal; TEXT-ALIGN: left } TABLE.inventory TBODY TR TD:first-child { BORDER-LEFT: medium none } TABLE.inventory TBODY TR.gray TD { BACKGROUND: #f0f0f0 } TABLE.inventory TBODY TR.gray TH { BACKGROUND: #f0f0f0 } TABLE.inventory THEAD TR TH.sorted { BACKGROUND: #ccc } TH.sorted { BACKGROUND: #ccc } TABLE.splashTable THEAD TR TH.sorted { BACKGROUND: #ccc } TABLE.inventory TBODY TR TD.sorted { BACKGROUND: #eee } TABLE.inventory THEAD TR TH.sorted A { COLOR: #000! important } TABLE.sortable TH A { COLOR: #666; MARGIN-RIGHT: 9px } TABLE.sortable TBODY TH A { COLOR: #003366; WORD-BREAK: normal; MARGIN-RIGHT: 9px; WORD-WRAP: = break-word } TABLE.sortable TH A:hover { TEXT-DECORATION: underline } TABLE.sortable A.sortheader { PADDING-RIGHT: 17px; DISPLAY: block; FONT-WEIGHT: bold; MARGIN-RIGHT: = 0px; POSITION: relative; TEXT-DECORATION: underline } TABLE.sortable SPAN.sortarrow { FONT-WEIGHT: bold; RIGHT: 0px; LEFT: auto; COLOR: #ffff00; POSITION: = absolute; TOP: 0px; TEXT-DECORATION: none } TR.high { BACKGROUND: #fff1c5 } TABLE.inventory TD.smallCell SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.inventory TBODY SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.inventory TBODY SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.attachments TD.smallCell SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.attachments TBODY SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.attachments TBODY SPAN.reorder { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 6px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 6px; WIDTH: 30px; CURSOR: move; = PADDING-TOP: 6px; POSITION: static; HEIGHT: 12px; opacity: .2 } TABLE.inventory TR:hover TD.smallCell SPAN.reorder { opacity: 1 } TABLE.inventory TBODY TR:hover TD.smallCell SPAN.reorder:hover { opacity: 1 } TABLE.attachments TR:hover TD.smallCell SPAN.reorder { opacity: 1 } TABLE.attachments TBODY TR:hover TD.smallCell SPAN.reorder:hover { opacity: 1 } DIV.checked { =09 } DIV.checked_top { =09 } TABLE.inventory TBODY UL.subtabs { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } TABLE.inventory TBODY UL.subtabs LI { PADDING-RIGHT: 2px; PADDING-LEFT: 20px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px; POSITION: relative } DIV.rumble { PADDING-RIGHT: 7px; PADDING-LEFT: 34px; BACKGROUND: = url(images/checked_items.gif) #fff7de no-repeat 8px -10px; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 6px; PADDING-TOP: 5px } DIV.rumble_top { PADDING-RIGHT: 7px; PADDING-LEFT: 34px; BACKGROUND: = url(images/checked_items_top.gif) #fff7de no-repeat 8px 6px; = PADDING-BOTTOM: 5px; MARGIN: 24px 0px 0px; PADDING-TOP: 5px; HEIGHT: = 0.5em } DIV.noBatchActions { BACKGROUND-IMAGE: none! important } DIV.rumbleBuildList { BORDER-TOP: #eee 2px solid; MARGIN: 0px 0px 0px 1.4em } DIV.rumbleBuildListTop { BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN: 10px 0px = -10px 1.4em; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } DIV.rumbleBuildList UL LI { Z-INDEX: 1000 } DIV.rumbleBuildListTop UL LI { Z-INDEX: 1000 } DIV.rumble_top UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; ZOOM: 1; LIST-STYLE-TYPE: none } DIV.rumble UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; ZOOM: 1; LIST-STYLE-TYPE: none } DIV.rumble_top UL LI { FLOAT: left; MARGIN: 0px 3px 0px 0px } DIV.rumble UL LI { FLOAT: left; MARGIN: 0px 3px 0px 0px } DIV.rumble_top UL LI.primary { FLOAT: left; MARGIN: 0px 3px 0px 0px } DIV.rumble UL LI.primary { FLOAT: left; MARGIN: 0px 3px 0px 0px } DIV.rumble_top UL LI.sub:hover { Z-INDEX: 999 } DIV.rumble UL LI.sub:hover { Z-INDEX: 998 } DIV.rumble_top UL LI.secondary { FLOAT: right; MARGIN: 0px 0px 0px 3px; POSITION: relative } DIV.rumble UL LI.secondary { FLOAT: right; MARGIN: 0px 0px 0px 3px; POSITION: relative } DIV.rumble A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble_top A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble UL LI.primary A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble_top UL LI.primary A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble UL LI.secondary A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble_top UL LI.secondary A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 95%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } DIV.rumble UL LI.secondary A { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #fff1c5; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444444; = BORDER-BOTTOM: #d7bb66 1px solid } DIV.rumble_top UL LI.secondary A { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BACKGROUND: #fff1c5; BORDER-LEFT: #d7bb66 1px solid; COLOR: #444444; = BORDER-BOTTOM: #d7bb66 1px solid } DIV.rumble_top A { =09 } DIV.rumble A:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 95%; BACKGROUND: = url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; COLOR: #000; = PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid; TEXT-DECORATION: = none } DIV.rumble_top A:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 95%; BACKGROUND: = url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; COLOR: #000; = PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid; TEXT-DECORATION: = none } DIV.rumble LI.multiple LABEL { DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 95%; FLOAT: left; MARGIN: = 0px 3px 0px 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.rumble_top LI.multiple LABEL { DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 95%; FLOAT: left; MARGIN: = 0px 3px 0px 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.rumble LI#addTagActionItem_bottom LABEL { DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 95%; FLOAT: left; MARGIN: = 0px 3px 0px 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.rumble_top LI#addTagActionItem_top LABEL { DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 95%; FLOAT: left; MARGIN: = 0px 3px 0px 6px; BORDER-LEFT: #d7bb66 1px dotted } DIV.rumble LI.multiple INPUT { FONT-SIZE: 95%; MARGIN-LEFT: 3px; VERTICAL-ALIGN: middle; WIDTH: 8em } DIV.rumble_top LI.multiple INPUT { FONT-SIZE: 95%; MARGIN-LEFT: 3px; VERTICAL-ALIGN: middle; WIDTH: 8em } DIV.rumble LI#addTagActionItem_bottom INPUT { FONT-SIZE: 95%; MARGIN-LEFT: 3px; VERTICAL-ALIGN: middle; WIDTH: 8em } DIV.rumble_top LI#addTagActionItem_top INPUT { FONT-SIZE: 95%; MARGIN-LEFT: 3px; VERTICAL-ALIGN: middle; WIDTH: 8em } DIV.rumble LI.multiple A { FLOAT: left; MARGIN: 0px 0px 0px 3px } DIV.rumble_top LI.multiple A { FLOAT: left; MARGIN: 0px 0px 0px 3px } DIV.rumble LI#addTagActionItem_bottom A { FLOAT: left; MARGIN: 0px 0px 0px 3px } DIV.rumble_top LI#addTagActionItem_top A { FLOAT: left; MARGIN: 0px 0px 0px 3px } DIV.rumble_top UL LI.inventory_paging { PADDING-LEFT: 9px; FONT-SIZE: 95%; FLOAT: right; MARGIN-LEFT: 9px; = VERTICAL-ALIGN: middle } DIV.rumble UL LI.inventory_paging { PADDING-LEFT: 9px; FONT-SIZE: 95%; FLOAT: right; MARGIN-LEFT: 9px; = VERTICAL-ALIGN: middle } LI.inventory_paging INPUT { BORDER-RIGHT: #edd999 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #edd999 1px solid; DISPLAY: inline-block; PADDING-LEFT: 0px; = FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: #ffffff; PADDING-BOTTOM: = 0px; VERTICAL-ALIGN: middle; BORDER-LEFT: #edd999 1px solid; WIDTH: = 1.5em; PADDING-TOP: 0px; BORDER-BOTTOM: #edd999 1px solid; TEXT-ALIGN: = center } DIV.rumble_top UL LI.inventory_paging A { BORDER-RIGHT: #e6d8b1 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 1px; BACKGROUND: #f5e7bd; = PADDING-BOTTOM: 2px; BORDER-LEFT: #edd999 1px solid; COLOR: #666666; = PADDING-TOP: 1px; BORDER-BOTTOM: #e6d8b1 1px solid; TOP: 0px } DIV.rumble UL LI.inventory_paging A { BORDER-RIGHT: #e6d8b1 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 1px; BACKGROUND: #f5e7bd; = PADDING-BOTTOM: 2px; BORDER-LEFT: #edd999 1px solid; COLOR: #666666; = PADDING-TOP: 1px; BORDER-BOTTOM: #e6d8b1 1px solid; TOP: 0px } DIV.rumble_top UL LI.inventory_paging A:hover { BORDER-RIGHT: #e6d8b1 1px solid; BORDER-TOP: #edd999 1px solid; = BACKGROUND: url(images/actionsearch_button_back.gif) #fff7de repeat-x; = BORDER-LEFT: #edd999 1px solid; BORDER-BOTTOM: #e6d8b1 1px solid } DIV.rumble UL LI.inventory_paging A:hover { BORDER-RIGHT: #e6d8b1 1px solid; BORDER-TOP: #edd999 1px solid; = BACKGROUND: url(images/actionsearch_button_back.gif) #fff7de repeat-x; = BORDER-LEFT: #edd999 1px solid; BORDER-BOTTOM: #e6d8b1 1px solid } DIV.rumble_top UL LI.inventory_paging DIV { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble_top UL LI.inventory_paging A { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble_top UL LI.inventory_paging IMG { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble UL LI.inventory_paging DIV { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble UL LI.inventory_paging A { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble UL LI.inventory_paging IMG { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble UL LI.inventory_paging SPAN { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 3px; VERTICAL-ALIGN: = middle } DIV.rumble_top UL LI.inventory_paging IMG { MARGIN: 2px 2px 3px } DIV.rumble UL LI.inventory_paging IMG { MARGIN: 2px 2px 3px } DIV.rumble_top UL LI.inventory_paging A IMG { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.rumble UL LI.inventory_paging A IMG { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.rumble_top UL LI.inventory_paging A.inactive { FILTER: alpha(opacity=3D40); opacity: .4 } DIV.rumble UL LI.inventory_paging A.inactive { FILTER: alpha(opacity=3D40); opacity: .4 } DIV.rumble_top UL LI.secondaryControl { FLOAT: right } DIV.rumble UL LI.secondaryControl { FLOAT: right } DIV.rumble_top UL LI.secondaryControl A { BORDER-RIGHT: #e6d8b1 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 5px; BACKGROUND: #f5e7bd; = PADDING-BOTTOM: 2px; BORDER-LEFT: #edd999 1px solid; COLOR: #666666; = PADDING-TOP: 1px; BORDER-BOTTOM: #e6d8b1 1px solid; TOP: 1px } DIV.rumble UL LI.secondaryControl A { BORDER-RIGHT: #e6d8b1 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 5px; BACKGROUND: #f5e7bd; = PADDING-BOTTOM: 2px; BORDER-LEFT: #edd999 1px solid; COLOR: #666666; = PADDING-TOP: 1px; BORDER-BOTTOM: #e6d8b1 1px solid; TOP: 1px } DIV.rumble_top UL LI.secondaryControl A:hover { BORDER-RIGHT: #e6d8b1 1px solid; BORDER-TOP: #edd999 1px solid; = BACKGROUND: url(images/actionsearch_button_back.gif) #fff7de repeat-x; = BORDER-LEFT: #edd999 1px solid; BORDER-BOTTOM: #e6d8b1 1px solid } DIV.rumble UL LI.secondaryControl A:hover { BORDER-RIGHT: #e6d8b1 1px solid; BORDER-TOP: #edd999 1px solid; = BACKGROUND: url(images/actionsearch_button_back.gif) #fff7de repeat-x; = BORDER-LEFT: #edd999 1px solid; BORDER-BOTTOM: #e6d8b1 1px solid } .rumble UL LI.secondary A { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BORDER-LEFT: #d7bb66 1px solid; BORDER-BOTTOM: #d7bb66 1px solid; = BACKGROUND-COLOR: #fff1c5 } .rumble_top UL LI.secondary A { BORDER-RIGHT: #d7bb66 1px solid; BORDER-TOP: #d7bb66 1px solid; = BORDER-LEFT: #d7bb66 1px solid; BORDER-BOTTOM: #d7bb66 1px solid; = BACKGROUND-COLOR: #fff1c5 } DIV.extraData { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; COLOR: #666; PADDING-TOP: 3px } DIV.extraData SPAN { DISPLAY: inline; FONT-WEIGHT: bold; FONT-SIZE: 95% } DIV.extraData P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } TABLE.splashTable DIV.extraData { FONT-WEIGHT: normal; FONT-SIZE: 100% } TABLE.attachments { MARGIN: 0px 0px 12px; WIDTH: 100%; BORDER-COLLAPSE: collapse } TABLE.attachments THEAD TR { COLOR: #999; BORDER-BOTTOM: #ccc 2px solid } TABLE.attachments THEAD TR TH { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; BORDER-BOTTOM: #ccc 2px solid; = TEXT-ALIGN: left } TABLE.attachments TBODY TR { BORDER-TOP: #eee 1px solid } TABLE.attachments TBODY TR TH { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; TEXT-ALIGN: left } TABLE.attachments TBODY TR TD { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; TEXT-ALIGN: left } TABLE.attachments TBODY TR TH { COLOR: #000; TEXT-ALIGN: left } TABLE.attachments TBODY TR.removeCell { BACKGROUND: #ededed; COLOR: #777 } TABLE.attachments TBODY TR.removeCell { BACKGROUND: #ededed; COLOR: #777 } TABLE.attachments TBODY TR.removeCell TD { COLOR: #999 } TABLE.attachments TBODY TR.removeCell TH { COLOR: #999 } TABLE.attachments TBODY TR.removeCell TD A IMG { FILTER: alpha(opacity=3D40); opacity: 0.4 } TABLE.attachments TH.smallCell { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 1%; = PADDING-TOP: 0px; WHITE-SPACE: nowrap } TABLE.attachments TD.smallCell { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 1%; = PADDING-TOP: 0px; WHITE-SPACE: nowrap } TABLE.attachments TBODY TR.inEditMode { BORDER-RIGHT: #444 2px solid; BORDER-TOP: #444 2px solid; BACKGROUND: = #ededed; BORDER-LEFT: #444 2px solid; BORDER-BOTTOM: #444 2px solid; = -moz-border-radius: 0 } TABLE.attachments TBODY TR.inEditMode TD { BORDER-TOP: #444 2px solid; -moz-border-radius: 0 } TABLE.attachments TBODY TR.inEditMode TH { BORDER-TOP: #444 2px solid; -moz-border-radius: 0 } TABLE.stepItems-reorder { FONT-SIZE: 85%; MARGIN-BOTTOM: 0px; ZOOM: 1; BORDER-COLLAPSE: collapse; = border-spacing: 1px 0; border-separate: 1px 0 } TABLE.gbColumns { FONT-SIZE: 90%; ZOOM: 1 } TABLE.stepItems-reorder TD { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px } TABLE.stepItems-reorder TH { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px } TABLE.stepItems-reorder THEAD TR TH { BACKGROUND: #fff; COLOR: #999; BORDER-BOTTOM: #ccc 1px solid; = TEXT-ALIGN: left } TABLE.gbColumns THEAD TR TH { BACKGROUND: #bbb; COLOR: #fff; BORDER-BOTTOM: #999 2px solid } TABLE.gbColumns THEAD TR TD { BACKGROUND: #bbb; COLOR: #fff; BORDER-BOTTOM: #999 2px solid } TABLE.gbColumns THEAD TR TH.sorted { BORDER-RIGHT: #777 1px solid; BACKGROUND: #999; BORDER-LEFT: #777 1px = solid } TABLE.gbColumns THEAD TR TH A { COLOR: #fff } TABLE.gbColumns THEAD TR TD A { COLOR: #fff } TABLE.stepItems-reorder THEAD TR.lowerHeader TH { COLOR: #333; BORDER-BOTTOM: #ccc 2px solid } TABLE.stepItems-reorder TBODY TR TD.shaded { BORDER-TOP: #ccc 1px solid; BACKGROUND: #f6f6f6 } TABLE.stepItems-reorder THEAD TR TH.shaded { BORDER-TOP: #ccc 1px solid; BACKGROUND: #f6f6f6 } TABLE.stepItems-reorder TR TH.clearCell { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; = BORDER-BOTTOM: 0px } TABLE.stepItems-reorder TBODY { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #999 2px solid; ZOOM: 1; HEIGHT: = 1px } TABLE.stepItems-reorder TBODY TR TD { BORDER-TOP: #ccc 1px solid; BACKGROUND: #fff; ZOOM: 1; HEIGHT: 1% } TABLE.stepItems-reorder THEAD TR TH.shaded { BORDER-TOP: 0px } TABLE.stepItems-reorder THEAD TR.upperHeader TH { BORDER-TOP: 0px } TABLE.stepItems-reorder TBODY TR { BACKGROUND: #ccc } TABLE.stepItems-reorder TBODY TR:first-child TD { BORDER-TOP: 0px } TABLE.stepItems-reorder TBODY TR:first-child TH { BORDER-TOP: 0px } TABLE.stepItems-reorder THEAD TR:first-child { BORDER-TOP: 0px } TABLE.stepItems-reorder TBODY TR TD.dragCell { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; VERTICAL-ALIGN: top; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; TEXT-ALIGN: right } TABLE.stepItems-reorder TBODY TR TD SPAN.reorder { BORDER-RIGHT: #ccc 1px solid; DISPLAY: block; RIGHT: 0px; BACKGROUND: = url(images/cm_reorder_updown.gif) #ededed no-repeat center center; = FILTER: alpha(opacity=3D100); LEFT: auto; WIDTH: 18px! important; = CURSOR: move; POSITION: relative; TOP: 2px; HEIGHT: 20px; opacity: 1; = -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; = -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: = 3px } TABLE.gbColumns TBODY TR TD SPAN.reorder { BACKGROUND: url(images/cm_reorder.gif) #ededed no-repeat center center } TABLE.stepItems-reorder TBODY TR.frozenbar TD SPAN.reorder { TOP: 1px } TABLE.stepItems-reorder TBODY TR TD INPUT { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 2px; = VERTICAL-ALIGN: middle; WIDTH: 95%; PADDING-TOP: 2px } TABLE.stepItems-reorder TBODY TR TD.points INPUT { WIDTH: 3em } TABLE.stepItems-reorder TBODY TR TD.entry INPUT[type=3Dtext] { WIDTH: 90% } TABLE.stepItems-reorder TBODY TR TD.entry INPUT[type=3Dcheckbox] { WIDTH: auto } TABLE.stepItems-reorder TBODY TR TD INPUT[type=3Dcheckbox] { MARGIN: 0px 4px 0px 0px } TABLE.gbColumns TBODY TR TD INPUT[type=3Dcheckbox] { MARGIN: 0px; WIDTH: auto } TABLE.gbColumns TBODY TR TD { PADDING-RIGHT: 8px; PADDING-LEFT: 8px; PADDING-BOTTOM: 4px; = VERTICAL-ALIGN: top; PADDING-TOP: 4px } TABLE.gbColumns TBODY TR.frozenbar TD { PADDING-RIGHT: 8px; BORDER-TOP: 0px; PADDING-LEFT: 8px; FONT-SIZE: 95%; = BACKGROUND: #ccc; PADDING-BOTTOM: 4px; COLOR: #444; PADDING-TOP: 3px } TABLE.gbColumns TFOOT TR.lastRow TD { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #999; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = LINE-HEIGHT: 0; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; HEIGHT: 2px } TABLE.gbColumns TBODY TR.frozen TD { BACKGROUND: #ededed } TABLE.gbColumns THEAD TR TD.checkBox { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; PADDING-BOTTOM: 1px; = PADDING-TOP: 3px; TEXT-ALIGN: center } TABLE.gbColumns TBODY TR TD.checkBox { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; PADDING-BOTTOM: 1px; = PADDING-TOP: 3px; TEXT-ALIGN: center } DIV.areaHighlight TABLE.gbColumns THEAD TR TD.clear { BACKGROUND: #f9f9f9 } TD.clear { BACKGROUND: #f9f9f9 } DIV.areaHighlight TABLE.gbColumns TBODY TR.frozenbar TD.dragCell { BACKGROUND: #f9f9f9 } DIV.areaHighlight TABLE.gbColumns TBODY TR TD.dragCell { BACKGROUND: #f9f9f9 } DIV.areaHighlight TABLE.gbColumns TBODY TR.frozen TD.dragCell { BACKGROUND: #f9f9f9 } DIV.areaHighlight TABLE.gbColumns TFOOT TR.lastRow TD.clear { BACKGROUND: #f9f9f9 } TABLE.gbColumns TBODY TR.frozenbar TD.dragCell { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = PADDING-BOTTOM: 0px! important; PADDING-TOP: 0px! important } TABLE.gbColumns TBODY TR.placeholder TD { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; LINE-HEIGHT: 0; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px; HEIGHT: 1px } TABLE.gbColumns TBODY TR.placeholder TD.clear { BACKGROUND: #f9f9f9 } TABLE.gbColumns TBODY TR TD.dragCell { OVERFLOW: visible; WIDTH: 4%; POSITION: relative } TABLE.gbColumns THEAD TR TD.clear { OVERFLOW: visible; WIDTH: 4%; POSITION: relative } UL.dragableHighlight LI TABLE.gbColumns THEAD TR TD.clear { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } UL.dragableHighlight LI TD.clear { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } UL.dragableHighlight LI TABLE.gbColumns TBODY TR.frozenbar TD.dragCell { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } UL.dragableHighlight LI TABLE.gbColumns TBODY TR TD.dragCell { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } UL.dragableHighlight LI TABLE.gbColumns TBODY TR.frozen TD.dragCell { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } UL.dragableHighlight LI TABLE.gbColumns TFOOT TR.lastRow TD.clear { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } TABLE.gbColumns THEAD TR TD.clear { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px } TR.rowdrag { Z-INDEX: 1; BACKGROUND: #ccc } .insertImg { Z-INDEX: 20; POSITION: relative; TOP: 12px } .insertImgUp { Z-INDEX: 20; RIGHT: -10px; POSITION: absolute } TABLE.inventory TBODY TR TD.smallCell { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; WIDTH: 1%; = PADDING-TOP: 3px; WHITE-SPACE: nowrap } TABLE.inventory THEAD TR TH.smallCell { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; WIDTH: 1%; = PADDING-TOP: 3px; WHITE-SPACE: nowrap } .clickOrder { DISPLAY: none } TABLE.inventory TBODY TR TD.clickOrder { BORDER-LEFT: medium none; BACKGROUND-COLOR: #ddd } TABLE.inventory TR TD.endCell { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = PADDING-BOTTOM: 0px! important; WIDTH: 1px! important; PADDING-TOP: 0px! = important; BACKGROUND-COLOR: #ddd! important } TABLE.inventory TR.orderRow TD.clickOrder { BACKGROUND-COLOR: #ddd; TEXT-ALIGN: center } TABLE.inventory TR.orderRow TD.clickOrder DIV { POSITION: relative } .sortedplus { BACKGROUND-POSITION: 48% 2px; BACKGROUND-IMAGE: = url(images/sort_on.gif); BACKGROUND-REPEAT: no-repeat } .dragCol { BACKGROUND-COLOR: #999 } .dragHover { BACKGROUND-POSITION: right top; BACKGROUND-IMAGE: = url(images/dragarrow.gif); BACKGROUND-REPEAT: no-repeat } .hideoff { LEFT: -1000px; OVERFLOW: hidden; WIDTH: 1px; POSITION: absolute; TOP: = 0px; HEIGHT: 1px } DIV.rumble UL LI.jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #e2eefe; = PADDING-BOTTOM: 1px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #5577bb 1px solid; TEXT-ALIGN: left } DIV.rumble UL LI.jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #e2eefe; = PADDING-BOTTOM: 1px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #5577bb 1px solid; TEXT-ALIGN: left } DIV.rumble_top UL LI.jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #e2eefe; = PADDING-BOTTOM: 1px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #5577bb 1px solid; TEXT-ALIGN: left } DIV.rumble_top UL LI.jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #e2eefe; = PADDING-BOTTOM: 1px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #5577bb 1px solid; TEXT-ALIGN: left } .hideme { DISPLAY: none } LI.jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #5577bb 1px solid; = BORDER-LEFT: #5577bb 1px solid; BORDER-BOTTOM: #5577bb 1px solid } .jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 18px! important; = BORDER-TOP: #acc2df 1px solid; PADDING-LEFT: 6px! important; BACKGROUND: = #e2eefe; PADDING-BOTTOM: 2px! important; BORDER-LEFT: #acc2df 1px solid; = PADDING-TOP: 2px! important; BORDER-BOTTOM: #5577bb 1px solid; POSITION: = relative; TEXT-ALIGN: left } DIV.jumptopage { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 18px! important; = BORDER-TOP: #acc2df 1px solid; PADDING-LEFT: 6px! important; BACKGROUND: = #e2eefe; PADDING-BOTTOM: 2px! important; BORDER-LEFT: #acc2df 1px solid; = PADDING-TOP: 2px! important; BORDER-BOTTOM: #5577bb 1px solid; POSITION: = relative; TEXT-ALIGN: left } DIV.jumptopage { FLOAT: right } .hideme { DISPLAY: none } LI.jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #5577bb 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #5577bb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid } .jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #5577bb 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #5577bb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid } DIV.jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #5577bb 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #5577bb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid } DIV.jumptopage INPUT { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #5577bb 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #5577bb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid } .jumptopage INPUT.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #566e94 1px solid; PADDING-LEFT: 1px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; BACKGROUND: url(images/action_button_back.gif) #888 repeat-x left = top; PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px = solid; WIDTH: auto; COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: = #344a6c 1px solid; TEXT-DECORATION: none } DIV.jumptopage INPUT.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #566e94 1px solid; PADDING-LEFT: 1px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; BACKGROUND: url(images/action_button_back.gif) #888 repeat-x left = top; PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px = solid; WIDTH: auto; COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: = #344a6c 1px solid; TEXT-DECORATION: none } DIV.jumptopage BUTTON { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; RIGHT: 0px! important; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: medium none; = PADDING-TOP: 0px; BORDER-BOTTOM: medium none; POSITION: absolute; TOP: = -2px } .jumptopage BUTTON { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; RIGHT: 0px! important; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: medium none; = PADDING-TOP: 0px; BORDER-BOTTOM: medium none; POSITION: absolute; TOP: = -2px } LI.inventory_paging BUTTON { RIGHT: -2px! important } DIV.jumptopage INPUT#currentpage_bot { WIDTH: auto } DIV.jumptopage INPUT#currentpage_top { WIDTH: auto } INPUT#currentpage_bot { WIDTH: auto } INPUT#currentpage_top { WIDTH: auto } .paging { CLEAR: left; FONT-SIZE: 95%; FLOAT: right; TEXT-ALIGN: right } .paging SPAN { BORDER-RIGHT: #ccc 1px dotted; PADDING-RIGHT: 6px; PADDING-LEFT: 0px; = PADDING-BOTTOM: 1px; MARGIN: 0px 9px 0px 0px; PADDING-TOP: 1px } .paging INPUT { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; FONT-WEIGHT: = bold; FONT-SIZE: 100%; BORDER-LEFT: #ccc 1px solid; WIDTH: 2em; = BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: center } .paging A { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline-block; PADDING-LEFT: 4px; BACKGROUND: = url(images/button3_back.gif) #ededed; PADDING-BOTTOM: 1px; BORDER-LEFT: = #ccc 1px solid; COLOR: #444; PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px = solid; TEXT-DECORATION: none } .paging A:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fafafa; BORDER-LEFT: #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid; = TEXT-DECORATION: none } .paging A.inactive { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; BACKGROUND: = #ededed; BORDER-LEFT: #ddd 1px solid; COLOR: #bbb; BORDER-BOTTOM: #ddd = 1px solid; TEXT-DECORATION: none } .paging A.inactive:hover { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; BACKGROUND: = #ededed; BORDER-LEFT: #ddd 1px solid; COLOR: #bbb; BORDER-BOTTOM: #ddd = 1px solid; TEXT-DECORATION: none } .pagingprefs { PADDING-RIGHT: 0px; MARGIN-TOP: 3px; PADDING-LEFT: 0px; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; COLOR: #999; PADDING-TOP: 3px; TEXT-ALIGN: = right } .pagingprefs A.microedit { BORDER-RIGHT: 0px; PADDING-RIGHT: 4px; BORDER-TOP: 0px; PADDING-LEFT: = 4px; BACKGROUND: #fff7de; PADDING-BOTTOM: 1px; BORDER-LEFT: 0px; COLOR: = #999; PADDING-TOP: 1px; BORDER-BOTTOM: 0px } .pagingprefs A.microedit:hover { COLOR: #666; TEXT-DECORATION: underline } .pagingform { PADDING-RIGHT: 28px; PADDING-LEFT: 12px; BACKGROUND: #fff7de; = PADDING-BOTTOM: 4px; COLOR: #666; LINE-HEIGHT: 160%; PADDING-TOP: 4px; = POSITION: relative; TEXT-ALIGN: left } .pagingform A.close { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; RIGHT: 4px; BACKGROUND: none transparent scroll repeat 0% 0%; = PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: = 0px; POSITION: absolute; TOP: 4px } .pagingform DIV { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 0px; = PADDING-TOP: 3px } .pagingprefs SPAN#backandforth A { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold! important; = FONT-SIZE: 110%; PADDING-BOTTOM: 2px; LINE-HEIGHT: 90%; PADDING-TOP: 0px } DIV.rumble UL LI.jumptopage A.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 5px; = BACKGROUND-POSITION: left top; BORDER-TOP: #566e94 1px solid; = PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 100%; = BACKGROUND-IMAGE: url(images/gradient_black_short_bt.png); = PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px solid; = COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: #344a6c 1px solid; = BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: #819ac0 } DIV.rumble_top UL LI.jumptopage A.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 5px; = BACKGROUND-POSITION: left top; BORDER-TOP: #566e94 1px solid; = PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 100%; = BACKGROUND-IMAGE: url(images/gradient_black_short_bt.png); = PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px solid; = COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: #344a6c 1px solid; = BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: #819ac0 } .paging A.gotopage { BORDER-RIGHT: #344a6c 1px solid; PADDING-RIGHT: 5px; = BACKGROUND-POSITION: left top; BORDER-TOP: #566e94 1px solid; = PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 100%; = BACKGROUND-IMAGE: url(images/gradient_black_short_bt.png); = PADDING-BOTTOM: 1px; MARGIN: 0px 2px; BORDER-LEFT: #566e94 1px solid; = COLOR: #fff; PADDING-TOP: 1px; BORDER-BOTTOM: #344a6c 1px solid; = BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: #819ac0 } DIV.rumble UL LI.jumptopage A.gotopage:hover { BORDER-LEFT-COLOR: #566e94; BACKGROUND: #566e94; BORDER-BOTTOM-COLOR: = #566e94; BORDER-TOP-COLOR: #566e94; BORDER-RIGHT-COLOR: #566e94 } DIV.rumble_top UL LI.jumptopage A.gotopage:hover { BORDER-LEFT-COLOR: #566e94; BACKGROUND: #566e94; BORDER-BOTTOM-COLOR: = #566e94; BORDER-TOP-COLOR: #566e94; BORDER-RIGHT-COLOR: #566e94 } .paging A.gotopage:hover { BORDER-LEFT-COLOR: #566e94; BACKGROUND: #566e94; BORDER-BOTTOM-COLOR: = #566e94; BORDER-TOP-COLOR: #566e94; BORDER-RIGHT-COLOR: #566e94 } TABLE.splashTable { MARGIN: 3px 0px 12px; WIDTH: 100%; BORDER-BOTTOM: #ccc 2px solid; = BORDER-COLLAPSE: collapse } TABLE.splashTable THEAD TR { COLOR: #999 } TABLE.splashTable THEAD TR TH { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 85%; = PADDING-BOTTOM: 6px; PADDING-TOP: 6px } TABLE.splashTable THEAD TR TH A { BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #666; = TEXT-DECORATION: none } TABLE.splashTable THEAD TR TH A:hover { BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #333; = TEXT-DECORATION: underline } TABLE.splashTable TBODY TR { BORDER-TOP: #ddd 1px solid } TABLE.splashTable TBODY TR TH { PADDING-RIGHT: 9px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 9px; = FONT-SIZE: 85%; PADDING-BOTTOM: 2px; COLOR: #777; PADDING-TOP: 2px } TABLE.splashTable TBODY TR TD { PADDING-RIGHT: 9px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 9px; = FONT-SIZE: 85%; PADDING-BOTTOM: 2px; COLOR: #777; PADDING-TOP: 2px } TABLE.splashTable TBODY TR TD.controls { TEXT-ALIGN: center } TABLE.splashTable TBODY TR TH { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 2px; COLOR: = #000; PADDING-TOP: 2px; TEXT-ALIGN: left } TABLE.splashTable TH.smallCell { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 1%; = PADDING-TOP: 0px; WHITE-SPACE: nowrap } TABLE.splashTable TD.smallCell { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 1%; = PADDING-TOP: 0px; WHITE-SPACE: nowrap } .contentBlock A { DISPLAY: block; BACKGROUND: url(images/more_options.gif) no-repeat 99% = center; TEXT-DECORATION: none } .contentBlock A.collapse { DISPLAY: block; BACKGROUND: url(images/less_options.gif) no-repeat 99% = center; TEXT-DECORATION: none } .contentBlock A.collapse:hover { TEXT-DECORATION: underline } .contentBlock A.hover { TEXT-DECORATION: underline } DIV#dataCollectionContainer DIV.contentBlock { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 6px; MARGIN: 0pt 0px 0em; BORDER-LEFT: 0px; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px } UNKNOWN { BACKGROUND: red } TABLE.splashTable INPUT { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: = 0px } TABLE.reorderCols { CLEAR: both; FONT-SIZE: 95%; MARGIN: 18px 0pt 9px; WIDTH: 100%; = BORDER-COLLAPSE: collapse } TABLE.reorderCols THEAD TR TH { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 4px; BACKGROUND: #ededed; PADDING-BOTTOM: 0px; = BORDER-LEFT: #ccc 1px solid; CURSOR: move; PADDING-TOP: 0px; = BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: left } TABLE.reorderCols THEAD TR TH.noReorderCol { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: none = transparent scroll repeat 0% 0%; BORDER-LEFT: medium none; CURSOR: = default; BORDER-BOTTOM: #ccc 1px solid } TABLE.reorderCols TBODY TR TD { BORDER-RIGHT: #dddddd 1px solid; PADDING-RIGHT: 4px; PADDING-LEFT: 4px; = PADDING-BOTTOM: 2px; VERTICAL-ALIGN: top; BORDER-LEFT: #dddddd 1px = solid; PADDING-TOP: 2px; BORDER-BOTTOM: #eeeeee 1px solid; TEXT-ALIGN: = left } TABLE.reorderCols TBODY TR TH { BORDER-RIGHT: #dddddd 1px solid; PADDING-RIGHT: 4px; PADDING-LEFT: 4px; = PADDING-BOTTOM: 2px; VERTICAL-ALIGN: top; BORDER-LEFT: #dddddd 1px = solid; PADDING-TOP: 2px; BORDER-BOTTOM: #eeeeee 1px solid; TEXT-ALIGN: = left } TABLE.reorderCols TBODY TR TH { BACKGROUND: #ededed; COLOR: #555555; BORDER-BOTTOM: #cccccc 1px solid } TABLE.reorderCols THEAD TH SPAN.reorderToolTip { BACKGROUND: url(images/cm_reorder_leftright.gif) #dddddd no-repeat 8px = 50% } TABLE.reorderCols THEAD TH SPAN.firstItem { BACKGROUND: url(images/cm_reorder_right.gif) #dddddd no-repeat 8px 50% } TABLE.reorderCols THEAD TH SPAN.reorder2:hover { CURSOR: move; BACKGROUND-COLOR: #efefef } TABLE.reorderCols THEAD TR TH.axis { BACKGROUND: #ededed 0% 50%; COLOR: #555555; BORDER-BOTTOM: #cccccc 1px = solid } .ghostTd { BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: #000 1px = solid; PADDING-LEFT: 8px; BACKGROUND: #eee; PADDING-BOTTOM: 2px; FONT: = 10px arial; BORDER-LEFT: #000 1px solid; WIDTH: auto; PADDING-TOP: 2px; = BORDER-BOTTOM: #000 1px solid; POSITION: absolute; HEIGHT: auto } TABLE.reorderCols THEAD TH.dragging { BACKGROUND: #ccc } TABLE.reorderCols THEAD TH.hovering { BACKGROUND: #666666 } TABLE.reorderCols THEAD TH.hovering IMG { DISPLAY: none } TD.removeCell { COLOR: #999; TEXT-DECORATION: line-through } TD.removeCell SPAN A { COLOR: #999; TEXT-DECORATION: line-through } TD.removeCell SPAN A IMG { FILTER: alpha(opacity=3D30); opacity: 0.3 } UL.easylist { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 10px 0px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: = none } UL.contentList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 10px 0px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: = none } UL.easylist { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 3px; PADDING-TOP: 0px; POSITION: relative } UL.contentList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 3px; PADDING-TOP: 0px; POSITION: relative } .contentPageItem { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px = 0px 3px; PADDING-TOP: 0px; POSITION: relative } .contentListRight { FONT-WEIGHT: normal; RIGHT: 6px; LEFT: auto; POSITION: absolute } .pagedContentListRight { TOP: 4px } UL.noimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 10px 0px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: = none } UL.buildList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 10px 0px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: = none } UL.contentListPlain { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 10px 0px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: = none } UL.announcementList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 10px 0px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: = none } UL.noimg LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px; POSITION: = relative } UL.buildList LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px; POSITION: = relative } UL.contentListPlain LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px; POSITION: = relative } UL.announcementList LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 3px; PADDING-TOP: 0px; POSITION: = relative } UL.noimg LI DIV.item_icon { DISPLAY: none } UL.contentListPlain LI DIV.item_icon { DISPLAY: none } UL.noimg LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.buildList LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.contentListPlain LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.contentList LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.announcementList LI H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } DIV.staticHeader H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } DIV.staticFooter H3.item { PADDING-RIGHT: 6px; BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 20px; = FONT-SIZE: 110%; PADDING-BOTTOM: 6px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 6px } UL.contentList LI.read H3.item { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: = 0px } UL.buildList LI INPUT { FLOAT: left; MARGIN: 8px 8px 8px 26px } UL.buildList LI INPUT.browse { MARGIN: 0px 0px 6px } UL.buildList LI INPUT.genericButton { MARGIN: 0px 0px 6px } UL.buildList LI INPUT[type=3Dbutton] { MARGIN: 0px 0px 6px } UL.easylist LI H3.item { PADDING-RIGHT: 6px; PADDING-LEFT: 75px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.contentList LI H3.item { PADDING-RIGHT: 6px; PADDING-LEFT: 75px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.easylist LI DIV.item_icon { LEFT: 12px; MARGIN: 0px 8px 0px 18px; POSITION: absolute } UL.contentList LI DIV.item_icon { LEFT: 12px; MARGIN: 0px 8px 0px 18px; POSITION: absolute } UL.easylist LI DIV.item_icon A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } UL.contentList LI DIV.item_icon A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } UL.iconsOnly { MARGIN: 0px auto; WIDTH: 80% } UL.iconsOnly LI DIV.item_icon { DISPLAY: block! important; POSITION: relative! important; TEXT-ALIGN: = center! important } UL.iconsOnly LI.read DIV.item_icon { DISPLAY: block! important; POSITION: relative! important; TEXT-ALIGN: = center! important } UL.iconsOnly LI.read DIV.item_icon { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: = 0px } UL.iconsOnly LI { FLOAT: left! important; WIDTH: 49%; MARGIN-RIGHT: 6px; TEXT-ALIGN: = center } UL.iconsOnly LI:hover DIV.item_icon { BACKGROUND: #ededed } UL.iconsOnly LI:hover H3 { BACKGROUND: #ededed } UL.iconsOnly LI:focus DIV.item_icon { BACKGROUND: #ededed } UL.iconsOnly LI:focus H3 { BACKGROUND: #ededed } UL.iconsOnly LI H3.item { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; PADDING-BOTTOM: 6px; BORDER-LEFT: #ededed 2px solid; PADDING-TOP: = 6px; BORDER-BOTTOM: 0px } UL.iconsOnly LI DIV.item_icon { BORDER-TOP: #ededed 2px solid; MIN-HEIGHT: 50px; LEFT: auto; MARGIN: = 0px 0px 0px 18px; BORDER-LEFT: #ededed 2px solid; TOP: 0px } UL.iconsOnly LI SPAN.reorder { BACKGROUND-POSITION: center 50%; FILTER: alpha(opacity=3D100); LEFT: = -2px; BACKGROUND-IMAGE: url(images/cm_reorder.gif); WIDTH: 20px; CURSOR: = move; BACKGROUND-REPEAT: no-repeat; POSITION: absolute; TOP: 2px; = HEIGHT: 28px; BACKGROUND-COLOR: #ededed; opacity: 1; = -moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px } .details { PADDING-RIGHT: 0px; PADDING-LEFT: 20px; FONT-WEIGHT: normal; = PADDING-BOTTOM: 0px; BORDER-LEFT: #ccc 2px solid; COLOR: #444; = PADDING-TOP: 1px } DIV.details P { PADDING-RIGHT: 6px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 6px; MARGIN: 0px; PADDING-TOP: 3px } .container P { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 95%; = PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-TOP: 6px } .container P.important { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 95%; = PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-TOP: 6px } .container P.centered { TEXT-ALIGN: center } .details P SPAN.note { FONT-WEIGHT: bold } .details P.important { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 9px; PADDING-TOP: 0px } .details P.important SPAN { FONT-WEIGHT: normal; COLOR: #888 } .details P SPAN.note { FONT-WEIGHT: bold } DIV.announcementInfo { PADDING-LEFT: 12px; RIGHT: 0px; BACKGROUND: #fff; BORDER-LEFT: #ccc 1px = dotted; WIDTH: 13em; BOTTOM: 12px; PADDING-TOP: 4px; POSITION: absolute; = TOP: 0px } P.itemDetails { PADDING-LEFT: 12px; RIGHT: 0px; BACKGROUND: #fff; BORDER-LEFT: #ccc 1px = dotted; WIDTH: 13em; BOTTOM: 12px; PADDING-TOP: 4px; POSITION: absolute; = TOP: 0px } DIV.itemDetails { PADDING-LEFT: 12px; RIGHT: 0px; BACKGROUND: #fff; BORDER-LEFT: #ccc 1px = dotted; WIDTH: 13em; BOTTOM: 12px; PADDING-TOP: 4px; POSITION: absolute; = TOP: 0px } P.itemDetails { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px; TOP: 2px } DIV.itemDetails { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px; TOP: 2px } .buildList DIV.announcementInfo { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px; TOP: 2px } DIV.announcementInfo P { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 85%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 2px } DIV.announcementInfo { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 85%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 2px } P.itemDetails P { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 85%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 2px } DIV.itemDetails P { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 85%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 2px } DIV.announcementInfo P { FONT-SIZE: 100% } DIV.announcementInfo P SPAN { COLOR: #999 } DIV.announcementInfo SPAN { COLOR: #999 } P.itemDetails SPAN { COLOR: #999 } DIV.itemDetails SPAN { COLOR: #999 } P.itemDetails { FONT-SIZE: 90% } DIV.itemDetails { FONT-SIZE: 90% } P.itemDetails SPAN { FONT-SIZE: 95% } DIV.itemDetails SPAN { FONT-SIZE: 95% } DIV.announcementInfo P SPAN SPAN { FONT-SIZE: 95%! important } DIV.announcementInfo SPAN SPAN { FONT-SIZE: 95%! important } DIV.noItems { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; FONT-SIZE: 95%; = PADDING-BOTTOM: 6px; COLOR: #555; PADDING-TOP: 6px; TEXT-ALIGN: center } .details P.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; WIDTH: 98%; PADDING-TOP: = 0px } .details UL.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; WIDTH: 98%; PADDING-TOP: = 0px } P.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; WIDTH: 98%; PADDING-TOP: = 0px } UL.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; WIDTH: 98%; PADDING-TOP: = 0px } .details UL.attachments { MARGIN: 3px 0px 9px; LIST-STYLE-TYPE: none } UL.attachments { MARGIN: 3px 0px 9px; LIST-STYLE-TYPE: none } .container UL.attachments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } .details UL.attachments LI { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px 6px 0px = 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px; BORDER-BOTTOM: medium = none } UL.attachments LI { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px 6px 0px = 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px; BORDER-BOTTOM: medium = none } UL.attachments LI.read { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px 6px 0px = 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px; BORDER-BOTTOM: medium = none } .details P.attachments SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } .details UL.attachments LI.label { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } P.attachments SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } UL.attachments LI.label { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } .details UL.attachments LI.read { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: 0px = 6px 0px 0px; COLOR: #888; PADDING-TOP: 2px } .details P.attachments SPAN { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } .details UL.attachments LI.label SPAN { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } P.attachments SPAN { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } UL.attachments LI.label SPAN { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px } .details P.attachments A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } .details UL.attachments LI A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } P.attachments A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } UL.attachments LI A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } UL.attachments LI A.removeTag { PADDING-RIGHT: 9px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } UL.attachments LI.addTag { WHITE-SPACE: nowrap } UL.attachments LI.addTag SPAN { DISPLAY: inline } UL.attachments LI.addTag A.browse { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; = PADDING-BOTTOM: 2px; PADDING-TOP: 0px; WHITE-SPACE: nowrap } UL.attachments LI.addTag SPAN.addTagField { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; BACKGROUND: #eee; FLOAT: none; = PADDING-BOTTOM: 6px; WIDTH: auto; PADDING-TOP: 6px } UL.attachments LI.addTag SPAN.addTagField INPUT { FLOAT: none; MARGIN: 0px; VERTICAL-ALIGN: middle } .details P.attachments A { PADDING-LEFT: 3px; TEXT-DECORATION: none } .details UL.attachments LI A SPAN { PADDING-LEFT: 3px; TEXT-DECORATION: none } P.attachments A { PADDING-LEFT: 3px; TEXT-DECORATION: none } UL.attachments LI A SPAN { PADDING-LEFT: 3px; TEXT-DECORATION: none } UL.noimg LI DIV.details { MARGIN-LEFT: 18px } UL.buildList LI DIV.details { MARGIN-LEFT: 18px } UL.contentListPlain LI DIV.details { MARGIN-LEFT: 18px } DIV.staticHeader DIV.details { MARGIN-LEFT: 18px } DIV.staticFooter DIV.details { MARGIN-LEFT: 18px } UL.announcementList LI DIV.details { PADDING-RIGHT: 0px; OVERFLOW-Y: visible; PADDING-LEFT: 20px; = OVERFLOW-X: auto; PADDING-BOTTOM: 0px; MARGIN: 0px 13em 0px 18px; = OVERFLOW: scroll; WIDTH: 70%; PADDING-TOP: 0px; HEIGHT: 1% } UL#announcementList LI DIV.details { PADDING-RIGHT: 0px; OVERFLOW-Y: visible; PADDING-LEFT: 20px; = OVERFLOW-X: auto; PADDING-BOTTOM: 0px; MARGIN: 0px 13em 0px 18px; = OVERFLOW: scroll; WIDTH: 70%; PADDING-TOP: 0px; HEIGHT: 1% } UL.announcementList-read LI DIV.details { MARGIN-LEFT: 0px! important } DIV.staticFooter DIV.details { MARGIN-LEFT: 18px } DIV.staticHeader { MARGIN: 10px 0px 0px } DIV.staticFooter DIV.details { PADDING-BOTTOM: 12px; BORDER-BOTTOM: #ddd 1px solid } .gbColumns_rumble { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN-LEFT: = 60px! important; BORDER-LEFT: #ddd 1px solid; BORDER-BOTTOM: 0px } .gbColumns_rumble_bottom { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN-LEFT: = 60px! important; BORDER-LEFT: #ddd 1px solid; BORDER-BOTTOM: 0px } .gbColumns_rumble_bottom { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: 0px; BORDER-LEFT: #ddd 1px = solid; BORDER-BOTTOM: #ddd 1px solid } .staticHeader { CLEAR: both; ZOOM: 1; POSITION: relative } .staticFooter { CLEAR: both; ZOOM: 1; POSITION: relative } .staticHeader DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } .staticFooter DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } UL.gbCategories LI DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } .staticHeader DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } .staticFooter DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } UL.gbCategories LI DIV.itemHeaderControl { RIGHT: 0px; ZOOM: 1 } .staticHeader DIV.itemHeaderControl A { DISPLAY: inline-block } .staticFooter DIV.itemHeaderControl A { DISPLAY: inline-block } UL.gbCategories LI DIV.itemHeaderControl A { DISPLAY: inline-block } HTML *.staticHeader DIV.itemHeaderControl { TOP: 5px } HTML *.staticFooter DIV.itemHeaderControl { TOP: 5px } HTML * UL.gbCategories LI DIV.itemHeaderControl { TOP: 5px } UL.dragableHighlight { PADDING-RIGHT: 12px; BORDER-TOP: #999 1px dashed; PADDING-LEFT: 12px; = BACKGROUND: #fff; PADDING-BOTTOM: 3px; MARGIN: 12px -12px; PADDING-TOP: = 12px; BORDER-BOTTOM: #999 1px dashed } UL.gbCategories LI H3.item { PADDING-LEFT: 9px } DIV.staticHeader H3.item { PADDING-LEFT: 9px } DIV.staticFooter H3.item { PADDING-LEFT: 9px } UL.gbCategories LI H3.item A.toggleLink { MARGIN-TOP: -2px; MARGIN-RIGHT: 6px } DIV.staticHeader H3.item A.toggleLink { MARGIN-TOP: -2px; MARGIN-RIGHT: 6px } DIV.staticFooter H3.item A.toggleLink { MARGIN-TOP: -2px; MARGIN-RIGHT: 6px } DIV.areaHighlight DIV.container { BACKGROUND: #f9f9f9 } DIV.areaHighlight DIV.bottomRound B { BACKGROUND: #f9f9f9 } UL.dragableHighlight LI H3.item { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .dragableHighlight DIV.details { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .caretTitleModifier { PADDING-RIGHT: 0px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; FONT-SIZE: = 90%; PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 1px } DIV.landingPageColumn UL LI H3.hiddenLink .linkStatus { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 85%; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: = 0.4em } .caretTitleModifier A.browse { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 92%; PADDING-BOTTOM: = 1px; COLOR: #444; PADDING-TOP: 0px; WHITE-SPACE: nowrap } DIV.landingPageColumn UL LI H3.hiddenLink A.browse { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 92%; PADDING-BOTTOM: = 1px; COLOR: #444; PADDING-TOP: 0px; WHITE-SPACE: nowrap } .caretTitleModifier A.browse:hover { TEXT-DECORATION: none } DIV.landingPageColumn UL LI H3.hiddenLink A.browse:hover { TEXT-DECORATION: none } .caretTitleModifier A.browse:focus { TEXT-DECORATION: none } DIV.landingPageColumn UL LI H3.hiddenLink A.browse:focus { TEXT-DECORATION: none } UL.easylist LI.read { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 9px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px } UL.noimg LI.read { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 9px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px } UL.buildList LI.read { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 9px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px } UL.contentList LI.read { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 9px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px } UL.contentListPlain LI.read { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 9px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px } DIV.read { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 0px 9px; BORDER-LEFT: = 0px; BORDER-BOTTOM: 0px } UL.noimg LI.read H3.item { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.noimg LI.read H3 { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.buildList LI.read H3 { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.contentListPlain LI.read H3.item { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.contentListPlain LI.read H3 { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.announcementList LI.read H3 { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.announcementList-read LI H3.item { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; PADDING-LEFT: = 6px; FONT-WEIGHT: bold; FONT-SIZE: 110%; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; WORD-BREAK: normal; = PADDING-TOP: 6px; BORDER-BOTTOM: 0px; WORD-WRAP: break-word } UL.announcementList LI.read H3 { PADDING-RIGHT: 13em; PADDING-LEFT: 18px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; WORD-BREAK: normal; PADDING-TOP: 6px; WORD-WRAP: = break-word } UL.announcementList LI H3.item { PADDING-RIGHT: 13em; PADDING-LEFT: 18px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; WORD-BREAK: normal; PADDING-TOP: 6px; WORD-WRAP: = break-word } UL.announcementList-read LI H3.item { PADDING-RIGHT: 13em; PADDING-LEFT: 18px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; WORD-BREAK: normal; PADDING-TOP: 6px; WORD-WRAP: = break-word } UL#announcementList LI H3.item { PADDING-RIGHT: 13em; PADDING-LEFT: 18px; OVERFLOW-X: hidden; = PADDING-BOTTOM: 6px; WORD-BREAK: normal; PADDING-TOP: 6px; WORD-WRAP: = break-word } UL.easylist LI.read H3.item { PADDING-RIGHT: 6px; PADDING-LEFT: 58px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.easylist LI.read H3 { PADDING-RIGHT: 6px; PADDING-LEFT: 58px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.contentList LI.read H3.item { PADDING-RIGHT: 6px; PADDING-LEFT: 58px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.contentList LI.read H3 { PADDING-RIGHT: 6px; PADDING-LEFT: 58px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } UL.easylist LI.read DIV.item_icon { LEFT: 0px; MARGIN: 0px 8px 0px 12px; POSITION: absolute; TOP: 0px } UL.contentList LI.read DIV.item_icon { LEFT: 0px; MARGIN: 0px 8px 0px 12px; POSITION: absolute; TOP: 0px } UL.noimg LI.read DIV.details { BORDER-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; MARGIN-LEFT: = 6px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } UL.buildList LI.read DIV.details { BORDER-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; MARGIN-LEFT: = 6px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } UL.contentListPlain LI.read DIV.details { BORDER-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; MARGIN-LEFT: = 6px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } UL.announcementList LI.read DIV.details { BORDER-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; MARGIN-LEFT: = 6px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } UL.announcementList-read LI DIV.details { BORDER-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; MARGIN-LEFT: = 6px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } UL.easylist LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.noimg LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.buildList LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentList LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentListPlain LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.announcementList LI.read H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.announcementList-read LI H3.item:hover { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.buildList LI.read H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentList LI.read H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentListPlain LI.read H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.announcementList LI.read H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.announcementList-read LI H3.item:focus { BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: default } UL.contentList LI.read DIV.details { BORDER-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; MARGIN-LEFT: = 75px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px } UL.contentList LI DIV.details { PADDING-LEFT: 72px; OVERFLOW-X: auto; MARGIN-LEFT: 18px; WORD-BREAK: = normal; WORD-WRAP: break-word } UL.staffInfoList LI DIV.details { MARGIN-RIGHT: 160px } UL.staffInfoList LI.hasPhoto DIV.details { MIN-HEIGHT: 135px; HEIGHT: 135px } UL.subList { PADDING-RIGHT: 0px; BORDER-TOP: #cccccc 1px dotted; PADDING-LEFT: 6px; = BACKGROUND: #fff; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 6px 12px; = BORDER-LEFT: #cccccc 1px dotted; PADDING-TOP: 4px; LIST-STYLE-TYPE: none } UL.subList-reorder { PADDING-RIGHT: 0px; BORDER-TOP: #cccccc 1px dotted; PADDING-LEFT: 6px; = BACKGROUND: #fff; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 6px 12px; = BORDER-LEFT: #cccccc 1px dotted; PADDING-TOP: 4px; LIST-STYLE-TYPE: none } UL.subList-reorder { =09 } UL.subList LI { BORDER-RIGHT: medium none; PADDING-RIGHT: 3px; BORDER-TOP: medium none; = PADDING-LEFT: 23px; PADDING-BOTTOM: 3px; MARGIN: 0px; BORDER-LEFT: = medium none; PADDING-TOP: 3px; BORDER-BOTTOM: medium none } UL.buildList UL.detailList { PADDING-RIGHT: 3px; PADDING-LEFT: 23px; PADDING-BOTTOM: 3px; MARGIN: = 0px; PADDING-TOP: 3px } UL.subList-reorder LI { PADDING-RIGHT: 3px; PADDING-LEFT: 23px; PADDING-BOTTOM: 3px; MARGIN: = 0px; PADDING-TOP: 3px } UL.subList-reorder LI { CURSOR: move } UL.subList LI A IMG { VERTICAL-ALIGN: middle } UL.subList-reorder LI A IMG { VERTICAL-ALIGN: middle } UL.subList LI P { PADDING-RIGHT: 0px; DISPLAY: none; PADDING-LEFT: 0px; FONT-SIZE: 90%; = PADDING-BOTTOM: 0px; MARGIN: 3px 6px 3px 24px; COLOR: #444; PADDING-TOP: = 0px } UL.subList-reorder LI P { PADDING-RIGHT: 0px; DISPLAY: none; PADDING-LEFT: 0px; FONT-SIZE: 90%; = PADDING-BOTTOM: 0px; MARGIN: 3px 6px 3px 24px; COLOR: #444; PADDING-TOP: = 0px } UL.subList LI P SPAN { DISPLAY: inline; FONT-WEIGHT: bold; FLOAT: none } UL.buildList UL.detailList LI UL.subList LI P SPAN { DISPLAY: inline; FONT-WEIGHT: bold; FLOAT: none } UL.subList-reorder LI P SPAN { DISPLAY: inline; FONT-WEIGHT: bold; FLOAT: none } UL.buildList UL.subList-reorder LI SPAN.reorder { BORDER-RIGHT: #ccc 1px solid; BACKGROUND: = url(images/cm_reorder_updown.gif) #ededed no-repeat center center; = FILTER: alpha(opacity=3D100); LEFT: 0px; WIDTH: 16px! important; CURSOR: = move; POSITION: absolute; TOP: 3px; HEIGHT: 18px; opacity: 1; = -moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px } UL.subList-reorder LI:hover SPAN.reorder { opacity: 1 } UL.subList-reorder LI:focus SPAN.reorder { opacity: 1 } UL.subList LI P { PADDING-RIGHT: 0px; DISPLAY: none; PADDING-LEFT: 0px; FONT-SIZE: 90%; = VISIBILITY: hidden; PADDING-BOTTOM: 0px; MARGIN: 3px 6px 3px 24px; = COLOR: #444; PADDING-TOP: 0px } UL.subList-reorder P.itemDetails { DISPLAY: none } UL.subList-reorder LI DIV.itemDetails { DISPLAY: none } UL.subList-reorder DIV.details { DISPLAY: none } UL.subList DIV.details { DISPLAY: none } P.itemDetails + DIV.details { OVERFLOW: visible; MARGIN-RIGHT: 12.5em } DIV.itemDetails + DIV.details { OVERFLOW: visible; MARGIN-RIGHT: 12.5em } UL.subList LI P SPAN { FONT-WEIGHT: bold } UL.subListArtifact { CLEAR: both } UL.detailList UL.subListArtifact { CLEAR: both } UL.subListArtifact LI { POSITION: static } UL.detailList UL.subListArtifact LI { POSITION: static } UL.detailList UL.subListArtifact { ZOOM: 1 } UL.detailList UL.subListArtifact LI { ZOOM: 1 } UL.detailList UL.subListArtifact LI A { ZOOM: 1 } UL.buildList UL.detailList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 0.6em 0.7em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.buildList UL.detailList UL.subList { MARGIN: 0px 0px 6px } UL.buildList UL.detailList OL.subList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; LIST-STYLE-POSITION: inside; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: = decimal } UL.buildList UL.detailList LI { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; PADDING-BOTTOM: 0.2em; MARGIN: 0px 0px 0.2em; = BORDER-LEFT: medium none; PADDING-TOP: 0px; BORDER-BOTTOM: medium none } UL.buildList UL.detailList LI SPAN { DISPLAY: block; FONT-WEIGHT: bold; FLOAT: left; WIDTH: 20% } UL.buildList UL LI DIV { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0.3em; FLOAT: left; = PADDING-BOTTOM: 0px; WIDTH: 79%; PADDING-TOP: 0px } UL.buildList UL LI DIV.contextMenuContainer { DISPLAY: inline; FLOAT: none; WIDTH: auto } UL.noimg LI DIV.contextMenuContainer { DISPLAY: inline; FLOAT: none; WIDTH: auto } UL.buildList LI.pageBreak H3.item { BORDER-TOP: #ccc 2px dotted; BACKGROUND-IMAGE: = url(images/readback.png); COLOR: #777 } UL.buildList LI.sectionBreak H3.item { BORDER-TOP: #ccc 2px dotted; BACKGROUND-IMAGE: = url(images/readback.png); COLOR: #777 } DIV.itemHeaderControl { RIGHT: 12.7em; POSITION: absolute; TOP: 9px } DIV.itemHeaderControl A { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline-block; PADDING-LEFT: 3px; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x; PADDING-BOTTOM: 2px; = BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #aaa 1px = solid } DIV.itemHeaderControl A:hover { =09 } DIV.itemHeaderControl A IMG { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } H3 SPAN.reorder { BACKGROUND: url(images/cm_reorder_updown.gif) #ededed no-repeat center = center; FILTER: alpha(opacity=3D100); LEFT: -2px; WIDTH: 20px; POSITION: = absolute; TOP: 2px; HEIGHT: 28px; opacity: 1; = -moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px } UL.iconsOnly LI H3.item SPAN.reorder { BACKGROUND-POSITION: center center; BACKGROUND-IMAGE: = url(images/cm_reorder.gif); BACKGROUND-REPEAT: no-repeat; TOP: 8px } UL.easylist LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.easylist LI H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.noimg LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.noimg LI H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.buildList LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentList LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } .contentPageItem H3.item:hover A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } .contentPageItem H3.item A.cmimg:hover { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.iconsOnly LI:hover H3.item SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.announcementList LI H3.item:hover SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.buildList LI H3.item:focus SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentList LI H3.item:focus SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:focus A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:focus SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.contentListPlain LI H3.item:focus A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } .contentPageItem H3.item:focus A.cmimg { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } .contentPageItem H3.item A.cmimg:focus { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.iconsOnly LI:focus H3.item SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.announcementList LI H3.item:focus SPAN.reorder { FILTER: alpha(opacity=3D100); CURSOR: move; opacity: 1 } UL.easylist LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.noimg LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.buildList LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.contentList LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.contentListPlain LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.announcementList LI H3.item:hover { BACKGROUND: #efefef; CURSOR: move } UL.buildList LI H3.item:focus { BACKGROUND: #efefef; CURSOR: move } UL.contentList LI H3.item:focus { BACKGROUND: #efefef; CURSOR: move } UL.contentListPlain LI H3.item:focus { BACKGROUND: #efefef; CURSOR: move } UL.announcementList LI H3.item:focus { BACKGROUND: #efefef; CURSOR: move } DIV.multiAssign { MARGIN: 3px 0px 9px } DIV.multiAssign UL { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: none } DIV.multiAssign UL LI { CLEAR: none; BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; = PADDING-LEFT: 6px; FONT-SIZE: 90%; BACKGROUND: #f6f6f6; FLOAT: left; = PADDING-BOTTOM: 6px; MARGIN: 0px 9px 0px 0px; BORDER-LEFT: 0px; WIDTH: = 13em; LINE-HEIGHT: 1.3em; PADDING-TOP: 1px; BORDER-BOTTOM: 0px; = TEXT-ALIGN: center; -moz-border-radius: 3px } DIV.multiAssign UL LI.read { CLEAR: none; BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; = PADDING-LEFT: 6px; FONT-SIZE: 90%; BACKGROUND: #f6f6f6; FLOAT: left; = PADDING-BOTTOM: 6px; MARGIN: 0px 9px 0px 0px; BORDER-LEFT: 0px; WIDTH: = 13em; LINE-HEIGHT: 1.3em; PADDING-TOP: 1px; BORDER-BOTTOM: 0px; = TEXT-ALIGN: center; -moz-border-radius: 3px } DIV.multiAssign UL LI A { FONT-WEIGHT: bold; FONT-SIZE: 100% } DIV.multiAssign UL LI A { FONT-WEIGHT: bold; FONT-SIZE: 100% } DIV.multiAssign UL LI P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = PADDING-TOP: 1px } DIV.multiAssign UL LI.label { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; FONT-WEIGHT: normal; FONT-SIZE: 95%; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; WIDTH: 12em; = COLOR: #888; LINE-HEIGHT: 1.1em; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; = WHITE-SPACE: normal; TEXT-ALIGN: left } DIV.multiAssign UL LI P SPAN { COLOR: #888 } DIV.multiAssign A.buttonMicro { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 5px; FONT-SIZE: 90%; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x 0% 50%; PADDING-BOTTOM: = 0px; MARGIN: 1px auto 12px; BORDER-LEFT: #ccc 1px solid; COLOR: #666; = PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px solid; WHITE-SPACE: nowrap; = TEXT-DECORATION: none } H3 A.buttonMicro { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 5px; FONT-SIZE: 90%; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x 0% 50%; PADDING-BOTTOM: = 0px; MARGIN: 1px auto 12px; BORDER-LEFT: #ccc 1px solid; COLOR: #666; = PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px solid; WHITE-SPACE: nowrap; = TEXT-DECORATION: none } DIV.multiAssign A.buttonMicro:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } H3 A.buttonMicro:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } DIV.multiAssign A.buttonMicro:focus { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } H3 A.buttonMicro:focus { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } DIV.multiAssign A.simpleLink { DISPLAY: block; FONT-WEIGHT: normal; COLOR: #666 } H3 SPAN.status A.buttonMicro { FONT-WEIGHT: normal; FONT-SIZE: 90%; MARGIN-LEFT: 6px } H3 SPAN.status { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: = 80%; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 3px; MARGIN-LEFT: 6px; = PADDING-TOP: 3px } H3 DIV.status { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: = 80%; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 3px; MARGIN-LEFT: 6px; = PADDING-TOP: 3px } H3 SPAN.status SPAN { COLOR: #888 } H3 DIV.status SPAN { COLOR: #888 } H3 DIV.status { DISPLAY: inline } .contentBlock { BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 1.4em; BORDER-TOP: #ddd = 1px solid; PADDING-LEFT: 1.4em; PADDING-BOTTOM: 1em; MARGIN: 0px 1em = 0.6em; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 0.6em; BORDER-BOTTOM: = #ddd 1px solid } .contentBlock H3 { PADDING-RIGHT: 0.4em; PADDING-LEFT: 0.4em; FONT-SIZE: 110%; = PADDING-BOTTOM: 0.4em; MARGIN: 0px 0px 1em; PADDING-TOP: 0.4em; = BORDER-BOTTOM: #ddd 1px solid } .contentBlock UL { PADDING-RIGHT: 0px; PADDING-LEFT: 1.2em; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .contentBlock UL.threeCol { FLOAT: left; WIDTH: 30% } .contentBlock UL.threeCol LI { PADDING-RIGHT: 0px; PADDING-LEFT: 22px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; BACKGROUND: url(images/list_bullet.gif) no-repeat 9px 4px; FLOAT: = none; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-TOP: 0px } .contentBlock UL.threeCol LI A { BACKGROUND-IMAGE: none } .contentBlock UL.threeCol LI A:hover { TEXT-DECORATION: underline } .contentBlock UL.threeCol LI A:focus { TEXT-DECORATION: underline } .contentBlock H3 INPUT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: normal; FONT-SIZE: 90%; = PADDING-BOTTOM: 1px; MARGIN-LEFT: 6px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #999 1px = solid } .contentBlock H3 SELECT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: normal; FONT-SIZE: 90%; = PADDING-BOTTOM: 1px; MARGIN-LEFT: 6px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #999 1px = solid } .contentBlock INPUT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: normal; FONT-SIZE: 90%; = PADDING-BOTTOM: 1px; MARGIN-LEFT: 6px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #999 1px = solid } .contentBlock SELECT { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: normal; FONT-SIZE: 90%; = PADDING-BOTTOM: 1px; MARGIN-LEFT: 6px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #999 1px = solid } .contentBlock OL LI INPUT[type=3D'checkbox'] { VERTICAL-ALIGN: middle; MARGIN-RIGHT: 6px } .contentBlock H3 A.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = FONT-SIZE: 90%; BACKGROUND: url(images/button3_back.gif) #ededed = repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: = 1px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } .contentBlock A.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = FONT-SIZE: 90%; BACKGROUND: url(images/button3_back.gif) #ededed = repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: = 1px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } .contentBlock INPUT.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline; PADDING-LEFT: 3px; FONT-WEIGHT: normal; = FONT-SIZE: 90%; BACKGROUND: url(images/button3_back.gif) #ededed = repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: = 1px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } DIV.landingListWrapper { MARGIN: 1.6em 0px 0px; TEXT-ALIGN: center } DIV.landingListWrapper UL.landingList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = auto; WIDTH: 90%; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.landingListWrapper UL.landingList-2cols { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = auto; WIDTH: 90%; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.landingListWrapper UL.landingList LI { MARGIN: 0px 0px 1.6em 0em; WIDTH: 50%; TEXT-ALIGN: left } DIV.landingListWrapper UL.landingList-2cols LI { FLOAT: left; MARGIN: 0px 3em 1.6em 0em; WIDTH: 45%; TEXT-ALIGN: left } DIV.landingListWrapper UL.landingList LI.restart { MARGIN-TOP: -13.6em } DIV.landingListWrapper UL.landingList LI A { TEXT-DECORATION: none } DIV.landingListWrapper UL.landingList-2cols LI A { TEXT-DECORATION: none } DIV.landingListWrapper UL.landingList LI A:hover { TEXT-DECORATION: underline } DIV.landingListWrapper UL.landingList-2cols LI A:hover { TEXT-DECORATION: underline } DIV.landingListWrapper UL.landingList LI A:focus { TEXT-DECORATION: underline } DIV.landingListWrapper UL.landingList-2cols LI A:focus { TEXT-DECORATION: underline } DIV.landingListWrapper UL.landingList LI P { PADDING-RIGHT: 0.6em; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 1.4em; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingListWrapper UL.landingList-2cols LI P { PADDING-RIGHT: 0.6em; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 1.4em; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingListWrapper UL.landingList LI UL { MARGIN: 0em 0.4em 0.4em 0.8em; LIST-STYLE-TYPE: square } DIV.landingListWrapper UL.landingList LI UL LI { CLEAR: left; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.landingListWrapper UL.landingList-2cols LI UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: = 0px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.landingListWrapper UL.landingList LI H3 { PADDING-RIGHT: 1.2em; PADDING-LEFT: 1.2em; FONT-SIZE: 110%; BACKGROUND: = url(images/list_bullet.gif) no-repeat 0.1em 0.7em; PADDING-BOTTOM: = 0.4em; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingListWrapper UL.landingList-2cols H3 { PADDING-RIGHT: 1.2em; PADDING-LEFT: 1.2em; FONT-SIZE: 110%; BACKGROUND: = url(images/list_bullet.gif) no-repeat 0.1em 0.7em; PADDING-BOTTOM: = 0.4em; MARGIN: 0px; PADDING-TOP: 0.4em } .containerLanding { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 400px; BACKGROUND: = #ededed; PADDING-BOTTOM: 12px; MARGIN: 0px; PADDING-TOP: 10px } DIV.landing DIV.container { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 400px; BACKGROUND: = #ededed; PADDING-BOTTOM: 12px; MARGIN: 0px; PADDING-TOP: 10px } BODY.landingBody DIV.container { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 400px; BACKGROUND: = #ededed; PADDING-BOTTOM: 12px; MARGIN: 0px; PADDING-TOP: 10px } DIV.landingPageColumn { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 1.2em 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.landingPageColumn { FLOAT: left } DIV.oneCol { =09 } DIV.twoCol { MARGIN: 1.2em 0px; WIDTH: 49% } DIV.threeCol { MARGIN: 1.2em 0px; WIDTH: 32.5% } DIV.landingPageColumn UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 0px 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.landingPageColumn UL.outcomesLanding { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0.4em; = PADDING-TOP: 0px } DIV.landingPageColumn UL LI { MARGIN: 0px 0px 1.6em 0em; TEXT-ALIGN: left } DIV.landingPageColumn UL.outcomesLanding LI { MARGIN: 0px 0px 1.2em 0em } DIV.landingPageColumn UL LI A { TEXT-DECORATION: none } DIV.landingPageColumn UL LI A:hover { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI H3 { PADDING-RIGHT: 1.2em; PADDING-LEFT: 1.2em; FONT-SIZE: 110%; BACKGROUND: = url(images/list_bullet.gif) no-repeat 0.1em 0.7em; PADDING-BOTTOM: = 0.4em; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingPageColumn UL.outcomesLanding LI A { PADDING-RIGHT: 1.2em; PADDING-LEFT: 1.2em; FONT-SIZE: 110%; BACKGROUND: = url(images/list_bullet.gif) no-repeat 0.1em 0.7em; PADDING-BOTTOM: = 0.4em; MARGIN: 0px; PADDING-TOP: 0.4em } DIV.landingPageColumn UL.outcomesLanding LI H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 115%; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0.4em; PADDING-TOP: 0.4em; = BORDER-BOTTOM: #ddd 1px solid } DIV.landingPageColumn UL.outcomesLanding LI A { FONT-WEIGHT: bold; FONT-SIZE: 100% } DIV.landingPageColumn UL.outcomesLanding LI P { BORDER-TOP: 0px } DIV.landingPageColumn UL LI H3 IMG { MARGIN: 0px 0px 0px -12px } DIV.landingPageColumn UL LI H3.hiddenLink { PADDING-RIGHT: 1.2em; PADDING-LEFT: 4.2em; PADDING-BOTTOM: 0.6em; = PADDING-TOP: 1em; POSITION: relative } DIV.landingPageColumn UL LI H3.hiddenLink A { COLOR: #777; TEXT-DECORATION: none } DIV.landingPageColumn UL LI H3.hiddenLink A:hover { COLOR: #777; TEXT-DECORATION: none } DIV.landingPageColumn UL LI H3.hiddenLink IMG { FILTER: alpha(opacity=3D40); LEFT: -3.1em; POSITION: absolute; TOP: = 0px; opacity: 0.4 } DIV.landingPageColumn UL LI UL { PADDING-RIGHT: 0px; PADDING-LEFT: 2.5em; PADDING-BOTTOM: 0px; MARGIN: = 0em 0.4em 0.4em 0.8em; PADDING-TOP: 0px; LIST-STYLE-TYPE: square } DIV.landingPageColumn UL LI UL LI { COLOR: #999! important } DIV.landingPageColumn UL LI UL LI.more { PADDING-TOP: 3px; LIST-STYLE-TYPE: none } DIV.landingPageColumn UL LI UL LI.more A { PADDING-RIGHT: 9px; PADDING-LEFT: 0px; BACKGROUND: = url(images/list_bullet_single.gif) no-repeat right 4px; PADDING-BOTTOM: = 0px; COLOR: #666; PADDING-TOP: 0px } DIV.landingPageColumn UL LI P { PADDING-RIGHT: 0.6em; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 1.4em; = PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #666; PADDING-TOP: 0.4em } DIV.landingPageColumn UL LI UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: = 0px; MARGIN: 0px; COLOR: #666; PADDING-TOP: 0px } #contentPaneWide DIV.gray B { BACKGROUND: #ededed } #contentPane DIV.gray B { BACKGROUND: #ededed } .subhead_text { PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; FONT-SIZE: 90%; PADDING-BOTTOM: = 2px; COLOR: #333333; PADDING-TOP: 0pt } .list_text { PADDING-RIGHT: 2px; PADDING-LEFT: 1.3em; FONT-WEIGHT: normal; = FONT-SIZE: 85%; PADDING-BOTTOM: 2px; COLOR: #666666; PADDING-TOP: 0pt } DIV.landingPageColumn UL.outcomesLanding LI .list_text A { PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; FONT-WEIGHT: normal; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0pt; MARGIN-LEFT: 3px; = PADDING-TOP: 0pt } DIV.datalistScroll { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN: 0.4em = 0px 0.4em 1.4em; OVERFLOW: auto; BORDER-LEFT: #ddd 1px solid; = BORDER-BOTTOM: #ddd 1px solid; HEIGHT: 360px; BACKGROUND-COLOR: white } DIV.datalist { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN: 0.4em = 0px 0.4em 1.4em; BORDER-LEFT: #ddd 1px solid; BORDER-BOTTOM: #ddd 1px = solid; BACKGROUND-COLOR: white } DIV.landingPageColumn UL LI UL.datalistScroll { BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: medium = none; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0.4em 0px 0.4em = 1.4em; OVERFLOW: auto; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #ddd 1px solid; LIST-STYLE-TYPE: none; HEIGHT: 250px; = BACKGROUND-COLOR: white } DIV.landingPageColumn UL LI UL.datalistScroll LI { PADDING-RIGHT: 2px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 2px; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px; BACKGROUND-COLOR: white } DIV.landingPageColumn UL LI UL.datalistScroll LI:hover { BACKGROUND-COLOR: #ffffcc } DIV.landingPageColumn UL LI UL.datalistScroll LI:focus { BACKGROUND-COLOR: #ffffcc } DIV.datalist TABLE THEAD TR TH { COLOR: #fff; BACKGROUND-COLOR: #aaa } DIV.datalistScroll TABLE THEAD TR TH { COLOR: #fff; BACKGROUND-COLOR: #aaa } DIV.datalist TABLE TD.overdue { PADDING-RIGHT: 0pt; PADDING-LEFT: 20px; FONT-WEIGHT: bold; BACKGROUND: = url(images/stage_deadline4.gif) no-repeat left center; PADDING-BOTTOM: = 1px; COLOR: red; PADDING-TOP: 1px } .emptylist { BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: #ddd 1px = solid; PADDING-LEFT: 12px; PADDING-BOTTOM: 12px; MARGIN: 6px 0px 0px = 1.4em; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 12px; BORDER-BOTTOM: = #ddd 1px solid; BACKGROUND-COLOR: white } DIV.landingPageColumn UL LI UL.subcaret { BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: medium = none; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0.4em 0em 0.4em = 1.4em; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: = #ddd 1px solid; LIST-STYLE-TYPE: none } DIV.landingPageColumn UL LI UL.subcaret LI { PADDING-RIGHT: 1px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 2px; = FONT-WEIGHT: normal; BACKGROUND: white; PADDING-BOTTOM: 2px; MARGIN: = 0px; PADDING-TOP: 2px; LIST-STYLE-TYPE: none } DIV.landingPageColumn UL LI UL.subcaret LI.complete { PADDING-RIGHT: 1px; PADDING-LEFT: 20px; BACKGROUND: = url(images/workflow_detail_complete2.gif) white no-repeat 2px 2px; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } DIV.landingPageColumn UL LI UL.subcaret LI.inprogress { PADDING-RIGHT: 1px; PADDING-LEFT: 20px; BACKGROUND: = url(images/workflow_detail_active.gif) white no-repeat 2px 2px; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } .iconLegendLabel { FONT-SIZE: 95%; MARGIN: 1px 0px 1px 1.6em } DIV.landingPageColumn UL LI UL.subcaret LI A { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI UL.datalist LI A { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI DIV A { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI TABLE A { TEXT-DECORATION: underline } DIV.landingPageColumn UL LI P A { TEXT-DECORATION: underline } DIV.designAreaHeader { BORDER-RIGHT: #eee 1px solid; BORDER-TOP: #eee 1px solid; MARGIN: 0.6em = 0px 0.6em 18px; BORDER-LEFT: #eee 1px solid; BORDER-BOTTOM: #eee 1px = solid } DIV.designAreaFooter { BORDER-RIGHT: #eee 1px solid; BORDER-TOP: #eee 1px solid; MARGIN: 0.6em = 0px 0.6em 18px; BORDER-LEFT: #eee 1px solid; BORDER-BOTTOM: #eee 1px = solid } DIV.designAreaHeader H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0.8em; PADDING-BOTTOM: 0.4em; MARGIN: = 0px; COLOR: #666; PADDING-TOP: 0.4em } DIV.designAreaFooter H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0.8em; PADDING-BOTTOM: 0.4em; MARGIN: = 0px; COLOR: #666; PADDING-TOP: 0.4em } DIV.designAreaHeader DIV.headertext { PADDING-RIGHT: 0px; PADDING-LEFT: 0.8em; PADDING-BOTTOM: 0.4em; MARGIN: = 0px; PADDING-TOP: 0px } DIV.designAreaFooter DIV.footertext { PADDING-RIGHT: 0px; PADDING-LEFT: 0.8em; PADDING-BOTTOM: 0.4em; MARGIN: = 0px; PADDING-TOP: 0px } DIV#emptyText { MARGIN: 0.6em 18px } .sequenceMapHead { MARGIN: 6px 0px } .sequenceMapHead H3 { MARGIN: 12px 0px 6px } .sequenceMapHead P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 6px; COLOR: #666666; PADDING-TOP: 0px } DIV.sequenceMapHead DIV.actionBar { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: = #fff7de; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } UL.metaDataList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.metaDataList LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 2px } UL.metaDataList LI H3 { DISPLAY: inline; MARGIN: 0px } INPUT { FONT-SIZE: 100%; VERTICAL-ALIGN: middle } SELECT { FONT-SIZE: 100%; VERTICAL-ALIGN: middle } .additional { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 0px = 0px 6px; PADDING-TOP: 2px; ZOOM: 1; HEIGHT: 1% } .additional .left { FLOAT: left } .additional .right { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FLOAT: right; PADDING-BOTTOM: = 2px; COLOR: #777; PADDING-TOP: 2px } .additional .right SPAN.size { FONT-WEIGHT: bold; COLOR: #000 } .additional .left SPAN.suboption { DISPLAY: block; PADDING-LEFT: 18px } .vtbe_footer { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: 0px; = PADDING-LEFT: 9px; FONT-SIZE: 70%; PADDING-BOTTOM: 2px; BORDER-LEFT: = #ccc 1px solid; COLOR: #666; PADDING-TOP: 2px; BORDER-BOTTOM: #ccc 1px = solid; BACKGROUND-COLOR: #eee } .vtbe_footer SPAN { FONT-SIZE: 100% } .vtbe_footer INPUT[type=3Dbutton] { FONT-SIZE: 95% } .vtbe_footer A { MARGIN: 0px 0px 0px 3px } DIV.steptitle { PADDING-RIGHT: 4px; PADDING-LEFT: 3.2em; FONT-WEIGHT: bold; FONT-SIZE: = 110%; BACKGROUND: #888; PADDING-BOTTOM: 0.33em; MARGIN: 9px 0px 0px; = COLOR: #ffffff; LINE-HEIGHT: 1; PADDING-TOP: 0.33em; LETTER-SPACING: = 1px; POSITION: relative } H3.steptitle { PADDING-RIGHT: 4px; PADDING-LEFT: 3.2em; FONT-WEIGHT: bold; FONT-SIZE: = 110%; BACKGROUND: #888; PADDING-BOTTOM: 0.33em; MARGIN: 9px 0px 0px; = COLOR: #ffffff; LINE-HEIGHT: 1; PADDING-TOP: 0.33em; LETTER-SPACING: = 1px; POSITION: relative } DIV.steptitle SPAN { PADDING-RIGHT: 9px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; BACKGROUND: = #fae7ae; LEFT: 0px; PADDING-BOTTOM: 0.33em; MARGIN: 0px 0px 0px -3.2em; = COLOR: #000; LINE-HEIGHT: 100%; PADDING-TOP: 0.33em; POSITION: absolute; = TOP: 1px } H3.steptitle SPAN { PADDING-RIGHT: 9px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; BACKGROUND: = #fae7ae; LEFT: 0px; PADDING-BOTTOM: 0.33em; MARGIN: 0px 0px 0px -3.2em; = COLOR: #000; LINE-HEIGHT: 100%; PADDING-TOP: 0.33em; POSITION: absolute; = TOP: 1px } H3.noNumber { PADDING-RIGHT: 16px; PADDING-LEFT: 16px; PADDING-BOTTOM: 5px; = PADDING-TOP: 4px } FIELDSET.stepcontent { BORDER-RIGHT: medium none; PADDING-RIGHT: 4px; BORDER-TOP: medium none; = PADDING-LEFT: 16px; PADDING-BOTTOM: 12px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: medium none; PADDING-TOP: 6px; BORDER-BOTTOM: medium none } DIV.stepcontent { BORDER-RIGHT: medium none; PADDING-RIGHT: 4px; BORDER-TOP: medium none; = PADDING-LEFT: 16px; PADDING-BOTTOM: 12px; MARGIN: 0px 0px 0px 18px; = BORDER-LEFT: medium none; PADDING-TOP: 6px; BORDER-BOTTOM: medium none } FIELDSET.stepcontent FIELDSET { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: medium = none; PADDING-TOP: 0px; BORDER-BOTTOM: medium none } FIELDSET.stepcontent LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .stepHelp { PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%! important; = PADDING-BOTTOM: 4px; MARGIN: 0px 0px 6px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 0px; BORDER-BOTTOM: medium none } FIELDSET.stepcontent OL LI.stepHelp { PADDING-RIGHT: 4px; PADDING-LEFT: 0px; FONT-SIZE: 95%! important; = PADDING-BOTTOM: 4px; MARGIN: 0px 0px 6px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 0px; BORDER-BOTTOM: medium none } FIELDSET.stepcontent OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } FIELDSET.stepcontent FIELDSET OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.contentBlock OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } FIELDSET.stepcontent OL LI { MARGIN-BOTTOM: 4px; PADDING-BOTTOM: 4px; BORDER-BOTTOM: #eee 1px solid; = HEIGHT: 1% } FIELDSET.stepcontent OL LI:unknown { CLEAR: both; DISPLAY: block; BACKGROUND: red; VISIBILITY: hidden; = HEIGHT: 1%; content: "." } DIV.contentBlock OL LI:unknown { CLEAR: both; DISPLAY: block; BACKGROUND: red; VISIBILITY: hidden; = HEIGHT: 1%; content: "." } FIELDSET.stepcontent UL.nestedList { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: none } FIELDSET.stepcontent OL.nestedList { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px; LIST-STYLE-TYPE: none } FIELDSET.stepcontent UL.nestedList LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 1px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 1px; BORDER-BOTTOM: 0px } FIELDSET.stepcontent OL.nestedList LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 1px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 1px; BORDER-BOTTOM: 0px } FIELDSET.stepcontent UL.nestedList LI INPUT { VERTICAL-ALIGN: middle } FIELDSET.stepcontent OL.nestedList LI INPUT { VERTICAL-ALIGN: middle } UL.nestedListSmall LI { FONT-SIZE: 90% } OL.nestedListSmall LI { FONT-SIZE: 90% } FIELDSET.stepcontent UL.nestedSubList { MARGIN: 6px 6px 6px 30px } FIELDSET.stepcontent OL.nestedSubList { MARGIN: 6px 6px 6px 30px } DIV.nestedSubList { MARGIN: 6px 6px 6px 30px } DIV.stepLite { PADDING-RIGHT: 16px; PADDING-LEFT: 16px; PADDING-BOTTOM: 12px; = PADDING-TOP: 6px } DIV.columnStep DIV.column-3 { MIN-HEIGHT: 200px } DIV.columnStep DIV.column-3 DIV TABLE.attachments TR TH { FONT-SIZE: 90% } DIV.columnStep DIV.column-3 DIV TABLE.attachments TR TD { FONT-SIZE: 90% } DIV.columnStep DIV H3 { MARGIN: 6px } DIV.columnStep DIV DIV { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } FIELDSET OL LI SPAN { PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; COLOR: #666666; PADDING-TOP: 0px; BORDER-BOTTOM: = medium none } FIELDSET OL LI OL LI SPAN { PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; COLOR: #666666; PADDING-TOP: 0px; BORDER-BOTTOM: = medium none } .contentBlock OL LI SPAN { PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 85%; = PADDING-BOTTOM: 4px; COLOR: #666666; PADDING-TOP: 0px; BORDER-BOTTOM: = medium none } FIELDSET OL LI SPAN.nonHelp { FONT-SIZE: 95%; COLOR: #000 } FIELDSET OL LI OL LI SPAN.nonHelp { FONT-SIZE: 95%; COLOR: #000 } FIELDSET OL LI SPAN.fieldHelp { FONT-SIZE: 95% } FIELDSET OL LI SPAN.tagContainer INPUT { FONT-SIZE: 95% } FIELDSET OL LI SPAN.tagContainer A.browse { FONT-SIZE: 95% } FIELDSET OL LI SPAN.tagContainer { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; = PADDING-TOP: 2px } FIELDSET OL LI SPAN.tagContainer SPAN { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; = PADDING-TOP: 2px } FIELDSET OL LI OL LI SPAN.tagContainer { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; = PADDING-TOP: 2px } FIELDSET OL LI OL LI SPAN.tagContainer SPAN { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; = PADDING-TOP: 2px } FIELDSET OL LI SPAN.tagContainer SPAN.hidden { DISPLAY: none } FIELDSET OL LI OL LI SPAN.tagContainer SPAN.hidden { DISPLAY: none } FIELDSET OL LI SPAN.hidden { DISPLAY: none } FIELDSET OL LI OL LI SPAN.hidden { DISPLAY: none } .contentBlock OL LI SPAN.hidden { DISPLAY: none } OL.nestedList LI DIV.imgLabel { WIDTH: auto } OL.nestedList LI DIV.imgLabel SPAN.fileName { PADDING-RIGHT: 6px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = bold; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } OL.nestedList LI DIV.imgLabel SPAN.control { DISPLAY: inline } OL.nestedList LI DIV.imgLabel SPAN A { =09 } #title_color_value { PADDING-TOP: 6px } .largeText DIV.label { FONT-WEIGHT: bold; FONT-SIZE: 130% } .largeText DIV.field { FONT-WEIGHT: bold; FONT-SIZE: 130% } .largeText A.browse { FONT-WEIGHT: normal; FONT-SIZE: 75%! important; MARGIN: 0px 0px 0px 3px } .field A.browse { FONT-SIZE: 95%; MARGIN: 0px 0px 0px 3px } DIV.editBlock { FLOAT: left; MARGIN-RIGHT: 12px } .largeText DIV.field DIV.editBlock LABEL { FONT-WEIGHT: normal; FONT-SIZE: 80% } .largeText DIV.field DIV.exemptdiv LABEL { FONT-SIZE: 120% } .largeText TEXTAREA { FONT-SIZE: 80% } LI.inEditMode { BORDER-RIGHT: #444 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: #444 2px = solid; PADDING-LEFT: 9px; BACKGROUND: #ededed; PADDING-BOTTOM: 3px; = BORDER-LEFT: #444 2px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #444 2px = solid; -moz-border-radius: 6px } FIELDSET.stepcontent OL LI.fieldError { PADDING-RIGHT: 0px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 0px; PADDING-TOP: 2px; BORDER-BOTTOM: #fff 1px solid } LI.fieldError { PADDING-RIGHT: 0px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 0px; PADDING-TOP: 2px; BORDER-BOTTOM: #fff 1px solid } FIELDSET.stepcontent OL LI.fieldError SPAN.fieldErrorText { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: red } SPAN.warningMsg { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: red } SPAN.warningMsg { DISPLAY: inline; MARGIN-LEFT: 0px } .reqfield { FLOAT: left; COLOR: #666 } LI.required DIV.label LABEL IMG { MARGIN: 0px } LI.required DIV.label IMG { MARGIN: 0px } LI DIV.label IMG.indicator { LEFT: -18px; POSITION: absolute; TOP: 0px } LI.required INPUT { CLEAR: none } FIELDSET.info { BACKGROUND: #f6f6f6; MARGIN: 0px } DIV.info { BACKGROUND: #f6f6f6; MARGIN: 0px } FIELDSET.info DIV.label { COLOR: #666 } DIV.label { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 3px; WIDTH: 20%; COLOR: black; PADDING-TOP: 0px; POSITION: relative; = TOP: 0px } DIV.field { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 3px; OVERFLOW: visible; = WIDTH: 79%; WORD-BREAK: normal; WORD-WRAP: break-word } DIV.noLabelField { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 3px; OVERFLOW: visible; = WIDTH: 79%; WORD-BREAK: normal; WORD-WRAP: break-word } DIV.noLabelField { WIDTH: 100% } DIV.label SPAN.contextMenuContainer { DISPLAY: inline } .vtbeSwitch { POSITION: relative; HEIGHT: 1em } .legacy .vtbeSwitch { HEIGHT: 2.2em } .vtbeSwitch DIV.modeSwitchWrap { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #cccccc 1px solid; PADDING-LEFT: 6px; RIGHT: 0px; PADDING-BOTTOM: 4px; = BORDER-LEFT: #cccccc 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: 0px; = BACKGROUND-COLOR: #eeeeee } .vtbeSwitch DIV.modeSwitchWrap A { WIDTH: 4em } .vtbeSwitch DIV.modeSwitchWrap A SPAN#statusText { WIDTH: 2.7em } .vtbeSwitch DIV.modeSwitchWrap A.read-off { BACKGROUND-COLOR: #eee } .vtbeSwitch DIV.modeSwitchWrap A.read-off:hover { BACKGROUND-COLOR: #fff } .vtbeSwitch DIV.modeSwitchWrap A.read-on SPAN#statusText { COLOR: #ffffff } .vtbeSwitch DIV.modeSwitchWrap A.read-off:hover SPAN#statusText { COLOR: #000 } TABLE.vtbeTable-legacy { WIDTH: 30em } .vtbeTable-legacy TEXTAREA { WIDTH: 99% } DIV.quickAddPal FIELDSET.stepcontent { PADDING-RIGHT: 6px; PADDING-LEFT: 9px; PADDING-BOTTOM: 3px; MARGIN: = 0px; PADDING-TOP: 3px } DIV.quickAddPal FIELDSET.stepcontent OL LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 1px; BORDER-TOP: 0px; PADDING-LEFT: = 1px; PADDING-BOTTOM: 0px; MARGIN: 0px 2px; BORDER-LEFT: 0px; = PADDING-TOP: 1px; BORDER-BOTTOM: 0px } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.label { PADDING-RIGHT: 2px; OVERFLOW: visible; WIDTH: 30% } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.field { WIDTH: 65% } DIV.quickAddPal FIELDSET.stepcontent OL LI.required DIV.label LABEL IMG = { MARGIN: 0px } DIV.quickAddPal FIELDSET.stepcontent OL LI.required DIV.label IMG { MARGIN: 0px } DIV.quickAddPal UL LI.fieldError SPAN.fieldErrorText { DISPLAY: block; FONT-WEIGHT: normal; FONT-SIZE: 90%; MARGIN-LEFT: 74px; = COLOR: red } DIV.quickAddPal DIV.field INPUT[type=3Dtext] { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; FONT-SIZE: = 100%; BORDER-LEFT: #666 1px solid; WIDTH: 100%; BORDER-BOTTOM: #666 1px = solid } DIV.quickAddPal DIV.field SELECT { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; FONT-SIZE: = 100%; BORDER-LEFT: #666 1px solid; WIDTH: 100%; BORDER-BOTTOM: #666 1px = solid } DIV.quickAddPal DIV.field TEXTAREA { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; FONT-SIZE: = 100%; BORDER-LEFT: #666 1px solid; WIDTH: 100%; BORDER-BOTTOM: #666 1px = solid } DIV.quickAddPal DIV.field INPUT[type=3Dcheckbox] { WIDTH: auto } DIV.quickAddPal LI.stepHelp { WIDTH: auto } DIV.quickAddPal LI DIV SPAN { WIDTH: auto } DIV.field SPAN.fileName { PADDING-RIGHT: 6px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = bold; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } DIV.field SPAN.control { DISPLAY: inline } DIV.quickAddPal DIV.field INPUT.datePickerInput { WIDTH: 8em } DIV.quickAddPal DIV.field INPUT.timePickerInput { WIDTH: 8em } DIV#texteditor { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FLOAT: left; PADDING-BOTTOM: = 3px; MARGIN: 0px; PADDING-TOP: 3px } DIV#texteditor TEXTAREA { DISPLAY: block; MARGIN-LEFT: 0px; WIDTH: 450px } DIV#texteditor A.textBoxItem { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; PADDING-BOTTOM: = 2px; WIDTH: 80%; PADDING-TOP: 2px; TEXT-ALIGN: right } FIELDSET.stepcontent OL LI INPUT[type=3D'text'] { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666 1px = solid } SELECT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666 1px = solid } TEXTAREA { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; VERTICAL-ALIGN: middle; = BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666 1px = solid } SELECT.survey_question { MAX-WIDTH: 100% } HTML * SELECT.survey_question { WIDTH: 100% } TEXTAREA { FONT-SIZE: 100% } TEXTAREA { FONT-SIZE: 100% } INPUT:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } TEXTAREA:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } #loginBox INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } #loginBox INPUT[type=3D'password']:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } .portlet #loginBoxFull LI INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } .portlet #loginBoxFull LI INPUT[type=3D'password']:focus { BORDER-LEFT-COLOR: #000; BACKGROUND: #fff1c5; BORDER-BOTTOM-COLOR: = #000; BORDER-TOP-COLOR: #000; BORDER-RIGHT-COLOR: #000 } FIELDSET.stepcontent OL LI INPUT.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 9px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 0px; OVERFLOW: visible; BORDER-LEFT: = #ccc 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; = FONT-FAMILY: "Lucida Grande",Arial, Verdana, sans-serif } INPUT.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 9px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 0px; OVERFLOW: visible; BORDER-LEFT: = #ccc 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; = FONT-FAMILY: "Lucida Grande",Arial, Verdana, sans-serif } A.browse { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 6px; FONT-SIZE: 95%; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x right bottom; = PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #aaa 1px solid; FONT-FAMILY: "Lucida Grande", Arial, = Verdana, sans-serif; TEXT-DECORATION: none } FIELDSET.stepcontent OL LI A.browseIcon { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 1px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } .stepcontent A.browseIcon { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 1px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } DIV.portlet DIV.portletBlock A.browseIcon { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 1px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } A.browseIcon { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 1px; BACKGROUND: url(images/button3_back.gif) = #ededed repeat-x; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; TEXT-DECORATION: none } A.browse:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.browseIcon:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.browse:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.browseIcon:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } DIV.details A.browse { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 1px; MARGIN: 0px = auto; PADDING-TOP: 0px } DIV.details A.browse:hover { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 1px; MARGIN: 0px = auto; PADDING-TOP: 0px } P.taskbuttondiv { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 16px; = PADDING-BOTTOM: 6px; MARGIN: 9px 0px 0px; PADDING-TOP: 6px; TEXT-ALIGN: = right } P.taskButtonsContent { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 16px; = PADDING-BOTTOM: 6px; MARGIN: 9px 0px 0px; PADDING-TOP: 6px; TEXT-ALIGN: = right } P.okbutton { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 16px; = PADDING-BOTTOM: 6px; MARGIN: 9px 0px 0px; PADDING-TOP: 6px; TEXT-ALIGN: = right } DIV.container P.taskbuttondiv:first-child { MARGIN-TOP: 0px } DIV#dataCollectionContainer P.taskbuttondiv:first-child { MARGIN-TOP: 12px } DIV#dataCollectionContainer SPAN.reqfield + P.taskbuttondiv { MARGIN-TOP: 12px } DIV#containerdiv FORM.mapCanvasForm P.taskbuttondiv:first-child { MARGIN-TOP: 12px } DIV#dataCollectionContainer P.taskbuttonhelp + P.taskbuttondiv { MARGIN-TOP: 0px; PADDING-TOP: 0px } SPAN.stepTitleRight P.taskbuttondiv { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; FONT-SIZE: = 80%! important; PADDING-BOTTOM: 0px! important; MARGIN: -2pt 0px; = PADDING-TOP: 0px! important } SPAN.contentListRight P.taskbuttondiv { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; FONT-SIZE: = 80%! important; PADDING-BOTTOM: 0px! important; MARGIN: -2pt 0px; = PADDING-TOP: 0px! important } P.backLink { RIGHT: 4px; MARGIN: 0px; BOTTOM: 6px; POSITION: absolute } P.backLink A { PADDING-RIGHT: 8px; DISPLAY: inline-block; PADDING-LEFT: 8px; = FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: #bbb; PADDING-BOTTOM: = 2px; COLOR: #fff; PADDING-TOP: 2px; TEXT-DECORATION: none; = -moz-border-radius: 3px; -webkit-border-radius: 3px } .taskButtonsContent { PADDING-RIGHT: 12px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 12px; = PADDING-BOTTOM: 0px; MARGIN: 24px -12px 0px; PADDING-TOP: 9px } .taskbuttondiv BUTTON { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } .taskbuttondiv INPUT { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } .taskButtonsContent BUTTON { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } .taskButtonsContent INPUT { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } DIV.controls BUTTON { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } DIV.controls INPUT { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } P.okbutton INPUT { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } BUTTON.secondary { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } INPUT.secondary { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } A.secondary { BORDER-RIGHT: #d7bb66 2px solid; PADDING-RIGHT: 9px; BORDER-TOP: = #edd999 1px solid; PADDING-LEFT: 9px; FONT-WEIGHT: normal; FONT-SIZE: = 105%; BACKGROUND: #fff1c5 repeat-x 0px 10%; PADDING-BOTTOM: 1px; MARGIN: = 0px 2px; VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-LEFT: #edd999 = 1px solid; COLOR: #444; PADDING-TOP: 1px; BORDER-BOTTOM: #d7bb66 2px = solid; BORDER-COLLAPSE: collapse; TEXT-DECORATION: none } P.okbutton INPUT { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 100%; PADDING-BOTTOM: = 1px; PADDING-TOP: 1px } .taskbuttondiv BUTTON.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskbuttondiv INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskButtonsContent BUTTON.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskButtonsContent INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } DIV.controls BUTTON.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } DIV.controls INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskbuttondiv BUTTON.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskbuttondiv INPUT.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskButtonsContent BUTTON.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } .taskButtonsContent INPUT.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } DIV.controls BUTTON.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } DIV.controls INPUT.disabled { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } #loginBox LI INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } BUTTON.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } INPUT.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } A.submit { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } #loginBox LI INPUT[type=3D'submit'] { BORDER-RIGHT: #344a6c 2px solid; BORDER-TOP: #566e94 1px solid; = FONT-WEIGHT: bold; BACKGROUND: #819ac0 repeat-x 0px center; BORDER-LEFT: = #566e94 1px solid; COLOR: #fff; BORDER-BOTTOM: #344a6c 2px solid } #loginBox LI INPUT[type=3D'submit']:hover { BACKGROUND-COLOR: #344a6c } .portlet INPUT.submit:hover { BACKGROUND-COLOR: #344a6c } .taskbuttondiv BUTTON.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .taskbuttondiv INPUT.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .taskButtonsContent BUTTON.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .taskButtonsContent INPUT.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } DIV.controls BUTTON.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } DIV.controls INPUT.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } BUTTON.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } INPUT.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .disabled:hover { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } A.disabled { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } A.disabled:hover { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } A.disabled:focus { BORDER-LEFT-COLOR: #ccc; BACKGROUND: #ededed; FILTER: = alpha(opacity=3D30); BORDER-BOTTOM-COLOR: #ccc; CURSOR: default; = BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #ccc; opacity: 0.3 } .quickAddPal DIV.controls INPUT { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 100%; PADDING-BOTTOM: = 1px; MARGIN: 0px 1px; PADDING-TOP: 1px } .taskbuttonhelp { PADDING-RIGHT: 4px; PADDING-LEFT: 30px; FONT-SIZE: 95%! important; = PADDING-BOTTOM: 0px; MARGIN: 9px 0px 0px; COLOR: #666666; LINE-HEIGHT: = 135%; PADDING-TOP: 0px } .container P.taskbuttonhelp { PADDING-LEFT: 33px } #taskbuttondiv P { BORDER-RIGHT: red 1px solid; BORDER-TOP: red 1px solid; DISPLAY: block; = FONT-SIZE: 90%; MARGIN: 6px 0px; BORDER-LEFT: red 1px solid; = BORDER-BOTTOM: red 1px solid; FONT-STYLE: italic; TEXT-ALIGN: left } DIV.lbContainer P.taskButtonsContent { MARGIN: 12px 0px 6px } FIELDSET.stepcontent OL LI A.colorChip { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 2px; = PADDING-BOTTOM: 1px; PADDING-TOP: 1px } A.colorChip { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 2px; = PADDING-BOTTOM: 1px; PADDING-TOP: 1px } FIELDSET.stepcontent OL LI A.colorChip SPAN { DISPLAY: inline-block; PADDING-LEFT: 2px; BACKGROUND: = url(images/cm_arrow.gif) no-repeat 2px 0px; VERTICAL-ALIGN: middle } A.colorChip SPAN { DISPLAY: inline-block; PADDING-LEFT: 2px; BACKGROUND: = url(images/cm_arrow.gif) no-repeat 2px 0px; VERTICAL-ALIGN: middle } A.colorChip IMG.chipSwatch { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #ccc 1px solid; BORDER-LEFT: = #ccc 1px solid; WIDTH: 16px; BORDER-BOTTOM: #aaa 1px solid; HEIGHT: 16px } FIELDSET.stepcontent OL LI A.colorChip SPAN IMG { FILTER: alpha(opacity=3D0); WIDTH: 16px; HEIGHT: 16px; opacity: 0 } A.colorChip SPAN IMG { FILTER: alpha(opacity=3D0); WIDTH: 16px; HEIGHT: 16px; opacity: 0 } SPAN.colorChipName { DISPLAY: inline-block; VERTICAL-ALIGN: middle } .stepTitleRight { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; RIGHT: 6px! important; BACKGROUND: #fae7ae; LEFT: auto! important; = PADDING-BOTTOM: 4px; COLOR: #000; LINE-HEIGHT: 1; PADDING-TOP: 3px; = LETTER-SPACING: 1px; POSITION: absolute; TOP: 0px } .saver { CLEAR: left } .exemptdiv { FONT-SIZE: 60% } TABLE .exemptdiv { CLEAR: left; FONT-SIZE: 100% } .gbtablesimple .exemptdiv { MARGIN-TOP: 5px; PADDING-LEFT: 20px; FONT-SIZE: 90% } DIV .editgrade TABLE.resizeCommentsTable TEXTAREA { FONT-SIZE: 130% } .gc_info UL { TEXT-ALIGN: left! important } .gbtablesimple .exemptdiv INPUT { MARGIN-LEFT: -20px } DIV.field TABLE TBODY TR TD TABLE LABEL { FONT-SIZE: 110% } DIV.field TABLE TBODY TR TD TABLE SELECT { FONT-SIZE: 110% } DIV.selectItems { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px = solid; DISPLAY: none; PADDING-LEFT: 3px; BACKGROUND: #eee; FLOAT: left; = PADDING-BOTTOM: 9px; MARGIN: 2px 0px 0px 9px; BORDER-LEFT: #ccc 1px = solid; WIDTH: 580px; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid } DIV.selectItems DIV { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FLOAT: left; PADDING-BOTTOM: = 3px; MARGIN: 0px; PADDING-TOP: 3px } DIV.selectItems DIV SELECT { DISPLAY: block; MARGIN: 6px 0px; WIDTH: 265px } DIV.selectItems DIV INPUT[type=3Dbutton] { MARGIN: 6px 0px } DIV.selectItems DIV.selectArrows { MARGIN: 40px 0px } DIV.selectArrows A { DISPLAY: block; MARGIN: 6px 0px } DIV.noLabelField DIV.selectItems { WIDTH: 97% } DIV.noLabelField DIV.selectItems DIV { WIDTH: 46% } DIV.noLabelField DIV.selectItems DIV SELECT { WIDTH: 100% } DIV.noLabelField DIV.selectItems DIV.selectArrows { WIDTH: 5%; TEXT-ALIGN: center } DIV.noLabelField DIV.selectArrows A { MARGIN: 6px auto } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 6px; WIDTH: 288px; PADDING-TOP: 0px; = LIST-STYLE-TYPE: none } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI { BORDER-RIGHT: #333 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #333 1px = solid; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; = OVERFLOW: hidden; BORDER-LEFT: #333 1px solid; WIDTH: 14px; CURSOR: = pointer; PADDING-TOP: 0px; BORDER-BOTTOM: #333 1px solid; = LIST-STYLE-TYPE: none; HEIGHT: 14px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A { DISPLAY: block; OVERFLOW: hidden; WIDTH: 14px; HEIGHT: 14px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A:link { DISPLAY: block; OVERFLOW: hidden; WIDTH: 14px; HEIGHT: 14px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A:hover { BORDER-RIGHT: #333 1px solid; BORDER-TOP: #333 1px solid; BORDER-LEFT: = #333 1px solid; WIDTH: 12px; BORDER-BOTTOM: #333 1px solid; HEIGHT: 12px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A:active { BORDER-RIGHT: #fff 2px solid; BORDER-TOP: #fff 2px solid; BORDER-LEFT: = #fff 2px solid; WIDTH: 10px; BORDER-BOTTOM: #fff 2px solid; HEIGHT: 10px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI A:focus { BORDER-RIGHT: #fff 2px solid; BORDER-TOP: #fff 2px solid; BORDER-LEFT: = #fff 2px solid; WIDTH: 10px; BORDER-BOTTOM: #fff 2px solid; HEIGHT: 10px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI = A.whiteSwatch:active { BORDER-RIGHT: #ddd 2px solid; BORDER-TOP: #ddd 2px solid; BORDER-LEFT: = #ddd 2px solid; WIDTH: 10px; BORDER-BOTTOM: #ddd 2px solid; HEIGHT: 10px } DIV.quickAddPal FIELDSET.stepcontent OL LI OL.colorlist LI = A.whiteSwatch:focus { BORDER-RIGHT: #ddd 2px solid; BORDER-TOP: #ddd 2px solid; BORDER-LEFT: = #ddd 2px solid; WIDTH: 10px; BORDER-BOTTOM: #ddd 2px solid; HEIGHT: 10px } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.colorPreview { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; BACKGROUND: white; = PADDING-BOTTOM: 3px; PADDING-TOP: 3px } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.colorPreview IMG { BORDER-RIGHT: #444 1px solid; BORDER-TOP: #444 1px solid; DISPLAY: = block; BACKGROUND: black; FLOAT: left; MARGIN: 3px; BORDER-LEFT: #444 = 1px solid; WIDTH: 42px; BORDER-BOTTOM: #444 1px solid; HEIGHT: 42px } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.colorPreview DIV { FLOAT: left; MARGIN-LEFT: 3px; WIDTH: 66% } DIV.quickAddPal FIELDSET.stepcontent OL LI DIV.colorPreview SPAN { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 0px; = FONT-SIZE: 100%; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 100%; COLOR: = black; PADDING-TOP: 0px } SPAN.title_color_name { COLOR: #666666 } UL.stepPanels { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; PADDING-BOTTOM: 12px; MARGIN: 0px; BORDER-LEFT: = medium none; PADDING-TOP: 6px; BORDER-BOTTOM: medium none; = LIST-STYLE-TYPE: none } UL.stepPanels LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM: medium none } FIELDSET.stepcontent OL LI UL.stepPanels LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM: medium none } H3.mdHead { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #ddd; = PADDING-BOTTOM: 3px; MARGIN: 4px 0px 0px; CURSOR: pointer; PADDING-TOP: = 3px; ZOOM: 1; POSITION: relative } H4.panelTitle { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #ddd; = PADDING-BOTTOM: 3px; MARGIN: 4px 0px 0px; CURSOR: pointer; PADDING-TOP: = 3px; ZOOM: 1; POSITION: relative } H3.mdHead A { COLOR: #000; TEXT-DECORATION: none } H4.panelTitle A { COLOR: #000; TEXT-DECORATION: none } H4.panelTitle A SPAN.date { FONT-WEIGHT: normal; FONT-SIZE: 95%; RIGHT: 6px; COLOR: #666; POSITION: = absolute; TOP: 2px; TEXT-DECORATION: none } H4.panelTitle SPAN.date { FONT-WEIGHT: normal; FONT-SIZE: 95%; RIGHT: 6px; COLOR: #666; POSITION: = absolute; TOP: 2px; TEXT-DECORATION: none } H4.panelTitle A { DISPLAY: block; WIDTH: 100% } H4.panelTitle A SPAN { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-SIZE: 95%; = PADDING-BOTTOM: 2px; COLOR: black; PADDING-TOP: 2px } H3.mdHead A SPAN.date { FONT-WEIGHT: normal } DIV.mdList { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; BACKGROUND: #f6f6f6; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 9px; PADDING-TOP: 9px } DIV.stepPanel { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; BACKGROUND: #f6f6f6; = PADDING-BOTTOM: 9px; MARGIN: 0px 0px 9px; PADDING-TOP: 9px } DIV.stepPanel P SPAN { COLOR: #666 } DIV.mdList H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.stepPanel H5 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } DIV.mdList P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 5px 5px 5px 12px; PADDING-TOP: 0px } DIV.stepPanel P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 5px 5px 5px 12px; PADDING-TOP: 0px } DIV.stepPanelControls { FONT-SIZE: 90% } .contentAreaBlock { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: 0px; = PADDING-LEFT: 12px; BACKGROUND: no-repeat right bottom; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 24px; BORDER-LEFT: #dcdcdc 1px solid; PADDING-TOP: = 12px; BORDER-BOTTOM: #aaa 1px solid } UL.buttonLibrary { BORDER-RIGHT: #bbb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #bbb 1px = solid; PADDING-LEFT: 6px; BACKGROUND: #f6f6f6; PADDING-BOTTOM: 6px; = MARGIN: 9px 0px; OVERFLOW: auto; BORDER-LEFT: #bbb 1px solid; = MAX-HEIGHT: 300px; PADDING-TOP: 6px; BORDER-BOTTOM: #bbb 1px solid; = LIST-STYLE-TYPE: none } UL.buttonLibrary LI { BORDER-RIGHT: medium none; BORDER-TOP: medium none; FLOAT: left; = BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } UL.buttonLibrary LI A { PADDING-RIGHT: 7px; DISPLAY: block; PADDING-LEFT: 7px; FONT-SIZE: 105%; = PADDING-BOTTOM: 3px; COLOR: #777; PADDING-TOP: 3px; TEXT-ALIGN: center; = TEXT-DECORATION: none } UL.buttonLibrary LI A.selected { FONT-WEIGHT: bold; TEXT-DECORATION: none } UL.buttonLibrary LI A:hover { TEXT-DECORATION: underline } DIV.menuStyleStep { FLOAT: left; MARGIN: 9px 40px 0pt 0pt; WIDTH: 212px } DIV.menuStyleStep DIV.topRound { DISPLAY: none } DIV.menuDefaultStyleStep { MARGIN: 9px auto; WIDTH: 212px } .fileInputWrapper { PADDING-RIGHT: 3px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; OVERFLOW: hidden; MARGIN-RIGHT: 9px; PADDING-TOP: 0px; POSITION: = relative; TOP: -5px } .fileInputWrapper INPUT.hiddenInput { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 210%; Z-INDEX: 2; = RIGHT: 0px; FILTER: alpha(opacity=3D0); PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; POSITION: absolute; TOP: 0px; TEXT-ALIGN: right; = opacity: 0 } .fileInputWrapper INPUT[type=3D'file'] { FILTER: alpha(opacity=3D0)! important } .fileInputWrapper INPUT.visibleInput { Z-INDEX: 1; RIGHT: 0px; POSITION: relative; TOP: 0px } .schemeWrapper { FLOAT: left; MARGIN: 0pt 12px 0pt 0pt } UL.buttonLibrary LI DIV.schemeWrapper { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 0px = solid; PADDING-LEFT: 5px; BACKGROUND: #fff; PADDING-BOTTOM: 5px; MARGIN: = 0px; BORDER-LEFT: #ccc 0px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #ccc = 1px solid } .schemeWrapper SPAN { FONT-SIZE: 95%; TEXT-ALIGN: center } UL.buttonLibrary LI.selected { BACKGROUND: url(images/dcp_block_bg.png) #555555 no-repeat right bottom } UL.buttonLibrary LI.selected A.selected { FONT-WEIGHT: bold; COLOR: #ffffff! important } UL.buttonLibrary LI.selected A.selected SPAN { FONT-WEIGHT: bold; COLOR: #ffffff! important } UL.buttonLibrary LI.selected A { FONT-WEIGHT: bold; COLOR: #ffffff! important } UL.buttonLibrary LI.selected A SPAN { FONT-WEIGHT: bold; COLOR: #ffffff! important } UL.buttonLibrary LI .schemeWrapper { FLOAT: none; MARGIN-RIGHT: 6px } UL.buttonLibrary LI { PADDING-RIGHT: 6px! important; PADDING-LEFT: 6px! important; = PADDING-BOTTOM: 6px! important; MARGIN: 0px 4px 4px 0px; PADDING-TOP: = 6px! important } .schemePreview { BORDER-RIGHT: #ededed 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #ededed 0px solid; PADDING-LEFT: 16px; PADDING-BOTTOM: 0px; BORDER-LEFT: = #ededed 0px solid; WIDTH: 160px; PADDING-TOP: 12px; BORDER-BOTTOM: = #ededed 1px solid } .modulePreview { BORDER-RIGHT: 0px solid; PADDING-RIGHT: 0px; BORDER-TOP: 2px solid; = PADDING-LEFT: 0px; FONT-SIZE: 85%; RIGHT: 0px; LEFT: auto; = PADDING-BOTTOM: 0px; MARGIN: 6px 0px 0px auto; BORDER-LEFT: 2px solid; = WIDTH: 140px; BOTTOM: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px solid; = POSITION: relative } .schemePreviewHead { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; PADDING-BOTTOM: 3px; PADDING-TOP: 3px } .modulePreviewHead { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; BACKGROUND: = url(images/gradient_black_short_bt.png) repeat-x 0pt center; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px } .schemePreviewBody { PADDING-RIGHT: 0px; PADDING-LEFT: 9px; PADDING-BOTTOM: 0px; = PADDING-TOP: 3px; POSITION: relative } .modulePreviewBody { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 3px; = PADDING-TOP: 2px } .themeDefault .schemePreview { BACKGROUND: #cdcdcd } .themeDefault .schemePreviewHead { COLOR: #000; BACKGROUND-COLOR: #fff1c5 } .themeDefault .schemePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .themeDefault .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .themeDefault .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .themeDefault .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .opal .schemePreview { BACKGROUND: #e4ecf4 } .opal .schemePreviewHead { COLOR: #e4ecf4; BACKGROUND-COLOR: #891414 } .opal .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .opal .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .opal .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .opal .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .desert .schemePreview { BACKGROUND: #f7f5d2 } .desert .schemePreviewHead { COLOR: #383023; BACKGROUND-COLOR: #c5a97b } .desert .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .desert .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .desert .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .desert .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .plum .schemePreview { BORDER-RIGHT: #666699 2px solid; BORDER-TOP: #666699 2px solid; = BORDER-LEFT: #666699 2px solid; BORDER-BOTTOM: #666699 2px solid } .plum .schemePreviewHead { COLOR: #ffcc00; BACKGROUND-COLOR: #666699 } .plum .schemePreviewBody { BACKGROUND: #f2f0f4; COLOR: #000 } .fall .schemePreview { BACKGROUND: #e8dfa9 } .fall .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #e87b28 } .fall .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .fall .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .fall .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .fall .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .sandstone .schemePreview { BORDER-RIGHT: #336666 2px solid; BORDER-TOP: #336666 2px solid; = BORDER-LEFT: #336666 2px solid; BORDER-BOTTOM: #336666 2px solid } .sandstone .schemePreviewHead { COLOR: #666600; BACKGROUND-COLOR: #cccc99 } .sandstone .schemePreviewBody { BACKGROUND: #e7e7b8; COLOR: #000 } .forest .schemePreview { BORDER-RIGHT: #339933 2px solid; BORDER-TOP: #339933 2px solid; = BORDER-LEFT: #339933 2px solid; BORDER-BOTTOM: #339933 2px solid } .forest .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #339933 } .forest .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .spring .schemePreview { BORDER-RIGHT: #cc99cc 2px solid; BORDER-TOP: #cc99cc 2px solid; = BORDER-LEFT: #cc99cc 2px solid; BORDER-BOTTOM: #cc99cc 2px solid } .spring .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #cc99cc } .spring .schemePreviewBody { BACKGROUND: #fddede; COLOR: #000 } .state .schemePreview { BORDER-RIGHT: #eee 2px solid; BORDER-TOP: #eee 2px solid; BORDER-LEFT: = #eee 2px solid; BORDER-BOTTOM: #eee 2px solid } .state .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #ccc } .state .schemePreviewBody { BACKGROUND: #eee; COLOR: #000 } .mesa .schemePreview { BORDER-RIGHT: #ffffcc 2px solid; BORDER-TOP: #ffffcc 2px solid; = BORDER-LEFT: #ffffcc 2px solid; BORDER-BOTTOM: #ffffcc 2px solid } .mesa .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #993333 } .mesa .schemePreviewBody { BACKGROUND: #ffcccc; COLOR: #000 } .summer .schemePreview { BORDER-RIGHT: #669999 2px solid; BORDER-TOP: #669999 2px solid; = BORDER-LEFT: #669999 2px solid; BORDER-BOTTOM: #669999 2px solid } .summer .schemePreviewHead { COLOR: #ffffcc; BACKGROUND-COLOR: #99cccc } .summer .schemePreviewBody { BACKGROUND: #ffffcc; COLOR: #000 } .ocean .schemePreview { BACKGROUND: #dfdfff } .ocean .schemePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #47478e } .ocean .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } .ocean .modulePreview { BORDER-RIGHT: #597298 2px solid; BORDER-TOP: #597298 2px solid; = BACKGROUND: #fff; BORDER-LEFT: #597298 2px solid; BORDER-BOTTOM: #597298 = 2px solid } .ocean .modulePreviewHead { COLOR: #fff; BACKGROUND-COLOR: #597298 } .ocean .modulePreviewBody { COLOR: #000; BACKGROUND-COLOR: #fff } .tree .schemePreview { BORDER-RIGHT: #669966 2px solid; BORDER-TOP: #669966 2px solid; = BORDER-LEFT: #669966 2px solid; BORDER-BOTTOM: #669966 2px solid } .tree .schemePreviewHead { COLOR: #225522; BACKGROUND-COLOR: #669966 } .tree .schemePreviewBody { BACKGROUND: #fff; COLOR: #000 } DIV.fontPreview { BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #000 1px = solid; DISPLAY: block; PADDING-LEFT: 4px; BACKGROUND: #fff; FLOAT: left; = PADDING-BOTTOM: 4px; MARGIN: 3px 0px; BORDER-LEFT: #000 1px solid; = PADDING-TOP: 4px; BORDER-BOTTOM: #000 1px solid } .textareaDiv { PADDING-BOTTOM: 6px } .textareaDiv TABLE { WIDTH: 98% } .textareaDiv TABLE TABLE { WIDTH: 100% } .textareaDiv TABLE TABLE TABLE { WIDTH: 100% } .textareaDiv TEXTAREA { BORDER-TOP: #666 2px solid; WIDTH: 100% } DIV.textToolbar { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 0px; BACKGROUND: #f6f6f6; PADDING-BOTTOM: 4px; = BORDER-LEFT: #ccc 1px solid; WIDTH: 97.7%; PADDING-TOP: 4px; = BORDER-BOTTOM: #ccc 1px solid } DIV.textToolbar A { FONT-SIZE: 90%; WHITE-SPACE: nowrap } DIV.textToolbar LABEL { PADDING-LEFT: 4px; FONT-SIZE: 90%; VERTICAL-ALIGN: middle } DIV.textToolbar SELECT { FONT-SIZE: 90%; VERTICAL-ALIGN: middle } .previewTextArea { BORDER-RIGHT: #999 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: #999 2px = solid; DISPLAY: none; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 0px; OVERFLOW: auto; BORDER-LEFT: #999 2px solid; WIDTH: = 459px; PADDING-TOP: 0px; BORDER-BOTTOM: #999 2px solid; HEIGHT: 112px } .previewTextArea DIV.previewTitle { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #eee; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 4px; PADDING-TOP: 2px; = BORDER-BOTTOM: #eee 2px solid } .previewTextArea DIV.previewTitle A { FLOAT: right } .previewTextArea DIV.previewTitle H6 { FONT-SIZE: 90%; FLOAT: left; MARGIN: 0px } .previewTextArea DIV.previewContent { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px } FIELDSET.stepcontent OL.hierarchy { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; COLOR: #999; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } FIELDSET.stepcontent OL.hierarchy LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: #ddd 1px solid; = PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; BACKGROUND-COLOR: #fff } OL.hierarchy LI OL LI { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: #ddd 1px solid; = PADDING-LEFT: 0px; PADDING-BOTTOM: 9px; MARGIN: 0px; BORDER-LEFT: 0px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; BACKGROUND-COLOR: #fff } OL.hierarchy LI OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 8px = 0px 0px 30px; COLOR: #999; PADDING-TOP: 0px } OL.hierarchy LI H5 { PADDING-RIGHT: 11em; PADDING-LEFT: 3px; FONT-SIZE: 100%; = PADDING-BOTTOM: 3px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 8px; = POSITION: relative; BACKGROUND-COLOR: #fff } OL.hierarchy LI H5 SPAN { DISPLAY: inline; FONT-SIZE: 100%; COLOR: #888; BORDER-BOTTOM: medium = none } OL.hierarchy LI H5 A { FONT-WEIGHT: normal; FONT-SIZE: 90%; RIGHT: 0px; POSITION: absolute; = TOP: 9px } OL.hierarchy LI DIV { PADDING-RIGHT: 2px; PADDING-LEFT: 12px; FONT-SIZE: 95%; PADDING-BOTTOM: = 2px; VERTICAL-ALIGN: middle; PADDING-TOP: 9px; TEXT-ALIGN: right } OL.hierarchy LI DIV.gbData SPAN { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 9px; FONT-SIZE: = 100%; PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 9px; BORDER-LEFT: #ccc = 1px dotted; COLOR: #000; PADDING-TOP: 2px } OL.hierarchy LI DIV.gbData SPAN:first-child { PADDING-LEFT: 0px; MARGIN-LEFT: 0px; BORDER-LEFT: medium none } OL.hierarchy LI DIV INPUT.points { VERTICAL-ALIGN: middle } OL.hierarchy LI DIV INPUT { VERTICAL-ALIGN: middle } OL.hierarchy LI DIV INPUT.points { WIDTH: 2em } OL.hierarchy LI DIV INPUT.name { WIDTH: 16em } LI.parent { PADDING-BOTTOM: 0px! important } OL.hierarchy LI.parent OL LI H5 { BACKGROUND-IMAGE: none } A.genericButton { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BACKGROUND-POSITION: = center -7px; BORDER-TOP: #ccc 1px solid; DISPLAY: inline-block; = PADDING-LEFT: 6px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 1px; BORDER-LEFT: #ccc 1px solid; COLOR: #333; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-REPEAT: = repeat-x; FONT-FAMILY: "Lucida Grande", Arial, Verdana, sans-serif; = BACKGROUND-COLOR: #ededed; TEXT-DECORATION: none } A.genericButtonImg { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BACKGROUND-POSITION: = center -7px; BORDER-TOP: #ccc 1px solid; DISPLAY: inline-block; = PADDING-LEFT: 6px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 1px; BORDER-LEFT: #ccc 1px solid; COLOR: #333; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-REPEAT: = repeat-x; FONT-FAMILY: "Lucida Grande", Arial, Verdana, sans-serif; = BACKGROUND-COLOR: #ededed; TEXT-DECORATION: none } INPUT.genericButton { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BACKGROUND-POSITION: = center -7px; BORDER-TOP: #ccc 1px solid; DISPLAY: inline-block; = PADDING-LEFT: 6px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 1px; BORDER-LEFT: #ccc 1px solid; COLOR: #333; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-REPEAT: = repeat-x; FONT-FAMILY: "Lucida Grande", Arial, Verdana, sans-serif; = BACKGROUND-COLOR: #ededed; TEXT-DECORATION: none } .searchbar FIELDSET INPUT.genericButton { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 6px; BACKGROUND-POSITION: = center -7px; BORDER-TOP: #ccc 1px solid; DISPLAY: inline-block; = PADDING-LEFT: 6px; FONT-SIZE: 100%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 1px; BORDER-LEFT: #ccc 1px solid; COLOR: #333; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-REPEAT: = repeat-x; FONT-FAMILY: "Lucida Grande", Arial, Verdana, sans-serif; = BACKGROUND-COLOR: #ededed; TEXT-DECORATION: none } A.genericButtonImg { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 2px; = PADDING-TOP: 0px } INPUT.genericButton { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 1px; OVERFLOW: = visible; PADDING-TOP: 1px } .searchbar FIELDSET INPUT.genericButton { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 1px; OVERFLOW: = visible; PADDING-TOP: 1px } A.genericButton:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.genericButtonImg:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.genericButton:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.genericButtonImg:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } .searchbar FIELDSET INPUT.genericButton:hover { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } .searchbar FIELDSET INPUT.genericButton:focus { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; BACKGROUND: = white; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } A.add { BORDER-LEFT-COLOR: #42af41; BORDER-BOTTOM-COLOR: #42af41; = BORDER-TOP-COLOR: #42af41; BACKGROUND-COLOR: #b3efb3; = BORDER-RIGHT-COLOR: #42af41 } A.add:hover { BORDER-LEFT-COLOR: #42af41; BORDER-BOTTOM-COLOR: #42af41; = BORDER-TOP-COLOR: #42af41; BACKGROUND-COLOR: #e4ffdf; = BORDER-RIGHT-COLOR: #42af41 } A.remove { BORDER-LEFT-COLOR: #ef3b3b; BORDER-BOTTOM-COLOR: #ef3b3b; = BORDER-TOP-COLOR: #ef3b3b; BACKGROUND-COLOR: #ffc4bf; = BORDER-RIGHT-COLOR: #ef3b3b } A.remove:hover { BORDER-LEFT-COLOR: #ef3b3b; BORDER-BOTTOM-COLOR: #ef3b3b; = BORDER-TOP-COLOR: #ef3b3b; BACKGROUND-COLOR: #ffd2cf; = BORDER-RIGHT-COLOR: #ef3b3b } DIV.calendarTitle { MARGIN: 9px 0px 0px; TEXT-ALIGN: center } DIV.announcementTitle { MARGIN: 9px 0px 0px; TEXT-ALIGN: center } DIV.calendarTitle H3 { PADDING-RIGHT: 4px; DISPLAY: inline; PADDING-LEFT: 4px; FONT-SIZE: = 130%; PADDING-BOTTOM: 2px; MARGIN: 0px; VERTICAL-ALIGN: middle; = PADDING-TOP: 2px } DIV.announcementTitle H3 { PADDING-RIGHT: 4px; DISPLAY: inline; PADDING-LEFT: 4px; FONT-SIZE: = 130%; PADDING-BOTTOM: 2px; MARGIN: 0px; VERTICAL-ALIGN: middle; = PADDING-TOP: 2px } DIV.calMonth { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; PADDING-BOTTOM: = 2px; MARGIN: 10px 4px 4px; OVERFLOW: auto; PADDING-TOP: 2px } DIV.calMonth TABLE { BORDER-RIGHT: #a8beda 2px solid; BORDER-TOP: #a8beda 2px solid; MARGIN: = 0px auto; BORDER-LEFT: 2px; BORDER-BOTTOM: #a8beda 2px solid; = BORDER-COLLAPSE: collapse } DIV.calMonth TABLE THEAD TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #a8beda; = PADDING-BOTTOM: 0px; WIDTH: 1px; PADDING-TOP: 0px } DIV.calMonth TABLE TBODY TH { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #a8beda; = PADDING-BOTTOM: 0px; WIDTH: 1px; PADDING-TOP: 0px } DIV.calMonth TABLE THEAD TD DIV { LEFT: -1000px; POSITION: absolute; TOP: 0px } DIV.calMonth TABLE TBODY TH DIV { LEFT: -1000px; POSITION: absolute; TOP: 0px } DIV.calMonth TABLE THEAD TH { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 2px; PADDING-LEFT: 2px; = FONT-WEIGHT: bold; BACKGROUND: url(images/cal_year_head_bg.gif) #ddd = repeat-x right bottom; PADDING-BOTTOM: 2px; OVERFLOW: hidden; WIDTH: = 8em; COLOR: #333; PADDING-TOP: 2px; BORDER-BOTTOM: #a0a0a0 1px solid; = TEXT-ALIGN: center } DIV.calMonth TABLE TBODY TD { BORDER-RIGHT: #a8beda 1px solid; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BACKGROUND: url(images/cal_month_cell_bg.gif) white repeat-x 50% bottom; = PADDING-BOTTOM: 0px; OVERFLOW: hidden; WIDTH: 8em; PADDING-TOP: 0px; = BORDER-BOTTOM: #a8beda 1px solid; HEIGHT: 8em } DIV.calMonth TABLE TH:hover { BACKGROUND: url(images/cal_year_head_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TH:focus { BACKGROUND: url(images/cal_year_head_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TH:active { BACKGROUND: url(images/cal_year_head_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TD:hover { BACKGROUND: url(images/cal_month_cell_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TD:focus { BACKGROUND: url(images/cal_month_cell_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TD:active { BACKGROUND: url(images/cal_month_cell_hover_bg.gif) repeat-x 50% bottom } DIV.calMonth TABLE TD A.daylink { BORDER-RIGHT: #a8beda 1px solid; PADDING-RIGHT: 0.2em; DISPLAY: block; = PADDING-LEFT: 0.2em; FONT-WEIGHT: bold; FONT-SIZE: 110%; BACKGROUND: = #e3efff; FLOAT: left; PADDING-BOTTOM: 0.2em; WIDTH: 1.2em; PADDING-TOP: = 0.2em; BORDER-BOTTOM: #a8beda 1px solid; TEXT-ALIGN: center; = TEXT-DECORATION: none } DIV.calMonth TABLE TD A.daylink:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x } DIV.calMonth TABLE TD A.daylink SPAN { LEFT: -1000px; POSITION: absolute; TOP: 0px } DIV.calMonth TABLE TD.today { BACKGROUND: url(images/cal_month_today_bg.gif) #f9e091 no-repeat left = top } DIV.calMonth TABLE TD.today A.daylink { FONT-WEIGHT: bold; BACKGROUND: #f9e091 } DIV.calMonth TABLE TD.today A.daylink:hover { BACKGROUND: url(images/cal_year_today_bg.gif) repeat-x } DIV.calMonth TABLE TD.offday { BACKGROUND: #eeeeee } DIV.calMonth TABLE TD DIV { CLEAR: both; OVERFLOW: hidden; WIDTH: 8em } DIV.calMonth TABLE TD DIV UL { PADDING-RIGHT: 0.4em; PADDING-LEFT: 0.4em; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.calMonth TABLE TD DIV UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 1px; MARGIN: 0px; PADDING-TOP: 1px; WHITE-SPACE: nowrap } TABLE.calYear { BORDER-RIGHT: #a8beda 1px solid; BORDER-TOP: #a8beda 1px solid; = MIN-WIDTH: 200px; FONT-SIZE: 95%; MARGIN: 6px; BORDER-LEFT: #a8beda 1px = solid; BORDER-BOTTOM: #a8beda 1px solid; POSITION: relative; = BORDER-COLLAPSE: collapse } TABLE.calYearFloat { FLOAT: left; MARGIN: 6px 0.66%; WIDTH: 32% } TABLE.calYear THEAD TD { LEFT: -10000px; POSITION: absolute; TOP: 0px } TABLE.calYear TBODY TH { LEFT: -10000px; POSITION: absolute; TOP: 0px } TABLE.calYear CAPTION { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-SIZE: 108%; PADDING-BOTTOM: = 4px; MARGIN: 0px; PADDING-TOP: 2px; TEXT-ALIGN: center } TABLE.calYear CAPTION A { FONT-WEIGHT: bold; TEXT-DECORATION: none } TABLE.calYear CAPTION A:hover { TEXT-DECORATION: underline } TABLE.calYear THEAD TH { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #a8beda = 1px solid; PADDING-LEFT: 2px; FONT-WEIGHT: bold; BACKGROUND: = url(images/cal_year_head_bg.gif) #ddd repeat-x 50% bottom; = PADDING-BOTTOM: 2px; BORDER-LEFT: #aaa 1px solid; WIDTH: 14.3%; COLOR: = #333; PADDING-TOP: 2px; BORDER-BOTTOM: #a0a0a0 1px solid; TEXT-ALIGN: = center } TABLE.calYear TBODY TD { BORDER-RIGHT: #a8beda 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #a8beda 1px solid; PADDING-LEFT: 2px; BACKGROUND: white; PADDING-BOTTOM: = 2px; BORDER-LEFT: #a8beda 1px solid; WIDTH: 14.3%; PADDING-TOP: 2px; = BORDER-BOTTOM: #a8beda 1px solid; WHITE-SPACE: nowrap; TEXT-ALIGN: right } TABLE.calYear TD A { DISPLAY: block; WIDTH: 100%; POSITION: relative; TEXT-DECORATION: none } TABLE.calYear TD A IMG { FLOAT: left } TABLE.calYear TD:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD:focus { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD:active { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD.offday:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD.offday:focus { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TD.offday:active { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) repeat-x left bottom } TABLE.calYear TH:hover { BACKGROUND-IMAGE: url(images/cal_year_head_hover_bg.gif) } TABLE.calYear TH:focus { BACKGROUND-IMAGE: url(images/cal_year_head_hover_bg.gif) } TABLE.calYear TH:active { BACKGROUND-IMAGE: url(images/cal_year_head_hover_bg.gif) } TABLE.calYear TD.today { BACKGROUND: #f9e091 } TABLE.calYear TD.today:hover { BACKGROUND: url(images/cal_year_today_bg.gif) #f9e091 repeat-x 0px 0px } TABLE.calYear TD.today:focus { BACKGROUND: url(images/cal_year_today_bg.gif) #f9e091 repeat-x 0px 0px } TABLE.calYear TD.today A { FONT-WEIGHT: bold; COLOR: black } TABLE.calYear TD.today A:hover { BACKGROUND-IMAGE: none } TABLE.calYear TD.today A:active { BACKGROUND-IMAGE: none } TABLE.calYear TD.today A:focus { BACKGROUND-IMAGE: none } TABLE.calYear TD.offday { BORDER-RIGHT: #a8beda 1px solid; BORDER-TOP: #a8beda 1px solid; = BACKGROUND: #eee; BORDER-LEFT: #a8beda 1px solid; COLOR: #444444; = BORDER-BOTTOM: #a8beda 1px solid; TEXT-DECORATION: none } TABLE.calYear TD.hasEvent { FONT-WEIGHT: bold; BACKGROUND: url(images/cal_year_cell_bg.gif) = repeat-x right bottom } TABLE.calendarDay { BORDER-RIGHT: #cdcdcd 1px solid; BORDER-TOP: medium none; MARGIN: 10px = 0px 0px; BORDER-LEFT: #cdcdcd 1px solid; WIDTH: 100%; BORDER-BOTTOM: = #cdcdcd 1px solid; BORDER-COLLAPSE: collapse } TABLE.calendarDay THEAD { LEFT: -1000px; POSITION: absolute; TOP: 0px; HEIGHT: 1px } TABLE.calendarDay THEAD TH { LEFT: -1000px; POSITION: absolute; TOP: 0px; HEIGHT: 1px } UL.calendarWeek LI TABLE.calendarDay { BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN: 0px; = BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } TABLE.calendarDay TBODY TH { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = url(images/cal_day_time_bg.gif) #f3f3f3 repeat-x 50% bottom; = PADDING-BOTTOM: 14px; VERTICAL-ALIGN: top; BORDER-LEFT: #ccc 1px solid; = WIDTH: 6%; COLOR: #555; PADDING-TOP: 1px; BORDER-BOTTOM: #ccc 1px solid; = TEXT-ALIGN: right } TABLE.calendarDay TBODY TH:hover { BACKGROUND: url(images/cal_day_time_hover_bg.gif) #e6e5e5 repeat-x 50% = bottom } TABLE.calendarDay TBODY TH:focus { BACKGROUND: url(images/cal_day_time_hover_bg.gif) #e6e5e5 repeat-x 50% = bottom } TABLE.calendarDay TBODY TH:active { BACKGROUND: url(images/cal_day_time_hover_bg.gif) #e6e5e5 repeat-x 50% = bottom } TABLE.calendarDay TBODY TD { PADDING-RIGHT: 12px; BORDER-TOP: #cdcdcd 1px solid; PADDING-LEFT: 0px; = BACKGROUND: #fff; PADDING-BOTTOM: 3px; VERTICAL-ALIGN: top; PADDING-TOP: = 0px } TABLE.calendarDay TBODY TD.hasEvent { PADDING-LEFT: 6px; BACKGROUND: url(images/cal_day_cell_bg.gif) repeat-y = 0px 0px } TABLE.calendarDay TBODY TD.hasEvent A.jumpToEvent { LEFT: -1000px; POSITION: absolute; TOP: 0px } TABLE.calendarDay TBODY TR.halfHour TH { BORDER-TOP: #ededed 1px solid } TABLE.calendarDay TBODY TR.halfHour TD { BORDER-TOP: #ededed 1px solid } TABLE.calendarDay TBODY TR.midday TH { BORDER-TOP: #cdcdcd 2px solid } TABLE.calendarDay TBODY TR.midday TD { BORDER-TOP: #cdcdcd 2px solid } TABLE.calendarDay TR.notBusinessHours TH { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BACKGROUND: = #f3f3f3; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid } TABLE.calendarDay TR.notBusinessHours TD { BACKGROUND: #fafafa } TABLE.calendarDay TBODY TR.notBusinessHours TD.hasEvent { BACKGROUND: url(images/cal_day_cell_bg2.gif) #fafafa repeat-y 0px 0px } TABLE.calendarDay TR TH SPAN.ampm { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-SIZE: 75%; BACKGROUND: = #bbb; LEFT: -4px; PADDING-BOTTOM: 0px; COLOR: #fff; PADDING-TOP: 0px; = LETTER-SPACING: 0.1em; POSITION: relative; TOP: -1.2em } TABLE.calendarDay TBODY TR:hover TH { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:hover TD { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:focus TH { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:focus TD { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:active TH { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:active TD { BACKGROUND-COLOR: #f0f0f0 } TABLE.calendarDay TBODY TR:hover TD.hasEvent { BACKGROUND: url(images/cal_day_hover_bg.gif) #f0f0f0 repeat-y 0px 0px } TABLE.calendarDay TBODY TR:focus TD.hasEvent { BACKGROUND: url(images/cal_day_hover_bg.gif) #f0f0f0 repeat-y 0px 0px } TABLE.calendarDay TBODY TR:active TD.hasEvent { BACKGROUND: url(images/cal_day_hover_bg.gif) #f0f0f0 repeat-y 0px 0px } TABLE.calendarDay TD DIV DIV { PADDING-RIGHT: 3px; DISPLAY: block; PADDING-LEFT: 3px; FONT-WEIGHT: = normal; FONT-SIZE: 85%; BACKGROUND: #b5ccea; FLOAT: left; = PADDING-BOTTOM: 1px; MARGIN: 0px 4px 0px -6px; PADDING-TOP: 1px } TABLE.calendarDay TD DIV DIV.contextMenuContainer { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; BACKGROUND: = none transparent scroll repeat 0% 0%; FLOAT: none; PADDING-BOTTOM: 0px; = MARGIN: 0px 0px 0px -3px; PADDING-TOP: 0px } TABLE.calendarDay TD DIV SPAN { FONT-SIZE: 90%; COLOR: #555 } UL.calendarWeek { BORDER-RIGHT: #cdcdcd 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #cdcdcd 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 10px = 0px 0px; BORDER-LEFT: #cdcdcd 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #cdcdcd 1px solid; LIST-STYLE-TYPE: none; HEIGHT: 1% } UL.calendarWeek LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #cdcdcd 1px solid; = POSITION: relative } UL.calendarWeek LI UL:first-child { BORDER-TOP: medium none } UL.calendarWeek UL LI:first-child { BORDER-TOP: medium none } UL.calendarWeek LI H3.weekDay { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; FONT-WEIGHT: bold; = FONT-SIZE: 110%; BACKGROUND: #e3efff; PADDING-BOTTOM: 0.3em; MARGIN: = 0px; COLOR: #666; PADDING-TOP: 0.3em } UL.calendarWeek LI H3.weekDay:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) #e3efff repeat-x 50% = bottom } UL.calendarWeek LI H3.weekDay:focus { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) #e3efff repeat-x 50% = bottom } UL.calendarWeek LI H3.weekDay:active { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) #e3efff repeat-x 50% = bottom } UL.calendarWeek LI UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 12px 6px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.calendarWeek LI UL LI { PADDING-RIGHT: 0px; BORDER-TOP: #ededed 1px solid; PADDING-LEFT: 0px; = PADDING-BOTTOM: 12px; PADDING-TOP: 6px; BORDER-BOTTOM: medium none } UL.calendarWeek LI UL LI:hover { BACKGROUND: url(images/cal_year_cell_bg.gif) repeat-x right bottom } UL.calendarWeek LI UL LI:focus { BACKGROUND: url(images/cal_year_cell_bg.gif) repeat-x right bottom } UL.calendarWeek LI UL LI:active { BACKGROUND: url(images/cal_year_cell_bg.gif) repeat-x right bottom } UL.calendarWeek LI UL LI H4 { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; FONT-SIZE: = 95%; FLOAT: left; PADDING-BOTTOM: 1px; MARGIN: 0px 12px 0px 0px; WIDTH: = 10em; COLOR: #555; PADDING-TOP: 1px } UL.calendarWeek LI DIV { MARGIN-LEFT: 11em } UL.calendarWeek LI DIV.contextMenuContainer { MARGIN: 0px 0px 0px -3px } UL.calendarWeek LI UL LI SPAN { FONT-SIZE: 90%; COLOR: #555 } .hidden { DISPLAY: none } UL.announcementList LI H4 { PADDING-RIGHT: 0.3em; PADDING-LEFT: 0px; FONT-WEIGHT: normal; = FONT-SIZE: 95%; LEFT: 0.2em; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: = 5em; COLOR: #555; PADDING-TOP: 0px; POSITION: absolute; TOP: 0.5em; = TEXT-ALIGN: right } UL.announcementList LI H4 { WIDTH: 6.7em; TOP: 0.8em; TEXT-ALIGN: center } UL.announcementList LI H4 SPAN { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 115% } UL.announcementList LI UL { PADDING-RIGHT: 0px; BORDER-TOP: #ededed 1px solid; PADDING-LEFT: 0px; = PADDING-BOTTOM: 6px; MARGIN: 0px 0.6em; PADDING-TOP: 6px; = LIST-STYLE-TYPE: none; POSITION: relative } UL.announcementList LI UL LI { PADDING-RIGHT: 0px; BORDER-TOP: #ededed 1px solid; PADDING-LEFT: 0.7em; = PADDING-BOTTOM: 0.6em; MARGIN: 0px; PADDING-TOP: 0.6em; BORDER-BOTTOM: = medium none; HEIGHT: 1% } UL.announcementList LI UL LI:unknown { PADDING-RIGHT: 0px; PADDING-LEFT: 0.7em; PADDING-BOTTOM: 0.3em; = PADDING-TOP: 0.6em } UL.announcementList LI UL LI:first-child { PADDING-RIGHT: 0px; BORDER-TOP: medium none; PADDING-LEFT: 0.7em; = PADDING-BOTTOM: 0.6em; PADDING-TOP: 0.3em } UL.announcementList LI UL LI H5 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } UL.announcementList LI UL LI H5 { FONT-SIZE: 105% } UL.announcementList LI UL LI P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0.2em } UL.announcementList LI UL LI P SPAN { FONT-WEIGHT: bold } UL.announcementList LI UL LI SPAN.postedBy { FONT-SIZE: 90%; FLOAT: right; COLOR: #777 } UL.calendarDay LI DIV.addEvent { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 1px; BORDER-LEFT: 0px; PADDING-TOP: 1px; = BORDER-BOTTOM: 0px; opacity: 0 } UL.calendarWeek LI DIV.addEvent { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 3px; BORDER-LEFT: 0px; PADDING-TOP: 3px; = BORDER-BOTTOM: 0px; opacity: 0 } DIV.addEvent A { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; BACKGROUND: #ededed; PADDING-BOTTOM: 1px; MARGIN: 0px 0px 0px = 6.2em; PADDING-TOP: 1px } UL.calendarWeek LI:hover DIV.addEvent { opacity: 1 } UL.calendarDay DIV:hover DIV.addEvent { opacity: 1 } UL.calDay LI A.addEvent { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #cccccc 1px solid; PADDING-LEFT: 6px; FONT-SIZE: 90%; RIGHT: 2px; = BACKGROUND: #e3efff; FILTER: alpha(opacity=3D0); PADDING-BOTTOM: 1px; = MARGIN: 2px 0px 0px 2px; BORDER-LEFT: #cccccc 1px solid; COLOR: #444444; = PADDING-TOP: 1px; BORDER-BOTTOM: #cccccc 1px solid; POSITION: absolute; = TEXT-DECORATION: none; opacity: 0 } UL.calendarWeek LI DIV.addEvent A { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #cccccc 1px solid; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: = 90%; BACKGROUND: #e3efff; FILTER: alpha(opacity=3D0); PADDING-BOTTOM: = 1px; MARGIN: 2px 0px 0px 2px; BORDER-LEFT: #cccccc 1px solid; COLOR: = #444444; PADDING-TOP: 1px; BORDER-BOTTOM: #cccccc 1px solid; = TEXT-DECORATION: none; opacity: 0 } UL.calendarWeek LI DIV.addEvent { MARGIN: 0px 0px 2px 3em } DIV.calMonth TABLE TD A.addEvent:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) 0% 50% } UL.calendarWeek LI DIV.addEvent A:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) 0% 50% } UL.calDay LI A.addEvent:hover { BACKGROUND: url(images/cal_year_cell_hover_bg.gif) 0% 50% } DIV.calMonth TABLE TD:hover A.addEvent { FILTER: alpha(opacity=3D100); opacity: 1 } UL.calendarWeek LI:hover DIV.addEvent A { FILTER: alpha(opacity=3D100); opacity: 1 } UL.calDay LI:hover A.addEvent { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.blogContainer { FLOAT: left; WIDTH: 74%; MARGIN-RIGHT: 1% } DIV.blogContainer H3.blogHead { PADDING-RIGHT: 15px; PADDING-LEFT: 15px; FONT-SIZE: 100%; BACKGROUND: = #aaa; PADDING-BOTTOM: 3px; MARGIN: 0px 0px 12px; COLOR: #fff; = PADDING-TOP: 3px } DIV.blogContainer DIV.blogEntry { BORDER-RIGHT: #ccc 0px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ccc 2px = solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 12px 0px; = BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 0px = solid } DIV.blogContainer DIV.blogEntry H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 18px; FONT-SIZE: 110%; BACKGROUND: = url(images/small_discussions.gif) no-repeat 0px 2px; PADDING-BOTTOM: = 0px; MARGIN: 6px 12px 0px; OVERFLOW: hidden; PADDING-TOP: 3px; = WORD-WRAP: break-word } DIV.blogContainer DIV.blogEntry DIV.entryText { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: white; OVERFLOW-X: = auto; PADDING-BOTTOM: 18px; MARGIN: 3px 12px 12px; WIDTH: 96%; = PADDING-TOP: 9px } DIV.blogContainer DIV.entryDate { FONT-SIZE: 95%; MARGIN: 3px 0px 6px 12px; COLOR: #444 } DIV.blogContainer DIV.entryDate A { FONT-WEIGHT: bold } DIV.blogContainer DIV.entryFooter { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; BACKGROUND: #f6f6f6; = PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-TOP: 6px } DIV.blogContainer DIV.entryFooter DIV.commentControls { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; COLOR: #444; PADDING-TOP: 0px } DIV.blogContainer DIV.entryFooter DIV.commentControls H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; BACKGROUND: = none transparent scroll repeat 0% 0%; FLOAT: left; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 0px } DIV.blogContainer DIV.entryFooter A.browse { DISPLAY: block; FLOAT: right } DIV.blogContainer DIV.entryFooter DIV.addBlogComment TABLE { WIDTH: 98% } DIV.blogContainer DIV.entryFooter DIV.addBlogComment TEXTAREA { WIDTH: 99% } DIV.blogContainer DIV.entryFooter DIV.addBlogComment { DISPLAY: none; FONT-SIZE: 100%; LEFT: 0px! important; MARGIN: 6px; = WIDTH: 98%; POSITION: static! important; TOP: 0px! important } DIV.blogContainer DIV.entryFooter DIV.addBlogComment DIV.controls { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } DIV.blogContainer UL.entryComments { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 6px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.blogContainer UL.entryComments LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 6px; MARGIN: = 0px; PADDING-TOP: 6px; LIST-STYLE-TYPE: none } DIV.blogContainer UL.entryComments LI P { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 12px; BACKGROUND: #fff; PADDING-BOTTOM: 12px; = MARGIN: 0px 0px 4px; OVERFLOW: hidden; BORDER-LEFT: #ccc 1px solid; = PADDING-TOP: 12px; BORDER-BOTTOM: #ccc 1px solid; HEIGHT: 1% } DIV.blogContainer UL.entryComments LI P.commentDate { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; FONT-SIZE: 90%; Z-INDEX: 10; BACKGROUND: = url(images/bubble_top_thin.gif) no-repeat 15px 100%; PADDING-BOTTOM: = 4px; MARGIN: 2px 0px -1px; BORDER-LEFT: medium none; COLOR: #444; = PADDING-TOP: 0px; BORDER-BOTTOM: medium none; POSITION: relative; = TEXT-ALIGN: right } DIV.blogContainer UL.entryComments LI H5 { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #444; PADDING-TOP: 3px } DIV.blogContainer UL.entryComments LI.newComment H5 { FONT-WEIGHT: bold } DIV.blogContainer DIV.blogInstructions { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #f1f1f1; = PADDING-BOTTOM: 6px; MARGIN: 0px 0px 12px; PADDING-TOP: 3px; POSITION: = relative } DIV.blogContainer DIV.blogInstructions H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; = BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 3px 0px; = PADDING-TOP: 0px } DIV.blogNav { FLOAT: right; WIDTH: 25% } DIV.blogNav DIV.portlet { BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN: 0px; = BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } DIV.blogNav DIV.portlet { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.blogNav DIV.portletBlock { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.blogNav UL { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.blogNav UL LI { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.blogNav UL LI { OVERFLOW: hidden; WIDTH: 100% } DIV.blogNav DIV.portlet DIV.portletBlock { BORDER-RIGHT: #a8beda 2px solid; BORDER-TOP: #a8beda 2px solid; MARGIN: = 0px; BORDER-LEFT: #a8beda 2px solid; BORDER-BOTTOM: #a8beda 2px solid } DIV.blogNav DIV.portlet UL.blockGroups LI A.itemHead { BORDER-TOP: #a8beda 1px solid } DIV.blogNav DIV.portlet UL.blockGroups LI:first-child A { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } DIV.blogNav LI.currentBlog { FONT-WEIGHT: bold } DIV.blogNav LI.currentBlog SPAN { FONT-WEIGHT: normal } DIV.blogContainer A.newItem { FONT-WEIGHT: normal } DIV.blogContainer A SPAN.newItem { FONT-WEIGHT: normal } DIV.blogNav A.newItem { FONT-WEIGHT: normal } DIV.blogNav A SPAN.newItem { FONT-WEIGHT: normal } DIV.blogNav DIV.portlet UL.blockGroups DIV.blogAction { FONT-SIZE: 95%; MARGIN: 4px 9px 6px } DIV.blogContainer UL.entryComments LI SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.blogContainer DIV.entryFooter DIV.commentControls SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.blogContainer DIV.blogEntry H4 SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.blogContainer DIV.commentControls SPAN.newItems { DISPLAY: block; FLOAT: left; MARGIN-LEFT: 4px } DIV.blogNav DIV.portletBlock UL.blockGroups LI SPAN.newItems { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN-LEFT: 0px; COLOR: black; PADDING-TOP: 0px } DIV.blogNav UL.iconLegend LI SPAN.newItems { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN-LEFT: 0px; COLOR: black; PADDING-TOP: 0px } DIV.blogNav UL.iconLegend { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 9px = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.blogNav UL.iconLegend LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 0px } DIV.blogNav UL UL { MARGIN-LEFT: 9px } DIV.blogNav UL#blogArchive UL { MARGIN: 0px 9px 9px 18px } DIV.journalContainer { FLOAT: left; WIDTH: 74%; MARGIN-RIGHT: 1% } DIV.journalContainer H3.blogHead { PADDING-RIGHT: 15px; PADDING-LEFT: 15px; FONT-SIZE: 100%; BACKGROUND: = #aaa; PADDING-BOTTOM: 3px; MARGIN: 0px 0px 12px; COLOR: #fff; = PADDING-TOP: 3px; TEXT-ALIGN: center } DIV.journalContainer DIV.blogEntry { BORDER-RIGHT: #eee 3px solid; PADDING-RIGHT: 0px; BORDER-TOP: #eee 3px = solid; PADDING-LEFT: 36px; BACKGROUND: = url(images/blog_notebook_paper.gif) #fff repeat-y 0px 0px; = PADDING-BOTTOM: 0px; MARGIN: 12px 0px; BORDER-LEFT: medium none; = PADDING-TOP: 0px; BORDER-BOTTOM: #eee 3px solid; POSITION: relative } DIV.journalContainer DIV.blogEntry H4 { PADDING-RIGHT: 24px; PADDING-LEFT: 18px; FONT-SIZE: 110%; BACKGROUND: = #fff; PADDING-BOTTOM: 0px; MARGIN: 0px; OVERFLOW: hidden; PADDING-TOP: = 12px; TEXT-ALIGN: center; WORD-WRAP: break-word } DIV.journalContainer DIV.entryDate { PADDING-RIGHT: 24px; PADDING-LEFT: 18px; FONT-SIZE: 95%; Z-INDEX: 100; = BACKGROUND: #fff; PADDING-BOTTOM: 12px; MARGIN: 0px; COLOR: #444; = PADDING-TOP: 3px; BORDER-BOTTOM: #c0dace 1px solid; TEXT-ALIGN: center } DIV.journalContainer DIV.entryDate A { FONT-WEIGHT: bold } DIV.journalContainer DIV.blogEntry DIV.entryText { PADDING-RIGHT: 12px; PADDING-LEFT: 18px; BACKGROUND: #fff; OVERFLOW-X: = auto; PADDING-BOTTOM: 18px; MARGIN: 0px; WIDTH: 92%; PADDING-TOP: 12px } DIV.journalContainer DIV.entryFooter { PADDING-RIGHT: 0px; PADDING-LEFT: 31px; BACKGROUND: = url(images/blog_notebook_paper_bot.gif) repeat-x center bottom; = PADDING-BOTTOM: 4px; MARGIN: 0px 0px 0px -31px; PADDING-TOP: 0px; ZOOM: = 1 } DIV.journalContainer DIV.entryFooter DIV.commentControls { PADDING-RIGHT: 12px; PADDING-LEFT: 18px; BACKGROUND: #fff; = PADDING-BOTTOM: 12px; COLOR: #444; PADDING-TOP: 6px } DIV.journalContainer DIV.entryFooter DIV.commentControls H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; BACKGROUND: = none transparent scroll repeat 0% 0%; FLOAT: left; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-TOP: 0px } DIV.journalContainer DIV.entryFooter A.browse { DISPLAY: block; FLOAT: right } DIV.journalContainer DIV.entryFooter DIV.addBlogComment TABLE { WIDTH: 98% } DIV.journalContainer DIV.entryFooter DIV.addBlogComment TEXTAREA { WIDTH: 99% } DIV.journalContainer DIV.entryFooter DIV.addBlogComment { DISPLAY: none; FONT-SIZE: 100%; LEFT: 0px! important; MARGIN: 0px 12px = 18px 18px; WIDTH: auto; POSITION: static! important; TOP: 0px! important } DIV.journalContainer DIV.entryFooter DIV.addBlogComment DIV.controls { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } DIV.journalContainer UL.entryComments { PADDING-RIGHT: 0px; PADDING-LEFT: 18px; BACKGROUND: #fff; = PADDING-BOTTOM: 12px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: = none } DIV.journalContainer UL.entryComments LI { PADDING-RIGHT: 6px; BORDER-TOP: #c0dace 1px solid; PADDING-LEFT: 0px; = PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-TOP: 4px; LIST-STYLE-TYPE: = none } DIV.journalContainer UL.entryComments LI P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 4px = 18px 4px 19px; PADDING-TOP: 0px } DIV.journalContainer UL.entryComments LI P.commentDate { FONT-SIZE: 90%; MARGIN-LEFT: 19px; COLOR: #444 } DIV.journalContainer UL.entryComments LI H5 { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 18px; FONT-WEIGHT: = normal; FONT-SIZE: 100%; BACKGROUND: url(images/small_blog_comment.gif) = no-repeat 0px 3px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #000; = PADDING-TOP: 3px } DIV.journalContainer UL.entryComments LI.newComment H5 { FONT-WEIGHT: bold } DIV.journalContainer DIV.blogInstructions { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #f1f1f1; = PADDING-BOTTOM: 6px; MARGIN: 0px 0px 12px; PADDING-TOP: 3px; POSITION: = relative } DIV.journalContainer DIV.blogInstructions H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; BACKGROUND: = none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 3px = 0px; PADDING-TOP: 0px; TEXT-ALIGN: left } DIV.journalContainer DIV.blogInstructions P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.journalNav { FLOAT: right; WIDTH: 25% } DIV.journalNav DIV.portlet { BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN: 0px; = BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } DIV.journalNav DIV.portlet { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.journalNav DIV.portletBlock { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.journalNav UL { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.journalNav UL LI { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.journalNav UL LI { OVERFLOW: hidden; WIDTH: 100% } DIV.journalNav DIV.portlet DIV.portletBlock { BORDER-RIGHT: #a8beda 2px solid; BORDER-TOP: #a8beda 2px solid; MARGIN: = 0px; BORDER-LEFT: #a8beda 2px solid; BORDER-BOTTOM: #a8beda 2px solid } DIV.journalNav DIV.portlet UL.blockGroups LI A.itemHead { BORDER-TOP: #a8beda 1px solid } DIV.journalNav DIV.portlet UL.blockGroups LI:first-child A { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } DIV.journalNav LI.currentBlog { FONT-WEIGHT: bold } DIV.journalNav LI.currentBlog SPAN { FONT-WEIGHT: normal } DIV.journalContainer A.newItem { FONT-WEIGHT: normal } DIV.journalContainer A SPAN.newItem { FONT-WEIGHT: normal } DIV.journalNav A.newItem { FONT-WEIGHT: normal } DIV.journalNav A SPAN.newItem { FONT-WEIGHT: normal } DIV.journalNav DIV.portlet UL.blockGroups DIV.blogAction { FONT-SIZE: 95%; MARGIN: 4px 9px 6px } DIV.journalContainer UL.entryComments LI SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.journalContainer DIV.entryFooter DIV.commentControls SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.journalContainer DIV.blogEntry H4 SPAN.newItems { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px } DIV.journalContainer DIV.commentControls SPAN.newItems { DISPLAY: block; FLOAT: left; MARGIN-LEFT: 4px } DIV.journalNav DIV.portletBlock UL.blockGroups LI SPAN.newItems { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN-LEFT: 0px; COLOR: black; PADDING-TOP: 0px } DIV.journalNav UL.iconLegend LI SPAN.newItems { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 2px; MARGIN-LEFT: 0px; COLOR: black; PADDING-TOP: 0px } DIV.journalNav UL.iconLegend { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 9px = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.journalNav UL.iconLegend LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 0px } DIV.journalNav UL UL { MARGIN-LEFT: 9px } DIV.journalNav UL#blogArchive UL { MARGIN: 0px 9px 9px 18px } .subActionBar { BORDER-RIGHT: medium none; PADDING-RIGHT: 12px; BORDER-TOP: #d7bb66 1px = solid; PADDING-LEFT: 12px; FONT-SIZE: 95%; BACKGROUND: #eddca5 repeat-x = 0px -18px; PADDING-BOTTOM: 6px; MARGIN: -1px 0px 0px; BORDER-LEFT: = medium none; PADDING-TOP: 0px; BORDER-BOTTOM: #d7bb66 1px solid } .subActionBar FIELDSET { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: = 0px } .subActionBar FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .subActionBar DIV.block { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 3px 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px } .subActionBar DIV.button { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 3px 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px } .subActionBar SPAN.block { FLOAT: none } .subActionBar SPAN.button { FLOAT: none } .subActionBar LI.sub { POSITION: relative } .subActionBar FIELDSET LEGEND + DIV.block { BORDER-LEFT: 0px } .subActionBar SELECT { MAX-WIDTH: 180px; VERTICAL-ALIGN: middle } .subActionBar SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 9px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .subActionBar DIV.button { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } .subActionBar DIV.last { BORDER-RIGHT: medium none } .subActionBar FIELDSET { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .subActionBar OPTGROUP { BORDER-TOP: #ddd 1px solid; MARGIN-TOP: 6px; FONT-WEIGHT: normal; = COLOR: #777; FONT-STYLE: normal } .subActionBar OPTGROUP OPTION { COLOR: #000 } .subActionBar UL LI.sortableSelector A { PADDING-LEFT: 18px } .navPageHeader { MARGIN: 1em 0px; TEXT-ALIGN: center } .navPageHeader H3 { DISPLAY: inline; MARGIN-LEFT: 12px } .navPageHeader SPAN { FONT-WEIGHT: normal; MARGIN: 0px 6px 0px 0px; COLOR: #888 } FIELDSET.secondaryActions { FLOAT: right } DIV.secondaryBlock { FLOAT: right } .cellStatus { BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; MARGIN-TOP: = 4px; FONT-SIZE: 90%; BACKGROUND: #efefef; BORDER-LEFT: #ddd 1px solid; = BORDER-BOTTOM: #ddd 1px solid; WHITE-SPACE: nowrap } .cellStatus DIV { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 8px; DISPLAY: inline; = PADDING-LEFT: 8px; PADDING-BOTTOM: 2px; PADDING-TOP: 2px; WHITE-SPACE: = nowrap } .statusTitle { =09 } .cellStatus DIV.iconlegend { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; FLOAT: right; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN-RIGHT: = 3px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px } .sortImage { LEFT: 6px; POSITION: absolute; TOP: 9px } .bubble { PADDING-RIGHT: 0pt; DISPLAY: none; PADDING-LEFT: 0pt; Z-INDEX: 1000; = PADDING-BOTTOM: 0pt; WIDTH: 190px; PADDING-TOP: 0pt; POSITION: absolute } .bubble UL { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 6px; Z-INDEX: 1000; PADDING-BOTTOM: = 6px; MARGIN: 0px; OVERFLOW: hidden; BORDER-LEFT: #acc2df 1px solid; = PADDING-TOP: 6px; BORDER-BOTTOM: #5577bb 1px solid; LIST-STYLE-TYPE: = none; BACKGROUND-COLOR: #e2eefe } .bubble UL LI { CLEAR: left; PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; FONT-WEIGHT: bold; = FONT-SIZE: 90%; FLOAT: left; PADDING-BOTTOM: 0pt; MARGIN: 0pt 0pt 4px; = WIDTH: 174px; COLOR: #666666; PADDING-TOP: 0pt } .bubble UL LI SPAN { DISPLAY: block; FONT-WEIGHT: normal; FLOAT: left; WIDTH: 80px; COLOR: = #666666; MARGIN-RIGHT: 3px } .bubble UL LI SPAN.icon { FLOAT: left; WIDTH: 20px } .bubble UL LI SPAN.label { FONT-WEIGHT: normal; FONT-SIZE: 100%; WIDTH: 147px } .bubbleStem { WIDTH: 190px; POSITION: relative; HEIGHT: 14px } .bottom .bubbleStem { BOTTOM: 4px } .top .bubbleStem { TOP: -2px } .left .bubbleStem { PADDING-LEFT: 24px } .right .bubbleStem { RIGHT: 24px; TEXT-ALIGN: right } UL.selectList { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px 6px 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.selectList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 99; FLOAT: left; = PADDING-BOTTOM: 4px; MARGIN: 0px 3px 0px 0px; PADDING-TOP: 2px } UL.selectList LI.sub { PADDING-TOP: 0px } UL.selectList LI.sub A { PADDING-RIGHT: 3px; DISPLAY: block; PADDING-LEFT: 9px; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px; TEXT-DECORATION: none } UL.selectList LI.sub:hover UL { LEFT: 0px; TOP: 20px! important } UL.selectList LI.sub UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; POSITION: static! important } UL.selectList LI.sub UL LI H4 { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 3px; FONT-WEIGHT: = bold; FONT-SIZE: 90%; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #888; = PADDING-TOP: 6px; BORDER-BOTTOM: #ccc 1px solid } UL.selectList LI.sub UL LI H4 { WIDTH: 152px } UL.selectList LI.sub UL LI A { BORDER-RIGHT: medium none; PADDING-RIGHT: 3px; BORDER-TOP: medium none; = PADDING-LEFT: 14px; BACKGROUND-IMAGE: none! important; PADDING-BOTTOM: = 2px; BORDER-LEFT: medium none; WIDTH: 128px! important; PADDING-TOP: = 2px; BORDER-BOTTOM: medium none } UL.selectList LI.sub UL LI A:hover { BORDER-RIGHT: medium none; PADDING-RIGHT: 3px; BORDER-TOP: medium none; = PADDING-LEFT: 14px; BACKGROUND-IMAGE: none! important; PADDING-BOTTOM: = 2px; BORDER-LEFT: medium none; WIDTH: 128px! important; PADDING-TOP: = 2px; BORDER-BOTTOM: medium none } UL.selectList LI.sub UL LI A:hover { BACKGROUND-COLOR: #ffffff } UL.selectList LI.sub A SPAN IMG { WIDTH: 12px; HEIGHT: 12px; opacity: 0 } UL.selectList LI.sub A SPAN { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/expand.gif) no-repeat center center; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } UL.selectList LI.sub A SPAN#currentView { BACKGROUND-IMAGE: none } UL.selectList LI.sub A SPAN#currentSortBy { BACKGROUND-IMAGE: none } UL.selectList LI.sub A SPAN#currentColSortDir { BACKGROUND-IMAGE: none } UL.selectList LI.sub UL LI.current A { BACKGROUND: url(images/current.gif) #c7d9f3 no-repeat 1px 4px } UL.selectList LI.sub UL LI.current A:hover { BACKGROUND: url(images/current.gif) #c7d9f3 no-repeat 1px 4px } DIV.gradeDetails { PADDING-RIGHT: 0px; PADDING-LEFT: 12px; FONT-SIZE: 90%; PADDING-BOTTOM: = 0px; PADDING-TOP: 6px } DIV.gradeDetails DIV.label { WIDTH: 15% } SPAN.unstyled { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; COLOR: #000000; PADDING-TOP: 0px } @media Print =20 { DIV.hideOnPrint { DISPLAY: none } } BODY.reports { BACKGROUND: #f0f0f0 } BODY.reports UL { PADDING-RIGHT: 24px; PADDING-LEFT: 24px; PADDING-BOTTOM: 24px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } BODY.reports UL LI { CLEAR: both; PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: = 6px; PADDING-TOP: 0px } BODY.reports UL LI DIV.label { COLOR: #777 } BODY.reports UL LI:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } DIV.toc_div OL LI UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } BODY.reports H1 { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; FONT-SIZE: 160%; BACKGROUND: = #555 repeat-x right bottom; PADDING-BOTTOM: 9px; MARGIN: 0px; COLOR: = #fff; PADDING-TOP: 9px } BODY.reports H2 { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 150%; PADDING-BOTTOM: = 3px; MARGIN: 6px 18px 6px 14px; COLOR: #000; PADDING-TOP: 3px } BODY.reports DIV.toc_div H2 { BACKGROUND: none transparent scroll repeat 0% 0% } BODY.reports H3 { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 140%; PADDING-BOTTOM: = 3px; MARGIN: 6px 18px 6px 30px; PADDING-TOP: 3px } BODY.reports H3 A { COLOR: #7d899e; TEXT-DECORATION: none } BODY.reports H3 A IMG { VERTICAL-ALIGN: middle; MARGIN-RIGHT: 6px } BODY.reports H4 { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 115%; BACKGROUND: = #bbb; PADDING-BOTTOM: 3px; MARGIN: 0px 10px; COLOR: #fff; PADDING-TOP: = 3px; HEIGHT: 1% } BODY.reports UL LI H5 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; PADDING-BOTTOM: = 6px; MARGIN: 12px -12px 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px = solid } BODY.reports TABLE.attachments { MARGIN: 0px; WIDTH: auto } BODY.reports TABLE.wide { MARGIN: 0px; WIDTH: 100% } DIV.toc_div { CLEAR: both; BORDER-RIGHT: #ccc 2px solid; PADDING-RIGHT: 0px; = BORDER-TOP: #ccc 2px solid; PADDING-LEFT: 8px; PADDING-BOTTOM: 4px; = MARGIN: 6px 18px 18px; BORDER-LEFT: #ccc 2px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: #ccc 2px solid } DIV.toc_div H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.toc_div H2 A { FONT-SIZE: 85%; TEXT-DECORATION: none } DIV.toc_div H2 A IMG { MARGIN-RIGHT: 6px } DIV.toc_div A.toggle { PADDING-RIGHT: 10px; MARGIN-TOP: 2px; PADDING-LEFT: 10px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; BACKGROUND: #f6f6f6; FLOAT: right; = PADDING-BOTTOM: 6px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 5px; = BORDER-BOTTOM: #ccc 1px solid; POSITION: relative; TOP: -2px; = TEXT-DECORATION: none } DIV.toc_div A.toggle:hover { BACKGROUND: #fff } DIV.backtotop { FLOAT: right } DIV.dateofreport { FLOAT: right } DIV.dateofreport { MARGIN: 6px 18px 12px 0px } BODY.reports DIV.block { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BACKGROUND: = #fff; MARGIN: 0px 36px 24px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: = #ccc 1px solid } DIV.backtotop { FLOAT: right; MARGIN-BOTTOM: -40px; MARGIN-RIGHT: -1px; POSITION: = relative } DIV.backtotop A { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: medium = none; DISPLAY: block; PADDING-LEFT: 8px; FONT-SIZE: 95%; BACKGROUND: = #f6f6f6; PADDING-BOTTOM: 3px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: = 3px; BORDER-BOTTOM: #ccc 1px solid; TEXT-DECORATION: none } DIV.backtotop A:hover { BACKGROUND: #fff } DIV.backtotop A IMG { MARGIN-RIGHT: 5px } A.cmimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 12px; BACKGROUND: = url(images/cm_arrow.gif) #f9f9f9 no-repeat -1px -1px; FILTER: = alpha(opacity=3D80); PADDING-BOTTOM: 2px; MARGIN: 0px 0px 0px 3px; = PADDING-TOP: 0px; ZOOM: 1; opacity: 0.8 } A.cmimg:hover { FILTER: alpha(opacity=3D100); opacity: 1 } A.cmimg:focus { FILTER: alpha(opacity=3D100); opacity: 1 } A.cmimg IMG { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FILTER: alpha(opacity=3D0); = PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 16px; PADDING-TOP: 0px; HEIGHT: = 14px; opacity: 0 } DIV.navPalette UL.courseMenu A.cmimg { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 0px; RIGHT: = 0px; BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; = FILTER: alpha(opacity=3D70); PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 0px; ZOOM: 1; POSITION: absolute; TOP: 5px; opacity: 0.7 } .portlet A.cmimg { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 0px; RIGHT: = 0px; BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; = FILTER: alpha(opacity=3D70); PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-TOP: 0px; ZOOM: 1; POSITION: absolute; TOP: 5px; opacity: 0.7 } DIV.navPalette UL.courseMenu A.cmimg:hover { BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D100); ZOOM: 1; opacity: 1 } .portlet A.cmimg:hover { BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D100); ZOOM: 1; opacity: 1 } DIV.navPalette UL.courseMenu A.cmimg:focus { BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D100); ZOOM: 1; opacity: 1 } .portlet A.cmimg:focus { BACKGROUND: url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D100); ZOOM: 1; opacity: 1 } DIV.navPalette UL.courseMenu LI.subhead A.cmimg { TOP: 9px } .portlet A.cmimg { RIGHT: 0px; POSITION: relative; TOP: 2px } DIV.navPalette UL.courseMenu A.cmimg IMG { FILTER: alpha(opacity=3D0); WIDTH: 13px; HEIGHT: 13px; opacity: 0 } .portlet A.cmimg IMG { FILTER: alpha(opacity=3D0); WIDTH: 13px; HEIGHT: 13px; opacity: 0 } SPAN.reorder IMG { FILTER: alpha(opacity=3D0); opacity: 0 } H3 SPAN.reorder IMG { MARGIN: 6px 3px } .cmdiv { DISPLAY: none; Z-INDEX: 200; ZOOM: 1; POSITION: absolute } .menumini { DISPLAY: none; Z-INDEX: 200; ZOOM: 1; POSITION: absolute } DIV.quickAddPal { DISPLAY: none; Z-INDEX: 200; ZOOM: 1; POSITION: absolute } DIV.keyboardAccess { DISPLAY: none; Z-INDEX: 200; ZOOM: 1; POSITION: absolute } UL.nav LI.sub UL { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; WIDTH: 138px; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; = BACKGROUND-COLOR: #e2eefe } .cmdiv UL { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; WIDTH: 138px; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; = BACKGROUND-COLOR: #e2eefe } .menumini UL { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; WIDTH: 138px; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; = BACKGROUND-COLOR: #e2eefe } DIV.quickAddPal { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; WIDTH: 138px; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; = BACKGROUND-COLOR: #e2eefe } DIV.keyboardAccess { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #acc2df 1px solid; WIDTH: 138px; PADDING-TOP: 0px; = BORDER-BOTTOM: #5577bb 1px solid; ZOOM: 1; LIST-STYLE-TYPE: none; = BACKGROUND-COLOR: #e2eefe } .quickAddPal { FONT-SIZE: 85%; WIDTH: 19em } .quickAddColor { WIDTH: 311px } .quickAddColor A.genericButton { FLOAT: left; MARGIN: 2px 0px } .modalOverlay { DISPLAY: none; Z-INDEX: 90; RIGHT: 0px; FILTER: alpha(opacity=3D1); = LEFT: 0px; WIDTH: 100%; BOTTOM: 0px; POSITION: absolute; TOP: 0px; = HEIGHT: 100%; BACKGROUND-COLOR: #000; opacity: .01 } UL.nav LI.sub { POSITION: static } UL.nav LI.sub:hover { POSITION: relative } UL.nav LI.sub UL { Z-INDEX: 1000; POSITION: absolute; TOP: -10000px } UL.nav LI.sub:hover { Z-INDEX: 1010! important } UL.nav LI.sub:hover UL { Z-INDEX: 1010! important } .cmdiv { Z-INDEX: 1150! important; BORDER-BOTTOM: #5577bb 1px solid } .cmdiv UL { BORDER-TOP: #acc2df 1px solid; WIDTH: 180px; BORDER-BOTTOM: 0px } .menumini UL { WIDTH: 120px } .cmdiv UL:first-child { BORDER-TOP: medium none } .menumini UL:first-child { BORDER-TOP: medium none } UL.nav LI.sub UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; ZOOM: 1 } UL.nav LI.sub UL LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; = DISPLAY: block; PADDING-LEFT: 20px; FONT-WEIGHT: normal; BACKGROUND: = url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; OVERFLOW-X: = hidden; PADDING-BOTTOM: 3px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: = 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: = 0px; ZOOM: 1; TEXT-DECORATION: none; WORD-WRAP: break-word } UL.nav LI.sub UL LI A:hover { BORDER-RIGHT: 0px; PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; = DISPLAY: block; PADDING-LEFT: 20px; FONT-WEIGHT: normal; BACKGROUND: = url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; OVERFLOW-X: = hidden; PADDING-BOTTOM: 3px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: = 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: = 0px; ZOOM: 1; TEXT-DECORATION: none; WORD-WRAP: break-word } .cmdiv A { BORDER-RIGHT: 0px; PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; = DISPLAY: block; PADDING-LEFT: 20px; FONT-WEIGHT: normal; BACKGROUND: = url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; OVERFLOW-X: = hidden; PADDING-BOTTOM: 3px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: = 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: = 0px; ZOOM: 1; TEXT-DECORATION: none; WORD-WRAP: break-word } .menumini A { BORDER-RIGHT: 0px; PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; = DISPLAY: block; PADDING-LEFT: 20px; FONT-WEIGHT: normal; BACKGROUND: = url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; OVERFLOW-X: = hidden; PADDING-BOTTOM: 3px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: = 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: = 0px; ZOOM: 1; TEXT-DECORATION: none; WORD-WRAP: break-word } UL.nav LI.sub UL LI A:focus { BORDER-RIGHT: 0px; PADDING-RIGHT: 8px; BORDER-TOP: #acc2df 1px solid; = DISPLAY: block; PADDING-LEFT: 20px; FONT-WEIGHT: normal; BACKGROUND: = url(images/cm_bullet_single.gif) #e2eefe no-repeat 8px 7px; OVERFLOW-X: = hidden; PADDING-BOTTOM: 3px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: = 138px; COLOR: #444; WORD-BREAK: normal; PADDING-TOP: 3px; BORDER-BOTTOM: = 0px; ZOOM: 1; TEXT-DECORATION: none; WORD-WRAP: break-word } .cmdiv A { BORDER-RIGHT: medium none; BORDER-TOP: medium none; FONT-SIZE: 95%; = BORDER-LEFT: medium none; WIDTH: auto; BORDER-BOTTOM: medium none } .menumini A { BORDER-RIGHT: medium none; PADDING-RIGHT: 10px; BORDER-TOP: medium = none; PADDING-LEFT: 16px; FONT-SIZE: 85%; PADDING-BOTTOM: 2px; = BORDER-LEFT: medium none; WIDTH: auto; PADDING-TOP: 2px; BORDER-BOTTOM: = medium none } UL.nav LI.sub UL.narrow { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 5000! = important; FLOAT: none; PADDING-BOTTOM: 0px; WIDTH: 130px; PADDING-TOP: = 0px; ZOOM: 1; HEIGHT: 1% } UL.nav LI.sub UL.narrow LI { CLEAR: both; BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; = PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: -2px 0px = 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; ZOOM: 1; = HEIGHT: 1% } UL.nav LI.sub UL.narrow LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 6px; FONT-SIZE: 85%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: 118px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; ZOOM: 1; TEXT-ALIGN: left } UL.nav LI.sub UL.narrow LI A:hover { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 6px; FONT-SIZE: 85%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: 118px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; ZOOM: 1; TEXT-ALIGN: left } UL.nav LI.sub UL.narrow LI A:focus { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 6px; FONT-SIZE: 85%; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: 118px; = PADDING-TOP: 0px; BORDER-BOTTOM: 0px; ZOOM: 1; TEXT-ALIGN: left } DIV.topGlobalLinks UL.nav LI.sub { Z-INDEX: 1000! important; ZOOM: 1; HEIGHT: 1% } UL.nav LI.sub UL LI:first-child A { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: = 0px } DIV.actionBarMicro UL.nav LI.sub UL LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px! important; BORDER-TOP: 0px; = DISPLAY: block; PADDING-LEFT: 14px! important; FONT-WEIGHT: normal; = FONT-SIZE: 85%; BACKGROUND: url(images/cm_bullet_single.gif) #e2eefe = no-repeat 5px 3px; PADDING-BOTTOM: 2px! important; MARGIN: 0px; = BORDER-LEFT: 0px; WIDTH: 100px; COLOR: #444; PADDING-TOP: 2px! = important; BORDER-BOTTOM: 0px; TEXT-DECORATION: none } DIV.paneTabs UL.nav LI.sub UL LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 6px! important; BORDER-TOP: 0px; = DISPLAY: block; PADDING-LEFT: 14px! important; FONT-WEIGHT: normal; = FONT-SIZE: 85%; BACKGROUND: url(images/cm_bullet_single.gif) #e2eefe = no-repeat 5px 3px; PADDING-BOTTOM: 2px! important; MARGIN: 0px; = BORDER-LEFT: 0px; WIDTH: 100px; COLOR: #444; PADDING-TOP: 2px! = important; BORDER-BOTTOM: 0px; TEXT-DECORATION: none } DIV.paneTabs UL.nav LI.sub UL LI A { TEXT-ALIGN: left } UL.nav LI.sub UL LI A:hover { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } .cmdiv A:hover { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } .menumini A:hover { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } UL.nav LI.sub UL LI A:focus { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } .cmdiv A:focus { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } .menumini A:focus { PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 3px; COLOR: = #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff } DIV.timediv UL LI A:hover { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px } .timediv UL LI A:focus { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px } DIV.timediv UL LI A:focus { COLOR: #444444; BACKGROUND-COLOR: #e2eefe } DIV.timediv UL LI A:hover:focus { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.actionBarMicro UL.nav LI.sub UL LI A:hover { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff no-repeat 5px 3px; BORDER-LEFT: = 0px; COLOR: #000; BORDER-BOTTOM: 0px } DIV.paneTabs UL.nav LI.sub UL LI A:hover { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff no-repeat 5px 3px; BORDER-LEFT: = 0px; COLOR: #000; BORDER-BOTTOM: 0px } DIV.actionBarMicro UL.nav LI.sub UL LI A:focus { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff no-repeat 5px 3px; BORDER-LEFT: = 0px; COLOR: #000; BORDER-BOTTOM: 0px } DIV.paneTabs UL.nav LI.sub UL LI A:focus { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BACKGROUND: = url(images/cm_bullet_single.gif) #fff no-repeat 5px 3px; BORDER-LEFT: = 0px; COLOR: #000; BORDER-BOTTOM: 0px } UL.nav LI.sub:hover UL { Z-INDEX: 101; LEFT: 0px; TOP: 22px } DIV.actionBarMicro UL.nav LI.sub:hover UL { Z-INDEX: 101; LEFT: 0px; TOP: 22px } DIV.topGlobalLinks UL.nav LI.sub:hover UL { Z-INDEX: 101; LEFT: 0px; TOP: 0px } DIV.topTabs-compact DIV.topGlobalLinks UL.nav LI.sub:hover UL { Z-INDEX: 101; RIGHT: 0px; LEFT: auto; TOP: 0px } DIV.actionBarMicro UL.nav LI.sub:hover UL { TOP: 18px } DIV.rumble_top UL.nav LI.sub:hover UL { TOP: 18px } DIV.rumble UL.nav LI.sub:hover UL { TOP: 18px } .cmdiv LI.contextmenubar_top { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = DISPLAY: block; PADDING-LEFT: 0px; RIGHT: 0px; BACKGROUND: none = transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: = medium none; WIDTH: 182px; PADDING-TOP: 0px; BORDER-BOTTOM: medium none; = POSITION: absolute; TOP: -17px; TEXT-ALIGN: right } .menumini LI.contextmenubar { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = DISPLAY: block; PADDING-LEFT: 0px; RIGHT: 0px; BACKGROUND: none = transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: = medium none; WIDTH: 182px; PADDING-TOP: 0px; BORDER-BOTTOM: medium none; = POSITION: absolute; TOP: -17px; TEXT-ALIGN: right } .menumini LI.contextmenubar { WIDTH: 122px; TOP: -17px } .cmdiv LI.contextmenubar_top A { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .cmdiv LI.contextmenubar_top A:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .cmdiv LI.contextmenubar_top A { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .cmdiv LI.contextmenubar_top A:focus { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .menumini LI.contextmenubar A { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .menumini LI.contextmenubar A:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .menumini LI.contextmenubar A { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } .menumini LI.contextmenubar A:focus { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 2px; BACKGROUND: #c8dbf4; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none } DIV.quickAddPal H3 { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; BACKGROUND: #cedff6 repeat-x 0px 0px; PADDING-BOTTOM: 3px; MARGIN: = 0px 0px 4px; PADDING-TOP: 3px; BORDER-BOTTOM: #b5c9e5 1px solid } DIV.keyboardAccess H3 { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; BACKGROUND: #cedff6 repeat-x 0px 0px; PADDING-BOTTOM: 3px; MARGIN: = 0px 0px 4px; PADDING-TOP: 3px; BORDER-BOTTOM: #b5c9e5 1px solid } DIV.quickAddPal DIV.quickAddPalHeader { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; BACKGROUND: #cedff6 repeat-x 0px 0px; PADDING-BOTTOM: 3px; MARGIN: = 0px 0px 4px; PADDING-TOP: 3px; BORDER-BOTTOM: #b5c9e5 1px solid } DIV.quickAddPal H4 { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 100%; PADDING-BOTTOM: = 3px; MARGIN: 0px 0px 4px; PADDING-TOP: 3px } DIV.keyboardAccess H4 { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 100%; PADDING-BOTTOM: = 3px; MARGIN: 0px 0px 4px; PADDING-TOP: 3px } DIV.quickAddPal DIV.controls { CLEAR: both; PADDING-RIGHT: 3px; BORDER-TOP: #acc2df 1px solid; = PADDING-LEFT: 9px; FONT-SIZE: 95%; PADDING-BOTTOM: 3px; MARGIN: 0px 2px; = PADDING-TOP: 3px; TEXT-ALIGN: right } DIV.keyboardAccess DIV.controls { CLEAR: both; PADDING-RIGHT: 3px; BORDER-TOP: #acc2df 1px solid; = PADDING-LEFT: 9px; FONT-SIZE: 95%; PADDING-BOTTOM: 3px; MARGIN: 0px 2px; = PADDING-TOP: 3px; TEXT-ALIGN: right } .comText DIV.controls { CLEAR: both; PADDING-RIGHT: 3px; BORDER-TOP: #acc2df 1px solid; = PADDING-LEFT: 9px; FONT-SIZE: 95%; PADDING-BOTTOM: 3px; MARGIN: 0px 2px; = PADDING-TOP: 3px; TEXT-ALIGN: right } .comText DIV.controls { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; MARGIN: 3px = 0px 0px; PADDING-TOP: 6px } DIV.keyboardAccess DIV.minicolumn { FLOAT: left } DIV.keyboardAccess DIV.minicolumn { MARGIN: 0px 9px } DIV.keyboardAccess P.paletteHelp { BORDER-RIGHT: #ffcc00 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #ffcc00 1px solid; PADDING-LEFT: 6px; FONT-SIZE: 90%; BACKGROUND: = #fff1c5; PADDING-BOTTOM: 3px; MARGIN: 6px 9px; BORDER-LEFT: #ffcc00 1px = solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ffcc00 1px solid; WHITE-SPACE: = normal } DIV.keyboardAccess P.colspan-1 { WIDTH: 120px } DIV.keyboardAccess P.colspan-2 { WIDTH: 260px } DIV.keyboardAccess P.colspan-3 { WIDTH: 390px } DIV.orderingControls-ns { PADDING-RIGHT: 3px; DISPLAY: block; PADDING-LEFT: 25px; FLOAT: none; = PADDING-BOTTOM: 3px; PADDING-TOP: 9px; TEXT-ALIGN: center } DIV.orderingControls-ew { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; PADDING-TOP: 40px } DIV.orderingControls-ns A { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; DISPLAY: = inline; MARGIN: 0px 2px 0px 0px; BORDER-LEFT: #ccc 1px solid; = BORDER-BOTTOM: #ccc 1px solid } DIV.orderingControls-ew A { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; DISPLAY: = inline; MARGIN: 0px 2px 0px 0px; BORDER-LEFT: #ccc 1px solid; = BORDER-BOTTOM: #ccc 1px solid } DIV.orderingControls-ew A { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; DISPLAY: = block; MARGIN: 0px 0px 2px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: = #ccc 1px solid } DIV.orderingControls-ns A IMG { WIDTH: 16px; HEIGHT: 16px } DIV.orderingControls-ew A IMG { WIDTH: 16px; HEIGHT: 16px } DIV.orderingControls-ns A.up { BACKGROUND: url(images/small_up.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ns A.down { BACKGROUND: url(images/small_down.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ns A.top { BACKGROUND: url(images/small_top.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ns A.bottom { BACKGROUND: url(images/small_bottom.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ew A.first { BACKGROUND: url(images/small_rewind.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ew A.next { BACKGROUND: url(images/small_next.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ew A.previous { BACKGROUND: url(images/small_previous.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ew A.last { BACKGROUND: url(images/small_ffwd.gif) #ededed no-repeat 0px 0px } DIV.orderingControls-ns A:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BORDER-LEFT: = #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-COLOR: #fff } DIV.orderingControls-ew A:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BORDER-LEFT: = #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-COLOR: #fff } .receipt { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 6px; MARGIN: 0px = 3px 6px; PADDING-TOP: 6px; POSITION: relative; -moz-border-radius: 6px; = -webkit-border-radius: 6px } .receipt A.close { RIGHT: 20px; FILTER: alpha(opacity=3D70); POSITION: absolute; TOP: 3px; = opacity: 0.7 } .bad { FONT-WEIGHT: bold; BACKGROUND: #fb6767; COLOR: #fff } .good { FONT-WEIGHT: bold; BACKGROUND: #85bd3d; COLOR: #fff } .infoReceipt { FONT-WEIGHT: bold; BACKGROUND: #6495ed; COLOR: #fff } .inlineReceipt { PADDING-RIGHT: 9px; DISPLAY: none; PADDING-LEFT: 9px; PADDING-BOTTOM: = 6px; MARGIN: 0px 3px 6px; PADDING-TOP: 6px; POSITION: absolute; = -moz-border-radius: 6px; -webkit-border-radius: 6px } BODY.cmPopup #navigationPane { MARGIN: 0px; WIDTH: auto; POSITION: relative } .cmWrapper { PADDING-TOP: 12px! important; POSITION: relative } .cmWrapper DIV.navPalette { MARGIN: 0px 14px 12px; POSITION: relative } DIV.tabPreview { BORDER-RIGHT: #cdcdcd 12px solid; BORDER-TOP: #cdcdcd 12px solid; = Z-INDEX: 1; BACKGROUND: #cdcdcd; MARGIN: 0px 6px 6px; BORDER-LEFT: = #cdcdcd 12px solid; WIDTH: auto; BORDER-BOTTOM: #cdcdcd 12px solid; = POSITION: relative } DIV.tabPreview DIV.paneTabs { MARGIN-TOP: 12px } DIV.status { PADDING-RIGHT: 6px; DISPLAY: block; PADDING-LEFT: 6px; FONT-SIZE: 90%; = BACKGROUND: #f9f9f9; PADDING-BOTTOM: 3px; MARGIN: 0px; COLOR: #000; = PADDING-TOP: 1px; TEXT-ALIGN: left } DIV.status A IMG { VERTICAL-ALIGN: middle } DIV.status P { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 2px; FONT-SIZE: 90%; BACKGROUND: #fff; = PADDING-BOTTOM: 0px; MARGIN: 2px auto 4px; BORDER-LEFT: #ccc 1px solid; = COLOR: #444444; LINE-HEIGHT: 10%; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc = 1px solid; HEIGHT: 12px! important; TEXT-ALIGN: left! important } DIV.status P IMG { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; HEIGHT: 8px; BACKGROUND-COLOR: #8dafaf } DIV.stopped P IMG { BACKGROUND: url(images/progress_stopped.gif) #fff } DIV.status A.buttonMicro { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 5px; FONT-SIZE: 90%; BACKGROUND: = url(images/button3_back.gif) #ededed repeat-x 0% 50%; PADDING-BOTTOM: = 0px; MARGIN: 1px auto; BORDER-LEFT: #ccc 1px solid; COLOR: #666; = PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px solid; TEXT-DECORATION: none } DIV.status DIV { POSITION: relative; TEXT-ALIGN: center } DIV.status A.buttonMicro:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #aaa 1px solid; COLOR: #333; BORDER-BOTTOM: #aaa 1px = solid } .searchbar { BORDER-RIGHT: medium none; PADDING-RIGHT: 2px; BORDER-TOP: #d7bb66 1px = solid; PADDING-LEFT: 2px; BACKGROUND: #eddca5; PADDING-BOTTOM: 2px; = MARGIN: -1px 0px 0px; BORDER-LEFT: medium none; PADDING-TOP: 2px; = BORDER-BOTTOM: #d7bb66 1px solid; POSITION: relative; HEIGHT: 1% } .searchbarPicker { BORDER-RIGHT: medium none; PADDING-RIGHT: 2px; BORDER-TOP: #d7bb66 1px = solid; PADDING-LEFT: 2px; BACKGROUND: #eddca5; PADDING-BOTTOM: 2px; = MARGIN: -1px 0px 0px; BORDER-LEFT: medium none; PADDING-TOP: 2px; = BORDER-BOTTOM: #d7bb66 1px solid; POSITION: relative; HEIGHT: 1% } .searchbar { FONT-SIZE: 85%; MARGIN: 0px -9px 0px 0px } .searchbarPicker TABLE { FONT-SIZE: 85%; MARGIN: 0px -9px 0px 0px } .searchbar TABLE TD { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } .searchbar TABLE TD TABLE TD { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } .searchbar TABLE FIELDSET { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px; HEIGHT: 1% } .searchbar TABLE DIV { PADDING-RIGHT: 0px; DISPLAY: inline-block; PADDING-LEFT: 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } .searchbar FORM { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .searchbarPicker { BORDER-RIGHT: medium none; BORDER-TOP: medium none; FONT-SIZE: 90%; = BORDER-LEFT: medium none; BORDER-BOTTOM: medium none } .searchbar:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } .searchbarPicker:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } .searchbar A.close { RIGHT: 6px; POSITION: absolute; TOP: 3px; opacity: 0.8 } .searchbarPicker A.close { RIGHT: 6px; POSITION: absolute; TOP: 3px; opacity: 0.8 } .slideshowControls { FONT-SIZE: 100%; MARGIN: 8px auto 12px; TEXT-ALIGN: center } .searchbar FIELDSET { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 9px; PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 6px; BORDER-BOTTOM: 0px } .searchbarPicker FIELDSET { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; PADDING-LEFT: = 9px; PADDING-BOTTOM: 6px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 6px; BORDER-BOTTOM: 0px } .searchbar FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .portlet FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .searchbarPicker FIELDSET LEGEND { VISIBILITY: hidden; LINE-HEIGHT: 0; HEIGHT: 0px } .searchbar FIELDSET INPUT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px 0px; = VERTICAL-ALIGN: middle; BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #666 1px solid } .searchbar FIELDSET SELECT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px 0px; = VERTICAL-ALIGN: middle; BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #666 1px solid } .searchbarPicker FIELDSET INPUT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px 0px; = VERTICAL-ALIGN: middle; BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #666 1px solid } .searchbarPicker FIELDSET SELECT { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px 0px; = VERTICAL-ALIGN: middle; BORDER-LEFT: #666 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #666 1px solid } .searchbar * INPUT[type=3D'radio'] { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } .searchbarPicker * INPUT[type=3D'radio'] { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } .searchbar * INPUT[type=3D'checkbox'] { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } .searchbarPicker * INPUT[type=3D'checkbox'] { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } .searchbar FIELDSET LABEL { FONT-SIZE: 100% } .portlet FIELDSET LABEL { FONT-SIZE: 100% } .searchbarPicker FIELDSET LABEL { FONT-SIZE: 100% } .searchbar H2 { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; PADDING-BOTTOM: 1px; MARGIN: 0px; PADDING-TOP: 1px } .searchbarPicker H2 { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; PADDING-BOTTOM: 1px; MARGIN: 0px; PADDING-TOP: 1px } .searchbar FIELDSET OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .searchbarPicker FIELDSET OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .searchbar FIELDSET OL LI.groupLabel { PADDING-RIGHT: 3px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; PADDING-TOP: 5px } .searchbarPicker FIELDSET OL LI.groupLabel { PADDING-RIGHT: 3px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; PADDING-TOP: 5px } .searchbar FIELDSET OL LI { FLOAT: left } .searchbarPicker FIELDSET OL LI { FLOAT: left } .searchbar FIELDSET OL LI.options { FLOAT: right } .searchbarPicker FIELDSET OL LI.options { FLOAT: right } .searchbarPicker FIELDSET OL LI SPAN { DISPLAY: inline } .searchbarPicker FIELDSET OL LI OL LI SPAN { DISPLAY: inline } .searchbar SPAN.spacer { MARGIN: 0px 4px } .tabGroupsPreview { FONT-SIZE: 100%; MARGIN: -11px -12px 24px } .previewContent { PADDING-RIGHT: 14px; PADDING-LEFT: 14px; Z-INDEX: 1; BACKGROUND: = url(images/dcp_block_bg.png) #aaa no-repeat right bottom; = PADDING-BOTTOM: 14px; MARGIN: 0px 14px 11px; WIDTH: auto; PADDING-TOP: = 14px; POSITION: relative } .previewContent IFRAME { WIDTH: 100%; HEIGHT: 300px } .previewOverlay { FONT-WEIGHT: bold; FONT-SIZE: 300%; FILTER: alpha(opacity=3D30); = TEXT-TRANSFORM: uppercase; WIDTH: 100%; COLOR: #555; LETTER-SPACING: = 10px; POSITION: absolute; TOP: 130px; TEXT-ALIGN: center } .previewOverlay SPAN { PADDING-RIGHT: 12px; PADDING-LEFT: 24px; FILTER: alpha(opacity=3D30); = PADDING-BOTTOM: 6px; PADDING-TOP: 6px; BACKGROUND-COLOR: white; opacity: = .30 } P.warning { PADDING-RIGHT: 18px; PADDING-LEFT: 18px; FONT-SIZE: 100%; = PADDING-BOTTOM: 12px; MARGIN: 12px 0px 24px; COLOR: #fff; PADDING-TOP: = 9px; BACKGROUND-COLOR: #cf1d19 } .tabGroupsPreview .previewOverlay { TOP: 54px } B.shadow { DISPLAY: block; BACKGROUND: url(images/bg_content_shadow.png) repeat-x = 0px -3px; MARGIN: 0px 1px; OVERFLOW: hidden; HEIGHT: 9px } HTML * DIV.calPicker { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MAX-WIDTH: 60%; PADDING-BOTTOM: = 21px; OVERFLOW: auto; WIDTH: 30em; PADDING-TOP: 0px } DIV.calPicker { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; Z-INDEX: = 1500! important; PADDING-BOTTOM: 0px! important; OVERFLOW: visible! = important; WIDTH: auto! important; PADDING-TOP: 0px! important } DIV.calPicker DIV.calHead { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px; POSITION: relative } DIV.calPicker H3 { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; = PADDING-BOTTOM: 0px; MARGIN: 0px 40px; BORDER-LEFT: medium none; = PADDING-TOP: 0px; BORDER-BOTTOM: medium none; TEXT-ALIGN: center } DIV.calPicker DIV.previous { LEFT: 2px; POSITION: absolute; TOP: 2px } DIV.calPicker DIV.next { RIGHT: 2px; POSITION: absolute; TOP: 2px; TEXT-ALIGN: right } DIV.calPicker DIV.calFoot { CLEAR: both; PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: = 6px; PADDING-TOP: 6px; TEXT-ALIGN: center } DIV.calPicker A.contextmenubar { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; BACKGROUND: = #c8dbf4; PADDING-BOTTOM: 2px; PADDING-TOP: 0px; TEXT-ALIGN: right } DIV.calPicker A.contextmenubar:hover { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; BACKGROUND: = #c8dbf4; PADDING-BOTTOM: 2px; PADDING-TOP: 0px; TEXT-ALIGN: right } DIV.timediv UL { OVERFLOW: auto; WIDTH: 8em; HEIGHT: 200px } DIV.timediv UL LI.contextmenubar_top { WIDTH: 8.15em } DIV.timediv UL LI A { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 3px; PADDING-TOP: 3px } UL.buildList UL.detailList LI SPAN.hidden { DISPLAY: none } UL.buildList UL.detailList LI SPAN.tagContainer { POSITION: relative } UL.buildList UL.detailList LI SPAN.tagContainer SPAN.hidden { DISPLAY: none } UL.buildList UL.detailList LI SPAN.tagContainer { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; PADDING-TOP: 2px } UL.buildList UL.detailList LI SPAN.tagContainer SPAN { PADDING-RIGHT: 2px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FLOAT: none; PADDING-BOTTOM: 2px; WIDTH: auto; PADDING-TOP: 2px } UL.buildList UL.detailList LI SPAN.tagContainer INPUT { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; DISPLAY: = inline; FONT-SIZE: 95%; FLOAT: none; MARGIN: 0px; VERTICAL-ALIGN: = middle; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } SPAN.tagContainer INPUT { BORDER-RIGHT: #555 1px solid; BORDER-TOP: #555 1px solid; DISPLAY: = inline; FONT-SIZE: 95%; FLOAT: none; MARGIN: 0px; VERTICAL-ALIGN: = middle; BORDER-LEFT: #555 1px solid; BORDER-BOTTOM: #555 1px solid } UL.buildList UL.detailList LI SPAN.tagContainer A.browse { FONT-SIZE: 95%; VERTICAL-ALIGN: middle } SPAN.tagContainer A.browse { FONT-SIZE: 95%; VERTICAL-ALIGN: middle } SPAN.tagContainer SPAN.newTagForm { MARGIN-LEFT: 6px; BORDER-LEFT: #999 1px dotted } SPAN.tagContainer SPAN.newTagForm LABEL { PADDING-LEFT: 6px } SPAN.currentTags { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #acc2df 1px solid; = DISPLAY: none; Z-INDEX: 100; RIGHT: 0px; OVERFLOW: hidden; BORDER-LEFT: = #acc2df 1px solid; WIDTH: 16em; LINE-HEIGHT: 1.8; BORDER-BOTTOM: #5577bb = 1px solid; ZOOM: 1; POSITION: absolute; TOP: 1.2em; BACKGROUND-COLOR: = #e2eefe } SPAN.currentTags SPAN { PADDING-RIGHT: 6px; DISPLAY: block; PADDING-LEFT: 6px; PADDING-BOTTOM: = 6px; PADDING-TOP: 18px } SPAN.currentTags A { FONT-WEIGHT: bold } SPAN.currentTags A.closeCloud { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 2px; BACKGROUND: = #c8dbf4; LEFT: 0px; PADDING-BOTTOM: 1px; WIDTH: 98%; LINE-HEIGHT: 1; = PADDING-TOP: 0px; POSITION: absolute; TOP: 0px; TEXT-ALIGN: right } DIV.auto_complete { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #acc2df 1px solid; = Z-INDEX: 1000; BACKGROUND: #e2eefe; BORDER-LEFT: #acc2df 1px solid; = WIDTH: 12em; BORDER-BOTTOM: #5577bb 1px solid } DIV.auto_complete UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: 100%; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.auto_complete UL LI { PADDING-RIGHT: 1%; PADDING-LEFT: 3%; PADDING-BOTTOM: 2px; MARGIN: 0px; = OVERFLOW: hidden; WIDTH: 96%; CURSOR: pointer; PADDING-TOP: 2px } DIV.auto_complete UL LI.selected { BACKGROUND-COLOR: #fff } DIV.auto_complete UL STRONG.highlight { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.dropzone { BORDER-RIGHT: #333333 2px dashed; BORDER-TOP: #333333 2px dashed; = MARGIN: 5px; BORDER-LEFT: #333333 2px dashed; BORDER-BOTTOM: #333333 2px = dashed } #copyright { DISPLAY: block! important; FONT-SIZE: 85%; BACKGROUND: none transparent = scroll repeat 0% 0%; MARGIN: 12px auto; WIDTH: 500px; COLOR: #555; = POSITION: relative } .loginCopyright { WIDTH: 580px! important } DIV.logo { MIN-HEIGHT: 4em; FLOAT: left; VERTICAL-ALIGN: bottom; LINE-HEIGHT: = 1.3em } DIV.productTitle { MIN-HEIGHT: 4em; FLOAT: left; VERTICAL-ALIGN: bottom; LINE-HEIGHT: = 1.3em } DIV.legal { MIN-HEIGHT: 4em; FLOAT: left; VERTICAL-ALIGN: bottom; LINE-HEIGHT: = 1.3em } DIV.additionalInfo { MIN-HEIGHT: 4em; FLOAT: left; VERTICAL-ALIGN: bottom; LINE-HEIGHT: = 1.3em } DIV.productTitle { PADDING-RIGHT: 12px; PADDING-LEFT: 9px; MIN-HEIGHT: auto; = PADDING-BOTTOM: 0px; PADDING-TOP: 9px } DIV.logo { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } DIV.legal { PADDING-RIGHT: 3px; PADDING-LEFT: 12px; PADDING-BOTTOM: 6px; = BORDER-LEFT: #efefef 1px dotted; WIDTH: 18.5em; PADDING-TOP: 3px } DIV.additionalInfo { PADDING-RIGHT: 3px; PADDING-LEFT: 12px; PADDING-BOTTOM: 6px; = BORDER-LEFT: #efefef 1px dotted; WIDTH: 18.5em; PADDING-TOP: 3px } DIV.legal P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.additionalInfo P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: = 0px; PADDING-TOP: 0px } .loginCopyright DIV.legal { MIN-HEIGHT: 2.5em; WIDTH: 24em } .loginCopyright DIV.additionalInfo { MIN-HEIGHT: 2.5em; WIDTH: 24em } .loginCopyright DIV.legal { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 6px; = BORDER-LEFT: medium none; WIDTH: 24.5em; PADDING-TOP: 3px } DIV.productTitle A { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 125%; COLOR: #333; = LINE-HEIGHT: 1.1em; TEXT-ALIGN: right; TEXT-DECORATION: none } DIV.productTitle A:hover { TEXT-DECORATION: underline } DIV.additionalInfo A { COLOR: #333 } DIV.copyrightDetailContents { CLEAR: left; PADDING-RIGHT: 6px; DISPLAY: none; PADDING-LEFT: 20px; = MIN-HEIGHT: 5em; LEFT: 5.2em; PADDING-BOTTOM: 9px; WIDTH: 42em; COLOR: = #fff; PADDING-TOP: 6px; POSITION: absolute; TOP: -0.2em; = BACKGROUND-COLOR: #404040; -moz-border-radius: 5px } .productImg { MARGIN-TOP: 5px; FLOAT: left } DIV.copyrightDetailContents UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 0px 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.copyrightDetailContents UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV.copyrightDetailContents UL LI SPAN { FONT-WEIGHT: bold } A.closeCopyright { FLOAT: right } DIV#lightboxWrapper { Z-INDEX: 1001; RIGHT: 0px; LEFT: 0px; POSITION: absolute; TOP: 0px } DIV#lightboxWrapper-inner { Z-INDEX: 1002; LEFT: 0px; WIDTH: 100%; POSITION: relative; TOP: 0px; = TEXT-ALIGN: center } DIV#lightbox { DISPLAY: block; Z-INDEX: 1003; LEFT: auto; MARGIN: 40px 0px 0px; = POSITION: relative; TOP: auto; TEXT-ALIGN: left } #lightbox DIV#lightboxContent { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = auto; WIDTH: 600px; PADDING-TOP: 0px; POSITION: relative; = BACKGROUND-COLOR: transparent! important } #lightbox DIV#lightboxContent DIV.lbContainer { BACKGROUND: #ffffff; MAX-HEIGHT: 300px } #lightbox DIV#lightboxContent DIV.lbContainer:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } DIV#lightboxContent H2 { PADDING-RIGHT: 1em; PADDING-LEFT: 1em; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 0.3em; MARGIN: 0px; PADDING-TOP: 0.3em; BORDER-BOTTOM: = #ed9 1px solid; POSITION: relative } .lbAction { Z-INDEX: 1005; RIGHT: 9px; POSITION: absolute; TOP: 6px } #overlay { DISPLAY: none; Z-INDEX: 1000; RIGHT: 0px; FILTER: alpha(opacity=3D30); = LEFT: 0px; WIDTH: 100%; BOTTOM: 0px; POSITION: fixed; TOP: 0px; HEIGHT: = 100%; BACKGROUND-COLOR: #000; opacity: .30 } DIV#overlay { POSITION: absolute } .done#lightbox #lbLoadMessage { DISPLAY: none } .done#lightbox #lbContent { DISPLAY: block } .loading#lightbox #lbContent { DISPLAY: none } .loading#lightbox #lbLoadMessage { DISPLAY: block } .done#lightbox IMG { =09 } .myPlacesContent { BORDER-RIGHT: medium none; PADDING-RIGHT: 12px; BORDER-TOP: medium = none; PADDING-LEFT: 12px; BACKGROUND: #fff; PADDING-BOTTOM: 16px; = OVERFLOW: auto; BORDER-LEFT: medium none; MAX-HEIGHT: 500px! important; = PADDING-TOP: 16px; BORDER-BOTTOM: medium none; HEIGHT: auto! important } UL.langOptions { LIST-STYLE-TYPE: none } UL.langOptions LI { BACKGROUND: none transparent scroll repeat 0% 0% } .avatar { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; MARGIN: auto; = BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #ccc 1px = solid } .myavatar { OVERFLOW: hidden; MAX-HEIGHT: 150px } #lightbox DIV.topRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } #lightbox DIV.bottomRound { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } #lightbox DIV.topRound B { DISPLAY: block; BACKGROUND: #fff; OVERFLOW: hidden } #lightbox DIV.bottomRound B { DISPLAY: block; BACKGROUND: #fff; OVERFLOW: hidden } #lightbox DIV.topRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } #lightbox DIV.bottomRound B.outer { MARGIN: 0px 3px; HEIGHT: 1px } #lightbox DIV.topRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } #lightbox DIV.bottomRound B.middle { MARGIN: 0px 2px; HEIGHT: 1px } #lightbox DIV.topRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } #lightbox DIV.bottomRound B.inner { MARGIN: 0px 1px; HEIGHT: 2px } #lightbox DIV.topRound B { BACKGROUND: #fff1c5 } #lightbox DIV.lightBlue B { BACKGROUND: #e3efff } #lightbox DIV.error B { BACKGROUND: #ff0000 } #lightbox .tallPara { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 14px; MARGIN: = 0px; PADDING-TOP: 14px } #lightbox UL { MARGIN: 0px 0px 12px } #lightbox DIV.column-3 { MIN-HEIGHT: 200px! important; MARGIN: 0px; WIDTH: 33%; HEIGHT: auto! = important } #lightbox DIV.column-2 { MIN-HEIGHT: 200px! important; MARGIN: 0px; WIDTH: 33%; HEIGHT: auto! = important } #lightbox DIV.column-2 { WIDTH: 50% } .clearfix:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } .clearfix { DISPLAY: inline-block } .clearfix { DISPLAY: block } .clearfloats { CLEAR: both } .qShow { DISPLAY: block } .qHide { DISPLAY: none } .completionContainer { PADDING-BOTTOM: 6px; OVERFLOW: auto; PADDING-TOP: 6px } .completionContainerLarge { PADDING-BOTTOM: 6px; OVERFLOW: auto; PADDING-TOP: 6px; HEIGHT: 75px } .pagedAssessment { BACKGROUND: #888; MARGIN: 0px; COLOR: #ffffff! important } .pagedRumble { BACKGROUND: #fff7de } .pagedControls { PADDING-RIGHT: 4px; PADDING-LEFT: 40px; BACKGROUND: #fff7de; = PADDING-BOTTOM: 6px; MARGIN: -5px -4px -5px -40px; COLOR: #000000! = important; PADDING-TOP: 5px } .pagedPointsOutsideBar { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; RIGHT: 6px; BACKGROUND: #fae7ae 0% 50%; LEFT: auto; = PADDING-BOTTOM: 0px; MARGIN: 0pt 0px 0pt 0pt; COLOR: #000000! important; = LINE-HEIGHT: 100%; PADDING-TOP: 0px; LETTER-SPACING: 1px; POSITION: = relative; TOP: 0pt } .pagedPoints { PADDING-RIGHT: 0px; PADDING-LEFT: 10px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; BACKGROUND: #fae7ae 0% 50%; PADDING-BOTTOM: 6px; MARGIN: -5px 24px = -5px -10px; COLOR: #000000! important; LINE-HEIGHT: 100%; PADDING-TOP: = 5px; LETTER-SPACING: 1px } .bb-cpgbtd { FONT-SIZE: 10pt; FONT-FAMILY: Arial,Helvetica,sans-serif } .bb-cpgbth { FONT-SIZE: 10pt; FONT-FAMILY: Arial,Helvetica,sans-serif } .bb-cpmgtd { FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: Arial,Helvetica,sans-serif } .bb-cpmgth { FONT-WEIGHT: bold; FONT-SIZE: 9pt; FONT-FAMILY: = Arial,Helvetica,sans-serif } .actionBar UL LI.mainButton-legacy { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FONT-SIZE: 95%; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 2px = 0px 0px 6px; PADDING-TOP: 0px } .reverseButtons UL LI.mainButton-legacy { FLOAT: right } .actionBar UL LI.mainButton-legacy A { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 7px; BORDER-TOP: = #acc2df 1px solid; DISPLAY: block; PADDING-LEFT: 7px; FONT-SIZE: 100%; = BACKGROUND: #d3e2f5; PADDING-BOTTOM: 3px; BORDER-LEFT: #acc2df 1px = solid; COLOR: #444; PADDING-TOP: 3px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } .actionBar UL LI.mainButton-legacy A:hover { BORDER-RIGHT: #5577bb 1px solid; BORDER-TOP: #acc2df 1px solid; = BACKGROUND: url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = BORDER-LEFT: #acc2df 1px solid; BORDER-BOTTOM: #5577bb 1px solid } A.inlineAction-legacy { BORDER-RIGHT: #acc2df 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 95%; BACKGROUND: = #d3e2f5; PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; COLOR: = #000; PADDING-TOP: 1px; BORDER-BOTTOM: #acc2df 1px solid; = TEXT-DECORATION: none } A.inlineAction-legacy:hover { BORDER-RIGHT: #5577bb 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #acc2df 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 95%; BACKGROUND: = url(images/rumble_button_back.gif) #e3efff repeat-x 0px 0px; = PADDING-BOTTOM: 2px; BORDER-LEFT: #acc2df 1px solid; COLOR: #000; = PADDING-TOP: 1px; BORDER-BOTTOM: #5577bb 1px solid; TEXT-DECORATION: = none } DIV.buttonCm DIV.navPaletteContent { BACKGROUND: none transparent scroll repeat 0% 0% } DIV.buttonCm UL.courseMenu { WIDTH: 190px } DIV.buttonCm UL.courseMenu LI { BACKGROUND-POSITION: 14px 0px; MARGIN: 4px -14px; BACKGROUND-REPEAT: = no-repeat; POSITION: relative; BACKGROUND-COLOR: transparent } DIV.buttonCm UL.courseMenu LI.here { BACKGROUND-POSITION: 14px 0px; MARGIN: 4px -14px; BACKGROUND-REPEAT: = no-repeat; POSITION: relative; BACKGROUND-COLOR: transparent } DIV.buttonCm UL.courseMenu LI.subhead { PADDING-RIGHT: 0px; PADDING-LEFT: 20px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; HEIGHT: 1% } DIV.buttonCm UL.courseMenu LI.subhead H4 { PADDING-RIGHT: 16px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 100%; PADDING-BOTTOM: 0px; MARGIN: 0pt 0pt 0pt 14px; PADDING-TOP: 0px; = HEIGHT: 1% } DIV.buttonCm UL.courseMenu LI.divider { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 4px; MARGIN: 0px; PADDING-TOP: 0px } DIV.buttonCm UL.courseMenu LI.divider HR { BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px; VERTICAL-ALIGN: = middle; BORDER-LEFT: 0px; LINE-HEIGHT: 1%; BORDER-BOTTOM: 0px; POSITION: = relative; TOP: -9px; HEIGHT: 1px; BACKGROUND-COLOR: #777 } DIV.buttonCm UL.courseMenu LI A { PADDING-RIGHT: 6px; BORDER-TOP: 0px; DISPLAY: block; PADDING-LEFT: 6px; = FONT-WEIGHT: normal; BACKGROUND-IMAGE: none; PADDING-BOTTOM: 6px; = MARGIN: 0px 0px 0px 14px; OVERFLOW: hidden; PADDING-TOP: 4px; = WHITE-SPACE: nowrap; POSITION: relative; BACKGROUND-COLOR: transparent; = TEXT-DECORATION: none } DIV.buttonCm UL.courseMenu LI A:hover { PADDING-RIGHT: 6px; BORDER-TOP: 0px; DISPLAY: block; PADDING-LEFT: 6px; = FONT-WEIGHT: normal; BACKGROUND-IMAGE: none; PADDING-BOTTOM: 6px; = MARGIN: 0px 0px 0px 14px; OVERFLOW: hidden; PADDING-TOP: 4px; = WHITE-SPACE: nowrap; POSITION: relative; BACKGROUND-COLOR: transparent; = TEXT-DECORATION: none } DIV.buttonCm UL.courseMenu LI.here A { BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline } DIV.buttonCm UL.courseMenu LI.here A:hover { BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline } DIV.buttonCm UL.courseMenu LI A.cmimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 4px; BACKGROUND: = url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: = absolute; TOP: 7px; opacity: 0.2 } DIV.buttonCm UL.courseMenu LI A.cmimg:hover { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 4px; BACKGROUND: = url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: = absolute; TOP: 7px; opacity: 0.2 } DIV.buttonCm H3 A.cmimg { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; RIGHT: 4px; BACKGROUND: = url(images/cmlinkoptions.gif) no-repeat 0px 0px; FILTER: = alpha(opacity=3D20); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; POSITION: = absolute; TOP: 7px; opacity: 0.2 } DIV.buttonCm UL.courseMenu LI A.cmimg IMG { WIDTH: 13px; HEIGHT: 13px } DIV.buttonCm UL.courseMenu LI A.cmimg:hover IMG { WIDTH: 13px; HEIGHT: 13px } DIV.buttonCm H3 A.cmimg IMG { WIDTH: 13px; HEIGHT: 13px } DIV.buttonCm UL.courseMenu LI.subhead A.cmimg IMG { WIDTH: 13px; HEIGHT: 13px } DIV.buttonCm UL.courseMenu LI.divider A.cmimg { TOP: -4px } DIV.buttonCm UL.courseMenu LI.subhead A.cmimg { TOP: 3px } DIV.buttonCm UL.courseMenu LI.subhead A.cmimg:hover { TOP: 3px } DIV.buttonCm UL.courseMenu LI A.cmimg:hover { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm H3 A.cmimg:hover { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI A:hover SPAN.reorder { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI A:hover A.cmimg { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI:hover SPAN.reorder { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI:hover A.cmimg { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm H3:hover A.cmimg { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.buttonCm UL.courseMenu LI SPAN.reorder { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 2px; FILTER: = alpha(opacity=3D60); LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 20px; = CURSOR: move; PADDING-TOP: 0px; POSITION: absolute; TOP: 5px; HEIGHT: = 16px; opacity: 0.6 } DIV.buttonCm UL.courseMenu LI.invisible SPAN.reorder { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/cm_reorder_updown.gif) no-repeat 0px 2px; FILTER: = alpha(opacity=3D60); LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 20px; = CURSOR: move; PADDING-TOP: 0px; POSITION: absolute; TOP: 5px; HEIGHT: = 16px; opacity: 0.6 } DIV.buttonCm UL.courseMenu LI.subhead SPAN.reorder { TOP: 0px } DIV.buttonCm UL.courseMenu LI.divider SPAN.reorder { TOP: -10px } DIV.buttonCm LI.invisible A SPAN.cmLink-hidden { RIGHT: 20px; POSITION: absolute; TOP: 7px } DIV.buttonCm LI.invisible SPAN.cmLink-empty { RIGHT: 20px; POSITION: absolute; TOP: 7px } DIV.buttonCm LI.invisible SPAN.cmLink-empty { RIGHT: 32px } DIV.buttonCm DIV.bottomRound { DISPLAY: none } DIV.instructionData { MARGIN: 0px 0px 12px } DIV.instructionData UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px solid; LIST-STYLE-TYPE: = none } DIV.instructionData UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 6px; MARGIN: 0px 12px 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } DIV.instructionData UL LI SPAN { FONT-SIZE: 90%; COLOR: #555 } DIV.instructionData UL LI H3 { DISPLAY: inline; FONT-SIZE: 100%; MARGIN: 0px } DIV.instructionData UL LI.instructions { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: = 0px; MARGIN: 6px 0px 0px; PADDING-TOP: 0px } DIV.instructionData UL LI.saving { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 0px 0px; PADDING-TOP: 0px } DIV.instructionData UL LI.instructions A.browse { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; FONT-SIZE: = 90%; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: medium none } .assessmentInstructions { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #f1f1f1; = PADDING-BOTTOM: 6px; MARGIN: 0px 0px 12px; PADDING-TOP: 3px; POSITION: = relative } .assessmentInstructions H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px = 0px; PADDING-TOP: 0px } .assessmentPortlet { Z-INDEX: 1; RIGHT: 26px; POSITION: fixed } .assessmentPortlet H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; COLOR: #597298; PADDING-TOP: 1px; = BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .assessmentPortlet DIV.assessmentPortletBlock H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; COLOR: #597298; PADDING-TOP: 1px; = BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .assessmentPortlet DIV.blockContents H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; PADDING-BOTTOM: 2px; COLOR: #597298; PADDING-TOP: 1px; = BORDER-BOTTOM: #cee2f2 1px solid; LETTER-SPACING: 1px } .assessmentPortlet DIV.assessmentPortletBlock { BORDER-RIGHT: #777 1px solid; BORDER-TOP: #777 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #777 1px solid; BORDER-BOTTOM: #777 1px solid } .assessmentPortlet DIV.assessmentPortletBlock H4 { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px } .assessmentPortlet DIV.assessmentPortletBlock H4.blockTitle { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: = 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: = 0px; BORDER-BOTTOM: 0px } .assessmentPortlet DIV.assessmentPortletBlock H4 A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 9px; FONT-SIZE: 110%; BACKGROUND: #f1f1f1; PADDING-BOTTOM: = 4px; MARGIN: 0px; BORDER-LEFT: 0px; COLOR: #444; PADDING-TOP: 4px; = BORDER-BOTTOM: 0px; LETTER-SPACING: 0px; TEXT-DECORATION: none } .assessmentPortlet DIV.assessmentPortletBlock H4.blockTitle A { BORDER-RIGHT: 0px; PADDING-RIGHT: 9px; BORDER-TOP: 0px; DISPLAY: block; = PADDING-LEFT: 9px; FONT-SIZE: 110%; BACKGROUND: #f1f1f1; PADDING-BOTTOM: = 4px; MARGIN: 0px; BORDER-LEFT: 0px; COLOR: #444; PADDING-TOP: 4px; = BORDER-BOTTOM: 0px; LETTER-SPACING: 0px; TEXT-DECORATION: none } .assessmentPortlet DIV.assessmentPortletBlock H4 A:hover { BACKGROUND: #eee } .assessmentPortlet DIV.assessmentPortletBlock H4.blockTitle A:hover { BACKGROUND: #eee } .assessmentPortlet DIV.assessmentPortletBlock H4 A SPAN { FONT-WEIGHT: normal; COLOR: #ddd } .assessmentPortlet DIV.assessmentPortletBlock H4.blockTitle A SPAN { FONT-WEIGHT: normal; COLOR: #ddd } .assessmentPortlet UL.subCategories { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.assessmentBlockGroups { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .assessmentPortlet DIV.assessmentPortletBlock UL.subCategories LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.assessmentBlockGroups LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .assessmentPortlet UL.subCategories LI A { PADDING-RIGHT: 16px; BORDER-TOP: #777 1px solid; DISPLAY: block; = PADDING-LEFT: 16px; FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 3px center; = PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #597298; PADDING-TOP: 4px; = LETTER-SPACING: 1px; TEXT-DECORATION: none } UL.assessmentBlockGroups LI A.itemHead { PADDING-RIGHT: 16px; BORDER-TOP: #777 1px solid; DISPLAY: block; = PADDING-LEFT: 16px; FONT-WEIGHT: bold; FONT-SIZE: 90%; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 3px center; = PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #597298; PADDING-TOP: 4px; = LETTER-SPACING: 1px; TEXT-DECORATION: none } UL.assessmentBlockGroups LI A.itemHead:hover { BACKGROUND-COLOR: #e3efff; TEXT-DECORATION: underline } UL.assessmentBlockGroups LI A.itemHeadOpen { BACKGROUND: #fff no-repeat 3px center } UL.assessmentBlockGroups LI A.itemHeadOpen:hover { BACKGROUND-COLOR: #fff; TEXT-DECORATION: underline } .assessmentPortlet UL.subCategories LI:first-child A { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } UL.assessmentBlockGroups LI:first-child A { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } .assessmentPortlet UL.subCategories LI A:hover { FILTER: alpha(opacity=3D100); BACKGROUND-COLOR: #fff; opacity: 1 } UL.assessmentBlockGroups LI A:hover { FILTER: alpha(opacity=3D100); BACKGROUND-COLOR: #fff; opacity: 1 } .assessmentPortlet UL.subCategories LI A SPAN { FONT-WEIGHT: normal; COLOR: #777 } UL.assessmentBlockGroups LI A SPAN { FONT-WEIGHT: normal; COLOR: #777 } .assessmentPortlet UL.itemGroup LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: = inline; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 105%; = PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: = 0px } UL.assessmentBlockGroups LI UL.itemGroups LI A { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: = inline; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 105%; = PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: = 0px } .assessmentPortlet UL.itemGroup LI A:hover { TEXT-DECORATION: underline } UL.itemGroups LI A:hover { TEXT-DECORATION: underline } UL.itemGroups LI UL.items { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; FONT-SIZE: 110%; = PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-TOP: 2px } UL.assessmentBlockGroups LI UL.itemGroups LI A { FONT-WEIGHT: normal } UL.itemGroups LI UL.items LI A { FONT-WEIGHT: normal } .assessmentPortlet DIV.assessmentPortletBlock H3 { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 100%; PADDING-BOTTOM: = 0px; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: 0px; = BORDER-BOTTOM: medium none; LETTER-SPACING: 0px } .assessmentPortlet DIV.assessmentPortletBlock H3 A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = url(images/more_options.gif) #e3efff no-repeat 99% center; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; TEXT-DECORATION: = none } .assessmentPortlet DIV.assessmentPortletBlock H3 A:hover { TEXT-DECORATION: underline } .assessmentPortlet DIV.assessmentPortletBlock:first-child H3 A { BORDER-TOP: medium none } .assessmentPortlet DIV.assessmentPortletBlock H3 A.open { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 12px; BACKGROUND: = url(images/less_options.gif) #e3efff no-repeat 99% center; = PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px; TEXT-DECORATION: = none } .assessmentPortlet UL.objectList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .assessmentPortletBlock UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .blockContents UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } UL.memberList LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .assessmentPortlet .blockContents UL LI UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .assessmentPortlet .blockContents UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .assessmentPortlet UL LI UL LI SPAN { MARGIN: 0px 0px 0px 4px; COLOR: #888 } .savingQuestion { PADDING-RIGHT: 2px; DISPLAY: none; PADDING-LEFT: 2px; FONT-SIZE: 150%; = BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 2px; = COLOR: #cc0033; PADDING-TOP: 2px; POSITION: relative } TR.dummyVTBEFooter TD { BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #666666 1px solid; PADDING-LEFT: 2px; BACKGROUND: #eee; PADDING-BOTTOM: = 2px; BORDER-LEFT: #666666 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: = #666666 1px solid; TEXT-ALIGN: right } DIV.canvasHead { PADDING-RIGHT: 16px; PADDING-LEFT: 16px; BACKGROUND: #f6f6f6; = PADDING-BOTTOM: 12px; MARGIN: 0.6em 0px; PADDING-TOP: 6px } DIV.canvasHead UL LI { BORDER-TOP: #eeeeee 1px solid } DIV.canvasHead UL LI:first-child { BORDER-TOP: medium none } DIV.canvasHead UL LI DIV.label { COLOR: #555 } .peer_instructions { MARGIN: 12px 6px } .peerHelp { COLOR: #555 } H2.evaluator { MARGIN: 1em 0px 0.3em } H2.evaluator SPAN { FONT-WEIGHT: normal; FONT-SIZE: 90% } DIV.peerCriteriaStatus { BORDER-RIGHT: #bbb 1px solid; PADDING-RIGHT: 0.3em; BORDER-TOP: #bbb = 1px solid; PADDING-LEFT: 0.3em; BACKGROUND: #fff; PADDING-BOTTOM: 0.3em; = BORDER-LEFT: #bbb 1px solid; PADDING-TOP: 0.3em; BORDER-BOTTOM: #bbb 1px = solid } DIV.peerCriteriaStatus A.itemHeadOpen { DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 0px; COLOR: = #597298; LETTER-SPACING: 1px; TEXT-DECORATION: none } DIV.peerCriteriaStatus A.itemHeadOpen:hover { TEXT-DECORATION: underline } DIV.peerCriteriaStatus TD.qStatus { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 4px; WIDTH: 5%; = PADDING-TOP: 4px } DIV.peerCriteriaStatus TD.qStatus A SPAN { BORDER-RIGHT: #fff 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #fff 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: bold; BACKGROUND: white; = PADDING-BOTTOM: 1px; BORDER-LEFT: #fff 1px solid; PADDING-TOP: 1px; = BORDER-BOTTOM: #fff 1px solid } DIV.peerCriteriaStatus TD.qStatus A SPAN.qComplete { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BACKGROUND: = #eee; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid } DIV.peerCriteriaStatus TD.qStatus A.qActive SPAN.qComplete { BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; = BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid; = TEXT-DECORATION: none } DIV.peerCriteriaStatus TD.qStatus A.qActive SPAN.qIncomplete { BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; = BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid; = TEXT-DECORATION: none } DIV.peerCriteriaStatus A SPAN IMG { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; WIDTH: = 12px; PADDING-TOP: 2px; HEIGHT: 12px } .questionNumber { FONT-WEIGHT: bold } .questionType { FONT-WEIGHT: bold } .questionDiv { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0.6em; BORDER-TOP: #ccc = 1px solid; PADDING-LEFT: 0.6em; PADDING-BOTTOM: 0.6em; MARGIN: -1px 0px = 6px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 0.6em; BORDER-BOTTOM: = #ccc 1px solid } .questionDiv H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0.6em; MARGIN: = 0px 0px 0.6em; PADDING-TOP: 0px; BORDER-BOTTOM: #ddd 1px solid } .questionDiv P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0.6em 1.2em; PADDING-TOP: 0px } .questionDiv DIV.criteriaText { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: = 0px; MARGIN: 0.6em 1.2em; PADDING-TOP: 0px } .questionDiv DIV.submission_text { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 2px; OVERFLOW: auto; = BORDER-LEFT: #ccc 1px solid; WIDTH: 100%; PADDING-TOP: 2px; = BORDER-BOTTOM: #ccc 1px solid; HEIGHT: 150px } .questionDiv TABLE { WIDTH: 98% } .questionDiv TABLE TABLE { WIDTH: auto } .questionDiv TD.label { WIDTH: 150px; WHITE-SPACE: nowrap } #creceipt { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 4px; COLOR: red; PADDING-TOP: 4px } UL.fileData { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 3px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.fileData LI { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FLOAT: left; PADDING-BOTTOM: = 2px; MARGIN: 0px; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 2px } UL.containerTabs LI.tabhead { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: none = transparent scroll repeat 0% 0%; BORDER-LEFT: medium none; = BORDER-BOTTOM: medium none; TEXT-ALIGN: left } UL.containerTabs LI H3 { BORDER-RIGHT: medium none; PADDING-RIGHT: 12px; BORDER-TOP: medium = none; PADDING-LEFT: 0px; FONT-SIZE: 100%; PADDING-BOTTOM: 6px; MARGIN: = 0px; BORDER-LEFT: medium none; PADDING-TOP: 5px; BORDER-BOTTOM: medium = none; WHITE-SPACE: nowrap } UL.listNav { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #ddd; = PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 100%; PADDING-TOP: 0px; = LIST-STYLE-TYPE: none } UL.listNav LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #ededed; FLOAT: = left; PADDING-BOTTOM: 0px; MARGIN: 1px; COLOR: #2d2680; PADDING-TOP: = 0px; WHITE-SPACE: nowrap; TEXT-ALIGN: center } UL.listNav LI A { PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; TEXT-DECORATION: none } UL.listNav LI A:hover { BACKGROUND-COLOR: #dedede; TEXT-DECORATION: underline } UL.listNav LI A.active { BORDER-RIGHT: #000 2px solid; PADDING-RIGHT: 8px; BORDER-TOP: #000 2px = solid; PADDING-LEFT: 8px; FONT-WEIGHT: bold; BACKGROUND: #fff; = PADDING-BOTTOM: 2px; BORDER-LEFT: #000 2px solid; COLOR: #000; = PADDING-TOP: 2px; BORDER-BOTTOM: #000 2px solid } UL.evaluation { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 0.6em 1.2em; = PADDING-TOP: 0px; LIST-STYLE-TYPE: none } UL.evaluation LI { CLEAR: both; PADDING-RIGHT: 0px; BORDER-TOP: #ddd 1px solid; = PADDING-LEFT: 0px; PADDING-BOTTOM: 4px; MARGIN: 0px; PADDING-TOP: 4px } UL.evaluation LI P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 1px 0px; WIDTH: 79%; PADDING-TOP: 0px } UL.evaluation H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 4px; FONT-SIZE: 100%; FLOAT: left; = PADDING-BOTTOM: 0px; MARGIN: 1px 0px; WIDTH: 20%; PADDING-TOP: 0px } UL.evaluation LI P SPAN { COLOR: #555 } DIV.stepPanel DIV.user_html { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 5px = 5px 12px 12px; PADDING-TOP: 0px } UL.stepPanels H4.defaultCursor { CURSOR: default } H4.defaultCursor { CURSOR: default } DL { MARGIN: 1em } DT { CLEAR: left; PADDING-RIGHT: 0.1em; PADDING-LEFT: 0.1em; FONT-WEIGHT: = bold; FLOAT: left; PADDING-BOTTOM: 0.1em; MARGIN: 0px; WIDTH: 8em; = PADDING-TOP: 0.1em } DD { PADDING-RIGHT: 0.1em; PADDING-LEFT: 0.1em; PADDING-BOTTOM: 0.1em; = MARGIN: 0px 0px 0px 9em; PADDING-TOP: 0.1em } .rating { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(images/star-matrix.gif) no-repeat 0px 0px; PADDING-BOTTOM: 0px; = MARGIN: 0px; WIDTH: 80px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; = POSITION: relative; HEIGHT: 16px } .star0 { BACKGROUND-POSITION: 0px 0px } .star1 { BACKGROUND-POSITION: 0px -16px } .star2 { BACKGROUND-POSITION: 0px -32px } .star3 { BACKGROUND-POSITION: 0px -48px } .star4 { BACKGROUND-POSITION: 0px -64px } .star5 { BACKGROUND-POSITION: 0px -80px } UL.rating LI { FLOAT: left; CURSOR: pointer; TEXT-INDENT: -999em } UL.rating LI A { Z-INDEX: 200; LEFT: 0px; WIDTH: 16px; POSITION: absolute; TOP: 0px; = HEIGHT: 16px; TEXT-DECORATION: none } UL.rating LI.one A { LEFT: 0px } UL.rating LI.two A { LEFT: 16px } UL.rating LI.three A { LEFT: 32px } UL.rating LI.four A { LEFT: 48px } UL.rating LI.five A { LEFT: 64px } UL.rating LI A:hover { Z-INDEX: 2; BACKGROUND: url(images/star-matrix.gif) no-repeat 0px 0px; = LEFT: 0px; OVERFLOW: hidden; WIDTH: 80px; HEIGHT: 16px } UL.rating LI.one A:hover { BACKGROUND-POSITION: 0px -96px } UL.rating LI.two A:hover { BACKGROUND-POSITION: 0px -112px } UL.rating LI.three A:hover { BACKGROUND-POSITION: 0px -128px } UL.rating LI.four A:hover { BACKGROUND-POSITION: 0px -144px } UL.rating LI.five A:hover { BACKGROUND-POSITION: 0px -160px } DIV.collectionViewReadMessageBorder { MARGIN-LEFT: 30px; BORDER-LEFT: #ccc 1px solid } DIV.collectionViewUnreadMessageBorder { BORDER-RIGHT: #999 3px solid; BORDER-TOP: #999 3px solid; MARGIN-LEFT: = 30px; BORDER-LEFT: #999 3px solid; BORDER-BOTTOM: #999 3px solid } TABLE.treeframe TR TD { VERTICAL-ALIGN: middle } TABLE.tree_view TR TD IMG { VERTICAL-ALIGN: middle } TABLE.treeframe { MARGIN: 0px } TABLE.treeframe TBODY TR TD { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } TABLE.treeframe THEAD TR TH { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } TABLE.treeframe TR.high { BACKGROUND-COLOR: transparent } TR.thread TD { BORDER-TOP: #ccc 1px solid; VERTICAL-ALIGN: middle } TR.thread TD IMG { VERTICAL-ALIGN: middle } TABLE.unreadmessageborder { BORDER-RIGHT: rgb(102,102,102) 3px solid; BORDER-TOP: rgb(102,102,102) = 3px solid; BORDER-LEFT: rgb(102,102,102) 3px solid; BORDER-BOTTOM: = rgb(102,102,102) 3px solid } TABLE.readmessageborder { BORDER-RIGHT: rgb(204,204,204) 1px solid; BORDER-TOP: rgb(204,204,204) = 1px solid; BORDER-LEFT: rgb(204,204,204) 1px solid; BORDER-BOTTOM: = rgb(204,204,204) 1px solid } TR.show { =09 } TR.hide { DISPLAY: none } .loadingelipse { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 14px; BORDER-TOP: #ccc 1px = solid; DISPLAY: block; PADDING-LEFT: 14px; FONT-WEIGHT: bold; FONT-SIZE: = 90%; BACKGROUND: #ffffcc; PADDING-BOTTOM: 4px; MARGIN: auto; = BORDER-LEFT: #ccc 1px solid; WIDTH: 140px; PADDING-TOP: 4px; = BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: center } .gradefield { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; FONT-SIZE: 120%; = PADDING-BOTTOM: 4px; MARGIN: 9px 0px; VERTICAL-ALIGN: middle; OVERFLOW: = visible; COLOR: #000; PADDING-TOP: 4px; HEIGHT: 1%; TEXT-ALIGN: center } .gradefield INPUT { BORDER-RIGHT: #666 2px solid; PADDING-RIGHT: 3px; BORDER-TOP: #666 2px = solid; PADDING-LEFT: 3px; FONT-WEIGHT: bold; FONT-SIZE: 110%; = BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; MARGIN: 0px; VERTICAL-ALIGN: = middle; BORDER-LEFT: #666 2px solid; LINE-HEIGHT: 120%; PADDING-TOP: = 1px; BORDER-BOTTOM: #666 2px solid; FONT-FAMILY: arial,sans-serif } .gradefield INPUT.inputtypebutton { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: #ccc 1px = solid; DISPLAY: inline; PADDING-LEFT: 8px; FONT-WEIGHT: normal; = FONT-SIZE: 80%; BACKGROUND: #ededed; PADDING-BOTTOM: 1px; OVERFLOW: = visible; BORDER-LEFT: #ccc 1px solid; WIDTH: auto; PADDING-TOP: 2px; = BORDER-BOTTOM: #ccc 1px solid; HEIGHT: auto } .gradefield A { FONT-WEIGHT: bold; FONT-SIZE: 120% } .gradefield SPAN { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; FONT-SIZE: 80%; PADDING-BOTTOM: = 0px; COLOR: #555; PADDING-TOP: 0px } .overridegrade { PADDING-RIGHT: 12px; DISPLAY: inline; PADDING-LEFT: 12px; FONT-SIZE: = 80%; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 3px 9px; VERTICAL-ALIGN: = middle; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 0px } .overridegrade INPUT.inputtypebutton { MARGIN-TOP: -3px; FONT-WEIGHT: normal; FONT-SIZE: 70%; VERTICAL-ALIGN: = middle } DIV.parentmessage { CLEAR: both; BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 6px; = BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 6px; FONT-SIZE: 90%; = BACKGROUND: #ededed; PADDING-BOTTOM: 9px; MARGIN: 6px; BORDER-LEFT: #ccc = 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid } .availability { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 85%; PADDING-BOTTOM: = 1px; MARGIN: 6px 0px; WIDTH: auto; PADDING-TOP: 1px; FONT-STYLE: italic } TD.tag_controls { PADDING-RIGHT: 3px; PADDING-LEFT: 6px; BACKGROUND: #cad7e7; = PADDING-BOTTOM: 3px; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid } TD.msg_controls { PADDING-RIGHT: 3px; PADDING-LEFT: 0px; BACKGROUND: #cad7e7; = PADDING-BOTTOM: 3px; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid } TD.checkbox_cell { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 6px; PADDING-LEFT: 6px; = PADDING-BOTTOM: 0px; VERTICAL-ALIGN: top; PADDING-TOP: 6px } TD.prevnextpostarea { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 5px; BACKGROUND: #fff; PADDING-BOTTOM: 3px; = BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #ccc 1px = solid; WHITE-SPACE: nowrap; TEXT-ALIGN: center } H3.dbheading { MARGIN-TOP: 0px; DISPLAY: inline; FONT-WEIGHT: normal; MARGIN-BOTTOM: = 0px } DIV.dbThread { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; MARGIN: 0.9em = 0px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid; = POSITION: relative } DIV.dbThreadCheckbox { POSITION: absolute } DIV.dbThreadCheckbox INPUT { MARGIN: 10px } DIV.dbThreadInfo { BACKGROUND: #eee } DIV.dbThreadInfo DL { FONT-SIZE: 95%; FLOAT: left; MARGIN: 0.6em; WIDTH: 45% } DIV.dbThreadBody { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; PADDING-BOTTOM: 1.2em; = PADDING-TOP: 1.2em } P.dbAttachment { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 1.2em } DIV.dbParentPost P.dbAttachment { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 1.2em } DIV.dbThreadHeader { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; BACKGROUND: #e3efff; = PADDING-BOTTOM: 0.6em; PADDING-TOP: 0.6em; BORDER-BOTTOM: #ccc 1px solid } DIV.dbThreadFooter { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; BACKGROUND: #e3efff; = PADDING-BOTTOM: 0.6em; PADDING-TOP: 0.6em } DIV.dbThreadFooter DIV.navButtons { FLOAT: left; WIDTH: 49% } DIV.dbThreadHeader DIV.navButtons { FLOAT: left; WIDTH: 49% } DIV.dbThreadFooter DIV.threadButtons { FLOAT: right; WIDTH: 49%; TEXT-ALIGN: right } DIV.dbThreadHeader DIV.threadButtons { FLOAT: right; WIDTH: 49%; TEXT-ALIGN: right } DIV.dbThreadFooter A { DISPLAY: inline-block; VERTICAL-ALIGN: middle } DIV.dbThreadHeader A { DISPLAY: inline-block; VERTICAL-ALIGN: middle } DIV.spacerDiv { CLEAR: both } DIV.threadButtons A.reply { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 6px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; = PADDING-LEFT: 6px; FONT-WEIGHT: bold; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 0px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } DIV.dbThreadInfo P A.reply { BORDER-RIGHT: #444a6c 2px solid; PADDING-RIGHT: 6px; = BACKGROUND-POSITION: 0px center; BORDER-TOP: #666e94 1px solid; = PADDING-LEFT: 6px; FONT-WEIGHT: bold; BACKGROUND-IMAGE: none; = PADDING-BOTTOM: 2px; BORDER-LEFT: #666e94 1px solid; COLOR: #fff; = PADDING-TOP: 0px; BORDER-BOTTOM: #444a6c 2px solid; BACKGROUND-REPEAT: = repeat-x; BACKGROUND-COLOR: #819ac0; TEXT-DECORATION: none } DIV.threadButtons A.reply:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } DIV.dbThreadInfo P A.reply:hover { BORDER-RIGHT: #444a6c 2px solid; BORDER-TOP: #444a6c 1px solid; = BACKGROUND: #444a6c; BORDER-LEFT: #444a6c 1px solid; COLOR: #fff; = BORDER-BOTTOM: #444a6c 2px solid } DIV.dbThreadInfo P { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; PADDING-BOTTOM: 0.6em; = PADDING-TOP: 0.6em } DIV.dbThreadInfo P.detailButtons { FLOAT: right } DIV.dbThreadTree { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BORDER-LEFT: = #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid; HEIGHT: 200px } DIV.dbThreadMessage { MARGIN-TOP: 10px } DIV.dbParentPost { PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; FONT-SIZE: 95%; BACKGROUND: = #eee; PADDING-BOTTOM: 0px; MARGIN: -0.6em 0px 1.2em; COLOR: #444; = PADDING-TOP: 0.6em } DIV.dbParentPost H4 { MARGIN: 0px 0px 0.6em } DIV.dbParentPost H4 A { DISPLAY: block; WIDTH: 100% } DIV.dbParentPost P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 100%; PADDING-BOTTOM: = 1.2em; MARGIN: 0px; PADDING-TOP: 0px } DIV.dbParentPostBody { CLEAR: both; PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; BACKGROUND: = #fcfcfc; MARGIN-BOTTOM: 0.6em; PADDING-BOTTOM: 0.6em; PADDING-TOP: 0.6em } .loadingElipse { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 14px; BORDER-TOP: #ccc 1px = solid; DISPLAY: block; PADDING-LEFT: 14px; FONT-WEIGHT: bold; = BACKGROUND: #fff7de; PADDING-BOTTOM: 4px; MARGIN: 12px auto; = BORDER-LEFT: #ccc 1px solid; WIDTH: 140px; PADDING-TOP: 4px; = BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: center } .unreadmessage { FONT-WEIGHT: bold } H3.unreadmessage { FONT-WEIGHT: bold } BODY.wizardBody { MARGIN-TOP: 10px } BODY.wizardBody DIV#contentPanel { MARGIN-BOTTOM: 10px; MARGIN-LEFT: 159px } BODY.wizardBody DIV#pageTitleDiv IMG { DISPLAY: none } BODY.wizardBody DIV.reqfield { FLOAT: none; MARGIN: 0px 0px 6px -6px } DIV.wizardHead { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #fff; = PADDING-BOTTOM: 2px; PADDING-TOP: 0px } DIV.wizardHead H2 { MARGIN: 0px } DIV.wizardHead P.helphelp { PADDING-RIGHT: 4px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 4px } BODY.wizardBody DIV.container { MIN-HEIGHT: 80% } BODY.wizardBody DIV.containerWizard { BORDER-RIGHT: #bbb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #bbb 1px = solid; PADDING-LEFT: 0px; BACKGROUND: #cdcdcd; PADDING-BOTTOM: 14px; = MARGIN: 0px -12px; BORDER-LEFT: #bbb 1px solid; PADDING-TOP: 3px; = BORDER-BOTTOM: #bbb 1px solid } BODY.wizardBody DIV.containerWizard DIV.locationPane { WIDTH: 99% } BODY.wizardBody UL.contentList LI DIV.details { OVERFLOW-X: visible } P.wizardFinishText { MARGIN: 6px 0px 150px } P.wizardSubmit { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 6px; MARGIN: = 0px; PADDING-TOP: 12px } P.wizardSubmit INPUT[type=3Dimage] { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; = PADDING-TOP: 2px } P.wizardSubmit INPUT.submit { BORDER-LEFT-COLOR: #566e94; BACKGROUND: #819ac0; BORDER-BOTTOM-COLOR: = #566e94; COLOR: #fff; BORDER-TOP-COLOR: #566e94; BORDER-RIGHT-COLOR: = #566e94 } P.wizardSubmit SPAN { FONT-SIZE: 95% } P.wizardSubmit SPAN STRONG { COLOR: #000 } DIV.wizardBottomRound B.inner { BACKGROUND: #fff1c5 } DIV.wizardBottomRound B.outer { BACKGROUND: #fff1c5 } DIV.wizardBottomRound B.middle { BACKGROUND: #fff1c5 } DIV.navigationPaneWizard { MARGIN-TOP: 55px; WIDTH: 159px } DIV.navigationPaneWizard DIV B.inner { MARGIN-RIGHT: 0px! important } DIV.navigationPaneWizard DIV B.middle { MARGIN-RIGHT: 0px! important } DIV.navigationPaneWizard DIV B.outer { MARGIN-RIGHT: 0px! important } DIV.navigationPaneWizard DIV.navPalette { MARGIN: 0px 0px 12px 12px } DIV.navigationPaneWizard DIV.navPalette DIV.navPaletteContent H2 { PADDING-RIGHT: 9px; PADDING-LEFT: 9px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px } DIV.navigationPaneWizard DIV.navPalette SPAN { PADDING-RIGHT: 9px; DISPLAY: block; PADDING-LEFT: 9px; PADDING-BOTTOM: = 6px; PADDING-TOP: 6px; BACKGROUND-COLOR: #ededed } DIV.navigationPaneWizard DIV.navPalette UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none! important; = BACKGROUND-COLOR: #ededed } DIV.navigationPaneWizard DIV.navPalette UL LI { PADDING-RIGHT: 9px; BORDER-TOP: #cdcdcd 1px solid; PADDING-LEFT: 24px; = BACKGROUND: url(images/bullet_off_ia.gif) no-repeat 0px 0px; = PADDING-BOTTOM: 4px; MARGIN: 0px; BORDER-LEFT: #cdcdcd 1px solid; COLOR: = #444; PADDING-TOP: 4px } DIV.navigationPaneWizard DIV.navPalette UL LI:first-child { BORDER-TOP: medium none } DIV.navigationPaneWizard DIV.navPalette UL LI.currentStep { FONT-WEIGHT: bold; BACKGROUND: url(images/bullet_active_ia.gif) white = no-repeat 0px 0px } DIV.navigationPaneWizard DIV.navPalette UL LI.visitedStep { BACKGROUND: url(images/bullet_inactive_ia.gif) no-repeat 0px 0px } #loginPageContainer { MIN-HEIGHT: 100%; MARGIN: 0px auto; WIDTH: 728px; POSITION: relative; = HEIGHT: 100%; TEXT-ALIGN: left } #loginPane { MARGIN: 40px 0px 20px } #loginPane DIV.loginBack B { BACKGROUND: #94b3de } #loginContainer { BORDER-RIGHT: #94b3de 8px solid; BORDER-TOP: #94b3de 4px solid; = BACKGROUND: #fff; MARGIN: 0px auto; BORDER-LEFT: #94b3de 8px solid; = BORDER-BOTTOM: #94b3de 4px solid; ZOOM: 1 } #loginHeader { FONT-SIZE: 0.85em; BACKGROUND: #eee; COLOR: #444 } #loginHeader IMG.productLogo { FLOAT: left; MARGIN: 12px 8px 0px 20px; WIDTH: 60px; HEIGHT: 58px } #loginHeader UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: = 0px; MARGIN: 10px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #loginHeader UL LI { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px; BORDER-LEFT: #999 1px dotted; PADDING-TOP: 0px } #loginHeader UL LI:first-child { BORDER-LEFT: medium none } #loginHeader UL LI :link .active { COLOR: #666; TEXT-DECORATION: none } #loginLang { CLEAR: both; PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-SIZE: 0.85em; = BACKGROUND: #eee; PADDING-BOTTOM: 6px; MARGIN: 0px auto; COLOR: #444; = PADDING-TOP: 6px } #loginLang H2 { MARGIN: 1em 0px 0.1em } #loginLang H3 { FLOAT: left; MARGIN: 6px } #loginLang UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #loginLang UL LI { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px; BORDER-LEFT: #999 1px dotted; PADDING-TOP: 0px; = WHITE-SPACE: nowrap } #loginLang UL LI:first-child { BORDER-LEFT: medium none } #loginLang UL LI :link .active { COLOR: #666; TEXT-DECORATION: none } DIV.loginBody { PADDING-RIGHT: 0px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 0px; = PADDING-BOTTOM: 4px; PADDING-TOP: 4px; HEIGHT: 1%; BACKGROUND-COLOR: = #94b3de } #loginBox { BACKGROUND: #fff1c5; FLOAT: left; WIDTH: 49.5% } #loginBox H2 { MARGIN: 10px } #loginBox P { FONT-SIZE: 0.85em; MARGIN: 10px; COLOR: #444 } #loginBox UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #loginBox LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-TOP: 2px } #loginBox LI LABEL { PADDING-RIGHT: 3px; FONT-WEIGHT: bold; FLOAT: left; WIDTH: 90px } #loginBox LI INPUT { FLOAT: left } #loginBox LI INPUT[type=3D'text'] { BORDER-RIGHT: #ccc 2px solid; BORDER-TOP: #ccc 2px solid; BORDER-LEFT: = #ccc 2px solid; BORDER-BOTTOM: #ccc 2px solid } #loginBox LI INPUT[type=3D'password'] { BORDER-RIGHT: #ccc 2px solid; BORDER-TOP: #ccc 2px solid; BORDER-LEFT: = #ccc 2px solid; BORDER-BOTTOM: #ccc 2px solid } #loginBox .forgot { FONT-SIZE: 85%; MARGIN-LEFT: 93px } #loginBox LI INPUT[type=3D'submit'] { MARGIN-LEFT: 93px } #loginBox LI INPUT.submit { MARGIN-LEFT: 94px } #loginBox LI INPUT[type=3D'submit']:hover { =09 } #loginOptions { PADDING-LEFT: 4px; FLOAT: left; BORDER-LEFT: #ccc 1px solid; WIDTH: 49% } #loginOptions H2 { MARGIN: 10px } #loginOptions P { FONT-SIZE: 0.85em; MARGIN: 10px; COLOR: #444 } #loginOptions UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #loginOptions UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #loginOptions UL LI A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 24px; FONT-WEIGHT: = bold; FONT-SIZE: 95%; BACKGROUND: url(images/list_bullet.gif) #e3efff = no-repeat 6px center; PADDING-BOTTOM: 9px; COLOR: #52637b; PADDING-TOP: = 9px; TEXT-DECORATION: none } #loginOptions UL LI.subOption A { PADDING-RIGHT: 12px; DISPLAY: block; PADDING-LEFT: 24px; FONT-WEIGHT: = bold; FONT-SIZE: 95%; BACKGROUND: url(images/list_bullet.gif) #e3efff = no-repeat 6px center; PADDING-BOTTOM: 9px; COLOR: #52637b; PADDING-TOP: = 9px; TEXT-DECORATION: none } #loginOptions UL LI.subOption A { BORDER-TOP: #aaa 1px solid } #loginOptions UL LI A:hover { COLOR: #000; BACKGROUND-COLOR: #b4cdeb } #loginOptions UL LI.subOption A:hover { COLOR: #000; BACKGROUND-COLOR: #b4cdeb } #loginText { PADDING-RIGHT: 80px; BORDER-TOP: #777 1px solid; PADDING-LEFT: 80px; = BACKGROUND: #5f6062; PADDING-BOTTOM: 18px; PADDING-TOP: 12px; = TEXT-ALIGN: center } #loginText P SPAN { FONT-WEIGHT: bold; FONT-SIZE: 105%; COLOR: #fff } #loginText P { FONT-SIZE: 95%; MARGIN: 0px; COLOR: #ededed } #loginImage { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; BACKGROUND-COLOR: #fff; TEXT-ALIGN: center } #loginImage IMG { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = -1px auto 0px; PADDING-TOP: 0px } #loginAnnouncements { CLEAR: both; PADDING-RIGHT: 0px; BORDER-TOP: #eee 1px solid; = PADDING-LEFT: 0px; BACKGROUND: #ddd; PADDING-BOTTOM: 7px; PADDING-TOP: = 0px } #loginAnnouncements H3 { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 110%; PADDING-BOTTOM: = 6px; MARGIN: 0px 9px; COLOR: #555; PADDING-TOP: 6px; BORDER-BOTTOM: #bbb = 1px solid } #loginAnnouncements UL { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; BACKGROUND: #ebebeb; = LIST-STYLE-IMAGE: url(/images/ci/ng/list_bullet_single.gif); = PADDING-BOTTOM: 8px; MARGIN: 0px 9px; PADDING-TOP: 1px } #loginAnnouncements UL LI { PADDING-RIGHT: 0px; BORDER-TOP: #999 1px dotted; PADDING-LEFT: 0px; = FONT-SIZE: 90%; PADDING-BOTTOM: 0px; MARGIN: 5px 5px 5px 15px; = PADDING-TOP: 4px } #loginAnnouncements UL LI:first-child { BORDER-TOP: 0px } #loginAnnouncements UL LI A { FONT-SIZE: 95%; COLOR: #495a71 } .portlet #loginBoxFull { BORDER-RIGHT: #fff1c5 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #fff1c5 2px solid; PADDING-LEFT: 0px; BACKGROUND: #fff1c5; = PADDING-BOTTOM: 15px; MARGIN: 0px; BORDER-LEFT: #fff1c5 2px solid; = PADDING-TOP: 10px; BORDER-BOTTOM: #fff1c5 2px solid } .portlet #loginBoxFull P { PADDING-LEFT: 0px; FONT-SIZE: 0.85em; MARGIN: 10px; COLOR: #444 } .portlet #loginBoxFull P.welcome { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 1em; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: = 0px; MARGIN: 10px; COLOR: #000000; PADDING-TOP: 0px } .portlet #loginBoxFull UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 6px = 12px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .portlet #loginBoxFull LI { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: = none; PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-TOP: 2px } .portlet #loginBoxFull LI LABEL { MARGIN-TOP: 3px; FONT-WEIGHT: bold; FLOAT: left; WIDTH: 80px; = MARGIN-RIGHT: 3px } .portlet #loginBoxFull LI INPUT[type=3D'text'] { BORDER-RIGHT: #ccc 2px solid; BORDER-TOP: #ccc 2px solid; FONT-SIZE: = 100%; FLOAT: left; BORDER-LEFT: #ccc 2px solid; BORDER-BOTTOM: #ccc 2px = solid } .portlet #loginBoxFull LI INPUT[type=3D'password'] { BORDER-RIGHT: #ccc 2px solid; BORDER-TOP: #ccc 2px solid; FONT-SIZE: = 100%; FLOAT: left; BORDER-LEFT: #ccc 2px solid; BORDER-BOTTOM: #ccc 2px = solid } .portlet #loginBoxFull .forgot { FLOAT: left; MARGIN-LEFT: 83px } .portlet #loginBoxFull A { FONT-SIZE: 0.85em } .portlet #loginBoxFull P A { FONT-SIZE: 1em } .portlet #loginBoxFull P.welcome A { FONT-SIZE: 1em } .portlet #loginBoxFull LI INPUT.submit { MARGIN-LEFT: 83px } .portlet #loginPaneShort { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; MARGIN: 9px; = BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid } .portlet #loginFooter { PADDING-RIGHT: 0pt; PADDING-LEFT: 0px; FONT-SIZE: 0.85em; = BACKGROUND-ATTACHMENT: scroll; BACKGROUND-IMAGE: none; PADDING-BOTTOM: = 9px; MARGIN: 0px; COLOR: #444444; PADDING-TOP: 0px; BACKGROUND-REPEAT: = repeat; BACKGROUND-COLOR: #eeeeee; background-x-position: 0%; = background-y-position: 0% } .portlet #loginFooter UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .portlet #loginFooter UL LI { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FLOAT: left; BACKGROUND-IMAGE: = none; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: #999 1px dotted; = PADDING-TOP: 0px } .portlet #loginFooter UL LI:first-child { BORDER-LEFT: medium none } .portlet #loginFooter UL LI .active:link { COLOR: #666; TEXT-DECORATION: none } #courseMenu { BORDER-TOP: #ddd 1px solid; COLOR: #444; BACKGROUND-COLOR: #ededed } #moduleBorder { BORDER-LEFT-COLOR: #597298; BORDER-BOTTOM-COLOR: #597298; = BORDER-TOP-COLOR: #597298; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #597298 } #moduleBody { BORDER-LEFT-COLOR: #597298; BORDER-BOTTOM-COLOR: #597298; = BORDER-TOP-COLOR: #597298; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #597298 } #moduleTitle { COLOR: #fff; BACKGROUND-COLOR: #819ac0 } #schemePreviewBody { COLOR: #000000; BACKGROUND-COLOR: #fff } #schemePreview { COLOR: #000000; BACKGROUND-COLOR: #cdcdcd } #schemePreviewHead { COLOR: #000000; BACKGROUND-COLOR: #fff1c5 } .qIncomplete { BORDER-RIGHT: #cccccc 1px solid; BORDER-TOP: #cccccc 1px solid; = DISPLAY: block; FONT-WEIGHT: bold; FLOAT: left; MARGIN: 1px; = BORDER-LEFT: #cccccc 1px solid; WIDTH: 30px; BORDER-BOTTOM: #cccccc 1px = solid; TEXT-ALIGN: center } .qComplete { BORDER-RIGHT: #999999 1px solid; BORDER-TOP: #999999 1px solid; = DISPLAY: block; FONT-WEIGHT: bold; FLOAT: left; MARGIN: 1px; = BORDER-LEFT: #999999 1px solid; WIDTH: 30px; COLOR: #003366; = BORDER-BOTTOM: #999999 1px solid; BACKGROUND-COLOR: #cccccc; TEXT-ALIGN: = center } ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/branding/colorpalettes/wsu_production_colors/colorpalette.css?v=9.0.440.7 #topTabActive { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; BORDER-TOP-COLOR: = #fff; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: #fff } TABLE.appTabs TBODY TR TD.active A { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; BORDER-TOP-COLOR: = #fff; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: #fff } TABLE.appTabs TBODY TR TD.active A:hover { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; BORDER-TOP-COLOR: = #fff; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: #fff } #topTab { BORDER-LEFT-COLOR: #565a5c; COLOR: #fff; BORDER-TOP-COLOR: #565a5c; = BORDER-BOTTOM: 0px; BACKGROUND-COLOR: black; BORDER-RIGHT-COLOR: #565a5c } TABLE.appTabs TBODY TR TD A { BORDER-LEFT-COLOR: #565a5c; COLOR: #fff; BORDER-TOP-COLOR: #565a5c; = BORDER-BOTTOM: 0px; BACKGROUND-COLOR: black; BORDER-RIGHT-COLOR: #565a5c } TABLE.appTabs TBODY TR TD A:hover { BORDER-LEFT-COLOR: #67675c; BORDER-TOP-COLOR: #67675c; BORDER-BOTTOM: = 0px; BACKGROUND-COLOR: #bbbdb7; BORDER-RIGHT-COLOR: #67675c } DIV.topTabs { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } #topFrame { BACKGROUND-COLOR: #0c5449 } .bgBanner { BACKGROUND-COLOR: #0c5449 } #contentFrame { BACKGROUND-COLOR: #999 } #schemePreview { BACKGROUND-COLOR: #999 } BODY { BACKGROUND-COLOR: #999 } BODY.ineditmode { BACKGROUND-COLOR: #999 } BODY.topFrame { BACKGROUND-COLOR: #999 } DIV.breadcrumbs { BACKGROUND-COLOR: #999 } DIV.paneTabs UL LI.active { BACKGROUND-COLOR: #999 } DIV.paneTabs UL LI { BACKGROUND-COLOR: #999 } BODY.wizardBody DIV.containerWizard { BACKGROUND-COLOR: #999 } DIV.breadcrumbs { BORDER-LEFT-COLOR: #7a8c50; BORDER-BOTTOM-COLOR: #7a8c50; = BORDER-TOP-COLOR: #7a8c50; BORDER-RIGHT-COLOR: #7a8c50 } DIV.menuWrap { =09 } #navigationPane { =09 } DIV.navigationPane { =09 } BODY.ineditmode DIV.listCm { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } BODY.ineditmode DIV#editmodeWrapper { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.breadcrumbs DIV.path { BACKGROUND-COLOR: #dfddd1 } DIV.breadcrumbs DIV.simplePath { BACKGROUND-COLOR: #dfddd1 } DIV.breadcrumbs DIV.topRound B { BACKGROUND-COLOR: #dfddd1 } DIV.breadcrumbs DIV.bottomRound B { BACKGROUND-COLOR: #dfddd1 } DIV.breadcrumbs DIV.path OL LI.root { BACKGROUND-COLOR: #999 } DIV.simplePath OL LI.root { BACKGROUND-COLOR: #999 } DIV.simplePath A { COLOR: #fff } DIV.breadcrumbs DIV.path OL LI.root A { COLOR: #fff } DIV.breadcrumbs DIV.simplePath OL LI.root A { COLOR: #fff } DIV.simplePath A { COLOR: #fff } DIV.breadcrumbs DIV.path OL LI.root A:hover { COLOR: #fff } DIV.breadcrumbs DIV.simplePath OL LI.root A:hover { COLOR: #fff } DIV.breadcrumbs DIV.path A { COLOR: #222 } DIV.breadcrumbs DIV.path A:hover { COLOR: #000 } DIV.breadcrumbs DIV.path { COLOR: #000 } DIV.simplePath { COLOR: #000 } .navPalette H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.listCm H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.tools H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.classicCs .navPalette H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.explore H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.myPlaces H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.tools DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.myPlaces DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.explore DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.controlpanel H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } DIV.controlpanel DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } .navPalette H2 A { COLOR: #fff } DIV.controlpanel H2 A { COLOR: #fff } DIV.controlpanel H2 A:hover { COLOR: #fff } DIV.navPaletteExpCol DIV.navPaletteContent H2 A { COLOR: #fff } DIV.navPaletteExpCol DIV.navPaletteContent H2 A:hover { COLOR: #fff } DIV.tools UL { BACKGROUND-COLOR: #dfddd1 } DIV.pickerMenu UL { BACKGROUND-COLOR: #dfddd1 } DIV.tools DIV.bottomRound B { BACKGROUND-COLOR: #dfddd1 } DIV.tools UL LI A.submenuLink { BORDER-LEFT-COLOR: #0c5449; BORDER-BOTTOM-COLOR: #0c5449; = BORDER-TOP-COLOR: #0c5449; BORDER-RIGHT-COLOR: #0c5449 } DIV.tools UL LI A { BORDER-LEFT-COLOR: #0c5449; BORDER-BOTTOM-COLOR: #0c5449; = BORDER-TOP-COLOR: #0c5449; BORDER-RIGHT-COLOR: #0c5449 } DIV.controlpanel UL { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.discover UL LI H3 A { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.singleControl A { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.singleControl DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.singleControl DIV.bottomRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.discover A { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.discover DIV.topRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.discover DIV.bottomRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.controlpanel DIV.bottomRound B { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.controlpanel A.submenuLink { COLOR: #fff; BACKGROUND-COLOR: #336666 } DIV.controlpanel DIV.controlpanelCol B { BACKGROUND-COLOR: #0c5449! important } DIV.controlpanel DIV.topRound B { BACKGROUND-COLOR: #0c5449! important } H3.listCmCol A { BACKGROUND-COLOR: #0c5449! important } DIV.controlpanel UL LI A { BORDER-LEFT-COLOR: #336666; BORDER-BOTTOM-COLOR: #336666; COLOR: #fff; = BORDER-TOP-COLOR: #336666; BORDER-RIGHT-COLOR: #336666 } DIV.controlpanel A.submenuLink { BORDER-LEFT-COLOR: #336666; BORDER-BOTTOM-COLOR: #336666; COLOR: #fff; = BORDER-TOP-COLOR: #336666; BORDER-RIGHT-COLOR: #336666 } DIV.controlpanel A.submenuLink_active { BORDER-LEFT-COLOR: #336666; BORDER-BOTTOM-COLOR: #336666; COLOR: #fff; = BORDER-TOP-COLOR: #336666; BORDER-RIGHT-COLOR: #336666 } DIV.controlpanel UL LI A:hover { BACKGROUND-IMAGE: url(/images/ci/ng/more_options_white.gif) } DIV.controlpanel UL LI A.comboLink:hover { BACKGROUND-IMAGE: url(/images/ci/ng/more_options_white.gif) } DIV.controlpanel A.comboLink_active { BACKGROUND-IMAGE: url(/images/ci/ng/less_options_dark.gif) } DIV.controlpanel A.open { BACKGROUND-IMAGE: url(/images/ci/ng/less_options_dark.gif) } DIV.navPalette A.comboLink_active:hover { BACKGROUND-IMAGE: url(/images/ci/ng/less_options.gif) } DIV.navPalette A.open:hover { BACKGROUND-IMAGE: url(/images/ci/ng/less_options.gif) } DIV.navPalette A.submenuLink_active { =09 } DIV.controlpanel UL LI H3 A:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.controlpanel UL LI H3 A.comboLink:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.controlpanel UL LI A.submenuLink:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.controlpanel UL LI H3 A.simpleLink:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.singleControl A:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.discover A:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.controlpanel UL LI H3 A.open { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI H3 A.open:hover { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI H3 A.comboLink_active { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI H3 A.comboLink_active:hover { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI A.submenuLink_active { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI A.submenuLink_active:hover { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI UL.submenu LI A { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.tools UL LI H3 A.comboLink_active { COLOR: #000; BACKGROUND-COLOR: #fff } DIV.controlpanel A.comboLink { BACKGROUND-IMAGE: url(/images/ci/ng/more_options_white.gif) } DIV.controlpanel A.submenuLink:hover { BACKGROUND-IMAGE: url(/images/ci/ng/list_bullet_white.gif) } DIV.controlpanel UL LI UL.submenu { BACKGROUND-COLOR: #fff } DIV.controlpanel UL LI UL.submenu LI A:hover { COLOR: #000; BACKGROUND-COLOR: #cedddb } DIV.navDivider { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; COLOR: #555; = BORDER-TOP-COLOR: #fff; BORDER-RIGHT-COLOR: #fff } DIV.singleControl UL LI A { COLOR: #fff } .navPalette DIV.actionBarMicro UL LI A { =09 } DIV.treeViewCs DIV.topRound B { BACKGROUND-COLOR: #0c5449 } DIV.navPaletteExpCol DIV.navPaletteContent { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #fff; = BORDER-RIGHT-COLOR: #000! important } DIV.paneTabs UL { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } DIV.paneTabs UL LI A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #dfddd1; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.external A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #dfddd1; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.personal A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #dfddd1; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.active A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.active A:hover { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI A:hover { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.external A:hover { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } DIV.paneTabs UL LI.activepersonal A:hover { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; COLOR: #000; = BORDER-TOP-COLOR: #222; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: = #222 } #contentArea { BACKGROUND-POSITION: 0% 0%; BACKGROUND-COLOR: #fff } #schemePreviewBody { BACKGROUND-POSITION: 0% 0%; BACKGROUND-COLOR: #fff } .container { BACKGROUND-POSITION: 0% 0%; BACKGROUND-COLOR: #fff } .contentPane DIV.bottomRound B { BACKGROUND-POSITION: 0% 0%; BACKGROUND-COLOR: #fff } DIV.portal DIV.container { BACKGROUND-COLOR: #dfddd1 } DIV.containerPortal { BACKGROUND-COLOR: #dfddd1 } DIV.portal DIV.bottomRound B { BACKGROUND-COLOR: #dfddd1 } DIV.landing DIV.container { BACKGROUND-COLOR: #dfddd1 } DIV.landing DIV.bottomRound B { BACKGROUND-COLOR: #dfddd1 } DIV.landingPageColumn UL LI A { COLOR: #000000 } DIV.landingPageColumn UL.outcomesLanding LI H3 { BORDER-LEFT-COLOR: #bbbdb7; BORDER-BOTTOM-COLOR: #bbbdb7; COLOR: #333; = BORDER-TOP-COLOR: #bbbdb7; BORDER-RIGHT-COLOR: #bbbdb7 } DIV.landingPageColumn UL LI P { BORDER-LEFT-COLOR: #bbbdb7; BORDER-BOTTOM-COLOR: #bbbdb7; COLOR: #333; = BORDER-TOP-COLOR: #bbbdb7; BORDER-RIGHT-COLOR: #bbbdb7 } #pageHeader { BACKGROUND-COLOR: #cedddb } #schemePreviewHead { BACKGROUND-COLOR: #cedddb } DIV.actionBar { BACKGROUND-COLOR: #cedddb } DIV.contentPaneWide DIV.actionBar { BACKGROUND-COLOR: #cedddb } DIV.actionBar UL { BACKGROUND-COLOR: #cedddb } DIV.localViewToggle { BACKGROUND-COLOR: #cedddb } .navPalette DIV.actionBarMicro { BACKGROUND-COLOR: #cedddb } DIV.contentPane DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.listCm DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.buttonCm DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.treeContainer DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV.treeViewCs DIV.topRound B { BACKGROUND-COLOR: #cedddb } DIV#lightboxContent H2 { BACKGROUND-COLOR: #cedddb } #lightbox DIV.topRound B { BACKGROUND-COLOR: #cedddb } #puller { BACKGROUND-COLOR: #cedddb } #puller { BORDER-LEFT-COLOR: #000; BORDER-BOTTOM-COLOR: #000; BORDER-TOP-COLOR: = #000; BORDER-RIGHT-COLOR: #000 } DIV.pageTitle H1 { COLOR: #000 } DIV.pageTitle { BORDER-BOTTOM-COLOR: #dfddd1 } DIV.actionBar { BORDER-BOTTOM-COLOR: #dfddd1 } DIV#lightboxContent H2 { BORDER-BOTTOM-COLOR: #dfddd1 } DIV.helphelp { COLOR: #222 } P.helphelp { COLOR: #222 } DIV.pageTitle P { COLOR: #222 } DIV.helphelp A { COLOR: #000 } P.helphelp A { COLOR: #000 } DIV.pageTitle P A { COLOR: #000 } .actionBar UL { BORDER-LEFT-COLOR: #000; BORDER-BOTTOM-COLOR: #000; BORDER-TOP-COLOR: = #000; BORDER-RIGHT-COLOR: #000 } DIV.navPalette DIV.actionBarMicro { BORDER-LEFT-COLOR: #000; BORDER-BOTTOM-COLOR: #000; BORDER-TOP-COLOR: = #000; BORDER-RIGHT-COLOR: #000 } DIV.localViewToggle UL LI A.active { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #b5dfb5 } .navPalette DIV.actionBarMicro UL LI.active A { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #b5dfb5 } .navPalette DIV.actionBarMicro UL LI A:hover { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #b5dfb5 } .navPalette DIV.actionBarMicro UL LI.active A.options { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BACKGROUND-COLOR: #fff; BORDER-RIGHT-COLOR: = #b5dfb5 } DIV.localViewToggle UL LI A { COLOR: #000 } DIV.localViewToggle UL LI A.active { COLOR: #000 } DIV.localViewToggle UL LI.separator { BORDER-LEFT-COLOR: #8b835f } #primaryButton { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI.mainButton A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .actionbar_portal UL LI A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.navPalette DIV.actionBarMicro UL LI.mainButton A { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } INPUT.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.threadButtons A.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskbuttondiv BUTTON.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskbuttondiv INPUT.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskButtonsContent BUTTON.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskButtonsContent INPUT.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.controls BUTTON.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.controls INPUT.submit { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskbuttondiv BUTTON.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskbuttondiv INPUT.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskButtonsContent BUTTON.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .taskButtonsContent INPUT.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.controls BUTTON.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.controls INPUT.disabled { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.threadButtons A.reply { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.dbThreadInfo P A.reply { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage A.gotopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble_top UL LI.jumptopage A.gotopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .paging A.gotopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } #loginBox LI INPUT[type=3D'submit'] { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #fff; = BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .actionBar UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .actionbar_portal UL LI A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.navPalette DIV.actionBarMicro UL LI.mainButton A:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .taskbuttondiv BUTTON.submit:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .taskbuttondiv INPUT.submit:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.controls BUTTON.submit:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.controls INPUT.submit:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.threadButtons A.reply:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.dbThreadInfo P A.reply:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage A.gotopage:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } DIV.rumble_top UL LI.jumptopage A.gotopage:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } .paging A.gotopage:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } #loginBox LI INPUT[type=3D'submit']:hover { BORDER-LEFT-COLOR: #999; BACKGROUND-IMAGE: none; BORDER-BOTTOM-COLOR: = #999; COLOR: #fff; BORDER-TOP-COLOR: #999; BACKGROUND-COLOR: #999; = BORDER-RIGHT-COLOR: #999 } #secondaryButton { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .actionBar UL LI.search A { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .actionBar UL LI.secondaryButton A { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .actionBar_portal UL LI.search A { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .pageTitle H1 A.secondaryButton { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .taskbuttondiv BUTTON { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .taskbuttondiv INPUT { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .taskButtonsContent BUTTON { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .taskButtonsContent INPUT { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } DIV.controls BUTTON { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } DIV.controls INPUT { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } P.okbutton INPUT { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #dfddd1; = BORDER-RIGHT-COLOR: #dfddd1 } .actionBar UL LI.secondaryButton A:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } .taskbuttondiv BUTTON:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } .taskbuttondiv INPUT:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } DIV.controls BUTTON:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } DIV.controls INPUT:hover { BORDER-LEFT-COLOR: #dfddd1; BORDER-BOTTOM-COLOR: #dfddd1; COLOR: #000; = BORDER-TOP-COLOR: #dfddd1; BACKGROUND-COLOR: #999; BORDER-RIGHT-COLOR: = #dfddd1 } .paging A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble_top UL LI.secondaryControl A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble UL LI.secondaryControl A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble_top A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble A:hover { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble_top UL LI.inventory_paging A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } DIV.rumble UL LI.inventory_paging A { BACKGROUND-POSITION: 0px 30%; BORDER-LEFT-COLOR: #bbb; = BORDER-BOTTOM-COLOR: #bbb; COLOR: #000000; BORDER-TOP-COLOR: #bbb; = BACKGROUND-REPEAT: repeat-x; BORDER-RIGHT-COLOR: #bbb } .paging A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble_top UL LI.secondaryControl A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble UL LI.secondaryControl A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble_top A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble_top UL LI.inventory_paging A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } DIV.rumble UL LI.inventory_paging A:hover { BORDER-LEFT-COLOR: #777; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #777; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } #moduleBorder { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BACKGROUND-COLOR: #ffffff; BORDER-RIGHT-COLOR: #999 } #moduleBody { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BACKGROUND-COLOR: #ffffff; BORDER-RIGHT-COLOR: #999 } .portlet { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BACKGROUND-COLOR: #ffffff; BORDER-RIGHT-COLOR: #999 } .portlet H2 SPAN.reorder { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BACKGROUND-COLOR: #ffffff; BORDER-RIGHT-COLOR: #999 } #moduleTitle { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } .portlet H2 { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } .portlet H2:hover { BACKGROUND-COLOR: #cedddb } .portlet H3 { BORDER-LEFT-COLOR: #777; BORDER-BOTTOM-COLOR: #777; COLOR: #000; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } #lightbox H3 { BORDER-LEFT-COLOR: #777; BORDER-BOTTOM-COLOR: #777; COLOR: #000; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } .portlet DIV.portletBlock H4 { BORDER-LEFT-COLOR: #777; BORDER-BOTTOM-COLOR: #777; COLOR: #000; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } .portlet DIV.blockContents H4 { BORDER-LEFT-COLOR: #777; BORDER-BOTTOM-COLOR: #777; COLOR: #000; = BORDER-TOP-COLOR: #777; BORDER-RIGHT-COLOR: #777 } .portlet H2 A { COLOR: #333333 } .actionBar UL LI.buttontotab A { BACKGROUND: #ffcc33 } .actionBar UL LI.buttontotab A:hover { BACKGROUND: #ffcc33 } .actionBar UL LI.secondaryButtonTab A { BACKGROUND: #ffcc33 } .actionBar UL LI.secondaryButtonTab A:hover { BACKGROUND: #ffcc33 } .actionBar UL LI.buttontotab A { BORDER-LEFT-COLOR: #999; BORDER-TOP-COLOR: #999; BORDER-BOTTOM: medium = none; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI.buttontotab A:hover { BORDER-LEFT-COLOR: #999; BORDER-TOP-COLOR: #999; BORDER-BOTTOM: medium = none; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI.secondaryButtonTab A { BORDER-LEFT-COLOR: #999; BORDER-TOP-COLOR: #999; BORDER-BOTTOM: medium = none; BORDER-RIGHT-COLOR: #999 } .actionBar UL LI.secondaryButtonTab A:hover { BORDER-LEFT-COLOR: #999; BORDER-TOP-COLOR: #999; BORDER-BOTTOM: medium = none; BORDER-RIGHT-COLOR: #999 } UL.nav LI.sub UL { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .cmdiv UL { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .menumini UL { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.quickAddPal { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.keyboardAccess { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } UL.nav LI.sub UL LI A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .cmdiv A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .menumini A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.actionBarMicro UL.nav LI.sub UL LI A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.paneTabs UL.nav LI.sub UL LI A { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } SPAN.currentTags { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } .loadingElipse { BORDER-TOP-COLOR: #ddd; BACKGROUND-COLOR: #f0f0f0 } DIV.quickAddPal DIV.quickAddPalHeader { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BACKGROUND-COLOR: #ddd; BORDER-RIGHT-COLOR: = #355533 } DIV.quickAddPal DIV.controls { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BORDER-RIGHT-COLOR: #355533 } DIV.keyboardAccess DIV.controls { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BORDER-RIGHT-COLOR: #355533 } .comText DIV.controls { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BORDER-RIGHT-COLOR: #355533 } UL.nav LI.sub UL LI A:hover { COLOR: #000! important; BACKGROUND-COLOR: #fff! important } .cmdiv A:hover { COLOR: #000! important; BACKGROUND-COLOR: #fff! important } .menumini A:hover { COLOR: #000! important; BACKGROUND-COLOR: #fff! important } UL.nav LI.sub UL { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .cmdiv UL { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .menumini UL { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.quickAddPal { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.keyboardAccess { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } .cmdiv { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } SPAN.currentTags { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble_top UL LI.jumptopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble_top UL LI.jumptopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } LI.inventory_paging INPUT { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.jumptopage { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.jumptopage INPUT { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } DIV.rumble UL LI.jumptopage { BACKGROUND-COLOR: #ddd } DIV.rumble UL LI.jumptopage { BACKGROUND-COLOR: #ddd } DIV.rumble_top UL LI.jumptopage { BACKGROUND-COLOR: #ddd } DIV.rumble_top UL LI.jumptopage { BACKGROUND-COLOR: #ddd } DIV.jumptopage { BACKGROUND-COLOR: #ddd } UL.nav LI.sub UL LI A:hover { BORDER-TOP-COLOR: #ddd } .cmdiv UL { BORDER-TOP-COLOR: #ddd } .cmdiv LI.contextmenubar_top A { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BACKGROUND-COLOR: #ddd! important; = BORDER-RIGHT-COLOR: #355533 } .cmdiv LI.contextmenubar_top A:hover { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BACKGROUND-COLOR: #ddd! important; = BORDER-RIGHT-COLOR: #355533 } SPAN.currentTags A.closeCloud { BORDER-LEFT-COLOR: #355533; BORDER-BOTTOM-COLOR: #355533; = BORDER-TOP-COLOR: #355533; BACKGROUND-COLOR: #ddd! important; = BORDER-RIGHT-COLOR: #355533 } DIV.quickAddPal H3 { BACKGROUND-COLOR: #ffc59f } DIV.keyboardAccess H3 { BACKGROUND-COLOR: #ffc59f } .searchbar { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BORDER-RIGHT-COLOR: #b5dfb5 } .subActionBar { BORDER-LEFT-COLOR: #b5dfb5; BORDER-BOTTOM-COLOR: #b5dfb5; = BORDER-TOP-COLOR: #b5dfb5; BORDER-RIGHT-COLOR: #b5dfb5 } TR.high { BORDER-LEFT-COLOR: #aaa; BORDER-BOTTOM-COLOR: #aaa; BORDER-TOP-COLOR: = #aaa; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: #aaa } TABLE.inventory TBODY TR.high TD { BORDER-LEFT-COLOR: #aaa; BORDER-BOTTOM-COLOR: #aaa; BORDER-TOP-COLOR: = #aaa; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: #aaa } TABLE.inventory TBODY TR.high TH { BORDER-LEFT-COLOR: #aaa; BORDER-BOTTOM-COLOR: #aaa; BORDER-TOP-COLOR: = #aaa; BACKGROUND-COLOR: #cedddb; BORDER-RIGHT-COLOR: #aaa } TABLE.inventory THEAD { BACKGROUND-COLOR: #cfcfcf } TABLE.inventory THEAD TR TH { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; COLOR: #333; = BORDER-TOP-COLOR: #777 } TABLE.inventory TBODY { BORDER-BOTTOM-COLOR: #777 } TABLE.inventory TBODY TR { =09 } TABLE.inventory TBODY TR TD { =09 } TABLE.inventory TBODY TR TH { =09 } TABLE.inventory THEAD TR TH.sorted { =09 } TH.sorted { =09 } TABLE.sortable TH A { COLOR: #333 } DIV.rumble { BACKGROUND-COLOR: #cedddb } DIV.rumble_top { BACKGROUND-COLOR: #cedddb } DIV.dbThreadFooter { BACKGROUND-COLOR: #cedddb } DIV.dbThreadHeader { BACKGROUND-COLOR: #cedddb } .bad { COLOR: #fff; BACKGROUND-COLOR: #8b2145 } .good { COLOR: #fff; BACKGROUND-COLOR: #006666 } FIELDSET.stepcontent OL LI.fieldError { BACKGROUND-COLOR: #fff6b3 } LI.fieldError { BACKGROUND-COLOR: #fff6b3 } DIV.loginBack B { BACKGROUND-COLOR: #fff } DIV.loginBody { BACKGROUND-COLOR: #c8cac4 } #loginContainer { BORDER-LEFT-COLOR: #ffffff; BACKGROUND: #ffffff; BORDER-BOTTOM-COLOR: = #ffffff; BORDER-TOP-COLOR: #ffffff; BORDER-RIGHT-COLOR: #ffffff } #loginBox { BACKGROUND: none transparent scroll repeat 0% 0% } #loginOptions { BACKGROUND: #bbbdb7 } #loginBox LI INPUT[type=3D'text'] { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } #loginBox LI INPUT[type=3D'password'] { BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; BORDER-TOP-COLOR: = #999; BORDER-RIGHT-COLOR: #999 } TEXTAREA:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } #loginBox LI INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } #loginBox LI INPUT[type=3D'password']:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } #loginBox LI TEXTAREA:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } DIV.quickAddPal DIV.field INPUT[type=3D'text']:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } DIV.quickAddPal DIV.field SELECT:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } DIV.quickAddPal DIV.field TEXTAREA:focus { BORDER-LEFT-COLOR: #000! important; BORDER-BOTTOM-COLOR: #000! = important; BORDER-TOP-COLOR: #000! important; BACKGROUND-COLOR: #cedddb; = BORDER-RIGHT-COLOR: #000! important } #loginOptions UL LI A { COLOR: #000; BORDER-TOP-COLOR: #0c5449; BACKGROUND-COLOR: #bbbdb7 } #loginOptions UL LI.subOption A { COLOR: #000; BORDER-TOP-COLOR: #0c5449; BACKGROUND-COLOR: #bbbdb7 } #loginOptions UL LI A:hover { BACKGROUND-COLOR: #cedddb } #loginOptions UL LI.subOption A:hover { BACKGROUND-COLOR: #cedddb } #loginText { BACKGROUND-COLOR: #bbbdb7 } #loginText P { COLOR: #000 } #loginHeader { BACKGROUND: #dfddd1 } #loginLang { BACKGROUND: #dfddd1 } DIV.listCm DIV.bottomRound B { BACKGROUND: #ffffff } DIV.buttonCm DIV.bottomRound B { BACKGROUND: #ffffff } DIV.contentTree DIV.bottomRound B { BACKGROUND: #ffffff } DIV.contentTree DIV.bottomRound B { BACKGROUND: #ffffff } DIV.navPaletteCol DIV.controlpanelCol B { BACKGROUND-COLOR: #13621c } DIV.navPaletteCol DIV.listCmCol B { BACKGROUND-COLOR: #617057 } DIV.navPaletteCol DIV.bottomRound B { BACKGROUND-COLOR: #617057 } DIV.navPaletteCol DIV.topRound B { BACKGROUND-COLOR: #617057 } DIV.listCm DIV.listCmCol B { BACKGROUND-COLOR: #0c5449! important } TABLE.inventory TBODY TR.gray TD { BACKGROUND-COLOR: #f0f0f0 } TABLE.inventory TBODY TR.gray TH { BACKGROUND-COLOR: #f0f0f0 } TABLE.inventory TBODY TR TD.sorted { BACKGROUND-COLOR: #eeeeee } UL.easylist { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.contentList LI { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } .contentPageItem { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.noimg LI { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.buildList LI { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.contentListPlain LI { BORDER-LEFT-COLOR: #eeeeee; BORDER-TOP-COLOR: #eeeeee } UL.buildList LI H3.item:hover { BACKGROUND: #efefef } UL.contentList LI H3.item:hover { BACKGROUND: #efefef } UL.contentListPlain LI H3.item:hover { BACKGROUND: #efefef } H3 SPAN.reorder { BACKGROUND-COLOR: #ededed } .portlet H2 SPAN.reorder { BACKGROUND-COLOR: #ddd } DIV.listCm UL.courseMenu LI SPAN.reorder { BACKGROUND-COLOR: #ddd } DIV.listCm UL.courseMenu LI.invisible SPAN.reorder { BACKGROUND-COLOR: #ddd } DIV.steptitle { BACKGROUND: #aaa; COLOR: #fff } H3.steptitle { BACKGROUND: #aaa; COLOR: #fff } DIV.steptitle SPAN { BACKGROUND: #dfdddb; COLOR: #000000 } H3.steptitle SPAN { BACKGROUND: #dfdddb; COLOR: #000000 } .stepHelp { COLOR: #666666 } FIELDSET.stepcontent OL LI.stepHelp { COLOR: #666666 } FIELDSET.stepcontent OL LI { BORDER-BOTTOM-COLOR: #eeeeee } UL.containerTabs { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } UL.containerTabs LI.active A { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } UL.containerTabs LI.active H3 { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } .contentAreaBlock { BORDER-LEFT-COLOR: #222; BORDER-BOTTOM-COLOR: #222; BORDER-TOP-COLOR: = #222; BORDER-RIGHT-COLOR: #222 } .modeSwitch { BORDER-LEFT-COLOR: #cedddb; BORDER-BOTTOM-COLOR: #cedddb; COLOR: #fff; = BORDER-TOP-COLOR: #cedddb; BORDER-RIGHT-COLOR: #cedddb } .read-on { COLOR: #fff; BACKGROUND-COLOR: #0c5449 } .read-off { COLOR: #444; BACKGROUND-COLOR: #0c5449 } .switcherLabel { COLOR: #000 } DIV.helpLink A.browseIcon { BORDER-LEFT-COLOR: #333; BORDER-BOTTOM-COLOR: #000; BORDER-TOP-COLOR: = #333; BORDER-RIGHT-COLOR: #000 } A.cmimg { FILTER: alpha(opacity=3D100); opacity: 1 } DIV.legal { BORDER-LEFT-COLOR: #9f9e8b; BORDER-BOTTOM-COLOR: #9f9e8b; = BORDER-TOP-COLOR: #9f9e8b; BORDER-RIGHT-COLOR: #9f9e8b } DIV.additionalInfo { BORDER-LEFT-COLOR: #9f9e8b; BORDER-BOTTOM-COLOR: #9f9e8b; = BORDER-TOP-COLOR: #9f9e8b; BORDER-RIGHT-COLOR: #9f9e8b } #copyright { COLOR: #2d341e } #copyright A { COLOR: #2d341e } .installation { COLOR: #000000! important } #lightbox DIV#lightboxContent { BORDER-LEFT-COLOR: #fff6b3; BACKGROUND: #000; BORDER-BOTTOM-COLOR: = #fff6b3; BORDER-TOP-COLOR: #fff6b3; BORDER-RIGHT-COLOR: #fff6b3 } .myPlacesContent { BORDER-LEFT-COLOR: #fff; BORDER-BOTTOM-COLOR: #fff; BORDER-TOP-COLOR: = #fff; BORDER-RIGHT-COLOR: #fff } DIV.actionBar UL.nav LI.sub UL LI { COLOR: #fff6b3 } DIV.actionBar UL.nav LI { COLOR: #fff6b3 } DIV.actionBar UL.nav LI.sub { COLOR: #ccc } .actionBar UL LI { COLOR: #fff } .actionBar UL LI.mainButton { COLOR: #fff } .actionbar_portal UL LI { COLOR: #fff } DIV.actionBar UL.nav LI.sub A { =09 } DIV.actionBar UL.nav LI.sub A:hover { =09 } DIV.actionBar UL.nav LI A { =09 } DIV.actionBar UL.nav LI A:hover { =09 } element { =09 } ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/branding/_1_1/brand.css?ts=1241886188000&v=9.0.440.7 #contentFrame { COLOR: #000000; BACKGROUND-COLOR: #999999 } #schemePreview { COLOR: #000000; BACKGROUND-COLOR: #999999 } BODY { COLOR: #000000; BACKGROUND-COLOR: #999999 } BODY.ineditmode { COLOR: #000000; BACKGROUND-COLOR: #999999 } BODY.topFrame { COLOR: #000000; BACKGROUND-COLOR: #999999 } DIV.breadcrumbs { COLOR: #000000; BACKGROUND-COLOR: #999999 } DIV.paneTabs UL LI.active { COLOR: #000000; BACKGROUND-COLOR: #999999 } DIV.paneTabs UL LI { COLOR: #000000; BACKGROUND-COLOR: #999999 } BODY.wizardBody DIV.containerWizard { COLOR: #000000; BACKGROUND-COLOR: #999999 } #contentArea { COLOR: #000000; BACKGROUND-COLOR: #ffffff } #schemePreviewBody { COLOR: #000000; BACKGROUND-COLOR: #ffffff } .container { COLOR: #000000; BACKGROUND-COLOR: #ffffff } .contentPane DIV.bottomRound B { COLOR: #000000; BACKGROUND-COLOR: #ffffff } #primaryButton { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .actionBar UL LI A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .actionBar UL LI.mainButton A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .actionbar_portal UL LI A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.tabPreview DIV.actionBar UL LI.mainButton A:hover { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.navPalette DIV.actionBarMicro UL LI.mainButton A { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } INPUT.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.threadButtons A.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskbuttondiv BUTTON.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskbuttondiv INPUT.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskButtonsContent BUTTON.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskButtonsContent INPUT.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.controls BUTTON.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.controls INPUT.submit { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskbuttondiv BUTTON.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskbuttondiv INPUT.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskButtonsContent BUTTON.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .taskButtonsContent INPUT.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.controls BUTTON.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.controls INPUT.disabled { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.threadButtons A.reply { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.dbThreadInfo P A.reply { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.rumble UL LI.jumptopage A.gotopage { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } DIV.rumble_top UL LI.jumptopage A.gotopage { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } .paging A.gotopage { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } #loginBox LI INPUT[type=3D'submit'] { COLOR: #ffffff; BACKGROUND-COLOR: #999999 } #secondaryButton { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .actionBar UL LI.search A { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .actionBar UL LI.secondaryButton A { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .actionBar_portal UL LI.search A { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } DIV.tabPreview DIV.actionBar UL LI.secondaryButton A:hover { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .pageTitle H1 A.secondaryButton { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .taskbuttondiv BUTTON { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .taskbuttondiv INPUT { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .taskButtonsContent BUTTON { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } .taskButtonsContent INPUT { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } DIV.controls BUTTON { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } DIV.controls INPUT { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } P.okbutton INPUT { COLOR: #000000; BACKGROUND-COLOR: #dfddd1 } #pageHeader { COLOR: #000000; BACKGROUND-COLOR: #cedddb } #schemePreviewHead { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.pageTitle { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.actionBar { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.contentPaneWide DIV.actionBar { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.actionBar UL { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.localViewToggle { COLOR: #000000; BACKGROUND-COLOR: #cedddb } .navPalette DIV.actionBarMicro { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.contentPane DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.listCm DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.buttonCm DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.treeContainer DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV.treeViewCs DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } DIV#lightboxContent H2 { COLOR: #000000; BACKGROUND-COLOR: #cedddb } #lightbox DIV.topRound B { COLOR: #000000; BACKGROUND-COLOR: #cedddb } #puller { COLOR: #000000; BACKGROUND-COLOR: #cedddb } #topFrame { COLOR: #ffffff } DIV.topTabs DIV.topGlobalLinks UL LI A.topLevel { COLOR: #ffffff } DIV.topTabs-compact DIV.topGlobalLinks UL LI A.topLevel { COLOR: #ffffff } DIV.topTabs DIV.hotItems UL.hotLinks LI A { COLOR: #ffffff } #topFrame { BACKGROUND-POSITION: 0px 0px; BACKGROUND-IMAGE: url(bg3.jpg); = BACKGROUND-REPEAT: repeat; BACKGROUND-COLOR: #0c5449 } .bgBanner { BACKGROUND-POSITION: 0px 0px; BACKGROUND-IMAGE: url(bg3.jpg); = BACKGROUND-REPEAT: repeat; BACKGROUND-COLOR: #0c5449 } DIV.topTabs-compact { BACKGROUND: #0c5449 } #topTab { COLOR: #ffffff; BACKGROUND-COLOR: #000000 } TABLE.appTabs TBODY TR TD A { COLOR: #ffffff; BACKGROUND-COLOR: #000000 } DIV.topTabs-compact TABLE.appTabs TR TD A { COLOR: #ffffff; BACKGROUND-COLOR: #000000 } #topTabActive { COLOR: #000000; BACKGROUND-COLOR: #ffffff } TABLE.appTabs TBODY TR TD.active A { COLOR: #000000; BACKGROUND-COLOR: #ffffff } TABLE.appTabs TBODY TR TD.active A:hover { COLOR: #000000; BACKGROUND-COLOR: #ffffff } DIV.topTabs-compact TABLE.appTabs TR TD.active A { COLOR: #000000; BACKGROUND-COLOR: #ffffff } DIV.topTabs-compact TABLE.appTabs TR TD.active A:hover { COLOR: #000000; BACKGROUND-COLOR: #ffffff } TABLE.appTabs TBODY TR TD A:hover { COLOR: #000000; BACKGROUND-COLOR: #ffffff } DIV.topTabs-compact TABLE.appTabs TR TD A:hover { COLOR: #000000; BACKGROUND-COLOR: #ffffff } #moduleTitle { COLOR: #ffffff; BACKGROUND-COLOR: #0c5449 } .portlet H2 { COLOR: #ffffff; BACKGROUND-COLOR: #0c5449 } .portlet H2 SPAN.reorder { COLOR: #ffffff; BACKGROUND-COLOR: #0c5449 } .portlet H2 A { COLOR: #ffffff; BACKGROUND-COLOR: transparent } #moduleBorder { BORDER-LEFT-COLOR: #999999; BORDER-BOTTOM-COLOR: #999999; COLOR: = #000000; BORDER-TOP-COLOR: #999999; BACKGROUND-COLOR: #ffffff; = BORDER-RIGHT-COLOR: #999999 } #moduleBody { BORDER-LEFT-COLOR: #999999; BORDER-BOTTOM-COLOR: #999999; COLOR: = #000000; BORDER-TOP-COLOR: #999999; BACKGROUND-COLOR: #ffffff; = BORDER-RIGHT-COLOR: #999999 } .portlet { BORDER-LEFT-COLOR: #999999; BORDER-BOTTOM-COLOR: #999999; COLOR: = #000000; BORDER-TOP-COLOR: #999999; BACKGROUND-COLOR: #ffffff; = BORDER-RIGHT-COLOR: #999999 } ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/blackboard/dwr_open/interface/UserPageInstructionsSettingDWRFacade.js?v=9.0.440.7 =0A= // Provide a default path to dwr.engine=0A= if (dwr =3D=3D null) var dwr =3D {};=0A= if (dwr.engine =3D=3D null) dwr.engine =3D {};=0A= if (DWREngine =3D=3D null) var DWREngine =3D dwr.engine;=0A= =0A= if (UserPageInstructionsSettingDWRFacade =3D=3D null) var = UserPageInstructionsSettingDWRFacade =3D {};=0A= UserPageInstructionsSettingDWRFacade._path =3D = '/webapps/blackboard/dwr_open';=0A= UserPageInstructionsSettingDWRFacade.setShowPageInstructions =3D = function(p0, callback) {=0A= dwr.engine._execute(UserPageInstructionsSettingDWRFacade._path, = 'UserPageInstructionsSettingDWRFacade', 'setShowPageInstructions', p0, = callback);=0A= }=0A= UserPageInstructionsSettingDWRFacade.getShowPageInstructions =3D = function(callback) {=0A= dwr.engine._execute(UserPageInstructionsSettingDWRFacade._path, = 'UserPageInstructionsSettingDWRFacade', 'getShowPageInstructions', = callback);=0A= }=0A= ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/blackboard/dwr_open/engine.js?v=9.0.440.7 /*=0A= * Copyright 2005 Joe Walker=0A= *=0A= * Licensed under the Apache License, Version 2.0 (the "License");=0A= * you may not use this file except in compliance with the License.=0A= * You may obtain a copy of the License at=0A= *=0A= * http://www.apache.org/licenses/LICENSE-2.0=0A= *=0A= * Unless required by applicable law or agreed to in writing, software=0A= * distributed under the License is distributed on an "AS IS" BASIS,=0A= * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or = implied.=0A= * See the License for the specific language governing permissions and=0A= * limitations under the License.=0A= */=0A= =0A= /**=0A= * Declare an object to which we can add real functions.=0A= */=0A= if (dwr =3D=3D null) var dwr =3D {};=0A= if (dwr.engine =3D=3D null) dwr.engine =3D {};=0A= if (DWREngine =3D=3D null) var DWREngine =3D dwr.engine;=0A= =0A= /**=0A= * Set an alternative error handler from the default alert box.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.setErrorHandler =3D function(handler) {=0A= dwr.engine._errorHandler =3D handler;=0A= };=0A= =0A= /**=0A= * Set an alternative warning handler from the default alert box.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.setWarningHandler =3D function(handler) {=0A= dwr.engine._warningHandler =3D handler;=0A= };=0A= =0A= /**=0A= * Setter for the text/html handler - what happens if a DWR request gets = an HTML=0A= * reply rather than the expected Javascript. Often due to login timeout=0A= */=0A= dwr.engine.setTextHtmlHandler =3D function(handler) {=0A= dwr.engine._textHtmlHandler =3D handler;=0A= };=0A= =0A= /**=0A= * Set a default timeout value for all calls. 0 (the default) turns = timeouts off.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.setTimeout =3D function(timeout) {=0A= dwr.engine._timeout =3D timeout;=0A= };=0A= =0A= /**=0A= * The Pre-Hook is called before any DWR remoting is done.=0A= * @see getahead.org/dwr/browser/engine/hooks=0A= */=0A= dwr.engine.setPreHook =3D function(handler) {=0A= dwr.engine._preHook =3D handler;=0A= };=0A= =0A= /**=0A= * The Post-Hook is called after any DWR remoting is done.=0A= * @see getahead.org/dwr/browser/engine/hooks=0A= */=0A= dwr.engine.setPostHook =3D function(handler) {=0A= dwr.engine._postHook =3D handler;=0A= };=0A= =0A= /**=0A= * Custom headers for all DWR calls=0A= * @see getahead.org/dwr/????=0A= */=0A= dwr.engine.setHeaders =3D function(headers) {=0A= dwr.engine._headers =3D headers;=0A= };=0A= =0A= /**=0A= * Custom parameters for all DWR calls=0A= * @see getahead.org/dwr/????=0A= */=0A= dwr.engine.setParameters =3D function(parameters) {=0A= dwr.engine._parameters =3D parameters;=0A= };=0A= =0A= /** XHR remoting type constant. See dwr.engine.set[Rpc|Poll]Type() */=0A= dwr.engine.XMLHttpRequest =3D 1;=0A= =0A= /** XHR remoting type constant. See dwr.engine.set[Rpc|Poll]Type() */=0A= dwr.engine.IFrame =3D 2;=0A= =0A= /** XHR remoting type constant. See dwr.engine.setRpcType() */=0A= dwr.engine.ScriptTag =3D 3;=0A= =0A= /**=0A= * Set the preferred remoting type.=0A= * @param newType One of dwr.engine.XMLHttpRequest or dwr.engine.IFrame = or dwr.engine.ScriptTag=0A= * @see getahead.org/dwr/browser/engine/options=0A= */=0A= dwr.engine.setRpcType =3D function(newType) {=0A= if (newType !=3D dwr.engine.XMLHttpRequest && newType !=3D = dwr.engine.IFrame && newType !=3D dwr.engine.ScriptTag) {=0A= dwr.engine._handleError(null, { name:"dwr.engine.invalidRpcType", = message:"RpcType must be one of dwr.engine.XMLHttpRequest or = dwr.engine.IFrame or dwr.engine.ScriptTag" });=0A= return;=0A= }=0A= dwr.engine._rpcType =3D newType;=0A= };=0A= =0A= /**=0A= * Which HTTP method do we use to send results? Must be one of "GET" or = "POST".=0A= * @see getahead.org/dwr/browser/engine/options=0A= */=0A= dwr.engine.setHttpMethod =3D function(httpMethod) {=0A= if (httpMethod !=3D "GET" && httpMethod !=3D "POST") {=0A= dwr.engine._handleError(null, { name:"dwr.engine.invalidHttpMethod", = message:"Remoting method must be one of GET or POST" });=0A= return;=0A= }=0A= dwr.engine._httpMethod =3D httpMethod;=0A= };=0A= =0A= /**=0A= * Ensure that remote calls happen in the order in which they were sent? = (Default: false)=0A= * @see getahead.org/dwr/browser/engine/ordering=0A= */=0A= dwr.engine.setOrdered =3D function(ordered) {=0A= dwr.engine._ordered =3D ordered;=0A= };=0A= =0A= /**=0A= * Do we ask the XHR object to be asynchronous? (Default: true)=0A= * @see getahead.org/dwr/browser/engine/options=0A= */=0A= dwr.engine.setAsync =3D function(async) {=0A= dwr.engine._async =3D async;=0A= };=0A= =0A= /**=0A= * Does DWR poll the server for updates? (Default: false)=0A= * @see getahead.org/dwr/browser/engine/options=0A= */=0A= dwr.engine.setActiveReverseAjax =3D function(activeReverseAjax) {=0A= if (activeReverseAjax) {=0A= // Bail if we are already started=0A= if (dwr.engine._activeReverseAjax) return;=0A= dwr.engine._activeReverseAjax =3D true;=0A= dwr.engine._poll();=0A= }=0A= else {=0A= // Can we cancel an existing request?=0A= if (dwr.engine._activeReverseAjax && dwr.engine._pollReq) = dwr.engine._pollReq.abort();=0A= dwr.engine._activeReverseAjax =3D false;=0A= }=0A= // TODO: in iframe mode, if we start, stop, start then the second = start may=0A= // well kick off a second iframe while the first is still about to = return=0A= // we should cope with this but we don't=0A= };=0A= =0A= /**=0A= * The default message handler.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.defaultErrorHandler =3D function(message, ex) {=0A= dwr.engine._debug("Error: " + ex.name + ", " + ex.message, true);=0A= if (message =3D=3D null || message =3D=3D "") alert("A server error = has occured.");=0A= // Ignore NS_ERROR_NOT_AVAILABLE if Mozilla is being narky=0A= else if (message.indexOf("0x80040111") !=3D -1) = dwr.engine._debug(message);=0A= else alert(message);=0A= };=0A= =0A= /**=0A= * The default warning handler.=0A= * @see getahead.org/dwr/browser/engine/errors=0A= */=0A= dwr.engine.defaultWarningHandler =3D function(message, ex) {=0A= dwr.engine._debug(message);=0A= };=0A= =0A= /**=0A= * For reduced latency you can group several remote calls together using = a batch.=0A= * @see getahead.org/dwr/browser/engine/batch=0A= */=0A= dwr.engine.beginBatch =3D function() {=0A= if (dwr.engine._batch) {=0A= dwr.engine._handleError(null, { name:"dwr.engine.batchBegun", = message:"Batch already begun" });=0A= return;=0A= }=0A= dwr.engine._batch =3D dwr.engine._createBatch();=0A= };=0A= =0A= /**=0A= * Finished grouping a set of remote calls together. Go and execute them = all.=0A= * @see getahead.org/dwr/browser/engine/batch=0A= */=0A= dwr.engine.endBatch =3D function(options) {=0A= var batch =3D dwr.engine._batch;=0A= if (batch =3D=3D null) {=0A= dwr.engine._handleError(null, { name:"dwr.engine.batchNotBegun", = message:"No batch in progress" });=0A= return;=0A= }=0A= dwr.engine._batch =3D null;=0A= if (batch.map.callCount =3D=3D 0) return;=0A= =0A= // The hooks need to be merged carefully to preserve ordering=0A= if (options) dwr.engine._mergeBatch(batch, options);=0A= =0A= // In ordered mode, we don't send unless the list of sent items is = empty=0A= if (dwr.engine._ordered && dwr.engine._batchesLength !=3D 0) {=0A= dwr.engine._batchQueue[dwr.engine._batchQueue.length] =3D batch;=0A= }=0A= else {=0A= dwr.engine._sendData(batch);=0A= }=0A= };=0A= =0A= /** @deprecated */=0A= dwr.engine.setPollMethod =3D function(type) { = dwr.engine.setPollType(type); };=0A= dwr.engine.setMethod =3D function(type) { dwr.engine.setRpcType(type); };=0A= dwr.engine.setVerb =3D function(verb) { dwr.engine.setHttpMethod(verb); = };=0A= dwr.engine.setPollType =3D function() { dwr.engine._debug("Manually = setting the Poll Type is not supported"); };=0A= =0A= //=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=0A= // Only private stuff below here=0A= //=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=0A= =0A= /** The original page id sent from the server */=0A= dwr.engine._origScriptSessionId =3D "52ED1884EB05ACCBB0BBC38622D63D42";=0A= =0A= /** The session cookie name */=0A= dwr.engine._sessionCookieName =3D "JSESSIONID"; // JSESSIONID=0A= =0A= /** Is GET enabled for the benefit of Safari? */=0A= dwr.engine._allowGetForSafariButMakeForgeryEasier =3D "false";=0A= =0A= /** The script prefix to strip in the case of scriptTagProtection. */=0A= dwr.engine._scriptTagProtection =3D "throw 'allowScriptTagRemoting is = false.';";=0A= =0A= /** The default path to the DWR servlet */=0A= dwr.engine._defaultPath =3D "/webapps/blackboard/dwr_open";=0A= =0A= /** Do we use XHR for reverse ajax because we are not streaming? */=0A= dwr.engine._pollWithXhr =3D "false";=0A= =0A= /** The read page id that we calculate */=0A= dwr.engine._scriptSessionId =3D null;=0A= =0A= /** The function that we use to fetch/calculate a session id */=0A= dwr.engine._getScriptSessionId =3D function() {=0A= if (dwr.engine._scriptSessionId =3D=3D null) {=0A= dwr.engine._scriptSessionId =3D dwr.engine._origScriptSessionId + = Math.floor(Math.random() * 1000);=0A= }=0A= return dwr.engine._scriptSessionId;=0A= };=0A= =0A= /** A function to call if something fails. */=0A= dwr.engine._errorHandler =3D dwr.engine.defaultErrorHandler;=0A= =0A= /** For debugging when something unexplained happens. */=0A= dwr.engine._warningHandler =3D dwr.engine.defaultWarningHandler;=0A= =0A= /** A function to be called before requests are marshalled. Can be null. = */=0A= dwr.engine._preHook =3D null;=0A= =0A= /** A function to be called after replies are received. Can be null. */=0A= dwr.engine._postHook =3D null;=0A= =0A= /** An map of the batches that we have sent and are awaiting a reply on. = */=0A= dwr.engine._batches =3D {};=0A= =0A= /** A count of the number of outstanding batches. Should be =3D=3D to = _batches.length unless prototype has messed things up */=0A= dwr.engine._batchesLength =3D 0;=0A= =0A= /** In ordered mode, the array of batches waiting to be sent */=0A= dwr.engine._batchQueue =3D [];=0A= =0A= /** What is the default rpc type */=0A= dwr.engine._rpcType =3D dwr.engine.XMLHttpRequest;=0A= =0A= /** What is the default remoting method (ie GET or POST) */=0A= dwr.engine._httpMethod =3D "POST";=0A= =0A= /** Do we attempt to ensure that calls happen in the order in which they = were sent? */=0A= dwr.engine._ordered =3D false;=0A= =0A= /** Do we make the calls async? */=0A= dwr.engine._async =3D true;=0A= =0A= /** The current batch (if we are in batch mode) */=0A= dwr.engine._batch =3D null;=0A= =0A= /** The global timeout */=0A= dwr.engine._timeout =3D 0;=0A= =0A= /** ActiveX objects to use when we want to convert an xml string into a = DOM object. */=0A= dwr.engine._DOMDocument =3D ["Msxml2.DOMDocument.6.0", = "Msxml2.DOMDocument.5.0", "Msxml2.DOMDocument.4.0", = "Msxml2.DOMDocument.3.0", "MSXML2.DOMDocument", "MSXML.DOMDocument", = "Microsoft.XMLDOM"];=0A= =0A= /** The ActiveX objects to use when we want to do an XMLHttpRequest = call. */=0A= dwr.engine._XMLHTTP =3D ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0", = "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", = "Microsoft.XMLHTTP"];=0A= =0A= /** Are we doing comet or polling? */=0A= dwr.engine._activeReverseAjax =3D false;=0A= =0A= /** The iframe that we are using to poll */=0A= dwr.engine._outstandingIFrames =3D [];=0A= =0A= /** The xhr object that we are using to poll */=0A= dwr.engine._pollReq =3D null;=0A= =0A= /** How many milliseconds between internal comet polls */=0A= dwr.engine._pollCometInterval =3D 200;=0A= =0A= /** How many times have we re-tried to poll? */=0A= dwr.engine._pollRetries =3D 0;=0A= dwr.engine._maxPollRetries =3D 0;=0A= =0A= /** Do we do a document.reload if we get a text/html reply? */=0A= dwr.engine._textHtmlHandler =3D null;=0A= =0A= /** If you wish to send custom headers with every request */=0A= dwr.engine._headers =3D null;=0A= =0A= /** If you wish to send extra custom request parameters with each = request */=0A= dwr.engine._parameters =3D null;=0A= =0A= /** Undocumented interceptors - do not use */=0A= dwr.engine._postSeperator =3D "\n";=0A= dwr.engine._defaultInterceptor =3D function(data) { return data; };=0A= dwr.engine._urlRewriteHandler =3D dwr.engine._defaultInterceptor;=0A= dwr.engine._contentRewriteHandler =3D dwr.engine._defaultInterceptor;=0A= dwr.engine._replyRewriteHandler =3D dwr.engine._defaultInterceptor;=0A= =0A= /** Batch ids allow us to know which batch the server is answering */=0A= dwr.engine._nextBatchId =3D 0;=0A= =0A= /** A list of the properties that need merging from calls to a batch */=0A= dwr.engine._propnames =3D [ "rpcType", "httpMethod", "async", "timeout", = "errorHandler", "warningHandler", "textHtmlHandler" ];=0A= =0A= /** Do we stream, or can be hacked to do so? */=0A= dwr.engine._partialResponseNo =3D 0;=0A= dwr.engine._partialResponseYes =3D 1;=0A= dwr.engine._partialResponseFlush =3D 2;=0A= =0A= /** Is this page in the process of unloading? */=0A= dwr.engine._unloading =3D false;=0A= =0A= /**=0A= * @private Send a request. Called by the Javascript interface stub=0A= * @param path part of URL after the host and before the exec bit = without leading or trailing /s=0A= * @param scriptName The class to execute=0A= * @param methodName The method on said class to execute=0A= * @param func The callback function to which any returned data should = be passed=0A= * if this is null, any returned data will be ignored=0A= * @param vararg_params The parameters to pass to the above class=0A= */=0A= dwr.engine._execute =3D function(path, scriptName, methodName, = vararg_params) {=0A= var singleShot =3D false;=0A= if (dwr.engine._batch =3D=3D null) {=0A= dwr.engine.beginBatch();=0A= singleShot =3D true;=0A= }=0A= var batch =3D dwr.engine._batch;=0A= // To make them easy to manipulate we copy the arguments into an args = array=0A= var args =3D [];=0A= for (var i =3D 0; i < arguments.length - 3; i++) {=0A= args[i] =3D arguments[i + 3];=0A= }=0A= // All the paths MUST be to the same servlet=0A= if (batch.path =3D=3D null) {=0A= batch.path =3D path;=0A= }=0A= else {=0A= if (batch.path !=3D path) {=0A= dwr.engine._handleError(batch, { = name:"dwr.engine.multipleServlets", message:"Can't batch requests to = multiple DWR Servlets." });=0A= return;=0A= }=0A= }=0A= // From the other params, work out which is the function (or object = with=0A= // call meta-data) and which is the call parameters=0A= var callData;=0A= var lastArg =3D args[args.length - 1];=0A= if (typeof lastArg =3D=3D "function" || lastArg =3D=3D null) callData = =3D { callback:args.pop() };=0A= else callData =3D args.pop();=0A= =0A= // Merge from the callData into the batch=0A= dwr.engine._mergeBatch(batch, callData);=0A= batch.handlers[batch.map.callCount] =3D {=0A= exceptionHandler:callData.exceptionHandler,=0A= callback:callData.callback=0A= };=0A= =0A= // Copy to the map the things that need serializing=0A= var prefix =3D "c" + batch.map.callCount + "-";=0A= batch.map[prefix + "scriptName"] =3D scriptName;=0A= batch.map[prefix + "methodName"] =3D methodName;=0A= batch.map[prefix + "id"] =3D batch.map.callCount;=0A= for (i =3D 0; i < args.length; i++) {=0A= dwr.engine._serializeAll(batch, [], args[i], prefix + "param" + i);=0A= }=0A= =0A= // Now we have finished remembering the call, we incr the call count=0A= batch.map.callCount++;=0A= if (singleShot) dwr.engine.endBatch();=0A= };=0A= =0A= /** @private Poll the server to see if there is any data waiting */=0A= dwr.engine._poll =3D function() {=0A= if (!dwr.engine._activeReverseAjax) return;=0A= =0A= var batch =3D dwr.engine._createBatch();=0A= batch.map.id =3D 0; // TODO: Do we need this??=0A= batch.map.callCount =3D 1;=0A= batch.isPoll =3D true;=0A= if (dwr.engine._pollWithXhr =3D=3D "true") {=0A= batch.rpcType =3D dwr.engine.XMLHttpRequest;=0A= batch.map.partialResponse =3D dwr.engine._partialResponseNo;=0A= }=0A= else {=0A= if (navigator.userAgent.indexOf("Gecko/") !=3D -1) {=0A= batch.rpcType =3D dwr.engine.XMLHttpRequest;=0A= batch.map.partialResponse =3D dwr.engine._partialResponseYes;=0A= }=0A= else {=0A= batch.rpcType =3D dwr.engine.XMLHttpRequest;=0A= batch.map.partialResponse =3D dwr.engine._partialResponseNo;=0A= }=0A= }=0A= batch.httpMethod =3D "POST";=0A= batch.async =3D true;=0A= batch.timeout =3D 0;=0A= batch.path =3D dwr.engine._defaultPath;=0A= batch.preHooks =3D [];=0A= batch.postHooks =3D [];=0A= batch.errorHandler =3D dwr.engine._pollErrorHandler;=0A= batch.warningHandler =3D dwr.engine._pollErrorHandler;=0A= batch.handlers[0] =3D {=0A= callback:function(pause) {=0A= dwr.engine._pollRetries =3D 0;=0A= setTimeout(dwr.engine._poll, pause);=0A= }=0A= };=0A= =0A= // Send the data=0A= dwr.engine._sendData(batch);=0A= if (batch.rpcType =3D=3D dwr.engine.XMLHttpRequest && = batch.map.partialResponse =3D=3D dwr.engine._partialResponseYes) {=0A= dwr.engine._checkCometPoll();=0A= }=0A= };=0A= =0A= /** Try to recover from polling errors */=0A= dwr.engine._pollErrorHandler =3D function(msg, ex) {=0A= // if anything goes wrong then just silently try again (up to 3x) = after 10s=0A= dwr.engine._pollRetries++;=0A= dwr.engine._debug("Reverse Ajax poll failed (pollRetries=3D" + = dwr.engine._pollRetries + "): " + ex.name + " : " + ex.message);=0A= if (dwr.engine._pollRetries < dwr.engine._maxPollRetries) {=0A= setTimeout(dwr.engine._poll, 10000);=0A= }=0A= else {=0A= dwr.engine._activeReverseAjax =3D false;=0A= dwr.engine._debug("Giving up.");=0A= }=0A= };=0A= =0A= /** @private Generate a new standard batch */=0A= dwr.engine._createBatch =3D function() {=0A= var batch =3D {=0A= map:{=0A= callCount:0,=0A= page:window.location.pathname + window.location.search,=0A= httpSessionId:dwr.engine._getJSessionId(),=0A= scriptSessionId:dwr.engine._getScriptSessionId()=0A= },=0A= charsProcessed:0, paramCount:0,=0A= parameters:{}, headers:{},=0A= isPoll:false, handlers:{}, preHooks:[], postHooks:[],=0A= rpcType:dwr.engine._rpcType,=0A= httpMethod:dwr.engine._httpMethod,=0A= async:dwr.engine._async,=0A= timeout:dwr.engine._timeout,=0A= errorHandler:dwr.engine._errorHandler,=0A= warningHandler:dwr.engine._warningHandler,=0A= textHtmlHandler:dwr.engine._textHtmlHandler=0A= };=0A= if (dwr.engine._preHook) batch.preHooks.push(dwr.engine._preHook);=0A= if (dwr.engine._postHook) batch.postHooks.push(dwr.engine._postHook);=0A= var propname, data;=0A= if (dwr.engine._headers) {=0A= for (propname in dwr.engine._headers) {=0A= data =3D dwr.engine._headers[propname];=0A= if (typeof data !=3D "function") batch.headers[propname] =3D data;=0A= }=0A= }=0A= if (dwr.engine._parameters) {=0A= for (propname in dwr.engine._parameters) {=0A= data =3D dwr.engine._parameters[propname];=0A= if (typeof data !=3D "function") batch.parameters[propname] =3D = data;=0A= }=0A= }=0A= return batch;=0A= };=0A= =0A= /** @private Take further options and merge them into */=0A= dwr.engine._mergeBatch =3D function(batch, overrides) {=0A= var propname, data;=0A= for (var i =3D 0; i < dwr.engine._propnames.length; i++) {=0A= propname =3D dwr.engine._propnames[i];=0A= if (overrides[propname] !=3D null) batch[propname] =3D = overrides[propname];=0A= }=0A= if (overrides.preHook !=3D null) = batch.preHooks.unshift(overrides.preHook);=0A= if (overrides.postHook !=3D null) = batch.postHooks.push(overrides.postHook);=0A= if (overrides.headers) {=0A= for (propname in overrides.headers) {=0A= data =3D overrides.headers[propname];=0A= if (typeof data !=3D "function") batch.headers[propname] =3D data;=0A= }=0A= }=0A= if (overrides.parameters) {=0A= for (propname in overrides.parameters) {=0A= data =3D overrides.parameters[propname];=0A= if (typeof data !=3D "function") batch.map["p-" + propname] =3D "" = + data;=0A= }=0A= }=0A= };=0A= =0A= /** @private What is our session id? */=0A= dwr.engine._getJSessionId =3D function() {=0A= var cookies =3D document.cookie.split(';');=0A= for (var i =3D 0; i < cookies.length; i++) {=0A= var cookie =3D cookies[i];=0A= while (cookie.charAt(0) =3D=3D ' ') cookie =3D cookie.substring(1, = cookie.length);=0A= if (cookie.indexOf(dwr.engine._sessionCookieName + "=3D") =3D=3D 0) {=0A= return cookie.substring(dwr.engine._sessionCookieName.length + 1, = cookie.length);=0A= }=0A= }=0A= return "";=0A= };=0A= =0A= /** @private Check for reverse Ajax activity */=0A= dwr.engine._checkCometPoll =3D function() {=0A= for (var i =3D 0; i < dwr.engine._outstandingIFrames.length; i++) {=0A= var text =3D "";=0A= var iframe =3D dwr.engine._outstandingIFrames[i];=0A= try {=0A= text =3D dwr.engine._getTextFromCometIFrame(iframe);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(iframe.batch, ex);=0A= }=0A= if (text !=3D "") dwr.engine._processCometResponse(text, = iframe.batch);=0A= }=0A= if (dwr.engine._pollReq) {=0A= var req =3D dwr.engine._pollReq;=0A= var text =3D req.responseText;=0A= if (text !=3D null) dwr.engine._processCometResponse(text, = req.batch);=0A= }=0A= =0A= // If the poll resources are still there, come back again=0A= if (dwr.engine._outstandingIFrames.length > 0 || dwr.engine._pollReq) {=0A= setTimeout(dwr.engine._checkCometPoll, = dwr.engine._pollCometInterval);=0A= }=0A= };=0A= =0A= /** @private Extract the whole (executed an all) text from the current = iframe */=0A= dwr.engine._getTextFromCometIFrame =3D function(frameEle) {=0A= var body =3D frameEle.contentWindow.document.body;=0A= if (body =3D=3D null) return "";=0A= var text =3D body.innerHTML;=0A= // We need to prevent IE from stripping line feeds=0A= if (text.indexOf("") =3D=3D 0 || text.indexOf("") =3D=3D 0) {=0A= text =3D text.substring(5, text.length - 7);=0A= }=0A= return text;=0A= };=0A= =0A= /** @private Some more text might have come in, test and execute the new = stuff */=0A= dwr.engine._processCometResponse =3D function(response, batch) {=0A= if (batch.charsProcessed =3D=3D response.length) return;=0A= if (response.length =3D=3D 0) {=0A= batch.charsProcessed =3D 0;=0A= return;=0A= }=0A= =0A= var firstStartTag =3D response.indexOf("//#DWR-START#", = batch.charsProcessed);=0A= if (firstStartTag =3D=3D -1) {=0A= // dwr.engine._debug("No start tag (search from " + = batch.charsProcessed + "). skipping '" + = response.substring(batch.charsProcessed) + "'");=0A= batch.charsProcessed =3D response.length;=0A= return;=0A= }=0A= // if (firstStartTag > 0) {=0A= // dwr.engine._debug("Start tag not at start (search from " + = batch.charsProcessed + "). skipping '" + = response.substring(batch.charsProcessed, firstStartTag) + "'");=0A= // }=0A= =0A= var lastEndTag =3D response.lastIndexOf("//#DWR-END#");=0A= if (lastEndTag =3D=3D -1) {=0A= // dwr.engine._debug("No end tag. unchanged charsProcessed=3D" + = batch.charsProcessed);=0A= return;=0A= }=0A= =0A= // Skip the end tag too for next time, remembering CR and LF=0A= if (response.charCodeAt(lastEndTag + 11) =3D=3D 13 && = response.charCodeAt(lastEndTag + 12) =3D=3D 10) {=0A= batch.charsProcessed =3D lastEndTag + 13;=0A= }=0A= else {=0A= batch.charsProcessed =3D lastEndTag + 11;=0A= }=0A= =0A= var exec =3D response.substring(firstStartTag + 13, lastEndTag);=0A= =0A= dwr.engine._receivedBatch =3D batch;=0A= dwr.engine._eval(exec);=0A= dwr.engine._receivedBatch =3D null;=0A= };=0A= =0A= /** @private Actually send the block of data in the batch object. */=0A= dwr.engine._sendData =3D function(batch) {=0A= batch.map.batchId =3D dwr.engine._nextBatchId;=0A= dwr.engine._nextBatchId++;=0A= dwr.engine._batches[batch.map.batchId] =3D batch;=0A= dwr.engine._batchesLength++;=0A= batch.completed =3D false;=0A= =0A= for (var i =3D 0; i < batch.preHooks.length; i++) {=0A= batch.preHooks[i]();=0A= }=0A= batch.preHooks =3D null;=0A= // Set a timeout=0A= if (batch.timeout && batch.timeout !=3D 0) {=0A= batch.timeoutId =3D setTimeout(function() { = dwr.engine._abortRequest(batch); }, batch.timeout);=0A= }=0A= // Get setup for XMLHttpRequest if possible=0A= if (batch.rpcType =3D=3D dwr.engine.XMLHttpRequest) {=0A= if (window.XMLHttpRequest) {=0A= batch.req =3D new XMLHttpRequest();=0A= }=0A= // IE5 for the mac claims to support window.ActiveXObject, but = throws an error when it's used=0A= else if (window.ActiveXObject && = !(navigator.userAgent.indexOf("Mac") >=3D 0 && = navigator.userAgent.indexOf("MSIE") >=3D 0)) {=0A= batch.req =3D dwr.engine._newActiveXObject(dwr.engine._XMLHTTP);=0A= }=0A= }=0A= =0A= var prop, request;=0A= if (batch.req) {=0A= // Proceed using XMLHttpRequest=0A= if (batch.async) {=0A= batch.req.onreadystatechange =3D function() {=0A= if (typeof dwr !=3D 'undefined') dwr.engine._stateChange(batch);=0A= };=0A= }=0A= // If we're polling, record this for monitoring=0A= if (batch.isPoll) {=0A= dwr.engine._pollReq =3D batch.req;=0A= // In IE XHR is an ActiveX control so you can't augment it like = this=0A= if (!(document.all && !window.opera)) batch.req.batch =3D batch;=0A= }=0A= // Workaround for Safari 1.x POST bug=0A= var indexSafari =3D navigator.userAgent.indexOf("Safari/");=0A= if (indexSafari >=3D 0) {=0A= var version =3D navigator.userAgent.substring(indexSafari + 7);=0A= if (parseInt(version, 10) < 400) {=0A= if (dwr.engine._allowGetForSafariButMakeForgeryEasier =3D=3D = "true") batch.httpMethod =3D "GET";=0A= else dwr.engine._handleWarning(batch, { = name:"dwr.engine.oldSafari", message:"Safari GET support disabled. See = getahead.org/dwr/server/servlet and = allowGetForSafariButMakeForgeryEasier." });=0A= }=0A= }=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModePlainPoll : = dwr.engine._ModePlainCall;=0A= request =3D dwr.engine._constructRequest(batch);=0A= try {=0A= batch.req.open(batch.httpMethod, request.url, batch.async);=0A= try {=0A= for (prop in batch.headers) {=0A= var value =3D batch.headers[prop];=0A= if (typeof value =3D=3D "string") = batch.req.setRequestHeader(prop, value);=0A= }=0A= if (!batch.headers["Content-Type"]) = batch.req.setRequestHeader("Content-Type", "text/plain");=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= }=0A= batch.req.send(request.body);=0A= if (!batch.async) dwr.engine._stateChange(batch);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleError(batch, ex);=0A= }=0A= }=0A= else if (batch.rpcType !=3D dwr.engine.ScriptTag) {=0A= var idname =3D batch.isPoll ? "dwr-if-poll-" + batch.map.batchId : = "dwr-if-" + batch.map.batchId;=0A= // Removed htmlfile implementation. Don't expect it to return before = v3=0A= batch.div =3D document.createElement("div");=0A= // Add the div to the document first, otherwise IE 6 will ignore = onload handler.=0A= document.body.appendChild(batch.div);=0A= batch.div.innerHTML =3D "";=0A= batch.document =3D document;=0A= batch.iframe =3D batch.document.getElementById(idname);=0A= batch.iframe.batch =3D batch;=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModeHtmlPoll : = dwr.engine._ModeHtmlCall;=0A= if (batch.isPoll) dwr.engine._outstandingIFrames.push(batch.iframe);=0A= request =3D dwr.engine._constructRequest(batch);=0A= if (batch.httpMethod =3D=3D "GET") {=0A= batch.iframe.setAttribute("src", request.url);=0A= }=0A= else {=0A= batch.form =3D batch.document.createElement("form");=0A= batch.form.setAttribute("id", "dwr-form");=0A= batch.form.setAttribute("action", request.url);=0A= batch.form.setAttribute("style", "display:none;");=0A= batch.form.setAttribute("target", idname);=0A= batch.form.target =3D idname;=0A= batch.form.setAttribute("method", batch.httpMethod);=0A= for (prop in batch.map) {=0A= var value =3D batch.map[prop];=0A= if (typeof value !=3D "function") {=0A= var formInput =3D batch.document.createElement("input");=0A= formInput.setAttribute("type", "hidden");=0A= formInput.setAttribute("name", prop);=0A= formInput.setAttribute("value", value);=0A= batch.form.appendChild(formInput);=0A= }=0A= }=0A= batch.document.body.appendChild(batch.form);=0A= batch.form.submit();=0A= }=0A= }=0A= else {=0A= batch.httpMethod =3D "GET"; // There's no such thing as ScriptTag = using POST=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModePlainPoll : = dwr.engine._ModePlainCall;=0A= request =3D dwr.engine._constructRequest(batch);=0A= batch.script =3D document.createElement("script");=0A= batch.script.id =3D "dwr-st-" + batch.map["c0-id"];=0A= batch.script.src =3D request.url;=0A= document.body.appendChild(batch.script);=0A= }=0A= };=0A= =0A= dwr.engine._ModePlainCall =3D "/call/plaincall/";=0A= dwr.engine._ModeHtmlCall =3D "/call/htmlcall/";=0A= dwr.engine._ModePlainPoll =3D "/call/plainpoll/";=0A= dwr.engine._ModeHtmlPoll =3D "/call/htmlpoll/";=0A= =0A= /** @private Work out what the URL should look like */=0A= dwr.engine._constructRequest =3D function(batch) {=0A= // A quick string to help people that use web log analysers=0A= var request =3D { url:batch.path + batch.mode, body:null };=0A= if (batch.isPoll =3D=3D true) {=0A= request.url +=3D "ReverseAjax.dwr";=0A= }=0A= else if (batch.map.callCount =3D=3D 1) {=0A= request.url +=3D batch.map["c0-scriptName"] + "." + = batch.map["c0-methodName"] + ".dwr";=0A= }=0A= else {=0A= request.url +=3D "Multiple." + batch.map.callCount + ".dwr";=0A= }=0A= // Play nice with url re-writing=0A= var sessionMatch =3D location.href.match(/jsessionid=3D([^?]+)/);=0A= if (sessionMatch !=3D null) {=0A= request.url +=3D ";jsessionid=3D" + sessionMatch[1];=0A= }=0A= =0A= var prop;=0A= if (batch.httpMethod =3D=3D "GET") {=0A= // Some browsers (Opera/Safari2) seem to fail to convert the = callCount value=0A= // to a string in the loop below so we do it manually here.=0A= batch.map.callCount =3D "" + batch.map.callCount;=0A= request.url +=3D "?";=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= request.url +=3D encodeURIComponent(prop) + "=3D" + = encodeURIComponent(batch.map[prop]) + "&";=0A= }=0A= }=0A= request.url =3D request.url.substring(0, request.url.length - 1);=0A= }=0A= else {=0A= // PERFORMANCE: for iframe mode this is thrown away.=0A= request.body =3D "";=0A= if (document.all && !window.opera) {=0A= // Use array joining on IE (fastest)=0A= var buf =3D [];=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= buf.push(prop + "=3D" + batch.map[prop] + = dwr.engine._postSeperator);=0A= }=0A= }=0A= request.body =3D buf.join("");=0A= }=0A= else {=0A= // Use string concat on other browsers (fastest)=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= request.body +=3D prop + "=3D" + batch.map[prop] + = dwr.engine._postSeperator;=0A= }=0A= }=0A= }=0A= request.body =3D dwr.engine._contentRewriteHandler(request.body);=0A= }=0A= request.url =3D dwr.engine._urlRewriteHandler(request.url);=0A= return request;=0A= };=0A= =0A= /** @private Called by XMLHttpRequest to indicate that something has = happened */=0A= dwr.engine._stateChange =3D function(batch) {=0A= var toEval;=0A= =0A= if (batch.completed) {=0A= dwr.engine._debug("Error: _stateChange() with batch.completed");=0A= return;=0A= }=0A= =0A= var req =3D batch.req;=0A= try {=0A= if (req.readyState !=3D 4) return;=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= // It's broken - clear up and forget this call=0A= dwr.engine._clearUp(batch);=0A= return;=0A= }=0A= =0A= if (dwr.engine._unloading) {=0A= dwr.engine._debug("Ignoring reply from server as page is = unloading.");=0A= return;=0A= }=0A= =0A= try {=0A= var reply =3D req.responseText;=0A= reply =3D dwr.engine._replyRewriteHandler(reply);=0A= var status =3D req.status; // causes Mozilla to except on page moves=0A= =0A= if (reply =3D=3D null || reply =3D=3D "") {=0A= dwr.engine._handleWarning(batch, { name:"dwr.engine.missingData", = message:"No data received from server" });=0A= }=0A= else if (status !=3D 200) {=0A= dwr.engine._handleError(batch, { name:"dwr.engine.http." + status, = message:req.statusText });=0A= }=0A= else {=0A= var contentType =3D req.getResponseHeader("Content-Type");=0A= if (!contentType.match(/^text\/plain/) && = !contentType.match(/^text\/javascript/)) {=0A= if (contentType.match(/^text\/html/) && typeof = batch.textHtmlHandler =3D=3D "function") {=0A= batch.textHtmlHandler({ status:status, responseText:reply, = contentType:contentType });=0A= }=0A= else {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.invalidMimeType", message:"Invalid content type: '" + = contentType + "'" });=0A= }=0A= }=0A= else {=0A= // Comet replies might have already partially executed=0A= if (batch.isPoll && batch.map.partialResponse =3D=3D = dwr.engine._partialResponseYes) {=0A= dwr.engine._processCometResponse(reply, batch);=0A= }=0A= else {=0A= if (reply.search("//#DWR") =3D=3D -1) {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.invalidReply", message:"Invalid reply from server" });=0A= }=0A= else {=0A= toEval =3D reply;=0A= }=0A= }=0A= }=0A= }=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= }=0A= =0A= dwr.engine._callPostHooks(batch);=0A= =0A= // Outside of the try/catch so errors propogate normally:=0A= dwr.engine._receivedBatch =3D batch;=0A= if (toEval !=3D null) toEval =3D = toEval.replace(dwr.engine._scriptTagProtection, "");=0A= dwr.engine._eval(toEval);=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._validateBatch(batch);=0A= if (!batch.completed) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /**=0A= * @private This function is invoked when a batch reply is received.=0A= * It checks that there is a response for every call in the batch. = Otherwise,=0A= * an error will be signaled (a call without a response indicates that = the =0A= * server failed to send complete batch response). =0A= */=0A= dwr.engine._validateBatch =3D function(batch) {=0A= // If some call left unreplied, report an error.=0A= if (!batch.completed) {=0A= for (var i =3D 0; i < batch.map.callCount; i++) {=0A= if (batch.handlers[i] !=3D null) {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.incompleteReply", message:"Incomplete reply from = server" });=0A= break;=0A= }=0A= }=0A= }=0A= }=0A= =0A= /** @private Called from iframe onload, check batch using batch-id */=0A= dwr.engine._iframeLoadingComplete =3D function(batchId) {=0A= // dwr.engine._checkCometPoll();=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch) dwr.engine._validateBatch(batch);=0A= }=0A= =0A= /** @private Called by the server: Execute a callback */=0A= dwr.engine._remoteHandleCallback =3D function(batchId, callId, reply) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch =3D=3D null) {=0A= dwr.engine._debug("Warning: batch =3D=3D null in = remoteHandleCallback for batchId=3D" + batchId, true);=0A= return;=0A= }=0A= // Error handlers inside here indicate an error that is nothing to do=0A= // with DWR so we handle them differently.=0A= try {=0A= var handlers =3D batch.handlers[callId];=0A= batch.handlers[callId] =3D null;=0A= if (!handlers) {=0A= dwr.engine._debug("Warning: Missing handlers. callId=3D" + callId, = true);=0A= }=0A= else if (typeof handlers.callback =3D=3D "function") = handlers.callback(reply);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleError(batch, ex);=0A= }=0A= };=0A= =0A= /** @private Called by the server: Handle an exception for a call */=0A= dwr.engine._remoteHandleException =3D function(batchId, callId, ex) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch =3D=3D null) { dwr.engine._debug("Warning: null batch in = remoteHandleException", true); return; }=0A= var handlers =3D batch.handlers[callId];=0A= batch.handlers[callId] =3D null;=0A= if (handlers =3D=3D null) { dwr.engine._debug("Warning: null handlers = in remoteHandleException", true); return; }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= if (typeof handlers.exceptionHandler =3D=3D "function") = handlers.exceptionHandler(ex.message, ex);=0A= else if (typeof batch.errorHandler =3D=3D "function") = batch.errorHandler(ex.message, ex);=0A= };=0A= =0A= /** @private Called by the server: The whole batch is broken */=0A= dwr.engine._remoteHandleBatchException =3D function(ex, batchId) {=0A= var searchBatch =3D (dwr.engine._receivedBatch =3D=3D null && batchId = !=3D null);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D dwr.engine._batches[batchId];=0A= }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= dwr.engine._handleError(dwr.engine._receivedBatch, ex);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._clearUp(dwr.engine._batches[batchId]);=0A= }=0A= };=0A= =0A= /** @private Called by the server: Reverse ajax should not be used */=0A= dwr.engine._remotePollCometDisabled =3D function(ex, batchId) {=0A= dwr.engine.setActiveReverseAjax(false);=0A= var searchBatch =3D (dwr.engine._receivedBatch =3D=3D null && batchId = !=3D null);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D dwr.engine._batches[batchId];=0A= }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= dwr.engine._handleError(dwr.engine._receivedBatch, ex);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._clearUp(dwr.engine._batches[batchId]);=0A= }=0A= };=0A= =0A= /** @private Called by the server: An IFrame reply is about to start */=0A= dwr.engine._remoteBeginIFrameResponse =3D function(iframe, batchId) {=0A= if (iframe !=3D null) dwr.engine._receivedBatch =3D iframe.batch;=0A= dwr.engine._callPostHooks(dwr.engine._receivedBatch);=0A= };=0A= =0A= /** @private Called by the server: An IFrame reply is just completing */=0A= dwr.engine._remoteEndIFrameResponse =3D function(batchId) {=0A= dwr.engine._clearUp(dwr.engine._receivedBatch);=0A= dwr.engine._receivedBatch =3D null;=0A= };=0A= =0A= /** @private This is a hack to make the context be this window */=0A= dwr.engine._eval =3D function(script) {=0A= if (script =3D=3D null) return null;=0A= if (script =3D=3D "") { dwr.engine._debug("Warning: blank script", = true); return null; }=0A= // dwr.engine._debug("Exec: [" + script + "]", true);=0A= return eval(script);=0A= };=0A= =0A= /** @private Called as a result of a request timeout */=0A= dwr.engine._abortRequest =3D function(batch) {=0A= if (batch && !batch.completed) {=0A= dwr.engine._clearUp(batch);=0A= if (batch.req) batch.req.abort();=0A= dwr.engine._handleError(batch, { name:"dwr.engine.timeout", = message:"Timeout" });=0A= }=0A= };=0A= =0A= /** @private call all the post hooks for a batch */=0A= dwr.engine._callPostHooks =3D function(batch) {=0A= if (batch.postHooks) {=0A= for (var i =3D 0; i < batch.postHooks.length; i++) {=0A= batch.postHooks[i]();=0A= }=0A= batch.postHooks =3D null;=0A= }=0A= };=0A= =0A= /** @private A call has finished by whatever means and we need to shut = it all down. */=0A= dwr.engine._clearUp =3D function(batch) {=0A= if (!batch) { dwr.engine._debug("Warning: null batch in = dwr.engine._clearUp()", true); return; }=0A= if (batch.completed) { dwr.engine._debug("Warning: Double complete", = true); return; }=0A= =0A= // IFrame tidyup=0A= if (batch.div) batch.div.parentNode.removeChild(batch.div);=0A= if (batch.iframe) {=0A= // If this is a poll frame then stop comet polling=0A= for (var i =3D 0; i < dwr.engine._outstandingIFrames.length; i++) {=0A= if (dwr.engine._outstandingIFrames[i] =3D=3D batch.iframe) {=0A= dwr.engine._outstandingIFrames.splice(i, 1);=0A= }=0A= }=0A= batch.iframe.parentNode.removeChild(batch.iframe);=0A= }=0A= if (batch.form) batch.form.parentNode.removeChild(batch.form);=0A= =0A= // XHR tidyup: avoid IE handles increase=0A= if (batch.req) {=0A= // If this is a poll frame then stop comet polling=0A= if (batch.req =3D=3D dwr.engine._pollReq) dwr.engine._pollReq =3D = null;=0A= delete batch.req;=0A= }=0A= =0A= // Timeout tidyup=0A= if (batch.timeoutId) {=0A= clearTimeout(batch.timeoutId);=0A= delete batch.timeoutId;=0A= }=0A= =0A= if (batch.map && (batch.map.batchId || batch.map.batchId =3D=3D 0)) {=0A= delete dwr.engine._batches[batch.map.batchId];=0A= dwr.engine._batchesLength--;=0A= }=0A= =0A= batch.completed =3D true;=0A= =0A= // If there is anything on the queue waiting to go out, then send it.=0A= // We don't need to check for ordered mode, here because when ordered = mode=0A= // gets turned off, we still process *waiting* batches in an ordered = way.=0A= if (dwr.engine._batchQueue.length !=3D 0) {=0A= var sendbatch =3D dwr.engine._batchQueue.shift();=0A= dwr.engine._sendData(sendbatch);=0A= }=0A= };=0A= =0A= /** @private Abort any XHRs in progress at page unload (solves zombie = socket problems in IE). */=0A= dwr.engine._unloader =3D function() {=0A= dwr.engine._unloading =3D true;=0A= =0A= // Empty queue of waiting ordered requests=0A= dwr.engine._batchQueue.length =3D 0;=0A= =0A= // Abort any ongoing XHRs and clear their batches=0A= for (var batchId in dwr.engine._batches) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= // Only process objects that look like batches (avoid prototype = additions!)=0A= if (batch && batch.map) {=0A= if (batch.req) {=0A= batch.req.abort();=0A= }=0A= dwr.engine._clearUp(batch);=0A= }=0A= }=0A= };=0A= // Now register the unload handler=0A= if (window.addEventListener) window.addEventListener('unload', = dwr.engine._unloader, false);=0A= else if (window.attachEvent) window.attachEvent('onunload', = dwr.engine._unloader);=0A= =0A= /** @private Generic error handling routing to save having null checks = everywhere */=0A= dwr.engine._handleError =3D function(batch, ex) {=0A= if (typeof ex =3D=3D "string") ex =3D { name:"unknown", message:ex };=0A= if (ex.message =3D=3D null) ex.message =3D "";=0A= if (ex.name =3D=3D null) ex.name =3D "unknown";=0A= if (batch && typeof batch.errorHandler =3D=3D "function") = batch.errorHandler(ex.message, ex);=0A= else if (dwr.engine._errorHandler) = dwr.engine._errorHandler(ex.message, ex);=0A= if (batch) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /** @private Generic error handling routing to save having null checks = everywhere */=0A= dwr.engine._handleWarning =3D function(batch, ex) {=0A= if (typeof ex =3D=3D "string") ex =3D { name:"unknown", message:ex };=0A= if (ex.message =3D=3D null) ex.message =3D "";=0A= if (ex.name =3D=3D null) ex.name =3D "unknown";=0A= if (batch && typeof batch.warningHandler =3D=3D "function") = batch.warningHandler(ex.message, ex);=0A= else if (dwr.engine._warningHandler) = dwr.engine._warningHandler(ex.message, ex);=0A= if (batch) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /**=0A= * @private Marshall a data item=0A= * @param batch A map of variables to how they have been marshalled=0A= * @param referto An array of already marshalled variables to prevent = recurrsion=0A= * @param data The data to be marshalled=0A= * @param name The name of the data being marshalled=0A= */=0A= dwr.engine._serializeAll =3D function(batch, referto, data, name) {=0A= if (data =3D=3D null) {=0A= batch.map[name] =3D "null:null";=0A= return;=0A= }=0A= =0A= switch (typeof data) {=0A= case "boolean":=0A= batch.map[name] =3D "boolean:" + data;=0A= break;=0A= case "number":=0A= batch.map[name] =3D "number:" + data;=0A= break;=0A= case "string":=0A= batch.map[name] =3D "string:" + encodeURIComponent(data);=0A= break;=0A= case "object":=0A= if (data instanceof String) batch.map[name] =3D "String:" + = encodeURIComponent(data);=0A= else if (data instanceof Boolean) batch.map[name] =3D "Boolean:" + = data;=0A= else if (data instanceof Number) batch.map[name] =3D "Number:" + = data;=0A= else if (data instanceof Date) batch.map[name] =3D "Date:" + = data.getTime();=0A= else if (data && data.join) batch.map[name] =3D = dwr.engine._serializeArray(batch, referto, data, name);=0A= else batch.map[name] =3D dwr.engine._serializeObject(batch, referto, = data, name);=0A= break;=0A= case "function":=0A= // We just ignore functions.=0A= break;=0A= default:=0A= dwr.engine._handleWarning(null, { name:"dwr.engine.unexpectedType", = message:"Unexpected type: " + typeof data + ", attempting default = converter." });=0A= batch.map[name] =3D "default:" + data;=0A= break;=0A= }=0A= };=0A= =0A= /** @private Have we already converted this object? */=0A= dwr.engine._lookup =3D function(referto, data, name) {=0A= var lookup;=0A= // Can't use a map: getahead.org/ajax/javascript-gotchas=0A= for (var i =3D 0; i < referto.length; i++) {=0A= if (referto[i].data =3D=3D data) {=0A= lookup =3D referto[i];=0A= break;=0A= }=0A= }=0A= if (lookup) return "reference:" + lookup.name;=0A= referto.push({ data:data, name:name });=0A= return null;=0A= };=0A= =0A= /** @private Marshall an object */=0A= dwr.engine._serializeObject =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= // This check for an HTML is not complete, but is there a better way?=0A= // Maybe we should add: data.hasChildNodes typeof "function" =3D=3D = true=0A= if (data.nodeName && data.nodeType) {=0A= return dwr.engine._serializeXml(batch, referto, data, name);=0A= }=0A= =0A= // treat objects as an associative arrays=0A= var reply =3D "Object_" + dwr.engine._getObjectClassName(data) + ":{";=0A= var element;=0A= for (element in data) {=0A= if (typeof data[element] !=3D "function") {=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[element], childName);=0A= =0A= reply +=3D encodeURIComponent(element) + ":reference:" + childName = + ", ";=0A= }=0A= }=0A= =0A= if (reply.substring(reply.length - 2) =3D=3D ", ") {=0A= reply =3D reply.substring(0, reply.length - 2);=0A= }=0A= reply +=3D "}";=0A= =0A= return reply;=0A= };=0A= =0A= /** @private Returns the classname of supplied argument obj */=0A= dwr.engine._errorClasses =3D { "Error":Error, "EvalError":EvalError, = "RangeError":RangeError, "ReferenceError":ReferenceError, = "SyntaxError":SyntaxError, "TypeError":TypeError, "URIError":URIError };=0A= dwr.engine._getObjectClassName =3D function(obj) {=0A= // Try to find the classname by stringifying the object's constructor=0A= // and extract from "function ".=0A= if (obj && obj.constructor && obj.constructor.toString)=0A= {=0A= var str =3D obj.constructor.toString();=0A= var regexpmatch =3D str.match(/function\s+(\w+)/);=0A= if (regexpmatch && regexpmatch.length =3D=3D 2) {=0A= return regexpmatch[1];=0A= }=0A= }=0A= =0A= // Now manually test against the core Error classes, as these in some =0A= // browsers successfully match to the wrong class in the =0A= // Object.toString() test we will do later=0A= if (obj && obj.constructor) {=0A= for (var errorname in dwr.engine._errorClasses) {=0A= if (obj.constructor =3D=3D dwr.engine._errorClasses[errorname]) = return errorname;=0A= }=0A= }=0A= =0A= // Try to find the classname by calling Object.toString() on the object=0A= // and extracting from "[object ]"=0A= if (obj) {=0A= var str =3D Object.prototype.toString.call(obj);=0A= var regexpmatch =3D str.match(/\[object\s+(\w+)/);=0A= if (regexpmatch && regexpmatch.length=3D=3D2) {=0A= return regexpmatch[1];=0A= }=0A= }=0A= =0A= // Supplied argument was probably not an object, but what is better?=0A= return "Object";=0A= };=0A= =0A= /** @private Marshall an object */=0A= dwr.engine._serializeXml =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= var output;=0A= if (window.XMLSerializer) output =3D new = XMLSerializer().serializeToString(data);=0A= else if (data.toXml) output =3D data.toXml;=0A= else output =3D data.innerHTML;=0A= =0A= return "XML:" + encodeURIComponent(output);=0A= };=0A= =0A= /** @private Marshall an array */=0A= dwr.engine._serializeArray =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= if (document.all && !window.opera) {=0A= // Use array joining on IE (fastest)=0A= var buf =3D ["Array:["];=0A= for (var i =3D 0; i < data.length; i++) {=0A= if (i !=3D 0) buf.push(",");=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[i], childName);=0A= buf.push("reference:");=0A= buf.push(childName);=0A= }=0A= buf.push("]");=0A= reply =3D buf.join("");=0A= }=0A= else {=0A= // Use string concat on other browsers (fastest)=0A= var reply =3D "Array:[";=0A= for (var i =3D 0; i < data.length; i++) {=0A= if (i !=3D 0) reply +=3D ",";=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[i], childName);=0A= reply +=3D "reference:";=0A= reply +=3D childName;=0A= }=0A= reply +=3D "]";=0A= }=0A= =0A= return reply;=0A= };=0A= =0A= /** @private Convert an XML string into a DOM object. */=0A= dwr.engine._unserializeDocument =3D function(xml) {=0A= var dom;=0A= if (window.DOMParser) {=0A= var parser =3D new DOMParser();=0A= dom =3D parser.parseFromString(xml, "text/xml");=0A= if (!dom.documentElement || dom.documentElement.tagName =3D=3D = "parsererror") {=0A= var message =3D dom.documentElement.firstChild.data;=0A= message +=3D "\n" + = dom.documentElement.firstChild.nextSibling.firstChild.data;=0A= throw message;=0A= }=0A= return dom;=0A= }=0A= else if (window.ActiveXObject) {=0A= dom =3D dwr.engine._newActiveXObject(dwr.engine._DOMDocument);=0A= dom.loadXML(xml); // What happens on parse fail with IE?=0A= return dom;=0A= }=0A= else {=0A= var div =3D document.createElement("div");=0A= div.innerHTML =3D xml;=0A= return div;=0A= }=0A= };=0A= =0A= /** @param axarray An array of strings to attempt to create ActiveX = objects from */=0A= dwr.engine._newActiveXObject =3D function(axarray) {=0A= var returnValue; =0A= for (var i =3D 0; i < axarray.length; i++) {=0A= try {=0A= returnValue =3D new ActiveXObject(axarray[i]);=0A= break;=0A= }=0A= catch (ex) { /* ignore */ }=0A= }=0A= return returnValue;=0A= };=0A= =0A= /** @private Used internally when some message needs to get to the = programmer */=0A= dwr.engine._debug =3D function(message, stacktrace) {=0A= var written =3D false;=0A= try {=0A= if (window.console) {=0A= if (stacktrace && window.console.trace) window.console.trace();=0A= window.console.log(message);=0A= written =3D true;=0A= }=0A= else if (window.opera && window.opera.postError) {=0A= window.opera.postError(message);=0A= written =3D true;=0A= }=0A= }=0A= catch (ex) { /* ignore */ }=0A= =0A= if (!written) {=0A= var debug =3D document.getElementById("dwr-debug");=0A= if (debug) {=0A= var contents =3D message + "" + debug.innerHTML;=0A= if (contents.length > 2048) contents =3D contents.substring(0, = 2048);=0A= debug.innerHTML =3D contents;=0A= }=0A= }=0A= };=0A= ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/blackboard/content/contentWrapperItem.jsp?course_id=_702465_1&content_id=_2356318_1&displayName=Herodotus&navItem=content&attachment=true =EF=BB=BF Blackboard Learn Current Location Fall 2009 (HS) Wrld Civizatn to 1500 Sec 001 = Course Documents Course Documents Week 3 Herodotus = =20 ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/courses/1/HIS_1000_0909_001/content/_2356318_1/Herodotus.htm Herodotus Herodotus [Note: you might find it helpful to consult the = maps on=20 Mesopotamia and Egypt under Course = Documents as you=20 read Herodotus.] On Babylon and = Mesopotamia: [1.178] Assyria possesses a vast number of great = cities,=20 whereof the most renowned and strongest at this time was Babylon, whither, after the fall of Nineveh, the = seat of=20 government had been removed. The following is a description of the = place:- The=20 city stands on a broad plain, and is an exact square, a hundred and = twenty=20 furlongs in length each way, so that the entire circuit is four hundred = and=20 eighty furlongs. While such is its size, in magnificence there is no = other city=20 that approaches to it. It is surrounded, in the first place, by a broad = and deep=20 moat, full of water, behind which rises a wall fifty royal cubits in = width, and=20 two hundred in height. (The royal cubit is longer by three fingers' = breadth than=20 the common cubit.) [1.179] And here I may not omit to tell the use to = which the=20 mould dug out of the great moat was turned, nor the manner wherein the = wall was=20 wrought. As fast as they dug the moat the soil which they got from the = cutting=20 was made into bricks, and when a sufficient number were completed they = baked the=20 bricks in kilns. Then they set to building, and began with bricking the = borders=20 of the moat, after which they proceeded to construct the wall itself, = using=20 throughout for their cement hot bitumen, and interposing a layer of = wattled=20 reeds at every thirtieth course of the bricks. On the top, along the = edges of=20 the wall, they constructed buildings of a single chamber facing one = another,=20 leaving between them room for a four-horse chariot to turn. In the = circuit of=20 the wall are a hundred gates, all of brass, with brazen lintels and = side-posts.=20 The bitumen used in the work was brought to Babylon from the Is, a small = stream=20 which flows into the Euphrates at the point where the city of the same = name=20 stands, eight days' journey from Babylon. Lumps of bitumen are found in = great=20 abundance in this river. [1.180] The city is divided into two portions by = the river=20 which runs through the midst of it. This river is the Euphrates, a = broad, deep,=20 swift stream, which rises in Armenia, and empties itself = into the=20 Erythraean sea. The city wall is brought down on both sides to the edge = of the=20 stream: thence, from the corners of the wall, there is carried along = each bank=20 of the river a fence of burnt bricks. The houses are mostly three and = four=20 stories high; the streets all run in straight lines, not only those = parallel to=20 the river, but also the cross streets which lead down to the water-side. = At the=20 river end of these cross streets are low gates in the fence that skirts = the=20 stream, which are, like the great gates in the outer wall, of brass, and = open on=20 the water. [1.181] The outer wall is the main defence of the = city. There=20 is, however, a second inner wall, of less thickness than the first, but = very=20 little inferior to it in strength. The centre of each division of the = town was=20 occupied by a fortress. In the one stood the palace of the kings, = surrounded by=20 a wall of great strength and size: in the other was the sacred precinct = of=20 Jupiter Belus, a square enclosure two furlongs each way, with gates of = solid=20 brass; which was also remaining in my time. In the middle of the = precinct there=20 was a tower of solid masonry, a furlong in length and breadth, upon = which was=20 raised a second tower, and on that a third, and so on up to eight. The = ascent to=20 the top is on the outside, by a path which winds round all the towers. = When one=20 is about half-way up, one finds a resting-place and seats, where persons = are=20 wont to sit some time on their way to the summit. On the topmost tower = there is=20 a spacious temple, and inside the temple stands a couch of unusual size, = richly=20 adorned, with a golden table by its side. There is no statue of any kind = set up=20 in the place, nor is the chamber occupied of nights by any one but a = single=20 native woman, who, as the Chaldaeans, the priests of this god, affirm, = is chosen=20 for himself by the deity out of all the women of the land. [1.182] They also declare - but I for my part do = not credit=20 it - that the god comes down in person into this chamber, and sleeps = upon the=20 couch. This is like the story told by the Egyptians of what takes place = in their=20 city of Thebes, where a woman always passes the night in the temple of = the=20 Theban Jupiter. In each case the woman is said to be debarred all = intercourse=20 with men. It is also like the custom of Patara, in Lycia, where the = priestess=20 who delivers the oracles, during the time that she is so employed - for = at=20 Patara there is not always an oracle - is shut up in the temple every = night.=20 [1.183] Below, in the same precinct, there is a = second=20 temple, in which is a sitting figure of Jupiter, all of gold. Before the = figure=20 stands a large golden table, and the throne whereon it sits, and the = base on=20 which the throne is placed, are likewise of gold. The Chaldaeans told me = that=20 all the gold together was eight hundred talents' weight. Outside the = temple are=20 two altars, one of solid gold, on which it is only lawful to offer = sucklings;=20 the other a common altar, but of great size, on which the full-grown = animals are=20 sacrificed. It is also on the great altar that the Chaldaeans burn the=20 frankincense, which is offered to the amount of a thousand talents' = weight,=20 every year, at the festival of the God. In the time of Cyrus there was = likewise=20 in this temple a figure of a man, twelve cubits high, entirely of solid = gold. I=20 myself did not see this figure, but I relate what the Chaldaeans report=20 concerning it. Darius, the son of Hystaspes, plotted to carry the statue = off,=20 but had not the hardihood to lay his hands upon it. Xerxes, however, the = son of=20 Darius, killed the priest who forbade him to move the statue, and took = it away.=20 Besides the ornaments which I have mentioned, there are a large number = of=20 private offerings in this holy precinct. [1.184] Many sovereigns have ruled over this city = of=20 Babylon, and=20 lent their aid to the building of its walls and the adornment of its = temples, of=20 whom I shall make mention in my Assyrian history. Among them two were = women. Of=20 these, the earlier, called Semiramis, held the throne five generations = before=20 the later princess. She raised certain embankments well worthy of = inspection, in=20 the plain near Babylon, to control the river, which, till then, used to=20 overflow, and flood the whole country round about. [1.185] The later of the two queens, whose name was = Nitocris,=20 a wiser princess than her predecessor, not only left behind her, as = memorials of=20 her occupancy of the throne, the works which I shall presently describe, = but=20 also, observing the great power and restless enterprise of the Medes, = who had=20 taken so large a number of cities, and among them Nineveh, and expecting = to be=20 attacked in her turn, made all possible exertions to increase the = defences of=20 her empire. And first, whereas the river Euphrates, which traverses the = city,=20 ran formerly with a straight course to Babylon, she, by certain = excavations=20 which she made at some distance up the stream, rendered it so winding = that it=20 comes three several times in sight of the same village, a village in = Assyria,=20 which is called Ardericea; and to this day, they who would go from our = sea to=20 Babylon, on descending to the river touch three times, and on three = different=20 days, at this very place. She also made an embankment along each side of = the=20 Euphrates, wonderful both for breadth and height, and dug a basin for a = lake a=20 great way above Babylon, close alongside of the stream, which was sunk=20 everywhere to the point where they came to water, and was of such = breadth that=20 the whole circuit measured four hundred and twenty furlongs. The soil = dug out of=20 this basin was made use of in the embankments along the waterside. When = the=20 excavation was finished, she had stones brought, and bordered with them = the=20 entire margin of the reservoir. These two things were done, the river = made to=20 wind, and the lake excavated, that the stream might be slacker by reason = of the=20 number of curves, and the voyage be rendered circuitous, and that at the = end of=20 the voyage it might be necessary to skirt the lake and so make a long = round. All=20 these works were on that side of Babylon where the passes lay, and the = roads=20 into Media were the straightest, and the aim of the queen in making them = was to=20 prevent the Medes from holding intercourse with the Babylonians, and so = to keep=20 them in ignorance of her affairs. [1.186] While the soil from the excavation was = being thus=20 used for the defense of the city, Nitocris engaged also in another = undertaking,=20 a mere by-work compared with those we have already mentioned. The city, = as I=20 said, was divided by the river into two distinct portions. Under the = former=20 kings, if a man wanted to pass from one of these divisions to the other, = he had=20 to cross in a boat; which must, it seems to me, have been very = troublesome.=20 Accordingly, while she was digging the lake, Nitocris thought herself of = turning=20 it to a use which should at once remove this inconvenience, and enable = her to=20 leave another monument of her reign over Babylon. She gave orders for the = hewing of=20 immense blocks of stone, and when they were ready and the basin was = excavated,=20 she turned the entire stream of the Euphrates into the cutting, and thus = for a=20 time, while the basin was filling, the natural channel of the river was = left=20 dry. Forthwith she set to work, and in the first place lined the banks = of the=20 stream within the city with quays of burnt brick, and also bricked the=20 landing-places opposite the river-gates, adopting throughout the same = fashion of=20 brickwork which had been used in the town wall; after which, with the = materials=20 which had been prepared, she built, as near the middle of the town as = possible,=20 a stone bridge, the blocks whereof were bound together with iron and = lead. In=20 the daytime square wooden platforms were laid along from pier to pier, = on which=20 the inhabitants crossed the stream; but at night they were withdrawn, to = prevent=20 people passing from side to side in the dark to commit robberies. When = the river=20 had filled the cutting, and the bridge was finished, the Euphrates was = turned=20 back again into its ancient bed; and thus the basin, transformed = suddenly into a=20 lake, was seen to answer the purpose for which it was made, and the = inhabitants,=20 by help of the basin, obtained the advantage of a bridge. [1.187] It was this same princess by whom a = remarkable=20 deception was planned. She had her tomb constructed in the upper part of = one of=20 the principal gateways of the city, high above the heads of the passers = by, with=20 this inscription cut upon it:- "If there be one among my successors on = the=20 throne of Babylon who is in want of treasure, let him open my tomb, and = take as=20 much as he chooses - not, however, unless he be truly in want, for it = will not=20 be for his good." This tomb continued untouched until Darius came to the = kingdom. To him it seemed a monstrous thing that he should be unable to = use one=20 of the gates of the town, and that a sum of money should be lying idle, = and=20 moreover inviting his grasp, and he not seize upon it. Now he could not = use the=20 gate, because, as he drove through, the dead body would have been over = his head.=20 Accordingly he opened the tomb; but instead of money, found only the = dead body,=20 and a writing which said - "Had you not been insatiate of self, and = careless how=20 you got it, you would not have broken open the sepulchres of the dead." = [1.188] The expedition of Cyrus was undertaken = against the=20 son of this princess, who bore the same name as his father Labynetus, = and was=20 king of the Assyrians. The Great King, when he goes to the wars, is = always=20 supplied with provisions carefully prepared at home, and with cattle of = his own.=20 Water too from the river Choaspes, which flows by Susa, is taken with = him for=20 his drink, as that is the only water which the kings of Persia taste. = Wherever=20 he travels, he is attended by a number of four-wheeled cars drawn by = mules, in=20 which the Choaspes water, ready boiled for use, and stored in flagons of = silver,=20 is moved with him from place to place. [1.189] Cyrus on his way to Babylon came to the = banks of the=20 Gyndes, a stream which, rising in the Matienian mountains, runs through = the=20 country of the Dardanians, and empties itself into the river Tigris. The = Tigris,=20 after receiving the Gyndes, flows on by the city of Opis, and = discharges its=20 waters into the Erythraean sea. When Cyrus reached this stream, which = could only=20 be passed in boats, one of the sacred white horses accompanying his = march, full=20 of spirit and high mettle, walked into the water, and tried to cross by = himself;=20 but the current seized him, swept him along with it, and drowned him in = its=20 depths. Cyrus, enraged at the insolence of the river, threatened so to = break its=20 strength that in future even women should cross it easily without = wetting their=20 knees. Accordingly he put off for a time his attack on Babylon, and, = dividing=20 his army into two parts, he marked out by ropes one hundred and eighty = trenches=20 on each side of the Gyndes, leading off from it in all directions, and = setting=20 his army to dig, some on one side of the river, some on the other, he=20 accomplished his threat by the aid of so great a number of hands, but = not=20 without losing thereby the whole summer season. [1.190] Having, however, thus wreaked his vengeance = on the=20 Gyndes, by dispersing it through three hundred and sixty channels, = Cyrus, with=20 the first approach of the ensuing spring, marched forward against = Babylon. The=20 Babylonians, encamped without their walls, awaited his coming. A battle = was=20 fought at a short distance from the city, in which the Babylonians were = defeated=20 by the Persian king, whereupon they withdrew within their defences. Here = they=20 shut themselves up, and made light of his siege, having laid in a store = of=20 provisions for many years in preparation against this attack; for when = they saw=20 Cyrus conquering nation after nation, they were convinced that he would = never=20 stop, and that their turn would come at last. [1.191] Cyrus was now reduced to great perplexity, = as time=20 went on and he made no progress against the place. In this distress = either some=20 one made the suggestion to him, or he bethought himself of a plan, which = he=20 proceeded to put in execution. He placed a portion of his army at the = point=20 where the river enters the city, and another body at the back of the = place where=20 it issues forth, with orders to march into the town by the bed of the = stream, as=20 soon as the water became shallow enough: he then himself drew off with = the=20 unwarlike portion of his host, and made for the place where Nitocris dug = the=20 basin for the river, where he did exactly what she had done formerly: he = turned=20 the Euphrates by a canal into the basin, which was then a marsh, on = which the=20 river sank to such an extent that the natural bed of the stream became = fordable.=20 Hereupon the Persians who had been left for the purpose at Babylon by = the,=20 river-side, entered the stream, which had now sunk so as to reach about = midway=20 up a man's thigh, and thus got into the town. Had the Babylonians been = apprised=20 of what Cyrus was about, or had they noticed their danger, they would = never have=20 allowed the Persians to enter the city, but would have destroyed them = utterly;=20 for they would have made fast all the street-gates which gave upon the = river,=20 and mounting upon the walls along both sides of the stream, would so = have caught=20 the enemy, as it were, in a trap. But, as it was, the Persians came upon = them by=20 surprise and so took the city. Owing to the vast size of the place, the=20 inhabitants of the central parts (as the residents at Babylon declare) = long=20 after the outer portions of the town were taken, knew nothing of what = had=20 chanced, but as they were engaged in a festival, continued dancing and = revelling=20 until they learnt the capture but too certainly. Such, then, were the=20 circumstances of the first taking of Babylon. [1.192] Among many proofs which I shall bring = forward of the=20 power and resources of the Babylonians, the following is of special = account. The=20 whole country under the dominion of the Persians, besides paying a fixed = tribute, is parcelled out into divisions, which have to supply food to = the Great=20 King and his army during different portions of the year. Now out of the = twelve=20 months which go to a year, the district of Babylon furnishes food during = four,=20 the other of Asia during eight; by which it appears that Assyria, in = respect of=20 resources, is one-third of the whole of Asia.=20 Of all the Persian governments, or satrapies as they are called by the = natives,=20 this is by far the best. When Tritantaechmes, son of Artabazus, held it = of the=20 king, it brought him in an artaba of silver every day. The artaba is a = Persian=20 measure, and holds three choenixes more than the medimnus of the = Athenians. He=20 also had, belonging to his own private stud, besides war horses, eight = hundred=20 stallions and sixteen thousand mares, twenty to each stallion. Besides = which he=20 kept so great a number of Indian hounds, that four large villages of the = plain=20 were exempted from all other charges on condition of finding them food. = [1.193] But little rain falls in Assyria, enough, = however, to=20 make the grain begin to sprout, after which the plant is nourished and = the ears=20 formed by means of irrigation from the river. For the river does not, as = in=20 Egypt, overflow the = grain-lands of=20 its own accord, but is spread over them by the hand, or by the help of = engines.=20 The whole of Babylonia is, like Egypt, intersected with canals. The = largest of=20 them all, which runs towards the winter sun, and is impassable except in = boats,=20 is carried from the Euphrates into another stream, called the Tigris, = the river=20 upon which the town of Nineveh formerly stood. Of all the = countries=20 that we know there is none which is so fruitful in grain. It makes no = pretension=20 indeed of growing the fig, the olive, the vine, or any other tree of the = kind;=20 but in grain it is so fruitful as to yield commonly two-hundred-fold, = and when=20 the production is the greatest, even three-hundred-fold. The blade of = the=20 wheat-plant and barley-plant is often four fingers in breadth. As for = the millet=20 and the sesame, I shall not say to what height they grow, though within = my own=20 knowledge; for I am not ignorant that what I have already written = concerning the=20 fruitfulness of Babylonia must seem incredible to those who have never = visited=20 the country. The only oil they use is made from the sesame-plant. = Palm-trees=20 grow in great numbers over the whole of the flat country, mostly of the = kind=20 which bears fruit, and this fruit supplies them with bread, wine, and = honey.=20 They are cultivated like the fig-tree in all respects, among others in = this. The=20 natives tie the fruit of the male-palms, as they are called by the = Greeks, to=20 the branches of the date-bearing palm, to let the gall-fly enter the = dates and=20 ripen them, and to prevent the fruit from falling off. The male-palms, = like the=20 wild fig-trees, have usually the gall-fly in their fruit. [1.194] But that which surprises me most in the = land, after=20 the city itself, I will now proceed to mention. The boats which come = down the=20 river to Babylon are circular, and made of skins. The frames, which are = of=20 willow, are cut in the country of the Armenians above Assyria, and on = these,=20 which serve for hulls, a covering of skins is stretched outside, and = thus the=20 boats are made, without either stem or stern, quite round like a shield. = They=20 are then entirely filled with straw, and their cargo is put on board, = after=20 which they are suffered to float down the stream. Their chief freight is = wine,=20 stored in casks made of the wood of the palm-tree. They are managed by = two men=20 who stand upright in them, each plying an oar, one pulling and the other = pushing. The boats are of various sizes, some larger, some smaller; the = biggest=20 reach as high as five thousand talents' burden. Each vessel has a live = ass on=20 board; those of larger size have more than one. When they reach Babylon, = the=20 cargo is landed and offered for sale; after which the men break up their = boats,=20 sell the straw and the frames, and loading their asses with the skins, = set off=20 on their way back to Armenia. The current is too strong to allow a boat = to=20 return upstream, for which reason they make their boats of skins rather = than=20 wood. On their return to Armenia they build fresh boats for the next = voyage.=20 [1.195] The dress of the Babylonians is a linen = tunic=20 reaching to the feet, and above it another tunic made in wool, besides = which=20 they have a short white cloak thrown round them, and shoes of a peculiar = fashion, not unlike those worn by the Boeotians. They have long hair, = wear=20 turbans on their heads, and anoint their whole body with perfumes. Every = one=20 carries a seal, and a walking-stick, carved at the top into the form of = an=20 apple, a rose, a lily, an eagle, or something similar; for it is not = their habit=20 to use a stick without an ornament. [1.196] Of their customs, whereof I shall now = proceed to give=20 an account, the following (which I understand belongs to them in common = with the=20 Illyrian tribe of the Eneti) is the wisest in my judgment. Once a year = in each=20 village the maidens of age to marry were collected all together into one = place;=20 while the men stood round them in a circle. Then a herald called up the = damsels=20 one by one, and offered them for sale. He began with the most beautiful. = When=20 she was sold for no small sum of money, he offered for sale the one who = came=20 next to her in beauty. All of them were sold to be wives. The richest of = the=20 Babylonians who wished to wed bid against each other for the loveliest = maidens,=20 while the humbler wife-seekers, who were indifferent about beauty, took = the more=20 homely damsels with marriage-portions. For the custom was that when the = herald=20 had gone through the whole number of the beautiful damsels, he should = then call=20 up the ugliest - a cripple, if there chanced to be one - and offer her = to the=20 men, asking who would agree to take her with the smallest = marriage-portion [i.e.=20 in these cases the man was paid to take the woman]. And the man who was = offered=20 the smallest sum had her assigned to him. The marriage-portions were = furnished=20 by the money paid for the beautiful damsels, and thus the fairer maidens = portioned out the uglier. No one was allowed to give his daughter in = marriage to=20 the man of his choice, nor might any one carry away the damsel whom he = had=20 purchased without finding bail really and truly to make her his wife; = if,=20 however, it turned out that they did not agree, the money might be paid = back.=20 All who liked might come even from distant villages and bid for the = women. This=20 was the best of all their customs, but it has now fallen into disuse. = They have=20 lately hit upon a very different plan to save their maidens from = violence, and=20 prevent their being torn from them and carried to distant cities, which = is to=20 bring up their daughters to be courtesans. This is now done by all the = poorer of=20 the common people, who since the conquest have been maltreated by their = lords,=20 and have had ruin brought upon their families. [1.197] The following custom seems to me the wisest = of their=20 institutions next to the one lately praised. They have no physicians, = but when a=20 man is ill, they lay him in the public square, and the passers-by come = up to=20 him, and if they have ever had his disease themselves or have known any = one who=20 has suffered from it, they give him advice, recommending him to do = whatever they=20 found good in their own case, or in the case known to them; and no one = is=20 allowed to pass the sick man in silence without asking him what his = ailment is.=20 [1.198] They bury their dead in honey, and have = funeral=20 lamentations like the Egyptians. When a Babylonian has consorted with = his wife,=20 he sits down before a censer of burning incense, and the woman sits = opposite to=20 him. At dawn of day they wash; for till they are washed they will not = touch any=20 of their common vessels. This practice is observed also by the Arabians. = [1.199] The Babylonians have one most shameful = custom. Every=20 woman born in the country must once in her life go and sit down in the = precinct=20 of Venus, and there consort with a stranger. Many of the wealthier sort, = who are=20 too proud to mix with the others, drive in covered carriages to the = precinct,=20 followed by a goodly train of attendants, and there take their station. = But the=20 larger number seat themselves within the holy enclosure with wreaths of = string=20 about their heads - and here there is always a great crowd, some coming = and=20 others going; lines of cord mark out paths in all directions the women, = and the=20 strangers pass along them to make their choice. A woman who has once = taken her=20 seat is not allowed to return home till one of the strangers throws a = silver=20 coin into her lap, and takes her with him beyond the holy ground. When = he throws=20 the coin he says these words - "The goddess Mylitta prosper thee." = (Venus is=20 called Mylitta by the Assyrians.) The silver coin may be of any size; it = cannot=20 be refused, for that is forbidden by the law, since once thrown it is = sacred.=20 The woman goes with the first man who throws her money, and rejects no = one. When=20 she has gone with him, and so satisfied the goddess, she returns home, = and from=20 that time forth no gift however great will prevail with her. Such of the = women=20 as are tall and beautiful are soon released, but others who are ugly = have to=20 stay a long time before they can fulfil the law. Some have waited three = or four=20 years in the precinct. A custom very much like this is found also in = certain=20 parts of the island of Cyprus. [1.200] Such are the customs of the Babylonians = generally.=20 There are likewise three tribes among them who eat nothing but fish. = These are=20 caught and dried in the sun, after which they are brayed in a mortar, = and=20 strained through a linen sieve. Some prefer to make cakes of this = material,=20 while others bake it into a kind of bread. On Egypt: [2.2] Now the Egyptians, before the reign of their = king=20 Psammetichus, believed themselves to be the most ancient of mankind. = Since=20 Psammetichus, however, made an attempt to discover who were actually the = primitive race, the Egyptians have been of opinion that while they = surpass all=20 other nations, the Phrygians surpass them in antiquity. This king, = finding it=20 impossible to make out by dint of inquiry what men were the most = ancient,=20 contrived the following method of discovery:- He took two children of = the common=20 sort, and gave them over to a herdsman to bring up at his folds, = strictly=20 charging him to let no one utter a word in their presence, but to keep = them in a=20 sequestered cottage, and from time to time introduce goats to their = apartment,=20 see that they got their fill of milk, and in all other respects look = after them.=20 His object herein was to know, after the indistinct babblings of infancy = were=20 over, what word they would first articulate. It happened as he had = anticipated.=20 The herdsman obeyed his orders for two years, and at the end of that = time, on=20 his one day opening the door of their room and going in, the children = both ran=20 up to him with outstretched arms, and distinctly said "Becos." When this = first=20 happened the herdsman took no notice; but afterwards when he observed, = on coming=20 often to see after them, that the word was constantly in their mouths, = he=20 informed his lord, and by his command brought the children into his = presence.=20 Psammetichus then himself heard them say the word, upon which he = proceeded to=20 make inquiry what people there was who called anything "becos," and = hereupon he=20 learnt that "becos" was the Phrygian name for bread. In consideration of = this=20 circumstance the Egyptians yielded their claims, and admitted the = greater=20 antiquity of the Phrygians. [2.3] That these were the real facts I learnt at = Memphis from = the priests of=20 Vulcan. The Greeks, among other foolish tales, relate that Psammetichus = had the=20 children brought up by women whose tongues he had previously cut out; = but the=20 priests said their bringing up was such as I have stated above. I got = much other=20 information also from conversation with these priests while I was at = Memphis,=20 and I even went to Heliopolis and to Thebes, expressly to try whether = the=20 priests of those places would agree in their accounts with the priests = at=20 Memphis. The Heliopolitans have the reputation of being the best skilled = in=20 history of all the Egyptians. What they told me concerning their = religion it is=20 not my intention to repeat, except the names of their deities, which I = believe=20 all men know equally. If I relate anything else concerning these = matters, it=20 will only be when compelled to do so by the course of my narrative. [2.4] Now with regard to mere human matters, the = accounts=20 which they gave, and in which all agreed, were the following. The = Egyptians,=20 they said, were the first to discover the solar year, and to portion out = its=20 course into twelve parts. They obtained this knowledge from the stars. = (To my=20 mind they contrive their year much more cleverly than the Greeks, for = these last=20 every other year intercalate a whole month, but the Egyptians, dividing = the year=20 into twelve months of thirty days each, add every year a space of five = days=20 besides, whereby the circuit of the seasons is made to return with = uniformity.)=20 The Egyptians, they went on to affirm, first brought into use the names = of the=20 twelve gods, which the Greeks adopted from them; and first erected = altars,=20 images, and temples to the gods; and also first engraved upon stone the = figures=20 of animals. In most of these cases they proved to me that what they said = was=20 true. And they told me that the first man who ruled over Egypt was Min, = and that=20 in his time all Egypt, except the Thebaic canton, was a marsh, none of = the land=20 below Lake Moeris then showing itself above the surface of the water. = This is a=20 distance of seven days' sail from the sea up the river. [2.5] What they said of their country seemed to me = very=20 reasonable. For any one who sees Egypt, without having heard a word = about it=20 before, must perceive, if he has only common powers of observation, that = the=20 Egypt to which the Greeks go in their ships is an acquired country, the = gift of=20 the river. The same is true of the land above the lake, to the distance = of three=20 days' voyage, concerning which the Egyptians say nothing, but which = exactly the=20 same kind of country. The following is the general character of the = region. In the=20 first place, on approaching it by sea, when you are still a day's sail = from the=20 land, if you let down a sounding-line you will bring up mud, and find = yourself=20 in eleven fathoms' water, which shows that the soil washed down by the = stream=20 extends to that distance. [2.6] The length of the country along shore, = according to the=20 bounds that we assign to Egypt, namely from the Plinthinetic = gulf to=20 Lake Serbonis, which extends along the base of = Mount = Casius, is sixty schoenes. The = nations=20 whose territories are scanty measure them by the fathom; those whose = bounds are=20 less confined, by the furlong; those who have an ample territory, by the = parasang; but if men have a country which is very vast, they measure it = by the=20 schoene. Now the length of the parasang is thirty furlongs, but the = schoene,=20 which is an Egyptian measure, is sixty furlongs. Thus the coastline of = Egypt=20 would extend a length of three thousand six hundred furlongs. [2.7] From the coast inland as far as Heliopolis the breadth of Egypt=20 is considerable, the country is flat, without springs, and full of = swamps. The=20 length of the route from the sea up to Heliopolis is almost exactly the = same as=20 that of the road which runs from the altar of the twelve gods at Athens = to the=20 temple of Olympian Jove at Pisa. If a person made a calculation he would = find=20 but a very little difference between the two routes, not more than about = fifteen=20 furlongs; for the road from Athens to Pisa falls short of fifteen = hundred=20 furlongs by exactly fifteen, whereas the distance of Heliopolis from the = sea is=20 just the round number. [2.8] As one proceeds beyond Heliopolis up the country, Egypt=20 becomes narrow, the Arabian range of hills, which has a direction from = north to=20 south, shutting it in upon the one side, and the Libyan range upon the = other.=20 The former ridge runs on without a break, and stretches away to the sea = called=20 the Erythraean; it contains the quarries whence the stone was cut for = the=20 pyramids of Memphis: and this is the point where it ceases its first = direction,=20 and bends away in the manner above indicated. In its greatest length = from east=20 to west it is, as I have been informed, a distance of two months' = journey=20 towards the extreme east its skirts produce frankincense. Such are the = chief=20 features of this range. On the Libyan side, the other ridge whereon the = pyramids=20 stand is rocky and covered with sand; its direction is the same as that = of the=20 Arabian ridge in the first part of its course. Above Heliopolis, then, = there is=20 no great breadth of territory for such a country as Egypt, but during = four days'=20 sail Egypt is narrow; the valley between the two ranges is a level = plain, and=20 seemed to me to be, at the narrowest point, not more than two hundred = furlongs=20 across from the Arabian to the Libyan hills. Above this point Egypt = again=20 widens. [2.9] From Heliopolis to Thebes is nine days' sail = up the=20 river; the distance is eighty-one schoenes, or 4860 furlongs. If we now = put=20 together the several measurements of the country we shall find that the = distance=20 along shore is, as I stated above, 3600 furlongs, and the distance from = the sea=20 inland to Thebes 6120 furlongs. Further, it is a distance of eighteen = hundred=20 furlongs from Thebes to the place called Elephantine. [2.10] The greater portion of the country above = described=20 seemed to me to be, as the priests declared, a tract gained by the = inhabitants.=20 For the whole region above Memphis, lying between the two ranges = of hills=20 that have been spoken of, appeared evidently to have formed at one time = a gulf=20 of the sea. It resembles (to compare small things with great) the parts = about=20 Ilium and Teuthrania, Ephesus, and the plain of the Maeander. In all = these=20 regions the land has been formed by rivers, whereof the greatest is not = to=20 compare for size with any one of the five mouths of the Nile. I could = mention=20 other rivers also, far inferior to the Nile in=20 magnitude, that have effected very great changes. Among these not the = least is=20 the Achelous, which, after passing through Acarnania, empties itself = into the=20 sea opposite the islands called Echinades, and has already joined = one-half of=20 them to the continent. [2.11] In Arabia, not far from Egypt, there is a long and narrow gulf = running=20 inland from the sea called the Erythraean [i.e. the Red=20 Sea], of which I will here set down the dimensions. Starting = from=20 its innermost recess, and using a row-boat, you take forty days to reach = the=20 open main, while you may cross the gulf at its widest part in the space = of half=20 a day. In this sea there is an ebb and flow of the tide every day. My = opinion is=20 that Egypt was formerly very much such a gulf as this - one gulf = penetrated from=20 the sea that washes Egypt on the north, and extended itself towards = Ethiopia;=20 another entered from the southern ocean, and stretched towards Syria; = the two=20 gulfs ran into the land so as almost to meet each other, and left = between them=20 only a very narrow tract of country. Now if the Nile should choose to = divert his=20 waters from their present bed into this Arabian=20 gulf, what is there to hinder it from being filled up by the = stream=20 within, at the utmost, twenty thousand years? For my part, I think it = would be=20 filled in half the time. How then should not a gulf, even of much = greater size,=20 have been filled up in the ages that passed before I was born, by a = river that=20 is at once so large and so given to working changes? [2.12] Thus I give credit to those from whom I = received this=20 account of Egypt, and am myself, moreover, strongly of the same opinion, = since I=20 remarked that the country projects into the sea further than the = neighbouring=20 shores, and I observed that there were shells upon the hills, and that = salt=20 exuded from the soil to such an extent as even to injure the pyramids; = and I=20 noticed also that there is but a single hill in all Egypt where sand is = found,=20 namely, the hill above Memphis; and further, I found the country to bear = no=20 resemblance either to its borderland Arabia, or to Libya - nay, nor even = to=20 Syria, which forms the seaboard of Arabia; but whereas the soil of Libya = is, we=20 know, sandy and of a reddish hue, and that of Arabia and Syria inclines = to stone=20 and clay, Egypt has a soil that is black and crumbly, as being alluvial = and=20 formed of the deposits brought down by the river from Ethiopia. [2.13] One fact which I learnt of the priests is to = me a=20 strong evidence of the origin of the country. They said that when Moeris = was=20 king, the Nile overflowed all Egypt below Memphis, as soon as it rose so = little=20 as eight cubits. Now Moeris had not been dead 900 years at the time when = I heard=20 this of the priests; yet at the present day, unless the river rise = sixteen, or,=20 at the very least, fifteen cubits, it does not overflow the lands. It = seems to=20 me, therefore, that if the land goes on rising and growing at this rate, = the=20 Egyptians who dwell below Lake Moeris, in the Delta (as it is called) = and=20 elsewhere, will one day, by the stoppage of the inundations, suffer = permanently=20 the fate which they told me they expected would some time or other = befall the=20 Greeks. On hearing that the whole land of Greece is watered by rain from = heaven,=20 and not, like their own, inundated by rivers, they observed - "Some day = the=20 Greeks will be disappointed of their grand hope, and then they will be=20 wretchedly hungry"; which was as much as to say, "If God shall some day = see fit=20 not to grant the Greeks rain, but shall afflict them with a long = drought, the=20 Greeks will be swept away by a famine, since they have nothing to rely = on but=20 rain from Jove, and have no other resource for water." [2.14] And in thus speaking of the Greeks the = Egyptians say=20 nothing but what is true. But now let me tell the Egyptians how the case = stands=20 with themselves. If, as I said before, the country below Memphis, which = is the=20 land that is always rising, continues to increase in height at the rate = at which=20 it has risen in times gone by, how will it be possible for the = inhabitants of=20 that region to avoid hunger, when they will certainly have no rain, and = the=20 river will not be able to overflow their cornlands? At present, it must = be=20 confessed, they obtain the fruits of the field with less trouble than = any other=20 people in the world, the rest of the Egyptians included, since they have = no need=20 to break up the ground with the plough, nor to use the hoe, nor to do = any of the=20 work which the rest of mankind find necessary if they are to get a crop; = but the=20 husbandman waits till the river has of its own accord spread itself over = the=20 fields and withdrawn again to its bed, and then sows his plot of ground, = and=20 after sowing turns his swine into it - the swine tread in the corn - = after which=20 he has only to await the harvest. The swine serve him also to thrash the = grain,=20 which is then carried to the garner. [2.15] If then we choose to adopt the views of the = Ionians=20 concerning Egypt, we must come to the conclusion that the Egyptians had = formerly=20 no country at all. For the Ionians say that nothing is really Egypt but = the=20 Delta, which extends along shore from the Watch-tower of Perseus, as it = is=20 called, to the Pelusiac Salt-Pans, a distance of forty schoenes, and = stretches=20 inland as far as the city of Cercasorus, where the Nile divides into the = two=20 streams which reach the sea at Pelusium and Canobus respectively. The = rest of=20 what is accounted Egypt belongs, they say, either to Arabia or Libya. = But the=20 Delta, as the Egyptians affirm, and as I myself am persuaded, is formed = of the=20 deposits of the river, and has only recently, if I may use the = expression, come=20 to light. If, then, they had formerly no territory at all, how came they = to be=20 so extravagant as to fancy themselves the most ancient race in the = world? Surely=20 there was no need of their making the experiment with the children to = see what=20 language they would first speak. But in truth I do not believe that the=20 Egyptians came into being at the same time with the Delta, as the = Ionians call=20 it; I think they have always existed ever since the human race began; as = the=20 land went on increasing, part of the population came down into the new = country,=20 part remained in their old settlements. In ancient times the Thebais = bore the=20 name of Egypt, a district of which the entire circumference is but 6120=20 furlongs. [2.16] If, then, my judgment on these matters be = right, the=20 Ionians are mistaken in what they say of Egypt.=20 If, on the contrary, it is they who are right, then I undertake to show = that=20 neither the Ionians nor any of the other Greeks know how to count. For = they all=20 say that the earth is divided into three parts, Europe, Asia, and Libya, = whereas=20 they ought to add a fourth part, the Delta of Egypt, since they do not = include=20 it either in Asia or Libya. For is it not their theory that the Nile = separates=20 Asia from Libya? As the Nile, therefore, splits in two at the apex of = the Delta,=20 the Delta itself must be a separate country, not contained in either = Asia or=20 Libya. [2.17] Here I take my leave of the opinions of the = Ionians,=20 and proceed to deliver my own sentiments on these subjects. I consider = Egypt to=20 be the whole country inhabited by the Egyptians, just as Cilicia is the = tract=20 occupied by the Cilicians, and Assyria that possessed by the Assyrians. = And I=20 regard the only proper boundary-line between Libya and Asia to be that = which is=20 marked out by the Egyptian frontier. For if we take the boundary-line = commonly=20 received by the Greeks, we must regard Egypt as divided, along its whole = length=20 from Elephantine and the Cataracts to Cercasorus, into two parts, each = belonging=20 to a different portion of the world, one to Asia, the other to Libya; = since the=20 Nile divides Egypt in two from the Cataracts to the sea, running as far = as the=20 city of Cercasorus in a single stream, but at that point separating into = three=20 branches, whereof the one which bends eastward is called the Pelusiac = mouth, and=20 that which slants to the west, the Canobic. Meanwhile the straight = course of the=20 stream, which comes down from the upper country and meets the apex of = the Delta,=20 continues on, dividing the Delta down the middle, and empties itself = into the=20 sea by a mouth, which is as celebrated, and carries as large a body of = water, as=20 most of the others, the mouth called the Sebennytic. Besides these there = are two=20 other mouths which run out of the Sebennytic called respectively the = Saitic and=20 the Mendesian. The Bolbitine mouth, and the Bucolic, are not natural = branches,=20 but channels made by excavation. [2.18] My judgment as to the extent of Egypt is = confirmed by=20 an oracle delivered at the shrine of Ammon, of which I had no knowledge = at all=20 until after I had formed my opinion. It happened that the people of the = cities=20 Marea and Apis, who live in the part of Egypt that borders on Libya, = took a=20 dislike to the religious usages of the country concerning sacrificial = animals,=20 and wished no longer to be restricted from eating the flesh of cows. So, = as they=20 believed themselves to be Libyans and not Egyptians, they sent to the = shrine to=20 say that, having nothing in common with the Egyptians, neither = inhabiting the=20 Delta nor using the Egyptian tongue, they claimed to be allowed to eat = whatever=20 they pleased. Their request, however, was refused by the god, who = declared in=20 reply that Egypt was the entire tract of country which the Nile = overspreads and=20 irrigates, and the Egyptians were the people who lived below = Elephantine, and=20 drank the waters of that river. [2.19] So said the oracle. Now the Nile, when it = overflows,=20 floods not only the Delta, but also the tracts of country on both sides = the=20 stream which are thought to belong to Libya and Arabia, in some places = reaching=20 to the extent of two days' journey from its banks, in some even = exceeding that=20 distance, but in others falling short of it. Concerning the nature of the river, I was not able = to gain=20 any information either from the priests or from others. I was = particularly=20 anxious to learn from them why the Nile, at the commencement of the = summer=20 solstice, begins to rise, and continues to increase for a hundred days - = and=20 why, as soon as that number is past, it forthwith retires and contracts = its=20 stream, continuing low during the whole of the winter until the summer = solstice=20 comes round again. On none of these points could I obtain any = explanation from=20 the inhabitants, though I made every inquiry, wishing to know what was = commonly=20 reported - they could neither tell me what special virtue the Nile has = which=20 makes it so opposite in its nature to all other streams, nor why, unlike = every=20 other river, it gives forth no breezes from its surface. [2.20] Some of the Greeks, however, wishing to get = a=20 reputation for cleverness, have offered explanations of the phenomena of = the=20 river, for which they have accounted in three different ways. Two of = these I do=20 not think it worth while to speak of, further than simply to mention = what they=20 are. One pretends that the Etesian winds cause the rise of the river by=20 preventing the Nile-water from running off into the sea. But in the = first place=20 it has often happened, when the Etesian winds did not blow, that the = Nile has=20 risen according to its usual wont; and further, if the Etesian winds = produced=20 the effect, the other rivers which flow in a direction opposite to those = winds=20 ought to present the same phenomena as the Nile, and the more so as they = are all=20 smaller streams, and have a weaker current. But these rivers, of which = there are=20 many both in Syria and Libya, are entirely unlike the Nile in this = respect. [2.21] The second opinion is even more unscientific = than the=20 one just mentioned, and also, if I may so say, more marvellous. It is = that the=20 Nile acts so strangely, because it flows from the ocean, and that the = ocean=20 flows all round the earth. [2.22] The third explanation, which is very much = more=20 plausible than either of the others, is positively the furthest from the = truth;=20 for there is really nothing in what it says, any more than in the other=20 theories. It is, that the inundation of the Nile is caused by the melting of snows. Now, as = the Nile=20 flows out of Libya, through Ethiopia, into Egypt, how is it possible = that it can=20 be formed of melted snow, running, as it does, from the hottest regions = of the=20 world into cooler countries? Many are the proofs whereby any one capable = of=20 reasoning on the subject may be convinced that it is most unlikely this = should=20 be the case. The first and strongest argument is furnished by the winds, = which=20 always blow hot from these regions. The second is that rain and frost = are=20 unknown there. Now whenever snow falls, it must of necessity rain within = five=20 days;.so that, if there were snow, there must be rain also in those = parts.=20 Thirdly, it is certain that the natives of the country are black with = the heat,=20 that the kites and the swallows remain there the whole year, and that = the=20 cranes, when they fly from the rigours of a Scythian winter, flock = thither to=20 pass the cold season. If then, in the country whence the Nile has its = source, or=20 in that through which it flows, there fell ever so little snow, it is = absolutely=20 impossible that any of these circumstances could take place. [2.23] As for the writer who attributes the = phenomenon to the=20 ocean, his account is involved in such obscurity that it is impossible = to=20 disprove it by argument. For my part I know of no river called Ocean, = and I=20 think that Homer, or one of the earlier poets, invented the name, and = introduced=20 it into his poetry. [2.24] Perhaps, after censuring all the opinions = that have=20 been put forward on this obscure subject, one ought to propose some = theory of=20 one's own. I will therefore proceed to explain what I think to be the = reason of=20 the Nile's swelling in the summer time. During the winter, the sun is = driven out=20 of his usual course by the storms, and removes to the upper parts of = Libya. This=20 is the whole secret in the fewest possible words; for it stands to = reason that=20 the country to which the Sun-god approaches the nearest, and which he = passes=20 most directly over, will be scantest of water, and that there the = streams which=20 feed the rivers will shrink the most. [2.25] To explain, however, more at length, the = case is this.=20 The sun, in his passage across the upper parts of Libya, affects them in = the=20 following way. As the air in those regions is constantly clear, and the = country=20 warm through the absence of cold winds, the sun in his passage across = them acts=20 upon them exactly as he wont to act elsewhere in summer, when his path = is in the=20 middle of heaven - that is, he attracts the water. After attracting it, = he again=20 repels it into the upper regions, where the winds lay hold of it, = scatter it,=20 and reduce it to a vapour, whence it naturally enough comes to pass that = the=20 winds which blow from this quarter - the south and south-west - are of = all winds=20 the most rainy. And my own opinion is that the sun does not get rid of = all the=20 water which he draws year by year from the Nile, but retains some about = him.=20 When the winter begins to soften, the sun goes back again to his old = place in=20 the middle of the heaven, and proceeds to attract water equally from all = countries. Till then the other rivers run big, from the quantity of = rain-water=20 which they bring down from countries where so much moisture falls that = all the=20 land is cut into gullies; but in summer, when the showers fail, and the = sun=20 attracts their water, they become low. The Nile, on the contrary, not deriving any of its = bulk from=20 rains, and being in winter subject to the attraction of the sun, = naturally runs=20 at that season, unlike all other streams, with a less burden of water = than in=20 the summer time. For in summer it is exposed to attraction equally with = all=20 other rivers, but in winter it suffers alone. The sun, therefore, I = regard as=20 the sole cause of the phenomenon. [2.26] It is the sun also, in my opinion, which, by = heating=20 the space through which it passes, makes the air in Egypt=20 so dry. There is thus perpetual summer in the upper parts of Libya. Were = the=20 position of the heavenly regions reversed, so that the place where now = the north=20 wind and the winter have their dwelling became the station of the south = wind and=20 of the noon-day, while, on the other hand, the station of the south wind = became=20 that of the north, the consequence would be that the sun, driven from = the=20 mid-heaven by the winter and the northern gales, would betake himself to = the=20 upper parts of Europe, as he now does to those of Libya, and then I = believe his=20 passage across Europe would affect the Ister exactly as the Nile is = affected at=20 the present day. [2.27] And with respect to the fact that no breeze = blows from=20 the Nile, I am of opinion that no = wind is=20 likely to arise in very hot countries, for breezes love to blow from = some cold=20 quarter. [2.28] Let us leave these things, however, to their = natural=20 course, to continue as they are and have been from the beginning. With = regard to=20 the sources of the Nile, I have found no one among all those with whom I = have=20 conversed, whether Egyptians, Libyans, or Greeks, who professed to have = any=20 knowledge, except a single person. He was the scribe who kept the = register of=20 the sacred treasures of Minerva in the city of Sais, and he did not seem = to me=20 to be in earnest when he said that he knew them perfectly well. His = story was as=20 follows:- "Between Syene, a city of the Thebais, and Elephantine, there are" (he said) "two hills = with sharp=20 conical tops; the name of the one is Crophi, of the other, Mophi. Midway = between=20 them are the fountains of the Nile, fountains which it is impossible to = fathom.=20 Half the water runs northward into Egypt, half to the south towards = Ethiopia."=20 The fountains were known to be unfathomable, he declared, because = Psammetichus,=20 an Egyptian king, had made trial of them. He had caused a rope to be = made, many=20 thousand fathoms in length, and had sounded the fountain with it, but = could find=20 no bottom. By this the scribe gave me to understand, if there was any = truth at=20 all in what he said, that in this fountain there are certain strong = eddies, and=20 a regurgitation, owing to the force wherewith the water dashes against = the=20 mountains, and hence a Sounding-line cannot be got to reach the bottom = of the=20 spring. [2.29] No other information on this could I obtain = from any=20 quarter. All that I succeeded in learning further of the more distant = portions=20 of the Nile, by ascending myself as high as Elephantine and making = inquiries=20 concerning the parts beyond, was the following:- As one advances beyond=20 Elephantine, the land rises. Hence it = is=20 necessary in this part of the river to attach a rope to the boat on each = side,=20 as men harness an ox, and so proceed on the journey. If the rope snaps, = the=20 vessel is borne away down stream by the force of the current. The = navigation=20 continues the same for four days, the river winding greatly, like the = Maeander,=20 and the distance traversed amounting to twelve schoenes. Here you come = upon a=20 smooth and level plain, where the Nile flows in two branches, round an = island=20 called Tachompso. The country above Elephantine=20 is inhabited by the Ethiopians, who possess one-half of this island, the = Egyptians occupying the other. Above the island there is a great lake, = the=20 shores of which are inhabited by Ethiopian nomads; after passing it, you = come=20 again to the stream of the Nile, which runs into the lake. Here you = land, and=20 travel for forty days along the banks of the river, since it is = impossible to=20 proceed further in a boat on account of the sharp peaks which jut out = from the=20 water, and the sunken rocks which abound in that part of the stream. = When you=20 have passed this portion of the river in the space of forty days, you go = on=20 board another boat and proceed by water for twelve days more, at the end = of=20 which time you reach a great city called Meroe, which is said to be the = capital=20 of the other Ethiopians. The only gods worshipped by the inhabitants are = Jupiter=20 and Bacchus, to whom great honours are paid. There is an oracle of = Jupiter in=20 the city, which directs the warlike expeditions of the Ethiopians; when = it=20 commands they go to war, and in whatever direction it bids them march, = thither=20 straightway they carry their arms. [2.30] On leaving this city, and again mounting the = stream,=20 in the same space of time which it took you to reach the capital from=20 Elephantine, you come to the Deserters, who bear the name of Asmach. = This word,=20 translated into our language, means "the men who stand on the left hand = of the=20 king." These Deserters are Egyptians of the warrior caste, who, to the = number of=20 two hundred and forty thousand, went over to the Ethiopians in the reign = of king=20 Psammetichus. The cause of their desertion was the following:- Three = garrisons=20 were maintained in Egypt at=20 that time, one in the city of Elephantine against the Ethiopians, = another in=20 the Pelusiac Daphnae, against the Syrians and Arabians, and a third, = against the=20 Libyans, in Marea. (The very same posts are to this day occupied by the=20 Persians, whose forces are in garrison both in Daphnae and in = Elephantine.) Now=20 it happened, that on one occasion the garrisons were not relieved during = the=20 space of three years; the soldiers, therefore, at the end of that time,=20 consulted together, and having determined by common consent to revolt, = marched=20 away towards Ethiopia. Psammetichus, informed of the movement, set out = in=20 pursuit, and coming up with them, besought them with many words not to = desert=20 the gods of their country, nor abandon their wives and children. "Nay, = but,"=20 said one of the deserters with an unseemly gesture, "wherever we go, we = are sure=20 enough of finding wives and children." Arrived in Ethiopia, they placed=20 themselves at the disposal of the king. In return, he made them a = present of a=20 tract of land which belonged to certain Ethiopians with whom he was at = feud,=20 bidding them expel the inhabitants and take possession of their = territory. From=20 the time that this settlement was formed, their acquaintance with = Egyptian=20 manners has tended to civilise the Ethiopians. [2.31] Thus the course of the Nile is known, not = only=20 throughout Egypt, but to the extent of four months' journey either by = land or=20 water above the Egyptian boundary; for on calculation it will be found = that it=20 takes that length of time to travel from Elephantine to the country of = the=20 Deserters. There the direction of the river is from west to east. = Beyond, no one=20 has any certain knowledge of its course, since the country is = uninhabited by=20 reason of the excessive heat. [2.32] I did hear, indeed, what I will now relate, = from=20 certain natives of Cyrene. Once upon a time, they said, they were on a = visit to=20 the oracular shrine of Ammon, when it chanced that in the course of = conversation=20 with Etearchus, the Ammonian king, the talk fell upon the Nile, how that = its=20 sources were unknown to all men. Etearchus upon this mentioned that some = Nasamonians had once come to his court, and when asked if they could = give any=20 information concerning the uninhabited parts of Libya, had told the = following=20 tale. (The Nasamonians are a Libyan race who occupy the Syrtis, and a = tract of=20 no great size towards the east.) They said there had grown up among them = some=20 wild young men, the sons of certain chiefs, who, when they came to man's = estate,=20 indulged in all manner of extravagancies, and among other things drew = lots for=20 five of their number to go and explore the desert parts of Libya, and = try if=20 they could not penetrate further than any had done previously. The coast = of=20 Libya along the sea which washes it to the north, throughout its entire = length=20 from Egypt to Cape Soloeis, which is its furthest point, is inhabited by = Libyans=20 of many distinct tribes who possess the whole tract except certain = portions=20 which belong to the Phoenicians and the Greeks. Above the coast-line and = the=20 country inhabited by the maritime tribes, Libya is full of wild beasts; = while=20 beyond the wild beast region there is a tract which is wholly sand, very = scant=20 of water, and utterly and entirely a desert. The young men therefore, = despatched=20 on this errand by their comrades with a plentiful supply of water and=20 provisions, travelled at first through the inhabited region, passing = which they=20 came to the wild beast tract, whence they finally entered upon the = desert, which=20 they proceeded to cross in a direction from east to west. After = journeying for=20 many days over a wide extent of sand, they came at last to a plain where = they=20 observed trees growing; approaching them, and seeing fruit on them, they = proceeded to gather it. While they were thus engaged, there came upon = them some=20 dwarfish men, under the middle height, who seized them and carried them = off. The=20 Nasamonians could not understand a word of their language, nor had they = any=20 acquaintance with the language of the Nasamonians. They were led across=20 extensive marshes, and finally came to a town, where all the men were of = the=20 height of their conductors, and black-complexioned. A great river flowed = by the=20 town, running from west to east, and containing crocodiles. [Although he = was=20 unaware of it, Herodotus actually might have been describing the Niger = River in=20 central Africa, which would have been accessible by caravan routes = through the=20 Sahara desert.] [2.33] Here let me dismiss Etearchus the Ammonian, = and his=20 story, only adding that (according to the Cyrenaeans) he declared that = the=20 Nasamonians got safe back to their country, and that the men whose city = they had=20 reached were a nation of sorcerers. With respect to the river which ran = by their=20 town, Etearchus conjectured it to be the Nile; and reason favours that = view. For=20 the Nile certainly flows out of Libya, dividing it down the middle, and = as I=20 conceive, judging the unknown from the known, rises at the same distance = from=20 its mouth as the Danube. The Danube = river has=20 its source in the country of the Celts near the city Pyrene, and runs = through=20 the middle of Europe, dividing it = into two=20 portions. The Celts live beyond the pillars of Hercules, and border on = the=20 Cynesians, who dwell at the extreme west of Europe. Thus the Danube flows through the whole = of Europe=20 before it finally empties itself into the Euxine at Istria, one of the colonies of the Milesians. = [2.34] Now as this river flows through regions that = are=20 inhabited, its course is perfectly well known; but of the sources of the = Nile no=20 one can give any account, since Libya, the country through which it = passes, is=20 desert and without inhabitants. As far as it was possible to get = information by=20 inquiry, I have given a description of the stream. It enters Egypt from = the=20 parts beyond. Egypt lies almost exactly opposite the mountainous portion = of=20 Cilicia, whence a lightly-equipped traveller may reach Sinope on the = Euxine in=20 five days by the direct route. Sinope lies opposite the place where the=20 Danube falls into the sea. My opinion = therefore=20 is that the Nile, as it traverses the whole of Libya, is of equal length with the = Danube. And here I take my leave of this = subject. [2.35] Concerning Egypt itself I shall extend my = remarks to a=20 great length, because there is no country that possesses so many = wonders, nor=20 any that has such a number of works which defy description. Not only is = the=20 climate different from that of the rest of the world, and the rivers = unlike any=20 other rivers, but the people also, in most of their manners and customs, = exactly=20 reverse the common practice of mankind. The women attend the markets and = trade,=20 while the men sit at home at the loom; and here, while the rest of the = world=20 works the woof up the warp, the Egyptians work it down; the women = likewise carry=20 burdens upon their shoulders, while the men carry them upon their heads. = They=20 eat their food out of doors in the streets, but retire for private = purposes to=20 their houses, giving as a reason that what is unseemly, but necessary, = ought to=20 be done in secret, but what has nothing unseemly about it, should be = done=20 openly. A woman cannot serve the priestly office, either for god or = goddess, but=20 men are priests to both; sons need not support their parents unless they = choose,=20 but daughters must, whether they choose or no. [2.36] In other countries the priests have long = hair, in=20 Egypt their heads are shaven; elsewhere it is customary, in mourning, = for near=20 relations to cut their hair close: the Egyptians, who wear no hair at = any other=20 time, when they lose a relative, let their beards and the hair of their = heads=20 grow long. All other men pass their lives separate from animals, the = Egyptians=20 have animals always living with them; others make barley and wheat their = food;=20 it is a disgrace to do so in Egypt, where the grain they live on is = spelt, which=20 some call zea. Dough they knead with their feet; but they mix mud, and = even take=20 up dirt, with their hands. They are the only people in the world- they = at least,=20 and such as have learnt the practice from them - who use circumcision. = Their men=20 wear two garments apiece, their women but one. They put on the rings and = fasten=20 the ropes to sails inside; others put them outside. When they write or=20 calculate, instead of going, like the Greeks, from left to right, they = move=20 their hand from right to left; and they insist, notwithstanding, that it = is they=20 who go to the right, and the Greeks who go to the left. They have two = quite=20 different kinds of writing, one of which is called sacred, the other = common.=20 [2.37] They are religious to excess, far beyond any = other=20 race of men, and use the following ceremonies:- They drink out of brazen = cups,=20 which they scour every day: there is no exception to this practice. They = wear=20 linen garments, which they are specially careful to have always fresh = washed.=20 They practise circumcision for the sake of cleanliness, considering it = better to=20 be cleanly than comely. The priests shave their whole body every other = day, that=20 no lice or other impure thing may adhere to them when they are engaged = in the=20 service of the gods. Their dress is entirely of linen, and their shoes = of the=20 papyrus plant: it is not lawful for them to wear either dress or shoes = of any=20 other material. They bathe twice every day in cold water, and twice each = night;=20 besides which they observe, so to speak, thousands of ceremonies. They = enjoy,=20 however, not a few advantages. They consume none of their own property, = and are=20 at no expense for anything; but every day bread is baked for them of the = sacred=20 grain, and a plentiful supply of beef and of goose's flesh is assigned = to each,=20 and also a portion of wine made from the grape. Fish they are not = allowed to=20 eat; and beans - which none of the Egyptians ever sow, or eat, if they = come up=20 of their own accord, either raw or boiled - the priests will not even = endure to=20 look on, since they consider it an unclean kind of pulse. Instead of a = single=20 priest, each god has the attendance of a college, at the head of which = is a=20 chief priest; when one of these dies, his son is appointed in his room. = [2.38] Male cattle are reckoned to belong to = Epaphus, and are=20 therefore tested in the following manner:- One of the priests appointed = for the=20 purpose searches to see if there is a single black hair on the whole = body, since=20 in that case the beast is unclean. He examines him all over, standing on = his=20 legs, and again laid upon his back; after which he takes the tongue out = of his=20 mouth, to see if it be clean in respect of the prescribed marks (what = they are I=20 will mention elsewhere); he also inspects the hairs of the tail, to = observe if=20 they grow naturally. If the animal is pronounced clean in all these = various=20 points, the priest marks him by twisting a piece of papyrus round his = horns, and=20 attaching thereto some sealing-clay, which he then stamps with his own=20 signet-ring. After this the beast is led away; and it is forbidden, = under the=20 penalty of death, to sacrifice an animal which has not been marked in = this way.=20 [2.39] The following is their manner of sacrifice:- = They lead=20 the victim, marked with their signet, to the altar where they are about = to offer=20 it, and setting the wood alight, pour a libation of wine upon the altar = in front=20 of the victim, and at the same time invoke the god. Then they slay the = animal,=20 and cutting off his head, proceed to flay the body. Next they take the = head, and=20 heaping imprecations on it, if there is a market-place and a body of = Greek=20 traders in the city, they carry it there and sell it instantly; if, = however,=20 there are no Greeks among them, they throw the head into the river. The=20 imprecation is to this effect:- They pray that if any evil is impending = either=20 over those who sacrifice, or over universal Egypt,=20 it may be made to fall upon that head. These practices, the imprecations = upon=20 the heads, and the libations of wine, prevail all over Egypt, and extend = to=20 victims of all sorts; and hence the Egyptians will never eat the head of = any=20 animal. [2.40] The disembowelling and burning are, however, = different=20 in different sacrifices. I will mention the mode in use with respect to = the=20 goddess whom they regard as the greatest, and honour with the chiefest = festival.=20 When they have flayed their steer they pray, and when their prayer is = ended they=20 take the paunch of the animal out entire, leaving the intestines and the = fat=20 inside the body; they then cut off the legs, the ends of the loins, the=20 shoulders, and the neck; and having so done, they fill the body of the = steer=20 with clean bread, honey, raisins, figs, frankincense, myrrh, and other=20 aromatics. Thus filled, they burn the body, pouring over it great = quantities of=20 oil. Before offering the sacrifice they fast, and while the bodies of = the=20 victims are being consumed they beat themselves. Afterwards, when they = have=20 concluded this part of the ceremony, they have the other parts of the = victim=20 served up to them for a repast. On Scythians: [4.2] Now the Scythians blind all their slaves, to = use them=20 in preparing their milk. The plan they follow is to thrust tubes made of = bone,=20 not unlike our musical pipes, up the vulva of the mare, and then to blow = into=20 the tubes with their mouths, some milking while the others blow. They = say that=20 they do this because when the veins of the animal are full of air, the = udder is=20 forced down. The milk thus obtained is poured into deep wooden casks, = about=20 which the blind slaves are placed, and then the milk is stirred round. = That=20 which rises to the top is drawn off, and considered the best part; the = under=20 portion is of less account. Such is the reason why the Scythians blind = all those=20 whom they take in war; it arises from their not being tillers of the = ground, but=20 a pastoral race. [4.59] Thus abundantly are the Scythians provided = with the=20 most important necessaries. Their manners and customs come now to be = described.=20 They worship only the following gods, namely, Vesta, whom they reverence = beyond=20 all the rest, Jupiter, and Tellus, whom they consider to be the wife of = Jupiter;=20 and after these Apollo, Celestial Venus, Hercules, and Mars. These gods = are=20 worshipped by the whole nation: the Royal Scythians offer sacrifice = likewise to=20 Neptune. In the Scythic tongue Vesta is called Tabiti, Jupiter (very = properly,=20 in my judgment) Papaeus, Tellus Apia, Apollo Oetosyrus, Celestial Venus=20 Artimpasa, and Neptune Thamimasadas. They use no images, altars, or = temples,=20 except in the worship of Mars; but in his worship they do use them. [4.60] The manner of their sacrifices is everywhere = and in=20 every case the same; the victim stands with its two fore-feet bound = together by=20 a cord, and the person who is about to offer, taking his station behind = the=20 victim, gives the rope a pull, and thereby throws the animal down; as it = falls=20 he invokes the god to whom he is offering; after which he puts a noose = round the=20 animal's neck, and, inserting a small stick, twists it round, and so = strangles=20 him. No fire is lighted, there is no consecration, and no pouring out of = drink-offerings; but directly after the beast is strangled the = sacrificer flays=20 him, and then sets to work to boil the flesh. [4.61] As Scythia, however, is utterly barren of = firewood, a=20 plan has had to be contrived for boiling the flesh, which is the = following.=20 After flaying the beasts, they take out all the bones, and (if they = possess such=20 gear) put the flesh into boilers made in the country, which are very = like the=20 cauldrons of the Lesbians, except that they are of a much larger size; = then=20 placing the bones of the animals beneath the cauldron, they set them = alight, and=20 so boil the meat. If they do not happen to possess a cauldron, they make = the=20 animal's paunch hold the flesh, and pouring in at the same time a little = water,=20 lay the bones under and light them. The bones burn beautifully; and the = paunch=20 easily contains all the flesh when it is stript from the bones, so that = by this=20 plan your ox is made to boil himself, and other victims also to do the = like.=20 When the meat is all cooked, the sacrificer offers a portion of the = flesh and of=20 the entrails, by casting it on the ground before him. They sacrifice all = sorts=20 of cattle, but most commonly horses. [4.62] Such are the victims offered to the other = gods, and=20 such is the mode in which they are sacrificed; but the rites paid to = Mars are=20 different. In every district, at the seat of government, there stands a = temple=20 of this god, whereof the following is a description. It is a pile of = brushwood,=20 made of a vast quantity of fagots, in length and breadth three furlongs; = in=20 height somewhat less, having a square platform upon the top, three sides = of=20 which are precipitous, while the fourth slopes so that men may walk up = it. Each=20 year a hundred and fifty wagon-loads of brushwood are added to the pile, = which=20 sinks continually by reason of the rains. An antique iron sword is = planted on=20 the top of every such mound, and serves as the image of Mars: yearly = sacrifices=20 of cattle and of horses are made to it, and more victims are offered = thus than=20 to all the rest of their gods. When prisoners are taken in war, out of = every=20 hundred men they sacrifice one, not however with the same rites as the = cattle,=20 but with different. Libations of wine are first poured upon their heads, = after=20 which they are slaughtered over a vessel; the vessel is then carried up = to the=20 top of the pile, and the blood poured upon the scimitar. While this = takes place=20 at the top of the mound, below, by the side of the temple, the right = hands and=20 arms of the slaughtered prisoners are cut off, and tossed on high into = the air.=20 Then the other victims are slain, and those who have offered the = sacrifice=20 depart, leaving the hands and arms where they may chance to have fallen, = and the=20 bodies also, separate. [4.63] Such are the observances of the Scythians = with respect=20 to sacrifice. They never use swine for the purpose, nor indeed is it = their wont=20 to breed them in any part of their country. [4.64] In what concerns war, their customs are the = following.=20 The Scythian soldier drinks the blood of the first man he overthrows in = battle.=20 Whatever number he slays, he cuts off all their heads, and carries them = to the=20 king; since he is thus entitled to a share of the booty, whereto he = forfeits all=20 claim if he does not produce a head. In order to strip the skull of its=20 covering, he makes a cut round the head above the ears, and, laying hold = of the=20 scalp, shakes the skull out; then with the rib of an ox he scrapes the = scalp=20 clean of flesh, and softening it by rubbing between the hands, uses it=20 thenceforth as a napkin. The Scyth is proud of these scalps, and hangs = them from=20 his bridle-rein; the greater the number of such napkins that a man can = show, the=20 more highly is he esteemed among them. Many make themselves cloaks, like = the=20 capotes of our peasants, by sewing a quantity of these scalps together. = Others=20 flay the right arms of their dead enemies, and make of the skin, which = stripped=20 off with the nails hanging to it, a covering for their quivers. Now the = skin of=20 a man is thick and glossy, and would in whiteness surpass almost all = other=20 hides. Some even flay the entire body of their enemy, and stretching it = upon a=20 frame carry it about with them wherever they ride. Such are the Scythian = customs=20 with respect to scalps and skins. [4.70] Oaths among the Scyths are accompanied with = the=20 following ceremonies: a large earthen bowl is filled with wine, and the = parties=20 to the oath, wounding themselves slightly with a knife or an awl, drop = some of=20 their blood into the wine; then they plunge into the mixture a scimitar, = some=20 arrows, a battle-axe, and a javelin, all the while repeating prayers; = lastly the=20 two contracting parties drink each a draught from the bowl, as do also = the chief=20 men among their followers. [4.71] The tombs of their kings are in the land of = the=20 Gerrhi, who dwell at the point where the Borysthenes is first navigable. = Here,=20 when the king dies, they dig a grave, which is square in shape, and of = great=20 size. When it is ready, they take the king's corpse, and, having opened = the=20 belly, and cleaned out the inside, fill the cavity with a preparation of = chopped=20 cypress, frankincense, parsley-seed, and anise-seed, after which they = sew up the=20 opening, enclose the body in wax, and, placing it on a wagon, carry it = about=20 through all the different tribes. On this procession each tribe, when it = receives the corpse, imitates the example which is first set by the = Royal=20 Scythians; every man chops off a piece of his ear, crops his hair close, = and=20 makes a cut all round his arm, lacerates his forehead and his nose, and = thrusts=20 an arrow through his left hand. Then they who have the care of the = corpse carry=20 it with them to another of the tribes which are under the Scythian rule, = followed by those whom they first visited. On completing the circuit of = all the=20 tribes under their sway, they find themselves in the country of the = Gerrhi, who=20 are the most remote of all, and so they come to the tombs of the kings. = There=20 the body of the dead king is laid in the grave prepared for it, = stretched upon a=20 mattress; spears are fixed in the ground on either side of the corpse, = and beams=20 stretched across above it to form a roof, which is covered with a = thatching of=20 osier twigs. In the open space around the body of the king they bury one = of his=20 concubines, first killing her by strangling, and also his cup-bearer, = his cook,=20 his groom, his lacquey, his messenger, some of his horses, firstlings of = all his=20 other possessions, and some golden cups; for they use neither silver nor = brass.=20 After this they set to work, and raise a vast mound above the grave, all = of them=20 vying with each other and seeking to make it as tall as possible. [4.72] When a year is gone by, further ceremonies = take place.=20 Fifty of the best of the late king's attendants are taken, all native = Scythians=20 - for, as bought slaves are unknown in the country, the Scythian kings = choose=20 any of their subjects that they like, to wait on them - fifty of these = are taken=20 and strangled, with fifty of the most beautiful horses. When they are = dead,=20 their bowels are taken out, and the cavity cleaned, filled full of = chaff, and=20 straightway sewn up again. This done, a number of posts are driven into = the=20 ground, in sets of two pairs each, and on every pair half the felly of a = wheel=20 is placed archwise; then strong stakes are run lengthways through the = bodies of=20 the horses from tail to neck, and they are mounted up upon the fellies, = so that=20 the felly in front supports the shoulders of the horse, while that = behind=20 sustains the belly and quarters, the legs dangling in mid-air; each = horse is=20 furnished with a bit and bridle, which latter is stretched out in front = of the=20 horse, and fastened to a peg. The fifty strangled youths are then = mounted=20 severally on the fifty horses. To effect this, a second stake is passed = through=20 their bodies along the course of the spine to the neck; the lower end of = which=20 projects from the body, and is fixed into a socket, made in the stake = that runs=20 lengthwise down the horse. The fifty riders are thus ranged in a circle = round=20 the tomb, and so left. [4.73] Such, then, is the mode in which the kings = are buried:=20 as for the people, when any one dies, his nearest of kin lay him upon a = wagon=20 and take him round to all his friends in succession: each receives them = in turn=20 and entertains them with a banquet, whereat the dead man is served with = a=20 portion of all that is set before the others; this is done for forty = days, at=20 the end of which time the burial takes place. After the burial, those = engaged in=20 it have to purify themselves, which they do in the following way. First = they=20 well soap and wash their heads; then, in order to cleanse their bodies, = they act=20 as follows: they make a booth by fixing in the ground three sticks = inclined=20 towards one another, and stretching around them woolen felts, which they = arrange=20 so as to fit as close as possible: inside the booth a dish is placed = upon the=20 ground, into which they put a number of red-hot stones, and then add = some=20 hemp-seed. [4.74] Hemp grows in Scythia: it is very like flax; = only that=20 it is a much coarser and taller plant: some grows wild about the = country, some=20 is produced by cultivation: the Thracians make garments of it which = closely=20 resemble linen; so much so, indeed, that if a person has never seen hemp = he is=20 sure to think they are linen, and if he has, unless he is very = experienced in=20 such matters, he will not know of which material they are. [4.75] The Scythians, as I said, take some of this = hemp-seed,=20 and, creeping under the felt coverings, throw it upon the red-hot = stones;=20 immediately it smokes, and gives out such a vapour as no Grecian = vapour-bath can=20 exceed; the Scyths, delighted, shout for joy, and this vapour serves = them=20 instead of a water-bath; for they never by any chance wash their bodies = with=20 water. Their women make a mixture of cypress, cedar, and frankincense = wood,=20 which they pound into a paste upon a rough piece of stone, adding a = little water=20 to it. With this substance, which is of a thick consistency, they = plaster their=20 faces all over, and indeed their whole bodies. A sweet odour is thereby = imparted=20 to them, and when they take off the plaster on the day following, their = skin is=20 clean and glossy. ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/blackboard/content/contentWrapper.jsp?attachment=true&navItem=content&content_id=_2356318_1&displayName=Herodotus&course_id=_702465_1&href=/courses/1/HIS_1000_0909_001/content/_2356318_1/Herodotus.htm ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/javascript/date.js?v=9.0.440.7 // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D // Author: Matt Kruse // WWW: http://www.mattkruse.com/ // // NOTICE: You may use this code for any purpose, commercial or // private, without any further permission from the author. You may // remove this notice from your final code if you wish, however it is // appreciated by the author if at least my web site address is kept. // // You may *NOT* re-distribute this code in any way except through its // use. That means, you can include it in your product, or your web // site, or any other form where the code is actually being used. You // may not put the plain javascript up on your site for download or // include it in your javascript libraries for download.=20 // If you wish to share this code with others, please just point them // to the URL instead. // Please DO NOT link directly to my .js files from your site. Copy // the files to your server and use them there. Thank you. // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D // HISTORY // ------------------------------------------------------------------ // May 17, 2003: Fixed bug in parseDate() for dates <1970 // March 11, 2003: Added parseDate() function // March 11, 2003: Added "NNN" formatting option. Doesn't match up // perfectly with SimpleDateFormat formats, but=20 // backwards-compatability was required. // ------------------------------------------------------------------ // These functions use the same 'format' strings as the=20 // java.text.SimpleDateFormat class, with minor exceptions. // The format string consists of the following abbreviations: //=20 // Field | Full Form | Short Form // -------------+--------------------+----------------------- // Year | yyyy (4 digits) | yy (2 digits), y (2 or 4 digits) // Month | MMM (name or abbr.)| MM (2 digits), M (1 or 2 digits) // | NNN (abbr.) | // Day of Month | dd (2 digits) | d (1 or 2 digits) // Day of Week | EE (name) | E (abbr) // Hour (1-12) | hh (2 digits) | h (1 or 2 digits) // Hour (0-23) | HH (2 digits) | H (1 or 2 digits) // Hour (0-11) | KK (2 digits) | K (1 or 2 digits) // Hour (1-24) | kk (2 digits) | k (1 or 2 digits) // Minute | mm (2 digits) | m (1 or 2 digits) // Second | ss (2 digits) | s (1 or 2 digits) // AM/PM | a | // // NOTE THE DIFFERENCE BETWEEN MM and mm! Month=3DMM, not mm! // Examples: // "MMM d, y" matches: January 01, 2000 // Dec 1, 1900 // Nov 20, 00 // "M/d/yy" matches: 01/20/00 // 9/2/00 // "MMM dd, yyyy hh:mm:ssa" matches: "January 01, 2000 12:30:45AM" // ------------------------------------------------------------------ var MONTH_NAMES=3Dnew = Array('January','February','March','April','May','June','July','August','= September','October','November','December','Jan','Feb','Mar','Apr','May',= 'Jun','Jul','Aug','Sep','Oct','Nov','Dec'); var DAY_NAMES=3Dnew = Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturd= ay','Sun','Mon','Tue','Wed','Thu','Fri','Sat'); function LZ(x) {return(x<0||x>9?"":"0")+x} // ------------------------------------------------------------------ // isDate ( date_string, format_string ) // Returns true if date string matches format of format string and // is a valid date. Else returns false. // It is recommended that you trim whitespace around the value before // passing it to this function, as whitespace is NOT ignored! // ------------------------------------------------------------------ function isDate(val,format) { var date=3DgetDateFromFormat(val,format); if (date=3D=3D0) { return false; } return true; } // ------------------------------------------------------------------- // compareDates(date1,date1format,date2,date2format) // Compare two date strings to see which is greater. // Returns: // 1 if date1 is greater than date2 // 0 if date2 is greater than date1 of if they are the same // -1 if either of the dates is in an invalid format // ------------------------------------------------------------------- function compareDates(date1,dateformat1,date2,dateformat2) { var d1=3DgetDateFromFormat(date1,dateformat1); var d2=3DgetDateFromFormat(date2,dateformat2); if (d1=3D=3D0 || d2=3D=3D0) { return -1; } else if (d1 > d2) { return 1; } return 0; } // ------------------------------------------------------------------ // formatDate (date_object, format) // Returns a date in the output format specified. // The format string uses the same abbreviations as in = getDateFromFormat() // ------------------------------------------------------------------ function formatDate(date,format) { format=3Dformat+""; var result=3D""; var i_format=3D0; var c=3D""; var token=3D""; var y=3Ddate.getYear()+""; var M=3Ddate.getMonth()+1; var d=3Ddate.getDate(); var E=3Ddate.getDay(); var H=3Ddate.getHours(); var m=3Ddate.getMinutes(); var s=3Ddate.getSeconds(); var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k; // Convert real date parts into formatted versions var value=3Dnew Object(); if (y.length < 4) {y=3D""+(y-0+1900);} value["y"]=3D""+y; value["yyyy"]=3Dy; value["yy"]=3Dy.substring(2,4); value["M"]=3DM; value["MM"]=3DLZ(M); value["MMM"]=3DMONTH_NAMES[M-1]; value["NNN"]=3DMONTH_NAMES[M+11]; value["d"]=3Dd; value["dd"]=3DLZ(d); value["E"]=3DDAY_NAMES[E+7]; value["EE"]=3DDAY_NAMES[E]; value["H"]=3DH; value["HH"]=3DLZ(H); if (H=3D=3D0){value["h"]=3D12;} else if (H>12){value["h"]=3DH-12;} else {value["h"]=3DH;} value["hh"]=3DLZ(value["h"]); if (H>11){value["K"]=3DH-12;} else {value["K"]=3DH;} value["k"]=3DH+1; value["KK"]=3DLZ(value["K"]); value["kk"]=3DLZ(value["k"]); if (H > 11) { value["a"]=3D"PM"; } else { value["a"]=3D"AM"; } value["m"]=3Dm; value["mm"]=3DLZ(m); value["s"]=3Ds; value["ss"]=3DLZ(s); while (i_format < format.length) { c=3Dformat.charAt(i_format); token=3D""; while ((format.charAt(i_format)=3D=3Dc) && (i_format < format.length)) = { token +=3D format.charAt(i_format++); } if (value[token] !=3D null) { result=3Dresult + value[token]; } else { result=3Dresult + token; } } return result; } =09 // ------------------------------------------------------------------ // Utility functions for parsing in getDateFromFormat() // ------------------------------------------------------------------ function _isInteger(val) { var digits=3D"1234567890"; for (var i=3D0; i < val.length; i++) { if (digits.indexOf(val.charAt(i))=3D=3D-1) { return false; } } return true; } function _getInt(str,i,minlength,maxlength) { for (var x=3Dmaxlength; x>=3Dminlength; x--) { var token=3Dstr.substring(i,i+x); if (token.length < minlength) { return null; } if (_isInteger(token)) { return token; } } return null; } =09 // ------------------------------------------------------------------ // getDateFromFormat( date_string , format_string ) // // This function takes a date string and a format string. It matches // If the date string matches the format string, it returns the=20 // getTime() of the date. If it does not match, it returns 0. // ------------------------------------------------------------------ function getDateFromFormat(val,format) { val=3Dval+""; format=3Dformat+""; var i_val=3D0; var i_format=3D0; var c=3D""; var token=3D""; var token2=3D""; var x,y; var now=3Dnew Date(); var year=3Dnow.getYear(); var month=3Dnow.getMonth()+1; var date=3D1; var hh=3Dnow.getHours(); var mm=3Dnow.getMinutes(); var ss=3Dnow.getSeconds(); var ampm=3D""; =09 while (i_format < format.length) { // Get next token from format string c=3Dformat.charAt(i_format); token=3D""; while ((format.charAt(i_format)=3D=3Dc) && (i_format < format.length)) = { token +=3D format.charAt(i_format++); } // Extract contents of value based on format token if (token=3D=3D"yyyy" || token=3D=3D"yy" || token=3D=3D"y") { if (token=3D=3D"yyyy") { x=3D4;y=3D4; } if (token=3D=3D"yy") { x=3D2;y=3D2; } if (token=3D=3D"y") { x=3D2;y=3D4; } year=3D_getInt(val,i_val,x,y); if (year=3D=3Dnull) { return 0; } i_val +=3D year.length; if (year.length=3D=3D2) { if (year > 70) { year=3D1900+(year-0); } else { year=3D2000+(year-0); } } } else if (token=3D=3D"MMM"||token=3D=3D"NNN"){ month=3D0; for (var i=3D0; i11)) { month=3Di+1; if (month>12) { month -=3D 12; } i_val +=3D month_name.length; break; } } } if ((month < 1)||(month>12)){return 0;} } else if (token=3D=3D"EE"||token=3D=3D"E"){ for (var i=3D0; i12)){return 0;} i_val+=3Dmonth.length;} else if (token=3D=3D"dd"||token=3D=3D"d") { date=3D_getInt(val,i_val,token.length,2); if(date=3D=3Dnull||(date<1)||(date>31)){return 0;} i_val+=3Ddate.length;} else if (token=3D=3D"hh"||token=3D=3D"h") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<1)||(hh>12)){return 0;} i_val+=3Dhh.length;} else if (token=3D=3D"HH"||token=3D=3D"H") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<0)||(hh>23)){return 0;} i_val+=3Dhh.length;} else if (token=3D=3D"KK"||token=3D=3D"K") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<0)||(hh>11)){return 0;} i_val+=3Dhh.length;} else if (token=3D=3D"kk"||token=3D=3D"k") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<1)||(hh>24)){return 0;} i_val+=3Dhh.length;hh--;} else if (token=3D=3D"mm"||token=3D=3D"m") { mm=3D_getInt(val,i_val,token.length,2); if(mm=3D=3Dnull||(mm<0)||(mm>59)){return 0;} i_val+=3Dmm.length;} else if (token=3D=3D"ss"||token=3D=3D"s") { ss=3D_getInt(val,i_val,token.length,2); if(ss=3D=3Dnull||(ss<0)||(ss>59)){return 0;} i_val+=3Dss.length;} else if (token=3D=3D"a") { if (val.substring(i_val,i_val+2).toLowerCase()=3D=3D"am") = {ampm=3D"AM";} else if (val.substring(i_val,i_val+2).toLowerCase()=3D=3D"pm") = {ampm=3D"PM";} else {return 0;} i_val+=3D2;} else { if (val.substring(i_val,i_val+token.length)!=3Dtoken) {return 0;} else {i_val+=3Dtoken.length;} } } // If there are any trailing characters left in the value, it doesn't = match if (i_val !=3D val.length) { return 0; } // Is date valid for month? if (month=3D=3D2) { // Check for leap year if ( ( (year%4=3D=3D0)&&(year%100 !=3D 0) ) || (year%400=3D=3D0) ) { = // leap year if (date > 29){ return 0; } } else { if (date > 28) { return 0; } } } if ((month=3D=3D4)||(month=3D=3D6)||(month=3D=3D9)||(month=3D=3D11)) { if (date > 30) { return 0; } } // Correct hours value if (hh<12 && ampm=3D=3D"PM") { hh=3Dhh-0+12; } else if (hh>11 && ampm=3D=3D"AM") { hh-=3D12; } var newdate=3Dnew Date(year,month-1,date,hh,mm,ss); return newdate.getTime(); } // ------------------------------------------------------------------ // parseDate( date_string [, prefer_euro_format] ) // // This function takes a date string and tries to match it to a // number of possible date formats to get the value. It will try to // match against the following international formats, in this order: // y-M-d MMM d, y MMM d,y y-MMM-d d-MMM-y MMM d // M/d/y M-d-y M.d.y MMM-d M/d M-d // d/M/y d-M-y d.M.y d-MMM d/M d-M // A second argument may be passed to instruct the method to search // for formats like d/M/y (european format) before M/d/y (American). // Returns a Date object or null if no patterns match. // ------------------------------------------------------------------ function parseDate(val) { var preferEuro=3D(arguments.length=3D=3D2)?arguments[1]:false; generalFormats=3Dnew Array('y-M-d','MMM d, y','MMM = d,y','y-MMM-d','d-MMM-y','MMM d'); monthFirst=3Dnew Array('M/d/y','M-d-y','M.d.y','MMM-d','M/d','M-d'); dateFirst =3Dnew Array('d/M/y','d-M-y','d.M.y','d-MMM','d/M','d-M'); var checkList=3Dnew = Array('generalFormats',preferEuro?'dateFirst':'monthFirst',preferEuro?'mo= nthFirst':'dateFirst'); var d=3Dnull; for (var i=3D0; i 0 ) { oneRowHeight =3D = this.table.rows[this.table.rows.length-1].offsetHeight + 1 /*border = spacing*/; } //need to account for the wider header row var h =3D Math.max(this.options.tableHeight, ( ( = this.model.getMinimumRows() + 1 ) * oneRowHeight + 10 ) ); h =3D Math.min( h, this.table.offsetHeight+19 ); var w =3D Math.min(this.options.tableWidth, = this.table.offsetWidth+19); contDiv.style.height =3D h + "px"; contDiv.style.width =3D w + "px"; contDiv.style.overflow =3D "auto"; }, _initializeHTML: function() { this._sizeHTMLTable(); // wrap table with a new container div: relative see IE7 bug: = http://rowanw.com/bugs/overflow_relative.htm this.table.insert({before: ""}); this.table.previousSibling.appendChild(this.table); if (this.options.accessibleMode) { this.setAccessibleViewportSize( ); return; } // wrap table with a new viewport div this.table.insert({before: ""}); this.table.previousSibling.appendChild(this.table); var viewportDiv =3D $(this.tableId+'_viewport'); viewportDiv.style.height =3D (this.table.offsetHeight) + "px"; viewportDiv.style.overflow =3D "hidden"; =09 // add controllers to table cells var tableHeader =3D $(this.table.id + '_header'); if (tableHeader) { var numHCols =3D tableHeader.rows[0].cells.length; for (var c =3D 0; c < numHCols; c++) { new Gradebook.CellController(tableHeader.rows[0].cells[c], = this, 0, c, true); } } var numRows =3D this.table.rows.length; for (var r =3D 0; r < numRows; r++) { var numCols =3D this.table.rows[0].cells.length; for (var c =3D 0; c < numCols; c++) { var cell =3D this.table.rows[r].cells[c]; new Gradebook.CellController(cell, this, r, c, false); } } if (document.onClickHandler){ Event.stopObserving(document,'click',document.onClickHandler); } document.onClickHandler =3D = this.onDocumentClickHandler.bindAsEventListener(this); Event.observe(document,'click',document.onClickHandler); =09 if (document.onKeydownHandler){ Event.stopObserving(document,'keydown',document.onKeydownHandler); } document.onKeydownHandler =3D = this.onDocumentKeyDownHandler.bindAsEventListener(this); Event.observe(document,'keydown',document.onKeydownHandler); }, unload: function() { Gradebook.CellController.prototype.removeAllSavingDivs(); var numRows =3D this.table.rows.length; for (var r =3D 0; r < numRows; r++){ var numCols =3D this.table.rows[0].cells.length; for (var c =3D 0; c < numCols; c++){ var cell =3D this.table.rows[r].cells[c]; if (cell.controller) { cell.controller.unload(); } } } var tableHeader =3D $(this.table.id + '_header'); if (tableHeader){ var numHCols =3D tableHeader.rows[0].cells.length; for (var c =3D 0; c < numHCols; c++){ var cell =3D tableHeader.rows[0].cells[c]; if (cell.controller) { cell.controller.unload(); } } } if (this.viewPort) this.viewPort.unload(); this.model.removeModelListeners(); this.table =3D null; this.model =3D null; this.viewPort =3D null; this.options =3D null; this.sortCell =3D null; }, _sizeHTMLTable: function() { var tbl =3D this.table; var tableHeader =3D $(this.table.id + '_header'); var numRows =3D 0; var numCols =3D 0; =20 var numFrozenColumns =3D this.options.numFrozenColumns; // presence of th impacts the calculation of the row height // so we remove it before the calculation occurs if (numFrozenColumns =3D=3D 0){ for (var i=3D0; i=3D numCols){ numFrozenColumns =3D numCols-1; this.options.numFrozenColumns =3D numFrozenColumns; } =09 // assumes the table has at least 1 row & 2 cols // the first column is a frozen column // the second column is a non-frozen column // clone frozen columns for (var i =3D 0; i < numFrozenColumns-1; i++){ this._cloneColumn(1); // skip check box column } // clone non-frozen columns var numNonFrozenColumns =3D numCols - numFrozenColumns - 1; for (var i =3D 0; i < numNonFrozenColumns; i++){ this._cloneColumn(numFrozenColumns+1); // skip check box column } =09 var checkColumnWidth =3D this.table.rows[0].cells[0].offsetWidth; var visibleWidth =3D this.table.offsetWidth; this.avgColWidth =3D (visibleWidth - checkColumnWidth)/numCols; var frozenWidth =3D (numFrozenColumns * this.avgColWidth) + = checkColumnWidth; $("selectedRows").style.width=3Dthis.isIE?frozenWidth + "px": = frozenWidth-2 +"px"; =09 =09 // clone rows var numRowsToAdd =3D numRows - tbl.rows.length; if (tableHeader) numRowsToAdd--; =09 var rowToClone =3D tbl.rows[this.table.rows.length-1]; for (var i =3D 0; i < numRowsToAdd; i++){ tbl.tBodies[0].appendChild(rowToClone.cloneNode(true)); } // remove table rows if html table is bigger than numRows while (tbl.rows.length > numRows){ if (tbl.rows.length > 0) tbl.deleteRow(tbl.rows.length - 1); } // remove table columns if html table is bigger than model var allRows =3D tbl.rows;=09 while (tbl.rows.length > 0 && tbl.rows[0].cells.length-1 > = this.model.getNumColDefs()){ for (var i=3D0; i 1) { allRows[i].deleteCell(-1); } } } while (tableHeader && tableHeader.rows[0].cells.length-1 > = this.model.getNumColDefs()){ tableHeader.rows[0].deleteCell(-1); } }, _cloneColumn: function(colIndex){ var tbl =3D this.table; for (var i =3D 0; i < tbl.rows.length; i++) { var origCell =3D tbl.rows[i].cells[colIndex];=20 var newCell =3D origCell.cloneNode(true); tbl.rows[i].insertBefore(newCell,origCell); } var tableHeader =3D $(this.table.id + '_header'); if (tableHeader){ var tbl =3D tableHeader; for (var i =3D 0; i < tbl.rows.length; i++) { var origCell =3D tbl.rows[i].cells[colIndex];=20 var newCell =3D origCell.cloneNode(true); tbl.rows[i].insertBefore(newCell,origCell); } } }, =20 _setAccessibilityHeaders: function(){ if (!this.options.accessibleMode){ return; } var tbl =3D this.table; // add abbr attributes to all header cells var hdrRow =3D tbl.rows[0]; for ( var i =3D 1; i < hdrRow.cells.length; i++ ) { var cell =3D hdrRow.cells[i]; cell.abbr =3D cell.controller.getGridCell().getName(); } tbl.rows[0].cells[0].abbr =3D " "; var abbrColIndexs =3D this.getAbbrColIndexs(); =09 if ( tbl.rows.length > 1 && tbl.rows[1].cells.length > 1 )=20 { for ( var i =3D 1; i < tbl.rows.length; i++ )=20 { abbrColIndexs.each(function(idx) { var cell =3D tbl.rows[i].cells[ idx + 1 ]; // skip checkbox = cell cell.abbr =3D cell.controller.getGridCell().getValue(); cell.scope =3D 'row'; }); } } }, =20 getAbbrColIndexs: function()=20 { if ( !this.abbrColIndexs ) { this.abbrColIndexs =3D new Array(); /* Add abbr attributes to specific columns to allow screen readers to=20 announce meaningful column headers based on the following rules: =09 1. If both first and last name are visible, use those. 2. If the username is visible, use that. 3. If neither of the first cases pass, use the first column as the = header.=20 */ var lastNameColIndex =3D this.model.getVisibleColDefIndex('LN'); var firstNameColIndex =3D this.model.getVisibleColDefIndex('FN'); var userNameColIndex =3D this.model.getVisibleColDefIndex('UN'); if ( lastNameColIndex !=3D -1 && firstNameColIndex !=3D -1 ) { this.abbrColIndexs.push( lastNameColIndex );=20 this.abbrColIndexs.push( firstNameColIndex ); } else if ( userNameColIndex !=3D -1 ) { this.abbrColIndexs.push( userNameColIndex ); } else { this.abbrColIndexs.push( 0 ); } } return this.abbrColIndexs; }, =20 onDocumentClickHandler: function(evt) { if ( document.ignoreOnClick ) return; Gradebook.CellController.prototype.closePopupsAndRestoreFocus(evt); }, onDocumentKeyDownHandler: function(evt) { GradebookUtil.debug('onDocumentKeyDownHandler keyCode =3D = '+evt.keyCode); if (!Gradebook.CellController.prototype.tableHasFocus) return; var ek=3Devt.keyCode; var visibleRowCount =3D this.viewPort.getNumVisibleRows(); var deltaRow =3D 0; var deltaCol =3D 0; /* * the model grid cell index is R2L agnostic: thus moving right in L2R = is moving towards the next col (+1),=20 * while in R2L it is going towards the previous col (-1). */ switch (ek) { case (Event.KEY_LEFT): deltaCol =3D page.util.isRTL()?1:-1; break; case (Event.KEY_RIGHT): deltaCol =3D page.util.isRTL()?-1:1; break; case (Event.KEY_UP): deltaRow =3D -1; break; case (Event.KEY_DOWN): deltaRow =3D 1; break; case (33/* page up */): if ( !this.options.accessibleMode ) deltaRow = =3D -visibleRowCount; break; case (34/* page down */): if ( !this.options.accessibleMode ) = deltaRow =3D visibleRowCount; break; case (Event.KEY_TAB): if ( !Gradebook.CellController.currentSelectedCell || !Element.descendantOf( evt.element(), = Gradebook.CellController.currentSelectedCell.controller.htmlCell ) ) = break; if ( evt.shiftKey ) { if ( !evt.element().hasClassName('cmimg') && !this.isFirstCell() = ) deltaCol =3D -1; break; } else if ( !this.isLastCell() && ( evt.element().hasClassName('cmimg') || = this.isCurrentCellWithoutMenu() ) ) { deltaCol =3D 1; } break; } if (deltaRow =3D=3D 0 && deltaCol =3D=3D 0) { return; } else { Event.stop( evt ); this.selectRelativeCell(deltaRow, deltaCol); Gradebook.CellController.prototype.closePopups(evt); } }, =09 isLastCell: function() { if ( Gradebook.CellController.currentSelectedCell =3D=3D null ) = return false; // last cell if it is the last displayed cell with no more scroll = available right or down var nextSelectedCol =3D = Gradebook.CellController.currentSelectedCell.controller.col; var nextSelectedRow =3D = Gradebook.CellController.currentSelectedCell.controller.row+1; return ( nextSelectedCol >=3D this.viewPort.numVisibleCols ) && ( nextSelectedRow >=3D this.viewPort.numVisibleRows ) && ( ( this.viewPort.lastRowPos/*offset*/ + = this.viewPort.numVisibleRows ) =3D=3D this.model.getNumRows() ) &&=20 ( ( this.viewPort.colOffset + this.viewPort.numVisibleCols ) = =3D=3D this.model.getNumColDefs() ); }, isFirstCell: function() { if ( Gradebook.CellController.currentSelectedCell =3D=3D null ) = return false; return ( = Gradebook.CellController.currentSelectedCell.controller.col=3D=3D1/*check= box*/ && = Gradebook.CellController.currentSelectedCell.controller.row=3D=3D0 && ( !this.viewPort.scrollerDiv /*null if no vertical scroll*/ = || this.viewPort.scrollerDiv.scrollTop =3D=3D 0 ) ); }, isCurrentCellWithoutMenu: function() { // the only cell type that does not display a context menu are = calculated columns if ( Gradebook.CellController.currentSelectedCell =3D=3D null ) = return false; var gridCell =3D = Gradebook.CellController.currentSelectedCell.controller.getGridCell(); if ( !gridCell ) return true; return gridCell.isGrade() && !gridCell.canEdit();=20 }, =09 selectRelativeCell: function(deltaRow, deltaCol) { var visibleRowCount =3D this.viewPort.getNumVisibleRows(); var visibleColumnCount =3D this.viewPort.getNumVisibleCols(); var modelRowCount =3D this.model.getNumRows(); var modelColumnCount =3D this.model.getNumColDefs(); var cellController =3D this.currentCellController; if (Gradebook.CellController.currentSelectedCell !=3D null){ cellController =3D = Gradebook.CellController.currentSelectedCell.controller; } var currentSelectedRow =3D cellController.row; var currentSelectedCol =3D cellController.col - 1; // skip checkbox = col var selectDelay =3D 100; currentSelectedRow +=3D deltaRow; if (currentSelectedRow < 0 || currentSelectedRow >=3D = visibleRowCount){ currentSelectedRow -=3D deltaRow; selectDelay =3D 500; // need longer delay to select cell until scroll = completes if (this.viewPort.scrollRows(deltaRow ) =3D=3D false) { if (deltaRow < 0){=20 // wrap to bottom of previous col if (currentSelectedCol =3D=3D 0) return; deltaRow =3D modelRowCount - visibleRowCount; currentSelectedRow =3D visibleRowCount - 1; currentSelectedCol -=3D 1; } else { // wrap to top of next col deltaRow =3D visibleRowCount - modelRowCount; currentSelectedRow =3D 0; if (currentSelectedCol < visibleColumnCount-1){=20 currentSelectedCol +=3D 1; } else { this.viewPort.scrollCols(1); }=20 } this.viewPort.scrollRows(deltaRow); } } currentSelectedCol +=3D deltaCol; if ((currentSelectedCol < this.options.numFrozenColumns && deltaCol < = 0) || currentSelectedCol >=3D visibleColumnCount){ currentSelectedCol -=3D deltaCol; selectDelay =3D 500; // need longer delay to select cell until scroll = completes if (this.viewPort.scrollCols( deltaCol ) =3D=3D false) { if (deltaCol < 0){=20 if (currentSelectedCol > 0) { // navigate in frozen columns currentSelectedCol +=3D deltaCol; } else { // wrap to end of previous row if (currentSelectedRow =3D=3D 0) return; deltaCol =3D modelColumnCount - visibleColumnCount; currentSelectedCol =3D visibleColumnCount - 1; currentSelectedRow -=3D 1; } } else { // wrap to beginning of next row deltaCol =3D visibleColumnCount - modelColumnCount; currentSelectedCol =3D 0; if (currentSelectedRow < visibleRowCount-1){=20 currentSelectedRow +=3D 1; } else { this.viewPort.scrollRows(1); }=20 } this.viewPort.scrollCols(deltaCol); } } // select the current cell after servicing the main event loop to = allow current events to complete // this was needed for AS-110508 to apply the left/right arrow event = to cell navigation only and not to cell editing too. this.currentCellController =3D = this.table.rows[currentSelectedRow].cells[currentSelectedCol+1].controlle= r; setTimeout(this.selectCell.bind(this), selectDelay ); }, =09 selectCell: function() { this.currentCellController.selectCell(); }, sortColumn: function(newSortCell,sortDir) { if (newSortCell !=3D this.sortCell) { this.sortDir =3D 'ASC'; if (this.sortCell) { this.sortCell.setSortImage('NO_SORT'); // remove current sort image } } else { this.sortDir =3D (this.sortDir =3D=3D 'ASC')?'DESC':'ASC'; // toggle } if (sortDir){ this.sortDir =3D sortDir; } this.sortCell =3D newSortCell; this.sortCell.setSortImage(this.sortDir); // show new sort image =09 // sort the model this.modelSortIndex =3D = this.viewPort.toModelIndex(this.sortCell.col-1); // skip checkbox column this.model.sort(this.modelSortIndex,this.sortDir); =09 // refresh the view this.viewPort.moveScroll(0); this.viewPort.refreshContents(0); }, updateSortImage: function(){ if (!this.viewPort){ return; } if (this.sortCell) { this.sortCell.setSortImage('NO_SORT'); // remove current sort image } var viewSortIndex =3D this.viewPort.toViewIndex(this.modelSortIndex); if (viewSortIndex < 0){ this.sortCell =3D null; } else { var headerTable =3D $(this.table.id + '_header'); if (!headerTable){ return; } this.sortCell =3D = headerTable.rows[0].cells[viewSortIndex+1].controller; // add 1 to = account for check column =09 this.sortCell.setSortImage(this.sortDir); } }, =09 //focused is restored only in AX view since user has to leave the page = for update restoreFocus: function() { if ( !this.options || !this.options.accessibleMode || = !Gradebook.getModel().lastFocusedRow || = !Gradebook.getModel().lastFocusedCol ) return; if ( GradebookUtil.isIE() ) { setTimeout(this.doRestoreFocus.bind(this), 0 ); } else { this.doRestoreFocus(); } }, =09 doRestoreFocus: function() { var lastFocusedRow =3D Gradebook.getModel().lastFocusedRow; var lastFocusedCol =3D Gradebook.getModel().lastFocusedCol; = this.table.rows[lastFocusedRow].cells[lastFocusedCol].controller.selectCe= ll(); Gradebook.getModel().lastFocusedRow =3D null; Gradebook.getModel().lastFocusedCell =3D null; } =09 }; //Gradebook.GridViewPort = -------------------------------------------------- Gradebook.GridViewPort =3D Class.create(); Gradebook.GridViewPort.prototype =3D { initialize: function(table, model, options,grid) { this.isIE =3D GradebookUtil.isIE(); this.isNS7 =3D GradebookUtil.isNS7(); this.table =3D table; this.model =3D model; this.options =3D options; this.grid =3D grid; this.lastPixelOffset =3D 0; this.colOffset =3D 0; this.lastRowPos =3D 0; this.startScrollLeft =3D 0; this.headerTableId =3D this.table.id + '_header'; this.headerTable =3D $(this.headerTableId); if (!this.headerTable)=20 this.headerTable =3D this.table; this.numVisibleRows =3D this.table.rows.length; if ( this.headerTable.rows[0] ) { this.numVisibleCols =3D this.headerTable.rows[0].cells.length-1; // = don't include check column } this.rowHeight =3D this.table.offsetHeight/this.numVisibleRows; this.div =3D this.table.parentNode; this.initScrollers(); }, unload: function() { this.grid =3D null; this.model =3D null; this.table =3D null; this.headerTable =3D null; this.div =3D null; this.scrollerDiv =3D null; this.heightDiv =3D null; this.scrollerDivH =3D null; this.widthDiv =3D null; this.options =3D null; }, =09 modelChanged: function() { this.refreshContentsH(); }, =09 getModelGridCell: function(row, col) { // in accessibleMode, row 0 is header, so we need to compensate to get = model row if (this.options.accessibleMode && row > 0){ row -=3D 1; } if (col > 0) col -=3D 1; // skip check col if (col >=3D this.options.numFrozenColumns)=20 col +=3D this.colOffset;=20 var iterators =3D this.model.getRowIterators(row+this.lastRowPos, 1, = col); if (!iterators || iterators.length !=3D 1 || !iterators[0].hasNext()){ GradebookUtil.error('getModelGridCell cannot get grid cell for row: = '+ row+' col: '+col); } return iterators[0].next(); }, getHeaderGridCell: function(col) { if (col > 0) col -=3D 1; // skip check col if (col >=3D this.options.numFrozenColumns)=20 col +=3D this.colOffset;=20 var iterator =3D this.model.getColDefIterator(col); if (!iterator || !iterator.hasNext()){ GradebookUtil.error('getHeaderGridCell cannot get header cell for = col: '+col); } return iterator.next(); }, getNumVisibleRows: function() { return this.numVisibleRows; }, getNumVisibleCols: function() { return this.numVisibleCols; }, populateRow: function(htmlRow, frozenColRowIterator, = scrollableColRowIterator) { var numFrozenColumns =3D this.options.numFrozenColumns; for (var j=3D0; j < (this.numVisibleCols); j++) { var iterator =3D (j < = numFrozenColumns)?frozenColRowIterator:scrollableColRowIterator; var gridCell =3D iterator.next(); var htmlCell =3D htmlRow.cells[j+1]; // set check box column based on isRowChecked flag for first grid = cell if (j =3D=3D 0){ var checkInput =3D = GradebookUtil.getChildElementByClassName(htmlRow.cells[0], 'input', = 'checkInput'); checkInput.checked =3D gridCell.isRowChecked(); } htmlCell.controller.renderHTML(gridCell); } }, =20 refreshContents: function(rowOffset) { if (this.model.getNumRows() =3D=3D 0) return; if (this.options.accessibleMode){ this.refreshAccessibleContents(); return; } Gradebook.CellController.prototype.hideAllSavingDivs(); var numRows =3D this.numVisibleRows; var numModelRows =3D this.model.getNumRows(); if (rowOffset + numRows > numModelRows) rowOffset =3D numModelRows - numRows - 1 var numFrozenColumns =3D this.options.numFrozenColumns; var frozenColRowIterators =3D this.model.getRowIterators(rowOffset, = numRows, 0); var scrollableColRowIterators =3D frozenColRowIterators; if (this.numVisibleCols > numFrozenColumns){ scrollableColRowIterators =3D this.model.getRowIterators(rowOffset, = numRows, numFrozenColumns+this.colOffset); } for (var i=3D0; i < numRows; i++) { this.populateRow(this.table.rows[i], frozenColRowIterators[i], = scrollableColRowIterators[i]); } this.lastRowPos =3D rowOffset; }, refreshAccessibleContents: function() { var numModelRows =3D this.model.getNumRows(); var iters =3D this.model.getRowIterators(); var numCols =3D this.table.rows[0].cells.length - 1; // skip check = column var start =3D new Date().getTime(); if (this.refreshRowCounter =3D=3D undefined) this.refreshRowCounter = =3D 0; for (var i =3D this.refreshRowCounter; i < numModelRows; i++) { var htmlRowIndex =3D i+1; // skip header row var htmlRow =3D this.table.rows[htmlRowIndex]; // if we are rendering for more than 3 seconds, give Firefox some = time to get // rid of the "unresponsive script" message. if(new Date().getTime() - start > 3000){ setTimeout(this.refreshAccessibleContents.bind(this), 0 ); return; } =09 for (var j=3D0; j < numCols; j++) { var gridCell =3D iters[i].next(); var htmlCell =3D htmlRow.cells[j+1]; // skip check column if (htmlCell.controller =3D=3D undefined){ new Gradebook.CellController(htmlCell, this.grid, htmlRowIndex, = j+1, true ); } htmlCell.controller.renderHTML(gridCell); // set check box column based on isRowChecked flag for first grid = cell if (j =3D=3D 0){ var htmlCell =3D htmlRow.cells[0]; if (htmlCell.controller =3D=3D undefined){ new Gradebook.CellController(htmlCell, this.grid, htmlRowIndex, j, = true ); } var checkInput =3D $(htmlCell).down('input'); checkInput.checked =3D gridCell.isRowChecked(); } } var rowTitle =3D gradebook2Messages['selectUserMsg']; this.grid.getAbbrColIndexs().each(function(idx) { var cell =3D htmlRow.cells[ idx + 1 ]; // skip checkbox cell rowTitle +=3D " " + cell.controller.getGridCell().getValue(); }); htmlRow.cells[ 0 ].controller.checkInput.title =3D rowTitle; =09 this.refreshRowCounter++; } this.refreshRowCounter =3D null; }, refreshContentsH: function() { // refresh data cells this.refreshContents(this.lastRowPos); // refresh the header cells var numFrozenColumns =3D this.options.numFrozenColumns; var hdrCells =3D null; var hdr =3D $(this.table.id+'_header'); if (hdr)=20 hdrCells =3D hdr.rows[0].cells; else hdrCells =3D this.table.rows[0].cells; if ( !hdrCells ) return; var frozenColIterator =3D this.model.getColDefIterator(0); var scrollableColIterator =3D null; if (this.numVisibleCols > numFrozenColumns){ scrollableColIterator =3D = this.model.getColDefIterator(numFrozenColumns+this.colOffset); } for (var i=3D0; i < this.numVisibleCols; i++) { var iterator =3D (i < = numFrozenColumns)?frozenColIterator:scrollableColIterator; var htmlCell =3D hdrCells[i+1]; // skip check column var colDef =3D iterator.next(); if (htmlCell.controller =3D=3D undefined){ new Gradebook.CellController(htmlCell, this.grid, 0, i+1, true); } htmlCell.controller.renderHeaderCellHTML( colDef ); =20 } // add the check all listener if not present if ( !hdrCells[0].controller ) new = Gradebook.CellController(hdrCells[0], this.grid, 0, 0, true); this.grid.updateSortImage(); }, visibleHeight: function() { return parseInt(GradebookUtil.getElementsComputedStyle(this.div, = 'height')); }, toViewIndex: function(modelSortIndex){ var numFrozenColumns =3D this.options.numFrozenColumns; if (modelSortIndex < numFrozenColumns){ return modelSortIndex; } var vi =3D (modelSortIndex - this.colOffset); if (numFrozenColumns <=3D vi && vi < this.numVisibleCols)=20 return vi; else return -1; }, toModelIndex: function(viewSortIndex) { if (viewSortIndex =3D=3D -1)=20 return -1; var numFrozenColumns =3D this.options.numFrozenColumns; var mi =3D (viewSortIndex < numFrozenColumns) ? viewSortIndex : = (this.colOffset + viewSortIndex); return mi; }, // scrolling management initScrollers: function() { this.createVScrollBar(); this.createHScrollBar(); this.lastVScrollPos =3D 0; if ( this.scrollerDivH !=3D null )=20 this.lastHScrollPos =3D this.scrollerDivH.scrollLeft; else=20 this.lastHScrollPos =3D 0; this.startScrollLeft =3D this.lastHScrollPos; }, createVScrollBar: function() { // see comments on createHScroolBar() if (this.table.rows.length >=3D this.model.getNumRows()) return; var visibleHeight =3D this.visibleHeight(); // create the outer div... this.scrollerDiv =3D document.createElement("div"); var scrollerStyle =3D this.scrollerDiv.style; scrollerStyle.borderRight =3D this.options.scrollerBorderRight; scrollerStyle.position =3D "absolute"; var tableWidth =3D this.isIE? this.table.offsetWidth-2+"px" : = this.isNS7? this.table.offsetWidth-15+"px" : = this.table.offsetWidth-3+"px"; if ( document.documentElement.dir =3D=3D 'rtl' )=20 scrollerStyle.right =3D tableWidth; else=20 scrollerStyle.left =3D tableWidth; scrollerStyle.top =3D "0px"; scrollerStyle.width =3D this.isNS7 ? "30px" : "19px"; scrollerStyle.height =3D visibleHeight + "px"; scrollerStyle.overflow =3D "auto"; // create the inner div... this.heightDiv =3D document.createElement("div"); this.heightDiv.style.width =3D "1px"; =09 this.rowHeight =3D = this.table.rows[this.table.rows.length-1].cells[1].offsetHeight; var divHeight =3D this.rowHeight * this.model.getNumRows(); divHeight +=3D ( this.numVisibleRows + 1 ); // looks like we are = missing one pix per row, if not added we cannot scroll to the last item =09 this.heightDiv.style.height =3D parseInt(divHeight) + "px" ; this.scrollerDiv.appendChild(this.heightDiv); = Event.observe(this.scrollerDiv,'scroll',this.handleVScroll.bindAsEventLis= tener(this)); GradebookUtil.debug('createVScrollBar - this.rowHeight =3D = '+this.rowHeight); GradebookUtil.debug('createVScrollBar - visibleHeight =3D = '+visibleHeight); GradebookUtil.debug('createVScrollBar - numVisibleRows =3D = '+this.numVisibleRows); GradebookUtil.debug('createVScrollBar - this.model.getNumRows() =3D = '+this.model.getNumRows()); GradebookUtil.debug('createVScrollBar - this.heightDiv.style.height = =3D '+this.heightDiv.style.height); this.table.parentNode.parentNode.insertBefore( this.scrollerDiv, = this.table.parentNode.nextSibling ); var eventName =3D this.isIE ? "mousewheel" : "DOMMouseScroll"; Event.observe(this.table, eventName,=20 function(evt) { if (evt.wheelDelta>=3D0 || evt.detail < 0) = //wheel-up this.scrollerDiv.scrollTop -=3D = (2*this.rowHeight); else this.scrollerDiv.scrollTop +=3D = (2*this.rowHeight); this.handleVScroll(); }.bindAsEventListener(this),=20 false); }, createHScrollBar: function() { // logic here is to create an div the same width that the non = frozen columns // then put inside it an invisible inner div that would be the = width of the non // frozen if they were all visible; by setting the parent with = overflow: auto=20 // scroll bars will appear, and the scrolling events are captured = to decide what // portion of the table should be displayed. if (!this.headerTable.rows[0] || = this.headerTable.rows[0].cells.length > this.model.getNumColDefs()) = return; var totalColumnCount =3D this.model.getNumColDefs(); var visibleColumnCount =3D this.numVisibleCols; var numFrozenColumns =3D this.options.numFrozenColumns; this.maxColOffset =3D totalColumnCount - (visibleColumnCount - = numFrozenColumns) - 1; var visibleHeight =3D this.isIE ? this.table.offsetHeight - 23 : = this.isNS7 ? this.table.offsetHeight - 16 : this.table.offsetHeight - 3; var checkColumnWidth =3D = this.headerTable.rows[0].cells[0].offsetWidth; // set avg col width to be based on actual cell width (not = including padding, etc.) // this will allow scrolling to be more accurate this.avgColWidth =3D this.headerTable.rows[0].cells[1].offsetWidth; var frozenWidth =3D (numFrozenColumns * this.avgColWidth) + = checkColumnWidth; visibleWidth =3D ( visibleColumnCount - numFrozenColumns ) * = this.avgColWidth; // create the outer div... this.scrollerDivH =3D document.createElement("div"); var scrollerStyle =3D this.scrollerDivH.style; scrollerStyle.position =3D "absolute"; if ( document.documentElement.dir =3D=3D 'rtl' )=20 scrollerStyle.right =3DfrozenWidth + "px"; else=20 scrollerStyle.left =3D frozenWidth + "px"; scrollerStyle.top =3D visibleHeight + "px"; scrollerStyle.height =3D this.isIE ? "40px" : this.isNS7 ? = "30px" : "19px"; scrollerStyle.width =3D visibleWidth + "px"; scrollerStyle.overflow =3D "auto"; // create the inner div... this.widthDiv =3D document.createElement("div"); this.widthDiv.style.height =3D "1px"; this.widthDiv.style.direction =3D 'ltr'; this.widthDiv.style.width =3D ( this.avgColWidth * ( = totalColumnCount-numFrozenColumns ) ) + "px"; this.scrollerDivH.appendChild(this.widthDiv); = Event.observe(this.scrollerDivH,'scroll',this.handleHScroll.bindAsEventLi= stener(this)); if (this.scrollerDiv){ this.table.parentNode.parentNode.insertBefore( this.scrollerDivH, = this.scrollerDiv.nextSibling ); } else { this.table.parentNode.parentNode.insertBefore( this.scrollerDivH, = this.table.parentNode.nextSibling ); } }, rowToPixel: function(rowOffset) { return (rowOffset / this.model.getNumRows()) * = this.heightDiv.offsetHeight }, =20 moveScroll: function(rowOffset) { if (this.scrollerDiv){ this.scrollerDiv.scrollTop =3D this.rowToPixel(rowOffset); } }, /* When scrolling, IE sends multiple onscroll events for a single = scroll action by the user. To get around this, we set a timer and wait until the dust settles = before doing the scroll Here is info on the work around: = http://support.microsoft.com/kb/238004 */ // scroll numRows, can be negative. returns false if scroll request is = out of range scrollRows: function(numRows) { if (!this.scrollerDiv) return false; if ((numRows < 0 && this.scrollerDiv.scrollTop =3D=3D 0) ||=20 (numRows > 0 && this.lastRowPos =3D=3D (this.model.getNumRows() - = this.numVisibleRows))) { return false; } this.ignoreOnVscroll =3D true; this.scrollerDiv.scrollTop +=3D (numRows * this.rowHeight); setTimeout(this.doVScroll.bind(this), 200 ); }, handleVScroll: function(evt) { if (this.ignoreOnVscroll) return; this.ignoreOnVscroll =3D true; setTimeout(this.doVScroll.bind(this), 200 ); }, doVScroll: function() { Gradebook.CellController.prototype.onGridScroll(); var incomingscrollTop =3D this.scrollerDiv.scrollTop; var scrollDiff =3D this.lastVScrollPos-this.scrollerDiv.scrollTop; if (scrollDiff !=3D 0.00) { var r =3D this.scrollerDiv.scrollTop % this.rowHeight; if (r !=3D 0) { if (scrollDiff < 0 ) { this.scrollerDiv.scrollTop +=3D (this.rowHeight-r); } else { this.scrollerDiv.scrollTop -=3D r; } } var contentOffset =3D parseInt(this.scrollerDiv.scrollTop / = parseInt(this.rowHeight)); GradebookUtil.debug('doVScroll - incomingscrollTop =3D = '+incomingscrollTop+ ' r =3D '+r+ ' new scrollTop =3D '+this.scrollerDiv.scrollTop+ ' lastVScrollPos =3D '+this.lastVScrollPos+ ' contentOffset =3D '+contentOffset); this.refreshContents(contentOffset); this.lastVScrollPos =3D this.scrollerDiv.scrollTop; } this.ignoreOnVscroll =3D false; }, handleHScroll: function(evt) { if (this.ignoreOnHscroll) return; this.ignoreOnHscroll =3D true; setTimeout(this.doHScroll.bind(this), 200 ); }, =09 // scroll numCols, can be negative. returns false if scroll request is = out of // range scrollCols : function(numCols) { if (!this.scrollerDivH) return false; var totalColumnCount =3D this.model.getNumColDefs(); if ((numCols < 0 && this.scrollerDivH.scrollLeft =3D=3D 0) || (numCols > 0 && this.colOffset =3D=3D = (this.model.getNumColDefs() - this.numVisibleCols))) { return false; } this.ignoreOnHscroll =3D true; /* * so here we need to translate delta to actual scroll value. The = delta is screen orientation agnostic (we need to move to that col in the = model)=20 * we need to translate the move in a pixel move to the left: a move = to the left in l2r means we move to the next col, * while in r2l it means we move to previous col, thus the inversion = of orientation if r2l. */ this.scrollerDivH.scrollLeft +=3D (numCols * this.avgColWidth * = (page.util.isRTL()?-1:1) ); setTimeout(this.doHScroll.bind(this), 200); return true; }, doHScroll: function() { Gradebook.CellController.prototype.onGridScroll(); var scrollDiff =3D this.lastHScrollPos - = this.scrollerDivH.scrollLeft; if (scrollDiff !=3D 0.00) { // To align the column scroll - we move by column increment var r =3D this.scrollerDivH.scrollLeft % this.avgColWidth; if (r !=3D 0) { if (scrollDiff < 0 ) { this.scrollerDivH.scrollLeft +=3D (this.avgColWidth-r); } else { this.scrollerDivH.scrollLeft -=3D r; } } if ( document.documentElement.dir =3D=3D 'rtl' ) { // Subtract the max scroll left with the current one and divide = with the avgColWidth=20 this.colOffset =3D parseInt( (this.startScrollLeft - = this.scrollerDivH.scrollLeft) / this.avgColWidth); } else { this.colOffset =3D parseInt(this.scrollerDivH.scrollLeft / = this.avgColWidth); } this.colOffset =3D Math.min(this.colOffset,this.maxColOffset); this.refreshContentsH(); this.lastHScrollPos =3D this.scrollerDivH.scrollLeft; } this.ignoreOnHscroll =3D false; } }; //********************************************************************* //************ Gradebook.CellController ******************************* //********************************************************************* Gradebook.CellController =3D Class.create(); Gradebook.CellController.prototype =3D { /* Controls all user interaction with an HTM table cell and its = corresponding grid model cell including: =09 cell-type specific context menus sorting by clicking on header cell selecting a table cell editing of cell value, which includes: going into edit mode - showing an input text values to be entered validating input as typed listening for certain keys to submit or cancel editing submitting changes to server and showing "Saving indicator" check box in first column for selecting students rendering of cell value and state indicators grade comment & column into popups */ initialize: function(htmlCell, grid, row, column, isHeaderTable ) { =09 this.htmlCell =3D $(htmlCell); this.htmlCell.id =3D row+','+column; this.htmlCell.controller =3D this; this.grid =3D grid; this.row =3D row; this.col =3D column; this.isHeaderTable =3D isHeaderTable; Gradebook.CellController.tableId =3D this.grid.table.id; var accessibleMode =3D this.grid.options.accessibleMode; this.isTopLeft =3D (this.row =3D=3D 0 && this.col =3D=3D 0) && = isHeaderTable; if (accessibleMode) { this._accessibleInit(); } else { this._nonAccessibleInit(); } }, _nonAccessibleInit: function( ) { // get elements in cell this.viewDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbView'); this.editDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbEdit'); this.editInput =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'input', = 'editInput'); this.textDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbText'); this.dataDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbData'); this.titleAnchor =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'a', = 'titleAnchor'); this.contextMenuAnchor =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'a', 'cmimg'); this.checkInput =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'input', = 'checkInput'); if ( this.isTopLeft ) { Event.observe(this.checkInput, 'click', = this.toggleSelection.bindAsEventListener(this)); GradebookViewSpreadsheet.grid.checkAllCellController =3D this; return; } // add listeners to cell & anchors = Event.observe(this.htmlCell,'mouseover',this.onMouseOver.bindAsEventListe= ner(this)); = Event.observe(this.htmlCell,'mouseout',this.onMouseOut.bindAsEventListene= r(this)); // add listeners to cell elements if (this.contextMenuAnchor) { = Event.observe(this.contextMenuAnchor,'click',this.onContextMenuClicked.bi= ndAsEventListener(this)); } if (this.row =3D=3D 0 && this.col !=3D 0 && this.textDiv && = this.dataDiv) { this.getGridCell =3D this.getHeaderGridCell; = Event.observe(this.textDiv,'click',this.onHeaderClicked.bindAsEventListen= er(this)); Event.observe(this.dataDiv,'focus', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.dataDiv,'mouseover', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.dataDiv,'mouseout', = this.onHeaderMouseOut.bindAsEventListener(this)); this.htmlCell.style.cursor =3D 'pointer'; } else { this.getGridCell =3D this.getGradeGridCell; if (this.editInput){ = Event.observe(this.editInput,'keydown',this.onInputKeyDown.bindAsEventLis= tener(this)); = Event.observe(this.editInput,'keyup',this.onInputKeyUp.bindAsEventListene= r(this)); } =09 if (this.checkInput) { = Event.observe(this.checkInput,'click',this.onCheckBoxClicked.bindAsEventL= istener(this)); } else { = Event.observe(this.htmlCell,'click',this.onClicked.bindAsEventListener(th= is)); } if ( this.titleAnchor ) = Event.observe(this.titleAnchor,'focus',this.onFocus.bindAsEventListener(t= his) ); } }, =09 _accessibleInit: function( ) { // get elements in cell this.checkInput =3D this.htmlCell.down('input'); this.titleAnchor =3D this.htmlCell.down('a'); this.contextMenuAnchor =3D (this.titleAnchor) ? this.titleAnchor : = this.htmlCell; if ( this.isTopLeft )=20 { Event.observe(this.checkInput, 'click', = this.toggleSelection.bindAsEventListener(this)); GradebookViewSpreadsheet.grid.checkAllCellController =3D this; return; } if (this.row =3D=3D 0 && this.col !=3D 0) { this.dataDiv =3D this.titleAnchor;=20 this.getGridCell =3D this.getHeaderGridCell; Event.observe(this.titleAnchor,'focus', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.htmlCell,'mouseover', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.htmlCell,'mouseout', = this.onHeaderMouseOut.bindAsEventListener(this)); }=20 else=20 { this.getGridCell =3D this.getGradeGridCell; } if (this.checkInput)=20 { = Event.observe(this.checkInput,'click',this.onCheckBoxClicked.bindAsEventL= istener(this)); } else if (this.getGridCell().getContextMenuInfo(this))=20 { = Event.observe(this.contextMenuAnchor,'click',this.onContextMenuClicked.bi= ndAsEventListener(this)); } else { // no link/menu for calculated grades, grade goes right in cell=20 this.titleAnchor.remove(); this.titleAnchor =3D this.htmlCell; } }, =09 isHeaderCell: function() { return this.isHeaderTable; }, unload: function() { this.grid =3D null; this.htmlCell.controller =3D null; this.htmlCell =3D null; this.grid =3D null; this.viewDiv =3D null; this.editDiv =3D null; this.editInput =3D null; this.textDiv =3D null; this.dataDiv =3D null; this.titleAnchor =3D null; this.contextMenuAnchor =3D null; this.checkInput =3D null; this.getGridCell =3D null; this.editGridcell =3D null; }, //************ checkbox logic ******************************* onCheckBoxClicked: function(evt) { var gridcell =3D this.getGridCell(); gridcell.setRowChecked(this.checkInput.checked); var userId =3D gridcell.userId; if(this.checkInput.checked){ if (evt.shiftKey && = Gradebook.CellController.prototype.lastCheckedUserId){ = this.grid.model.checkedRangeOfStudents(gridcell.userId,Gradebook.CellCont= roller.prototype.lastCheckedUserId); } Gradebook.CellController.prototype.lastCheckedUserId =3D = gridcell.userId; } else { Gradebook.CellController.prototype.lastCheckedUserId =3D null; } =09 this.updateNumSelectedIndicator(); }, toggleSelection: function() { if( this.checkInput.checked ) { this.onSelectAllStudents(); } else { this.onSelectNoStudents(); } }, onSelectAllStudents: function(evt) { this.grid.model.checkedAllStudents(); this.updateNumSelectedIndicator(); }, onSelectNoStudents: function(evt) { this.grid.model.checkedNoStudents(); this.updateNumSelectedIndicator(); }, =09 onSelectInvertStudents: function(evt) { this.grid.model.invertCheckedStudents(); this.updateNumSelectedIndicator(); }, =09 onSortCheckedStudents: function(evt) { // always show checked students at top this.grid.sortColumn(this,'DESC'); }, =09 updateNumSelectedIndicator: function() { var ids =3D this.grid.model.getCheckedStudentIds(); $("rowindicator").update( ids.length ); }, =09 =09 //************ sort logic ******************************* onHeaderClicked: function(evt) { this.grid.sortColumn(this); }, setSortImage: function(dir) { this.htmlCell.removeClassName('sortedUp'); this.htmlCell.removeClassName('sortedDown'); if ( dir =3D=3D 'ASC' ){ this.htmlCell.addClassName('sortedUp'); } else if ( dir =3D=3D 'DESC' ){ this.htmlCell.addClassName('sortedDown'); } }, onSortAscending: function(dir) { this.grid.sortColumn(this,'ASC'); this.contextMenuDiv.hide(); }, =09 onSortDescending: function(dir) { this.grid.sortColumn(this,'DESC'); this.contextMenuDiv.hide(); }, =09 //************ select cell logic ******************************* onFocus: function( evt ) { document.ignoreOnClick =3D true; //IE7 issue where focus is followed = by on click on the document - AS-123689 window.setTimeout( "document.ignoreOnClick =3D false", 2000 ); this.onClicked( evt ); }, =09 onClicked: function(evt) { var eventTarget =3D evt.target ? evt.target : evt.srcElement; Gradebook.CellController.prototype.lastEventTarget =3D eventTarget; this.selectCell( eventTarget ); Event.stop( evt ); }, =09 isSelected: function() { return (Gradebook.CellController.currentSelectedCell =3D=3D = this.htmlCell); }, =09 selectCell: function( optionalEventTarget ) { Gradebook.CellController.prototype.tableHasFocus =3D true; if ( this.isSelected() || this.checkInput ) return; this.closePopups(); this.unselectCurrentCell( true /*do not clear status bar */ ); GradebookUtil.debug('selectCell row =3D '+this.row+' col =3D = '+this.col); var gridCell =3D this.getGridCell(); Gradebook.CellController.currentSelectedCell =3D this.htmlCell; var hascm =3D this.hasContextMenu(); Element.addClassName(this.htmlCell, hascm?"cellClick":"cellClickNoCM") Element.addClassName(this.htmlCell.parentNode, "focusRowHigh"); var headerTable =3D $(Gradebook.CellController.tableId + '_header'); if (headerTable){ = Element.addClassName(headerTable.rows[0].cells[this.col],"focusHeader"); }=09 if (!this.isEditing && this.titleAnchor){ // no need to put focus on the anchor if it is already the active = element if ( !optionalEventTarget || ( optionalEventTarget !=3D = this.titleAnchor ) ) this.titleAnchor.focus(); } else if ( this.grid.options.accessibleMode ) { this.htmlCell.focus(); } this.setTaskbarInfo(gridCell); if (!this.grid.options.accessibleMode) this.startEdit(); }, showHeaderInfoInTaskbar: function() { var colDef =3D this.getGridCell(); var type =3D colDef.getType();=20 if ( type =3D=3D "student" ) { GradebookViewSpreadsheet.setMsgInTaskBar( colDef.getName() ); } else { if ( type =3D=3D "grade" ) points =3D NumberFormatter.getDisplayFloat( colDef.points ); else=20 points =3D GradebookUtil.getMessage( 'variesPerStudentMsg' ); GradebookViewSpreadsheet.setHeaderInfoInTaskBar( colDef.getName(), = GradebookUtil.getMessage( colDef.getType() + 'Msg' ),=20 points ); } }, =09 setTaskbarInfo: function(gridCell) { if (!gridCell) {=20 GradebookViewSpreadsheet.clearTaskBar(); } else if (gridCell.isGrade()) { var colDef =3D gridCell.colDef; var gradeType =3D ' ' var pointsPossible =3D ' ' var primaryDisplay =3D ' ' var visibileToStudents =3D ' ' try { if ( gridCell.canEdit() ) {=20 gradeType =3D = GradebookUtil.getMessage((gridCell.isOverride())?'overrideGradeMsg':'grad= eMsg'); } else {=20 gradeType =3D GradebookUtil.getMessage( colDef.getType() + 'Msg' ); } primaryDisplay =3D colDef.primarySchema.name; pointsPossible =3D NumberFormatter.getDisplayFloat( = gridCell.getPointsPossible() ); visibileToStudents =3D = GradebookUtil.getMessage((colDef.vis)?'isMsg':'isNotMsg'); } catch ( ignore ) { }; = GradebookViewSpreadsheet.setTaskBar(gradeType,pointsPossible,primaryDispl= ay,visibileToStudents); } else { GradebookViewSpreadsheet.setTaskBar(); } }, unselectCell: function( doNotClearStatusBar ) { GradebookUtil.debug('unselectCell row =3D '+this.row+' col =3D = '+this.col); Element.removeClassName(this.htmlCell, "cellClick"); Element.removeClassName(this.htmlCell, "cellClickNoCM"); Element.removeClassName(this.htmlCell.parentNode, "focusRowHigh"); var headerTable =3D $(Gradebook.CellController.tableId + '_header'); if (headerTable){ = Element.removeClassName(headerTable.rows[0].cells[this.htmlCell.cellIndex= ],"focusHeader"); }=09 if ( !doNotClearStatusBar ) this.setTaskbarInfo(); }, unselectCurrentCell: function( doNotClearStatusBar ) { var cell =3D Gradebook.CellController.currentSelectedCell; if (cell)=20 { var commit =3D false; var cellController =3D cell.controller; if ( cellController)=20 { if ( cellController.hasUncommittedChanges()) { var validationError =3D = cellController.editGridcell.validate(cellController.editInput.value); if (!validationError) { commit =3D = confirm(GradebookUtil.getMessage('uncommitedchangeErrorMsg')); }=20 else=20 { = alert(GradebookUtil.getMessage('uncommitedchangeNotSavedErrorMsg')); } } cellController.stopEdit(commit, true /* no focus on the cell we are = exiting */); cellController.unselectCell( doNotClearStatusBar ); } Gradebook.CellController.currentSelectedCell =3D null; } }, //************ edit grade logic ******************************* =09 startEdit: function(){ try { this.editGridcell =3D this.getGridCell(); if (!this.editGridcell.canEdit() || !this.isSelected() || = !this.editInput) return; GradebookUtil.debug('startEdit row =3D '+this.row+' col =3D = '+this.col); this.isEditing =3D true; this.editInput.value =3D this.editGridcell.getEditValue(); this.viewDiv.style.display =3D "none"; this.editDiv.style.display =3D "block"; this.editInput.focus(); this.editInput.select(); } catch ( ignore ) { } }, onInputKeyDown: function(evt){ GradebookUtil.debug('onInputKeyDown row =3D '+this.row+' col =3D = '+this.col+' keyCode =3D '+evt.keyCode); switch (evt.keyCode) { case (Event.KEY_TAB): this.stopEdit(true, false); //commit, Set Focus back to cell content Event.stop( evt ); break; } }, =09 onInputKeyUp: function(evt){ Event.stop( evt ); GradebookUtil.debug('onInputKeyUp row =3D '+this.row+' col =3D = '+this.col+' keyCode =3D '+evt.keyCode); switch (evt.keyCode) { case (Event.KEY_UP): case (Event.KEY_DOWN): case (Event.KEY_LEFT): case (Event.KEY_RIGHT): evt.cancelBubble =3D false; // allow event to bubble so attempted = navigation will occur break; case (Event.KEY_RETURN): try { Gradebook.noResize =3D true; /*IEHack*/ if (this.hasUncommittedChanges() && this.stopEdit(true)){ = //commit // select cell below this.grid.selectRelativeCell(1, 0); } } finally { Gradebook.noResize =3D false; } break; case (Event.KEY_ESC): =09 this.stopEdit(false); // don't commit break; default: var validationError =3D this.editGridcell.validate( = this.editInput.value, true ); // match partial if (validationError){ this.showValidationError(validationError); } else { this.hideValidationError(); } } },=09 // returns false if validation error occurs when committing stopEdit: function(commit, doNotSetFocus){ if (!this.isEditing){ return; } GradebookUtil.debug('stopEdit row =3D '+this.row+' col =3D = '+this.col+' commit =3D '+commit); if (commit && this.hasUncommittedChanges()){ var inputVal =3D this.editInput.value; var validationError =3D this.editGridcell.validate( inputVal ); if (validationError){ this.showValidationError(validationError); this.editInput.select(); this.editInput.focus(); return false; } var save =3D true; if (inputVal =3D=3D '') inputVal =3D '-'; // confirm if OK to delete or null grade if (inputVal =3D=3D '-'){ if (this.editGridcell.v =3D=3D '-'){ save =3D false; } else { var msg =3D = (this.editGridcell.isOverride()?'confirmRevertMsg':'confirmNullMsg'); save =3D confirm(GradebookUtil.getMessage(msg)); } } if (save){ // send update to server this.editGridcell.update(inputVal); =09 // show saving message this.addSavingDiv(); =09 } } this.hideValidationError(); this.isEditing =3D false; this.editGridcell =3D null; this.viewDiv.style.display =3D "block"; if (!doNotSetFocus){ this.titleAnchor.focus(); } this.editDiv.style.display =3D "none"; return true; }, hasUncommittedChanges: function(evt){ return (this.isEditing && this.editInput.value !=3D = this.editGridcell.getEditValue()); },=09 //************ rendering logic ******************************* renderHTML: function(gridCell) { var anchorVal; var altVal; if (gridCell.savingDiv){ this.showSavingDiv(gridCell.savingDiv); gridCell.savingDiv.htmlCell =3D this.htmlCell; } else if (gridCell.isExempt()){ anchorVal =3D gridImages.exemptGrade; altVal =3D gridCell.getAltValue(); } else if (gridCell.needsGrading() && !gridCell.isOverride()){ anchorVal =3D gridImages.needsGrading; } else if (gridCell.attemptInProgress() && !gridCell.isOverride()){ anchorVal =3D gridImages.attemptInProgress; } else if (gridCell.isComplete()){ anchorVal =3D gridCell.getCellValue(); altVal =3D GradebookUtil.getMessage('completedMsg'); } else if ( this.grid.options.accessibleMode && gridCell.isGrade() && = !gridCell.isGraded() ) { anchorVal =3D gridImages.noGrade; altVal =3D gridCell.getAltValue(); } else { anchorVal =3D gridCell.getCellValue(); altVal =3D gridCell.getAltValue(); } if (anchorVal !=3D undefined){ if (this.col =3D=3D 1 && !gridCell.isAvailable()){ anchorVal =3D gridImages.studentUnavailable+" "+anchorVal; } if (gridCell.isModified()){ anchorVal =3D gridImages.gradeModified+" "+anchorVal; } if (anchorVal.blank()){ anchorVal =3D ' ' } if (this.titleAnchor){ this.titleAnchor.innerHTML =3D anchorVal; this.titleAnchor.title =3D altVal; } } }, renderHeaderCellHTML: function( colDef ) { var anchorVal =3D ''; var title =3D colDef.name.unescapeHTML(); // IE hack so that unicode are properly escaped this.dataDiv.innerHTML =3D title; this.dataDiv.title =3D this.dataDiv.innerHTML; if (!colDef.isVisibleToStudents()){ anchorVal +=3D gridImages.itemNotVisible; } if (colDef.isPublic()){ anchorVal +=3D gridImages.externalGrade; } if (colDef.hasError()){ anchorVal +=3D gridImages.gradingError; } anchorVal +=3D title; this.dataDiv.innerHTML =3D anchorVal; }, =09 =20 addSavingDiv: function() { // create a "Saving" message by cloning the existing message var savingDiv =3D $("saveDiv").cloneNode(true); document.body.appendChild(savingDiv); // associate savingDiv with gridCell so saving message will scroll = with gridCell var gridCell =3D this.editGridcell; if (!gridCell) gridCell =3D this.getGridCell(); gridCell.savingDiv =3D savingDiv; savingDiv.gridCell =3D gridCell; savingDiv.htmlCell =3D this.htmlCell; =09 // store savingDivs in a class-level array to allow hiding all = savingDivs before scrolling refresh if (!Gradebook.CellController.prototype.savingDivs){ Gradebook.CellController.prototype.savingDivs =3D new Array(); } Gradebook.CellController.prototype.savingDivs.push(savingDiv); =09 // show the savingDiv on top of htmlCell this.showSavingDiv(savingDiv); =09 // show div for a period of time, then hide/remove it if grade change = has been committed on server setTimeout(function(){ var gc =3D savingDiv.gridCell; if (gc.isUncommitted){ savingDiv.timerExpired =3D true; } else { savingDiv.style.display =3D 'none'; savingDiv.parentNode.removeChild(savingDiv); gc.savingDiv =3D null; savingDiv.htmlCell.controller.renderHTML(gc); } },1000); }, showSavingDiv: function(savingDiv){ var pos =3D Element.cumulativeOffset( this.htmlCell ); savingDiv.style.top =3D pos.top + "px"; savingDiv.style.left =3D pos.left + "px"; if ( !this.htmlCell ) return;=20 savingDiv.style.minWidth =3D this.htmlCell.offsetWidth + "px"; savingDiv.style.minHeight =3D this.htmlCell.offsetHeight + "px"; savingDiv.style.display =3D "block"; }, hideAllSavingDivs: function(){ var savingDivs =3D Gradebook.CellController.prototype.savingDivs; if (!savingDivs) return; for (var i =3D savingDivs.length-1; i >=3D 0; i--){ if (!savingDivs[i].parentNode){ // remove div if no longer in document savingDivs.splice(i,1);=20 } else { savingDivs[i].style.display =3D 'none'; } } }, =09 removeAllSavingDivs: function(){ var savingDivs =3D Gradebook.CellController.prototype.savingDivs; if (!savingDivs) return; for (var i =3D savingDivs.length-1; i >=3D 0; i--){ var savingDiv =3D savingDivs[i]; if (savingDiv.gridCell) { savingDiv.gridCell.savingDiv =3D null; savingDiv.gridCell =3D null; savingDiv.htmlCell =3D null; } if (!savingDivs[i].parentNode){ // remove div if no longer in document savingDivs.splice(i,1);=20 } else { savingDivs[i].style.display =3D 'none'; } } }, =09 showValidationError: function(error) { var errDiv =3D $("errorDiv"); var p =3D GradebookUtil.getChildElementByClassName(errDiv, 'p', = 'errorDiv2'); p.innerHTML =3D error; errDiv.style.display =3D "block"; var pos =3D GradebookUtil._toAbsolute(this.htmlCell, false, = errDiv.offsetParent ); errDiv.style.top =3D pos.y + this.htmlCell.offsetHeight + "px"; errDiv.style.left =3D pos.x -1 + "px"; Element.addClassName(this.htmlCell, "cellError"); }, =09 hideValidationError: function() { var errDiv =3D $("errorDiv"); errDiv.style.display =3D "none"; Element.removeClassName(this.htmlCell, "cellError"); }, =09 hasContextMenu: function() { if ( this.isTopLeft ){ return true; } else { return (this.getGridCell().getContextMenuInfo(this) !=3D null); } }, =09 onMouseOver: function(evt) { if (!this.htmlCell || this.htmlCell.className =3D=3D "cellClick") = return; var hascm =3D this.hasContextMenu(); Element.addClassName(this.htmlCell, hascm?"cellhigh":"cellhighNoCM") var rowElement =3D this.htmlCell.parentNode; if (rowElement.className !=3D "focusRowHigh"){ Element.addClassName(rowElement, "rowhigh"); } }, =20 =09 onMouseOut: function(evt) { if (!this.htmlCell || this.htmlCell.className =3D=3D "cellClick") = return; Element.removeClassName(this.htmlCell, "cellhigh") Element.removeClassName(this.htmlCell, "cellhighNoCM") var rowElement =3D this.htmlCell.parentNode; if (rowElement.className !=3D "focusRowHigh"){ Element.removeClassName(rowElement, "rowhigh"); } }, =09 onHeaderMouseOut: function( evt ) { if ( Gradebook.CellController.currentSelectedCell ) { var selectedCell =3D = Gradebook.CellController.currentSelectedCell.controller; selectedCell.setTaskbarInfo( selectedCell.getGridCell() ); } else { GradebookViewSpreadsheet.clearTaskBar(); } }, //************ context menu logic ******************************* onContextMenuClicked: function(evt) { GradebookUtil.debug('onContextMenuClicked'); Gradebook.CellController.prototype.closePopups(evt); var gridCell =3D this.getGridCell(); var menuInfo =3D gridCell.getContextMenuInfo(this); if (menuInfo) { this.setContextMenuInfo(menuInfo); } Event.stop( evt ); }, onCloseContextMenu: function(evt) { Event.stop( evt ); if ( GradebookUtil.isIE() ){ if ( !this.isHeaderCell() )=20 { this.selectCell(); } else { this.contextMenuAnchor.focus(); } } else { this.contextMenuAnchor.focus(); } this.contextMenuDiv.hide(); $("shimDiv").hide(); }, =09 onContextMenuTabPress: function(evt, withShift) {=09 var ek =3D evt.keyCode || evt.which; if ( (ek =3D=3D Event.KEY_TAB) && ( withShift =3D=3D evt.shiftKey ) = ) { this.onCloseContextMenu(evt); Event.stop( evt ); } }, =20 =09 onContextMenuKeyDown: function(evt) {=09 var key =3D evt.keyCode || evt.which; if ( key =3D=3D Event.KEY_UP ) { =20 var elem =3D Event.element ( evt ); var index =3D this.menuItemLinks.indexOf( elem ); if ( index > 0 ) { this.menuItemLinks[index - 1].focus(); }=20 Event.stop( evt ); } else if ( key =3D=3D Event.KEY_DOWN ) { var elem =3D Event.element ( evt ); var index =3D this.menuItemLinks.indexOf( elem ); if ( index < ( this.menuItemLinks.length - 1 ) ) { this.menuItemLinks[index + 1].focus(); } =20 Event.stop( evt ); } else if ( key =3D=3D Event.KEY_ESC ) { this.onCloseContextMenu(evt); Event.stop( evt ); } }, =20 =09 setContextMenuInfo: function(menuInfo) { this.contextMenuId =3D menuInfo.id; var menuDiv =3D $(this.contextMenuId); this.contextMenuDiv =3D menuDiv; var firstItem =3D null; var lastItem =3D null; if (menuDiv.onkeydownHandler){ Event.stopObserving(menuDiv, 'keydown', menuDiv.onkeydownHandler); } menuDiv.onkeydownHandler =3D = this.onContextMenuKeyDown.bindAsEventListener( this ); Event.observe( menuDiv, "keydown", menuDiv.onkeydownHandler ); =09 this.menuItemLinks =3D new Array(); var onCloseHandler =3D = this.onCloseContextMenu.bindAsEventListener(this); menuInfo.items.push({id: 'close_'+menuInfo.id, visible:true, onclick: onCloseHandler}); menuInfo.items.each(function(mi) { var itemLink =3D $(mi.id);=20 itemLink.parentNode.style.display =3D (mi.visible)?"block":"none"; if (mi.visible) { this.menuItemLinks.push( itemLink ); } // remove previous click handler, if any if (itemLink.onclickHandler){ Event.stopObserving(mi.id, 'click', itemLink.onclickHandler); itemLink.onclickHandler =3D null; } if (mi.onclick && mi.visible){ // add click handler for menu item and save for later removal itemLink.onclickHandler =3D function( evt ) { onCloseHandler( evt ); mi.onclick( evt ); if ( mi.receipt ) { GradebookUtil.showInlineReceipt( gradebook2Messages[mi.receipt] = ); } } Event.observe(mi.id, 'click', itemLink.onclickHandler); } if (!firstItem) firstItem =3D itemLink; lastItem =3D itemLink; }.bind(this)); =09 // Handle tabbing out of the menu if ( lastItem.previousTABListener ) Event.stopObserving( lastItem.id, = 'keydown', lastItem.previousTABListener ); var tabListener =3D = this.onContextMenuTabPress.bindAsEventListener(this, false); lastItem.previousTABListener =3D tabListener; Event.observe( lastItem.id, 'keydown', tabListener ); if ( firstItem.previousTABListener ) Event.stopObserving( = firstItem.id, 'keydown', lastItem.previousTABListener ); var shiftTabListener =3D = this.onContextMenuTabPress.bindAsEventListener(this, true); firstItem.previousTABListener =3D shiftTabListener; Event.observe( firstItem.id, 'keydown', shiftTabListener ); =09 // position and show menu var offset =3D Position.cumulativeOffset( this.contextMenuAnchor); if ( this.grid.options.accessibleMode ) { var tableContainer =3D $( 'table1_accessible_container' ); offset[0] -=3D tableContainer.scrollLeft; offset[1] -=3D tableContainer.scrollTop; } menuDiv.setStyle({display: "block"}); var width =3D menuDiv.getWidth(); var bodyWidth =3D $(document.body).getWidth(); if ( page.util.isRTL() ) { offset[0] =3D offset[0] + this.contextMenuAnchor.getWidth() - width; if ( offset[0] < 0 ) offset[0]=3D 0; } if ( offset[0] + width > bodyWidth ) { offset[0] =3D offset[0] - width + this.contextMenuAnchor.getWidth(); } var ypos =3D offset[1] + this.contextMenuAnchor.getHeight(); menuDiv.setStyle({ left: offset[0] + "px", top: ypos + "px"}); if ( GradebookUtil.isFFonMac() ) GradebookUtil.shimDiv( menuDiv ); (function() { firstItem.focus(); }).defer(); =20 }, =20 =09 //************ comments logic ******************************* addGradeComment: function(evt,colDef) { Event.stop( evt ); // swallow event this.closePopups(); // here rather than on close to fix a UI glitch 1st time the div is = shown GradebookViewSpreadsheet.instructorCommentsResize._reset(); GradebookViewSpreadsheet.studentCommentsResize._reset(); var pos =3D GradebookUtil._toAbsolute(this.htmlCell); var submitCommentsButton =3D $("submitCommentsButton"); if (submitCommentsButton.onclickHandler){ Event.stopObserving(submitCommentsButton, 'click', = submitCommentsButton.onclickHandler); } submitCommentsButton.onclickHandler =3D = this.onSubmitComments.bindAsEventListener(this); = Event.observe(submitCommentsButton,'click',submitCommentsButton.onclickHa= ndler); var commentsDiv =3D $("commentsDiv"); if (commentsDiv.onclickHandler){ Event.stopObserving(commentsDiv, 'click', = commentsDiv.onclickHandler); } commentsDiv.onclickHandler =3D = this.onClickCommentsDiv.bindAsEventListener(this); Event.observe(commentsDiv,'click',commentsDiv.onclickHandler); var ie =3D GradebookUtil.isIE(); var rightedge =3D ie ? document.body.clientWidth: window.innerWidth; var bottomedge =3D ie ? document.body.clientHeight: = window.innerHeight; var offright=3Dfalse; var offbottom=3Dfalse; if( pos.y+commentsDiv.offsetHeight>bottomedge ) offbottom =3D true; if( pos.y-commentsDiv.offsetHeight<0 )offbottom =3D false; if( pos.x+commentsDiv.offsetWidth>rightedge-20 ) offright =3D true; if( offbottom ) { $("commentArrowUp").style.display=3D"none"; $("commentArrowDown").style.display=3D"block"; $("commentArrowDown").className=3D"bubArrowBot"; pos.y=3Dpos.y-commentsDiv.offsetHeight; } else { $("commentArrowUp").style.display=3D"block"; $("commentArrowDown").style.display=3D"none"; $("commentArrowUp").className=3D"bubArrowTop"; } if ( offright ) { $("commentArrowDown").className=3D"bubArrowBot2"; $("commentArrowUp").className=3D"bubArrowTop2"; pos.x=3Dpos.x-200; } commentsDiv.style.top =3D ( pos.y - this.htmlCell.offsetHeight )+"px"; commentsDiv.style.left =3D pos.x+"px"; commentsDiv.style.display=3D"block"; if ( GradebookUtil.isFFonMac() ) GradebookUtil.shimDiv( commentsDiv ); }, onSubmitComments: function() { this.getGridCell().setComments($("studentComments").value, = $("instructorComments").value); this.addSavingDiv(); this.closeComments(); }, onClickCommentsDiv: function(evt) { var eventTarget =3D evt.target ? evt.target : evt.srcElement; Gradebook.CellController.prototype.lastCommentsEventTarget =3D = eventTarget; }, testCommentsOpen: function(evt) { if (!evt) return; var ctrl =3D Gradebook.CellController.prototype; var eventTarget =3D evt.target ? evt.target : evt.srcElement; // if editing comments prompt user to save if click outside comments = div if (parseInt($("commentsDiv").style.display !=3D 'none') &&=20 ctrl.lastCommentsEventTarget !=3D eventTarget) { if = (confirm(GradebookUtil.getMessage('uncommitedCommentChangeErrorMsg'))){ $("submitCommentsButton").onclick(); } else { ctrl.closeComments(); } } }, closeComments: function() { $("commentsDiv").style.display=3D"none"; var submitCommentsButton =3D $("submitCommentsButton"); if (submitCommentsButton.onclickHandler){ Event.stopObserving(submitCommentsButton, 'click', = submitCommentsButton.onclickHandler); submitCommentsButton.onclickHandler =3D null; } var commentsDiv =3D $("commentsDiv"); if (commentsDiv.onclickHandler){ Event.stopObserving(commentsDiv, 'click', = commentsDiv.onclickHandler); commentsDiv.onclickHandler =3D null; } $("shimDiv").style.display=3D"none"; }, //************ miscellaneous ******************************* closePopups: function(evt) { $("gradeHeaderCM").style.display=3D"none"; $("studentInfoHeaderCM").style.display=3D"none"; $("gradeCM").style.display=3D"none"; $("studentInfoCM").style.display=3D"none"; $("infodiv").style.display=3D"none"; $("icondiv_up").style.display=3D"none"; $("icondiv_down").style.display=3D"none"; $("shadow").style.display =3D "none"; if ( Gradebook.doNotCloseAttemptsForm ) { Gradebook.doNotCloseAttemptsForm =3D false; } else { $("clearAttemptsFlyOut").style.display =3D "none"; } Gradebook.CellController.prototype.testCommentsOpen(evt); $("shimDiv").style.display=3D"none"; }, =09 getGradeGridCell: function(){ return this.grid.viewPort.getModelGridCell(this.row, this.col); }, =09 getHeaderGridCell: function(){ return this.grid.viewPort.getHeaderGridCell(this.col); }, =09 closePopupsAndRestoreFocus: function(evt) { var ctrl =3D Gradebook.CellController.prototype; ctrl.closePopups(evt); var eventTarget =3D evt.target ? evt.target : evt.srcElement; if (ctrl.lastEventTarget =3D=3D eventTarget){ ctrl.tableHasFocus =3D true; } else if (ctrl.tableHasFocus) { ctrl.unselectCurrentCell(); ctrl.tableHasFocus =3D false; } }, showClearAttemptsFlyOut: function( event, colDef ) { var linkElement =3D $('gh_clearAllAttempts'); var offset =3D Position.cumulativeOffset( linkElement ); var formDiv =3D $('clearAttemptsFlyOut'); var width =3D formDiv.getWidth(); var bodyWidth =3D $(document.body).getWidth(); // reposition form if it goes off the screen // align right edge of flyout form with link button if ( offset[0] + width > bodyWidth ) { offset[0] =3D (offset[0] + linkElement.getWidth()) - width; } formDiv.setStyle({ left: offset[0] + "px", top: ( offset[1] - Gradebook.Grid.pageHeightOffset ) + "px", display: "block" }); $("gradeHeaderCM").hide(); // restoring default values if ( Gradebook.clearAttemptsFormDefault ) { $('selectOption').value =3D = Gradebook.clearAttemptsFormDefault.defaultSelect; $('dp_bbDateTimePicker_start_date').value =3D = Gradebook.clearAttemptsFormDefault.defaultStartDate; $('dp_bbDateTimePicker_end_date').value =3D = Gradebook.clearAttemptsFormDefault.defaultEndDate; $('bbDateTimePickerstart').value =3D = Gradebook.clearAttemptsFormDefault.defaultStartDateHidden; $('bbDateTimePickerend').value =3D = Gradebook.clearAttemptsFormDefault.defaultEndDateHidden; } $('clearAttemptsOptionSelect').checked =3D true; $('clearAttemptsFlyOutSubmit').onclick =3D = this.onSubmitClearAttempts.bindAsEventListener( this ) ; =20 Event.stop( event ); }, onSubmitClearAttempts: function( event ) { Event.stop( event ); if ( !confirm( gradebook2Messages.clearAttemptConfirmMsg ) ) return = false; if ( $('clearAttemptsOptionSelect').checked ) { this.getGridCell().clearAttempts( $('selectOption').value ); } else { var startDate =3D $('bbDateTimePickerstart').value; var endDate =3D $('bbDateTimePickerend').value; this.getGridCell().clearAttemptsByDate(startDate, endDate); } return false; }, viewColumnInfo: function(evt,colDef) { Event.stop( evt ); // swallow event this.closePopups(evt); var info =3D colDef.getInfo(); info.each(function(ii) { $(ii.id).innerHTML =3D " "+ii.value; }); var pos =3D GradebookUtil._toAbsolute(this.htmlCell); var infoDiv =3D $('infodiv'); var ie =3D GradebookUtil.isIE(); var rightedge =3D ie ? document.body.clientWidth: = window.innerWidth; if(pos.x+infoDiv.offsetWidth>rightedge-20){ pos.x=3Dpos.x-infoDiv.offsetWidth+50; $("bubbleArrowTop").className=3D"bubArrowTop2"; }else{ $("bubbleArrowTop").className=3D"bubArrowTop"; } infoDiv.style.top =3D ( pos.y - this.htmlCell.offsetHeight ) + "px"; infoDiv.style.left =3D pos.x+"px"; infoDiv.style.display =3D "block"; if ( GradebookUtil.isFFonMac() ) GradebookUtil.shimDiv( infoDiv ); }, sendEmail: function(type,studentIds){ var sendEmailFunc =3D this.grid.options.sendEmailFunc; if (sendEmailFunc) { sendEmailFunc(type,studentIds); } }, onGridScroll: function(){ this.closePopups(); this.unselectCurrentCell(); } };=09 var GradebookUtil =3D { isValidFloat: function ( n ) { var n =3D ''+n; var trimmedVal =3D n.strip(); var numberFormatDecimalPoint =3D null; if ( window.LOCALE_SETTINGS ) { numberFormatDecimalPoint =3D = LOCALE_SETTINGS.getString('number_format.decimal_point'); } else { numberFormatDecimalPoint =3D = page.bundle.getString('number_format.decimal_point'); } if (trimmedVal.endsWith( numberFormatDecimalPoint )) trimmedVal +=3D = '0'; var numFormat =3D '^[-]?[0-9]*(\\.[0-9]+)?$'; var re =3D new RegExp( numFormat );=09 var isValidNum =3D trimmedVal.search( re ) =3D=3D 0; return isValidNum; }, =20 showInlineReceipt: function( message ) { window.location.href =3D = viewSpreadsheetURL+'&inline_receipt_message=3D'+message; }, =20 formatStudentName: function ( student ) { var nameTemplate =3D new = Template(GradebookUtil.getMessage('userNameTemplate')); var nameData =3D {first:student.first, last:student.last, = user:student.user}; return nameTemplate.evaluate(nameData); }, =20 isIE: function () { return navigator.userAgent.toLowerCase().indexOf("msie") >=3D 0; }, isNS7: function () { return navigator.userAgent.toLowerCase().indexOf("netscape/7") = >=3D 0; }, =20 isFFonMac: function() { return GradebookUtil.isMac() && GradebookUtil.isFirefox(); }, =20 isFirefox: function() { return (navigator.userAgent.toLowerCase().indexOf("firefox") !=3D = -1); }, =20 isMac: function() { return (navigator.userAgent.toLowerCase().indexOf("mac") !=3D -1); }, =20 trimId: function( primaryKey ) { if ( primaryKey.charAt(0) !=3D '_' ) return primaryKey; return primaryKey.slice(1, primaryKey.lastIndexOf('_') ); }, getMessage: function (key) { if ( Gradebook.getModel() ){ return Gradebook.getModel().getMessage(key); } else { // in case the model is not loaded but we are on the grid page if ( gradebook2Messages && gradebook2Messages[ key ] ) return = gradebook2Messages[ key ]; return key; } }, getElementsComputedStyle: function ( htmlElement, cssProperty, = mozillaEquivalentCSS) { if ( arguments.length =3D=3D 2 ) mozillaEquivalentCSS =3D cssProperty; var el =3D $(htmlElement); if ( el.currentStyle ) return el.currentStyle[cssProperty]; else return document.defaultView.getComputedStyle(el, = null).getPropertyValue(mozillaEquivalentCSS); }, toViewportPosition: function(element) { return this._toAbsolute(element,true); }, /** * Compute the elements position in terms of the window viewport * so that it can be compared to the position of the mouse (dnd) * This is additions of all the offsetTop,offsetLeft values up the * offsetParent hierarchy, ...taking into account any scrollTop, * scrollLeft values along the way... * * Note: initially there was 2 implementations, one for IE, one for = others. * Mozilla one seems to fit all though (tested XP: FF2,IE7, OSX: = FF2, SAFARI) **/ _toAbsolute: function(element,accountForDocScroll, topParent ) { return = this._toAbsoluteMozilla(element,accountForDocScroll,topParent); }, /** * Mozilla did not report all of the parents up the hierarchy via = the * offsetParent property that IE did. So for the calculation of the * offsets we use the offsetParent property, but for the calculation = of * the scrollTop/scrollLeft adjustments we navigate up via the = parentNode * property instead so as to get the scroll offsets... * **/ _toAbsoluteMozilla: function(element,accountForDocScroll, topParent) = { var x =3D 0; var y =3D 0; var parent =3D element; while ( parent && ( !topParent || parent!=3DtopParent ) ) { x +=3D parent.offsetLeft; y +=3D parent.offsetTop; parent =3D parent.offsetParent; } parent =3D element; while ( parent && parent !=3D document.body && parent !=3D document.documentElement && ( !topParent || parent!=3DtopParent ) ) { if ( parent.scrollLeft ) x -=3D parent.scrollLeft; if ( parent.scrollTop ) y -=3D parent.scrollTop; parent =3D parent.parentNode; } if ( accountForDocScroll ) { x -=3D this.docScrollLeft(); y -=3D this.docScrollTop(); } return { x:x, y:y }; }, docScrollLeft: function() { if ( window.pageXOffset ) return window.pageXOffset; else if ( document.documentElement && = document.documentElement.scrollLeft ) return document.documentElement.scrollLeft; else if ( document.body ) return document.body.scrollLeft; else return 0; }, docScrollTop: function() { if ( window.pageYOffset ) return window.pageYOffset; else if ( document.documentElement && = document.documentElement.scrollTop ) return document.documentElement.scrollTop; else if ( document.body ) return document.body.scrollTop; else return 0; }, getChildElementByClassName: function(parent, childTag, = childClassName){ var children =3D parent.getElementsByTagName(childTag); if (!children || children.length =3D=3D 0) return null; for (var i =3D 0; i < children.length; i++){ if (children[i].className.indexOf(childClassName) >=3D 0){ return children[i]; } } return null; }, =09 setChildElementTextByClassName: function(parent, childTag, = childClassName, text){ var child =3D GradebookUtil.getChildElementByClassName(parent, = childTag, childClassName); if (child =3D=3D null) return; child.innerHTML =3D text; }, =09 getLogger: function() { if (window.gbModel) return gbModel.getLogger(); // in case current = scope owns gbModel if (parent.gbModel) return parent.gbModel.getLogger(); }, debug: function(s) { var logger =3D this.getLogger(); if (logger) { logger.debug(s); } }, error: function(s) { var logger =3D this.getLogger(); if (logger) { logger.error(s); } }, =09 //on firefox/mac scroll bars will show ontop of anything if not shimmed shimDiv: function( menuDiv ) { var shimIFrame =3D $('shimDiv'); if (!shimIFrame) return; shimIFrame.style.width =3D menuDiv.offsetWidth; shimIFrame.style.height =3D menuDiv.offsetHeight; var position =3D Position.page(menuDiv); shimIFrame.style.top =3D position[1]; shimIFrame.style.left =3D position[0]; shimIFrame.style.zIndex =3D 2; shimIFrame.style.display =3D "block"; =20 }, =20 clearShim: function() { if ( $("shimDiv") ) $("shimDiv").style.display=3D"none"; } }; ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/gradebook/js/gradebookgridmodel.js?v=9.0.440.7 /** * Gradebook data grid * * PORTIONS OF THIS FILE ARE BASED ON RICO LIVEGRID 1.1.2 * * Copyright 2005 Sabre Airline Solutions * * Licensed under the Apache License, Version 2.0 (the "License"); you = may not use this * file except in compliance with the License. You may obtain a copy = of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software = distributed under the * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR = CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific = language governing permissions * and limitations under the License. * * @author "Bill Richard" * @version $Revision: #9 $ $Date: 2007/02/12 $ * * **/ // Gradebook.GridModel = ----------------------------------------------------- Gradebook.GridModel =3D Class.create(); Gradebook.GridModel.prototype =3D { initialize: function(gradebookService) { this.gradebookService =3D gradebookService; this.courseId =3D gradebookService.courseId; this.rows =3D new Array(); this.colDefs =3D new Array(); this.colOrderMap =3D new Array(); this.customViews =3D new Array(); this.listeners =3D new Array(); this.accessibleMode =3D false; this.resizingWindow =3D false; this.minimumRows =3D 10; this.isolatedStudentId =3D ''; }, getCustomViews: function() { this.customViews.sort( function(a,b){ var aa =3D a.name.toLowerCase(); var bb =3D b.name.toLowerCase(); if (aa =3D=3D bb) return 0; else if (aa < bb) return -1; else return 1; } ); return this.customViews; }, =09 // notify registered listeners that model data has changed fireModelChanged: function() { for (var i =3D 0; i < this.listeners.length; i++){ this.listeners[i].modelChanged(); } }, // notify registered listeners that model error has occured fireModelError: function( exception, serverReply) { for (var i =3D 0; i < this.listeners.length; i++){ if (this.listeners[i].modelError){ this.listeners[i].modelError( exception, serverReply); } } }, addModelListener: function(listener) { this.listeners.push(listener); }, removeModelListeners: function() { this.listeners =3D new Array(); }, updateGrade: function( newValue, newTextValue, userId, colDefId) { = this.gradebookService.updateGrade((this.updateGradeCallback).bind(this), = this.version, newValue, newTextValue, userId, colDefId); }, deleteColumn: function(colDefId) { this.gradebookService.deleteColumn(colDefId); }, modifyColumn: function(colDefId, colType) { this.gradebookService.modifyColumn(colDefId, colType); }, =09 =09 viewItemStats: function(itemId) { this.gradebookService.viewItemStats(itemId); }, viewSingleStudentGrades: function(userId) { this.isolatedStudentId =3D userId; this.gradebookService.reloadGrid(); }, =09 restoreFromSingleStudentView: function() { this.isolatedStudentId =3D ''; this.gradebookService.reloadGrid(); }, =09 viewStudentStats: function(userId) { this.gradebookService.viewStudentStats(userId); }, =09 viewAdaptiveRelease: function(userName) { this.gradebookService.viewAdaptiveRelease(userName); }, =09 hideColumn: function(colDefId) { this.gradebookService.hideColumn(colDefId); }, showGradeDetails: function(userId, colDefId){ this.gradebookService.showGradeDetails( userId, colDefId ); }, onAddComment: function(userId, colDefId){ this.gradebookService.loadComments( userId, colDefId, = "studentComments", "instructorComments" ); }, =09 exemptGrade: function(userId, colDefId){ this.gradebookService.setExemption( = (this.updateGradeCallback).bind(this), this.version, userId, colDefId, = true ); }, clearExemption: function(userId, colDefId){ this.gradebookService.setExemption( = (this.updateGradeCallback).bind(this), this.version, userId, colDefId, = false ); }, setComments: function(userId, colDefId, studentComments, = instructorComments){ this.gradebookService.setComments( userId, colDefId, studentComments, = instructorComments ); }, =09 getRowByUserId: function(userId) { var rows =3D this.rows; for (var i =3D 0, len =3D rows.length; i < len; i++){ if (rows[i][0].getUserId() =3D=3D userId) return rows[i]; } return null; }, =09 _getGradesForItemId: function(itemId, includeUnavailable) { var grades =3D new Array() var colIndex =3D this.colDefMap[itemId]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _getGradesForItemId contains data for = invalid column id: '+itemId); return grades; } var rows =3D this.rows; for (var i =3D 0, len =3D rows.length; i < len; i++){ var grade =3D rows[i][colIndex]; if (includeUnavailable || grade.isAvailable()){ grades.push( grade ); } } return grades; }, updateGradeCallback: function(retData) { if (!retData || retData.length =3D=3D 0){ GradebookUtil.error('GridModel error updating grade'); return; } for (var i =3D 0, len =3D retData.length; i < len; i++) { var data =3D retData[i]; var colDefId =3D data.itemId; var userId =3D data.courseUserId; var score =3D data.score; var textInput =3D data.textInput; var row =3D this.getRowByUserId(userId); var colIndex =3D this.colDefMap[colDefId]; if (colIndex =3D=3D undefined){ // ignore continue; } var gridCell =3D row[colIndex]; gridCell.tv =3D textInput; if (textInput.length =3D=3D 0 && score =3D=3D 0){ gridCell.v =3D '-'; } else { gridCell.v =3D score; } gridCell.gc =3D (data.modified)?"y":null; gridCell.or =3D (data.override)?"y":null; gridCell.x =3D (data.exempt)?"y":null; gridCell.mp =3D data.points; gridCell.isUncommitted =3D false; var savingDiv =3D gridCell.savingDiv; if (savingDiv && savingDiv.timerExpired && savingDiv.parentNode){ savingDiv.style.display =3D 'none'; savingDiv.parentNode.removeChild(savingDiv); gridCell.savingDiv =3D null; } =09 } this.fireModelChanged(); }, // called to load model with server data=20 requestLoadData: function() { GradebookUtil.debug('GridModel requestLoadData called'); this.lastUpdateTS =3D new Date().getTime(); this.gradebookService.requestLoadData( (this._loadDataFromJSON).bind(this), (this._reportError).bind(this), (this._reportException).bind(this)); }, // called to update model with server data=20 requestUpdateData: function() { var timeSinceLastUpdate =3D new Date().getTime() - this.lastUpdateTS; // don't update if window is resizing and we've reloaded in the last 5 = minutes if (this.resizingWindow && ( timeSinceLastUpdate < 5*60*1000) ){ this.fireModelChanged(); return;=20 } this.lastUpdateTS =3D new Date().getTime(); GradebookUtil.debug('GridModel requestUpdateData called'); var customViewId =3D null; if (this.currentCustomView && this.currentCustomView.usesGroups()){ customViewId =3D this.currentCustomView.id; } this.gradebookService.requestUpdateData(this.version, = this.lastUserChangeTS, this.usersHash, customViewId, (this._updateDataFromJSON).bind(this), (this._reportError).bind(this), (this._reportException).bind(this)); }, setResizingWindow: function(f) { this.resizingWindow =3D f; }, getResizingWindow: function() { return this.resizingWindow; }, setMinimumRows: function( minRows ) { if ( minRows < 5 ) minRows =3D 5; if ( minRows > 50 ) minRows =3D 50; this.minimumRows =3D minRows; }, =09 getMinimumRows: function() { return this.minimumRows; }, _reportException: function(e) { GradebookUtil.error('exception getting data from server: '+ = e.message); }, _reportError: function(t) { GradebookUtil.error('error getting data from server: '+ t.status + ' = -- ' + t.statusText); }, =09 getVisibleColDefIndex: function(id) { var colnum =3D this.colDefMap[id];=20 if (colnum =3D=3D=3D undefined || this.colDefs[colnum] =3D=3D=3D = undefined || !this.colDefs[colnum].gbvis ){ return -1; } for (var i =3D 0, len =3D this.colOrderMap.length; i < len; i++){ if (this.colOrderMap[i] =3D=3D colnum) return i; } return -1; }, // callback when initializing this gradebook model with server data _loadDataFromJSON: function(reply) { GradebookUtil.debug('GridModel _loadDataFromJSON called'); try { var jsonBook =3D eval('(' + reply.responseText + ')'); } catch (e) { this.fireModelError(e, reply.responseText); return; } try { this.schemaMap =3D new Array(); for (var i =3D 0; i < jsonBook.schemas.length; i++){ jsonBook.schemas[i] =3D this._createSchema(jsonBook.schemas[i].type, = jsonBook.schemas[i]); this.schemaMap[jsonBook.schemas[i].id] =3D jsonBook.schemas[i]; } this.colDefMap =3D new Array(); for (var i =3D 0; i < jsonBook.colDefs.length; i++){ jsonBook.colDefs[i] =3D this._createColDef( jsonBook.colDefs[i], = this, this.schemaMap ); this.colDefMap[jsonBook.colDefs[i].id] =3D i; } for (var i =3D 0; i < jsonBook.rows.length; i++){ jsonBook.rows[i] =3D this._loadRowDataFromJSON(jsonBook.rows[i], = jsonBook.colDefs, this.colDefMap); } this.customViewMap =3D new Array(); =09 if (jsonBook.customViews){ for (var i =3D 0; i < jsonBook.customViews.length; i++){ jsonBook.customViews[i] =3D new Gradebook.CustomView( = jsonBook.customViews[i], this ); this.customViewMap[jsonBook.customViews[i].id] =3D i; } } this.groupsMap =3D new Array(); if (jsonBook.groups){ for (var i =3D 0; i < jsonBook.groups.length; i++){ this.groupsMap[jsonBook.groups[i].id] =3D i; } } this._buildCategoryNameMap( jsonBook ); Object.extend(this, jsonBook); // assign json properties to this = object this._buildGradingPeriodMap(); if ( this.customViewIdParam !=3D null && = this.customViewIdParam.length > 0 ) { this._internalChangeCurrentView( 'cv_' + this.customViewIdParam ); } else if (this.defCVID) { this._internalChangeCurrentView( 'cv_' + this.defCVID ); } else if (this.defGPID){ this._internalChangeCurrentView( this.defGPID ); } =09 this._setStudentInfoLayout(); this._updateVisibleRows(jsonBook); this.sortColumns(); if (this.colDefMap['LN'] !=3D undefined){ this.sortColumnId =3D 'LN'; this.sortDir =3D 'ASC'; this.reSort(); } this.fireModelChanged(); } catch (e) { this.fireModelError(e); } }, =09 // callback when updating this gradebook model with server data _updateDataFromJSON: function(reply) { GradebookUtil.debug('GridModel _updateDataFromJSON called'); try { var jsonBook =3D eval('(' + reply.responseText + ')'); } catch (e) { this.fireModelError(e, reply.responseText); return; } try { // need to reinitialize if new users added to pick up existing grades // when a user is re-enabled if (this._hasNewUsers(jsonBook)) { this.requestLoadData(); return; } this.version =3D jsonBook.version; this.lastUserChangeTS =3D jsonBook.lastUserChangeTS; this.usersHash =3D jsonBook.usersHash; this.numFrozenColumns =3D jsonBook.numFrozenColumns; this.gradingPeriods =3D jsonBook.gradingPeriods; this.categories =3D jsonBook.categories; this._buildCategoryNameMap( jsonBook ); this.studentInfoLayouts =3D jsonBook.studentInfoLayouts; this.pubColID =3D jsonBook.pubColID; this.defCVID =3D jsonBook.defCVID; this.defGPID =3D jsonBook.defGPID; if (jsonBook.schemas){ for (var i =3D 0; i < jsonBook.schemas.length; i++){ // create a new schema if one with same id does not already exists var schema =3D this.schemaMap[jsonBook.schemas[i].id];=20 if (schema =3D=3D=3D undefined){ schema =3D this._createSchema(jsonBook.schemas[i].type, = jsonBook.schemas[i]); this.schemaMap[jsonBook.schemas[i].id] =3D schema; } else { Object.extend(schema, jsonBook.schemas[i]); } } } if (jsonBook.groups){ if (!this.groupsMap || !this.groups || this.groups.length =3D=3D 0){ this.groupsMap =3D new Array(); this.groups =3D jsonBook.groups; for (var i =3D 0; i < jsonBook.groups.length; i++){ this.groupsMap[jsonBook.groups[i].id] =3D i; } } else { for (var i =3D 0; i < jsonBook.groups.length; i++){ var group =3D this.groupsMap[jsonBook.groups[i].id];=20 if (group =3D=3D=3D undefined){ this.groupsMap[jsonBook.groups[i].id] =3D this.groups.length; this.groups.push( jsonBook.groups[i] ); } else { this.groups[group] =3D jsonBook.groups[i]; } } } } if (jsonBook.colDefs){ for (var i =3D 0; i < jsonBook.colDefs.length; i++){ // create a new colDef if one with same id does not already exists var colIndex =3D this.colDefMap[jsonBook.colDefs[i].id]; if (colIndex =3D=3D undefined){ if ( jsonBook.colDefs[i].deleted ) continue; this.colDefMap[jsonBook.colDefs[i].id] =3D this.colDefs.length; this.colDefs.push(this._createColDef( jsonBook.colDefs[i], this, = this.schemaMap )); } else { var colDef =3D this.colDefs[colIndex];=20 colDef.comput_err =3D false; Object.extend(colDef, jsonBook.colDefs[i]); // clear all grades in column if computation error for column if (jsonBook.colDefs[i].comput_err){ var grades =3D this._getGradesForItemId(jsonBook.colDefs[i].id, = true); for (var g =3D 0; g < grades.length; g++){ grades[g].initialize( grades[g].colDef, grades[g].metaData); } } if (colDef.deleted){ this.colDefMap[colDef.id] =3D null; } if (colDef.sid){ colDef.primarySchema =3D this.schemaMap[colDef.sid]; } if (colDef.ssid && colDef.ssid.length > 0){ colDef.secondarySchema =3D this.schemaMap[colDef.ssid]; } else { colDef.secondarySchema =3D null; } } } } // need to add any new row data? while (this.rows.length > 0 && this.colDefs.length > = this.rows[0].length){ var colDefIndex =3D this.rows[0].length; for (var i =3D 0; i < this.rows.length; i++){ var metaData =3D this.rows[i][0].metaData; var colDef =3D this.colDefs[colDefIndex]; if ( colDef instanceof Gradebook.GradeColDef )=20 this.rows[i].push(new Gradebook.Grade( colDef, metaData )); else this.rows[i].push(new Gradebook.StudentAttribute( colDef, metaData = )); } } if (jsonBook.rows){ // users changed, need to resync if (jsonBook.type =3D=3D "delta_with_user"){ // remove rows from model that are not in json data var tempArray =3D new Array(); for (var i =3D 0; i < this.rows.length; i++){ if (this._containsUser(jsonBook.rows, = this.rows[i][0].getUserId())) { tempArray.push(this.rows[i]); } } this.rows =3D tempArray; } // add new json rows to model or update existing rows for (var i =3D 0; i < jsonBook.rows.length; i++){ var row =3D this.getRowByUserId(jsonBook.rows[i][0].uid); if (row =3D=3D null){ // new row this.rows.push(this._loadRowDataFromJSON(jsonBook.rows[i], = this.colDefs, this.colDefMap)); } else { this._updateRowDataFromJSON(row, jsonBook.rows[i], this.colDefs, = this.colDefMap); } } } this._buildGradingPeriodMap(); if (jsonBook.customViews){ for (var i =3D 0; i < jsonBook.customViews.length; i++){ // create a new custom view if one with same id does not already = exists var idx =3D this.customViewMap[jsonBook.customViews[i].id];=20 if (idx =3D=3D=3D undefined){ this.customViewMap[jsonBook.customViews[i].id] =3D = this.customViews.length; this.customViews.push(new Gradebook.CustomView( = jsonBook.customViews[i], this )); } else { this.customViews[idx] =3D new Gradebook.CustomView( = jsonBook.customViews[i], this ); } } } // remove any custom views not in customViewIds if (this.customViews){ var tempArray =3D new Array(); this.customViewMap =3D new Array(); for (var i =3D 0; i < this.customViews.length; i++){ if ( jsonBook.customViewIds.indexOf( Number( this.customViews[i].id = ) ) !=3D -1 ) { this.customViewMap[this.customViews[i].id] =3D tempArray.length; tempArray.push(this.customViews[i]); } } this.customViews =3D tempArray; } if (this.customViewIdParam !=3D null && this.customViewIdParam.length = > 0 ) { this._internalChangeCurrentView( 'cv_' + this.customViewIdParam ); } else if (this.currentView) { this._internalChangeCurrentView( this.currentView ); } this._setStudentInfoLayout(); this._updateVisibleRows(jsonBook); this.sortColumns(); this.reSort(); this.checkedNoStudents(); // do this last, it will fireModelChanged } catch (e) { this.fireModelError(e); } }, _buildCategoryNameMap: function( jsonBook ) { this.catNameMap =3D new Array(); if ( jsonBook.categories ) { for (var i =3D 0; i < jsonBook.categories.length; i++){ this.catNameMap[jsonBook.categories[i].id] =3D = jsonBook.categories[i].name; } } }, _updateVisibleRows: function(jsonBook) { var showAll =3D (!jsonBook.hiddenStudentIds || = jsonBook.hiddenStudentIds.length =3D=3D 0); this.visibleRows =3D new Array(); var rows =3D this.rows; // loop through rows and set hidden flag for each row, add to = visibleRows if not hidden for (var i =3D 0, len =3D rows.length; i < len; i++){ var row =3D rows[i]; var isHidden =3D !showAll && ( jsonBook.hiddenStudentIds.indexOf( = Number( row[0].getUserId() ) ) !=3D -1 ); row[0].setHidden( isHidden ); if ( !isHidden ) { this.visibleRows.push( row ); } } this._applyCustomView(); =09 }, updateUserVisibility: function ( userId, visible ) { this.gradebookService.updateUserVisibility( userId, visible ); }, =20 _hasNewUsers: function(jsonBook) { if (!jsonBook || !jsonBook.rows) return false; for (var i =3D 0; i < jsonBook.rows.length; i++){ if (this.getRowByUserId(jsonBook.rows[i][0].uid) =3D=3D null) return = true; } return false; }, _containsUser: function(rows, userId) { for (var i =3D 0; i < rows.length; i++){ if (rows[i][0].uid =3D=3D userId) return true; } return false; }, _createColDef: function(jsonColDef,model,schemaMap) { if (jsonColDef.type =3D=3D "s"){ return new Gradebook.StudentAttributeColDef( jsonColDef, model, = schemaMap ); } else { return new Gradebook.GradeColDef( jsonColDef, model, schemaMap ); } }, _createSchema: function(type,jsonSchema) { if (type =3D=3D "S"){ return new Gradebook.NumericSchema( jsonSchema, this ); } else if (type =3D=3D "X") { return new Gradebook.TextSchema( jsonSchema, this ); } else if (type =3D=3D "P") { return new Gradebook.PercentageSchema( jsonSchema, this ); } else if (type =3D=3D "C") { return new Gradebook.CompleteIncompleteSchema( jsonSchema, this ); } else if (type =3D=3D "T") { return new Gradebook.LetterSchema( jsonSchema, this ); } else { GradebookUtil.debug('GridModel _createSchema invalid type: '+type); return null; } =09 }, _setStudentInfoLayout: function(){ // set pos & gbvis for student attribute columns from = studentInfoLayouts for (var i =3D 0; i < this.studentInfoLayouts.length; i++){ var colIndex =3D this.colDefMap[this.studentInfoLayouts[i].id];=20 if (colIndex =3D=3D=3D undefined){ continue; } var colDef =3D this.colDefs[colIndex]; colDef.gbvis =3D this.studentInfoLayouts[i].gbvis; colDef.pos =3D this.studentInfoLayouts[i].pos; } }, _loadRowDataFromJSON: function(jsonRow, colDefs, colDefMap){ // create a student attribute/grade for each column with a default = blank value var tempRow =3D new Array(); var userId =3D ''; if (jsonRow[0].uid){ userId =3D jsonRow[0].uid; } var metaData =3D new Gradebook.RowMetaData( userId ); // create a gridcell of appropriate type for each column in the row for (var i =3D 0; i < colDefs.length; i++){ if ( colDefs[i] instanceof Gradebook.GradeColDef )=20 tempRow[i] =3D new Gradebook.Grade( colDefs[i], metaData ); else tempRow[i] =3D new Gradebook.StudentAttribute( colDefs[i], metaData = ); } // populate cell data from json - may not include all cells (I.e. null = grades) for (var i =3D 0; i < jsonRow.length; i++){ //use json colDefID to get column index from map var colIndex =3D colDefMap[jsonRow[i].c]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _loadRowDataFromJSON jsonRow contains = data for invalid column id: '+jsonRow[i].c); continue; } //overwrite default value with json value =20 tempRow[colIndex]._loadFromJSON(jsonRow[i]); } return tempRow; }, =09 _updateRowDataFromJSON: function(thisRow, jsonRow, colDefs, colDefMap){ var metaData =3D thisRow[0].metaData; for (var i =3D 0; i < jsonRow.length; i++){ var colIndex =3D colDefMap[jsonRow[i].c]; var grade =3D thisRow[colIndex]; if (grade =3D=3D=3D undefined){ // new grade? if ( colDefs[colIndex] instanceof Gradebook.GradeColDef )=20 grade =3D new Gradebook.Grade( colDefs[colIndex], metaData ); else grade =3D new Gradebook.StudentAttribute( colDefs[colIndex], = metaData ); thisRow.push(grade); } colDefs[colIndex].comput_err =3D false; grade._loadFromJSON(jsonRow[i]); } }, =09 // called by view to get a window of row data // returns iterators to get row data in correct order while skipping = hidden columns getRowIterators: function(startRow, numRows, startCol) { var rows =3D this.visibleRows; if (!startRow) startRow =3D 0; if (!startCol) startCol =3D 0; if (!numRows) numRows =3D rows.length; var endRow =3D startRow + numRows if (startRow < 0 || startRow >=3D rows.length) { GradebookUtil.error('getRowIterators startRow out of range. Max is: = '+rows.length-1+' startRow is: '+startRow); return null; } if (numRows < 0 || numRows > rows.length) { GradebookUtil.error('getRowIterators numRows out of range. Max is: = '+rows.length+' numRows is: '+numRows); return null; } if (startCol < 0 || startCol >=3D this.colOrderMap.length) { GradebookUtil.error('getRowIterators startCol out of range. Max is: = '+this.orderMap.length+' startCol is: '+startCol); return null; } if ( endRow > rows.length){ endRow =3D rows.length GradebookUtil.error('Error: GridModel getRowIterators input args = requesting too much data. startRow =3D '+startRow+' numRows =3D = '+numRows+' rows.length =3D '+rows.length); return null; } var results =3D new Array() var index =3D 0; for ( var i=3DstartRow ; i < endRow; i++ ) { results[index++] =3D new = Gradebook.GridRowIterator(rows[i],this.colOrderMap,startCol); } return results; }, =09 // called by view to get the column definitions // returns iterator to get definitions in correct order while skipping = hidden columns getColDefIterator: function(startCol) { if (!startCol) startCol =3D 0; if (startCol < 0 || startCol >=3D this.colOrderMap.length) { GradebookUtil.error('getColDefIterator startCol out of range. Max is: = '+this.orderMap.length+' startCol is: '+startCol); return null; } return new = Gradebook.GridRowIterator(this.colDefs,this.colOrderMap,startCol); }, =09 // called by view to determine how much vertical scroll is needed getNumRows: function() { if (this.visibleRows) return this.visibleRows.length; else=20 return 0; }, // called by view to determine how much horizontal scroll is needed getNumColDefs: function() { return this.colOrderMap.length; }, // called by view to determine how many columns to freeze getNumFrozenColumns: function() { return this.numFrozenColumns; }, getSortDir: function(){ return this.sortDir; },=20 =09 getSortIndex: function(){ if (this.sortColumnId =3D=3D=3D undefined){ return -1; } var colnum =3D this.colDefMap[this.sortColumnId]; if (colnum =3D=3D=3D undefined){ return -1; } else { var sortColumn =3D this.colOrderMap[colnum]; if (sortColumn =3D=3D=3D undefined || this.colDefs[sortColumn] = =3D=3D=3D undefined || this.colDefs[sortColumn].deleted =3D=3D "Y"){ return -1; } else { return colnum; } } },=20 =09 reSort: function() { if (this.sortColumnId =3D=3D=3D undefined || this.sortDir =3D=3D=3D = undefined) return; var colnum =3D this.getSortIndex(); if (colnum =3D=3D -1) return; this.sort(colnum, this.sortDir); }, setDefaultView: function(view) { this.gradebookService.setDefaultView( view ); },=09 =09 getDefaultView: function() { // do not return a view that does not exist in model if (this.defCVID) { if ( this.customViewMap[ this.defCVID ] ) return 'cv_' + = this.defCVID; return null; } else if (this.defGPID){ if ( this.gradingPeriodMap && !this.gradingPeriodMap[ this.defGPID = ] ) return null; return this.defGPID; } else { return null; } },=09 =09 // changes the current view to a grading period or custom view // returns error string or null if no error changeCurrentView: function(view) { // null out customViewIdParam so that it will not override the view = set by the user next time the page is reloaded this.customViewIdParam =3D null; return this._internalChangeCurrentView(view); }, =09 _internalChangeCurrentView: function(view) { var origView =3D this.currentView; this.currentView =3D view; this.currentCustomView =3D null; this.currentGradingPeriodId =3D null; if (view.startsWith('cv_')){ var idx =3D this.customViewMap[view.substring(3)];=20 if (idx =3D=3D undefined){ if ( this.defCVID ) { var defaultView =3D 'cv_' + this.defCVID; if ( defaultView !=3D view ) { this._internalChangeCurrentView( defaultView ); } else { this.currentView =3D (this.currentView !=3D origView) ? origView = : null; return null; //this.getMessage('custViewDoesNotExistMsg'); } } else if (this.defGPID) { this._internalChangeCurrentView( this.defGPID ); } else { this.currentView =3D (this.currentView !=3D origView) ? origView : = null; return null; //this.getMessage('custViewDoesNotExistMsg'); } } else { if (!this.customViews[idx].evaluate()){ this.currentView =3D (this.currentView !=3D origView) ? origView : = null; return this.getMessage('changesEffectCustViewMsg'); } this.currentCustomView =3D this.customViews[idx]; } } else { if ( this.gradingPeriodMap && !this.gradingPeriodMap[ view ] )=20 { if ( this.defCVID ) { this._internalChangeCurrentView( 'cv_' + this.defCVID = ); } else if (this.defGPID && this.defGPID!=3Dview) { this._internalChangeCurrentView( this.defGPID ); } else { this.currentView =3D (this.currentView !=3D origView) ? origView : = null; this.currentGradingPeriodId =3D null; } return null; } this.currentGradingPeriodId =3D view; } return null; }, _applyCustomView: function() { if ( this.isolatedStudentId ) { this.visibleRows =3D new Array(); var row =3D this.getRowByUserId(this.isolatedStudentId); this.visibleRows.push( row ); } if(this.currentCustomView =3D=3D null || this.currentCustomView = =3D=3D undefined){ return; } this.currentCustomView.evaluate( this ); var userIds =3D this.currentCustomView.getUserIds(); if ( this.isolatedStudentId ) return; this.visibleRows =3D new Array(); // loop through custom view users and add to visibleRows for (var i =3D 0, len =3D userIds.length; i < len; i++){ var row =3D this.getRowByUserId(userIds[i]); if (row) this.visibleRows.push( row ); } }, =09 _buildGradingPeriodMap: function() { this.gradingPeriodMap =3D new Array(); if (this.gradingPeriods){ for (var i =3D 0, len =3D this.gradingPeriods.length; i < len; i++){ this.gradingPeriodMap[this.gradingPeriods[i].id] =3D = this.gradingPeriods[i]; =09 } this.gradingPeriods.sort( function(a,b){ var aa =3D a.name.toLowerCase(); var bb =3D b.name.toLowerCase(); if (aa =3D=3D bb) return 0; else if (aa < bb) return -1; else return 1; } ); } }, getCustomView: function(cvId) { var idx =3D this.customViewMap[cvId];=20 if (idx =3D=3D undefined){ return null; } else { return this.customViews[idx]; } }, getCurrentCustomView: function(cvId) { return this.currentCustomView; }, sortColumns: function(sortBy) { if (this.sortColAscending =3D=3D undefined){ this.sortColAscending =3D true; } =09 if (sortBy){ if (this.currentSortColumnBy =3D=3D sortBy){ this.sortColAscending =3D !this.sortColAscending; } else { this.sortColAscending =3D true; this.currentSortColumnBy =3D sortBy; } } else if (!this.currentSortColumnBy){ this.currentSortColumnBy =3D 'pos'; } var sortFunc =3D null; sortBy =3D this.currentSortColumnBy; if (sortBy =3D=3D 'pos'){ sortFunc =3D this._sortColByPosFunc.bind(this); } else if (sortBy =3D=3D 'categories'){ sortFunc =3D this._sortColByCategoriesFunc.bind(this); } else if (sortBy =3D=3D 'dueDate') { sortFunc =3D this._sortColByDueDateFunc.bind(this); } else if (sortBy =3D=3D 'creationdate') { sortFunc =3D this._sortColByCreationDateFunc.bind(this); } else if (sortBy =3D=3D 'points') { sortFunc =3D this._sortColByPointsFunc.bind(this); } else if (sortBy =3D=3D 'name') { sortFunc =3D this._sortColByNameFunc.bind(this); } =09 var tempColDefs =3D new Array(); =09 if(this.currentCustomView){ var colIds =3D this.currentCustomView.getDisplayItemIds(); tempColDefs =3D this._getVisibleToAll( = this.currentCustomView.includeHiddenItems, colIds ); for (var i =3D 0, len =3D colIds.length; i < len; i++){ var cd =3D this.colDefs[this.colDefMap[colIds[i]]]; tempColDefs.push(cd); } } else { // filter out colDefs that are: deleted, hidden, not in all grading = periods // or not in current grading period for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ var cd =3D this.colDefs[i]; if (cd.deleted || !cd.gbvis) continue; var cgp =3D this.currentGradingPeriodId; var ingp =3D (cgp =3D=3D undefined || cgp =3D=3D cd.gpid || cgp = =3D=3D 'all' || (cgp =3D=3D 'none' && cd.gpid =3D=3D '')); if (cd.visAll || !cd.isGrade() || ingp){ tempColDefs.push(cd); } } } tempColDefs.sort(sortFunc); // compute colOrderMap based on the sorted columns this.colOrderMap =3D new Array(); for (var i =3D 0, len =3D tempColDefs.length, idx =3D 0; i < len; = i++){ this.colOrderMap[idx++] =3D this.colDefMap[tempColDefs[i].id]; } =09 }, _getVisibleToAll: function( includeHidden, excludeIds ) { var tempColDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ var cd =3D this.colDefs[i]; if (excludeIds.indexOf( cd.id ) !=3D -1) continue; var visAll =3D cd.visAll || !cd.isGrade(); if (cd.deleted || !visAll || (!includeHidden && !cd.gbvis)) continue; tempColDefs.push(cd); } return tempColDefs; }, // if both a & b are NOT visible to all, returns null // if both a & b are visible to all, sorts by position // if a is visible to all, returns -1 so visible to all columns come = first // if b is visible to all, returns 1 so visible to all columns come = first _sortVisibleToAll: function(a,b) { var aVisAll =3D a.visAll || !a.isGrade(); var bVisAll =3D b.visAll || !b.isGrade(); if (!aVisAll && !bVisAll) { return null; } else if (aVisAll && bVisAll) { return a.pos - b.pos; } else if (aVisAll) { return -1; } else if (bVisAll) { return 1; } }, _sortColDir: function(result) { return (this.sortColAscending)?result:result*-1; }, _sortColByPosFunc: function(a,b) { var sf =3D this._sortVisibleToAll(a,b); if (sf !=3D null) return sf; var gpPosA =3D (a.gpid.blank())?-1:this.gradingPeriodMap[a.gpid].pos; = var gpPosB =3D (b.gpid.blank())?-1:this.gradingPeriodMap[b.gpid].pos;=09 var res;=09 if (gpPosA =3D=3D gpPosB){ res =3D a.pos - b.pos; } else if (gpPosA >=3D 0 && gpPosB >=3D 0){ res =3D gpPosA - gpPosB; } else if (gpPosB =3D=3D -1) { res =3D -1; } else { res =3D 1; } return this._sortColDir( res ); }, _sortColByPointsFunc: function(a,b) { var sf =3D this._sortVisibleToAll(a,b); if (sf !=3D null) return sf; var aa =3D a.points; var bb =3D b.points; var res;=09 if (aa=3D=3Dbb)=20 res =3D a.cdate - b.cdate; else if (aa=3D this.colOrderMap.length) { GradebookUtil.error('sort colnum out of range. Max is: = '+this.orderMap.length+' colnum is: '+colnum); return; } GradebookUtil.debug('GridModel sort called. colnum: '+colnum+' = sortdir: '+sortdir); this.sortDir =3D sortdir; var sortFunc; if (colnum =3D=3D -1){ this.sortColumnId =3D null; if (sortdir=3D=3D'ASC') sortFunc =3D this._sortCheckedASC.bind(this); else sortFunc =3D this._sortCheckedDESC.bind(this); } else { var sortColumn =3D this.colOrderMap[colnum]; var secondarySortColumn =3D this.colDefMap['LN']; var colDef =3D this.colDefs[sortColumn]; this.sortColumnId =3D colDef.id; if ( this.sortColumnId =3D=3D 'LN' ){ secondarySortColumn =3D this.colDefMap['FN']; } sortFunc =3D colDef.getSortFunction(sortColumn, sortdir, = secondarySortColumn); } this.visibleRows.sort(sortFunc); }, _sortCheckedASC: function(a,b) { var aa =3D a[0].isRowChecked()?1:0; var bb =3D b[0].isRowChecked()?1:0; if (aa=3D=3Dbb) return 0; if (aa=3D 0) { crsId =3D crsId.split("_")[1]; } var gradeCenterContentFrame =3D window.frames['gradecenterframe']; // = Grade Center Frame in SSL mode if (!gradeCenterContentFrame) gradeCenterContentFrame =3D = window.frames['content']; // regular course content frame if (!gradeCenterContentFrame.GradebookDWRFacade) = gradeCenterContentFrame =3D window.frames['content'].frames['main'];=20 gradeCenterContentFrame.GradebookDWRFacade.getGroups(crsId, = Gradebook.GridModel.prototype.updateGroupsCallback ); }, =20 updateGroupsCallback: function (retData) { var groupsMap =3D new Array(); var groups =3D new Array(); var h =3D $H(retData); h.each(function(pair) { var g =3D {}; g.id =3D pair.key; g.uids =3D pair.value; groupsMap[g.id] =3D groups.length; groups.push( g ); }); var model =3D Gradebook.getModel(); =20 model.groupsMap =3D groupsMap; model.groups =3D groups; }, =20 // used by reporting getReportData: function (reportDef) { // get rows for students to include in report var userIds =3D null; if (reportDef.students =3D=3D 'BYGROUPS'){ if ( reportDef.groupIds =3D=3D null ){ GradebookUtil.error('GridModel error getReportData: no = reportDef.groupIds'); return null; } userIds =3D this._getUserIdsByGroupIds( reportDef.groupIds ); } else if (reportDef.students =3D=3D 'BYSTUDENT') { if ( reportDef.studentIds =3D=3D null ){ GradebookUtil.error('GridModel error getReportData: no = reportDef.studentIds'); return null; } userIds =3D reportDef.studentIds; } var rows =3D this._getRowsByUserIds( userIds );=20 if ( !reportDef.includeHiddenStudents ) rows =3D this._removeHiddenStudents(rows); // get columns to include in report var colDefs =3D this.getColDefs(true,true); if (reportDef.columns =3D=3D 'BYITEM'){ colDefs =3D this._getColDefsById( reportDef.itemIds ); } else if (reportDef.columns =3D=3D 'BYGP'){ colDefs =3D this._getColDefsByGradingPeriodId( = reportDef.gradingPeriodIds ); } else if (reportDef.columns =3D=3D 'BYCAT'){ colDefs =3D this._getColDefsByCategoryId( reportDef.categoryIds ); } if (!reportDef.includeHiddenColumns){ colDefs =3D this._removeHiddenColumns( colDefs ); } // create return data structure var reportData =3D {}; reportData.columnInfoMap =3D new Array(); reportData.studentGradeInfo =3D new Array(); // add column data for (var i =3D 0, len =3D colDefs.length; i < len; i++){ var cdef =3D colDefs[i]; var cdata =3D {}; reportData.columnInfoMap[cdef.id] =3D cdata; cdata.name =3D cdef.getName(); if (reportDef.columnInfoDescription){ cdata.description =3D 'tbd'; // server will provide desc map } if (reportDef.columnInfoDueDate){ cdata.dueDate =3D cdef.getDueDate(); } if (reportDef.columnInfoStatsMedian || = reportDef.columnInfoStatsAverage){ var stats =3D cdef.getStats( true ); // include unavailable students cdata.statsMedian =3D stats.median; cdata.statsAverage =3D stats.avg; } } =09 // add student data for (var i =3D 0, len0 =3D rows.length; i < len0; i++){ var row =3D rows[i]; var rd =3D {}; reportData.studentGradeInfo.push(rd); =09 if (reportDef.firstName){ rd.firstName =3D this._getStudentAttribute( row, 'FN' ); } if (reportDef.lastName){ rd.lastName =3D this._getStudentAttribute( row, 'LN' ); } if ( reportDef.studentId ){ rd.studentId =3D this._getStudentAttribute( row, 'SI' ); } if ( reportDef.userName ){ rd.userName =3D this._getStudentAttribute( row, 'UN' ); } if ( reportDef.lastAccessed ){ rd.lastAccessed =3D this._getStudentAttribute( row, 'LA' ); if (rd.lastAccessed && rd.lastAccessed > 0){=20 var date =3D new Date(); date.setTime(rd.studentId); rd.lastAccessed =3D formatDate(date,'MMM d, y'); } } rd.grades =3D new Array(); for (var c =3D 0, len1 =3D colDefs.length; c < len1; c++){ var g =3D {}; g.cid =3D colDefs[c].id; var gridCell =3D this._getGrade( row, colDefs[c]); if (gridCell.attemptInProgress() && !gridCell.isOverride())=20 g.grade =3D this.getMessage('inProgressMsg'); else if (gridCell.needsGrading() && !gridCell.isOverride())=20 g.grade =3D this.getMessage('needsGradingMsg'); else=20 g.grade =3D gridCell.getCellValue(); rd.grades.push( g ); } } return reportData; }, _getGrade: function( row, colDef ) { var colIndex =3D this.colDefMap[colDef.id]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _getGrade invalid column id: = '+colDef.id); return null; } return row[colIndex]; }, _getStudentAttribute: function( row, colDefId ) { var colIndex =3D this.colDefMap[colDefId]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _getStudentAttribute invalid column = id: '+colDefId); return null; } return row[colIndex].getValue(); }, _removeHiddenStudents: function( students ) { var retStudents =3D new Array(); for (var i =3D 0, len =3D students.length; i < len; i++){ if (!students[i][0].isHidden()){=09 retStudents.push( students[i] ); } } return retStudents; }, _removeHiddenColumns: function( colDefs ) { var retColDefs =3D new Array(); for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if (!colDefs[i].isHidden()){=09 retColDefs.push( colDefs[i] ); } } return retColDefs; }, _getColDefsById: function( itemIds ) { var colDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ if (itemIds.indexOf( this.colDefs[i].id ) !=3D -1){=09 colDefs.push( this.colDefs[i] ); } } return colDefs; }, _getColDefsByCategoryId: function( categoryIds ) { var colDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ if (categoryIds.indexOf( this.colDefs[i].catid ) !=3D -1){=09 colDefs.push( this.colDefs[i] ); } } return colDefs; }, _getColDefsByGradingPeriodId: function( gradingPeriodIds ) { var colDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ if (gradingPeriodIds.indexOf( this.colDefs[i].gpid ) !=3D -1){=09 colDefs.push( this.colDefs[i] ); } } return colDefs; }, _getRowsByUserIds: function( userIds ) { var rows =3D this.rows; if (userIds =3D=3D null){ return rows; } var retRows =3D new Array(); for (var i =3D 0, len =3D rows.length; i < len; i++){ if (userIds.indexOf(rows[i][0].getUserId()) !=3D -1){ retRows.push(rows[i]); } } return retRows; }, _getUserIdsByGroupIds: function( groupIds ) { if ( !this.groupsMap || !this.groups ){ GradebookUtil.error('GridModel error getUserIdsByGroupIds: no = groups'); return null; } var userIds =3D new Array(); for (var i =3D 0; i < groupIds.length; i++){ var index =3D this.groupsMap[Number(groupIds[i])]; if (index =3D=3D undefined){ GradebookUtil.error('GridModel error getUserIdsByGroupIds: no group = for id: '+groupIds[i]); continue; } var group =3D this.groups[index]; for (var g =3D 0; g < group.uids.length; g++){ if (userIds.indexOf(group.uids[g]) =3D=3D -1){ userIds.push( String( group.uids[g] ) ); } } } return userIds; }, // called by student stats page getStudentStats: function( userId, currentViewOnly ) { var studentStats =3D {}; studentStats.catStats =3D new Array(); var catMap =3D new Array(); =09 // get columns, either all or current view var colDefs =3D new Array(); var len =3D currentViewOnly ? this.colOrderMap.length : = this.colDefs.length; for (var i =3D 0; i < len; i++){ var idx =3D currentViewOnly ? this.colOrderMap[i] : i; var c =3D this.colDefs[idx]; if (!c.deleted && c.isGrade() && !c.isCalculated()) { colDefs.push( c ); } } var row =3D this.getRowByUserId(userId); =09 for (var i =3D 0; i < colDefs.length; i++){ var colDef =3D colDefs[i]; var catId =3D colDef.getCategoryID(); var catStat =3D catMap[catId]; if (catStat =3D=3D null){ catStat =3D {}; catStat.name =3D colDef.getCategory(); catStat.qtyGraded =3D 0; catStat.qtyInProgress =3D 0; catStat.qtyNeedsGrading =3D 0; catStat.qtyExempt =3D 0; catStat.sum =3D 0; catStat.avg =3D 0; catMap[catId] =3D catStat; studentStats.catStats.push( catStat ); } var grade =3D this._getGrade( row, colDef); var val =3D grade.getSortValue(); var isNull =3D (val =3D=3D '-'); var isIP =3D grade.attemptInProgress(); var isNG =3D grade.needsGrading(); var isExempt =3D grade.isExempt(); var isVal =3D (!isNull && !isIP && !isNG && !isExempt); if (isIP)=20 catStat.qtyInProgress++; else if (isNG)=20 catStat.qtyNeedsGrading++; else if (isExempt)=20 catStat.qtyExempt++; =09 if (isVal){ catStat.qtyGraded++; if (colDef.isCalculated()){ val =3D parseFloat(val)/parseFloat(grade.getPointsPossible()) * = 100.0;=09 } catStat.sum +=3D parseFloat( val ); } } studentStats.numItemsCompleted =3D 0; var totNumExempt =3D 0; for (var i =3D 0; i < studentStats.catStats.length; i++){ var catStat =3D studentStats.catStats[i]; if (catStat.sum > 0){ catStat.avg =3D catStat.sum/parseFloat( catStat.qtyGraded ); catStat.avg =3D NumberFormatter.getDisplayFloat( = catStat.avg.toFixed(2) ); } totNumExempt +=3D catStat.qtyExempt; studentStats.numItemsCompleted +=3D (catStat.qtyNeedsGrading + = catStat.qtyGraded); } studentStats.numItems =3D colDefs.length - totNumExempt; return studentStats; }, getAccessibleMode: function() { return this.accessibleMode; }, =09 setAccessibleMode: function( accessibleMode ) { this.accessibleMode =3D accessibleMode; }, =09 setLoggerDebugLevel: function(logger) { this.logger.setLevel(top.content.log4javascript.Level.DEBUG); }, setLogger: function(logger) { this.logger =3D logger; }, getLogger: function() { return this.logger; }, setMessages: function (messages) { this.messages =3D messages; }, getMessage: function (key) { if (this.messages){ return this.messages[key]; } else { return key; } } }; Gradebook.RowMetaData =3D Class.create(); Gradebook.RowMetaData.prototype =3D { initialize: function(userId) { this.userId =3D userId; this.isChecked =3D false; this.isHidden =3D false; this.comput_err =3D false; } }; //////////////////////////// Column Defs = ////////////////////////////////////// Gradebook.ColDef =3D Class.create(); Gradebook.ColDef.prototype =3D { initialize: function(jsonObj, model, schemaMap) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object if (this.sid){ this.primarySchema =3D schemaMap[this.sid]; } if (this.ssid){ this.secondarySchema =3D schemaMap[this.ssid]; } }, getSortFunction: function(sortColumn, sortdir, secondarySortColumn) { this.sortColumn =3D sortColumn; this.secondarySortColumn =3D secondarySortColumn; if (sortdir=3D=3D'ASC') return this._sortASC.bind(this); else return this._sortDESC.bind(this); }, validate: function(newValue, matchPartial) { if (!this.primarySchema){ return null; } else { return this.primarySchema.validate(newValue, matchPartial); } }, _sortASC: function(a,b) { var aa =3D a[this.sortColumn].getValue(); var bb =3D b[this.sortColumn].getValue(); if( !aa && !bb ) return this._secondarySortASC(a,b); if( !aa ) return -1; if( !bb ) return 1; aa =3D aa.toUpperCase(); bb =3D bb.toUpperCase(); if (aa=3D=3Dbb)return this._secondarySortASC(a,b); if (aa('+cellVal2+')'; } =20 return new String(cellVal); }, // called by GridCell.getAltValue to get alt (mouse over) value for = rendering in spreadsheet // same as getCellValue unless there is a secondary schema getAltValue: function( gridCell ){ if (gridCell.isExempt()) { return this.model.getMessage('cmExemptGrade'); } =09 if (!this.secondarySchema){ return this.getCellValue( gridCell ); } var cellVal =3D this.primarySchema.getCellValue( gridCell ); if (this.secondarySchema){ var cellVal2 =3D this.secondarySchema.getCellValue( gridCell ); cellVal +=3D ' ('+cellVal2+')'; } return new String(cellVal); }, getSortValue: function( gridCell ){ return gridCell.getValue(); }, getName: function() { return this.name; }, getID: function() { return this.id; }, getPoints: function() { if ( this.isCalculated() )=20 return GradebookUtil.getMessage( 'variesPerStudentMsg' ); else return this.points; }, getAliasID: function() { return this.id; }, getCategoryID: function() { return this.catid; }, getCategory: function() { if (! this.catid ) return ""; if (! this.model.catNameMap ) return ""; var name =3D this.model.catNameMap[ Number(this.catid) ]; if ( name ) return name; return ""; }, getCategoryAliasID: function() { return this.catid; }, isHidden: function() { return !this.gbvis; }, isScorable: function() { return this.scrble; }, isPublic: function() { return (this.id =3D=3D this.model.pubColID); }, isVisibleToStudents: function() { return this.vis; }, onHideColumn: function( evt ) { Event.stop( evt ); this.gbvis =3D false; this.model.hideColumn(this.id); }, onSortAscending: function ( evt ) { Event.stop( evt ); this.cellController.onSortAscending(); }, =20 onSortDescending: function ( evt ) { Event.stop( evt ); this.cellController.onSortDescending(); }, =20 onToggleColumnStudentVisibility : function( evt ){ Event.stop( evt ); this.model.setColumnStudentVisibility( this.id, !this.vis ); this.cellController.closePopupsAndRestoreFocus(evt); }, getDisplayType: function( ) { return this.primarySchema.type; }, hasError: function( ) { return this.comput_err; }, =09 // called by model.getDisplayValue when external pages need to convert = a rawValue // This function passes this.points to schema.getDisplayValue.=20 // This method should not be called for this colDef if this colDef is a = calculated=20 // column, because we do not have access to the gridCell to get its max = points. // todo: determine how to handle error condition if this column is a = calulated col getDisplayValue: function( rawValue ) { if (this.primarySchema){ return this.primarySchema.getDisplayValue( rawValue, this.points ); } else { return rawValue; } } }; Gradebook.GradeColDef =3D Class.create(); Object.extend(Gradebook.GradeColDef.prototype, = Gradebook.ColDef.prototype); Object.extend (Gradebook.GradeColDef.prototype, { =20 initialize: function(jsonObj, model, schemaMap) { Gradebook.ColDef.prototype.initialize.call(this,jsonObj, model, = schemaMap); }, getRawValue: function( newValue ){ var score =3D newValue; // compute score based on primary schema if (this.primarySchema){ var rawValue =3D this.primarySchema.getRawValue(newValue,this); score =3D parseFloat( rawValue ); if (!GradebookUtil.isValidFloat( rawValue )){ if (typeof(rawValue) =3D=3D "string") return rawValue; score =3D 0; } } return score; }, getSortValue: function( gridCell ){ if (this.primarySchema){ return this.primarySchema.getSortValue( gridCell ); } else { return gridCell.getValue(); } }, updateGrade: function( newValue, userId ){ var score =3D this.getRawValue(newValue); var textValue =3D newValue; this.model.updateGrade(score, textValue, userId, this.id); }, _sortASC: function(a,b) { var gradeA =3D a[this.sortColumn]; var gradeB =3D b[this.sortColumn]; var aa =3D gradeA.getSortValue(); var bb =3D gradeB.getSortValue(); if (gradeA.colDef.primarySchema instanceof Gradebook.TextSchema){ if (aa=3D=3Dbb) return this._secondarySortASC(a,b); if (aa 0){=20 var date =3D new Date(); date.setTime(this.due); dueDate =3D formatDate(date,'MMM d, y'); } return dueDate; }, =09 // called by item stats page getStats: function ( includeUnavailableStudents ) { var grades =3D this.model._getGradesForItemId(this.id, = includeUnavailableStudents); if (this.primarySchema instanceof Gradebook.TextSchema){ grades =3D new Array(); } =09 var values =3D new Array(); var sum =3D 0; var stats =3D {}; stats.count =3D 0; stats.minVal =3D null; stats.maxVal =3D null; stats.qtyNull =3D 0; stats.qtyInProgress =3D 0; stats.qtyNeedsGrading =3D 0; stats.qtyExempt =3D 0; =09 for (var i =3D 0; i < grades.length; i++){ var grade =3D grades[i]; var val =3D grade.getSortValue(); var isNull =3D (val =3D=3D '-'); var isIP =3D grade.attemptInProgress(); var isNG =3D grade.needsGrading(); var isExempt =3D grade.isExempt(); var isVal =3D (!isNull && !isIP && !isNG && !isExempt); if (isIP)=20 stats.qtyInProgress++; else if (isNG)=20 stats.qtyNeedsGrading++; else if (isExempt)=20 stats.qtyExempt++; else if (isNull)=20 stats.qtyNull++; =09 if (isVal){ if (this.isCalculated()){ val =3D (parseFloat(val)/parseFloat(grade.getPointsPossible()) * = 100.0);=09 } values.push( val ); sum +=3D parseFloat( val ); stats.minVal =3D (stats.minVal =3D=3D null) ? val : Math.min( val, = stats.minVal); stats.maxVal =3D (stats.maxVal =3D=3D null) ? val : Math.max( val, = stats.maxVal); } } stats.count =3D values.length; =09 if (values.length =3D=3D 0){ stats.avg =3D ''; stats.range =3D ''; stats.minVal =3D ''; stats.maxVal =3D ''; stats.median =3D ''; stats.variance =3D ''; stats.stdDev =3D ''; } else { stats.avg =3D sum/values.length; stats.range =3D stats.maxVal - stats.minVal; =09 values.sort( Gradebook.numberComparator ); if (values.length =3D=3D 1){ stats.median =3D values[0]; } else if (values.length % 2){ // number of values is odd, the median is the middle value stats.median =3D values[parseInt(values.length/2)]; } else { // number of values is even, the median is the average of the two = middle values stats.median =3D (values[values.length/2-1] + = values[values.length/2])/2; } stats.variance =3D this._computeVariance( values, stats.avg ); stats.stdDev =3D Math.sqrt( stats.variance ); stats.maxVal =3D this._formatFloat( stats.maxVal ); stats.minVal =3D this._formatFloat( stats.minVal ); stats.avg =3D this._formatFloat( stats.avg ); stats.range =3D this._formatFloat( stats.range ); stats.median =3D this._formatFloat( stats.median ); stats.variance =3D this._formatFloat( stats.variance ); stats.stdDev =3D this._formatFloat( stats.stdDev ); } stats.gradeDistribution =3D this.primarySchema.getGradeDistribution( = values, this.points, stats ); return stats; }, _formatFloat: function( f ) { try { if ( f !=3D null )=20 return NumberFormatter.getDisplayFloat( f.toFixed(2) ); } catch ( e ) { //ignore and return the current value=20 } return f; =09 }, _computeVariance: function( values, average ) { var sumXMeanSquare =3D 0; for (var i =3D 0; i < values.length; i++){ var xMean =3D values[i] - average; sumXMeanSquare +=3D (xMean * xMean); } return sumXMeanSquare / values.length; }, =09 getInfo: function() { var publicLabel; if (this.isPublic()) publicLabel =3D GradebookUtil.getMessage('isMsg'); else publicLabel =3D GradebookUtil.getMessage('isNotMsg'); var includedInCalculationsLabel; if (this.isScorable()) includedInCalculationsLabel =3D GradebookUtil.getMessage('yesMsg'); else includedInCalculationsLabel =3D GradebookUtil.getMessage('noMsg'); var points; if ( this.isCalculated() ) points =3D GradebookUtil.getMessage( 'variesPerStudentMsg' ); else points =3D NumberFormatter.getDisplayFloat( this.points ); var info =3D [ {id: "itemInfoId", value: this.getID()}, =20 {id: "itemInfoName", value: this.name}, {id: "itemInfoCategory", value: this.getCategory()}, {id: "itemInfoSchema", value: this.primarySchema.name}, {id: "itemInfoPoints", value: (points=3D=3D0?"-":points)}, {id: "itemInfoPublic", value: publicLabel}, {id: "itemInfoIncludedInCalculations", value: = includedInCalculationsLabel}, {id: "itemInfoDueDate", value: this.getDueDate()} ]; return info; } }); Gradebook.StudentAttributeColDef =3D Class.create(); Object.extend(Gradebook.StudentAttributeColDef.prototype, = Gradebook.ColDef.prototype); Object.extend (Gradebook.StudentAttributeColDef.prototype, { =20 initialize: function(jsonObj, model, schemaMap) { Gradebook.ColDef.prototype.initialize.call(this,jsonObj, model, = schemaMap); this.vis =3D true; }, isGrade: function() { return false; }, isCalculated: function() { return false; }, =09 isTotal: function() { return false; }, =09 isWeighted: function() { return false; }, =09 getType: function() { return "student"; }, =09 // called by GridCell.getCellValue to get value for rendering in = spreadsheet // format date for last access column, all other columns just return = gridcell value getCellValue: function( gridCell ){ var cellVal =3D gridCell.getValue(); if (this.id =3D=3D 'LA'){ // last accessed column var dueDate =3D ''; if (cellVal && cellVal > 0){=20 var date =3D new Date(); date.setTime(cellVal); cellVal =3D formatDate(date,'MMM d, y'); } } return cellVal; }, getRawValue: function( newValue ){ return newValue; }, updateUserVisibility: function ( userId, visible ) { this.model.updateUserVisibility( userId, visible ); }, =20 getContextMenuInfo: function(cellController) { this.cellController =3D cellController; var canHide =3D (this.model.colOrderMap[0] !=3D = this.model.colDefMap[this.id]); var menu =3D { id: "studentInfoHeaderCM", items: [ {id: "sih_sortAscending", visible:true, onclick: this.onSortAscending.bindAsEventListener(this)}, {id: "sih_sortDescending", visible:true, onclick: this.onSortDescending.bindAsEventListener(this)}, {id: "sih_hideColumn", visible:canHide, onclick: this.onHideColumn.bindAsEventListener(this), receipt: = 'hideColumnInlineMsg' } ]}; return menu; =09 } }); //////////////////////////// Grid Cells = ////////////////////////////////////// Gradebook.GridCell =3D Class.create(); Gradebook.GridCell.prototype =3D { =09 initialize: function(colDef, metaData) { this.colDef =3D colDef; this.metaData =3D metaData; this.v =3D "-"; this.canBeEdited =3D true; this.isBeingEdited =3D false; this.isUncommitted =3D false; if (this.colDef.id =3D=3D 'UN'){ this.metaData.userNameGridCell =3D this; } }, _loadFromJSON: function(jsonObj) { this.gc =3D null; // grade change flag this.ip =3D null; // in progress flag this.ng =3D null; // needs grading flag this.or =3D null; // override flag this.x =3D null; // exempt flag cleared if ( !(jsonObj.avail =3D=3D=3D undefined) ){ this.metaData.avail =3D jsonObj.avail; } Object.extend(this, jsonObj); // assign json properties to this object }, =09 getUserId: function() { return this.metaData.userId; }, getUserName: function() { return this.metaData.userNameGridCell.v; }, =09 isHidden: function() { return this.metaData.isHidden; }, =09 setHidden: function( h ) { this.metaData.isHidden =3D h; }, =09 isRowChecked: function() { return this.metaData.isChecked; }, =09 setRowChecked: function(c) { this.metaData.isChecked =3D c; }, =09 invertChecked: function() { this.metaData.isChecked =3D !this.metaData.isChecked; }, =09 isAvailable: function() { return this.metaData.avail; }, isGrade: function() { return (this.colDef.isGrade()); }, =09 isOverride: function() { return (this.or && this.or =3D=3D "y"); }, =09 needsGrading: function() { return (this.ng !=3D null && this.ng && this.ng =3D=3D "y"); }, =09 attemptInProgress: function() { return (this.ip !=3D null && this.ip && this.ip =3D=3D "y"); }, =09 isModified: function() { return (this.gc && this.gc =3D=3D "y"); }, isGraded: function() { var tv =3D this.getTextValue(); return (tv !=3D '-' && tv.length > 0); }, =09 isComplete: function() { if (this.colDef.primarySchema instanceof = Gradebook.CompleteIncompleteSchema){ return this.isGraded(); }else{ =09 return false; } }, isExempt: function() { return (this.x =3D=3D "y"); }, validate: function(newValue, matchPartial) { return this.colDef.validate(newValue, matchPartial); }, =09 update: function(newValue) { this.isUncommitted =3D true; this.gc =3D "y"; this.colDef.updateGrade( newValue, this.getUserId() ); }, // called by CellController.renderHTML to get value for spreadsheet getCellValue: function() { return this.colDef.getCellValue( this ); }, // called by GridCell.getAltValue to get alt (mouse over) value for = rendering in spreadsheet getAltValue: function(){ if ( this.isGrade() && !this.isGraded() ) return = GradebookUtil.getMessage('noGradeMsg'); return this.colDef.getAltValue( this ); }, // called by CellController.startEdit to get input value for editing getEditValue: function() { return this.colDef.getEditValue( this ); }, getSortValue: function() { return this.colDef.getSortValue( this ); }, getPointsPossible: function() { if (this.mp){ return this.mp; } else if (this.colDef.points){ return this.colDef.points; } else { return 0; } }, getTextValue: function() { if (this.tv) { return this.tv; } else { return '-'; } }, getValue: function() { return this.v; } };=09 Gradebook.Grade =3D Class.create(); Object.extend(Gradebook.Grade.prototype, Gradebook.GridCell.prototype); Object.extend (Gradebook.Grade.prototype, { =20 initialize: function(colDef, metaData) { Gradebook.GridCell.prototype.initialize.call(this,colDef, metaData); }, =09 canEdit: function(){ return (!this.colDef.isCalculated() && = !this.colDef.isHideAttemptScore()&& !this.savingDiv); }, showGradeDetails: function( evt ){ Event.stop( evt ); this.colDef.showGradeDetails( this.getUserId() ); }, =09 onAddComment: function(evt){ this.cellController.addGradeComment(evt, this); this.colDef.onAddComment( this.getUserId() ); }, =09 exemptGrade: function(evt){ Event.stop( evt ); this.cellController.stopEdit(false, true); this.colDef.exemptGrade( this.getUserId(), this ); this.cellController.closePopupsAndRestoreFocus(evt) }, =09 clearExemption: function(evt){ Event.stop( evt ); this.colDef.clearExemption( this.getUserId() ); this.cellController.closePopupsAndRestoreFocus(evt); }, onClearModified: function( evt ){ Event.stop( evt ); this.clearModifiedIndicator( ); this.colDef.clearModifiedIndicator( this.getUserId() ); this.cellController.closePopupsAndRestoreFocus(evt); }, =09 clearModifiedIndicator: function(){ this.gc =3D null; if (this.cellController){ this.cellController.renderHTML(this); } }, =09 setComments: function(studentComments, instructorComments){ this.colDef.setComments( this.getUserId(), studentComments, = instructorComments ); }, =09 getContextMenuInfo: function(cellController) { if (this.colDef.isCalculated()){ return null; } this.cellController =3D cellController; // Can add comments for non-null manual column grades &=20 // system column grades that have been overridden var isManual =3D this.colDef.isManual(); var isExempt =3D this.isExempt(); var canAddComment =3D (isManual && this.v !=3D '-') || (!isManual && = this.isOverride()) || isExempt; var menu =3D { id: "gradeCM", items: [ {id: "g_360View", visible:true, onclick: this.showGradeDetails.bindAsEventListener(this)}, {id: "g_addComment", visible: canAddComment, onclick: this.onAddComment.bindAsEventListener(this)}, {id: "g_clearModified", visible:(this.isModified()), onclick: this.onClearModified.bindAsEventListener(this)}, {id: "g_exemptGrade", visible: !isExempt, onclick: this.exemptGrade.bindAsEventListener(this)}, {id: "g_clearExemption", visible: isExempt, onclick: this.clearExemption.bindAsEventListener(this)} ]}; return menu; =09 } }); Gradebook.StudentAttribute =3D Class.create(); Object.extend(Gradebook.StudentAttribute.prototype, = Gradebook.GridCell.prototype); Object.extend (Gradebook.StudentAttribute.prototype, { =20 initialize: function(colDef, metaData) { Gradebook.GridCell.prototype.initialize.call(this,colDef, metaData); }, =09 onSendEmail: function( evt ){ Event.stop( evt ); var ids =3D new Array() ids[0] =3D this.getUserId(); this.cellController.sendEmail('S',ids); }, =09 onShowUser: function( evt ){ Event.stop( evt ); this.colDef.updateUserVisibility( this.getUserId(), true ); }, =09 onHideOtherStudents: function( evt ){ Event.stop( evt ); this.colDef.model.viewSingleStudentGrades( this.getUserId() ); }, =09 onShowAllRows: function( evt ){ Event.stop( evt ); this.colDef.model.restoreFromSingleStudentView(); }, =09 onStudentStats: function( evt ){ Event.stop( evt ); this.colDef.model.viewStudentStats( this.getUserId() ); }, =09 onHideUser: function( evt ){ Event.stop( evt ); this.colDef.updateUserVisibility( this.getUserId(), false ); }, =09 onAdaptiveReleaseUser: function( evt ){ Event.stop( evt ); this.colDef.model.viewAdaptiveRelease( this.getUserName() ); }, =09 canEdit: function(){ return false; }, =09 getContextMenuInfo: function(cellController) { this.cellController =3D cellController; var menu =3D { id: "studentInfoCM", items: [ {id: "si_studentHideOtherStudents", = visible:this.colDef.model.isolatedStudentId?false:true, onclick: this.onHideOtherStudents.bindAsEventListener(this)}, {id: "si_showAllRows", = visible:this.colDef.model.isolatedStudentId?true:false, onclick: this.onShowAllRows.bindAsEventListener(this)}, {id: "si_studentStats", visible:true, onclick: this.onStudentStats.bindAsEventListener(this)}, {id: "si_adaptiveReleaseColumn", visible:true, onclick: this.onAdaptiveReleaseUser.bindAsEventListener(this)}, {id: "si_sendEmail", visible:true, onclick: this.onSendEmail.bindAsEventListener(this)}, {id: "si_hideUser", visible:!this.isHidden(), onclick: this.onHideUser.bindAsEventListener(this), receipt: 'hideStudentInlineMsg'}, {id: "si_showUser", visible:this.isHidden(), onclick: this.onShowUser.bindAsEventListener(this)} ]}; return menu; =09 } }); //////////////////////////// Schemas = ////////////////////////////////////// Gradebook.NumericSchema =3D Class.create(); Gradebook.NumericSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 getGradeDistribution: function( grades, points, stats ){ return Gradebook.PercentageSchema.prototype.getGradeDistribution( = grades, points, stats ); }, =09 // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getValue(), = gridCell.getPointsPossible());=09 }, =09 // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, getSortValue: function( gridCell ){ return gridCell.getValue();=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (rawValue =3D=3D '-' || rawValue.length =3D=3D 0){ return rawValue; } return NumberFormatter.getDisplayFloat( = parseFloat(rawValue).toFixed(2) ) }, getRawValue: function(displayValue,colDef) { return NumberFormatter.getDotFloat( displayValue ); }, validate: function(newValue, matchPartial) { if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; var val =3D NumberFormatter.getDotFloat( newValue ); if (!GradebookUtil.isValidFloat( val )){ return GradebookUtil.getMessage('invalidNumberErrorMsg'); } val =3D ''+val; var idx =3D val.indexOf('.'); if (idx > -1 && (val.length - idx - 1) > 4) return GradebookUtil.getMessage('tooManyDecimalPlacesErrorMsg'); else { return null; } } }; Gradebook.TextSchema =3D Class.create(); Gradebook.TextSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, getGradeDistribution: function( grades, points, stats ){ return null; }, =09 // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getTextValue(), = gridCell.getPointsPossible());=09 }, getSortValue: function( gridCell ){ var tv =3D gridCell.getTextValue().toUpperCase(); //if (tv =3D=3D '-') tv =3D ''; return tv;=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ return rawValue;=09 }, getRawValue: function(displayValue,colDef) { return displayValue; }, validate: function(newValue, matchPartial) { // is any value bad? return null; } }; Gradebook.PercentageSchema =3D Class.create(); Gradebook.PercentageSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 // called by ColDef.getStats=20 getGradeDistribution: function( grades, points, stats ){ var dist =3D new Array(); var range =3D new Array(); range.count =3D 0; range.text =3D 'less than 0'; dist.push( range ); for (var i =3D 0; i < 10; i++){ range =3D new Array(); range.count =3D 0; range.low =3D (i * 10); range.high =3D (i * 10) + ((i < 9)?9:10); range.text =3D range.low + ' - ' + range.high; dist.push( range ); } var range =3D new Array(); range.count =3D 0; range.text =3D 'greater than 100'; dist.push( range ); for (var i =3D 0, len =3D grades.length; i < len; i++){ var percent =3D (points)?(parseFloat(grades[i])/parseFloat(points) * = 100.0) : parseFloat(grades[i]);=09 if (percent =3D=3D 100) percent -=3D 0.1; // 100 should fall into = 90-100 bin var index =3D parseInt(percent/10.0) + 1; if (percent < 0) index =3D 0; if (percent > 100) index =3D 11; dist[index].count++; } dist.reverse(); return dist; }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getValue(), = gridCell.getPointsPossible());=09 }, // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, getSortValue: function( gridCell ){ return gridCell.getValue();=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (parseFloat(points) =3D=3D 0.0 || rawValue =3D=3D '-' || = rawValue.length =3D=3D 0){ return rawValue; } var percent =3D parseFloat(rawValue)/parseFloat(points) * 100.0;=09 return NumberFormatter.getDisplayFloat( parseFloat(percent).toFixed(2) = )+'%';=09 }, getRawValue: function(displayValue,colDef) { var points =3D (colDef.points)?colDef.points:100; displayValue =3D displayValue.replace('%',''); displayValue =3D NumberFormatter.getDotFloat( displayValue ); return parseFloat(displayValue)/100.0 * parseFloat(points);=09 }, validate: function(newValue, matchPartial) { newValue =3D newValue.replace('%',''); if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; var val =3D NumberFormatter.getDotFloat( newValue ); if (!GradebookUtil.isValidFloat( val )){ return GradebookUtil.getMessage('invalidNumberErrorMsg'); } val =3D ''+val; var idx =3D val.indexOf('.'); if (idx > -1 && (val.length - idx - 1) > 4) return GradebookUtil.getMessage('tooManyDecimalPlacesErrorMsg'); else { return null; } } }; Gradebook.CompleteIncompleteSchema =3D Class.create(); Gradebook.CompleteIncompleteSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 // called by ColDef.getStats=20 getGradeDistribution: function( grades, points, stats ){ var dist =3D new Array(); var range =3D new Array(); range.count =3D stats.qtyNull; range.text =3D 'Incomplete'; dist.push( range ); range =3D new Array(); range.count =3D grades.length; range.text =3D 'Complete'; dist.push( range ); dist.reverse(); return dist; }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getTextValue(), = gridCell.getPointsPossible());=09 }, // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return gridCell.getValue(); }, getSortValue: function( gridCell ){ var tv =3D gridCell.getTextValue().toUpperCase(); if (tv =3D=3D '-'){ return '-'; } else { return gridCell.getValue(); } }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (rawValue !=3D '-' && rawValue.length > 0){ return ''; } else { return '-'; } }, getRawValue: function(displayValue,colDef) { return displayValue; }, validate: function(newValue, matchPartial) { if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; // todo: determine what is allowed. I.E. is "-" allowed? // allow empty string or number // return (newValue.length =3D=3D 0 || parseFloat(newValue)); if (!GradebookUtil.isValidFloat(newValue)){ return GradebookUtil.getMessage('invalidNumberErrorMsg'); } else { return null; } } }; Gradebook.LetterSchema =3D Class.create(); Gradebook.LetterSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 // called by ColDef.getStats=20 getGradeDistribution: function( grades, points, stats ){ var dist =3D new Array(); var symMap =3D new Array(); this.symbols.each(function(s) { var range =3D new Array(); range.count =3D 0; range.text =3D s.sym; symMap[s.sym] =3D dist.length; dist.push( range ); }); for (var i =3D 0, len =3D grades.length; i < len; i++){ var val =3D this.getDisplayValue(grades[i], points);=09 var index =3D symMap[val]; if (index !=3D undefined){ dist[index].count++; } } return dist; }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getValue(), = gridCell.getPointsPossible());=09 }, // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, getSortValue: function( gridCell ){ return gridCell.getValue();=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (parseFloat(points) =3D=3D 0.0 || rawValue =3D=3D '-' || = rawValue.length =3D=3D 0){ return rawValue; } var percent =3D parseFloat(rawValue)/parseFloat(points) * 100.0;=09 percent =3D percent.toFixed(2);=09 if (!parseFloat(percent) && percent !=3D 0){ // see if raw value is one of the symbols var matchingSymbol; rawValue =3D rawValue.toUpperCase(); this.symbols.each(function(s) { if (rawValue =3D=3D s.sym.toUpperCase()){ matchingSymbol =3D s.sym; throw $break; // needed to get out of each loop } }); if (matchingSymbol){ return matchingSymbol; } else { return rawValue; } } var retVal =3D rawValue; this.symbols.each(function(s) { if (percent >=3D s.lb && percent <=3D s.ub){ retVal =3D s.sym; throw $break; // needed to get out of each loop } }); return retVal; }, getRawValue: function(displayValue,colDef) { //What it SHOULD be doing is: //Column created with Letter as primary display and secondary display of = % - worth 10 points //Enter A - go to schema and determine that A =3D 95% use 95% to = determine score of 9.5 - store 9.5 and display A //Enter 9 - determine the 9 is 90% (item is out of 10) 90% is an A - = store 9 and display A=20 var points =3D (colDef.points)?colDef.points:100; displayValue =3D ''+displayValue; displayValue =3D displayValue.replace('%',''); var score =3D displayValue.toUpperCase(); var score; this.symbols.each(function(s) { if (score =3D=3D s.sym.toUpperCase()){ score =3D (parseFloat(s.abs)/100.0) * points; throw $break; // needed to get out of each loop } }); return score; }, validate: function(newValue, matchPartial) { if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; // allow numeric value for letter schemas too if (GradebookUtil.isValidFloat(newValue)){ return null; } var retVal =3D GradebookUtil.getMessage('invalidLetterErrorMsg'); newValue =3D newValue.toUpperCase(); this.symbols.each(function(s) { if (newValue =3D=3D s.sym.toUpperCase() ||=20 (matchPartial && s.sym.toUpperCase().startsWith(newValue)) ){ retVal =3D null; throw $break; // needed to get out of each loop } }); return retVal; } }; //////////////////////////// Custom View = ////////////////////////////////////// Gradebook.CustomView =3D Class.create(); Gradebook.CustomView.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =20 // evaluate this custom view; determine userIds & itemIds for view // returns false if the formula cannot be evaluated, else true evaluate: function( ) { try { if ( this.definition ) { var ext =3D eval('({'+ this.definition+'})' ); Object.extend( this, ext ); this.definition =3D null; } this.userIds =3D new Array(); this.colIds =3D new Array(); this.aliasMap =3D new Array(); for (var i =3D 0, len =3D this.aliases.length; i < len; i++){ this.aliasMap[this.aliases[i].key] =3D this.aliases[i].val; } if (this.formula){ this._evaluateAdvanced(); } else { this._evaluateBasic(); } this._computeDisplayItems(); return true; } catch (e) { alert(this.model.getMessage('custViewRenderErrorMsg')); return false; } }, usesGroups: function( ) { for (var i =3D 0, len =3D this.aliases.length; i < len; i++){ if (this.aliases[i].key.startsWith('gr')){ return true; } } return false; }, getUserIds: function() { return this.userIds; }, getDisplayItemIds: function() { return this.colIds; }, _computeDisplayItems: function() { // map aliased ids to real ids if (this.display.ids){ this.display.unAliasedIds =3D new Array(); for (var i =3D 0, len =3D this.display.ids.length; i < len; i++){ var id =3D this.aliasMap[this.display.ids[i]];=09 if (id =3D=3D undefined) throw 'missing alias'; this.display.unAliasedIds.push( id ); } } var colDefs =3D this.model.getColDefs( false, this.display.showhidden = ); var dispType =3D this.display.items.toUpperCase(); if (dispType =3D=3D "BYITEM"){=20 this.colIds =3D this._getItemsById(); } else if (dispType =3D=3D "INCRI"){ // in criteria this.colIds =3D this._getItemsInCriteria(); } else if (dispType =3D=3D "BYCAT"){ // by category this.colIds =3D this._getItemsByCategoryId( colDefs ); } else if (dispType =3D=3D "BYGP"){ // by grading period this.colIds =3D this._getItemsByGradingPeriodId( colDefs ); } else if (dispType =3D=3D "ALLITEM"){ this.colIds =3D this._getAllItems( colDefs ); } else if (dispType =3D=3D "IVS"){ this.colIds =3D this._getItemsByVisibilityToStudents( colDefs, true = ); } else if (dispType =3D=3D "INVS"){ this.colIds =3D this._getItemsByVisibilityToStudents( colDefs, false = ); } else if (dispType =3D=3D "NOITEM"){=20 this.colIds =3D new Array() } }, _getItemsById: function() { return this.display.unAliasedIds;=09 }, _getItemsInCriteria: function() { var itemIds =3D new Array(); // get items that are used in criteria; which are in aliases for (var i =3D 0, len =3D this.aliases.length; i < len; i++){ if (this.aliases[i].key.startsWith('I_')){ itemIds.push( this.aliases[i].val ); } } return itemIds; }, _getItemsByCategoryId: function( colDefs ) { var itemIds =3D new Array(); // get items that have category id in display.ids for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if (this.display.unAliasedIds.indexOf( colDefs[i].catid ) !=3D -1){=09 itemIds.push( colDefs[i].id ); } } return itemIds; }, _getItemsByGradingPeriodId: function( colDefs ) { var itemIds =3D new Array(); // get items that have grading period id in display.ids for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if (this.display.unAliasedIds.indexOf( colDefs[i].gpid ) !=3D -1){=09 itemIds.push( colDefs[i].id ); } } return itemIds; }, _getItemsByVisibilityToStudents: function( colDefs, vis ) { var itemIds =3D new Array(); // get items that have grading period id in display.ids for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if ( colDefs[i].vis =3D=3D vis ){=09 itemIds.push( colDefs[i].id ); } } return itemIds; }, _getAllItems: function( colDefs ) { var itemIds =3D new Array(); for (var i =3D 0, len =3D colDefs.length; i < len; i++){ itemIds.push( colDefs[i].id ); } return itemIds; }, _evaluateBasic: function() { if ( this.students.userIds && this.students.userIds[0] !=3D "all") { var uids =3D this.students.userIds; for (var i =3D 0, len =3D uids.length; i < len; i++){ var id =3D this.aliasMap[uids[i]]; if (id =3D=3D undefined) throw 'missing alias' this.userIds.push( id ); } } else { // all students var showstuhidden =3D this.students.showstuhidden; var modelStudents =3D this.model.getStudents( showstuhidden ); for (var i =3D 0, len =3D modelStudents.length; i < len; i++){ this.userIds.push( modelStudents[i].id ); } } }, _evaluateAdvanced: function() { // lazily compute postfix formula & criteriaMap if (!this.postFixFormula){ this.postFixFormula =3D this.infix2postfix( this.formula ); } if (!this.criteriaMap){ this.criteriaMap =3D new Array(); for (var i =3D 0, len =3D this.criteria.length; i < len; i++){ this.criteriaMap[this.criteria[i].fid] =3D i; } } // test each row and add to userIds if it passes formula var rows =3D this.model.rows; for (var i =3D 0, len =3D rows.length; i < len; i++){ if ( this._evaluateFormulaForRow( rows[i] ) ){ this.userIds.push( rows[i][0].getUserId() ); } } }, _evaluateFormulaForRow: function( row )=20 { // only one criteria in formula if (this.postFixFormula.length =3D=3D 1){ return this._evalCriteria( this.postFixFormula[0], row ); } // evaluate postfix formula: // * push non-operators on stack // * when operators are encountered: // pop two operands off stack // evaluate operands (criteria) // apply operator to the two evaluated operands // store result on stack // * pop & return final result var stack =3D new Array(); for (var i =3D 0, len =3D this.postFixFormula.length; i < len; i++){ var tok =3D this.postFixFormula[i]; switch (tok){ case "AND":=20 case "OR":=20 if (stack.length < 2) throw (this.model.getMessage('custViewStackEmptyMsg') + tok); var op2 =3D stack.pop(); var op1 =3D stack.pop(); var firstValue =3D op1 ; if ( typeof(op1) =3D=3D 'string' ) firstValue =3D = this._evalCriteria( op1, row ); var secondValue =3D op2;=20 if ( typeof(op2) =3D=3D 'string' ) secondValue =3D = this._evalCriteria( op2, row ); if (tok =3D=3D "AND")=20 stack.push( ( firstValue && secondValue) ); else if (tok =3D=3D "OR") stack.push( (firstValue || secondValue) ); break; default: stack.push(tok);=20 break; } } if (stack.length !=3D 1) throw this.model.getMessage('custViewUnableToEvaluateMsg'); else return stack.pop(); }, _getAliasOrId: function( id ) { if ( id.startsWith('I_') || id.startsWith('c_') || = id.startsWith('gp_')=20 || id.startsWith('gr_') || id.startsWith('st_') ){ return this.aliasMap[id];=09 } else { return id; } =09 }, _evalCriteria: function( fid, row )=20 { // look up criteria by fid var crit =3D this.criteria[ this.criteriaMap[fid] ];=09 var colId =3D this._getAliasOrId( crit.cid );=09 if (colId =3D=3D undefined){ throw 'missing alias' } var colDefMap =3D this.model.colDefMap; var colIdx =3D colDefMap[colId]; if ( colId =3D=3D 'SV' || colId =3D=3D 'GM') colIdx =3D 0; if (colIdx =3D=3D undefined) { throw 'missing alias' } var gridCell =3D row[colIdx]; var evalFunc =3D this._getEvalCriteriaFunc( crit ); return evalFunc( crit, gridCell ); }, _evalAvailableCriteria: function( crit, gridCell )=20 { var avail =3D (gridCell.isAvailable())?"A":"U"; return crit.value =3D=3D avail;=09 }, _evalStatusCriteria: function( crit, gridCell )=20 { if (crit.value =3D=3D 'IP') return gridCell.attemptInProgress(); else if (crit.value =3D=3D 'NG') return gridCell.needsGrading(); else if (crit.value =3D=3D 'NU') return gridCell.getSortValue() =3D=3D '-'; else if (crit.value =3D=3D 'X') return gridCell.isExempt(); }, _evalStudentVisibleCriteria: function( crit, gridCell )=20 { var avail =3D (gridCell.isHidden())?"H":"V"; return crit.value =3D=3D avail;=09 }, _evalGroupMembershipCriteria: function( crit, gridCell )=20 { // There may be 1 or more values passed. We allow multiple selection = of Groups var result =3D (crit.cond =3D=3D "eq") ? false : true; var groupNames =3D crit.value.split(","); for (var i =3D 0, len =3D groupNames.length; i < len; i++) { var groupId =3D this.aliasMap[groupNames[i]]; if (groupId =3D=3D undefined) throw 'missing alias' var userId =3D gridCell.getUserId(); var inGroup =3D this._userIsInGroup( userId, groupId ); result =3D ( (crit.cond =3D=3D "eq") ? result || inGroup : result && = !inGroup ) ; } return result; }, _evalLastAccessedCriteria: function( crit, gridCell )=20 { var cellVal =3D gridCell.getSortValue(); if (crit.cond =3D=3D "eq"){ var numMSecPerDay =3D 1000*60*60*24; var v1 =3D parseInt(cellVal/numMSecPerDay); var v2 =3D parseInt(crit.value/numMSecPerDay); return (v1 =3D=3D v2); } else if (crit.cond =3D=3D "be") return (cellVal < crit.value); else if (crit.cond =3D=3D "af") return (cellVal > crit.value); }, _defaultEvalCriteria: function( crit, gridCell )=20 { var cellVal =3D gridCell.getSortValue(); if (gridCell.attemptInProgress() || gridCell.needsGrading() || = (cellVal =3D=3D '-') || gridCell.isExempt()) { return false; } var operator =3D crit.cond; var critVal =3D gridCell.colDef.getRawValue( crit.value ); if (this._isNumber(cellVal) && this._isNumber(critVal)) { var dblCellVal =3D this._toNumber(cellVal); var dblCritVal =3D this._toNumber(critVal); var dblCritVal2 =3D (crit.value2 !=3D = undefined)?this._toNumber(gridCell.colDef.getRawValue( crit.value2 )):0; if (operator =3D=3D "eq") return (dblCellVal =3D=3D dblCritVal); else if (operator =3D=3D "neq") return (dblCellVal !=3D dblCritVal); else if (operator =3D=3D "gt") return (dblCellVal > dblCritVal); else if (operator =3D=3D "lt") return (dblCellVal < dblCritVal); else if (operator =3D=3D "le") return (dblCellVal <=3D dblCritVal); else if (operator =3D=3D "ge") return (dblCellVal >=3D dblCritVal); else if (operator =3D=3D "bet") return ((dblCritVal <=3D dblCellVal) && (dblCellVal <=3D = dblCritVal2)) ; } else if (typeof(cellVal) =3D=3D "string" && typeof(critVal) = =3D=3D "string") { cellVal =3D cellVal.toUpperCase(); critVal =3D critVal.toUpperCase(); if (operator =3D=3D "eq") return (cellVal =3D=3D critVal); else if (operator =3D=3D "neq") return (cellVal !=3D critVal); else if (operator =3D=3D "bw") return (cellVal.startsWith( critVal )); else if (operator =3D=3D "con") return (cellVal.indexOf( critVal ) !=3D -1 ); } else throw (this.model.getMessage('custViewDataTypeMismatchMsg')+' = '+crit.fid); }, _getEvalCriteriaFunc: function( crit )=20 { if (!this.evalCriteriaFuncMap) { this.evalCriteriaFuncMap =3D new Array(); this.evalCriteriaFuncMap["AV"] =3D = this._evalAvailableCriteria.bind(this); this.evalCriteriaFuncMap["SV"] =3D = this._evalStudentVisibleCriteria.bind(this); this.evalCriteriaFuncMap["LA"] =3D = this._evalLastAccessedCriteria.bind(this); this.evalCriteriaFuncMap["GM"] =3D = this._evalGroupMembershipCriteria.bind(this); } var func =3D this.evalCriteriaFuncMap[crit.cid]; if (!func)=20 { if (crit.cond =3D=3D 'se') { func =3D this._evalStatusCriteria.bind(this); } else { func =3D this._defaultEvalCriteria.bind(this); } } return func;=09 }, _userIsInGroup: function( userId, groupId )=20 { userId =3D Number( userId ); var groups =3D this.model.groups; for (var i =3D 0, len =3D groups.length; i < len; i++){ if ( groups[i].id =3D=3D groupId ){ return (groups[i].uids.indexOf( userId ) !=3D -1); } } return false; }, getValidationError: function( f , criteriaLst )=20 { try=20 { var postFix =3D this.infix2postfix( f,criteriaLst ); return null; }=20 catch (e) { return e; } }, infix2postfix: function( formula,criteriaLst )=20 { var f =3D formula; f =3D f.gsub( /\(/,' ( '); // add spaces around parens f =3D f.gsub( /\)/,' ) '); // add spaces around parens var a =3D $w(f); // split into array var stack =3D new Array(); var out =3D new Array(); for (var i =3D 0, len =3D a.length; i < len; i++){ var tok =3D a[i].toUpperCase(); switch (tok){ case "AND":=20 case "OR":=20 while( this._isOperator(stack[stack.length-1]) ){ out.push(stack.pop());=20 } stack.push(tok.toUpperCase());=20 break; case "(":=20 stack.push(tok);=20 break; case ")":=20 foundStart =3D false; while(stack.length > 0){ tok =3D stack.pop();=20 if ( tok =3D=3D "(" ){ foundStart =3D true; break; } else { out.push(tok);=20 } } if (stack.length =3D=3D 0 && !foundStart) throw (this.model.getMessage('custViewMismatchedParensMsg')+' = '+this.name); break; default: if ( criteriaLst && criteriaLst.indexOf(tok) =3D=3D -1 )=20 throw this.model.getMessage('criteriaNotFoundMsg'); out.push(tok);=20 break; } } while(stack.length > 0){ tok =3D stack.pop(); if (tok =3D=3D '(') throw (this.model.getMessage('custViewMismatchedParensMsg')+' = '+this.name); out.push(tok);=20 } return out; }, =09 _isOperator: function(s) { return (s=3D=3D'OR' || s=3D=3D'AND'); }, _isNumber: function( s ) { return (isNaN( new Number(s) ) ? false : = true); }, _toNumber: function( s )=20 { if (typeof(s) =3D=3D "number") return s; else { var n =3D new Number(s); return n.valueOf(); } } }; //////////////////////////// Utility = ////////////////////////////////////// Gradebook.GridRowIterator =3D Class.create(); Gradebook.GridRowIterator.prototype =3D { initialize: function(dataArray, orderMap, startIndex) { this.dataArray =3D dataArray; this.orderMap =3D orderMap; this.currentIndex =3D startIndex; }, hasNext: function() {return this.currentIndex < this.orderMap.length;}, next: function() { if (this.currentIndex >=3D this.orderMap.length) { GradebookUtil.error('GridRowIterator out of data. length =3D = '+this.orderMap.length); return null; } return this.dataArray[this.orderMap[this.currentIndex++]]; } }; Gradebook.numberComparator =3D function( a, b ) { return a - b; } var NumberFormatter =3D { =20 // usually called from frameset scope and re-set when grid is = initialized with grid page LOCALE SETTINGS needToConvert: ( ( window.LOCALE_SETTINGS ) ? = LOCALE_SETTINGS.getString('number_format.decimal_point') =3D=3D ',' : = page.bundle.getString('number_format.decimal_point') =3D=3D ','), =20 getDisplayFloat: function ( f ) { if (!NumberFormatter.needToConvert) return f; f =3D ''+f; return f.replace('.',','); }, getDotFloat: function ( f ) { if (!NumberFormatter.needToConvert) return f; f =3D ''+f; return f.replace(',','.'); } }; ------=_NextPart_000_0000_01CA341B.AF3F6810--
") =3D=3D 0 || text.indexOf("") =3D=3D 0) {=0A= text =3D text.substring(5, text.length - 7);=0A= }=0A= return text;=0A= };=0A= =0A= /** @private Some more text might have come in, test and execute the new = stuff */=0A= dwr.engine._processCometResponse =3D function(response, batch) {=0A= if (batch.charsProcessed =3D=3D response.length) return;=0A= if (response.length =3D=3D 0) {=0A= batch.charsProcessed =3D 0;=0A= return;=0A= }=0A= =0A= var firstStartTag =3D response.indexOf("//#DWR-START#", = batch.charsProcessed);=0A= if (firstStartTag =3D=3D -1) {=0A= // dwr.engine._debug("No start tag (search from " + = batch.charsProcessed + "). skipping '" + = response.substring(batch.charsProcessed) + "'");=0A= batch.charsProcessed =3D response.length;=0A= return;=0A= }=0A= // if (firstStartTag > 0) {=0A= // dwr.engine._debug("Start tag not at start (search from " + = batch.charsProcessed + "). skipping '" + = response.substring(batch.charsProcessed, firstStartTag) + "'");=0A= // }=0A= =0A= var lastEndTag =3D response.lastIndexOf("//#DWR-END#");=0A= if (lastEndTag =3D=3D -1) {=0A= // dwr.engine._debug("No end tag. unchanged charsProcessed=3D" + = batch.charsProcessed);=0A= return;=0A= }=0A= =0A= // Skip the end tag too for next time, remembering CR and LF=0A= if (response.charCodeAt(lastEndTag + 11) =3D=3D 13 && = response.charCodeAt(lastEndTag + 12) =3D=3D 10) {=0A= batch.charsProcessed =3D lastEndTag + 13;=0A= }=0A= else {=0A= batch.charsProcessed =3D lastEndTag + 11;=0A= }=0A= =0A= var exec =3D response.substring(firstStartTag + 13, lastEndTag);=0A= =0A= dwr.engine._receivedBatch =3D batch;=0A= dwr.engine._eval(exec);=0A= dwr.engine._receivedBatch =3D null;=0A= };=0A= =0A= /** @private Actually send the block of data in the batch object. */=0A= dwr.engine._sendData =3D function(batch) {=0A= batch.map.batchId =3D dwr.engine._nextBatchId;=0A= dwr.engine._nextBatchId++;=0A= dwr.engine._batches[batch.map.batchId] =3D batch;=0A= dwr.engine._batchesLength++;=0A= batch.completed =3D false;=0A= =0A= for (var i =3D 0; i < batch.preHooks.length; i++) {=0A= batch.preHooks[i]();=0A= }=0A= batch.preHooks =3D null;=0A= // Set a timeout=0A= if (batch.timeout && batch.timeout !=3D 0) {=0A= batch.timeoutId =3D setTimeout(function() { = dwr.engine._abortRequest(batch); }, batch.timeout);=0A= }=0A= // Get setup for XMLHttpRequest if possible=0A= if (batch.rpcType =3D=3D dwr.engine.XMLHttpRequest) {=0A= if (window.XMLHttpRequest) {=0A= batch.req =3D new XMLHttpRequest();=0A= }=0A= // IE5 for the mac claims to support window.ActiveXObject, but = throws an error when it's used=0A= else if (window.ActiveXObject && = !(navigator.userAgent.indexOf("Mac") >=3D 0 && = navigator.userAgent.indexOf("MSIE") >=3D 0)) {=0A= batch.req =3D dwr.engine._newActiveXObject(dwr.engine._XMLHTTP);=0A= }=0A= }=0A= =0A= var prop, request;=0A= if (batch.req) {=0A= // Proceed using XMLHttpRequest=0A= if (batch.async) {=0A= batch.req.onreadystatechange =3D function() {=0A= if (typeof dwr !=3D 'undefined') dwr.engine._stateChange(batch);=0A= };=0A= }=0A= // If we're polling, record this for monitoring=0A= if (batch.isPoll) {=0A= dwr.engine._pollReq =3D batch.req;=0A= // In IE XHR is an ActiveX control so you can't augment it like = this=0A= if (!(document.all && !window.opera)) batch.req.batch =3D batch;=0A= }=0A= // Workaround for Safari 1.x POST bug=0A= var indexSafari =3D navigator.userAgent.indexOf("Safari/");=0A= if (indexSafari >=3D 0) {=0A= var version =3D navigator.userAgent.substring(indexSafari + 7);=0A= if (parseInt(version, 10) < 400) {=0A= if (dwr.engine._allowGetForSafariButMakeForgeryEasier =3D=3D = "true") batch.httpMethod =3D "GET";=0A= else dwr.engine._handleWarning(batch, { = name:"dwr.engine.oldSafari", message:"Safari GET support disabled. See = getahead.org/dwr/server/servlet and = allowGetForSafariButMakeForgeryEasier." });=0A= }=0A= }=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModePlainPoll : = dwr.engine._ModePlainCall;=0A= request =3D dwr.engine._constructRequest(batch);=0A= try {=0A= batch.req.open(batch.httpMethod, request.url, batch.async);=0A= try {=0A= for (prop in batch.headers) {=0A= var value =3D batch.headers[prop];=0A= if (typeof value =3D=3D "string") = batch.req.setRequestHeader(prop, value);=0A= }=0A= if (!batch.headers["Content-Type"]) = batch.req.setRequestHeader("Content-Type", "text/plain");=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= }=0A= batch.req.send(request.body);=0A= if (!batch.async) dwr.engine._stateChange(batch);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleError(batch, ex);=0A= }=0A= }=0A= else if (batch.rpcType !=3D dwr.engine.ScriptTag) {=0A= var idname =3D batch.isPoll ? "dwr-if-poll-" + batch.map.batchId : = "dwr-if-" + batch.map.batchId;=0A= // Removed htmlfile implementation. Don't expect it to return before = v3=0A= batch.div =3D document.createElement("div");=0A= // Add the div to the document first, otherwise IE 6 will ignore = onload handler.=0A= document.body.appendChild(batch.div);=0A= batch.div.innerHTML =3D "";=0A= batch.document =3D document;=0A= batch.iframe =3D batch.document.getElementById(idname);=0A= batch.iframe.batch =3D batch;=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModeHtmlPoll : = dwr.engine._ModeHtmlCall;=0A= if (batch.isPoll) dwr.engine._outstandingIFrames.push(batch.iframe);=0A= request =3D dwr.engine._constructRequest(batch);=0A= if (batch.httpMethod =3D=3D "GET") {=0A= batch.iframe.setAttribute("src", request.url);=0A= }=0A= else {=0A= batch.form =3D batch.document.createElement("form");=0A= batch.form.setAttribute("id", "dwr-form");=0A= batch.form.setAttribute("action", request.url);=0A= batch.form.setAttribute("style", "display:none;");=0A= batch.form.setAttribute("target", idname);=0A= batch.form.target =3D idname;=0A= batch.form.setAttribute("method", batch.httpMethod);=0A= for (prop in batch.map) {=0A= var value =3D batch.map[prop];=0A= if (typeof value !=3D "function") {=0A= var formInput =3D batch.document.createElement("input");=0A= formInput.setAttribute("type", "hidden");=0A= formInput.setAttribute("name", prop);=0A= formInput.setAttribute("value", value);=0A= batch.form.appendChild(formInput);=0A= }=0A= }=0A= batch.document.body.appendChild(batch.form);=0A= batch.form.submit();=0A= }=0A= }=0A= else {=0A= batch.httpMethod =3D "GET"; // There's no such thing as ScriptTag = using POST=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModePlainPoll : = dwr.engine._ModePlainCall;=0A= request =3D dwr.engine._constructRequest(batch);=0A= batch.script =3D document.createElement("script");=0A= batch.script.id =3D "dwr-st-" + batch.map["c0-id"];=0A= batch.script.src =3D request.url;=0A= document.body.appendChild(batch.script);=0A= }=0A= };=0A= =0A= dwr.engine._ModePlainCall =3D "/call/plaincall/";=0A= dwr.engine._ModeHtmlCall =3D "/call/htmlcall/";=0A= dwr.engine._ModePlainPoll =3D "/call/plainpoll/";=0A= dwr.engine._ModeHtmlPoll =3D "/call/htmlpoll/";=0A= =0A= /** @private Work out what the URL should look like */=0A= dwr.engine._constructRequest =3D function(batch) {=0A= // A quick string to help people that use web log analysers=0A= var request =3D { url:batch.path + batch.mode, body:null };=0A= if (batch.isPoll =3D=3D true) {=0A= request.url +=3D "ReverseAjax.dwr";=0A= }=0A= else if (batch.map.callCount =3D=3D 1) {=0A= request.url +=3D batch.map["c0-scriptName"] + "." + = batch.map["c0-methodName"] + ".dwr";=0A= }=0A= else {=0A= request.url +=3D "Multiple." + batch.map.callCount + ".dwr";=0A= }=0A= // Play nice with url re-writing=0A= var sessionMatch =3D location.href.match(/jsessionid=3D([^?]+)/);=0A= if (sessionMatch !=3D null) {=0A= request.url +=3D ";jsessionid=3D" + sessionMatch[1];=0A= }=0A= =0A= var prop;=0A= if (batch.httpMethod =3D=3D "GET") {=0A= // Some browsers (Opera/Safari2) seem to fail to convert the = callCount value=0A= // to a string in the loop below so we do it manually here.=0A= batch.map.callCount =3D "" + batch.map.callCount;=0A= request.url +=3D "?";=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= request.url +=3D encodeURIComponent(prop) + "=3D" + = encodeURIComponent(batch.map[prop]) + "&";=0A= }=0A= }=0A= request.url =3D request.url.substring(0, request.url.length - 1);=0A= }=0A= else {=0A= // PERFORMANCE: for iframe mode this is thrown away.=0A= request.body =3D "";=0A= if (document.all && !window.opera) {=0A= // Use array joining on IE (fastest)=0A= var buf =3D [];=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= buf.push(prop + "=3D" + batch.map[prop] + = dwr.engine._postSeperator);=0A= }=0A= }=0A= request.body =3D buf.join("");=0A= }=0A= else {=0A= // Use string concat on other browsers (fastest)=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= request.body +=3D prop + "=3D" + batch.map[prop] + = dwr.engine._postSeperator;=0A= }=0A= }=0A= }=0A= request.body =3D dwr.engine._contentRewriteHandler(request.body);=0A= }=0A= request.url =3D dwr.engine._urlRewriteHandler(request.url);=0A= return request;=0A= };=0A= =0A= /** @private Called by XMLHttpRequest to indicate that something has = happened */=0A= dwr.engine._stateChange =3D function(batch) {=0A= var toEval;=0A= =0A= if (batch.completed) {=0A= dwr.engine._debug("Error: _stateChange() with batch.completed");=0A= return;=0A= }=0A= =0A= var req =3D batch.req;=0A= try {=0A= if (req.readyState !=3D 4) return;=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= // It's broken - clear up and forget this call=0A= dwr.engine._clearUp(batch);=0A= return;=0A= }=0A= =0A= if (dwr.engine._unloading) {=0A= dwr.engine._debug("Ignoring reply from server as page is = unloading.");=0A= return;=0A= }=0A= =0A= try {=0A= var reply =3D req.responseText;=0A= reply =3D dwr.engine._replyRewriteHandler(reply);=0A= var status =3D req.status; // causes Mozilla to except on page moves=0A= =0A= if (reply =3D=3D null || reply =3D=3D "") {=0A= dwr.engine._handleWarning(batch, { name:"dwr.engine.missingData", = message:"No data received from server" });=0A= }=0A= else if (status !=3D 200) {=0A= dwr.engine._handleError(batch, { name:"dwr.engine.http." + status, = message:req.statusText });=0A= }=0A= else {=0A= var contentType =3D req.getResponseHeader("Content-Type");=0A= if (!contentType.match(/^text\/plain/) && = !contentType.match(/^text\/javascript/)) {=0A= if (contentType.match(/^text\/html/) && typeof = batch.textHtmlHandler =3D=3D "function") {=0A= batch.textHtmlHandler({ status:status, responseText:reply, = contentType:contentType });=0A= }=0A= else {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.invalidMimeType", message:"Invalid content type: '" + = contentType + "'" });=0A= }=0A= }=0A= else {=0A= // Comet replies might have already partially executed=0A= if (batch.isPoll && batch.map.partialResponse =3D=3D = dwr.engine._partialResponseYes) {=0A= dwr.engine._processCometResponse(reply, batch);=0A= }=0A= else {=0A= if (reply.search("//#DWR") =3D=3D -1) {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.invalidReply", message:"Invalid reply from server" });=0A= }=0A= else {=0A= toEval =3D reply;=0A= }=0A= }=0A= }=0A= }=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= }=0A= =0A= dwr.engine._callPostHooks(batch);=0A= =0A= // Outside of the try/catch so errors propogate normally:=0A= dwr.engine._receivedBatch =3D batch;=0A= if (toEval !=3D null) toEval =3D = toEval.replace(dwr.engine._scriptTagProtection, "");=0A= dwr.engine._eval(toEval);=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._validateBatch(batch);=0A= if (!batch.completed) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /**=0A= * @private This function is invoked when a batch reply is received.=0A= * It checks that there is a response for every call in the batch. = Otherwise,=0A= * an error will be signaled (a call without a response indicates that = the =0A= * server failed to send complete batch response). =0A= */=0A= dwr.engine._validateBatch =3D function(batch) {=0A= // If some call left unreplied, report an error.=0A= if (!batch.completed) {=0A= for (var i =3D 0; i < batch.map.callCount; i++) {=0A= if (batch.handlers[i] !=3D null) {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.incompleteReply", message:"Incomplete reply from = server" });=0A= break;=0A= }=0A= }=0A= }=0A= }=0A= =0A= /** @private Called from iframe onload, check batch using batch-id */=0A= dwr.engine._iframeLoadingComplete =3D function(batchId) {=0A= // dwr.engine._checkCometPoll();=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch) dwr.engine._validateBatch(batch);=0A= }=0A= =0A= /** @private Called by the server: Execute a callback */=0A= dwr.engine._remoteHandleCallback =3D function(batchId, callId, reply) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch =3D=3D null) {=0A= dwr.engine._debug("Warning: batch =3D=3D null in = remoteHandleCallback for batchId=3D" + batchId, true);=0A= return;=0A= }=0A= // Error handlers inside here indicate an error that is nothing to do=0A= // with DWR so we handle them differently.=0A= try {=0A= var handlers =3D batch.handlers[callId];=0A= batch.handlers[callId] =3D null;=0A= if (!handlers) {=0A= dwr.engine._debug("Warning: Missing handlers. callId=3D" + callId, = true);=0A= }=0A= else if (typeof handlers.callback =3D=3D "function") = handlers.callback(reply);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleError(batch, ex);=0A= }=0A= };=0A= =0A= /** @private Called by the server: Handle an exception for a call */=0A= dwr.engine._remoteHandleException =3D function(batchId, callId, ex) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch =3D=3D null) { dwr.engine._debug("Warning: null batch in = remoteHandleException", true); return; }=0A= var handlers =3D batch.handlers[callId];=0A= batch.handlers[callId] =3D null;=0A= if (handlers =3D=3D null) { dwr.engine._debug("Warning: null handlers = in remoteHandleException", true); return; }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= if (typeof handlers.exceptionHandler =3D=3D "function") = handlers.exceptionHandler(ex.message, ex);=0A= else if (typeof batch.errorHandler =3D=3D "function") = batch.errorHandler(ex.message, ex);=0A= };=0A= =0A= /** @private Called by the server: The whole batch is broken */=0A= dwr.engine._remoteHandleBatchException =3D function(ex, batchId) {=0A= var searchBatch =3D (dwr.engine._receivedBatch =3D=3D null && batchId = !=3D null);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D dwr.engine._batches[batchId];=0A= }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= dwr.engine._handleError(dwr.engine._receivedBatch, ex);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._clearUp(dwr.engine._batches[batchId]);=0A= }=0A= };=0A= =0A= /** @private Called by the server: Reverse ajax should not be used */=0A= dwr.engine._remotePollCometDisabled =3D function(ex, batchId) {=0A= dwr.engine.setActiveReverseAjax(false);=0A= var searchBatch =3D (dwr.engine._receivedBatch =3D=3D null && batchId = !=3D null);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D dwr.engine._batches[batchId];=0A= }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= dwr.engine._handleError(dwr.engine._receivedBatch, ex);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._clearUp(dwr.engine._batches[batchId]);=0A= }=0A= };=0A= =0A= /** @private Called by the server: An IFrame reply is about to start */=0A= dwr.engine._remoteBeginIFrameResponse =3D function(iframe, batchId) {=0A= if (iframe !=3D null) dwr.engine._receivedBatch =3D iframe.batch;=0A= dwr.engine._callPostHooks(dwr.engine._receivedBatch);=0A= };=0A= =0A= /** @private Called by the server: An IFrame reply is just completing */=0A= dwr.engine._remoteEndIFrameResponse =3D function(batchId) {=0A= dwr.engine._clearUp(dwr.engine._receivedBatch);=0A= dwr.engine._receivedBatch =3D null;=0A= };=0A= =0A= /** @private This is a hack to make the context be this window */=0A= dwr.engine._eval =3D function(script) {=0A= if (script =3D=3D null) return null;=0A= if (script =3D=3D "") { dwr.engine._debug("Warning: blank script", = true); return null; }=0A= // dwr.engine._debug("Exec: [" + script + "]", true);=0A= return eval(script);=0A= };=0A= =0A= /** @private Called as a result of a request timeout */=0A= dwr.engine._abortRequest =3D function(batch) {=0A= if (batch && !batch.completed) {=0A= dwr.engine._clearUp(batch);=0A= if (batch.req) batch.req.abort();=0A= dwr.engine._handleError(batch, { name:"dwr.engine.timeout", = message:"Timeout" });=0A= }=0A= };=0A= =0A= /** @private call all the post hooks for a batch */=0A= dwr.engine._callPostHooks =3D function(batch) {=0A= if (batch.postHooks) {=0A= for (var i =3D 0; i < batch.postHooks.length; i++) {=0A= batch.postHooks[i]();=0A= }=0A= batch.postHooks =3D null;=0A= }=0A= };=0A= =0A= /** @private A call has finished by whatever means and we need to shut = it all down. */=0A= dwr.engine._clearUp =3D function(batch) {=0A= if (!batch) { dwr.engine._debug("Warning: null batch in = dwr.engine._clearUp()", true); return; }=0A= if (batch.completed) { dwr.engine._debug("Warning: Double complete", = true); return; }=0A= =0A= // IFrame tidyup=0A= if (batch.div) batch.div.parentNode.removeChild(batch.div);=0A= if (batch.iframe) {=0A= // If this is a poll frame then stop comet polling=0A= for (var i =3D 0; i < dwr.engine._outstandingIFrames.length; i++) {=0A= if (dwr.engine._outstandingIFrames[i] =3D=3D batch.iframe) {=0A= dwr.engine._outstandingIFrames.splice(i, 1);=0A= }=0A= }=0A= batch.iframe.parentNode.removeChild(batch.iframe);=0A= }=0A= if (batch.form) batch.form.parentNode.removeChild(batch.form);=0A= =0A= // XHR tidyup: avoid IE handles increase=0A= if (batch.req) {=0A= // If this is a poll frame then stop comet polling=0A= if (batch.req =3D=3D dwr.engine._pollReq) dwr.engine._pollReq =3D = null;=0A= delete batch.req;=0A= }=0A= =0A= // Timeout tidyup=0A= if (batch.timeoutId) {=0A= clearTimeout(batch.timeoutId);=0A= delete batch.timeoutId;=0A= }=0A= =0A= if (batch.map && (batch.map.batchId || batch.map.batchId =3D=3D 0)) {=0A= delete dwr.engine._batches[batch.map.batchId];=0A= dwr.engine._batchesLength--;=0A= }=0A= =0A= batch.completed =3D true;=0A= =0A= // If there is anything on the queue waiting to go out, then send it.=0A= // We don't need to check for ordered mode, here because when ordered = mode=0A= // gets turned off, we still process *waiting* batches in an ordered = way.=0A= if (dwr.engine._batchQueue.length !=3D 0) {=0A= var sendbatch =3D dwr.engine._batchQueue.shift();=0A= dwr.engine._sendData(sendbatch);=0A= }=0A= };=0A= =0A= /** @private Abort any XHRs in progress at page unload (solves zombie = socket problems in IE). */=0A= dwr.engine._unloader =3D function() {=0A= dwr.engine._unloading =3D true;=0A= =0A= // Empty queue of waiting ordered requests=0A= dwr.engine._batchQueue.length =3D 0;=0A= =0A= // Abort any ongoing XHRs and clear their batches=0A= for (var batchId in dwr.engine._batches) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= // Only process objects that look like batches (avoid prototype = additions!)=0A= if (batch && batch.map) {=0A= if (batch.req) {=0A= batch.req.abort();=0A= }=0A= dwr.engine._clearUp(batch);=0A= }=0A= }=0A= };=0A= // Now register the unload handler=0A= if (window.addEventListener) window.addEventListener('unload', = dwr.engine._unloader, false);=0A= else if (window.attachEvent) window.attachEvent('onunload', = dwr.engine._unloader);=0A= =0A= /** @private Generic error handling routing to save having null checks = everywhere */=0A= dwr.engine._handleError =3D function(batch, ex) {=0A= if (typeof ex =3D=3D "string") ex =3D { name:"unknown", message:ex };=0A= if (ex.message =3D=3D null) ex.message =3D "";=0A= if (ex.name =3D=3D null) ex.name =3D "unknown";=0A= if (batch && typeof batch.errorHandler =3D=3D "function") = batch.errorHandler(ex.message, ex);=0A= else if (dwr.engine._errorHandler) = dwr.engine._errorHandler(ex.message, ex);=0A= if (batch) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /** @private Generic error handling routing to save having null checks = everywhere */=0A= dwr.engine._handleWarning =3D function(batch, ex) {=0A= if (typeof ex =3D=3D "string") ex =3D { name:"unknown", message:ex };=0A= if (ex.message =3D=3D null) ex.message =3D "";=0A= if (ex.name =3D=3D null) ex.name =3D "unknown";=0A= if (batch && typeof batch.warningHandler =3D=3D "function") = batch.warningHandler(ex.message, ex);=0A= else if (dwr.engine._warningHandler) = dwr.engine._warningHandler(ex.message, ex);=0A= if (batch) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /**=0A= * @private Marshall a data item=0A= * @param batch A map of variables to how they have been marshalled=0A= * @param referto An array of already marshalled variables to prevent = recurrsion=0A= * @param data The data to be marshalled=0A= * @param name The name of the data being marshalled=0A= */=0A= dwr.engine._serializeAll =3D function(batch, referto, data, name) {=0A= if (data =3D=3D null) {=0A= batch.map[name] =3D "null:null";=0A= return;=0A= }=0A= =0A= switch (typeof data) {=0A= case "boolean":=0A= batch.map[name] =3D "boolean:" + data;=0A= break;=0A= case "number":=0A= batch.map[name] =3D "number:" + data;=0A= break;=0A= case "string":=0A= batch.map[name] =3D "string:" + encodeURIComponent(data);=0A= break;=0A= case "object":=0A= if (data instanceof String) batch.map[name] =3D "String:" + = encodeURIComponent(data);=0A= else if (data instanceof Boolean) batch.map[name] =3D "Boolean:" + = data;=0A= else if (data instanceof Number) batch.map[name] =3D "Number:" + = data;=0A= else if (data instanceof Date) batch.map[name] =3D "Date:" + = data.getTime();=0A= else if (data && data.join) batch.map[name] =3D = dwr.engine._serializeArray(batch, referto, data, name);=0A= else batch.map[name] =3D dwr.engine._serializeObject(batch, referto, = data, name);=0A= break;=0A= case "function":=0A= // We just ignore functions.=0A= break;=0A= default:=0A= dwr.engine._handleWarning(null, { name:"dwr.engine.unexpectedType", = message:"Unexpected type: " + typeof data + ", attempting default = converter." });=0A= batch.map[name] =3D "default:" + data;=0A= break;=0A= }=0A= };=0A= =0A= /** @private Have we already converted this object? */=0A= dwr.engine._lookup =3D function(referto, data, name) {=0A= var lookup;=0A= // Can't use a map: getahead.org/ajax/javascript-gotchas=0A= for (var i =3D 0; i < referto.length; i++) {=0A= if (referto[i].data =3D=3D data) {=0A= lookup =3D referto[i];=0A= break;=0A= }=0A= }=0A= if (lookup) return "reference:" + lookup.name;=0A= referto.push({ data:data, name:name });=0A= return null;=0A= };=0A= =0A= /** @private Marshall an object */=0A= dwr.engine._serializeObject =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= // This check for an HTML is not complete, but is there a better way?=0A= // Maybe we should add: data.hasChildNodes typeof "function" =3D=3D = true=0A= if (data.nodeName && data.nodeType) {=0A= return dwr.engine._serializeXml(batch, referto, data, name);=0A= }=0A= =0A= // treat objects as an associative arrays=0A= var reply =3D "Object_" + dwr.engine._getObjectClassName(data) + ":{";=0A= var element;=0A= for (element in data) {=0A= if (typeof data[element] !=3D "function") {=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[element], childName);=0A= =0A= reply +=3D encodeURIComponent(element) + ":reference:" + childName = + ", ";=0A= }=0A= }=0A= =0A= if (reply.substring(reply.length - 2) =3D=3D ", ") {=0A= reply =3D reply.substring(0, reply.length - 2);=0A= }=0A= reply +=3D "}";=0A= =0A= return reply;=0A= };=0A= =0A= /** @private Returns the classname of supplied argument obj */=0A= dwr.engine._errorClasses =3D { "Error":Error, "EvalError":EvalError, = "RangeError":RangeError, "ReferenceError":ReferenceError, = "SyntaxError":SyntaxError, "TypeError":TypeError, "URIError":URIError };=0A= dwr.engine._getObjectClassName =3D function(obj) {=0A= // Try to find the classname by stringifying the object's constructor=0A= // and extract from "function ".=0A= if (obj && obj.constructor && obj.constructor.toString)=0A= {=0A= var str =3D obj.constructor.toString();=0A= var regexpmatch =3D str.match(/function\s+(\w+)/);=0A= if (regexpmatch && regexpmatch.length =3D=3D 2) {=0A= return regexpmatch[1];=0A= }=0A= }=0A= =0A= // Now manually test against the core Error classes, as these in some =0A= // browsers successfully match to the wrong class in the =0A= // Object.toString() test we will do later=0A= if (obj && obj.constructor) {=0A= for (var errorname in dwr.engine._errorClasses) {=0A= if (obj.constructor =3D=3D dwr.engine._errorClasses[errorname]) = return errorname;=0A= }=0A= }=0A= =0A= // Try to find the classname by calling Object.toString() on the object=0A= // and extracting from "[object ]"=0A= if (obj) {=0A= var str =3D Object.prototype.toString.call(obj);=0A= var regexpmatch =3D str.match(/\[object\s+(\w+)/);=0A= if (regexpmatch && regexpmatch.length=3D=3D2) {=0A= return regexpmatch[1];=0A= }=0A= }=0A= =0A= // Supplied argument was probably not an object, but what is better?=0A= return "Object";=0A= };=0A= =0A= /** @private Marshall an object */=0A= dwr.engine._serializeXml =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= var output;=0A= if (window.XMLSerializer) output =3D new = XMLSerializer().serializeToString(data);=0A= else if (data.toXml) output =3D data.toXml;=0A= else output =3D data.innerHTML;=0A= =0A= return "XML:" + encodeURIComponent(output);=0A= };=0A= =0A= /** @private Marshall an array */=0A= dwr.engine._serializeArray =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= if (document.all && !window.opera) {=0A= // Use array joining on IE (fastest)=0A= var buf =3D ["Array:["];=0A= for (var i =3D 0; i < data.length; i++) {=0A= if (i !=3D 0) buf.push(",");=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[i], childName);=0A= buf.push("reference:");=0A= buf.push(childName);=0A= }=0A= buf.push("]");=0A= reply =3D buf.join("");=0A= }=0A= else {=0A= // Use string concat on other browsers (fastest)=0A= var reply =3D "Array:[";=0A= for (var i =3D 0; i < data.length; i++) {=0A= if (i !=3D 0) reply +=3D ",";=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[i], childName);=0A= reply +=3D "reference:";=0A= reply +=3D childName;=0A= }=0A= reply +=3D "]";=0A= }=0A= =0A= return reply;=0A= };=0A= =0A= /** @private Convert an XML string into a DOM object. */=0A= dwr.engine._unserializeDocument =3D function(xml) {=0A= var dom;=0A= if (window.DOMParser) {=0A= var parser =3D new DOMParser();=0A= dom =3D parser.parseFromString(xml, "text/xml");=0A= if (!dom.documentElement || dom.documentElement.tagName =3D=3D = "parsererror") {=0A= var message =3D dom.documentElement.firstChild.data;=0A= message +=3D "\n" + = dom.documentElement.firstChild.nextSibling.firstChild.data;=0A= throw message;=0A= }=0A= return dom;=0A= }=0A= else if (window.ActiveXObject) {=0A= dom =3D dwr.engine._newActiveXObject(dwr.engine._DOMDocument);=0A= dom.loadXML(xml); // What happens on parse fail with IE?=0A= return dom;=0A= }=0A= else {=0A= var div =3D document.createElement("div");=0A= div.innerHTML =3D xml;=0A= return div;=0A= }=0A= };=0A= =0A= /** @param axarray An array of strings to attempt to create ActiveX = objects from */=0A= dwr.engine._newActiveXObject =3D function(axarray) {=0A= var returnValue; =0A= for (var i =3D 0; i < axarray.length; i++) {=0A= try {=0A= returnValue =3D new ActiveXObject(axarray[i]);=0A= break;=0A= }=0A= catch (ex) { /* ignore */ }=0A= }=0A= return returnValue;=0A= };=0A= =0A= /** @private Used internally when some message needs to get to the = programmer */=0A= dwr.engine._debug =3D function(message, stacktrace) {=0A= var written =3D false;=0A= try {=0A= if (window.console) {=0A= if (stacktrace && window.console.trace) window.console.trace();=0A= window.console.log(message);=0A= written =3D true;=0A= }=0A= else if (window.opera && window.opera.postError) {=0A= window.opera.postError(message);=0A= written =3D true;=0A= }=0A= }=0A= catch (ex) { /* ignore */ }=0A= =0A= if (!written) {=0A= var debug =3D document.getElementById("dwr-debug");=0A= if (debug) {=0A= var contents =3D message + "" + debug.innerHTML;=0A= if (contents.length > 2048) contents =3D contents.substring(0, = 2048);=0A= debug.innerHTML =3D contents;=0A= }=0A= }=0A= };=0A= ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/blackboard/content/contentWrapperItem.jsp?course_id=_702465_1&content_id=_2356318_1&displayName=Herodotus&navItem=content&attachment=true =EF=BB=BF Blackboard Learn Current Location Fall 2009 (HS) Wrld Civizatn to 1500 Sec 001 = Course Documents Course Documents Week 3 Herodotus = =20 ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/courses/1/HIS_1000_0909_001/content/_2356318_1/Herodotus.htm Herodotus Herodotus [Note: you might find it helpful to consult the = maps on=20 Mesopotamia and Egypt under Course = Documents as you=20 read Herodotus.] On Babylon and = Mesopotamia: [1.178] Assyria possesses a vast number of great = cities,=20 whereof the most renowned and strongest at this time was Babylon, whither, after the fall of Nineveh, the = seat of=20 government had been removed. The following is a description of the = place:- The=20 city stands on a broad plain, and is an exact square, a hundred and = twenty=20 furlongs in length each way, so that the entire circuit is four hundred = and=20 eighty furlongs. While such is its size, in magnificence there is no = other city=20 that approaches to it. It is surrounded, in the first place, by a broad = and deep=20 moat, full of water, behind which rises a wall fifty royal cubits in = width, and=20 two hundred in height. (The royal cubit is longer by three fingers' = breadth than=20 the common cubit.) [1.179] And here I may not omit to tell the use to = which the=20 mould dug out of the great moat was turned, nor the manner wherein the = wall was=20 wrought. As fast as they dug the moat the soil which they got from the = cutting=20 was made into bricks, and when a sufficient number were completed they = baked the=20 bricks in kilns. Then they set to building, and began with bricking the = borders=20 of the moat, after which they proceeded to construct the wall itself, = using=20 throughout for their cement hot bitumen, and interposing a layer of = wattled=20 reeds at every thirtieth course of the bricks. On the top, along the = edges of=20 the wall, they constructed buildings of a single chamber facing one = another,=20 leaving between them room for a four-horse chariot to turn. In the = circuit of=20 the wall are a hundred gates, all of brass, with brazen lintels and = side-posts.=20 The bitumen used in the work was brought to Babylon from the Is, a small = stream=20 which flows into the Euphrates at the point where the city of the same = name=20 stands, eight days' journey from Babylon. Lumps of bitumen are found in = great=20 abundance in this river. [1.180] The city is divided into two portions by = the river=20 which runs through the midst of it. This river is the Euphrates, a = broad, deep,=20 swift stream, which rises in Armenia, and empties itself = into the=20 Erythraean sea. The city wall is brought down on both sides to the edge = of the=20 stream: thence, from the corners of the wall, there is carried along = each bank=20 of the river a fence of burnt bricks. The houses are mostly three and = four=20 stories high; the streets all run in straight lines, not only those = parallel to=20 the river, but also the cross streets which lead down to the water-side. = At the=20 river end of these cross streets are low gates in the fence that skirts = the=20 stream, which are, like the great gates in the outer wall, of brass, and = open on=20 the water. [1.181] The outer wall is the main defence of the = city. There=20 is, however, a second inner wall, of less thickness than the first, but = very=20 little inferior to it in strength. The centre of each division of the = town was=20 occupied by a fortress. In the one stood the palace of the kings, = surrounded by=20 a wall of great strength and size: in the other was the sacred precinct = of=20 Jupiter Belus, a square enclosure two furlongs each way, with gates of = solid=20 brass; which was also remaining in my time. In the middle of the = precinct there=20 was a tower of solid masonry, a furlong in length and breadth, upon = which was=20 raised a second tower, and on that a third, and so on up to eight. The = ascent to=20 the top is on the outside, by a path which winds round all the towers. = When one=20 is about half-way up, one finds a resting-place and seats, where persons = are=20 wont to sit some time on their way to the summit. On the topmost tower = there is=20 a spacious temple, and inside the temple stands a couch of unusual size, = richly=20 adorned, with a golden table by its side. There is no statue of any kind = set up=20 in the place, nor is the chamber occupied of nights by any one but a = single=20 native woman, who, as the Chaldaeans, the priests of this god, affirm, = is chosen=20 for himself by the deity out of all the women of the land. [1.182] They also declare - but I for my part do = not credit=20 it - that the god comes down in person into this chamber, and sleeps = upon the=20 couch. This is like the story told by the Egyptians of what takes place = in their=20 city of Thebes, where a woman always passes the night in the temple of = the=20 Theban Jupiter. In each case the woman is said to be debarred all = intercourse=20 with men. It is also like the custom of Patara, in Lycia, where the = priestess=20 who delivers the oracles, during the time that she is so employed - for = at=20 Patara there is not always an oracle - is shut up in the temple every = night.=20 [1.183] Below, in the same precinct, there is a = second=20 temple, in which is a sitting figure of Jupiter, all of gold. Before the = figure=20 stands a large golden table, and the throne whereon it sits, and the = base on=20 which the throne is placed, are likewise of gold. The Chaldaeans told me = that=20 all the gold together was eight hundred talents' weight. Outside the = temple are=20 two altars, one of solid gold, on which it is only lawful to offer = sucklings;=20 the other a common altar, but of great size, on which the full-grown = animals are=20 sacrificed. It is also on the great altar that the Chaldaeans burn the=20 frankincense, which is offered to the amount of a thousand talents' = weight,=20 every year, at the festival of the God. In the time of Cyrus there was = likewise=20 in this temple a figure of a man, twelve cubits high, entirely of solid = gold. I=20 myself did not see this figure, but I relate what the Chaldaeans report=20 concerning it. Darius, the son of Hystaspes, plotted to carry the statue = off,=20 but had not the hardihood to lay his hands upon it. Xerxes, however, the = son of=20 Darius, killed the priest who forbade him to move the statue, and took = it away.=20 Besides the ornaments which I have mentioned, there are a large number = of=20 private offerings in this holy precinct. [1.184] Many sovereigns have ruled over this city = of=20 Babylon, and=20 lent their aid to the building of its walls and the adornment of its = temples, of=20 whom I shall make mention in my Assyrian history. Among them two were = women. Of=20 these, the earlier, called Semiramis, held the throne five generations = before=20 the later princess. She raised certain embankments well worthy of = inspection, in=20 the plain near Babylon, to control the river, which, till then, used to=20 overflow, and flood the whole country round about. [1.185] The later of the two queens, whose name was = Nitocris,=20 a wiser princess than her predecessor, not only left behind her, as = memorials of=20 her occupancy of the throne, the works which I shall presently describe, = but=20 also, observing the great power and restless enterprise of the Medes, = who had=20 taken so large a number of cities, and among them Nineveh, and expecting = to be=20 attacked in her turn, made all possible exertions to increase the = defences of=20 her empire. And first, whereas the river Euphrates, which traverses the = city,=20 ran formerly with a straight course to Babylon, she, by certain = excavations=20 which she made at some distance up the stream, rendered it so winding = that it=20 comes three several times in sight of the same village, a village in = Assyria,=20 which is called Ardericea; and to this day, they who would go from our = sea to=20 Babylon, on descending to the river touch three times, and on three = different=20 days, at this very place. She also made an embankment along each side of = the=20 Euphrates, wonderful both for breadth and height, and dug a basin for a = lake a=20 great way above Babylon, close alongside of the stream, which was sunk=20 everywhere to the point where they came to water, and was of such = breadth that=20 the whole circuit measured four hundred and twenty furlongs. The soil = dug out of=20 this basin was made use of in the embankments along the waterside. When = the=20 excavation was finished, she had stones brought, and bordered with them = the=20 entire margin of the reservoir. These two things were done, the river = made to=20 wind, and the lake excavated, that the stream might be slacker by reason = of the=20 number of curves, and the voyage be rendered circuitous, and that at the = end of=20 the voyage it might be necessary to skirt the lake and so make a long = round. All=20 these works were on that side of Babylon where the passes lay, and the = roads=20 into Media were the straightest, and the aim of the queen in making them = was to=20 prevent the Medes from holding intercourse with the Babylonians, and so = to keep=20 them in ignorance of her affairs. [1.186] While the soil from the excavation was = being thus=20 used for the defense of the city, Nitocris engaged also in another = undertaking,=20 a mere by-work compared with those we have already mentioned. The city, = as I=20 said, was divided by the river into two distinct portions. Under the = former=20 kings, if a man wanted to pass from one of these divisions to the other, = he had=20 to cross in a boat; which must, it seems to me, have been very = troublesome.=20 Accordingly, while she was digging the lake, Nitocris thought herself of = turning=20 it to a use which should at once remove this inconvenience, and enable = her to=20 leave another monument of her reign over Babylon. She gave orders for the = hewing of=20 immense blocks of stone, and when they were ready and the basin was = excavated,=20 she turned the entire stream of the Euphrates into the cutting, and thus = for a=20 time, while the basin was filling, the natural channel of the river was = left=20 dry. Forthwith she set to work, and in the first place lined the banks = of the=20 stream within the city with quays of burnt brick, and also bricked the=20 landing-places opposite the river-gates, adopting throughout the same = fashion of=20 brickwork which had been used in the town wall; after which, with the = materials=20 which had been prepared, she built, as near the middle of the town as = possible,=20 a stone bridge, the blocks whereof were bound together with iron and = lead. In=20 the daytime square wooden platforms were laid along from pier to pier, = on which=20 the inhabitants crossed the stream; but at night they were withdrawn, to = prevent=20 people passing from side to side in the dark to commit robberies. When = the river=20 had filled the cutting, and the bridge was finished, the Euphrates was = turned=20 back again into its ancient bed; and thus the basin, transformed = suddenly into a=20 lake, was seen to answer the purpose for which it was made, and the = inhabitants,=20 by help of the basin, obtained the advantage of a bridge. [1.187] It was this same princess by whom a = remarkable=20 deception was planned. She had her tomb constructed in the upper part of = one of=20 the principal gateways of the city, high above the heads of the passers = by, with=20 this inscription cut upon it:- "If there be one among my successors on = the=20 throne of Babylon who is in want of treasure, let him open my tomb, and = take as=20 much as he chooses - not, however, unless he be truly in want, for it = will not=20 be for his good." This tomb continued untouched until Darius came to the = kingdom. To him it seemed a monstrous thing that he should be unable to = use one=20 of the gates of the town, and that a sum of money should be lying idle, = and=20 moreover inviting his grasp, and he not seize upon it. Now he could not = use the=20 gate, because, as he drove through, the dead body would have been over = his head.=20 Accordingly he opened the tomb; but instead of money, found only the = dead body,=20 and a writing which said - "Had you not been insatiate of self, and = careless how=20 you got it, you would not have broken open the sepulchres of the dead." = [1.188] The expedition of Cyrus was undertaken = against the=20 son of this princess, who bore the same name as his father Labynetus, = and was=20 king of the Assyrians. The Great King, when he goes to the wars, is = always=20 supplied with provisions carefully prepared at home, and with cattle of = his own.=20 Water too from the river Choaspes, which flows by Susa, is taken with = him for=20 his drink, as that is the only water which the kings of Persia taste. = Wherever=20 he travels, he is attended by a number of four-wheeled cars drawn by = mules, in=20 which the Choaspes water, ready boiled for use, and stored in flagons of = silver,=20 is moved with him from place to place. [1.189] Cyrus on his way to Babylon came to the = banks of the=20 Gyndes, a stream which, rising in the Matienian mountains, runs through = the=20 country of the Dardanians, and empties itself into the river Tigris. The = Tigris,=20 after receiving the Gyndes, flows on by the city of Opis, and = discharges its=20 waters into the Erythraean sea. When Cyrus reached this stream, which = could only=20 be passed in boats, one of the sacred white horses accompanying his = march, full=20 of spirit and high mettle, walked into the water, and tried to cross by = himself;=20 but the current seized him, swept him along with it, and drowned him in = its=20 depths. Cyrus, enraged at the insolence of the river, threatened so to = break its=20 strength that in future even women should cross it easily without = wetting their=20 knees. Accordingly he put off for a time his attack on Babylon, and, = dividing=20 his army into two parts, he marked out by ropes one hundred and eighty = trenches=20 on each side of the Gyndes, leading off from it in all directions, and = setting=20 his army to dig, some on one side of the river, some on the other, he=20 accomplished his threat by the aid of so great a number of hands, but = not=20 without losing thereby the whole summer season. [1.190] Having, however, thus wreaked his vengeance = on the=20 Gyndes, by dispersing it through three hundred and sixty channels, = Cyrus, with=20 the first approach of the ensuing spring, marched forward against = Babylon. The=20 Babylonians, encamped without their walls, awaited his coming. A battle = was=20 fought at a short distance from the city, in which the Babylonians were = defeated=20 by the Persian king, whereupon they withdrew within their defences. Here = they=20 shut themselves up, and made light of his siege, having laid in a store = of=20 provisions for many years in preparation against this attack; for when = they saw=20 Cyrus conquering nation after nation, they were convinced that he would = never=20 stop, and that their turn would come at last. [1.191] Cyrus was now reduced to great perplexity, = as time=20 went on and he made no progress against the place. In this distress = either some=20 one made the suggestion to him, or he bethought himself of a plan, which = he=20 proceeded to put in execution. He placed a portion of his army at the = point=20 where the river enters the city, and another body at the back of the = place where=20 it issues forth, with orders to march into the town by the bed of the = stream, as=20 soon as the water became shallow enough: he then himself drew off with = the=20 unwarlike portion of his host, and made for the place where Nitocris dug = the=20 basin for the river, where he did exactly what she had done formerly: he = turned=20 the Euphrates by a canal into the basin, which was then a marsh, on = which the=20 river sank to such an extent that the natural bed of the stream became = fordable.=20 Hereupon the Persians who had been left for the purpose at Babylon by = the,=20 river-side, entered the stream, which had now sunk so as to reach about = midway=20 up a man's thigh, and thus got into the town. Had the Babylonians been = apprised=20 of what Cyrus was about, or had they noticed their danger, they would = never have=20 allowed the Persians to enter the city, but would have destroyed them = utterly;=20 for they would have made fast all the street-gates which gave upon the = river,=20 and mounting upon the walls along both sides of the stream, would so = have caught=20 the enemy, as it were, in a trap. But, as it was, the Persians came upon = them by=20 surprise and so took the city. Owing to the vast size of the place, the=20 inhabitants of the central parts (as the residents at Babylon declare) = long=20 after the outer portions of the town were taken, knew nothing of what = had=20 chanced, but as they were engaged in a festival, continued dancing and = revelling=20 until they learnt the capture but too certainly. Such, then, were the=20 circumstances of the first taking of Babylon. [1.192] Among many proofs which I shall bring = forward of the=20 power and resources of the Babylonians, the following is of special = account. The=20 whole country under the dominion of the Persians, besides paying a fixed = tribute, is parcelled out into divisions, which have to supply food to = the Great=20 King and his army during different portions of the year. Now out of the = twelve=20 months which go to a year, the district of Babylon furnishes food during = four,=20 the other of Asia during eight; by which it appears that Assyria, in = respect of=20 resources, is one-third of the whole of Asia.=20 Of all the Persian governments, or satrapies as they are called by the = natives,=20 this is by far the best. When Tritantaechmes, son of Artabazus, held it = of the=20 king, it brought him in an artaba of silver every day. The artaba is a = Persian=20 measure, and holds three choenixes more than the medimnus of the = Athenians. He=20 also had, belonging to his own private stud, besides war horses, eight = hundred=20 stallions and sixteen thousand mares, twenty to each stallion. Besides = which he=20 kept so great a number of Indian hounds, that four large villages of the = plain=20 were exempted from all other charges on condition of finding them food. = [1.193] But little rain falls in Assyria, enough, = however, to=20 make the grain begin to sprout, after which the plant is nourished and = the ears=20 formed by means of irrigation from the river. For the river does not, as = in=20 Egypt, overflow the = grain-lands of=20 its own accord, but is spread over them by the hand, or by the help of = engines.=20 The whole of Babylonia is, like Egypt, intersected with canals. The = largest of=20 them all, which runs towards the winter sun, and is impassable except in = boats,=20 is carried from the Euphrates into another stream, called the Tigris, = the river=20 upon which the town of Nineveh formerly stood. Of all the = countries=20 that we know there is none which is so fruitful in grain. It makes no = pretension=20 indeed of growing the fig, the olive, the vine, or any other tree of the = kind;=20 but in grain it is so fruitful as to yield commonly two-hundred-fold, = and when=20 the production is the greatest, even three-hundred-fold. The blade of = the=20 wheat-plant and barley-plant is often four fingers in breadth. As for = the millet=20 and the sesame, I shall not say to what height they grow, though within = my own=20 knowledge; for I am not ignorant that what I have already written = concerning the=20 fruitfulness of Babylonia must seem incredible to those who have never = visited=20 the country. The only oil they use is made from the sesame-plant. = Palm-trees=20 grow in great numbers over the whole of the flat country, mostly of the = kind=20 which bears fruit, and this fruit supplies them with bread, wine, and = honey.=20 They are cultivated like the fig-tree in all respects, among others in = this. The=20 natives tie the fruit of the male-palms, as they are called by the = Greeks, to=20 the branches of the date-bearing palm, to let the gall-fly enter the = dates and=20 ripen them, and to prevent the fruit from falling off. The male-palms, = like the=20 wild fig-trees, have usually the gall-fly in their fruit. [1.194] But that which surprises me most in the = land, after=20 the city itself, I will now proceed to mention. The boats which come = down the=20 river to Babylon are circular, and made of skins. The frames, which are = of=20 willow, are cut in the country of the Armenians above Assyria, and on = these,=20 which serve for hulls, a covering of skins is stretched outside, and = thus the=20 boats are made, without either stem or stern, quite round like a shield. = They=20 are then entirely filled with straw, and their cargo is put on board, = after=20 which they are suffered to float down the stream. Their chief freight is = wine,=20 stored in casks made of the wood of the palm-tree. They are managed by = two men=20 who stand upright in them, each plying an oar, one pulling and the other = pushing. The boats are of various sizes, some larger, some smaller; the = biggest=20 reach as high as five thousand talents' burden. Each vessel has a live = ass on=20 board; those of larger size have more than one. When they reach Babylon, = the=20 cargo is landed and offered for sale; after which the men break up their = boats,=20 sell the straw and the frames, and loading their asses with the skins, = set off=20 on their way back to Armenia. The current is too strong to allow a boat = to=20 return upstream, for which reason they make their boats of skins rather = than=20 wood. On their return to Armenia they build fresh boats for the next = voyage.=20 [1.195] The dress of the Babylonians is a linen = tunic=20 reaching to the feet, and above it another tunic made in wool, besides = which=20 they have a short white cloak thrown round them, and shoes of a peculiar = fashion, not unlike those worn by the Boeotians. They have long hair, = wear=20 turbans on their heads, and anoint their whole body with perfumes. Every = one=20 carries a seal, and a walking-stick, carved at the top into the form of = an=20 apple, a rose, a lily, an eagle, or something similar; for it is not = their habit=20 to use a stick without an ornament. [1.196] Of their customs, whereof I shall now = proceed to give=20 an account, the following (which I understand belongs to them in common = with the=20 Illyrian tribe of the Eneti) is the wisest in my judgment. Once a year = in each=20 village the maidens of age to marry were collected all together into one = place;=20 while the men stood round them in a circle. Then a herald called up the = damsels=20 one by one, and offered them for sale. He began with the most beautiful. = When=20 she was sold for no small sum of money, he offered for sale the one who = came=20 next to her in beauty. All of them were sold to be wives. The richest of = the=20 Babylonians who wished to wed bid against each other for the loveliest = maidens,=20 while the humbler wife-seekers, who were indifferent about beauty, took = the more=20 homely damsels with marriage-portions. For the custom was that when the = herald=20 had gone through the whole number of the beautiful damsels, he should = then call=20 up the ugliest - a cripple, if there chanced to be one - and offer her = to the=20 men, asking who would agree to take her with the smallest = marriage-portion [i.e.=20 in these cases the man was paid to take the woman]. And the man who was = offered=20 the smallest sum had her assigned to him. The marriage-portions were = furnished=20 by the money paid for the beautiful damsels, and thus the fairer maidens = portioned out the uglier. No one was allowed to give his daughter in = marriage to=20 the man of his choice, nor might any one carry away the damsel whom he = had=20 purchased without finding bail really and truly to make her his wife; = if,=20 however, it turned out that they did not agree, the money might be paid = back.=20 All who liked might come even from distant villages and bid for the = women. This=20 was the best of all their customs, but it has now fallen into disuse. = They have=20 lately hit upon a very different plan to save their maidens from = violence, and=20 prevent their being torn from them and carried to distant cities, which = is to=20 bring up their daughters to be courtesans. This is now done by all the = poorer of=20 the common people, who since the conquest have been maltreated by their = lords,=20 and have had ruin brought upon their families. [1.197] The following custom seems to me the wisest = of their=20 institutions next to the one lately praised. They have no physicians, = but when a=20 man is ill, they lay him in the public square, and the passers-by come = up to=20 him, and if they have ever had his disease themselves or have known any = one who=20 has suffered from it, they give him advice, recommending him to do = whatever they=20 found good in their own case, or in the case known to them; and no one = is=20 allowed to pass the sick man in silence without asking him what his = ailment is.=20 [1.198] They bury their dead in honey, and have = funeral=20 lamentations like the Egyptians. When a Babylonian has consorted with = his wife,=20 he sits down before a censer of burning incense, and the woman sits = opposite to=20 him. At dawn of day they wash; for till they are washed they will not = touch any=20 of their common vessels. This practice is observed also by the Arabians. = [1.199] The Babylonians have one most shameful = custom. Every=20 woman born in the country must once in her life go and sit down in the = precinct=20 of Venus, and there consort with a stranger. Many of the wealthier sort, = who are=20 too proud to mix with the others, drive in covered carriages to the = precinct,=20 followed by a goodly train of attendants, and there take their station. = But the=20 larger number seat themselves within the holy enclosure with wreaths of = string=20 about their heads - and here there is always a great crowd, some coming = and=20 others going; lines of cord mark out paths in all directions the women, = and the=20 strangers pass along them to make their choice. A woman who has once = taken her=20 seat is not allowed to return home till one of the strangers throws a = silver=20 coin into her lap, and takes her with him beyond the holy ground. When = he throws=20 the coin he says these words - "The goddess Mylitta prosper thee." = (Venus is=20 called Mylitta by the Assyrians.) The silver coin may be of any size; it = cannot=20 be refused, for that is forbidden by the law, since once thrown it is = sacred.=20 The woman goes with the first man who throws her money, and rejects no = one. When=20 she has gone with him, and so satisfied the goddess, she returns home, = and from=20 that time forth no gift however great will prevail with her. Such of the = women=20 as are tall and beautiful are soon released, but others who are ugly = have to=20 stay a long time before they can fulfil the law. Some have waited three = or four=20 years in the precinct. A custom very much like this is found also in = certain=20 parts of the island of Cyprus. [1.200] Such are the customs of the Babylonians = generally.=20 There are likewise three tribes among them who eat nothing but fish. = These are=20 caught and dried in the sun, after which they are brayed in a mortar, = and=20 strained through a linen sieve. Some prefer to make cakes of this = material,=20 while others bake it into a kind of bread. On Egypt: [2.2] Now the Egyptians, before the reign of their = king=20 Psammetichus, believed themselves to be the most ancient of mankind. = Since=20 Psammetichus, however, made an attempt to discover who were actually the = primitive race, the Egyptians have been of opinion that while they = surpass all=20 other nations, the Phrygians surpass them in antiquity. This king, = finding it=20 impossible to make out by dint of inquiry what men were the most = ancient,=20 contrived the following method of discovery:- He took two children of = the common=20 sort, and gave them over to a herdsman to bring up at his folds, = strictly=20 charging him to let no one utter a word in their presence, but to keep = them in a=20 sequestered cottage, and from time to time introduce goats to their = apartment,=20 see that they got their fill of milk, and in all other respects look = after them.=20 His object herein was to know, after the indistinct babblings of infancy = were=20 over, what word they would first articulate. It happened as he had = anticipated.=20 The herdsman obeyed his orders for two years, and at the end of that = time, on=20 his one day opening the door of their room and going in, the children = both ran=20 up to him with outstretched arms, and distinctly said "Becos." When this = first=20 happened the herdsman took no notice; but afterwards when he observed, = on coming=20 often to see after them, that the word was constantly in their mouths, = he=20 informed his lord, and by his command brought the children into his = presence.=20 Psammetichus then himself heard them say the word, upon which he = proceeded to=20 make inquiry what people there was who called anything "becos," and = hereupon he=20 learnt that "becos" was the Phrygian name for bread. In consideration of = this=20 circumstance the Egyptians yielded their claims, and admitted the = greater=20 antiquity of the Phrygians. [2.3] That these were the real facts I learnt at = Memphis from = the priests of=20 Vulcan. The Greeks, among other foolish tales, relate that Psammetichus = had the=20 children brought up by women whose tongues he had previously cut out; = but the=20 priests said their bringing up was such as I have stated above. I got = much other=20 information also from conversation with these priests while I was at = Memphis,=20 and I even went to Heliopolis and to Thebes, expressly to try whether = the=20 priests of those places would agree in their accounts with the priests = at=20 Memphis. The Heliopolitans have the reputation of being the best skilled = in=20 history of all the Egyptians. What they told me concerning their = religion it is=20 not my intention to repeat, except the names of their deities, which I = believe=20 all men know equally. If I relate anything else concerning these = matters, it=20 will only be when compelled to do so by the course of my narrative. [2.4] Now with regard to mere human matters, the = accounts=20 which they gave, and in which all agreed, were the following. The = Egyptians,=20 they said, were the first to discover the solar year, and to portion out = its=20 course into twelve parts. They obtained this knowledge from the stars. = (To my=20 mind they contrive their year much more cleverly than the Greeks, for = these last=20 every other year intercalate a whole month, but the Egyptians, dividing = the year=20 into twelve months of thirty days each, add every year a space of five = days=20 besides, whereby the circuit of the seasons is made to return with = uniformity.)=20 The Egyptians, they went on to affirm, first brought into use the names = of the=20 twelve gods, which the Greeks adopted from them; and first erected = altars,=20 images, and temples to the gods; and also first engraved upon stone the = figures=20 of animals. In most of these cases they proved to me that what they said = was=20 true. And they told me that the first man who ruled over Egypt was Min, = and that=20 in his time all Egypt, except the Thebaic canton, was a marsh, none of = the land=20 below Lake Moeris then showing itself above the surface of the water. = This is a=20 distance of seven days' sail from the sea up the river. [2.5] What they said of their country seemed to me = very=20 reasonable. For any one who sees Egypt, without having heard a word = about it=20 before, must perceive, if he has only common powers of observation, that = the=20 Egypt to which the Greeks go in their ships is an acquired country, the = gift of=20 the river. The same is true of the land above the lake, to the distance = of three=20 days' voyage, concerning which the Egyptians say nothing, but which = exactly the=20 same kind of country. The following is the general character of the = region. In the=20 first place, on approaching it by sea, when you are still a day's sail = from the=20 land, if you let down a sounding-line you will bring up mud, and find = yourself=20 in eleven fathoms' water, which shows that the soil washed down by the = stream=20 extends to that distance. [2.6] The length of the country along shore, = according to the=20 bounds that we assign to Egypt, namely from the Plinthinetic = gulf to=20 Lake Serbonis, which extends along the base of = Mount = Casius, is sixty schoenes. The = nations=20 whose territories are scanty measure them by the fathom; those whose = bounds are=20 less confined, by the furlong; those who have an ample territory, by the = parasang; but if men have a country which is very vast, they measure it = by the=20 schoene. Now the length of the parasang is thirty furlongs, but the = schoene,=20 which is an Egyptian measure, is sixty furlongs. Thus the coastline of = Egypt=20 would extend a length of three thousand six hundred furlongs. [2.7] From the coast inland as far as Heliopolis the breadth of Egypt=20 is considerable, the country is flat, without springs, and full of = swamps. The=20 length of the route from the sea up to Heliopolis is almost exactly the = same as=20 that of the road which runs from the altar of the twelve gods at Athens = to the=20 temple of Olympian Jove at Pisa. If a person made a calculation he would = find=20 but a very little difference between the two routes, not more than about = fifteen=20 furlongs; for the road from Athens to Pisa falls short of fifteen = hundred=20 furlongs by exactly fifteen, whereas the distance of Heliopolis from the = sea is=20 just the round number. [2.8] As one proceeds beyond Heliopolis up the country, Egypt=20 becomes narrow, the Arabian range of hills, which has a direction from = north to=20 south, shutting it in upon the one side, and the Libyan range upon the = other.=20 The former ridge runs on without a break, and stretches away to the sea = called=20 the Erythraean; it contains the quarries whence the stone was cut for = the=20 pyramids of Memphis: and this is the point where it ceases its first = direction,=20 and bends away in the manner above indicated. In its greatest length = from east=20 to west it is, as I have been informed, a distance of two months' = journey=20 towards the extreme east its skirts produce frankincense. Such are the = chief=20 features of this range. On the Libyan side, the other ridge whereon the = pyramids=20 stand is rocky and covered with sand; its direction is the same as that = of the=20 Arabian ridge in the first part of its course. Above Heliopolis, then, = there is=20 no great breadth of territory for such a country as Egypt, but during = four days'=20 sail Egypt is narrow; the valley between the two ranges is a level = plain, and=20 seemed to me to be, at the narrowest point, not more than two hundred = furlongs=20 across from the Arabian to the Libyan hills. Above this point Egypt = again=20 widens. [2.9] From Heliopolis to Thebes is nine days' sail = up the=20 river; the distance is eighty-one schoenes, or 4860 furlongs. If we now = put=20 together the several measurements of the country we shall find that the = distance=20 along shore is, as I stated above, 3600 furlongs, and the distance from = the sea=20 inland to Thebes 6120 furlongs. Further, it is a distance of eighteen = hundred=20 furlongs from Thebes to the place called Elephantine. [2.10] The greater portion of the country above = described=20 seemed to me to be, as the priests declared, a tract gained by the = inhabitants.=20 For the whole region above Memphis, lying between the two ranges = of hills=20 that have been spoken of, appeared evidently to have formed at one time = a gulf=20 of the sea. It resembles (to compare small things with great) the parts = about=20 Ilium and Teuthrania, Ephesus, and the plain of the Maeander. In all = these=20 regions the land has been formed by rivers, whereof the greatest is not = to=20 compare for size with any one of the five mouths of the Nile. I could = mention=20 other rivers also, far inferior to the Nile in=20 magnitude, that have effected very great changes. Among these not the = least is=20 the Achelous, which, after passing through Acarnania, empties itself = into the=20 sea opposite the islands called Echinades, and has already joined = one-half of=20 them to the continent. [2.11] In Arabia, not far from Egypt, there is a long and narrow gulf = running=20 inland from the sea called the Erythraean [i.e. the Red=20 Sea], of which I will here set down the dimensions. Starting = from=20 its innermost recess, and using a row-boat, you take forty days to reach = the=20 open main, while you may cross the gulf at its widest part in the space = of half=20 a day. In this sea there is an ebb and flow of the tide every day. My = opinion is=20 that Egypt was formerly very much such a gulf as this - one gulf = penetrated from=20 the sea that washes Egypt on the north, and extended itself towards = Ethiopia;=20 another entered from the southern ocean, and stretched towards Syria; = the two=20 gulfs ran into the land so as almost to meet each other, and left = between them=20 only a very narrow tract of country. Now if the Nile should choose to = divert his=20 waters from their present bed into this Arabian=20 gulf, what is there to hinder it from being filled up by the = stream=20 within, at the utmost, twenty thousand years? For my part, I think it = would be=20 filled in half the time. How then should not a gulf, even of much = greater size,=20 have been filled up in the ages that passed before I was born, by a = river that=20 is at once so large and so given to working changes? [2.12] Thus I give credit to those from whom I = received this=20 account of Egypt, and am myself, moreover, strongly of the same opinion, = since I=20 remarked that the country projects into the sea further than the = neighbouring=20 shores, and I observed that there were shells upon the hills, and that = salt=20 exuded from the soil to such an extent as even to injure the pyramids; = and I=20 noticed also that there is but a single hill in all Egypt where sand is = found,=20 namely, the hill above Memphis; and further, I found the country to bear = no=20 resemblance either to its borderland Arabia, or to Libya - nay, nor even = to=20 Syria, which forms the seaboard of Arabia; but whereas the soil of Libya = is, we=20 know, sandy and of a reddish hue, and that of Arabia and Syria inclines = to stone=20 and clay, Egypt has a soil that is black and crumbly, as being alluvial = and=20 formed of the deposits brought down by the river from Ethiopia. [2.13] One fact which I learnt of the priests is to = me a=20 strong evidence of the origin of the country. They said that when Moeris = was=20 king, the Nile overflowed all Egypt below Memphis, as soon as it rose so = little=20 as eight cubits. Now Moeris had not been dead 900 years at the time when = I heard=20 this of the priests; yet at the present day, unless the river rise = sixteen, or,=20 at the very least, fifteen cubits, it does not overflow the lands. It = seems to=20 me, therefore, that if the land goes on rising and growing at this rate, = the=20 Egyptians who dwell below Lake Moeris, in the Delta (as it is called) = and=20 elsewhere, will one day, by the stoppage of the inundations, suffer = permanently=20 the fate which they told me they expected would some time or other = befall the=20 Greeks. On hearing that the whole land of Greece is watered by rain from = heaven,=20 and not, like their own, inundated by rivers, they observed - "Some day = the=20 Greeks will be disappointed of their grand hope, and then they will be=20 wretchedly hungry"; which was as much as to say, "If God shall some day = see fit=20 not to grant the Greeks rain, but shall afflict them with a long = drought, the=20 Greeks will be swept away by a famine, since they have nothing to rely = on but=20 rain from Jove, and have no other resource for water." [2.14] And in thus speaking of the Greeks the = Egyptians say=20 nothing but what is true. But now let me tell the Egyptians how the case = stands=20 with themselves. If, as I said before, the country below Memphis, which = is the=20 land that is always rising, continues to increase in height at the rate = at which=20 it has risen in times gone by, how will it be possible for the = inhabitants of=20 that region to avoid hunger, when they will certainly have no rain, and = the=20 river will not be able to overflow their cornlands? At present, it must = be=20 confessed, they obtain the fruits of the field with less trouble than = any other=20 people in the world, the rest of the Egyptians included, since they have = no need=20 to break up the ground with the plough, nor to use the hoe, nor to do = any of the=20 work which the rest of mankind find necessary if they are to get a crop; = but the=20 husbandman waits till the river has of its own accord spread itself over = the=20 fields and withdrawn again to its bed, and then sows his plot of ground, = and=20 after sowing turns his swine into it - the swine tread in the corn - = after which=20 he has only to await the harvest. The swine serve him also to thrash the = grain,=20 which is then carried to the garner. [2.15] If then we choose to adopt the views of the = Ionians=20 concerning Egypt, we must come to the conclusion that the Egyptians had = formerly=20 no country at all. For the Ionians say that nothing is really Egypt but = the=20 Delta, which extends along shore from the Watch-tower of Perseus, as it = is=20 called, to the Pelusiac Salt-Pans, a distance of forty schoenes, and = stretches=20 inland as far as the city of Cercasorus, where the Nile divides into the = two=20 streams which reach the sea at Pelusium and Canobus respectively. The = rest of=20 what is accounted Egypt belongs, they say, either to Arabia or Libya. = But the=20 Delta, as the Egyptians affirm, and as I myself am persuaded, is formed = of the=20 deposits of the river, and has only recently, if I may use the = expression, come=20 to light. If, then, they had formerly no territory at all, how came they = to be=20 so extravagant as to fancy themselves the most ancient race in the = world? Surely=20 there was no need of their making the experiment with the children to = see what=20 language they would first speak. But in truth I do not believe that the=20 Egyptians came into being at the same time with the Delta, as the = Ionians call=20 it; I think they have always existed ever since the human race began; as = the=20 land went on increasing, part of the population came down into the new = country,=20 part remained in their old settlements. In ancient times the Thebais = bore the=20 name of Egypt, a district of which the entire circumference is but 6120=20 furlongs. [2.16] If, then, my judgment on these matters be = right, the=20 Ionians are mistaken in what they say of Egypt.=20 If, on the contrary, it is they who are right, then I undertake to show = that=20 neither the Ionians nor any of the other Greeks know how to count. For = they all=20 say that the earth is divided into three parts, Europe, Asia, and Libya, = whereas=20 they ought to add a fourth part, the Delta of Egypt, since they do not = include=20 it either in Asia or Libya. For is it not their theory that the Nile = separates=20 Asia from Libya? As the Nile, therefore, splits in two at the apex of = the Delta,=20 the Delta itself must be a separate country, not contained in either = Asia or=20 Libya. [2.17] Here I take my leave of the opinions of the = Ionians,=20 and proceed to deliver my own sentiments on these subjects. I consider = Egypt to=20 be the whole country inhabited by the Egyptians, just as Cilicia is the = tract=20 occupied by the Cilicians, and Assyria that possessed by the Assyrians. = And I=20 regard the only proper boundary-line between Libya and Asia to be that = which is=20 marked out by the Egyptian frontier. For if we take the boundary-line = commonly=20 received by the Greeks, we must regard Egypt as divided, along its whole = length=20 from Elephantine and the Cataracts to Cercasorus, into two parts, each = belonging=20 to a different portion of the world, one to Asia, the other to Libya; = since the=20 Nile divides Egypt in two from the Cataracts to the sea, running as far = as the=20 city of Cercasorus in a single stream, but at that point separating into = three=20 branches, whereof the one which bends eastward is called the Pelusiac = mouth, and=20 that which slants to the west, the Canobic. Meanwhile the straight = course of the=20 stream, which comes down from the upper country and meets the apex of = the Delta,=20 continues on, dividing the Delta down the middle, and empties itself = into the=20 sea by a mouth, which is as celebrated, and carries as large a body of = water, as=20 most of the others, the mouth called the Sebennytic. Besides these there = are two=20 other mouths which run out of the Sebennytic called respectively the = Saitic and=20 the Mendesian. The Bolbitine mouth, and the Bucolic, are not natural = branches,=20 but channels made by excavation. [2.18] My judgment as to the extent of Egypt is = confirmed by=20 an oracle delivered at the shrine of Ammon, of which I had no knowledge = at all=20 until after I had formed my opinion. It happened that the people of the = cities=20 Marea and Apis, who live in the part of Egypt that borders on Libya, = took a=20 dislike to the religious usages of the country concerning sacrificial = animals,=20 and wished no longer to be restricted from eating the flesh of cows. So, = as they=20 believed themselves to be Libyans and not Egyptians, they sent to the = shrine to=20 say that, having nothing in common with the Egyptians, neither = inhabiting the=20 Delta nor using the Egyptian tongue, they claimed to be allowed to eat = whatever=20 they pleased. Their request, however, was refused by the god, who = declared in=20 reply that Egypt was the entire tract of country which the Nile = overspreads and=20 irrigates, and the Egyptians were the people who lived below = Elephantine, and=20 drank the waters of that river. [2.19] So said the oracle. Now the Nile, when it = overflows,=20 floods not only the Delta, but also the tracts of country on both sides = the=20 stream which are thought to belong to Libya and Arabia, in some places = reaching=20 to the extent of two days' journey from its banks, in some even = exceeding that=20 distance, but in others falling short of it. Concerning the nature of the river, I was not able = to gain=20 any information either from the priests or from others. I was = particularly=20 anxious to learn from them why the Nile, at the commencement of the = summer=20 solstice, begins to rise, and continues to increase for a hundred days - = and=20 why, as soon as that number is past, it forthwith retires and contracts = its=20 stream, continuing low during the whole of the winter until the summer = solstice=20 comes round again. On none of these points could I obtain any = explanation from=20 the inhabitants, though I made every inquiry, wishing to know what was = commonly=20 reported - they could neither tell me what special virtue the Nile has = which=20 makes it so opposite in its nature to all other streams, nor why, unlike = every=20 other river, it gives forth no breezes from its surface. [2.20] Some of the Greeks, however, wishing to get = a=20 reputation for cleverness, have offered explanations of the phenomena of = the=20 river, for which they have accounted in three different ways. Two of = these I do=20 not think it worth while to speak of, further than simply to mention = what they=20 are. One pretends that the Etesian winds cause the rise of the river by=20 preventing the Nile-water from running off into the sea. But in the = first place=20 it has often happened, when the Etesian winds did not blow, that the = Nile has=20 risen according to its usual wont; and further, if the Etesian winds = produced=20 the effect, the other rivers which flow in a direction opposite to those = winds=20 ought to present the same phenomena as the Nile, and the more so as they = are all=20 smaller streams, and have a weaker current. But these rivers, of which = there are=20 many both in Syria and Libya, are entirely unlike the Nile in this = respect. [2.21] The second opinion is even more unscientific = than the=20 one just mentioned, and also, if I may so say, more marvellous. It is = that the=20 Nile acts so strangely, because it flows from the ocean, and that the = ocean=20 flows all round the earth. [2.22] The third explanation, which is very much = more=20 plausible than either of the others, is positively the furthest from the = truth;=20 for there is really nothing in what it says, any more than in the other=20 theories. It is, that the inundation of the Nile is caused by the melting of snows. Now, as = the Nile=20 flows out of Libya, through Ethiopia, into Egypt, how is it possible = that it can=20 be formed of melted snow, running, as it does, from the hottest regions = of the=20 world into cooler countries? Many are the proofs whereby any one capable = of=20 reasoning on the subject may be convinced that it is most unlikely this = should=20 be the case. The first and strongest argument is furnished by the winds, = which=20 always blow hot from these regions. The second is that rain and frost = are=20 unknown there. Now whenever snow falls, it must of necessity rain within = five=20 days;.so that, if there were snow, there must be rain also in those = parts.=20 Thirdly, it is certain that the natives of the country are black with = the heat,=20 that the kites and the swallows remain there the whole year, and that = the=20 cranes, when they fly from the rigours of a Scythian winter, flock = thither to=20 pass the cold season. If then, in the country whence the Nile has its = source, or=20 in that through which it flows, there fell ever so little snow, it is = absolutely=20 impossible that any of these circumstances could take place. [2.23] As for the writer who attributes the = phenomenon to the=20 ocean, his account is involved in such obscurity that it is impossible = to=20 disprove it by argument. For my part I know of no river called Ocean, = and I=20 think that Homer, or one of the earlier poets, invented the name, and = introduced=20 it into his poetry. [2.24] Perhaps, after censuring all the opinions = that have=20 been put forward on this obscure subject, one ought to propose some = theory of=20 one's own. I will therefore proceed to explain what I think to be the = reason of=20 the Nile's swelling in the summer time. During the winter, the sun is = driven out=20 of his usual course by the storms, and removes to the upper parts of = Libya. This=20 is the whole secret in the fewest possible words; for it stands to = reason that=20 the country to which the Sun-god approaches the nearest, and which he = passes=20 most directly over, will be scantest of water, and that there the = streams which=20 feed the rivers will shrink the most. [2.25] To explain, however, more at length, the = case is this.=20 The sun, in his passage across the upper parts of Libya, affects them in = the=20 following way. As the air in those regions is constantly clear, and the = country=20 warm through the absence of cold winds, the sun in his passage across = them acts=20 upon them exactly as he wont to act elsewhere in summer, when his path = is in the=20 middle of heaven - that is, he attracts the water. After attracting it, = he again=20 repels it into the upper regions, where the winds lay hold of it, = scatter it,=20 and reduce it to a vapour, whence it naturally enough comes to pass that = the=20 winds which blow from this quarter - the south and south-west - are of = all winds=20 the most rainy. And my own opinion is that the sun does not get rid of = all the=20 water which he draws year by year from the Nile, but retains some about = him.=20 When the winter begins to soften, the sun goes back again to his old = place in=20 the middle of the heaven, and proceeds to attract water equally from all = countries. Till then the other rivers run big, from the quantity of = rain-water=20 which they bring down from countries where so much moisture falls that = all the=20 land is cut into gullies; but in summer, when the showers fail, and the = sun=20 attracts their water, they become low. The Nile, on the contrary, not deriving any of its = bulk from=20 rains, and being in winter subject to the attraction of the sun, = naturally runs=20 at that season, unlike all other streams, with a less burden of water = than in=20 the summer time. For in summer it is exposed to attraction equally with = all=20 other rivers, but in winter it suffers alone. The sun, therefore, I = regard as=20 the sole cause of the phenomenon. [2.26] It is the sun also, in my opinion, which, by = heating=20 the space through which it passes, makes the air in Egypt=20 so dry. There is thus perpetual summer in the upper parts of Libya. Were = the=20 position of the heavenly regions reversed, so that the place where now = the north=20 wind and the winter have their dwelling became the station of the south = wind and=20 of the noon-day, while, on the other hand, the station of the south wind = became=20 that of the north, the consequence would be that the sun, driven from = the=20 mid-heaven by the winter and the northern gales, would betake himself to = the=20 upper parts of Europe, as he now does to those of Libya, and then I = believe his=20 passage across Europe would affect the Ister exactly as the Nile is = affected at=20 the present day. [2.27] And with respect to the fact that no breeze = blows from=20 the Nile, I am of opinion that no = wind is=20 likely to arise in very hot countries, for breezes love to blow from = some cold=20 quarter. [2.28] Let us leave these things, however, to their = natural=20 course, to continue as they are and have been from the beginning. With = regard to=20 the sources of the Nile, I have found no one among all those with whom I = have=20 conversed, whether Egyptians, Libyans, or Greeks, who professed to have = any=20 knowledge, except a single person. He was the scribe who kept the = register of=20 the sacred treasures of Minerva in the city of Sais, and he did not seem = to me=20 to be in earnest when he said that he knew them perfectly well. His = story was as=20 follows:- "Between Syene, a city of the Thebais, and Elephantine, there are" (he said) "two hills = with sharp=20 conical tops; the name of the one is Crophi, of the other, Mophi. Midway = between=20 them are the fountains of the Nile, fountains which it is impossible to = fathom.=20 Half the water runs northward into Egypt, half to the south towards = Ethiopia."=20 The fountains were known to be unfathomable, he declared, because = Psammetichus,=20 an Egyptian king, had made trial of them. He had caused a rope to be = made, many=20 thousand fathoms in length, and had sounded the fountain with it, but = could find=20 no bottom. By this the scribe gave me to understand, if there was any = truth at=20 all in what he said, that in this fountain there are certain strong = eddies, and=20 a regurgitation, owing to the force wherewith the water dashes against = the=20 mountains, and hence a Sounding-line cannot be got to reach the bottom = of the=20 spring. [2.29] No other information on this could I obtain = from any=20 quarter. All that I succeeded in learning further of the more distant = portions=20 of the Nile, by ascending myself as high as Elephantine and making = inquiries=20 concerning the parts beyond, was the following:- As one advances beyond=20 Elephantine, the land rises. Hence it = is=20 necessary in this part of the river to attach a rope to the boat on each = side,=20 as men harness an ox, and so proceed on the journey. If the rope snaps, = the=20 vessel is borne away down stream by the force of the current. The = navigation=20 continues the same for four days, the river winding greatly, like the = Maeander,=20 and the distance traversed amounting to twelve schoenes. Here you come = upon a=20 smooth and level plain, where the Nile flows in two branches, round an = island=20 called Tachompso. The country above Elephantine=20 is inhabited by the Ethiopians, who possess one-half of this island, the = Egyptians occupying the other. Above the island there is a great lake, = the=20 shores of which are inhabited by Ethiopian nomads; after passing it, you = come=20 again to the stream of the Nile, which runs into the lake. Here you = land, and=20 travel for forty days along the banks of the river, since it is = impossible to=20 proceed further in a boat on account of the sharp peaks which jut out = from the=20 water, and the sunken rocks which abound in that part of the stream. = When you=20 have passed this portion of the river in the space of forty days, you go = on=20 board another boat and proceed by water for twelve days more, at the end = of=20 which time you reach a great city called Meroe, which is said to be the = capital=20 of the other Ethiopians. The only gods worshipped by the inhabitants are = Jupiter=20 and Bacchus, to whom great honours are paid. There is an oracle of = Jupiter in=20 the city, which directs the warlike expeditions of the Ethiopians; when = it=20 commands they go to war, and in whatever direction it bids them march, = thither=20 straightway they carry their arms. [2.30] On leaving this city, and again mounting the = stream,=20 in the same space of time which it took you to reach the capital from=20 Elephantine, you come to the Deserters, who bear the name of Asmach. = This word,=20 translated into our language, means "the men who stand on the left hand = of the=20 king." These Deserters are Egyptians of the warrior caste, who, to the = number of=20 two hundred and forty thousand, went over to the Ethiopians in the reign = of king=20 Psammetichus. The cause of their desertion was the following:- Three = garrisons=20 were maintained in Egypt at=20 that time, one in the city of Elephantine against the Ethiopians, = another in=20 the Pelusiac Daphnae, against the Syrians and Arabians, and a third, = against the=20 Libyans, in Marea. (The very same posts are to this day occupied by the=20 Persians, whose forces are in garrison both in Daphnae and in = Elephantine.) Now=20 it happened, that on one occasion the garrisons were not relieved during = the=20 space of three years; the soldiers, therefore, at the end of that time,=20 consulted together, and having determined by common consent to revolt, = marched=20 away towards Ethiopia. Psammetichus, informed of the movement, set out = in=20 pursuit, and coming up with them, besought them with many words not to = desert=20 the gods of their country, nor abandon their wives and children. "Nay, = but,"=20 said one of the deserters with an unseemly gesture, "wherever we go, we = are sure=20 enough of finding wives and children." Arrived in Ethiopia, they placed=20 themselves at the disposal of the king. In return, he made them a = present of a=20 tract of land which belonged to certain Ethiopians with whom he was at = feud,=20 bidding them expel the inhabitants and take possession of their = territory. From=20 the time that this settlement was formed, their acquaintance with = Egyptian=20 manners has tended to civilise the Ethiopians. [2.31] Thus the course of the Nile is known, not = only=20 throughout Egypt, but to the extent of four months' journey either by = land or=20 water above the Egyptian boundary; for on calculation it will be found = that it=20 takes that length of time to travel from Elephantine to the country of = the=20 Deserters. There the direction of the river is from west to east. = Beyond, no one=20 has any certain knowledge of its course, since the country is = uninhabited by=20 reason of the excessive heat. [2.32] I did hear, indeed, what I will now relate, = from=20 certain natives of Cyrene. Once upon a time, they said, they were on a = visit to=20 the oracular shrine of Ammon, when it chanced that in the course of = conversation=20 with Etearchus, the Ammonian king, the talk fell upon the Nile, how that = its=20 sources were unknown to all men. Etearchus upon this mentioned that some = Nasamonians had once come to his court, and when asked if they could = give any=20 information concerning the uninhabited parts of Libya, had told the = following=20 tale. (The Nasamonians are a Libyan race who occupy the Syrtis, and a = tract of=20 no great size towards the east.) They said there had grown up among them = some=20 wild young men, the sons of certain chiefs, who, when they came to man's = estate,=20 indulged in all manner of extravagancies, and among other things drew = lots for=20 five of their number to go and explore the desert parts of Libya, and = try if=20 they could not penetrate further than any had done previously. The coast = of=20 Libya along the sea which washes it to the north, throughout its entire = length=20 from Egypt to Cape Soloeis, which is its furthest point, is inhabited by = Libyans=20 of many distinct tribes who possess the whole tract except certain = portions=20 which belong to the Phoenicians and the Greeks. Above the coast-line and = the=20 country inhabited by the maritime tribes, Libya is full of wild beasts; = while=20 beyond the wild beast region there is a tract which is wholly sand, very = scant=20 of water, and utterly and entirely a desert. The young men therefore, = despatched=20 on this errand by their comrades with a plentiful supply of water and=20 provisions, travelled at first through the inhabited region, passing = which they=20 came to the wild beast tract, whence they finally entered upon the = desert, which=20 they proceeded to cross in a direction from east to west. After = journeying for=20 many days over a wide extent of sand, they came at last to a plain where = they=20 observed trees growing; approaching them, and seeing fruit on them, they = proceeded to gather it. While they were thus engaged, there came upon = them some=20 dwarfish men, under the middle height, who seized them and carried them = off. The=20 Nasamonians could not understand a word of their language, nor had they = any=20 acquaintance with the language of the Nasamonians. They were led across=20 extensive marshes, and finally came to a town, where all the men were of = the=20 height of their conductors, and black-complexioned. A great river flowed = by the=20 town, running from west to east, and containing crocodiles. [Although he = was=20 unaware of it, Herodotus actually might have been describing the Niger = River in=20 central Africa, which would have been accessible by caravan routes = through the=20 Sahara desert.] [2.33] Here let me dismiss Etearchus the Ammonian, = and his=20 story, only adding that (according to the Cyrenaeans) he declared that = the=20 Nasamonians got safe back to their country, and that the men whose city = they had=20 reached were a nation of sorcerers. With respect to the river which ran = by their=20 town, Etearchus conjectured it to be the Nile; and reason favours that = view. For=20 the Nile certainly flows out of Libya, dividing it down the middle, and = as I=20 conceive, judging the unknown from the known, rises at the same distance = from=20 its mouth as the Danube. The Danube = river has=20 its source in the country of the Celts near the city Pyrene, and runs = through=20 the middle of Europe, dividing it = into two=20 portions. The Celts live beyond the pillars of Hercules, and border on = the=20 Cynesians, who dwell at the extreme west of Europe. Thus the Danube flows through the whole = of Europe=20 before it finally empties itself into the Euxine at Istria, one of the colonies of the Milesians. = [2.34] Now as this river flows through regions that = are=20 inhabited, its course is perfectly well known; but of the sources of the = Nile no=20 one can give any account, since Libya, the country through which it = passes, is=20 desert and without inhabitants. As far as it was possible to get = information by=20 inquiry, I have given a description of the stream. It enters Egypt from = the=20 parts beyond. Egypt lies almost exactly opposite the mountainous portion = of=20 Cilicia, whence a lightly-equipped traveller may reach Sinope on the = Euxine in=20 five days by the direct route. Sinope lies opposite the place where the=20 Danube falls into the sea. My opinion = therefore=20 is that the Nile, as it traverses the whole of Libya, is of equal length with the = Danube. And here I take my leave of this = subject. [2.35] Concerning Egypt itself I shall extend my = remarks to a=20 great length, because there is no country that possesses so many = wonders, nor=20 any that has such a number of works which defy description. Not only is = the=20 climate different from that of the rest of the world, and the rivers = unlike any=20 other rivers, but the people also, in most of their manners and customs, = exactly=20 reverse the common practice of mankind. The women attend the markets and = trade,=20 while the men sit at home at the loom; and here, while the rest of the = world=20 works the woof up the warp, the Egyptians work it down; the women = likewise carry=20 burdens upon their shoulders, while the men carry them upon their heads. = They=20 eat their food out of doors in the streets, but retire for private = purposes to=20 their houses, giving as a reason that what is unseemly, but necessary, = ought to=20 be done in secret, but what has nothing unseemly about it, should be = done=20 openly. A woman cannot serve the priestly office, either for god or = goddess, but=20 men are priests to both; sons need not support their parents unless they = choose,=20 but daughters must, whether they choose or no. [2.36] In other countries the priests have long = hair, in=20 Egypt their heads are shaven; elsewhere it is customary, in mourning, = for near=20 relations to cut their hair close: the Egyptians, who wear no hair at = any other=20 time, when they lose a relative, let their beards and the hair of their = heads=20 grow long. All other men pass their lives separate from animals, the = Egyptians=20 have animals always living with them; others make barley and wheat their = food;=20 it is a disgrace to do so in Egypt, where the grain they live on is = spelt, which=20 some call zea. Dough they knead with their feet; but they mix mud, and = even take=20 up dirt, with their hands. They are the only people in the world- they = at least,=20 and such as have learnt the practice from them - who use circumcision. = Their men=20 wear two garments apiece, their women but one. They put on the rings and = fasten=20 the ropes to sails inside; others put them outside. When they write or=20 calculate, instead of going, like the Greeks, from left to right, they = move=20 their hand from right to left; and they insist, notwithstanding, that it = is they=20 who go to the right, and the Greeks who go to the left. They have two = quite=20 different kinds of writing, one of which is called sacred, the other = common.=20 [2.37] They are religious to excess, far beyond any = other=20 race of men, and use the following ceremonies:- They drink out of brazen = cups,=20 which they scour every day: there is no exception to this practice. They = wear=20 linen garments, which they are specially careful to have always fresh = washed.=20 They practise circumcision for the sake of cleanliness, considering it = better to=20 be cleanly than comely. The priests shave their whole body every other = day, that=20 no lice or other impure thing may adhere to them when they are engaged = in the=20 service of the gods. Their dress is entirely of linen, and their shoes = of the=20 papyrus plant: it is not lawful for them to wear either dress or shoes = of any=20 other material. They bathe twice every day in cold water, and twice each = night;=20 besides which they observe, so to speak, thousands of ceremonies. They = enjoy,=20 however, not a few advantages. They consume none of their own property, = and are=20 at no expense for anything; but every day bread is baked for them of the = sacred=20 grain, and a plentiful supply of beef and of goose's flesh is assigned = to each,=20 and also a portion of wine made from the grape. Fish they are not = allowed to=20 eat; and beans - which none of the Egyptians ever sow, or eat, if they = come up=20 of their own accord, either raw or boiled - the priests will not even = endure to=20 look on, since they consider it an unclean kind of pulse. Instead of a = single=20 priest, each god has the attendance of a college, at the head of which = is a=20 chief priest; when one of these dies, his son is appointed in his room. = [2.38] Male cattle are reckoned to belong to = Epaphus, and are=20 therefore tested in the following manner:- One of the priests appointed = for the=20 purpose searches to see if there is a single black hair on the whole = body, since=20 in that case the beast is unclean. He examines him all over, standing on = his=20 legs, and again laid upon his back; after which he takes the tongue out = of his=20 mouth, to see if it be clean in respect of the prescribed marks (what = they are I=20 will mention elsewhere); he also inspects the hairs of the tail, to = observe if=20 they grow naturally. If the animal is pronounced clean in all these = various=20 points, the priest marks him by twisting a piece of papyrus round his = horns, and=20 attaching thereto some sealing-clay, which he then stamps with his own=20 signet-ring. After this the beast is led away; and it is forbidden, = under the=20 penalty of death, to sacrifice an animal which has not been marked in = this way.=20 [2.39] The following is their manner of sacrifice:- = They lead=20 the victim, marked with their signet, to the altar where they are about = to offer=20 it, and setting the wood alight, pour a libation of wine upon the altar = in front=20 of the victim, and at the same time invoke the god. Then they slay the = animal,=20 and cutting off his head, proceed to flay the body. Next they take the = head, and=20 heaping imprecations on it, if there is a market-place and a body of = Greek=20 traders in the city, they carry it there and sell it instantly; if, = however,=20 there are no Greeks among them, they throw the head into the river. The=20 imprecation is to this effect:- They pray that if any evil is impending = either=20 over those who sacrifice, or over universal Egypt,=20 it may be made to fall upon that head. These practices, the imprecations = upon=20 the heads, and the libations of wine, prevail all over Egypt, and extend = to=20 victims of all sorts; and hence the Egyptians will never eat the head of = any=20 animal. [2.40] The disembowelling and burning are, however, = different=20 in different sacrifices. I will mention the mode in use with respect to = the=20 goddess whom they regard as the greatest, and honour with the chiefest = festival.=20 When they have flayed their steer they pray, and when their prayer is = ended they=20 take the paunch of the animal out entire, leaving the intestines and the = fat=20 inside the body; they then cut off the legs, the ends of the loins, the=20 shoulders, and the neck; and having so done, they fill the body of the = steer=20 with clean bread, honey, raisins, figs, frankincense, myrrh, and other=20 aromatics. Thus filled, they burn the body, pouring over it great = quantities of=20 oil. Before offering the sacrifice they fast, and while the bodies of = the=20 victims are being consumed they beat themselves. Afterwards, when they = have=20 concluded this part of the ceremony, they have the other parts of the = victim=20 served up to them for a repast. On Scythians: [4.2] Now the Scythians blind all their slaves, to = use them=20 in preparing their milk. The plan they follow is to thrust tubes made of = bone,=20 not unlike our musical pipes, up the vulva of the mare, and then to blow = into=20 the tubes with their mouths, some milking while the others blow. They = say that=20 they do this because when the veins of the animal are full of air, the = udder is=20 forced down. The milk thus obtained is poured into deep wooden casks, = about=20 which the blind slaves are placed, and then the milk is stirred round. = That=20 which rises to the top is drawn off, and considered the best part; the = under=20 portion is of less account. Such is the reason why the Scythians blind = all those=20 whom they take in war; it arises from their not being tillers of the = ground, but=20 a pastoral race. [4.59] Thus abundantly are the Scythians provided = with the=20 most important necessaries. Their manners and customs come now to be = described.=20 They worship only the following gods, namely, Vesta, whom they reverence = beyond=20 all the rest, Jupiter, and Tellus, whom they consider to be the wife of = Jupiter;=20 and after these Apollo, Celestial Venus, Hercules, and Mars. These gods = are=20 worshipped by the whole nation: the Royal Scythians offer sacrifice = likewise to=20 Neptune. In the Scythic tongue Vesta is called Tabiti, Jupiter (very = properly,=20 in my judgment) Papaeus, Tellus Apia, Apollo Oetosyrus, Celestial Venus=20 Artimpasa, and Neptune Thamimasadas. They use no images, altars, or = temples,=20 except in the worship of Mars; but in his worship they do use them. [4.60] The manner of their sacrifices is everywhere = and in=20 every case the same; the victim stands with its two fore-feet bound = together by=20 a cord, and the person who is about to offer, taking his station behind = the=20 victim, gives the rope a pull, and thereby throws the animal down; as it = falls=20 he invokes the god to whom he is offering; after which he puts a noose = round the=20 animal's neck, and, inserting a small stick, twists it round, and so = strangles=20 him. No fire is lighted, there is no consecration, and no pouring out of = drink-offerings; but directly after the beast is strangled the = sacrificer flays=20 him, and then sets to work to boil the flesh. [4.61] As Scythia, however, is utterly barren of = firewood, a=20 plan has had to be contrived for boiling the flesh, which is the = following.=20 After flaying the beasts, they take out all the bones, and (if they = possess such=20 gear) put the flesh into boilers made in the country, which are very = like the=20 cauldrons of the Lesbians, except that they are of a much larger size; = then=20 placing the bones of the animals beneath the cauldron, they set them = alight, and=20 so boil the meat. If they do not happen to possess a cauldron, they make = the=20 animal's paunch hold the flesh, and pouring in at the same time a little = water,=20 lay the bones under and light them. The bones burn beautifully; and the = paunch=20 easily contains all the flesh when it is stript from the bones, so that = by this=20 plan your ox is made to boil himself, and other victims also to do the = like.=20 When the meat is all cooked, the sacrificer offers a portion of the = flesh and of=20 the entrails, by casting it on the ground before him. They sacrifice all = sorts=20 of cattle, but most commonly horses. [4.62] Such are the victims offered to the other = gods, and=20 such is the mode in which they are sacrificed; but the rites paid to = Mars are=20 different. In every district, at the seat of government, there stands a = temple=20 of this god, whereof the following is a description. It is a pile of = brushwood,=20 made of a vast quantity of fagots, in length and breadth three furlongs; = in=20 height somewhat less, having a square platform upon the top, three sides = of=20 which are precipitous, while the fourth slopes so that men may walk up = it. Each=20 year a hundred and fifty wagon-loads of brushwood are added to the pile, = which=20 sinks continually by reason of the rains. An antique iron sword is = planted on=20 the top of every such mound, and serves as the image of Mars: yearly = sacrifices=20 of cattle and of horses are made to it, and more victims are offered = thus than=20 to all the rest of their gods. When prisoners are taken in war, out of = every=20 hundred men they sacrifice one, not however with the same rites as the = cattle,=20 but with different. Libations of wine are first poured upon their heads, = after=20 which they are slaughtered over a vessel; the vessel is then carried up = to the=20 top of the pile, and the blood poured upon the scimitar. While this = takes place=20 at the top of the mound, below, by the side of the temple, the right = hands and=20 arms of the slaughtered prisoners are cut off, and tossed on high into = the air.=20 Then the other victims are slain, and those who have offered the = sacrifice=20 depart, leaving the hands and arms where they may chance to have fallen, = and the=20 bodies also, separate. [4.63] Such are the observances of the Scythians = with respect=20 to sacrifice. They never use swine for the purpose, nor indeed is it = their wont=20 to breed them in any part of their country. [4.64] In what concerns war, their customs are the = following.=20 The Scythian soldier drinks the blood of the first man he overthrows in = battle.=20 Whatever number he slays, he cuts off all their heads, and carries them = to the=20 king; since he is thus entitled to a share of the booty, whereto he = forfeits all=20 claim if he does not produce a head. In order to strip the skull of its=20 covering, he makes a cut round the head above the ears, and, laying hold = of the=20 scalp, shakes the skull out; then with the rib of an ox he scrapes the = scalp=20 clean of flesh, and softening it by rubbing between the hands, uses it=20 thenceforth as a napkin. The Scyth is proud of these scalps, and hangs = them from=20 his bridle-rein; the greater the number of such napkins that a man can = show, the=20 more highly is he esteemed among them. Many make themselves cloaks, like = the=20 capotes of our peasants, by sewing a quantity of these scalps together. = Others=20 flay the right arms of their dead enemies, and make of the skin, which = stripped=20 off with the nails hanging to it, a covering for their quivers. Now the = skin of=20 a man is thick and glossy, and would in whiteness surpass almost all = other=20 hides. Some even flay the entire body of their enemy, and stretching it = upon a=20 frame carry it about with them wherever they ride. Such are the Scythian = customs=20 with respect to scalps and skins. [4.70] Oaths among the Scyths are accompanied with = the=20 following ceremonies: a large earthen bowl is filled with wine, and the = parties=20 to the oath, wounding themselves slightly with a knife or an awl, drop = some of=20 their blood into the wine; then they plunge into the mixture a scimitar, = some=20 arrows, a battle-axe, and a javelin, all the while repeating prayers; = lastly the=20 two contracting parties drink each a draught from the bowl, as do also = the chief=20 men among their followers. [4.71] The tombs of their kings are in the land of = the=20 Gerrhi, who dwell at the point where the Borysthenes is first navigable. = Here,=20 when the king dies, they dig a grave, which is square in shape, and of = great=20 size. When it is ready, they take the king's corpse, and, having opened = the=20 belly, and cleaned out the inside, fill the cavity with a preparation of = chopped=20 cypress, frankincense, parsley-seed, and anise-seed, after which they = sew up the=20 opening, enclose the body in wax, and, placing it on a wagon, carry it = about=20 through all the different tribes. On this procession each tribe, when it = receives the corpse, imitates the example which is first set by the = Royal=20 Scythians; every man chops off a piece of his ear, crops his hair close, = and=20 makes a cut all round his arm, lacerates his forehead and his nose, and = thrusts=20 an arrow through his left hand. Then they who have the care of the = corpse carry=20 it with them to another of the tribes which are under the Scythian rule, = followed by those whom they first visited. On completing the circuit of = all the=20 tribes under their sway, they find themselves in the country of the = Gerrhi, who=20 are the most remote of all, and so they come to the tombs of the kings. = There=20 the body of the dead king is laid in the grave prepared for it, = stretched upon a=20 mattress; spears are fixed in the ground on either side of the corpse, = and beams=20 stretched across above it to form a roof, which is covered with a = thatching of=20 osier twigs. In the open space around the body of the king they bury one = of his=20 concubines, first killing her by strangling, and also his cup-bearer, = his cook,=20 his groom, his lacquey, his messenger, some of his horses, firstlings of = all his=20 other possessions, and some golden cups; for they use neither silver nor = brass.=20 After this they set to work, and raise a vast mound above the grave, all = of them=20 vying with each other and seeking to make it as tall as possible. [4.72] When a year is gone by, further ceremonies = take place.=20 Fifty of the best of the late king's attendants are taken, all native = Scythians=20 - for, as bought slaves are unknown in the country, the Scythian kings = choose=20 any of their subjects that they like, to wait on them - fifty of these = are taken=20 and strangled, with fifty of the most beautiful horses. When they are = dead,=20 their bowels are taken out, and the cavity cleaned, filled full of = chaff, and=20 straightway sewn up again. This done, a number of posts are driven into = the=20 ground, in sets of two pairs each, and on every pair half the felly of a = wheel=20 is placed archwise; then strong stakes are run lengthways through the = bodies of=20 the horses from tail to neck, and they are mounted up upon the fellies, = so that=20 the felly in front supports the shoulders of the horse, while that = behind=20 sustains the belly and quarters, the legs dangling in mid-air; each = horse is=20 furnished with a bit and bridle, which latter is stretched out in front = of the=20 horse, and fastened to a peg. The fifty strangled youths are then = mounted=20 severally on the fifty horses. To effect this, a second stake is passed = through=20 their bodies along the course of the spine to the neck; the lower end of = which=20 projects from the body, and is fixed into a socket, made in the stake = that runs=20 lengthwise down the horse. The fifty riders are thus ranged in a circle = round=20 the tomb, and so left. [4.73] Such, then, is the mode in which the kings = are buried:=20 as for the people, when any one dies, his nearest of kin lay him upon a = wagon=20 and take him round to all his friends in succession: each receives them = in turn=20 and entertains them with a banquet, whereat the dead man is served with = a=20 portion of all that is set before the others; this is done for forty = days, at=20 the end of which time the burial takes place. After the burial, those = engaged in=20 it have to purify themselves, which they do in the following way. First = they=20 well soap and wash their heads; then, in order to cleanse their bodies, = they act=20 as follows: they make a booth by fixing in the ground three sticks = inclined=20 towards one another, and stretching around them woolen felts, which they = arrange=20 so as to fit as close as possible: inside the booth a dish is placed = upon the=20 ground, into which they put a number of red-hot stones, and then add = some=20 hemp-seed. [4.74] Hemp grows in Scythia: it is very like flax; = only that=20 it is a much coarser and taller plant: some grows wild about the = country, some=20 is produced by cultivation: the Thracians make garments of it which = closely=20 resemble linen; so much so, indeed, that if a person has never seen hemp = he is=20 sure to think they are linen, and if he has, unless he is very = experienced in=20 such matters, he will not know of which material they are. [4.75] The Scythians, as I said, take some of this = hemp-seed,=20 and, creeping under the felt coverings, throw it upon the red-hot = stones;=20 immediately it smokes, and gives out such a vapour as no Grecian = vapour-bath can=20 exceed; the Scyths, delighted, shout for joy, and this vapour serves = them=20 instead of a water-bath; for they never by any chance wash their bodies = with=20 water. Their women make a mixture of cypress, cedar, and frankincense = wood,=20 which they pound into a paste upon a rough piece of stone, adding a = little water=20 to it. With this substance, which is of a thick consistency, they = plaster their=20 faces all over, and indeed their whole bodies. A sweet odour is thereby = imparted=20 to them, and when they take off the plaster on the day following, their = skin is=20 clean and glossy. ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/blackboard/content/contentWrapper.jsp?attachment=true&navItem=content&content_id=_2356318_1&displayName=Herodotus&course_id=_702465_1&href=/courses/1/HIS_1000_0909_001/content/_2356318_1/Herodotus.htm ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/javascript/date.js?v=9.0.440.7 // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D // Author: Matt Kruse // WWW: http://www.mattkruse.com/ // // NOTICE: You may use this code for any purpose, commercial or // private, without any further permission from the author. You may // remove this notice from your final code if you wish, however it is // appreciated by the author if at least my web site address is kept. // // You may *NOT* re-distribute this code in any way except through its // use. That means, you can include it in your product, or your web // site, or any other form where the code is actually being used. You // may not put the plain javascript up on your site for download or // include it in your javascript libraries for download.=20 // If you wish to share this code with others, please just point them // to the URL instead. // Please DO NOT link directly to my .js files from your site. Copy // the files to your server and use them there. Thank you. // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D // HISTORY // ------------------------------------------------------------------ // May 17, 2003: Fixed bug in parseDate() for dates <1970 // March 11, 2003: Added parseDate() function // March 11, 2003: Added "NNN" formatting option. Doesn't match up // perfectly with SimpleDateFormat formats, but=20 // backwards-compatability was required. // ------------------------------------------------------------------ // These functions use the same 'format' strings as the=20 // java.text.SimpleDateFormat class, with minor exceptions. // The format string consists of the following abbreviations: //=20 // Field | Full Form | Short Form // -------------+--------------------+----------------------- // Year | yyyy (4 digits) | yy (2 digits), y (2 or 4 digits) // Month | MMM (name or abbr.)| MM (2 digits), M (1 or 2 digits) // | NNN (abbr.) | // Day of Month | dd (2 digits) | d (1 or 2 digits) // Day of Week | EE (name) | E (abbr) // Hour (1-12) | hh (2 digits) | h (1 or 2 digits) // Hour (0-23) | HH (2 digits) | H (1 or 2 digits) // Hour (0-11) | KK (2 digits) | K (1 or 2 digits) // Hour (1-24) | kk (2 digits) | k (1 or 2 digits) // Minute | mm (2 digits) | m (1 or 2 digits) // Second | ss (2 digits) | s (1 or 2 digits) // AM/PM | a | // // NOTE THE DIFFERENCE BETWEEN MM and mm! Month=3DMM, not mm! // Examples: // "MMM d, y" matches: January 01, 2000 // Dec 1, 1900 // Nov 20, 00 // "M/d/yy" matches: 01/20/00 // 9/2/00 // "MMM dd, yyyy hh:mm:ssa" matches: "January 01, 2000 12:30:45AM" // ------------------------------------------------------------------ var MONTH_NAMES=3Dnew = Array('January','February','March','April','May','June','July','August','= September','October','November','December','Jan','Feb','Mar','Apr','May',= 'Jun','Jul','Aug','Sep','Oct','Nov','Dec'); var DAY_NAMES=3Dnew = Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturd= ay','Sun','Mon','Tue','Wed','Thu','Fri','Sat'); function LZ(x) {return(x<0||x>9?"":"0")+x} // ------------------------------------------------------------------ // isDate ( date_string, format_string ) // Returns true if date string matches format of format string and // is a valid date. Else returns false. // It is recommended that you trim whitespace around the value before // passing it to this function, as whitespace is NOT ignored! // ------------------------------------------------------------------ function isDate(val,format) { var date=3DgetDateFromFormat(val,format); if (date=3D=3D0) { return false; } return true; } // ------------------------------------------------------------------- // compareDates(date1,date1format,date2,date2format) // Compare two date strings to see which is greater. // Returns: // 1 if date1 is greater than date2 // 0 if date2 is greater than date1 of if they are the same // -1 if either of the dates is in an invalid format // ------------------------------------------------------------------- function compareDates(date1,dateformat1,date2,dateformat2) { var d1=3DgetDateFromFormat(date1,dateformat1); var d2=3DgetDateFromFormat(date2,dateformat2); if (d1=3D=3D0 || d2=3D=3D0) { return -1; } else if (d1 > d2) { return 1; } return 0; } // ------------------------------------------------------------------ // formatDate (date_object, format) // Returns a date in the output format specified. // The format string uses the same abbreviations as in = getDateFromFormat() // ------------------------------------------------------------------ function formatDate(date,format) { format=3Dformat+""; var result=3D""; var i_format=3D0; var c=3D""; var token=3D""; var y=3Ddate.getYear()+""; var M=3Ddate.getMonth()+1; var d=3Ddate.getDate(); var E=3Ddate.getDay(); var H=3Ddate.getHours(); var m=3Ddate.getMinutes(); var s=3Ddate.getSeconds(); var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k; // Convert real date parts into formatted versions var value=3Dnew Object(); if (y.length < 4) {y=3D""+(y-0+1900);} value["y"]=3D""+y; value["yyyy"]=3Dy; value["yy"]=3Dy.substring(2,4); value["M"]=3DM; value["MM"]=3DLZ(M); value["MMM"]=3DMONTH_NAMES[M-1]; value["NNN"]=3DMONTH_NAMES[M+11]; value["d"]=3Dd; value["dd"]=3DLZ(d); value["E"]=3DDAY_NAMES[E+7]; value["EE"]=3DDAY_NAMES[E]; value["H"]=3DH; value["HH"]=3DLZ(H); if (H=3D=3D0){value["h"]=3D12;} else if (H>12){value["h"]=3DH-12;} else {value["h"]=3DH;} value["hh"]=3DLZ(value["h"]); if (H>11){value["K"]=3DH-12;} else {value["K"]=3DH;} value["k"]=3DH+1; value["KK"]=3DLZ(value["K"]); value["kk"]=3DLZ(value["k"]); if (H > 11) { value["a"]=3D"PM"; } else { value["a"]=3D"AM"; } value["m"]=3Dm; value["mm"]=3DLZ(m); value["s"]=3Ds; value["ss"]=3DLZ(s); while (i_format < format.length) { c=3Dformat.charAt(i_format); token=3D""; while ((format.charAt(i_format)=3D=3Dc) && (i_format < format.length)) = { token +=3D format.charAt(i_format++); } if (value[token] !=3D null) { result=3Dresult + value[token]; } else { result=3Dresult + token; } } return result; } =09 // ------------------------------------------------------------------ // Utility functions for parsing in getDateFromFormat() // ------------------------------------------------------------------ function _isInteger(val) { var digits=3D"1234567890"; for (var i=3D0; i < val.length; i++) { if (digits.indexOf(val.charAt(i))=3D=3D-1) { return false; } } return true; } function _getInt(str,i,minlength,maxlength) { for (var x=3Dmaxlength; x>=3Dminlength; x--) { var token=3Dstr.substring(i,i+x); if (token.length < minlength) { return null; } if (_isInteger(token)) { return token; } } return null; } =09 // ------------------------------------------------------------------ // getDateFromFormat( date_string , format_string ) // // This function takes a date string and a format string. It matches // If the date string matches the format string, it returns the=20 // getTime() of the date. If it does not match, it returns 0. // ------------------------------------------------------------------ function getDateFromFormat(val,format) { val=3Dval+""; format=3Dformat+""; var i_val=3D0; var i_format=3D0; var c=3D""; var token=3D""; var token2=3D""; var x,y; var now=3Dnew Date(); var year=3Dnow.getYear(); var month=3Dnow.getMonth()+1; var date=3D1; var hh=3Dnow.getHours(); var mm=3Dnow.getMinutes(); var ss=3Dnow.getSeconds(); var ampm=3D""; =09 while (i_format < format.length) { // Get next token from format string c=3Dformat.charAt(i_format); token=3D""; while ((format.charAt(i_format)=3D=3Dc) && (i_format < format.length)) = { token +=3D format.charAt(i_format++); } // Extract contents of value based on format token if (token=3D=3D"yyyy" || token=3D=3D"yy" || token=3D=3D"y") { if (token=3D=3D"yyyy") { x=3D4;y=3D4; } if (token=3D=3D"yy") { x=3D2;y=3D2; } if (token=3D=3D"y") { x=3D2;y=3D4; } year=3D_getInt(val,i_val,x,y); if (year=3D=3Dnull) { return 0; } i_val +=3D year.length; if (year.length=3D=3D2) { if (year > 70) { year=3D1900+(year-0); } else { year=3D2000+(year-0); } } } else if (token=3D=3D"MMM"||token=3D=3D"NNN"){ month=3D0; for (var i=3D0; i11)) { month=3Di+1; if (month>12) { month -=3D 12; } i_val +=3D month_name.length; break; } } } if ((month < 1)||(month>12)){return 0;} } else if (token=3D=3D"EE"||token=3D=3D"E"){ for (var i=3D0; i12)){return 0;} i_val+=3Dmonth.length;} else if (token=3D=3D"dd"||token=3D=3D"d") { date=3D_getInt(val,i_val,token.length,2); if(date=3D=3Dnull||(date<1)||(date>31)){return 0;} i_val+=3Ddate.length;} else if (token=3D=3D"hh"||token=3D=3D"h") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<1)||(hh>12)){return 0;} i_val+=3Dhh.length;} else if (token=3D=3D"HH"||token=3D=3D"H") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<0)||(hh>23)){return 0;} i_val+=3Dhh.length;} else if (token=3D=3D"KK"||token=3D=3D"K") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<0)||(hh>11)){return 0;} i_val+=3Dhh.length;} else if (token=3D=3D"kk"||token=3D=3D"k") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<1)||(hh>24)){return 0;} i_val+=3Dhh.length;hh--;} else if (token=3D=3D"mm"||token=3D=3D"m") { mm=3D_getInt(val,i_val,token.length,2); if(mm=3D=3Dnull||(mm<0)||(mm>59)){return 0;} i_val+=3Dmm.length;} else if (token=3D=3D"ss"||token=3D=3D"s") { ss=3D_getInt(val,i_val,token.length,2); if(ss=3D=3Dnull||(ss<0)||(ss>59)){return 0;} i_val+=3Dss.length;} else if (token=3D=3D"a") { if (val.substring(i_val,i_val+2).toLowerCase()=3D=3D"am") = {ampm=3D"AM";} else if (val.substring(i_val,i_val+2).toLowerCase()=3D=3D"pm") = {ampm=3D"PM";} else {return 0;} i_val+=3D2;} else { if (val.substring(i_val,i_val+token.length)!=3Dtoken) {return 0;} else {i_val+=3Dtoken.length;} } } // If there are any trailing characters left in the value, it doesn't = match if (i_val !=3D val.length) { return 0; } // Is date valid for month? if (month=3D=3D2) { // Check for leap year if ( ( (year%4=3D=3D0)&&(year%100 !=3D 0) ) || (year%400=3D=3D0) ) { = // leap year if (date > 29){ return 0; } } else { if (date > 28) { return 0; } } } if ((month=3D=3D4)||(month=3D=3D6)||(month=3D=3D9)||(month=3D=3D11)) { if (date > 30) { return 0; } } // Correct hours value if (hh<12 && ampm=3D=3D"PM") { hh=3Dhh-0+12; } else if (hh>11 && ampm=3D=3D"AM") { hh-=3D12; } var newdate=3Dnew Date(year,month-1,date,hh,mm,ss); return newdate.getTime(); } // ------------------------------------------------------------------ // parseDate( date_string [, prefer_euro_format] ) // // This function takes a date string and tries to match it to a // number of possible date formats to get the value. It will try to // match against the following international formats, in this order: // y-M-d MMM d, y MMM d,y y-MMM-d d-MMM-y MMM d // M/d/y M-d-y M.d.y MMM-d M/d M-d // d/M/y d-M-y d.M.y d-MMM d/M d-M // A second argument may be passed to instruct the method to search // for formats like d/M/y (european format) before M/d/y (American). // Returns a Date object or null if no patterns match. // ------------------------------------------------------------------ function parseDate(val) { var preferEuro=3D(arguments.length=3D=3D2)?arguments[1]:false; generalFormats=3Dnew Array('y-M-d','MMM d, y','MMM = d,y','y-MMM-d','d-MMM-y','MMM d'); monthFirst=3Dnew Array('M/d/y','M-d-y','M.d.y','MMM-d','M/d','M-d'); dateFirst =3Dnew Array('d/M/y','d-M-y','d.M.y','d-MMM','d/M','d-M'); var checkList=3Dnew = Array('generalFormats',preferEuro?'dateFirst':'monthFirst',preferEuro?'mo= nthFirst':'dateFirst'); var d=3Dnull; for (var i=3D0; i 0 ) { oneRowHeight =3D = this.table.rows[this.table.rows.length-1].offsetHeight + 1 /*border = spacing*/; } //need to account for the wider header row var h =3D Math.max(this.options.tableHeight, ( ( = this.model.getMinimumRows() + 1 ) * oneRowHeight + 10 ) ); h =3D Math.min( h, this.table.offsetHeight+19 ); var w =3D Math.min(this.options.tableWidth, = this.table.offsetWidth+19); contDiv.style.height =3D h + "px"; contDiv.style.width =3D w + "px"; contDiv.style.overflow =3D "auto"; }, _initializeHTML: function() { this._sizeHTMLTable(); // wrap table with a new container div: relative see IE7 bug: = http://rowanw.com/bugs/overflow_relative.htm this.table.insert({before: ""}); this.table.previousSibling.appendChild(this.table); if (this.options.accessibleMode) { this.setAccessibleViewportSize( ); return; } // wrap table with a new viewport div this.table.insert({before: ""}); this.table.previousSibling.appendChild(this.table); var viewportDiv =3D $(this.tableId+'_viewport'); viewportDiv.style.height =3D (this.table.offsetHeight) + "px"; viewportDiv.style.overflow =3D "hidden"; =09 // add controllers to table cells var tableHeader =3D $(this.table.id + '_header'); if (tableHeader) { var numHCols =3D tableHeader.rows[0].cells.length; for (var c =3D 0; c < numHCols; c++) { new Gradebook.CellController(tableHeader.rows[0].cells[c], = this, 0, c, true); } } var numRows =3D this.table.rows.length; for (var r =3D 0; r < numRows; r++) { var numCols =3D this.table.rows[0].cells.length; for (var c =3D 0; c < numCols; c++) { var cell =3D this.table.rows[r].cells[c]; new Gradebook.CellController(cell, this, r, c, false); } } if (document.onClickHandler){ Event.stopObserving(document,'click',document.onClickHandler); } document.onClickHandler =3D = this.onDocumentClickHandler.bindAsEventListener(this); Event.observe(document,'click',document.onClickHandler); =09 if (document.onKeydownHandler){ Event.stopObserving(document,'keydown',document.onKeydownHandler); } document.onKeydownHandler =3D = this.onDocumentKeyDownHandler.bindAsEventListener(this); Event.observe(document,'keydown',document.onKeydownHandler); }, unload: function() { Gradebook.CellController.prototype.removeAllSavingDivs(); var numRows =3D this.table.rows.length; for (var r =3D 0; r < numRows; r++){ var numCols =3D this.table.rows[0].cells.length; for (var c =3D 0; c < numCols; c++){ var cell =3D this.table.rows[r].cells[c]; if (cell.controller) { cell.controller.unload(); } } } var tableHeader =3D $(this.table.id + '_header'); if (tableHeader){ var numHCols =3D tableHeader.rows[0].cells.length; for (var c =3D 0; c < numHCols; c++){ var cell =3D tableHeader.rows[0].cells[c]; if (cell.controller) { cell.controller.unload(); } } } if (this.viewPort) this.viewPort.unload(); this.model.removeModelListeners(); this.table =3D null; this.model =3D null; this.viewPort =3D null; this.options =3D null; this.sortCell =3D null; }, _sizeHTMLTable: function() { var tbl =3D this.table; var tableHeader =3D $(this.table.id + '_header'); var numRows =3D 0; var numCols =3D 0; =20 var numFrozenColumns =3D this.options.numFrozenColumns; // presence of th impacts the calculation of the row height // so we remove it before the calculation occurs if (numFrozenColumns =3D=3D 0){ for (var i=3D0; i=3D numCols){ numFrozenColumns =3D numCols-1; this.options.numFrozenColumns =3D numFrozenColumns; } =09 // assumes the table has at least 1 row & 2 cols // the first column is a frozen column // the second column is a non-frozen column // clone frozen columns for (var i =3D 0; i < numFrozenColumns-1; i++){ this._cloneColumn(1); // skip check box column } // clone non-frozen columns var numNonFrozenColumns =3D numCols - numFrozenColumns - 1; for (var i =3D 0; i < numNonFrozenColumns; i++){ this._cloneColumn(numFrozenColumns+1); // skip check box column } =09 var checkColumnWidth =3D this.table.rows[0].cells[0].offsetWidth; var visibleWidth =3D this.table.offsetWidth; this.avgColWidth =3D (visibleWidth - checkColumnWidth)/numCols; var frozenWidth =3D (numFrozenColumns * this.avgColWidth) + = checkColumnWidth; $("selectedRows").style.width=3Dthis.isIE?frozenWidth + "px": = frozenWidth-2 +"px"; =09 =09 // clone rows var numRowsToAdd =3D numRows - tbl.rows.length; if (tableHeader) numRowsToAdd--; =09 var rowToClone =3D tbl.rows[this.table.rows.length-1]; for (var i =3D 0; i < numRowsToAdd; i++){ tbl.tBodies[0].appendChild(rowToClone.cloneNode(true)); } // remove table rows if html table is bigger than numRows while (tbl.rows.length > numRows){ if (tbl.rows.length > 0) tbl.deleteRow(tbl.rows.length - 1); } // remove table columns if html table is bigger than model var allRows =3D tbl.rows;=09 while (tbl.rows.length > 0 && tbl.rows[0].cells.length-1 > = this.model.getNumColDefs()){ for (var i=3D0; i 1) { allRows[i].deleteCell(-1); } } } while (tableHeader && tableHeader.rows[0].cells.length-1 > = this.model.getNumColDefs()){ tableHeader.rows[0].deleteCell(-1); } }, _cloneColumn: function(colIndex){ var tbl =3D this.table; for (var i =3D 0; i < tbl.rows.length; i++) { var origCell =3D tbl.rows[i].cells[colIndex];=20 var newCell =3D origCell.cloneNode(true); tbl.rows[i].insertBefore(newCell,origCell); } var tableHeader =3D $(this.table.id + '_header'); if (tableHeader){ var tbl =3D tableHeader; for (var i =3D 0; i < tbl.rows.length; i++) { var origCell =3D tbl.rows[i].cells[colIndex];=20 var newCell =3D origCell.cloneNode(true); tbl.rows[i].insertBefore(newCell,origCell); } } }, =20 _setAccessibilityHeaders: function(){ if (!this.options.accessibleMode){ return; } var tbl =3D this.table; // add abbr attributes to all header cells var hdrRow =3D tbl.rows[0]; for ( var i =3D 1; i < hdrRow.cells.length; i++ ) { var cell =3D hdrRow.cells[i]; cell.abbr =3D cell.controller.getGridCell().getName(); } tbl.rows[0].cells[0].abbr =3D " "; var abbrColIndexs =3D this.getAbbrColIndexs(); =09 if ( tbl.rows.length > 1 && tbl.rows[1].cells.length > 1 )=20 { for ( var i =3D 1; i < tbl.rows.length; i++ )=20 { abbrColIndexs.each(function(idx) { var cell =3D tbl.rows[i].cells[ idx + 1 ]; // skip checkbox = cell cell.abbr =3D cell.controller.getGridCell().getValue(); cell.scope =3D 'row'; }); } } }, =20 getAbbrColIndexs: function()=20 { if ( !this.abbrColIndexs ) { this.abbrColIndexs =3D new Array(); /* Add abbr attributes to specific columns to allow screen readers to=20 announce meaningful column headers based on the following rules: =09 1. If both first and last name are visible, use those. 2. If the username is visible, use that. 3. If neither of the first cases pass, use the first column as the = header.=20 */ var lastNameColIndex =3D this.model.getVisibleColDefIndex('LN'); var firstNameColIndex =3D this.model.getVisibleColDefIndex('FN'); var userNameColIndex =3D this.model.getVisibleColDefIndex('UN'); if ( lastNameColIndex !=3D -1 && firstNameColIndex !=3D -1 ) { this.abbrColIndexs.push( lastNameColIndex );=20 this.abbrColIndexs.push( firstNameColIndex ); } else if ( userNameColIndex !=3D -1 ) { this.abbrColIndexs.push( userNameColIndex ); } else { this.abbrColIndexs.push( 0 ); } } return this.abbrColIndexs; }, =20 onDocumentClickHandler: function(evt) { if ( document.ignoreOnClick ) return; Gradebook.CellController.prototype.closePopupsAndRestoreFocus(evt); }, onDocumentKeyDownHandler: function(evt) { GradebookUtil.debug('onDocumentKeyDownHandler keyCode =3D = '+evt.keyCode); if (!Gradebook.CellController.prototype.tableHasFocus) return; var ek=3Devt.keyCode; var visibleRowCount =3D this.viewPort.getNumVisibleRows(); var deltaRow =3D 0; var deltaCol =3D 0; /* * the model grid cell index is R2L agnostic: thus moving right in L2R = is moving towards the next col (+1),=20 * while in R2L it is going towards the previous col (-1). */ switch (ek) { case (Event.KEY_LEFT): deltaCol =3D page.util.isRTL()?1:-1; break; case (Event.KEY_RIGHT): deltaCol =3D page.util.isRTL()?-1:1; break; case (Event.KEY_UP): deltaRow =3D -1; break; case (Event.KEY_DOWN): deltaRow =3D 1; break; case (33/* page up */): if ( !this.options.accessibleMode ) deltaRow = =3D -visibleRowCount; break; case (34/* page down */): if ( !this.options.accessibleMode ) = deltaRow =3D visibleRowCount; break; case (Event.KEY_TAB): if ( !Gradebook.CellController.currentSelectedCell || !Element.descendantOf( evt.element(), = Gradebook.CellController.currentSelectedCell.controller.htmlCell ) ) = break; if ( evt.shiftKey ) { if ( !evt.element().hasClassName('cmimg') && !this.isFirstCell() = ) deltaCol =3D -1; break; } else if ( !this.isLastCell() && ( evt.element().hasClassName('cmimg') || = this.isCurrentCellWithoutMenu() ) ) { deltaCol =3D 1; } break; } if (deltaRow =3D=3D 0 && deltaCol =3D=3D 0) { return; } else { Event.stop( evt ); this.selectRelativeCell(deltaRow, deltaCol); Gradebook.CellController.prototype.closePopups(evt); } }, =09 isLastCell: function() { if ( Gradebook.CellController.currentSelectedCell =3D=3D null ) = return false; // last cell if it is the last displayed cell with no more scroll = available right or down var nextSelectedCol =3D = Gradebook.CellController.currentSelectedCell.controller.col; var nextSelectedRow =3D = Gradebook.CellController.currentSelectedCell.controller.row+1; return ( nextSelectedCol >=3D this.viewPort.numVisibleCols ) && ( nextSelectedRow >=3D this.viewPort.numVisibleRows ) && ( ( this.viewPort.lastRowPos/*offset*/ + = this.viewPort.numVisibleRows ) =3D=3D this.model.getNumRows() ) &&=20 ( ( this.viewPort.colOffset + this.viewPort.numVisibleCols ) = =3D=3D this.model.getNumColDefs() ); }, isFirstCell: function() { if ( Gradebook.CellController.currentSelectedCell =3D=3D null ) = return false; return ( = Gradebook.CellController.currentSelectedCell.controller.col=3D=3D1/*check= box*/ && = Gradebook.CellController.currentSelectedCell.controller.row=3D=3D0 && ( !this.viewPort.scrollerDiv /*null if no vertical scroll*/ = || this.viewPort.scrollerDiv.scrollTop =3D=3D 0 ) ); }, isCurrentCellWithoutMenu: function() { // the only cell type that does not display a context menu are = calculated columns if ( Gradebook.CellController.currentSelectedCell =3D=3D null ) = return false; var gridCell =3D = Gradebook.CellController.currentSelectedCell.controller.getGridCell(); if ( !gridCell ) return true; return gridCell.isGrade() && !gridCell.canEdit();=20 }, =09 selectRelativeCell: function(deltaRow, deltaCol) { var visibleRowCount =3D this.viewPort.getNumVisibleRows(); var visibleColumnCount =3D this.viewPort.getNumVisibleCols(); var modelRowCount =3D this.model.getNumRows(); var modelColumnCount =3D this.model.getNumColDefs(); var cellController =3D this.currentCellController; if (Gradebook.CellController.currentSelectedCell !=3D null){ cellController =3D = Gradebook.CellController.currentSelectedCell.controller; } var currentSelectedRow =3D cellController.row; var currentSelectedCol =3D cellController.col - 1; // skip checkbox = col var selectDelay =3D 100; currentSelectedRow +=3D deltaRow; if (currentSelectedRow < 0 || currentSelectedRow >=3D = visibleRowCount){ currentSelectedRow -=3D deltaRow; selectDelay =3D 500; // need longer delay to select cell until scroll = completes if (this.viewPort.scrollRows(deltaRow ) =3D=3D false) { if (deltaRow < 0){=20 // wrap to bottom of previous col if (currentSelectedCol =3D=3D 0) return; deltaRow =3D modelRowCount - visibleRowCount; currentSelectedRow =3D visibleRowCount - 1; currentSelectedCol -=3D 1; } else { // wrap to top of next col deltaRow =3D visibleRowCount - modelRowCount; currentSelectedRow =3D 0; if (currentSelectedCol < visibleColumnCount-1){=20 currentSelectedCol +=3D 1; } else { this.viewPort.scrollCols(1); }=20 } this.viewPort.scrollRows(deltaRow); } } currentSelectedCol +=3D deltaCol; if ((currentSelectedCol < this.options.numFrozenColumns && deltaCol < = 0) || currentSelectedCol >=3D visibleColumnCount){ currentSelectedCol -=3D deltaCol; selectDelay =3D 500; // need longer delay to select cell until scroll = completes if (this.viewPort.scrollCols( deltaCol ) =3D=3D false) { if (deltaCol < 0){=20 if (currentSelectedCol > 0) { // navigate in frozen columns currentSelectedCol +=3D deltaCol; } else { // wrap to end of previous row if (currentSelectedRow =3D=3D 0) return; deltaCol =3D modelColumnCount - visibleColumnCount; currentSelectedCol =3D visibleColumnCount - 1; currentSelectedRow -=3D 1; } } else { // wrap to beginning of next row deltaCol =3D visibleColumnCount - modelColumnCount; currentSelectedCol =3D 0; if (currentSelectedRow < visibleRowCount-1){=20 currentSelectedRow +=3D 1; } else { this.viewPort.scrollRows(1); }=20 } this.viewPort.scrollCols(deltaCol); } } // select the current cell after servicing the main event loop to = allow current events to complete // this was needed for AS-110508 to apply the left/right arrow event = to cell navigation only and not to cell editing too. this.currentCellController =3D = this.table.rows[currentSelectedRow].cells[currentSelectedCol+1].controlle= r; setTimeout(this.selectCell.bind(this), selectDelay ); }, =09 selectCell: function() { this.currentCellController.selectCell(); }, sortColumn: function(newSortCell,sortDir) { if (newSortCell !=3D this.sortCell) { this.sortDir =3D 'ASC'; if (this.sortCell) { this.sortCell.setSortImage('NO_SORT'); // remove current sort image } } else { this.sortDir =3D (this.sortDir =3D=3D 'ASC')?'DESC':'ASC'; // toggle } if (sortDir){ this.sortDir =3D sortDir; } this.sortCell =3D newSortCell; this.sortCell.setSortImage(this.sortDir); // show new sort image =09 // sort the model this.modelSortIndex =3D = this.viewPort.toModelIndex(this.sortCell.col-1); // skip checkbox column this.model.sort(this.modelSortIndex,this.sortDir); =09 // refresh the view this.viewPort.moveScroll(0); this.viewPort.refreshContents(0); }, updateSortImage: function(){ if (!this.viewPort){ return; } if (this.sortCell) { this.sortCell.setSortImage('NO_SORT'); // remove current sort image } var viewSortIndex =3D this.viewPort.toViewIndex(this.modelSortIndex); if (viewSortIndex < 0){ this.sortCell =3D null; } else { var headerTable =3D $(this.table.id + '_header'); if (!headerTable){ return; } this.sortCell =3D = headerTable.rows[0].cells[viewSortIndex+1].controller; // add 1 to = account for check column =09 this.sortCell.setSortImage(this.sortDir); } }, =09 //focused is restored only in AX view since user has to leave the page = for update restoreFocus: function() { if ( !this.options || !this.options.accessibleMode || = !Gradebook.getModel().lastFocusedRow || = !Gradebook.getModel().lastFocusedCol ) return; if ( GradebookUtil.isIE() ) { setTimeout(this.doRestoreFocus.bind(this), 0 ); } else { this.doRestoreFocus(); } }, =09 doRestoreFocus: function() { var lastFocusedRow =3D Gradebook.getModel().lastFocusedRow; var lastFocusedCol =3D Gradebook.getModel().lastFocusedCol; = this.table.rows[lastFocusedRow].cells[lastFocusedCol].controller.selectCe= ll(); Gradebook.getModel().lastFocusedRow =3D null; Gradebook.getModel().lastFocusedCell =3D null; } =09 }; //Gradebook.GridViewPort = -------------------------------------------------- Gradebook.GridViewPort =3D Class.create(); Gradebook.GridViewPort.prototype =3D { initialize: function(table, model, options,grid) { this.isIE =3D GradebookUtil.isIE(); this.isNS7 =3D GradebookUtil.isNS7(); this.table =3D table; this.model =3D model; this.options =3D options; this.grid =3D grid; this.lastPixelOffset =3D 0; this.colOffset =3D 0; this.lastRowPos =3D 0; this.startScrollLeft =3D 0; this.headerTableId =3D this.table.id + '_header'; this.headerTable =3D $(this.headerTableId); if (!this.headerTable)=20 this.headerTable =3D this.table; this.numVisibleRows =3D this.table.rows.length; if ( this.headerTable.rows[0] ) { this.numVisibleCols =3D this.headerTable.rows[0].cells.length-1; // = don't include check column } this.rowHeight =3D this.table.offsetHeight/this.numVisibleRows; this.div =3D this.table.parentNode; this.initScrollers(); }, unload: function() { this.grid =3D null; this.model =3D null; this.table =3D null; this.headerTable =3D null; this.div =3D null; this.scrollerDiv =3D null; this.heightDiv =3D null; this.scrollerDivH =3D null; this.widthDiv =3D null; this.options =3D null; }, =09 modelChanged: function() { this.refreshContentsH(); }, =09 getModelGridCell: function(row, col) { // in accessibleMode, row 0 is header, so we need to compensate to get = model row if (this.options.accessibleMode && row > 0){ row -=3D 1; } if (col > 0) col -=3D 1; // skip check col if (col >=3D this.options.numFrozenColumns)=20 col +=3D this.colOffset;=20 var iterators =3D this.model.getRowIterators(row+this.lastRowPos, 1, = col); if (!iterators || iterators.length !=3D 1 || !iterators[0].hasNext()){ GradebookUtil.error('getModelGridCell cannot get grid cell for row: = '+ row+' col: '+col); } return iterators[0].next(); }, getHeaderGridCell: function(col) { if (col > 0) col -=3D 1; // skip check col if (col >=3D this.options.numFrozenColumns)=20 col +=3D this.colOffset;=20 var iterator =3D this.model.getColDefIterator(col); if (!iterator || !iterator.hasNext()){ GradebookUtil.error('getHeaderGridCell cannot get header cell for = col: '+col); } return iterator.next(); }, getNumVisibleRows: function() { return this.numVisibleRows; }, getNumVisibleCols: function() { return this.numVisibleCols; }, populateRow: function(htmlRow, frozenColRowIterator, = scrollableColRowIterator) { var numFrozenColumns =3D this.options.numFrozenColumns; for (var j=3D0; j < (this.numVisibleCols); j++) { var iterator =3D (j < = numFrozenColumns)?frozenColRowIterator:scrollableColRowIterator; var gridCell =3D iterator.next(); var htmlCell =3D htmlRow.cells[j+1]; // set check box column based on isRowChecked flag for first grid = cell if (j =3D=3D 0){ var checkInput =3D = GradebookUtil.getChildElementByClassName(htmlRow.cells[0], 'input', = 'checkInput'); checkInput.checked =3D gridCell.isRowChecked(); } htmlCell.controller.renderHTML(gridCell); } }, =20 refreshContents: function(rowOffset) { if (this.model.getNumRows() =3D=3D 0) return; if (this.options.accessibleMode){ this.refreshAccessibleContents(); return; } Gradebook.CellController.prototype.hideAllSavingDivs(); var numRows =3D this.numVisibleRows; var numModelRows =3D this.model.getNumRows(); if (rowOffset + numRows > numModelRows) rowOffset =3D numModelRows - numRows - 1 var numFrozenColumns =3D this.options.numFrozenColumns; var frozenColRowIterators =3D this.model.getRowIterators(rowOffset, = numRows, 0); var scrollableColRowIterators =3D frozenColRowIterators; if (this.numVisibleCols > numFrozenColumns){ scrollableColRowIterators =3D this.model.getRowIterators(rowOffset, = numRows, numFrozenColumns+this.colOffset); } for (var i=3D0; i < numRows; i++) { this.populateRow(this.table.rows[i], frozenColRowIterators[i], = scrollableColRowIterators[i]); } this.lastRowPos =3D rowOffset; }, refreshAccessibleContents: function() { var numModelRows =3D this.model.getNumRows(); var iters =3D this.model.getRowIterators(); var numCols =3D this.table.rows[0].cells.length - 1; // skip check = column var start =3D new Date().getTime(); if (this.refreshRowCounter =3D=3D undefined) this.refreshRowCounter = =3D 0; for (var i =3D this.refreshRowCounter; i < numModelRows; i++) { var htmlRowIndex =3D i+1; // skip header row var htmlRow =3D this.table.rows[htmlRowIndex]; // if we are rendering for more than 3 seconds, give Firefox some = time to get // rid of the "unresponsive script" message. if(new Date().getTime() - start > 3000){ setTimeout(this.refreshAccessibleContents.bind(this), 0 ); return; } =09 for (var j=3D0; j < numCols; j++) { var gridCell =3D iters[i].next(); var htmlCell =3D htmlRow.cells[j+1]; // skip check column if (htmlCell.controller =3D=3D undefined){ new Gradebook.CellController(htmlCell, this.grid, htmlRowIndex, = j+1, true ); } htmlCell.controller.renderHTML(gridCell); // set check box column based on isRowChecked flag for first grid = cell if (j =3D=3D 0){ var htmlCell =3D htmlRow.cells[0]; if (htmlCell.controller =3D=3D undefined){ new Gradebook.CellController(htmlCell, this.grid, htmlRowIndex, j, = true ); } var checkInput =3D $(htmlCell).down('input'); checkInput.checked =3D gridCell.isRowChecked(); } } var rowTitle =3D gradebook2Messages['selectUserMsg']; this.grid.getAbbrColIndexs().each(function(idx) { var cell =3D htmlRow.cells[ idx + 1 ]; // skip checkbox cell rowTitle +=3D " " + cell.controller.getGridCell().getValue(); }); htmlRow.cells[ 0 ].controller.checkInput.title =3D rowTitle; =09 this.refreshRowCounter++; } this.refreshRowCounter =3D null; }, refreshContentsH: function() { // refresh data cells this.refreshContents(this.lastRowPos); // refresh the header cells var numFrozenColumns =3D this.options.numFrozenColumns; var hdrCells =3D null; var hdr =3D $(this.table.id+'_header'); if (hdr)=20 hdrCells =3D hdr.rows[0].cells; else hdrCells =3D this.table.rows[0].cells; if ( !hdrCells ) return; var frozenColIterator =3D this.model.getColDefIterator(0); var scrollableColIterator =3D null; if (this.numVisibleCols > numFrozenColumns){ scrollableColIterator =3D = this.model.getColDefIterator(numFrozenColumns+this.colOffset); } for (var i=3D0; i < this.numVisibleCols; i++) { var iterator =3D (i < = numFrozenColumns)?frozenColIterator:scrollableColIterator; var htmlCell =3D hdrCells[i+1]; // skip check column var colDef =3D iterator.next(); if (htmlCell.controller =3D=3D undefined){ new Gradebook.CellController(htmlCell, this.grid, 0, i+1, true); } htmlCell.controller.renderHeaderCellHTML( colDef ); =20 } // add the check all listener if not present if ( !hdrCells[0].controller ) new = Gradebook.CellController(hdrCells[0], this.grid, 0, 0, true); this.grid.updateSortImage(); }, visibleHeight: function() { return parseInt(GradebookUtil.getElementsComputedStyle(this.div, = 'height')); }, toViewIndex: function(modelSortIndex){ var numFrozenColumns =3D this.options.numFrozenColumns; if (modelSortIndex < numFrozenColumns){ return modelSortIndex; } var vi =3D (modelSortIndex - this.colOffset); if (numFrozenColumns <=3D vi && vi < this.numVisibleCols)=20 return vi; else return -1; }, toModelIndex: function(viewSortIndex) { if (viewSortIndex =3D=3D -1)=20 return -1; var numFrozenColumns =3D this.options.numFrozenColumns; var mi =3D (viewSortIndex < numFrozenColumns) ? viewSortIndex : = (this.colOffset + viewSortIndex); return mi; }, // scrolling management initScrollers: function() { this.createVScrollBar(); this.createHScrollBar(); this.lastVScrollPos =3D 0; if ( this.scrollerDivH !=3D null )=20 this.lastHScrollPos =3D this.scrollerDivH.scrollLeft; else=20 this.lastHScrollPos =3D 0; this.startScrollLeft =3D this.lastHScrollPos; }, createVScrollBar: function() { // see comments on createHScroolBar() if (this.table.rows.length >=3D this.model.getNumRows()) return; var visibleHeight =3D this.visibleHeight(); // create the outer div... this.scrollerDiv =3D document.createElement("div"); var scrollerStyle =3D this.scrollerDiv.style; scrollerStyle.borderRight =3D this.options.scrollerBorderRight; scrollerStyle.position =3D "absolute"; var tableWidth =3D this.isIE? this.table.offsetWidth-2+"px" : = this.isNS7? this.table.offsetWidth-15+"px" : = this.table.offsetWidth-3+"px"; if ( document.documentElement.dir =3D=3D 'rtl' )=20 scrollerStyle.right =3D tableWidth; else=20 scrollerStyle.left =3D tableWidth; scrollerStyle.top =3D "0px"; scrollerStyle.width =3D this.isNS7 ? "30px" : "19px"; scrollerStyle.height =3D visibleHeight + "px"; scrollerStyle.overflow =3D "auto"; // create the inner div... this.heightDiv =3D document.createElement("div"); this.heightDiv.style.width =3D "1px"; =09 this.rowHeight =3D = this.table.rows[this.table.rows.length-1].cells[1].offsetHeight; var divHeight =3D this.rowHeight * this.model.getNumRows(); divHeight +=3D ( this.numVisibleRows + 1 ); // looks like we are = missing one pix per row, if not added we cannot scroll to the last item =09 this.heightDiv.style.height =3D parseInt(divHeight) + "px" ; this.scrollerDiv.appendChild(this.heightDiv); = Event.observe(this.scrollerDiv,'scroll',this.handleVScroll.bindAsEventLis= tener(this)); GradebookUtil.debug('createVScrollBar - this.rowHeight =3D = '+this.rowHeight); GradebookUtil.debug('createVScrollBar - visibleHeight =3D = '+visibleHeight); GradebookUtil.debug('createVScrollBar - numVisibleRows =3D = '+this.numVisibleRows); GradebookUtil.debug('createVScrollBar - this.model.getNumRows() =3D = '+this.model.getNumRows()); GradebookUtil.debug('createVScrollBar - this.heightDiv.style.height = =3D '+this.heightDiv.style.height); this.table.parentNode.parentNode.insertBefore( this.scrollerDiv, = this.table.parentNode.nextSibling ); var eventName =3D this.isIE ? "mousewheel" : "DOMMouseScroll"; Event.observe(this.table, eventName,=20 function(evt) { if (evt.wheelDelta>=3D0 || evt.detail < 0) = //wheel-up this.scrollerDiv.scrollTop -=3D = (2*this.rowHeight); else this.scrollerDiv.scrollTop +=3D = (2*this.rowHeight); this.handleVScroll(); }.bindAsEventListener(this),=20 false); }, createHScrollBar: function() { // logic here is to create an div the same width that the non = frozen columns // then put inside it an invisible inner div that would be the = width of the non // frozen if they were all visible; by setting the parent with = overflow: auto=20 // scroll bars will appear, and the scrolling events are captured = to decide what // portion of the table should be displayed. if (!this.headerTable.rows[0] || = this.headerTable.rows[0].cells.length > this.model.getNumColDefs()) = return; var totalColumnCount =3D this.model.getNumColDefs(); var visibleColumnCount =3D this.numVisibleCols; var numFrozenColumns =3D this.options.numFrozenColumns; this.maxColOffset =3D totalColumnCount - (visibleColumnCount - = numFrozenColumns) - 1; var visibleHeight =3D this.isIE ? this.table.offsetHeight - 23 : = this.isNS7 ? this.table.offsetHeight - 16 : this.table.offsetHeight - 3; var checkColumnWidth =3D = this.headerTable.rows[0].cells[0].offsetWidth; // set avg col width to be based on actual cell width (not = including padding, etc.) // this will allow scrolling to be more accurate this.avgColWidth =3D this.headerTable.rows[0].cells[1].offsetWidth; var frozenWidth =3D (numFrozenColumns * this.avgColWidth) + = checkColumnWidth; visibleWidth =3D ( visibleColumnCount - numFrozenColumns ) * = this.avgColWidth; // create the outer div... this.scrollerDivH =3D document.createElement("div"); var scrollerStyle =3D this.scrollerDivH.style; scrollerStyle.position =3D "absolute"; if ( document.documentElement.dir =3D=3D 'rtl' )=20 scrollerStyle.right =3DfrozenWidth + "px"; else=20 scrollerStyle.left =3D frozenWidth + "px"; scrollerStyle.top =3D visibleHeight + "px"; scrollerStyle.height =3D this.isIE ? "40px" : this.isNS7 ? = "30px" : "19px"; scrollerStyle.width =3D visibleWidth + "px"; scrollerStyle.overflow =3D "auto"; // create the inner div... this.widthDiv =3D document.createElement("div"); this.widthDiv.style.height =3D "1px"; this.widthDiv.style.direction =3D 'ltr'; this.widthDiv.style.width =3D ( this.avgColWidth * ( = totalColumnCount-numFrozenColumns ) ) + "px"; this.scrollerDivH.appendChild(this.widthDiv); = Event.observe(this.scrollerDivH,'scroll',this.handleHScroll.bindAsEventLi= stener(this)); if (this.scrollerDiv){ this.table.parentNode.parentNode.insertBefore( this.scrollerDivH, = this.scrollerDiv.nextSibling ); } else { this.table.parentNode.parentNode.insertBefore( this.scrollerDivH, = this.table.parentNode.nextSibling ); } }, rowToPixel: function(rowOffset) { return (rowOffset / this.model.getNumRows()) * = this.heightDiv.offsetHeight }, =20 moveScroll: function(rowOffset) { if (this.scrollerDiv){ this.scrollerDiv.scrollTop =3D this.rowToPixel(rowOffset); } }, /* When scrolling, IE sends multiple onscroll events for a single = scroll action by the user. To get around this, we set a timer and wait until the dust settles = before doing the scroll Here is info on the work around: = http://support.microsoft.com/kb/238004 */ // scroll numRows, can be negative. returns false if scroll request is = out of range scrollRows: function(numRows) { if (!this.scrollerDiv) return false; if ((numRows < 0 && this.scrollerDiv.scrollTop =3D=3D 0) ||=20 (numRows > 0 && this.lastRowPos =3D=3D (this.model.getNumRows() - = this.numVisibleRows))) { return false; } this.ignoreOnVscroll =3D true; this.scrollerDiv.scrollTop +=3D (numRows * this.rowHeight); setTimeout(this.doVScroll.bind(this), 200 ); }, handleVScroll: function(evt) { if (this.ignoreOnVscroll) return; this.ignoreOnVscroll =3D true; setTimeout(this.doVScroll.bind(this), 200 ); }, doVScroll: function() { Gradebook.CellController.prototype.onGridScroll(); var incomingscrollTop =3D this.scrollerDiv.scrollTop; var scrollDiff =3D this.lastVScrollPos-this.scrollerDiv.scrollTop; if (scrollDiff !=3D 0.00) { var r =3D this.scrollerDiv.scrollTop % this.rowHeight; if (r !=3D 0) { if (scrollDiff < 0 ) { this.scrollerDiv.scrollTop +=3D (this.rowHeight-r); } else { this.scrollerDiv.scrollTop -=3D r; } } var contentOffset =3D parseInt(this.scrollerDiv.scrollTop / = parseInt(this.rowHeight)); GradebookUtil.debug('doVScroll - incomingscrollTop =3D = '+incomingscrollTop+ ' r =3D '+r+ ' new scrollTop =3D '+this.scrollerDiv.scrollTop+ ' lastVScrollPos =3D '+this.lastVScrollPos+ ' contentOffset =3D '+contentOffset); this.refreshContents(contentOffset); this.lastVScrollPos =3D this.scrollerDiv.scrollTop; } this.ignoreOnVscroll =3D false; }, handleHScroll: function(evt) { if (this.ignoreOnHscroll) return; this.ignoreOnHscroll =3D true; setTimeout(this.doHScroll.bind(this), 200 ); }, =09 // scroll numCols, can be negative. returns false if scroll request is = out of // range scrollCols : function(numCols) { if (!this.scrollerDivH) return false; var totalColumnCount =3D this.model.getNumColDefs(); if ((numCols < 0 && this.scrollerDivH.scrollLeft =3D=3D 0) || (numCols > 0 && this.colOffset =3D=3D = (this.model.getNumColDefs() - this.numVisibleCols))) { return false; } this.ignoreOnHscroll =3D true; /* * so here we need to translate delta to actual scroll value. The = delta is screen orientation agnostic (we need to move to that col in the = model)=20 * we need to translate the move in a pixel move to the left: a move = to the left in l2r means we move to the next col, * while in r2l it means we move to previous col, thus the inversion = of orientation if r2l. */ this.scrollerDivH.scrollLeft +=3D (numCols * this.avgColWidth * = (page.util.isRTL()?-1:1) ); setTimeout(this.doHScroll.bind(this), 200); return true; }, doHScroll: function() { Gradebook.CellController.prototype.onGridScroll(); var scrollDiff =3D this.lastHScrollPos - = this.scrollerDivH.scrollLeft; if (scrollDiff !=3D 0.00) { // To align the column scroll - we move by column increment var r =3D this.scrollerDivH.scrollLeft % this.avgColWidth; if (r !=3D 0) { if (scrollDiff < 0 ) { this.scrollerDivH.scrollLeft +=3D (this.avgColWidth-r); } else { this.scrollerDivH.scrollLeft -=3D r; } } if ( document.documentElement.dir =3D=3D 'rtl' ) { // Subtract the max scroll left with the current one and divide = with the avgColWidth=20 this.colOffset =3D parseInt( (this.startScrollLeft - = this.scrollerDivH.scrollLeft) / this.avgColWidth); } else { this.colOffset =3D parseInt(this.scrollerDivH.scrollLeft / = this.avgColWidth); } this.colOffset =3D Math.min(this.colOffset,this.maxColOffset); this.refreshContentsH(); this.lastHScrollPos =3D this.scrollerDivH.scrollLeft; } this.ignoreOnHscroll =3D false; } }; //********************************************************************* //************ Gradebook.CellController ******************************* //********************************************************************* Gradebook.CellController =3D Class.create(); Gradebook.CellController.prototype =3D { /* Controls all user interaction with an HTM table cell and its = corresponding grid model cell including: =09 cell-type specific context menus sorting by clicking on header cell selecting a table cell editing of cell value, which includes: going into edit mode - showing an input text values to be entered validating input as typed listening for certain keys to submit or cancel editing submitting changes to server and showing "Saving indicator" check box in first column for selecting students rendering of cell value and state indicators grade comment & column into popups */ initialize: function(htmlCell, grid, row, column, isHeaderTable ) { =09 this.htmlCell =3D $(htmlCell); this.htmlCell.id =3D row+','+column; this.htmlCell.controller =3D this; this.grid =3D grid; this.row =3D row; this.col =3D column; this.isHeaderTable =3D isHeaderTable; Gradebook.CellController.tableId =3D this.grid.table.id; var accessibleMode =3D this.grid.options.accessibleMode; this.isTopLeft =3D (this.row =3D=3D 0 && this.col =3D=3D 0) && = isHeaderTable; if (accessibleMode) { this._accessibleInit(); } else { this._nonAccessibleInit(); } }, _nonAccessibleInit: function( ) { // get elements in cell this.viewDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbView'); this.editDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbEdit'); this.editInput =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'input', = 'editInput'); this.textDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbText'); this.dataDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbData'); this.titleAnchor =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'a', = 'titleAnchor'); this.contextMenuAnchor =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'a', 'cmimg'); this.checkInput =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'input', = 'checkInput'); if ( this.isTopLeft ) { Event.observe(this.checkInput, 'click', = this.toggleSelection.bindAsEventListener(this)); GradebookViewSpreadsheet.grid.checkAllCellController =3D this; return; } // add listeners to cell & anchors = Event.observe(this.htmlCell,'mouseover',this.onMouseOver.bindAsEventListe= ner(this)); = Event.observe(this.htmlCell,'mouseout',this.onMouseOut.bindAsEventListene= r(this)); // add listeners to cell elements if (this.contextMenuAnchor) { = Event.observe(this.contextMenuAnchor,'click',this.onContextMenuClicked.bi= ndAsEventListener(this)); } if (this.row =3D=3D 0 && this.col !=3D 0 && this.textDiv && = this.dataDiv) { this.getGridCell =3D this.getHeaderGridCell; = Event.observe(this.textDiv,'click',this.onHeaderClicked.bindAsEventListen= er(this)); Event.observe(this.dataDiv,'focus', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.dataDiv,'mouseover', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.dataDiv,'mouseout', = this.onHeaderMouseOut.bindAsEventListener(this)); this.htmlCell.style.cursor =3D 'pointer'; } else { this.getGridCell =3D this.getGradeGridCell; if (this.editInput){ = Event.observe(this.editInput,'keydown',this.onInputKeyDown.bindAsEventLis= tener(this)); = Event.observe(this.editInput,'keyup',this.onInputKeyUp.bindAsEventListene= r(this)); } =09 if (this.checkInput) { = Event.observe(this.checkInput,'click',this.onCheckBoxClicked.bindAsEventL= istener(this)); } else { = Event.observe(this.htmlCell,'click',this.onClicked.bindAsEventListener(th= is)); } if ( this.titleAnchor ) = Event.observe(this.titleAnchor,'focus',this.onFocus.bindAsEventListener(t= his) ); } }, =09 _accessibleInit: function( ) { // get elements in cell this.checkInput =3D this.htmlCell.down('input'); this.titleAnchor =3D this.htmlCell.down('a'); this.contextMenuAnchor =3D (this.titleAnchor) ? this.titleAnchor : = this.htmlCell; if ( this.isTopLeft )=20 { Event.observe(this.checkInput, 'click', = this.toggleSelection.bindAsEventListener(this)); GradebookViewSpreadsheet.grid.checkAllCellController =3D this; return; } if (this.row =3D=3D 0 && this.col !=3D 0) { this.dataDiv =3D this.titleAnchor;=20 this.getGridCell =3D this.getHeaderGridCell; Event.observe(this.titleAnchor,'focus', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.htmlCell,'mouseover', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.htmlCell,'mouseout', = this.onHeaderMouseOut.bindAsEventListener(this)); }=20 else=20 { this.getGridCell =3D this.getGradeGridCell; } if (this.checkInput)=20 { = Event.observe(this.checkInput,'click',this.onCheckBoxClicked.bindAsEventL= istener(this)); } else if (this.getGridCell().getContextMenuInfo(this))=20 { = Event.observe(this.contextMenuAnchor,'click',this.onContextMenuClicked.bi= ndAsEventListener(this)); } else { // no link/menu for calculated grades, grade goes right in cell=20 this.titleAnchor.remove(); this.titleAnchor =3D this.htmlCell; } }, =09 isHeaderCell: function() { return this.isHeaderTable; }, unload: function() { this.grid =3D null; this.htmlCell.controller =3D null; this.htmlCell =3D null; this.grid =3D null; this.viewDiv =3D null; this.editDiv =3D null; this.editInput =3D null; this.textDiv =3D null; this.dataDiv =3D null; this.titleAnchor =3D null; this.contextMenuAnchor =3D null; this.checkInput =3D null; this.getGridCell =3D null; this.editGridcell =3D null; }, //************ checkbox logic ******************************* onCheckBoxClicked: function(evt) { var gridcell =3D this.getGridCell(); gridcell.setRowChecked(this.checkInput.checked); var userId =3D gridcell.userId; if(this.checkInput.checked){ if (evt.shiftKey && = Gradebook.CellController.prototype.lastCheckedUserId){ = this.grid.model.checkedRangeOfStudents(gridcell.userId,Gradebook.CellCont= roller.prototype.lastCheckedUserId); } Gradebook.CellController.prototype.lastCheckedUserId =3D = gridcell.userId; } else { Gradebook.CellController.prototype.lastCheckedUserId =3D null; } =09 this.updateNumSelectedIndicator(); }, toggleSelection: function() { if( this.checkInput.checked ) { this.onSelectAllStudents(); } else { this.onSelectNoStudents(); } }, onSelectAllStudents: function(evt) { this.grid.model.checkedAllStudents(); this.updateNumSelectedIndicator(); }, onSelectNoStudents: function(evt) { this.grid.model.checkedNoStudents(); this.updateNumSelectedIndicator(); }, =09 onSelectInvertStudents: function(evt) { this.grid.model.invertCheckedStudents(); this.updateNumSelectedIndicator(); }, =09 onSortCheckedStudents: function(evt) { // always show checked students at top this.grid.sortColumn(this,'DESC'); }, =09 updateNumSelectedIndicator: function() { var ids =3D this.grid.model.getCheckedStudentIds(); $("rowindicator").update( ids.length ); }, =09 =09 //************ sort logic ******************************* onHeaderClicked: function(evt) { this.grid.sortColumn(this); }, setSortImage: function(dir) { this.htmlCell.removeClassName('sortedUp'); this.htmlCell.removeClassName('sortedDown'); if ( dir =3D=3D 'ASC' ){ this.htmlCell.addClassName('sortedUp'); } else if ( dir =3D=3D 'DESC' ){ this.htmlCell.addClassName('sortedDown'); } }, onSortAscending: function(dir) { this.grid.sortColumn(this,'ASC'); this.contextMenuDiv.hide(); }, =09 onSortDescending: function(dir) { this.grid.sortColumn(this,'DESC'); this.contextMenuDiv.hide(); }, =09 //************ select cell logic ******************************* onFocus: function( evt ) { document.ignoreOnClick =3D true; //IE7 issue where focus is followed = by on click on the document - AS-123689 window.setTimeout( "document.ignoreOnClick =3D false", 2000 ); this.onClicked( evt ); }, =09 onClicked: function(evt) { var eventTarget =3D evt.target ? evt.target : evt.srcElement; Gradebook.CellController.prototype.lastEventTarget =3D eventTarget; this.selectCell( eventTarget ); Event.stop( evt ); }, =09 isSelected: function() { return (Gradebook.CellController.currentSelectedCell =3D=3D = this.htmlCell); }, =09 selectCell: function( optionalEventTarget ) { Gradebook.CellController.prototype.tableHasFocus =3D true; if ( this.isSelected() || this.checkInput ) return; this.closePopups(); this.unselectCurrentCell( true /*do not clear status bar */ ); GradebookUtil.debug('selectCell row =3D '+this.row+' col =3D = '+this.col); var gridCell =3D this.getGridCell(); Gradebook.CellController.currentSelectedCell =3D this.htmlCell; var hascm =3D this.hasContextMenu(); Element.addClassName(this.htmlCell, hascm?"cellClick":"cellClickNoCM") Element.addClassName(this.htmlCell.parentNode, "focusRowHigh"); var headerTable =3D $(Gradebook.CellController.tableId + '_header'); if (headerTable){ = Element.addClassName(headerTable.rows[0].cells[this.col],"focusHeader"); }=09 if (!this.isEditing && this.titleAnchor){ // no need to put focus on the anchor if it is already the active = element if ( !optionalEventTarget || ( optionalEventTarget !=3D = this.titleAnchor ) ) this.titleAnchor.focus(); } else if ( this.grid.options.accessibleMode ) { this.htmlCell.focus(); } this.setTaskbarInfo(gridCell); if (!this.grid.options.accessibleMode) this.startEdit(); }, showHeaderInfoInTaskbar: function() { var colDef =3D this.getGridCell(); var type =3D colDef.getType();=20 if ( type =3D=3D "student" ) { GradebookViewSpreadsheet.setMsgInTaskBar( colDef.getName() ); } else { if ( type =3D=3D "grade" ) points =3D NumberFormatter.getDisplayFloat( colDef.points ); else=20 points =3D GradebookUtil.getMessage( 'variesPerStudentMsg' ); GradebookViewSpreadsheet.setHeaderInfoInTaskBar( colDef.getName(), = GradebookUtil.getMessage( colDef.getType() + 'Msg' ),=20 points ); } }, =09 setTaskbarInfo: function(gridCell) { if (!gridCell) {=20 GradebookViewSpreadsheet.clearTaskBar(); } else if (gridCell.isGrade()) { var colDef =3D gridCell.colDef; var gradeType =3D ' ' var pointsPossible =3D ' ' var primaryDisplay =3D ' ' var visibileToStudents =3D ' ' try { if ( gridCell.canEdit() ) {=20 gradeType =3D = GradebookUtil.getMessage((gridCell.isOverride())?'overrideGradeMsg':'grad= eMsg'); } else {=20 gradeType =3D GradebookUtil.getMessage( colDef.getType() + 'Msg' ); } primaryDisplay =3D colDef.primarySchema.name; pointsPossible =3D NumberFormatter.getDisplayFloat( = gridCell.getPointsPossible() ); visibileToStudents =3D = GradebookUtil.getMessage((colDef.vis)?'isMsg':'isNotMsg'); } catch ( ignore ) { }; = GradebookViewSpreadsheet.setTaskBar(gradeType,pointsPossible,primaryDispl= ay,visibileToStudents); } else { GradebookViewSpreadsheet.setTaskBar(); } }, unselectCell: function( doNotClearStatusBar ) { GradebookUtil.debug('unselectCell row =3D '+this.row+' col =3D = '+this.col); Element.removeClassName(this.htmlCell, "cellClick"); Element.removeClassName(this.htmlCell, "cellClickNoCM"); Element.removeClassName(this.htmlCell.parentNode, "focusRowHigh"); var headerTable =3D $(Gradebook.CellController.tableId + '_header'); if (headerTable){ = Element.removeClassName(headerTable.rows[0].cells[this.htmlCell.cellIndex= ],"focusHeader"); }=09 if ( !doNotClearStatusBar ) this.setTaskbarInfo(); }, unselectCurrentCell: function( doNotClearStatusBar ) { var cell =3D Gradebook.CellController.currentSelectedCell; if (cell)=20 { var commit =3D false; var cellController =3D cell.controller; if ( cellController)=20 { if ( cellController.hasUncommittedChanges()) { var validationError =3D = cellController.editGridcell.validate(cellController.editInput.value); if (!validationError) { commit =3D = confirm(GradebookUtil.getMessage('uncommitedchangeErrorMsg')); }=20 else=20 { = alert(GradebookUtil.getMessage('uncommitedchangeNotSavedErrorMsg')); } } cellController.stopEdit(commit, true /* no focus on the cell we are = exiting */); cellController.unselectCell( doNotClearStatusBar ); } Gradebook.CellController.currentSelectedCell =3D null; } }, //************ edit grade logic ******************************* =09 startEdit: function(){ try { this.editGridcell =3D this.getGridCell(); if (!this.editGridcell.canEdit() || !this.isSelected() || = !this.editInput) return; GradebookUtil.debug('startEdit row =3D '+this.row+' col =3D = '+this.col); this.isEditing =3D true; this.editInput.value =3D this.editGridcell.getEditValue(); this.viewDiv.style.display =3D "none"; this.editDiv.style.display =3D "block"; this.editInput.focus(); this.editInput.select(); } catch ( ignore ) { } }, onInputKeyDown: function(evt){ GradebookUtil.debug('onInputKeyDown row =3D '+this.row+' col =3D = '+this.col+' keyCode =3D '+evt.keyCode); switch (evt.keyCode) { case (Event.KEY_TAB): this.stopEdit(true, false); //commit, Set Focus back to cell content Event.stop( evt ); break; } }, =09 onInputKeyUp: function(evt){ Event.stop( evt ); GradebookUtil.debug('onInputKeyUp row =3D '+this.row+' col =3D = '+this.col+' keyCode =3D '+evt.keyCode); switch (evt.keyCode) { case (Event.KEY_UP): case (Event.KEY_DOWN): case (Event.KEY_LEFT): case (Event.KEY_RIGHT): evt.cancelBubble =3D false; // allow event to bubble so attempted = navigation will occur break; case (Event.KEY_RETURN): try { Gradebook.noResize =3D true; /*IEHack*/ if (this.hasUncommittedChanges() && this.stopEdit(true)){ = //commit // select cell below this.grid.selectRelativeCell(1, 0); } } finally { Gradebook.noResize =3D false; } break; case (Event.KEY_ESC): =09 this.stopEdit(false); // don't commit break; default: var validationError =3D this.editGridcell.validate( = this.editInput.value, true ); // match partial if (validationError){ this.showValidationError(validationError); } else { this.hideValidationError(); } } },=09 // returns false if validation error occurs when committing stopEdit: function(commit, doNotSetFocus){ if (!this.isEditing){ return; } GradebookUtil.debug('stopEdit row =3D '+this.row+' col =3D = '+this.col+' commit =3D '+commit); if (commit && this.hasUncommittedChanges()){ var inputVal =3D this.editInput.value; var validationError =3D this.editGridcell.validate( inputVal ); if (validationError){ this.showValidationError(validationError); this.editInput.select(); this.editInput.focus(); return false; } var save =3D true; if (inputVal =3D=3D '') inputVal =3D '-'; // confirm if OK to delete or null grade if (inputVal =3D=3D '-'){ if (this.editGridcell.v =3D=3D '-'){ save =3D false; } else { var msg =3D = (this.editGridcell.isOverride()?'confirmRevertMsg':'confirmNullMsg'); save =3D confirm(GradebookUtil.getMessage(msg)); } } if (save){ // send update to server this.editGridcell.update(inputVal); =09 // show saving message this.addSavingDiv(); =09 } } this.hideValidationError(); this.isEditing =3D false; this.editGridcell =3D null; this.viewDiv.style.display =3D "block"; if (!doNotSetFocus){ this.titleAnchor.focus(); } this.editDiv.style.display =3D "none"; return true; }, hasUncommittedChanges: function(evt){ return (this.isEditing && this.editInput.value !=3D = this.editGridcell.getEditValue()); },=09 //************ rendering logic ******************************* renderHTML: function(gridCell) { var anchorVal; var altVal; if (gridCell.savingDiv){ this.showSavingDiv(gridCell.savingDiv); gridCell.savingDiv.htmlCell =3D this.htmlCell; } else if (gridCell.isExempt()){ anchorVal =3D gridImages.exemptGrade; altVal =3D gridCell.getAltValue(); } else if (gridCell.needsGrading() && !gridCell.isOverride()){ anchorVal =3D gridImages.needsGrading; } else if (gridCell.attemptInProgress() && !gridCell.isOverride()){ anchorVal =3D gridImages.attemptInProgress; } else if (gridCell.isComplete()){ anchorVal =3D gridCell.getCellValue(); altVal =3D GradebookUtil.getMessage('completedMsg'); } else if ( this.grid.options.accessibleMode && gridCell.isGrade() && = !gridCell.isGraded() ) { anchorVal =3D gridImages.noGrade; altVal =3D gridCell.getAltValue(); } else { anchorVal =3D gridCell.getCellValue(); altVal =3D gridCell.getAltValue(); } if (anchorVal !=3D undefined){ if (this.col =3D=3D 1 && !gridCell.isAvailable()){ anchorVal =3D gridImages.studentUnavailable+" "+anchorVal; } if (gridCell.isModified()){ anchorVal =3D gridImages.gradeModified+" "+anchorVal; } if (anchorVal.blank()){ anchorVal =3D ' ' } if (this.titleAnchor){ this.titleAnchor.innerHTML =3D anchorVal; this.titleAnchor.title =3D altVal; } } }, renderHeaderCellHTML: function( colDef ) { var anchorVal =3D ''; var title =3D colDef.name.unescapeHTML(); // IE hack so that unicode are properly escaped this.dataDiv.innerHTML =3D title; this.dataDiv.title =3D this.dataDiv.innerHTML; if (!colDef.isVisibleToStudents()){ anchorVal +=3D gridImages.itemNotVisible; } if (colDef.isPublic()){ anchorVal +=3D gridImages.externalGrade; } if (colDef.hasError()){ anchorVal +=3D gridImages.gradingError; } anchorVal +=3D title; this.dataDiv.innerHTML =3D anchorVal; }, =09 =20 addSavingDiv: function() { // create a "Saving" message by cloning the existing message var savingDiv =3D $("saveDiv").cloneNode(true); document.body.appendChild(savingDiv); // associate savingDiv with gridCell so saving message will scroll = with gridCell var gridCell =3D this.editGridcell; if (!gridCell) gridCell =3D this.getGridCell(); gridCell.savingDiv =3D savingDiv; savingDiv.gridCell =3D gridCell; savingDiv.htmlCell =3D this.htmlCell; =09 // store savingDivs in a class-level array to allow hiding all = savingDivs before scrolling refresh if (!Gradebook.CellController.prototype.savingDivs){ Gradebook.CellController.prototype.savingDivs =3D new Array(); } Gradebook.CellController.prototype.savingDivs.push(savingDiv); =09 // show the savingDiv on top of htmlCell this.showSavingDiv(savingDiv); =09 // show div for a period of time, then hide/remove it if grade change = has been committed on server setTimeout(function(){ var gc =3D savingDiv.gridCell; if (gc.isUncommitted){ savingDiv.timerExpired =3D true; } else { savingDiv.style.display =3D 'none'; savingDiv.parentNode.removeChild(savingDiv); gc.savingDiv =3D null; savingDiv.htmlCell.controller.renderHTML(gc); } },1000); }, showSavingDiv: function(savingDiv){ var pos =3D Element.cumulativeOffset( this.htmlCell ); savingDiv.style.top =3D pos.top + "px"; savingDiv.style.left =3D pos.left + "px"; if ( !this.htmlCell ) return;=20 savingDiv.style.minWidth =3D this.htmlCell.offsetWidth + "px"; savingDiv.style.minHeight =3D this.htmlCell.offsetHeight + "px"; savingDiv.style.display =3D "block"; }, hideAllSavingDivs: function(){ var savingDivs =3D Gradebook.CellController.prototype.savingDivs; if (!savingDivs) return; for (var i =3D savingDivs.length-1; i >=3D 0; i--){ if (!savingDivs[i].parentNode){ // remove div if no longer in document savingDivs.splice(i,1);=20 } else { savingDivs[i].style.display =3D 'none'; } } }, =09 removeAllSavingDivs: function(){ var savingDivs =3D Gradebook.CellController.prototype.savingDivs; if (!savingDivs) return; for (var i =3D savingDivs.length-1; i >=3D 0; i--){ var savingDiv =3D savingDivs[i]; if (savingDiv.gridCell) { savingDiv.gridCell.savingDiv =3D null; savingDiv.gridCell =3D null; savingDiv.htmlCell =3D null; } if (!savingDivs[i].parentNode){ // remove div if no longer in document savingDivs.splice(i,1);=20 } else { savingDivs[i].style.display =3D 'none'; } } }, =09 showValidationError: function(error) { var errDiv =3D $("errorDiv"); var p =3D GradebookUtil.getChildElementByClassName(errDiv, 'p', = 'errorDiv2'); p.innerHTML =3D error; errDiv.style.display =3D "block"; var pos =3D GradebookUtil._toAbsolute(this.htmlCell, false, = errDiv.offsetParent ); errDiv.style.top =3D pos.y + this.htmlCell.offsetHeight + "px"; errDiv.style.left =3D pos.x -1 + "px"; Element.addClassName(this.htmlCell, "cellError"); }, =09 hideValidationError: function() { var errDiv =3D $("errorDiv"); errDiv.style.display =3D "none"; Element.removeClassName(this.htmlCell, "cellError"); }, =09 hasContextMenu: function() { if ( this.isTopLeft ){ return true; } else { return (this.getGridCell().getContextMenuInfo(this) !=3D null); } }, =09 onMouseOver: function(evt) { if (!this.htmlCell || this.htmlCell.className =3D=3D "cellClick") = return; var hascm =3D this.hasContextMenu(); Element.addClassName(this.htmlCell, hascm?"cellhigh":"cellhighNoCM") var rowElement =3D this.htmlCell.parentNode; if (rowElement.className !=3D "focusRowHigh"){ Element.addClassName(rowElement, "rowhigh"); } }, =20 =09 onMouseOut: function(evt) { if (!this.htmlCell || this.htmlCell.className =3D=3D "cellClick") = return; Element.removeClassName(this.htmlCell, "cellhigh") Element.removeClassName(this.htmlCell, "cellhighNoCM") var rowElement =3D this.htmlCell.parentNode; if (rowElement.className !=3D "focusRowHigh"){ Element.removeClassName(rowElement, "rowhigh"); } }, =09 onHeaderMouseOut: function( evt ) { if ( Gradebook.CellController.currentSelectedCell ) { var selectedCell =3D = Gradebook.CellController.currentSelectedCell.controller; selectedCell.setTaskbarInfo( selectedCell.getGridCell() ); } else { GradebookViewSpreadsheet.clearTaskBar(); } }, //************ context menu logic ******************************* onContextMenuClicked: function(evt) { GradebookUtil.debug('onContextMenuClicked'); Gradebook.CellController.prototype.closePopups(evt); var gridCell =3D this.getGridCell(); var menuInfo =3D gridCell.getContextMenuInfo(this); if (menuInfo) { this.setContextMenuInfo(menuInfo); } Event.stop( evt ); }, onCloseContextMenu: function(evt) { Event.stop( evt ); if ( GradebookUtil.isIE() ){ if ( !this.isHeaderCell() )=20 { this.selectCell(); } else { this.contextMenuAnchor.focus(); } } else { this.contextMenuAnchor.focus(); } this.contextMenuDiv.hide(); $("shimDiv").hide(); }, =09 onContextMenuTabPress: function(evt, withShift) {=09 var ek =3D evt.keyCode || evt.which; if ( (ek =3D=3D Event.KEY_TAB) && ( withShift =3D=3D evt.shiftKey ) = ) { this.onCloseContextMenu(evt); Event.stop( evt ); } }, =20 =09 onContextMenuKeyDown: function(evt) {=09 var key =3D evt.keyCode || evt.which; if ( key =3D=3D Event.KEY_UP ) { =20 var elem =3D Event.element ( evt ); var index =3D this.menuItemLinks.indexOf( elem ); if ( index > 0 ) { this.menuItemLinks[index - 1].focus(); }=20 Event.stop( evt ); } else if ( key =3D=3D Event.KEY_DOWN ) { var elem =3D Event.element ( evt ); var index =3D this.menuItemLinks.indexOf( elem ); if ( index < ( this.menuItemLinks.length - 1 ) ) { this.menuItemLinks[index + 1].focus(); } =20 Event.stop( evt ); } else if ( key =3D=3D Event.KEY_ESC ) { this.onCloseContextMenu(evt); Event.stop( evt ); } }, =20 =09 setContextMenuInfo: function(menuInfo) { this.contextMenuId =3D menuInfo.id; var menuDiv =3D $(this.contextMenuId); this.contextMenuDiv =3D menuDiv; var firstItem =3D null; var lastItem =3D null; if (menuDiv.onkeydownHandler){ Event.stopObserving(menuDiv, 'keydown', menuDiv.onkeydownHandler); } menuDiv.onkeydownHandler =3D = this.onContextMenuKeyDown.bindAsEventListener( this ); Event.observe( menuDiv, "keydown", menuDiv.onkeydownHandler ); =09 this.menuItemLinks =3D new Array(); var onCloseHandler =3D = this.onCloseContextMenu.bindAsEventListener(this); menuInfo.items.push({id: 'close_'+menuInfo.id, visible:true, onclick: onCloseHandler}); menuInfo.items.each(function(mi) { var itemLink =3D $(mi.id);=20 itemLink.parentNode.style.display =3D (mi.visible)?"block":"none"; if (mi.visible) { this.menuItemLinks.push( itemLink ); } // remove previous click handler, if any if (itemLink.onclickHandler){ Event.stopObserving(mi.id, 'click', itemLink.onclickHandler); itemLink.onclickHandler =3D null; } if (mi.onclick && mi.visible){ // add click handler for menu item and save for later removal itemLink.onclickHandler =3D function( evt ) { onCloseHandler( evt ); mi.onclick( evt ); if ( mi.receipt ) { GradebookUtil.showInlineReceipt( gradebook2Messages[mi.receipt] = ); } } Event.observe(mi.id, 'click', itemLink.onclickHandler); } if (!firstItem) firstItem =3D itemLink; lastItem =3D itemLink; }.bind(this)); =09 // Handle tabbing out of the menu if ( lastItem.previousTABListener ) Event.stopObserving( lastItem.id, = 'keydown', lastItem.previousTABListener ); var tabListener =3D = this.onContextMenuTabPress.bindAsEventListener(this, false); lastItem.previousTABListener =3D tabListener; Event.observe( lastItem.id, 'keydown', tabListener ); if ( firstItem.previousTABListener ) Event.stopObserving( = firstItem.id, 'keydown', lastItem.previousTABListener ); var shiftTabListener =3D = this.onContextMenuTabPress.bindAsEventListener(this, true); firstItem.previousTABListener =3D shiftTabListener; Event.observe( firstItem.id, 'keydown', shiftTabListener ); =09 // position and show menu var offset =3D Position.cumulativeOffset( this.contextMenuAnchor); if ( this.grid.options.accessibleMode ) { var tableContainer =3D $( 'table1_accessible_container' ); offset[0] -=3D tableContainer.scrollLeft; offset[1] -=3D tableContainer.scrollTop; } menuDiv.setStyle({display: "block"}); var width =3D menuDiv.getWidth(); var bodyWidth =3D $(document.body).getWidth(); if ( page.util.isRTL() ) { offset[0] =3D offset[0] + this.contextMenuAnchor.getWidth() - width; if ( offset[0] < 0 ) offset[0]=3D 0; } if ( offset[0] + width > bodyWidth ) { offset[0] =3D offset[0] - width + this.contextMenuAnchor.getWidth(); } var ypos =3D offset[1] + this.contextMenuAnchor.getHeight(); menuDiv.setStyle({ left: offset[0] + "px", top: ypos + "px"}); if ( GradebookUtil.isFFonMac() ) GradebookUtil.shimDiv( menuDiv ); (function() { firstItem.focus(); }).defer(); =20 }, =20 =09 //************ comments logic ******************************* addGradeComment: function(evt,colDef) { Event.stop( evt ); // swallow event this.closePopups(); // here rather than on close to fix a UI glitch 1st time the div is = shown GradebookViewSpreadsheet.instructorCommentsResize._reset(); GradebookViewSpreadsheet.studentCommentsResize._reset(); var pos =3D GradebookUtil._toAbsolute(this.htmlCell); var submitCommentsButton =3D $("submitCommentsButton"); if (submitCommentsButton.onclickHandler){ Event.stopObserving(submitCommentsButton, 'click', = submitCommentsButton.onclickHandler); } submitCommentsButton.onclickHandler =3D = this.onSubmitComments.bindAsEventListener(this); = Event.observe(submitCommentsButton,'click',submitCommentsButton.onclickHa= ndler); var commentsDiv =3D $("commentsDiv"); if (commentsDiv.onclickHandler){ Event.stopObserving(commentsDiv, 'click', = commentsDiv.onclickHandler); } commentsDiv.onclickHandler =3D = this.onClickCommentsDiv.bindAsEventListener(this); Event.observe(commentsDiv,'click',commentsDiv.onclickHandler); var ie =3D GradebookUtil.isIE(); var rightedge =3D ie ? document.body.clientWidth: window.innerWidth; var bottomedge =3D ie ? document.body.clientHeight: = window.innerHeight; var offright=3Dfalse; var offbottom=3Dfalse; if( pos.y+commentsDiv.offsetHeight>bottomedge ) offbottom =3D true; if( pos.y-commentsDiv.offsetHeight<0 )offbottom =3D false; if( pos.x+commentsDiv.offsetWidth>rightedge-20 ) offright =3D true; if( offbottom ) { $("commentArrowUp").style.display=3D"none"; $("commentArrowDown").style.display=3D"block"; $("commentArrowDown").className=3D"bubArrowBot"; pos.y=3Dpos.y-commentsDiv.offsetHeight; } else { $("commentArrowUp").style.display=3D"block"; $("commentArrowDown").style.display=3D"none"; $("commentArrowUp").className=3D"bubArrowTop"; } if ( offright ) { $("commentArrowDown").className=3D"bubArrowBot2"; $("commentArrowUp").className=3D"bubArrowTop2"; pos.x=3Dpos.x-200; } commentsDiv.style.top =3D ( pos.y - this.htmlCell.offsetHeight )+"px"; commentsDiv.style.left =3D pos.x+"px"; commentsDiv.style.display=3D"block"; if ( GradebookUtil.isFFonMac() ) GradebookUtil.shimDiv( commentsDiv ); }, onSubmitComments: function() { this.getGridCell().setComments($("studentComments").value, = $("instructorComments").value); this.addSavingDiv(); this.closeComments(); }, onClickCommentsDiv: function(evt) { var eventTarget =3D evt.target ? evt.target : evt.srcElement; Gradebook.CellController.prototype.lastCommentsEventTarget =3D = eventTarget; }, testCommentsOpen: function(evt) { if (!evt) return; var ctrl =3D Gradebook.CellController.prototype; var eventTarget =3D evt.target ? evt.target : evt.srcElement; // if editing comments prompt user to save if click outside comments = div if (parseInt($("commentsDiv").style.display !=3D 'none') &&=20 ctrl.lastCommentsEventTarget !=3D eventTarget) { if = (confirm(GradebookUtil.getMessage('uncommitedCommentChangeErrorMsg'))){ $("submitCommentsButton").onclick(); } else { ctrl.closeComments(); } } }, closeComments: function() { $("commentsDiv").style.display=3D"none"; var submitCommentsButton =3D $("submitCommentsButton"); if (submitCommentsButton.onclickHandler){ Event.stopObserving(submitCommentsButton, 'click', = submitCommentsButton.onclickHandler); submitCommentsButton.onclickHandler =3D null; } var commentsDiv =3D $("commentsDiv"); if (commentsDiv.onclickHandler){ Event.stopObserving(commentsDiv, 'click', = commentsDiv.onclickHandler); commentsDiv.onclickHandler =3D null; } $("shimDiv").style.display=3D"none"; }, //************ miscellaneous ******************************* closePopups: function(evt) { $("gradeHeaderCM").style.display=3D"none"; $("studentInfoHeaderCM").style.display=3D"none"; $("gradeCM").style.display=3D"none"; $("studentInfoCM").style.display=3D"none"; $("infodiv").style.display=3D"none"; $("icondiv_up").style.display=3D"none"; $("icondiv_down").style.display=3D"none"; $("shadow").style.display =3D "none"; if ( Gradebook.doNotCloseAttemptsForm ) { Gradebook.doNotCloseAttemptsForm =3D false; } else { $("clearAttemptsFlyOut").style.display =3D "none"; } Gradebook.CellController.prototype.testCommentsOpen(evt); $("shimDiv").style.display=3D"none"; }, =09 getGradeGridCell: function(){ return this.grid.viewPort.getModelGridCell(this.row, this.col); }, =09 getHeaderGridCell: function(){ return this.grid.viewPort.getHeaderGridCell(this.col); }, =09 closePopupsAndRestoreFocus: function(evt) { var ctrl =3D Gradebook.CellController.prototype; ctrl.closePopups(evt); var eventTarget =3D evt.target ? evt.target : evt.srcElement; if (ctrl.lastEventTarget =3D=3D eventTarget){ ctrl.tableHasFocus =3D true; } else if (ctrl.tableHasFocus) { ctrl.unselectCurrentCell(); ctrl.tableHasFocus =3D false; } }, showClearAttemptsFlyOut: function( event, colDef ) { var linkElement =3D $('gh_clearAllAttempts'); var offset =3D Position.cumulativeOffset( linkElement ); var formDiv =3D $('clearAttemptsFlyOut'); var width =3D formDiv.getWidth(); var bodyWidth =3D $(document.body).getWidth(); // reposition form if it goes off the screen // align right edge of flyout form with link button if ( offset[0] + width > bodyWidth ) { offset[0] =3D (offset[0] + linkElement.getWidth()) - width; } formDiv.setStyle({ left: offset[0] + "px", top: ( offset[1] - Gradebook.Grid.pageHeightOffset ) + "px", display: "block" }); $("gradeHeaderCM").hide(); // restoring default values if ( Gradebook.clearAttemptsFormDefault ) { $('selectOption').value =3D = Gradebook.clearAttemptsFormDefault.defaultSelect; $('dp_bbDateTimePicker_start_date').value =3D = Gradebook.clearAttemptsFormDefault.defaultStartDate; $('dp_bbDateTimePicker_end_date').value =3D = Gradebook.clearAttemptsFormDefault.defaultEndDate; $('bbDateTimePickerstart').value =3D = Gradebook.clearAttemptsFormDefault.defaultStartDateHidden; $('bbDateTimePickerend').value =3D = Gradebook.clearAttemptsFormDefault.defaultEndDateHidden; } $('clearAttemptsOptionSelect').checked =3D true; $('clearAttemptsFlyOutSubmit').onclick =3D = this.onSubmitClearAttempts.bindAsEventListener( this ) ; =20 Event.stop( event ); }, onSubmitClearAttempts: function( event ) { Event.stop( event ); if ( !confirm( gradebook2Messages.clearAttemptConfirmMsg ) ) return = false; if ( $('clearAttemptsOptionSelect').checked ) { this.getGridCell().clearAttempts( $('selectOption').value ); } else { var startDate =3D $('bbDateTimePickerstart').value; var endDate =3D $('bbDateTimePickerend').value; this.getGridCell().clearAttemptsByDate(startDate, endDate); } return false; }, viewColumnInfo: function(evt,colDef) { Event.stop( evt ); // swallow event this.closePopups(evt); var info =3D colDef.getInfo(); info.each(function(ii) { $(ii.id).innerHTML =3D " "+ii.value; }); var pos =3D GradebookUtil._toAbsolute(this.htmlCell); var infoDiv =3D $('infodiv'); var ie =3D GradebookUtil.isIE(); var rightedge =3D ie ? document.body.clientWidth: = window.innerWidth; if(pos.x+infoDiv.offsetWidth>rightedge-20){ pos.x=3Dpos.x-infoDiv.offsetWidth+50; $("bubbleArrowTop").className=3D"bubArrowTop2"; }else{ $("bubbleArrowTop").className=3D"bubArrowTop"; } infoDiv.style.top =3D ( pos.y - this.htmlCell.offsetHeight ) + "px"; infoDiv.style.left =3D pos.x+"px"; infoDiv.style.display =3D "block"; if ( GradebookUtil.isFFonMac() ) GradebookUtil.shimDiv( infoDiv ); }, sendEmail: function(type,studentIds){ var sendEmailFunc =3D this.grid.options.sendEmailFunc; if (sendEmailFunc) { sendEmailFunc(type,studentIds); } }, onGridScroll: function(){ this.closePopups(); this.unselectCurrentCell(); } };=09 var GradebookUtil =3D { isValidFloat: function ( n ) { var n =3D ''+n; var trimmedVal =3D n.strip(); var numberFormatDecimalPoint =3D null; if ( window.LOCALE_SETTINGS ) { numberFormatDecimalPoint =3D = LOCALE_SETTINGS.getString('number_format.decimal_point'); } else { numberFormatDecimalPoint =3D = page.bundle.getString('number_format.decimal_point'); } if (trimmedVal.endsWith( numberFormatDecimalPoint )) trimmedVal +=3D = '0'; var numFormat =3D '^[-]?[0-9]*(\\.[0-9]+)?$'; var re =3D new RegExp( numFormat );=09 var isValidNum =3D trimmedVal.search( re ) =3D=3D 0; return isValidNum; }, =20 showInlineReceipt: function( message ) { window.location.href =3D = viewSpreadsheetURL+'&inline_receipt_message=3D'+message; }, =20 formatStudentName: function ( student ) { var nameTemplate =3D new = Template(GradebookUtil.getMessage('userNameTemplate')); var nameData =3D {first:student.first, last:student.last, = user:student.user}; return nameTemplate.evaluate(nameData); }, =20 isIE: function () { return navigator.userAgent.toLowerCase().indexOf("msie") >=3D 0; }, isNS7: function () { return navigator.userAgent.toLowerCase().indexOf("netscape/7") = >=3D 0; }, =20 isFFonMac: function() { return GradebookUtil.isMac() && GradebookUtil.isFirefox(); }, =20 isFirefox: function() { return (navigator.userAgent.toLowerCase().indexOf("firefox") !=3D = -1); }, =20 isMac: function() { return (navigator.userAgent.toLowerCase().indexOf("mac") !=3D -1); }, =20 trimId: function( primaryKey ) { if ( primaryKey.charAt(0) !=3D '_' ) return primaryKey; return primaryKey.slice(1, primaryKey.lastIndexOf('_') ); }, getMessage: function (key) { if ( Gradebook.getModel() ){ return Gradebook.getModel().getMessage(key); } else { // in case the model is not loaded but we are on the grid page if ( gradebook2Messages && gradebook2Messages[ key ] ) return = gradebook2Messages[ key ]; return key; } }, getElementsComputedStyle: function ( htmlElement, cssProperty, = mozillaEquivalentCSS) { if ( arguments.length =3D=3D 2 ) mozillaEquivalentCSS =3D cssProperty; var el =3D $(htmlElement); if ( el.currentStyle ) return el.currentStyle[cssProperty]; else return document.defaultView.getComputedStyle(el, = null).getPropertyValue(mozillaEquivalentCSS); }, toViewportPosition: function(element) { return this._toAbsolute(element,true); }, /** * Compute the elements position in terms of the window viewport * so that it can be compared to the position of the mouse (dnd) * This is additions of all the offsetTop,offsetLeft values up the * offsetParent hierarchy, ...taking into account any scrollTop, * scrollLeft values along the way... * * Note: initially there was 2 implementations, one for IE, one for = others. * Mozilla one seems to fit all though (tested XP: FF2,IE7, OSX: = FF2, SAFARI) **/ _toAbsolute: function(element,accountForDocScroll, topParent ) { return = this._toAbsoluteMozilla(element,accountForDocScroll,topParent); }, /** * Mozilla did not report all of the parents up the hierarchy via = the * offsetParent property that IE did. So for the calculation of the * offsets we use the offsetParent property, but for the calculation = of * the scrollTop/scrollLeft adjustments we navigate up via the = parentNode * property instead so as to get the scroll offsets... * **/ _toAbsoluteMozilla: function(element,accountForDocScroll, topParent) = { var x =3D 0; var y =3D 0; var parent =3D element; while ( parent && ( !topParent || parent!=3DtopParent ) ) { x +=3D parent.offsetLeft; y +=3D parent.offsetTop; parent =3D parent.offsetParent; } parent =3D element; while ( parent && parent !=3D document.body && parent !=3D document.documentElement && ( !topParent || parent!=3DtopParent ) ) { if ( parent.scrollLeft ) x -=3D parent.scrollLeft; if ( parent.scrollTop ) y -=3D parent.scrollTop; parent =3D parent.parentNode; } if ( accountForDocScroll ) { x -=3D this.docScrollLeft(); y -=3D this.docScrollTop(); } return { x:x, y:y }; }, docScrollLeft: function() { if ( window.pageXOffset ) return window.pageXOffset; else if ( document.documentElement && = document.documentElement.scrollLeft ) return document.documentElement.scrollLeft; else if ( document.body ) return document.body.scrollLeft; else return 0; }, docScrollTop: function() { if ( window.pageYOffset ) return window.pageYOffset; else if ( document.documentElement && = document.documentElement.scrollTop ) return document.documentElement.scrollTop; else if ( document.body ) return document.body.scrollTop; else return 0; }, getChildElementByClassName: function(parent, childTag, = childClassName){ var children =3D parent.getElementsByTagName(childTag); if (!children || children.length =3D=3D 0) return null; for (var i =3D 0; i < children.length; i++){ if (children[i].className.indexOf(childClassName) >=3D 0){ return children[i]; } } return null; }, =09 setChildElementTextByClassName: function(parent, childTag, = childClassName, text){ var child =3D GradebookUtil.getChildElementByClassName(parent, = childTag, childClassName); if (child =3D=3D null) return; child.innerHTML =3D text; }, =09 getLogger: function() { if (window.gbModel) return gbModel.getLogger(); // in case current = scope owns gbModel if (parent.gbModel) return parent.gbModel.getLogger(); }, debug: function(s) { var logger =3D this.getLogger(); if (logger) { logger.debug(s); } }, error: function(s) { var logger =3D this.getLogger(); if (logger) { logger.error(s); } }, =09 //on firefox/mac scroll bars will show ontop of anything if not shimmed shimDiv: function( menuDiv ) { var shimIFrame =3D $('shimDiv'); if (!shimIFrame) return; shimIFrame.style.width =3D menuDiv.offsetWidth; shimIFrame.style.height =3D menuDiv.offsetHeight; var position =3D Position.page(menuDiv); shimIFrame.style.top =3D position[1]; shimIFrame.style.left =3D position[0]; shimIFrame.style.zIndex =3D 2; shimIFrame.style.display =3D "block"; =20 }, =20 clearShim: function() { if ( $("shimDiv") ) $("shimDiv").style.display=3D"none"; } }; ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/gradebook/js/gradebookgridmodel.js?v=9.0.440.7 /** * Gradebook data grid * * PORTIONS OF THIS FILE ARE BASED ON RICO LIVEGRID 1.1.2 * * Copyright 2005 Sabre Airline Solutions * * Licensed under the Apache License, Version 2.0 (the "License"); you = may not use this * file except in compliance with the License. You may obtain a copy = of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software = distributed under the * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR = CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific = language governing permissions * and limitations under the License. * * @author "Bill Richard" * @version $Revision: #9 $ $Date: 2007/02/12 $ * * **/ // Gradebook.GridModel = ----------------------------------------------------- Gradebook.GridModel =3D Class.create(); Gradebook.GridModel.prototype =3D { initialize: function(gradebookService) { this.gradebookService =3D gradebookService; this.courseId =3D gradebookService.courseId; this.rows =3D new Array(); this.colDefs =3D new Array(); this.colOrderMap =3D new Array(); this.customViews =3D new Array(); this.listeners =3D new Array(); this.accessibleMode =3D false; this.resizingWindow =3D false; this.minimumRows =3D 10; this.isolatedStudentId =3D ''; }, getCustomViews: function() { this.customViews.sort( function(a,b){ var aa =3D a.name.toLowerCase(); var bb =3D b.name.toLowerCase(); if (aa =3D=3D bb) return 0; else if (aa < bb) return -1; else return 1; } ); return this.customViews; }, =09 // notify registered listeners that model data has changed fireModelChanged: function() { for (var i =3D 0; i < this.listeners.length; i++){ this.listeners[i].modelChanged(); } }, // notify registered listeners that model error has occured fireModelError: function( exception, serverReply) { for (var i =3D 0; i < this.listeners.length; i++){ if (this.listeners[i].modelError){ this.listeners[i].modelError( exception, serverReply); } } }, addModelListener: function(listener) { this.listeners.push(listener); }, removeModelListeners: function() { this.listeners =3D new Array(); }, updateGrade: function( newValue, newTextValue, userId, colDefId) { = this.gradebookService.updateGrade((this.updateGradeCallback).bind(this), = this.version, newValue, newTextValue, userId, colDefId); }, deleteColumn: function(colDefId) { this.gradebookService.deleteColumn(colDefId); }, modifyColumn: function(colDefId, colType) { this.gradebookService.modifyColumn(colDefId, colType); }, =09 =09 viewItemStats: function(itemId) { this.gradebookService.viewItemStats(itemId); }, viewSingleStudentGrades: function(userId) { this.isolatedStudentId =3D userId; this.gradebookService.reloadGrid(); }, =09 restoreFromSingleStudentView: function() { this.isolatedStudentId =3D ''; this.gradebookService.reloadGrid(); }, =09 viewStudentStats: function(userId) { this.gradebookService.viewStudentStats(userId); }, =09 viewAdaptiveRelease: function(userName) { this.gradebookService.viewAdaptiveRelease(userName); }, =09 hideColumn: function(colDefId) { this.gradebookService.hideColumn(colDefId); }, showGradeDetails: function(userId, colDefId){ this.gradebookService.showGradeDetails( userId, colDefId ); }, onAddComment: function(userId, colDefId){ this.gradebookService.loadComments( userId, colDefId, = "studentComments", "instructorComments" ); }, =09 exemptGrade: function(userId, colDefId){ this.gradebookService.setExemption( = (this.updateGradeCallback).bind(this), this.version, userId, colDefId, = true ); }, clearExemption: function(userId, colDefId){ this.gradebookService.setExemption( = (this.updateGradeCallback).bind(this), this.version, userId, colDefId, = false ); }, setComments: function(userId, colDefId, studentComments, = instructorComments){ this.gradebookService.setComments( userId, colDefId, studentComments, = instructorComments ); }, =09 getRowByUserId: function(userId) { var rows =3D this.rows; for (var i =3D 0, len =3D rows.length; i < len; i++){ if (rows[i][0].getUserId() =3D=3D userId) return rows[i]; } return null; }, =09 _getGradesForItemId: function(itemId, includeUnavailable) { var grades =3D new Array() var colIndex =3D this.colDefMap[itemId]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _getGradesForItemId contains data for = invalid column id: '+itemId); return grades; } var rows =3D this.rows; for (var i =3D 0, len =3D rows.length; i < len; i++){ var grade =3D rows[i][colIndex]; if (includeUnavailable || grade.isAvailable()){ grades.push( grade ); } } return grades; }, updateGradeCallback: function(retData) { if (!retData || retData.length =3D=3D 0){ GradebookUtil.error('GridModel error updating grade'); return; } for (var i =3D 0, len =3D retData.length; i < len; i++) { var data =3D retData[i]; var colDefId =3D data.itemId; var userId =3D data.courseUserId; var score =3D data.score; var textInput =3D data.textInput; var row =3D this.getRowByUserId(userId); var colIndex =3D this.colDefMap[colDefId]; if (colIndex =3D=3D undefined){ // ignore continue; } var gridCell =3D row[colIndex]; gridCell.tv =3D textInput; if (textInput.length =3D=3D 0 && score =3D=3D 0){ gridCell.v =3D '-'; } else { gridCell.v =3D score; } gridCell.gc =3D (data.modified)?"y":null; gridCell.or =3D (data.override)?"y":null; gridCell.x =3D (data.exempt)?"y":null; gridCell.mp =3D data.points; gridCell.isUncommitted =3D false; var savingDiv =3D gridCell.savingDiv; if (savingDiv && savingDiv.timerExpired && savingDiv.parentNode){ savingDiv.style.display =3D 'none'; savingDiv.parentNode.removeChild(savingDiv); gridCell.savingDiv =3D null; } =09 } this.fireModelChanged(); }, // called to load model with server data=20 requestLoadData: function() { GradebookUtil.debug('GridModel requestLoadData called'); this.lastUpdateTS =3D new Date().getTime(); this.gradebookService.requestLoadData( (this._loadDataFromJSON).bind(this), (this._reportError).bind(this), (this._reportException).bind(this)); }, // called to update model with server data=20 requestUpdateData: function() { var timeSinceLastUpdate =3D new Date().getTime() - this.lastUpdateTS; // don't update if window is resizing and we've reloaded in the last 5 = minutes if (this.resizingWindow && ( timeSinceLastUpdate < 5*60*1000) ){ this.fireModelChanged(); return;=20 } this.lastUpdateTS =3D new Date().getTime(); GradebookUtil.debug('GridModel requestUpdateData called'); var customViewId =3D null; if (this.currentCustomView && this.currentCustomView.usesGroups()){ customViewId =3D this.currentCustomView.id; } this.gradebookService.requestUpdateData(this.version, = this.lastUserChangeTS, this.usersHash, customViewId, (this._updateDataFromJSON).bind(this), (this._reportError).bind(this), (this._reportException).bind(this)); }, setResizingWindow: function(f) { this.resizingWindow =3D f; }, getResizingWindow: function() { return this.resizingWindow; }, setMinimumRows: function( minRows ) { if ( minRows < 5 ) minRows =3D 5; if ( minRows > 50 ) minRows =3D 50; this.minimumRows =3D minRows; }, =09 getMinimumRows: function() { return this.minimumRows; }, _reportException: function(e) { GradebookUtil.error('exception getting data from server: '+ = e.message); }, _reportError: function(t) { GradebookUtil.error('error getting data from server: '+ t.status + ' = -- ' + t.statusText); }, =09 getVisibleColDefIndex: function(id) { var colnum =3D this.colDefMap[id];=20 if (colnum =3D=3D=3D undefined || this.colDefs[colnum] =3D=3D=3D = undefined || !this.colDefs[colnum].gbvis ){ return -1; } for (var i =3D 0, len =3D this.colOrderMap.length; i < len; i++){ if (this.colOrderMap[i] =3D=3D colnum) return i; } return -1; }, // callback when initializing this gradebook model with server data _loadDataFromJSON: function(reply) { GradebookUtil.debug('GridModel _loadDataFromJSON called'); try { var jsonBook =3D eval('(' + reply.responseText + ')'); } catch (e) { this.fireModelError(e, reply.responseText); return; } try { this.schemaMap =3D new Array(); for (var i =3D 0; i < jsonBook.schemas.length; i++){ jsonBook.schemas[i] =3D this._createSchema(jsonBook.schemas[i].type, = jsonBook.schemas[i]); this.schemaMap[jsonBook.schemas[i].id] =3D jsonBook.schemas[i]; } this.colDefMap =3D new Array(); for (var i =3D 0; i < jsonBook.colDefs.length; i++){ jsonBook.colDefs[i] =3D this._createColDef( jsonBook.colDefs[i], = this, this.schemaMap ); this.colDefMap[jsonBook.colDefs[i].id] =3D i; } for (var i =3D 0; i < jsonBook.rows.length; i++){ jsonBook.rows[i] =3D this._loadRowDataFromJSON(jsonBook.rows[i], = jsonBook.colDefs, this.colDefMap); } this.customViewMap =3D new Array(); =09 if (jsonBook.customViews){ for (var i =3D 0; i < jsonBook.customViews.length; i++){ jsonBook.customViews[i] =3D new Gradebook.CustomView( = jsonBook.customViews[i], this ); this.customViewMap[jsonBook.customViews[i].id] =3D i; } } this.groupsMap =3D new Array(); if (jsonBook.groups){ for (var i =3D 0; i < jsonBook.groups.length; i++){ this.groupsMap[jsonBook.groups[i].id] =3D i; } } this._buildCategoryNameMap( jsonBook ); Object.extend(this, jsonBook); // assign json properties to this = object this._buildGradingPeriodMap(); if ( this.customViewIdParam !=3D null && = this.customViewIdParam.length > 0 ) { this._internalChangeCurrentView( 'cv_' + this.customViewIdParam ); } else if (this.defCVID) { this._internalChangeCurrentView( 'cv_' + this.defCVID ); } else if (this.defGPID){ this._internalChangeCurrentView( this.defGPID ); } =09 this._setStudentInfoLayout(); this._updateVisibleRows(jsonBook); this.sortColumns(); if (this.colDefMap['LN'] !=3D undefined){ this.sortColumnId =3D 'LN'; this.sortDir =3D 'ASC'; this.reSort(); } this.fireModelChanged(); } catch (e) { this.fireModelError(e); } }, =09 // callback when updating this gradebook model with server data _updateDataFromJSON: function(reply) { GradebookUtil.debug('GridModel _updateDataFromJSON called'); try { var jsonBook =3D eval('(' + reply.responseText + ')'); } catch (e) { this.fireModelError(e, reply.responseText); return; } try { // need to reinitialize if new users added to pick up existing grades // when a user is re-enabled if (this._hasNewUsers(jsonBook)) { this.requestLoadData(); return; } this.version =3D jsonBook.version; this.lastUserChangeTS =3D jsonBook.lastUserChangeTS; this.usersHash =3D jsonBook.usersHash; this.numFrozenColumns =3D jsonBook.numFrozenColumns; this.gradingPeriods =3D jsonBook.gradingPeriods; this.categories =3D jsonBook.categories; this._buildCategoryNameMap( jsonBook ); this.studentInfoLayouts =3D jsonBook.studentInfoLayouts; this.pubColID =3D jsonBook.pubColID; this.defCVID =3D jsonBook.defCVID; this.defGPID =3D jsonBook.defGPID; if (jsonBook.schemas){ for (var i =3D 0; i < jsonBook.schemas.length; i++){ // create a new schema if one with same id does not already exists var schema =3D this.schemaMap[jsonBook.schemas[i].id];=20 if (schema =3D=3D=3D undefined){ schema =3D this._createSchema(jsonBook.schemas[i].type, = jsonBook.schemas[i]); this.schemaMap[jsonBook.schemas[i].id] =3D schema; } else { Object.extend(schema, jsonBook.schemas[i]); } } } if (jsonBook.groups){ if (!this.groupsMap || !this.groups || this.groups.length =3D=3D 0){ this.groupsMap =3D new Array(); this.groups =3D jsonBook.groups; for (var i =3D 0; i < jsonBook.groups.length; i++){ this.groupsMap[jsonBook.groups[i].id] =3D i; } } else { for (var i =3D 0; i < jsonBook.groups.length; i++){ var group =3D this.groupsMap[jsonBook.groups[i].id];=20 if (group =3D=3D=3D undefined){ this.groupsMap[jsonBook.groups[i].id] =3D this.groups.length; this.groups.push( jsonBook.groups[i] ); } else { this.groups[group] =3D jsonBook.groups[i]; } } } } if (jsonBook.colDefs){ for (var i =3D 0; i < jsonBook.colDefs.length; i++){ // create a new colDef if one with same id does not already exists var colIndex =3D this.colDefMap[jsonBook.colDefs[i].id]; if (colIndex =3D=3D undefined){ if ( jsonBook.colDefs[i].deleted ) continue; this.colDefMap[jsonBook.colDefs[i].id] =3D this.colDefs.length; this.colDefs.push(this._createColDef( jsonBook.colDefs[i], this, = this.schemaMap )); } else { var colDef =3D this.colDefs[colIndex];=20 colDef.comput_err =3D false; Object.extend(colDef, jsonBook.colDefs[i]); // clear all grades in column if computation error for column if (jsonBook.colDefs[i].comput_err){ var grades =3D this._getGradesForItemId(jsonBook.colDefs[i].id, = true); for (var g =3D 0; g < grades.length; g++){ grades[g].initialize( grades[g].colDef, grades[g].metaData); } } if (colDef.deleted){ this.colDefMap[colDef.id] =3D null; } if (colDef.sid){ colDef.primarySchema =3D this.schemaMap[colDef.sid]; } if (colDef.ssid && colDef.ssid.length > 0){ colDef.secondarySchema =3D this.schemaMap[colDef.ssid]; } else { colDef.secondarySchema =3D null; } } } } // need to add any new row data? while (this.rows.length > 0 && this.colDefs.length > = this.rows[0].length){ var colDefIndex =3D this.rows[0].length; for (var i =3D 0; i < this.rows.length; i++){ var metaData =3D this.rows[i][0].metaData; var colDef =3D this.colDefs[colDefIndex]; if ( colDef instanceof Gradebook.GradeColDef )=20 this.rows[i].push(new Gradebook.Grade( colDef, metaData )); else this.rows[i].push(new Gradebook.StudentAttribute( colDef, metaData = )); } } if (jsonBook.rows){ // users changed, need to resync if (jsonBook.type =3D=3D "delta_with_user"){ // remove rows from model that are not in json data var tempArray =3D new Array(); for (var i =3D 0; i < this.rows.length; i++){ if (this._containsUser(jsonBook.rows, = this.rows[i][0].getUserId())) { tempArray.push(this.rows[i]); } } this.rows =3D tempArray; } // add new json rows to model or update existing rows for (var i =3D 0; i < jsonBook.rows.length; i++){ var row =3D this.getRowByUserId(jsonBook.rows[i][0].uid); if (row =3D=3D null){ // new row this.rows.push(this._loadRowDataFromJSON(jsonBook.rows[i], = this.colDefs, this.colDefMap)); } else { this._updateRowDataFromJSON(row, jsonBook.rows[i], this.colDefs, = this.colDefMap); } } } this._buildGradingPeriodMap(); if (jsonBook.customViews){ for (var i =3D 0; i < jsonBook.customViews.length; i++){ // create a new custom view if one with same id does not already = exists var idx =3D this.customViewMap[jsonBook.customViews[i].id];=20 if (idx =3D=3D=3D undefined){ this.customViewMap[jsonBook.customViews[i].id] =3D = this.customViews.length; this.customViews.push(new Gradebook.CustomView( = jsonBook.customViews[i], this )); } else { this.customViews[idx] =3D new Gradebook.CustomView( = jsonBook.customViews[i], this ); } } } // remove any custom views not in customViewIds if (this.customViews){ var tempArray =3D new Array(); this.customViewMap =3D new Array(); for (var i =3D 0; i < this.customViews.length; i++){ if ( jsonBook.customViewIds.indexOf( Number( this.customViews[i].id = ) ) !=3D -1 ) { this.customViewMap[this.customViews[i].id] =3D tempArray.length; tempArray.push(this.customViews[i]); } } this.customViews =3D tempArray; } if (this.customViewIdParam !=3D null && this.customViewIdParam.length = > 0 ) { this._internalChangeCurrentView( 'cv_' + this.customViewIdParam ); } else if (this.currentView) { this._internalChangeCurrentView( this.currentView ); } this._setStudentInfoLayout(); this._updateVisibleRows(jsonBook); this.sortColumns(); this.reSort(); this.checkedNoStudents(); // do this last, it will fireModelChanged } catch (e) { this.fireModelError(e); } }, _buildCategoryNameMap: function( jsonBook ) { this.catNameMap =3D new Array(); if ( jsonBook.categories ) { for (var i =3D 0; i < jsonBook.categories.length; i++){ this.catNameMap[jsonBook.categories[i].id] =3D = jsonBook.categories[i].name; } } }, _updateVisibleRows: function(jsonBook) { var showAll =3D (!jsonBook.hiddenStudentIds || = jsonBook.hiddenStudentIds.length =3D=3D 0); this.visibleRows =3D new Array(); var rows =3D this.rows; // loop through rows and set hidden flag for each row, add to = visibleRows if not hidden for (var i =3D 0, len =3D rows.length; i < len; i++){ var row =3D rows[i]; var isHidden =3D !showAll && ( jsonBook.hiddenStudentIds.indexOf( = Number( row[0].getUserId() ) ) !=3D -1 ); row[0].setHidden( isHidden ); if ( !isHidden ) { this.visibleRows.push( row ); } } this._applyCustomView(); =09 }, updateUserVisibility: function ( userId, visible ) { this.gradebookService.updateUserVisibility( userId, visible ); }, =20 _hasNewUsers: function(jsonBook) { if (!jsonBook || !jsonBook.rows) return false; for (var i =3D 0; i < jsonBook.rows.length; i++){ if (this.getRowByUserId(jsonBook.rows[i][0].uid) =3D=3D null) return = true; } return false; }, _containsUser: function(rows, userId) { for (var i =3D 0; i < rows.length; i++){ if (rows[i][0].uid =3D=3D userId) return true; } return false; }, _createColDef: function(jsonColDef,model,schemaMap) { if (jsonColDef.type =3D=3D "s"){ return new Gradebook.StudentAttributeColDef( jsonColDef, model, = schemaMap ); } else { return new Gradebook.GradeColDef( jsonColDef, model, schemaMap ); } }, _createSchema: function(type,jsonSchema) { if (type =3D=3D "S"){ return new Gradebook.NumericSchema( jsonSchema, this ); } else if (type =3D=3D "X") { return new Gradebook.TextSchema( jsonSchema, this ); } else if (type =3D=3D "P") { return new Gradebook.PercentageSchema( jsonSchema, this ); } else if (type =3D=3D "C") { return new Gradebook.CompleteIncompleteSchema( jsonSchema, this ); } else if (type =3D=3D "T") { return new Gradebook.LetterSchema( jsonSchema, this ); } else { GradebookUtil.debug('GridModel _createSchema invalid type: '+type); return null; } =09 }, _setStudentInfoLayout: function(){ // set pos & gbvis for student attribute columns from = studentInfoLayouts for (var i =3D 0; i < this.studentInfoLayouts.length; i++){ var colIndex =3D this.colDefMap[this.studentInfoLayouts[i].id];=20 if (colIndex =3D=3D=3D undefined){ continue; } var colDef =3D this.colDefs[colIndex]; colDef.gbvis =3D this.studentInfoLayouts[i].gbvis; colDef.pos =3D this.studentInfoLayouts[i].pos; } }, _loadRowDataFromJSON: function(jsonRow, colDefs, colDefMap){ // create a student attribute/grade for each column with a default = blank value var tempRow =3D new Array(); var userId =3D ''; if (jsonRow[0].uid){ userId =3D jsonRow[0].uid; } var metaData =3D new Gradebook.RowMetaData( userId ); // create a gridcell of appropriate type for each column in the row for (var i =3D 0; i < colDefs.length; i++){ if ( colDefs[i] instanceof Gradebook.GradeColDef )=20 tempRow[i] =3D new Gradebook.Grade( colDefs[i], metaData ); else tempRow[i] =3D new Gradebook.StudentAttribute( colDefs[i], metaData = ); } // populate cell data from json - may not include all cells (I.e. null = grades) for (var i =3D 0; i < jsonRow.length; i++){ //use json colDefID to get column index from map var colIndex =3D colDefMap[jsonRow[i].c]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _loadRowDataFromJSON jsonRow contains = data for invalid column id: '+jsonRow[i].c); continue; } //overwrite default value with json value =20 tempRow[colIndex]._loadFromJSON(jsonRow[i]); } return tempRow; }, =09 _updateRowDataFromJSON: function(thisRow, jsonRow, colDefs, colDefMap){ var metaData =3D thisRow[0].metaData; for (var i =3D 0; i < jsonRow.length; i++){ var colIndex =3D colDefMap[jsonRow[i].c]; var grade =3D thisRow[colIndex]; if (grade =3D=3D=3D undefined){ // new grade? if ( colDefs[colIndex] instanceof Gradebook.GradeColDef )=20 grade =3D new Gradebook.Grade( colDefs[colIndex], metaData ); else grade =3D new Gradebook.StudentAttribute( colDefs[colIndex], = metaData ); thisRow.push(grade); } colDefs[colIndex].comput_err =3D false; grade._loadFromJSON(jsonRow[i]); } }, =09 // called by view to get a window of row data // returns iterators to get row data in correct order while skipping = hidden columns getRowIterators: function(startRow, numRows, startCol) { var rows =3D this.visibleRows; if (!startRow) startRow =3D 0; if (!startCol) startCol =3D 0; if (!numRows) numRows =3D rows.length; var endRow =3D startRow + numRows if (startRow < 0 || startRow >=3D rows.length) { GradebookUtil.error('getRowIterators startRow out of range. Max is: = '+rows.length-1+' startRow is: '+startRow); return null; } if (numRows < 0 || numRows > rows.length) { GradebookUtil.error('getRowIterators numRows out of range. Max is: = '+rows.length+' numRows is: '+numRows); return null; } if (startCol < 0 || startCol >=3D this.colOrderMap.length) { GradebookUtil.error('getRowIterators startCol out of range. Max is: = '+this.orderMap.length+' startCol is: '+startCol); return null; } if ( endRow > rows.length){ endRow =3D rows.length GradebookUtil.error('Error: GridModel getRowIterators input args = requesting too much data. startRow =3D '+startRow+' numRows =3D = '+numRows+' rows.length =3D '+rows.length); return null; } var results =3D new Array() var index =3D 0; for ( var i=3DstartRow ; i < endRow; i++ ) { results[index++] =3D new = Gradebook.GridRowIterator(rows[i],this.colOrderMap,startCol); } return results; }, =09 // called by view to get the column definitions // returns iterator to get definitions in correct order while skipping = hidden columns getColDefIterator: function(startCol) { if (!startCol) startCol =3D 0; if (startCol < 0 || startCol >=3D this.colOrderMap.length) { GradebookUtil.error('getColDefIterator startCol out of range. Max is: = '+this.orderMap.length+' startCol is: '+startCol); return null; } return new = Gradebook.GridRowIterator(this.colDefs,this.colOrderMap,startCol); }, =09 // called by view to determine how much vertical scroll is needed getNumRows: function() { if (this.visibleRows) return this.visibleRows.length; else=20 return 0; }, // called by view to determine how much horizontal scroll is needed getNumColDefs: function() { return this.colOrderMap.length; }, // called by view to determine how many columns to freeze getNumFrozenColumns: function() { return this.numFrozenColumns; }, getSortDir: function(){ return this.sortDir; },=20 =09 getSortIndex: function(){ if (this.sortColumnId =3D=3D=3D undefined){ return -1; } var colnum =3D this.colDefMap[this.sortColumnId]; if (colnum =3D=3D=3D undefined){ return -1; } else { var sortColumn =3D this.colOrderMap[colnum]; if (sortColumn =3D=3D=3D undefined || this.colDefs[sortColumn] = =3D=3D=3D undefined || this.colDefs[sortColumn].deleted =3D=3D "Y"){ return -1; } else { return colnum; } } },=20 =09 reSort: function() { if (this.sortColumnId =3D=3D=3D undefined || this.sortDir =3D=3D=3D = undefined) return; var colnum =3D this.getSortIndex(); if (colnum =3D=3D -1) return; this.sort(colnum, this.sortDir); }, setDefaultView: function(view) { this.gradebookService.setDefaultView( view ); },=09 =09 getDefaultView: function() { // do not return a view that does not exist in model if (this.defCVID) { if ( this.customViewMap[ this.defCVID ] ) return 'cv_' + = this.defCVID; return null; } else if (this.defGPID){ if ( this.gradingPeriodMap && !this.gradingPeriodMap[ this.defGPID = ] ) return null; return this.defGPID; } else { return null; } },=09 =09 // changes the current view to a grading period or custom view // returns error string or null if no error changeCurrentView: function(view) { // null out customViewIdParam so that it will not override the view = set by the user next time the page is reloaded this.customViewIdParam =3D null; return this._internalChangeCurrentView(view); }, =09 _internalChangeCurrentView: function(view) { var origView =3D this.currentView; this.currentView =3D view; this.currentCustomView =3D null; this.currentGradingPeriodId =3D null; if (view.startsWith('cv_')){ var idx =3D this.customViewMap[view.substring(3)];=20 if (idx =3D=3D undefined){ if ( this.defCVID ) { var defaultView =3D 'cv_' + this.defCVID; if ( defaultView !=3D view ) { this._internalChangeCurrentView( defaultView ); } else { this.currentView =3D (this.currentView !=3D origView) ? origView = : null; return null; //this.getMessage('custViewDoesNotExistMsg'); } } else if (this.defGPID) { this._internalChangeCurrentView( this.defGPID ); } else { this.currentView =3D (this.currentView !=3D origView) ? origView : = null; return null; //this.getMessage('custViewDoesNotExistMsg'); } } else { if (!this.customViews[idx].evaluate()){ this.currentView =3D (this.currentView !=3D origView) ? origView : = null; return this.getMessage('changesEffectCustViewMsg'); } this.currentCustomView =3D this.customViews[idx]; } } else { if ( this.gradingPeriodMap && !this.gradingPeriodMap[ view ] )=20 { if ( this.defCVID ) { this._internalChangeCurrentView( 'cv_' + this.defCVID = ); } else if (this.defGPID && this.defGPID!=3Dview) { this._internalChangeCurrentView( this.defGPID ); } else { this.currentView =3D (this.currentView !=3D origView) ? origView : = null; this.currentGradingPeriodId =3D null; } return null; } this.currentGradingPeriodId =3D view; } return null; }, _applyCustomView: function() { if ( this.isolatedStudentId ) { this.visibleRows =3D new Array(); var row =3D this.getRowByUserId(this.isolatedStudentId); this.visibleRows.push( row ); } if(this.currentCustomView =3D=3D null || this.currentCustomView = =3D=3D undefined){ return; } this.currentCustomView.evaluate( this ); var userIds =3D this.currentCustomView.getUserIds(); if ( this.isolatedStudentId ) return; this.visibleRows =3D new Array(); // loop through custom view users and add to visibleRows for (var i =3D 0, len =3D userIds.length; i < len; i++){ var row =3D this.getRowByUserId(userIds[i]); if (row) this.visibleRows.push( row ); } }, =09 _buildGradingPeriodMap: function() { this.gradingPeriodMap =3D new Array(); if (this.gradingPeriods){ for (var i =3D 0, len =3D this.gradingPeriods.length; i < len; i++){ this.gradingPeriodMap[this.gradingPeriods[i].id] =3D = this.gradingPeriods[i]; =09 } this.gradingPeriods.sort( function(a,b){ var aa =3D a.name.toLowerCase(); var bb =3D b.name.toLowerCase(); if (aa =3D=3D bb) return 0; else if (aa < bb) return -1; else return 1; } ); } }, getCustomView: function(cvId) { var idx =3D this.customViewMap[cvId];=20 if (idx =3D=3D undefined){ return null; } else { return this.customViews[idx]; } }, getCurrentCustomView: function(cvId) { return this.currentCustomView; }, sortColumns: function(sortBy) { if (this.sortColAscending =3D=3D undefined){ this.sortColAscending =3D true; } =09 if (sortBy){ if (this.currentSortColumnBy =3D=3D sortBy){ this.sortColAscending =3D !this.sortColAscending; } else { this.sortColAscending =3D true; this.currentSortColumnBy =3D sortBy; } } else if (!this.currentSortColumnBy){ this.currentSortColumnBy =3D 'pos'; } var sortFunc =3D null; sortBy =3D this.currentSortColumnBy; if (sortBy =3D=3D 'pos'){ sortFunc =3D this._sortColByPosFunc.bind(this); } else if (sortBy =3D=3D 'categories'){ sortFunc =3D this._sortColByCategoriesFunc.bind(this); } else if (sortBy =3D=3D 'dueDate') { sortFunc =3D this._sortColByDueDateFunc.bind(this); } else if (sortBy =3D=3D 'creationdate') { sortFunc =3D this._sortColByCreationDateFunc.bind(this); } else if (sortBy =3D=3D 'points') { sortFunc =3D this._sortColByPointsFunc.bind(this); } else if (sortBy =3D=3D 'name') { sortFunc =3D this._sortColByNameFunc.bind(this); } =09 var tempColDefs =3D new Array(); =09 if(this.currentCustomView){ var colIds =3D this.currentCustomView.getDisplayItemIds(); tempColDefs =3D this._getVisibleToAll( = this.currentCustomView.includeHiddenItems, colIds ); for (var i =3D 0, len =3D colIds.length; i < len; i++){ var cd =3D this.colDefs[this.colDefMap[colIds[i]]]; tempColDefs.push(cd); } } else { // filter out colDefs that are: deleted, hidden, not in all grading = periods // or not in current grading period for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ var cd =3D this.colDefs[i]; if (cd.deleted || !cd.gbvis) continue; var cgp =3D this.currentGradingPeriodId; var ingp =3D (cgp =3D=3D undefined || cgp =3D=3D cd.gpid || cgp = =3D=3D 'all' || (cgp =3D=3D 'none' && cd.gpid =3D=3D '')); if (cd.visAll || !cd.isGrade() || ingp){ tempColDefs.push(cd); } } } tempColDefs.sort(sortFunc); // compute colOrderMap based on the sorted columns this.colOrderMap =3D new Array(); for (var i =3D 0, len =3D tempColDefs.length, idx =3D 0; i < len; = i++){ this.colOrderMap[idx++] =3D this.colDefMap[tempColDefs[i].id]; } =09 }, _getVisibleToAll: function( includeHidden, excludeIds ) { var tempColDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ var cd =3D this.colDefs[i]; if (excludeIds.indexOf( cd.id ) !=3D -1) continue; var visAll =3D cd.visAll || !cd.isGrade(); if (cd.deleted || !visAll || (!includeHidden && !cd.gbvis)) continue; tempColDefs.push(cd); } return tempColDefs; }, // if both a & b are NOT visible to all, returns null // if both a & b are visible to all, sorts by position // if a is visible to all, returns -1 so visible to all columns come = first // if b is visible to all, returns 1 so visible to all columns come = first _sortVisibleToAll: function(a,b) { var aVisAll =3D a.visAll || !a.isGrade(); var bVisAll =3D b.visAll || !b.isGrade(); if (!aVisAll && !bVisAll) { return null; } else if (aVisAll && bVisAll) { return a.pos - b.pos; } else if (aVisAll) { return -1; } else if (bVisAll) { return 1; } }, _sortColDir: function(result) { return (this.sortColAscending)?result:result*-1; }, _sortColByPosFunc: function(a,b) { var sf =3D this._sortVisibleToAll(a,b); if (sf !=3D null) return sf; var gpPosA =3D (a.gpid.blank())?-1:this.gradingPeriodMap[a.gpid].pos; = var gpPosB =3D (b.gpid.blank())?-1:this.gradingPeriodMap[b.gpid].pos;=09 var res;=09 if (gpPosA =3D=3D gpPosB){ res =3D a.pos - b.pos; } else if (gpPosA >=3D 0 && gpPosB >=3D 0){ res =3D gpPosA - gpPosB; } else if (gpPosB =3D=3D -1) { res =3D -1; } else { res =3D 1; } return this._sortColDir( res ); }, _sortColByPointsFunc: function(a,b) { var sf =3D this._sortVisibleToAll(a,b); if (sf !=3D null) return sf; var aa =3D a.points; var bb =3D b.points; var res;=09 if (aa=3D=3Dbb)=20 res =3D a.cdate - b.cdate; else if (aa=3D this.colOrderMap.length) { GradebookUtil.error('sort colnum out of range. Max is: = '+this.orderMap.length+' colnum is: '+colnum); return; } GradebookUtil.debug('GridModel sort called. colnum: '+colnum+' = sortdir: '+sortdir); this.sortDir =3D sortdir; var sortFunc; if (colnum =3D=3D -1){ this.sortColumnId =3D null; if (sortdir=3D=3D'ASC') sortFunc =3D this._sortCheckedASC.bind(this); else sortFunc =3D this._sortCheckedDESC.bind(this); } else { var sortColumn =3D this.colOrderMap[colnum]; var secondarySortColumn =3D this.colDefMap['LN']; var colDef =3D this.colDefs[sortColumn]; this.sortColumnId =3D colDef.id; if ( this.sortColumnId =3D=3D 'LN' ){ secondarySortColumn =3D this.colDefMap['FN']; } sortFunc =3D colDef.getSortFunction(sortColumn, sortdir, = secondarySortColumn); } this.visibleRows.sort(sortFunc); }, _sortCheckedASC: function(a,b) { var aa =3D a[0].isRowChecked()?1:0; var bb =3D b[0].isRowChecked()?1:0; if (aa=3D=3Dbb) return 0; if (aa=3D 0) { crsId =3D crsId.split("_")[1]; } var gradeCenterContentFrame =3D window.frames['gradecenterframe']; // = Grade Center Frame in SSL mode if (!gradeCenterContentFrame) gradeCenterContentFrame =3D = window.frames['content']; // regular course content frame if (!gradeCenterContentFrame.GradebookDWRFacade) = gradeCenterContentFrame =3D window.frames['content'].frames['main'];=20 gradeCenterContentFrame.GradebookDWRFacade.getGroups(crsId, = Gradebook.GridModel.prototype.updateGroupsCallback ); }, =20 updateGroupsCallback: function (retData) { var groupsMap =3D new Array(); var groups =3D new Array(); var h =3D $H(retData); h.each(function(pair) { var g =3D {}; g.id =3D pair.key; g.uids =3D pair.value; groupsMap[g.id] =3D groups.length; groups.push( g ); }); var model =3D Gradebook.getModel(); =20 model.groupsMap =3D groupsMap; model.groups =3D groups; }, =20 // used by reporting getReportData: function (reportDef) { // get rows for students to include in report var userIds =3D null; if (reportDef.students =3D=3D 'BYGROUPS'){ if ( reportDef.groupIds =3D=3D null ){ GradebookUtil.error('GridModel error getReportData: no = reportDef.groupIds'); return null; } userIds =3D this._getUserIdsByGroupIds( reportDef.groupIds ); } else if (reportDef.students =3D=3D 'BYSTUDENT') { if ( reportDef.studentIds =3D=3D null ){ GradebookUtil.error('GridModel error getReportData: no = reportDef.studentIds'); return null; } userIds =3D reportDef.studentIds; } var rows =3D this._getRowsByUserIds( userIds );=20 if ( !reportDef.includeHiddenStudents ) rows =3D this._removeHiddenStudents(rows); // get columns to include in report var colDefs =3D this.getColDefs(true,true); if (reportDef.columns =3D=3D 'BYITEM'){ colDefs =3D this._getColDefsById( reportDef.itemIds ); } else if (reportDef.columns =3D=3D 'BYGP'){ colDefs =3D this._getColDefsByGradingPeriodId( = reportDef.gradingPeriodIds ); } else if (reportDef.columns =3D=3D 'BYCAT'){ colDefs =3D this._getColDefsByCategoryId( reportDef.categoryIds ); } if (!reportDef.includeHiddenColumns){ colDefs =3D this._removeHiddenColumns( colDefs ); } // create return data structure var reportData =3D {}; reportData.columnInfoMap =3D new Array(); reportData.studentGradeInfo =3D new Array(); // add column data for (var i =3D 0, len =3D colDefs.length; i < len; i++){ var cdef =3D colDefs[i]; var cdata =3D {}; reportData.columnInfoMap[cdef.id] =3D cdata; cdata.name =3D cdef.getName(); if (reportDef.columnInfoDescription){ cdata.description =3D 'tbd'; // server will provide desc map } if (reportDef.columnInfoDueDate){ cdata.dueDate =3D cdef.getDueDate(); } if (reportDef.columnInfoStatsMedian || = reportDef.columnInfoStatsAverage){ var stats =3D cdef.getStats( true ); // include unavailable students cdata.statsMedian =3D stats.median; cdata.statsAverage =3D stats.avg; } } =09 // add student data for (var i =3D 0, len0 =3D rows.length; i < len0; i++){ var row =3D rows[i]; var rd =3D {}; reportData.studentGradeInfo.push(rd); =09 if (reportDef.firstName){ rd.firstName =3D this._getStudentAttribute( row, 'FN' ); } if (reportDef.lastName){ rd.lastName =3D this._getStudentAttribute( row, 'LN' ); } if ( reportDef.studentId ){ rd.studentId =3D this._getStudentAttribute( row, 'SI' ); } if ( reportDef.userName ){ rd.userName =3D this._getStudentAttribute( row, 'UN' ); } if ( reportDef.lastAccessed ){ rd.lastAccessed =3D this._getStudentAttribute( row, 'LA' ); if (rd.lastAccessed && rd.lastAccessed > 0){=20 var date =3D new Date(); date.setTime(rd.studentId); rd.lastAccessed =3D formatDate(date,'MMM d, y'); } } rd.grades =3D new Array(); for (var c =3D 0, len1 =3D colDefs.length; c < len1; c++){ var g =3D {}; g.cid =3D colDefs[c].id; var gridCell =3D this._getGrade( row, colDefs[c]); if (gridCell.attemptInProgress() && !gridCell.isOverride())=20 g.grade =3D this.getMessage('inProgressMsg'); else if (gridCell.needsGrading() && !gridCell.isOverride())=20 g.grade =3D this.getMessage('needsGradingMsg'); else=20 g.grade =3D gridCell.getCellValue(); rd.grades.push( g ); } } return reportData; }, _getGrade: function( row, colDef ) { var colIndex =3D this.colDefMap[colDef.id]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _getGrade invalid column id: = '+colDef.id); return null; } return row[colIndex]; }, _getStudentAttribute: function( row, colDefId ) { var colIndex =3D this.colDefMap[colDefId]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _getStudentAttribute invalid column = id: '+colDefId); return null; } return row[colIndex].getValue(); }, _removeHiddenStudents: function( students ) { var retStudents =3D new Array(); for (var i =3D 0, len =3D students.length; i < len; i++){ if (!students[i][0].isHidden()){=09 retStudents.push( students[i] ); } } return retStudents; }, _removeHiddenColumns: function( colDefs ) { var retColDefs =3D new Array(); for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if (!colDefs[i].isHidden()){=09 retColDefs.push( colDefs[i] ); } } return retColDefs; }, _getColDefsById: function( itemIds ) { var colDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ if (itemIds.indexOf( this.colDefs[i].id ) !=3D -1){=09 colDefs.push( this.colDefs[i] ); } } return colDefs; }, _getColDefsByCategoryId: function( categoryIds ) { var colDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ if (categoryIds.indexOf( this.colDefs[i].catid ) !=3D -1){=09 colDefs.push( this.colDefs[i] ); } } return colDefs; }, _getColDefsByGradingPeriodId: function( gradingPeriodIds ) { var colDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ if (gradingPeriodIds.indexOf( this.colDefs[i].gpid ) !=3D -1){=09 colDefs.push( this.colDefs[i] ); } } return colDefs; }, _getRowsByUserIds: function( userIds ) { var rows =3D this.rows; if (userIds =3D=3D null){ return rows; } var retRows =3D new Array(); for (var i =3D 0, len =3D rows.length; i < len; i++){ if (userIds.indexOf(rows[i][0].getUserId()) !=3D -1){ retRows.push(rows[i]); } } return retRows; }, _getUserIdsByGroupIds: function( groupIds ) { if ( !this.groupsMap || !this.groups ){ GradebookUtil.error('GridModel error getUserIdsByGroupIds: no = groups'); return null; } var userIds =3D new Array(); for (var i =3D 0; i < groupIds.length; i++){ var index =3D this.groupsMap[Number(groupIds[i])]; if (index =3D=3D undefined){ GradebookUtil.error('GridModel error getUserIdsByGroupIds: no group = for id: '+groupIds[i]); continue; } var group =3D this.groups[index]; for (var g =3D 0; g < group.uids.length; g++){ if (userIds.indexOf(group.uids[g]) =3D=3D -1){ userIds.push( String( group.uids[g] ) ); } } } return userIds; }, // called by student stats page getStudentStats: function( userId, currentViewOnly ) { var studentStats =3D {}; studentStats.catStats =3D new Array(); var catMap =3D new Array(); =09 // get columns, either all or current view var colDefs =3D new Array(); var len =3D currentViewOnly ? this.colOrderMap.length : = this.colDefs.length; for (var i =3D 0; i < len; i++){ var idx =3D currentViewOnly ? this.colOrderMap[i] : i; var c =3D this.colDefs[idx]; if (!c.deleted && c.isGrade() && !c.isCalculated()) { colDefs.push( c ); } } var row =3D this.getRowByUserId(userId); =09 for (var i =3D 0; i < colDefs.length; i++){ var colDef =3D colDefs[i]; var catId =3D colDef.getCategoryID(); var catStat =3D catMap[catId]; if (catStat =3D=3D null){ catStat =3D {}; catStat.name =3D colDef.getCategory(); catStat.qtyGraded =3D 0; catStat.qtyInProgress =3D 0; catStat.qtyNeedsGrading =3D 0; catStat.qtyExempt =3D 0; catStat.sum =3D 0; catStat.avg =3D 0; catMap[catId] =3D catStat; studentStats.catStats.push( catStat ); } var grade =3D this._getGrade( row, colDef); var val =3D grade.getSortValue(); var isNull =3D (val =3D=3D '-'); var isIP =3D grade.attemptInProgress(); var isNG =3D grade.needsGrading(); var isExempt =3D grade.isExempt(); var isVal =3D (!isNull && !isIP && !isNG && !isExempt); if (isIP)=20 catStat.qtyInProgress++; else if (isNG)=20 catStat.qtyNeedsGrading++; else if (isExempt)=20 catStat.qtyExempt++; =09 if (isVal){ catStat.qtyGraded++; if (colDef.isCalculated()){ val =3D parseFloat(val)/parseFloat(grade.getPointsPossible()) * = 100.0;=09 } catStat.sum +=3D parseFloat( val ); } } studentStats.numItemsCompleted =3D 0; var totNumExempt =3D 0; for (var i =3D 0; i < studentStats.catStats.length; i++){ var catStat =3D studentStats.catStats[i]; if (catStat.sum > 0){ catStat.avg =3D catStat.sum/parseFloat( catStat.qtyGraded ); catStat.avg =3D NumberFormatter.getDisplayFloat( = catStat.avg.toFixed(2) ); } totNumExempt +=3D catStat.qtyExempt; studentStats.numItemsCompleted +=3D (catStat.qtyNeedsGrading + = catStat.qtyGraded); } studentStats.numItems =3D colDefs.length - totNumExempt; return studentStats; }, getAccessibleMode: function() { return this.accessibleMode; }, =09 setAccessibleMode: function( accessibleMode ) { this.accessibleMode =3D accessibleMode; }, =09 setLoggerDebugLevel: function(logger) { this.logger.setLevel(top.content.log4javascript.Level.DEBUG); }, setLogger: function(logger) { this.logger =3D logger; }, getLogger: function() { return this.logger; }, setMessages: function (messages) { this.messages =3D messages; }, getMessage: function (key) { if (this.messages){ return this.messages[key]; } else { return key; } } }; Gradebook.RowMetaData =3D Class.create(); Gradebook.RowMetaData.prototype =3D { initialize: function(userId) { this.userId =3D userId; this.isChecked =3D false; this.isHidden =3D false; this.comput_err =3D false; } }; //////////////////////////// Column Defs = ////////////////////////////////////// Gradebook.ColDef =3D Class.create(); Gradebook.ColDef.prototype =3D { initialize: function(jsonObj, model, schemaMap) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object if (this.sid){ this.primarySchema =3D schemaMap[this.sid]; } if (this.ssid){ this.secondarySchema =3D schemaMap[this.ssid]; } }, getSortFunction: function(sortColumn, sortdir, secondarySortColumn) { this.sortColumn =3D sortColumn; this.secondarySortColumn =3D secondarySortColumn; if (sortdir=3D=3D'ASC') return this._sortASC.bind(this); else return this._sortDESC.bind(this); }, validate: function(newValue, matchPartial) { if (!this.primarySchema){ return null; } else { return this.primarySchema.validate(newValue, matchPartial); } }, _sortASC: function(a,b) { var aa =3D a[this.sortColumn].getValue(); var bb =3D b[this.sortColumn].getValue(); if( !aa && !bb ) return this._secondarySortASC(a,b); if( !aa ) return -1; if( !bb ) return 1; aa =3D aa.toUpperCase(); bb =3D bb.toUpperCase(); if (aa=3D=3Dbb)return this._secondarySortASC(a,b); if (aa('+cellVal2+')'; } =20 return new String(cellVal); }, // called by GridCell.getAltValue to get alt (mouse over) value for = rendering in spreadsheet // same as getCellValue unless there is a secondary schema getAltValue: function( gridCell ){ if (gridCell.isExempt()) { return this.model.getMessage('cmExemptGrade'); } =09 if (!this.secondarySchema){ return this.getCellValue( gridCell ); } var cellVal =3D this.primarySchema.getCellValue( gridCell ); if (this.secondarySchema){ var cellVal2 =3D this.secondarySchema.getCellValue( gridCell ); cellVal +=3D ' ('+cellVal2+')'; } return new String(cellVal); }, getSortValue: function( gridCell ){ return gridCell.getValue(); }, getName: function() { return this.name; }, getID: function() { return this.id; }, getPoints: function() { if ( this.isCalculated() )=20 return GradebookUtil.getMessage( 'variesPerStudentMsg' ); else return this.points; }, getAliasID: function() { return this.id; }, getCategoryID: function() { return this.catid; }, getCategory: function() { if (! this.catid ) return ""; if (! this.model.catNameMap ) return ""; var name =3D this.model.catNameMap[ Number(this.catid) ]; if ( name ) return name; return ""; }, getCategoryAliasID: function() { return this.catid; }, isHidden: function() { return !this.gbvis; }, isScorable: function() { return this.scrble; }, isPublic: function() { return (this.id =3D=3D this.model.pubColID); }, isVisibleToStudents: function() { return this.vis; }, onHideColumn: function( evt ) { Event.stop( evt ); this.gbvis =3D false; this.model.hideColumn(this.id); }, onSortAscending: function ( evt ) { Event.stop( evt ); this.cellController.onSortAscending(); }, =20 onSortDescending: function ( evt ) { Event.stop( evt ); this.cellController.onSortDescending(); }, =20 onToggleColumnStudentVisibility : function( evt ){ Event.stop( evt ); this.model.setColumnStudentVisibility( this.id, !this.vis ); this.cellController.closePopupsAndRestoreFocus(evt); }, getDisplayType: function( ) { return this.primarySchema.type; }, hasError: function( ) { return this.comput_err; }, =09 // called by model.getDisplayValue when external pages need to convert = a rawValue // This function passes this.points to schema.getDisplayValue.=20 // This method should not be called for this colDef if this colDef is a = calculated=20 // column, because we do not have access to the gridCell to get its max = points. // todo: determine how to handle error condition if this column is a = calulated col getDisplayValue: function( rawValue ) { if (this.primarySchema){ return this.primarySchema.getDisplayValue( rawValue, this.points ); } else { return rawValue; } } }; Gradebook.GradeColDef =3D Class.create(); Object.extend(Gradebook.GradeColDef.prototype, = Gradebook.ColDef.prototype); Object.extend (Gradebook.GradeColDef.prototype, { =20 initialize: function(jsonObj, model, schemaMap) { Gradebook.ColDef.prototype.initialize.call(this,jsonObj, model, = schemaMap); }, getRawValue: function( newValue ){ var score =3D newValue; // compute score based on primary schema if (this.primarySchema){ var rawValue =3D this.primarySchema.getRawValue(newValue,this); score =3D parseFloat( rawValue ); if (!GradebookUtil.isValidFloat( rawValue )){ if (typeof(rawValue) =3D=3D "string") return rawValue; score =3D 0; } } return score; }, getSortValue: function( gridCell ){ if (this.primarySchema){ return this.primarySchema.getSortValue( gridCell ); } else { return gridCell.getValue(); } }, updateGrade: function( newValue, userId ){ var score =3D this.getRawValue(newValue); var textValue =3D newValue; this.model.updateGrade(score, textValue, userId, this.id); }, _sortASC: function(a,b) { var gradeA =3D a[this.sortColumn]; var gradeB =3D b[this.sortColumn]; var aa =3D gradeA.getSortValue(); var bb =3D gradeB.getSortValue(); if (gradeA.colDef.primarySchema instanceof Gradebook.TextSchema){ if (aa=3D=3Dbb) return this._secondarySortASC(a,b); if (aa 0){=20 var date =3D new Date(); date.setTime(this.due); dueDate =3D formatDate(date,'MMM d, y'); } return dueDate; }, =09 // called by item stats page getStats: function ( includeUnavailableStudents ) { var grades =3D this.model._getGradesForItemId(this.id, = includeUnavailableStudents); if (this.primarySchema instanceof Gradebook.TextSchema){ grades =3D new Array(); } =09 var values =3D new Array(); var sum =3D 0; var stats =3D {}; stats.count =3D 0; stats.minVal =3D null; stats.maxVal =3D null; stats.qtyNull =3D 0; stats.qtyInProgress =3D 0; stats.qtyNeedsGrading =3D 0; stats.qtyExempt =3D 0; =09 for (var i =3D 0; i < grades.length; i++){ var grade =3D grades[i]; var val =3D grade.getSortValue(); var isNull =3D (val =3D=3D '-'); var isIP =3D grade.attemptInProgress(); var isNG =3D grade.needsGrading(); var isExempt =3D grade.isExempt(); var isVal =3D (!isNull && !isIP && !isNG && !isExempt); if (isIP)=20 stats.qtyInProgress++; else if (isNG)=20 stats.qtyNeedsGrading++; else if (isExempt)=20 stats.qtyExempt++; else if (isNull)=20 stats.qtyNull++; =09 if (isVal){ if (this.isCalculated()){ val =3D (parseFloat(val)/parseFloat(grade.getPointsPossible()) * = 100.0);=09 } values.push( val ); sum +=3D parseFloat( val ); stats.minVal =3D (stats.minVal =3D=3D null) ? val : Math.min( val, = stats.minVal); stats.maxVal =3D (stats.maxVal =3D=3D null) ? val : Math.max( val, = stats.maxVal); } } stats.count =3D values.length; =09 if (values.length =3D=3D 0){ stats.avg =3D ''; stats.range =3D ''; stats.minVal =3D ''; stats.maxVal =3D ''; stats.median =3D ''; stats.variance =3D ''; stats.stdDev =3D ''; } else { stats.avg =3D sum/values.length; stats.range =3D stats.maxVal - stats.minVal; =09 values.sort( Gradebook.numberComparator ); if (values.length =3D=3D 1){ stats.median =3D values[0]; } else if (values.length % 2){ // number of values is odd, the median is the middle value stats.median =3D values[parseInt(values.length/2)]; } else { // number of values is even, the median is the average of the two = middle values stats.median =3D (values[values.length/2-1] + = values[values.length/2])/2; } stats.variance =3D this._computeVariance( values, stats.avg ); stats.stdDev =3D Math.sqrt( stats.variance ); stats.maxVal =3D this._formatFloat( stats.maxVal ); stats.minVal =3D this._formatFloat( stats.minVal ); stats.avg =3D this._formatFloat( stats.avg ); stats.range =3D this._formatFloat( stats.range ); stats.median =3D this._formatFloat( stats.median ); stats.variance =3D this._formatFloat( stats.variance ); stats.stdDev =3D this._formatFloat( stats.stdDev ); } stats.gradeDistribution =3D this.primarySchema.getGradeDistribution( = values, this.points, stats ); return stats; }, _formatFloat: function( f ) { try { if ( f !=3D null )=20 return NumberFormatter.getDisplayFloat( f.toFixed(2) ); } catch ( e ) { //ignore and return the current value=20 } return f; =09 }, _computeVariance: function( values, average ) { var sumXMeanSquare =3D 0; for (var i =3D 0; i < values.length; i++){ var xMean =3D values[i] - average; sumXMeanSquare +=3D (xMean * xMean); } return sumXMeanSquare / values.length; }, =09 getInfo: function() { var publicLabel; if (this.isPublic()) publicLabel =3D GradebookUtil.getMessage('isMsg'); else publicLabel =3D GradebookUtil.getMessage('isNotMsg'); var includedInCalculationsLabel; if (this.isScorable()) includedInCalculationsLabel =3D GradebookUtil.getMessage('yesMsg'); else includedInCalculationsLabel =3D GradebookUtil.getMessage('noMsg'); var points; if ( this.isCalculated() ) points =3D GradebookUtil.getMessage( 'variesPerStudentMsg' ); else points =3D NumberFormatter.getDisplayFloat( this.points ); var info =3D [ {id: "itemInfoId", value: this.getID()}, =20 {id: "itemInfoName", value: this.name}, {id: "itemInfoCategory", value: this.getCategory()}, {id: "itemInfoSchema", value: this.primarySchema.name}, {id: "itemInfoPoints", value: (points=3D=3D0?"-":points)}, {id: "itemInfoPublic", value: publicLabel}, {id: "itemInfoIncludedInCalculations", value: = includedInCalculationsLabel}, {id: "itemInfoDueDate", value: this.getDueDate()} ]; return info; } }); Gradebook.StudentAttributeColDef =3D Class.create(); Object.extend(Gradebook.StudentAttributeColDef.prototype, = Gradebook.ColDef.prototype); Object.extend (Gradebook.StudentAttributeColDef.prototype, { =20 initialize: function(jsonObj, model, schemaMap) { Gradebook.ColDef.prototype.initialize.call(this,jsonObj, model, = schemaMap); this.vis =3D true; }, isGrade: function() { return false; }, isCalculated: function() { return false; }, =09 isTotal: function() { return false; }, =09 isWeighted: function() { return false; }, =09 getType: function() { return "student"; }, =09 // called by GridCell.getCellValue to get value for rendering in = spreadsheet // format date for last access column, all other columns just return = gridcell value getCellValue: function( gridCell ){ var cellVal =3D gridCell.getValue(); if (this.id =3D=3D 'LA'){ // last accessed column var dueDate =3D ''; if (cellVal && cellVal > 0){=20 var date =3D new Date(); date.setTime(cellVal); cellVal =3D formatDate(date,'MMM d, y'); } } return cellVal; }, getRawValue: function( newValue ){ return newValue; }, updateUserVisibility: function ( userId, visible ) { this.model.updateUserVisibility( userId, visible ); }, =20 getContextMenuInfo: function(cellController) { this.cellController =3D cellController; var canHide =3D (this.model.colOrderMap[0] !=3D = this.model.colDefMap[this.id]); var menu =3D { id: "studentInfoHeaderCM", items: [ {id: "sih_sortAscending", visible:true, onclick: this.onSortAscending.bindAsEventListener(this)}, {id: "sih_sortDescending", visible:true, onclick: this.onSortDescending.bindAsEventListener(this)}, {id: "sih_hideColumn", visible:canHide, onclick: this.onHideColumn.bindAsEventListener(this), receipt: = 'hideColumnInlineMsg' } ]}; return menu; =09 } }); //////////////////////////// Grid Cells = ////////////////////////////////////// Gradebook.GridCell =3D Class.create(); Gradebook.GridCell.prototype =3D { =09 initialize: function(colDef, metaData) { this.colDef =3D colDef; this.metaData =3D metaData; this.v =3D "-"; this.canBeEdited =3D true; this.isBeingEdited =3D false; this.isUncommitted =3D false; if (this.colDef.id =3D=3D 'UN'){ this.metaData.userNameGridCell =3D this; } }, _loadFromJSON: function(jsonObj) { this.gc =3D null; // grade change flag this.ip =3D null; // in progress flag this.ng =3D null; // needs grading flag this.or =3D null; // override flag this.x =3D null; // exempt flag cleared if ( !(jsonObj.avail =3D=3D=3D undefined) ){ this.metaData.avail =3D jsonObj.avail; } Object.extend(this, jsonObj); // assign json properties to this object }, =09 getUserId: function() { return this.metaData.userId; }, getUserName: function() { return this.metaData.userNameGridCell.v; }, =09 isHidden: function() { return this.metaData.isHidden; }, =09 setHidden: function( h ) { this.metaData.isHidden =3D h; }, =09 isRowChecked: function() { return this.metaData.isChecked; }, =09 setRowChecked: function(c) { this.metaData.isChecked =3D c; }, =09 invertChecked: function() { this.metaData.isChecked =3D !this.metaData.isChecked; }, =09 isAvailable: function() { return this.metaData.avail; }, isGrade: function() { return (this.colDef.isGrade()); }, =09 isOverride: function() { return (this.or && this.or =3D=3D "y"); }, =09 needsGrading: function() { return (this.ng !=3D null && this.ng && this.ng =3D=3D "y"); }, =09 attemptInProgress: function() { return (this.ip !=3D null && this.ip && this.ip =3D=3D "y"); }, =09 isModified: function() { return (this.gc && this.gc =3D=3D "y"); }, isGraded: function() { var tv =3D this.getTextValue(); return (tv !=3D '-' && tv.length > 0); }, =09 isComplete: function() { if (this.colDef.primarySchema instanceof = Gradebook.CompleteIncompleteSchema){ return this.isGraded(); }else{ =09 return false; } }, isExempt: function() { return (this.x =3D=3D "y"); }, validate: function(newValue, matchPartial) { return this.colDef.validate(newValue, matchPartial); }, =09 update: function(newValue) { this.isUncommitted =3D true; this.gc =3D "y"; this.colDef.updateGrade( newValue, this.getUserId() ); }, // called by CellController.renderHTML to get value for spreadsheet getCellValue: function() { return this.colDef.getCellValue( this ); }, // called by GridCell.getAltValue to get alt (mouse over) value for = rendering in spreadsheet getAltValue: function(){ if ( this.isGrade() && !this.isGraded() ) return = GradebookUtil.getMessage('noGradeMsg'); return this.colDef.getAltValue( this ); }, // called by CellController.startEdit to get input value for editing getEditValue: function() { return this.colDef.getEditValue( this ); }, getSortValue: function() { return this.colDef.getSortValue( this ); }, getPointsPossible: function() { if (this.mp){ return this.mp; } else if (this.colDef.points){ return this.colDef.points; } else { return 0; } }, getTextValue: function() { if (this.tv) { return this.tv; } else { return '-'; } }, getValue: function() { return this.v; } };=09 Gradebook.Grade =3D Class.create(); Object.extend(Gradebook.Grade.prototype, Gradebook.GridCell.prototype); Object.extend (Gradebook.Grade.prototype, { =20 initialize: function(colDef, metaData) { Gradebook.GridCell.prototype.initialize.call(this,colDef, metaData); }, =09 canEdit: function(){ return (!this.colDef.isCalculated() && = !this.colDef.isHideAttemptScore()&& !this.savingDiv); }, showGradeDetails: function( evt ){ Event.stop( evt ); this.colDef.showGradeDetails( this.getUserId() ); }, =09 onAddComment: function(evt){ this.cellController.addGradeComment(evt, this); this.colDef.onAddComment( this.getUserId() ); }, =09 exemptGrade: function(evt){ Event.stop( evt ); this.cellController.stopEdit(false, true); this.colDef.exemptGrade( this.getUserId(), this ); this.cellController.closePopupsAndRestoreFocus(evt) }, =09 clearExemption: function(evt){ Event.stop( evt ); this.colDef.clearExemption( this.getUserId() ); this.cellController.closePopupsAndRestoreFocus(evt); }, onClearModified: function( evt ){ Event.stop( evt ); this.clearModifiedIndicator( ); this.colDef.clearModifiedIndicator( this.getUserId() ); this.cellController.closePopupsAndRestoreFocus(evt); }, =09 clearModifiedIndicator: function(){ this.gc =3D null; if (this.cellController){ this.cellController.renderHTML(this); } }, =09 setComments: function(studentComments, instructorComments){ this.colDef.setComments( this.getUserId(), studentComments, = instructorComments ); }, =09 getContextMenuInfo: function(cellController) { if (this.colDef.isCalculated()){ return null; } this.cellController =3D cellController; // Can add comments for non-null manual column grades &=20 // system column grades that have been overridden var isManual =3D this.colDef.isManual(); var isExempt =3D this.isExempt(); var canAddComment =3D (isManual && this.v !=3D '-') || (!isManual && = this.isOverride()) || isExempt; var menu =3D { id: "gradeCM", items: [ {id: "g_360View", visible:true, onclick: this.showGradeDetails.bindAsEventListener(this)}, {id: "g_addComment", visible: canAddComment, onclick: this.onAddComment.bindAsEventListener(this)}, {id: "g_clearModified", visible:(this.isModified()), onclick: this.onClearModified.bindAsEventListener(this)}, {id: "g_exemptGrade", visible: !isExempt, onclick: this.exemptGrade.bindAsEventListener(this)}, {id: "g_clearExemption", visible: isExempt, onclick: this.clearExemption.bindAsEventListener(this)} ]}; return menu; =09 } }); Gradebook.StudentAttribute =3D Class.create(); Object.extend(Gradebook.StudentAttribute.prototype, = Gradebook.GridCell.prototype); Object.extend (Gradebook.StudentAttribute.prototype, { =20 initialize: function(colDef, metaData) { Gradebook.GridCell.prototype.initialize.call(this,colDef, metaData); }, =09 onSendEmail: function( evt ){ Event.stop( evt ); var ids =3D new Array() ids[0] =3D this.getUserId(); this.cellController.sendEmail('S',ids); }, =09 onShowUser: function( evt ){ Event.stop( evt ); this.colDef.updateUserVisibility( this.getUserId(), true ); }, =09 onHideOtherStudents: function( evt ){ Event.stop( evt ); this.colDef.model.viewSingleStudentGrades( this.getUserId() ); }, =09 onShowAllRows: function( evt ){ Event.stop( evt ); this.colDef.model.restoreFromSingleStudentView(); }, =09 onStudentStats: function( evt ){ Event.stop( evt ); this.colDef.model.viewStudentStats( this.getUserId() ); }, =09 onHideUser: function( evt ){ Event.stop( evt ); this.colDef.updateUserVisibility( this.getUserId(), false ); }, =09 onAdaptiveReleaseUser: function( evt ){ Event.stop( evt ); this.colDef.model.viewAdaptiveRelease( this.getUserName() ); }, =09 canEdit: function(){ return false; }, =09 getContextMenuInfo: function(cellController) { this.cellController =3D cellController; var menu =3D { id: "studentInfoCM", items: [ {id: "si_studentHideOtherStudents", = visible:this.colDef.model.isolatedStudentId?false:true, onclick: this.onHideOtherStudents.bindAsEventListener(this)}, {id: "si_showAllRows", = visible:this.colDef.model.isolatedStudentId?true:false, onclick: this.onShowAllRows.bindAsEventListener(this)}, {id: "si_studentStats", visible:true, onclick: this.onStudentStats.bindAsEventListener(this)}, {id: "si_adaptiveReleaseColumn", visible:true, onclick: this.onAdaptiveReleaseUser.bindAsEventListener(this)}, {id: "si_sendEmail", visible:true, onclick: this.onSendEmail.bindAsEventListener(this)}, {id: "si_hideUser", visible:!this.isHidden(), onclick: this.onHideUser.bindAsEventListener(this), receipt: 'hideStudentInlineMsg'}, {id: "si_showUser", visible:this.isHidden(), onclick: this.onShowUser.bindAsEventListener(this)} ]}; return menu; =09 } }); //////////////////////////// Schemas = ////////////////////////////////////// Gradebook.NumericSchema =3D Class.create(); Gradebook.NumericSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 getGradeDistribution: function( grades, points, stats ){ return Gradebook.PercentageSchema.prototype.getGradeDistribution( = grades, points, stats ); }, =09 // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getValue(), = gridCell.getPointsPossible());=09 }, =09 // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, getSortValue: function( gridCell ){ return gridCell.getValue();=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (rawValue =3D=3D '-' || rawValue.length =3D=3D 0){ return rawValue; } return NumberFormatter.getDisplayFloat( = parseFloat(rawValue).toFixed(2) ) }, getRawValue: function(displayValue,colDef) { return NumberFormatter.getDotFloat( displayValue ); }, validate: function(newValue, matchPartial) { if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; var val =3D NumberFormatter.getDotFloat( newValue ); if (!GradebookUtil.isValidFloat( val )){ return GradebookUtil.getMessage('invalidNumberErrorMsg'); } val =3D ''+val; var idx =3D val.indexOf('.'); if (idx > -1 && (val.length - idx - 1) > 4) return GradebookUtil.getMessage('tooManyDecimalPlacesErrorMsg'); else { return null; } } }; Gradebook.TextSchema =3D Class.create(); Gradebook.TextSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, getGradeDistribution: function( grades, points, stats ){ return null; }, =09 // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getTextValue(), = gridCell.getPointsPossible());=09 }, getSortValue: function( gridCell ){ var tv =3D gridCell.getTextValue().toUpperCase(); //if (tv =3D=3D '-') tv =3D ''; return tv;=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ return rawValue;=09 }, getRawValue: function(displayValue,colDef) { return displayValue; }, validate: function(newValue, matchPartial) { // is any value bad? return null; } }; Gradebook.PercentageSchema =3D Class.create(); Gradebook.PercentageSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 // called by ColDef.getStats=20 getGradeDistribution: function( grades, points, stats ){ var dist =3D new Array(); var range =3D new Array(); range.count =3D 0; range.text =3D 'less than 0'; dist.push( range ); for (var i =3D 0; i < 10; i++){ range =3D new Array(); range.count =3D 0; range.low =3D (i * 10); range.high =3D (i * 10) + ((i < 9)?9:10); range.text =3D range.low + ' - ' + range.high; dist.push( range ); } var range =3D new Array(); range.count =3D 0; range.text =3D 'greater than 100'; dist.push( range ); for (var i =3D 0, len =3D grades.length; i < len; i++){ var percent =3D (points)?(parseFloat(grades[i])/parseFloat(points) * = 100.0) : parseFloat(grades[i]);=09 if (percent =3D=3D 100) percent -=3D 0.1; // 100 should fall into = 90-100 bin var index =3D parseInt(percent/10.0) + 1; if (percent < 0) index =3D 0; if (percent > 100) index =3D 11; dist[index].count++; } dist.reverse(); return dist; }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getValue(), = gridCell.getPointsPossible());=09 }, // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, getSortValue: function( gridCell ){ return gridCell.getValue();=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (parseFloat(points) =3D=3D 0.0 || rawValue =3D=3D '-' || = rawValue.length =3D=3D 0){ return rawValue; } var percent =3D parseFloat(rawValue)/parseFloat(points) * 100.0;=09 return NumberFormatter.getDisplayFloat( parseFloat(percent).toFixed(2) = )+'%';=09 }, getRawValue: function(displayValue,colDef) { var points =3D (colDef.points)?colDef.points:100; displayValue =3D displayValue.replace('%',''); displayValue =3D NumberFormatter.getDotFloat( displayValue ); return parseFloat(displayValue)/100.0 * parseFloat(points);=09 }, validate: function(newValue, matchPartial) { newValue =3D newValue.replace('%',''); if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; var val =3D NumberFormatter.getDotFloat( newValue ); if (!GradebookUtil.isValidFloat( val )){ return GradebookUtil.getMessage('invalidNumberErrorMsg'); } val =3D ''+val; var idx =3D val.indexOf('.'); if (idx > -1 && (val.length - idx - 1) > 4) return GradebookUtil.getMessage('tooManyDecimalPlacesErrorMsg'); else { return null; } } }; Gradebook.CompleteIncompleteSchema =3D Class.create(); Gradebook.CompleteIncompleteSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 // called by ColDef.getStats=20 getGradeDistribution: function( grades, points, stats ){ var dist =3D new Array(); var range =3D new Array(); range.count =3D stats.qtyNull; range.text =3D 'Incomplete'; dist.push( range ); range =3D new Array(); range.count =3D grades.length; range.text =3D 'Complete'; dist.push( range ); dist.reverse(); return dist; }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getTextValue(), = gridCell.getPointsPossible());=09 }, // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return gridCell.getValue(); }, getSortValue: function( gridCell ){ var tv =3D gridCell.getTextValue().toUpperCase(); if (tv =3D=3D '-'){ return '-'; } else { return gridCell.getValue(); } }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (rawValue !=3D '-' && rawValue.length > 0){ return ''; } else { return '-'; } }, getRawValue: function(displayValue,colDef) { return displayValue; }, validate: function(newValue, matchPartial) { if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; // todo: determine what is allowed. I.E. is "-" allowed? // allow empty string or number // return (newValue.length =3D=3D 0 || parseFloat(newValue)); if (!GradebookUtil.isValidFloat(newValue)){ return GradebookUtil.getMessage('invalidNumberErrorMsg'); } else { return null; } } }; Gradebook.LetterSchema =3D Class.create(); Gradebook.LetterSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 // called by ColDef.getStats=20 getGradeDistribution: function( grades, points, stats ){ var dist =3D new Array(); var symMap =3D new Array(); this.symbols.each(function(s) { var range =3D new Array(); range.count =3D 0; range.text =3D s.sym; symMap[s.sym] =3D dist.length; dist.push( range ); }); for (var i =3D 0, len =3D grades.length; i < len; i++){ var val =3D this.getDisplayValue(grades[i], points);=09 var index =3D symMap[val]; if (index !=3D undefined){ dist[index].count++; } } return dist; }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getValue(), = gridCell.getPointsPossible());=09 }, // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, getSortValue: function( gridCell ){ return gridCell.getValue();=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (parseFloat(points) =3D=3D 0.0 || rawValue =3D=3D '-' || = rawValue.length =3D=3D 0){ return rawValue; } var percent =3D parseFloat(rawValue)/parseFloat(points) * 100.0;=09 percent =3D percent.toFixed(2);=09 if (!parseFloat(percent) && percent !=3D 0){ // see if raw value is one of the symbols var matchingSymbol; rawValue =3D rawValue.toUpperCase(); this.symbols.each(function(s) { if (rawValue =3D=3D s.sym.toUpperCase()){ matchingSymbol =3D s.sym; throw $break; // needed to get out of each loop } }); if (matchingSymbol){ return matchingSymbol; } else { return rawValue; } } var retVal =3D rawValue; this.symbols.each(function(s) { if (percent >=3D s.lb && percent <=3D s.ub){ retVal =3D s.sym; throw $break; // needed to get out of each loop } }); return retVal; }, getRawValue: function(displayValue,colDef) { //What it SHOULD be doing is: //Column created with Letter as primary display and secondary display of = % - worth 10 points //Enter A - go to schema and determine that A =3D 95% use 95% to = determine score of 9.5 - store 9.5 and display A //Enter 9 - determine the 9 is 90% (item is out of 10) 90% is an A - = store 9 and display A=20 var points =3D (colDef.points)?colDef.points:100; displayValue =3D ''+displayValue; displayValue =3D displayValue.replace('%',''); var score =3D displayValue.toUpperCase(); var score; this.symbols.each(function(s) { if (score =3D=3D s.sym.toUpperCase()){ score =3D (parseFloat(s.abs)/100.0) * points; throw $break; // needed to get out of each loop } }); return score; }, validate: function(newValue, matchPartial) { if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; // allow numeric value for letter schemas too if (GradebookUtil.isValidFloat(newValue)){ return null; } var retVal =3D GradebookUtil.getMessage('invalidLetterErrorMsg'); newValue =3D newValue.toUpperCase(); this.symbols.each(function(s) { if (newValue =3D=3D s.sym.toUpperCase() ||=20 (matchPartial && s.sym.toUpperCase().startsWith(newValue)) ){ retVal =3D null; throw $break; // needed to get out of each loop } }); return retVal; } }; //////////////////////////// Custom View = ////////////////////////////////////// Gradebook.CustomView =3D Class.create(); Gradebook.CustomView.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =20 // evaluate this custom view; determine userIds & itemIds for view // returns false if the formula cannot be evaluated, else true evaluate: function( ) { try { if ( this.definition ) { var ext =3D eval('({'+ this.definition+'})' ); Object.extend( this, ext ); this.definition =3D null; } this.userIds =3D new Array(); this.colIds =3D new Array(); this.aliasMap =3D new Array(); for (var i =3D 0, len =3D this.aliases.length; i < len; i++){ this.aliasMap[this.aliases[i].key] =3D this.aliases[i].val; } if (this.formula){ this._evaluateAdvanced(); } else { this._evaluateBasic(); } this._computeDisplayItems(); return true; } catch (e) { alert(this.model.getMessage('custViewRenderErrorMsg')); return false; } }, usesGroups: function( ) { for (var i =3D 0, len =3D this.aliases.length; i < len; i++){ if (this.aliases[i].key.startsWith('gr')){ return true; } } return false; }, getUserIds: function() { return this.userIds; }, getDisplayItemIds: function() { return this.colIds; }, _computeDisplayItems: function() { // map aliased ids to real ids if (this.display.ids){ this.display.unAliasedIds =3D new Array(); for (var i =3D 0, len =3D this.display.ids.length; i < len; i++){ var id =3D this.aliasMap[this.display.ids[i]];=09 if (id =3D=3D undefined) throw 'missing alias'; this.display.unAliasedIds.push( id ); } } var colDefs =3D this.model.getColDefs( false, this.display.showhidden = ); var dispType =3D this.display.items.toUpperCase(); if (dispType =3D=3D "BYITEM"){=20 this.colIds =3D this._getItemsById(); } else if (dispType =3D=3D "INCRI"){ // in criteria this.colIds =3D this._getItemsInCriteria(); } else if (dispType =3D=3D "BYCAT"){ // by category this.colIds =3D this._getItemsByCategoryId( colDefs ); } else if (dispType =3D=3D "BYGP"){ // by grading period this.colIds =3D this._getItemsByGradingPeriodId( colDefs ); } else if (dispType =3D=3D "ALLITEM"){ this.colIds =3D this._getAllItems( colDefs ); } else if (dispType =3D=3D "IVS"){ this.colIds =3D this._getItemsByVisibilityToStudents( colDefs, true = ); } else if (dispType =3D=3D "INVS"){ this.colIds =3D this._getItemsByVisibilityToStudents( colDefs, false = ); } else if (dispType =3D=3D "NOITEM"){=20 this.colIds =3D new Array() } }, _getItemsById: function() { return this.display.unAliasedIds;=09 }, _getItemsInCriteria: function() { var itemIds =3D new Array(); // get items that are used in criteria; which are in aliases for (var i =3D 0, len =3D this.aliases.length; i < len; i++){ if (this.aliases[i].key.startsWith('I_')){ itemIds.push( this.aliases[i].val ); } } return itemIds; }, _getItemsByCategoryId: function( colDefs ) { var itemIds =3D new Array(); // get items that have category id in display.ids for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if (this.display.unAliasedIds.indexOf( colDefs[i].catid ) !=3D -1){=09 itemIds.push( colDefs[i].id ); } } return itemIds; }, _getItemsByGradingPeriodId: function( colDefs ) { var itemIds =3D new Array(); // get items that have grading period id in display.ids for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if (this.display.unAliasedIds.indexOf( colDefs[i].gpid ) !=3D -1){=09 itemIds.push( colDefs[i].id ); } } return itemIds; }, _getItemsByVisibilityToStudents: function( colDefs, vis ) { var itemIds =3D new Array(); // get items that have grading period id in display.ids for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if ( colDefs[i].vis =3D=3D vis ){=09 itemIds.push( colDefs[i].id ); } } return itemIds; }, _getAllItems: function( colDefs ) { var itemIds =3D new Array(); for (var i =3D 0, len =3D colDefs.length; i < len; i++){ itemIds.push( colDefs[i].id ); } return itemIds; }, _evaluateBasic: function() { if ( this.students.userIds && this.students.userIds[0] !=3D "all") { var uids =3D this.students.userIds; for (var i =3D 0, len =3D uids.length; i < len; i++){ var id =3D this.aliasMap[uids[i]]; if (id =3D=3D undefined) throw 'missing alias' this.userIds.push( id ); } } else { // all students var showstuhidden =3D this.students.showstuhidden; var modelStudents =3D this.model.getStudents( showstuhidden ); for (var i =3D 0, len =3D modelStudents.length; i < len; i++){ this.userIds.push( modelStudents[i].id ); } } }, _evaluateAdvanced: function() { // lazily compute postfix formula & criteriaMap if (!this.postFixFormula){ this.postFixFormula =3D this.infix2postfix( this.formula ); } if (!this.criteriaMap){ this.criteriaMap =3D new Array(); for (var i =3D 0, len =3D this.criteria.length; i < len; i++){ this.criteriaMap[this.criteria[i].fid] =3D i; } } // test each row and add to userIds if it passes formula var rows =3D this.model.rows; for (var i =3D 0, len =3D rows.length; i < len; i++){ if ( this._evaluateFormulaForRow( rows[i] ) ){ this.userIds.push( rows[i][0].getUserId() ); } } }, _evaluateFormulaForRow: function( row )=20 { // only one criteria in formula if (this.postFixFormula.length =3D=3D 1){ return this._evalCriteria( this.postFixFormula[0], row ); } // evaluate postfix formula: // * push non-operators on stack // * when operators are encountered: // pop two operands off stack // evaluate operands (criteria) // apply operator to the two evaluated operands // store result on stack // * pop & return final result var stack =3D new Array(); for (var i =3D 0, len =3D this.postFixFormula.length; i < len; i++){ var tok =3D this.postFixFormula[i]; switch (tok){ case "AND":=20 case "OR":=20 if (stack.length < 2) throw (this.model.getMessage('custViewStackEmptyMsg') + tok); var op2 =3D stack.pop(); var op1 =3D stack.pop(); var firstValue =3D op1 ; if ( typeof(op1) =3D=3D 'string' ) firstValue =3D = this._evalCriteria( op1, row ); var secondValue =3D op2;=20 if ( typeof(op2) =3D=3D 'string' ) secondValue =3D = this._evalCriteria( op2, row ); if (tok =3D=3D "AND")=20 stack.push( ( firstValue && secondValue) ); else if (tok =3D=3D "OR") stack.push( (firstValue || secondValue) ); break; default: stack.push(tok);=20 break; } } if (stack.length !=3D 1) throw this.model.getMessage('custViewUnableToEvaluateMsg'); else return stack.pop(); }, _getAliasOrId: function( id ) { if ( id.startsWith('I_') || id.startsWith('c_') || = id.startsWith('gp_')=20 || id.startsWith('gr_') || id.startsWith('st_') ){ return this.aliasMap[id];=09 } else { return id; } =09 }, _evalCriteria: function( fid, row )=20 { // look up criteria by fid var crit =3D this.criteria[ this.criteriaMap[fid] ];=09 var colId =3D this._getAliasOrId( crit.cid );=09 if (colId =3D=3D undefined){ throw 'missing alias' } var colDefMap =3D this.model.colDefMap; var colIdx =3D colDefMap[colId]; if ( colId =3D=3D 'SV' || colId =3D=3D 'GM') colIdx =3D 0; if (colIdx =3D=3D undefined) { throw 'missing alias' } var gridCell =3D row[colIdx]; var evalFunc =3D this._getEvalCriteriaFunc( crit ); return evalFunc( crit, gridCell ); }, _evalAvailableCriteria: function( crit, gridCell )=20 { var avail =3D (gridCell.isAvailable())?"A":"U"; return crit.value =3D=3D avail;=09 }, _evalStatusCriteria: function( crit, gridCell )=20 { if (crit.value =3D=3D 'IP') return gridCell.attemptInProgress(); else if (crit.value =3D=3D 'NG') return gridCell.needsGrading(); else if (crit.value =3D=3D 'NU') return gridCell.getSortValue() =3D=3D '-'; else if (crit.value =3D=3D 'X') return gridCell.isExempt(); }, _evalStudentVisibleCriteria: function( crit, gridCell )=20 { var avail =3D (gridCell.isHidden())?"H":"V"; return crit.value =3D=3D avail;=09 }, _evalGroupMembershipCriteria: function( crit, gridCell )=20 { // There may be 1 or more values passed. We allow multiple selection = of Groups var result =3D (crit.cond =3D=3D "eq") ? false : true; var groupNames =3D crit.value.split(","); for (var i =3D 0, len =3D groupNames.length; i < len; i++) { var groupId =3D this.aliasMap[groupNames[i]]; if (groupId =3D=3D undefined) throw 'missing alias' var userId =3D gridCell.getUserId(); var inGroup =3D this._userIsInGroup( userId, groupId ); result =3D ( (crit.cond =3D=3D "eq") ? result || inGroup : result && = !inGroup ) ; } return result; }, _evalLastAccessedCriteria: function( crit, gridCell )=20 { var cellVal =3D gridCell.getSortValue(); if (crit.cond =3D=3D "eq"){ var numMSecPerDay =3D 1000*60*60*24; var v1 =3D parseInt(cellVal/numMSecPerDay); var v2 =3D parseInt(crit.value/numMSecPerDay); return (v1 =3D=3D v2); } else if (crit.cond =3D=3D "be") return (cellVal < crit.value); else if (crit.cond =3D=3D "af") return (cellVal > crit.value); }, _defaultEvalCriteria: function( crit, gridCell )=20 { var cellVal =3D gridCell.getSortValue(); if (gridCell.attemptInProgress() || gridCell.needsGrading() || = (cellVal =3D=3D '-') || gridCell.isExempt()) { return false; } var operator =3D crit.cond; var critVal =3D gridCell.colDef.getRawValue( crit.value ); if (this._isNumber(cellVal) && this._isNumber(critVal)) { var dblCellVal =3D this._toNumber(cellVal); var dblCritVal =3D this._toNumber(critVal); var dblCritVal2 =3D (crit.value2 !=3D = undefined)?this._toNumber(gridCell.colDef.getRawValue( crit.value2 )):0; if (operator =3D=3D "eq") return (dblCellVal =3D=3D dblCritVal); else if (operator =3D=3D "neq") return (dblCellVal !=3D dblCritVal); else if (operator =3D=3D "gt") return (dblCellVal > dblCritVal); else if (operator =3D=3D "lt") return (dblCellVal < dblCritVal); else if (operator =3D=3D "le") return (dblCellVal <=3D dblCritVal); else if (operator =3D=3D "ge") return (dblCellVal >=3D dblCritVal); else if (operator =3D=3D "bet") return ((dblCritVal <=3D dblCellVal) && (dblCellVal <=3D = dblCritVal2)) ; } else if (typeof(cellVal) =3D=3D "string" && typeof(critVal) = =3D=3D "string") { cellVal =3D cellVal.toUpperCase(); critVal =3D critVal.toUpperCase(); if (operator =3D=3D "eq") return (cellVal =3D=3D critVal); else if (operator =3D=3D "neq") return (cellVal !=3D critVal); else if (operator =3D=3D "bw") return (cellVal.startsWith( critVal )); else if (operator =3D=3D "con") return (cellVal.indexOf( critVal ) !=3D -1 ); } else throw (this.model.getMessage('custViewDataTypeMismatchMsg')+' = '+crit.fid); }, _getEvalCriteriaFunc: function( crit )=20 { if (!this.evalCriteriaFuncMap) { this.evalCriteriaFuncMap =3D new Array(); this.evalCriteriaFuncMap["AV"] =3D = this._evalAvailableCriteria.bind(this); this.evalCriteriaFuncMap["SV"] =3D = this._evalStudentVisibleCriteria.bind(this); this.evalCriteriaFuncMap["LA"] =3D = this._evalLastAccessedCriteria.bind(this); this.evalCriteriaFuncMap["GM"] =3D = this._evalGroupMembershipCriteria.bind(this); } var func =3D this.evalCriteriaFuncMap[crit.cid]; if (!func)=20 { if (crit.cond =3D=3D 'se') { func =3D this._evalStatusCriteria.bind(this); } else { func =3D this._defaultEvalCriteria.bind(this); } } return func;=09 }, _userIsInGroup: function( userId, groupId )=20 { userId =3D Number( userId ); var groups =3D this.model.groups; for (var i =3D 0, len =3D groups.length; i < len; i++){ if ( groups[i].id =3D=3D groupId ){ return (groups[i].uids.indexOf( userId ) !=3D -1); } } return false; }, getValidationError: function( f , criteriaLst )=20 { try=20 { var postFix =3D this.infix2postfix( f,criteriaLst ); return null; }=20 catch (e) { return e; } }, infix2postfix: function( formula,criteriaLst )=20 { var f =3D formula; f =3D f.gsub( /\(/,' ( '); // add spaces around parens f =3D f.gsub( /\)/,' ) '); // add spaces around parens var a =3D $w(f); // split into array var stack =3D new Array(); var out =3D new Array(); for (var i =3D 0, len =3D a.length; i < len; i++){ var tok =3D a[i].toUpperCase(); switch (tok){ case "AND":=20 case "OR":=20 while( this._isOperator(stack[stack.length-1]) ){ out.push(stack.pop());=20 } stack.push(tok.toUpperCase());=20 break; case "(":=20 stack.push(tok);=20 break; case ")":=20 foundStart =3D false; while(stack.length > 0){ tok =3D stack.pop();=20 if ( tok =3D=3D "(" ){ foundStart =3D true; break; } else { out.push(tok);=20 } } if (stack.length =3D=3D 0 && !foundStart) throw (this.model.getMessage('custViewMismatchedParensMsg')+' = '+this.name); break; default: if ( criteriaLst && criteriaLst.indexOf(tok) =3D=3D -1 )=20 throw this.model.getMessage('criteriaNotFoundMsg'); out.push(tok);=20 break; } } while(stack.length > 0){ tok =3D stack.pop(); if (tok =3D=3D '(') throw (this.model.getMessage('custViewMismatchedParensMsg')+' = '+this.name); out.push(tok);=20 } return out; }, =09 _isOperator: function(s) { return (s=3D=3D'OR' || s=3D=3D'AND'); }, _isNumber: function( s ) { return (isNaN( new Number(s) ) ? false : = true); }, _toNumber: function( s )=20 { if (typeof(s) =3D=3D "number") return s; else { var n =3D new Number(s); return n.valueOf(); } } }; //////////////////////////// Utility = ////////////////////////////////////// Gradebook.GridRowIterator =3D Class.create(); Gradebook.GridRowIterator.prototype =3D { initialize: function(dataArray, orderMap, startIndex) { this.dataArray =3D dataArray; this.orderMap =3D orderMap; this.currentIndex =3D startIndex; }, hasNext: function() {return this.currentIndex < this.orderMap.length;}, next: function() { if (this.currentIndex >=3D this.orderMap.length) { GradebookUtil.error('GridRowIterator out of data. length =3D = '+this.orderMap.length); return null; } return this.dataArray[this.orderMap[this.currentIndex++]]; } }; Gradebook.numberComparator =3D function( a, b ) { return a - b; } var NumberFormatter =3D { =20 // usually called from frameset scope and re-set when grid is = initialized with grid page LOCALE SETTINGS needToConvert: ( ( window.LOCALE_SETTINGS ) ? = LOCALE_SETTINGS.getString('number_format.decimal_point') =3D=3D ',' : = page.bundle.getString('number_format.decimal_point') =3D=3D ','), =20 getDisplayFloat: function ( f ) { if (!NumberFormatter.needToConvert) return f; f =3D ''+f; return f.replace('.',','); }, getDotFloat: function ( f ) { if (!NumberFormatter.needToConvert) return f; f =3D ''+f; return f.replace(',','.'); } }; ------=_NextPart_000_0000_01CA341B.AF3F6810--
") =3D=3D 0) {=0A= text =3D text.substring(5, text.length - 7);=0A= }=0A= return text;=0A= };=0A= =0A= /** @private Some more text might have come in, test and execute the new = stuff */=0A= dwr.engine._processCometResponse =3D function(response, batch) {=0A= if (batch.charsProcessed =3D=3D response.length) return;=0A= if (response.length =3D=3D 0) {=0A= batch.charsProcessed =3D 0;=0A= return;=0A= }=0A= =0A= var firstStartTag =3D response.indexOf("//#DWR-START#", = batch.charsProcessed);=0A= if (firstStartTag =3D=3D -1) {=0A= // dwr.engine._debug("No start tag (search from " + = batch.charsProcessed + "). skipping '" + = response.substring(batch.charsProcessed) + "'");=0A= batch.charsProcessed =3D response.length;=0A= return;=0A= }=0A= // if (firstStartTag > 0) {=0A= // dwr.engine._debug("Start tag not at start (search from " + = batch.charsProcessed + "). skipping '" + = response.substring(batch.charsProcessed, firstStartTag) + "'");=0A= // }=0A= =0A= var lastEndTag =3D response.lastIndexOf("//#DWR-END#");=0A= if (lastEndTag =3D=3D -1) {=0A= // dwr.engine._debug("No end tag. unchanged charsProcessed=3D" + = batch.charsProcessed);=0A= return;=0A= }=0A= =0A= // Skip the end tag too for next time, remembering CR and LF=0A= if (response.charCodeAt(lastEndTag + 11) =3D=3D 13 && = response.charCodeAt(lastEndTag + 12) =3D=3D 10) {=0A= batch.charsProcessed =3D lastEndTag + 13;=0A= }=0A= else {=0A= batch.charsProcessed =3D lastEndTag + 11;=0A= }=0A= =0A= var exec =3D response.substring(firstStartTag + 13, lastEndTag);=0A= =0A= dwr.engine._receivedBatch =3D batch;=0A= dwr.engine._eval(exec);=0A= dwr.engine._receivedBatch =3D null;=0A= };=0A= =0A= /** @private Actually send the block of data in the batch object. */=0A= dwr.engine._sendData =3D function(batch) {=0A= batch.map.batchId =3D dwr.engine._nextBatchId;=0A= dwr.engine._nextBatchId++;=0A= dwr.engine._batches[batch.map.batchId] =3D batch;=0A= dwr.engine._batchesLength++;=0A= batch.completed =3D false;=0A= =0A= for (var i =3D 0; i < batch.preHooks.length; i++) {=0A= batch.preHooks[i]();=0A= }=0A= batch.preHooks =3D null;=0A= // Set a timeout=0A= if (batch.timeout && batch.timeout !=3D 0) {=0A= batch.timeoutId =3D setTimeout(function() { = dwr.engine._abortRequest(batch); }, batch.timeout);=0A= }=0A= // Get setup for XMLHttpRequest if possible=0A= if (batch.rpcType =3D=3D dwr.engine.XMLHttpRequest) {=0A= if (window.XMLHttpRequest) {=0A= batch.req =3D new XMLHttpRequest();=0A= }=0A= // IE5 for the mac claims to support window.ActiveXObject, but = throws an error when it's used=0A= else if (window.ActiveXObject && = !(navigator.userAgent.indexOf("Mac") >=3D 0 && = navigator.userAgent.indexOf("MSIE") >=3D 0)) {=0A= batch.req =3D dwr.engine._newActiveXObject(dwr.engine._XMLHTTP);=0A= }=0A= }=0A= =0A= var prop, request;=0A= if (batch.req) {=0A= // Proceed using XMLHttpRequest=0A= if (batch.async) {=0A= batch.req.onreadystatechange =3D function() {=0A= if (typeof dwr !=3D 'undefined') dwr.engine._stateChange(batch);=0A= };=0A= }=0A= // If we're polling, record this for monitoring=0A= if (batch.isPoll) {=0A= dwr.engine._pollReq =3D batch.req;=0A= // In IE XHR is an ActiveX control so you can't augment it like = this=0A= if (!(document.all && !window.opera)) batch.req.batch =3D batch;=0A= }=0A= // Workaround for Safari 1.x POST bug=0A= var indexSafari =3D navigator.userAgent.indexOf("Safari/");=0A= if (indexSafari >=3D 0) {=0A= var version =3D navigator.userAgent.substring(indexSafari + 7);=0A= if (parseInt(version, 10) < 400) {=0A= if (dwr.engine._allowGetForSafariButMakeForgeryEasier =3D=3D = "true") batch.httpMethod =3D "GET";=0A= else dwr.engine._handleWarning(batch, { = name:"dwr.engine.oldSafari", message:"Safari GET support disabled. See = getahead.org/dwr/server/servlet and = allowGetForSafariButMakeForgeryEasier." });=0A= }=0A= }=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModePlainPoll : = dwr.engine._ModePlainCall;=0A= request =3D dwr.engine._constructRequest(batch);=0A= try {=0A= batch.req.open(batch.httpMethod, request.url, batch.async);=0A= try {=0A= for (prop in batch.headers) {=0A= var value =3D batch.headers[prop];=0A= if (typeof value =3D=3D "string") = batch.req.setRequestHeader(prop, value);=0A= }=0A= if (!batch.headers["Content-Type"]) = batch.req.setRequestHeader("Content-Type", "text/plain");=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= }=0A= batch.req.send(request.body);=0A= if (!batch.async) dwr.engine._stateChange(batch);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleError(batch, ex);=0A= }=0A= }=0A= else if (batch.rpcType !=3D dwr.engine.ScriptTag) {=0A= var idname =3D batch.isPoll ? "dwr-if-poll-" + batch.map.batchId : = "dwr-if-" + batch.map.batchId;=0A= // Removed htmlfile implementation. Don't expect it to return before = v3=0A= batch.div =3D document.createElement("div");=0A= // Add the div to the document first, otherwise IE 6 will ignore = onload handler.=0A= document.body.appendChild(batch.div);=0A= batch.div.innerHTML =3D "";=0A= batch.document =3D document;=0A= batch.iframe =3D batch.document.getElementById(idname);=0A= batch.iframe.batch =3D batch;=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModeHtmlPoll : = dwr.engine._ModeHtmlCall;=0A= if (batch.isPoll) dwr.engine._outstandingIFrames.push(batch.iframe);=0A= request =3D dwr.engine._constructRequest(batch);=0A= if (batch.httpMethod =3D=3D "GET") {=0A= batch.iframe.setAttribute("src", request.url);=0A= }=0A= else {=0A= batch.form =3D batch.document.createElement("form");=0A= batch.form.setAttribute("id", "dwr-form");=0A= batch.form.setAttribute("action", request.url);=0A= batch.form.setAttribute("style", "display:none;");=0A= batch.form.setAttribute("target", idname);=0A= batch.form.target =3D idname;=0A= batch.form.setAttribute("method", batch.httpMethod);=0A= for (prop in batch.map) {=0A= var value =3D batch.map[prop];=0A= if (typeof value !=3D "function") {=0A= var formInput =3D batch.document.createElement("input");=0A= formInput.setAttribute("type", "hidden");=0A= formInput.setAttribute("name", prop);=0A= formInput.setAttribute("value", value);=0A= batch.form.appendChild(formInput);=0A= }=0A= }=0A= batch.document.body.appendChild(batch.form);=0A= batch.form.submit();=0A= }=0A= }=0A= else {=0A= batch.httpMethod =3D "GET"; // There's no such thing as ScriptTag = using POST=0A= batch.mode =3D batch.isPoll ? dwr.engine._ModePlainPoll : = dwr.engine._ModePlainCall;=0A= request =3D dwr.engine._constructRequest(batch);=0A= batch.script =3D document.createElement("script");=0A= batch.script.id =3D "dwr-st-" + batch.map["c0-id"];=0A= batch.script.src =3D request.url;=0A= document.body.appendChild(batch.script);=0A= }=0A= };=0A= =0A= dwr.engine._ModePlainCall =3D "/call/plaincall/";=0A= dwr.engine._ModeHtmlCall =3D "/call/htmlcall/";=0A= dwr.engine._ModePlainPoll =3D "/call/plainpoll/";=0A= dwr.engine._ModeHtmlPoll =3D "/call/htmlpoll/";=0A= =0A= /** @private Work out what the URL should look like */=0A= dwr.engine._constructRequest =3D function(batch) {=0A= // A quick string to help people that use web log analysers=0A= var request =3D { url:batch.path + batch.mode, body:null };=0A= if (batch.isPoll =3D=3D true) {=0A= request.url +=3D "ReverseAjax.dwr";=0A= }=0A= else if (batch.map.callCount =3D=3D 1) {=0A= request.url +=3D batch.map["c0-scriptName"] + "." + = batch.map["c0-methodName"] + ".dwr";=0A= }=0A= else {=0A= request.url +=3D "Multiple." + batch.map.callCount + ".dwr";=0A= }=0A= // Play nice with url re-writing=0A= var sessionMatch =3D location.href.match(/jsessionid=3D([^?]+)/);=0A= if (sessionMatch !=3D null) {=0A= request.url +=3D ";jsessionid=3D" + sessionMatch[1];=0A= }=0A= =0A= var prop;=0A= if (batch.httpMethod =3D=3D "GET") {=0A= // Some browsers (Opera/Safari2) seem to fail to convert the = callCount value=0A= // to a string in the loop below so we do it manually here.=0A= batch.map.callCount =3D "" + batch.map.callCount;=0A= request.url +=3D "?";=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= request.url +=3D encodeURIComponent(prop) + "=3D" + = encodeURIComponent(batch.map[prop]) + "&";=0A= }=0A= }=0A= request.url =3D request.url.substring(0, request.url.length - 1);=0A= }=0A= else {=0A= // PERFORMANCE: for iframe mode this is thrown away.=0A= request.body =3D "";=0A= if (document.all && !window.opera) {=0A= // Use array joining on IE (fastest)=0A= var buf =3D [];=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= buf.push(prop + "=3D" + batch.map[prop] + = dwr.engine._postSeperator);=0A= }=0A= }=0A= request.body =3D buf.join("");=0A= }=0A= else {=0A= // Use string concat on other browsers (fastest)=0A= for (prop in batch.map) {=0A= if (typeof batch.map[prop] !=3D "function") {=0A= request.body +=3D prop + "=3D" + batch.map[prop] + = dwr.engine._postSeperator;=0A= }=0A= }=0A= }=0A= request.body =3D dwr.engine._contentRewriteHandler(request.body);=0A= }=0A= request.url =3D dwr.engine._urlRewriteHandler(request.url);=0A= return request;=0A= };=0A= =0A= /** @private Called by XMLHttpRequest to indicate that something has = happened */=0A= dwr.engine._stateChange =3D function(batch) {=0A= var toEval;=0A= =0A= if (batch.completed) {=0A= dwr.engine._debug("Error: _stateChange() with batch.completed");=0A= return;=0A= }=0A= =0A= var req =3D batch.req;=0A= try {=0A= if (req.readyState !=3D 4) return;=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= // It's broken - clear up and forget this call=0A= dwr.engine._clearUp(batch);=0A= return;=0A= }=0A= =0A= if (dwr.engine._unloading) {=0A= dwr.engine._debug("Ignoring reply from server as page is = unloading.");=0A= return;=0A= }=0A= =0A= try {=0A= var reply =3D req.responseText;=0A= reply =3D dwr.engine._replyRewriteHandler(reply);=0A= var status =3D req.status; // causes Mozilla to except on page moves=0A= =0A= if (reply =3D=3D null || reply =3D=3D "") {=0A= dwr.engine._handleWarning(batch, { name:"dwr.engine.missingData", = message:"No data received from server" });=0A= }=0A= else if (status !=3D 200) {=0A= dwr.engine._handleError(batch, { name:"dwr.engine.http." + status, = message:req.statusText });=0A= }=0A= else {=0A= var contentType =3D req.getResponseHeader("Content-Type");=0A= if (!contentType.match(/^text\/plain/) && = !contentType.match(/^text\/javascript/)) {=0A= if (contentType.match(/^text\/html/) && typeof = batch.textHtmlHandler =3D=3D "function") {=0A= batch.textHtmlHandler({ status:status, responseText:reply, = contentType:contentType });=0A= }=0A= else {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.invalidMimeType", message:"Invalid content type: '" + = contentType + "'" });=0A= }=0A= }=0A= else {=0A= // Comet replies might have already partially executed=0A= if (batch.isPoll && batch.map.partialResponse =3D=3D = dwr.engine._partialResponseYes) {=0A= dwr.engine._processCometResponse(reply, batch);=0A= }=0A= else {=0A= if (reply.search("//#DWR") =3D=3D -1) {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.invalidReply", message:"Invalid reply from server" });=0A= }=0A= else {=0A= toEval =3D reply;=0A= }=0A= }=0A= }=0A= }=0A= }=0A= catch (ex) {=0A= dwr.engine._handleWarning(batch, ex);=0A= }=0A= =0A= dwr.engine._callPostHooks(batch);=0A= =0A= // Outside of the try/catch so errors propogate normally:=0A= dwr.engine._receivedBatch =3D batch;=0A= if (toEval !=3D null) toEval =3D = toEval.replace(dwr.engine._scriptTagProtection, "");=0A= dwr.engine._eval(toEval);=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._validateBatch(batch);=0A= if (!batch.completed) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /**=0A= * @private This function is invoked when a batch reply is received.=0A= * It checks that there is a response for every call in the batch. = Otherwise,=0A= * an error will be signaled (a call without a response indicates that = the =0A= * server failed to send complete batch response). =0A= */=0A= dwr.engine._validateBatch =3D function(batch) {=0A= // If some call left unreplied, report an error.=0A= if (!batch.completed) {=0A= for (var i =3D 0; i < batch.map.callCount; i++) {=0A= if (batch.handlers[i] !=3D null) {=0A= dwr.engine._handleWarning(batch, { = name:"dwr.engine.incompleteReply", message:"Incomplete reply from = server" });=0A= break;=0A= }=0A= }=0A= }=0A= }=0A= =0A= /** @private Called from iframe onload, check batch using batch-id */=0A= dwr.engine._iframeLoadingComplete =3D function(batchId) {=0A= // dwr.engine._checkCometPoll();=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch) dwr.engine._validateBatch(batch);=0A= }=0A= =0A= /** @private Called by the server: Execute a callback */=0A= dwr.engine._remoteHandleCallback =3D function(batchId, callId, reply) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch =3D=3D null) {=0A= dwr.engine._debug("Warning: batch =3D=3D null in = remoteHandleCallback for batchId=3D" + batchId, true);=0A= return;=0A= }=0A= // Error handlers inside here indicate an error that is nothing to do=0A= // with DWR so we handle them differently.=0A= try {=0A= var handlers =3D batch.handlers[callId];=0A= batch.handlers[callId] =3D null;=0A= if (!handlers) {=0A= dwr.engine._debug("Warning: Missing handlers. callId=3D" + callId, = true);=0A= }=0A= else if (typeof handlers.callback =3D=3D "function") = handlers.callback(reply);=0A= }=0A= catch (ex) {=0A= dwr.engine._handleError(batch, ex);=0A= }=0A= };=0A= =0A= /** @private Called by the server: Handle an exception for a call */=0A= dwr.engine._remoteHandleException =3D function(batchId, callId, ex) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= if (batch =3D=3D null) { dwr.engine._debug("Warning: null batch in = remoteHandleException", true); return; }=0A= var handlers =3D batch.handlers[callId];=0A= batch.handlers[callId] =3D null;=0A= if (handlers =3D=3D null) { dwr.engine._debug("Warning: null handlers = in remoteHandleException", true); return; }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= if (typeof handlers.exceptionHandler =3D=3D "function") = handlers.exceptionHandler(ex.message, ex);=0A= else if (typeof batch.errorHandler =3D=3D "function") = batch.errorHandler(ex.message, ex);=0A= };=0A= =0A= /** @private Called by the server: The whole batch is broken */=0A= dwr.engine._remoteHandleBatchException =3D function(ex, batchId) {=0A= var searchBatch =3D (dwr.engine._receivedBatch =3D=3D null && batchId = !=3D null);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D dwr.engine._batches[batchId];=0A= }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= dwr.engine._handleError(dwr.engine._receivedBatch, ex);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._clearUp(dwr.engine._batches[batchId]);=0A= }=0A= };=0A= =0A= /** @private Called by the server: Reverse ajax should not be used */=0A= dwr.engine._remotePollCometDisabled =3D function(ex, batchId) {=0A= dwr.engine.setActiveReverseAjax(false);=0A= var searchBatch =3D (dwr.engine._receivedBatch =3D=3D null && batchId = !=3D null);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D dwr.engine._batches[batchId];=0A= }=0A= if (ex.message =3D=3D undefined) ex.message =3D "";=0A= dwr.engine._handleError(dwr.engine._receivedBatch, ex);=0A= if (searchBatch) {=0A= dwr.engine._receivedBatch =3D null;=0A= dwr.engine._clearUp(dwr.engine._batches[batchId]);=0A= }=0A= };=0A= =0A= /** @private Called by the server: An IFrame reply is about to start */=0A= dwr.engine._remoteBeginIFrameResponse =3D function(iframe, batchId) {=0A= if (iframe !=3D null) dwr.engine._receivedBatch =3D iframe.batch;=0A= dwr.engine._callPostHooks(dwr.engine._receivedBatch);=0A= };=0A= =0A= /** @private Called by the server: An IFrame reply is just completing */=0A= dwr.engine._remoteEndIFrameResponse =3D function(batchId) {=0A= dwr.engine._clearUp(dwr.engine._receivedBatch);=0A= dwr.engine._receivedBatch =3D null;=0A= };=0A= =0A= /** @private This is a hack to make the context be this window */=0A= dwr.engine._eval =3D function(script) {=0A= if (script =3D=3D null) return null;=0A= if (script =3D=3D "") { dwr.engine._debug("Warning: blank script", = true); return null; }=0A= // dwr.engine._debug("Exec: [" + script + "]", true);=0A= return eval(script);=0A= };=0A= =0A= /** @private Called as a result of a request timeout */=0A= dwr.engine._abortRequest =3D function(batch) {=0A= if (batch && !batch.completed) {=0A= dwr.engine._clearUp(batch);=0A= if (batch.req) batch.req.abort();=0A= dwr.engine._handleError(batch, { name:"dwr.engine.timeout", = message:"Timeout" });=0A= }=0A= };=0A= =0A= /** @private call all the post hooks for a batch */=0A= dwr.engine._callPostHooks =3D function(batch) {=0A= if (batch.postHooks) {=0A= for (var i =3D 0; i < batch.postHooks.length; i++) {=0A= batch.postHooks[i]();=0A= }=0A= batch.postHooks =3D null;=0A= }=0A= };=0A= =0A= /** @private A call has finished by whatever means and we need to shut = it all down. */=0A= dwr.engine._clearUp =3D function(batch) {=0A= if (!batch) { dwr.engine._debug("Warning: null batch in = dwr.engine._clearUp()", true); return; }=0A= if (batch.completed) { dwr.engine._debug("Warning: Double complete", = true); return; }=0A= =0A= // IFrame tidyup=0A= if (batch.div) batch.div.parentNode.removeChild(batch.div);=0A= if (batch.iframe) {=0A= // If this is a poll frame then stop comet polling=0A= for (var i =3D 0; i < dwr.engine._outstandingIFrames.length; i++) {=0A= if (dwr.engine._outstandingIFrames[i] =3D=3D batch.iframe) {=0A= dwr.engine._outstandingIFrames.splice(i, 1);=0A= }=0A= }=0A= batch.iframe.parentNode.removeChild(batch.iframe);=0A= }=0A= if (batch.form) batch.form.parentNode.removeChild(batch.form);=0A= =0A= // XHR tidyup: avoid IE handles increase=0A= if (batch.req) {=0A= // If this is a poll frame then stop comet polling=0A= if (batch.req =3D=3D dwr.engine._pollReq) dwr.engine._pollReq =3D = null;=0A= delete batch.req;=0A= }=0A= =0A= // Timeout tidyup=0A= if (batch.timeoutId) {=0A= clearTimeout(batch.timeoutId);=0A= delete batch.timeoutId;=0A= }=0A= =0A= if (batch.map && (batch.map.batchId || batch.map.batchId =3D=3D 0)) {=0A= delete dwr.engine._batches[batch.map.batchId];=0A= dwr.engine._batchesLength--;=0A= }=0A= =0A= batch.completed =3D true;=0A= =0A= // If there is anything on the queue waiting to go out, then send it.=0A= // We don't need to check for ordered mode, here because when ordered = mode=0A= // gets turned off, we still process *waiting* batches in an ordered = way.=0A= if (dwr.engine._batchQueue.length !=3D 0) {=0A= var sendbatch =3D dwr.engine._batchQueue.shift();=0A= dwr.engine._sendData(sendbatch);=0A= }=0A= };=0A= =0A= /** @private Abort any XHRs in progress at page unload (solves zombie = socket problems in IE). */=0A= dwr.engine._unloader =3D function() {=0A= dwr.engine._unloading =3D true;=0A= =0A= // Empty queue of waiting ordered requests=0A= dwr.engine._batchQueue.length =3D 0;=0A= =0A= // Abort any ongoing XHRs and clear their batches=0A= for (var batchId in dwr.engine._batches) {=0A= var batch =3D dwr.engine._batches[batchId];=0A= // Only process objects that look like batches (avoid prototype = additions!)=0A= if (batch && batch.map) {=0A= if (batch.req) {=0A= batch.req.abort();=0A= }=0A= dwr.engine._clearUp(batch);=0A= }=0A= }=0A= };=0A= // Now register the unload handler=0A= if (window.addEventListener) window.addEventListener('unload', = dwr.engine._unloader, false);=0A= else if (window.attachEvent) window.attachEvent('onunload', = dwr.engine._unloader);=0A= =0A= /** @private Generic error handling routing to save having null checks = everywhere */=0A= dwr.engine._handleError =3D function(batch, ex) {=0A= if (typeof ex =3D=3D "string") ex =3D { name:"unknown", message:ex };=0A= if (ex.message =3D=3D null) ex.message =3D "";=0A= if (ex.name =3D=3D null) ex.name =3D "unknown";=0A= if (batch && typeof batch.errorHandler =3D=3D "function") = batch.errorHandler(ex.message, ex);=0A= else if (dwr.engine._errorHandler) = dwr.engine._errorHandler(ex.message, ex);=0A= if (batch) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /** @private Generic error handling routing to save having null checks = everywhere */=0A= dwr.engine._handleWarning =3D function(batch, ex) {=0A= if (typeof ex =3D=3D "string") ex =3D { name:"unknown", message:ex };=0A= if (ex.message =3D=3D null) ex.message =3D "";=0A= if (ex.name =3D=3D null) ex.name =3D "unknown";=0A= if (batch && typeof batch.warningHandler =3D=3D "function") = batch.warningHandler(ex.message, ex);=0A= else if (dwr.engine._warningHandler) = dwr.engine._warningHandler(ex.message, ex);=0A= if (batch) dwr.engine._clearUp(batch);=0A= };=0A= =0A= /**=0A= * @private Marshall a data item=0A= * @param batch A map of variables to how they have been marshalled=0A= * @param referto An array of already marshalled variables to prevent = recurrsion=0A= * @param data The data to be marshalled=0A= * @param name The name of the data being marshalled=0A= */=0A= dwr.engine._serializeAll =3D function(batch, referto, data, name) {=0A= if (data =3D=3D null) {=0A= batch.map[name] =3D "null:null";=0A= return;=0A= }=0A= =0A= switch (typeof data) {=0A= case "boolean":=0A= batch.map[name] =3D "boolean:" + data;=0A= break;=0A= case "number":=0A= batch.map[name] =3D "number:" + data;=0A= break;=0A= case "string":=0A= batch.map[name] =3D "string:" + encodeURIComponent(data);=0A= break;=0A= case "object":=0A= if (data instanceof String) batch.map[name] =3D "String:" + = encodeURIComponent(data);=0A= else if (data instanceof Boolean) batch.map[name] =3D "Boolean:" + = data;=0A= else if (data instanceof Number) batch.map[name] =3D "Number:" + = data;=0A= else if (data instanceof Date) batch.map[name] =3D "Date:" + = data.getTime();=0A= else if (data && data.join) batch.map[name] =3D = dwr.engine._serializeArray(batch, referto, data, name);=0A= else batch.map[name] =3D dwr.engine._serializeObject(batch, referto, = data, name);=0A= break;=0A= case "function":=0A= // We just ignore functions.=0A= break;=0A= default:=0A= dwr.engine._handleWarning(null, { name:"dwr.engine.unexpectedType", = message:"Unexpected type: " + typeof data + ", attempting default = converter." });=0A= batch.map[name] =3D "default:" + data;=0A= break;=0A= }=0A= };=0A= =0A= /** @private Have we already converted this object? */=0A= dwr.engine._lookup =3D function(referto, data, name) {=0A= var lookup;=0A= // Can't use a map: getahead.org/ajax/javascript-gotchas=0A= for (var i =3D 0; i < referto.length; i++) {=0A= if (referto[i].data =3D=3D data) {=0A= lookup =3D referto[i];=0A= break;=0A= }=0A= }=0A= if (lookup) return "reference:" + lookup.name;=0A= referto.push({ data:data, name:name });=0A= return null;=0A= };=0A= =0A= /** @private Marshall an object */=0A= dwr.engine._serializeObject =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= // This check for an HTML is not complete, but is there a better way?=0A= // Maybe we should add: data.hasChildNodes typeof "function" =3D=3D = true=0A= if (data.nodeName && data.nodeType) {=0A= return dwr.engine._serializeXml(batch, referto, data, name);=0A= }=0A= =0A= // treat objects as an associative arrays=0A= var reply =3D "Object_" + dwr.engine._getObjectClassName(data) + ":{";=0A= var element;=0A= for (element in data) {=0A= if (typeof data[element] !=3D "function") {=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[element], childName);=0A= =0A= reply +=3D encodeURIComponent(element) + ":reference:" + childName = + ", ";=0A= }=0A= }=0A= =0A= if (reply.substring(reply.length - 2) =3D=3D ", ") {=0A= reply =3D reply.substring(0, reply.length - 2);=0A= }=0A= reply +=3D "}";=0A= =0A= return reply;=0A= };=0A= =0A= /** @private Returns the classname of supplied argument obj */=0A= dwr.engine._errorClasses =3D { "Error":Error, "EvalError":EvalError, = "RangeError":RangeError, "ReferenceError":ReferenceError, = "SyntaxError":SyntaxError, "TypeError":TypeError, "URIError":URIError };=0A= dwr.engine._getObjectClassName =3D function(obj) {=0A= // Try to find the classname by stringifying the object's constructor=0A= // and extract from "function ".=0A= if (obj && obj.constructor && obj.constructor.toString)=0A= {=0A= var str =3D obj.constructor.toString();=0A= var regexpmatch =3D str.match(/function\s+(\w+)/);=0A= if (regexpmatch && regexpmatch.length =3D=3D 2) {=0A= return regexpmatch[1];=0A= }=0A= }=0A= =0A= // Now manually test against the core Error classes, as these in some =0A= // browsers successfully match to the wrong class in the =0A= // Object.toString() test we will do later=0A= if (obj && obj.constructor) {=0A= for (var errorname in dwr.engine._errorClasses) {=0A= if (obj.constructor =3D=3D dwr.engine._errorClasses[errorname]) = return errorname;=0A= }=0A= }=0A= =0A= // Try to find the classname by calling Object.toString() on the object=0A= // and extracting from "[object ]"=0A= if (obj) {=0A= var str =3D Object.prototype.toString.call(obj);=0A= var regexpmatch =3D str.match(/\[object\s+(\w+)/);=0A= if (regexpmatch && regexpmatch.length=3D=3D2) {=0A= return regexpmatch[1];=0A= }=0A= }=0A= =0A= // Supplied argument was probably not an object, but what is better?=0A= return "Object";=0A= };=0A= =0A= /** @private Marshall an object */=0A= dwr.engine._serializeXml =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= var output;=0A= if (window.XMLSerializer) output =3D new = XMLSerializer().serializeToString(data);=0A= else if (data.toXml) output =3D data.toXml;=0A= else output =3D data.innerHTML;=0A= =0A= return "XML:" + encodeURIComponent(output);=0A= };=0A= =0A= /** @private Marshall an array */=0A= dwr.engine._serializeArray =3D function(batch, referto, data, name) {=0A= var ref =3D dwr.engine._lookup(referto, data, name);=0A= if (ref) return ref;=0A= =0A= if (document.all && !window.opera) {=0A= // Use array joining on IE (fastest)=0A= var buf =3D ["Array:["];=0A= for (var i =3D 0; i < data.length; i++) {=0A= if (i !=3D 0) buf.push(",");=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[i], childName);=0A= buf.push("reference:");=0A= buf.push(childName);=0A= }=0A= buf.push("]");=0A= reply =3D buf.join("");=0A= }=0A= else {=0A= // Use string concat on other browsers (fastest)=0A= var reply =3D "Array:[";=0A= for (var i =3D 0; i < data.length; i++) {=0A= if (i !=3D 0) reply +=3D ",";=0A= batch.paramCount++;=0A= var childName =3D "c" + dwr.engine._batch.map.callCount + "-e" + = batch.paramCount;=0A= dwr.engine._serializeAll(batch, referto, data[i], childName);=0A= reply +=3D "reference:";=0A= reply +=3D childName;=0A= }=0A= reply +=3D "]";=0A= }=0A= =0A= return reply;=0A= };=0A= =0A= /** @private Convert an XML string into a DOM object. */=0A= dwr.engine._unserializeDocument =3D function(xml) {=0A= var dom;=0A= if (window.DOMParser) {=0A= var parser =3D new DOMParser();=0A= dom =3D parser.parseFromString(xml, "text/xml");=0A= if (!dom.documentElement || dom.documentElement.tagName =3D=3D = "parsererror") {=0A= var message =3D dom.documentElement.firstChild.data;=0A= message +=3D "\n" + = dom.documentElement.firstChild.nextSibling.firstChild.data;=0A= throw message;=0A= }=0A= return dom;=0A= }=0A= else if (window.ActiveXObject) {=0A= dom =3D dwr.engine._newActiveXObject(dwr.engine._DOMDocument);=0A= dom.loadXML(xml); // What happens on parse fail with IE?=0A= return dom;=0A= }=0A= else {=0A= var div =3D document.createElement("div");=0A= div.innerHTML =3D xml;=0A= return div;=0A= }=0A= };=0A= =0A= /** @param axarray An array of strings to attempt to create ActiveX = objects from */=0A= dwr.engine._newActiveXObject =3D function(axarray) {=0A= var returnValue; =0A= for (var i =3D 0; i < axarray.length; i++) {=0A= try {=0A= returnValue =3D new ActiveXObject(axarray[i]);=0A= break;=0A= }=0A= catch (ex) { /* ignore */ }=0A= }=0A= return returnValue;=0A= };=0A= =0A= /** @private Used internally when some message needs to get to the = programmer */=0A= dwr.engine._debug =3D function(message, stacktrace) {=0A= var written =3D false;=0A= try {=0A= if (window.console) {=0A= if (stacktrace && window.console.trace) window.console.trace();=0A= window.console.log(message);=0A= written =3D true;=0A= }=0A= else if (window.opera && window.opera.postError) {=0A= window.opera.postError(message);=0A= written =3D true;=0A= }=0A= }=0A= catch (ex) { /* ignore */ }=0A= =0A= if (!written) {=0A= var debug =3D document.getElementById("dwr-debug");=0A= if (debug) {=0A= var contents =3D message + "" + debug.innerHTML;=0A= if (contents.length > 2048) contents =3D contents.substring(0, = 2048);=0A= debug.innerHTML =3D contents;=0A= }=0A= }=0A= };=0A= ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/blackboard/content/contentWrapperItem.jsp?course_id=_702465_1&content_id=_2356318_1&displayName=Herodotus&navItem=content&attachment=true =EF=BB=BF Blackboard Learn Current Location Fall 2009 (HS) Wrld Civizatn to 1500 Sec 001 = Course Documents Course Documents Week 3 Herodotus = =20 ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/courses/1/HIS_1000_0909_001/content/_2356318_1/Herodotus.htm Herodotus Herodotus [Note: you might find it helpful to consult the = maps on=20 Mesopotamia and Egypt under Course = Documents as you=20 read Herodotus.] On Babylon and = Mesopotamia: [1.178] Assyria possesses a vast number of great = cities,=20 whereof the most renowned and strongest at this time was Babylon, whither, after the fall of Nineveh, the = seat of=20 government had been removed. The following is a description of the = place:- The=20 city stands on a broad plain, and is an exact square, a hundred and = twenty=20 furlongs in length each way, so that the entire circuit is four hundred = and=20 eighty furlongs. While such is its size, in magnificence there is no = other city=20 that approaches to it. It is surrounded, in the first place, by a broad = and deep=20 moat, full of water, behind which rises a wall fifty royal cubits in = width, and=20 two hundred in height. (The royal cubit is longer by three fingers' = breadth than=20 the common cubit.) [1.179] And here I may not omit to tell the use to = which the=20 mould dug out of the great moat was turned, nor the manner wherein the = wall was=20 wrought. As fast as they dug the moat the soil which they got from the = cutting=20 was made into bricks, and when a sufficient number were completed they = baked the=20 bricks in kilns. Then they set to building, and began with bricking the = borders=20 of the moat, after which they proceeded to construct the wall itself, = using=20 throughout for their cement hot bitumen, and interposing a layer of = wattled=20 reeds at every thirtieth course of the bricks. On the top, along the = edges of=20 the wall, they constructed buildings of a single chamber facing one = another,=20 leaving between them room for a four-horse chariot to turn. In the = circuit of=20 the wall are a hundred gates, all of brass, with brazen lintels and = side-posts.=20 The bitumen used in the work was brought to Babylon from the Is, a small = stream=20 which flows into the Euphrates at the point where the city of the same = name=20 stands, eight days' journey from Babylon. Lumps of bitumen are found in = great=20 abundance in this river. [1.180] The city is divided into two portions by = the river=20 which runs through the midst of it. This river is the Euphrates, a = broad, deep,=20 swift stream, which rises in Armenia, and empties itself = into the=20 Erythraean sea. The city wall is brought down on both sides to the edge = of the=20 stream: thence, from the corners of the wall, there is carried along = each bank=20 of the river a fence of burnt bricks. The houses are mostly three and = four=20 stories high; the streets all run in straight lines, not only those = parallel to=20 the river, but also the cross streets which lead down to the water-side. = At the=20 river end of these cross streets are low gates in the fence that skirts = the=20 stream, which are, like the great gates in the outer wall, of brass, and = open on=20 the water. [1.181] The outer wall is the main defence of the = city. There=20 is, however, a second inner wall, of less thickness than the first, but = very=20 little inferior to it in strength. The centre of each division of the = town was=20 occupied by a fortress. In the one stood the palace of the kings, = surrounded by=20 a wall of great strength and size: in the other was the sacred precinct = of=20 Jupiter Belus, a square enclosure two furlongs each way, with gates of = solid=20 brass; which was also remaining in my time. In the middle of the = precinct there=20 was a tower of solid masonry, a furlong in length and breadth, upon = which was=20 raised a second tower, and on that a third, and so on up to eight. The = ascent to=20 the top is on the outside, by a path which winds round all the towers. = When one=20 is about half-way up, one finds a resting-place and seats, where persons = are=20 wont to sit some time on their way to the summit. On the topmost tower = there is=20 a spacious temple, and inside the temple stands a couch of unusual size, = richly=20 adorned, with a golden table by its side. There is no statue of any kind = set up=20 in the place, nor is the chamber occupied of nights by any one but a = single=20 native woman, who, as the Chaldaeans, the priests of this god, affirm, = is chosen=20 for himself by the deity out of all the women of the land. [1.182] They also declare - but I for my part do = not credit=20 it - that the god comes down in person into this chamber, and sleeps = upon the=20 couch. This is like the story told by the Egyptians of what takes place = in their=20 city of Thebes, where a woman always passes the night in the temple of = the=20 Theban Jupiter. In each case the woman is said to be debarred all = intercourse=20 with men. It is also like the custom of Patara, in Lycia, where the = priestess=20 who delivers the oracles, during the time that she is so employed - for = at=20 Patara there is not always an oracle - is shut up in the temple every = night.=20 [1.183] Below, in the same precinct, there is a = second=20 temple, in which is a sitting figure of Jupiter, all of gold. Before the = figure=20 stands a large golden table, and the throne whereon it sits, and the = base on=20 which the throne is placed, are likewise of gold. The Chaldaeans told me = that=20 all the gold together was eight hundred talents' weight. Outside the = temple are=20 two altars, one of solid gold, on which it is only lawful to offer = sucklings;=20 the other a common altar, but of great size, on which the full-grown = animals are=20 sacrificed. It is also on the great altar that the Chaldaeans burn the=20 frankincense, which is offered to the amount of a thousand talents' = weight,=20 every year, at the festival of the God. In the time of Cyrus there was = likewise=20 in this temple a figure of a man, twelve cubits high, entirely of solid = gold. I=20 myself did not see this figure, but I relate what the Chaldaeans report=20 concerning it. Darius, the son of Hystaspes, plotted to carry the statue = off,=20 but had not the hardihood to lay his hands upon it. Xerxes, however, the = son of=20 Darius, killed the priest who forbade him to move the statue, and took = it away.=20 Besides the ornaments which I have mentioned, there are a large number = of=20 private offerings in this holy precinct. [1.184] Many sovereigns have ruled over this city = of=20 Babylon, and=20 lent their aid to the building of its walls and the adornment of its = temples, of=20 whom I shall make mention in my Assyrian history. Among them two were = women. Of=20 these, the earlier, called Semiramis, held the throne five generations = before=20 the later princess. She raised certain embankments well worthy of = inspection, in=20 the plain near Babylon, to control the river, which, till then, used to=20 overflow, and flood the whole country round about. [1.185] The later of the two queens, whose name was = Nitocris,=20 a wiser princess than her predecessor, not only left behind her, as = memorials of=20 her occupancy of the throne, the works which I shall presently describe, = but=20 also, observing the great power and restless enterprise of the Medes, = who had=20 taken so large a number of cities, and among them Nineveh, and expecting = to be=20 attacked in her turn, made all possible exertions to increase the = defences of=20 her empire. And first, whereas the river Euphrates, which traverses the = city,=20 ran formerly with a straight course to Babylon, she, by certain = excavations=20 which she made at some distance up the stream, rendered it so winding = that it=20 comes three several times in sight of the same village, a village in = Assyria,=20 which is called Ardericea; and to this day, they who would go from our = sea to=20 Babylon, on descending to the river touch three times, and on three = different=20 days, at this very place. She also made an embankment along each side of = the=20 Euphrates, wonderful both for breadth and height, and dug a basin for a = lake a=20 great way above Babylon, close alongside of the stream, which was sunk=20 everywhere to the point where they came to water, and was of such = breadth that=20 the whole circuit measured four hundred and twenty furlongs. The soil = dug out of=20 this basin was made use of in the embankments along the waterside. When = the=20 excavation was finished, she had stones brought, and bordered with them = the=20 entire margin of the reservoir. These two things were done, the river = made to=20 wind, and the lake excavated, that the stream might be slacker by reason = of the=20 number of curves, and the voyage be rendered circuitous, and that at the = end of=20 the voyage it might be necessary to skirt the lake and so make a long = round. All=20 these works were on that side of Babylon where the passes lay, and the = roads=20 into Media were the straightest, and the aim of the queen in making them = was to=20 prevent the Medes from holding intercourse with the Babylonians, and so = to keep=20 them in ignorance of her affairs. [1.186] While the soil from the excavation was = being thus=20 used for the defense of the city, Nitocris engaged also in another = undertaking,=20 a mere by-work compared with those we have already mentioned. The city, = as I=20 said, was divided by the river into two distinct portions. Under the = former=20 kings, if a man wanted to pass from one of these divisions to the other, = he had=20 to cross in a boat; which must, it seems to me, have been very = troublesome.=20 Accordingly, while she was digging the lake, Nitocris thought herself of = turning=20 it to a use which should at once remove this inconvenience, and enable = her to=20 leave another monument of her reign over Babylon. She gave orders for the = hewing of=20 immense blocks of stone, and when they were ready and the basin was = excavated,=20 she turned the entire stream of the Euphrates into the cutting, and thus = for a=20 time, while the basin was filling, the natural channel of the river was = left=20 dry. Forthwith she set to work, and in the first place lined the banks = of the=20 stream within the city with quays of burnt brick, and also bricked the=20 landing-places opposite the river-gates, adopting throughout the same = fashion of=20 brickwork which had been used in the town wall; after which, with the = materials=20 which had been prepared, she built, as near the middle of the town as = possible,=20 a stone bridge, the blocks whereof were bound together with iron and = lead. In=20 the daytime square wooden platforms were laid along from pier to pier, = on which=20 the inhabitants crossed the stream; but at night they were withdrawn, to = prevent=20 people passing from side to side in the dark to commit robberies. When = the river=20 had filled the cutting, and the bridge was finished, the Euphrates was = turned=20 back again into its ancient bed; and thus the basin, transformed = suddenly into a=20 lake, was seen to answer the purpose for which it was made, and the = inhabitants,=20 by help of the basin, obtained the advantage of a bridge. [1.187] It was this same princess by whom a = remarkable=20 deception was planned. She had her tomb constructed in the upper part of = one of=20 the principal gateways of the city, high above the heads of the passers = by, with=20 this inscription cut upon it:- "If there be one among my successors on = the=20 throne of Babylon who is in want of treasure, let him open my tomb, and = take as=20 much as he chooses - not, however, unless he be truly in want, for it = will not=20 be for his good." This tomb continued untouched until Darius came to the = kingdom. To him it seemed a monstrous thing that he should be unable to = use one=20 of the gates of the town, and that a sum of money should be lying idle, = and=20 moreover inviting his grasp, and he not seize upon it. Now he could not = use the=20 gate, because, as he drove through, the dead body would have been over = his head.=20 Accordingly he opened the tomb; but instead of money, found only the = dead body,=20 and a writing which said - "Had you not been insatiate of self, and = careless how=20 you got it, you would not have broken open the sepulchres of the dead." = [1.188] The expedition of Cyrus was undertaken = against the=20 son of this princess, who bore the same name as his father Labynetus, = and was=20 king of the Assyrians. The Great King, when he goes to the wars, is = always=20 supplied with provisions carefully prepared at home, and with cattle of = his own.=20 Water too from the river Choaspes, which flows by Susa, is taken with = him for=20 his drink, as that is the only water which the kings of Persia taste. = Wherever=20 he travels, he is attended by a number of four-wheeled cars drawn by = mules, in=20 which the Choaspes water, ready boiled for use, and stored in flagons of = silver,=20 is moved with him from place to place. [1.189] Cyrus on his way to Babylon came to the = banks of the=20 Gyndes, a stream which, rising in the Matienian mountains, runs through = the=20 country of the Dardanians, and empties itself into the river Tigris. The = Tigris,=20 after receiving the Gyndes, flows on by the city of Opis, and = discharges its=20 waters into the Erythraean sea. When Cyrus reached this stream, which = could only=20 be passed in boats, one of the sacred white horses accompanying his = march, full=20 of spirit and high mettle, walked into the water, and tried to cross by = himself;=20 but the current seized him, swept him along with it, and drowned him in = its=20 depths. Cyrus, enraged at the insolence of the river, threatened so to = break its=20 strength that in future even women should cross it easily without = wetting their=20 knees. Accordingly he put off for a time his attack on Babylon, and, = dividing=20 his army into two parts, he marked out by ropes one hundred and eighty = trenches=20 on each side of the Gyndes, leading off from it in all directions, and = setting=20 his army to dig, some on one side of the river, some on the other, he=20 accomplished his threat by the aid of so great a number of hands, but = not=20 without losing thereby the whole summer season. [1.190] Having, however, thus wreaked his vengeance = on the=20 Gyndes, by dispersing it through three hundred and sixty channels, = Cyrus, with=20 the first approach of the ensuing spring, marched forward against = Babylon. The=20 Babylonians, encamped without their walls, awaited his coming. A battle = was=20 fought at a short distance from the city, in which the Babylonians were = defeated=20 by the Persian king, whereupon they withdrew within their defences. Here = they=20 shut themselves up, and made light of his siege, having laid in a store = of=20 provisions for many years in preparation against this attack; for when = they saw=20 Cyrus conquering nation after nation, they were convinced that he would = never=20 stop, and that their turn would come at last. [1.191] Cyrus was now reduced to great perplexity, = as time=20 went on and he made no progress against the place. In this distress = either some=20 one made the suggestion to him, or he bethought himself of a plan, which = he=20 proceeded to put in execution. He placed a portion of his army at the = point=20 where the river enters the city, and another body at the back of the = place where=20 it issues forth, with orders to march into the town by the bed of the = stream, as=20 soon as the water became shallow enough: he then himself drew off with = the=20 unwarlike portion of his host, and made for the place where Nitocris dug = the=20 basin for the river, where he did exactly what she had done formerly: he = turned=20 the Euphrates by a canal into the basin, which was then a marsh, on = which the=20 river sank to such an extent that the natural bed of the stream became = fordable.=20 Hereupon the Persians who had been left for the purpose at Babylon by = the,=20 river-side, entered the stream, which had now sunk so as to reach about = midway=20 up a man's thigh, and thus got into the town. Had the Babylonians been = apprised=20 of what Cyrus was about, or had they noticed their danger, they would = never have=20 allowed the Persians to enter the city, but would have destroyed them = utterly;=20 for they would have made fast all the street-gates which gave upon the = river,=20 and mounting upon the walls along both sides of the stream, would so = have caught=20 the enemy, as it were, in a trap. But, as it was, the Persians came upon = them by=20 surprise and so took the city. Owing to the vast size of the place, the=20 inhabitants of the central parts (as the residents at Babylon declare) = long=20 after the outer portions of the town were taken, knew nothing of what = had=20 chanced, but as they were engaged in a festival, continued dancing and = revelling=20 until they learnt the capture but too certainly. Such, then, were the=20 circumstances of the first taking of Babylon. [1.192] Among many proofs which I shall bring = forward of the=20 power and resources of the Babylonians, the following is of special = account. The=20 whole country under the dominion of the Persians, besides paying a fixed = tribute, is parcelled out into divisions, which have to supply food to = the Great=20 King and his army during different portions of the year. Now out of the = twelve=20 months which go to a year, the district of Babylon furnishes food during = four,=20 the other of Asia during eight; by which it appears that Assyria, in = respect of=20 resources, is one-third of the whole of Asia.=20 Of all the Persian governments, or satrapies as they are called by the = natives,=20 this is by far the best. When Tritantaechmes, son of Artabazus, held it = of the=20 king, it brought him in an artaba of silver every day. The artaba is a = Persian=20 measure, and holds three choenixes more than the medimnus of the = Athenians. He=20 also had, belonging to his own private stud, besides war horses, eight = hundred=20 stallions and sixteen thousand mares, twenty to each stallion. Besides = which he=20 kept so great a number of Indian hounds, that four large villages of the = plain=20 were exempted from all other charges on condition of finding them food. = [1.193] But little rain falls in Assyria, enough, = however, to=20 make the grain begin to sprout, after which the plant is nourished and = the ears=20 formed by means of irrigation from the river. For the river does not, as = in=20 Egypt, overflow the = grain-lands of=20 its own accord, but is spread over them by the hand, or by the help of = engines.=20 The whole of Babylonia is, like Egypt, intersected with canals. The = largest of=20 them all, which runs towards the winter sun, and is impassable except in = boats,=20 is carried from the Euphrates into another stream, called the Tigris, = the river=20 upon which the town of Nineveh formerly stood. Of all the = countries=20 that we know there is none which is so fruitful in grain. It makes no = pretension=20 indeed of growing the fig, the olive, the vine, or any other tree of the = kind;=20 but in grain it is so fruitful as to yield commonly two-hundred-fold, = and when=20 the production is the greatest, even three-hundred-fold. The blade of = the=20 wheat-plant and barley-plant is often four fingers in breadth. As for = the millet=20 and the sesame, I shall not say to what height they grow, though within = my own=20 knowledge; for I am not ignorant that what I have already written = concerning the=20 fruitfulness of Babylonia must seem incredible to those who have never = visited=20 the country. The only oil they use is made from the sesame-plant. = Palm-trees=20 grow in great numbers over the whole of the flat country, mostly of the = kind=20 which bears fruit, and this fruit supplies them with bread, wine, and = honey.=20 They are cultivated like the fig-tree in all respects, among others in = this. The=20 natives tie the fruit of the male-palms, as they are called by the = Greeks, to=20 the branches of the date-bearing palm, to let the gall-fly enter the = dates and=20 ripen them, and to prevent the fruit from falling off. The male-palms, = like the=20 wild fig-trees, have usually the gall-fly in their fruit. [1.194] But that which surprises me most in the = land, after=20 the city itself, I will now proceed to mention. The boats which come = down the=20 river to Babylon are circular, and made of skins. The frames, which are = of=20 willow, are cut in the country of the Armenians above Assyria, and on = these,=20 which serve for hulls, a covering of skins is stretched outside, and = thus the=20 boats are made, without either stem or stern, quite round like a shield. = They=20 are then entirely filled with straw, and their cargo is put on board, = after=20 which they are suffered to float down the stream. Their chief freight is = wine,=20 stored in casks made of the wood of the palm-tree. They are managed by = two men=20 who stand upright in them, each plying an oar, one pulling and the other = pushing. The boats are of various sizes, some larger, some smaller; the = biggest=20 reach as high as five thousand talents' burden. Each vessel has a live = ass on=20 board; those of larger size have more than one. When they reach Babylon, = the=20 cargo is landed and offered for sale; after which the men break up their = boats,=20 sell the straw and the frames, and loading their asses with the skins, = set off=20 on their way back to Armenia. The current is too strong to allow a boat = to=20 return upstream, for which reason they make their boats of skins rather = than=20 wood. On their return to Armenia they build fresh boats for the next = voyage.=20 [1.195] The dress of the Babylonians is a linen = tunic=20 reaching to the feet, and above it another tunic made in wool, besides = which=20 they have a short white cloak thrown round them, and shoes of a peculiar = fashion, not unlike those worn by the Boeotians. They have long hair, = wear=20 turbans on their heads, and anoint their whole body with perfumes. Every = one=20 carries a seal, and a walking-stick, carved at the top into the form of = an=20 apple, a rose, a lily, an eagle, or something similar; for it is not = their habit=20 to use a stick without an ornament. [1.196] Of their customs, whereof I shall now = proceed to give=20 an account, the following (which I understand belongs to them in common = with the=20 Illyrian tribe of the Eneti) is the wisest in my judgment. Once a year = in each=20 village the maidens of age to marry were collected all together into one = place;=20 while the men stood round them in a circle. Then a herald called up the = damsels=20 one by one, and offered them for sale. He began with the most beautiful. = When=20 she was sold for no small sum of money, he offered for sale the one who = came=20 next to her in beauty. All of them were sold to be wives. The richest of = the=20 Babylonians who wished to wed bid against each other for the loveliest = maidens,=20 while the humbler wife-seekers, who were indifferent about beauty, took = the more=20 homely damsels with marriage-portions. For the custom was that when the = herald=20 had gone through the whole number of the beautiful damsels, he should = then call=20 up the ugliest - a cripple, if there chanced to be one - and offer her = to the=20 men, asking who would agree to take her with the smallest = marriage-portion [i.e.=20 in these cases the man was paid to take the woman]. And the man who was = offered=20 the smallest sum had her assigned to him. The marriage-portions were = furnished=20 by the money paid for the beautiful damsels, and thus the fairer maidens = portioned out the uglier. No one was allowed to give his daughter in = marriage to=20 the man of his choice, nor might any one carry away the damsel whom he = had=20 purchased without finding bail really and truly to make her his wife; = if,=20 however, it turned out that they did not agree, the money might be paid = back.=20 All who liked might come even from distant villages and bid for the = women. This=20 was the best of all their customs, but it has now fallen into disuse. = They have=20 lately hit upon a very different plan to save their maidens from = violence, and=20 prevent their being torn from them and carried to distant cities, which = is to=20 bring up their daughters to be courtesans. This is now done by all the = poorer of=20 the common people, who since the conquest have been maltreated by their = lords,=20 and have had ruin brought upon their families. [1.197] The following custom seems to me the wisest = of their=20 institutions next to the one lately praised. They have no physicians, = but when a=20 man is ill, they lay him in the public square, and the passers-by come = up to=20 him, and if they have ever had his disease themselves or have known any = one who=20 has suffered from it, they give him advice, recommending him to do = whatever they=20 found good in their own case, or in the case known to them; and no one = is=20 allowed to pass the sick man in silence without asking him what his = ailment is.=20 [1.198] They bury their dead in honey, and have = funeral=20 lamentations like the Egyptians. When a Babylonian has consorted with = his wife,=20 he sits down before a censer of burning incense, and the woman sits = opposite to=20 him. At dawn of day they wash; for till they are washed they will not = touch any=20 of their common vessels. This practice is observed also by the Arabians. = [1.199] The Babylonians have one most shameful = custom. Every=20 woman born in the country must once in her life go and sit down in the = precinct=20 of Venus, and there consort with a stranger. Many of the wealthier sort, = who are=20 too proud to mix with the others, drive in covered carriages to the = precinct,=20 followed by a goodly train of attendants, and there take their station. = But the=20 larger number seat themselves within the holy enclosure with wreaths of = string=20 about their heads - and here there is always a great crowd, some coming = and=20 others going; lines of cord mark out paths in all directions the women, = and the=20 strangers pass along them to make their choice. A woman who has once = taken her=20 seat is not allowed to return home till one of the strangers throws a = silver=20 coin into her lap, and takes her with him beyond the holy ground. When = he throws=20 the coin he says these words - "The goddess Mylitta prosper thee." = (Venus is=20 called Mylitta by the Assyrians.) The silver coin may be of any size; it = cannot=20 be refused, for that is forbidden by the law, since once thrown it is = sacred.=20 The woman goes with the first man who throws her money, and rejects no = one. When=20 she has gone with him, and so satisfied the goddess, she returns home, = and from=20 that time forth no gift however great will prevail with her. Such of the = women=20 as are tall and beautiful are soon released, but others who are ugly = have to=20 stay a long time before they can fulfil the law. Some have waited three = or four=20 years in the precinct. A custom very much like this is found also in = certain=20 parts of the island of Cyprus. [1.200] Such are the customs of the Babylonians = generally.=20 There are likewise three tribes among them who eat nothing but fish. = These are=20 caught and dried in the sun, after which they are brayed in a mortar, = and=20 strained through a linen sieve. Some prefer to make cakes of this = material,=20 while others bake it into a kind of bread. On Egypt: [2.2] Now the Egyptians, before the reign of their = king=20 Psammetichus, believed themselves to be the most ancient of mankind. = Since=20 Psammetichus, however, made an attempt to discover who were actually the = primitive race, the Egyptians have been of opinion that while they = surpass all=20 other nations, the Phrygians surpass them in antiquity. This king, = finding it=20 impossible to make out by dint of inquiry what men were the most = ancient,=20 contrived the following method of discovery:- He took two children of = the common=20 sort, and gave them over to a herdsman to bring up at his folds, = strictly=20 charging him to let no one utter a word in their presence, but to keep = them in a=20 sequestered cottage, and from time to time introduce goats to their = apartment,=20 see that they got their fill of milk, and in all other respects look = after them.=20 His object herein was to know, after the indistinct babblings of infancy = were=20 over, what word they would first articulate. It happened as he had = anticipated.=20 The herdsman obeyed his orders for two years, and at the end of that = time, on=20 his one day opening the door of their room and going in, the children = both ran=20 up to him with outstretched arms, and distinctly said "Becos." When this = first=20 happened the herdsman took no notice; but afterwards when he observed, = on coming=20 often to see after them, that the word was constantly in their mouths, = he=20 informed his lord, and by his command brought the children into his = presence.=20 Psammetichus then himself heard them say the word, upon which he = proceeded to=20 make inquiry what people there was who called anything "becos," and = hereupon he=20 learnt that "becos" was the Phrygian name for bread. In consideration of = this=20 circumstance the Egyptians yielded their claims, and admitted the = greater=20 antiquity of the Phrygians. [2.3] That these were the real facts I learnt at = Memphis from = the priests of=20 Vulcan. The Greeks, among other foolish tales, relate that Psammetichus = had the=20 children brought up by women whose tongues he had previously cut out; = but the=20 priests said their bringing up was such as I have stated above. I got = much other=20 information also from conversation with these priests while I was at = Memphis,=20 and I even went to Heliopolis and to Thebes, expressly to try whether = the=20 priests of those places would agree in their accounts with the priests = at=20 Memphis. The Heliopolitans have the reputation of being the best skilled = in=20 history of all the Egyptians. What they told me concerning their = religion it is=20 not my intention to repeat, except the names of their deities, which I = believe=20 all men know equally. If I relate anything else concerning these = matters, it=20 will only be when compelled to do so by the course of my narrative. [2.4] Now with regard to mere human matters, the = accounts=20 which they gave, and in which all agreed, were the following. The = Egyptians,=20 they said, were the first to discover the solar year, and to portion out = its=20 course into twelve parts. They obtained this knowledge from the stars. = (To my=20 mind they contrive their year much more cleverly than the Greeks, for = these last=20 every other year intercalate a whole month, but the Egyptians, dividing = the year=20 into twelve months of thirty days each, add every year a space of five = days=20 besides, whereby the circuit of the seasons is made to return with = uniformity.)=20 The Egyptians, they went on to affirm, first brought into use the names = of the=20 twelve gods, which the Greeks adopted from them; and first erected = altars,=20 images, and temples to the gods; and also first engraved upon stone the = figures=20 of animals. In most of these cases they proved to me that what they said = was=20 true. And they told me that the first man who ruled over Egypt was Min, = and that=20 in his time all Egypt, except the Thebaic canton, was a marsh, none of = the land=20 below Lake Moeris then showing itself above the surface of the water. = This is a=20 distance of seven days' sail from the sea up the river. [2.5] What they said of their country seemed to me = very=20 reasonable. For any one who sees Egypt, without having heard a word = about it=20 before, must perceive, if he has only common powers of observation, that = the=20 Egypt to which the Greeks go in their ships is an acquired country, the = gift of=20 the river. The same is true of the land above the lake, to the distance = of three=20 days' voyage, concerning which the Egyptians say nothing, but which = exactly the=20 same kind of country. The following is the general character of the = region. In the=20 first place, on approaching it by sea, when you are still a day's sail = from the=20 land, if you let down a sounding-line you will bring up mud, and find = yourself=20 in eleven fathoms' water, which shows that the soil washed down by the = stream=20 extends to that distance. [2.6] The length of the country along shore, = according to the=20 bounds that we assign to Egypt, namely from the Plinthinetic = gulf to=20 Lake Serbonis, which extends along the base of = Mount = Casius, is sixty schoenes. The = nations=20 whose territories are scanty measure them by the fathom; those whose = bounds are=20 less confined, by the furlong; those who have an ample territory, by the = parasang; but if men have a country which is very vast, they measure it = by the=20 schoene. Now the length of the parasang is thirty furlongs, but the = schoene,=20 which is an Egyptian measure, is sixty furlongs. Thus the coastline of = Egypt=20 would extend a length of three thousand six hundred furlongs. [2.7] From the coast inland as far as Heliopolis the breadth of Egypt=20 is considerable, the country is flat, without springs, and full of = swamps. The=20 length of the route from the sea up to Heliopolis is almost exactly the = same as=20 that of the road which runs from the altar of the twelve gods at Athens = to the=20 temple of Olympian Jove at Pisa. If a person made a calculation he would = find=20 but a very little difference between the two routes, not more than about = fifteen=20 furlongs; for the road from Athens to Pisa falls short of fifteen = hundred=20 furlongs by exactly fifteen, whereas the distance of Heliopolis from the = sea is=20 just the round number. [2.8] As one proceeds beyond Heliopolis up the country, Egypt=20 becomes narrow, the Arabian range of hills, which has a direction from = north to=20 south, shutting it in upon the one side, and the Libyan range upon the = other.=20 The former ridge runs on without a break, and stretches away to the sea = called=20 the Erythraean; it contains the quarries whence the stone was cut for = the=20 pyramids of Memphis: and this is the point where it ceases its first = direction,=20 and bends away in the manner above indicated. In its greatest length = from east=20 to west it is, as I have been informed, a distance of two months' = journey=20 towards the extreme east its skirts produce frankincense. Such are the = chief=20 features of this range. On the Libyan side, the other ridge whereon the = pyramids=20 stand is rocky and covered with sand; its direction is the same as that = of the=20 Arabian ridge in the first part of its course. Above Heliopolis, then, = there is=20 no great breadth of territory for such a country as Egypt, but during = four days'=20 sail Egypt is narrow; the valley between the two ranges is a level = plain, and=20 seemed to me to be, at the narrowest point, not more than two hundred = furlongs=20 across from the Arabian to the Libyan hills. Above this point Egypt = again=20 widens. [2.9] From Heliopolis to Thebes is nine days' sail = up the=20 river; the distance is eighty-one schoenes, or 4860 furlongs. If we now = put=20 together the several measurements of the country we shall find that the = distance=20 along shore is, as I stated above, 3600 furlongs, and the distance from = the sea=20 inland to Thebes 6120 furlongs. Further, it is a distance of eighteen = hundred=20 furlongs from Thebes to the place called Elephantine. [2.10] The greater portion of the country above = described=20 seemed to me to be, as the priests declared, a tract gained by the = inhabitants.=20 For the whole region above Memphis, lying between the two ranges = of hills=20 that have been spoken of, appeared evidently to have formed at one time = a gulf=20 of the sea. It resembles (to compare small things with great) the parts = about=20 Ilium and Teuthrania, Ephesus, and the plain of the Maeander. In all = these=20 regions the land has been formed by rivers, whereof the greatest is not = to=20 compare for size with any one of the five mouths of the Nile. I could = mention=20 other rivers also, far inferior to the Nile in=20 magnitude, that have effected very great changes. Among these not the = least is=20 the Achelous, which, after passing through Acarnania, empties itself = into the=20 sea opposite the islands called Echinades, and has already joined = one-half of=20 them to the continent. [2.11] In Arabia, not far from Egypt, there is a long and narrow gulf = running=20 inland from the sea called the Erythraean [i.e. the Red=20 Sea], of which I will here set down the dimensions. Starting = from=20 its innermost recess, and using a row-boat, you take forty days to reach = the=20 open main, while you may cross the gulf at its widest part in the space = of half=20 a day. In this sea there is an ebb and flow of the tide every day. My = opinion is=20 that Egypt was formerly very much such a gulf as this - one gulf = penetrated from=20 the sea that washes Egypt on the north, and extended itself towards = Ethiopia;=20 another entered from the southern ocean, and stretched towards Syria; = the two=20 gulfs ran into the land so as almost to meet each other, and left = between them=20 only a very narrow tract of country. Now if the Nile should choose to = divert his=20 waters from their present bed into this Arabian=20 gulf, what is there to hinder it from being filled up by the = stream=20 within, at the utmost, twenty thousand years? For my part, I think it = would be=20 filled in half the time. How then should not a gulf, even of much = greater size,=20 have been filled up in the ages that passed before I was born, by a = river that=20 is at once so large and so given to working changes? [2.12] Thus I give credit to those from whom I = received this=20 account of Egypt, and am myself, moreover, strongly of the same opinion, = since I=20 remarked that the country projects into the sea further than the = neighbouring=20 shores, and I observed that there were shells upon the hills, and that = salt=20 exuded from the soil to such an extent as even to injure the pyramids; = and I=20 noticed also that there is but a single hill in all Egypt where sand is = found,=20 namely, the hill above Memphis; and further, I found the country to bear = no=20 resemblance either to its borderland Arabia, or to Libya - nay, nor even = to=20 Syria, which forms the seaboard of Arabia; but whereas the soil of Libya = is, we=20 know, sandy and of a reddish hue, and that of Arabia and Syria inclines = to stone=20 and clay, Egypt has a soil that is black and crumbly, as being alluvial = and=20 formed of the deposits brought down by the river from Ethiopia. [2.13] One fact which I learnt of the priests is to = me a=20 strong evidence of the origin of the country. They said that when Moeris = was=20 king, the Nile overflowed all Egypt below Memphis, as soon as it rose so = little=20 as eight cubits. Now Moeris had not been dead 900 years at the time when = I heard=20 this of the priests; yet at the present day, unless the river rise = sixteen, or,=20 at the very least, fifteen cubits, it does not overflow the lands. It = seems to=20 me, therefore, that if the land goes on rising and growing at this rate, = the=20 Egyptians who dwell below Lake Moeris, in the Delta (as it is called) = and=20 elsewhere, will one day, by the stoppage of the inundations, suffer = permanently=20 the fate which they told me they expected would some time or other = befall the=20 Greeks. On hearing that the whole land of Greece is watered by rain from = heaven,=20 and not, like their own, inundated by rivers, they observed - "Some day = the=20 Greeks will be disappointed of their grand hope, and then they will be=20 wretchedly hungry"; which was as much as to say, "If God shall some day = see fit=20 not to grant the Greeks rain, but shall afflict them with a long = drought, the=20 Greeks will be swept away by a famine, since they have nothing to rely = on but=20 rain from Jove, and have no other resource for water." [2.14] And in thus speaking of the Greeks the = Egyptians say=20 nothing but what is true. But now let me tell the Egyptians how the case = stands=20 with themselves. If, as I said before, the country below Memphis, which = is the=20 land that is always rising, continues to increase in height at the rate = at which=20 it has risen in times gone by, how will it be possible for the = inhabitants of=20 that region to avoid hunger, when they will certainly have no rain, and = the=20 river will not be able to overflow their cornlands? At present, it must = be=20 confessed, they obtain the fruits of the field with less trouble than = any other=20 people in the world, the rest of the Egyptians included, since they have = no need=20 to break up the ground with the plough, nor to use the hoe, nor to do = any of the=20 work which the rest of mankind find necessary if they are to get a crop; = but the=20 husbandman waits till the river has of its own accord spread itself over = the=20 fields and withdrawn again to its bed, and then sows his plot of ground, = and=20 after sowing turns his swine into it - the swine tread in the corn - = after which=20 he has only to await the harvest. The swine serve him also to thrash the = grain,=20 which is then carried to the garner. [2.15] If then we choose to adopt the views of the = Ionians=20 concerning Egypt, we must come to the conclusion that the Egyptians had = formerly=20 no country at all. For the Ionians say that nothing is really Egypt but = the=20 Delta, which extends along shore from the Watch-tower of Perseus, as it = is=20 called, to the Pelusiac Salt-Pans, a distance of forty schoenes, and = stretches=20 inland as far as the city of Cercasorus, where the Nile divides into the = two=20 streams which reach the sea at Pelusium and Canobus respectively. The = rest of=20 what is accounted Egypt belongs, they say, either to Arabia or Libya. = But the=20 Delta, as the Egyptians affirm, and as I myself am persuaded, is formed = of the=20 deposits of the river, and has only recently, if I may use the = expression, come=20 to light. If, then, they had formerly no territory at all, how came they = to be=20 so extravagant as to fancy themselves the most ancient race in the = world? Surely=20 there was no need of their making the experiment with the children to = see what=20 language they would first speak. But in truth I do not believe that the=20 Egyptians came into being at the same time with the Delta, as the = Ionians call=20 it; I think they have always existed ever since the human race began; as = the=20 land went on increasing, part of the population came down into the new = country,=20 part remained in their old settlements. In ancient times the Thebais = bore the=20 name of Egypt, a district of which the entire circumference is but 6120=20 furlongs. [2.16] If, then, my judgment on these matters be = right, the=20 Ionians are mistaken in what they say of Egypt.=20 If, on the contrary, it is they who are right, then I undertake to show = that=20 neither the Ionians nor any of the other Greeks know how to count. For = they all=20 say that the earth is divided into three parts, Europe, Asia, and Libya, = whereas=20 they ought to add a fourth part, the Delta of Egypt, since they do not = include=20 it either in Asia or Libya. For is it not their theory that the Nile = separates=20 Asia from Libya? As the Nile, therefore, splits in two at the apex of = the Delta,=20 the Delta itself must be a separate country, not contained in either = Asia or=20 Libya. [2.17] Here I take my leave of the opinions of the = Ionians,=20 and proceed to deliver my own sentiments on these subjects. I consider = Egypt to=20 be the whole country inhabited by the Egyptians, just as Cilicia is the = tract=20 occupied by the Cilicians, and Assyria that possessed by the Assyrians. = And I=20 regard the only proper boundary-line between Libya and Asia to be that = which is=20 marked out by the Egyptian frontier. For if we take the boundary-line = commonly=20 received by the Greeks, we must regard Egypt as divided, along its whole = length=20 from Elephantine and the Cataracts to Cercasorus, into two parts, each = belonging=20 to a different portion of the world, one to Asia, the other to Libya; = since the=20 Nile divides Egypt in two from the Cataracts to the sea, running as far = as the=20 city of Cercasorus in a single stream, but at that point separating into = three=20 branches, whereof the one which bends eastward is called the Pelusiac = mouth, and=20 that which slants to the west, the Canobic. Meanwhile the straight = course of the=20 stream, which comes down from the upper country and meets the apex of = the Delta,=20 continues on, dividing the Delta down the middle, and empties itself = into the=20 sea by a mouth, which is as celebrated, and carries as large a body of = water, as=20 most of the others, the mouth called the Sebennytic. Besides these there = are two=20 other mouths which run out of the Sebennytic called respectively the = Saitic and=20 the Mendesian. The Bolbitine mouth, and the Bucolic, are not natural = branches,=20 but channels made by excavation. [2.18] My judgment as to the extent of Egypt is = confirmed by=20 an oracle delivered at the shrine of Ammon, of which I had no knowledge = at all=20 until after I had formed my opinion. It happened that the people of the = cities=20 Marea and Apis, who live in the part of Egypt that borders on Libya, = took a=20 dislike to the religious usages of the country concerning sacrificial = animals,=20 and wished no longer to be restricted from eating the flesh of cows. So, = as they=20 believed themselves to be Libyans and not Egyptians, they sent to the = shrine to=20 say that, having nothing in common with the Egyptians, neither = inhabiting the=20 Delta nor using the Egyptian tongue, they claimed to be allowed to eat = whatever=20 they pleased. Their request, however, was refused by the god, who = declared in=20 reply that Egypt was the entire tract of country which the Nile = overspreads and=20 irrigates, and the Egyptians were the people who lived below = Elephantine, and=20 drank the waters of that river. [2.19] So said the oracle. Now the Nile, when it = overflows,=20 floods not only the Delta, but also the tracts of country on both sides = the=20 stream which are thought to belong to Libya and Arabia, in some places = reaching=20 to the extent of two days' journey from its banks, in some even = exceeding that=20 distance, but in others falling short of it. Concerning the nature of the river, I was not able = to gain=20 any information either from the priests or from others. I was = particularly=20 anxious to learn from them why the Nile, at the commencement of the = summer=20 solstice, begins to rise, and continues to increase for a hundred days - = and=20 why, as soon as that number is past, it forthwith retires and contracts = its=20 stream, continuing low during the whole of the winter until the summer = solstice=20 comes round again. On none of these points could I obtain any = explanation from=20 the inhabitants, though I made every inquiry, wishing to know what was = commonly=20 reported - they could neither tell me what special virtue the Nile has = which=20 makes it so opposite in its nature to all other streams, nor why, unlike = every=20 other river, it gives forth no breezes from its surface. [2.20] Some of the Greeks, however, wishing to get = a=20 reputation for cleverness, have offered explanations of the phenomena of = the=20 river, for which they have accounted in three different ways. Two of = these I do=20 not think it worth while to speak of, further than simply to mention = what they=20 are. One pretends that the Etesian winds cause the rise of the river by=20 preventing the Nile-water from running off into the sea. But in the = first place=20 it has often happened, when the Etesian winds did not blow, that the = Nile has=20 risen according to its usual wont; and further, if the Etesian winds = produced=20 the effect, the other rivers which flow in a direction opposite to those = winds=20 ought to present the same phenomena as the Nile, and the more so as they = are all=20 smaller streams, and have a weaker current. But these rivers, of which = there are=20 many both in Syria and Libya, are entirely unlike the Nile in this = respect. [2.21] The second opinion is even more unscientific = than the=20 one just mentioned, and also, if I may so say, more marvellous. It is = that the=20 Nile acts so strangely, because it flows from the ocean, and that the = ocean=20 flows all round the earth. [2.22] The third explanation, which is very much = more=20 plausible than either of the others, is positively the furthest from the = truth;=20 for there is really nothing in what it says, any more than in the other=20 theories. It is, that the inundation of the Nile is caused by the melting of snows. Now, as = the Nile=20 flows out of Libya, through Ethiopia, into Egypt, how is it possible = that it can=20 be formed of melted snow, running, as it does, from the hottest regions = of the=20 world into cooler countries? Many are the proofs whereby any one capable = of=20 reasoning on the subject may be convinced that it is most unlikely this = should=20 be the case. The first and strongest argument is furnished by the winds, = which=20 always blow hot from these regions. The second is that rain and frost = are=20 unknown there. Now whenever snow falls, it must of necessity rain within = five=20 days;.so that, if there were snow, there must be rain also in those = parts.=20 Thirdly, it is certain that the natives of the country are black with = the heat,=20 that the kites and the swallows remain there the whole year, and that = the=20 cranes, when they fly from the rigours of a Scythian winter, flock = thither to=20 pass the cold season. If then, in the country whence the Nile has its = source, or=20 in that through which it flows, there fell ever so little snow, it is = absolutely=20 impossible that any of these circumstances could take place. [2.23] As for the writer who attributes the = phenomenon to the=20 ocean, his account is involved in such obscurity that it is impossible = to=20 disprove it by argument. For my part I know of no river called Ocean, = and I=20 think that Homer, or one of the earlier poets, invented the name, and = introduced=20 it into his poetry. [2.24] Perhaps, after censuring all the opinions = that have=20 been put forward on this obscure subject, one ought to propose some = theory of=20 one's own. I will therefore proceed to explain what I think to be the = reason of=20 the Nile's swelling in the summer time. During the winter, the sun is = driven out=20 of his usual course by the storms, and removes to the upper parts of = Libya. This=20 is the whole secret in the fewest possible words; for it stands to = reason that=20 the country to which the Sun-god approaches the nearest, and which he = passes=20 most directly over, will be scantest of water, and that there the = streams which=20 feed the rivers will shrink the most. [2.25] To explain, however, more at length, the = case is this.=20 The sun, in his passage across the upper parts of Libya, affects them in = the=20 following way. As the air in those regions is constantly clear, and the = country=20 warm through the absence of cold winds, the sun in his passage across = them acts=20 upon them exactly as he wont to act elsewhere in summer, when his path = is in the=20 middle of heaven - that is, he attracts the water. After attracting it, = he again=20 repels it into the upper regions, where the winds lay hold of it, = scatter it,=20 and reduce it to a vapour, whence it naturally enough comes to pass that = the=20 winds which blow from this quarter - the south and south-west - are of = all winds=20 the most rainy. And my own opinion is that the sun does not get rid of = all the=20 water which he draws year by year from the Nile, but retains some about = him.=20 When the winter begins to soften, the sun goes back again to his old = place in=20 the middle of the heaven, and proceeds to attract water equally from all = countries. Till then the other rivers run big, from the quantity of = rain-water=20 which they bring down from countries where so much moisture falls that = all the=20 land is cut into gullies; but in summer, when the showers fail, and the = sun=20 attracts their water, they become low. The Nile, on the contrary, not deriving any of its = bulk from=20 rains, and being in winter subject to the attraction of the sun, = naturally runs=20 at that season, unlike all other streams, with a less burden of water = than in=20 the summer time. For in summer it is exposed to attraction equally with = all=20 other rivers, but in winter it suffers alone. The sun, therefore, I = regard as=20 the sole cause of the phenomenon. [2.26] It is the sun also, in my opinion, which, by = heating=20 the space through which it passes, makes the air in Egypt=20 so dry. There is thus perpetual summer in the upper parts of Libya. Were = the=20 position of the heavenly regions reversed, so that the place where now = the north=20 wind and the winter have their dwelling became the station of the south = wind and=20 of the noon-day, while, on the other hand, the station of the south wind = became=20 that of the north, the consequence would be that the sun, driven from = the=20 mid-heaven by the winter and the northern gales, would betake himself to = the=20 upper parts of Europe, as he now does to those of Libya, and then I = believe his=20 passage across Europe would affect the Ister exactly as the Nile is = affected at=20 the present day. [2.27] And with respect to the fact that no breeze = blows from=20 the Nile, I am of opinion that no = wind is=20 likely to arise in very hot countries, for breezes love to blow from = some cold=20 quarter. [2.28] Let us leave these things, however, to their = natural=20 course, to continue as they are and have been from the beginning. With = regard to=20 the sources of the Nile, I have found no one among all those with whom I = have=20 conversed, whether Egyptians, Libyans, or Greeks, who professed to have = any=20 knowledge, except a single person. He was the scribe who kept the = register of=20 the sacred treasures of Minerva in the city of Sais, and he did not seem = to me=20 to be in earnest when he said that he knew them perfectly well. His = story was as=20 follows:- "Between Syene, a city of the Thebais, and Elephantine, there are" (he said) "two hills = with sharp=20 conical tops; the name of the one is Crophi, of the other, Mophi. Midway = between=20 them are the fountains of the Nile, fountains which it is impossible to = fathom.=20 Half the water runs northward into Egypt, half to the south towards = Ethiopia."=20 The fountains were known to be unfathomable, he declared, because = Psammetichus,=20 an Egyptian king, had made trial of them. He had caused a rope to be = made, many=20 thousand fathoms in length, and had sounded the fountain with it, but = could find=20 no bottom. By this the scribe gave me to understand, if there was any = truth at=20 all in what he said, that in this fountain there are certain strong = eddies, and=20 a regurgitation, owing to the force wherewith the water dashes against = the=20 mountains, and hence a Sounding-line cannot be got to reach the bottom = of the=20 spring. [2.29] No other information on this could I obtain = from any=20 quarter. All that I succeeded in learning further of the more distant = portions=20 of the Nile, by ascending myself as high as Elephantine and making = inquiries=20 concerning the parts beyond, was the following:- As one advances beyond=20 Elephantine, the land rises. Hence it = is=20 necessary in this part of the river to attach a rope to the boat on each = side,=20 as men harness an ox, and so proceed on the journey. If the rope snaps, = the=20 vessel is borne away down stream by the force of the current. The = navigation=20 continues the same for four days, the river winding greatly, like the = Maeander,=20 and the distance traversed amounting to twelve schoenes. Here you come = upon a=20 smooth and level plain, where the Nile flows in two branches, round an = island=20 called Tachompso. The country above Elephantine=20 is inhabited by the Ethiopians, who possess one-half of this island, the = Egyptians occupying the other. Above the island there is a great lake, = the=20 shores of which are inhabited by Ethiopian nomads; after passing it, you = come=20 again to the stream of the Nile, which runs into the lake. Here you = land, and=20 travel for forty days along the banks of the river, since it is = impossible to=20 proceed further in a boat on account of the sharp peaks which jut out = from the=20 water, and the sunken rocks which abound in that part of the stream. = When you=20 have passed this portion of the river in the space of forty days, you go = on=20 board another boat and proceed by water for twelve days more, at the end = of=20 which time you reach a great city called Meroe, which is said to be the = capital=20 of the other Ethiopians. The only gods worshipped by the inhabitants are = Jupiter=20 and Bacchus, to whom great honours are paid. There is an oracle of = Jupiter in=20 the city, which directs the warlike expeditions of the Ethiopians; when = it=20 commands they go to war, and in whatever direction it bids them march, = thither=20 straightway they carry their arms. [2.30] On leaving this city, and again mounting the = stream,=20 in the same space of time which it took you to reach the capital from=20 Elephantine, you come to the Deserters, who bear the name of Asmach. = This word,=20 translated into our language, means "the men who stand on the left hand = of the=20 king." These Deserters are Egyptians of the warrior caste, who, to the = number of=20 two hundred and forty thousand, went over to the Ethiopians in the reign = of king=20 Psammetichus. The cause of their desertion was the following:- Three = garrisons=20 were maintained in Egypt at=20 that time, one in the city of Elephantine against the Ethiopians, = another in=20 the Pelusiac Daphnae, against the Syrians and Arabians, and a third, = against the=20 Libyans, in Marea. (The very same posts are to this day occupied by the=20 Persians, whose forces are in garrison both in Daphnae and in = Elephantine.) Now=20 it happened, that on one occasion the garrisons were not relieved during = the=20 space of three years; the soldiers, therefore, at the end of that time,=20 consulted together, and having determined by common consent to revolt, = marched=20 away towards Ethiopia. Psammetichus, informed of the movement, set out = in=20 pursuit, and coming up with them, besought them with many words not to = desert=20 the gods of their country, nor abandon their wives and children. "Nay, = but,"=20 said one of the deserters with an unseemly gesture, "wherever we go, we = are sure=20 enough of finding wives and children." Arrived in Ethiopia, they placed=20 themselves at the disposal of the king. In return, he made them a = present of a=20 tract of land which belonged to certain Ethiopians with whom he was at = feud,=20 bidding them expel the inhabitants and take possession of their = territory. From=20 the time that this settlement was formed, their acquaintance with = Egyptian=20 manners has tended to civilise the Ethiopians. [2.31] Thus the course of the Nile is known, not = only=20 throughout Egypt, but to the extent of four months' journey either by = land or=20 water above the Egyptian boundary; for on calculation it will be found = that it=20 takes that length of time to travel from Elephantine to the country of = the=20 Deserters. There the direction of the river is from west to east. = Beyond, no one=20 has any certain knowledge of its course, since the country is = uninhabited by=20 reason of the excessive heat. [2.32] I did hear, indeed, what I will now relate, = from=20 certain natives of Cyrene. Once upon a time, they said, they were on a = visit to=20 the oracular shrine of Ammon, when it chanced that in the course of = conversation=20 with Etearchus, the Ammonian king, the talk fell upon the Nile, how that = its=20 sources were unknown to all men. Etearchus upon this mentioned that some = Nasamonians had once come to his court, and when asked if they could = give any=20 information concerning the uninhabited parts of Libya, had told the = following=20 tale. (The Nasamonians are a Libyan race who occupy the Syrtis, and a = tract of=20 no great size towards the east.) They said there had grown up among them = some=20 wild young men, the sons of certain chiefs, who, when they came to man's = estate,=20 indulged in all manner of extravagancies, and among other things drew = lots for=20 five of their number to go and explore the desert parts of Libya, and = try if=20 they could not penetrate further than any had done previously. The coast = of=20 Libya along the sea which washes it to the north, throughout its entire = length=20 from Egypt to Cape Soloeis, which is its furthest point, is inhabited by = Libyans=20 of many distinct tribes who possess the whole tract except certain = portions=20 which belong to the Phoenicians and the Greeks. Above the coast-line and = the=20 country inhabited by the maritime tribes, Libya is full of wild beasts; = while=20 beyond the wild beast region there is a tract which is wholly sand, very = scant=20 of water, and utterly and entirely a desert. The young men therefore, = despatched=20 on this errand by their comrades with a plentiful supply of water and=20 provisions, travelled at first through the inhabited region, passing = which they=20 came to the wild beast tract, whence they finally entered upon the = desert, which=20 they proceeded to cross in a direction from east to west. After = journeying for=20 many days over a wide extent of sand, they came at last to a plain where = they=20 observed trees growing; approaching them, and seeing fruit on them, they = proceeded to gather it. While they were thus engaged, there came upon = them some=20 dwarfish men, under the middle height, who seized them and carried them = off. The=20 Nasamonians could not understand a word of their language, nor had they = any=20 acquaintance with the language of the Nasamonians. They were led across=20 extensive marshes, and finally came to a town, where all the men were of = the=20 height of their conductors, and black-complexioned. A great river flowed = by the=20 town, running from west to east, and containing crocodiles. [Although he = was=20 unaware of it, Herodotus actually might have been describing the Niger = River in=20 central Africa, which would have been accessible by caravan routes = through the=20 Sahara desert.] [2.33] Here let me dismiss Etearchus the Ammonian, = and his=20 story, only adding that (according to the Cyrenaeans) he declared that = the=20 Nasamonians got safe back to their country, and that the men whose city = they had=20 reached were a nation of sorcerers. With respect to the river which ran = by their=20 town, Etearchus conjectured it to be the Nile; and reason favours that = view. For=20 the Nile certainly flows out of Libya, dividing it down the middle, and = as I=20 conceive, judging the unknown from the known, rises at the same distance = from=20 its mouth as the Danube. The Danube = river has=20 its source in the country of the Celts near the city Pyrene, and runs = through=20 the middle of Europe, dividing it = into two=20 portions. The Celts live beyond the pillars of Hercules, and border on = the=20 Cynesians, who dwell at the extreme west of Europe. Thus the Danube flows through the whole = of Europe=20 before it finally empties itself into the Euxine at Istria, one of the colonies of the Milesians. = [2.34] Now as this river flows through regions that = are=20 inhabited, its course is perfectly well known; but of the sources of the = Nile no=20 one can give any account, since Libya, the country through which it = passes, is=20 desert and without inhabitants. As far as it was possible to get = information by=20 inquiry, I have given a description of the stream. It enters Egypt from = the=20 parts beyond. Egypt lies almost exactly opposite the mountainous portion = of=20 Cilicia, whence a lightly-equipped traveller may reach Sinope on the = Euxine in=20 five days by the direct route. Sinope lies opposite the place where the=20 Danube falls into the sea. My opinion = therefore=20 is that the Nile, as it traverses the whole of Libya, is of equal length with the = Danube. And here I take my leave of this = subject. [2.35] Concerning Egypt itself I shall extend my = remarks to a=20 great length, because there is no country that possesses so many = wonders, nor=20 any that has such a number of works which defy description. Not only is = the=20 climate different from that of the rest of the world, and the rivers = unlike any=20 other rivers, but the people also, in most of their manners and customs, = exactly=20 reverse the common practice of mankind. The women attend the markets and = trade,=20 while the men sit at home at the loom; and here, while the rest of the = world=20 works the woof up the warp, the Egyptians work it down; the women = likewise carry=20 burdens upon their shoulders, while the men carry them upon their heads. = They=20 eat their food out of doors in the streets, but retire for private = purposes to=20 their houses, giving as a reason that what is unseemly, but necessary, = ought to=20 be done in secret, but what has nothing unseemly about it, should be = done=20 openly. A woman cannot serve the priestly office, either for god or = goddess, but=20 men are priests to both; sons need not support their parents unless they = choose,=20 but daughters must, whether they choose or no. [2.36] In other countries the priests have long = hair, in=20 Egypt their heads are shaven; elsewhere it is customary, in mourning, = for near=20 relations to cut their hair close: the Egyptians, who wear no hair at = any other=20 time, when they lose a relative, let their beards and the hair of their = heads=20 grow long. All other men pass their lives separate from animals, the = Egyptians=20 have animals always living with them; others make barley and wheat their = food;=20 it is a disgrace to do so in Egypt, where the grain they live on is = spelt, which=20 some call zea. Dough they knead with their feet; but they mix mud, and = even take=20 up dirt, with their hands. They are the only people in the world- they = at least,=20 and such as have learnt the practice from them - who use circumcision. = Their men=20 wear two garments apiece, their women but one. They put on the rings and = fasten=20 the ropes to sails inside; others put them outside. When they write or=20 calculate, instead of going, like the Greeks, from left to right, they = move=20 their hand from right to left; and they insist, notwithstanding, that it = is they=20 who go to the right, and the Greeks who go to the left. They have two = quite=20 different kinds of writing, one of which is called sacred, the other = common.=20 [2.37] They are religious to excess, far beyond any = other=20 race of men, and use the following ceremonies:- They drink out of brazen = cups,=20 which they scour every day: there is no exception to this practice. They = wear=20 linen garments, which they are specially careful to have always fresh = washed.=20 They practise circumcision for the sake of cleanliness, considering it = better to=20 be cleanly than comely. The priests shave their whole body every other = day, that=20 no lice or other impure thing may adhere to them when they are engaged = in the=20 service of the gods. Their dress is entirely of linen, and their shoes = of the=20 papyrus plant: it is not lawful for them to wear either dress or shoes = of any=20 other material. They bathe twice every day in cold water, and twice each = night;=20 besides which they observe, so to speak, thousands of ceremonies. They = enjoy,=20 however, not a few advantages. They consume none of their own property, = and are=20 at no expense for anything; but every day bread is baked for them of the = sacred=20 grain, and a plentiful supply of beef and of goose's flesh is assigned = to each,=20 and also a portion of wine made from the grape. Fish they are not = allowed to=20 eat; and beans - which none of the Egyptians ever sow, or eat, if they = come up=20 of their own accord, either raw or boiled - the priests will not even = endure to=20 look on, since they consider it an unclean kind of pulse. Instead of a = single=20 priest, each god has the attendance of a college, at the head of which = is a=20 chief priest; when one of these dies, his son is appointed in his room. = [2.38] Male cattle are reckoned to belong to = Epaphus, and are=20 therefore tested in the following manner:- One of the priests appointed = for the=20 purpose searches to see if there is a single black hair on the whole = body, since=20 in that case the beast is unclean. He examines him all over, standing on = his=20 legs, and again laid upon his back; after which he takes the tongue out = of his=20 mouth, to see if it be clean in respect of the prescribed marks (what = they are I=20 will mention elsewhere); he also inspects the hairs of the tail, to = observe if=20 they grow naturally. If the animal is pronounced clean in all these = various=20 points, the priest marks him by twisting a piece of papyrus round his = horns, and=20 attaching thereto some sealing-clay, which he then stamps with his own=20 signet-ring. After this the beast is led away; and it is forbidden, = under the=20 penalty of death, to sacrifice an animal which has not been marked in = this way.=20 [2.39] The following is their manner of sacrifice:- = They lead=20 the victim, marked with their signet, to the altar where they are about = to offer=20 it, and setting the wood alight, pour a libation of wine upon the altar = in front=20 of the victim, and at the same time invoke the god. Then they slay the = animal,=20 and cutting off his head, proceed to flay the body. Next they take the = head, and=20 heaping imprecations on it, if there is a market-place and a body of = Greek=20 traders in the city, they carry it there and sell it instantly; if, = however,=20 there are no Greeks among them, they throw the head into the river. The=20 imprecation is to this effect:- They pray that if any evil is impending = either=20 over those who sacrifice, or over universal Egypt,=20 it may be made to fall upon that head. These practices, the imprecations = upon=20 the heads, and the libations of wine, prevail all over Egypt, and extend = to=20 victims of all sorts; and hence the Egyptians will never eat the head of = any=20 animal. [2.40] The disembowelling and burning are, however, = different=20 in different sacrifices. I will mention the mode in use with respect to = the=20 goddess whom they regard as the greatest, and honour with the chiefest = festival.=20 When they have flayed their steer they pray, and when their prayer is = ended they=20 take the paunch of the animal out entire, leaving the intestines and the = fat=20 inside the body; they then cut off the legs, the ends of the loins, the=20 shoulders, and the neck; and having so done, they fill the body of the = steer=20 with clean bread, honey, raisins, figs, frankincense, myrrh, and other=20 aromatics. Thus filled, they burn the body, pouring over it great = quantities of=20 oil. Before offering the sacrifice they fast, and while the bodies of = the=20 victims are being consumed they beat themselves. Afterwards, when they = have=20 concluded this part of the ceremony, they have the other parts of the = victim=20 served up to them for a repast. On Scythians: [4.2] Now the Scythians blind all their slaves, to = use them=20 in preparing their milk. The plan they follow is to thrust tubes made of = bone,=20 not unlike our musical pipes, up the vulva of the mare, and then to blow = into=20 the tubes with their mouths, some milking while the others blow. They = say that=20 they do this because when the veins of the animal are full of air, the = udder is=20 forced down. The milk thus obtained is poured into deep wooden casks, = about=20 which the blind slaves are placed, and then the milk is stirred round. = That=20 which rises to the top is drawn off, and considered the best part; the = under=20 portion is of less account. Such is the reason why the Scythians blind = all those=20 whom they take in war; it arises from their not being tillers of the = ground, but=20 a pastoral race. [4.59] Thus abundantly are the Scythians provided = with the=20 most important necessaries. Their manners and customs come now to be = described.=20 They worship only the following gods, namely, Vesta, whom they reverence = beyond=20 all the rest, Jupiter, and Tellus, whom they consider to be the wife of = Jupiter;=20 and after these Apollo, Celestial Venus, Hercules, and Mars. These gods = are=20 worshipped by the whole nation: the Royal Scythians offer sacrifice = likewise to=20 Neptune. In the Scythic tongue Vesta is called Tabiti, Jupiter (very = properly,=20 in my judgment) Papaeus, Tellus Apia, Apollo Oetosyrus, Celestial Venus=20 Artimpasa, and Neptune Thamimasadas. They use no images, altars, or = temples,=20 except in the worship of Mars; but in his worship they do use them. [4.60] The manner of their sacrifices is everywhere = and in=20 every case the same; the victim stands with its two fore-feet bound = together by=20 a cord, and the person who is about to offer, taking his station behind = the=20 victim, gives the rope a pull, and thereby throws the animal down; as it = falls=20 he invokes the god to whom he is offering; after which he puts a noose = round the=20 animal's neck, and, inserting a small stick, twists it round, and so = strangles=20 him. No fire is lighted, there is no consecration, and no pouring out of = drink-offerings; but directly after the beast is strangled the = sacrificer flays=20 him, and then sets to work to boil the flesh. [4.61] As Scythia, however, is utterly barren of = firewood, a=20 plan has had to be contrived for boiling the flesh, which is the = following.=20 After flaying the beasts, they take out all the bones, and (if they = possess such=20 gear) put the flesh into boilers made in the country, which are very = like the=20 cauldrons of the Lesbians, except that they are of a much larger size; = then=20 placing the bones of the animals beneath the cauldron, they set them = alight, and=20 so boil the meat. If they do not happen to possess a cauldron, they make = the=20 animal's paunch hold the flesh, and pouring in at the same time a little = water,=20 lay the bones under and light them. The bones burn beautifully; and the = paunch=20 easily contains all the flesh when it is stript from the bones, so that = by this=20 plan your ox is made to boil himself, and other victims also to do the = like.=20 When the meat is all cooked, the sacrificer offers a portion of the = flesh and of=20 the entrails, by casting it on the ground before him. They sacrifice all = sorts=20 of cattle, but most commonly horses. [4.62] Such are the victims offered to the other = gods, and=20 such is the mode in which they are sacrificed; but the rites paid to = Mars are=20 different. In every district, at the seat of government, there stands a = temple=20 of this god, whereof the following is a description. It is a pile of = brushwood,=20 made of a vast quantity of fagots, in length and breadth three furlongs; = in=20 height somewhat less, having a square platform upon the top, three sides = of=20 which are precipitous, while the fourth slopes so that men may walk up = it. Each=20 year a hundred and fifty wagon-loads of brushwood are added to the pile, = which=20 sinks continually by reason of the rains. An antique iron sword is = planted on=20 the top of every such mound, and serves as the image of Mars: yearly = sacrifices=20 of cattle and of horses are made to it, and more victims are offered = thus than=20 to all the rest of their gods. When prisoners are taken in war, out of = every=20 hundred men they sacrifice one, not however with the same rites as the = cattle,=20 but with different. Libations of wine are first poured upon their heads, = after=20 which they are slaughtered over a vessel; the vessel is then carried up = to the=20 top of the pile, and the blood poured upon the scimitar. While this = takes place=20 at the top of the mound, below, by the side of the temple, the right = hands and=20 arms of the slaughtered prisoners are cut off, and tossed on high into = the air.=20 Then the other victims are slain, and those who have offered the = sacrifice=20 depart, leaving the hands and arms where they may chance to have fallen, = and the=20 bodies also, separate. [4.63] Such are the observances of the Scythians = with respect=20 to sacrifice. They never use swine for the purpose, nor indeed is it = their wont=20 to breed them in any part of their country. [4.64] In what concerns war, their customs are the = following.=20 The Scythian soldier drinks the blood of the first man he overthrows in = battle.=20 Whatever number he slays, he cuts off all their heads, and carries them = to the=20 king; since he is thus entitled to a share of the booty, whereto he = forfeits all=20 claim if he does not produce a head. In order to strip the skull of its=20 covering, he makes a cut round the head above the ears, and, laying hold = of the=20 scalp, shakes the skull out; then with the rib of an ox he scrapes the = scalp=20 clean of flesh, and softening it by rubbing between the hands, uses it=20 thenceforth as a napkin. The Scyth is proud of these scalps, and hangs = them from=20 his bridle-rein; the greater the number of such napkins that a man can = show, the=20 more highly is he esteemed among them. Many make themselves cloaks, like = the=20 capotes of our peasants, by sewing a quantity of these scalps together. = Others=20 flay the right arms of their dead enemies, and make of the skin, which = stripped=20 off with the nails hanging to it, a covering for their quivers. Now the = skin of=20 a man is thick and glossy, and would in whiteness surpass almost all = other=20 hides. Some even flay the entire body of their enemy, and stretching it = upon a=20 frame carry it about with them wherever they ride. Such are the Scythian = customs=20 with respect to scalps and skins. [4.70] Oaths among the Scyths are accompanied with = the=20 following ceremonies: a large earthen bowl is filled with wine, and the = parties=20 to the oath, wounding themselves slightly with a knife or an awl, drop = some of=20 their blood into the wine; then they plunge into the mixture a scimitar, = some=20 arrows, a battle-axe, and a javelin, all the while repeating prayers; = lastly the=20 two contracting parties drink each a draught from the bowl, as do also = the chief=20 men among their followers. [4.71] The tombs of their kings are in the land of = the=20 Gerrhi, who dwell at the point where the Borysthenes is first navigable. = Here,=20 when the king dies, they dig a grave, which is square in shape, and of = great=20 size. When it is ready, they take the king's corpse, and, having opened = the=20 belly, and cleaned out the inside, fill the cavity with a preparation of = chopped=20 cypress, frankincense, parsley-seed, and anise-seed, after which they = sew up the=20 opening, enclose the body in wax, and, placing it on a wagon, carry it = about=20 through all the different tribes. On this procession each tribe, when it = receives the corpse, imitates the example which is first set by the = Royal=20 Scythians; every man chops off a piece of his ear, crops his hair close, = and=20 makes a cut all round his arm, lacerates his forehead and his nose, and = thrusts=20 an arrow through his left hand. Then they who have the care of the = corpse carry=20 it with them to another of the tribes which are under the Scythian rule, = followed by those whom they first visited. On completing the circuit of = all the=20 tribes under their sway, they find themselves in the country of the = Gerrhi, who=20 are the most remote of all, and so they come to the tombs of the kings. = There=20 the body of the dead king is laid in the grave prepared for it, = stretched upon a=20 mattress; spears are fixed in the ground on either side of the corpse, = and beams=20 stretched across above it to form a roof, which is covered with a = thatching of=20 osier twigs. In the open space around the body of the king they bury one = of his=20 concubines, first killing her by strangling, and also his cup-bearer, = his cook,=20 his groom, his lacquey, his messenger, some of his horses, firstlings of = all his=20 other possessions, and some golden cups; for they use neither silver nor = brass.=20 After this they set to work, and raise a vast mound above the grave, all = of them=20 vying with each other and seeking to make it as tall as possible. [4.72] When a year is gone by, further ceremonies = take place.=20 Fifty of the best of the late king's attendants are taken, all native = Scythians=20 - for, as bought slaves are unknown in the country, the Scythian kings = choose=20 any of their subjects that they like, to wait on them - fifty of these = are taken=20 and strangled, with fifty of the most beautiful horses. When they are = dead,=20 their bowels are taken out, and the cavity cleaned, filled full of = chaff, and=20 straightway sewn up again. This done, a number of posts are driven into = the=20 ground, in sets of two pairs each, and on every pair half the felly of a = wheel=20 is placed archwise; then strong stakes are run lengthways through the = bodies of=20 the horses from tail to neck, and they are mounted up upon the fellies, = so that=20 the felly in front supports the shoulders of the horse, while that = behind=20 sustains the belly and quarters, the legs dangling in mid-air; each = horse is=20 furnished with a bit and bridle, which latter is stretched out in front = of the=20 horse, and fastened to a peg. The fifty strangled youths are then = mounted=20 severally on the fifty horses. To effect this, a second stake is passed = through=20 their bodies along the course of the spine to the neck; the lower end of = which=20 projects from the body, and is fixed into a socket, made in the stake = that runs=20 lengthwise down the horse. The fifty riders are thus ranged in a circle = round=20 the tomb, and so left. [4.73] Such, then, is the mode in which the kings = are buried:=20 as for the people, when any one dies, his nearest of kin lay him upon a = wagon=20 and take him round to all his friends in succession: each receives them = in turn=20 and entertains them with a banquet, whereat the dead man is served with = a=20 portion of all that is set before the others; this is done for forty = days, at=20 the end of which time the burial takes place. After the burial, those = engaged in=20 it have to purify themselves, which they do in the following way. First = they=20 well soap and wash their heads; then, in order to cleanse their bodies, = they act=20 as follows: they make a booth by fixing in the ground three sticks = inclined=20 towards one another, and stretching around them woolen felts, which they = arrange=20 so as to fit as close as possible: inside the booth a dish is placed = upon the=20 ground, into which they put a number of red-hot stones, and then add = some=20 hemp-seed. [4.74] Hemp grows in Scythia: it is very like flax; = only that=20 it is a much coarser and taller plant: some grows wild about the = country, some=20 is produced by cultivation: the Thracians make garments of it which = closely=20 resemble linen; so much so, indeed, that if a person has never seen hemp = he is=20 sure to think they are linen, and if he has, unless he is very = experienced in=20 such matters, he will not know of which material they are. [4.75] The Scythians, as I said, take some of this = hemp-seed,=20 and, creeping under the felt coverings, throw it upon the red-hot = stones;=20 immediately it smokes, and gives out such a vapour as no Grecian = vapour-bath can=20 exceed; the Scyths, delighted, shout for joy, and this vapour serves = them=20 instead of a water-bath; for they never by any chance wash their bodies = with=20 water. Their women make a mixture of cypress, cedar, and frankincense = wood,=20 which they pound into a paste upon a rough piece of stone, adding a = little water=20 to it. With this substance, which is of a thick consistency, they = plaster their=20 faces all over, and indeed their whole bodies. A sweet odour is thereby = imparted=20 to them, and when they take off the plaster on the day following, their = skin is=20 clean and glossy. ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/blackboard/content/contentWrapper.jsp?attachment=true&navItem=content&content_id=_2356318_1&displayName=Herodotus&course_id=_702465_1&href=/courses/1/HIS_1000_0909_001/content/_2356318_1/Herodotus.htm ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/javascript/date.js?v=9.0.440.7 // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D // Author: Matt Kruse // WWW: http://www.mattkruse.com/ // // NOTICE: You may use this code for any purpose, commercial or // private, without any further permission from the author. You may // remove this notice from your final code if you wish, however it is // appreciated by the author if at least my web site address is kept. // // You may *NOT* re-distribute this code in any way except through its // use. That means, you can include it in your product, or your web // site, or any other form where the code is actually being used. You // may not put the plain javascript up on your site for download or // include it in your javascript libraries for download.=20 // If you wish to share this code with others, please just point them // to the URL instead. // Please DO NOT link directly to my .js files from your site. Copy // the files to your server and use them there. Thank you. // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D // HISTORY // ------------------------------------------------------------------ // May 17, 2003: Fixed bug in parseDate() for dates <1970 // March 11, 2003: Added parseDate() function // March 11, 2003: Added "NNN" formatting option. Doesn't match up // perfectly with SimpleDateFormat formats, but=20 // backwards-compatability was required. // ------------------------------------------------------------------ // These functions use the same 'format' strings as the=20 // java.text.SimpleDateFormat class, with minor exceptions. // The format string consists of the following abbreviations: //=20 // Field | Full Form | Short Form // -------------+--------------------+----------------------- // Year | yyyy (4 digits) | yy (2 digits), y (2 or 4 digits) // Month | MMM (name or abbr.)| MM (2 digits), M (1 or 2 digits) // | NNN (abbr.) | // Day of Month | dd (2 digits) | d (1 or 2 digits) // Day of Week | EE (name) | E (abbr) // Hour (1-12) | hh (2 digits) | h (1 or 2 digits) // Hour (0-23) | HH (2 digits) | H (1 or 2 digits) // Hour (0-11) | KK (2 digits) | K (1 or 2 digits) // Hour (1-24) | kk (2 digits) | k (1 or 2 digits) // Minute | mm (2 digits) | m (1 or 2 digits) // Second | ss (2 digits) | s (1 or 2 digits) // AM/PM | a | // // NOTE THE DIFFERENCE BETWEEN MM and mm! Month=3DMM, not mm! // Examples: // "MMM d, y" matches: January 01, 2000 // Dec 1, 1900 // Nov 20, 00 // "M/d/yy" matches: 01/20/00 // 9/2/00 // "MMM dd, yyyy hh:mm:ssa" matches: "January 01, 2000 12:30:45AM" // ------------------------------------------------------------------ var MONTH_NAMES=3Dnew = Array('January','February','March','April','May','June','July','August','= September','October','November','December','Jan','Feb','Mar','Apr','May',= 'Jun','Jul','Aug','Sep','Oct','Nov','Dec'); var DAY_NAMES=3Dnew = Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturd= ay','Sun','Mon','Tue','Wed','Thu','Fri','Sat'); function LZ(x) {return(x<0||x>9?"":"0")+x} // ------------------------------------------------------------------ // isDate ( date_string, format_string ) // Returns true if date string matches format of format string and // is a valid date. Else returns false. // It is recommended that you trim whitespace around the value before // passing it to this function, as whitespace is NOT ignored! // ------------------------------------------------------------------ function isDate(val,format) { var date=3DgetDateFromFormat(val,format); if (date=3D=3D0) { return false; } return true; } // ------------------------------------------------------------------- // compareDates(date1,date1format,date2,date2format) // Compare two date strings to see which is greater. // Returns: // 1 if date1 is greater than date2 // 0 if date2 is greater than date1 of if they are the same // -1 if either of the dates is in an invalid format // ------------------------------------------------------------------- function compareDates(date1,dateformat1,date2,dateformat2) { var d1=3DgetDateFromFormat(date1,dateformat1); var d2=3DgetDateFromFormat(date2,dateformat2); if (d1=3D=3D0 || d2=3D=3D0) { return -1; } else if (d1 > d2) { return 1; } return 0; } // ------------------------------------------------------------------ // formatDate (date_object, format) // Returns a date in the output format specified. // The format string uses the same abbreviations as in = getDateFromFormat() // ------------------------------------------------------------------ function formatDate(date,format) { format=3Dformat+""; var result=3D""; var i_format=3D0; var c=3D""; var token=3D""; var y=3Ddate.getYear()+""; var M=3Ddate.getMonth()+1; var d=3Ddate.getDate(); var E=3Ddate.getDay(); var H=3Ddate.getHours(); var m=3Ddate.getMinutes(); var s=3Ddate.getSeconds(); var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k; // Convert real date parts into formatted versions var value=3Dnew Object(); if (y.length < 4) {y=3D""+(y-0+1900);} value["y"]=3D""+y; value["yyyy"]=3Dy; value["yy"]=3Dy.substring(2,4); value["M"]=3DM; value["MM"]=3DLZ(M); value["MMM"]=3DMONTH_NAMES[M-1]; value["NNN"]=3DMONTH_NAMES[M+11]; value["d"]=3Dd; value["dd"]=3DLZ(d); value["E"]=3DDAY_NAMES[E+7]; value["EE"]=3DDAY_NAMES[E]; value["H"]=3DH; value["HH"]=3DLZ(H); if (H=3D=3D0){value["h"]=3D12;} else if (H>12){value["h"]=3DH-12;} else {value["h"]=3DH;} value["hh"]=3DLZ(value["h"]); if (H>11){value["K"]=3DH-12;} else {value["K"]=3DH;} value["k"]=3DH+1; value["KK"]=3DLZ(value["K"]); value["kk"]=3DLZ(value["k"]); if (H > 11) { value["a"]=3D"PM"; } else { value["a"]=3D"AM"; } value["m"]=3Dm; value["mm"]=3DLZ(m); value["s"]=3Ds; value["ss"]=3DLZ(s); while (i_format < format.length) { c=3Dformat.charAt(i_format); token=3D""; while ((format.charAt(i_format)=3D=3Dc) && (i_format < format.length)) = { token +=3D format.charAt(i_format++); } if (value[token] !=3D null) { result=3Dresult + value[token]; } else { result=3Dresult + token; } } return result; } =09 // ------------------------------------------------------------------ // Utility functions for parsing in getDateFromFormat() // ------------------------------------------------------------------ function _isInteger(val) { var digits=3D"1234567890"; for (var i=3D0; i < val.length; i++) { if (digits.indexOf(val.charAt(i))=3D=3D-1) { return false; } } return true; } function _getInt(str,i,minlength,maxlength) { for (var x=3Dmaxlength; x>=3Dminlength; x--) { var token=3Dstr.substring(i,i+x); if (token.length < minlength) { return null; } if (_isInteger(token)) { return token; } } return null; } =09 // ------------------------------------------------------------------ // getDateFromFormat( date_string , format_string ) // // This function takes a date string and a format string. It matches // If the date string matches the format string, it returns the=20 // getTime() of the date. If it does not match, it returns 0. // ------------------------------------------------------------------ function getDateFromFormat(val,format) { val=3Dval+""; format=3Dformat+""; var i_val=3D0; var i_format=3D0; var c=3D""; var token=3D""; var token2=3D""; var x,y; var now=3Dnew Date(); var year=3Dnow.getYear(); var month=3Dnow.getMonth()+1; var date=3D1; var hh=3Dnow.getHours(); var mm=3Dnow.getMinutes(); var ss=3Dnow.getSeconds(); var ampm=3D""; =09 while (i_format < format.length) { // Get next token from format string c=3Dformat.charAt(i_format); token=3D""; while ((format.charAt(i_format)=3D=3Dc) && (i_format < format.length)) = { token +=3D format.charAt(i_format++); } // Extract contents of value based on format token if (token=3D=3D"yyyy" || token=3D=3D"yy" || token=3D=3D"y") { if (token=3D=3D"yyyy") { x=3D4;y=3D4; } if (token=3D=3D"yy") { x=3D2;y=3D2; } if (token=3D=3D"y") { x=3D2;y=3D4; } year=3D_getInt(val,i_val,x,y); if (year=3D=3Dnull) { return 0; } i_val +=3D year.length; if (year.length=3D=3D2) { if (year > 70) { year=3D1900+(year-0); } else { year=3D2000+(year-0); } } } else if (token=3D=3D"MMM"||token=3D=3D"NNN"){ month=3D0; for (var i=3D0; i11)) { month=3Di+1; if (month>12) { month -=3D 12; } i_val +=3D month_name.length; break; } } } if ((month < 1)||(month>12)){return 0;} } else if (token=3D=3D"EE"||token=3D=3D"E"){ for (var i=3D0; i12)){return 0;} i_val+=3Dmonth.length;} else if (token=3D=3D"dd"||token=3D=3D"d") { date=3D_getInt(val,i_val,token.length,2); if(date=3D=3Dnull||(date<1)||(date>31)){return 0;} i_val+=3Ddate.length;} else if (token=3D=3D"hh"||token=3D=3D"h") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<1)||(hh>12)){return 0;} i_val+=3Dhh.length;} else if (token=3D=3D"HH"||token=3D=3D"H") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<0)||(hh>23)){return 0;} i_val+=3Dhh.length;} else if (token=3D=3D"KK"||token=3D=3D"K") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<0)||(hh>11)){return 0;} i_val+=3Dhh.length;} else if (token=3D=3D"kk"||token=3D=3D"k") { hh=3D_getInt(val,i_val,token.length,2); if(hh=3D=3Dnull||(hh<1)||(hh>24)){return 0;} i_val+=3Dhh.length;hh--;} else if (token=3D=3D"mm"||token=3D=3D"m") { mm=3D_getInt(val,i_val,token.length,2); if(mm=3D=3Dnull||(mm<0)||(mm>59)){return 0;} i_val+=3Dmm.length;} else if (token=3D=3D"ss"||token=3D=3D"s") { ss=3D_getInt(val,i_val,token.length,2); if(ss=3D=3Dnull||(ss<0)||(ss>59)){return 0;} i_val+=3Dss.length;} else if (token=3D=3D"a") { if (val.substring(i_val,i_val+2).toLowerCase()=3D=3D"am") = {ampm=3D"AM";} else if (val.substring(i_val,i_val+2).toLowerCase()=3D=3D"pm") = {ampm=3D"PM";} else {return 0;} i_val+=3D2;} else { if (val.substring(i_val,i_val+token.length)!=3Dtoken) {return 0;} else {i_val+=3Dtoken.length;} } } // If there are any trailing characters left in the value, it doesn't = match if (i_val !=3D val.length) { return 0; } // Is date valid for month? if (month=3D=3D2) { // Check for leap year if ( ( (year%4=3D=3D0)&&(year%100 !=3D 0) ) || (year%400=3D=3D0) ) { = // leap year if (date > 29){ return 0; } } else { if (date > 28) { return 0; } } } if ((month=3D=3D4)||(month=3D=3D6)||(month=3D=3D9)||(month=3D=3D11)) { if (date > 30) { return 0; } } // Correct hours value if (hh<12 && ampm=3D=3D"PM") { hh=3Dhh-0+12; } else if (hh>11 && ampm=3D=3D"AM") { hh-=3D12; } var newdate=3Dnew Date(year,month-1,date,hh,mm,ss); return newdate.getTime(); } // ------------------------------------------------------------------ // parseDate( date_string [, prefer_euro_format] ) // // This function takes a date string and tries to match it to a // number of possible date formats to get the value. It will try to // match against the following international formats, in this order: // y-M-d MMM d, y MMM d,y y-MMM-d d-MMM-y MMM d // M/d/y M-d-y M.d.y MMM-d M/d M-d // d/M/y d-M-y d.M.y d-MMM d/M d-M // A second argument may be passed to instruct the method to search // for formats like d/M/y (european format) before M/d/y (American). // Returns a Date object or null if no patterns match. // ------------------------------------------------------------------ function parseDate(val) { var preferEuro=3D(arguments.length=3D=3D2)?arguments[1]:false; generalFormats=3Dnew Array('y-M-d','MMM d, y','MMM = d,y','y-MMM-d','d-MMM-y','MMM d'); monthFirst=3Dnew Array('M/d/y','M-d-y','M.d.y','MMM-d','M/d','M-d'); dateFirst =3Dnew Array('d/M/y','d-M-y','d.M.y','d-MMM','d/M','d-M'); var checkList=3Dnew = Array('generalFormats',preferEuro?'dateFirst':'monthFirst',preferEuro?'mo= nthFirst':'dateFirst'); var d=3Dnull; for (var i=3D0; i 0 ) { oneRowHeight =3D = this.table.rows[this.table.rows.length-1].offsetHeight + 1 /*border = spacing*/; } //need to account for the wider header row var h =3D Math.max(this.options.tableHeight, ( ( = this.model.getMinimumRows() + 1 ) * oneRowHeight + 10 ) ); h =3D Math.min( h, this.table.offsetHeight+19 ); var w =3D Math.min(this.options.tableWidth, = this.table.offsetWidth+19); contDiv.style.height =3D h + "px"; contDiv.style.width =3D w + "px"; contDiv.style.overflow =3D "auto"; }, _initializeHTML: function() { this._sizeHTMLTable(); // wrap table with a new container div: relative see IE7 bug: = http://rowanw.com/bugs/overflow_relative.htm this.table.insert({before: ""}); this.table.previousSibling.appendChild(this.table); if (this.options.accessibleMode) { this.setAccessibleViewportSize( ); return; } // wrap table with a new viewport div this.table.insert({before: ""}); this.table.previousSibling.appendChild(this.table); var viewportDiv =3D $(this.tableId+'_viewport'); viewportDiv.style.height =3D (this.table.offsetHeight) + "px"; viewportDiv.style.overflow =3D "hidden"; =09 // add controllers to table cells var tableHeader =3D $(this.table.id + '_header'); if (tableHeader) { var numHCols =3D tableHeader.rows[0].cells.length; for (var c =3D 0; c < numHCols; c++) { new Gradebook.CellController(tableHeader.rows[0].cells[c], = this, 0, c, true); } } var numRows =3D this.table.rows.length; for (var r =3D 0; r < numRows; r++) { var numCols =3D this.table.rows[0].cells.length; for (var c =3D 0; c < numCols; c++) { var cell =3D this.table.rows[r].cells[c]; new Gradebook.CellController(cell, this, r, c, false); } } if (document.onClickHandler){ Event.stopObserving(document,'click',document.onClickHandler); } document.onClickHandler =3D = this.onDocumentClickHandler.bindAsEventListener(this); Event.observe(document,'click',document.onClickHandler); =09 if (document.onKeydownHandler){ Event.stopObserving(document,'keydown',document.onKeydownHandler); } document.onKeydownHandler =3D = this.onDocumentKeyDownHandler.bindAsEventListener(this); Event.observe(document,'keydown',document.onKeydownHandler); }, unload: function() { Gradebook.CellController.prototype.removeAllSavingDivs(); var numRows =3D this.table.rows.length; for (var r =3D 0; r < numRows; r++){ var numCols =3D this.table.rows[0].cells.length; for (var c =3D 0; c < numCols; c++){ var cell =3D this.table.rows[r].cells[c]; if (cell.controller) { cell.controller.unload(); } } } var tableHeader =3D $(this.table.id + '_header'); if (tableHeader){ var numHCols =3D tableHeader.rows[0].cells.length; for (var c =3D 0; c < numHCols; c++){ var cell =3D tableHeader.rows[0].cells[c]; if (cell.controller) { cell.controller.unload(); } } } if (this.viewPort) this.viewPort.unload(); this.model.removeModelListeners(); this.table =3D null; this.model =3D null; this.viewPort =3D null; this.options =3D null; this.sortCell =3D null; }, _sizeHTMLTable: function() { var tbl =3D this.table; var tableHeader =3D $(this.table.id + '_header'); var numRows =3D 0; var numCols =3D 0; =20 var numFrozenColumns =3D this.options.numFrozenColumns; // presence of th impacts the calculation of the row height // so we remove it before the calculation occurs if (numFrozenColumns =3D=3D 0){ for (var i=3D0; i=3D numCols){ numFrozenColumns =3D numCols-1; this.options.numFrozenColumns =3D numFrozenColumns; } =09 // assumes the table has at least 1 row & 2 cols // the first column is a frozen column // the second column is a non-frozen column // clone frozen columns for (var i =3D 0; i < numFrozenColumns-1; i++){ this._cloneColumn(1); // skip check box column } // clone non-frozen columns var numNonFrozenColumns =3D numCols - numFrozenColumns - 1; for (var i =3D 0; i < numNonFrozenColumns; i++){ this._cloneColumn(numFrozenColumns+1); // skip check box column } =09 var checkColumnWidth =3D this.table.rows[0].cells[0].offsetWidth; var visibleWidth =3D this.table.offsetWidth; this.avgColWidth =3D (visibleWidth - checkColumnWidth)/numCols; var frozenWidth =3D (numFrozenColumns * this.avgColWidth) + = checkColumnWidth; $("selectedRows").style.width=3Dthis.isIE?frozenWidth + "px": = frozenWidth-2 +"px"; =09 =09 // clone rows var numRowsToAdd =3D numRows - tbl.rows.length; if (tableHeader) numRowsToAdd--; =09 var rowToClone =3D tbl.rows[this.table.rows.length-1]; for (var i =3D 0; i < numRowsToAdd; i++){ tbl.tBodies[0].appendChild(rowToClone.cloneNode(true)); } // remove table rows if html table is bigger than numRows while (tbl.rows.length > numRows){ if (tbl.rows.length > 0) tbl.deleteRow(tbl.rows.length - 1); } // remove table columns if html table is bigger than model var allRows =3D tbl.rows;=09 while (tbl.rows.length > 0 && tbl.rows[0].cells.length-1 > = this.model.getNumColDefs()){ for (var i=3D0; i 1) { allRows[i].deleteCell(-1); } } } while (tableHeader && tableHeader.rows[0].cells.length-1 > = this.model.getNumColDefs()){ tableHeader.rows[0].deleteCell(-1); } }, _cloneColumn: function(colIndex){ var tbl =3D this.table; for (var i =3D 0; i < tbl.rows.length; i++) { var origCell =3D tbl.rows[i].cells[colIndex];=20 var newCell =3D origCell.cloneNode(true); tbl.rows[i].insertBefore(newCell,origCell); } var tableHeader =3D $(this.table.id + '_header'); if (tableHeader){ var tbl =3D tableHeader; for (var i =3D 0; i < tbl.rows.length; i++) { var origCell =3D tbl.rows[i].cells[colIndex];=20 var newCell =3D origCell.cloneNode(true); tbl.rows[i].insertBefore(newCell,origCell); } } }, =20 _setAccessibilityHeaders: function(){ if (!this.options.accessibleMode){ return; } var tbl =3D this.table; // add abbr attributes to all header cells var hdrRow =3D tbl.rows[0]; for ( var i =3D 1; i < hdrRow.cells.length; i++ ) { var cell =3D hdrRow.cells[i]; cell.abbr =3D cell.controller.getGridCell().getName(); } tbl.rows[0].cells[0].abbr =3D " "; var abbrColIndexs =3D this.getAbbrColIndexs(); =09 if ( tbl.rows.length > 1 && tbl.rows[1].cells.length > 1 )=20 { for ( var i =3D 1; i < tbl.rows.length; i++ )=20 { abbrColIndexs.each(function(idx) { var cell =3D tbl.rows[i].cells[ idx + 1 ]; // skip checkbox = cell cell.abbr =3D cell.controller.getGridCell().getValue(); cell.scope =3D 'row'; }); } } }, =20 getAbbrColIndexs: function()=20 { if ( !this.abbrColIndexs ) { this.abbrColIndexs =3D new Array(); /* Add abbr attributes to specific columns to allow screen readers to=20 announce meaningful column headers based on the following rules: =09 1. If both first and last name are visible, use those. 2. If the username is visible, use that. 3. If neither of the first cases pass, use the first column as the = header.=20 */ var lastNameColIndex =3D this.model.getVisibleColDefIndex('LN'); var firstNameColIndex =3D this.model.getVisibleColDefIndex('FN'); var userNameColIndex =3D this.model.getVisibleColDefIndex('UN'); if ( lastNameColIndex !=3D -1 && firstNameColIndex !=3D -1 ) { this.abbrColIndexs.push( lastNameColIndex );=20 this.abbrColIndexs.push( firstNameColIndex ); } else if ( userNameColIndex !=3D -1 ) { this.abbrColIndexs.push( userNameColIndex ); } else { this.abbrColIndexs.push( 0 ); } } return this.abbrColIndexs; }, =20 onDocumentClickHandler: function(evt) { if ( document.ignoreOnClick ) return; Gradebook.CellController.prototype.closePopupsAndRestoreFocus(evt); }, onDocumentKeyDownHandler: function(evt) { GradebookUtil.debug('onDocumentKeyDownHandler keyCode =3D = '+evt.keyCode); if (!Gradebook.CellController.prototype.tableHasFocus) return; var ek=3Devt.keyCode; var visibleRowCount =3D this.viewPort.getNumVisibleRows(); var deltaRow =3D 0; var deltaCol =3D 0; /* * the model grid cell index is R2L agnostic: thus moving right in L2R = is moving towards the next col (+1),=20 * while in R2L it is going towards the previous col (-1). */ switch (ek) { case (Event.KEY_LEFT): deltaCol =3D page.util.isRTL()?1:-1; break; case (Event.KEY_RIGHT): deltaCol =3D page.util.isRTL()?-1:1; break; case (Event.KEY_UP): deltaRow =3D -1; break; case (Event.KEY_DOWN): deltaRow =3D 1; break; case (33/* page up */): if ( !this.options.accessibleMode ) deltaRow = =3D -visibleRowCount; break; case (34/* page down */): if ( !this.options.accessibleMode ) = deltaRow =3D visibleRowCount; break; case (Event.KEY_TAB): if ( !Gradebook.CellController.currentSelectedCell || !Element.descendantOf( evt.element(), = Gradebook.CellController.currentSelectedCell.controller.htmlCell ) ) = break; if ( evt.shiftKey ) { if ( !evt.element().hasClassName('cmimg') && !this.isFirstCell() = ) deltaCol =3D -1; break; } else if ( !this.isLastCell() && ( evt.element().hasClassName('cmimg') || = this.isCurrentCellWithoutMenu() ) ) { deltaCol =3D 1; } break; } if (deltaRow =3D=3D 0 && deltaCol =3D=3D 0) { return; } else { Event.stop( evt ); this.selectRelativeCell(deltaRow, deltaCol); Gradebook.CellController.prototype.closePopups(evt); } }, =09 isLastCell: function() { if ( Gradebook.CellController.currentSelectedCell =3D=3D null ) = return false; // last cell if it is the last displayed cell with no more scroll = available right or down var nextSelectedCol =3D = Gradebook.CellController.currentSelectedCell.controller.col; var nextSelectedRow =3D = Gradebook.CellController.currentSelectedCell.controller.row+1; return ( nextSelectedCol >=3D this.viewPort.numVisibleCols ) && ( nextSelectedRow >=3D this.viewPort.numVisibleRows ) && ( ( this.viewPort.lastRowPos/*offset*/ + = this.viewPort.numVisibleRows ) =3D=3D this.model.getNumRows() ) &&=20 ( ( this.viewPort.colOffset + this.viewPort.numVisibleCols ) = =3D=3D this.model.getNumColDefs() ); }, isFirstCell: function() { if ( Gradebook.CellController.currentSelectedCell =3D=3D null ) = return false; return ( = Gradebook.CellController.currentSelectedCell.controller.col=3D=3D1/*check= box*/ && = Gradebook.CellController.currentSelectedCell.controller.row=3D=3D0 && ( !this.viewPort.scrollerDiv /*null if no vertical scroll*/ = || this.viewPort.scrollerDiv.scrollTop =3D=3D 0 ) ); }, isCurrentCellWithoutMenu: function() { // the only cell type that does not display a context menu are = calculated columns if ( Gradebook.CellController.currentSelectedCell =3D=3D null ) = return false; var gridCell =3D = Gradebook.CellController.currentSelectedCell.controller.getGridCell(); if ( !gridCell ) return true; return gridCell.isGrade() && !gridCell.canEdit();=20 }, =09 selectRelativeCell: function(deltaRow, deltaCol) { var visibleRowCount =3D this.viewPort.getNumVisibleRows(); var visibleColumnCount =3D this.viewPort.getNumVisibleCols(); var modelRowCount =3D this.model.getNumRows(); var modelColumnCount =3D this.model.getNumColDefs(); var cellController =3D this.currentCellController; if (Gradebook.CellController.currentSelectedCell !=3D null){ cellController =3D = Gradebook.CellController.currentSelectedCell.controller; } var currentSelectedRow =3D cellController.row; var currentSelectedCol =3D cellController.col - 1; // skip checkbox = col var selectDelay =3D 100; currentSelectedRow +=3D deltaRow; if (currentSelectedRow < 0 || currentSelectedRow >=3D = visibleRowCount){ currentSelectedRow -=3D deltaRow; selectDelay =3D 500; // need longer delay to select cell until scroll = completes if (this.viewPort.scrollRows(deltaRow ) =3D=3D false) { if (deltaRow < 0){=20 // wrap to bottom of previous col if (currentSelectedCol =3D=3D 0) return; deltaRow =3D modelRowCount - visibleRowCount; currentSelectedRow =3D visibleRowCount - 1; currentSelectedCol -=3D 1; } else { // wrap to top of next col deltaRow =3D visibleRowCount - modelRowCount; currentSelectedRow =3D 0; if (currentSelectedCol < visibleColumnCount-1){=20 currentSelectedCol +=3D 1; } else { this.viewPort.scrollCols(1); }=20 } this.viewPort.scrollRows(deltaRow); } } currentSelectedCol +=3D deltaCol; if ((currentSelectedCol < this.options.numFrozenColumns && deltaCol < = 0) || currentSelectedCol >=3D visibleColumnCount){ currentSelectedCol -=3D deltaCol; selectDelay =3D 500; // need longer delay to select cell until scroll = completes if (this.viewPort.scrollCols( deltaCol ) =3D=3D false) { if (deltaCol < 0){=20 if (currentSelectedCol > 0) { // navigate in frozen columns currentSelectedCol +=3D deltaCol; } else { // wrap to end of previous row if (currentSelectedRow =3D=3D 0) return; deltaCol =3D modelColumnCount - visibleColumnCount; currentSelectedCol =3D visibleColumnCount - 1; currentSelectedRow -=3D 1; } } else { // wrap to beginning of next row deltaCol =3D visibleColumnCount - modelColumnCount; currentSelectedCol =3D 0; if (currentSelectedRow < visibleRowCount-1){=20 currentSelectedRow +=3D 1; } else { this.viewPort.scrollRows(1); }=20 } this.viewPort.scrollCols(deltaCol); } } // select the current cell after servicing the main event loop to = allow current events to complete // this was needed for AS-110508 to apply the left/right arrow event = to cell navigation only and not to cell editing too. this.currentCellController =3D = this.table.rows[currentSelectedRow].cells[currentSelectedCol+1].controlle= r; setTimeout(this.selectCell.bind(this), selectDelay ); }, =09 selectCell: function() { this.currentCellController.selectCell(); }, sortColumn: function(newSortCell,sortDir) { if (newSortCell !=3D this.sortCell) { this.sortDir =3D 'ASC'; if (this.sortCell) { this.sortCell.setSortImage('NO_SORT'); // remove current sort image } } else { this.sortDir =3D (this.sortDir =3D=3D 'ASC')?'DESC':'ASC'; // toggle } if (sortDir){ this.sortDir =3D sortDir; } this.sortCell =3D newSortCell; this.sortCell.setSortImage(this.sortDir); // show new sort image =09 // sort the model this.modelSortIndex =3D = this.viewPort.toModelIndex(this.sortCell.col-1); // skip checkbox column this.model.sort(this.modelSortIndex,this.sortDir); =09 // refresh the view this.viewPort.moveScroll(0); this.viewPort.refreshContents(0); }, updateSortImage: function(){ if (!this.viewPort){ return; } if (this.sortCell) { this.sortCell.setSortImage('NO_SORT'); // remove current sort image } var viewSortIndex =3D this.viewPort.toViewIndex(this.modelSortIndex); if (viewSortIndex < 0){ this.sortCell =3D null; } else { var headerTable =3D $(this.table.id + '_header'); if (!headerTable){ return; } this.sortCell =3D = headerTable.rows[0].cells[viewSortIndex+1].controller; // add 1 to = account for check column =09 this.sortCell.setSortImage(this.sortDir); } }, =09 //focused is restored only in AX view since user has to leave the page = for update restoreFocus: function() { if ( !this.options || !this.options.accessibleMode || = !Gradebook.getModel().lastFocusedRow || = !Gradebook.getModel().lastFocusedCol ) return; if ( GradebookUtil.isIE() ) { setTimeout(this.doRestoreFocus.bind(this), 0 ); } else { this.doRestoreFocus(); } }, =09 doRestoreFocus: function() { var lastFocusedRow =3D Gradebook.getModel().lastFocusedRow; var lastFocusedCol =3D Gradebook.getModel().lastFocusedCol; = this.table.rows[lastFocusedRow].cells[lastFocusedCol].controller.selectCe= ll(); Gradebook.getModel().lastFocusedRow =3D null; Gradebook.getModel().lastFocusedCell =3D null; } =09 }; //Gradebook.GridViewPort = -------------------------------------------------- Gradebook.GridViewPort =3D Class.create(); Gradebook.GridViewPort.prototype =3D { initialize: function(table, model, options,grid) { this.isIE =3D GradebookUtil.isIE(); this.isNS7 =3D GradebookUtil.isNS7(); this.table =3D table; this.model =3D model; this.options =3D options; this.grid =3D grid; this.lastPixelOffset =3D 0; this.colOffset =3D 0; this.lastRowPos =3D 0; this.startScrollLeft =3D 0; this.headerTableId =3D this.table.id + '_header'; this.headerTable =3D $(this.headerTableId); if (!this.headerTable)=20 this.headerTable =3D this.table; this.numVisibleRows =3D this.table.rows.length; if ( this.headerTable.rows[0] ) { this.numVisibleCols =3D this.headerTable.rows[0].cells.length-1; // = don't include check column } this.rowHeight =3D this.table.offsetHeight/this.numVisibleRows; this.div =3D this.table.parentNode; this.initScrollers(); }, unload: function() { this.grid =3D null; this.model =3D null; this.table =3D null; this.headerTable =3D null; this.div =3D null; this.scrollerDiv =3D null; this.heightDiv =3D null; this.scrollerDivH =3D null; this.widthDiv =3D null; this.options =3D null; }, =09 modelChanged: function() { this.refreshContentsH(); }, =09 getModelGridCell: function(row, col) { // in accessibleMode, row 0 is header, so we need to compensate to get = model row if (this.options.accessibleMode && row > 0){ row -=3D 1; } if (col > 0) col -=3D 1; // skip check col if (col >=3D this.options.numFrozenColumns)=20 col +=3D this.colOffset;=20 var iterators =3D this.model.getRowIterators(row+this.lastRowPos, 1, = col); if (!iterators || iterators.length !=3D 1 || !iterators[0].hasNext()){ GradebookUtil.error('getModelGridCell cannot get grid cell for row: = '+ row+' col: '+col); } return iterators[0].next(); }, getHeaderGridCell: function(col) { if (col > 0) col -=3D 1; // skip check col if (col >=3D this.options.numFrozenColumns)=20 col +=3D this.colOffset;=20 var iterator =3D this.model.getColDefIterator(col); if (!iterator || !iterator.hasNext()){ GradebookUtil.error('getHeaderGridCell cannot get header cell for = col: '+col); } return iterator.next(); }, getNumVisibleRows: function() { return this.numVisibleRows; }, getNumVisibleCols: function() { return this.numVisibleCols; }, populateRow: function(htmlRow, frozenColRowIterator, = scrollableColRowIterator) { var numFrozenColumns =3D this.options.numFrozenColumns; for (var j=3D0; j < (this.numVisibleCols); j++) { var iterator =3D (j < = numFrozenColumns)?frozenColRowIterator:scrollableColRowIterator; var gridCell =3D iterator.next(); var htmlCell =3D htmlRow.cells[j+1]; // set check box column based on isRowChecked flag for first grid = cell if (j =3D=3D 0){ var checkInput =3D = GradebookUtil.getChildElementByClassName(htmlRow.cells[0], 'input', = 'checkInput'); checkInput.checked =3D gridCell.isRowChecked(); } htmlCell.controller.renderHTML(gridCell); } }, =20 refreshContents: function(rowOffset) { if (this.model.getNumRows() =3D=3D 0) return; if (this.options.accessibleMode){ this.refreshAccessibleContents(); return; } Gradebook.CellController.prototype.hideAllSavingDivs(); var numRows =3D this.numVisibleRows; var numModelRows =3D this.model.getNumRows(); if (rowOffset + numRows > numModelRows) rowOffset =3D numModelRows - numRows - 1 var numFrozenColumns =3D this.options.numFrozenColumns; var frozenColRowIterators =3D this.model.getRowIterators(rowOffset, = numRows, 0); var scrollableColRowIterators =3D frozenColRowIterators; if (this.numVisibleCols > numFrozenColumns){ scrollableColRowIterators =3D this.model.getRowIterators(rowOffset, = numRows, numFrozenColumns+this.colOffset); } for (var i=3D0; i < numRows; i++) { this.populateRow(this.table.rows[i], frozenColRowIterators[i], = scrollableColRowIterators[i]); } this.lastRowPos =3D rowOffset; }, refreshAccessibleContents: function() { var numModelRows =3D this.model.getNumRows(); var iters =3D this.model.getRowIterators(); var numCols =3D this.table.rows[0].cells.length - 1; // skip check = column var start =3D new Date().getTime(); if (this.refreshRowCounter =3D=3D undefined) this.refreshRowCounter = =3D 0; for (var i =3D this.refreshRowCounter; i < numModelRows; i++) { var htmlRowIndex =3D i+1; // skip header row var htmlRow =3D this.table.rows[htmlRowIndex]; // if we are rendering for more than 3 seconds, give Firefox some = time to get // rid of the "unresponsive script" message. if(new Date().getTime() - start > 3000){ setTimeout(this.refreshAccessibleContents.bind(this), 0 ); return; } =09 for (var j=3D0; j < numCols; j++) { var gridCell =3D iters[i].next(); var htmlCell =3D htmlRow.cells[j+1]; // skip check column if (htmlCell.controller =3D=3D undefined){ new Gradebook.CellController(htmlCell, this.grid, htmlRowIndex, = j+1, true ); } htmlCell.controller.renderHTML(gridCell); // set check box column based on isRowChecked flag for first grid = cell if (j =3D=3D 0){ var htmlCell =3D htmlRow.cells[0]; if (htmlCell.controller =3D=3D undefined){ new Gradebook.CellController(htmlCell, this.grid, htmlRowIndex, j, = true ); } var checkInput =3D $(htmlCell).down('input'); checkInput.checked =3D gridCell.isRowChecked(); } } var rowTitle =3D gradebook2Messages['selectUserMsg']; this.grid.getAbbrColIndexs().each(function(idx) { var cell =3D htmlRow.cells[ idx + 1 ]; // skip checkbox cell rowTitle +=3D " " + cell.controller.getGridCell().getValue(); }); htmlRow.cells[ 0 ].controller.checkInput.title =3D rowTitle; =09 this.refreshRowCounter++; } this.refreshRowCounter =3D null; }, refreshContentsH: function() { // refresh data cells this.refreshContents(this.lastRowPos); // refresh the header cells var numFrozenColumns =3D this.options.numFrozenColumns; var hdrCells =3D null; var hdr =3D $(this.table.id+'_header'); if (hdr)=20 hdrCells =3D hdr.rows[0].cells; else hdrCells =3D this.table.rows[0].cells; if ( !hdrCells ) return; var frozenColIterator =3D this.model.getColDefIterator(0); var scrollableColIterator =3D null; if (this.numVisibleCols > numFrozenColumns){ scrollableColIterator =3D = this.model.getColDefIterator(numFrozenColumns+this.colOffset); } for (var i=3D0; i < this.numVisibleCols; i++) { var iterator =3D (i < = numFrozenColumns)?frozenColIterator:scrollableColIterator; var htmlCell =3D hdrCells[i+1]; // skip check column var colDef =3D iterator.next(); if (htmlCell.controller =3D=3D undefined){ new Gradebook.CellController(htmlCell, this.grid, 0, i+1, true); } htmlCell.controller.renderHeaderCellHTML( colDef ); =20 } // add the check all listener if not present if ( !hdrCells[0].controller ) new = Gradebook.CellController(hdrCells[0], this.grid, 0, 0, true); this.grid.updateSortImage(); }, visibleHeight: function() { return parseInt(GradebookUtil.getElementsComputedStyle(this.div, = 'height')); }, toViewIndex: function(modelSortIndex){ var numFrozenColumns =3D this.options.numFrozenColumns; if (modelSortIndex < numFrozenColumns){ return modelSortIndex; } var vi =3D (modelSortIndex - this.colOffset); if (numFrozenColumns <=3D vi && vi < this.numVisibleCols)=20 return vi; else return -1; }, toModelIndex: function(viewSortIndex) { if (viewSortIndex =3D=3D -1)=20 return -1; var numFrozenColumns =3D this.options.numFrozenColumns; var mi =3D (viewSortIndex < numFrozenColumns) ? viewSortIndex : = (this.colOffset + viewSortIndex); return mi; }, // scrolling management initScrollers: function() { this.createVScrollBar(); this.createHScrollBar(); this.lastVScrollPos =3D 0; if ( this.scrollerDivH !=3D null )=20 this.lastHScrollPos =3D this.scrollerDivH.scrollLeft; else=20 this.lastHScrollPos =3D 0; this.startScrollLeft =3D this.lastHScrollPos; }, createVScrollBar: function() { // see comments on createHScroolBar() if (this.table.rows.length >=3D this.model.getNumRows()) return; var visibleHeight =3D this.visibleHeight(); // create the outer div... this.scrollerDiv =3D document.createElement("div"); var scrollerStyle =3D this.scrollerDiv.style; scrollerStyle.borderRight =3D this.options.scrollerBorderRight; scrollerStyle.position =3D "absolute"; var tableWidth =3D this.isIE? this.table.offsetWidth-2+"px" : = this.isNS7? this.table.offsetWidth-15+"px" : = this.table.offsetWidth-3+"px"; if ( document.documentElement.dir =3D=3D 'rtl' )=20 scrollerStyle.right =3D tableWidth; else=20 scrollerStyle.left =3D tableWidth; scrollerStyle.top =3D "0px"; scrollerStyle.width =3D this.isNS7 ? "30px" : "19px"; scrollerStyle.height =3D visibleHeight + "px"; scrollerStyle.overflow =3D "auto"; // create the inner div... this.heightDiv =3D document.createElement("div"); this.heightDiv.style.width =3D "1px"; =09 this.rowHeight =3D = this.table.rows[this.table.rows.length-1].cells[1].offsetHeight; var divHeight =3D this.rowHeight * this.model.getNumRows(); divHeight +=3D ( this.numVisibleRows + 1 ); // looks like we are = missing one pix per row, if not added we cannot scroll to the last item =09 this.heightDiv.style.height =3D parseInt(divHeight) + "px" ; this.scrollerDiv.appendChild(this.heightDiv); = Event.observe(this.scrollerDiv,'scroll',this.handleVScroll.bindAsEventLis= tener(this)); GradebookUtil.debug('createVScrollBar - this.rowHeight =3D = '+this.rowHeight); GradebookUtil.debug('createVScrollBar - visibleHeight =3D = '+visibleHeight); GradebookUtil.debug('createVScrollBar - numVisibleRows =3D = '+this.numVisibleRows); GradebookUtil.debug('createVScrollBar - this.model.getNumRows() =3D = '+this.model.getNumRows()); GradebookUtil.debug('createVScrollBar - this.heightDiv.style.height = =3D '+this.heightDiv.style.height); this.table.parentNode.parentNode.insertBefore( this.scrollerDiv, = this.table.parentNode.nextSibling ); var eventName =3D this.isIE ? "mousewheel" : "DOMMouseScroll"; Event.observe(this.table, eventName,=20 function(evt) { if (evt.wheelDelta>=3D0 || evt.detail < 0) = //wheel-up this.scrollerDiv.scrollTop -=3D = (2*this.rowHeight); else this.scrollerDiv.scrollTop +=3D = (2*this.rowHeight); this.handleVScroll(); }.bindAsEventListener(this),=20 false); }, createHScrollBar: function() { // logic here is to create an div the same width that the non = frozen columns // then put inside it an invisible inner div that would be the = width of the non // frozen if they were all visible; by setting the parent with = overflow: auto=20 // scroll bars will appear, and the scrolling events are captured = to decide what // portion of the table should be displayed. if (!this.headerTable.rows[0] || = this.headerTable.rows[0].cells.length > this.model.getNumColDefs()) = return; var totalColumnCount =3D this.model.getNumColDefs(); var visibleColumnCount =3D this.numVisibleCols; var numFrozenColumns =3D this.options.numFrozenColumns; this.maxColOffset =3D totalColumnCount - (visibleColumnCount - = numFrozenColumns) - 1; var visibleHeight =3D this.isIE ? this.table.offsetHeight - 23 : = this.isNS7 ? this.table.offsetHeight - 16 : this.table.offsetHeight - 3; var checkColumnWidth =3D = this.headerTable.rows[0].cells[0].offsetWidth; // set avg col width to be based on actual cell width (not = including padding, etc.) // this will allow scrolling to be more accurate this.avgColWidth =3D this.headerTable.rows[0].cells[1].offsetWidth; var frozenWidth =3D (numFrozenColumns * this.avgColWidth) + = checkColumnWidth; visibleWidth =3D ( visibleColumnCount - numFrozenColumns ) * = this.avgColWidth; // create the outer div... this.scrollerDivH =3D document.createElement("div"); var scrollerStyle =3D this.scrollerDivH.style; scrollerStyle.position =3D "absolute"; if ( document.documentElement.dir =3D=3D 'rtl' )=20 scrollerStyle.right =3DfrozenWidth + "px"; else=20 scrollerStyle.left =3D frozenWidth + "px"; scrollerStyle.top =3D visibleHeight + "px"; scrollerStyle.height =3D this.isIE ? "40px" : this.isNS7 ? = "30px" : "19px"; scrollerStyle.width =3D visibleWidth + "px"; scrollerStyle.overflow =3D "auto"; // create the inner div... this.widthDiv =3D document.createElement("div"); this.widthDiv.style.height =3D "1px"; this.widthDiv.style.direction =3D 'ltr'; this.widthDiv.style.width =3D ( this.avgColWidth * ( = totalColumnCount-numFrozenColumns ) ) + "px"; this.scrollerDivH.appendChild(this.widthDiv); = Event.observe(this.scrollerDivH,'scroll',this.handleHScroll.bindAsEventLi= stener(this)); if (this.scrollerDiv){ this.table.parentNode.parentNode.insertBefore( this.scrollerDivH, = this.scrollerDiv.nextSibling ); } else { this.table.parentNode.parentNode.insertBefore( this.scrollerDivH, = this.table.parentNode.nextSibling ); } }, rowToPixel: function(rowOffset) { return (rowOffset / this.model.getNumRows()) * = this.heightDiv.offsetHeight }, =20 moveScroll: function(rowOffset) { if (this.scrollerDiv){ this.scrollerDiv.scrollTop =3D this.rowToPixel(rowOffset); } }, /* When scrolling, IE sends multiple onscroll events for a single = scroll action by the user. To get around this, we set a timer and wait until the dust settles = before doing the scroll Here is info on the work around: = http://support.microsoft.com/kb/238004 */ // scroll numRows, can be negative. returns false if scroll request is = out of range scrollRows: function(numRows) { if (!this.scrollerDiv) return false; if ((numRows < 0 && this.scrollerDiv.scrollTop =3D=3D 0) ||=20 (numRows > 0 && this.lastRowPos =3D=3D (this.model.getNumRows() - = this.numVisibleRows))) { return false; } this.ignoreOnVscroll =3D true; this.scrollerDiv.scrollTop +=3D (numRows * this.rowHeight); setTimeout(this.doVScroll.bind(this), 200 ); }, handleVScroll: function(evt) { if (this.ignoreOnVscroll) return; this.ignoreOnVscroll =3D true; setTimeout(this.doVScroll.bind(this), 200 ); }, doVScroll: function() { Gradebook.CellController.prototype.onGridScroll(); var incomingscrollTop =3D this.scrollerDiv.scrollTop; var scrollDiff =3D this.lastVScrollPos-this.scrollerDiv.scrollTop; if (scrollDiff !=3D 0.00) { var r =3D this.scrollerDiv.scrollTop % this.rowHeight; if (r !=3D 0) { if (scrollDiff < 0 ) { this.scrollerDiv.scrollTop +=3D (this.rowHeight-r); } else { this.scrollerDiv.scrollTop -=3D r; } } var contentOffset =3D parseInt(this.scrollerDiv.scrollTop / = parseInt(this.rowHeight)); GradebookUtil.debug('doVScroll - incomingscrollTop =3D = '+incomingscrollTop+ ' r =3D '+r+ ' new scrollTop =3D '+this.scrollerDiv.scrollTop+ ' lastVScrollPos =3D '+this.lastVScrollPos+ ' contentOffset =3D '+contentOffset); this.refreshContents(contentOffset); this.lastVScrollPos =3D this.scrollerDiv.scrollTop; } this.ignoreOnVscroll =3D false; }, handleHScroll: function(evt) { if (this.ignoreOnHscroll) return; this.ignoreOnHscroll =3D true; setTimeout(this.doHScroll.bind(this), 200 ); }, =09 // scroll numCols, can be negative. returns false if scroll request is = out of // range scrollCols : function(numCols) { if (!this.scrollerDivH) return false; var totalColumnCount =3D this.model.getNumColDefs(); if ((numCols < 0 && this.scrollerDivH.scrollLeft =3D=3D 0) || (numCols > 0 && this.colOffset =3D=3D = (this.model.getNumColDefs() - this.numVisibleCols))) { return false; } this.ignoreOnHscroll =3D true; /* * so here we need to translate delta to actual scroll value. The = delta is screen orientation agnostic (we need to move to that col in the = model)=20 * we need to translate the move in a pixel move to the left: a move = to the left in l2r means we move to the next col, * while in r2l it means we move to previous col, thus the inversion = of orientation if r2l. */ this.scrollerDivH.scrollLeft +=3D (numCols * this.avgColWidth * = (page.util.isRTL()?-1:1) ); setTimeout(this.doHScroll.bind(this), 200); return true; }, doHScroll: function() { Gradebook.CellController.prototype.onGridScroll(); var scrollDiff =3D this.lastHScrollPos - = this.scrollerDivH.scrollLeft; if (scrollDiff !=3D 0.00) { // To align the column scroll - we move by column increment var r =3D this.scrollerDivH.scrollLeft % this.avgColWidth; if (r !=3D 0) { if (scrollDiff < 0 ) { this.scrollerDivH.scrollLeft +=3D (this.avgColWidth-r); } else { this.scrollerDivH.scrollLeft -=3D r; } } if ( document.documentElement.dir =3D=3D 'rtl' ) { // Subtract the max scroll left with the current one and divide = with the avgColWidth=20 this.colOffset =3D parseInt( (this.startScrollLeft - = this.scrollerDivH.scrollLeft) / this.avgColWidth); } else { this.colOffset =3D parseInt(this.scrollerDivH.scrollLeft / = this.avgColWidth); } this.colOffset =3D Math.min(this.colOffset,this.maxColOffset); this.refreshContentsH(); this.lastHScrollPos =3D this.scrollerDivH.scrollLeft; } this.ignoreOnHscroll =3D false; } }; //********************************************************************* //************ Gradebook.CellController ******************************* //********************************************************************* Gradebook.CellController =3D Class.create(); Gradebook.CellController.prototype =3D { /* Controls all user interaction with an HTM table cell and its = corresponding grid model cell including: =09 cell-type specific context menus sorting by clicking on header cell selecting a table cell editing of cell value, which includes: going into edit mode - showing an input text values to be entered validating input as typed listening for certain keys to submit or cancel editing submitting changes to server and showing "Saving indicator" check box in first column for selecting students rendering of cell value and state indicators grade comment & column into popups */ initialize: function(htmlCell, grid, row, column, isHeaderTable ) { =09 this.htmlCell =3D $(htmlCell); this.htmlCell.id =3D row+','+column; this.htmlCell.controller =3D this; this.grid =3D grid; this.row =3D row; this.col =3D column; this.isHeaderTable =3D isHeaderTable; Gradebook.CellController.tableId =3D this.grid.table.id; var accessibleMode =3D this.grid.options.accessibleMode; this.isTopLeft =3D (this.row =3D=3D 0 && this.col =3D=3D 0) && = isHeaderTable; if (accessibleMode) { this._accessibleInit(); } else { this._nonAccessibleInit(); } }, _nonAccessibleInit: function( ) { // get elements in cell this.viewDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbView'); this.editDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbEdit'); this.editInput =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'input', = 'editInput'); this.textDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbText'); this.dataDiv =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'div', = 'gbData'); this.titleAnchor =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'a', = 'titleAnchor'); this.contextMenuAnchor =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'a', 'cmimg'); this.checkInput =3D = GradebookUtil.getChildElementByClassName(this.htmlCell, 'input', = 'checkInput'); if ( this.isTopLeft ) { Event.observe(this.checkInput, 'click', = this.toggleSelection.bindAsEventListener(this)); GradebookViewSpreadsheet.grid.checkAllCellController =3D this; return; } // add listeners to cell & anchors = Event.observe(this.htmlCell,'mouseover',this.onMouseOver.bindAsEventListe= ner(this)); = Event.observe(this.htmlCell,'mouseout',this.onMouseOut.bindAsEventListene= r(this)); // add listeners to cell elements if (this.contextMenuAnchor) { = Event.observe(this.contextMenuAnchor,'click',this.onContextMenuClicked.bi= ndAsEventListener(this)); } if (this.row =3D=3D 0 && this.col !=3D 0 && this.textDiv && = this.dataDiv) { this.getGridCell =3D this.getHeaderGridCell; = Event.observe(this.textDiv,'click',this.onHeaderClicked.bindAsEventListen= er(this)); Event.observe(this.dataDiv,'focus', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.dataDiv,'mouseover', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.dataDiv,'mouseout', = this.onHeaderMouseOut.bindAsEventListener(this)); this.htmlCell.style.cursor =3D 'pointer'; } else { this.getGridCell =3D this.getGradeGridCell; if (this.editInput){ = Event.observe(this.editInput,'keydown',this.onInputKeyDown.bindAsEventLis= tener(this)); = Event.observe(this.editInput,'keyup',this.onInputKeyUp.bindAsEventListene= r(this)); } =09 if (this.checkInput) { = Event.observe(this.checkInput,'click',this.onCheckBoxClicked.bindAsEventL= istener(this)); } else { = Event.observe(this.htmlCell,'click',this.onClicked.bindAsEventListener(th= is)); } if ( this.titleAnchor ) = Event.observe(this.titleAnchor,'focus',this.onFocus.bindAsEventListener(t= his) ); } }, =09 _accessibleInit: function( ) { // get elements in cell this.checkInput =3D this.htmlCell.down('input'); this.titleAnchor =3D this.htmlCell.down('a'); this.contextMenuAnchor =3D (this.titleAnchor) ? this.titleAnchor : = this.htmlCell; if ( this.isTopLeft )=20 { Event.observe(this.checkInput, 'click', = this.toggleSelection.bindAsEventListener(this)); GradebookViewSpreadsheet.grid.checkAllCellController =3D this; return; } if (this.row =3D=3D 0 && this.col !=3D 0) { this.dataDiv =3D this.titleAnchor;=20 this.getGridCell =3D this.getHeaderGridCell; Event.observe(this.titleAnchor,'focus', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.htmlCell,'mouseover', = this.showHeaderInfoInTaskbar.bindAsEventListener(this)); Event.observe(this.htmlCell,'mouseout', = this.onHeaderMouseOut.bindAsEventListener(this)); }=20 else=20 { this.getGridCell =3D this.getGradeGridCell; } if (this.checkInput)=20 { = Event.observe(this.checkInput,'click',this.onCheckBoxClicked.bindAsEventL= istener(this)); } else if (this.getGridCell().getContextMenuInfo(this))=20 { = Event.observe(this.contextMenuAnchor,'click',this.onContextMenuClicked.bi= ndAsEventListener(this)); } else { // no link/menu for calculated grades, grade goes right in cell=20 this.titleAnchor.remove(); this.titleAnchor =3D this.htmlCell; } }, =09 isHeaderCell: function() { return this.isHeaderTable; }, unload: function() { this.grid =3D null; this.htmlCell.controller =3D null; this.htmlCell =3D null; this.grid =3D null; this.viewDiv =3D null; this.editDiv =3D null; this.editInput =3D null; this.textDiv =3D null; this.dataDiv =3D null; this.titleAnchor =3D null; this.contextMenuAnchor =3D null; this.checkInput =3D null; this.getGridCell =3D null; this.editGridcell =3D null; }, //************ checkbox logic ******************************* onCheckBoxClicked: function(evt) { var gridcell =3D this.getGridCell(); gridcell.setRowChecked(this.checkInput.checked); var userId =3D gridcell.userId; if(this.checkInput.checked){ if (evt.shiftKey && = Gradebook.CellController.prototype.lastCheckedUserId){ = this.grid.model.checkedRangeOfStudents(gridcell.userId,Gradebook.CellCont= roller.prototype.lastCheckedUserId); } Gradebook.CellController.prototype.lastCheckedUserId =3D = gridcell.userId; } else { Gradebook.CellController.prototype.lastCheckedUserId =3D null; } =09 this.updateNumSelectedIndicator(); }, toggleSelection: function() { if( this.checkInput.checked ) { this.onSelectAllStudents(); } else { this.onSelectNoStudents(); } }, onSelectAllStudents: function(evt) { this.grid.model.checkedAllStudents(); this.updateNumSelectedIndicator(); }, onSelectNoStudents: function(evt) { this.grid.model.checkedNoStudents(); this.updateNumSelectedIndicator(); }, =09 onSelectInvertStudents: function(evt) { this.grid.model.invertCheckedStudents(); this.updateNumSelectedIndicator(); }, =09 onSortCheckedStudents: function(evt) { // always show checked students at top this.grid.sortColumn(this,'DESC'); }, =09 updateNumSelectedIndicator: function() { var ids =3D this.grid.model.getCheckedStudentIds(); $("rowindicator").update( ids.length ); }, =09 =09 //************ sort logic ******************************* onHeaderClicked: function(evt) { this.grid.sortColumn(this); }, setSortImage: function(dir) { this.htmlCell.removeClassName('sortedUp'); this.htmlCell.removeClassName('sortedDown'); if ( dir =3D=3D 'ASC' ){ this.htmlCell.addClassName('sortedUp'); } else if ( dir =3D=3D 'DESC' ){ this.htmlCell.addClassName('sortedDown'); } }, onSortAscending: function(dir) { this.grid.sortColumn(this,'ASC'); this.contextMenuDiv.hide(); }, =09 onSortDescending: function(dir) { this.grid.sortColumn(this,'DESC'); this.contextMenuDiv.hide(); }, =09 //************ select cell logic ******************************* onFocus: function( evt ) { document.ignoreOnClick =3D true; //IE7 issue where focus is followed = by on click on the document - AS-123689 window.setTimeout( "document.ignoreOnClick =3D false", 2000 ); this.onClicked( evt ); }, =09 onClicked: function(evt) { var eventTarget =3D evt.target ? evt.target : evt.srcElement; Gradebook.CellController.prototype.lastEventTarget =3D eventTarget; this.selectCell( eventTarget ); Event.stop( evt ); }, =09 isSelected: function() { return (Gradebook.CellController.currentSelectedCell =3D=3D = this.htmlCell); }, =09 selectCell: function( optionalEventTarget ) { Gradebook.CellController.prototype.tableHasFocus =3D true; if ( this.isSelected() || this.checkInput ) return; this.closePopups(); this.unselectCurrentCell( true /*do not clear status bar */ ); GradebookUtil.debug('selectCell row =3D '+this.row+' col =3D = '+this.col); var gridCell =3D this.getGridCell(); Gradebook.CellController.currentSelectedCell =3D this.htmlCell; var hascm =3D this.hasContextMenu(); Element.addClassName(this.htmlCell, hascm?"cellClick":"cellClickNoCM") Element.addClassName(this.htmlCell.parentNode, "focusRowHigh"); var headerTable =3D $(Gradebook.CellController.tableId + '_header'); if (headerTable){ = Element.addClassName(headerTable.rows[0].cells[this.col],"focusHeader"); }=09 if (!this.isEditing && this.titleAnchor){ // no need to put focus on the anchor if it is already the active = element if ( !optionalEventTarget || ( optionalEventTarget !=3D = this.titleAnchor ) ) this.titleAnchor.focus(); } else if ( this.grid.options.accessibleMode ) { this.htmlCell.focus(); } this.setTaskbarInfo(gridCell); if (!this.grid.options.accessibleMode) this.startEdit(); }, showHeaderInfoInTaskbar: function() { var colDef =3D this.getGridCell(); var type =3D colDef.getType();=20 if ( type =3D=3D "student" ) { GradebookViewSpreadsheet.setMsgInTaskBar( colDef.getName() ); } else { if ( type =3D=3D "grade" ) points =3D NumberFormatter.getDisplayFloat( colDef.points ); else=20 points =3D GradebookUtil.getMessage( 'variesPerStudentMsg' ); GradebookViewSpreadsheet.setHeaderInfoInTaskBar( colDef.getName(), = GradebookUtil.getMessage( colDef.getType() + 'Msg' ),=20 points ); } }, =09 setTaskbarInfo: function(gridCell) { if (!gridCell) {=20 GradebookViewSpreadsheet.clearTaskBar(); } else if (gridCell.isGrade()) { var colDef =3D gridCell.colDef; var gradeType =3D ' ' var pointsPossible =3D ' ' var primaryDisplay =3D ' ' var visibileToStudents =3D ' ' try { if ( gridCell.canEdit() ) {=20 gradeType =3D = GradebookUtil.getMessage((gridCell.isOverride())?'overrideGradeMsg':'grad= eMsg'); } else {=20 gradeType =3D GradebookUtil.getMessage( colDef.getType() + 'Msg' ); } primaryDisplay =3D colDef.primarySchema.name; pointsPossible =3D NumberFormatter.getDisplayFloat( = gridCell.getPointsPossible() ); visibileToStudents =3D = GradebookUtil.getMessage((colDef.vis)?'isMsg':'isNotMsg'); } catch ( ignore ) { }; = GradebookViewSpreadsheet.setTaskBar(gradeType,pointsPossible,primaryDispl= ay,visibileToStudents); } else { GradebookViewSpreadsheet.setTaskBar(); } }, unselectCell: function( doNotClearStatusBar ) { GradebookUtil.debug('unselectCell row =3D '+this.row+' col =3D = '+this.col); Element.removeClassName(this.htmlCell, "cellClick"); Element.removeClassName(this.htmlCell, "cellClickNoCM"); Element.removeClassName(this.htmlCell.parentNode, "focusRowHigh"); var headerTable =3D $(Gradebook.CellController.tableId + '_header'); if (headerTable){ = Element.removeClassName(headerTable.rows[0].cells[this.htmlCell.cellIndex= ],"focusHeader"); }=09 if ( !doNotClearStatusBar ) this.setTaskbarInfo(); }, unselectCurrentCell: function( doNotClearStatusBar ) { var cell =3D Gradebook.CellController.currentSelectedCell; if (cell)=20 { var commit =3D false; var cellController =3D cell.controller; if ( cellController)=20 { if ( cellController.hasUncommittedChanges()) { var validationError =3D = cellController.editGridcell.validate(cellController.editInput.value); if (!validationError) { commit =3D = confirm(GradebookUtil.getMessage('uncommitedchangeErrorMsg')); }=20 else=20 { = alert(GradebookUtil.getMessage('uncommitedchangeNotSavedErrorMsg')); } } cellController.stopEdit(commit, true /* no focus on the cell we are = exiting */); cellController.unselectCell( doNotClearStatusBar ); } Gradebook.CellController.currentSelectedCell =3D null; } }, //************ edit grade logic ******************************* =09 startEdit: function(){ try { this.editGridcell =3D this.getGridCell(); if (!this.editGridcell.canEdit() || !this.isSelected() || = !this.editInput) return; GradebookUtil.debug('startEdit row =3D '+this.row+' col =3D = '+this.col); this.isEditing =3D true; this.editInput.value =3D this.editGridcell.getEditValue(); this.viewDiv.style.display =3D "none"; this.editDiv.style.display =3D "block"; this.editInput.focus(); this.editInput.select(); } catch ( ignore ) { } }, onInputKeyDown: function(evt){ GradebookUtil.debug('onInputKeyDown row =3D '+this.row+' col =3D = '+this.col+' keyCode =3D '+evt.keyCode); switch (evt.keyCode) { case (Event.KEY_TAB): this.stopEdit(true, false); //commit, Set Focus back to cell content Event.stop( evt ); break; } }, =09 onInputKeyUp: function(evt){ Event.stop( evt ); GradebookUtil.debug('onInputKeyUp row =3D '+this.row+' col =3D = '+this.col+' keyCode =3D '+evt.keyCode); switch (evt.keyCode) { case (Event.KEY_UP): case (Event.KEY_DOWN): case (Event.KEY_LEFT): case (Event.KEY_RIGHT): evt.cancelBubble =3D false; // allow event to bubble so attempted = navigation will occur break; case (Event.KEY_RETURN): try { Gradebook.noResize =3D true; /*IEHack*/ if (this.hasUncommittedChanges() && this.stopEdit(true)){ = //commit // select cell below this.grid.selectRelativeCell(1, 0); } } finally { Gradebook.noResize =3D false; } break; case (Event.KEY_ESC): =09 this.stopEdit(false); // don't commit break; default: var validationError =3D this.editGridcell.validate( = this.editInput.value, true ); // match partial if (validationError){ this.showValidationError(validationError); } else { this.hideValidationError(); } } },=09 // returns false if validation error occurs when committing stopEdit: function(commit, doNotSetFocus){ if (!this.isEditing){ return; } GradebookUtil.debug('stopEdit row =3D '+this.row+' col =3D = '+this.col+' commit =3D '+commit); if (commit && this.hasUncommittedChanges()){ var inputVal =3D this.editInput.value; var validationError =3D this.editGridcell.validate( inputVal ); if (validationError){ this.showValidationError(validationError); this.editInput.select(); this.editInput.focus(); return false; } var save =3D true; if (inputVal =3D=3D '') inputVal =3D '-'; // confirm if OK to delete or null grade if (inputVal =3D=3D '-'){ if (this.editGridcell.v =3D=3D '-'){ save =3D false; } else { var msg =3D = (this.editGridcell.isOverride()?'confirmRevertMsg':'confirmNullMsg'); save =3D confirm(GradebookUtil.getMessage(msg)); } } if (save){ // send update to server this.editGridcell.update(inputVal); =09 // show saving message this.addSavingDiv(); =09 } } this.hideValidationError(); this.isEditing =3D false; this.editGridcell =3D null; this.viewDiv.style.display =3D "block"; if (!doNotSetFocus){ this.titleAnchor.focus(); } this.editDiv.style.display =3D "none"; return true; }, hasUncommittedChanges: function(evt){ return (this.isEditing && this.editInput.value !=3D = this.editGridcell.getEditValue()); },=09 //************ rendering logic ******************************* renderHTML: function(gridCell) { var anchorVal; var altVal; if (gridCell.savingDiv){ this.showSavingDiv(gridCell.savingDiv); gridCell.savingDiv.htmlCell =3D this.htmlCell; } else if (gridCell.isExempt()){ anchorVal =3D gridImages.exemptGrade; altVal =3D gridCell.getAltValue(); } else if (gridCell.needsGrading() && !gridCell.isOverride()){ anchorVal =3D gridImages.needsGrading; } else if (gridCell.attemptInProgress() && !gridCell.isOverride()){ anchorVal =3D gridImages.attemptInProgress; } else if (gridCell.isComplete()){ anchorVal =3D gridCell.getCellValue(); altVal =3D GradebookUtil.getMessage('completedMsg'); } else if ( this.grid.options.accessibleMode && gridCell.isGrade() && = !gridCell.isGraded() ) { anchorVal =3D gridImages.noGrade; altVal =3D gridCell.getAltValue(); } else { anchorVal =3D gridCell.getCellValue(); altVal =3D gridCell.getAltValue(); } if (anchorVal !=3D undefined){ if (this.col =3D=3D 1 && !gridCell.isAvailable()){ anchorVal =3D gridImages.studentUnavailable+" "+anchorVal; } if (gridCell.isModified()){ anchorVal =3D gridImages.gradeModified+" "+anchorVal; } if (anchorVal.blank()){ anchorVal =3D ' ' } if (this.titleAnchor){ this.titleAnchor.innerHTML =3D anchorVal; this.titleAnchor.title =3D altVal; } } }, renderHeaderCellHTML: function( colDef ) { var anchorVal =3D ''; var title =3D colDef.name.unescapeHTML(); // IE hack so that unicode are properly escaped this.dataDiv.innerHTML =3D title; this.dataDiv.title =3D this.dataDiv.innerHTML; if (!colDef.isVisibleToStudents()){ anchorVal +=3D gridImages.itemNotVisible; } if (colDef.isPublic()){ anchorVal +=3D gridImages.externalGrade; } if (colDef.hasError()){ anchorVal +=3D gridImages.gradingError; } anchorVal +=3D title; this.dataDiv.innerHTML =3D anchorVal; }, =09 =20 addSavingDiv: function() { // create a "Saving" message by cloning the existing message var savingDiv =3D $("saveDiv").cloneNode(true); document.body.appendChild(savingDiv); // associate savingDiv with gridCell so saving message will scroll = with gridCell var gridCell =3D this.editGridcell; if (!gridCell) gridCell =3D this.getGridCell(); gridCell.savingDiv =3D savingDiv; savingDiv.gridCell =3D gridCell; savingDiv.htmlCell =3D this.htmlCell; =09 // store savingDivs in a class-level array to allow hiding all = savingDivs before scrolling refresh if (!Gradebook.CellController.prototype.savingDivs){ Gradebook.CellController.prototype.savingDivs =3D new Array(); } Gradebook.CellController.prototype.savingDivs.push(savingDiv); =09 // show the savingDiv on top of htmlCell this.showSavingDiv(savingDiv); =09 // show div for a period of time, then hide/remove it if grade change = has been committed on server setTimeout(function(){ var gc =3D savingDiv.gridCell; if (gc.isUncommitted){ savingDiv.timerExpired =3D true; } else { savingDiv.style.display =3D 'none'; savingDiv.parentNode.removeChild(savingDiv); gc.savingDiv =3D null; savingDiv.htmlCell.controller.renderHTML(gc); } },1000); }, showSavingDiv: function(savingDiv){ var pos =3D Element.cumulativeOffset( this.htmlCell ); savingDiv.style.top =3D pos.top + "px"; savingDiv.style.left =3D pos.left + "px"; if ( !this.htmlCell ) return;=20 savingDiv.style.minWidth =3D this.htmlCell.offsetWidth + "px"; savingDiv.style.minHeight =3D this.htmlCell.offsetHeight + "px"; savingDiv.style.display =3D "block"; }, hideAllSavingDivs: function(){ var savingDivs =3D Gradebook.CellController.prototype.savingDivs; if (!savingDivs) return; for (var i =3D savingDivs.length-1; i >=3D 0; i--){ if (!savingDivs[i].parentNode){ // remove div if no longer in document savingDivs.splice(i,1);=20 } else { savingDivs[i].style.display =3D 'none'; } } }, =09 removeAllSavingDivs: function(){ var savingDivs =3D Gradebook.CellController.prototype.savingDivs; if (!savingDivs) return; for (var i =3D savingDivs.length-1; i >=3D 0; i--){ var savingDiv =3D savingDivs[i]; if (savingDiv.gridCell) { savingDiv.gridCell.savingDiv =3D null; savingDiv.gridCell =3D null; savingDiv.htmlCell =3D null; } if (!savingDivs[i].parentNode){ // remove div if no longer in document savingDivs.splice(i,1);=20 } else { savingDivs[i].style.display =3D 'none'; } } }, =09 showValidationError: function(error) { var errDiv =3D $("errorDiv"); var p =3D GradebookUtil.getChildElementByClassName(errDiv, 'p', = 'errorDiv2'); p.innerHTML =3D error; errDiv.style.display =3D "block"; var pos =3D GradebookUtil._toAbsolute(this.htmlCell, false, = errDiv.offsetParent ); errDiv.style.top =3D pos.y + this.htmlCell.offsetHeight + "px"; errDiv.style.left =3D pos.x -1 + "px"; Element.addClassName(this.htmlCell, "cellError"); }, =09 hideValidationError: function() { var errDiv =3D $("errorDiv"); errDiv.style.display =3D "none"; Element.removeClassName(this.htmlCell, "cellError"); }, =09 hasContextMenu: function() { if ( this.isTopLeft ){ return true; } else { return (this.getGridCell().getContextMenuInfo(this) !=3D null); } }, =09 onMouseOver: function(evt) { if (!this.htmlCell || this.htmlCell.className =3D=3D "cellClick") = return; var hascm =3D this.hasContextMenu(); Element.addClassName(this.htmlCell, hascm?"cellhigh":"cellhighNoCM") var rowElement =3D this.htmlCell.parentNode; if (rowElement.className !=3D "focusRowHigh"){ Element.addClassName(rowElement, "rowhigh"); } }, =20 =09 onMouseOut: function(evt) { if (!this.htmlCell || this.htmlCell.className =3D=3D "cellClick") = return; Element.removeClassName(this.htmlCell, "cellhigh") Element.removeClassName(this.htmlCell, "cellhighNoCM") var rowElement =3D this.htmlCell.parentNode; if (rowElement.className !=3D "focusRowHigh"){ Element.removeClassName(rowElement, "rowhigh"); } }, =09 onHeaderMouseOut: function( evt ) { if ( Gradebook.CellController.currentSelectedCell ) { var selectedCell =3D = Gradebook.CellController.currentSelectedCell.controller; selectedCell.setTaskbarInfo( selectedCell.getGridCell() ); } else { GradebookViewSpreadsheet.clearTaskBar(); } }, //************ context menu logic ******************************* onContextMenuClicked: function(evt) { GradebookUtil.debug('onContextMenuClicked'); Gradebook.CellController.prototype.closePopups(evt); var gridCell =3D this.getGridCell(); var menuInfo =3D gridCell.getContextMenuInfo(this); if (menuInfo) { this.setContextMenuInfo(menuInfo); } Event.stop( evt ); }, onCloseContextMenu: function(evt) { Event.stop( evt ); if ( GradebookUtil.isIE() ){ if ( !this.isHeaderCell() )=20 { this.selectCell(); } else { this.contextMenuAnchor.focus(); } } else { this.contextMenuAnchor.focus(); } this.contextMenuDiv.hide(); $("shimDiv").hide(); }, =09 onContextMenuTabPress: function(evt, withShift) {=09 var ek =3D evt.keyCode || evt.which; if ( (ek =3D=3D Event.KEY_TAB) && ( withShift =3D=3D evt.shiftKey ) = ) { this.onCloseContextMenu(evt); Event.stop( evt ); } }, =20 =09 onContextMenuKeyDown: function(evt) {=09 var key =3D evt.keyCode || evt.which; if ( key =3D=3D Event.KEY_UP ) { =20 var elem =3D Event.element ( evt ); var index =3D this.menuItemLinks.indexOf( elem ); if ( index > 0 ) { this.menuItemLinks[index - 1].focus(); }=20 Event.stop( evt ); } else if ( key =3D=3D Event.KEY_DOWN ) { var elem =3D Event.element ( evt ); var index =3D this.menuItemLinks.indexOf( elem ); if ( index < ( this.menuItemLinks.length - 1 ) ) { this.menuItemLinks[index + 1].focus(); } =20 Event.stop( evt ); } else if ( key =3D=3D Event.KEY_ESC ) { this.onCloseContextMenu(evt); Event.stop( evt ); } }, =20 =09 setContextMenuInfo: function(menuInfo) { this.contextMenuId =3D menuInfo.id; var menuDiv =3D $(this.contextMenuId); this.contextMenuDiv =3D menuDiv; var firstItem =3D null; var lastItem =3D null; if (menuDiv.onkeydownHandler){ Event.stopObserving(menuDiv, 'keydown', menuDiv.onkeydownHandler); } menuDiv.onkeydownHandler =3D = this.onContextMenuKeyDown.bindAsEventListener( this ); Event.observe( menuDiv, "keydown", menuDiv.onkeydownHandler ); =09 this.menuItemLinks =3D new Array(); var onCloseHandler =3D = this.onCloseContextMenu.bindAsEventListener(this); menuInfo.items.push({id: 'close_'+menuInfo.id, visible:true, onclick: onCloseHandler}); menuInfo.items.each(function(mi) { var itemLink =3D $(mi.id);=20 itemLink.parentNode.style.display =3D (mi.visible)?"block":"none"; if (mi.visible) { this.menuItemLinks.push( itemLink ); } // remove previous click handler, if any if (itemLink.onclickHandler){ Event.stopObserving(mi.id, 'click', itemLink.onclickHandler); itemLink.onclickHandler =3D null; } if (mi.onclick && mi.visible){ // add click handler for menu item and save for later removal itemLink.onclickHandler =3D function( evt ) { onCloseHandler( evt ); mi.onclick( evt ); if ( mi.receipt ) { GradebookUtil.showInlineReceipt( gradebook2Messages[mi.receipt] = ); } } Event.observe(mi.id, 'click', itemLink.onclickHandler); } if (!firstItem) firstItem =3D itemLink; lastItem =3D itemLink; }.bind(this)); =09 // Handle tabbing out of the menu if ( lastItem.previousTABListener ) Event.stopObserving( lastItem.id, = 'keydown', lastItem.previousTABListener ); var tabListener =3D = this.onContextMenuTabPress.bindAsEventListener(this, false); lastItem.previousTABListener =3D tabListener; Event.observe( lastItem.id, 'keydown', tabListener ); if ( firstItem.previousTABListener ) Event.stopObserving( = firstItem.id, 'keydown', lastItem.previousTABListener ); var shiftTabListener =3D = this.onContextMenuTabPress.bindAsEventListener(this, true); firstItem.previousTABListener =3D shiftTabListener; Event.observe( firstItem.id, 'keydown', shiftTabListener ); =09 // position and show menu var offset =3D Position.cumulativeOffset( this.contextMenuAnchor); if ( this.grid.options.accessibleMode ) { var tableContainer =3D $( 'table1_accessible_container' ); offset[0] -=3D tableContainer.scrollLeft; offset[1] -=3D tableContainer.scrollTop; } menuDiv.setStyle({display: "block"}); var width =3D menuDiv.getWidth(); var bodyWidth =3D $(document.body).getWidth(); if ( page.util.isRTL() ) { offset[0] =3D offset[0] + this.contextMenuAnchor.getWidth() - width; if ( offset[0] < 0 ) offset[0]=3D 0; } if ( offset[0] + width > bodyWidth ) { offset[0] =3D offset[0] - width + this.contextMenuAnchor.getWidth(); } var ypos =3D offset[1] + this.contextMenuAnchor.getHeight(); menuDiv.setStyle({ left: offset[0] + "px", top: ypos + "px"}); if ( GradebookUtil.isFFonMac() ) GradebookUtil.shimDiv( menuDiv ); (function() { firstItem.focus(); }).defer(); =20 }, =20 =09 //************ comments logic ******************************* addGradeComment: function(evt,colDef) { Event.stop( evt ); // swallow event this.closePopups(); // here rather than on close to fix a UI glitch 1st time the div is = shown GradebookViewSpreadsheet.instructorCommentsResize._reset(); GradebookViewSpreadsheet.studentCommentsResize._reset(); var pos =3D GradebookUtil._toAbsolute(this.htmlCell); var submitCommentsButton =3D $("submitCommentsButton"); if (submitCommentsButton.onclickHandler){ Event.stopObserving(submitCommentsButton, 'click', = submitCommentsButton.onclickHandler); } submitCommentsButton.onclickHandler =3D = this.onSubmitComments.bindAsEventListener(this); = Event.observe(submitCommentsButton,'click',submitCommentsButton.onclickHa= ndler); var commentsDiv =3D $("commentsDiv"); if (commentsDiv.onclickHandler){ Event.stopObserving(commentsDiv, 'click', = commentsDiv.onclickHandler); } commentsDiv.onclickHandler =3D = this.onClickCommentsDiv.bindAsEventListener(this); Event.observe(commentsDiv,'click',commentsDiv.onclickHandler); var ie =3D GradebookUtil.isIE(); var rightedge =3D ie ? document.body.clientWidth: window.innerWidth; var bottomedge =3D ie ? document.body.clientHeight: = window.innerHeight; var offright=3Dfalse; var offbottom=3Dfalse; if( pos.y+commentsDiv.offsetHeight>bottomedge ) offbottom =3D true; if( pos.y-commentsDiv.offsetHeight<0 )offbottom =3D false; if( pos.x+commentsDiv.offsetWidth>rightedge-20 ) offright =3D true; if( offbottom ) { $("commentArrowUp").style.display=3D"none"; $("commentArrowDown").style.display=3D"block"; $("commentArrowDown").className=3D"bubArrowBot"; pos.y=3Dpos.y-commentsDiv.offsetHeight; } else { $("commentArrowUp").style.display=3D"block"; $("commentArrowDown").style.display=3D"none"; $("commentArrowUp").className=3D"bubArrowTop"; } if ( offright ) { $("commentArrowDown").className=3D"bubArrowBot2"; $("commentArrowUp").className=3D"bubArrowTop2"; pos.x=3Dpos.x-200; } commentsDiv.style.top =3D ( pos.y - this.htmlCell.offsetHeight )+"px"; commentsDiv.style.left =3D pos.x+"px"; commentsDiv.style.display=3D"block"; if ( GradebookUtil.isFFonMac() ) GradebookUtil.shimDiv( commentsDiv ); }, onSubmitComments: function() { this.getGridCell().setComments($("studentComments").value, = $("instructorComments").value); this.addSavingDiv(); this.closeComments(); }, onClickCommentsDiv: function(evt) { var eventTarget =3D evt.target ? evt.target : evt.srcElement; Gradebook.CellController.prototype.lastCommentsEventTarget =3D = eventTarget; }, testCommentsOpen: function(evt) { if (!evt) return; var ctrl =3D Gradebook.CellController.prototype; var eventTarget =3D evt.target ? evt.target : evt.srcElement; // if editing comments prompt user to save if click outside comments = div if (parseInt($("commentsDiv").style.display !=3D 'none') &&=20 ctrl.lastCommentsEventTarget !=3D eventTarget) { if = (confirm(GradebookUtil.getMessage('uncommitedCommentChangeErrorMsg'))){ $("submitCommentsButton").onclick(); } else { ctrl.closeComments(); } } }, closeComments: function() { $("commentsDiv").style.display=3D"none"; var submitCommentsButton =3D $("submitCommentsButton"); if (submitCommentsButton.onclickHandler){ Event.stopObserving(submitCommentsButton, 'click', = submitCommentsButton.onclickHandler); submitCommentsButton.onclickHandler =3D null; } var commentsDiv =3D $("commentsDiv"); if (commentsDiv.onclickHandler){ Event.stopObserving(commentsDiv, 'click', = commentsDiv.onclickHandler); commentsDiv.onclickHandler =3D null; } $("shimDiv").style.display=3D"none"; }, //************ miscellaneous ******************************* closePopups: function(evt) { $("gradeHeaderCM").style.display=3D"none"; $("studentInfoHeaderCM").style.display=3D"none"; $("gradeCM").style.display=3D"none"; $("studentInfoCM").style.display=3D"none"; $("infodiv").style.display=3D"none"; $("icondiv_up").style.display=3D"none"; $("icondiv_down").style.display=3D"none"; $("shadow").style.display =3D "none"; if ( Gradebook.doNotCloseAttemptsForm ) { Gradebook.doNotCloseAttemptsForm =3D false; } else { $("clearAttemptsFlyOut").style.display =3D "none"; } Gradebook.CellController.prototype.testCommentsOpen(evt); $("shimDiv").style.display=3D"none"; }, =09 getGradeGridCell: function(){ return this.grid.viewPort.getModelGridCell(this.row, this.col); }, =09 getHeaderGridCell: function(){ return this.grid.viewPort.getHeaderGridCell(this.col); }, =09 closePopupsAndRestoreFocus: function(evt) { var ctrl =3D Gradebook.CellController.prototype; ctrl.closePopups(evt); var eventTarget =3D evt.target ? evt.target : evt.srcElement; if (ctrl.lastEventTarget =3D=3D eventTarget){ ctrl.tableHasFocus =3D true; } else if (ctrl.tableHasFocus) { ctrl.unselectCurrentCell(); ctrl.tableHasFocus =3D false; } }, showClearAttemptsFlyOut: function( event, colDef ) { var linkElement =3D $('gh_clearAllAttempts'); var offset =3D Position.cumulativeOffset( linkElement ); var formDiv =3D $('clearAttemptsFlyOut'); var width =3D formDiv.getWidth(); var bodyWidth =3D $(document.body).getWidth(); // reposition form if it goes off the screen // align right edge of flyout form with link button if ( offset[0] + width > bodyWidth ) { offset[0] =3D (offset[0] + linkElement.getWidth()) - width; } formDiv.setStyle({ left: offset[0] + "px", top: ( offset[1] - Gradebook.Grid.pageHeightOffset ) + "px", display: "block" }); $("gradeHeaderCM").hide(); // restoring default values if ( Gradebook.clearAttemptsFormDefault ) { $('selectOption').value =3D = Gradebook.clearAttemptsFormDefault.defaultSelect; $('dp_bbDateTimePicker_start_date').value =3D = Gradebook.clearAttemptsFormDefault.defaultStartDate; $('dp_bbDateTimePicker_end_date').value =3D = Gradebook.clearAttemptsFormDefault.defaultEndDate; $('bbDateTimePickerstart').value =3D = Gradebook.clearAttemptsFormDefault.defaultStartDateHidden; $('bbDateTimePickerend').value =3D = Gradebook.clearAttemptsFormDefault.defaultEndDateHidden; } $('clearAttemptsOptionSelect').checked =3D true; $('clearAttemptsFlyOutSubmit').onclick =3D = this.onSubmitClearAttempts.bindAsEventListener( this ) ; =20 Event.stop( event ); }, onSubmitClearAttempts: function( event ) { Event.stop( event ); if ( !confirm( gradebook2Messages.clearAttemptConfirmMsg ) ) return = false; if ( $('clearAttemptsOptionSelect').checked ) { this.getGridCell().clearAttempts( $('selectOption').value ); } else { var startDate =3D $('bbDateTimePickerstart').value; var endDate =3D $('bbDateTimePickerend').value; this.getGridCell().clearAttemptsByDate(startDate, endDate); } return false; }, viewColumnInfo: function(evt,colDef) { Event.stop( evt ); // swallow event this.closePopups(evt); var info =3D colDef.getInfo(); info.each(function(ii) { $(ii.id).innerHTML =3D " "+ii.value; }); var pos =3D GradebookUtil._toAbsolute(this.htmlCell); var infoDiv =3D $('infodiv'); var ie =3D GradebookUtil.isIE(); var rightedge =3D ie ? document.body.clientWidth: = window.innerWidth; if(pos.x+infoDiv.offsetWidth>rightedge-20){ pos.x=3Dpos.x-infoDiv.offsetWidth+50; $("bubbleArrowTop").className=3D"bubArrowTop2"; }else{ $("bubbleArrowTop").className=3D"bubArrowTop"; } infoDiv.style.top =3D ( pos.y - this.htmlCell.offsetHeight ) + "px"; infoDiv.style.left =3D pos.x+"px"; infoDiv.style.display =3D "block"; if ( GradebookUtil.isFFonMac() ) GradebookUtil.shimDiv( infoDiv ); }, sendEmail: function(type,studentIds){ var sendEmailFunc =3D this.grid.options.sendEmailFunc; if (sendEmailFunc) { sendEmailFunc(type,studentIds); } }, onGridScroll: function(){ this.closePopups(); this.unselectCurrentCell(); } };=09 var GradebookUtil =3D { isValidFloat: function ( n ) { var n =3D ''+n; var trimmedVal =3D n.strip(); var numberFormatDecimalPoint =3D null; if ( window.LOCALE_SETTINGS ) { numberFormatDecimalPoint =3D = LOCALE_SETTINGS.getString('number_format.decimal_point'); } else { numberFormatDecimalPoint =3D = page.bundle.getString('number_format.decimal_point'); } if (trimmedVal.endsWith( numberFormatDecimalPoint )) trimmedVal +=3D = '0'; var numFormat =3D '^[-]?[0-9]*(\\.[0-9]+)?$'; var re =3D new RegExp( numFormat );=09 var isValidNum =3D trimmedVal.search( re ) =3D=3D 0; return isValidNum; }, =20 showInlineReceipt: function( message ) { window.location.href =3D = viewSpreadsheetURL+'&inline_receipt_message=3D'+message; }, =20 formatStudentName: function ( student ) { var nameTemplate =3D new = Template(GradebookUtil.getMessage('userNameTemplate')); var nameData =3D {first:student.first, last:student.last, = user:student.user}; return nameTemplate.evaluate(nameData); }, =20 isIE: function () { return navigator.userAgent.toLowerCase().indexOf("msie") >=3D 0; }, isNS7: function () { return navigator.userAgent.toLowerCase().indexOf("netscape/7") = >=3D 0; }, =20 isFFonMac: function() { return GradebookUtil.isMac() && GradebookUtil.isFirefox(); }, =20 isFirefox: function() { return (navigator.userAgent.toLowerCase().indexOf("firefox") !=3D = -1); }, =20 isMac: function() { return (navigator.userAgent.toLowerCase().indexOf("mac") !=3D -1); }, =20 trimId: function( primaryKey ) { if ( primaryKey.charAt(0) !=3D '_' ) return primaryKey; return primaryKey.slice(1, primaryKey.lastIndexOf('_') ); }, getMessage: function (key) { if ( Gradebook.getModel() ){ return Gradebook.getModel().getMessage(key); } else { // in case the model is not loaded but we are on the grid page if ( gradebook2Messages && gradebook2Messages[ key ] ) return = gradebook2Messages[ key ]; return key; } }, getElementsComputedStyle: function ( htmlElement, cssProperty, = mozillaEquivalentCSS) { if ( arguments.length =3D=3D 2 ) mozillaEquivalentCSS =3D cssProperty; var el =3D $(htmlElement); if ( el.currentStyle ) return el.currentStyle[cssProperty]; else return document.defaultView.getComputedStyle(el, = null).getPropertyValue(mozillaEquivalentCSS); }, toViewportPosition: function(element) { return this._toAbsolute(element,true); }, /** * Compute the elements position in terms of the window viewport * so that it can be compared to the position of the mouse (dnd) * This is additions of all the offsetTop,offsetLeft values up the * offsetParent hierarchy, ...taking into account any scrollTop, * scrollLeft values along the way... * * Note: initially there was 2 implementations, one for IE, one for = others. * Mozilla one seems to fit all though (tested XP: FF2,IE7, OSX: = FF2, SAFARI) **/ _toAbsolute: function(element,accountForDocScroll, topParent ) { return = this._toAbsoluteMozilla(element,accountForDocScroll,topParent); }, /** * Mozilla did not report all of the parents up the hierarchy via = the * offsetParent property that IE did. So for the calculation of the * offsets we use the offsetParent property, but for the calculation = of * the scrollTop/scrollLeft adjustments we navigate up via the = parentNode * property instead so as to get the scroll offsets... * **/ _toAbsoluteMozilla: function(element,accountForDocScroll, topParent) = { var x =3D 0; var y =3D 0; var parent =3D element; while ( parent && ( !topParent || parent!=3DtopParent ) ) { x +=3D parent.offsetLeft; y +=3D parent.offsetTop; parent =3D parent.offsetParent; } parent =3D element; while ( parent && parent !=3D document.body && parent !=3D document.documentElement && ( !topParent || parent!=3DtopParent ) ) { if ( parent.scrollLeft ) x -=3D parent.scrollLeft; if ( parent.scrollTop ) y -=3D parent.scrollTop; parent =3D parent.parentNode; } if ( accountForDocScroll ) { x -=3D this.docScrollLeft(); y -=3D this.docScrollTop(); } return { x:x, y:y }; }, docScrollLeft: function() { if ( window.pageXOffset ) return window.pageXOffset; else if ( document.documentElement && = document.documentElement.scrollLeft ) return document.documentElement.scrollLeft; else if ( document.body ) return document.body.scrollLeft; else return 0; }, docScrollTop: function() { if ( window.pageYOffset ) return window.pageYOffset; else if ( document.documentElement && = document.documentElement.scrollTop ) return document.documentElement.scrollTop; else if ( document.body ) return document.body.scrollTop; else return 0; }, getChildElementByClassName: function(parent, childTag, = childClassName){ var children =3D parent.getElementsByTagName(childTag); if (!children || children.length =3D=3D 0) return null; for (var i =3D 0; i < children.length; i++){ if (children[i].className.indexOf(childClassName) >=3D 0){ return children[i]; } } return null; }, =09 setChildElementTextByClassName: function(parent, childTag, = childClassName, text){ var child =3D GradebookUtil.getChildElementByClassName(parent, = childTag, childClassName); if (child =3D=3D null) return; child.innerHTML =3D text; }, =09 getLogger: function() { if (window.gbModel) return gbModel.getLogger(); // in case current = scope owns gbModel if (parent.gbModel) return parent.gbModel.getLogger(); }, debug: function(s) { var logger =3D this.getLogger(); if (logger) { logger.debug(s); } }, error: function(s) { var logger =3D this.getLogger(); if (logger) { logger.error(s); } }, =09 //on firefox/mac scroll bars will show ontop of anything if not shimmed shimDiv: function( menuDiv ) { var shimIFrame =3D $('shimDiv'); if (!shimIFrame) return; shimIFrame.style.width =3D menuDiv.offsetWidth; shimIFrame.style.height =3D menuDiv.offsetHeight; var position =3D Position.page(menuDiv); shimIFrame.style.top =3D position[1]; shimIFrame.style.left =3D position[0]; shimIFrame.style.zIndex =3D 2; shimIFrame.style.display =3D "block"; =20 }, =20 clearShim: function() { if ( $("shimDiv") ) $("shimDiv").style.display=3D"none"; } }; ------=_NextPart_000_0000_01CA341B.AF3F6810 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://blackboard.wayne.edu/webapps/gradebook/js/gradebookgridmodel.js?v=9.0.440.7 /** * Gradebook data grid * * PORTIONS OF THIS FILE ARE BASED ON RICO LIVEGRID 1.1.2 * * Copyright 2005 Sabre Airline Solutions * * Licensed under the Apache License, Version 2.0 (the "License"); you = may not use this * file except in compliance with the License. You may obtain a copy = of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software = distributed under the * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR = CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific = language governing permissions * and limitations under the License. * * @author "Bill Richard" * @version $Revision: #9 $ $Date: 2007/02/12 $ * * **/ // Gradebook.GridModel = ----------------------------------------------------- Gradebook.GridModel =3D Class.create(); Gradebook.GridModel.prototype =3D { initialize: function(gradebookService) { this.gradebookService =3D gradebookService; this.courseId =3D gradebookService.courseId; this.rows =3D new Array(); this.colDefs =3D new Array(); this.colOrderMap =3D new Array(); this.customViews =3D new Array(); this.listeners =3D new Array(); this.accessibleMode =3D false; this.resizingWindow =3D false; this.minimumRows =3D 10; this.isolatedStudentId =3D ''; }, getCustomViews: function() { this.customViews.sort( function(a,b){ var aa =3D a.name.toLowerCase(); var bb =3D b.name.toLowerCase(); if (aa =3D=3D bb) return 0; else if (aa < bb) return -1; else return 1; } ); return this.customViews; }, =09 // notify registered listeners that model data has changed fireModelChanged: function() { for (var i =3D 0; i < this.listeners.length; i++){ this.listeners[i].modelChanged(); } }, // notify registered listeners that model error has occured fireModelError: function( exception, serverReply) { for (var i =3D 0; i < this.listeners.length; i++){ if (this.listeners[i].modelError){ this.listeners[i].modelError( exception, serverReply); } } }, addModelListener: function(listener) { this.listeners.push(listener); }, removeModelListeners: function() { this.listeners =3D new Array(); }, updateGrade: function( newValue, newTextValue, userId, colDefId) { = this.gradebookService.updateGrade((this.updateGradeCallback).bind(this), = this.version, newValue, newTextValue, userId, colDefId); }, deleteColumn: function(colDefId) { this.gradebookService.deleteColumn(colDefId); }, modifyColumn: function(colDefId, colType) { this.gradebookService.modifyColumn(colDefId, colType); }, =09 =09 viewItemStats: function(itemId) { this.gradebookService.viewItemStats(itemId); }, viewSingleStudentGrades: function(userId) { this.isolatedStudentId =3D userId; this.gradebookService.reloadGrid(); }, =09 restoreFromSingleStudentView: function() { this.isolatedStudentId =3D ''; this.gradebookService.reloadGrid(); }, =09 viewStudentStats: function(userId) { this.gradebookService.viewStudentStats(userId); }, =09 viewAdaptiveRelease: function(userName) { this.gradebookService.viewAdaptiveRelease(userName); }, =09 hideColumn: function(colDefId) { this.gradebookService.hideColumn(colDefId); }, showGradeDetails: function(userId, colDefId){ this.gradebookService.showGradeDetails( userId, colDefId ); }, onAddComment: function(userId, colDefId){ this.gradebookService.loadComments( userId, colDefId, = "studentComments", "instructorComments" ); }, =09 exemptGrade: function(userId, colDefId){ this.gradebookService.setExemption( = (this.updateGradeCallback).bind(this), this.version, userId, colDefId, = true ); }, clearExemption: function(userId, colDefId){ this.gradebookService.setExemption( = (this.updateGradeCallback).bind(this), this.version, userId, colDefId, = false ); }, setComments: function(userId, colDefId, studentComments, = instructorComments){ this.gradebookService.setComments( userId, colDefId, studentComments, = instructorComments ); }, =09 getRowByUserId: function(userId) { var rows =3D this.rows; for (var i =3D 0, len =3D rows.length; i < len; i++){ if (rows[i][0].getUserId() =3D=3D userId) return rows[i]; } return null; }, =09 _getGradesForItemId: function(itemId, includeUnavailable) { var grades =3D new Array() var colIndex =3D this.colDefMap[itemId]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _getGradesForItemId contains data for = invalid column id: '+itemId); return grades; } var rows =3D this.rows; for (var i =3D 0, len =3D rows.length; i < len; i++){ var grade =3D rows[i][colIndex]; if (includeUnavailable || grade.isAvailable()){ grades.push( grade ); } } return grades; }, updateGradeCallback: function(retData) { if (!retData || retData.length =3D=3D 0){ GradebookUtil.error('GridModel error updating grade'); return; } for (var i =3D 0, len =3D retData.length; i < len; i++) { var data =3D retData[i]; var colDefId =3D data.itemId; var userId =3D data.courseUserId; var score =3D data.score; var textInput =3D data.textInput; var row =3D this.getRowByUserId(userId); var colIndex =3D this.colDefMap[colDefId]; if (colIndex =3D=3D undefined){ // ignore continue; } var gridCell =3D row[colIndex]; gridCell.tv =3D textInput; if (textInput.length =3D=3D 0 && score =3D=3D 0){ gridCell.v =3D '-'; } else { gridCell.v =3D score; } gridCell.gc =3D (data.modified)?"y":null; gridCell.or =3D (data.override)?"y":null; gridCell.x =3D (data.exempt)?"y":null; gridCell.mp =3D data.points; gridCell.isUncommitted =3D false; var savingDiv =3D gridCell.savingDiv; if (savingDiv && savingDiv.timerExpired && savingDiv.parentNode){ savingDiv.style.display =3D 'none'; savingDiv.parentNode.removeChild(savingDiv); gridCell.savingDiv =3D null; } =09 } this.fireModelChanged(); }, // called to load model with server data=20 requestLoadData: function() { GradebookUtil.debug('GridModel requestLoadData called'); this.lastUpdateTS =3D new Date().getTime(); this.gradebookService.requestLoadData( (this._loadDataFromJSON).bind(this), (this._reportError).bind(this), (this._reportException).bind(this)); }, // called to update model with server data=20 requestUpdateData: function() { var timeSinceLastUpdate =3D new Date().getTime() - this.lastUpdateTS; // don't update if window is resizing and we've reloaded in the last 5 = minutes if (this.resizingWindow && ( timeSinceLastUpdate < 5*60*1000) ){ this.fireModelChanged(); return;=20 } this.lastUpdateTS =3D new Date().getTime(); GradebookUtil.debug('GridModel requestUpdateData called'); var customViewId =3D null; if (this.currentCustomView && this.currentCustomView.usesGroups()){ customViewId =3D this.currentCustomView.id; } this.gradebookService.requestUpdateData(this.version, = this.lastUserChangeTS, this.usersHash, customViewId, (this._updateDataFromJSON).bind(this), (this._reportError).bind(this), (this._reportException).bind(this)); }, setResizingWindow: function(f) { this.resizingWindow =3D f; }, getResizingWindow: function() { return this.resizingWindow; }, setMinimumRows: function( minRows ) { if ( minRows < 5 ) minRows =3D 5; if ( minRows > 50 ) minRows =3D 50; this.minimumRows =3D minRows; }, =09 getMinimumRows: function() { return this.minimumRows; }, _reportException: function(e) { GradebookUtil.error('exception getting data from server: '+ = e.message); }, _reportError: function(t) { GradebookUtil.error('error getting data from server: '+ t.status + ' = -- ' + t.statusText); }, =09 getVisibleColDefIndex: function(id) { var colnum =3D this.colDefMap[id];=20 if (colnum =3D=3D=3D undefined || this.colDefs[colnum] =3D=3D=3D = undefined || !this.colDefs[colnum].gbvis ){ return -1; } for (var i =3D 0, len =3D this.colOrderMap.length; i < len; i++){ if (this.colOrderMap[i] =3D=3D colnum) return i; } return -1; }, // callback when initializing this gradebook model with server data _loadDataFromJSON: function(reply) { GradebookUtil.debug('GridModel _loadDataFromJSON called'); try { var jsonBook =3D eval('(' + reply.responseText + ')'); } catch (e) { this.fireModelError(e, reply.responseText); return; } try { this.schemaMap =3D new Array(); for (var i =3D 0; i < jsonBook.schemas.length; i++){ jsonBook.schemas[i] =3D this._createSchema(jsonBook.schemas[i].type, = jsonBook.schemas[i]); this.schemaMap[jsonBook.schemas[i].id] =3D jsonBook.schemas[i]; } this.colDefMap =3D new Array(); for (var i =3D 0; i < jsonBook.colDefs.length; i++){ jsonBook.colDefs[i] =3D this._createColDef( jsonBook.colDefs[i], = this, this.schemaMap ); this.colDefMap[jsonBook.colDefs[i].id] =3D i; } for (var i =3D 0; i < jsonBook.rows.length; i++){ jsonBook.rows[i] =3D this._loadRowDataFromJSON(jsonBook.rows[i], = jsonBook.colDefs, this.colDefMap); } this.customViewMap =3D new Array(); =09 if (jsonBook.customViews){ for (var i =3D 0; i < jsonBook.customViews.length; i++){ jsonBook.customViews[i] =3D new Gradebook.CustomView( = jsonBook.customViews[i], this ); this.customViewMap[jsonBook.customViews[i].id] =3D i; } } this.groupsMap =3D new Array(); if (jsonBook.groups){ for (var i =3D 0; i < jsonBook.groups.length; i++){ this.groupsMap[jsonBook.groups[i].id] =3D i; } } this._buildCategoryNameMap( jsonBook ); Object.extend(this, jsonBook); // assign json properties to this = object this._buildGradingPeriodMap(); if ( this.customViewIdParam !=3D null && = this.customViewIdParam.length > 0 ) { this._internalChangeCurrentView( 'cv_' + this.customViewIdParam ); } else if (this.defCVID) { this._internalChangeCurrentView( 'cv_' + this.defCVID ); } else if (this.defGPID){ this._internalChangeCurrentView( this.defGPID ); } =09 this._setStudentInfoLayout(); this._updateVisibleRows(jsonBook); this.sortColumns(); if (this.colDefMap['LN'] !=3D undefined){ this.sortColumnId =3D 'LN'; this.sortDir =3D 'ASC'; this.reSort(); } this.fireModelChanged(); } catch (e) { this.fireModelError(e); } }, =09 // callback when updating this gradebook model with server data _updateDataFromJSON: function(reply) { GradebookUtil.debug('GridModel _updateDataFromJSON called'); try { var jsonBook =3D eval('(' + reply.responseText + ')'); } catch (e) { this.fireModelError(e, reply.responseText); return; } try { // need to reinitialize if new users added to pick up existing grades // when a user is re-enabled if (this._hasNewUsers(jsonBook)) { this.requestLoadData(); return; } this.version =3D jsonBook.version; this.lastUserChangeTS =3D jsonBook.lastUserChangeTS; this.usersHash =3D jsonBook.usersHash; this.numFrozenColumns =3D jsonBook.numFrozenColumns; this.gradingPeriods =3D jsonBook.gradingPeriods; this.categories =3D jsonBook.categories; this._buildCategoryNameMap( jsonBook ); this.studentInfoLayouts =3D jsonBook.studentInfoLayouts; this.pubColID =3D jsonBook.pubColID; this.defCVID =3D jsonBook.defCVID; this.defGPID =3D jsonBook.defGPID; if (jsonBook.schemas){ for (var i =3D 0; i < jsonBook.schemas.length; i++){ // create a new schema if one with same id does not already exists var schema =3D this.schemaMap[jsonBook.schemas[i].id];=20 if (schema =3D=3D=3D undefined){ schema =3D this._createSchema(jsonBook.schemas[i].type, = jsonBook.schemas[i]); this.schemaMap[jsonBook.schemas[i].id] =3D schema; } else { Object.extend(schema, jsonBook.schemas[i]); } } } if (jsonBook.groups){ if (!this.groupsMap || !this.groups || this.groups.length =3D=3D 0){ this.groupsMap =3D new Array(); this.groups =3D jsonBook.groups; for (var i =3D 0; i < jsonBook.groups.length; i++){ this.groupsMap[jsonBook.groups[i].id] =3D i; } } else { for (var i =3D 0; i < jsonBook.groups.length; i++){ var group =3D this.groupsMap[jsonBook.groups[i].id];=20 if (group =3D=3D=3D undefined){ this.groupsMap[jsonBook.groups[i].id] =3D this.groups.length; this.groups.push( jsonBook.groups[i] ); } else { this.groups[group] =3D jsonBook.groups[i]; } } } } if (jsonBook.colDefs){ for (var i =3D 0; i < jsonBook.colDefs.length; i++){ // create a new colDef if one with same id does not already exists var colIndex =3D this.colDefMap[jsonBook.colDefs[i].id]; if (colIndex =3D=3D undefined){ if ( jsonBook.colDefs[i].deleted ) continue; this.colDefMap[jsonBook.colDefs[i].id] =3D this.colDefs.length; this.colDefs.push(this._createColDef( jsonBook.colDefs[i], this, = this.schemaMap )); } else { var colDef =3D this.colDefs[colIndex];=20 colDef.comput_err =3D false; Object.extend(colDef, jsonBook.colDefs[i]); // clear all grades in column if computation error for column if (jsonBook.colDefs[i].comput_err){ var grades =3D this._getGradesForItemId(jsonBook.colDefs[i].id, = true); for (var g =3D 0; g < grades.length; g++){ grades[g].initialize( grades[g].colDef, grades[g].metaData); } } if (colDef.deleted){ this.colDefMap[colDef.id] =3D null; } if (colDef.sid){ colDef.primarySchema =3D this.schemaMap[colDef.sid]; } if (colDef.ssid && colDef.ssid.length > 0){ colDef.secondarySchema =3D this.schemaMap[colDef.ssid]; } else { colDef.secondarySchema =3D null; } } } } // need to add any new row data? while (this.rows.length > 0 && this.colDefs.length > = this.rows[0].length){ var colDefIndex =3D this.rows[0].length; for (var i =3D 0; i < this.rows.length; i++){ var metaData =3D this.rows[i][0].metaData; var colDef =3D this.colDefs[colDefIndex]; if ( colDef instanceof Gradebook.GradeColDef )=20 this.rows[i].push(new Gradebook.Grade( colDef, metaData )); else this.rows[i].push(new Gradebook.StudentAttribute( colDef, metaData = )); } } if (jsonBook.rows){ // users changed, need to resync if (jsonBook.type =3D=3D "delta_with_user"){ // remove rows from model that are not in json data var tempArray =3D new Array(); for (var i =3D 0; i < this.rows.length; i++){ if (this._containsUser(jsonBook.rows, = this.rows[i][0].getUserId())) { tempArray.push(this.rows[i]); } } this.rows =3D tempArray; } // add new json rows to model or update existing rows for (var i =3D 0; i < jsonBook.rows.length; i++){ var row =3D this.getRowByUserId(jsonBook.rows[i][0].uid); if (row =3D=3D null){ // new row this.rows.push(this._loadRowDataFromJSON(jsonBook.rows[i], = this.colDefs, this.colDefMap)); } else { this._updateRowDataFromJSON(row, jsonBook.rows[i], this.colDefs, = this.colDefMap); } } } this._buildGradingPeriodMap(); if (jsonBook.customViews){ for (var i =3D 0; i < jsonBook.customViews.length; i++){ // create a new custom view if one with same id does not already = exists var idx =3D this.customViewMap[jsonBook.customViews[i].id];=20 if (idx =3D=3D=3D undefined){ this.customViewMap[jsonBook.customViews[i].id] =3D = this.customViews.length; this.customViews.push(new Gradebook.CustomView( = jsonBook.customViews[i], this )); } else { this.customViews[idx] =3D new Gradebook.CustomView( = jsonBook.customViews[i], this ); } } } // remove any custom views not in customViewIds if (this.customViews){ var tempArray =3D new Array(); this.customViewMap =3D new Array(); for (var i =3D 0; i < this.customViews.length; i++){ if ( jsonBook.customViewIds.indexOf( Number( this.customViews[i].id = ) ) !=3D -1 ) { this.customViewMap[this.customViews[i].id] =3D tempArray.length; tempArray.push(this.customViews[i]); } } this.customViews =3D tempArray; } if (this.customViewIdParam !=3D null && this.customViewIdParam.length = > 0 ) { this._internalChangeCurrentView( 'cv_' + this.customViewIdParam ); } else if (this.currentView) { this._internalChangeCurrentView( this.currentView ); } this._setStudentInfoLayout(); this._updateVisibleRows(jsonBook); this.sortColumns(); this.reSort(); this.checkedNoStudents(); // do this last, it will fireModelChanged } catch (e) { this.fireModelError(e); } }, _buildCategoryNameMap: function( jsonBook ) { this.catNameMap =3D new Array(); if ( jsonBook.categories ) { for (var i =3D 0; i < jsonBook.categories.length; i++){ this.catNameMap[jsonBook.categories[i].id] =3D = jsonBook.categories[i].name; } } }, _updateVisibleRows: function(jsonBook) { var showAll =3D (!jsonBook.hiddenStudentIds || = jsonBook.hiddenStudentIds.length =3D=3D 0); this.visibleRows =3D new Array(); var rows =3D this.rows; // loop through rows and set hidden flag for each row, add to = visibleRows if not hidden for (var i =3D 0, len =3D rows.length; i < len; i++){ var row =3D rows[i]; var isHidden =3D !showAll && ( jsonBook.hiddenStudentIds.indexOf( = Number( row[0].getUserId() ) ) !=3D -1 ); row[0].setHidden( isHidden ); if ( !isHidden ) { this.visibleRows.push( row ); } } this._applyCustomView(); =09 }, updateUserVisibility: function ( userId, visible ) { this.gradebookService.updateUserVisibility( userId, visible ); }, =20 _hasNewUsers: function(jsonBook) { if (!jsonBook || !jsonBook.rows) return false; for (var i =3D 0; i < jsonBook.rows.length; i++){ if (this.getRowByUserId(jsonBook.rows[i][0].uid) =3D=3D null) return = true; } return false; }, _containsUser: function(rows, userId) { for (var i =3D 0; i < rows.length; i++){ if (rows[i][0].uid =3D=3D userId) return true; } return false; }, _createColDef: function(jsonColDef,model,schemaMap) { if (jsonColDef.type =3D=3D "s"){ return new Gradebook.StudentAttributeColDef( jsonColDef, model, = schemaMap ); } else { return new Gradebook.GradeColDef( jsonColDef, model, schemaMap ); } }, _createSchema: function(type,jsonSchema) { if (type =3D=3D "S"){ return new Gradebook.NumericSchema( jsonSchema, this ); } else if (type =3D=3D "X") { return new Gradebook.TextSchema( jsonSchema, this ); } else if (type =3D=3D "P") { return new Gradebook.PercentageSchema( jsonSchema, this ); } else if (type =3D=3D "C") { return new Gradebook.CompleteIncompleteSchema( jsonSchema, this ); } else if (type =3D=3D "T") { return new Gradebook.LetterSchema( jsonSchema, this ); } else { GradebookUtil.debug('GridModel _createSchema invalid type: '+type); return null; } =09 }, _setStudentInfoLayout: function(){ // set pos & gbvis for student attribute columns from = studentInfoLayouts for (var i =3D 0; i < this.studentInfoLayouts.length; i++){ var colIndex =3D this.colDefMap[this.studentInfoLayouts[i].id];=20 if (colIndex =3D=3D=3D undefined){ continue; } var colDef =3D this.colDefs[colIndex]; colDef.gbvis =3D this.studentInfoLayouts[i].gbvis; colDef.pos =3D this.studentInfoLayouts[i].pos; } }, _loadRowDataFromJSON: function(jsonRow, colDefs, colDefMap){ // create a student attribute/grade for each column with a default = blank value var tempRow =3D new Array(); var userId =3D ''; if (jsonRow[0].uid){ userId =3D jsonRow[0].uid; } var metaData =3D new Gradebook.RowMetaData( userId ); // create a gridcell of appropriate type for each column in the row for (var i =3D 0; i < colDefs.length; i++){ if ( colDefs[i] instanceof Gradebook.GradeColDef )=20 tempRow[i] =3D new Gradebook.Grade( colDefs[i], metaData ); else tempRow[i] =3D new Gradebook.StudentAttribute( colDefs[i], metaData = ); } // populate cell data from json - may not include all cells (I.e. null = grades) for (var i =3D 0; i < jsonRow.length; i++){ //use json colDefID to get column index from map var colIndex =3D colDefMap[jsonRow[i].c]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _loadRowDataFromJSON jsonRow contains = data for invalid column id: '+jsonRow[i].c); continue; } //overwrite default value with json value =20 tempRow[colIndex]._loadFromJSON(jsonRow[i]); } return tempRow; }, =09 _updateRowDataFromJSON: function(thisRow, jsonRow, colDefs, colDefMap){ var metaData =3D thisRow[0].metaData; for (var i =3D 0; i < jsonRow.length; i++){ var colIndex =3D colDefMap[jsonRow[i].c]; var grade =3D thisRow[colIndex]; if (grade =3D=3D=3D undefined){ // new grade? if ( colDefs[colIndex] instanceof Gradebook.GradeColDef )=20 grade =3D new Gradebook.Grade( colDefs[colIndex], metaData ); else grade =3D new Gradebook.StudentAttribute( colDefs[colIndex], = metaData ); thisRow.push(grade); } colDefs[colIndex].comput_err =3D false; grade._loadFromJSON(jsonRow[i]); } }, =09 // called by view to get a window of row data // returns iterators to get row data in correct order while skipping = hidden columns getRowIterators: function(startRow, numRows, startCol) { var rows =3D this.visibleRows; if (!startRow) startRow =3D 0; if (!startCol) startCol =3D 0; if (!numRows) numRows =3D rows.length; var endRow =3D startRow + numRows if (startRow < 0 || startRow >=3D rows.length) { GradebookUtil.error('getRowIterators startRow out of range. Max is: = '+rows.length-1+' startRow is: '+startRow); return null; } if (numRows < 0 || numRows > rows.length) { GradebookUtil.error('getRowIterators numRows out of range. Max is: = '+rows.length+' numRows is: '+numRows); return null; } if (startCol < 0 || startCol >=3D this.colOrderMap.length) { GradebookUtil.error('getRowIterators startCol out of range. Max is: = '+this.orderMap.length+' startCol is: '+startCol); return null; } if ( endRow > rows.length){ endRow =3D rows.length GradebookUtil.error('Error: GridModel getRowIterators input args = requesting too much data. startRow =3D '+startRow+' numRows =3D = '+numRows+' rows.length =3D '+rows.length); return null; } var results =3D new Array() var index =3D 0; for ( var i=3DstartRow ; i < endRow; i++ ) { results[index++] =3D new = Gradebook.GridRowIterator(rows[i],this.colOrderMap,startCol); } return results; }, =09 // called by view to get the column definitions // returns iterator to get definitions in correct order while skipping = hidden columns getColDefIterator: function(startCol) { if (!startCol) startCol =3D 0; if (startCol < 0 || startCol >=3D this.colOrderMap.length) { GradebookUtil.error('getColDefIterator startCol out of range. Max is: = '+this.orderMap.length+' startCol is: '+startCol); return null; } return new = Gradebook.GridRowIterator(this.colDefs,this.colOrderMap,startCol); }, =09 // called by view to determine how much vertical scroll is needed getNumRows: function() { if (this.visibleRows) return this.visibleRows.length; else=20 return 0; }, // called by view to determine how much horizontal scroll is needed getNumColDefs: function() { return this.colOrderMap.length; }, // called by view to determine how many columns to freeze getNumFrozenColumns: function() { return this.numFrozenColumns; }, getSortDir: function(){ return this.sortDir; },=20 =09 getSortIndex: function(){ if (this.sortColumnId =3D=3D=3D undefined){ return -1; } var colnum =3D this.colDefMap[this.sortColumnId]; if (colnum =3D=3D=3D undefined){ return -1; } else { var sortColumn =3D this.colOrderMap[colnum]; if (sortColumn =3D=3D=3D undefined || this.colDefs[sortColumn] = =3D=3D=3D undefined || this.colDefs[sortColumn].deleted =3D=3D "Y"){ return -1; } else { return colnum; } } },=20 =09 reSort: function() { if (this.sortColumnId =3D=3D=3D undefined || this.sortDir =3D=3D=3D = undefined) return; var colnum =3D this.getSortIndex(); if (colnum =3D=3D -1) return; this.sort(colnum, this.sortDir); }, setDefaultView: function(view) { this.gradebookService.setDefaultView( view ); },=09 =09 getDefaultView: function() { // do not return a view that does not exist in model if (this.defCVID) { if ( this.customViewMap[ this.defCVID ] ) return 'cv_' + = this.defCVID; return null; } else if (this.defGPID){ if ( this.gradingPeriodMap && !this.gradingPeriodMap[ this.defGPID = ] ) return null; return this.defGPID; } else { return null; } },=09 =09 // changes the current view to a grading period or custom view // returns error string or null if no error changeCurrentView: function(view) { // null out customViewIdParam so that it will not override the view = set by the user next time the page is reloaded this.customViewIdParam =3D null; return this._internalChangeCurrentView(view); }, =09 _internalChangeCurrentView: function(view) { var origView =3D this.currentView; this.currentView =3D view; this.currentCustomView =3D null; this.currentGradingPeriodId =3D null; if (view.startsWith('cv_')){ var idx =3D this.customViewMap[view.substring(3)];=20 if (idx =3D=3D undefined){ if ( this.defCVID ) { var defaultView =3D 'cv_' + this.defCVID; if ( defaultView !=3D view ) { this._internalChangeCurrentView( defaultView ); } else { this.currentView =3D (this.currentView !=3D origView) ? origView = : null; return null; //this.getMessage('custViewDoesNotExistMsg'); } } else if (this.defGPID) { this._internalChangeCurrentView( this.defGPID ); } else { this.currentView =3D (this.currentView !=3D origView) ? origView : = null; return null; //this.getMessage('custViewDoesNotExistMsg'); } } else { if (!this.customViews[idx].evaluate()){ this.currentView =3D (this.currentView !=3D origView) ? origView : = null; return this.getMessage('changesEffectCustViewMsg'); } this.currentCustomView =3D this.customViews[idx]; } } else { if ( this.gradingPeriodMap && !this.gradingPeriodMap[ view ] )=20 { if ( this.defCVID ) { this._internalChangeCurrentView( 'cv_' + this.defCVID = ); } else if (this.defGPID && this.defGPID!=3Dview) { this._internalChangeCurrentView( this.defGPID ); } else { this.currentView =3D (this.currentView !=3D origView) ? origView : = null; this.currentGradingPeriodId =3D null; } return null; } this.currentGradingPeriodId =3D view; } return null; }, _applyCustomView: function() { if ( this.isolatedStudentId ) { this.visibleRows =3D new Array(); var row =3D this.getRowByUserId(this.isolatedStudentId); this.visibleRows.push( row ); } if(this.currentCustomView =3D=3D null || this.currentCustomView = =3D=3D undefined){ return; } this.currentCustomView.evaluate( this ); var userIds =3D this.currentCustomView.getUserIds(); if ( this.isolatedStudentId ) return; this.visibleRows =3D new Array(); // loop through custom view users and add to visibleRows for (var i =3D 0, len =3D userIds.length; i < len; i++){ var row =3D this.getRowByUserId(userIds[i]); if (row) this.visibleRows.push( row ); } }, =09 _buildGradingPeriodMap: function() { this.gradingPeriodMap =3D new Array(); if (this.gradingPeriods){ for (var i =3D 0, len =3D this.gradingPeriods.length; i < len; i++){ this.gradingPeriodMap[this.gradingPeriods[i].id] =3D = this.gradingPeriods[i]; =09 } this.gradingPeriods.sort( function(a,b){ var aa =3D a.name.toLowerCase(); var bb =3D b.name.toLowerCase(); if (aa =3D=3D bb) return 0; else if (aa < bb) return -1; else return 1; } ); } }, getCustomView: function(cvId) { var idx =3D this.customViewMap[cvId];=20 if (idx =3D=3D undefined){ return null; } else { return this.customViews[idx]; } }, getCurrentCustomView: function(cvId) { return this.currentCustomView; }, sortColumns: function(sortBy) { if (this.sortColAscending =3D=3D undefined){ this.sortColAscending =3D true; } =09 if (sortBy){ if (this.currentSortColumnBy =3D=3D sortBy){ this.sortColAscending =3D !this.sortColAscending; } else { this.sortColAscending =3D true; this.currentSortColumnBy =3D sortBy; } } else if (!this.currentSortColumnBy){ this.currentSortColumnBy =3D 'pos'; } var sortFunc =3D null; sortBy =3D this.currentSortColumnBy; if (sortBy =3D=3D 'pos'){ sortFunc =3D this._sortColByPosFunc.bind(this); } else if (sortBy =3D=3D 'categories'){ sortFunc =3D this._sortColByCategoriesFunc.bind(this); } else if (sortBy =3D=3D 'dueDate') { sortFunc =3D this._sortColByDueDateFunc.bind(this); } else if (sortBy =3D=3D 'creationdate') { sortFunc =3D this._sortColByCreationDateFunc.bind(this); } else if (sortBy =3D=3D 'points') { sortFunc =3D this._sortColByPointsFunc.bind(this); } else if (sortBy =3D=3D 'name') { sortFunc =3D this._sortColByNameFunc.bind(this); } =09 var tempColDefs =3D new Array(); =09 if(this.currentCustomView){ var colIds =3D this.currentCustomView.getDisplayItemIds(); tempColDefs =3D this._getVisibleToAll( = this.currentCustomView.includeHiddenItems, colIds ); for (var i =3D 0, len =3D colIds.length; i < len; i++){ var cd =3D this.colDefs[this.colDefMap[colIds[i]]]; tempColDefs.push(cd); } } else { // filter out colDefs that are: deleted, hidden, not in all grading = periods // or not in current grading period for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ var cd =3D this.colDefs[i]; if (cd.deleted || !cd.gbvis) continue; var cgp =3D this.currentGradingPeriodId; var ingp =3D (cgp =3D=3D undefined || cgp =3D=3D cd.gpid || cgp = =3D=3D 'all' || (cgp =3D=3D 'none' && cd.gpid =3D=3D '')); if (cd.visAll || !cd.isGrade() || ingp){ tempColDefs.push(cd); } } } tempColDefs.sort(sortFunc); // compute colOrderMap based on the sorted columns this.colOrderMap =3D new Array(); for (var i =3D 0, len =3D tempColDefs.length, idx =3D 0; i < len; = i++){ this.colOrderMap[idx++] =3D this.colDefMap[tempColDefs[i].id]; } =09 }, _getVisibleToAll: function( includeHidden, excludeIds ) { var tempColDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ var cd =3D this.colDefs[i]; if (excludeIds.indexOf( cd.id ) !=3D -1) continue; var visAll =3D cd.visAll || !cd.isGrade(); if (cd.deleted || !visAll || (!includeHidden && !cd.gbvis)) continue; tempColDefs.push(cd); } return tempColDefs; }, // if both a & b are NOT visible to all, returns null // if both a & b are visible to all, sorts by position // if a is visible to all, returns -1 so visible to all columns come = first // if b is visible to all, returns 1 so visible to all columns come = first _sortVisibleToAll: function(a,b) { var aVisAll =3D a.visAll || !a.isGrade(); var bVisAll =3D b.visAll || !b.isGrade(); if (!aVisAll && !bVisAll) { return null; } else if (aVisAll && bVisAll) { return a.pos - b.pos; } else if (aVisAll) { return -1; } else if (bVisAll) { return 1; } }, _sortColDir: function(result) { return (this.sortColAscending)?result:result*-1; }, _sortColByPosFunc: function(a,b) { var sf =3D this._sortVisibleToAll(a,b); if (sf !=3D null) return sf; var gpPosA =3D (a.gpid.blank())?-1:this.gradingPeriodMap[a.gpid].pos; = var gpPosB =3D (b.gpid.blank())?-1:this.gradingPeriodMap[b.gpid].pos;=09 var res;=09 if (gpPosA =3D=3D gpPosB){ res =3D a.pos - b.pos; } else if (gpPosA >=3D 0 && gpPosB >=3D 0){ res =3D gpPosA - gpPosB; } else if (gpPosB =3D=3D -1) { res =3D -1; } else { res =3D 1; } return this._sortColDir( res ); }, _sortColByPointsFunc: function(a,b) { var sf =3D this._sortVisibleToAll(a,b); if (sf !=3D null) return sf; var aa =3D a.points; var bb =3D b.points; var res;=09 if (aa=3D=3Dbb)=20 res =3D a.cdate - b.cdate; else if (aa=3D this.colOrderMap.length) { GradebookUtil.error('sort colnum out of range. Max is: = '+this.orderMap.length+' colnum is: '+colnum); return; } GradebookUtil.debug('GridModel sort called. colnum: '+colnum+' = sortdir: '+sortdir); this.sortDir =3D sortdir; var sortFunc; if (colnum =3D=3D -1){ this.sortColumnId =3D null; if (sortdir=3D=3D'ASC') sortFunc =3D this._sortCheckedASC.bind(this); else sortFunc =3D this._sortCheckedDESC.bind(this); } else { var sortColumn =3D this.colOrderMap[colnum]; var secondarySortColumn =3D this.colDefMap['LN']; var colDef =3D this.colDefs[sortColumn]; this.sortColumnId =3D colDef.id; if ( this.sortColumnId =3D=3D 'LN' ){ secondarySortColumn =3D this.colDefMap['FN']; } sortFunc =3D colDef.getSortFunction(sortColumn, sortdir, = secondarySortColumn); } this.visibleRows.sort(sortFunc); }, _sortCheckedASC: function(a,b) { var aa =3D a[0].isRowChecked()?1:0; var bb =3D b[0].isRowChecked()?1:0; if (aa=3D=3Dbb) return 0; if (aa=3D 0) { crsId =3D crsId.split("_")[1]; } var gradeCenterContentFrame =3D window.frames['gradecenterframe']; // = Grade Center Frame in SSL mode if (!gradeCenterContentFrame) gradeCenterContentFrame =3D = window.frames['content']; // regular course content frame if (!gradeCenterContentFrame.GradebookDWRFacade) = gradeCenterContentFrame =3D window.frames['content'].frames['main'];=20 gradeCenterContentFrame.GradebookDWRFacade.getGroups(crsId, = Gradebook.GridModel.prototype.updateGroupsCallback ); }, =20 updateGroupsCallback: function (retData) { var groupsMap =3D new Array(); var groups =3D new Array(); var h =3D $H(retData); h.each(function(pair) { var g =3D {}; g.id =3D pair.key; g.uids =3D pair.value; groupsMap[g.id] =3D groups.length; groups.push( g ); }); var model =3D Gradebook.getModel(); =20 model.groupsMap =3D groupsMap; model.groups =3D groups; }, =20 // used by reporting getReportData: function (reportDef) { // get rows for students to include in report var userIds =3D null; if (reportDef.students =3D=3D 'BYGROUPS'){ if ( reportDef.groupIds =3D=3D null ){ GradebookUtil.error('GridModel error getReportData: no = reportDef.groupIds'); return null; } userIds =3D this._getUserIdsByGroupIds( reportDef.groupIds ); } else if (reportDef.students =3D=3D 'BYSTUDENT') { if ( reportDef.studentIds =3D=3D null ){ GradebookUtil.error('GridModel error getReportData: no = reportDef.studentIds'); return null; } userIds =3D reportDef.studentIds; } var rows =3D this._getRowsByUserIds( userIds );=20 if ( !reportDef.includeHiddenStudents ) rows =3D this._removeHiddenStudents(rows); // get columns to include in report var colDefs =3D this.getColDefs(true,true); if (reportDef.columns =3D=3D 'BYITEM'){ colDefs =3D this._getColDefsById( reportDef.itemIds ); } else if (reportDef.columns =3D=3D 'BYGP'){ colDefs =3D this._getColDefsByGradingPeriodId( = reportDef.gradingPeriodIds ); } else if (reportDef.columns =3D=3D 'BYCAT'){ colDefs =3D this._getColDefsByCategoryId( reportDef.categoryIds ); } if (!reportDef.includeHiddenColumns){ colDefs =3D this._removeHiddenColumns( colDefs ); } // create return data structure var reportData =3D {}; reportData.columnInfoMap =3D new Array(); reportData.studentGradeInfo =3D new Array(); // add column data for (var i =3D 0, len =3D colDefs.length; i < len; i++){ var cdef =3D colDefs[i]; var cdata =3D {}; reportData.columnInfoMap[cdef.id] =3D cdata; cdata.name =3D cdef.getName(); if (reportDef.columnInfoDescription){ cdata.description =3D 'tbd'; // server will provide desc map } if (reportDef.columnInfoDueDate){ cdata.dueDate =3D cdef.getDueDate(); } if (reportDef.columnInfoStatsMedian || = reportDef.columnInfoStatsAverage){ var stats =3D cdef.getStats( true ); // include unavailable students cdata.statsMedian =3D stats.median; cdata.statsAverage =3D stats.avg; } } =09 // add student data for (var i =3D 0, len0 =3D rows.length; i < len0; i++){ var row =3D rows[i]; var rd =3D {}; reportData.studentGradeInfo.push(rd); =09 if (reportDef.firstName){ rd.firstName =3D this._getStudentAttribute( row, 'FN' ); } if (reportDef.lastName){ rd.lastName =3D this._getStudentAttribute( row, 'LN' ); } if ( reportDef.studentId ){ rd.studentId =3D this._getStudentAttribute( row, 'SI' ); } if ( reportDef.userName ){ rd.userName =3D this._getStudentAttribute( row, 'UN' ); } if ( reportDef.lastAccessed ){ rd.lastAccessed =3D this._getStudentAttribute( row, 'LA' ); if (rd.lastAccessed && rd.lastAccessed > 0){=20 var date =3D new Date(); date.setTime(rd.studentId); rd.lastAccessed =3D formatDate(date,'MMM d, y'); } } rd.grades =3D new Array(); for (var c =3D 0, len1 =3D colDefs.length; c < len1; c++){ var g =3D {}; g.cid =3D colDefs[c].id; var gridCell =3D this._getGrade( row, colDefs[c]); if (gridCell.attemptInProgress() && !gridCell.isOverride())=20 g.grade =3D this.getMessage('inProgressMsg'); else if (gridCell.needsGrading() && !gridCell.isOverride())=20 g.grade =3D this.getMessage('needsGradingMsg'); else=20 g.grade =3D gridCell.getCellValue(); rd.grades.push( g ); } } return reportData; }, _getGrade: function( row, colDef ) { var colIndex =3D this.colDefMap[colDef.id]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _getGrade invalid column id: = '+colDef.id); return null; } return row[colIndex]; }, _getStudentAttribute: function( row, colDefId ) { var colIndex =3D this.colDefMap[colDefId]; if (colIndex =3D=3D undefined){ GradebookUtil.error('GridModel _getStudentAttribute invalid column = id: '+colDefId); return null; } return row[colIndex].getValue(); }, _removeHiddenStudents: function( students ) { var retStudents =3D new Array(); for (var i =3D 0, len =3D students.length; i < len; i++){ if (!students[i][0].isHidden()){=09 retStudents.push( students[i] ); } } return retStudents; }, _removeHiddenColumns: function( colDefs ) { var retColDefs =3D new Array(); for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if (!colDefs[i].isHidden()){=09 retColDefs.push( colDefs[i] ); } } return retColDefs; }, _getColDefsById: function( itemIds ) { var colDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ if (itemIds.indexOf( this.colDefs[i].id ) !=3D -1){=09 colDefs.push( this.colDefs[i] ); } } return colDefs; }, _getColDefsByCategoryId: function( categoryIds ) { var colDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ if (categoryIds.indexOf( this.colDefs[i].catid ) !=3D -1){=09 colDefs.push( this.colDefs[i] ); } } return colDefs; }, _getColDefsByGradingPeriodId: function( gradingPeriodIds ) { var colDefs =3D new Array(); for (var i =3D 0, len =3D this.colDefs.length; i < len; i++){ if (gradingPeriodIds.indexOf( this.colDefs[i].gpid ) !=3D -1){=09 colDefs.push( this.colDefs[i] ); } } return colDefs; }, _getRowsByUserIds: function( userIds ) { var rows =3D this.rows; if (userIds =3D=3D null){ return rows; } var retRows =3D new Array(); for (var i =3D 0, len =3D rows.length; i < len; i++){ if (userIds.indexOf(rows[i][0].getUserId()) !=3D -1){ retRows.push(rows[i]); } } return retRows; }, _getUserIdsByGroupIds: function( groupIds ) { if ( !this.groupsMap || !this.groups ){ GradebookUtil.error('GridModel error getUserIdsByGroupIds: no = groups'); return null; } var userIds =3D new Array(); for (var i =3D 0; i < groupIds.length; i++){ var index =3D this.groupsMap[Number(groupIds[i])]; if (index =3D=3D undefined){ GradebookUtil.error('GridModel error getUserIdsByGroupIds: no group = for id: '+groupIds[i]); continue; } var group =3D this.groups[index]; for (var g =3D 0; g < group.uids.length; g++){ if (userIds.indexOf(group.uids[g]) =3D=3D -1){ userIds.push( String( group.uids[g] ) ); } } } return userIds; }, // called by student stats page getStudentStats: function( userId, currentViewOnly ) { var studentStats =3D {}; studentStats.catStats =3D new Array(); var catMap =3D new Array(); =09 // get columns, either all or current view var colDefs =3D new Array(); var len =3D currentViewOnly ? this.colOrderMap.length : = this.colDefs.length; for (var i =3D 0; i < len; i++){ var idx =3D currentViewOnly ? this.colOrderMap[i] : i; var c =3D this.colDefs[idx]; if (!c.deleted && c.isGrade() && !c.isCalculated()) { colDefs.push( c ); } } var row =3D this.getRowByUserId(userId); =09 for (var i =3D 0; i < colDefs.length; i++){ var colDef =3D colDefs[i]; var catId =3D colDef.getCategoryID(); var catStat =3D catMap[catId]; if (catStat =3D=3D null){ catStat =3D {}; catStat.name =3D colDef.getCategory(); catStat.qtyGraded =3D 0; catStat.qtyInProgress =3D 0; catStat.qtyNeedsGrading =3D 0; catStat.qtyExempt =3D 0; catStat.sum =3D 0; catStat.avg =3D 0; catMap[catId] =3D catStat; studentStats.catStats.push( catStat ); } var grade =3D this._getGrade( row, colDef); var val =3D grade.getSortValue(); var isNull =3D (val =3D=3D '-'); var isIP =3D grade.attemptInProgress(); var isNG =3D grade.needsGrading(); var isExempt =3D grade.isExempt(); var isVal =3D (!isNull && !isIP && !isNG && !isExempt); if (isIP)=20 catStat.qtyInProgress++; else if (isNG)=20 catStat.qtyNeedsGrading++; else if (isExempt)=20 catStat.qtyExempt++; =09 if (isVal){ catStat.qtyGraded++; if (colDef.isCalculated()){ val =3D parseFloat(val)/parseFloat(grade.getPointsPossible()) * = 100.0;=09 } catStat.sum +=3D parseFloat( val ); } } studentStats.numItemsCompleted =3D 0; var totNumExempt =3D 0; for (var i =3D 0; i < studentStats.catStats.length; i++){ var catStat =3D studentStats.catStats[i]; if (catStat.sum > 0){ catStat.avg =3D catStat.sum/parseFloat( catStat.qtyGraded ); catStat.avg =3D NumberFormatter.getDisplayFloat( = catStat.avg.toFixed(2) ); } totNumExempt +=3D catStat.qtyExempt; studentStats.numItemsCompleted +=3D (catStat.qtyNeedsGrading + = catStat.qtyGraded); } studentStats.numItems =3D colDefs.length - totNumExempt; return studentStats; }, getAccessibleMode: function() { return this.accessibleMode; }, =09 setAccessibleMode: function( accessibleMode ) { this.accessibleMode =3D accessibleMode; }, =09 setLoggerDebugLevel: function(logger) { this.logger.setLevel(top.content.log4javascript.Level.DEBUG); }, setLogger: function(logger) { this.logger =3D logger; }, getLogger: function() { return this.logger; }, setMessages: function (messages) { this.messages =3D messages; }, getMessage: function (key) { if (this.messages){ return this.messages[key]; } else { return key; } } }; Gradebook.RowMetaData =3D Class.create(); Gradebook.RowMetaData.prototype =3D { initialize: function(userId) { this.userId =3D userId; this.isChecked =3D false; this.isHidden =3D false; this.comput_err =3D false; } }; //////////////////////////// Column Defs = ////////////////////////////////////// Gradebook.ColDef =3D Class.create(); Gradebook.ColDef.prototype =3D { initialize: function(jsonObj, model, schemaMap) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object if (this.sid){ this.primarySchema =3D schemaMap[this.sid]; } if (this.ssid){ this.secondarySchema =3D schemaMap[this.ssid]; } }, getSortFunction: function(sortColumn, sortdir, secondarySortColumn) { this.sortColumn =3D sortColumn; this.secondarySortColumn =3D secondarySortColumn; if (sortdir=3D=3D'ASC') return this._sortASC.bind(this); else return this._sortDESC.bind(this); }, validate: function(newValue, matchPartial) { if (!this.primarySchema){ return null; } else { return this.primarySchema.validate(newValue, matchPartial); } }, _sortASC: function(a,b) { var aa =3D a[this.sortColumn].getValue(); var bb =3D b[this.sortColumn].getValue(); if( !aa && !bb ) return this._secondarySortASC(a,b); if( !aa ) return -1; if( !bb ) return 1; aa =3D aa.toUpperCase(); bb =3D bb.toUpperCase(); if (aa=3D=3Dbb)return this._secondarySortASC(a,b); if (aa('+cellVal2+')'; } =20 return new String(cellVal); }, // called by GridCell.getAltValue to get alt (mouse over) value for = rendering in spreadsheet // same as getCellValue unless there is a secondary schema getAltValue: function( gridCell ){ if (gridCell.isExempt()) { return this.model.getMessage('cmExemptGrade'); } =09 if (!this.secondarySchema){ return this.getCellValue( gridCell ); } var cellVal =3D this.primarySchema.getCellValue( gridCell ); if (this.secondarySchema){ var cellVal2 =3D this.secondarySchema.getCellValue( gridCell ); cellVal +=3D ' ('+cellVal2+')'; } return new String(cellVal); }, getSortValue: function( gridCell ){ return gridCell.getValue(); }, getName: function() { return this.name; }, getID: function() { return this.id; }, getPoints: function() { if ( this.isCalculated() )=20 return GradebookUtil.getMessage( 'variesPerStudentMsg' ); else return this.points; }, getAliasID: function() { return this.id; }, getCategoryID: function() { return this.catid; }, getCategory: function() { if (! this.catid ) return ""; if (! this.model.catNameMap ) return ""; var name =3D this.model.catNameMap[ Number(this.catid) ]; if ( name ) return name; return ""; }, getCategoryAliasID: function() { return this.catid; }, isHidden: function() { return !this.gbvis; }, isScorable: function() { return this.scrble; }, isPublic: function() { return (this.id =3D=3D this.model.pubColID); }, isVisibleToStudents: function() { return this.vis; }, onHideColumn: function( evt ) { Event.stop( evt ); this.gbvis =3D false; this.model.hideColumn(this.id); }, onSortAscending: function ( evt ) { Event.stop( evt ); this.cellController.onSortAscending(); }, =20 onSortDescending: function ( evt ) { Event.stop( evt ); this.cellController.onSortDescending(); }, =20 onToggleColumnStudentVisibility : function( evt ){ Event.stop( evt ); this.model.setColumnStudentVisibility( this.id, !this.vis ); this.cellController.closePopupsAndRestoreFocus(evt); }, getDisplayType: function( ) { return this.primarySchema.type; }, hasError: function( ) { return this.comput_err; }, =09 // called by model.getDisplayValue when external pages need to convert = a rawValue // This function passes this.points to schema.getDisplayValue.=20 // This method should not be called for this colDef if this colDef is a = calculated=20 // column, because we do not have access to the gridCell to get its max = points. // todo: determine how to handle error condition if this column is a = calulated col getDisplayValue: function( rawValue ) { if (this.primarySchema){ return this.primarySchema.getDisplayValue( rawValue, this.points ); } else { return rawValue; } } }; Gradebook.GradeColDef =3D Class.create(); Object.extend(Gradebook.GradeColDef.prototype, = Gradebook.ColDef.prototype); Object.extend (Gradebook.GradeColDef.prototype, { =20 initialize: function(jsonObj, model, schemaMap) { Gradebook.ColDef.prototype.initialize.call(this,jsonObj, model, = schemaMap); }, getRawValue: function( newValue ){ var score =3D newValue; // compute score based on primary schema if (this.primarySchema){ var rawValue =3D this.primarySchema.getRawValue(newValue,this); score =3D parseFloat( rawValue ); if (!GradebookUtil.isValidFloat( rawValue )){ if (typeof(rawValue) =3D=3D "string") return rawValue; score =3D 0; } } return score; }, getSortValue: function( gridCell ){ if (this.primarySchema){ return this.primarySchema.getSortValue( gridCell ); } else { return gridCell.getValue(); } }, updateGrade: function( newValue, userId ){ var score =3D this.getRawValue(newValue); var textValue =3D newValue; this.model.updateGrade(score, textValue, userId, this.id); }, _sortASC: function(a,b) { var gradeA =3D a[this.sortColumn]; var gradeB =3D b[this.sortColumn]; var aa =3D gradeA.getSortValue(); var bb =3D gradeB.getSortValue(); if (gradeA.colDef.primarySchema instanceof Gradebook.TextSchema){ if (aa=3D=3Dbb) return this._secondarySortASC(a,b); if (aa 0){=20 var date =3D new Date(); date.setTime(this.due); dueDate =3D formatDate(date,'MMM d, y'); } return dueDate; }, =09 // called by item stats page getStats: function ( includeUnavailableStudents ) { var grades =3D this.model._getGradesForItemId(this.id, = includeUnavailableStudents); if (this.primarySchema instanceof Gradebook.TextSchema){ grades =3D new Array(); } =09 var values =3D new Array(); var sum =3D 0; var stats =3D {}; stats.count =3D 0; stats.minVal =3D null; stats.maxVal =3D null; stats.qtyNull =3D 0; stats.qtyInProgress =3D 0; stats.qtyNeedsGrading =3D 0; stats.qtyExempt =3D 0; =09 for (var i =3D 0; i < grades.length; i++){ var grade =3D grades[i]; var val =3D grade.getSortValue(); var isNull =3D (val =3D=3D '-'); var isIP =3D grade.attemptInProgress(); var isNG =3D grade.needsGrading(); var isExempt =3D grade.isExempt(); var isVal =3D (!isNull && !isIP && !isNG && !isExempt); if (isIP)=20 stats.qtyInProgress++; else if (isNG)=20 stats.qtyNeedsGrading++; else if (isExempt)=20 stats.qtyExempt++; else if (isNull)=20 stats.qtyNull++; =09 if (isVal){ if (this.isCalculated()){ val =3D (parseFloat(val)/parseFloat(grade.getPointsPossible()) * = 100.0);=09 } values.push( val ); sum +=3D parseFloat( val ); stats.minVal =3D (stats.minVal =3D=3D null) ? val : Math.min( val, = stats.minVal); stats.maxVal =3D (stats.maxVal =3D=3D null) ? val : Math.max( val, = stats.maxVal); } } stats.count =3D values.length; =09 if (values.length =3D=3D 0){ stats.avg =3D ''; stats.range =3D ''; stats.minVal =3D ''; stats.maxVal =3D ''; stats.median =3D ''; stats.variance =3D ''; stats.stdDev =3D ''; } else { stats.avg =3D sum/values.length; stats.range =3D stats.maxVal - stats.minVal; =09 values.sort( Gradebook.numberComparator ); if (values.length =3D=3D 1){ stats.median =3D values[0]; } else if (values.length % 2){ // number of values is odd, the median is the middle value stats.median =3D values[parseInt(values.length/2)]; } else { // number of values is even, the median is the average of the two = middle values stats.median =3D (values[values.length/2-1] + = values[values.length/2])/2; } stats.variance =3D this._computeVariance( values, stats.avg ); stats.stdDev =3D Math.sqrt( stats.variance ); stats.maxVal =3D this._formatFloat( stats.maxVal ); stats.minVal =3D this._formatFloat( stats.minVal ); stats.avg =3D this._formatFloat( stats.avg ); stats.range =3D this._formatFloat( stats.range ); stats.median =3D this._formatFloat( stats.median ); stats.variance =3D this._formatFloat( stats.variance ); stats.stdDev =3D this._formatFloat( stats.stdDev ); } stats.gradeDistribution =3D this.primarySchema.getGradeDistribution( = values, this.points, stats ); return stats; }, _formatFloat: function( f ) { try { if ( f !=3D null )=20 return NumberFormatter.getDisplayFloat( f.toFixed(2) ); } catch ( e ) { //ignore and return the current value=20 } return f; =09 }, _computeVariance: function( values, average ) { var sumXMeanSquare =3D 0; for (var i =3D 0; i < values.length; i++){ var xMean =3D values[i] - average; sumXMeanSquare +=3D (xMean * xMean); } return sumXMeanSquare / values.length; }, =09 getInfo: function() { var publicLabel; if (this.isPublic()) publicLabel =3D GradebookUtil.getMessage('isMsg'); else publicLabel =3D GradebookUtil.getMessage('isNotMsg'); var includedInCalculationsLabel; if (this.isScorable()) includedInCalculationsLabel =3D GradebookUtil.getMessage('yesMsg'); else includedInCalculationsLabel =3D GradebookUtil.getMessage('noMsg'); var points; if ( this.isCalculated() ) points =3D GradebookUtil.getMessage( 'variesPerStudentMsg' ); else points =3D NumberFormatter.getDisplayFloat( this.points ); var info =3D [ {id: "itemInfoId", value: this.getID()}, =20 {id: "itemInfoName", value: this.name}, {id: "itemInfoCategory", value: this.getCategory()}, {id: "itemInfoSchema", value: this.primarySchema.name}, {id: "itemInfoPoints", value: (points=3D=3D0?"-":points)}, {id: "itemInfoPublic", value: publicLabel}, {id: "itemInfoIncludedInCalculations", value: = includedInCalculationsLabel}, {id: "itemInfoDueDate", value: this.getDueDate()} ]; return info; } }); Gradebook.StudentAttributeColDef =3D Class.create(); Object.extend(Gradebook.StudentAttributeColDef.prototype, = Gradebook.ColDef.prototype); Object.extend (Gradebook.StudentAttributeColDef.prototype, { =20 initialize: function(jsonObj, model, schemaMap) { Gradebook.ColDef.prototype.initialize.call(this,jsonObj, model, = schemaMap); this.vis =3D true; }, isGrade: function() { return false; }, isCalculated: function() { return false; }, =09 isTotal: function() { return false; }, =09 isWeighted: function() { return false; }, =09 getType: function() { return "student"; }, =09 // called by GridCell.getCellValue to get value for rendering in = spreadsheet // format date for last access column, all other columns just return = gridcell value getCellValue: function( gridCell ){ var cellVal =3D gridCell.getValue(); if (this.id =3D=3D 'LA'){ // last accessed column var dueDate =3D ''; if (cellVal && cellVal > 0){=20 var date =3D new Date(); date.setTime(cellVal); cellVal =3D formatDate(date,'MMM d, y'); } } return cellVal; }, getRawValue: function( newValue ){ return newValue; }, updateUserVisibility: function ( userId, visible ) { this.model.updateUserVisibility( userId, visible ); }, =20 getContextMenuInfo: function(cellController) { this.cellController =3D cellController; var canHide =3D (this.model.colOrderMap[0] !=3D = this.model.colDefMap[this.id]); var menu =3D { id: "studentInfoHeaderCM", items: [ {id: "sih_sortAscending", visible:true, onclick: this.onSortAscending.bindAsEventListener(this)}, {id: "sih_sortDescending", visible:true, onclick: this.onSortDescending.bindAsEventListener(this)}, {id: "sih_hideColumn", visible:canHide, onclick: this.onHideColumn.bindAsEventListener(this), receipt: = 'hideColumnInlineMsg' } ]}; return menu; =09 } }); //////////////////////////// Grid Cells = ////////////////////////////////////// Gradebook.GridCell =3D Class.create(); Gradebook.GridCell.prototype =3D { =09 initialize: function(colDef, metaData) { this.colDef =3D colDef; this.metaData =3D metaData; this.v =3D "-"; this.canBeEdited =3D true; this.isBeingEdited =3D false; this.isUncommitted =3D false; if (this.colDef.id =3D=3D 'UN'){ this.metaData.userNameGridCell =3D this; } }, _loadFromJSON: function(jsonObj) { this.gc =3D null; // grade change flag this.ip =3D null; // in progress flag this.ng =3D null; // needs grading flag this.or =3D null; // override flag this.x =3D null; // exempt flag cleared if ( !(jsonObj.avail =3D=3D=3D undefined) ){ this.metaData.avail =3D jsonObj.avail; } Object.extend(this, jsonObj); // assign json properties to this object }, =09 getUserId: function() { return this.metaData.userId; }, getUserName: function() { return this.metaData.userNameGridCell.v; }, =09 isHidden: function() { return this.metaData.isHidden; }, =09 setHidden: function( h ) { this.metaData.isHidden =3D h; }, =09 isRowChecked: function() { return this.metaData.isChecked; }, =09 setRowChecked: function(c) { this.metaData.isChecked =3D c; }, =09 invertChecked: function() { this.metaData.isChecked =3D !this.metaData.isChecked; }, =09 isAvailable: function() { return this.metaData.avail; }, isGrade: function() { return (this.colDef.isGrade()); }, =09 isOverride: function() { return (this.or && this.or =3D=3D "y"); }, =09 needsGrading: function() { return (this.ng !=3D null && this.ng && this.ng =3D=3D "y"); }, =09 attemptInProgress: function() { return (this.ip !=3D null && this.ip && this.ip =3D=3D "y"); }, =09 isModified: function() { return (this.gc && this.gc =3D=3D "y"); }, isGraded: function() { var tv =3D this.getTextValue(); return (tv !=3D '-' && tv.length > 0); }, =09 isComplete: function() { if (this.colDef.primarySchema instanceof = Gradebook.CompleteIncompleteSchema){ return this.isGraded(); }else{ =09 return false; } }, isExempt: function() { return (this.x =3D=3D "y"); }, validate: function(newValue, matchPartial) { return this.colDef.validate(newValue, matchPartial); }, =09 update: function(newValue) { this.isUncommitted =3D true; this.gc =3D "y"; this.colDef.updateGrade( newValue, this.getUserId() ); }, // called by CellController.renderHTML to get value for spreadsheet getCellValue: function() { return this.colDef.getCellValue( this ); }, // called by GridCell.getAltValue to get alt (mouse over) value for = rendering in spreadsheet getAltValue: function(){ if ( this.isGrade() && !this.isGraded() ) return = GradebookUtil.getMessage('noGradeMsg'); return this.colDef.getAltValue( this ); }, // called by CellController.startEdit to get input value for editing getEditValue: function() { return this.colDef.getEditValue( this ); }, getSortValue: function() { return this.colDef.getSortValue( this ); }, getPointsPossible: function() { if (this.mp){ return this.mp; } else if (this.colDef.points){ return this.colDef.points; } else { return 0; } }, getTextValue: function() { if (this.tv) { return this.tv; } else { return '-'; } }, getValue: function() { return this.v; } };=09 Gradebook.Grade =3D Class.create(); Object.extend(Gradebook.Grade.prototype, Gradebook.GridCell.prototype); Object.extend (Gradebook.Grade.prototype, { =20 initialize: function(colDef, metaData) { Gradebook.GridCell.prototype.initialize.call(this,colDef, metaData); }, =09 canEdit: function(){ return (!this.colDef.isCalculated() && = !this.colDef.isHideAttemptScore()&& !this.savingDiv); }, showGradeDetails: function( evt ){ Event.stop( evt ); this.colDef.showGradeDetails( this.getUserId() ); }, =09 onAddComment: function(evt){ this.cellController.addGradeComment(evt, this); this.colDef.onAddComment( this.getUserId() ); }, =09 exemptGrade: function(evt){ Event.stop( evt ); this.cellController.stopEdit(false, true); this.colDef.exemptGrade( this.getUserId(), this ); this.cellController.closePopupsAndRestoreFocus(evt) }, =09 clearExemption: function(evt){ Event.stop( evt ); this.colDef.clearExemption( this.getUserId() ); this.cellController.closePopupsAndRestoreFocus(evt); }, onClearModified: function( evt ){ Event.stop( evt ); this.clearModifiedIndicator( ); this.colDef.clearModifiedIndicator( this.getUserId() ); this.cellController.closePopupsAndRestoreFocus(evt); }, =09 clearModifiedIndicator: function(){ this.gc =3D null; if (this.cellController){ this.cellController.renderHTML(this); } }, =09 setComments: function(studentComments, instructorComments){ this.colDef.setComments( this.getUserId(), studentComments, = instructorComments ); }, =09 getContextMenuInfo: function(cellController) { if (this.colDef.isCalculated()){ return null; } this.cellController =3D cellController; // Can add comments for non-null manual column grades &=20 // system column grades that have been overridden var isManual =3D this.colDef.isManual(); var isExempt =3D this.isExempt(); var canAddComment =3D (isManual && this.v !=3D '-') || (!isManual && = this.isOverride()) || isExempt; var menu =3D { id: "gradeCM", items: [ {id: "g_360View", visible:true, onclick: this.showGradeDetails.bindAsEventListener(this)}, {id: "g_addComment", visible: canAddComment, onclick: this.onAddComment.bindAsEventListener(this)}, {id: "g_clearModified", visible:(this.isModified()), onclick: this.onClearModified.bindAsEventListener(this)}, {id: "g_exemptGrade", visible: !isExempt, onclick: this.exemptGrade.bindAsEventListener(this)}, {id: "g_clearExemption", visible: isExempt, onclick: this.clearExemption.bindAsEventListener(this)} ]}; return menu; =09 } }); Gradebook.StudentAttribute =3D Class.create(); Object.extend(Gradebook.StudentAttribute.prototype, = Gradebook.GridCell.prototype); Object.extend (Gradebook.StudentAttribute.prototype, { =20 initialize: function(colDef, metaData) { Gradebook.GridCell.prototype.initialize.call(this,colDef, metaData); }, =09 onSendEmail: function( evt ){ Event.stop( evt ); var ids =3D new Array() ids[0] =3D this.getUserId(); this.cellController.sendEmail('S',ids); }, =09 onShowUser: function( evt ){ Event.stop( evt ); this.colDef.updateUserVisibility( this.getUserId(), true ); }, =09 onHideOtherStudents: function( evt ){ Event.stop( evt ); this.colDef.model.viewSingleStudentGrades( this.getUserId() ); }, =09 onShowAllRows: function( evt ){ Event.stop( evt ); this.colDef.model.restoreFromSingleStudentView(); }, =09 onStudentStats: function( evt ){ Event.stop( evt ); this.colDef.model.viewStudentStats( this.getUserId() ); }, =09 onHideUser: function( evt ){ Event.stop( evt ); this.colDef.updateUserVisibility( this.getUserId(), false ); }, =09 onAdaptiveReleaseUser: function( evt ){ Event.stop( evt ); this.colDef.model.viewAdaptiveRelease( this.getUserName() ); }, =09 canEdit: function(){ return false; }, =09 getContextMenuInfo: function(cellController) { this.cellController =3D cellController; var menu =3D { id: "studentInfoCM", items: [ {id: "si_studentHideOtherStudents", = visible:this.colDef.model.isolatedStudentId?false:true, onclick: this.onHideOtherStudents.bindAsEventListener(this)}, {id: "si_showAllRows", = visible:this.colDef.model.isolatedStudentId?true:false, onclick: this.onShowAllRows.bindAsEventListener(this)}, {id: "si_studentStats", visible:true, onclick: this.onStudentStats.bindAsEventListener(this)}, {id: "si_adaptiveReleaseColumn", visible:true, onclick: this.onAdaptiveReleaseUser.bindAsEventListener(this)}, {id: "si_sendEmail", visible:true, onclick: this.onSendEmail.bindAsEventListener(this)}, {id: "si_hideUser", visible:!this.isHidden(), onclick: this.onHideUser.bindAsEventListener(this), receipt: 'hideStudentInlineMsg'}, {id: "si_showUser", visible:this.isHidden(), onclick: this.onShowUser.bindAsEventListener(this)} ]}; return menu; =09 } }); //////////////////////////// Schemas = ////////////////////////////////////// Gradebook.NumericSchema =3D Class.create(); Gradebook.NumericSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 getGradeDistribution: function( grades, points, stats ){ return Gradebook.PercentageSchema.prototype.getGradeDistribution( = grades, points, stats ); }, =09 // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getValue(), = gridCell.getPointsPossible());=09 }, =09 // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, getSortValue: function( gridCell ){ return gridCell.getValue();=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (rawValue =3D=3D '-' || rawValue.length =3D=3D 0){ return rawValue; } return NumberFormatter.getDisplayFloat( = parseFloat(rawValue).toFixed(2) ) }, getRawValue: function(displayValue,colDef) { return NumberFormatter.getDotFloat( displayValue ); }, validate: function(newValue, matchPartial) { if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; var val =3D NumberFormatter.getDotFloat( newValue ); if (!GradebookUtil.isValidFloat( val )){ return GradebookUtil.getMessage('invalidNumberErrorMsg'); } val =3D ''+val; var idx =3D val.indexOf('.'); if (idx > -1 && (val.length - idx - 1) > 4) return GradebookUtil.getMessage('tooManyDecimalPlacesErrorMsg'); else { return null; } } }; Gradebook.TextSchema =3D Class.create(); Gradebook.TextSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, getGradeDistribution: function( grades, points, stats ){ return null; }, =09 // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getTextValue(), = gridCell.getPointsPossible());=09 }, getSortValue: function( gridCell ){ var tv =3D gridCell.getTextValue().toUpperCase(); //if (tv =3D=3D '-') tv =3D ''; return tv;=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ return rawValue;=09 }, getRawValue: function(displayValue,colDef) { return displayValue; }, validate: function(newValue, matchPartial) { // is any value bad? return null; } }; Gradebook.PercentageSchema =3D Class.create(); Gradebook.PercentageSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 // called by ColDef.getStats=20 getGradeDistribution: function( grades, points, stats ){ var dist =3D new Array(); var range =3D new Array(); range.count =3D 0; range.text =3D 'less than 0'; dist.push( range ); for (var i =3D 0; i < 10; i++){ range =3D new Array(); range.count =3D 0; range.low =3D (i * 10); range.high =3D (i * 10) + ((i < 9)?9:10); range.text =3D range.low + ' - ' + range.high; dist.push( range ); } var range =3D new Array(); range.count =3D 0; range.text =3D 'greater than 100'; dist.push( range ); for (var i =3D 0, len =3D grades.length; i < len; i++){ var percent =3D (points)?(parseFloat(grades[i])/parseFloat(points) * = 100.0) : parseFloat(grades[i]);=09 if (percent =3D=3D 100) percent -=3D 0.1; // 100 should fall into = 90-100 bin var index =3D parseInt(percent/10.0) + 1; if (percent < 0) index =3D 0; if (percent > 100) index =3D 11; dist[index].count++; } dist.reverse(); return dist; }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getValue(), = gridCell.getPointsPossible());=09 }, // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, getSortValue: function( gridCell ){ return gridCell.getValue();=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (parseFloat(points) =3D=3D 0.0 || rawValue =3D=3D '-' || = rawValue.length =3D=3D 0){ return rawValue; } var percent =3D parseFloat(rawValue)/parseFloat(points) * 100.0;=09 return NumberFormatter.getDisplayFloat( parseFloat(percent).toFixed(2) = )+'%';=09 }, getRawValue: function(displayValue,colDef) { var points =3D (colDef.points)?colDef.points:100; displayValue =3D displayValue.replace('%',''); displayValue =3D NumberFormatter.getDotFloat( displayValue ); return parseFloat(displayValue)/100.0 * parseFloat(points);=09 }, validate: function(newValue, matchPartial) { newValue =3D newValue.replace('%',''); if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; var val =3D NumberFormatter.getDotFloat( newValue ); if (!GradebookUtil.isValidFloat( val )){ return GradebookUtil.getMessage('invalidNumberErrorMsg'); } val =3D ''+val; var idx =3D val.indexOf('.'); if (idx > -1 && (val.length - idx - 1) > 4) return GradebookUtil.getMessage('tooManyDecimalPlacesErrorMsg'); else { return null; } } }; Gradebook.CompleteIncompleteSchema =3D Class.create(); Gradebook.CompleteIncompleteSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 // called by ColDef.getStats=20 getGradeDistribution: function( grades, points, stats ){ var dist =3D new Array(); var range =3D new Array(); range.count =3D stats.qtyNull; range.text =3D 'Incomplete'; dist.push( range ); range =3D new Array(); range.count =3D grades.length; range.text =3D 'Complete'; dist.push( range ); dist.reverse(); return dist; }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getTextValue(), = gridCell.getPointsPossible());=09 }, // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return gridCell.getValue(); }, getSortValue: function( gridCell ){ var tv =3D gridCell.getTextValue().toUpperCase(); if (tv =3D=3D '-'){ return '-'; } else { return gridCell.getValue(); } }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (rawValue !=3D '-' && rawValue.length > 0){ return ''; } else { return '-'; } }, getRawValue: function(displayValue,colDef) { return displayValue; }, validate: function(newValue, matchPartial) { if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; // todo: determine what is allowed. I.E. is "-" allowed? // allow empty string or number // return (newValue.length =3D=3D 0 || parseFloat(newValue)); if (!GradebookUtil.isValidFloat(newValue)){ return GradebookUtil.getMessage('invalidNumberErrorMsg'); } else { return null; } } }; Gradebook.LetterSchema =3D Class.create(); Gradebook.LetterSchema.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =09 // called by ColDef.getStats=20 getGradeDistribution: function( grades, points, stats ){ var dist =3D new Array(); var symMap =3D new Array(); this.symbols.each(function(s) { var range =3D new Array(); range.count =3D 0; range.text =3D s.sym; symMap[s.sym] =3D dist.length; dist.push( range ); }); for (var i =3D 0, len =3D grades.length; i < len; i++){ var val =3D this.getDisplayValue(grades[i], points);=09 var index =3D symMap[val]; if (index !=3D undefined){ dist[index].count++; } } return dist; }, // called by ColDef.getCellValue to get value for spreadsheet getCellValue: function( gridCell ){ return this.getDisplayValue(gridCell.getValue(), = gridCell.getPointsPossible());=09 }, // this is the value that appears in the input box when editing getEditValue: function( gridCell ){ return this.getCellValue( gridCell );=09 }, getSortValue: function( gridCell ){ return gridCell.getValue();=09 }, // called by: this.getCellValue to get value for spreadsheet or // by colDef.getDisplayValue when external pages need to convert a = rawValue getDisplayValue: function( rawValue, points ){ if (parseFloat(points) =3D=3D 0.0 || rawValue =3D=3D '-' || = rawValue.length =3D=3D 0){ return rawValue; } var percent =3D parseFloat(rawValue)/parseFloat(points) * 100.0;=09 percent =3D percent.toFixed(2);=09 if (!parseFloat(percent) && percent !=3D 0){ // see if raw value is one of the symbols var matchingSymbol; rawValue =3D rawValue.toUpperCase(); this.symbols.each(function(s) { if (rawValue =3D=3D s.sym.toUpperCase()){ matchingSymbol =3D s.sym; throw $break; // needed to get out of each loop } }); if (matchingSymbol){ return matchingSymbol; } else { return rawValue; } } var retVal =3D rawValue; this.symbols.each(function(s) { if (percent >=3D s.lb && percent <=3D s.ub){ retVal =3D s.sym; throw $break; // needed to get out of each loop } }); return retVal; }, getRawValue: function(displayValue,colDef) { //What it SHOULD be doing is: //Column created with Letter as primary display and secondary display of = % - worth 10 points //Enter A - go to schema and determine that A =3D 95% use 95% to = determine score of 9.5 - store 9.5 and display A //Enter 9 - determine the 9 is 90% (item is out of 10) 90% is an A - = store 9 and display A=20 var points =3D (colDef.points)?colDef.points:100; displayValue =3D ''+displayValue; displayValue =3D displayValue.replace('%',''); var score =3D displayValue.toUpperCase(); var score; this.symbols.each(function(s) { if (score =3D=3D s.sym.toUpperCase()){ score =3D (parseFloat(s.abs)/100.0) * points; throw $break; // needed to get out of each loop } }); return score; }, validate: function(newValue, matchPartial) { if (newValue =3D=3D "" || newValue =3D=3D "0" || newValue =3D=3D "-") = return null; // allow numeric value for letter schemas too if (GradebookUtil.isValidFloat(newValue)){ return null; } var retVal =3D GradebookUtil.getMessage('invalidLetterErrorMsg'); newValue =3D newValue.toUpperCase(); this.symbols.each(function(s) { if (newValue =3D=3D s.sym.toUpperCase() ||=20 (matchPartial && s.sym.toUpperCase().startsWith(newValue)) ){ retVal =3D null; throw $break; // needed to get out of each loop } }); return retVal; } }; //////////////////////////// Custom View = ////////////////////////////////////// Gradebook.CustomView =3D Class.create(); Gradebook.CustomView.prototype =3D { initialize: function(jsonObj, model) { this.model =3D model; Object.extend(this, jsonObj); // assign json properties to this object }, =20 // evaluate this custom view; determine userIds & itemIds for view // returns false if the formula cannot be evaluated, else true evaluate: function( ) { try { if ( this.definition ) { var ext =3D eval('({'+ this.definition+'})' ); Object.extend( this, ext ); this.definition =3D null; } this.userIds =3D new Array(); this.colIds =3D new Array(); this.aliasMap =3D new Array(); for (var i =3D 0, len =3D this.aliases.length; i < len; i++){ this.aliasMap[this.aliases[i].key] =3D this.aliases[i].val; } if (this.formula){ this._evaluateAdvanced(); } else { this._evaluateBasic(); } this._computeDisplayItems(); return true; } catch (e) { alert(this.model.getMessage('custViewRenderErrorMsg')); return false; } }, usesGroups: function( ) { for (var i =3D 0, len =3D this.aliases.length; i < len; i++){ if (this.aliases[i].key.startsWith('gr')){ return true; } } return false; }, getUserIds: function() { return this.userIds; }, getDisplayItemIds: function() { return this.colIds; }, _computeDisplayItems: function() { // map aliased ids to real ids if (this.display.ids){ this.display.unAliasedIds =3D new Array(); for (var i =3D 0, len =3D this.display.ids.length; i < len; i++){ var id =3D this.aliasMap[this.display.ids[i]];=09 if (id =3D=3D undefined) throw 'missing alias'; this.display.unAliasedIds.push( id ); } } var colDefs =3D this.model.getColDefs( false, this.display.showhidden = ); var dispType =3D this.display.items.toUpperCase(); if (dispType =3D=3D "BYITEM"){=20 this.colIds =3D this._getItemsById(); } else if (dispType =3D=3D "INCRI"){ // in criteria this.colIds =3D this._getItemsInCriteria(); } else if (dispType =3D=3D "BYCAT"){ // by category this.colIds =3D this._getItemsByCategoryId( colDefs ); } else if (dispType =3D=3D "BYGP"){ // by grading period this.colIds =3D this._getItemsByGradingPeriodId( colDefs ); } else if (dispType =3D=3D "ALLITEM"){ this.colIds =3D this._getAllItems( colDefs ); } else if (dispType =3D=3D "IVS"){ this.colIds =3D this._getItemsByVisibilityToStudents( colDefs, true = ); } else if (dispType =3D=3D "INVS"){ this.colIds =3D this._getItemsByVisibilityToStudents( colDefs, false = ); } else if (dispType =3D=3D "NOITEM"){=20 this.colIds =3D new Array() } }, _getItemsById: function() { return this.display.unAliasedIds;=09 }, _getItemsInCriteria: function() { var itemIds =3D new Array(); // get items that are used in criteria; which are in aliases for (var i =3D 0, len =3D this.aliases.length; i < len; i++){ if (this.aliases[i].key.startsWith('I_')){ itemIds.push( this.aliases[i].val ); } } return itemIds; }, _getItemsByCategoryId: function( colDefs ) { var itemIds =3D new Array(); // get items that have category id in display.ids for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if (this.display.unAliasedIds.indexOf( colDefs[i].catid ) !=3D -1){=09 itemIds.push( colDefs[i].id ); } } return itemIds; }, _getItemsByGradingPeriodId: function( colDefs ) { var itemIds =3D new Array(); // get items that have grading period id in display.ids for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if (this.display.unAliasedIds.indexOf( colDefs[i].gpid ) !=3D -1){=09 itemIds.push( colDefs[i].id ); } } return itemIds; }, _getItemsByVisibilityToStudents: function( colDefs, vis ) { var itemIds =3D new Array(); // get items that have grading period id in display.ids for (var i =3D 0, len =3D colDefs.length; i < len; i++){ if ( colDefs[i].vis =3D=3D vis ){=09 itemIds.push( colDefs[i].id ); } } return itemIds; }, _getAllItems: function( colDefs ) { var itemIds =3D new Array(); for (var i =3D 0, len =3D colDefs.length; i < len; i++){ itemIds.push( colDefs[i].id ); } return itemIds; }, _evaluateBasic: function() { if ( this.students.userIds && this.students.userIds[0] !=3D "all") { var uids =3D this.students.userIds; for (var i =3D 0, len =3D uids.length; i < len; i++){ var id =3D this.aliasMap[uids[i]]; if (id =3D=3D undefined) throw 'missing alias' this.userIds.push( id ); } } else { // all students var showstuhidden =3D this.students.showstuhidden; var modelStudents =3D this.model.getStudents( showstuhidden ); for (var i =3D 0, len =3D modelStudents.length; i < len; i++){ this.userIds.push( modelStudents[i].id ); } } }, _evaluateAdvanced: function() { // lazily compute postfix formula & criteriaMap if (!this.postFixFormula){ this.postFixFormula =3D this.infix2postfix( this.formula ); } if (!this.criteriaMap){ this.criteriaMap =3D new Array(); for (var i =3D 0, len =3D this.criteria.length; i < len; i++){ this.criteriaMap[this.criteria[i].fid] =3D i; } } // test each row and add to userIds if it passes formula var rows =3D this.model.rows; for (var i =3D 0, len =3D rows.length; i < len; i++){ if ( this._evaluateFormulaForRow( rows[i] ) ){ this.userIds.push( rows[i][0].getUserId() ); } } }, _evaluateFormulaForRow: function( row )=20 { // only one criteria in formula if (this.postFixFormula.length =3D=3D 1){ return this._evalCriteria( this.postFixFormula[0], row ); } // evaluate postfix formula: // * push non-operators on stack // * when operators are encountered: // pop two operands off stack // evaluate operands (criteria) // apply operator to the two evaluated operands // store result on stack // * pop & return final result var stack =3D new Array(); for (var i =3D 0, len =3D this.postFixFormula.length; i < len; i++){ var tok =3D this.postFixFormula[i]; switch (tok){ case "AND":=20 case "OR":=20 if (stack.length < 2) throw (this.model.getMessage('custViewStackEmptyMsg') + tok); var op2 =3D stack.pop(); var op1 =3D stack.pop(); var firstValue =3D op1 ; if ( typeof(op1) =3D=3D 'string' ) firstValue =3D = this._evalCriteria( op1, row ); var secondValue =3D op2;=20 if ( typeof(op2) =3D=3D 'string' ) secondValue =3D = this._evalCriteria( op2, row ); if (tok =3D=3D "AND")=20 stack.push( ( firstValue && secondValue) ); else if (tok =3D=3D "OR") stack.push( (firstValue || secondValue) ); break; default: stack.push(tok);=20 break; } } if (stack.length !=3D 1) throw this.model.getMessage('custViewUnableToEvaluateMsg'); else return stack.pop(); }, _getAliasOrId: function( id ) { if ( id.startsWith('I_') || id.startsWith('c_') || = id.startsWith('gp_')=20 || id.startsWith('gr_') || id.startsWith('st_') ){ return this.aliasMap[id];=09 } else { return id; } =09 }, _evalCriteria: function( fid, row )=20 { // look up criteria by fid var crit =3D this.criteria[ this.criteriaMap[fid] ];=09 var colId =3D this._getAliasOrId( crit.cid );=09 if (colId =3D=3D undefined){ throw 'missing alias' } var colDefMap =3D this.model.colDefMap; var colIdx =3D colDefMap[colId]; if ( colId =3D=3D 'SV' || colId =3D=3D 'GM') colIdx =3D 0; if (colIdx =3D=3D undefined) { throw 'missing alias' } var gridCell =3D row[colIdx]; var evalFunc =3D this._getEvalCriteriaFunc( crit ); return evalFunc( crit, gridCell ); }, _evalAvailableCriteria: function( crit, gridCell )=20 { var avail =3D (gridCell.isAvailable())?"A":"U"; return crit.value =3D=3D avail;=09 }, _evalStatusCriteria: function( crit, gridCell )=20 { if (crit.value =3D=3D 'IP') return gridCell.attemptInProgress(); else if (crit.value =3D=3D 'NG') return gridCell.needsGrading(); else if (crit.value =3D=3D 'NU') return gridCell.getSortValue() =3D=3D '-'; else if (crit.value =3D=3D 'X') return gridCell.isExempt(); }, _evalStudentVisibleCriteria: function( crit, gridCell )=20 { var avail =3D (gridCell.isHidden())?"H":"V"; return crit.value =3D=3D avail;=09 }, _evalGroupMembershipCriteria: function( crit, gridCell )=20 { // There may be 1 or more values passed. We allow multiple selection = of Groups var result =3D (crit.cond =3D=3D "eq") ? false : true; var groupNames =3D crit.value.split(","); for (var i =3D 0, len =3D groupNames.length; i < len; i++) { var groupId =3D this.aliasMap[groupNames[i]]; if (groupId =3D=3D undefined) throw 'missing alias' var userId =3D gridCell.getUserId(); var inGroup =3D this._userIsInGroup( userId, groupId ); result =3D ( (crit.cond =3D=3D "eq") ? result || inGroup : result && = !inGroup ) ; } return result; }, _evalLastAccessedCriteria: function( crit, gridCell )=20 { var cellVal =3D gridCell.getSortValue(); if (crit.cond =3D=3D "eq"){ var numMSecPerDay =3D 1000*60*60*24; var v1 =3D parseInt(cellVal/numMSecPerDay); var v2 =3D parseInt(crit.value/numMSecPerDay); return (v1 =3D=3D v2); } else if (crit.cond =3D=3D "be") return (cellVal < crit.value); else if (crit.cond =3D=3D "af") return (cellVal > crit.value); }, _defaultEvalCriteria: function( crit, gridCell )=20 { var cellVal =3D gridCell.getSortValue(); if (gridCell.attemptInProgress() || gridCell.needsGrading() || = (cellVal =3D=3D '-') || gridCell.isExempt()) { return false; } var operator =3D crit.cond; var critVal =3D gridCell.colDef.getRawValue( crit.value ); if (this._isNumber(cellVal) && this._isNumber(critVal)) { var dblCellVal =3D this._toNumber(cellVal); var dblCritVal =3D this._toNumber(critVal); var dblCritVal2 =3D (crit.value2 !=3D = undefined)?this._toNumber(gridCell.colDef.getRawValue( crit.value2 )):0; if (operator =3D=3D "eq") return (dblCellVal =3D=3D dblCritVal); else if (operator =3D=3D "neq") return (dblCellVal !=3D dblCritVal); else if (operator =3D=3D "gt") return (dblCellVal > dblCritVal); else if (operator =3D=3D "lt") return (dblCellVal < dblCritVal); else if (operator =3D=3D "le") return (dblCellVal <=3D dblCritVal); else if (operator =3D=3D "ge") return (dblCellVal >=3D dblCritVal); else if (operator =3D=3D "bet") return ((dblCritVal <=3D dblCellVal) && (dblCellVal <=3D = dblCritVal2)) ; } else if (typeof(cellVal) =3D=3D "string" && typeof(critVal) = =3D=3D "string") { cellVal =3D cellVal.toUpperCase(); critVal =3D critVal.toUpperCase(); if (operator =3D=3D "eq") return (cellVal =3D=3D critVal); else if (operator =3D=3D "neq") return (cellVal !=3D critVal); else if (operator =3D=3D "bw") return (cellVal.startsWith( critVal )); else if (operator =3D=3D "con") return (cellVal.indexOf( critVal ) !=3D -1 ); } else throw (this.model.getMessage('custViewDataTypeMismatchMsg')+' = '+crit.fid); }, _getEvalCriteriaFunc: function( crit )=20 { if (!this.evalCriteriaFuncMap) { this.evalCriteriaFuncMap =3D new Array(); this.evalCriteriaFuncMap["AV"] =3D = this._evalAvailableCriteria.bind(this); this.evalCriteriaFuncMap["SV"] =3D = this._evalStudentVisibleCriteria.bind(this); this.evalCriteriaFuncMap["LA"] =3D = this._evalLastAccessedCriteria.bind(this); this.evalCriteriaFuncMap["GM"] =3D = this._evalGroupMembershipCriteria.bind(this); } var func =3D this.evalCriteriaFuncMap[crit.cid]; if (!func)=20 { if (crit.cond =3D=3D 'se') { func =3D this._evalStatusCriteria.bind(this); } else { func =3D this._defaultEvalCriteria.bind(this); } } return func;=09 }, _userIsInGroup: function( userId, groupId )=20 { userId =3D Number( userId ); var groups =3D this.model.groups; for (var i =3D 0, len =3D groups.length; i < len; i++){ if ( groups[i].id =3D=3D groupId ){ return (groups[i].uids.indexOf( userId ) !=3D -1); } } return false; }, getValidationError: function( f , criteriaLst )=20 { try=20 { var postFix =3D this.infix2postfix( f,criteriaLst ); return null; }=20 catch (e) { return e; } }, infix2postfix: function( formula,criteriaLst )=20 { var f =3D formula; f =3D f.gsub( /\(/,' ( '); // add spaces around parens f =3D f.gsub( /\)/,' ) '); // add spaces around parens var a =3D $w(f); // split into array var stack =3D new Array(); var out =3D new Array(); for (var i =3D 0, len =3D a.length; i < len; i++){ var tok =3D a[i].toUpperCase(); switch (tok){ case "AND":=20 case "OR":=20 while( this._isOperator(stack[stack.length-1]) ){ out.push(stack.pop());=20 } stack.push(tok.toUpperCase());=20 break; case "(":=20 stack.push(tok);=20 break; case ")":=20 foundStart =3D false; while(stack.length > 0){ tok =3D stack.pop();=20 if ( tok =3D=3D "(" ){ foundStart =3D true; break; } else { out.push(tok);=20 } } if (stack.length =3D=3D 0 && !foundStart) throw (this.model.getMessage('custViewMismatchedParensMsg')+' = '+this.name); break; default: if ( criteriaLst && criteriaLst.indexOf(tok) =3D=3D -1 )=20 throw this.model.getMessage('criteriaNotFoundMsg'); out.push(tok);=20 break; } } while(stack.length > 0){ tok =3D stack.pop(); if (tok =3D=3D '(') throw (this.model.getMessage('custViewMismatchedParensMsg')+' = '+this.name); out.push(tok);=20 } return out; }, =09 _isOperator: function(s) { return (s=3D=3D'OR' || s=3D=3D'AND'); }, _isNumber: function( s ) { return (isNaN( new Number(s) ) ? false : = true); }, _toNumber: function( s )=20 { if (typeof(s) =3D=3D "number") return s; else { var n =3D new Number(s); return n.valueOf(); } } }; //////////////////////////// Utility = ////////////////////////////////////// Gradebook.GridRowIterator =3D Class.create(); Gradebook.GridRowIterator.prototype =3D { initialize: function(dataArray, orderMap, startIndex) { this.dataArray =3D dataArray; this.orderMap =3D orderMap; this.currentIndex =3D startIndex; }, hasNext: function() {return this.currentIndex < this.orderMap.length;}, next: function() { if (this.currentIndex >=3D this.orderMap.length) { GradebookUtil.error('GridRowIterator out of data. length =3D = '+this.orderMap.length); return null; } return this.dataArray[this.orderMap[this.currentIndex++]]; } }; Gradebook.numberComparator =3D function( a, b ) { return a - b; } var NumberFormatter =3D { =20 // usually called from frameset scope and re-set when grid is = initialized with grid page LOCALE SETTINGS needToConvert: ( ( window.LOCALE_SETTINGS ) ? = LOCALE_SETTINGS.getString('number_format.decimal_point') =3D=3D ',' : = page.bundle.getString('number_format.decimal_point') =3D=3D ','), =20 getDisplayFloat: function ( f ) { if (!NumberFormatter.needToConvert) return f; f =3D ''+f; return f.replace('.',','); }, getDotFloat: function ( f ) { if (!NumberFormatter.needToConvert) return f; f =3D ''+f; return f.replace(',','.'); } }; ------=_NextPart_000_0000_01CA341B.AF3F6810--
Herodotus
[Note: you might find it helpful to consult the = maps on=20 Mesopotamia and Egypt under Course = Documents as you=20 read Herodotus.]
On Babylon and = Mesopotamia:
[1.178] Assyria possesses a vast number of great = cities,=20 whereof the most renowned and strongest at this time was Babylon, whither, after the fall of Nineveh, the = seat of=20 government had been removed. The following is a description of the = place:- The=20 city stands on a broad plain, and is an exact square, a hundred and = twenty=20 furlongs in length each way, so that the entire circuit is four hundred = and=20 eighty furlongs. While such is its size, in magnificence there is no = other city=20 that approaches to it. It is surrounded, in the first place, by a broad = and deep=20 moat, full of water, behind which rises a wall fifty royal cubits in = width, and=20 two hundred in height. (The royal cubit is longer by three fingers' = breadth than=20 the common cubit.)
[1.179] And here I may not omit to tell the use to = which the=20 mould dug out of the great moat was turned, nor the manner wherein the = wall was=20 wrought. As fast as they dug the moat the soil which they got from the = cutting=20 was made into bricks, and when a sufficient number were completed they = baked the=20 bricks in kilns. Then they set to building, and began with bricking the = borders=20 of the moat, after which they proceeded to construct the wall itself, = using=20 throughout for their cement hot bitumen, and interposing a layer of = wattled=20 reeds at every thirtieth course of the bricks. On the top, along the = edges of=20 the wall, they constructed buildings of a single chamber facing one = another,=20 leaving between them room for a four-horse chariot to turn. In the = circuit of=20 the wall are a hundred gates, all of brass, with brazen lintels and = side-posts.=20 The bitumen used in the work was brought to Babylon from the Is, a small = stream=20 which flows into the Euphrates at the point where the city of the same = name=20 stands, eight days' journey from Babylon. Lumps of bitumen are found in = great=20 abundance in this river.
[1.180] The city is divided into two portions by = the river=20 which runs through the midst of it. This river is the Euphrates, a = broad, deep,=20 swift stream, which rises in Armenia, and empties itself = into the=20 Erythraean sea. The city wall is brought down on both sides to the edge = of the=20 stream: thence, from the corners of the wall, there is carried along = each bank=20 of the river a fence of burnt bricks. The houses are mostly three and = four=20 stories high; the streets all run in straight lines, not only those = parallel to=20 the river, but also the cross streets which lead down to the water-side. = At the=20 river end of these cross streets are low gates in the fence that skirts = the=20 stream, which are, like the great gates in the outer wall, of brass, and = open on=20 the water.
[1.181] The outer wall is the main defence of the = city. There=20 is, however, a second inner wall, of less thickness than the first, but = very=20 little inferior to it in strength. The centre of each division of the = town was=20 occupied by a fortress. In the one stood the palace of the kings, = surrounded by=20 a wall of great strength and size: in the other was the sacred precinct = of=20 Jupiter Belus, a square enclosure two furlongs each way, with gates of = solid=20 brass; which was also remaining in my time. In the middle of the = precinct there=20 was a tower of solid masonry, a furlong in length and breadth, upon = which was=20 raised a second tower, and on that a third, and so on up to eight. The = ascent to=20 the top is on the outside, by a path which winds round all the towers. = When one=20 is about half-way up, one finds a resting-place and seats, where persons = are=20 wont to sit some time on their way to the summit. On the topmost tower = there is=20 a spacious temple, and inside the temple stands a couch of unusual size, = richly=20 adorned, with a golden table by its side. There is no statue of any kind = set up=20 in the place, nor is the chamber occupied of nights by any one but a = single=20 native woman, who, as the Chaldaeans, the priests of this god, affirm, = is chosen=20 for himself by the deity out of all the women of the land.
[1.182] They also declare - but I for my part do = not credit=20 it - that the god comes down in person into this chamber, and sleeps = upon the=20 couch. This is like the story told by the Egyptians of what takes place = in their=20 city of Thebes, where a woman always passes the night in the temple of = the=20 Theban Jupiter. In each case the woman is said to be debarred all = intercourse=20 with men. It is also like the custom of Patara, in Lycia, where the = priestess=20 who delivers the oracles, during the time that she is so employed - for = at=20 Patara there is not always an oracle - is shut up in the temple every = night.=20
[1.183] Below, in the same precinct, there is a = second=20 temple, in which is a sitting figure of Jupiter, all of gold. Before the = figure=20 stands a large golden table, and the throne whereon it sits, and the = base on=20 which the throne is placed, are likewise of gold. The Chaldaeans told me = that=20 all the gold together was eight hundred talents' weight. Outside the = temple are=20 two altars, one of solid gold, on which it is only lawful to offer = sucklings;=20 the other a common altar, but of great size, on which the full-grown = animals are=20 sacrificed. It is also on the great altar that the Chaldaeans burn the=20 frankincense, which is offered to the amount of a thousand talents' = weight,=20 every year, at the festival of the God. In the time of Cyrus there was = likewise=20 in this temple a figure of a man, twelve cubits high, entirely of solid = gold. I=20 myself did not see this figure, but I relate what the Chaldaeans report=20 concerning it. Darius, the son of Hystaspes, plotted to carry the statue = off,=20 but had not the hardihood to lay his hands upon it. Xerxes, however, the = son of=20 Darius, killed the priest who forbade him to move the statue, and took = it away.=20 Besides the ornaments which I have mentioned, there are a large number = of=20 private offerings in this holy precinct.
[1.184] Many sovereigns have ruled over this city = of=20 Babylon, and=20 lent their aid to the building of its walls and the adornment of its = temples, of=20 whom I shall make mention in my Assyrian history. Among them two were = women. Of=20 these, the earlier, called Semiramis, held the throne five generations = before=20 the later princess. She raised certain embankments well worthy of = inspection, in=20 the plain near Babylon, to control the river, which, till then, used to=20 overflow, and flood the whole country round about.
[1.185] The later of the two queens, whose name was = Nitocris,=20 a wiser princess than her predecessor, not only left behind her, as = memorials of=20 her occupancy of the throne, the works which I shall presently describe, = but=20 also, observing the great power and restless enterprise of the Medes, = who had=20 taken so large a number of cities, and among them Nineveh, and expecting = to be=20 attacked in her turn, made all possible exertions to increase the = defences of=20 her empire. And first, whereas the river Euphrates, which traverses the = city,=20 ran formerly with a straight course to Babylon, she, by certain = excavations=20 which she made at some distance up the stream, rendered it so winding = that it=20 comes three several times in sight of the same village, a village in = Assyria,=20 which is called Ardericea; and to this day, they who would go from our = sea to=20 Babylon, on descending to the river touch three times, and on three = different=20 days, at this very place. She also made an embankment along each side of = the=20 Euphrates, wonderful both for breadth and height, and dug a basin for a = lake a=20 great way above Babylon, close alongside of the stream, which was sunk=20 everywhere to the point where they came to water, and was of such = breadth that=20 the whole circuit measured four hundred and twenty furlongs. The soil = dug out of=20 this basin was made use of in the embankments along the waterside. When = the=20 excavation was finished, she had stones brought, and bordered with them = the=20 entire margin of the reservoir. These two things were done, the river = made to=20 wind, and the lake excavated, that the stream might be slacker by reason = of the=20 number of curves, and the voyage be rendered circuitous, and that at the = end of=20 the voyage it might be necessary to skirt the lake and so make a long = round. All=20 these works were on that side of Babylon where the passes lay, and the = roads=20 into Media were the straightest, and the aim of the queen in making them = was to=20 prevent the Medes from holding intercourse with the Babylonians, and so = to keep=20 them in ignorance of her affairs.
[1.186] While the soil from the excavation was = being thus=20 used for the defense of the city, Nitocris engaged also in another = undertaking,=20 a mere by-work compared with those we have already mentioned. The city, = as I=20 said, was divided by the river into two distinct portions. Under the = former=20 kings, if a man wanted to pass from one of these divisions to the other, = he had=20 to cross in a boat; which must, it seems to me, have been very = troublesome.=20 Accordingly, while she was digging the lake, Nitocris thought herself of = turning=20 it to a use which should at once remove this inconvenience, and enable = her to=20 leave another monument of her reign over Babylon. She gave orders for the = hewing of=20 immense blocks of stone, and when they were ready and the basin was = excavated,=20 she turned the entire stream of the Euphrates into the cutting, and thus = for a=20 time, while the basin was filling, the natural channel of the river was = left=20 dry. Forthwith she set to work, and in the first place lined the banks = of the=20 stream within the city with quays of burnt brick, and also bricked the=20 landing-places opposite the river-gates, adopting throughout the same = fashion of=20 brickwork which had been used in the town wall; after which, with the = materials=20 which had been prepared, she built, as near the middle of the town as = possible,=20 a stone bridge, the blocks whereof were bound together with iron and = lead. In=20 the daytime square wooden platforms were laid along from pier to pier, = on which=20 the inhabitants crossed the stream; but at night they were withdrawn, to = prevent=20 people passing from side to side in the dark to commit robberies. When = the river=20 had filled the cutting, and the bridge was finished, the Euphrates was = turned=20 back again into its ancient bed; and thus the basin, transformed = suddenly into a=20 lake, was seen to answer the purpose for which it was made, and the = inhabitants,=20 by help of the basin, obtained the advantage of a bridge.
[1.187] It was this same princess by whom a = remarkable=20 deception was planned. She had her tomb constructed in the upper part of = one of=20 the principal gateways of the city, high above the heads of the passers = by, with=20 this inscription cut upon it:- "If there be one among my successors on = the=20 throne of Babylon who is in want of treasure, let him open my tomb, and = take as=20 much as he chooses - not, however, unless he be truly in want, for it = will not=20 be for his good." This tomb continued untouched until Darius came to the = kingdom. To him it seemed a monstrous thing that he should be unable to = use one=20 of the gates of the town, and that a sum of money should be lying idle, = and=20 moreover inviting his grasp, and he not seize upon it. Now he could not = use the=20 gate, because, as he drove through, the dead body would have been over = his head.=20 Accordingly he opened the tomb; but instead of money, found only the = dead body,=20 and a writing which said - "Had you not been insatiate of self, and = careless how=20 you got it, you would not have broken open the sepulchres of the dead." =
[1.188] The expedition of Cyrus was undertaken = against the=20 son of this princess, who bore the same name as his father Labynetus, = and was=20 king of the Assyrians. The Great King, when he goes to the wars, is = always=20 supplied with provisions carefully prepared at home, and with cattle of = his own.=20 Water too from the river Choaspes, which flows by Susa, is taken with = him for=20 his drink, as that is the only water which the kings of Persia taste. = Wherever=20 he travels, he is attended by a number of four-wheeled cars drawn by = mules, in=20 which the Choaspes water, ready boiled for use, and stored in flagons of = silver,=20 is moved with him from place to place.
[1.189] Cyrus on his way to Babylon came to the = banks of the=20 Gyndes, a stream which, rising in the Matienian mountains, runs through = the=20 country of the Dardanians, and empties itself into the river Tigris. The = Tigris,=20 after receiving the Gyndes, flows on by the city of Opis, and = discharges its=20 waters into the Erythraean sea. When Cyrus reached this stream, which = could only=20 be passed in boats, one of the sacred white horses accompanying his = march, full=20 of spirit and high mettle, walked into the water, and tried to cross by = himself;=20 but the current seized him, swept him along with it, and drowned him in = its=20 depths. Cyrus, enraged at the insolence of the river, threatened so to = break its=20 strength that in future even women should cross it easily without = wetting their=20 knees. Accordingly he put off for a time his attack on Babylon, and, = dividing=20 his army into two parts, he marked out by ropes one hundred and eighty = trenches=20 on each side of the Gyndes, leading off from it in all directions, and = setting=20 his army to dig, some on one side of the river, some on the other, he=20 accomplished his threat by the aid of so great a number of hands, but = not=20 without losing thereby the whole summer season.
[1.190] Having, however, thus wreaked his vengeance = on the=20 Gyndes, by dispersing it through three hundred and sixty channels, = Cyrus, with=20 the first approach of the ensuing spring, marched forward against = Babylon. The=20 Babylonians, encamped without their walls, awaited his coming. A battle = was=20 fought at a short distance from the city, in which the Babylonians were = defeated=20 by the Persian king, whereupon they withdrew within their defences. Here = they=20 shut themselves up, and made light of his siege, having laid in a store = of=20 provisions for many years in preparation against this attack; for when = they saw=20 Cyrus conquering nation after nation, they were convinced that he would = never=20 stop, and that their turn would come at last.
[1.191] Cyrus was now reduced to great perplexity, = as time=20 went on and he made no progress against the place. In this distress = either some=20 one made the suggestion to him, or he bethought himself of a plan, which = he=20 proceeded to put in execution. He placed a portion of his army at the = point=20 where the river enters the city, and another body at the back of the = place where=20 it issues forth, with orders to march into the town by the bed of the = stream, as=20 soon as the water became shallow enough: he then himself drew off with = the=20 unwarlike portion of his host, and made for the place where Nitocris dug = the=20 basin for the river, where he did exactly what she had done formerly: he = turned=20 the Euphrates by a canal into the basin, which was then a marsh, on = which the=20 river sank to such an extent that the natural bed of the stream became = fordable.=20 Hereupon the Persians who had been left for the purpose at Babylon by = the,=20 river-side, entered the stream, which had now sunk so as to reach about = midway=20 up a man's thigh, and thus got into the town. Had the Babylonians been = apprised=20 of what Cyrus was about, or had they noticed their danger, they would = never have=20 allowed the Persians to enter the city, but would have destroyed them = utterly;=20 for they would have made fast all the street-gates which gave upon the = river,=20 and mounting upon the walls along both sides of the stream, would so = have caught=20 the enemy, as it were, in a trap. But, as it was, the Persians came upon = them by=20 surprise and so took the city. Owing to the vast size of the place, the=20 inhabitants of the central parts (as the residents at Babylon declare) = long=20 after the outer portions of the town were taken, knew nothing of what = had=20 chanced, but as they were engaged in a festival, continued dancing and = revelling=20 until they learnt the capture but too certainly. Such, then, were the=20 circumstances of the first taking of Babylon.
[1.192] Among many proofs which I shall bring = forward of the=20 power and resources of the Babylonians, the following is of special = account. The=20 whole country under the dominion of the Persians, besides paying a fixed = tribute, is parcelled out into divisions, which have to supply food to = the Great=20 King and his army during different portions of the year. Now out of the = twelve=20 months which go to a year, the district of Babylon furnishes food during = four,=20 the other of Asia during eight; by which it appears that Assyria, in = respect of=20 resources, is one-third of the whole of Asia.=20 Of all the Persian governments, or satrapies as they are called by the = natives,=20 this is by far the best. When Tritantaechmes, son of Artabazus, held it = of the=20 king, it brought him in an artaba of silver every day. The artaba is a = Persian=20 measure, and holds three choenixes more than the medimnus of the = Athenians. He=20 also had, belonging to his own private stud, besides war horses, eight = hundred=20 stallions and sixteen thousand mares, twenty to each stallion. Besides = which he=20 kept so great a number of Indian hounds, that four large villages of the = plain=20 were exempted from all other charges on condition of finding them food. =
[1.193] But little rain falls in Assyria, enough, = however, to=20 make the grain begin to sprout, after which the plant is nourished and = the ears=20 formed by means of irrigation from the river. For the river does not, as = in=20 Egypt, overflow the = grain-lands of=20 its own accord, but is spread over them by the hand, or by the help of = engines.=20 The whole of Babylonia is, like Egypt, intersected with canals. The = largest of=20 them all, which runs towards the winter sun, and is impassable except in = boats,=20 is carried from the Euphrates into another stream, called the Tigris, = the river=20 upon which the town of Nineveh formerly stood. Of all the = countries=20 that we know there is none which is so fruitful in grain. It makes no = pretension=20 indeed of growing the fig, the olive, the vine, or any other tree of the = kind;=20 but in grain it is so fruitful as to yield commonly two-hundred-fold, = and when=20 the production is the greatest, even three-hundred-fold. The blade of = the=20 wheat-plant and barley-plant is often four fingers in breadth. As for = the millet=20 and the sesame, I shall not say to what height they grow, though within = my own=20 knowledge; for I am not ignorant that what I have already written = concerning the=20 fruitfulness of Babylonia must seem incredible to those who have never = visited=20 the country. The only oil they use is made from the sesame-plant. = Palm-trees=20 grow in great numbers over the whole of the flat country, mostly of the = kind=20 which bears fruit, and this fruit supplies them with bread, wine, and = honey.=20 They are cultivated like the fig-tree in all respects, among others in = this. The=20 natives tie the fruit of the male-palms, as they are called by the = Greeks, to=20 the branches of the date-bearing palm, to let the gall-fly enter the = dates and=20 ripen them, and to prevent the fruit from falling off. The male-palms, = like the=20 wild fig-trees, have usually the gall-fly in their fruit.
[1.194] But that which surprises me most in the = land, after=20 the city itself, I will now proceed to mention. The boats which come = down the=20 river to Babylon are circular, and made of skins. The frames, which are = of=20 willow, are cut in the country of the Armenians above Assyria, and on = these,=20 which serve for hulls, a covering of skins is stretched outside, and = thus the=20 boats are made, without either stem or stern, quite round like a shield. = They=20 are then entirely filled with straw, and their cargo is put on board, = after=20 which they are suffered to float down the stream. Their chief freight is = wine,=20 stored in casks made of the wood of the palm-tree. They are managed by = two men=20 who stand upright in them, each plying an oar, one pulling and the other = pushing. The boats are of various sizes, some larger, some smaller; the = biggest=20 reach as high as five thousand talents' burden. Each vessel has a live = ass on=20 board; those of larger size have more than one. When they reach Babylon, = the=20 cargo is landed and offered for sale; after which the men break up their = boats,=20 sell the straw and the frames, and loading their asses with the skins, = set off=20 on their way back to Armenia. The current is too strong to allow a boat = to=20 return upstream, for which reason they make their boats of skins rather = than=20 wood. On their return to Armenia they build fresh boats for the next = voyage.=20
[1.195] The dress of the Babylonians is a linen = tunic=20 reaching to the feet, and above it another tunic made in wool, besides = which=20 they have a short white cloak thrown round them, and shoes of a peculiar = fashion, not unlike those worn by the Boeotians. They have long hair, = wear=20 turbans on their heads, and anoint their whole body with perfumes. Every = one=20 carries a seal, and a walking-stick, carved at the top into the form of = an=20 apple, a rose, a lily, an eagle, or something similar; for it is not = their habit=20 to use a stick without an ornament.
[1.196] Of their customs, whereof I shall now = proceed to give=20 an account, the following (which I understand belongs to them in common = with the=20 Illyrian tribe of the Eneti) is the wisest in my judgment. Once a year = in each=20 village the maidens of age to marry were collected all together into one = place;=20 while the men stood round them in a circle. Then a herald called up the = damsels=20 one by one, and offered them for sale. He began with the most beautiful. = When=20 she was sold for no small sum of money, he offered for sale the one who = came=20 next to her in beauty. All of them were sold to be wives. The richest of = the=20 Babylonians who wished to wed bid against each other for the loveliest = maidens,=20 while the humbler wife-seekers, who were indifferent about beauty, took = the more=20 homely damsels with marriage-portions. For the custom was that when the = herald=20 had gone through the whole number of the beautiful damsels, he should = then call=20 up the ugliest - a cripple, if there chanced to be one - and offer her = to the=20 men, asking who would agree to take her with the smallest = marriage-portion [i.e.=20 in these cases the man was paid to take the woman]. And the man who was = offered=20 the smallest sum had her assigned to him. The marriage-portions were = furnished=20 by the money paid for the beautiful damsels, and thus the fairer maidens = portioned out the uglier. No one was allowed to give his daughter in = marriage to=20 the man of his choice, nor might any one carry away the damsel whom he = had=20 purchased without finding bail really and truly to make her his wife; = if,=20 however, it turned out that they did not agree, the money might be paid = back.=20 All who liked might come even from distant villages and bid for the = women. This=20 was the best of all their customs, but it has now fallen into disuse. = They have=20 lately hit upon a very different plan to save their maidens from = violence, and=20 prevent their being torn from them and carried to distant cities, which = is to=20 bring up their daughters to be courtesans. This is now done by all the = poorer of=20 the common people, who since the conquest have been maltreated by their = lords,=20 and have had ruin brought upon their families.
[1.197] The following custom seems to me the wisest = of their=20 institutions next to the one lately praised. They have no physicians, = but when a=20 man is ill, they lay him in the public square, and the passers-by come = up to=20 him, and if they have ever had his disease themselves or have known any = one who=20 has suffered from it, they give him advice, recommending him to do = whatever they=20 found good in their own case, or in the case known to them; and no one = is=20 allowed to pass the sick man in silence without asking him what his = ailment is.=20
[1.198] They bury their dead in honey, and have = funeral=20 lamentations like the Egyptians. When a Babylonian has consorted with = his wife,=20 he sits down before a censer of burning incense, and the woman sits = opposite to=20 him. At dawn of day they wash; for till they are washed they will not = touch any=20 of their common vessels. This practice is observed also by the Arabians. =
[1.199] The Babylonians have one most shameful = custom. Every=20 woman born in the country must once in her life go and sit down in the = precinct=20 of Venus, and there consort with a stranger. Many of the wealthier sort, = who are=20 too proud to mix with the others, drive in covered carriages to the = precinct,=20 followed by a goodly train of attendants, and there take their station. = But the=20 larger number seat themselves within the holy enclosure with wreaths of = string=20 about their heads - and here there is always a great crowd, some coming = and=20 others going; lines of cord mark out paths in all directions the women, = and the=20 strangers pass along them to make their choice. A woman who has once = taken her=20 seat is not allowed to return home till one of the strangers throws a = silver=20 coin into her lap, and takes her with him beyond the holy ground. When = he throws=20 the coin he says these words - "The goddess Mylitta prosper thee." = (Venus is=20 called Mylitta by the Assyrians.) The silver coin may be of any size; it = cannot=20 be refused, for that is forbidden by the law, since once thrown it is = sacred.=20 The woman goes with the first man who throws her money, and rejects no = one. When=20 she has gone with him, and so satisfied the goddess, she returns home, = and from=20 that time forth no gift however great will prevail with her. Such of the = women=20 as are tall and beautiful are soon released, but others who are ugly = have to=20 stay a long time before they can fulfil the law. Some have waited three = or four=20 years in the precinct. A custom very much like this is found also in = certain=20 parts of the island of Cyprus.
[1.200] Such are the customs of the Babylonians = generally.=20 There are likewise three tribes among them who eat nothing but fish. = These are=20 caught and dried in the sun, after which they are brayed in a mortar, = and=20 strained through a linen sieve. Some prefer to make cakes of this = material,=20 while others bake it into a kind of bread.
On Egypt:
[2.2] Now the Egyptians, before the reign of their = king=20 Psammetichus, believed themselves to be the most ancient of mankind. = Since=20 Psammetichus, however, made an attempt to discover who were actually the = primitive race, the Egyptians have been of opinion that while they = surpass all=20 other nations, the Phrygians surpass them in antiquity. This king, = finding it=20 impossible to make out by dint of inquiry what men were the most = ancient,=20 contrived the following method of discovery:- He took two children of = the common=20 sort, and gave them over to a herdsman to bring up at his folds, = strictly=20 charging him to let no one utter a word in their presence, but to keep = them in a=20 sequestered cottage, and from time to time introduce goats to their = apartment,=20 see that they got their fill of milk, and in all other respects look = after them.=20 His object herein was to know, after the indistinct babblings of infancy = were=20 over, what word they would first articulate. It happened as he had = anticipated.=20 The herdsman obeyed his orders for two years, and at the end of that = time, on=20 his one day opening the door of their room and going in, the children = both ran=20 up to him with outstretched arms, and distinctly said "Becos." When this = first=20 happened the herdsman took no notice; but afterwards when he observed, = on coming=20 often to see after them, that the word was constantly in their mouths, = he=20 informed his lord, and by his command brought the children into his = presence.=20 Psammetichus then himself heard them say the word, upon which he = proceeded to=20 make inquiry what people there was who called anything "becos," and = hereupon he=20 learnt that "becos" was the Phrygian name for bread. In consideration of = this=20 circumstance the Egyptians yielded their claims, and admitted the = greater=20 antiquity of the Phrygians.
[2.3] That these were the real facts I learnt at = Memphis from = the priests of=20 Vulcan. The Greeks, among other foolish tales, relate that Psammetichus = had the=20 children brought up by women whose tongues he had previously cut out; = but the=20 priests said their bringing up was such as I have stated above. I got = much other=20 information also from conversation with these priests while I was at = Memphis,=20 and I even went to Heliopolis and to Thebes, expressly to try whether = the=20 priests of those places would agree in their accounts with the priests = at=20 Memphis. The Heliopolitans have the reputation of being the best skilled = in=20 history of all the Egyptians. What they told me concerning their = religion it is=20 not my intention to repeat, except the names of their deities, which I = believe=20 all men know equally. If I relate anything else concerning these = matters, it=20 will only be when compelled to do so by the course of my narrative.
[2.4] Now with regard to mere human matters, the = accounts=20 which they gave, and in which all agreed, were the following. The = Egyptians,=20 they said, were the first to discover the solar year, and to portion out = its=20 course into twelve parts. They obtained this knowledge from the stars. = (To my=20 mind they contrive their year much more cleverly than the Greeks, for = these last=20 every other year intercalate a whole month, but the Egyptians, dividing = the year=20 into twelve months of thirty days each, add every year a space of five = days=20 besides, whereby the circuit of the seasons is made to return with = uniformity.)=20 The Egyptians, they went on to affirm, first brought into use the names = of the=20 twelve gods, which the Greeks adopted from them; and first erected = altars,=20 images, and temples to the gods; and also first engraved upon stone the = figures=20 of animals. In most of these cases they proved to me that what they said = was=20 true. And they told me that the first man who ruled over Egypt was Min, = and that=20 in his time all Egypt, except the Thebaic canton, was a marsh, none of = the land=20 below Lake Moeris then showing itself above the surface of the water. = This is a=20 distance of seven days' sail from the sea up the river.
[2.5] What they said of their country seemed to me = very=20 reasonable. For any one who sees Egypt, without having heard a word = about it=20 before, must perceive, if he has only common powers of observation, that = the=20 Egypt to which the Greeks go in their ships is an acquired country, the = gift of=20 the river. The same is true of the land above the lake, to the distance = of three=20 days' voyage, concerning which the Egyptians say nothing, but which = exactly the=20 same kind of country.
The following is the general character of the = region. In the=20 first place, on approaching it by sea, when you are still a day's sail = from the=20 land, if you let down a sounding-line you will bring up mud, and find = yourself=20 in eleven fathoms' water, which shows that the soil washed down by the = stream=20 extends to that distance.
[2.6] The length of the country along shore, = according to the=20 bounds that we assign to Egypt, namely from the Plinthinetic = gulf to=20 Lake Serbonis, which extends along the base of = Mount = Casius, is sixty schoenes. The = nations=20 whose territories are scanty measure them by the fathom; those whose = bounds are=20 less confined, by the furlong; those who have an ample territory, by the = parasang; but if men have a country which is very vast, they measure it = by the=20 schoene. Now the length of the parasang is thirty furlongs, but the = schoene,=20 which is an Egyptian measure, is sixty furlongs. Thus the coastline of = Egypt=20 would extend a length of three thousand six hundred furlongs.
[2.7] From the coast inland as far as Heliopolis the breadth of Egypt=20 is considerable, the country is flat, without springs, and full of = swamps. The=20 length of the route from the sea up to Heliopolis is almost exactly the = same as=20 that of the road which runs from the altar of the twelve gods at Athens = to the=20 temple of Olympian Jove at Pisa. If a person made a calculation he would = find=20 but a very little difference between the two routes, not more than about = fifteen=20 furlongs; for the road from Athens to Pisa falls short of fifteen = hundred=20 furlongs by exactly fifteen, whereas the distance of Heliopolis from the = sea is=20 just the round number.
[2.8] As one proceeds beyond Heliopolis up the country, Egypt=20 becomes narrow, the Arabian range of hills, which has a direction from = north to=20 south, shutting it in upon the one side, and the Libyan range upon the = other.=20 The former ridge runs on without a break, and stretches away to the sea = called=20 the Erythraean; it contains the quarries whence the stone was cut for = the=20 pyramids of Memphis: and this is the point where it ceases its first = direction,=20 and bends away in the manner above indicated. In its greatest length = from east=20 to west it is, as I have been informed, a distance of two months' = journey=20 towards the extreme east its skirts produce frankincense. Such are the = chief=20 features of this range. On the Libyan side, the other ridge whereon the = pyramids=20 stand is rocky and covered with sand; its direction is the same as that = of the=20 Arabian ridge in the first part of its course. Above Heliopolis, then, = there is=20 no great breadth of territory for such a country as Egypt, but during = four days'=20 sail Egypt is narrow; the valley between the two ranges is a level = plain, and=20 seemed to me to be, at the narrowest point, not more than two hundred = furlongs=20 across from the Arabian to the Libyan hills. Above this point Egypt = again=20 widens.
[2.9] From Heliopolis to Thebes is nine days' sail = up the=20 river; the distance is eighty-one schoenes, or 4860 furlongs. If we now = put=20 together the several measurements of the country we shall find that the = distance=20 along shore is, as I stated above, 3600 furlongs, and the distance from = the sea=20 inland to Thebes 6120 furlongs. Further, it is a distance of eighteen = hundred=20 furlongs from Thebes to the place called Elephantine.
[2.10] The greater portion of the country above = described=20 seemed to me to be, as the priests declared, a tract gained by the = inhabitants.=20 For the whole region above Memphis, lying between the two ranges = of hills=20 that have been spoken of, appeared evidently to have formed at one time = a gulf=20 of the sea. It resembles (to compare small things with great) the parts = about=20 Ilium and Teuthrania, Ephesus, and the plain of the Maeander. In all = these=20 regions the land has been formed by rivers, whereof the greatest is not = to=20 compare for size with any one of the five mouths of the Nile. I could = mention=20 other rivers also, far inferior to the Nile in=20 magnitude, that have effected very great changes. Among these not the = least is=20 the Achelous, which, after passing through Acarnania, empties itself = into the=20 sea opposite the islands called Echinades, and has already joined = one-half of=20 them to the continent.
[2.11] In Arabia, not far from Egypt, there is a long and narrow gulf = running=20 inland from the sea called the Erythraean [i.e. the Red=20 Sea], of which I will here set down the dimensions. Starting = from=20 its innermost recess, and using a row-boat, you take forty days to reach = the=20 open main, while you may cross the gulf at its widest part in the space = of half=20 a day. In this sea there is an ebb and flow of the tide every day. My = opinion is=20 that Egypt was formerly very much such a gulf as this - one gulf = penetrated from=20 the sea that washes Egypt on the north, and extended itself towards = Ethiopia;=20 another entered from the southern ocean, and stretched towards Syria; = the two=20 gulfs ran into the land so as almost to meet each other, and left = between them=20 only a very narrow tract of country. Now if the Nile should choose to = divert his=20 waters from their present bed into this Arabian=20 gulf, what is there to hinder it from being filled up by the = stream=20 within, at the utmost, twenty thousand years? For my part, I think it = would be=20 filled in half the time. How then should not a gulf, even of much = greater size,=20 have been filled up in the ages that passed before I was born, by a = river that=20 is at once so large and so given to working changes?
[2.12] Thus I give credit to those from whom I = received this=20 account of Egypt, and am myself, moreover, strongly of the same opinion, = since I=20 remarked that the country projects into the sea further than the = neighbouring=20 shores, and I observed that there were shells upon the hills, and that = salt=20 exuded from the soil to such an extent as even to injure the pyramids; = and I=20 noticed also that there is but a single hill in all Egypt where sand is = found,=20 namely, the hill above Memphis; and further, I found the country to bear = no=20 resemblance either to its borderland Arabia, or to Libya - nay, nor even = to=20 Syria, which forms the seaboard of Arabia; but whereas the soil of Libya = is, we=20 know, sandy and of a reddish hue, and that of Arabia and Syria inclines = to stone=20 and clay, Egypt has a soil that is black and crumbly, as being alluvial = and=20 formed of the deposits brought down by the river from Ethiopia.
[2.13] One fact which I learnt of the priests is to = me a=20 strong evidence of the origin of the country. They said that when Moeris = was=20 king, the Nile overflowed all Egypt below Memphis, as soon as it rose so = little=20 as eight cubits. Now Moeris had not been dead 900 years at the time when = I heard=20 this of the priests; yet at the present day, unless the river rise = sixteen, or,=20 at the very least, fifteen cubits, it does not overflow the lands. It = seems to=20 me, therefore, that if the land goes on rising and growing at this rate, = the=20 Egyptians who dwell below Lake Moeris, in the Delta (as it is called) = and=20 elsewhere, will one day, by the stoppage of the inundations, suffer = permanently=20 the fate which they told me they expected would some time or other = befall the=20 Greeks. On hearing that the whole land of Greece is watered by rain from = heaven,=20 and not, like their own, inundated by rivers, they observed - "Some day = the=20 Greeks will be disappointed of their grand hope, and then they will be=20 wretchedly hungry"; which was as much as to say, "If God shall some day = see fit=20 not to grant the Greeks rain, but shall afflict them with a long = drought, the=20 Greeks will be swept away by a famine, since they have nothing to rely = on but=20 rain from Jove, and have no other resource for water."
[2.14] And in thus speaking of the Greeks the = Egyptians say=20 nothing but what is true. But now let me tell the Egyptians how the case = stands=20 with themselves. If, as I said before, the country below Memphis, which = is the=20 land that is always rising, continues to increase in height at the rate = at which=20 it has risen in times gone by, how will it be possible for the = inhabitants of=20 that region to avoid hunger, when they will certainly have no rain, and = the=20 river will not be able to overflow their cornlands? At present, it must = be=20 confessed, they obtain the fruits of the field with less trouble than = any other=20 people in the world, the rest of the Egyptians included, since they have = no need=20 to break up the ground with the plough, nor to use the hoe, nor to do = any of the=20 work which the rest of mankind find necessary if they are to get a crop; = but the=20 husbandman waits till the river has of its own accord spread itself over = the=20 fields and withdrawn again to its bed, and then sows his plot of ground, = and=20 after sowing turns his swine into it - the swine tread in the corn - = after which=20 he has only to await the harvest. The swine serve him also to thrash the = grain,=20 which is then carried to the garner.
[2.15] If then we choose to adopt the views of the = Ionians=20 concerning Egypt, we must come to the conclusion that the Egyptians had = formerly=20 no country at all. For the Ionians say that nothing is really Egypt but = the=20 Delta, which extends along shore from the Watch-tower of Perseus, as it = is=20 called, to the Pelusiac Salt-Pans, a distance of forty schoenes, and = stretches=20 inland as far as the city of Cercasorus, where the Nile divides into the = two=20 streams which reach the sea at Pelusium and Canobus respectively. The = rest of=20 what is accounted Egypt belongs, they say, either to Arabia or Libya. = But the=20 Delta, as the Egyptians affirm, and as I myself am persuaded, is formed = of the=20 deposits of the river, and has only recently, if I may use the = expression, come=20 to light. If, then, they had formerly no territory at all, how came they = to be=20 so extravagant as to fancy themselves the most ancient race in the = world? Surely=20 there was no need of their making the experiment with the children to = see what=20 language they would first speak. But in truth I do not believe that the=20 Egyptians came into being at the same time with the Delta, as the = Ionians call=20 it; I think they have always existed ever since the human race began; as = the=20 land went on increasing, part of the population came down into the new = country,=20 part remained in their old settlements. In ancient times the Thebais = bore the=20 name of Egypt, a district of which the entire circumference is but 6120=20 furlongs.
[2.16] If, then, my judgment on these matters be = right, the=20 Ionians are mistaken in what they say of Egypt.=20 If, on the contrary, it is they who are right, then I undertake to show = that=20 neither the Ionians nor any of the other Greeks know how to count. For = they all=20 say that the earth is divided into three parts, Europe, Asia, and Libya, = whereas=20 they ought to add a fourth part, the Delta of Egypt, since they do not = include=20 it either in Asia or Libya. For is it not their theory that the Nile = separates=20 Asia from Libya? As the Nile, therefore, splits in two at the apex of = the Delta,=20 the Delta itself must be a separate country, not contained in either = Asia or=20 Libya.
[2.17] Here I take my leave of the opinions of the = Ionians,=20 and proceed to deliver my own sentiments on these subjects. I consider = Egypt to=20 be the whole country inhabited by the Egyptians, just as Cilicia is the = tract=20 occupied by the Cilicians, and Assyria that possessed by the Assyrians. = And I=20 regard the only proper boundary-line between Libya and Asia to be that = which is=20 marked out by the Egyptian frontier. For if we take the boundary-line = commonly=20 received by the Greeks, we must regard Egypt as divided, along its whole = length=20 from Elephantine and the Cataracts to Cercasorus, into two parts, each = belonging=20 to a different portion of the world, one to Asia, the other to Libya; = since the=20 Nile divides Egypt in two from the Cataracts to the sea, running as far = as the=20 city of Cercasorus in a single stream, but at that point separating into = three=20 branches, whereof the one which bends eastward is called the Pelusiac = mouth, and=20 that which slants to the west, the Canobic. Meanwhile the straight = course of the=20 stream, which comes down from the upper country and meets the apex of = the Delta,=20 continues on, dividing the Delta down the middle, and empties itself = into the=20 sea by a mouth, which is as celebrated, and carries as large a body of = water, as=20 most of the others, the mouth called the Sebennytic. Besides these there = are two=20 other mouths which run out of the Sebennytic called respectively the = Saitic and=20 the Mendesian. The Bolbitine mouth, and the Bucolic, are not natural = branches,=20 but channels made by excavation.
[2.18] My judgment as to the extent of Egypt is = confirmed by=20 an oracle delivered at the shrine of Ammon, of which I had no knowledge = at all=20 until after I had formed my opinion. It happened that the people of the = cities=20 Marea and Apis, who live in the part of Egypt that borders on Libya, = took a=20 dislike to the religious usages of the country concerning sacrificial = animals,=20 and wished no longer to be restricted from eating the flesh of cows. So, = as they=20 believed themselves to be Libyans and not Egyptians, they sent to the = shrine to=20 say that, having nothing in common with the Egyptians, neither = inhabiting the=20 Delta nor using the Egyptian tongue, they claimed to be allowed to eat = whatever=20 they pleased. Their request, however, was refused by the god, who = declared in=20 reply that Egypt was the entire tract of country which the Nile = overspreads and=20 irrigates, and the Egyptians were the people who lived below = Elephantine, and=20 drank the waters of that river.
[2.19] So said the oracle. Now the Nile, when it = overflows,=20 floods not only the Delta, but also the tracts of country on both sides = the=20 stream which are thought to belong to Libya and Arabia, in some places = reaching=20 to the extent of two days' journey from its banks, in some even = exceeding that=20 distance, but in others falling short of it.
Concerning the nature of the river, I was not able = to gain=20 any information either from the priests or from others. I was = particularly=20 anxious to learn from them why the Nile, at the commencement of the = summer=20 solstice, begins to rise, and continues to increase for a hundred days - = and=20 why, as soon as that number is past, it forthwith retires and contracts = its=20 stream, continuing low during the whole of the winter until the summer = solstice=20 comes round again. On none of these points could I obtain any = explanation from=20 the inhabitants, though I made every inquiry, wishing to know what was = commonly=20 reported - they could neither tell me what special virtue the Nile has = which=20 makes it so opposite in its nature to all other streams, nor why, unlike = every=20 other river, it gives forth no breezes from its surface.
[2.20] Some of the Greeks, however, wishing to get = a=20 reputation for cleverness, have offered explanations of the phenomena of = the=20 river, for which they have accounted in three different ways. Two of = these I do=20 not think it worth while to speak of, further than simply to mention = what they=20 are. One pretends that the Etesian winds cause the rise of the river by=20 preventing the Nile-water from running off into the sea. But in the = first place=20 it has often happened, when the Etesian winds did not blow, that the = Nile has=20 risen according to its usual wont; and further, if the Etesian winds = produced=20 the effect, the other rivers which flow in a direction opposite to those = winds=20 ought to present the same phenomena as the Nile, and the more so as they = are all=20 smaller streams, and have a weaker current. But these rivers, of which = there are=20 many both in Syria and Libya, are entirely unlike the Nile in this = respect.
[2.21] The second opinion is even more unscientific = than the=20 one just mentioned, and also, if I may so say, more marvellous. It is = that the=20 Nile acts so strangely, because it flows from the ocean, and that the = ocean=20 flows all round the earth.
[2.22] The third explanation, which is very much = more=20 plausible than either of the others, is positively the furthest from the = truth;=20 for there is really nothing in what it says, any more than in the other=20 theories. It is, that the inundation of the Nile is caused by the melting of snows. Now, as = the Nile=20 flows out of Libya, through Ethiopia, into Egypt, how is it possible = that it can=20 be formed of melted snow, running, as it does, from the hottest regions = of the=20 world into cooler countries? Many are the proofs whereby any one capable = of=20 reasoning on the subject may be convinced that it is most unlikely this = should=20 be the case. The first and strongest argument is furnished by the winds, = which=20 always blow hot from these regions. The second is that rain and frost = are=20 unknown there. Now whenever snow falls, it must of necessity rain within = five=20 days;.so that, if there were snow, there must be rain also in those = parts.=20 Thirdly, it is certain that the natives of the country are black with = the heat,=20 that the kites and the swallows remain there the whole year, and that = the=20 cranes, when they fly from the rigours of a Scythian winter, flock = thither to=20 pass the cold season. If then, in the country whence the Nile has its = source, or=20 in that through which it flows, there fell ever so little snow, it is = absolutely=20 impossible that any of these circumstances could take place.
[2.23] As for the writer who attributes the = phenomenon to the=20 ocean, his account is involved in such obscurity that it is impossible = to=20 disprove it by argument. For my part I know of no river called Ocean, = and I=20 think that Homer, or one of the earlier poets, invented the name, and = introduced=20 it into his poetry.
[2.24] Perhaps, after censuring all the opinions = that have=20 been put forward on this obscure subject, one ought to propose some = theory of=20 one's own. I will therefore proceed to explain what I think to be the = reason of=20 the Nile's swelling in the summer time. During the winter, the sun is = driven out=20 of his usual course by the storms, and removes to the upper parts of = Libya. This=20 is the whole secret in the fewest possible words; for it stands to = reason that=20 the country to which the Sun-god approaches the nearest, and which he = passes=20 most directly over, will be scantest of water, and that there the = streams which=20 feed the rivers will shrink the most.
[2.25] To explain, however, more at length, the = case is this.=20 The sun, in his passage across the upper parts of Libya, affects them in = the=20 following way. As the air in those regions is constantly clear, and the = country=20 warm through the absence of cold winds, the sun in his passage across = them acts=20 upon them exactly as he wont to act elsewhere in summer, when his path = is in the=20 middle of heaven - that is, he attracts the water. After attracting it, = he again=20 repels it into the upper regions, where the winds lay hold of it, = scatter it,=20 and reduce it to a vapour, whence it naturally enough comes to pass that = the=20 winds which blow from this quarter - the south and south-west - are of = all winds=20 the most rainy. And my own opinion is that the sun does not get rid of = all the=20 water which he draws year by year from the Nile, but retains some about = him.=20 When the winter begins to soften, the sun goes back again to his old = place in=20 the middle of the heaven, and proceeds to attract water equally from all = countries. Till then the other rivers run big, from the quantity of = rain-water=20 which they bring down from countries where so much moisture falls that = all the=20 land is cut into gullies; but in summer, when the showers fail, and the = sun=20 attracts their water, they become low. The Nile, on the contrary, not deriving any of its = bulk from=20 rains, and being in winter subject to the attraction of the sun, = naturally runs=20 at that season, unlike all other streams, with a less burden of water = than in=20 the summer time. For in summer it is exposed to attraction equally with = all=20 other rivers, but in winter it suffers alone. The sun, therefore, I = regard as=20 the sole cause of the phenomenon.
[2.26] It is the sun also, in my opinion, which, by = heating=20 the space through which it passes, makes the air in Egypt=20 so dry. There is thus perpetual summer in the upper parts of Libya. Were = the=20 position of the heavenly regions reversed, so that the place where now = the north=20 wind and the winter have their dwelling became the station of the south = wind and=20 of the noon-day, while, on the other hand, the station of the south wind = became=20 that of the north, the consequence would be that the sun, driven from = the=20 mid-heaven by the winter and the northern gales, would betake himself to = the=20 upper parts of Europe, as he now does to those of Libya, and then I = believe his=20 passage across Europe would affect the Ister exactly as the Nile is = affected at=20 the present day.
[2.27] And with respect to the fact that no breeze = blows from=20 the Nile, I am of opinion that no = wind is=20 likely to arise in very hot countries, for breezes love to blow from = some cold=20 quarter.
[2.28] Let us leave these things, however, to their = natural=20 course, to continue as they are and have been from the beginning. With = regard to=20 the sources of the Nile, I have found no one among all those with whom I = have=20 conversed, whether Egyptians, Libyans, or Greeks, who professed to have = any=20 knowledge, except a single person. He was the scribe who kept the = register of=20 the sacred treasures of Minerva in the city of Sais, and he did not seem = to me=20 to be in earnest when he said that he knew them perfectly well. His = story was as=20 follows:- "Between Syene, a city of the Thebais, and Elephantine, there are" (he said) "two hills = with sharp=20 conical tops; the name of the one is Crophi, of the other, Mophi. Midway = between=20 them are the fountains of the Nile, fountains which it is impossible to = fathom.=20 Half the water runs northward into Egypt, half to the south towards = Ethiopia."=20 The fountains were known to be unfathomable, he declared, because = Psammetichus,=20 an Egyptian king, had made trial of them. He had caused a rope to be = made, many=20 thousand fathoms in length, and had sounded the fountain with it, but = could find=20 no bottom. By this the scribe gave me to understand, if there was any = truth at=20 all in what he said, that in this fountain there are certain strong = eddies, and=20 a regurgitation, owing to the force wherewith the water dashes against = the=20 mountains, and hence a Sounding-line cannot be got to reach the bottom = of the=20 spring.
[2.29] No other information on this could I obtain = from any=20 quarter. All that I succeeded in learning further of the more distant = portions=20 of the Nile, by ascending myself as high as Elephantine and making = inquiries=20 concerning the parts beyond, was the following:- As one advances beyond=20 Elephantine, the land rises. Hence it = is=20 necessary in this part of the river to attach a rope to the boat on each = side,=20 as men harness an ox, and so proceed on the journey. If the rope snaps, = the=20 vessel is borne away down stream by the force of the current. The = navigation=20 continues the same for four days, the river winding greatly, like the = Maeander,=20 and the distance traversed amounting to twelve schoenes. Here you come = upon a=20 smooth and level plain, where the Nile flows in two branches, round an = island=20 called Tachompso. The country above Elephantine=20 is inhabited by the Ethiopians, who possess one-half of this island, the = Egyptians occupying the other. Above the island there is a great lake, = the=20 shores of which are inhabited by Ethiopian nomads; after passing it, you = come=20 again to the stream of the Nile, which runs into the lake. Here you = land, and=20 travel for forty days along the banks of the river, since it is = impossible to=20 proceed further in a boat on account of the sharp peaks which jut out = from the=20 water, and the sunken rocks which abound in that part of the stream. = When you=20 have passed this portion of the river in the space of forty days, you go = on=20 board another boat and proceed by water for twelve days more, at the end = of=20 which time you reach a great city called Meroe, which is said to be the = capital=20 of the other Ethiopians. The only gods worshipped by the inhabitants are = Jupiter=20 and Bacchus, to whom great honours are paid. There is an oracle of = Jupiter in=20 the city, which directs the warlike expeditions of the Ethiopians; when = it=20 commands they go to war, and in whatever direction it bids them march, = thither=20 straightway they carry their arms.
[2.30] On leaving this city, and again mounting the = stream,=20 in the same space of time which it took you to reach the capital from=20 Elephantine, you come to the Deserters, who bear the name of Asmach. = This word,=20 translated into our language, means "the men who stand on the left hand = of the=20 king." These Deserters are Egyptians of the warrior caste, who, to the = number of=20 two hundred and forty thousand, went over to the Ethiopians in the reign = of king=20 Psammetichus. The cause of their desertion was the following:- Three = garrisons=20 were maintained in Egypt at=20 that time, one in the city of Elephantine against the Ethiopians, = another in=20 the Pelusiac Daphnae, against the Syrians and Arabians, and a third, = against the=20 Libyans, in Marea. (The very same posts are to this day occupied by the=20 Persians, whose forces are in garrison both in Daphnae and in = Elephantine.) Now=20 it happened, that on one occasion the garrisons were not relieved during = the=20 space of three years; the soldiers, therefore, at the end of that time,=20 consulted together, and having determined by common consent to revolt, = marched=20 away towards Ethiopia. Psammetichus, informed of the movement, set out = in=20 pursuit, and coming up with them, besought them with many words not to = desert=20 the gods of their country, nor abandon their wives and children. "Nay, = but,"=20 said one of the deserters with an unseemly gesture, "wherever we go, we = are sure=20 enough of finding wives and children." Arrived in Ethiopia, they placed=20 themselves at the disposal of the king. In return, he made them a = present of a=20 tract of land which belonged to certain Ethiopians with whom he was at = feud,=20 bidding them expel the inhabitants and take possession of their = territory. From=20 the time that this settlement was formed, their acquaintance with = Egyptian=20 manners has tended to civilise the Ethiopians.
[2.31] Thus the course of the Nile is known, not = only=20 throughout Egypt, but to the extent of four months' journey either by = land or=20 water above the Egyptian boundary; for on calculation it will be found = that it=20 takes that length of time to travel from Elephantine to the country of = the=20 Deserters. There the direction of the river is from west to east. = Beyond, no one=20 has any certain knowledge of its course, since the country is = uninhabited by=20 reason of the excessive heat.
[2.32] I did hear, indeed, what I will now relate, = from=20 certain natives of Cyrene. Once upon a time, they said, they were on a = visit to=20 the oracular shrine of Ammon, when it chanced that in the course of = conversation=20 with Etearchus, the Ammonian king, the talk fell upon the Nile, how that = its=20 sources were unknown to all men. Etearchus upon this mentioned that some = Nasamonians had once come to his court, and when asked if they could = give any=20 information concerning the uninhabited parts of Libya, had told the = following=20 tale. (The Nasamonians are a Libyan race who occupy the Syrtis, and a = tract of=20 no great size towards the east.) They said there had grown up among them = some=20 wild young men, the sons of certain chiefs, who, when they came to man's = estate,=20 indulged in all manner of extravagancies, and among other things drew = lots for=20 five of their number to go and explore the desert parts of Libya, and = try if=20 they could not penetrate further than any had done previously. The coast = of=20 Libya along the sea which washes it to the north, throughout its entire = length=20 from Egypt to Cape Soloeis, which is its furthest point, is inhabited by = Libyans=20 of many distinct tribes who possess the whole tract except certain = portions=20 which belong to the Phoenicians and the Greeks. Above the coast-line and = the=20 country inhabited by the maritime tribes, Libya is full of wild beasts; = while=20 beyond the wild beast region there is a tract which is wholly sand, very = scant=20 of water, and utterly and entirely a desert. The young men therefore, = despatched=20 on this errand by their comrades with a plentiful supply of water and=20 provisions, travelled at first through the inhabited region, passing = which they=20 came to the wild beast tract, whence they finally entered upon the = desert, which=20 they proceeded to cross in a direction from east to west. After = journeying for=20 many days over a wide extent of sand, they came at last to a plain where = they=20 observed trees growing; approaching them, and seeing fruit on them, they = proceeded to gather it. While they were thus engaged, there came upon = them some=20 dwarfish men, under the middle height, who seized them and carried them = off. The=20 Nasamonians could not understand a word of their language, nor had they = any=20 acquaintance with the language of the Nasamonians. They were led across=20 extensive marshes, and finally came to a town, where all the men were of = the=20 height of their conductors, and black-complexioned. A great river flowed = by the=20 town, running from west to east, and containing crocodiles. [Although he = was=20 unaware of it, Herodotus actually might have been describing the Niger = River in=20 central Africa, which would have been accessible by caravan routes = through the=20 Sahara desert.]
[2.33] Here let me dismiss Etearchus the Ammonian, = and his=20 story, only adding that (according to the Cyrenaeans) he declared that = the=20 Nasamonians got safe back to their country, and that the men whose city = they had=20 reached were a nation of sorcerers. With respect to the river which ran = by their=20 town, Etearchus conjectured it to be the Nile; and reason favours that = view. For=20 the Nile certainly flows out of Libya, dividing it down the middle, and = as I=20 conceive, judging the unknown from the known, rises at the same distance = from=20 its mouth as the Danube. The Danube = river has=20 its source in the country of the Celts near the city Pyrene, and runs = through=20 the middle of Europe, dividing it = into two=20 portions. The Celts live beyond the pillars of Hercules, and border on = the=20 Cynesians, who dwell at the extreme west of Europe. Thus the Danube flows through the whole = of Europe=20 before it finally empties itself into the Euxine at Istria, one of the colonies of the Milesians. =
[2.34] Now as this river flows through regions that = are=20 inhabited, its course is perfectly well known; but of the sources of the = Nile no=20 one can give any account, since Libya, the country through which it = passes, is=20 desert and without inhabitants. As far as it was possible to get = information by=20 inquiry, I have given a description of the stream. It enters Egypt from = the=20 parts beyond. Egypt lies almost exactly opposite the mountainous portion = of=20 Cilicia, whence a lightly-equipped traveller may reach Sinope on the = Euxine in=20 five days by the direct route. Sinope lies opposite the place where the=20 Danube falls into the sea. My opinion = therefore=20 is that the Nile, as it traverses the whole of Libya, is of equal length with the = Danube. And here I take my leave of this = subject.
[2.35] Concerning Egypt itself I shall extend my = remarks to a=20 great length, because there is no country that possesses so many = wonders, nor=20 any that has such a number of works which defy description. Not only is = the=20 climate different from that of the rest of the world, and the rivers = unlike any=20 other rivers, but the people also, in most of their manners and customs, = exactly=20 reverse the common practice of mankind. The women attend the markets and = trade,=20 while the men sit at home at the loom; and here, while the rest of the = world=20 works the woof up the warp, the Egyptians work it down; the women = likewise carry=20 burdens upon their shoulders, while the men carry them upon their heads. = They=20 eat their food out of doors in the streets, but retire for private = purposes to=20 their houses, giving as a reason that what is unseemly, but necessary, = ought to=20 be done in secret, but what has nothing unseemly about it, should be = done=20 openly. A woman cannot serve the priestly office, either for god or = goddess, but=20 men are priests to both; sons need not support their parents unless they = choose,=20 but daughters must, whether they choose or no.
[2.36] In other countries the priests have long = hair, in=20 Egypt their heads are shaven; elsewhere it is customary, in mourning, = for near=20 relations to cut their hair close: the Egyptians, who wear no hair at = any other=20 time, when they lose a relative, let their beards and the hair of their = heads=20 grow long. All other men pass their lives separate from animals, the = Egyptians=20 have animals always living with them; others make barley and wheat their = food;=20 it is a disgrace to do so in Egypt, where the grain they live on is = spelt, which=20 some call zea. Dough they knead with their feet; but they mix mud, and = even take=20 up dirt, with their hands. They are the only people in the world- they = at least,=20 and such as have learnt the practice from them - who use circumcision. = Their men=20 wear two garments apiece, their women but one. They put on the rings and = fasten=20 the ropes to sails inside; others put them outside. When they write or=20 calculate, instead of going, like the Greeks, from left to right, they = move=20 their hand from right to left; and they insist, notwithstanding, that it = is they=20 who go to the right, and the Greeks who go to the left. They have two = quite=20 different kinds of writing, one of which is called sacred, the other = common.=20
[2.37] They are religious to excess, far beyond any = other=20 race of men, and use the following ceremonies:- They drink out of brazen = cups,=20 which they scour every day: there is no exception to this practice. They = wear=20 linen garments, which they are specially careful to have always fresh = washed.=20 They practise circumcision for the sake of cleanliness, considering it = better to=20 be cleanly than comely. The priests shave their whole body every other = day, that=20 no lice or other impure thing may adhere to them when they are engaged = in the=20 service of the gods. Their dress is entirely of linen, and their shoes = of the=20 papyrus plant: it is not lawful for them to wear either dress or shoes = of any=20 other material. They bathe twice every day in cold water, and twice each = night;=20 besides which they observe, so to speak, thousands of ceremonies. They = enjoy,=20 however, not a few advantages. They consume none of their own property, = and are=20 at no expense for anything; but every day bread is baked for them of the = sacred=20 grain, and a plentiful supply of beef and of goose's flesh is assigned = to each,=20 and also a portion of wine made from the grape. Fish they are not = allowed to=20 eat; and beans - which none of the Egyptians ever sow, or eat, if they = come up=20 of their own accord, either raw or boiled - the priests will not even = endure to=20 look on, since they consider it an unclean kind of pulse. Instead of a = single=20 priest, each god has the attendance of a college, at the head of which = is a=20 chief priest; when one of these dies, his son is appointed in his room. =
[2.38] Male cattle are reckoned to belong to = Epaphus, and are=20 therefore tested in the following manner:- One of the priests appointed = for the=20 purpose searches to see if there is a single black hair on the whole = body, since=20 in that case the beast is unclean. He examines him all over, standing on = his=20 legs, and again laid upon his back; after which he takes the tongue out = of his=20 mouth, to see if it be clean in respect of the prescribed marks (what = they are I=20 will mention elsewhere); he also inspects the hairs of the tail, to = observe if=20 they grow naturally. If the animal is pronounced clean in all these = various=20 points, the priest marks him by twisting a piece of papyrus round his = horns, and=20 attaching thereto some sealing-clay, which he then stamps with his own=20 signet-ring. After this the beast is led away; and it is forbidden, = under the=20 penalty of death, to sacrifice an animal which has not been marked in = this way.=20
[2.39] The following is their manner of sacrifice:- = They lead=20 the victim, marked with their signet, to the altar where they are about = to offer=20 it, and setting the wood alight, pour a libation of wine upon the altar = in front=20 of the victim, and at the same time invoke the god. Then they slay the = animal,=20 and cutting off his head, proceed to flay the body. Next they take the = head, and=20 heaping imprecations on it, if there is a market-place and a body of = Greek=20 traders in the city, they carry it there and sell it instantly; if, = however,=20 there are no Greeks among them, they throw the head into the river. The=20 imprecation is to this effect:- They pray that if any evil is impending = either=20 over those who sacrifice, or over universal Egypt,=20 it may be made to fall upon that head. These practices, the imprecations = upon=20 the heads, and the libations of wine, prevail all over Egypt, and extend = to=20 victims of all sorts; and hence the Egyptians will never eat the head of = any=20 animal.
[2.40] The disembowelling and burning are, however, = different=20 in different sacrifices. I will mention the mode in use with respect to = the=20 goddess whom they regard as the greatest, and honour with the chiefest = festival.=20 When they have flayed their steer they pray, and when their prayer is = ended they=20 take the paunch of the animal out entire, leaving the intestines and the = fat=20 inside the body; they then cut off the legs, the ends of the loins, the=20 shoulders, and the neck; and having so done, they fill the body of the = steer=20 with clean bread, honey, raisins, figs, frankincense, myrrh, and other=20 aromatics. Thus filled, they burn the body, pouring over it great = quantities of=20 oil. Before offering the sacrifice they fast, and while the bodies of = the=20 victims are being consumed they beat themselves. Afterwards, when they = have=20 concluded this part of the ceremony, they have the other parts of the = victim=20 served up to them for a repast.
On Scythians:
[4.2] Now the Scythians blind all their slaves, to = use them=20 in preparing their milk. The plan they follow is to thrust tubes made of = bone,=20 not unlike our musical pipes, up the vulva of the mare, and then to blow = into=20 the tubes with their mouths, some milking while the others blow. They = say that=20 they do this because when the veins of the animal are full of air, the = udder is=20 forced down. The milk thus obtained is poured into deep wooden casks, = about=20 which the blind slaves are placed, and then the milk is stirred round. = That=20 which rises to the top is drawn off, and considered the best part; the = under=20 portion is of less account. Such is the reason why the Scythians blind = all those=20 whom they take in war; it arises from their not being tillers of the = ground, but=20 a pastoral race.
[4.59] Thus abundantly are the Scythians provided = with the=20 most important necessaries. Their manners and customs come now to be = described.=20 They worship only the following gods, namely, Vesta, whom they reverence = beyond=20 all the rest, Jupiter, and Tellus, whom they consider to be the wife of = Jupiter;=20 and after these Apollo, Celestial Venus, Hercules, and Mars. These gods = are=20 worshipped by the whole nation: the Royal Scythians offer sacrifice = likewise to=20 Neptune. In the Scythic tongue Vesta is called Tabiti, Jupiter (very = properly,=20 in my judgment) Papaeus, Tellus Apia, Apollo Oetosyrus, Celestial Venus=20 Artimpasa, and Neptune Thamimasadas. They use no images, altars, or = temples,=20 except in the worship of Mars; but in his worship they do use them.
[4.60] The manner of their sacrifices is everywhere = and in=20 every case the same; the victim stands with its two fore-feet bound = together by=20 a cord, and the person who is about to offer, taking his station behind = the=20 victim, gives the rope a pull, and thereby throws the animal down; as it = falls=20 he invokes the god to whom he is offering; after which he puts a noose = round the=20 animal's neck, and, inserting a small stick, twists it round, and so = strangles=20 him. No fire is lighted, there is no consecration, and no pouring out of = drink-offerings; but directly after the beast is strangled the = sacrificer flays=20 him, and then sets to work to boil the flesh.
[4.61] As Scythia, however, is utterly barren of = firewood, a=20 plan has had to be contrived for boiling the flesh, which is the = following.=20 After flaying the beasts, they take out all the bones, and (if they = possess such=20 gear) put the flesh into boilers made in the country, which are very = like the=20 cauldrons of the Lesbians, except that they are of a much larger size; = then=20 placing the bones of the animals beneath the cauldron, they set them = alight, and=20 so boil the meat. If they do not happen to possess a cauldron, they make = the=20 animal's paunch hold the flesh, and pouring in at the same time a little = water,=20 lay the bones under and light them. The bones burn beautifully; and the = paunch=20 easily contains all the flesh when it is stript from the bones, so that = by this=20 plan your ox is made to boil himself, and other victims also to do the = like.=20 When the meat is all cooked, the sacrificer offers a portion of the = flesh and of=20 the entrails, by casting it on the ground before him. They sacrifice all = sorts=20 of cattle, but most commonly horses.
[4.62] Such are the victims offered to the other = gods, and=20 such is the mode in which they are sacrificed; but the rites paid to = Mars are=20 different. In every district, at the seat of government, there stands a = temple=20 of this god, whereof the following is a description. It is a pile of = brushwood,=20 made of a vast quantity of fagots, in length and breadth three furlongs; = in=20 height somewhat less, having a square platform upon the top, three sides = of=20 which are precipitous, while the fourth slopes so that men may walk up = it. Each=20 year a hundred and fifty wagon-loads of brushwood are added to the pile, = which=20 sinks continually by reason of the rains. An antique iron sword is = planted on=20 the top of every such mound, and serves as the image of Mars: yearly = sacrifices=20 of cattle and of horses are made to it, and more victims are offered = thus than=20 to all the rest of their gods. When prisoners are taken in war, out of = every=20 hundred men they sacrifice one, not however with the same rites as the = cattle,=20 but with different. Libations of wine are first poured upon their heads, = after=20 which they are slaughtered over a vessel; the vessel is then carried up = to the=20 top of the pile, and the blood poured upon the scimitar. While this = takes place=20 at the top of the mound, below, by the side of the temple, the right = hands and=20 arms of the slaughtered prisoners are cut off, and tossed on high into = the air.=20 Then the other victims are slain, and those who have offered the = sacrifice=20 depart, leaving the hands and arms where they may chance to have fallen, = and the=20 bodies also, separate.
[4.63] Such are the observances of the Scythians = with respect=20 to sacrifice. They never use swine for the purpose, nor indeed is it = their wont=20 to breed them in any part of their country.
[4.64] In what concerns war, their customs are the = following.=20 The Scythian soldier drinks the blood of the first man he overthrows in = battle.=20 Whatever number he slays, he cuts off all their heads, and carries them = to the=20 king; since he is thus entitled to a share of the booty, whereto he = forfeits all=20 claim if he does not produce a head. In order to strip the skull of its=20 covering, he makes a cut round the head above the ears, and, laying hold = of the=20 scalp, shakes the skull out; then with the rib of an ox he scrapes the = scalp=20 clean of flesh, and softening it by rubbing between the hands, uses it=20 thenceforth as a napkin. The Scyth is proud of these scalps, and hangs = them from=20 his bridle-rein; the greater the number of such napkins that a man can = show, the=20 more highly is he esteemed among them. Many make themselves cloaks, like = the=20 capotes of our peasants, by sewing a quantity of these scalps together. = Others=20 flay the right arms of their dead enemies, and make of the skin, which = stripped=20 off with the nails hanging to it, a covering for their quivers. Now the = skin of=20 a man is thick and glossy, and would in whiteness surpass almost all = other=20 hides. Some even flay the entire body of their enemy, and stretching it = upon a=20 frame carry it about with them wherever they ride. Such are the Scythian = customs=20 with respect to scalps and skins.
[4.70] Oaths among the Scyths are accompanied with = the=20 following ceremonies: a large earthen bowl is filled with wine, and the = parties=20 to the oath, wounding themselves slightly with a knife or an awl, drop = some of=20 their blood into the wine; then they plunge into the mixture a scimitar, = some=20 arrows, a battle-axe, and a javelin, all the while repeating prayers; = lastly the=20 two contracting parties drink each a draught from the bowl, as do also = the chief=20 men among their followers.
[4.71] The tombs of their kings are in the land of = the=20 Gerrhi, who dwell at the point where the Borysthenes is first navigable. = Here,=20 when the king dies, they dig a grave, which is square in shape, and of = great=20 size. When it is ready, they take the king's corpse, and, having opened = the=20 belly, and cleaned out the inside, fill the cavity with a preparation of = chopped=20 cypress, frankincense, parsley-seed, and anise-seed, after which they = sew up the=20 opening, enclose the body in wax, and, placing it on a wagon, carry it = about=20 through all the different tribes. On this procession each tribe, when it = receives the corpse, imitates the example which is first set by the = Royal=20 Scythians; every man chops off a piece of his ear, crops his hair close, = and=20 makes a cut all round his arm, lacerates his forehead and his nose, and = thrusts=20 an arrow through his left hand. Then they who have the care of the = corpse carry=20 it with them to another of the tribes which are under the Scythian rule, = followed by those whom they first visited. On completing the circuit of = all the=20 tribes under their sway, they find themselves in the country of the = Gerrhi, who=20 are the most remote of all, and so they come to the tombs of the kings. = There=20 the body of the dead king is laid in the grave prepared for it, = stretched upon a=20 mattress; spears are fixed in the ground on either side of the corpse, = and beams=20 stretched across above it to form a roof, which is covered with a = thatching of=20 osier twigs. In the open space around the body of the king they bury one = of his=20 concubines, first killing her by strangling, and also his cup-bearer, = his cook,=20 his groom, his lacquey, his messenger, some of his horses, firstlings of = all his=20 other possessions, and some golden cups; for they use neither silver nor = brass.=20 After this they set to work, and raise a vast mound above the grave, all = of them=20 vying with each other and seeking to make it as tall as possible.
[4.72] When a year is gone by, further ceremonies = take place.=20 Fifty of the best of the late king's attendants are taken, all native = Scythians=20 - for, as bought slaves are unknown in the country, the Scythian kings = choose=20 any of their subjects that they like, to wait on them - fifty of these = are taken=20 and strangled, with fifty of the most beautiful horses. When they are = dead,=20 their bowels are taken out, and the cavity cleaned, filled full of = chaff, and=20 straightway sewn up again. This done, a number of posts are driven into = the=20 ground, in sets of two pairs each, and on every pair half the felly of a = wheel=20 is placed archwise; then strong stakes are run lengthways through the = bodies of=20 the horses from tail to neck, and they are mounted up upon the fellies, = so that=20 the felly in front supports the shoulders of the horse, while that = behind=20 sustains the belly and quarters, the legs dangling in mid-air; each = horse is=20 furnished with a bit and bridle, which latter is stretched out in front = of the=20 horse, and fastened to a peg. The fifty strangled youths are then = mounted=20 severally on the fifty horses. To effect this, a second stake is passed = through=20 their bodies along the course of the spine to the neck; the lower end of = which=20 projects from the body, and is fixed into a socket, made in the stake = that runs=20 lengthwise down the horse. The fifty riders are thus ranged in a circle = round=20 the tomb, and so left.
[4.73] Such, then, is the mode in which the kings = are buried:=20 as for the people, when any one dies, his nearest of kin lay him upon a = wagon=20 and take him round to all his friends in succession: each receives them = in turn=20 and entertains them with a banquet, whereat the dead man is served with = a=20 portion of all that is set before the others; this is done for forty = days, at=20 the end of which time the burial takes place. After the burial, those = engaged in=20 it have to purify themselves, which they do in the following way. First = they=20 well soap and wash their heads; then, in order to cleanse their bodies, = they act=20 as follows: they make a booth by fixing in the ground three sticks = inclined=20 towards one another, and stretching around them woolen felts, which they = arrange=20 so as to fit as close as possible: inside the booth a dish is placed = upon the=20 ground, into which they put a number of red-hot stones, and then add = some=20 hemp-seed.
[4.74] Hemp grows in Scythia: it is very like flax; = only that=20 it is a much coarser and taller plant: some grows wild about the = country, some=20 is produced by cultivation: the Thracians make garments of it which = closely=20 resemble linen; so much so, indeed, that if a person has never seen hemp = he is=20 sure to think they are linen, and if he has, unless he is very = experienced in=20 such matters, he will not know of which material they are.
[4.75] The Scythians, as I said, take some of this = hemp-seed,=20 and, creeping under the felt coverings, throw it upon the red-hot = stones;=20 immediately it smokes, and gives out such a vapour as no Grecian = vapour-bath can=20 exceed; the Scyths, delighted, shout for joy, and this vapour serves = them=20 instead of a water-bath; for they never by any chance wash their bodies = with=20 water. Their women make a mixture of cypress, cedar, and frankincense = wood,=20 which they pound into a paste upon a rough piece of stone, adding a = little water=20 to it. With this substance, which is of a thick consistency, they = plaster their=20 faces all over, and indeed their whole bodies. A sweet odour is thereby = imparted=20 to them, and when they take off the plaster on the day following, their = skin is=20 clean and glossy.