299 files changed, 12157 insertions, 2731 deletions
@@ -1,2 +1,4 @@ target -*.pyc
\ No newline at end of file +*.pyc +backend/java +scripts/builder/backends/javaBuilder.py
\ No newline at end of file diff --git a/backend/dev/properties/dev.properties.json b/backend/dev/properties/dev.properties.json new file mode 100644 index 0000000..1c49ea5 --- a/dev/null +++ b/backend/dev/properties/dev.properties.json @@ -0,0 +1,9 @@ +{ + "request.path": "json", + "should.pay.toll": "true", + + "development.settings": { + "url": "http://homer.local:8084/java-backend" + } + +}
\ No newline at end of file diff --git a/frontend/beta/css/clipperz/clipperz.css b/frontend/beta/css/clipperz/clipperz.css index cf99ac9..f41dfad 100644 --- a/frontend/beta/css/clipperz/clipperz.css +++ b/frontend/beta/css/clipperz/clipperz.css @@ -54,12 +54,12 @@ div#applicationVersionType { } div#applicationVersionType.readOnly { -/* background: url(../images/read-only.png) no-repeat fixed -5px -8px; */ +/* background: url(./images/read-only.png) no-repeat fixed -5px -8px; */ background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAI0AAACSCAYAAAB43knrAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAABB8SURBVHja7J0LcFTlFcfPbh4bCAnPBCNIGIlOBEYaEWxxEKpFqGklYgWpQkXwAak6Sh07jshYHVumra1ioCLRSEBALQZHbGNAggpiAiIjUOQxJIMBNJFA3tlkc3vO9927e+8mIdm7j+TunjNzyd3Ncu/uvb+c8z/nO9+3NrCe2dUtCrdo3GLVrc+xZfbHrxpqfxTY3Fb+o7Jy5HLXCtxtwq0ZtxbcXLi10aYoiqkbEBbAHF9uX8rAtLfUwbZHCrOjJqvXK0q9fjZ/b0JYeJi0JPvvGZH29u05JXd6juurSISmc2CetT/BHqZjKy1TNqW/4Mr1AkaDxmYWHrvlgUm2P8J4tLed3yofTPyba4N63QIGjBWgYWBM2EeHlKKbV7q26CCxByIsWQEaBsaEFRxUdmX+y/Uh7ipqhqT91PbDFhoGxoS995Wy547XXYVqWq2l1i4dNBo4ij8A2RmY8LDN+5Uv73rDVaTWYvSb07s24y84dgbG+rZpn1Jy95uu7bjbgFu9+rMRZEFPg6ZVB47i701iYKwNTOncPNcO3K1Tt3ovcDRvE3bQMDAmbCN6GC9gaKvVwdPk5W1cgRDFdgbGusD8Ns/1iQpJjW7ToNF7Gm9RDFaGhoEJDjD68KTXNPoU3JLhKbTADBoLkLUh3IHx9jLODvRMm7/vITpSPMz30/Jg6JAxeLY4vIRNDIzFPE2PhKSkrTPk6Sb+gYGxGDRBA4YCtTMLEwm7Tt/FDQGwRckTN1XBuYpPATKewOcUBsYi0ATVwzjT50PssJsAFp8VULSRhlmI+0swFGUsFVglfvgr/JkAMGYBA+OH2cIBGM1aEI6YSX/BvUqA1akAI26FpswCiNNeUDgXnGMXI1zXAOSkhPDj915gzLR72sIFGM3qJyyD+InPSnBWIRgKfsSk8dAyYxPEJI70vHDbbQBlRRHvYXpjj3DIRW986fNQX/Inkr4YmmSogsr9EJN/FUBeKrSRriHLXO3Tcdvw76sy+zwEqLvAciEpVNCEDpjoPgBjHxYepVNwhBs6A/aCW6D2wEv4AMNXfEq3T9E48jY8Guqh9DsjGphgQhM6YBwDAB7CazplJcDsvQDTcjoAp1KCpfqJtuTr5fVHiLrtwcq2QTnt3PKPiAYmWNCENCSdytoOUIHbxgyobr4AcPWDGHryvMDp4069bZiG96csa+NNXUq6Vvo/8Ze7H6dsmYr/4uOUSRELTDCEcMiAoRsajd6lMS0L+qz1ZEI/zDsOySR4yzag2L1PfVf4FtqcXh9b6VLD/JjtJD+Fx9oGsB2PhVCWL6rEwIY+Z+31YQFMTwvhkHqY5uufBhjzAPRxDASI6et+PhkF7w81ZQAj78FQ9bJKgLODUmBXH0aBpPWjoaXqIB4rEwBhgamrIHU/pvSOcQD9r4w4DxNoT9MjQwP1eBPjERxoPoZ/+aMNH6dhzj7oS+Gkpc7HT4Jv+8rb8VMgiCfexdvTKHXTTaiZrr7b87oq9D6bsywPTE/VaUILTH9MnaMcAOe/EW//UuD4bDTsQFVkvW3LkuFJA2r8UwCiDoSWNwLJPWtpD9MT0IQOGLyhTXhD4/TPvfNTUYPxgHMKIPcavBIuU6c4gXoo7dxnADuzAQaOhibMxsT53rkBz/OVR08lpEL0/BMAJUsBSl+xdEgKtaYJGTDN+BcugDmWD7BmoPzrJ6MUG29gfPESqD/8OoaRFHdq7auoJr0yzBEPULRAhiQqCOK5RBPF7PeNZaGhE+RO2ecRoWECBU1IQ5Jz9P34F18tbyhpFAoX69LkL7NyZXqN4MDqwb5rmEuI6ig8VrNI2QcZxPPJ6RsBDv/T4H0iBRiz0IRc9Cox8dCuX6y2HM4f2wSQOFyXJztNHV/Uc8hT0Tnu3mUAxJlMVebzhkg+KicGoPjJiATGDDQ9kiVF1VItNgFTaKN+aBiE+qXmlMlPHiuHHdTinTvEJWYAZKNXS/sNQGYBJFG6vfGXEZdWB0oI92gT+JlFlXA5pb4VxQCfPg6QPk82VOWijmmq8u1g6fMBbsnVxScE742xwlO5RbWWOZX/17SwtgIwwcyeLrkClT8LCtFbtsX061yLkDe48C20tdRDa9Z22WglDCXq+usALh736Xwtw2+GmJmFEoizuwF+9qLQM4glQE6qsf5TcwAgf4LpJNMKHiZY0AQNGDJRlndgYrsmGe9oo/GX1H0394CxkEbZEdVpaJzJhJ3MboFRB54D2POCR7dMWAaxVHspvBPz7g+M4AiYRvgMjlVCUjBS7qACQzb8c2rFRGgerMDMpY/RwxAwNSXGyiulwyaBofGkZCFgkowpdOkL4i5CwlCPOEaNI4T2sQ/DFphgCOGgAyNE7tF1oGydLoWuDpzKicsQjiMYHm4M4IdV4CKNJV2N6XnSdR6YbHYQZ6393ujoilA3FWUzMN0MTyEBxh1uMENpmr5RrfbidV0zTA1VCgRkpCMBtQpqIhLMbXFDwK4NFVAN5uT7UD1rJwx0XMQwlBZxWVKgNE3ogKFsiEaPKzBDKXoIYNxjMiMygOPf8Wvx+AnaY204ACGqnX/C83zVFxgCJ/sFqFU9TCCgCR0waKezdsAVw1INf+Ft6HXsmQUqOCNMVXiF9LFFQeuSJjn0sOcZgL4pYmjA87EVCa2rWeqkCK3D+CuEQwqMACRhRPs3VLZN9sMIjfO16WM3YuYTR/eLhh6orVMFhrIimKCWlEhQRzAw/grhkANDNgBFsGjwzuhgGeAdC9HT/MT0sWO0f7186cW0uwDSZwXk/b9dGnnA6GEJHTBUtqf6C1pi6fMgWrsn/R1gWr7slZm0ApIT+wMQUCZDk/hgdadlKv+LVYbn6Q7CuYMBAeaetyIPGC24R4cKmPNz9sGgIePkgwMvotZYLsaAqu+vwOxlgM7nZ+CLD/l9PvfQAwndoiWeoQc/mqfCDRizQtgRCmC+R2CG0nX9aAFU476A5PBfAYqf9nggxyCA6v/5NdbjXcyrm1MKiRqodN/WX+vz0EM4exiz0MQHGxglaTzYZhdjltRPnPIcZk2XaWNIenCCZX4OPYRzSDKbPQVd9NYOn+red6bcCJcNQYGaE0uzrQHGPAmQtcXPIBvVRf7dyMAEWAgHPUvqV14I8M4UaLVFQ+ws9DhvTBZ1krhdaur7da65A1PPS3aLXE4kG+9byo1BuUgMjJfjDiow5AFQn9hVUds49mFIIP/SpvblTsHQtCparuzgq1sdfjPYqO2SUvO676B2ZiEkEJBr8HgtNgYmmNAEBRjyAHRDhaEX2DJD9K44RLNUEnqFVkFrwq4HTAFDdhYhuXzPoyI1p/EkMSSwfjRqFzy+vdXvcMTAXCI8BVz0ogcAzQNsnY5XNg6APECMArEn3sNU+yUJUuFcgEN5prMiavWGyqNiaosYgNw4TmRFtbSvm3/NwAQnPAXUuvQAe56Sm69GhT+a+XgkF+zoRSrwqVEzP5a/o+MjMDTVRZyPRrQZmKAKYXNGLZokPOlnkD2Ai3p67z0CQEuj0ah4yiS4kibKydxM/nAMgIv3E0onxUwFBiZ4ZlNejVbM3MQofWP2jvvQs8iFnUU7pfa8zgM4FtfLuUombmgtHjOBMq2609CaWSDd49ZbZZmJ+n01q/kGz5lhWidFIjCminu+QuMGpmofwGl1iVW6bq8NFIs6y0LeXnmN19+A8qVSLv/h+BEgJ923d0djVKPuAEge5Vk2BD1YK3otNzjfoV6i0XK1yYo9TC+Dxg3MsTXuNkgnZkqxJHz1U0lIDJvwAK2YkkdfOIYgfCIel6OHEfMDanYD5HsKhAZwKPydP8IaJoTQdFvT0A0VwNB0VF3frHL+qNy56wuAeUdkayXd9JxYGY4IpvzrugRGie4jFimCEZ5Vpq7QqsaJqJ0m6MQzwhmVh+cp28zA9FZNQwL3YrYTBtIDas0s+LX0PCiCGx6sxoyF6iJ1shOOTL88R3eM/h/VVdT5T02TVkDcqa2Yiu0xrkjlNfWE0+pe7Gmoiz9hlZiCDzBsBsCcj0WIEMDQhLKcOIC1SaIuI4zaNdWeme54MJER0eyAFgleHOmkWbvEc3TuwZrHyViOGdRzDIyVsicq/dcuaZIeh6xqJ8DmW40vovDUf5Rbl3Rp9Hpa64VM1/jt/Zzb41S8j55uNgNjBU0jKoGKy+NxOs2Py7sFjPAw2WfE65U8OR0WZn8pPQ4dQ1tKRH1OrIGH52ZgLFjcM4Az5Ocofnf7fFKq24h1f6lzj9xd/ZmuwaFCop/NWQxMD0HTDpzEiahJ9vn0/x0xfWW6nDpL9ATDnHcFON7exQCOI5GBsaKm6VTjbLsds6X/dPl60bN7YjVA8bPGJT1IRGuj0gY9I9fUa78OMANjGU3TkccZQKtCdQMY58hM2eS9+8/icYy+sXv2x0ZN5PY4e+XcbgbG+uHJ4Kq6q2P6XSF3xi6BH9DjxFIL5pqBntWnFh00gkPjVuTB/Jiay8D0wvDkcyhbeE7OQqDVINaOc/+uZlo+JNLCzl7Ps4YJw/Dki0VhKGtxK2H0ImMXuX+XWDQPamgtGHp+EU9kC/vw1HmKNEB+pwBtuE9hLHnvMoDXEmV1dwoK4ozFBnAuiC+u+CMDE4nhqS6zAPoRLHqr+gxg88+FCqI6TcPiellZpi6/A6sDcl4GxqLhiWZSCmDKPpAp846FctXvIZMBsivFt7w5MBvquzpe1nkmvWLwOAxMhIUnZ9J4GEpTYEuewcznTlljOboOYnNioVosH4K+ZebbMnqp4NTS/TyUz8BEaniS020nAqzq165/xtBeoS/msYeJ7PDU3MEiRZ4TKRCtzahMDMwXbG0oYWAsH57kIkVxAGMWdOzWWhvUOFYbEGDuXcfAWB6ahG/ULGjK6x02YTWn/07uNHzHwDA06sGaqqBhj1pnoYWjqWeGlvmI6Qct0/JhMC0vUvKUX0MDDEyY1mmUjKVgo4lt3nb4VYDixxkYiwvh4I09UUX4WhS+w6aKL8SA/Sv8mvnIwEQCNAE0BiaMU24GhoUwA8NmLWgYGIaGgWFoGBiGhoFhsyI0DAxDw8AwNAwMWy+BhoFhaBgYhoaBYesl0DAwDA0Dw9AwMGy9BBoGhqFhYBgaBoatl0DDwDA0DAxb8KBhYBgaBoYteNAwMAwNA8MWPGgYGIbGJ1tfonzJwDA0PgEzb51rJwPD0DAwbIGHhoFhizYJTI0XNAwMexoGhs1PaBgYNp+gYWDYfIKGgWHzCRoGhs2n7EkF5hMdIAwMW+fQbChV9urqMAwM26WhebtU+eJe+V0DderGwLB1Ds2m/crn97zl2qFCUafzMnUMDFs7aP59QNk5901XEe426aDRw8LAsLnN9thU+8qXi9uO4z59L2mzCke9DpZ6BiZ8zdSK5bjRV6MoOmgadeA0MDAMTUfhqVq9+S4VmiYVEu0nA8PWITSKCoMGhwZPMwPD1hE0NTpoWtRNA0V7zMCwGaCpVaFpU+HQthYVFAaGrR009eq+S6dt9FsbA8PmDY323YCKDg5FB4zCwLB5Q+PUQaPfNFAYGLZ20LR6QQOdPGZjc0Pj8gKFje2SZjNTEWSLbLPzJWBjaNgYGjaGho2hYWNo2NgYGjaGho2hYWNo2BgaNjaGhi1A9n8BBgBfmCD4GUFjiQAAAABJRU5ErkJgggo=) no-repeat fixed -5px -8px; } div#applicationVersionType.TEST { -/* background: url(../images/test-database.png) no-repeat fixed -5px -8px; */ +/* background: url(./images/test-database.png) no-repeat fixed -5px -8px; */ background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAIMAAACGCAYAAAD+UDnVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAADMlJREFUeNrtnX+MXFUVx99OaaFLwdIfKrTQym81hsQCmiiIYPUP+R0ggXSL0KYgBKMBUUn9QVJMTIx/dDet1EAT21qEQM1iirKEFrKBGlOpbBoK6Lqhu6CLTJ2hdKY7O3s9575777v3zczuzPs19807L/lm29lt3+bd7/vcc8499z3HSc/RBcqBZoNOBM0DnQb6BGj5m+udjWyjw0i1+udPnD64RmeBFoNOEdfvBHFNuxhjDsqRfwgqMoLdeu1B53G4RheBzhbXaz5orriWOcMMRITO1UvfcX4P1+hK0ArQeaAzxLXrrmsGy8mQnBF6uzrKCM992+mHa3QzaCXoUtAFoKWghaCTQXPSRIaEjNDl+5p+7VrrPA/XaJ1mhkuEGZaAFjQ0g6VkoKkhoJ68w9kL1+h+0BrQjWKa+Lw2TSxIExmmNcJbZISG2nm7MwjXaD3oPlAP6BrQ5VoA+UktgLQ+myAjBNSO1c4rcI0eBj0AWiumiK+DvgD6jJZango6STODYyMZyAgBtX218ypcow2gB0F3g24DXQ26TFDhXNDp4nrKKWJWjRksIQMZIZwRHgH9CHQvaBXoWtAVIqW8EHQmaJEoOMkawywbyZCcEXpndVTWsK3H2QfX6OeaETBOuA70VZFB4PSwTFzLj4n6gkEFm8jQJiJ0daIRVoOuB12lGeFTImiU04NRhq4xA8UIHWOEG4QRLp3BCAYVbCBD7EY4PvInxvrmJDdIvSek0gjtJkPsRiiMv8bYZJmxF1bFP0BbFrM80459P0uVEdpJhgSMcMAdlMF7YzdCue9EVsFzDf+BsScuZtXRl9xz7+lJjRHaRYbYjfCfwr9qjbB1GWNPfyUWMxQGvw8n+4f6+1j5CGNDj7gB6lNfToUR2kGGWI0wBRdfEWGgx0B4ZWoSpozhWMxwGM9Z2MsHfwTPPfQL/vk7SIjCQCqMkDQZYidCdcfnvDlbmgGNwD8Yh+BO//lcZGYo7rlHixUeUp+/jYQ41JcKIyRJhuTSR5iz1TH0KCvVMwKaZqrKjRLoHID+ijzHY0tYFYylgseBbzG2qdsNIPF49LRUGCEpMsRvhK3L3QGuZwgcpo0+I/CjyNjmU1oPFnGweTwCccKur3npJPxfRjaBdvnt+W03QiuDGzcZYjfCBzJG4EfJuxN1Q+xZV2uETXNbj0nwjud3uxeLFHEq4JnETvUZN2dKpoakyJBc1rD/l2xCmmL8j/UJceh3Au3BjGBQAb/CFMSPMkxB8vfYutSaYDFI2h8XGZIzwlNfMinBo/oGMUQII0gyVPRpQKSNeaQRjx/OSCUR4iRDcumjHieAxoefdQcJ0Y0FIMMQIYyA/15OPxhn4N/1OgNQh5X/ah0R2k2G9qSP+Hn/NQLbR7S7N69F8wFWKOHflvSYUDPfFAaP6hhLNRHiIEN70kecv+XADH5X/cwE3q31solWpwT8//VUUhoCfwc8B37fUiK0hQxtWYY2YgFfxVEKBypA+oh6F6ec4S1qampEiE4gQpRkaF8/gkGIaBeFeFl5dLtXbu7/hls3kMfum6wnQqJkSC5rKHoFnukMIesJEagqlqCPYiyiZSi8sFR+NzBxbCRCFGSI3Qjvy5KuXlSqN0cbhrgz2PlgGZrtvsUV/lmuQGoLT1N4nvIrqSFCImRIamqYhLuPB26F12GQ7zF9gUbRBk2lj03csRgDMIwJ5GfyPPohSDQiK4zya4rWGpIgQ6Ixgls7gGOTGEQggxHMYUTfYvro9h/gAL/J/z6MS81YTkYjwbTgZQ6f5VkFr24W3uKLUmkiQqxkSKKgxBtDYBBUDyMOAK/9P+4uF8OAlcSdWtKnD50STeioLCdDTFJCoui/hzyn1rDSSVlDFGSInQiTKlofMSN7HkSWOLqL2h0dNn1UhuD4n2d87wj/Xsk6I7SdDElODR/IYtHATfWrjroRIpBHiL8Zn7/H+xjHMkGEVsgQ+9SgI74CvQFFuajU68v78djcHd4EOA1ohSOPEEWXNDJOsaAfodGAJU6GJIygVh8xpZNxglxnECmd8dn+n0bX/7B/Q/0pAzOXFmOQNBOhGTJMa4S3f+z0RtFibmQG5XdUxD4iTSIyBTROPuSi0L/RCOMv8+aTvEwVNcO5hij6eiXtbGdPjAxJGKHmjoeBKqrexU0c0TzFG/+zN4XgHRswWOQFIy0gfE/ubfAZIotEmI4MsRqBxwi+fgC3sDPGB6ICXUta+4h7PLGi9Wri0EY3+BRd0G5twTXDcWxK4ZXEHLbKusdof6ra2WMnQxJEGJN4Hh1Qd6GqJex/SPURHJPTRIB8/7CMCyAz4dPB4F1uRgKmwgCVH32+NnckVEaJUI8MyUwNgH+ji1isNbwvA7gtC72f5X0KRbf1POj2Ol+M4Q7+uJa5lKyOEdpChtiNgF3DAt1cmD3otQOYOnjMUBgMbTiepUgCcUL82otR9POGWdjqICLUM0N8RgDsq/lfW+jhyNZTOnlg70DYcyL24f9X05JmCMbjkpKRzqatnT1uMsRshErjhR6ghhkjjERWUFLrHXx941l30UmscxARGpshOSM0ShF5r2E+cBdzo4KSYQgkQtBtdRa1s8dNhshjhEqdi1+R0XvISmKrBSVpNiJCc2aINGtQC07cDAtNIwz9KlydwkeVpgtKHdTOHjcZIq0sqs0l0hAyUPQZgZeAywebb1Tld33JWLDqlIKSNWSIzAh8SsjVMQSrCdzU4pDctNpMz4Pc78hb3Lq9Je6MFJSSqUCGNYGxJd0MGA1CiPjBM8K21qcKtZupaBAi7QUla8gQWR1Bpoi+DbCGIWS/QAAj8Gok1AdK+mZaYYgsFJTsJgM3wpR7R4q1hiMyDvA9RMOcMrYFOpcbAzznkkctammESHFBKd1k2LKIVarAhKnDZv1fW3l0y80HTUOMPhNogPgDs3wFKbXhNuCTWNLazm4dGfJIgIkP4Slq/1WxgBocnL+BDOrJJgO3ht/yxqegkcbPaghTucwwESKbJop/h0aU43BXVkH7oJCEU0b/N2tb3fd9L/RA/U/usNJ2WyszhOiSTmM7u7XZRPF1WASaOAo+mKx5IutHcsOKthdiOvHCVINGVF5W1jfP4M/xKSlPRLAmm0BDDP3GfU7z1EfqcTYqum+y4liSdYHygWm7mPL68nQEW+TT2M5uBxn6Zjc2xMGtMF1gknnMew5ik1mDMoJv/8KMq5Mhn+JORAhkhube+1h4Y5sbNwQxAlYrNqfrfQ1JP3zbwphhBkMc2tF0+ljy766ueaxvuh7TTzFDQHlTw194LOCliPEaIo7d0BkmQ3Qv7PDHCF4TSjyGICJYZAbej4DpJlYTMcisEwDGZYg4n49AZAiwsln0N782aEEzDBFylxMRIZQZon/FX1U1m+TdtBCrhTNUDPMyhth1lfVPTCEytKAPZVOK1irPt76pVvlKTY8i/37IvkUigoUxg/sklIpHA9Wx5DtCPkCrXc9QIjIE2W3tf0EH7zvIeaudsC+SsoYOJANfdNIwf0xvbvG991Gtbu6+PnXPWSQyNL3o5O98zk2zAYZ6FjuODI2N4OtQwl5ImCaOyTSy1ecwWPKcRSJDC0bghSZtWlBviNWf4xjyvU5EBMvIoHZM4Ta3em1p2oDztBGbU0I+US2r7exWk8F4t+P4i7WFI9/OaFpr6FAyyFY13LiiDAFrDxN13iWlKpERvA4gy+3sVpLB36pmGMIXFFb1/Y/0DKXOIkOjVjXDEGLKMIxgwVpD2gfMKjLM1KpmGuIAm7Bo0YkYEKEZmm1Vq5kyyAidRYZWW9WUIcgIHUiGAK1qYVNJMkLK6gw2t6rRPd+GCiS1qhEZrG1Vo3u9zauW1KpGZKAYgchARiAykBGIDGQEIgMZgchARiAykBGIDGQEIkPiZiAjEBnICEQGMgKRgYxAZCAjEBnICEQGMgKRgYxAZCAjEBnICEQGMgKRgYxAZAhjBjICkYGMQGQgIxAZyAhEBjICkYGMQGQgI5DRmjADGYHIQEYgMnjavtp5lYxAZJBG2AD6IRkhw2TYebszCN97GPQDYYQeMkIGyfDkHc5e+Hw96AHQ3cII15ERMkSGZ9Y4z+9a6wzAZ/eD7gOtBd0GuhZ0JRkhQ2SAYx3oLtAa0CrQzaCrQVeALiYjZIgMYvBRNwoarARdBlpBRsgeGVYK4ZRwOeiLoItAF4CWkxGyRQaMCS4RUwKa4NOgc0FngT5ORsgWGS4UOh90DmgZ6HTQYtB8MkK2yLAUdCZoiZgSFgkanArqBs0hI2SHDAtAC4UB5gsTzAOdREbIHhlO1jRXTAn6tJAjI2SHDHM0zdZMIGlARsgQGWZpymkGIBNkjQxBX/tL6jzRRSCRGUi1+j+w3nFdxUGuNgAAAABJRU5ErkJgggo=) no-repeat fixed -5px -8px; } @@ -139,7 +139,7 @@ div#miscLinks ul li a:hover { /* @group Menu */ div#mainTabs { -/* background: #ff9400 url(../images/menubarSprite.gif) repeat-x; */ +/* background: #ff9400 url(./images/menubarSprite.gif) repeat-x; */ background: #ff9400 url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCcAOYAANN7AKNfAP2zTf/KgO7QppVXAKJeALFmAOCkTfKtTZhZAPWvTaVgAJ5cAPCsTd2hTdygTaxjAOinTc13APySAOe8gO6rTfSuTZFVAKdhAOqIAN+jTfuyTZJVAO+LAPmxTeuqTbBlAKGDWbFnAOKkTaFdAOmoTfevTeSkTZdXAK9lAPyzTY9TAO+rTeamTfGMALKNWf60TeSmTZ1bAN+BAJpZAP/apvmyTZRWAKliAKpjAJxaAK1lAOiHAPaPANh9APyTANd9APSOANyBAPqQAPiPANF6ANB5AOOEANV9AOaGANV8AOyKANyAAPWPAP6UAPiQANp/AOGDANp+AOaFAOCDAO2KANJ6AP2TAPqRAOOFAM95APSNAP2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAJwAAAeigANdQBRZUD5cLx5MGj1USFU0Q1E/SwBXWxUTNjECKxw3HycLFwkOLRYgJhIuMigkCBsPBBAwIwchKjwROjkZDAEGJQ0zOzUKKQU4HRgiLBVHRgBJQVNNNFJaSj0aVh4vQk5FRBRYTwMTIhgdOAUpCjU7Mw0lBgEMGTk6ETwqIQcjYLAg8GADAhIoZLiQYAKEhRYOElxYcOLDDQ4rBMSwASEQADsK) repeat-x; height: 26px; } @@ -188,14 +188,14 @@ div#menus { position: absolute; right: 20; top: 44px; -/* background: url(../images/menubarSprite.gif) no-repeat right -26px; */ +/* background: url(./images/menubarSprite.gif) no-repeat right -26px; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCcAOYAANN7AKNfAP2zTf/KgO7QppVXAKJeALFmAOCkTfKtTZhZAPWvTaVgAJ5cAPCsTd2hTdygTaxjAOinTc13APySAOe8gO6rTfSuTZFVAKdhAOqIAN+jTfuyTZJVAO+LAPmxTeuqTbBlAKGDWbFnAOKkTaFdAOmoTfevTeSkTZdXAK9lAPyzTY9TAO+rTeamTfGMALKNWf60TeSmTZ1bAN+BAJpZAP/apvmyTZRWAKliAKpjAJxaAK1lAOiHAPaPANh9APyTANd9APSOANyBAPqQAPiPANF6ANB5AOOEANV9AOaGANV8AOyKANyAAPWPAP6UAPiQANp/AOGDANp+AOaFAOCDAO2KANJ6AP2TAPqRAOOFAM95APSNAP2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAJwAAAeigANdQBRZUD5cLx5MGj1USFU0Q1E/SwBXWxUTNjECKxw3HycLFwkOLRYgJhIuMigkCBsPBBAwIwchKjwROjkZDAEGJQ0zOzUKKQU4HRgiLBVHRgBJQVNNNFJaSj0aVh4vQk5FRBRYTwMTIhgdOAUpCjU7Mw0lBgEMGTk6ETwqIQcjYLAg8GADAhIoZLiQYAKEhRYOElxYcOLDDQ4rBMSwASEQADsK) no-repeat right -26px; } div#menus table { padding-left: 1px; -/* background: url(../images/menubarSprite.gif) no-repeat 0 -52px; */ +/* background: url(./images/menubarSprite.gif) no-repeat 0 -52px; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCcAOYAANN7AKNfAP2zTf/KgO7QppVXAKJeALFmAOCkTfKtTZhZAPWvTaVgAJ5cAPCsTd2hTdygTaxjAOinTc13APySAOe8gO6rTfSuTZFVAKdhAOqIAN+jTfuyTZJVAO+LAPmxTeuqTbBlAKGDWbFnAOKkTaFdAOmoTfevTeSkTZdXAK9lAPyzTY9TAO+rTeamTfGMALKNWf60TeSmTZ1bAN+BAJpZAP/apvmyTZRWAKliAKpjAJxaAK1lAOiHAPaPANh9APyTANd9APSOANyBAPqQAPiPANF6ANB5AOOEANV9AOaGANV8AOyKANyAAPWPAP6UAPiQANp/AOGDANp+AOaFAOCDAO2KANJ6AP2TAPqRAOOFAM95APSNAP2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAJwAAAeigANdQBRZUD5cLx5MGj1USFU0Q1E/SwBXWxUTNjECKxw3HycLFwkOLRYgJhIuMigkCBsPBBAwIwchKjwROjkZDAEGJQ0zOzUKKQU4HRgiLBVHRgBJQVNNNFJaSj0aVh4vQk5FRBRYTwMTIhgdOAUpCjU7Mw0lBgEMGTk6ETwqIQcjYLAg8GADAhIoZLiQYAKEhRYOElxYcOLDDQ4rBMSwASEQADsK) no-repeat 0 -52px; } @@ -204,7 +204,7 @@ div#menus table tbody tr td { } div#menus table tbody tr td div { -/* background: url(../images/menubarSprite.gif) no-repeat right -52px; */ +/* background: url(./images/menubarSprite.gif) no-repeat right -52px; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCcAOYAANN7AKNfAP2zTf/KgO7QppVXAKJeALFmAOCkTfKtTZhZAPWvTaVgAJ5cAPCsTd2hTdygTaxjAOinTc13APySAOe8gO6rTfSuTZFVAKdhAOqIAN+jTfuyTZJVAO+LAPmxTeuqTbBlAKGDWbFnAOKkTaFdAOmoTfevTeSkTZdXAK9lAPyzTY9TAO+rTeamTfGMALKNWf60TeSmTZ1bAN+BAJpZAP/apvmyTZRWAKliAKpjAJxaAK1lAOiHAPaPANh9APyTANd9APSOANyBAPqQAPiPANF6ANB5AOOEANV9AOaGANV8AOyKANyAAPWPAP6UAPiQANp/AOGDANp+AOaFAOCDAO2KANJ6AP2TAPqRAOOFAM95APSNAP2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAJwAAAeigANdQBRZUD5cLx5MGj1USFU0Q1E/SwBXWxUTNjECKxw3HycLFwkOLRYgJhIuMigkCBsPBBAwIwchKjwROjkZDAEGJQ0zOzUKKQU4HRgiLBVHRgBJQVNNNFJaSj0aVh4vQk5FRBRYTwMTIhgdOAUpCjU7Mw0lBgEMGTk6ETwqIQcjYLAg8GADAhIoZLiQYAKEhRYOElxYcOLDDQ4rBMSwASEQADsK) no-repeat right -52px; } @@ -214,7 +214,7 @@ div#menus table tbody tr td div a { font-size: 10pt; text-decoration: none; padding: 0px 15px; -/* background: url(../images/menubarSprite.gif) no-repeat left -26px; */ +/* background: url(./images/menubarSprite.gif) no-repeat left -26px; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCcAOYAANN7AKNfAP2zTf/KgO7QppVXAKJeALFmAOCkTfKtTZhZAPWvTaVgAJ5cAPCsTd2hTdygTaxjAOinTc13APySAOe8gO6rTfSuTZFVAKdhAOqIAN+jTfuyTZJVAO+LAPmxTeuqTbBlAKGDWbFnAOKkTaFdAOmoTfevTeSkTZdXAK9lAPyzTY9TAO+rTeamTfGMALKNWf60TeSmTZ1bAN+BAJpZAP/apvmyTZRWAKliAKpjAJxaAK1lAOiHAPaPANh9APyTANd9APSOANyBAPqQAPiPANF6ANB5AOOEANV9AOaGANV8AOyKANyAAPWPAP6UAPiQANp/AOGDANp+AOaFAOCDAO2KANJ6AP2TAPqRAOOFAM95APSNAP2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAJwAAAeigANdQBRZUD5cLx5MGj1USFU0Q1E/SwBXWxUTNjECKxw3HycLFwkOLRYgJhIuMigkCBsPBBAwIwchKjwROjkZDAEGJQ0zOzUKKQU4HRgiLBVHRgBJQVNNNFJaSj0aVh4vQk5FRBRYTwMTIhgdOAUpCjU7Mw0lBgEMGTk6ETwqIQcjYLAg8GADAhIoZLiQYAKEhRYOElxYcOLDDQ4rBMSwASEQADsK) no-repeat left -26px; height: 26px; line-height: 26px; @@ -226,18 +226,18 @@ div#menus table tbody tr td.hover div a { /* @group .selected */ div#menus table tbody tr td.selectedTab { -/* background: url(../images/menubarSprite.gif) repeat-x right -78px; */ +/* background: url(./images/menubarSprite.gif) repeat-x right -78px; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCcAOYAANN7AKNfAP2zTf/KgO7QppVXAKJeALFmAOCkTfKtTZhZAPWvTaVgAJ5cAPCsTd2hTdygTaxjAOinTc13APySAOe8gO6rTfSuTZFVAKdhAOqIAN+jTfuyTZJVAO+LAPmxTeuqTbBlAKGDWbFnAOKkTaFdAOmoTfevTeSkTZdXAK9lAPyzTY9TAO+rTeamTfGMALKNWf60TeSmTZ1bAN+BAJpZAP/apvmyTZRWAKliAKpjAJxaAK1lAOiHAPaPANh9APyTANd9APSOANyBAPqQAPiPANF6ANB5AOOEANV9AOaGANV8AOyKANyAAPWPAP6UAPiQANp/AOGDANp+AOaFAOCDAO2KANJ6AP2TAPqRAOOFAM95APSNAP2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAJwAAAeigANdQBRZUD5cLx5MGj1USFU0Q1E/SwBXWxUTNjECKxw3HycLFwkOLRYgJhIuMigkCBsPBBAwIwchKjwROjkZDAEGJQ0zOzUKKQU4HRgiLBVHRgBJQVNNNFJaSj0aVh4vQk5FRBRYTwMTIhgdOAUpCjU7Mw0lBgEMGTk6ETwqIQcjYLAg8GADAhIoZLiQYAKEhRYOElxYcOLDDQ4rBMSwASEQADsK) repeat-x right -78px; } div#menus table tbody tr td.selectedTab div { -/* background: url(../images/menubarSprite.gif) no-repeat right -130px; */ +/* background: url(./images/menubarSprite.gif) no-repeat right -130px; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCcAOYAANN7AKNfAP2zTf/KgO7QppVXAKJeALFmAOCkTfKtTZhZAPWvTaVgAJ5cAPCsTd2hTdygTaxjAOinTc13APySAOe8gO6rTfSuTZFVAKdhAOqIAN+jTfuyTZJVAO+LAPmxTeuqTbBlAKGDWbFnAOKkTaFdAOmoTfevTeSkTZdXAK9lAPyzTY9TAO+rTeamTfGMALKNWf60TeSmTZ1bAN+BAJpZAP/apvmyTZRWAKliAKpjAJxaAK1lAOiHAPaPANh9APyTANd9APSOANyBAPqQAPiPANF6ANB5AOOEANV9AOaGANV8AOyKANyAAPWPAP6UAPiQANp/AOGDANp+AOaFAOCDAO2KANJ6AP2TAPqRAOOFAM95APSNAP2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAJwAAAeigANdQBRZUD5cLx5MGj1USFU0Q1E/SwBXWxUTNjECKxw3HycLFwkOLRYgJhIuMigkCBsPBBAwIwchKjwROjkZDAEGJQ0zOzUKKQU4HRgiLBVHRgBJQVNNNFJaSj0aVh4vQk5FRBRYTwMTIhgdOAUpCjU7Mw0lBgEMGTk6ETwqIQcjYLAg8GADAhIoZLiQYAKEhRYOElxYcOLDDQ4rBMSwASEQADsK) no-repeat right -130px; } div#menus table tbody tr td.selectedTab div a { color: #333366; -/* background: url(../images/menubarSprite.gif) no-repeat left -104px; */ +/* background: url(./images/menubarSprite.gif) no-repeat left -104px; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCcAOYAANN7AKNfAP2zTf/KgO7QppVXAKJeALFmAOCkTfKtTZhZAPWvTaVgAJ5cAPCsTd2hTdygTaxjAOinTc13APySAOe8gO6rTfSuTZFVAKdhAOqIAN+jTfuyTZJVAO+LAPmxTeuqTbBlAKGDWbFnAOKkTaFdAOmoTfevTeSkTZdXAK9lAPyzTY9TAO+rTeamTfGMALKNWf60TeSmTZ1bAN+BAJpZAP/apvmyTZRWAKliAKpjAJxaAK1lAOiHAPaPANh9APyTANd9APSOANyBAPqQAPiPANF6ANB5AOOEANV9AOaGANV8AOyKANyAAPWPAP6UAPiQANp/AOGDANp+AOaFAOCDAO2KANJ6AP2TAPqRAOOFAM95APSNAP2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAJwAAAeigANdQBRZUD5cLx5MGj1USFU0Q1E/SwBXWxUTNjECKxw3HycLFwkOLRYgJhIuMigkCBsPBBAwIwchKjwROjkZDAEGJQ0zOzUKKQU4HRgiLBVHRgBJQVNNNFJaSj0aVh4vQk5FRBRYTwMTIhgdOAUpCjU7Mw0lBgEMGTk6ETwqIQcjYLAg8GADAhIoZLiQYAKEhRYOElxYcOLDDQ4rBMSwASEQADsK) no-repeat left -104px; } @@ -367,7 +367,7 @@ div.clipperzLoginForm a:hover { div.clipperzLoginForm div.loginFormHeaderBox { padding: 30px 20px 0px 20px; -/* background: url(../images/loginFormBox.png) no-repeat -3px top; */ +/* background: url(./images/loginFormBox.png) no-repeat -3px top; */ background: url(data:image/png;charset=utf-8;base64,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) no-repeat -3px top; } @@ -422,7 +422,7 @@ div.oneTimePassword span { div.clipperzLoginForm div.loginForm { text-align: left; -/* background: url(../images/loginFormBox.png) repeat-y -408px; */ +/* background: url(./images/loginFormBox.png) repeat-y -408px; */ background: url(data:image/png;charset=utf-8;base64,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) repeat-y -408px; margin: 0px; } @@ -433,7 +433,7 @@ div.clipperzLoginForm form table.formLayout { div.loginForm div.loginFormFooterBox { padding: 0px 20px 30px 20px; -/* background: url(../images/loginFormBox.png) no-repeat -813px bottom; */ +/* background: url(./images/loginFormBox.png) no-repeat -813px bottom; */ background: url(data:image/png;charset=utf-8;base64,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) no-repeat -813px bottom; } @@ -452,7 +452,7 @@ div.loginFormButtonFooter { div.clipperzLoginForm div.registrationForm { text-align: left; -/* background: url(../images/loginFormBox.png) repeat-y -408px; */ +/* background: url(./images/loginFormBox.png) repeat-y -408px; */ background: url(data:image/png;charset=utf-8;base64,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) repeat-y -408px; margin: 0px; } @@ -469,23 +469,23 @@ div.registrationForm form table.formLayout { /* div.clipperzLoginForm form.read-only table.formLayout { - background-image: url(../images/read-only_background.png); + background-image: url(./images/read-only_background.png); } div.panelBody form.read-only table.panelBody { - background-image: url(../images/read-only_background.png); + background-image: url(./images/read-only_background.png); } */ div.clipperzLoginForm form.read-only table.formLayout, div.panelBody form.read-only table.panelBody, div.clipperzSubPanel span.read-only, div.read-only { -/* background-image: url(../images/read-only_background.png); */ +/* background-image: url(./images/read-only_background.png); */ background-image: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAT8SURBVHjaxJppc9NIEIZbshTHxkACNhRHQVGQAwJF8cv5FxRfdosjCVeyG7aA3U3sOM7tIxLdGmFLmkMz40lwpSo+ZtR69HbPdLfkxZsvD6AyW4XkFSd/cP0ZwOW7wL32vwLsfgDwMt9FOKHeBGg+B6jM5McPjwG2/8T/Bzjn1yQyUAG48QKg1uJtdD8D9P7ibTRuow08L8/Pjx/0AP593Q8gqM9CpRowCJw9vwBw6TZv4PA7gvwNENYKEPMI/gTAD/PjRycAnXUcM8I59ZSBIHw2vtbkbfTw+Ic/eBuNGwDXlgUQeIE6H+mdF0AcxWMl5hcR4pYYYu8Lf5VmFRDtNVTiEH/z9CFIcd8rXCgJBKncQRtnp8nBM0ooILpfknMYk1hBoDtdf2wB8TjjllklUoj0t4ApsaBWQgixgt8HehBehZ2QlRIFCDp2AYLE8OKDbwNo3AnV7jQFRKLEsjiwxxAFGwZKJDaiaOjFcTzAj3mQw28IseEIokwJEYQoJvDY7VUewp+h8cNArIQFxEjkTssWECIlyJ0kEBSn1TnweSUs3ckTQbQslDCHYMHu2p1wRbdTQrRPEMR7hOgrIQDSQzKITUfutOQuJjQhmCJk4OCrAGJOAYFSD48slNDd7Ciw9SFo+fWh+0mixFMDCF0lzgGCfsNUKDBzJ5kSSyWBPa0SoRyCFqf9fzLBroQ4ZRAjmRKti1cCUghKMvGcAj2I9xJ3WnajhHJ1wnOqXhUrkUJARNfLNcT+lgTiJlNPuDqt6kMUlJisWhSgSRYrgRjZKCFypyUHSkRsrytA0BwvPhsOECLUV0KSO5ESvS2JEotsrlbuFLIVU6REl1civVCYaxkrYbLE3jRUQgIRi90psUEl+dxDCJwoIQ3sRYOYUCghcqcMBG0fQbkSvkZRZKKEI3fKQEySxotQ4hwhGMjoOM1ibZTwfrsSE5D//8B5ZwYQpkpIylMpBCgg7iDEI378aQe9myuKCOKJZJ/YYi4l3bErU0LErEEnhVgQQHQBtt9Q0iiCaBpAyNzJtRISiM4HHDNIg70UQpU7ySDWHcaEwJ36XWYjHiY2WIMOypQwSQAlSnguYyIPkS6/FXdtTGMlwC4mChAs1zraHkC9FTrpxbZlMbEiqCfcQeAHSYPOQS9WnYpbQFBMtAUQlRp5lKBB56IXm6vsDCAaisAWQtQBmmgjbBSSRmU9cRFKiCD25EqkEPkGnbTv1Dp/JaRL7B6rWeLRxAaND+o5iAmIaS9WGtiyRoEtxFoegmwENQ6CgYwNaPZik8rOBMJysxNBJO6Ey3h4iSuBfehtpgY0e7Ht1XOG2DODiDDh3XmbybW0erEGEBrlqVZMKJVACOqUHv1XaNC57gBOG9hlELsfAY53Ehv+dB3AFUdKdC0gPo0hWLCr7mNfmBImMTFi7pSBYCD0RIGzXuyGhRLrAohZdUwUIFjSGJ0NECLkVyeEiEx6sRvs/qNmjT1tTIwvXgRkA3Mt2eoU9SVZrF4vVglxihC7a24grj4AuHK/kGu56sUqISSpuMqdSiAm9xBLO4Ar1h1AVXmah3hmDTHJtUz7TrGNO5lCROzJn5NyCAYy2PeMGwWmEKTEroUSJ4XVSQLBHnP68QoJ4moyIU5P1JthD5JxSqQb0a/CK8pAXLknhjjpYC70JmnZ5Gz4ipjYeZekHTkbNI+Oz0Pg2O/9nwIMAFYA4szm5y3UAAAAAElFTkSuQmCCCg==); } div.registrationForm div.loginFormFooterBox { padding: 0px 20px 30px 20px; -/* background: url(../images/loginFormBox.png) no-repeat -813px bottom; */ +/* background: url(./images/loginFormBox.png) no-repeat -813px bottom; */ background: url(data:image/png;charset=utf-8;base64,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) no-repeat -813px bottom; } @@ -560,7 +560,7 @@ div.loginPanelSwitchLanguageBox { font-weight: bold; text-align: center; height: 75px; -/* background: url(../images/languageBox.png) no-repeat 19px -15px; */ +/* background: url(./images/languageBox.png) no-repeat 19px -15px; */ background: url(data:image/png;charset=utf-8;base64,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) no-repeat 19px -15px; width: 400px; margin: 0px; @@ -591,12 +591,12 @@ div#directLoginsBlock { width: 230px; padding: 0px; /* border: 4px solid #ff9400;*/ -/* background: url(../images/directLoginBox.png) repeat-y -262px bottom; */ +/* background: url(./images/directLoginBox.png) repeat-y -262px bottom; */ background: url(data:image/png;charset=utf-8;base64,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) repeat-y -262px bottom; } div#directLoginsBlock div.directLoginsBlockHeaderBox { -/* background: url(../images/directLoginBox.png) no-repeat -11px -13px; */ +/* background: url(./images/directLoginBox.png) no-repeat -11px -13px; */ background: url(data:image/png;charset=utf-8;base64,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) no-repeat -11px -13px; } @@ -614,7 +614,7 @@ ul#directLogins { /* padding: 7px 20px 45px 20px; */ padding: 7px 12px 45px 12px; min-height: 200px; -/* background: url(../images/directLoginBox.png) no-repeat -513px bottom; */ +/* background: url(./images/directLoginBox.png) no-repeat -513px bottom; */ background: url(data:image/png;charset=utf-8;base64,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) no-repeat -513px bottom; } @@ -646,7 +646,7 @@ div#directLoginsDescription { padding: 6px 20px 50px 20px; color: #999999; font-size: 10pt; -/* background: url(../images/directLoginBox.png) no-repeat -513px bottom; */ +/* background: url(./images/directLoginBox.png) no-repeat -513px bottom; */ background: url(data:image/png;charset=utf-8;base64,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) no-repeat -513px bottom; } @@ -728,7 +728,7 @@ div#recordListBlock { } div#recordListFilterHeader { -/* background: url(../images/cardFiltersSprite.gif) repeat-x 0 -114px; */ +/* background: url(./images/cardFiltersSprite.gif) repeat-x 0 -114px; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCFAOYAAISEuaen6ZSU0KCg4IKCt8zM9bOz0qWl552d3JGRzJqb2Gpqlaio7MfH7oeHvcTF6snJ8ZeX1IKCtr+/48HB5cLC6La216Oj5IyLxLy83nd3p3JyoGdnkrm53Li42YCAtMvL9LKy0W5umnl5qo6OyHR1o3BwnY+PqcrK8nt7rrW11X5+sYaFuuDg+WZmj7294Gtrl9HR5MbG7LS01KOjxH5+somJwYaHvH9/so+OyIaGvJKSzamp7IuMxImJwJua2JeX1aKj5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAIUAAAd8gAUMAQcXAwgKEQIJJBg2NwAEBjUtICgQDTIPFRQTLxkdHhYqMzEhNA4sABIfKykjGiUbJiIwCxwnLgUEADo+PTk7AkA/CANBBwE8BjgtHAswIiYbJRojKSsfEgAsDqY0MyoWHh0ZLxMUFQ8yDRAoILmChIaIioyOkJI1gQA7Cg==) repeat-x 0 -114px; } @@ -739,14 +739,14 @@ div#recordFiltersTableWrapper { /* padding: 0px; border: 0px; margin: 0px; */ margin-left: 15px; padding-left: 1px; -/* background: url(../images/cardFiltersSprite.gif) no-repeat left -38px; */ +/* background: url(./images/cardFiltersSprite.gif) no-repeat left -38px; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCFAOYAAISEuaen6ZSU0KCg4IKCt8zM9bOz0qWl552d3JGRzJqb2Gpqlaio7MfH7oeHvcTF6snJ8ZeX1IKCtr+/48HB5cLC6La216Oj5IyLxLy83nd3p3JyoGdnkrm53Li42YCAtMvL9LKy0W5umnl5qo6OyHR1o3BwnY+PqcrK8nt7rrW11X5+sYaFuuDg+WZmj7294Gtrl9HR5MbG7LS01KOjxH5+somJwYaHvH9/so+OyIaGvJKSzamp7IuMxImJwJua2JeX1aKj5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAIUAAAd8gAUMAQcXAwgKEQIJJBg2NwAEBjUtICgQDTIPFRQTLxkdHhYqMzEhNA4sABIfKykjGiUbJiIwCxwnLgUEADo+PTk7AkA/CANBBwE8BjgtHAswIiYbJRojKSsfEgAsDqY0MyoWHh0ZLxMUFQ8yDRAoILmChIaIioyOkJI1gQA7Cg==) no-repeat left -38px; height: 19px; } div#recordFiltersDIV table { padding-right: 1px; -/* background: url(../images/cardFiltersSprite.gif) no-repeat right -19px; */ +/* background: url(./images/cardFiltersSprite.gif) no-repeat right -19px; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCFAOYAAISEuaen6ZSU0KCg4IKCt8zM9bOz0qWl552d3JGRzJqb2Gpqlaio7MfH7oeHvcTF6snJ8ZeX1IKCtr+/48HB5cLC6La216Oj5IyLxLy83nd3p3JyoGdnkrm53Li42YCAtMvL9LKy0W5umnl5qo6OyHR1o3BwnY+PqcrK8nt7rrW11X5+sYaFuuDg+WZmj7294Gtrl9HR5MbG7LS01KOjxH5+somJwYaHvH9/so+OyIaGvJKSzamp7IuMxImJwJua2JeX1aKj5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAIUAAAd8gAUMAQcXAwgKEQIJJBg2NwAEBjUtICgQDTIPFRQTLxkdHhYqMzEhNA4sABIfKykjGiUbJiIwCxwnLgUEADo+PTk7AkA/CANBBwE8BjgtHAswIiYbJRojKSsfEgAsDqY0MyoWHh0ZLxMUFQ8yDRAoILmChIaIioyOkJI1gQA7Cg==) no-repeat right -19px; } @@ -756,7 +756,7 @@ div#recordFiltersDIV table tbody tr td { } div#recordFiltersDIV table tbody tr td div { -/* background: url(../images/cardFiltersSprite.gif) no-repeat right -38px; */ +/* background: url(./images/cardFiltersSprite.gif) no-repeat right -38px; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCFAOYAAISEuaen6ZSU0KCg4IKCt8zM9bOz0qWl552d3JGRzJqb2Gpqlaio7MfH7oeHvcTF6snJ8ZeX1IKCtr+/48HB5cLC6La216Oj5IyLxLy83nd3p3JyoGdnkrm53Li42YCAtMvL9LKy0W5umnl5qo6OyHR1o3BwnY+PqcrK8nt7rrW11X5+sYaFuuDg+WZmj7294Gtrl9HR5MbG7LS01KOjxH5+somJwYaHvH9/so+OyIaGvJKSzamp7IuMxImJwJua2JeX1aKj5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAIUAAAd8gAUMAQcXAwgKEQIJJBg2NwAEBjUtICgQDTIPFRQTLxkdHhYqMzEhNA4sABIfKykjGiUbJiIwCxwnLgUEADo+PTk7AkA/CANBBwE8BjgtHAswIiYbJRojKSsfEgAsDqY0MyoWHh0ZLxMUFQ8yDRAoILmChIaIioyOkJI1gQA7Cg==) no-repeat right -38px; } @@ -767,7 +767,7 @@ div#recordFiltersDIV table tbody tr td div a { color: white; line-height: 19px; height: 19px; -/* background: url(../images/cardFiltersSprite.gif) no-repeat left -19px; */ +/* background: url(./images/cardFiltersSprite.gif) no-repeat left -19px; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCFAOYAAISEuaen6ZSU0KCg4IKCt8zM9bOz0qWl552d3JGRzJqb2Gpqlaio7MfH7oeHvcTF6snJ8ZeX1IKCtr+/48HB5cLC6La216Oj5IyLxLy83nd3p3JyoGdnkrm53Li42YCAtMvL9LKy0W5umnl5qo6OyHR1o3BwnY+PqcrK8nt7rrW11X5+sYaFuuDg+WZmj7294Gtrl9HR5MbG7LS01KOjxH5+somJwYaHvH9/so+OyIaGvJKSzamp7IuMxImJwJua2JeX1aKj5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAIUAAAd8gAUMAQcXAwgKEQIJJBg2NwAEBjUtICgQDTIPFRQTLxkdHhYqMzEhNA4sABIfKykjGiUbJiIwCxwnLgUEADo+PTk7AkA/CANBBwE8BjgtHAswIiYbJRojKSsfEgAsDqY0MyoWHh0ZLxMUFQ8yDRAoILmChIaIioyOkJI1gQA7Cg==) no-repeat left -19px; } @@ -778,17 +778,17 @@ div#recordFiltersDIV table tbody tr td:hover div a { div#recordFiltersDIV table tbody tr td.selectedTab { height: 19px; -/* background: url(../images/cardFiltersSprite.gif) repeat-x -57px; */ +/* background: url(./images/cardFiltersSprite.gif) repeat-x -57px; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCFAOYAAISEuaen6ZSU0KCg4IKCt8zM9bOz0qWl552d3JGRzJqb2Gpqlaio7MfH7oeHvcTF6snJ8ZeX1IKCtr+/48HB5cLC6La216Oj5IyLxLy83nd3p3JyoGdnkrm53Li42YCAtMvL9LKy0W5umnl5qo6OyHR1o3BwnY+PqcrK8nt7rrW11X5+sYaFuuDg+WZmj7294Gtrl9HR5MbG7LS01KOjxH5+somJwYaHvH9/so+OyIaGvJKSzamp7IuMxImJwJua2JeX1aKj5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAIUAAAd8gAUMAQcXAwgKEQIJJBg2NwAEBjUtICgQDTIPFRQTLxkdHhYqMzEhNA4sABIfKykjGiUbJiIwCxwnLgUEADo+PTk7AkA/CANBBwE8BjgtHAswIiYbJRojKSsfEgAsDqY0MyoWHh0ZLxMUFQ8yDRAoILmChIaIioyOkJI1gQA7Cg==) repeat-x -57px; } div#recordFiltersDIV table tbody tr td.selectedTab div { -/* background: url(../images/cardFiltersSprite.gif) no-repeat right -95px; */ +/* background: url(./images/cardFiltersSprite.gif) no-repeat right -95px; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCFAOYAAISEuaen6ZSU0KCg4IKCt8zM9bOz0qWl552d3JGRzJqb2Gpqlaio7MfH7oeHvcTF6snJ8ZeX1IKCtr+/48HB5cLC6La216Oj5IyLxLy83nd3p3JyoGdnkrm53Li42YCAtMvL9LKy0W5umnl5qo6OyHR1o3BwnY+PqcrK8nt7rrW11X5+sYaFuuDg+WZmj7294Gtrl9HR5MbG7LS01KOjxH5+somJwYaHvH9/so+OyIaGvJKSzamp7IuMxImJwJua2JeX1aKj5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAIUAAAd8gAUMAQcXAwgKEQIJJBg2NwAEBjUtICgQDTIPFRQTLxkdHhYqMzEhNA4sABIfKykjGiUbJiIwCxwnLgUEADo+PTk7AkA/CANBBwE8BjgtHAswIiYbJRojKSsfEgAsDqY0MyoWHh0ZLxMUFQ8yDRAoILmChIaIioyOkJI1gQA7Cg==) no-repeat right -95px; } div#recordFiltersDIV table tbody tr td.selectedTab div a { -/* background: url(../images/cardFiltersSprite.gif) no-repeat left -76px; */ +/* background: url(./images/cardFiltersSprite.gif) no-repeat left -76px; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCFAOYAAISEuaen6ZSU0KCg4IKCt8zM9bOz0qWl552d3JGRzJqb2Gpqlaio7MfH7oeHvcTF6snJ8ZeX1IKCtr+/48HB5cLC6La216Oj5IyLxLy83nd3p3JyoGdnkrm53Li42YCAtMvL9LKy0W5umnl5qo6OyHR1o3BwnY+PqcrK8nt7rrW11X5+sYaFuuDg+WZmj7294Gtrl9HR5MbG7LS01KOjxH5+somJwYaHvH9/so+OyIaGvJKSzamp7IuMxImJwJua2JeX1aKj5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAIUAAAd8gAUMAQcXAwgKEQIJJBg2NwAEBjUtICgQDTIPFRQTLxkdHhYqMzEhNA4sABIfKykjGiUbJiIwCxwnLgUEADo+PTk7AkA/CANBBwE8BjgtHAswIiYbJRojKSsfEgAsDqY0MyoWHh0ZLxMUFQ8yDRAoILmChIaIioyOkJI1gQA7Cg==) no-repeat left -76px; } @@ -808,7 +808,7 @@ div#recordFiltersSearchPanel { div#recordFiltersSearchInnerPanel { padding: 10px 24px 25px 24px; -/* background: url(../images/recordFilterBackground.png) no-repeat -10px -138px; */ +/* background: url(./images/recordFilterBackground.png) no-repeat -10px -138px; */ background: url(data:image/png;charset=utf-8;base64,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) no-repeat -10px -138px; } @@ -832,7 +832,7 @@ div#recordListAndDetailBlock { table#recordListAndDetailBlockTABLE { width: 100%; -/* background: url(../images/cardBlockLowerBorder.gif) repeat-x 0 bottom; */ +/* background: url(./images/cardBlockLowerBorder.gif) repeat-x 0 bottom; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhBwAZANUAAP///6qq7tzc+OLi+eXl+vz8/v7+/9/f+dnZ9/b2/fr7/vT0/fv7/vLy/Ojo+vj5/vT1/dnZ+Ovq++3t+/n5/e3t/Orq+/n5/u7t/Orr+/Dv/PPy/PLy/e/v/OXk+tna9/38/uvq+ufn++Df+P7+/vX1/fj5/fz9/+jo+9/f+Ojn++/w/P79//v6/vb3/efo+u3u/Pf3/ejn+vDw/PDw+/X0/e/w+/f2/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAHABkAAAZoQIBwSCwaj8ikEkAyOFnOAqhALZwYCkZLkaVQHpfLw+SKJRK3M2RRKy0WkA2H06hvNDMbbdXRVCYYMBUYExYSIRkSGRYiMi8qDg4oBJSVHgOYmQMpIweengKhogIIEREIHwgIAaytAUEAOwo=) repeat-x 0 bottom; } @@ -852,12 +852,12 @@ div#recordListBlockHeader table.recordListBlockHeaderTABLE { width: 100%; height: 30px; color: white; -/* background: url(../images/cardsBlockRoundCorners.gif) no-repeat right -51px; */ +/* background: url(./images/cardsBlockRoundCorners.gif) no-repeat right -51px; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhCQBkALMMAP///z8/b7e3yaKiufX19zQ0Zzw8bVxchaSkuz4+bltbhDk5av///wAAAAAAAAAAACH5BAEAAAwALAAAAAAJAGQAAARTEEhAhgplimCYl8jijYAwnkRwjkO3MsfrJTJT1Hiu73zv/8CgcEgsGo/IpHJZKyQOA8IEMDIEBJMXQvJaYGUBgswwqClqKtmNyW673/C4fE4/RgAAOwo=) no-repeat right -51px; } div#recordListBlockHeader table.recordListBlockHeaderTABLE tbody tr td.recordBlockTitleTD { -/* background: url(../images/cardsBlockRoundCorners.gif) no-repeat left 0px; */ +/* background: url(./images/cardsBlockRoundCorners.gif) no-repeat left 0px; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhCQBkALMMAP///z8/b7e3yaKiufX19zQ0Zzw8bVxchaSkuz4+bltbhDk5av///wAAAAAAAAAAACH5BAEAAAwALAAAAAAJAGQAAARTEEhAhgplimCYl8jijYAwnkRwjkO3MsfrJTJT1Hiu73zv/8CgcEgsGo/IpHJZKyQOA8IEMDIEBJMXQvJaYGUBgswwqClqKtmNyW673/C4fE4/RgAAOwo=) no-repeat left 0px; } @@ -941,12 +941,12 @@ ul#records li.selected span { /* @group Bottom rounded corners */ td#cardBoxLowerLeftTD { -/* background: url(../images/cardBlockLowerRoundedCorner.gif) no-repeat left -32px; */ +/* background: url(./images/cardBlockLowerRoundedCorner.gif) no-repeat left -32px; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhCQBkANUyAP////Ly/PDw/O3t/OLi+ejo+vz8//n5/urq++Xl+tzc+Ovr+/z8/t/f+Pv6/vb3/fT0/f7+//v7/vT1/efo+/79/8vL9fr6/uXl+e3t+/3+/9jY9/b2/vX1/d/f+ff2/fb2/fj5/uHh+dnZ+OLi+rOz8NnZ99vb+LKy7/r7/6ur7sDA8vLy/f7+/vn4/u/w/Pj4/vX0/P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADIALAAAAAAJAGQAAAb3QJlwSCwaj8ikcslsOp/QqHRKfQKu2Kx2y+16v+BtRFNpjSuRisHAYKzdDMfFIZE7UpfQYa8/wFwfDyAcgSAPHB0QExCJExMxAZGSkSwClpeWLwObnAMZGQsLCAiipAgUFAUFqaoFGwkJGLCyGBIEBCS3uQQAIhYNwA0eHlcnFgrIyFgiJRYmIyNZEhsrKCpV2Nna29zd3t9h4eLj5FdoFRoRLegRcG9uBhcpdnVzLjB8ewchHIIPHxwMfYjhiJEiRiwmTXqBCdOnTpxMSQzVapUqVLRmwdqgqyMBCcOCNbAgAkAyZBZOXIFmwkKJkldUoFixQUKWIAA7Cg==) no-repeat left -32px; } td#cardBoxLowerRightTD { -/* background: url(../images/cardBlockLowerRoundedCorner.gif) no-repeat right -82px; */ +/* background: url(./images/cardBlockLowerRoundedCorner.gif) no-repeat right -82px; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhCQBkANUyAP////Ly/PDw/O3t/OLi+ejo+vz8//n5/urq++Xl+tzc+Ovr+/z8/t/f+Pv6/vb3/fT0/f7+//v7/vT1/efo+/79/8vL9fr6/uXl+e3t+/3+/9jY9/b2/vX1/d/f+ff2/fb2/fj5/uHh+dnZ+OLi+rOz8NnZ99vb+LKy7/r7/6ur7sDA8vLy/f7+/vn4/u/w/Pj4/vX0/P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADIALAAAAAAJAGQAAAb3QJlwSCwaj8ikcslsOp/QqHRKfQKu2Kx2y+16v+BtRFNpjSuRisHAYKzdDMfFIZE7UpfQYa8/wFwfDyAcgSAPHB0QExCJExMxAZGSkSwClpeWLwObnAMZGQsLCAiipAgUFAUFqaoFGwkJGLCyGBIEBCS3uQQAIhYNwA0eHlcnFgrIyFgiJRYmIyNZEhsrKCpV2Nna29zd3t9h4eLj5FdoFRoRLegRcG9uBhcpdnVzLjB8ewchHIIPHxwMfYjhiJEiRiwmTXqBCdOnTpxMSQzVapUqVLRmwdqgqyMBCcOCNbAgAkAyZBZOXIFmwkKJkldUoFixQUKWIAA7Cg==) no-repeat right -82px; } @@ -964,7 +964,7 @@ div#newRecordPanel { div#newRecordInnerPanel { width: 400px; height: 160px; -/* background: url(../images/newRecordPanelBackground.png) no-repeat 0 -165px; */ +/* background: url(./images/newRecordPanelBackground.png) no-repeat 0 -165px; */ background: url(data:image/png;charset=utf-8;base64,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) no-repeat 0 -165px; } @@ -1099,7 +1099,7 @@ div.noteFieldContent { } .resizable-textarea .grippie { height: 5px; -/* background: #eee url(../images/grippie.png) no-repeat center 1px; */ +/* background: #eee url(./images/grippie.png) no-repeat center 1px; */ background: #eee url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAFCAMAAACD1meMAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAGUExURbu7u////3iwjPUAAAACdFJOU/8A5bcwSgAAABRJREFUeNpiYMADGHEDBhroAwgwAA9QADeT0qnSAAAAAElFTkSuQmCCCg==) no-repeat center 1px; border: 1px solid #ddd; border-top-width: 0; @@ -1195,7 +1195,7 @@ div.Clipperz_recordFieldData a.scrambleLink { } div.Clipperz_recordFieldData div.passwordBackground, div.passwordEntropy { -/* background: url(../images/entropyBackground.gif) repeat-x 0 0; */ +/* background: url(./images/entropyBackground.gif) repeat-x 0 0; */ background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCWAOYAABb8Ev9KAP81AP8hABvxAP86AP95AP9qAP8FAP8HAP9QAP9SAP9wAPCGAP8PAP9jAP8XAP9EAP88AP8+AP9UAP9bAP8bAP8JAP8tAP9WAAj6AAv5AP8rAP8fANSUAP8zANGWAMScAP9AAA/3AP8lADvhAF7PAOyIALGmAI23AC/nAJG2ADPlAHXDAOSMAEfbACfrAL2gAKGuAP8RAM2YAIW8AP9YAMiaAIG+AELdAHrBAGbLAP8ZAP99AD7fABfzAKWsAP9mAP9IAP9GAPuBAP8jAMGeAP9rAP9xAP9CAP8TAP8vADfjAP8VABT0AP9OAPiDAP8dAP9gAFbTAKmqAP9oAPSEAP9iANyQAJW0AJ2vAIq6AP8TEh/vALWkAP91AH6/AP9MAP84AP94AE7XAP82AP8LAP8oAP97AGLOANiSAG7HAP8wAFrRAP8DAOCOAP9tAP9zAP9aAP8nAP8NAGrJAOiKAHHGAFLVAJmyAK2nACPtALmiAErZAP9eACvpACH5BAAAAAAALAAAAAABAJYAAAeJgFxuCAkXZnQOM0pNEDwWUR0DRSRzZxwYS2wfAmViBRITIkkRQ0IBYU8KCxQZNnIVflJXD0FVB0dwDEhxX2MGaD1EUFYNJ3Yub1hqHiA0NyFGMXxeKHpUQDJaeVkrKVs1OGA6LXdrdTtpJm1TeGR9Lzk+JUwsKn8we10EP04jGxoAAgocSLBgwEAAOwo=) repeat-x 0 0; } @@ -1207,14 +1207,14 @@ div.Clipperz_recordFieldData input.scrambledField { color: white; padding-top: 4px; border: 0px solid white; -/* background: transparent url(../images/scrambledValue.png) no-repeat 0 0px; */ +/* background: transparent url(./images/scrambledValue.png) no-repeat 0 0px; */ background: transparent url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAEcAAAAgCAYAAABAQWX9AAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAANXSURBVHja7FgxixNBFJ6TEyFXxEBiYWFEuCKHcEJio6RRIZAycF3qjWU67xcEr0par04Q7mA7hSAWErVyC1GTIiAmoMUlcHeFQblC53uZWTbJzmZ3cazmwUBm5+ObN9978zb7Nv5wY8Z87ZKRwIjz78SZTqes2+2ywWAQiqTX6xE+jOnkjoE/5OMgkjiTyYTZts3G43GoHRzHIXwY08kdA3/Mx/5acRDR2WymZBmNRoHz5ezwcunkjoF3AsT6ysepnGzKH1AbqufzeZZOp91N2+02PYc1m033eaPRIBzwcnOkM7BYr1QqrFQqaeeOiMdmBT5u8bHnEeJAZBHWn/LxZEGcbDZLKktnZYrCvBsnEgl6ViwWad17v2U6e0XQzR0DbwkhvLVGXq09IRzZxvL/HCjdarXcCFSrVdpcZYg+iqAUoV6vu4f0uz66uGPga6Igk4Z8vOIjFViQQQ7npdNyrjosIgYHECE5D3qT6OKOiHdE9qREtsi5+m0FMjicy+Uoqrir2ERV/TudDh3OsizCwzFg/QqkTu4Y+JqoN0d8PBMi7S8X65XMwf0EOQxFDIfJZDIr7HAEWImBM3DMD6ubOyL+VNQVFN1HQpgjb61R1hxj5vPBiGPE0WibL/tGBJM5Rpz/IM7P8ykbfuiyyThcz+Xb5x7hw5hO7hj46P2c2fmE9d/Z7OwkXM/lx9AhfBjTyR0Df1zeCdHPQUQvfqt7Lmcno8D5cnZ4uXRyx8BH7+dAbah+fTvPtpJpd9OPr9vs+3DOV37cdJ+/ed4gHPAXv+abI53BgfWd+xW2XShp546Id3imFPgb2refw9ccvrbaz7l6LctTfkqE3hSFuRvzCFy+Mm8B3LxdpIN577dMZ68Iurmj4vnhLSGEW2vk1eJri/2cF18Wv62g9Hu75abi7sMqba4yRB9FUIpwr1J3D+l3fXRxx8DXuCiHQpRw/ZzRpx45L52Wc9VhETE4gAjJubLnopE7Ip76N1yUFLIF12ltPwepDuUzN3IUVdxVbNJ/aysi1aHD3S1b7A7HwzFg/QqkTu4YeGSN28+BSKH6Obifuw/mPRcUMRwmkVzti8CRBMdKDJyBY1tJdT9HF3dEPPVzuCDr+znLNceY+Xww4hhxNNpfAQYAoVB5BoFW//8AAAAASUVORK5CYIIK) no-repeat 0 0px; } div.Clipperz_recordFieldData input.scrambledField:focus { color: #b5d5ff; border: 0px solid white; -/* background: transparent url(../images/scrambledValue.png) no-repeat 0 -16px; */ +/* background: transparent url(./images/scrambledValue.png) no-repeat 0 -16px; */ background: transparent url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAEcAAAAgCAYAAABAQWX9AAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAANXSURBVHja7FgxixNBFJ6TEyFXxEBiYWFEuCKHcEJio6RRIZAycF3qjWU67xcEr0par04Q7mA7hSAWErVyC1GTIiAmoMUlcHeFQblC53uZWTbJzmZ3cazmwUBm5+ObN9978zb7Nv5wY8Z87ZKRwIjz78SZTqes2+2ywWAQiqTX6xE+jOnkjoE/5OMgkjiTyYTZts3G43GoHRzHIXwY08kdA3/Mx/5acRDR2WymZBmNRoHz5ezwcunkjoF3AsT6ysepnGzKH1AbqufzeZZOp91N2+02PYc1m033eaPRIBzwcnOkM7BYr1QqrFQqaeeOiMdmBT5u8bHnEeJAZBHWn/LxZEGcbDZLKktnZYrCvBsnEgl6ViwWad17v2U6e0XQzR0DbwkhvLVGXq09IRzZxvL/HCjdarXcCFSrVdpcZYg+iqAUoV6vu4f0uz66uGPga6Igk4Z8vOIjFViQQQ7npdNyrjosIgYHECE5D3qT6OKOiHdE9qREtsi5+m0FMjicy+Uoqrir2ERV/TudDh3OsizCwzFg/QqkTu4Y+JqoN0d8PBMi7S8X65XMwf0EOQxFDIfJZDIr7HAEWImBM3DMD6ubOyL+VNQVFN1HQpgjb61R1hxj5vPBiGPE0WibL/tGBJM5Rpz/IM7P8ykbfuiyyThcz+Xb5x7hw5hO7hj46P2c2fmE9d/Z7OwkXM/lx9AhfBjTyR0Df1zeCdHPQUQvfqt7Lmcno8D5cnZ4uXRyx8BH7+dAbah+fTvPtpJpd9OPr9vs+3DOV37cdJ+/ed4gHPAXv+abI53BgfWd+xW2XShp546Id3imFPgb2refw9ccvrbaz7l6LctTfkqE3hSFuRvzCFy+Mm8B3LxdpIN577dMZ68Iurmj4vnhLSGEW2vk1eJri/2cF18Wv62g9Hu75abi7sMqba4yRB9FUIpwr1J3D+l3fXRxx8DXuCiHQpRw/ZzRpx45L52Wc9VhETE4gAjJubLnopE7Ip76N1yUFLIF12ltPwepDuUzN3IUVdxVbNJ/aysi1aHD3S1b7A7HwzFg/QqkTu4YeGSN28+BSKH6Obifuw/mPRcUMRwmkVzti8CRBMdKDJyBY1tJdT9HF3dEPPVzuCDr+znLNceY+Xww4hhxNNpfAQYAoVB5BoFW//8AAAAASUVORK5CYIIK) no-repeat 0 -16px; } @@ -1232,7 +1232,7 @@ div.passwordTooltip { font-size: 10pt; font-weight: bold; color: black; - background: url(../images/tooltipBackground.png) no-repeat 0 -30px; + background: url(./images/tooltipBackground.png) no-repeat 0 -30px; width: 335px; height: 148px; z-index: 10000; @@ -1409,7 +1409,7 @@ div.directLoginCollapseLink { width: 15px; height: 15px; cursor: pointer; -/* background: url(../images/directLogin/toggle.png) no-repeat; */ +/* background: url(./images/directLogin/toggle.png) no-repeat; */ background: url(data:image/png;charset=utf-8;base64,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) no-repeat; overflow: hidden; } @@ -1736,7 +1736,7 @@ div.clipperzSubPanel { } div.clipperzSubPanel span.read-only { -/* background-image: url(../images/read-only_background.png); */ +/* background-image: url(./images/read-only_background.png); */ display: block; color: #666666; padding: 10px; @@ -1972,7 +1972,7 @@ div.passwordEntropy { margin-bottom: 4px; height: 3px; font-size: 1pt; -/* background: url(../images/entropyBackground.gif) repeat-x 0 0; */ +/* background: url(./images/entropyBackground.gif) repeat-x 0 0; */ line-height: 3px; } @@ -2056,14 +2056,14 @@ div#donateSplash div.ydlg-dlg-body div.ydlg-ft { /* @group Password Generator */ div.Clipperz_PasswordGenerator_button { -/* background: url(../images/passwordAssistant.png) 0 22px; */ +/* background: url(./images/passwordAssistant.png) 0 22px; */ background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAuCAMAAADuvZJ5AAACZFBMVEX///8APHTHyc4zM2bAwsn+/v/6+vrW2N/z9fjw8vX5/P329/ra3OH92InllwD4sjDd3+T+/v7/8M/3+Pnd3uL80nklV4P3+vwWTX7r7fLj5+v19vng4ujo6u9cXYW7vcuVlq56laiPkKtcXISpqr+EhaP09fnNz9fy9Pd9mar8ymnP0dmNjqmBgqHZ2+FniKDf4en6wVD8znFVfaJFRnR7lan5ukH+3ZX6xFnO0Nnn6e/09PCAgaH7x2H29vNtbpJXWIHw8/Z1dpfz9PjU1uCNnqHf4eiwscX29vTl5+319fF/f5/a3OLy8u5qi6Jmh6D2+fuHiKVsjKT09fji5Ov9/fzX2uLx8ew4OGr3+vv4tTXd3+WtrsP09O9gYIjy8u380nq/wdBmZoxWVoD7ymrz8+5VVoBYWYI7O2y+wM3u3K16fJw5OWo9PW6Ula+oqb/Z2+Dq7PFVVYC8vs4+Pm79249sbpGvsMTw8OtKcZP8znLttUf4szDr6OL6ukH6wFD+35rq6OH29vLs6+bv6NK/x8rs6+T5vUnt6ub5vUjs6+Xg3dTr6OH91YL+/v394Jv7yGCjrrRIbpDo5d+xt7bz8e7Az93x8Or47dPm493V3+i/ztvp5uDq5+Dm49y2vb3l4tvv7ujb1836+vn91YH4+PeEhnH4tDXk4tnk4tr5tzv7z3L6xFjt7OX4+Pb7+/rx8Ov5uDvvtUnw7urw7+n80Xro5d7n5N3u7eb6wFH6vkn5tzr4tzv6vUn19PL29PL19fK/ztzu7ef6w1jw8Orr6uPr6+X5ukLi39aDhG/5tDX6x2HHdGeUAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAeRJREFUOMtjYGPADdgYFMUYMYGEPkhO0bVFCBPMcDUFyollifJiAtEsMaAcY4MoKyYQ7WcEyZmLckGAeCSXuHiAoziILWoOlisV5YYAaTVp52BubjVpIFu0FCzHK8oBAxocHJ5WYJYoL1iuV5QTDly8ixwC3YAM0SVguYQEScnC4vzyGBV3lWRmIJAzkJQU3QqWMzKSlVXNYYYBE5uSvBDZ1VVgOa0UKak0uBSzvVR2WZhUihZYznaCjEyik5Kuqk5cBFAuNylDKVrmtC1Y7rCFABT4ZKaD7bMUEFhjAZarN+SBAj0edQVlZQVtngKenYZgufZd7EhAXh5M7e0Ey9UdZ8EEZmZguY2rmDDBnt1AOQbGU1EimCBqOUhOYhM/FlBTLQGU81/Ghw2c9AOlGE2s6SWIAT8gPw0aT8OiZZYxOA0eFMQC+maD02BoKJY0uH4/OMzYFmNJg/s2g+WWrsOSBqd2gOU8PLCkwQ21YDk7OyxpcHoPWK7pAJY0uGUuWM7LC0saXDgHLGdtjSUNHpoMlouNxZIGd2wDy6WmYkmDa7eD5Xx9saTBrplgufh4LGmwbR5YLjwcSxo8ugAsV3EESxpsXAFOg83HsMit7AanwdYTWOQWzQenwcqJwphgyiTy0yAAb2mGoAo92xQAAAAASUVORK5CYIIK) 0 22px; width: 27px; height: 22px; } div.Clipperz_PasswordGenerator_button.hover { -/* background: url(../images/passwordAssistant.png) 0 -1px; */ +/* background: url(./images/passwordAssistant.png) 0 -1px; */ background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAuCAMAAADuvZJ5AAACZFBMVEX///8APHTHyc4zM2bAwsn+/v/6+vrW2N/z9fjw8vX5/P329/ra3OH92InllwD4sjDd3+T+/v7/8M/3+Pnd3uL80nklV4P3+vwWTX7r7fLj5+v19vng4ujo6u9cXYW7vcuVlq56laiPkKtcXISpqr+EhaP09fnNz9fy9Pd9mar8ymnP0dmNjqmBgqHZ2+FniKDf4en6wVD8znFVfaJFRnR7lan5ukH+3ZX6xFnO0Nnn6e/09PCAgaH7x2H29vNtbpJXWIHw8/Z1dpfz9PjU1uCNnqHf4eiwscX29vTl5+319fF/f5/a3OLy8u5qi6Jmh6D2+fuHiKVsjKT09fji5Ov9/fzX2uLx8ew4OGr3+vv4tTXd3+WtrsP09O9gYIjy8u380nq/wdBmZoxWVoD7ymrz8+5VVoBYWYI7O2y+wM3u3K16fJw5OWo9PW6Ula+oqb/Z2+Dq7PFVVYC8vs4+Pm79249sbpGvsMTw8OtKcZP8znLttUf4szDr6OL6ukH6wFD+35rq6OH29vLs6+bv6NK/x8rs6+T5vUnt6ub5vUjs6+Xg3dTr6OH91YL+/v394Jv7yGCjrrRIbpDo5d+xt7bz8e7Az93x8Or47dPm493V3+i/ztvp5uDq5+Dm49y2vb3l4tvv7ujb1836+vn91YH4+PeEhnH4tDXk4tnk4tr5tzv7z3L6xFjt7OX4+Pb7+/rx8Ov5uDvvtUnw7urw7+n80Xro5d7n5N3u7eb6wFH6vkn5tzr4tzv6vUn19PL29PL19fK/ztzu7ef6w1jw8Orr6uPr6+X5ukLi39aDhG/5tDX6x2HHdGeUAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAeRJREFUOMtjYGPADdgYFMUYMYGEPkhO0bVFCBPMcDUFyollifJiAtEsMaAcY4MoKyYQ7WcEyZmLckGAeCSXuHiAoziILWoOlisV5YYAaTVp52BubjVpIFu0FCzHK8oBAxocHJ5WYJYoL1iuV5QTDly8ixwC3YAM0SVguYQEScnC4vzyGBV3lWRmIJAzkJQU3QqWMzKSlVXNYYYBE5uSvBDZ1VVgOa0UKak0uBSzvVR2WZhUihZYznaCjEyik5Kuqk5cBFAuNylDKVrmtC1Y7rCFABT4ZKaD7bMUEFhjAZarN+SBAj0edQVlZQVtngKenYZgufZd7EhAXh5M7e0Ey9UdZ8EEZmZguY2rmDDBnt1AOQbGU1EimCBqOUhOYhM/FlBTLQGU81/Ghw2c9AOlGE2s6SWIAT8gPw0aT8OiZZYxOA0eFMQC+maD02BoKJY0uH4/OMzYFmNJg/s2g+WWrsOSBqd2gOU8PLCkwQ21YDk7OyxpcHoPWK7pAJY0uGUuWM7LC0saXDgHLGdtjSUNHpoMlouNxZIGd2wDy6WmYkmDa7eD5Xx9saTBrplgufh4LGmwbR5YLjwcSxo8ugAsV3EESxpsXAFOg83HsMit7AanwdYTWOQWzQenwcqJwphgyiTy0yAAb2mGoAo92xQAAAAASUVORK5CYIIK) 0 -1px; } @@ -2151,17 +2151,17 @@ div#loginInfo { margin: 0px; border: 0px; width: 389px; - background: url(../images/loginInfoBackground.png) repeat-y -405px 0; + background: url(./images/loginInfoBackground.png) repeat-y -405px 0; } div#loginInfo div.header { - background: url(../images/loginInfoBackground.png) no-repeat 0 0; + background: url(./images/loginInfoBackground.png) no-repeat 0 0; min-height: 20px; height: 20px; } div#loginInfo div.footer { - background: url(../images/loginInfoBackground.png) 389px -5px; + background: url(./images/loginInfoBackground.png) 389px -5px; min-height: 20px; height: 20px; } @@ -2225,14 +2225,14 @@ div#loginInfo div.loginInfo_latest div.icons img { /* @group Latest */ div#loginInfo div.content div.loginInfo_latest { - background: url(../images/loginInfoInnerBackground.png) repeat-y -349px 0px; + background: url(./images/loginInfoInnerBackground.png) repeat-y -349px 0px; width: 349px; min-width: 349px; clear: both; } div#loginInfo div.loginInfo_latest div.inner_header { - background: url(../images/loginInfoInnerBackground.png) 0px 0px; + background: url(./images/loginInfoInnerBackground.png) 0px 0px; min-height: 6px; height: 6px; max-height: 6px; @@ -2254,7 +2254,7 @@ div#loginInfo div.loginInfo_latest div.text { div#loginInfo div.loginInfo_latest div.inner_footer { - background: url(../images/loginInfoInnerBackground.png) 349px -9px; + background: url(./images/loginInfoInnerBackground.png) 349px -9px; min-height: 6px; height: 6px; max-height: 6px; @@ -2701,7 +2701,7 @@ div.importWizardStepsBox { width:600px; - background: url(../images/importStepsBackground.png) no-repeat; + background: url(./images/importStepsBackground.png) no-repeat; } div.importWizardStepsInnerBox { @@ -2711,7 +2711,7 @@ div.importWizardStepsInnerBox { min-height: 53px; max-height: 53px; - background: url(../images/importStepsBackground.png) repeat-x 0 -53px; + background: url(./images/importStepsBackground.png) repeat-x 0 -53px; } div.importWizardStepsBoxFooter { @@ -2725,7 +2725,7 @@ div.importWizardStepsBoxFooter { min-width: 18px; max-width: 18px; - background: url(../images/importStepsBackground.png) no-repeat -9px -106px; + background: url(./images/importStepsBackground.png) no-repeat -9px -106px; } div.importWizardStepsBox table.importWizardSteps tbody tr td { @@ -2756,23 +2756,23 @@ div.importWizardStepsBox table.importWizardSteps tbody tr td div span { div.importWizardStepsBox table.importWizardSteps tbody tr td.current div { padding-left: 8px; - background: url(../images/importStepsLabelsBackground.png) repeat-x 0 0px; + background: url(./images/importStepsLabelsBackground.png) repeat-x 0 0px; } div.importWizardStepsBox table.importWizardSteps tbody tr td.current div span { color: white; padding-right: 8px; - background: url(../images/importStepsLabelsBackground.png) repeat-x right -23px; + background: url(./images/importStepsLabelsBackground.png) repeat-x right -23px; } div.importWizardStepsBox table.importWizardSteps tbody tr td.currentProcessing div { padding-left: 8px; - background: url(../images/importStepsLeftLabelsBackground.png) repeat-x 0 0px; + background: url(./images/importStepsLeftLabelsBackground.png) repeat-x 0 0px; } div.importWizardStepsBox table.importWizardSteps tbody tr td.currentProcessing div span { padding-right: 8px; - background: url(../images/importStepsLeftLabelsBackground.png) repeat-x right -23px; + background: url(./images/importStepsLeftLabelsBackground.png) repeat-x right -23px; } /* @group Steps separator */ @@ -2781,7 +2781,7 @@ div.importWizardStepsBox table.importWizardSteps tbody tr td.stepSeparator div { max-width: 18px; min-width: 18px; - background: url(../images/importStepsSeparator.png) no-repeat 0 2px; + background: url(./images/importStepsSeparator.png) no-repeat 0 2px; } div.importWizardStepsBox table.importWizardSteps tbody tr td.stepSeparator div span { @@ -2793,7 +2793,7 @@ div.importWizardStepsBox table.importWizardSteps tbody tr td.stepSeparatorProces max-width: 18px; min-width: 18px; - background: url(../images/importActiveStepsSeparator.png) no-repeat 0 2px; + background: url(./images/importActiveStepsSeparator.png) no-repeat 0 2px; } div.importWizardStepsBox table.importWizardSteps tbody tr td.stepSeparatorProcessing div span { diff --git a/frontend/beta/css/clipperz/ie.css b/frontend/beta/css/clipperz/ie.css index 320363c..99bf2d8 100644 --- a/frontend/beta/css/clipperz/ie.css +++ b/frontend/beta/css/clipperz/ie.css @@ -46,7 +46,7 @@ div.clipperzLoginForm div.registrationForm form { div#newRecordInnerPanel { width: 350px; height: 160px; - background: url(../images/newRecordPanelBackground.png) no-repeat 0 -165px; + background: url(./images/newRecordPanelBackground.png) no-repeat 0 -165px; /* background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAY4AAAFQCAYAAACoMJkjAAANIWlDQ1BJQ0MgUHJvZmlsZQAAeJyV13k0lG8bB/BrFsYyZhhjDyO7iLITskQi2feS7AwzMQkpS1KILKFoQWihKJGoqH5kSUghoajIkj1Llnn/kOr9nff3vue9/njO9dzPc859P885n+99bgC8miuVSkYCgH8ALdDSSI9k7+BIwnQCBnDAA1gQdnULouqam5vCP9Z8JyAAADrkXKlU8j+/9x8LF2jv4AiAkAUAotd6vxMAiIfWe2sAIB6lUWkACG8AILp5u7oDIMIBQDbQ2lIfAHEDAHBe630lAOAOrfcNAIALdvOiASC6ARgJAe4+AQCYcQBGbXePIDcAnCwAuLsHufkD4JIBwMzfn+IOgPsIAFJu1EAaAJ4JAOTsHRxJ60t2igdQ4gNgMvk9djQdoDwXQGrv7zHRBwDcrgB5ib/HZi0BAQAI7tYgT8XtAACAwOoBMPTT6bMSAJhUgNUUOn05j05fvQaA6gWoJbsdCQz++b8QiBaA/3W//s0/C4UAQAIgxBCFyDBUODqc4QRjJCaa6SSzAXMdy2nWM9g4trO4CnZvjhRCCmcq8TxXOnc6TyZvHT9FIHtTtuBloQbSEZG8zddEW8WPSRRKtkufkCna0ikXvfW2fM+209vvKX5QPqtSoTqgnqRRpTmklab9RGdUN0Pvmf7ErizDeqMZ46t7mkzm9+aZvdrXZt5m0W65Yn3L5q1tp12Xfbcj2umuc+/+vgP9Lh8OfjyEdXvo/tnji+eQ17D3V58RPy7yU/9vAROUSerU4enAmaA52tyR78HzRxdCFkOXwn4cWwlfOb4aIR35NhpxEhmDOoWOZTjNeAYTxxTPnMByljURm8R2DpeMT2FP5UgjnOdMJ2ZwZXJf4LnIm8WXzX9J4PKmK4JXhXKEc0l5Itc254sWiBWKX5e8IXlT6pZ0kUzRWDH5tuwduRL5UoW72+5tK9t+X6lcuUKlYv5BcKXqQ7UqjWrNRzse73ii9WStJqJW5+nOZ7rP9f7Sr0PXxdTvemHYYNRo3GTczNKc8NKkxfSVWSuu9VybebvFa8sOQkfqG6u31p02Xdxdmd127+x7HN/zv8/ude5z7t//QejD1Y8uAwcHRQbzPh367PbFfUh8qHDY86vXiPeo9OitMd9xv2/kCbmJO5MBU5Rp6sy2mXuzgXNB32nzyvMVC8GLIUuhP0KXNZarV46thq9prT2h0wEQokgccgrVjC5iSGMMx3gxWTPrsyixSmIl2XhxPHhedl4OLoIEpxRRjcuU+wBPEG8SXwl/s8CIIKeQirAX6YLIC1GEmJb4YYm7kpPSUjLkLdVyqK268ikKA9ulFWOVulRkVKlqdRo8miE7Xmpz61B2PtMT0z9m0G4oZBSy+7Hxksk2U4+96Wbt5jgLI8sQqwLrN7YsdjvtDztcdqx3mtwvfGCfS9jBPNe6QyPuXB46nvZeJ7xzfGp9+/yW/DkDtlAMqN6HwwOTg/Jo5Ucagt8fHQ2ZD0Md4wgnHZc9oRyxM9Ikal+008mDMR6nyLG004FnIuMi408mxJ1NTUxIyjp3MTkzJSX1Ulrq+Yz0Cxk3Mq9fuHPxRlZRdsmlR5cfXam7+jKnPbcjr+NaR/77gs+Fw9cHb3y5OXlrumiyeOL2zJ3JkrHS8bvD9wbKBu/3lLdXND6orXzwsKTqUnXqo8jH/k+cakxqdzyVeUZ4tvT8419Ndffr014ENlg1qjQJNNGbe17eb4l/5dgq2jrUVtZ+/PWuDlxH35uct76dip2rXS3dae/290j3zL6v6o3uM+kn9vd/uPkxaEBzED3Y9On85wNfJL+MD1UNR33dM8I10jeaP0YeVx5f+9Y4kTrpNCU2NT5dNhM+azRHmOv+XjBPWVBfRC2+WEr54bQsuvxtpWI1cs2Yzk2nA8BJRAgyDKWJqkIfZ9BhqGGMwpxiMmSqY45lOc0aj92DbWZLxCXik9j3sbdyJBNSOdOIaVzWXG+4M3gyeC/wZfFnC2RvuiToLNgndFU4h5Qrkrs5V/SaWL54gUSh5HWpG9I3ZXxkRrfcki2Wu731jnyJQum2u9vvKZYp3VeuUKlQrVALUVtUr9Ko0qze8UjrsfYJ7TWdmp21uk/1nuk/N4jZhd5VZ1hv9GJ3g3HjniaTBFOs6cu9LWav9rWaJ1uwW7RbvrbqsH5j02mbYcdt12Xf7fDOsccp21nAuXd/34EPLh8PfnTNPSRyaNDtk/tnjy+ehV4S6wniO+pXRJYlj/9bisz+SpHKULXQpbAfx5bDV46vnliLoEdBNPJXkmDOYOKY4hrj9ySwnsUmYpPYzuGT2VM4fmUJdybPBd6fWbLpzyzJG7zmli9aIFYocV1iI02KZW/L3dn6R5YolitVKD9QrVR9qFalXq35SPPxjifaNdp/5MiuesMXhg1GjbubjJtNXga/2txq1mbebv7aouP4W5lO2y677uge+feOvbH9ih/iBpQHz352H9IcThnxGfP9Rp6kTMfPOc6fW0pYtaTTAdb3PgAARhWAjC0AtlkAVnkAsVsAJF0AuG8AmLMBWKsDkkEIkFpUQOzR2tg/AAHsIAhbQQ8cIAiSoRQWESSECSIEcQPxCjGMxCONkFHIx8gVlBYqClWPWkGLoB3QhejvDIYMpxhKGCYZjRhzGYcwXBhnzGMmDJM6UwzTGLMGM4W5lkWOJZKlkhXHGsX6DkvEBmC/su1iO8k2gHPFPcOj8J74cXYL9gz2VY44jhmCBqGAU5WzgHOS6EJc4PLhquDewv2Cx5MXw3uLT5zvKN8c/2UBI4HZTTmCYoLhQgihcmFfkgipR+T85s2bI0Xxoq1iKeI2EvwSg5JFUvpSN6X1ZDhkBraUyZ6Wc96qKI+VH1b4a1ve9mhFdyUjZVkVTpUV1SG1THWceq1GqWbujvNaZ7QjdI7uPKxL1vPR9zbw3uVnGGBE233MOGbPOZNs05t7K80a9/WaT1tirISs1WysbKl2SfZ3HNocZ51592sf8HRJPljt+tWNx93II9Sz2IfX19wvnlwXgKToUqMOPw9ipJkcSQ0RC6WEPQpnOe54ojiCHmUdgzzlHPvgDGfc4fj2xPSkpWSXlPo0+fNZmUEXPmVZZddduZMjnnv5Gk8h+/Wkm7hb525nlgiW5t+TKzeoaK90fTj9mOdJca3ec1odvr64YU9zfIvcq/a24I76t9Quge6GXom+7g/xAzqfi4fcvwqP9HyzneSe6prJmnNZGF8qX46g89LpAIAEFuABadABezgC6VAJ/QgMQgHhgkhC1CBmkTJIF2QW8g0Kj9qLOotqQbOh96HT0e8ZSAw+DKUMi4z6jOcY32HEMUcwz5kITO5MlcyszM7Md1jQLAdY7rOysLqx1mC5sFRsC5sMWyLbOM4UV4Jnw1Pwnew72fM5cBzBHO8JhoS7nCTOVM41YhDxG5cv1yg3mXuGh8YzzxvGh+A7y8/Pf0tAXaB+k+2mEcFIIT6hCmEL4VFSrIiESMPmAFEe0SdibuJY8acSAZLCkq+l4qT1pFdlqreEy2rJLsjVbD0jb60gojC5rWZ7iqKvkoGykPKyylvVh2qX1aM0vDTtdmhpyWuL6BB2onVRujN60/qTBmO7hgxnjcZ2f9+DNCGa8uzdZqa9b5+5pYWfZahVtvU9m5e27+1WHIiO8k5mzof3XzxQ5zLsynxIwc3bPcujxnPKW9rHwzfT762/QIANJZv6NVAqKJjWGCx4NCikKUz0WFL46AmHiIYoleiCGMKppNOEMxnxvAnZicpJr5I9Un6kJaarZny5cCXL95LNFekchtzxa88Kyq9fvBlb5HbbucTwrlqZUvnWB3IPparFH0vVKDzVeb67zuIFufFwc0pLTuuj9v4Oeqdwt1aPe29Cf9XH8U98X/SGI0dujH2e4J/ynLkyN7QgtRSwXLGGoNMBgBHYQRD0wAGSoRReb9jfcL+uHo1HO6C/MxgyZP30voZxZhJmimEaY7ZmrmWRY7nEimONYl3ABmC/srnjXHGf8J74cfYg9lWOOAI3oYBTlbOJ6EJc4Er+ZdqMb+6nZ3MhhFD5T8sW65J/Og6W1vvT8G/BP/2+Vq/VKP1t97fcf3b739R6Dfjw+pr/XW1wz9/dRt/6U+7Z7b/lZjBu2L2svqE3P23DbzFhQ3BZ5Ybh6pPrip/2bDhuHGmOf/lXS8ar9rbg14Id9W+pnaVdsd0NPcG9En1+/QYf4gd0Bk9/OvS5+Mv8UMdX4RG/UeMxqXHMN9uJwsnYKa/p3TMys6yzE3Nt38vmMxasF8YXY5b0fkj+GFqOWOFdubLKsRqzurCWT0+g0wHWz0sAAMCiTyFTAkmm+gb/52Hvf5U/+cjGHEgAwHoE2FgBAAEApHxoxtYAQAQADdAHCpCBAoFAAlPQB4OfVxK4/XriA7B+lgMAYGQHuGQHAFCzeCzy7/PSPEJoAAD6FGpooI+XN42kS6WSPUj6FH/qEZpHoCzJOMBtqyxpu4KCMgDAvwBJl//fxucdgAAAAAlwSFlzAAALEwAACxMBAJqcGAAADQdJREFUeJzt3U+MnGd9wPHfOzP7x/FuvOAYZAzGRg1pFKDAIVXbiD8Sai2knKJK7QHEAXHoHfXS9MIFDkg9c0BVD1SqUIA2VRuLKhIEOBjhQxDBjo0BJ7gQ4jq769m1d2emh5nH885k7e5vZnbj2p+P9Gr+7LvvO3t5v/u8z/vuRgAAAAAAAAAAAAAAAAAAAAAA95HqLd7vW7V/gHtBb7Dsq70+cFe1Jcae78f+Ae5V48Hojj3fs6Ds1YG7iohGjIZj/PV4VADYvV5tKdHo3uG9mZn1QbseiEZENAfvt2rvNcbW28vPA3Av2WmUUQ9FWTq15/WvzyQgszpQ7xSM5uB56/jxPzt66NDxJ5vNA59sNKr3RjROVlU1P6N9A9zHemu9Xu/Vbnf7JzdurP/bSy9987sRsR39eGzHMCQzi8cswlGPxq1YRETr0KH3v+3EiT/+21Zr8bMR1eIM9gXAHXS7nZfa7d///blz33k+hvGoB2TqeDT/71XuaDwarYiYj4iFEyc+9cFjxz70zWZz/lMRVWvK/QCwC1XVODI3d/AvH3ro0d7vfvfij8vbs9zHtOEocxb1aMy/5z0fe/TIkT94pqoa75r2AwKQU1VV1WzOP3H48CMxiEcZYfRiBhGZZgNllDESjeXld608/PCnT1dV43h95cOHH4zPfObP4/HH/zCOHj0cy8sPTLFrACIi1tbacf78K/HMM9+L5547M/K1Xq/XW1+/8rnz55/9bkRsRsTWYCmnrrpv2uAuTBOOMp8xN1jmI+KBD3zgr/9uYWH58/UVT516PL74xb+KQ4cOTrE7AO7k+efPxpe+9E+xutq+9V63u33h7Nmvn4qIdozGoxPDSfOUSU9VlbmN1mBZiIjFBx88cfTIkUf/oaqqW9v9xCc+HF/+8hdicdFFVAB76eTJo3HixNE4fXo48qiqxtsPHnzn+atXX/5FjF6uW78PJKUx4eerX3Z7Kx7Hjn3kqfpltu94x0o8/fRnJ9wFAFkf//gfxalTj4+8t7i48hcRsRj9X/LLMXune+l2ZZJw1G/kG7mSam5u6Yn6ik8++adOTwHss6ee+tjI67m5xQ9F/zjdiv7UQjOm+Osd04w4SkDK/MZ8szn/aH2lJ5744ISbB2BSDz/87pHXVdV4KPqjjTLiKL/071s4yk7qp6nmImKx0Wiu1Fd87LETE2wegGksLR0YeV1VjYPRj8ZcDMNRfvlPm3TEUa6oKvEoV1aNbrwx6eYBmLFynC7hqP/h2ZRJjuyN2mO5smou+jUD4O40H8N770o4It6COY6Rv0014bYA2HtlpFGO22VJy35TfRa+GaN3j0/750sA2Dvll/z6v7eY6MqqaUYcEaOXdAkHwN1rqktw66YNR9nGxDeSALAv6tML5fW+3QBY/xD1+zlcQgVw96pqj1ONOmYVDgDubtVtnqfNcpQgIAD3AaeXAEgRDoD7w05nhfZlcvxO1/06VQXw/0P9GL5v93GM71w0AO5+MzleO1UFQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkzDIcvRluC4DZmtkxOhuO3tjz+gLA3W0mx+1JRhxCAXBvmCgi5jgASJlFOG5bql7PwATgXjNpOHo7PPa63e3r9ZXOnbs86ecCYELXr2+OvO71OpsxwznpaUYc4x+gu7W18av6Ci+88OIUmwdgEpcuXRl53elsvzG2ylQRmUU4uhHRiYheu/36z+orPPvsj6Ld3tzpewHYI9/+9gsjr7e2rv8yBsfpGB63JzarcPQionPlytnvR/Q6ZYVXXnktvvKVf57m8wGQcObMz98UjrW1V88OnpZf9MvziTQn+J5q8H2twTIXEfMRsbi93W4sLx9758LC8vGy8ssvvxKrq+346EffH63WJLsDYDfOnPl5PP3016PdvnHrvU7nxu8vXnzuH3u97lpEtCPiRkRsRsTWYOlGMiKTHMkbg6U5WEo4FiJifn39yquHDz/yJ41Gc6F8w09/eilOn/5xLC0diJWVpVhcXIhGo5pg1wDUtdubce7c5fja156Nr371X0aiERHx29+++I3V1csXImI9IjYGy42IuBkR24MlFY5Jjt5ltLEQEQciYikiliPiwYh4KCLetrLyvsdOnvzk39TjAcD+euONy9+7cOE/vhERr0fE1Yi4FhGrMYzIZvTD0bntRnYw6amq8VFHGXnMRcT85ub/bNy8uf6b5eVjj4gHwP67du3XP7h48T+/FRFrEXE9RkccW9EfcXRiOGm+a5OGo8xzjMejjEaaGxtX169d+9W5AwfevjI/v3SkqirnpgD22Pb25rUrV37yr5cvv/B89KNRwnE9+nMcm9GPxlb0o1EucNq1aWerdwpIa/C60elsbr3++vkL6+v/fTEithqNVquqGo2qajSFBGB63W5na3t7Y31j4+qvX3vtpR9euvRf/7629ptfRn+EUR9ttOPN8xslHCmTHrwbMbyiaiEiFiPigejPdSxFxKEYzn0sRcTBwTqLMbwaq5zumvazANxP6qODcvDfjv4IYjOGoVgbPK4Onq9GPx7lyqqtGE6Mp0YcrSk+fHew0zLauBn9mpWRR9EZfMADg6/Px2g4yqmvCPEAuJORP/MUwzmKrRheZrsR/TjURxwlFjdiOMroxoR3j08ajvrt6t3Bh65qS3m/VPDG4IdZjP4opZzSKhPtggGwO/Vjb7mhr0x2b8Zw1NGuPW7E8PRUfW5jItOGoxOjo4V6AEpQbkZ/tLEQ/dHG3GC/zRiGI0I8AHZjp3Bsx3Duoow66ksJSolG/c+PpE1zqqrssFz/Ox6NUrZy3m0+huEoE+r1cIxvA4BR9VNV5VTTdm25GcN4lMf6neL1OY23NBxl5FGed2tL+UHKvEaZUC/zIvXTWxHCAXAn4wf8csqpPkFezvTcrD0v0Zh6tBExXTgi3vwD1N8rP0gr+sUr4RgfbYgFQF59grsEoYw8tmJ0PqN+6e3U/5Nj2nDE4IM0xj5IfXK8xKJ+v0f9aqrxuREAbm+nK6vKYznudnZYejHlKapilgfs8RDUT0eVWOw00nCaCmB3xv/7asTo9MBOIan//42p/g9HsRcH6/pVUuMhGf9afX0Adqc+ahi/PaL+OP71mdjL3/J3mvS+3aW7AOSNj0B2epxZMIr9PHg7JQWwd3Y6jQUAAAAAAAAAAAAAAAAAAAAAMK3/BX4vwOY3EngcAAAAAElFTkSuQmCCCg==) no-repeat 0 -165px; */ } @@ -62,208 +62,208 @@ div#applicationVersionType { } div#applicationVersionType.readOnly { - background: url(../images/read-only.png) no-repeat fixed -5px -8px; + background: url(./images/read-only.png) no-repeat fixed -5px -8px; } div#applicationVersionType.TEST { - background: url(../images/test-database.png) no-repeat fixed -5px -8px; + background: url(./images/test-database.png) no-repeat fixed -5px -8px; } div#mainTabs { - background: #ff9400 url(../images/menubarSprite.gif) repeat-x; + background: #ff9400 url(./images/menubarSprite.gif) repeat-x; } div#menus { - background: url(../images/menubarSprite.gif) no-repeat right -26px; + background: url(./images/menubarSprite.gif) no-repeat right -26px; } div#menus table { - background: url(../images/menubarSprite.gif) no-repeat 0 -52px; + background: url(./images/menubarSprite.gif) no-repeat 0 -52px; } div#menus table tbody tr td div { - background: url(../images/menubarSprite.gif) no-repeat right -52px; + background: url(./images/menubarSprite.gif) no-repeat right -52px; } div#menus table tbody tr td div a { - background: url(../images/menubarSprite.gif) no-repeat left -26px; + background: url(./images/menubarSprite.gif) no-repeat left -26px; } div#menus table tbody tr td.selectedTab { - background: url(../images/menubarSprite.gif) repeat-x right -78px; + background: url(./images/menubarSprite.gif) repeat-x right -78px; } div#menus table tbody tr td.selectedTab div { - background: url(../images/menubarSprite.gif) no-repeat right -130px; + background: url(./images/menubarSprite.gif) no-repeat right -130px; } div#menus table tbody tr td.selectedTab div a { - background: url(../images/menubarSprite.gif) no-repeat left -104px; + background: url(./images/menubarSprite.gif) no-repeat left -104px; } div.clipperzLoginForm div.loginFormHeaderBox { - background: url(../images/loginFormBox.png) no-repeat -3px top; + background: url(./images/loginFormBox.png) no-repeat -3px top; } div.clipperzLoginForm div.loginForm { - background: url(../images/loginFormBox.png) repeat-y -408px; + background: url(./images/loginFormBox.png) repeat-y -408px; } div.loginForm div.loginFormFooterBox { - background: url(../images/loginFormBox.png) no-repeat -813px bottom; + background: url(./images/loginFormBox.png) no-repeat -813px bottom; } div.clipperzLoginForm div.registrationForm { - background: url(../images/loginFormBox.png) repeat-y -408px; + background: url(./images/loginFormBox.png) repeat-y -408px; } div.clipperzLoginForm form.read-only table.formLayout, div.panelform.read-only table.panelBody, div.clipperzSubPanel span.read-only, div.read-only { - background-image: url(../images/read-only_background.png); + background-image: url(./images/read-only_background.png); } div.registrationForm div.loginFormFooterBox { - background: url(../images/loginFormBox.png) no-repeat -813px bottom; + background: url(./images/loginFormBox.png) no-repeat -813px bottom; } div.loginPanelSwitchLanguageBox { - background: url(../images/languageBox.png) no-repeat 19px -15px; + background: url(./images/languageBox.png) no-repeat 19px -15px; } div#directLoginsBlock { - background: url(../images/directLoginBox.png) repeat-y -262px bottom; + background: url(./images/directLoginBox.png) repeat-y -262px bottom; } div#directLoginsBlock div.directLoginsBlockHeaderBox { - background: url(../images/directLoginBox.png) no-repeat -11px -13px; + background: url(./images/directLoginBox.png) no-repeat -11px -13px; } ul#directLogins { - background: url(../images/directLoginBox.png) no-repeat -513px bottom; + background: url(./images/directLoginBox.png) no-repeat -513px bottom; } div#directLoginsDescription { - background: url(../images/directLoginBox.png) no-repeat -513px bottom; + background: url(./images/directLoginBox.png) no-repeat -513px bottom; } /* div#recordListFilterHeader { - background: url(../images/cardFiltersSprite.gif) repeat-x 0 -114px; + background: url(./images/cardFiltersSprite.gif) repeat-x 0 -114px; } div#recordFiltersTableWrapper { - background: url(../images/cardFiltersSprite.gif) no-repeat left -38px; + background: url(./images/cardFiltersSprite.gif) no-repeat left -38px; } div#recordFiltersDIV table { - background: url(../images/cardFiltersSprite.gif) no-repeat right -19px; + background: url(./images/cardFiltersSprite.gif) no-repeat right -19px; } div#recordFiltersDIV table tbody tr td div { - background: url(../images/cardFiltersSprite.gif) no-repeat right -38px; + background: url(./images/cardFiltersSprite.gif) no-repeat right -38px; } div#recordFiltersDIV table tbody tr td div a { - background: url(../images/cardFiltersSprite.gif) no-repeat left -19px; + background: url(./images/cardFiltersSprite.gif) no-repeat left -19px; } div#recordFiltersDIV table tbody tr td.selectedTab { - background: url(../images/cardFiltersSprite.gif) repeat-x -57px; + background: url(./images/cardFiltersSprite.gif) repeat-x -57px; } div#recordFiltersDIV table tbody tr td.selectedTab div { - background: url(../images/cardFiltersSprite.gif) no-repeat right -95px; + background: url(./images/cardFiltersSprite.gif) no-repeat right -95px; } div#recordFiltersDIV table tbody tr td.selectedTab div a { - background: url(../images/cardFiltersSprite.gif) no-repeat left -76px; + background: url(./images/cardFiltersSprite.gif) no-repeat left -76px; } */ div#recordFiltersSearchInnerPanel { - background: url(../images/recordFilterBackground.png) no-repeat -10px -138px; + background: url(./images/recordFilterBackground.png) no-repeat -10px -138px; } table#recordListAndDetailBlockTABLE { - background: url(../images/cardBlockLowerBorder.gif) repeat-x 0 bottom; + background: url(./images/cardBlockLowerBorder.gif) repeat-x 0 bottom; } div#recordListBlockHeader table.recordListBlockHeaderTABLE { - background: url(../images/cardsBlockRoundCorners.gif) no-repeat right -51px; + background: url(./images/cardsBlockRoundCorners.gif) no-repeat right -51px; } div#recordListBlockHeader table.recordListBlockHeaderTABLE tbody tr td.recordBlockTitleTD { - background: url(../images/cardsBlockRoundCorners.gif) no-repeat left 0px; + background: url(./images/cardsBlockRoundCorners.gif) no-repeat left 0px; } td#cardBoxLowerLeftTD { - background: url(../images/cardBlockLowerRoundedCorner.gif) no-repeat left -32px; + background: url(./images/cardBlockLowerRoundedCorner.gif) no-repeat left -32px; } td#cardBoxLowerRightTD { - background: url(../images/cardBlockLowerRoundedCorner.gif) no-repeat right -82px; + background: url(./images/cardBlockLowerRoundedCorner.gif) no-repeat right -82px; } div#newRecordInnerPanel { - background: url(../images/newRecordPanelBackground.png) no-repeat 0 -165px; + background: url(./images/newRecordPanelBackground.png) no-repeat 0 -165px; } .resizable-textarea .grippie { - background: #eee url(../images/grippie.png) no-repeat center 1px; + background: #eee url(./images/grippie.png) no-repeat center 1px; } div.Clipperz_recordFieldData div.passwordBackground, div.passwordEntropy { - background: url(../images/entropyBackground.gif) repeat-x 0 0; + background: url(./images/entropyBackground.gif) repeat-x 0 0; } div.Clipperz_recordFieldData input.scrambledField { - background: transparent url(../images/scrambledValue.png) no-repeat 0 0px; + background: transparent url(./images/scrambledValue.png) no-repeat 0 0px; } div.Clipperz_recordFieldData input.scrambledField:focus { - background: transparent url(../images/scrambledValue.png) no-repeat 0 -16px; + background: transparent url(./images/scrambledValue.png) no-repeat 0 -16px; } div.directLoginCollapseLink { - background: url(../images/directLogin/toggle.png) no-repeat; + background: url(./images/directLogin/toggle.png) no-repeat; } #mb-dlg .ext-mb-progress { - background:transparent url(../images/default/basic-dialog/progress2.gif) repeat-x 1px 1px; + background:transparent url(./images/default/basic-dialog/progress2.gif) repeat-x 1px 1px; } .ydlg .ydlg-hd { - background: url(../images/clipperz/basic-dialog/hd-sprite.gif) repeat-x 0 -82px; + background: url(./images/clipperz/basic-dialog/hd-sprite.gif) repeat-x 0 -82px; } .ydlg .ydlg-hd-left { - background: url(../images/clipperz/basic-dialog/hd-sprite.gif) no-repeat 0 -41px; + background: url(./images/clipperz/basic-dialog/hd-sprite.gif) no-repeat 0 -41px; } .ydlg .ydlg-hd-right { - background: url(../images/clipperz/basic-dialog/hd-sprite.gif) no-repeat right 0; + background: url(./images/clipperz/basic-dialog/hd-sprite.gif) no-repeat right 0; } .ydlg .ydlg-close { - background-image:url(../images/clipperz/basic-dialog/close.gif); + background-image:url(./images/clipperz/basic-dialog/close.gif); } body .ybtn-left{ - background:url(../images/default/basic-dialog/btn-sprite.gif) no-repeat 0 0; + background:url(./images/default/basic-dialog/btn-sprite.gif) no-repeat 0 0; } body .ybtn-right{ - background:url(../images/default/basic-dialog/btn-sprite.gif) no-repeat 0 -21px; + background:url(./images/default/basic-dialog/btn-sprite.gif) no-repeat 0 -21px; } body .ybtn-center{ - background:url(../images/default/basic-dialog/btn-sprite.gif) repeat-x 0 -42px; + background:url(./images/default/basic-dialog/btn-sprite.gif) repeat-x 0 -42px; } div.Clipperz_PasswordGenerator_button { - background: url(../images/passwordAssistant.png) 0 22px; + background: url(./images/passwordAssistant.png) 0 22px; } div.Clipperz_PasswordGenerator_button.hover { - background: url(../images/passwordAssistant.png) 0 -1px; + background: url(./images/passwordAssistant.png) 0 -1px; } body ul.radioList li h4 { @@ -292,7 +292,7 @@ div#newRecordPanel { div#newRecordInnerPanel { width: 350px; height: 160px; - background: url(../images/newRecordPanelBackground.gif) no-repeat 0 -165px; + background: url(./images/newRecordPanelBackground.gif) no-repeat 0 -165px; /* background: url(data:image/gif;charset=utf-8;base64,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) no-repeat 0 -165px; */ } @@ -311,7 +311,7 @@ div#newRecordPanel table td.newRecordPanelLabelTD { } div#readOnlyBanner { - background: url(../images/read-only.gif) no-repeat fixed -5px -8px; + background: url(./images/read-only.gif) no-repeat fixed -5px -8px; /* background: url(data:image/gif;charset=utf-8;base64,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) no-repeat fixed -5px -8px; */ } @@ -332,12 +332,12 @@ div.clipperzSubPanel { div.Clipperz_recordFieldData input.scrambledField { - background: transparent url(../images/scrambledValue.gif) no-repeat 0 0px; + background: transparent url(./images/scrambledValue.gif) no-repeat 0 0px; /* background: transparent url(data:image/gif;charset=utf-8;base64,R0lGODlhRwAgANUmAP///7XV/2ZmZqW/4ODg4HBwcGttcJChuLi4uHZ8hYWFhfX19bDO9YCLmZmZmaOjo4aSo6C31tbW1q2trXuEj4uarY+Pj+vr66rG68LCwpWpwnp6eszMzHF1epuwzMTd/7rY/9Pm/8ng/7/b/87j/9jp/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACYALAAAAABHACAAAAb/QIBwSCwaj8ikcslsOp/QqHRKRV4QkmQGkbxmkVtlGGkyLSUCLtIiSKLVR7ZSTjYfLwvAW0gY9gF0eEKCewB/hkKBeXyJbQCCRGVIDgIOE5UPBQV8AhsTCmmgapSWmJqcnqKiqJ+haUJlsbFFCKACt50TeQSZuLcOHEK1vrm7vb7AfMe4yQCyskcEBbcZRw+3CotE0tTW2NpE1wLZRtBI19fk25qU1UXo4+CG7ALu6wXt5bNHHAIWAAgEPCgCSsICTYcA9PsXcCCRggcLJAQAEWEkO5KMcNhwIREcAAssCZGgIOHGjoA+hpwwsiSRlS0TZsxYpabNmzhz6tzJs6fP/wBAgwodSrSo0aNIkypdyrSp06dQo0o1iuFAhKMaDhytetVoVqRfjZZJGkGAVqMUBBwte7ZoWqRvxZqgyiAAW6ADguYNEBdD3QB+7ZrFqxdo378B9h4G+gHo2AAjQAhtIKBBhcoQDBjAK6BDhQRmQZ+lbBmzZs6eRYtG/Tn04A/PYpUQegC0L891B2Qm1sAD0NrEcCfe7as3XuK4jMOObYIE0QEGbmkoCuFWAsR6owuYTrS6gOvUrWN3HEty+OrghUI3QJm70Orox69v/1wzfaHLy4Qo6kEAhQAHCADBUKBFwIBmewHV338BDihUgQcakCBQECIoVBkigFBGY0N50DIBBoa1FQADlgEVQQITeggiXyKSWIGJKArlIowJajhXABtOpeOOPPbo449ABinkkAEEAQA7Cg==) no-repeat 0 0px; */ } div.Clipperz_recordFieldData input.scrambledField:focus { - background: transparent url(../images/scrambledValue.gif) no-repeat 0 -14px; + background: transparent url(./images/scrambledValue.gif) no-repeat 0 -14px; /* background: transparent url(data:image/gif;charset=utf-8;base64,R0lGODlhRwAgANUmAP///7XV/2ZmZqW/4ODg4HBwcGttcJChuLi4uHZ8hYWFhfX19bDO9YCLmZmZmaOjo4aSo6C31tbW1q2trXuEj4uarY+Pj+vr66rG68LCwpWpwnp6eszMzHF1epuwzMTd/7rY/9Pm/8ng/7/b/87j/9jp/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACYALAAAAABHACAAAAb/QIBwSCwaj8ikcslsOp/QqHRKRV4QkmQGkbxmkVtlGGkyLSUCLtIiSKLVR7ZSTjYfLwvAW0gY9gF0eEKCewB/hkKBeXyJbQCCRGVIDgIOE5UPBQV8AhsTCmmgapSWmJqcnqKiqJ+haUJlsbFFCKACt50TeQSZuLcOHEK1vrm7vb7AfMe4yQCyskcEBbcZRw+3CotE0tTW2NpE1wLZRtBI19fk25qU1UXo4+CG7ALu6wXt5bNHHAIWAAgEPCgCSsICTYcA9PsXcCCRggcLJAQAEWEkO5KMcNhwIREcAAssCZGgIOHGjoA+hpwwsiSRlS0TZsxYpabNmzhz6tzJs6fP/wBAgwodSrSo0aNIkypdyrSp06dQo0o1iuFAhKMaDhytetVoVqRfjZZJGkGAVqMUBBwte7ZoWqRvxZqgyiAAW6ADguYNEBdD3QB+7ZrFqxdo378B9h4G+gHo2AAjQAhtIKBBhcoQDBjAK6BDhQRmQZ+lbBmzZs6eRYtG/Tn04A/PYpUQegC0L891B2Qm1sAD0NrEcCfe7as3XuK4jMOObYIE0QEGbmkoCuFWAsR6owuYTrS6gOvUrWN3HEty+OrghUI3QJm70Orox69v/1wzfaHLy4Qo6kEAhQAHCADBUKBFwIBmewHV338BDihUgQcakCBQECIoVBkigFBGY0N50DIBBoa1FQADlgEVQQITeggiXyKSWIGJKArlIowJajhXABtOpeOOPPbo449ABinkkAEEAQA7Cg==) no-repeat 0 -14px; */ } diff --git a/frontend/beta/css/clipperz/ytheme-clipperz.css b/frontend/beta/css/clipperz/ytheme-clipperz.css index effed2e..ed71348 100644 --- a/frontend/beta/css/clipperz/ytheme-clipperz.css +++ b/frontend/beta/css/clipperz/ytheme-clipperz.css @@ -34,12 +34,12 @@ refer to http://www.clipperz.com. #mb-dlg .ext-mb-progress {
height:18px;
-/* background:transparent url(../images/default/basic-dialog/progress2.gif) repeat-x 1px 1px; */
+/* background:transparent url(./images/default/basic-dialog/progress2.gif) repeat-x 1px 1px; */
background:transparent url(data:image/gif;charset=utf-8;base64,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) repeat-x 1px 1px;
}
.ydlg .ydlg-hd {
-/* background: url(../images/clipperz/basic-dialog/hd-sprite.gif) repeat-x 0 -82px; */
+/* background: url(./images/clipperz/basic-dialog/hd-sprite.gif) repeat-x 0 -82px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAwB7AIABADMzZv///yH5BAEAAAEALAAAAAADAHsAAAITBGKpy+0Po5y0Houz3rz7D4ZUAQA7Cg==) repeat-x 0 -82px;
background-color:navy;
color:#ffffff;
@@ -48,18 +48,18 @@ refer to http://www.clipperz.com. padding:5px;
}
.ydlg .ydlg-hd-left {
-/* background: url(../images/clipperz/basic-dialog/hd-sprite.gif) no-repeat 0 -41px; */
+/* background: url(./images/clipperz/basic-dialog/hd-sprite.gif) no-repeat 0 -41px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAwB7AIABADMzZv///yH5BAEAAAEALAAAAAADAHsAAAITBGKpy+0Po5y0Houz3rz7D4ZUAQA7Cg==) no-repeat 0 -41px;
padding-left:3px;
margin:0px;
}
.ydlg .ydlg-hd-right {
-/* background: url(../images/clipperz/basic-dialog/hd-sprite.gif) no-repeat right 0; */
+/* background: url(./images/clipperz/basic-dialog/hd-sprite.gif) no-repeat right 0; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAwB7AIABADMzZv///yH5BAEAAAEALAAAAAADAHsAAAITBGKpy+0Po5y0Houz3rz7D4ZUAQA7Cg==) no-repeat right 0;
padding-right:3px;
}
.ydlg .ydlg-dlg-body {
-/* background:url(../images/clipperz/layout/gradient-bg.gif);*/
+/* background:url(./images/clipperz/layout/gradient-bg.gif);*/
background-color: white;
border:1px solid #333366;
border-top:0 none;
@@ -88,7 +88,7 @@ refer to http://www.clipperz.com. background-repeat:no-repeat;
cursor:pointer;
visibility:inherit;
-/* background-image:url(../images/clipperz/basic-dialog/close.gif); */
+/* background-image:url(./images/clipperz/basic-dialog/close.gif); */
background-image:url(data:image/gif;charset=utf-8;base64,R0lGODlhDwAPANUAADk1bpeVs5+dub27z+Df6LGvxo2KqzIyZdfW4jk0brq4zNbU4cTD1ImGqVZSg/f2+Y+MraKgu9/e6NjX4qyqwjIyZtrZ5Pn5+mZij0pGenx4n0A7c7Oxx8C/0XZzm/39/Tw3cLCvxX57obe1yrCuxX16oP///zMzZjYxbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAPAA8AAAZ9wJNQSAgJKIuh8oTAoJ5PB2M5AEGvKMEQYcVeFUInqmSBoDyTwDNzIEAtJlPnY7oAngMSFBLvF6AGAlcdfRIJUBoUUB50fWpPDQtQE3EScQ93KBwnDk8BFwUJAQ8jTxsVJwxQmSisEUOCXk8iSwoZWBuvSycHAwYaDRyoQ0EAOwo=);
}
@@ -116,15 +116,15 @@ div.ydlg-btns-center table tbody tr td { /* @end */
body .ybtn-left{
-/* background:url(../images/default/basic-dialog/btn-sprite.gif) no-repeat 0 0; */
+/* background:url(./images/default/basic-dialog/btn-sprite.gif) no-repeat 0 0; */
background:url(data:image/gif;charset=utf-8;base64,R0lGODlhAwCTAIcAAAA8dBZNfiVXg0hukEpxk1V9okD/QGaHoGeIoGqLomyMpHqVqHuVqX2ZqoOEb4SGceWXAPiyMPizMPi0Nfi1Nfm0Nfi3O/m3Ovm3O/m4O+21R++1Sfm6Qfm6Qvq6Qfm9SPm9Sfq9Sfq+SfrAUPrAUfrBUPrDWPrEWPrEWfrHYfvHYfvIYPvKavzKafvPcvzOcfzOcvzRevzSefzSeo2eoaOutLG3tra9vb/Hyr/O27/O3P3Vgf3Vgv3Yif3bj/7dlf7fmu7crf3gm8DCycfJzsDP3dvXzdbY39Xf6Nrc4d3e4t3f5ODd1OLf1uTi2eTi2uXi2+bj3Obj3efk3ejl3ujl3+/o0vjt0//wz+Di6OPn6+nm4Orn4Oro4evo4evo4uvq4+vr5ezr5Ozr5ezr5u3q5u3s5e7t5u7t5+jq7+/u6Ovt8vDv6fDu6vDw6vDw6/Hw6vHw6/Hx7PPx7vLy7fLy7vPz7vT07/Dy9fT08PX18fX08vX18vb08vb28vb28/b29PP1+Pb3+vf4+fj49vj49/r6+fr6+vv7+vn8/f39/P7+/f7+/v7+/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAMAAAYALAAAAAADAJMAAAj/AA0sELCgQBEBOhgBUKQIwCFDAAoRAgAIEIA/fwD44QNAjx4AefIAuHMHgB07AOrUAUCHDgA5cgC8cQOATJgAOJocIFDDQAMBARAYQFKAwaIcAhD1AbCnDYA5ZQDE+QIAjhcAbLgAULMFAJoqAM5QAWBmCoAxUgCIiQIADBQAXZwAeMIEgJEbAWwMSBBAgQEAgB0JZkS4keFEiAUpDsQYj+M1kNNI1kI5i+UlmJNoPsJ5iGcioEOHHkQaMACBBGlYERBEBgAgrn+49uG6h2sermfMAPDiBYAWLACoWAHABAoAI0oAACECgIcOADJgAFCBQoANEQ48gOATqNArNBjIfwgiQIYQADJ+oPeBvgf6HehjAHABAwCLFgBSqABw4jgJ5SF8AAAHHABgwQUAUDABABJoEAAEDvDll2lYVNjDhYY1glgiignCWCCO4QHZGpKlQZkWlmWB2RKaJcHZEZ4NEZoSNEZgIwQ4mkahhRee6OOPQAYp5JAn2hgBjhCYFhAAOwo=) no-repeat 0 0;
}
body .ybtn-right{
-/* background:url(../images/default/basic-dialog/btn-sprite.gif) no-repeat 0 -21px; */
+/* background:url(./images/default/basic-dialog/btn-sprite.gif) no-repeat 0 -21px; */
background:url(data:image/gif;charset=utf-8;base64,R0lGODlhAwCTAIcAAAA8dBZNfiVXg0hukEpxk1V9okD/QGaHoGeIoGqLomyMpHqVqHuVqX2ZqoOEb4SGceWXAPiyMPizMPi0Nfi1Nfm0Nfi3O/m3Ovm3O/m4O+21R++1Sfm6Qfm6Qvq6Qfm9SPm9Sfq9Sfq+SfrAUPrAUfrBUPrDWPrEWPrEWfrHYfvHYfvIYPvKavzKafvPcvzOcfzOcvzRevzSefzSeo2eoaOutLG3tra9vb/Hyr/O27/O3P3Vgf3Vgv3Yif3bj/7dlf7fmu7crf3gm8DCycfJzsDP3dvXzdbY39Xf6Nrc4d3e4t3f5ODd1OLf1uTi2eTi2uXi2+bj3Obj3efk3ejl3ujl3+/o0vjt0//wz+Di6OPn6+nm4Orn4Oro4evo4evo4uvq4+vr5ezr5Ozr5ezr5u3q5u3s5e7t5u7t5+jq7+/u6Ovt8vDv6fDu6vDw6vDw6/Hw6vHw6/Hx7PPx7vLy7fLy7vPz7vT07/Dy9fT08PX18fX08vX18vb08vb28vb28/b29PP1+Pb3+vf4+fj49vj49/r6+fr6+vv7+vn8/f39/P7+/f7+/v7+/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAMAAAYALAAAAAADAJMAAAj/AA0sELCgQBEBOhgBUKQIwCFDAAoRAgAIEIA/fwD44QNAjx4AefIAuHMHgB07AOrUAUCHDgA5cgC8cQOATJgAOJocIFDDQAMBARAYQFKAwaIcAhD1AbCnDYA5ZQDE+QIAjhcAbLgAULMFAJoqAM5QAWBmCoAxUgCIiQIADBQAXZwAeMIEgJEbAWwMSBBAgQEAgB0JZkS4keFEiAUpDsQYj+M1kNNI1kI5i+UlmJNoPsJ5iGcioEOHHkQaMACBBGlYERBEBgAgrn+49uG6h2sermfMAPDiBYAWLACoWAHABAoAI0oAACECgIcOADJgAFCBQoANEQ48gOATqNArNBjIfwgiQIYQADJ+oPeBvgf6HehjAHABAwCLFgBSqABw4jgJ5SF8AAAHHABgwQUAUDABABJoEAAEDvDll2lYVNjDhYY1glgiignCWCCO4QHZGpKlQZkWlmWB2RKaJcHZEZ4NEZoSNEZgIwQ4mkahhRee6OOPQAYp5JAn2hgBjhCYFhAAOwo=) no-repeat 0 -21px;
}
body .ybtn-center{
-/* background:url(../images/default/basic-dialog/btn-sprite.gif) repeat-x 0 -42px; */
+/* background:url(./images/default/basic-dialog/btn-sprite.gif) repeat-x 0 -42px; */
background:url(data:image/gif;charset=utf-8;base64,R0lGODlhAwCTAIcAAAA8dBZNfiVXg0hukEpxk1V9okD/QGaHoGeIoGqLomyMpHqVqHuVqX2ZqoOEb4SGceWXAPiyMPizMPi0Nfi1Nfm0Nfi3O/m3Ovm3O/m4O+21R++1Sfm6Qfm6Qvq6Qfm9SPm9Sfq9Sfq+SfrAUPrAUfrBUPrDWPrEWPrEWfrHYfvHYfvIYPvKavzKafvPcvzOcfzOcvzRevzSefzSeo2eoaOutLG3tra9vb/Hyr/O27/O3P3Vgf3Vgv3Yif3bj/7dlf7fmu7crf3gm8DCycfJzsDP3dvXzdbY39Xf6Nrc4d3e4t3f5ODd1OLf1uTi2eTi2uXi2+bj3Obj3efk3ejl3ujl3+/o0vjt0//wz+Di6OPn6+nm4Orn4Oro4evo4evo4uvq4+vr5ezr5Ozr5ezr5u3q5u3s5e7t5u7t5+jq7+/u6Ovt8vDv6fDu6vDw6vDw6/Hw6vHw6/Hx7PPx7vLy7fLy7vPz7vT07/Dy9fT08PX18fX08vX18vb08vb28vb28/b29PP1+Pb3+vf4+fj49vj49/r6+fr6+vv7+vn8/f39/P7+/f7+/v7+/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAMAAAYALAAAAAADAJMAAAj/AA0sELCgQBEBOhgBUKQIwCFDAAoRAgAIEIA/fwD44QNAjx4AefIAuHMHgB07AOrUAUCHDgA5cgC8cQOATJgAOJocIFDDQAMBARAYQFKAwaIcAhD1AbCnDYA5ZQDE+QIAjhcAbLgAULMFAJoqAM5QAWBmCoAxUgCIiQIADBQAXZwAeMIEgJEbAWwMSBBAgQEAgB0JZkS4keFEiAUpDsQYj+M1kNNI1kI5i+UlmJNoPsJ5iGcioEOHHkQaMACBBGlYERBEBgAgrn+49uG6h2sermfMAPDiBYAWLACoWAHABAoAI0oAACECgIcOADJgAFCBQoANEQ48gOATqNArNBjIfwgiQIYQADJ+oPeBvgf6HehjAHABAwCLFgBSqABw4jgJ5SF8AAAHHABgwQUAUDABABJoEAAEDvDll2lYVNjDhYY1glgiignCWCCO4QHZGpKlQZkWlmWB2RKaJcHZEZ4NEZoSNEZgIwQ4mkahhRee6OOPQAYp5JAn2hgBjhCYFhAAOwo=) repeat-x 0 -42px;
}
diff --git a/frontend/beta/css/yui-extensions/basic-dialog.css b/frontend/beta/css/yui-extensions/basic-dialog.css index 5a9f311..5a6cefb 100644 --- a/frontend/beta/css/yui-extensions/basic-dialog.css +++ b/frontend/beta/css/yui-extensions/basic-dialog.css @@ -24,6 +24,10 @@ refer to http://www.clipperz.com. */ .ydlg-proxy {
+<<<<<<< HEAD + background-image: url(./images/default/gradient-bg.gif);
+======= +>>>>>>> 0db1d5c8b18eadc4bd9cfc6603e86227fa94b5a9 background-color:#c3daf9;
border:1px solid #6593cf;
z-index:10001;
@@ -75,7 +79,7 @@ body.masked .ydlg select { z-index:10002;
}
.ydlg .ydlg-hd {
- background: url(../images/default/basic-dialog/hd-sprite.gif) repeat-x 0 -82px;
+ background: url(./images/default/basic-dialog/hd-sprite.gif) repeat-x 0 -82px;
background-color:navy;
color:#ffffff;
font:bold 12px "sans serif", tahoma, verdana, helvetica;
@@ -83,15 +87,19 @@ body.masked .ydlg select { padding:5px;
}
.ydlg .ydlg-hd-left {
- background: url(../images/default/basic-dialog/hd-sprite.gif) no-repeat 0 -41px;
+ background: url(./images/default/basic-dialog/hd-sprite.gif) no-repeat 0 -41px;
padding-left:3px;
margin:0px;
}
.ydlg .ydlg-hd-right {
- background: url(../images/default/basic-dialog/hd-sprite.gif) no-repeat right 0;
+ background: url(./images/default/basic-dialog/hd-sprite.gif) no-repeat right 0;
padding-right:3px;
}
.ydlg .ydlg-dlg-body{
+<<<<<<< HEAD + background:url(./images/default/layout/gradient-bg.gif);
+======= +>>>>>>> 0db1d5c8b18eadc4bd9cfc6603e86227fa94b5a9 border:1px solid #6593cf;
border-top:0 none;
padding:10px;
@@ -166,45 +174,45 @@ body.masked .ydlg select { background-repeat:no-repeat;
cursor:pointer;
visibility:inherit;
- background-image:url(../images/default/basic-dialog/close.gif);
+ background-image:url(./images/default/basic-dialog/close.gif);
}
.ydlg div.yresizable-handle-east{
- background-image:url(../images/default/sizer/e-handle-dark.gif);
+ background-image:url(./images/default/sizer/e-handle-dark.gif);
border:0;
background-position:left;
margin-right:0;
}
.ydlg div.yresizable-handle-south{
- background-image:url(../images/default/sizer/s-handle-dark.gif);
+ background-image:url(./images/default/sizer/s-handle-dark.gif);
border:0;
height:6px;
}
.ydlg div.yresizable-handle-west{
- background-image:url(../images/default/sizer/e-handle-dark.gif);
+ background-image:url(./images/default/sizer/e-handle-dark.gif);
border:0;
background-position:1px;
}
.ydlg div.yresizable-handle-north{
- background-image:url(../images/default/s.gif);
+ background-image:url(./images/default/s.gif);
border:0;
}
.ydlg div.yresizable-handle-northeast, .ytheme-gray .ydlg div.yresizable-handle-northeast{
- background-image:url(../images/default/s.gif);
+ background-image:url(./images/default/s.gif);
border:0;
}
.ydlg div.yresizable-handle-northwest, .ytheme-gray .ydlg div.yresizable-handle-northwest{
- background-image:url(../images/default/s.gif);
+ background-image:url(./images/default/s.gif);
border:0;
}
.ydlg div.yresizable-handle-southeast{
- background-image:url(../images/default/sizer/corners-sprite.gif);
+ background-image:url(./images/default/sizer/corners-sprite.gif);
background-position: top left;
width:8px;
height:8px;
border:0;
}
.ydlg div.yresizable-handle-southwest{
- background-image:url(../images/default/sizer/corners-sprite.gif);
+ background-image:url(./images/default/sizer/corners-sprite.gif);
background-position: top right;
margin-left:1px;
margin-bottom:1px;
@@ -235,11 +243,11 @@ body.masked .ydlg select { }
#mb-dlg .ext-mb-progress {
height:18px;
- background:transparent url(../images/default/basic-dialog/progress2.gif) repeat-x 1px 1px;
+ background:transparent url(./images/default/basic-dialog/progress2.gif) repeat-x 1px 1px;
}
#mb-dlg .ext-mb-progress-bar {
height:18px;
overflow:hidden;
width:0;
background:#8bb8f3;
-} +}
diff --git a/frontend/beta/css/yui-extensions/button.css b/frontend/beta/css/yui-extensions/button.css index ad1b2fc..fa32854 100644 --- a/frontend/beta/css/yui-extensions/button.css +++ b/frontend/beta/css/yui-extensions/button.css @@ -35,12 +35,12 @@ refer to http://www.clipperz.com. .ybtn-left{
width:3px;
height:21px;
- background:url(../images/default/basic-dialog/btn-sprite.gif) no-repeat 0 0;
+ background:url(./images/default/basic-dialog/btn-sprite.gif) no-repeat 0 0;
}
.ybtn-right{
width:3px;
height:21px;
- background:url(../images/default/basic-dialog/btn-sprite.gif) no-repeat 0 -21px;
+ background:url(./images/default/basic-dialog/btn-sprite.gif) no-repeat 0 -21px;
}
.ybtn-focus{
text-decoration:none !important;
@@ -52,7 +52,7 @@ refer to http://www.clipperz.com. white-space: nowrap;
}
.ybtn-center{
- background:url(../images/default/basic-dialog/btn-sprite.gif) repeat-x 0 -42px;
+ background:url(./images/default/basic-dialog/btn-sprite.gif) repeat-x 0 -42px;
font:normal 11px "san serif",tahoma,verdana,helvetica;
vertical-align: middle;
text-align:center;
@@ -80,4 +80,4 @@ refer to http://www.clipperz.com. .ybtn-disabled .ybtn-center{
color:gray;
cursor:default;
-} +}
diff --git a/frontend/beta/css/yui-extensions/dd.css b/frontend/beta/css/yui-extensions/dd.css index d4413e5..87cfdae 100644 --- a/frontend/beta/css/yui-extensions/dd.css +++ b/frontend/beta/css/yui-extensions/dd.css @@ -68,11 +68,11 @@ refer to http://www.clipperz.com. z-index:1;
}
.ydd-drop-nodrop .ydd-drop-icon{
- background-image: url(../images/default/dd/drop-no.gif);
+ background-image: url(./images/default/dd/drop-no.gif);
}
.ydd-drop-ok .ydd-drop-icon{
- background-image: url(../images/default/dd/drop-yes.gif);
+ background-image: url(./images/default/dd/drop-yes.gif);
}
.ydd-drop-ok-add .ydd-drop-icon{
- background-image: url(../images/default/dd/drop-add.gif);
-} + background-image: url(./images/default/dd/drop-add.gif);
+}
diff --git a/frontend/beta/css/yui-extensions/grid.css b/frontend/beta/css/yui-extensions/grid.css index 37066ce..45a40ab 100644 --- a/frontend/beta/css/yui-extensions/grid.css +++ b/frontend/beta/css/yui-extensions/grid.css @@ -82,11 +82,11 @@ refer to http://www.clipperz.com. right:0;
top:0;
z-index:2;
- background-image: url(../images/default/grid/pick-button.gif);
+ background-image: url(./images/default/grid/pick-button.gif);
background-repeat: no-repeat;
}
.ygrid-editor-invalid{
- background-image: url(../images/default/grid/invalid_line.gif);
+ background-image: url(./images/default/grid/invalid_line.gif);
background-repeat: repeat-x;
background-position: bottom;
border: 1px solid #afbdc9;
@@ -160,13 +160,13 @@ select.ygrid-editor{ background-repeat: no-repeat;
}
.ygrid-drop-nodrop{
- background-image: url(../images/default/grid/drop-no.gif);
+ background-image: url(./images/default/grid/drop-no.gif);
}
.ygrid-drop-ok{
- background-image: url(../images/default/grid/drop-yes.gif);
+ background-image: url(./images/default/grid/drop-yes.gif);
}
.ygrid-hd .sort-asc {
- background-image: url(../images/default/grid/sort_asc.gif);
+ background-image: url(./images/default/grid/sort_asc.gif);
background-position: right;
background-repeat: no-repeat;
display: none;
@@ -174,7 +174,7 @@ select.ygrid-editor{ width: 16px;
}
.ygrid-hd .sort-desc {
- background-image: url(../images/default/grid/sort_desc.gif);
+ background-image: url(./images/default/grid/sort_desc.gif);
background-position: right;
background-repeat: no-repeat;
display: none;
@@ -204,7 +204,7 @@ select.ygrid-editor{ border-bottom: 1px solid #f9a900;
}
.ygrid-hd-split {
- background-image: url(../images/default/grid/grid-split.gif);
+ background-image: url(./images/default/grid/grid-split.gif);
background-position: center;
background-repeat: no-repeat;
cursor: e-resize;
@@ -218,7 +218,7 @@ select.ygrid-editor{ z-index: 3;
}
.ygrid-hrow{
- background: #ebeadb url(../images/default/grid/grid-hrow.gif) repeat-x;
+ background: #ebeadb url(./images/default/grid/grid-hrow.gif) repeat-x;
display: block;
height: 22px;
left: 0;
@@ -245,34 +245,34 @@ select.ygrid-editor{ height:14px;
}
.ygrid-page-first{
- background-image: url(../images/default/grid/page-first.gif);
+ background-image: url(./images/default/grid/page-first.gif);
}
.ygrid-loading{
- background-image: url(../images/default/grid/done.gif);
+ background-image: url(./images/default/grid/done.gif);
}
.ygrid-page-last{
- background-image: url(../images/default/grid/page-last.gif);
+ background-image: url(./images/default/grid/page-last.gif);
}
.ygrid-page-next{
- background-image: url(../images/default/grid/page-next.gif);
+ background-image: url(./images/default/grid/page-next.gif);
}
.ygrid-page-prev{
- background-image: url(../images/default/grid/page-prev.gif);
+ background-image: url(./images/default/grid/page-prev.gif);
}
.ytb-button-disabled .ygrid-loading{
- background-image: url(../images/default/grid/loading.gif);
+ background-image: url(./images/default/grid/loading.gif);
}
.ytb-button-disabled .ygrid-page-first{
- background-image: url(../images/default/grid/page-first-disabled.gif);
+ background-image: url(./images/default/grid/page-first-disabled.gif);
}
.ytb-button-disabled .ygrid-page-last{
- background-image: url(../images/default/grid/page-last-disabled.gif);
+ background-image: url(./images/default/grid/page-last-disabled.gif);
}
.ytb-button-disabled .ygrid-page-next{
- background-image: url(../images/default/grid/page-next-disabled.gif);
+ background-image: url(./images/default/grid/page-next-disabled.gif);
}
.ytb-button-disabled .ygrid-page-prev{
- background-image: url(../images/default/grid/page-prev-disabled.gif);
+ background-image: url(./images/default/grid/page-prev-disabled.gif);
}
.ygrid-mso{
}
@@ -297,13 +297,13 @@ select.ygrid-editor{ background-color: transparent;
}
.ygrid-mso .ygrid-hd-split {
- background-image: url(../images/default/grid/grid-blue-split.gif);
+ background-image: url(./images/default/grid/grid-blue-split.gif);
}
.ygrid-mso .ytoolbar .ytb-sep {
- background-image: url(../images/default/grid/grid-blue-split.gif);
+ background-image: url(./images/default/grid/grid-blue-split.gif);
}
.ygrid-mso .ygrid-hrow{
- background: url(../images/default/grid/mso-hd.gif);
+ background: url(./images/default/grid/mso-hd.gif);
border-bottom: 1px solid #6593cf;
height: 21px;
}
@@ -388,10 +388,10 @@ select.ygrid-editor{ border-bottom:0;
}
.ygrid-vista .ygrid-hd-split {
- background-image: url(../images/default/grid/grid-split.gif);
+ background-image: url(./images/default/grid/grid-split.gif);
}
.ygrid-vista .ygrid-hrow{
- background: url(../images/default/grid/grid-vista-hd.gif);
+ background: url(./images/default/grid/grid-vista-hd.gif);
height: 21px;
}
.ygrid-vista .ygrid-row-alt{
@@ -408,10 +408,10 @@ select.ygrid-editor{ }
.ygrid-vista .ytoolbar{
border: 0px none;
- background: url(../images/default/grid/grid-vista-hd.gif);
+ background: url(./images/default/grid/grid-vista-hd.gif);
}
.ygrid-vista .ytoolbar .ytb-sep{
- background-image: url(../images/default/grid/grid-split.gif);
+ background-image: url(./images/default/grid/grid-split.gif);
}
/*
To have the scrollbars overlap the header, change .ygrid-wrap top style to 0 and
@@ -499,14 +499,14 @@ select.ygrid-editor{ .ypopcal-head .next-month{
width:16px;
- background-image: url(../images/default/grid/arrow-right-white.gif);
+ background-image: url(./images/default/grid/arrow-right-white.gif);
background-position: center;
background-repeat: no-repeat;
cursor:pointer;
}
.ypopcal-head .prev-month{
width:16px;
- background-image: url(../images/default/grid/arrow-left-white.gif);
+ background-image: url(./images/default/grid/arrow-left-white.gif);
background-position: center;
background-repeat: no-repeat;
cursor:pointer;
@@ -578,4 +578,4 @@ select.ygrid-editor{ .ygrid-simple-view .ygrid-row{
position:static;
display: table-row;
-} +}
diff --git a/frontend/beta/css/yui-extensions/layout.css b/frontend/beta/css/yui-extensions/layout.css index 0c0feee..4f1fa03 100644 --- a/frontend/beta/css/yui-extensions/layout.css +++ b/frontend/beta/css/yui-extensions/layout.css @@ -96,7 +96,7 @@ refer to http://www.clipperz.com. background-color:#c3daf9;
}
.ylayout-panel-hd{
- background-image: url(../images/default/layout/panel-title-light-bg.gif);
+ background-image: url(./images/default/layout/panel-title-light-bg.gif);
color: black;
border-bottom:1px solid #98c0f4;
position:relative;
@@ -135,40 +135,40 @@ refer to http://www.clipperz.com. background-position:center;
}
.ylayout-close{
- background-image:url(../images/default/layout/layout-sprite.gif);
+ background-image:url(./images/default/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -48px;
}
.ylayout-collapse-west,.ylayout-expand-east{
- background-image:url(../images/default/layout/layout-sprite.gif);
+ background-image:url(./images/default/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% 0;
}
.ylayout-expand-west,.ylayout-collapse-east{
- background-image:url(../images/default/layout/layout-sprite.gif);
+ background-image:url(./images/default/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -12px;
}
.ylayout-collapse-north,.ylayout-expand-south{
- background-image:url(../images/default/layout/layout-sprite.gif);
+ background-image:url(./images/default/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -24px;
}
.ylayout-expand-north,.ylayout-collapse-south{
- background-image:url(../images/default/layout/layout-sprite.gif);
+ background-image:url(./images/default/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -36px;
}
.ylayout-split-h{
- background-image:url(../images/default/sizer/e-handle.gif);
+ background-image:url(./images/default/sizer/e-handle.gif);
background-position: left;
}
.ylayout-split-v{
- background-image:url(../images/default/sizer/s-handle.gif);
+ background-image:url(./images/default/sizer/s-handle.gif);
background-position: top;
}
.ylayout-panel .ytab-wrap{
- background:url(../images/default/layout/gradient-bg.gif);
+ background:url(./images/default/layout/gradient-bg.gif);
}
.ylayout-panel .yui-ext-tabbody {
background-color:white;
@@ -204,7 +204,7 @@ refer to http://www.clipperz.com. border: 2px solid #6593cf;
}
.ylayout-panel-proxy {
- background-image: url(../images/default/layout/gradient-bg.gif);
+ background-image: url(./images/default/layout/gradient-bg.gif);
background-color:#c3daf9;
border:1px dashed #6593cf;
z-index:10001;
@@ -222,4 +222,4 @@ refer to http://www.clipperz.com. -moz-user-select: none;
-khtml-user-select: none;
cursor:default;
-} +}
diff --git a/frontend/beta/css/yui-extensions/qtips.css b/frontend/beta/css/yui-extensions/qtips.css index 34d3323..d4af0a2 100644 --- a/frontend/beta/css/yui-extensions/qtips.css +++ b/frontend/beta/css/yui-extensions/qtips.css @@ -30,13 +30,13 @@ refer to http://www.clipperz.com. z-index: 11000;
}
.ytip .ytip-bd{
- background: #e0e8f3 url(../images/default/qtip/bg.gif) repeat-x;
+ background: #e0e8f3 url(./images/default/qtip/bg.gif) repeat-x;
border: 1px solid #a3bad9;
font: normal 11px arial,helvetica,sans-serif;
padding: 5px;
}
.ytip .ytip-close{
- background-image: url(../images/default/basic-dialog/close.gif);
+ background-image: url(./images/default/basic-dialog/close.gif);
height: 15px;
position: absolute;
right: 3px;
@@ -44,7 +44,7 @@ refer to http://www.clipperz.com. width: 15px;
}
.ytip .ytip-hd {
- background: url(../images/default/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
+ background: url(./images/default/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
background-color: navy;
color: #FFF;
display: block;
@@ -52,16 +52,16 @@ refer to http://www.clipperz.com. padding: 4px;
}
.ytip .ytip-hd-left {
- background: url(../images/default/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
+ background: url(./images/default/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
display: block;
margin: 0px;
padding-left: 3px;
}
.ytip .ytip-hd-right {
- background: url(../images/default/basic-dialog/hd-sprite.gif) no-repeat right 0px;
+ background: url(./images/default/basic-dialog/hd-sprite.gif) no-repeat right 0px;
display: block;
padding-right: 3px;
}
y\:qtip, qtip{
display: none;
-} +}
diff --git a/frontend/beta/css/yui-extensions/resizable.css b/frontend/beta/css/yui-extensions/resizable.css index 51d91ac..61b826b 100644 --- a/frontend/beta/css/yui-extensions/resizable.css +++ b/frontend/beta/css/yui-extensions/resizable.css @@ -102,35 +102,35 @@ refer to http://www.clipperz.com. opacity:1;
}
.yresizable-over .yresizable-handle-east, .yresizable-pinned .yresizable-handle-east{
- background:url(../images/default/sizer/e-handle.gif);
+ background:url(./images/default/sizer/e-handle.gif);
background-position: left;
}
.yresizable-over .yresizable-handle-west, .yresizable-pinned .yresizable-handle-west{
- background:url(../images/default/sizer/e-handle.gif);
+ background:url(./images/default/sizer/e-handle.gif);
background-position: left;
}
.yresizable-over .yresizable-handle-south, .yresizable-pinned .yresizable-handle-south{
- background:url(../images/default/sizer/s-handle.gif);
+ background:url(./images/default/sizer/s-handle.gif);
background-position: top;
}
.yresizable-over .yresizable-handle-north, .yresizable-pinned .yresizable-handle-north{
- background:url(../images/default/sizer/s-handle.gif);
+ background:url(./images/default/sizer/s-handle.gif);
background-position: top;
}
.yresizable-over .yresizable-handle-southeast, .yresizable-pinned .yresizable-handle-southeast{
- background:url(../images/default/sizer/corners-sprite.gif);
+ background:url(./images/default/sizer/corners-sprite.gif);
background-position: top left;
}
.yresizable-over .yresizable-handle-northwest, .yresizable-pinned .yresizable-handle-northwest{
- background:url(../images/default/sizer/corners-sprite.gif);
+ background:url(./images/default/sizer/corners-sprite.gif);
background-position:bottom right;
}
.yresizable-over .yresizable-handle-northeast, .yresizable-pinned .yresizable-handle-northeast{
- background:url(../images/default/sizer/corners-sprite.gif);
+ background:url(./images/default/sizer/corners-sprite.gif);
background-position: bottom left;
}
.yresizable-over .yresizable-handle-southwest, .yresizable-pinned .yresizable-handle-southwest{
- background:url(../images/default/sizer/corners-sprite.gif);
+ background:url(./images/default/sizer/corners-sprite.gif);
background-position: top right;
}
.yresizable-proxy{
diff --git a/frontend/beta/css/yui-extensions/tabs.css b/frontend/beta/css/yui-extensions/tabs.css index 6fd0f89..025214a 100644 --- a/frontend/beta/css/yui-extensions/tabs.css +++ b/frontend/beta/css/yui-extensions/tabs.css @@ -68,16 +68,16 @@ refer to http://www.clipperz.com. }
.ytab-strip .on .ytab-right {
- background: url(../images/default/tabs/tab-sprite.gif) no-repeat right 0;
+ background: url(./images/default/tabs/tab-sprite.gif) no-repeat right 0;
}
.ytab-strip .on .ytab-left {
- background: url(../images/default/tabs/tab-sprite.gif) no-repeat 0 -100px;
+ background: url(./images/default/tabs/tab-sprite.gif) no-repeat 0 -100px;
}
.ytab-strip .ytab-right {
- background: url(../images/default/tabs/tab-sprite.gif) no-repeat right -50px;
+ background: url(./images/default/tabs/tab-sprite.gif) no-repeat right -50px;
}
.ytab-strip .ytab-left {
- background: url(../images/default/tabs/tab-sprite.gif) no-repeat 0 -150px;
+ background: url(./images/default/tabs/tab-sprite.gif) no-repeat 0 -150px;
}
.ytab-strip a {
@@ -98,7 +98,7 @@ refer to http://www.clipperz.com. .ytab-strip .ytab-closable .close-icon{
line-height: 1px;
font-size:1px;
- background-image:url(../images/default/layout/layout-sprite.gif);
+ background-image:url(./images/default/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -60px;
display:block;
@@ -108,12 +108,12 @@ refer to http://www.clipperz.com. cursor:pointer;
}
.ytab-strip .on .close-icon{
- background-image:url(../images/default/layout/layout-sprite.gif);
+ background-image:url(./images/default/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -60px;
}
.ytab-strip .ytab-closable .close-over{
- background-image:url(../images/default/layout/layout-sprite.gif);
+ background-image:url(./images/default/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -72px;
}
@@ -125,16 +125,16 @@ refer to http://www.clipperz.com. padding-bottom:2px;
}
.ytabs-bottom .ytab-strip .ytab-right {
- background: url(../images/default/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom left;
+ background: url(./images/default/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom left;
}
.ytabs-bottom .ytab-strip .ytab-left {
- background: url(../images/default/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom right;
+ background: url(./images/default/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom right;
}
.ytabs-bottom .ytab-strip .on .ytab-right {
- background: url(../images/default/tabs/tab-btm-right-bg.gif) no-repeat bottom left;
+ background: url(./images/default/tabs/tab-btm-right-bg.gif) no-repeat bottom left;
}
.ytabs-bottom .ytab-strip .on .ytab-left {
- background: url(../images/default/tabs/tab-btm-left-bg.gif) no-repeat bottom right;
+ background: url(./images/default/tabs/tab-btm-left-bg.gif) no-repeat bottom right;
}
.ytabs-bottom .ytab-strip a {
position:relative;
diff --git a/frontend/beta/css/yui-extensions/toolbar.css b/frontend/beta/css/yui-extensions/toolbar.css index dea6754..198b47c 100644 --- a/frontend/beta/css/yui-extensions/toolbar.css +++ b/frontend/beta/css/yui-extensions/toolbar.css @@ -32,7 +32,7 @@ refer to http://www.clipperz.com. .mso .ytoolbar, .ygrid-mso .ytoolbar{
border: 0px none;
- background: url(../images/default/grid/mso-hd.gif);
+ background: url(./images/default/grid/mso-hd.gif);
}
.ytoolbar td,.ytoolbar span,.ytoolbar input,.ytoolbar div{
white-space: nowrap;
@@ -89,12 +89,12 @@ refer to http://www.clipperz.com. display:block;
}
.ytoolbar .ytb-button-over{
- background:#c3d3ed url(../images/default/toolbar/btn-over-bg.gif) repeat-x;
+ background:#c3d3ed url(./images/default/toolbar/btn-over-bg.gif) repeat-x;
border:1px solid #6593cf;
padding:1px 2px;
}
.ytoolbar .ytb-sep {
- background-image: url(../images/default/grid/grid-split.gif);
+ background-image: url(./images/default/grid/grid-split.gif);
background-position: center;
background-repeat: no-repeat;
display: block;
@@ -107,6 +107,6 @@ refer to http://www.clipperz.com. border:0px;
}
.mso .ytoolbar .ytb-sep, .ygrid-mso .ytoolbar .ytb-sep{
- background-image: url(../images/default/grid/grid-blue-split.gif);
+ background-image: url(./images/default/grid/grid-blue-split.gif);
}
diff --git a/frontend/beta/css/yui-extensions/tree.css b/frontend/beta/css/yui-extensions/tree.css index 992909d..4b448e8 100644 --- a/frontend/beta/css/yui-extensions/tree.css +++ b/frontend/beta/css/yui-extensions/tree.css @@ -43,18 +43,18 @@ refer to http://www.clipperz.com. /* some default icons for leaf/folder */
.ytree-node-collapsed .ytree-node-icon{
- background:transparent url(../images/default/tree/folder.gif);
+ background:transparent url(./images/default/tree/folder.gif);
}
.ytree-node-expanded .ytree-node-icon{
- background:transparent url(../images/default/tree/folder-open.gif);
+ background:transparent url(./images/default/tree/folder-open.gif);
}
.ytree-node-leaf .ytree-node-icon{
- background:transparent url(../images/default/tree/leaf.gif);
+ background:transparent url(./images/default/tree/leaf.gif);
}
/* loading icon */
.ytree-node-loading .ytree-node-icon{
- background:transparent url(../images/default/tree/loading.gif) !important;
+ background:transparent url(./images/default/tree/loading.gif) !important;
}
.ytree-node-loading a span{
font-style: italic;
@@ -63,25 +63,25 @@ refer to http://www.clipperz.com. /* Line styles */
.ytree-lines .ytree-elbow{
- background:transparent url(../images/default/tree/elbow.gif);
+ background:transparent url(./images/default/tree/elbow.gif);
}
.ytree-lines .ytree-elbow-plus{
- background:transparent url(../images/default/tree/elbow-plus.gif);
+ background:transparent url(./images/default/tree/elbow-plus.gif);
}
.ytree-lines .ytree-elbow-minus{
- background:transparent url(../images/default/tree/elbow-minus.gif);
+ background:transparent url(./images/default/tree/elbow-minus.gif);
}
.ytree-lines .ytree-elbow-end{
- background:transparent url(../images/default/tree/elbow-end.gif);
+ background:transparent url(./images/default/tree/elbow-end.gif);
}
.ytree-lines .ytree-elbow-end-plus{
- background:transparent url(../images/default/tree/elbow-end-plus.gif);
+ background:transparent url(./images/default/tree/elbow-end-plus.gif);
}
.ytree-lines .ytree-elbow-end-minus{
- background:transparent url(../images/default/tree/elbow-end-minus.gif);
+ background:transparent url(./images/default/tree/elbow-end-minus.gif);
}
.ytree-lines .ytree-elbow-line{
- background:transparent url(../images/default/tree/elbow-line.gif);
+ background:transparent url(./images/default/tree/elbow-line.gif);
}
/* No line styles */
@@ -89,19 +89,19 @@ refer to http://www.clipperz.com. background:transparent;
}
.ytree-no-lines .ytree-elbow-plus{
- background:transparent url(../images/default/tree/elbow-plus-nl.gif);
+ background:transparent url(./images/default/tree/elbow-plus-nl.gif);
}
.ytree-no-lines .ytree-elbow-minus{
- background:transparent url(../images/default/tree/elbow-minus-nl.gif);
+ background:transparent url(./images/default/tree/elbow-minus-nl.gif);
}
.ytree-no-lines .ytree-elbow-end{
background:transparent;
}
.ytree-no-lines .ytree-elbow-end-plus{
- background:transparent url(../images/default/tree/elbow-end-plus-nl.gif);
+ background:transparent url(./images/default/tree/elbow-end-plus-nl.gif);
}
.ytree-no-lines .ytree-elbow-end-minus{
- background:transparent url(../images/default/tree/elbow-end-minus-nl.gif);
+ background:transparent url(./images/default/tree/elbow-end-minus-nl.gif);
}
.ytree-no-lines .ytree-elbow-line{
background:transparent;
@@ -171,20 +171,20 @@ refer to http://www.clipperz.com. display:none !important;
}
.ytree-drop-ok-append .ydd-drop-icon{
- background-image: url(../images/default/tree/drop-add.gif);
+ background-image: url(./images/default/tree/drop-add.gif);
}
.ytree-drop-ok-above .ydd-drop-icon{
- background-image: url(../images/default/tree/drop-over.gif);
+ background-image: url(./images/default/tree/drop-over.gif);
}
.ytree-drop-ok-below .ydd-drop-icon{
- background-image: url(../images/default/tree/drop-under.gif);
+ background-image: url(./images/default/tree/drop-under.gif);
}
.ytree-drop-ok-between .ydd-drop-icon{
- background-image: url(../images/default/tree/drop-between.gif);
+ background-image: url(./images/default/tree/drop-between.gif);
}
.ylayer-shadow{
background:#cccccc;
opacity:.3;
-moz-opacity:.3;
filter: alpha(opacity=30);
-} +}
diff --git a/frontend/beta/css/yui-extensions/ytheme-aero.css b/frontend/beta/css/yui-extensions/ytheme-aero.css index b599de0..a3087b0 100644 --- a/frontend/beta/css/yui-extensions/ytheme-aero.css +++ b/frontend/beta/css/yui-extensions/ytheme-aero.css @@ -34,7 +34,7 @@ refer to http://www.clipperz.com. }
.ytab-strip-wrap{
padding-top:1px;
- background:#cedff5 url(../images/aero/tabs/tab-strip-bg.gif) repeat-x bottom;
+ background:#cedff5 url(./images/aero/tabs/tab-strip-bg.gif) repeat-x bottom;
border-bottom:1px solid #8db2e3;
}
.ytab-strip .ytab-text {
@@ -46,16 +46,16 @@ refer to http://www.clipperz.com. color:#15428b;
}
.ytabs-top .ytab-strip .on .ytab-right {
- background: url(../images/aero/tabs/tab-sprite.gif) no-repeat right 0px;
+ background: url(./images/aero/tabs/tab-sprite.gif) no-repeat right 0px;
}
.ytabs-top .ytab-strip .on .ytab-left,.ytabs-top .ytab-strip .on a:hover .ytab-left{
- background: url(../images/aero/tabs/tab-sprite.gif) no-repeat 0px -100px;
+ background: url(./images/aero/tabs/tab-sprite.gif) no-repeat 0px -100px;
}
.ytabs-top .ytab-strip .ytab-right {
- background:transparent url(../images/aero/tabs/tab-sprite.gif) no-repeat right -50px;
+ background:transparent url(./images/aero/tabs/tab-sprite.gif) no-repeat right -50px;
}
.ytabs-top .ytab-strip .ytab-left {
- background:transparent url(../images/aero/tabs/tab-sprite.gif) no-repeat 0px -150px;
+ background:transparent url(./images/aero/tabs/tab-sprite.gif) no-repeat 0px -150px;
}
.ytabs-top .yui-ext-tabbody {
border:1px solid #8db2e3;
@@ -70,21 +70,21 @@ refer to http://www.clipperz.com. .ytabs-bottom .ytab-strip-wrap{
padding-top:0px;
padding-bottom:1px;
- background:#cedff5 url(../images/aero/tabs/tab-strip-btm-bg.gif) repeat-x top;
+ background:#cedff5 url(./images/aero/tabs/tab-strip-btm-bg.gif) repeat-x top;
border-top:1px solid #8db2e3;
border-bottom:0px none;
}
.ytabs-bottom .ytab-strip .ytab-right {
- background:transparent url(../images/aero/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom right;
+ background:transparent url(./images/aero/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom right;
}
.ytabs-bottom .ytab-strip .ytab-left {
- background:transparent url(../images/aero/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom left;
+ background:transparent url(./images/aero/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom left;
}
.ytabs-bottom .ytab-strip .on .ytab-right,.ytabs-bottom .ytab-strip .on a:hover {
- background: url(../images/aero/tabs/tab-btm-right-bg.gif) no-repeat bottom left;
+ background: url(./images/aero/tabs/tab-btm-right-bg.gif) no-repeat bottom left;
}
.ytabs-bottom .ytab-strip .on .ytab-left,.ytabs-bottom .ytab-strip .on a:hover .ytab-left {
- background: url(../images/aero/tabs/tab-btm-left-bg.gif) no-repeat bottom right;
+ background: url(./images/aero/tabs/tab-btm-left-bg.gif) no-repeat bottom right;
}
.ytabs-bottom .yui-ext-tabbody {
border:1px solid #8db2e3;
@@ -107,7 +107,7 @@ refer to http://www.clipperz.com. background:transparent;
}
.ydlg .ydlg-hd {
- background: url(../images/aero/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
+ background: url(./images/aero/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
background-color:#aabaca;
color:#15428b;
zoom:1;
@@ -115,7 +115,7 @@ refer to http://www.clipperz.com. }
.ydlg .ydlg-hd-left {
opacity:.85;-moz-opacity:.85;filter:alpha(opacity=80);
- background: url(../images/aero/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
+ background: url(./images/aero/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
zoom:1;
}
.ydlg-modal .ydlg-hd-left {
@@ -123,7 +123,7 @@ refer to http://www.clipperz.com. }
.ydlg .ydlg-hd-right {
- background: url(../images/aero/basic-dialog/hd-sprite.gif) no-repeat right 0px;
+ background: url(./images/aero/basic-dialog/hd-sprite.gif) no-repeat right 0px;
zoom:1;
}
.ydlg .ydlg-dlg-body{
@@ -154,17 +154,17 @@ refer to http://www.clipperz.com. }
.ydlg .ydlg-bg-center {
padding: 2px 7px 7px 7px;
- background:transparent url(../images/aero/basic-dialog/bg-center.gif) repeat-x bottom;
+ background:transparent url(./images/aero/basic-dialog/bg-center.gif) repeat-x bottom;
zoom:1;
}
.ydlg .ydlg-bg-left{
padding-left:7px;
- background:transparent url(../images/aero/basic-dialog/bg-left.gif) no-repeat bottom left;
+ background:transparent url(./images/aero/basic-dialog/bg-left.gif) no-repeat bottom left;
zoom:1;
}
.ydlg .ydlg-bg-right{
padding-right:7px;
- background:transparent url(../images/aero/basic-dialog/bg-right.gif) no-repeat bottom right;
+ background:transparent url(./images/aero/basic-dialog/bg-right.gif) no-repeat bottom right;
zoom:1;
}
.ydlg-auto-tabs .ydlg-dlg-body, .ydlg-auto-layout .ydlg-dlg-body{
@@ -187,26 +187,26 @@ refer to http://www.clipperz.com. top:5px;
right:5px;
opacity:.85;-moz-opacity:.85;filter:alpha(opacity=80);
- background-image:url(../images/aero/basic-dialog/aero-close.gif);
+ background-image:url(./images/aero/basic-dialog/aero-close.gif);
zoom:1;
}
.ydlg .ydlg-close-over {
- background-image:url(../images/aero/basic-dialog/aero-close-over.gif);
+ background-image:url(./images/aero/basic-dialog/aero-close-over.gif);
}
.ydlg div.yresizable-handle-east{
- background-image:url(../images/aero/s.gif);
+ background-image:url(./images/aero/s.gif);
border:0px none;
}
.ydlg div.yresizable-handle-south{
- background-image:url(../images/aero/s.gif);
+ background-image:url(./images/aero/s.gif);
border:0px none;
}
.ydlg div.yresizable-handle-west{
- background-image:url(../images/aero/s.gif);
+ background-image:url(./images/aero/s.gif);
border:0px none;
}
.ydlg div.yresizable-handle-southeast{
- background-image:url(../images/aero/basic-dialog/se-handle.gif);
+ background-image:url(./images/aero/basic-dialog/se-handle.gif);
background-position: bottom right;
width:9px;
height:9px;
@@ -215,14 +215,14 @@ refer to http://www.clipperz.com. bottom:2px;
}
.ydlg div.yresizable-handle-southwest{
- background-image:url(../images/aero/s.gif);
+ background-image:url(./images/aero/s.gif);
background-position: top right;
margin-left:1px;
margin-bottom:1px;
border:0px;
}
.ydlg div.yresizable-handle-north{
- background-image:url(../images/aero/s.gif);
+ background-image:url(./images/aero/s.gif);
border:0px none;
}
@@ -252,7 +252,7 @@ refer to http://www.clipperz.com. background-color:#deecfd;
}
.ylayout-panel-hd{
- background-image: url(../images/aero/layout/panel-title-light-bg.gif);
+ background-image: url(./images/aero/layout/panel-title-light-bg.gif);
border-bottom:1px solid #c0d7f4;
}
.ylayout-panel-hd-text {
@@ -293,7 +293,7 @@ refer to http://www.clipperz.com. border: 2px solid #99bbe8;
}
.ylayout-panel-proxy {
- background-image: url(../images/aero/layout/gradient-bg.gif);
+ background-image: url(./images/aero/layout/gradient-bg.gif);
background-color:#f3f2e7;
border:1px dashed #99bbe8;
}
@@ -323,10 +323,10 @@ refer to http://www.clipperz.com. border-bottom:0px;
}
.ygrid-hd-split {
- background-image: url(../images/aero/grid/grid-split.gif);
+ background-image: url(./images/aero/grid/grid-split.gif);
}
.ygrid-hrow{
- background: url(../images/aero/grid/grid-hrow.gif);
+ background: url(./images/aero/grid/grid-hrow.gif);
height: 22px;
border:0px none;
}
@@ -354,5 +354,5 @@ refer to http://www.clipperz.com. border:1px solid #8db2e3;
}
.ytoolbar .ytb-sep{
- background-image: url(../images/aero/grid/grid-blue-split.gif);
-} + background-image: url(./images/aero/grid/grid-blue-split.gif);
+}
diff --git a/frontend/beta/css/yui-extensions/ytheme-gray.css b/frontend/beta/css/yui-extensions/ytheme-gray.css index d1a1a4a..22538e3 100644 --- a/frontend/beta/css/yui-extensions/ytheme-gray.css +++ b/frontend/beta/css/yui-extensions/ytheme-gray.css @@ -27,7 +27,7 @@ refer to http://www.clipperz.com. * Basic-Dialog
*/
.ydlg-proxy {
- background-image: url(../images/gray/layout/gradient-bg.gif);
+ background-image: url(./images/gray/layout/gradient-bg.gif);
background-color:#EAE8D5;
border:1px solid #b3b6b0;
}
@@ -35,17 +35,17 @@ refer to http://www.clipperz.com. background:#aaaaaa;
}
.ydlg-proxy .tabset{
- background:url(../images/gray/layout/gradient-bg.gif);
+ background:url(./images/gray/layout/gradient-bg.gif);
}
.ydlg .ydlg-hd {
- background: url(../images/gray/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
+ background: url(./images/gray/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
background-color:#333333;
}
.ydlg .ydlg-hd-left {
- background: url(../images/gray/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
+ background: url(./images/gray/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
}
.ydlg .ydlg-hd-right {
- background: url(../images/gray/basic-dialog/hd-sprite.gif) no-repeat right 0px;
+ background: url(./images/gray/basic-dialog/hd-sprite.gif) no-repeat right 0px;
}
.ydlg .ydlg-dlg-body{
background:#efefec;
@@ -64,36 +64,36 @@ refer to http://www.clipperz.com. border:0px none;
}
.ydlg .ydlg-close {
- background-image:url(../images/gray/basic-dialog/close.gif);
+ background-image:url(./images/gray/basic-dialog/close.gif);
}
.ydlg div.yresizable-handle-east{
- background-image:url(../images/gray/basic-dialog/e-handle.gif);
+ background-image:url(./images/gray/basic-dialog/e-handle.gif);
border:0px none;
}
.ydlg div.yresizable-handle-south{
- background-image:url(../images/gray/basic-dialog/s-handle.gif);
+ background-image:url(./images/gray/basic-dialog/s-handle.gif);
border:0px none;
}
.ydlg div.yresizable-handle-west{
- background-image:url(../images/gray/basic-dialog/e-handle.gif);
+ background-image:url(./images/gray/basic-dialog/e-handle.gif);
border:0px none;
}
.ydlg div.yresizable-handle-southeast{
- background-image:url(../images/gray/basic-dialog/se-handle.gif);
+ background-image:url(./images/gray/basic-dialog/se-handle.gif);
background-position: bottom right;
width:8px;
height:8px;
border:0px;
}
.ydlg div.yresizable-handle-southwest{
- background-image:url(../images/gray/sizer/sw-handle-dark.gif);
+ background-image:url(./images/gray/sizer/sw-handle-dark.gif);
background-position: top right;
margin-left:1px;
margin-bottom:1px;
border:0px;
}
.ydlg div.yresizable-handle-north{
- background-image:url(../images/gray/s.gif);
+ background-image:url(./images/gray/s.gif);
border:0px none;
}
@@ -108,27 +108,27 @@ refer to http://www.clipperz.com. color:#333333;
}
.ytabs-top .ytab-strip .on .ytab-right {
- background: url(../images/gray/tabs/tab-sprite.gif) no-repeat right 0px;
+ background: url(./images/gray/tabs/tab-sprite.gif) no-repeat right 0px;
}
.ytabs-top .ytab-strip .on .ytab-left {
- background: url(../images/gray/tabs/tab-sprite.gif) no-repeat 0px -100px;
+ background: url(./images/gray/tabs/tab-sprite.gif) no-repeat 0px -100px;
}
.ytabs-top .ytab-strip .ytab-right {
- background: url(../images/gray/tabs/tab-sprite.gif) no-repeat right -50px;
+ background: url(./images/gray/tabs/tab-sprite.gif) no-repeat right -50px;
}
.ytabs-top .ytab-strip .ytab-left {
- background: url(../images/gray/tabs/tab-sprite.gif) no-repeat 0px -150px;
+ background: url(./images/gray/tabs/tab-sprite.gif) no-repeat 0px -150px;
}
.ytab-strip .ytab-closable .close-icon{
- background-image:url(../images/gray/layout/layout-sprite.gif);
+ background-image:url(./images/gray/layout/layout-sprite.gif);
background-position: 50% -60px;
}
.ytab-strip .on .close-icon{
- background-image:url(../images/gray/layout/layout-sprite.gif);
+ background-image:url(./images/gray/layout/layout-sprite.gif);
background-position: 50% -60px;
}
.ytab-strip .ytab-closable .close-over{
- background-image:url(../images/gray/layout/layout-sprite.gif);
+ background-image:url(./images/gray/layout/layout-sprite.gif);
background-position: 50% -72px;
}
@@ -138,34 +138,34 @@ refer to http://www.clipperz.com. border-top:1px solid #aca899;
}
.ytabs-bottom .ytab-strip .ytab-right {
- background: url(../images/gray/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom left;
+ background: url(./images/gray/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom left;
}
.ytabs-bottom .ytab-strip .ytab-left {
- background: url(../images/gray/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom right;
+ background: url(./images/gray/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom right;
}
.ytabs-bottom .ytab-strip .on .ytab-right {
- background: url(../images/gray/tabs/tab-btm-right-bg.gif) no-repeat bottom left;
+ background: url(./images/gray/tabs/tab-btm-right-bg.gif) no-repeat bottom left;
}
.ytabs-bottom .ytab-strip .on .ytab-left {
- background: url(../images/gray/tabs/tab-btm-left-bg.gif) no-repeat bottom right;
+ background: url(./images/gray/tabs/tab-btm-left-bg.gif) no-repeat bottom right;
}
/* QuickTips */
.ytip .ytip-hd-right{
- background: url(../images/gray/basic-dialog/hd-sprite.gif) no-repeat right 0px;
+ background: url(./images/gray/basic-dialog/hd-sprite.gif) no-repeat right 0px;
}
.ytip .ytip-hd-left{
- background: url(../images/gray/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
+ background: url(./images/gray/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
}
.ytip .ytip-hd{
- background: url(../images/gray/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
+ background: url(./images/gray/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
}
.ytip .ytip-close{
- background-image: url(../images/gray/basic-dialog/close.gif);
+ background-image: url(./images/gray/basic-dialog/close.gif);
}
.ytip .ytip-bd{
- background: #e7e7e7 url(../images/gray/qtip/bg.gif);
+ background: #e7e7e7 url(./images/gray/qtip/bg.gif);
border: 1px solid #ababab;
}
@@ -191,45 +191,45 @@ refer to http://www.clipperz.com. background-color:#f3f2e7;
}
.ylayout-panel-hd{
- background-image: url(../images/gray/layout/panel-title-light-bg.gif);
+ background-image: url(./images/gray/layout/panel-title-light-bg.gif);
border-bottom:1px solid #aca899;
}
.ylayout-tools-button-over{
border:1px solid #aca899;
}
.ylayout-close{
- background-image:url(../images/gray/layout/layout-sprite.gif);
+ background-image:url(./images/gray/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -48px;
}
.ylayout-collapse-west,.ylayout-expand-east{
- background-image:url(../images/gray/layout/layout-sprite.gif);
+ background-image:url(./images/gray/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% 0;
}
.ylayout-expand-west,.ylayout-collapse-east{
- background-image:url(../images/gray/layout/layout-sprite.gif);
+ background-image:url(./images/gray/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -12px;
}
.ylayout-collapse-north,.ylayout-expand-south{
- background-image:url(../images/gray/layout/layout-sprite.gif);
+ background-image:url(./images/gray/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -24px;
}
.ylayout-expand-north,.ylayout-collapse-south{
- background-image:url(../images/gray/layout/layout-sprite.gif);
+ background-image:url(./images/gray/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -36px;
}
.ylayout-split-h{
- background-image:url(../images/gray/sizer/e-handle-dark.gif);
+ background-image:url(./images/gray/sizer/e-handle-dark.gif);
}
.ylayout-split-v{
- background-image:url(../images/gray/sizer/s-handle-dark.gif);
+ background-image:url(./images/gray/sizer/s-handle-dark.gif);
}
.ylayout-panel .ytab-wrap{
- background:url(../images/gray/layout/gradient-bg.gif);
+ background:url(./images/gray/layout/gradient-bg.gif);
}
.ylayout-nested-layout .ylayout-panel-north {
border-bottom:1px solid #aca899;
@@ -247,42 +247,42 @@ refer to http://www.clipperz.com. border: 2px solid #aca899;
}
.ylayout-panel-proxy {
- background-image: url(../images/gray/layout/gradient-bg.gif);
+ background-image: url(./images/gray/layout/gradient-bg.gif);
background-color:#f3f2e7;
border:1px dashed #aca899;
}
/** Resizable */
.yresizable-over .yresizable-handle-east, .yresizable-pinned .yresizable-handle-east{
- background:url(../images/gray/sizer/e-handle.gif);
+ background:url(./images/gray/sizer/e-handle.gif);
background-position: left;
}
.yresizable-over .yresizable-handle-east, .yresizable-pinned .yresizable-handle-west{
- background:url(../images/gray/sizer/e-handle.gif);
+ background:url(./images/gray/sizer/e-handle.gif);
background-position: left;
}
.yresizable-over .yresizable-handle-south, .yresizable-pinned .yresizable-handle-south{
- background:url(../images/gray/sizer/s-handle.gif);
+ background:url(./images/gray/sizer/s-handle.gif);
background-position: top;
}
.yresizable-over .yresizable-handle-south, .yresizable-pinned .yresizable-handle-north{
- background:url(../images/gray/sizer/s-handle.gif);
+ background:url(./images/gray/sizer/s-handle.gif);
background-position: top;
}
.yresizable-over .yresizable-handle-southeast, .yresizable-pinned .yresizable-handle-southeast{
- background:url(../images/gray/sizer/se-handle.gif);
+ background:url(./images/gray/sizer/se-handle.gif);
background-position: top left;
}
.yresizable-over .yresizable-handle-northwest,.yresizable-pinned .yresizable-handle-northwest{
- background:url(../images/gray/sizer/nw-handle.gif);
+ background:url(./images/gray/sizer/nw-handle.gif);
background-position:bottom right;
}
.yresizable-over .yresizable-handle-northeast,.yresizable-pinned .yresizable-handle-northeast{
- background:url(../images/gray/sizer/ne-handle.gif);
+ background:url(./images/gray/sizer/ne-handle.gif);
background-position: bottom left;
}
.yresizable-over .yresizable-handle-southwest,.yresizable-pinned .yresizable-handle-southwest{
- background:url(../images/gray/sizer/sw-handle.gif);
+ background:url(./images/gray/sizer/sw-handle.gif);
background-position: top right;
}
.yresizable-proxy{
@@ -292,6 +292,6 @@ refer to http://www.clipperz.com. /** Toolbar */
.ytoolbar{
border:0px none;
- background: #efefe3 url(../images/gray/toolbar/gray-bg.gif) repeat-x;
+ background: #efefe3 url(./images/gray/toolbar/gray-bg.gif) repeat-x;
padding:3px;
-} +}
diff --git a/frontend/beta/css/yui-extensions/ytheme-vista.css b/frontend/beta/css/yui-extensions/ytheme-vista.css index 85bf82b..e0e520f 100644 --- a/frontend/beta/css/yui-extensions/ytheme-vista.css +++ b/frontend/beta/css/yui-extensions/ytheme-vista.css @@ -39,16 +39,16 @@ refer to http://www.clipperz.com. color:#333333;
}
.ytabs-top .ytab-strip a:hover {
- background:transparent url(../images/vista/tabs/tab-sprite.gif) no-repeat right -50px;
+ background:transparent url(./images/vista/tabs/tab-sprite.gif) no-repeat right -50px;
}
.ytabs-top .ytab-strip a:hover .ytab-left {
- background:transparent url(../images/vista/tabs/tab-sprite.gif) no-repeat 0 -150px;
+ background:transparent url(./images/vista/tabs/tab-sprite.gif) no-repeat 0 -150px;
}
.ytabs-top .ytab-strip .on .ytab-right, .ytabs-top .ytab-strip .on a:hover {
- background: url(../images/vista/tabs/tab-sprite.gif) no-repeat right 0;
+ background: url(./images/vista/tabs/tab-sprite.gif) no-repeat right 0;
}
.ytabs-top .ytab-strip .on .ytab-left, .ytabs-top .ytab-strip .on a:hover .ytab-left {
- background: url(../images/vista/tabs/tab-sprite.gif) no-repeat 0 -100px;
+ background: url(./images/vista/tabs/tab-sprite.gif) no-repeat 0 -100px;
}
.ytabs-top .ytab-strip .ytab-right {
background:transparent;
@@ -57,15 +57,15 @@ refer to http://www.clipperz.com. background:transparent;
}
.ytab-strip .ytab-closable .close-icon{
- background-image:url(../images/vista/layout/layout-sprite.gif);
+ background-image:url(./images/vista/layout/layout-sprite.gif);
background-position: 50% -60px;
}
.ytab-strip .on .close-icon{
- background-image:url(../images/vista/layout/layout-sprite.gif);
+ background-image:url(./images/vista/layout/layout-sprite.gif);
background-position: 50% -72px;
}
.ytab-strip .ytab-closable .close-over{
- background-image:url(../images/vista/layout/layout-sprite.gif);
+ background-image:url(./images/vista/layout/layout-sprite.gif);
background-position: 50% -72px;
}
@@ -73,10 +73,10 @@ refer to http://www.clipperz.com. background:#4f4f4f;
}
.ytabs-bottom .ytab-strip a:hover {
- background:transparent url(../images/vista/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom right;
+ background:transparent url(./images/vista/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom right;
}
.ytabs-bottom .ytab-strip a:hover .ytab-left{
- background:transparent url(../images/vista/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom left;
+ background:transparent url(./images/vista/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom left;
}
.ytabs-bottom .ytab-wrap {
border-bottom:0px none;
@@ -90,10 +90,10 @@ refer to http://www.clipperz.com. background:transparent;
}
.ytabs-bottom .ytab-strip .on .ytab-right,.ytabs-bottom .ytab-strip .on a:hover {
- background: url(../images/vista/tabs/tab-btm-right-bg.gif) no-repeat bottom left;
+ background: url(./images/vista/tabs/tab-btm-right-bg.gif) no-repeat bottom left;
}
.ytabs-bottom .ytab-strip .on .ytab-left,.ytabs-bottom .ytab-strip .on a:hover .ytab-left {
- background: url(../images/vista/tabs/tab-btm-left-bg.gif) no-repeat bottom right;
+ background: url(./images/vista/tabs/tab-btm-left-bg.gif) no-repeat bottom right;
}
/**
* Basic-Dialog
@@ -109,17 +109,17 @@ refer to http://www.clipperz.com. filter: alpha(opacity=30);
}
.ydlg .ydlg-hd {
- background: url(../images/vista/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
+ background: url(./images/vista/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
background-color:#333333;
zoom:1;
}
.ydlg .ydlg-hd-left {
opacity:.95;-moz-opacity:.95;filter:alpha(opacity=90);
- background: url(../images/vista/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
+ background: url(./images/vista/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
zoom:1;
}
.ydlg .ydlg-hd-right {
- background: url(../images/vista/basic-dialog/hd-sprite.gif) no-repeat right 0px;
+ background: url(./images/vista/basic-dialog/hd-sprite.gif) no-repeat right 0px;
zoom:1;
}
.ydlg .ydlg-dlg-body{
@@ -150,17 +150,17 @@ refer to http://www.clipperz.com. }
.ydlg .ydlg-bg-center {
padding: 0px 4px 4px 4px;
- background:transparent url(../images/vista/basic-dialog/bg-center.gif) repeat-x bottom;
+ background:transparent url(./images/vista/basic-dialog/bg-center.gif) repeat-x bottom;
zoom:1;
}
.ydlg .ydlg-bg-left{
padding-left:4px;
- background:transparent url(../images/vista/basic-dialog/bg-left.gif) no-repeat bottom left;
+ background:transparent url(./images/vista/basic-dialog/bg-left.gif) no-repeat bottom left;
zoom:1;
}
.ydlg .ydlg-bg-right{
padding-right:4px;
- background:transparent url(../images/vista/basic-dialog/bg-right.gif) no-repeat bottom right;
+ background:transparent url(./images/vista/basic-dialog/bg-right.gif) no-repeat bottom right;
zoom:1;
}
.ydlg .ytabs-top .yui-ext-tabbody{
@@ -174,55 +174,55 @@ refer to http://www.clipperz.com. border:0px none;
}
.ydlg .ydlg-close {
- background-image:url(../images/vista/basic-dialog/close.gif);
+ background-image:url(./images/vista/basic-dialog/close.gif);
}
.ydlg div.yresizable-handle-east{
- background-image:url(../images/vista/s.gif);
+ background-image:url(./images/vista/s.gif);
border:0px none;
}
.ydlg div.yresizable-handle-south{
- background-image:url(../images/vista/s.gif);
+ background-image:url(./images/vista/s.gif);
border:0px none;
}
.ydlg div.yresizable-handle-west{
- background-image:url(../images/vista/s.gif);
+ background-image:url(./images/vista/s.gif);
border:0px none;
}
.ydlg div.yresizable-handle-southeast{
- background-image:url(../images/vista/s.gif);
+ background-image:url(./images/vista/s.gif);
background-position: bottom right;
width:8px;
height:8px;
border:0px;
}
.ydlg div.yresizable-handle-southwest{
- background-image:url(../images/vista/s.gif);
+ background-image:url(./images/vista/s.gif);
background-position: top right;
margin-left:1px;
margin-bottom:1px;
border:0px;
}
.ydlg div.yresizable-handle-north{
- background-image:url(../images/vista/s.gif);
+ background-image:url(./images/vista/s.gif);
border:0px none;
}
/* QuickTips */
.ytip .ytip-hd-right{
- background: url(../images/vista/basic-dialog/hd-sprite.gif) no-repeat right 0px;
+ background: url(./images/vista/basic-dialog/hd-sprite.gif) no-repeat right 0px;
}
.ytip .ytip-hd-left{
- background: url(../images/vista/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
+ background: url(./images/vista/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
}
.ytip .ytip-hd{
- background: url(../images/vista/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
+ background: url(./images/vista/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
}
.ytip .ytip-close{
- background-image: url(../images/vista/basic-dialog/close.gif);
+ background-image: url(./images/vista/basic-dialog/close.gif);
}
.ytip .ytip-bd{
- background: #e7e7e7 url(../images/vista/qtip/bg.gif);
+ background: #e7e7e7 url(./images/vista/qtip/bg.gif);
border: 1px solid #ababab;
}
@@ -247,7 +247,7 @@ refer to http://www.clipperz.com. background-color:#f3f2e7;
}
.ylayout-panel-hd{
- background-image: url(../images/vista/layout/panel-title-bg.gif);
+ background-image: url(./images/vista/layout/panel-title-bg.gif);
border-bottom:1px solid #b5bac1;
}
.ylayout-panel-hd-text{
@@ -255,30 +255,30 @@ refer to http://www.clipperz.com. }
.ylayout-tools-button-over{
border:1px solid #4c535c;
- background:#9f9f9f url(../images/vista/layout/panel-title-bg.gif) repeat-x;
+ background:#9f9f9f url(./images/vista/layout/panel-title-bg.gif) repeat-x;
}
.ylayout-close{
- background-image:url(../images/vista/layout/layout-sprite.gif);
+ background-image:url(./images/vista/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -60px;
}
.ylayout-collapse-west,.ylayout-expand-east{
- background-image:url(../images/vista/layout/layout-sprite.gif);
+ background-image:url(./images/vista/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% 0;
}
.ylayout-expand-west,.ylayout-collapse-east{
- background-image:url(../images/vista/layout/layout-sprite.gif);
+ background-image:url(./images/vista/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -12px;
}
.ylayout-collapse-north,.ylayout-expand-south{
- background-image:url(../images/vista/layout/layout-sprite.gif);
+ background-image:url(./images/vista/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -24px;
}
.ylayout-expand-north,.ylayout-collapse-south{
- background-image:url(../images/vista/layout/layout-sprite.gif);
+ background-image:url(./images/vista/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -36px;
}
@@ -307,42 +307,42 @@ refer to http://www.clipperz.com. border: 2px solid #4c535c;
}
.ylayout-panel-proxy {
- background-image: url(../images/vista/layout/gradient-bg.gif);
+ background-image: url(./images/vista/layout/gradient-bg.gif);
background-color:#f3f2e7;
border:1px dashed #4c535c;
}
/** Resizable */
.yresizable-over .yresizable-handle-east, .yresizable-pinned .yresizable-handle-east{
- background:url(../images/vista/sizer/e-handle.gif);
+ background:url(./images/vista/sizer/e-handle.gif);
background-position: left;
}
.yresizable-over .yresizable-handle-east, .yresizable-pinned .yresizable-handle-west{
- background:url(../images/vista/sizer/e-handle.gif);
+ background:url(./images/vista/sizer/e-handle.gif);
background-position: left;
}
.yresizable-over .yresizable-handle-south, .yresizable-pinned .yresizable-handle-south{
- background:url(../images/vista/sizer/s-handle.gif);
+ background:url(./images/vista/sizer/s-handle.gif);
background-position: top;
}
.yresizable-over .yresizable-handle-south, .yresizable-pinned .yresizable-handle-north{
- background:url(../images/vista/sizer/s-handle.gif);
+ background:url(./images/vista/sizer/s-handle.gif);
background-position: top;
}
.yresizable-over .yresizable-handle-southeast, .yresizable-pinned .yresizable-handle-southeast{
- background:url(../images/vista/sizer/se-handle.gif);
+ background:url(./images/vista/sizer/se-handle.gif);
background-position: top left;
}
.yresizable-over .yresizable-handle-northwest,.yresizable-pinned .yresizable-handle-northwest{
- background:url(../images/vista/sizer/nw-handle.gif);
+ background:url(./images/vista/sizer/nw-handle.gif);
background-position:bottom right;
}
.yresizable-over .yresizable-handle-northeast,.yresizable-pinned .yresizable-handle-northeast{
- background:url(../images/vista/sizer/ne-handle.gif);
+ background:url(./images/vista/sizer/ne-handle.gif);
background-position: bottom left;
}
.yresizable-over .yresizable-handle-southwest,.yresizable-pinned .yresizable-handle-southwest{
- background:url(../images/vista/sizer/sw-handle.gif);
+ background:url(./images/vista/sizer/sw-handle.gif);
background-position: top right;
}
.yresizable-proxy{
@@ -352,14 +352,14 @@ refer to http://www.clipperz.com. /** Toolbar */
.ytoolbar{
border:0px none;
- background: #efefe3 url(../images/vista/toolbar/gray-bg.gif) repeat-x;
+ background: #efefe3 url(./images/vista/toolbar/gray-bg.gif) repeat-x;
padding:3px;
}
.ytoolbar .ytb-button-over{
border:1px solid transparent;
border-bottom:1px solid #bbbbbb;
border-top:1px solid #eeeeee;
- background:#9f9f9f url(../images/vista/grid/grid-vista-hd.gif) repeat-x;
+ background:#9f9f9f url(./images/vista/grid/grid-vista-hd.gif) repeat-x;
}
/* grid */
.ygrid-hd{
@@ -377,10 +377,10 @@ refer to http://www.clipperz.com. border-bottom:0px;
}
.ygrid-hd-split {
- background-image: url(../images/vista/grid/grid-split.gif);
+ background-image: url(./images/vista/grid/grid-split.gif);
}
.ygrid-hrow{
- background: url(../images/vista/grid/grid-vista-hd.gif);
+ background: url(./images/vista/grid/grid-vista-hd.gif);
height: 21px;
}
.ygrid-row-alt{
@@ -396,5 +396,5 @@ refer to http://www.clipperz.com. .ygrid-wrap-body {
}
.ytoolbar .ytb-sep{
- background-image: url(../images/vista/grid/grid-split.gif);
-} + background-image: url(./images/vista/grid/grid-split.gif);
+}
diff --git a/frontend/beta/html/index_template.html b/frontend/beta/html/index_template.html index 27a8a64..0b2875c 100644 --- a/frontend/beta/html/index_template.html +++ b/frontend/beta/html/index_template.html @@ -15,7 +15,7 @@ <script> Clipperz_IEisBroken = false; Clipperz_normalizedNewLine = '\n'; - Clipperz_dumpUrl = "/dump/"; + Clipperz_dumpUrl = "/../dump/"; </script> <!--[if IE]><script> @@ -83,11 +83,11 @@ Clipperz_normalizedNewLine = '\x0d\x0a'; </div> </div> <div id="footer"> - Copyright © 2008 Clipperz Srl - + Copyright © 2008-2013 Clipperz Srl - <a href="http://www.clipperz.com/terms_of_service" target="black">Terms of service</a> - <a href="http://www.clipperz.com/privacy_policy" target="black">Privacy policy</a> - - Application version: @application.version@ + Application version: <a href="https://github.com/clipperz/password-manager/tree/@application.version@" target="github">@application.version@</a> </div> <div id="recordDetailEditModeHeaderMask"></div> diff --git a/frontend/beta/images/cardBlockLowerBorder.gif b/frontend/beta/images/cardBlockLowerBorder.gif Binary files differindex e69de29..272ba83 100644 --- a/frontend/beta/images/cardBlockLowerBorder.gif +++ b/frontend/beta/images/cardBlockLowerBorder.gif diff --git a/frontend/beta/images/cardBlockLowerRoundedCorner.gif b/frontend/beta/images/cardBlockLowerRoundedCorner.gif Binary files differindex e69de29..920879a 100644 --- a/frontend/beta/images/cardBlockLowerRoundedCorner.gif +++ b/frontend/beta/images/cardBlockLowerRoundedCorner.gif diff --git a/frontend/beta/images/cardFiltersSprite.gif b/frontend/beta/images/cardFiltersSprite.gif Binary files differindex e69de29..5ffdd6c 100644 --- a/frontend/beta/images/cardFiltersSprite.gif +++ b/frontend/beta/images/cardFiltersSprite.gif diff --git a/frontend/beta/images/cardsBlockRoundCorners.gif b/frontend/beta/images/cardsBlockRoundCorners.gif Binary files differindex e69de29..c831db6 100644 --- a/frontend/beta/images/cardsBlockRoundCorners.gif +++ b/frontend/beta/images/cardsBlockRoundCorners.gif diff --git a/frontend/beta/images/clipperz/basic-dialog/btn-sprite.gif b/frontend/beta/images/clipperz/basic-dialog/btn-sprite.gif Binary files differindex e69de29..d00ea7c 100644 --- a/frontend/beta/images/clipperz/basic-dialog/btn-sprite.gif +++ b/frontend/beta/images/clipperz/basic-dialog/btn-sprite.gif diff --git a/frontend/beta/images/clipperz/basic-dialog/close.gif b/frontend/beta/images/clipperz/basic-dialog/close.gif Binary files differindex e69de29..07e6381 100644 --- a/frontend/beta/images/clipperz/basic-dialog/close.gif +++ b/frontend/beta/images/clipperz/basic-dialog/close.gif diff --git a/frontend/beta/images/clipperz/basic-dialog/close.png b/frontend/beta/images/clipperz/basic-dialog/close.png Binary files differindex e69de29..b4bc4e4 100644 --- a/frontend/beta/images/clipperz/basic-dialog/close.png +++ b/frontend/beta/images/clipperz/basic-dialog/close.png diff --git a/frontend/beta/images/clipperz/basic-dialog/close_over.gif b/frontend/beta/images/clipperz/basic-dialog/close_over.gif Binary files differindex e69de29..f99f083 100644 --- a/frontend/beta/images/clipperz/basic-dialog/close_over.gif +++ b/frontend/beta/images/clipperz/basic-dialog/close_over.gif diff --git a/frontend/beta/images/clipperz/basic-dialog/e-handle.gif b/frontend/beta/images/clipperz/basic-dialog/e-handle.gif Binary files differindex e69de29..dde2826 100644 --- a/frontend/beta/images/clipperz/basic-dialog/e-handle.gif +++ b/frontend/beta/images/clipperz/basic-dialog/e-handle.gif diff --git a/frontend/beta/images/clipperz/basic-dialog/hd-sprite.gif b/frontend/beta/images/clipperz/basic-dialog/hd-sprite.gif Binary files differindex e69de29..c894f35 100644 --- a/frontend/beta/images/clipperz/basic-dialog/hd-sprite.gif +++ b/frontend/beta/images/clipperz/basic-dialog/hd-sprite.gif diff --git a/frontend/beta/images/clipperz/basic-dialog/progress.gif b/frontend/beta/images/clipperz/basic-dialog/progress.gif Binary files differindex e69de29..0c3a537 100644 --- a/frontend/beta/images/clipperz/basic-dialog/progress.gif +++ b/frontend/beta/images/clipperz/basic-dialog/progress.gif diff --git a/frontend/beta/images/clipperz/basic-dialog/progress2.gif b/frontend/beta/images/clipperz/basic-dialog/progress2.gif Binary files differindex e69de29..0b3fcd2 100644 --- a/frontend/beta/images/clipperz/basic-dialog/progress2.gif +++ b/frontend/beta/images/clipperz/basic-dialog/progress2.gif diff --git a/frontend/beta/images/clipperz/basic-dialog/s-handle.gif b/frontend/beta/images/clipperz/basic-dialog/s-handle.gif Binary files differindex e69de29..c17db09 100644 --- a/frontend/beta/images/clipperz/basic-dialog/s-handle.gif +++ b/frontend/beta/images/clipperz/basic-dialog/s-handle.gif diff --git a/frontend/beta/images/clipperz/basic-dialog/se-handle.gif b/frontend/beta/images/clipperz/basic-dialog/se-handle.gif Binary files differindex e69de29..f730f60 100644 --- a/frontend/beta/images/clipperz/basic-dialog/se-handle.gif +++ b/frontend/beta/images/clipperz/basic-dialog/se-handle.gif diff --git a/frontend/beta/images/default/basic-dialog/btn-sprite.gif b/frontend/beta/images/default/basic-dialog/btn-sprite.gif Binary files differindex e69de29..8d657db 100644 --- a/frontend/beta/images/default/basic-dialog/btn-sprite.gif +++ b/frontend/beta/images/default/basic-dialog/btn-sprite.gif diff --git a/frontend/beta/images/default/basic-dialog/close.gif b/frontend/beta/images/default/basic-dialog/close.gif Binary files differindex e69de29..988ee82 100644 --- a/frontend/beta/images/default/basic-dialog/close.gif +++ b/frontend/beta/images/default/basic-dialog/close.gif diff --git a/frontend/beta/images/default/basic-dialog/e-handle.gif b/frontend/beta/images/default/basic-dialog/e-handle.gif Binary files differindex e69de29..dde2826 100644 --- a/frontend/beta/images/default/basic-dialog/e-handle.gif +++ b/frontend/beta/images/default/basic-dialog/e-handle.gif diff --git a/frontend/beta/images/default/basic-dialog/hd-sprite.gif b/frontend/beta/images/default/basic-dialog/hd-sprite.gif Binary files differindex e69de29..42da1ea 100644 --- a/frontend/beta/images/default/basic-dialog/hd-sprite.gif +++ b/frontend/beta/images/default/basic-dialog/hd-sprite.gif diff --git a/frontend/beta/images/default/basic-dialog/progress.gif b/frontend/beta/images/default/basic-dialog/progress.gif Binary files differindex e69de29..0c3a537 100644 --- a/frontend/beta/images/default/basic-dialog/progress.gif +++ b/frontend/beta/images/default/basic-dialog/progress.gif diff --git a/frontend/beta/images/default/basic-dialog/progress2.gif b/frontend/beta/images/default/basic-dialog/progress2.gif Binary files differindex e69de29..0b3fcd2 100644 --- a/frontend/beta/images/default/basic-dialog/progress2.gif +++ b/frontend/beta/images/default/basic-dialog/progress2.gif diff --git a/frontend/beta/images/default/basic-dialog/s-handle.gif b/frontend/beta/images/default/basic-dialog/s-handle.gif Binary files differindex e69de29..c17db09 100644 --- a/frontend/beta/images/default/basic-dialog/s-handle.gif +++ b/frontend/beta/images/default/basic-dialog/s-handle.gif diff --git a/frontend/beta/images/default/basic-dialog/se-handle.gif b/frontend/beta/images/default/basic-dialog/se-handle.gif Binary files differindex e69de29..f730f60 100644 --- a/frontend/beta/images/default/basic-dialog/se-handle.gif +++ b/frontend/beta/images/default/basic-dialog/se-handle.gif diff --git a/frontend/beta/images/directLogin/toggle.png b/frontend/beta/images/directLogin/toggle.png Binary files differindex e69de29..93d8218 100644 --- a/frontend/beta/images/directLogin/toggle.png +++ b/frontend/beta/images/directLogin/toggle.png diff --git a/frontend/beta/images/directLoginBox.png b/frontend/beta/images/directLoginBox.png Binary files differindex e69de29..387deb7 100644 --- a/frontend/beta/images/directLoginBox.png +++ b/frontend/beta/images/directLoginBox.png diff --git a/frontend/beta/images/entropyBackground.gif b/frontend/beta/images/entropyBackground.gif Binary files differindex e69de29..8b035b7 100644 --- a/frontend/beta/images/entropyBackground.gif +++ b/frontend/beta/images/entropyBackground.gif diff --git a/frontend/beta/images/exportLogo.png b/frontend/beta/images/exportLogo.png Binary files differindex e69de29..57a2d52 100644 --- a/frontend/beta/images/exportLogo.png +++ b/frontend/beta/images/exportLogo.png diff --git a/frontend/beta/images/favicon.ico b/frontend/beta/images/favicon.ico Binary files differindex e69de29..76db7bb 100644 --- a/frontend/beta/images/favicon.ico +++ b/frontend/beta/images/favicon.ico diff --git a/frontend/beta/images/flags/br.png b/frontend/beta/images/flags/br.png Binary files differindex e69de29..51ac06e 100644 --- a/frontend/beta/images/flags/br.png +++ b/frontend/beta/images/flags/br.png diff --git a/frontend/beta/images/flags/cn.png b/frontend/beta/images/flags/cn.png Binary files differindex e69de29..4be2967 100644 --- a/frontend/beta/images/flags/cn.png +++ b/frontend/beta/images/flags/cn.png diff --git a/frontend/beta/images/flags/de.png b/frontend/beta/images/flags/de.png Binary files differindex e69de29..a66d634 100644 --- a/frontend/beta/images/flags/de.png +++ b/frontend/beta/images/flags/de.png diff --git a/frontend/beta/images/flags/en.png b/frontend/beta/images/flags/en.png Binary files differindex e69de29..6d193aa 100644 --- a/frontend/beta/images/flags/en.png +++ b/frontend/beta/images/flags/en.png diff --git a/frontend/beta/images/flags/es.png b/frontend/beta/images/flags/es.png Binary files differindex e69de29..503ffca 100644 --- a/frontend/beta/images/flags/es.png +++ b/frontend/beta/images/flags/es.png diff --git a/frontend/beta/images/flags/it.png b/frontend/beta/images/flags/it.png Binary files differindex e69de29..a271baf 100644 --- a/frontend/beta/images/flags/it.png +++ b/frontend/beta/images/flags/it.png diff --git a/frontend/beta/images/flags/jp.png b/frontend/beta/images/flags/jp.png Binary files differindex e69de29..19e81e3 100644 --- a/frontend/beta/images/flags/jp.png +++ b/frontend/beta/images/flags/jp.png diff --git a/frontend/beta/images/flags/ru.png b/frontend/beta/images/flags/ru.png Binary files differindex e69de29..7391499 100644 --- a/frontend/beta/images/flags/ru.png +++ b/frontend/beta/images/flags/ru.png diff --git a/frontend/beta/images/grippie.png b/frontend/beta/images/grippie.png Binary files differindex e69de29..6524d41 100644 --- a/frontend/beta/images/grippie.png +++ b/frontend/beta/images/grippie.png diff --git a/frontend/beta/images/importActiveStepsSeparator.png b/frontend/beta/images/importActiveStepsSeparator.png Binary files differindex e69de29..4586878 100644 --- a/frontend/beta/images/importActiveStepsSeparator.png +++ b/frontend/beta/images/importActiveStepsSeparator.png diff --git a/frontend/beta/images/importStepsBackground.png b/frontend/beta/images/importStepsBackground.png Binary files differindex e69de29..74dd5b3 100644 --- a/frontend/beta/images/importStepsBackground.png +++ b/frontend/beta/images/importStepsBackground.png diff --git a/frontend/beta/images/importStepsLabelsBackground.png b/frontend/beta/images/importStepsLabelsBackground.png Binary files differindex e69de29..f0a72ce 100644 --- a/frontend/beta/images/importStepsLabelsBackground.png +++ b/frontend/beta/images/importStepsLabelsBackground.png diff --git a/frontend/beta/images/importStepsLeftLabelsBackground.png b/frontend/beta/images/importStepsLeftLabelsBackground.png Binary files differindex e69de29..02123ba 100644 --- a/frontend/beta/images/importStepsLeftLabelsBackground.png +++ b/frontend/beta/images/importStepsLeftLabelsBackground.png diff --git a/frontend/beta/images/importStepsSeparator.png b/frontend/beta/images/importStepsSeparator.png Binary files differindex e69de29..08df951 100644 --- a/frontend/beta/images/importStepsSeparator.png +++ b/frontend/beta/images/importStepsSeparator.png diff --git a/frontend/beta/images/languageBox.png b/frontend/beta/images/languageBox.png Binary files differindex e69de29..e13e0b1 100644 --- a/frontend/beta/images/languageBox.png +++ b/frontend/beta/images/languageBox.png diff --git a/frontend/beta/images/loginFormBox.png b/frontend/beta/images/loginFormBox.png Binary files differindex e69de29..46a1624 100644 --- a/frontend/beta/images/loginFormBox.png +++ b/frontend/beta/images/loginFormBox.png diff --git a/frontend/beta/images/loginInfoBackground.png b/frontend/beta/images/loginInfoBackground.png Binary files differindex e69de29..3692f74 100644 --- a/frontend/beta/images/loginInfoBackground.png +++ b/frontend/beta/images/loginInfoBackground.png diff --git a/frontend/beta/images/loginInfoInnerBackground.png b/frontend/beta/images/loginInfoInnerBackground.png Binary files differindex e69de29..37291b2 100644 --- a/frontend/beta/images/loginInfoInnerBackground.png +++ b/frontend/beta/images/loginInfoInnerBackground.png diff --git a/frontend/beta/images/logo.gif b/frontend/beta/images/logo.gif Binary files differindex e69de29..95ec1d0 100644 --- a/frontend/beta/images/logo.gif +++ b/frontend/beta/images/logo.gif diff --git a/frontend/beta/images/menubarSprite.gif b/frontend/beta/images/menubarSprite.gif Binary files differindex e69de29..966c1f6 100644 --- a/frontend/beta/images/menubarSprite.gif +++ b/frontend/beta/images/menubarSprite.gif diff --git a/frontend/beta/images/newRecordPanelBackground.gif b/frontend/beta/images/newRecordPanelBackground.gif Binary files differindex e69de29..8976ed4 100644 --- a/frontend/beta/images/newRecordPanelBackground.gif +++ b/frontend/beta/images/newRecordPanelBackground.gif diff --git a/frontend/beta/images/newRecordPanelBackground.png b/frontend/beta/images/newRecordPanelBackground.png Binary files differindex e69de29..513be3e 100644 --- a/frontend/beta/images/newRecordPanelBackground.png +++ b/frontend/beta/images/newRecordPanelBackground.png diff --git a/frontend/beta/images/passwordAssistant.png b/frontend/beta/images/passwordAssistant.png Binary files differindex e69de29..2f53a78 100644 --- a/frontend/beta/images/passwordAssistant.png +++ b/frontend/beta/images/passwordAssistant.png diff --git a/frontend/beta/images/read-only.gif b/frontend/beta/images/read-only.gif Binary files differindex e69de29..e4ad968 100644 --- a/frontend/beta/images/read-only.gif +++ b/frontend/beta/images/read-only.gif diff --git a/frontend/beta/images/read-only.png b/frontend/beta/images/read-only.png Binary files differindex e69de29..0c19fb7 100644 --- a/frontend/beta/images/read-only.png +++ b/frontend/beta/images/read-only.png diff --git a/frontend/beta/images/read-only_background.png b/frontend/beta/images/read-only_background.png Binary files differindex e69de29..c216dd4 100644 --- a/frontend/beta/images/read-only_background.png +++ b/frontend/beta/images/read-only_background.png diff --git a/frontend/beta/images/recordFilterBackground.png b/frontend/beta/images/recordFilterBackground.png Binary files differindex e69de29..a7f638a 100644 --- a/frontend/beta/images/recordFilterBackground.png +++ b/frontend/beta/images/recordFilterBackground.png diff --git a/frontend/beta/images/rss.gif b/frontend/beta/images/rss.gif Binary files differindex e69de29..481f712 100644 --- a/frontend/beta/images/rss.gif +++ b/frontend/beta/images/rss.gif diff --git a/frontend/beta/images/scrambledValue.gif b/frontend/beta/images/scrambledValue.gif Binary files differindex e69de29..541f642 100644 --- a/frontend/beta/images/scrambledValue.gif +++ b/frontend/beta/images/scrambledValue.gif diff --git a/frontend/beta/images/scrambledValue.png b/frontend/beta/images/scrambledValue.png Binary files differindex e69de29..feb40af 100644 --- a/frontend/beta/images/scrambledValue.png +++ b/frontend/beta/images/scrambledValue.png diff --git a/frontend/beta/images/smiles.gif b/frontend/beta/images/smiles.gif Binary files differindex e69de29..d1063a5 100644 --- a/frontend/beta/images/smiles.gif +++ b/frontend/beta/images/smiles.gif diff --git a/frontend/beta/images/smiles_big.gif b/frontend/beta/images/smiles_big.gif Binary files differindex e69de29..a3e5891 100644 --- a/frontend/beta/images/smiles_big.gif +++ b/frontend/beta/images/smiles_big.gif diff --git a/frontend/beta/images/smiles_small.gif b/frontend/beta/images/smiles_small.gif Binary files differindex e69de29..388c57b 100644 --- a/frontend/beta/images/smiles_small.gif +++ b/frontend/beta/images/smiles_small.gif diff --git a/frontend/beta/images/test-database.png b/frontend/beta/images/test-database.png Binary files differindex e69de29..db3ef1e 100644 --- a/frontend/beta/images/test-database.png +++ b/frontend/beta/images/test-database.png diff --git a/frontend/beta/js/Clipperz/PM/Connection.js b/frontend/beta/js/Clipperz/PM/Connection.js index 85aea21..e81c7a6 100644 --- a/frontend/beta/js/Clipperz/PM/Connection.js +++ b/frontend/beta/js/Clipperz/PM/Connection.js @@ -296,11 +296,15 @@ deferredResult.addErrback(MochiKit.Base.bind(function(res) {MochiKit.Logging.log this.setConnectionId(someParameters['connectionId']); this.user().setLoginInfo(someParameters['loginInfo']); this.user().setShouldDownloadOfflineCopy(someParameters['offlineCopyNeeded']); - this.user().setLock(someParameters['lock']); + + if ((isReconnecting == true) && (this.user().lock() != someParameters['lock'])) { + throw Clipperz.PM.Connection.exception.StaleData; + } if (this.oneTimePassword() != null) { result.addCallback(MochiKit.Base.method(this.user().oneTimePasswordManager(), 'archiveOneTimePassword', this.oneTimePassword())); } + result.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'connection_loggedIn'); result.addCallback(MochiKit.Async.succeed, someParameters); @@ -577,5 +581,6 @@ Clipperz.PM.Connection.SRP['1.1'].prototype = MochiKit.Base.update(new Clipperz. }); Clipperz.PM.Connection.exception = { - WrongChecksum: new MochiKit.Base.NamedError("Clipperz.ByteArray.exception.InvalidValue") + WrongChecksum: new MochiKit.Base.NamedError("Clipperz.ByteArray.exception.InvalidValue"), + StaleData: new MochiKit.Base.NamedError("Stale data") }; diff --git a/frontend/beta/js/Clipperz/PM/DataModel/Record.js b/frontend/beta/js/Clipperz/PM/DataModel/Record.js index 9e496de..d6ebb39 100644 --- a/frontend/beta/js/Clipperz/PM/DataModel/Record.js +++ b/frontend/beta/js/Clipperz/PM/DataModel/Record.js @@ -645,11 +645,13 @@ console.log("Record.processData - currentVersionParameters", currentVersionParam 'saveChanges': function() { var result; - if (this.isBrandNew() == false) { - result = this.user().saveRecords([this], 'updateData'); - } else { - result = this.user().saveRecords([this], 'addNewRecords'); - } +// if (this.isBrandNew() == false) { +// result = this.user().saveRecords([this], 'updateData'); +// } else { +// result = this.user().saveRecords([this], 'addNewRecords'); +// } + + result = this.user().saveRecords([this]); return result; }, diff --git a/frontend/beta/js/Clipperz/PM/DataModel/User.js b/frontend/beta/js/Clipperz/PM/DataModel/User.js index dbbe9a0..b065557 100644 --- a/frontend/beta/js/Clipperz/PM/DataModel/User.js +++ b/frontend/beta/js/Clipperz/PM/DataModel/User.js @@ -285,14 +285,14 @@ MochiKit.Logging.logError("- User.errorHandler: " + anErrorString + " (" + anExc //------------------------------------------------------------------------- - 'saveRecords': function(someRecords, aMethodName) { + 'saveRecords': function(someRecords /*, aMethodName*/) { var deferredResult; - var methodName; +// var methodName; var result; var i,c; //console.log("User.saveRecords - someRecords", someRecords); - methodName = aMethodName || 'addNewRecords'; +// methodName = aMethodName || 'addNewRecords'; Clipperz.NotificationCenter.notify(this, 'updatedSection', 'records', true); //MochiKit.Logging.logDebug(">>> User.saveRecords"); @@ -367,7 +367,7 @@ MochiKit.Logging.logDebug("--- User.saveRecords - 2"); //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.7 " + res); return res;}); deferredResult.addCallback(function(aResult, res) { - aResult['records'].push(res); + aResult['records'] = { 'updated': [res] }; return aResult; }, result); //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.8 " + res); return res;}); @@ -376,7 +376,8 @@ MochiKit.Logging.logDebug("--- User.saveRecords - 2"); //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 7 " + res); return res;}); deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_sendingData'); //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 8 " + res); return res;}); - deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), methodName); +// deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), methodName); + deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'saveChanges'); //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 9 " + res); return res;}); for (i=0; i<c; i++) { @@ -431,7 +432,8 @@ MochiKit.Logging.logDebug("--- User.saveRecords - 2"); return result; }, someRecords); - someParameters.recordReferences = recordReferences; +// someParameters.recordReferences = recordReferences; + someParameters['records'] = { 'deleted': recordReferences}; return someParameters; }, parameters); @@ -448,7 +450,8 @@ MochiKit.Logging.logDebug("--- User.saveRecords - 2"); deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_sendingData'); //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecords parameters: " + Clipperz.Base.serializeJSON(res)); return res;}); //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 7 " + res); return res;}); - deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'deleteRecords'); +// deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'deleteRecords'); + deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'saveChanges'); //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 8 " + res); return res;}); deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_updatingInterface'); //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 9 " + res); return res;}); diff --git a/frontend/beta/properties/beta.properties.json b/frontend/beta/properties/beta.properties.json index 810215b..bfa152d 100644 --- a/frontend/beta/properties/beta.properties.json +++ b/frontend/beta/properties/beta.properties.json @@ -185,6 +185,10 @@ "clipperz/ytheme-clipperz.css" ], - "html.template": "index_template.html" - + "staticResources": [ + "accountDeleted.html", + "error.html", + "logout.html", + "static.css" + ] } diff --git a/frontend/beta/staticResources/static.css b/frontend/beta/staticResources/static.css index 830d830..5e94440 100644 --- a/frontend/beta/staticResources/static.css +++ b/frontend/beta/staticResources/static.css @@ -41,7 +41,8 @@ div.header { } div#logo { - background: url(./images/old/logo.png); + background: url(./images/logo.gif); + background-repeat: no-repeat; width: 150px; height: 39px; display: block; @@ -166,39 +167,39 @@ div.languageBlock div.flags { } div.languageBlock.en-us div.flags { - background: url(./images/old/flags/en.png); + background: url(./images/flags/en.png); } div.languageBlock.zh-cn div.flags { - background: url(./images/old/flags/cn.png); + background: url(./images/flags/cn.png); } div.languageBlock.fr-fr div.flags { - background: url(./images/old/flags/fr.png); + background: url(./images/flags/fr.png); } div.languageBlock.it-it div.flags { - background: url(./images/old/flags/it.png); + background: url(./images/flags/it.png); } div.languageBlock.ja-jp div.flags { - background: url(./images/old/flags/jp.png); + background: url(./images/flags/jp.png); } div.languageBlock.pt-br div.flags { - background: url(./images/old/flags/br.png); + background: url(./images/flags/br.png); } div.languageBlock.es-es div.flags { - background: url(./images/old/flags/es.png); + background: url(./images/flags/es.png); } div.languageBlock.ru-ru div.flags { - background: url(./images/old/flags/ru.png); + background: url(./images/flags/ru.png); } div.languageBlock.de-de div.flags { - background: url(./images/old/flags/de.png); + background: url(./images/flags/de.png); } diff --git a/frontend/gamma/css/mobile.css b/frontend/gamma/css/mobile.css new file mode 100644 index 0000000..8c4c1bf --- a/dev/null +++ b/frontend/gamma/css/mobile.css @@ -0,0 +1,2571 @@ +/* + +Copyright 2008-2011 Clipperz Srl + +This file is part of Clipperz Community Edition. +Clipperz Community Edition is an online password manager. +For further information about its features and functionalities please +refer to http://www.clipperz.com. + +* Clipperz Community Edition is free software: you can redistribute + it and/or modify it under the terms of the GNU Affero General Public + License as published by the Free Software Foundation, either version + 3 of the License, or (at your option) any later version. + +* Clipperz Community Edition is distributed in the hope that it will + be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU Affero General Public License for more details. + +* You should have received a copy of the GNU Affero General Public + License along with Clipperz Community Edition. If not, see + <http://www.gnu.org/licenses/>. + +*/ + +/* + +Color list: +- login box: + light #ff9955 + dark #ff6622 +- login button: + regular #dd5500 + hover #773311 +- login translations: + box: #cc6622; + not-selected: + color: #ddaa99 + background: #994422 + selected: #772211; +*/ +html { + height: 100%; + -webkit-text-size-adjust: none; + -ms-text-size-adjust: none; +} +body { + font-family: Helvetica-Neue, Helvetica, Arial, Geneva, sans-serif; + margin: 0px; +} +.ellipsis { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} +/** + * Background noise recipe + * + * This recipe use a sass function to generate a .png file + * + * Inspired by a jQuery plugin "Noisy" by Daniel Rapp @DanielRapp + * @link https://github.com/DanielRapp/Noisy + * + * Converted using Sass by Aaron Russell @aaronrussell & Philipp Bosch @philippbosch + * @link https://gist.github.com/1021332 + * + * Ported to a sass gem by Antti Salonen @antsa + * @link https://github.com/antsa/sassy_noise + * + * Mixin: background-noise + * Function: background_noise + * + * @author Daniel Rapp @DanielRapp + * @author Aaron Russell @aaronrussell + * @author Philipp Bosch @philippbosch + * @author Antti Salonen @antsa + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * + * @class Gradients + * @author David Kaneda http://www.davidkaneda.com/ + * + */ +/** + * Adds a background gradient into a specified selector. + * + * @include background-gradient(#444, 'glossy'); + * + * You can also use color-stops if you want full control of the gradient: + * + * @include background-gradient(#444, color-stops(#333, #222, #111)); + * + * @param {color} $bg-color + * The base color of the gradient. + * + * @param {string/list} $type + * The style of the gradient, one of five pre-defined options: matte, bevel, glossy, recessed, or linear: + * + * @include background-gradient(red, 'glossy'); + * + * It can also accept a list of color-stop values:; + * + * @include background-gradient(black, color-stops(#333, #111, #000)); + * + * @param {string} $direction + * The direction of the gradient. + */ +/** + * Blueprint grid background pattern + * + * @link http://lea.verou.me/css3patterns/#blueprint-grid + * + * @author Lea Verou http://lea.verou.me/ for the original pattern + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx for the sass mixin + */ +/** + * Background overlay inspired by Google Chrome modal overlay + * + * @author Maxime Thirouin @MoOx maxime.thirouin@gmail.com + */ +/** + * Striped background pattern + * + * @link http://lea.verou.me/css3patterns/ + * + * @author Lea Verou http://lea.verou.me/ for the original pattern + * @author David Kaneda http://www.davidkaneda.com @davidkaneda for the sass mixin + */ +/** + * + * Before compass 0.11.5, you need to add + * Compass::BrowserSupport.add_support("repeating-linear-gradient", "webkit", "moz", "o", "ms") + * To your configuration (config.rb) + * @see https://github.com/chriseppstein/compass/issues/401 + * + * @link http://lea.verou.me/css3patterns/#tartan + * + * @author Marta Armada http://swwweet.com/ for the original pattern + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx for the sass mixin + */ +/** + * Carbon Fiber background pattern + * + * @author Lea Verou http://lea.verou.me/ for the original pattern + * @author David Kaneda http://www.davidkaneda.com/ for the Sass mixin + * + * @link http://lea.verou.me/css3patterns/ + * + */ +/** + * Normalize.css + * Opposite approche from CSS reset + * + * Based on normalize.css commit 9576d48fc234c5224b1fc4dccba2f5965243843d + * + * @link http://github.com/necolas/normalize.css + */ +/* normalize.css 2011-07-12T10:51 UTC · http://github.com/necolas/normalize.css */ +/* ============================================================================= + HTML5 element display + ========================================================================== */ +/* ============================================================================= + Base + ========================================================================== */ +/* ============================================================================= + Links + ========================================================================== */ +/* ============================================================================= + Typography + ========================================================================== */ +/* ============================================================================= + Lists + ========================================================================== */ +/* ============================================================================= + Embedded content + ========================================================================== */ +/* ============================================================================= + Figures + ========================================================================== */ +/* ============================================================================= + Forms + ========================================================================== */ +/* ============================================================================= + Tables + ========================================================================== */ +/** + * + * @author David Kaneda - http://www.davidkaneda.com + * + */ +/** + * @class Color + */ +/** + * Returns the brightness (out of 100) of a specified color. + * @todo explain why this is useful + * @param {color} $color The color you want the brightness value of + * @return {measurement} + */ +/** + * Returns the luminosity for a specified color + * @todo explain why this is useful + * @param {color} The color to check + * @return {measurement} + */ +/** + * Glass effect + * Use this on image for better effect render + * + * Inspired from Simurai's IMDB redisign + * + * @link http://lab.simurai.com/redesign/imdb + * @thanks Simurai @simurai + */ +/** + * Note IE7/6 doesn't understand pseudo element as ::before and ::after + * IE8 need to have :before and not ::before + * So use only : and not :: if you want to support IE8 + * IE9 Webkit Firefox Opera understand :: + */ +/** + * Scotch tape effect with pure CSS + * + * @thanks Nick La @nickla for original concept + * @link http://webdesignerwall.com/tutorials/css3-image-styles + * + * @author David Kaneda http://www.davidkaneda.com + * + */ +/** + * Note IE7/6 doesn't understand pseudo element as ::before and ::after + * IE8 need to have :before and not ::before + * So use only : and not :: if you want to support IE8 + * IE9 Webkit Firefox Opera understand :: + */ +/** + * Corner folded with pure CSS + * + * Known support: Firefox 3.5+, Chrome 4+, Safari 4+, Opera 10+, IE 9+. + * IE8 is not supported because it not render properly box-shadow and + * pseudo element should be selected with ::element and not :element + * + * @thanks Nicolas Gallagher @necolas + * @link http://nicolasgallagher.com/pure-css-folded-corner-effect/demo/ + * @todo Nix in .4 + */ +/** + * Note IE7/6 doesn't understand pseudo element as ::before and ::after + * IE8 need to have :before and not ::before + * So use only : and not :: if you want to support IE8 + * IE9 Webkit Firefox Opera understand :: + */ +/** + * Corner folded with pure CSS + * + * Known support: Firefox 3.5+, Chrome 4+, Safari 4+, Opera 10+, IE 9+. + * IE8 is not supported because it not render properly box-shadow and + * pseudo element should be selected with ::element and not :element + * + * @thanks Nicolas Gallagher @necolas + * @link http://nicolasgallagher.com/pure-css-folded-corner-effect/demo/ + */ +/** + * Note IE7/6 doesn't understand pseudo element as ::before and ::after + * IE8 need to have :before and not ::before + * So use only : and not :: if you want to support IE8 + * IE9 Webkit Firefox Opera understand :: + */ +/** + * Form element inline mixin + * This mixin allow you to have a label inline with your input + * It's simply based on inline-block behavior + * + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Vertical alignement for page + * Inspired by http://css-tricks.com/snippets/css/center-div-with-dynamic-height/ + * + * Usage: + * + * SCSS + * @include vertical-align-requirement; + * .v-align-container { @include vertical-align-container } + * .v-align-content-container { @include vertical-align-content-container } + * .v-align-content { @include vertical-align-content } + * + * HTML + * <body> + * <div class="v-align-container"> + * <div class="v-align-content-container"> + * <div class="v-align-content"> + * Your content ! + * </div> + * </div> + * </div> + * </body> + * + * @thanks Chris Coyier @chriscoyier + * @autor Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Media Queries Mixins + * + * @todo Do we have to take care of print ? + * + * @require sass-3.2 (you need eventually to do "sudo gem install sass --pre") + * @author Maxime Thirouin <maxime.thirouin@gmail.com> + */ +/* +$media-query-width-big: 1280px; +$media-query-width-medium: 960px; +$media-query-width-small: 480px; +*/ +/** + * Drop shadow mixins from Nicolas Gallagher demo + * + * @thanks Nicolas Gallagher @necolas, @simurai, @cameronmoll, @matthamm + * + * @link http://nicolasgallagher.com/css-drop-shadows-without-images/demo/ + */ +/** + * Drop shadow curled + * + * @thanks Nicolas Gallagher @necolas + * @link http://nicolasgallagher.com/css-drop-shadows-without-images/demo/ + */ +/** + * Drop shadow curved + * + * @thanks Nicolas Gallagher @necolas + * @link http://nicolasgallagher.com/css-drop-shadows-without-images/demo/ + */ +/** + * Drop shadow flying + * + * @thanks Geoffrey Crofte @geoffrey_crofte + * @link http://www.creativejuiz.fr/trytotry/css3-box-shadow-after-before/ + */ +/** + * Drop shadow w/ lifted corners + * + * @thanks Nicolas Gallagher @necolas + * @link http://nicolasgallagher.com/css-drop-shadows-without-images/demo/ + */ +/** + * Drop shadow w/ perspective + * + * @thanks Nicolas Gallagher @necolas + * @link http://nicolasgallagher.com/css-drop-shadows-without-images/demo/ + */ +/** + * Drop shadow raised + * + * @thanks Nicolas Gallagher @necolas + * @link http://nicolasgallagher.com/css-drop-shadows-without-images/demo/ + */ +/** + * Drop shadow rules required for transform on drop shadow + * + * /!\ This is required if you want to apply some transform on the element using drop shadow + * + * @thanks Nicolas Gallagher @necolas + * @link http://nicolasgallagher.com/css-drop-shadows-without-images/demo/ + */ +/** + * Shadow along the top edge of the browser viewport + * + * @link http://playground.genelocklin.com/depth/ + */ +/** +* Shapes ! +* Polygons, ellipses and symbols +* +* @thanks Chris Coyier @chriscoyier +* @link http://css-tricks.com/examples/ShapesOfCSS/ +* @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx +*/ +/** + * Shape/Ellipse + * + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Shape/Polygon + * + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Shape/Polygon/Hexagon + * + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Shape/Polygon/Octagon + * + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Shape/Polygon/Parallelogram + * + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Shape/Polygon/Pentagon + * + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Shape/Polygon/Rectangle + * + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Shape/Polygon/Rhombus + * + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Shape/Polygon/Square + * + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Shape/Polygon/Star + * + * @todo check if setting a z-index by default is a good thing + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Shape/Polygon/Trapezoid + * + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Shape/Polygon/Triangle + * + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Shape/Symbol + * + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Shape/Symbol/Diamond + * + * @todo add height support + * + * @author Alexander Futekov + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Shape/Symbol/Egg + * + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Shape/Symbol/Heart + * + * @author Nicolas Gallagher @necolas + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Shape/Symbol/Infinity + * + * @author Nicolas Gallagher @necolas + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Shape/Symbol/Pacman + * + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Shape/Symbol/Yin-yang + * + * @author Alexander Futekov + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Micro clearfix hack + * + * The clearfix hack is a popular way to clear floats without resorting to using presentational markup. This article presents an update to the clearfix method that further reduces the amount of CSS required. + * Known support: Firefox 2+, Safari 2+, Chrome, Opera 9.27+, IE 6+, IE Mac. + * + * @thanks Nicolas Gallagher @necolas + * @link http://nicolasgallagher.com/micro-clearfix-hack/ + */ +/** + * Note IE7/6 doesn't understand pseudo element as ::before and ::after + * IE8 need to have :before and not ::before + * So use only : and not :: if you want to support IE8 + * IE9 Webkit Firefox Opera understand :: + */ +/** + * UI convex effect from one color + * + * @todo merge with ui-button ? + * + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * UI Glossy helper + * + * @deprecated + * @todo Remove in 0.4 + * @see background/gradients + * + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * UI simple gradient from one color + * + * @todo merge with ui-button ? + * + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Shape/Polygon/Triangle + * + * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx + */ +/** + * Keyboard key touch + * A simple stylesheet for rendering beautiful keyboard-style elements. + + * @author Michael Hüneburg http://michaelhue.com/keyscss + * @link https://github.com/michaelhue/keyscss (commit 76bb603e921d0145362e0f60eabb79d4f69cbda0) + * + * @author Maxime Thirouin @MoOx maxime.thirouin@gmail.com +*/ +/** + * Menu dropdown helper + * + * @author Maxime Thirouin @MoOx maxime.thirouin@gmail.com +*/ +/** + * Ui background overlay inspired by Google Chrome modal overlay + * + * @author Maxime Thirouin @MoOx maxime.thirouin@gmail.com + */ +/** + * Background overlay inspired by Google Chrome modal overlay + * + * @author Maxime Thirouin @MoOx maxime.thirouin@gmail.com + */ +/** + * <hr /> separator style + * + * @author Chris Coyier @chriscoyier + * @link http://jsfiddle.net/chriscoyier/GaEzp/35/ + * + * @author Maxime Thirouin @MoOx maxime.thirouin@gmail.com + */ +/** + * Micro clearfix hack + * + * The clearfix hack is a popular way to clear floats without resorting to using presentational markup. This article presents an update to the clearfix method that further reduces the amount of CSS required. + * Known support: Firefox 2+, Safari 2+, Chrome, Opera 9.27+, IE 6+, IE Mac. + * + * @thanks Nicolas Gallagher @necolas + * @link http://nicolasgallagher.com/micro-clearfix-hack/ + */ +/** + * Note IE7/6 doesn't understand pseudo element as ::before and ::after + * IE8 need to have :before and not ::before + * So use only : and not :: if you want to support IE8 + * IE9 Webkit Firefox Opera understand :: + */ +/** + * + * @class Gradients + * @author David Kaneda http://www.davidkaneda.com/ + * + */ +/** + * Adds a background gradient into a specified selector. + * + * @include background-gradient(#444, 'glossy'); + * + * You can also use color-stops if you want full control of the gradient: + * + * @include background-gradient(#444, color-stops(#333, #222, #111)); + * + * @param {color} $bg-color + * The base color of the gradient. + * + * @param {string/list} $type + * The style of the gradient, one of five pre-defined options: matte, bevel, glossy, recessed, or linear: + * + * @include background-gradient(red, 'glossy'); + * + * It can also accept a list of color-stop values:; + * + * @include background-gradient(black, color-stops(#333, #111, #000)); + * + * @param {string} $direction + * The direction of the gradient. + */ +/** + * @class Webfont Icon + * Great to use with the [Pictos font](http://pictos.drewwilson.com/) + * + */ +/** + * @cfg {color} $webfont-icon-base-color + * The default color of icons when using the {@link #webfont-icon} mixin. + * + * Defaults to `white`. + */ +/** + * @cfg {color} $webfont-icon-default-stroke + * The default color to use on the border of icons, when using the {@link #webfont-icon} mixin. + * + * Defaults to `null`. + */ +/** + * @cfg {string} $webfont-icon-default-gradient + * The default gradient to use when using the {@link #webfont-icon} mixin. + * + * Defaults to `matte`. + */ +/* line 41, ../compass-recipes/stylesheets/recipes/_webfont-icon.scss */ +.webfont-icon-base { + color: transparent; + -webkit-background-clip: text; + background-clip: text; + position: absolute; + top: 0; + left: 0; + text-indent: 0; + text-shadow: none; + -webkit-user-select: none; + user-select: none; +} +/** + * Includes a character into the specified selector, styled as an icon. + * + * @include webfont-icon('a'); + * + * @param {color} $color + * The color of the icon. Defaults to {@link #$webfont-icon-default-background $webfont-icon-default-background}. + * + * @param {measurement} $size + * The size of the icon + * + * @param {color} $stroke + * The color of the border. Defautls to {@link #$webfont-icon-default-border $webfont-icon-default-border}. + * + * @param {boolean} $include-staes + * True to include states for hover and active. Defaults to `true`. + */ +/* line 1, ../scss/include/_base.scss */ +* { + margin: 0; + padding: 0; +} +/* line 6, ../scss/include/_base.scss */ +body { + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-touch-callout: none; +} +/* line 11, ../scss/include/_base.scss */ +#jqt { + -webkit-text-size-adjust: none; + -webkit-user-select: none; + user-select: none; + font-family: "Helvetica Neue", Helvetica; + position: absolute; + right: 0; + top: 0; + left: 0; + bottom: 0; +} +/* line 21, ../scss/include/_base.scss */ +#jqt a { + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-user-drag: none; +} +/* line 26, ../scss/include/_base.scss */ +#jqt .selectable, +#jqt input, +#jqt textarea { + -webkit-user-select: auto; +} +/* line 30, ../scss/include/_base.scss */ +#jqt.notransform { + -webkit-transform: none !important; +} +/* line 35, ../scss/include/_base.scss */ +#jqt > * { + display: block; + left: 0; + top: 0; + min-height: 100%; + width: 100%; + overflow-x: hidden; + position: absolute; + z-index: 0; + display: -webkit-box; + display: box; + -webkit-box-orient: vertical; + box-orient: vertical; + -webkit-box-flex: 1; + box-flex: 1; +} +/* line 49, ../scss/include/_base.scss */ +#jqt > .current { + z-index: 10; +} +/* line 53, ../scss/include/_base.scss */ +#jqt > :not(.current) { + display: none; +} +/* line 57, ../scss/include/_base.scss */ +#jqt.touchscroll:not(.animating3d) { + overflow-y: auto; + -webkit-overflow-scrolling: touch; +} +/* line 61, ../scss/include/_base.scss */ +#jqt.touchscroll:not(.animating3d) > * { + height: 100%; +} +/* line 64, ../scss/include/_base.scss */ +#jqt.touchscroll:not(.animating3d) .scroll { + position: relative; + -webkit-box-flex: 1; + box-flex: 1; + overflow-y: auto; + -webkit-overflow-scrolling: touch; +} +/* line 72, ../scss/include/_base.scss */ +#jqt .scroll { + -webkit-margin-collapse: separate; +} +/* line 76, ../scss/include/_base.scss */ +#jqt .in, +#jqt .out { + -webkit-animation-duration: 250ms; + -webkit-animation-fill-mode: both; + -webkit-animation-timing-function: ease-in-out; +} +/* line 82, ../scss/include/_base.scss */ +#jqt .in { + z-index: 10; +} +/* line 85, ../scss/include/_base.scss */ +#jqt .in:after { + content: ""; + position: absolute; + display: block; + top: 0; + left: 0; + bottom: 0; + right: 0; +} +/* line 94, ../scss/include/_base.scss */ +#jqt .out { + z-index: 0 !important; +} +/* line 98, ../scss/include/_base.scss */ +#jqt.supports3d { + -webkit-perspective: 1000; +} +/* line 101, ../scss/include/_base.scss */ +#jqt.supports3d > * { + -webkit-transform: translate3d(0, 0, 0) rotate(0) scale(1); +} +/* Fade */ +/* line 3, ../scss/include/_animations.scss */ +#jqt .fade.in { + -webkit-animation-name: fadeIn; +} +/* line 7, ../scss/include/_animations.scss */ +#jqt .fade.out { + z-index: 10; + -webkit-animation-name: fadeOut; +} +@-webkit-keyframes fadeIn { + /* line 13, ../scss/include/_animations.scss */ + 0% { + opacity: 0; + } + /* line 16, ../scss/include/_animations.scss */ + 100% { + opacity: 1; + } +} +@-webkit-keyframes fadeOut { + /* line 22, ../scss/include/_animations.scss */ + 0% { + opacity: 1; + } + /* line 25, ../scss/include/_animations.scss */ + 100% { + opacity: 1; + } +} +/* Disolve */ +/* line 34, ../scss/include/_animations.scss */ +#jqt .dissolve.in { + -webkit-animation-name: dissolveIn; +} +/* line 38, ../scss/include/_animations.scss */ +#jqt .dissolve.out { + -webkit-animation-name: dissolveOut; +} +@-webkit-keyframes dissolveIn { + /* line 43, ../scss/include/_animations.scss */ + 0% { + opacity: 0; + } + /* line 46, ../scss/include/_animations.scss */ + 100% { + opacity: 1; + } +} +@-webkit-keyframes dissolveOut { + /* line 52, ../scss/include/_animations.scss */ + 0% { + opacity: 1; + } + /* line 55, ../scss/include/_animations.scss */ + 100% { + opacity: 0; + } +} +/* #Popin' */ +/* line 64, ../scss/include/_animations.scss */ +#jqt .pop.in { + -webkit-animation-name: popIn; +} +/* line 68, ../scss/include/_animations.scss */ +#jqt .pop.out { + -webkit-animation-name: popOut; +} +@-webkit-keyframes popIn { + /* line 73, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: scale(0.2); + opacity: 0; + } + /* line 77, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: scale(1); + opacity: 1; + } +} +@-webkit-keyframes popOut { + /* line 84, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: scale(1); + opacity: 1; + } + /* line 88, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: scale(0.2); + opacity: 0; + } +} +/* Slide Left */ +/* line 98, ../scss/include/_animations.scss */ +#jqt .slideleft.in { + -webkit-animation-name: slideLeftIn; +} +/* line 102, ../scss/include/_animations.scss */ +#jqt .slideleft.out { + -webkit-animation-name: slideLeftOut; +} +@-webkit-keyframes slideLeftIn { + /* line 107, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: translateX(100%); + } + /* line 110, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: translateX(0); + } +} +@-webkit-keyframes slideLeftOut { + /* line 116, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: translateX(0px); + } + /* line 119, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: translateX(-100%); + } +} +/* Slide Right */ +/* line 128, ../scss/include/_animations.scss */ +#jqt .slideright.in { + -webkit-animation-name: slideRightIn; +} +/* line 132, ../scss/include/_animations.scss */ +#jqt .slideright.out { + -webkit-animation-name: slideRightOut; +} +@-webkit-keyframes slideRightIn { + /* line 137, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: translateX(-100%); + } + /* line 140, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: translateX(0); + } +} +@-webkit-keyframes slideRightOut { + /* line 146, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: translateX(0); + } + /* line 149, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: translateX(100%); + } +} +/* Slide Up */ +/* line 158, ../scss/include/_animations.scss */ +#jqt .slideup.in { + z-index: 10; + -webkit-animation-name: slideUpIn; +} +/* line 162, ../scss/include/_animations.scss */ +#jqt .slideup.out { + z-index: 0; + -webkit-animation-name: slideUpOut; +} +@-webkit-keyframes slideUpIn { + /* line 168, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: translateY(100%); + } + /* line 171, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: translateY(0); + } +} +@-webkit-keyframes slideUpOut { + /* line 177, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: translateY(0); + } + /* line 180, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: translateY(0); + } +} +/* Slide Down */ +/* line 189, ../scss/include/_animations.scss */ +#jqt .slidedown.in { + z-index: 0; + -webkit-animation-name: slideDownIn; +} +/* line 193, ../scss/include/_animations.scss */ +#jqt .slidedown.out { + z-index: 10; + -webkit-animation-name: slideDownOut; +} +@-webkit-keyframes slideDownIn { + /* line 199, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: translateY(0); + } + /* line 202, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: translateY(0); + } +} +@-webkit-keyframes slideDownOut { + /* line 208, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: translateY(0); + } + /* line 211, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: translateY(100%); + } +} +/* Flip Left */ +/* line 220, ../scss/include/_animations.scss */ +#jqt .flipleft { + -webkit-backface-visibility: hidden; +} +/* line 224, ../scss/include/_animations.scss */ +#jqt .flipleft.in { + -webkit-animation-name: flipLeftIn; +} +/* line 228, ../scss/include/_animations.scss */ +#jqt .flipleft.out { + -webkit-animation-name: flipLeftOut; +} +@-webkit-keyframes flipLeftIn { + /* line 233, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: rotateY(180deg) scale(0.8); + } + /* line 236, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: rotateY(0deg) scale(1); + } +} +@-webkit-keyframes flipLeftOut { + /* line 242, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: rotateY(0deg) scale(1); + } + /* line 245, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: rotateY(-180deg) scale(0.8); + } +} +/* Flip Right */ +/* line 254, ../scss/include/_animations.scss */ +#jqt .flipright { + -webkit-backface-visibility: hidden; +} +/* line 258, ../scss/include/_animations.scss */ +#jqt .flipright.in { + -webkit-animation-name: flipRightIn; +} +/* line 262, ../scss/include/_animations.scss */ +#jqt .flipright.out { + -webkit-animation-name: flipRightOut; +} +@-webkit-keyframes flipRightIn { + /* line 267, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: rotateY(-180deg) scale(0.8); + } + /* line 270, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: rotateY(0deg) scale(1); + } +} +@-webkit-keyframes flipRightOut { + /* line 276, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: rotateY(0deg) scale(1); + } + /* line 279, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: rotateY(180deg) scale(0.8); + } +} +/* Swap Right */ +/* line 288, ../scss/include/_animations.scss */ +#jqt .swapright { + -webkit-animation-duration: .7s; + -webkit-transform: perspective(800); + -webkit-animation-timing-function: ease-out; +} +/* line 293, ../scss/include/_animations.scss */ +#jqt .swapright.in { + -webkit-animation-name: swapRightIn; +} +/* line 296, ../scss/include/_animations.scss */ +#jqt .swapright.out { + -webkit-animation-name: swapRightOut; +} +@-webkit-keyframes swapRightIn { + /* line 301, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: translate3d(0px, 0px, -800px) rotateY(70deg); + opacity: 0; + } + /* line 305, ../scss/include/_animations.scss */ + 35% { + -webkit-transform: translate3d(-180px, 0px, -400px) rotateY(20deg); + opacity: 1; + } + /* line 309, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg); + opacity: 1; + } +} +@-webkit-keyframes swapRightOut { + /* line 316, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg); + opacity: 1; + } + /* line 320, ../scss/include/_animations.scss */ + 35% { + -webkit-transform: translate3d(180px, 0px, -400px) rotateY(-20deg); + opacity: .5; + } + /* line 324, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: translate3d(0px, 0px, -800px) rotateY(-70deg); + opacity: 0; + } +} +/* Swap Left */ +/* line 332, ../scss/include/_animations.scss */ +#jqt .swapleft { + -webkit-animation-duration: .7s; + -webkit-transform: perspective(800); + -webkit-animation-timing-function: ease-out; +} +/* line 337, ../scss/include/_animations.scss */ +#jqt .swapleft.in { + -webkit-animation-name: swapLeftIn; +} +/* line 340, ../scss/include/_animations.scss */ +#jqt .swapleft.out { + -webkit-animation-name: swapLeftOut; +} +@-webkit-keyframes swapLeftIn { + /* line 345, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: translate3d(0px, 0px, -800px) rotateY(-70deg); + opacity: 0; + } + /* line 349, ../scss/include/_animations.scss */ + 35% { + -webkit-transform: translate3d(180px, 0px, -400px) rotateY(-20deg); + opacity: 1; + } + /* line 353, ../scss/include/_animations.scss */ + 100% { + opacity: 1; + -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg); + } +} +@-webkit-keyframes swapLeftOut { + /* line 360, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg); + opacity: 1; + } + /* line 364, ../scss/include/_animations.scss */ + 35% { + -webkit-transform: translate3d(-180px, 0px, -400px) rotateY(20deg); + opacity: .5; + } + /* line 368, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: translate3d(0px, 0px, -800px) rotateY(70deg); + opacity: 0; + } +} +/* Cube Left */ +/* line 382, ../scss/include/_animations.scss */ +#jqt .cubeleft.in, +#jqt .cubeleft.out, +#jqt .cuberight.in, +#jqt .cuberight.out { + -webkit-animation-duration: .6s; + -webkit-transform: perspective(800); +} +/* line 389, ../scss/include/_animations.scss */ +#jqt .cubeleft.in { + -webkit-transform-origin: 0% 50%; + -webkit-animation-name: cubeLeftIn; +} +/* line 394, ../scss/include/_animations.scss */ +#jqt .cubeleft.out { + -webkit-transform-origin: 100% 50%; + -webkit-animation-name: cubeLeftOut; +} +@-webkit-keyframes cubeLeftIn { + /* line 400, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: rotateY(90deg) translateZ(320px); + opacity: .5; + } + /* line 404, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: rotateY(0deg) translateZ(0) translateX(0); + opacity: 1; + } +} +@-webkit-keyframes cubeLeftOut { + /* line 411, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: rotateY(0deg) translateZ(0) translateX(0); + opacity: 1; + } + /* line 415, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: rotateY(-90deg) translateZ(320px); + opacity: .5; + } +} +/* Cube Right */ +/* line 423, ../scss/include/_animations.scss */ +#jqt .cuberight.in { + -webkit-transform-origin: 100% 50%; + -webkit-animation-name: cubeRightIn; +} +/* line 428, ../scss/include/_animations.scss */ +#jqt .cuberight.out { + -webkit-transform-origin: 0% 50%; + -webkit-animation-name: cubeRightOut; +} +@-webkit-keyframes cubeRightIn { + /* line 434, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: rotateY(-90deg) translateZ(320px); + opacity: .5; + } + /* line 438, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: rotateY(0deg) translateZ(0) translateX(0); + opacity: 1; + } +} +@-webkit-keyframes cubeRightOut { + /* line 445, ../scss/include/_animations.scss */ + 0% { + -webkit-transform: rotateY(0deg) translateZ(0) translateX(0); + opacity: 1; + } + /* line 449, ../scss/include/_animations.scss */ + 100% { + -webkit-transform: rotateY(90deg) translateZ(320px); + opacity: .5; + } +} +/* line 5, ../scss/include/_skeleton.scss */ +body { + background: black; +} +/* line 9, ../scss/include/_skeleton.scss */ +.base-chevron, +#jqt ul li.arrow:after, +#jqt ul li.forward:after { + content: '›'; + width: 22px; + height: 100%; + vertical-align: middle; + font-size: 30px; + line-height: 38px; + font-family: Futura, "Futura Condensed", Helvetica, Arial, sans-serif; + font-weight: bold; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60); + opacity: 0.6; + position: absolute; + right: 0; + top: 0; + pointer-events: none; + z-index: 10; +} +/* line 26, ../scss/include/_skeleton.scss */ +.base-flatlists, +#jqt ul.metal, +#jqt ul.edgetoedge, +#jqt ul.plastic { + margin: 0; + padding: 0; + border-width: 0 0 0 1px; + -webkit-border-radius: 0; + border-radius: 0; +} +/* line 35, ../scss/include/_skeleton.scss */ +#jqt h1, +#jqt h2 { + font: bold 18px "Helvetica Neue", Helvetica; + margin: 10px 20px 6px; + color: #bbbcbe; + text-shadow: #3c3d3e 0 -1px 0; +} +/* line 41, ../scss/include/_skeleton.scss */ +#jqt .toolbar { + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-box-shadow: rgba(0, 0, 0, 0.4) 0 1px 6px; + box-shadow: rgba(0, 0, 0, 0.4) 0 1px 6px; + border-bottom: 1px solid black; + z-index: 10; + position: relative; + padding: 10px; + height: 44px; +} +/* line 52, ../scss/include/_skeleton.scss */ +#jqt .toolbar > h1 { + position: absolute; + overflow: hidden; + left: 50%; + bottom: 9px; + margin: 1px 0 0 -75px; + width: 150px; + font-size: 20px; + font-weight: bold; + line-height: 1.3em; + text-align: center; + text-overflow: ellipsis; + white-space: nowrap; + color: white; + text-shadow: #161717 0 -1px 0; +} +/* line 71, ../scss/include/_skeleton.scss */ +#jqt.black-translucent .toolbar { + padding-top: 30px; + height: 64px; +} +/* line 75, ../scss/include/_skeleton.scss */ +#jqt.landscape .toolbar > h1 { + margin-left: -125px; + width: 250px; +} +/* line 80, ../scss/include/_skeleton.scss */ +#jqt .button, +#jqt .back, +#jqt .cancel, +#jqt .add { + position: absolute; + overflow: hidden; + width: auto; + height: 30px; + font-family: inherit; + font-size: 12px; + font-weight: bold; + line-height: 30px; + text-overflow: ellipsis; + text-decoration: none; + white-space: nowrap; + background: none; + bottom: 6px; + right: 10px; + margin: 0; + padding: 0 10px; + color: #e2e3e3; + text-shadow: #000000 0 -1px 0; + -webkit-box-shadow: rgba(255, 255, 255, 0.2) 0 1px 0, rgba(0, 0, 0, 0.2) 0 1px 2px inset; + box-shadow: rgba(255, 255, 255, 0.2) 0 1px 0, rgba(0, 0, 0, 0.2) 0 1px 2px inset; + border: 1px solid black; + -webkit-border-radius: 5px; + border-radius: 5px; + background-image: none; + background-color: #0a0a0a; + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #2f3031), color-stop(50%, #161717), color-stop(51%, #0a0a0a), color-stop(100%, #000000)); + background-image: -webkit-linear-gradient(top, #2f3031, #161717 50%, #0a0a0a 51%, #000000); + background-image: linear-gradient(top, #2f3031, #161717 50%, #0a0a0a 51%, #000000); +} +/* line 107, ../scss/include/_skeleton.scss */ +#jqt .button.active, +#jqt .back.active, +#jqt .cancel.active, +#jqt .add.active { + border-color: black; + background-image: none; + background-color: black; + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #262627), color-stop(50%, #0d0d0d), color-stop(51%, #000000), color-stop(100%, #000000)); + background-image: -webkit-linear-gradient(top, #262627, #0d0d0d 50%, #000000 51%, #000000); + background-image: linear-gradient(top, #262627, #0d0d0d 50%, #000000 51%, #000000); + color: #d8d9d9; + text-shadow: #000000 0 -1px 0; +} +/* line 114, ../scss/include/_skeleton.scss */ +#jqt .back { + max-width: 60px; + margin-left: 15px; + overflow: visible; + padding-left: 5px; +} +/* line 121, ../scss/include/_skeleton.scss */ +#jqt .back:after, +#jqt .back:before { + content: ''; + position: absolute; + width: 20px; + height: 20px; + top: 1px; + left: 1px; + -webkit-transform: rotate(45deg) translate3d(0.2px, 0, 0); + transform: rotate(45deg) translate3d(0.2px, 0, 0); + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + background-image: none; + background-color: #0a0a0a; + background-image: -webkit-gradient(linear, 0% 0%, 100% 100%, color-stop(0%, #2f3031), color-stop(50%, #161717), color-stop(51%, #0a0a0a), color-stop(100%, #000000)); + background-image: -webkit-linear-gradient(top left, #2f3031, #161717 50%, #0a0a0a 51%, #000000); + background-image: linear-gradient(top left, #2f3031, #161717 50%, #0a0a0a 51%, #000000); + background-size: 100% 98%; + -webkit-border-radius: 0 0 0 2px; + border-radius: 0 0 0 2px; + -webkit-mask-image: -webkit-linear-gradient(45deg, #000000, #000000 15px, rgba(0, 0, 0, 0) 15px); + -webkit-mask-image: -webkit-gradient(linear, left bottom, right top, from(#000000), color-stop(50%, #000000), color-stop(50%, rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0))); + -webkit-mask-clip: border-box; + -webkit-background-clip: content-box; +} +/* line 149, ../scss/include/_skeleton.scss */ +#jqt .back:after { + -webkit-box-shadow: rgba(0, 0, 0, 0.2) 1px 0 0 inset, rgba(0, 0, 0, 0.2) 0 -1px 0 inset; + box-shadow: rgba(0, 0, 0, 0.2) 1px 0 0 inset, rgba(0, 0, 0, 0.2) 0 -1px 0 inset; +} +/* line 152, ../scss/include/_skeleton.scss */ +#jqt .back:before { + margin-left: -1px; + background: black none; +} +/* line 157, ../scss/include/_skeleton.scss */ +#jqt .back.active:after { + background-image: none; + background-color: black; + background-image: -webkit-gradient(linear, 0% 0%, 100% 100%, color-stop(0%, #262627), color-stop(50%, #0d0d0d), color-stop(51%, #000000), color-stop(100%, #000000)); + background-image: -webkit-linear-gradient(left top, #262627, #0d0d0d 50%, #000000 51%, #000000); + background-image: linear-gradient(left top, #262627, #0d0d0d 50%, #000000 51%, #000000); +} +/* line 160, ../scss/include/_skeleton.scss */ +#jqt .back.active:before { + background-color: black; +} +/* line 166, ../scss/include/_skeleton.scss */ +#jqt .blueButton { + background-image: #2f7ce3, glossy; + color: white; + text-shadow: #1a63c5 0 -1px 0; +} +/* line 170, ../scss/include/_skeleton.scss */ +#jqt .whiteButton, +#jqt .grayButton, +#jqt .redButton, +#jqt .blueButton, +#jqt .greenButton { + display: block; + font-size: 20px; + font-weight: bold; + margin: 10px 20px; + padding: 10px; + text-align: center; + text-decoration: inherit; + -webkit-border-radius: 8px; + border-radius: 8px; + -webkit-box-shadow: rgba(0, 0, 0, 0.4) 0 1px 3px, rgba(0, 0, 0, 0.4) 0 0 0 5px, rgba(255, 255, 255, 0.3) 0 1px 0 5px; + box-shadow: rgba(0, 0, 0, 0.4) 0 1px 3px, rgba(0, 0, 0, 0.4) 0 0 0 5px, rgba(255, 255, 255, 0.3) 0 1px 0 5px; +} +/* line 185, ../scss/include/_skeleton.scss */ +#jqt .whiteButton.active, +#jqt .whiteButton:active, +#jqt .grayButton.active, +#jqt .grayButton:active, +#jqt .redButton.active, +#jqt .redButton:active, +#jqt .blueButton.active, +#jqt .blueButton:active, +#jqt .greenButton.active, +#jqt .greenButton:active { + background-image: none; + background-color: #3c8101; + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #5fcd01), color-stop(50%, #479b01), color-stop(51%, #3c8101), color-stop(100%, #306801)); + background-image: -webkit-linear-gradient(top, #5fcd01, #479b01 50%, #3c8101 51%, #306801); + background-image: linear-gradient(top, #5fcd01, #479b01 50%, #3c8101 51%, #306801); + color: white; + text-shadow: #244f00 0 -1px 0; +} +/* line 191, ../scss/include/_skeleton.scss */ +#jqt .whiteButton { + background-image: none; + background-color: #eeeeee; + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(50%, #fbfbfb), color-stop(51%, #eeeeee), color-stop(100%, #e1e1e1)); + background-image: -webkit-linear-gradient(top, #ffffff, #fbfbfb 50%, #eeeeee 51%, #e1e1e1); + background-image: linear-gradient(top, #ffffff, #fbfbfb 50%, #eeeeee 51%, #e1e1e1); + color: #151515; + text-shadow: white 0 1px 0; +} +/* line 195, ../scss/include/_skeleton.scss */ +#jqt .grayButton { + background-image: none; + background-color: #444444; + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #6a6a6a), color-stop(50%, #515151), color-stop(51%, #444444), color-stop(100%, #373737)); + background-image: -webkit-linear-gradient(top, #6a6a6a, #515151 50%, #444444 51%, #373737); + background-image: linear-gradient(top, #6a6a6a, #515151 50%, #444444 51%, #373737); + color: white; + text-shadow: #2b2b2b 0 -1px 0; +} +/* line 200, ../scss/include/_skeleton.scss */ +#jqt .redButton { + background-image: none; + background-color: #d83b38; + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #e57a78), color-stop(50%, #dc504d), color-stop(51%, #d83b38), color-stop(100%, #ce2c28)); + background-image: -webkit-linear-gradient(top, #e57a78, #dc504d 50%, #d83b38 51%, #ce2c28); + background-image: linear-gradient(top, #e57a78, #dc504d 50%, #d83b38 51%, #ce2c28); + color: white; + text-shadow: #b92724 0 -1px 0; +} +/* line 204, ../scss/include/_skeleton.scss */ +#jqt .redButton.active, +#jqt .redButton:active { + background-image: none; + background-color: #c12926; + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #de5856), color-stop(50%, #d52e2b), color-stop(51%, #c12926), color-stop(100%, #ac2422)); + background-image: -webkit-linear-gradient(top, #de5856, #d52e2b 50%, #c12926 51%, #ac2422); + background-image: linear-gradient(top, #de5856, #d52e2b 50%, #c12926 51%, #ac2422); + color: white; + text-shadow: #97201e 0 -1px 0; +} +/* line 211, ../scss/include/_skeleton.scss */ +#jqt .greenButton { + background-image: none; + background-color: #53b401; + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #76fe04), color-stop(50%, #5fcd01), color-stop(51%, #53b401), color-stop(100%, #479b01)); + background-image: -webkit-linear-gradient(top, #76fe04, #5fcd01 50%, #53b401 51%, #479b01); + background-image: linear-gradient(top, #76fe04, #5fcd01 50%, #53b401 51%, #479b01); + color: white; + text-shadow: #3c8101 0 -1px 0; +} +/* line 216, ../scss/include/_skeleton.scss */ +#jqt .leftButton, +#jqt .cancel, +#jqt .back { + left: 6px; + right: auto; +} +/* line 221, ../scss/include/_skeleton.scss */ +#jqt .add { + font-size: 24px; + line-height: 24px; + font-weight: bold; +} +/* line 229, ../scss/include/_skeleton.scss */ +#jqt ul { + padding: 0; + margin: 5px 10px 10px 10px; + -webkit-margin-collapse: separate; +} +/* line 231, ../scss/include/_skeleton.scss */ +#jqt ul, +#jqt ul.individual li { + background-color: #555658; + color: #d5d6d7; + text-shadow: #3c3d3e 0 -1px 0; + border: 1px solid #2f3031; + font: bold 18px "Helvetica Neue", Helvetica; +} +/* line 240, ../scss/include/_skeleton.scss */ +#jqt ul:first-child { + margin-top: 15px; +} +/* line 246, ../scss/include/_skeleton.scss */ +#jqt ul li { + border-top: 1px solid #48494b; + list-style-type: none; + overflow: hidden; + padding: 10px; + -webkit-transform: translate3d(0, 0, 0); + /* expensive way to avoid flickr */ + +} +/* line 253, ../scss/include/_skeleton.scss */ +#jqt ul li a { + text-decoration: none; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + display: block; + padding: 10px; + margin: -10px; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-transform: translateZ(0); + color: white; + text-shadow: #3c3d3e 0 -1px 0; +} +/* line 265, ../scss/include/_skeleton.scss */ +#jqt ul li a.active { + background-image: none; + background-color: #53b401; + -webkit-box-shadow: #5cc801 0 1px 0px inset; + box-shadow: #5cc801 0 1px 0px inset; + color: white; + text-shadow: #3c8101 0 -1px 0; +} +/* line 270, ../scss/include/_skeleton.scss */ +#jqt ul li a.active small { + color: #a0fe50; + text-shadow: #000000 0 -1px 0; +} +/* line 271, ../scss/include/_skeleton.scss */ +#jqt ul li a.active small.counter { + background-color: #306801; +} +/* line 280, ../scss/include/_skeleton.scss */ +#jqt ul li small { + color: #53b401; + font: 16px "Helvetica Neue", Helvetica; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + display: block; + width: 23%; + position: relative; + z-index: 20; + float: right; + line-height: 16px; + padding: 2px 8px 4px 8px; +} +/* line 295, ../scss/include/_skeleton.scss */ +#jqt ul li small.counter { + background: #2f3031; + color: #949698; + text-shadow: #0a0a0a 0 -1px 0; + z-index: 10; + font-size: 16px; + font-weight: bold; + -webkit-border-radius: 3px; + border-radius: 3px; + display: block; + width: auto; +} +/* line 311, ../scss/include/_skeleton.scss */ +#jqt ul li ::-webkit-input-placeholder { + color: #949698; + text-shadow: #3c3d3e 0 -1px 0; +} +/* line 322, ../scss/include/_skeleton.scss */ +#jqt ul li input[type="text"], +#jqt ul li input[type="password"], +#jqt ul li input[type="tel"], +#jqt ul li input[type="number"], +#jqt ul li input[type="search"], +#jqt ul li input[type="email"], +#jqt ul li input[type="url"], +#jqt ul li textarea, +#jqt ul li select { + color: white; + text-shadow: #3c3d3e 0 -1px 0; + background: transparent url("data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="); + border: 0; + font: normal 17px "Helvetica Neue", Helvetica; + padding: 0; + display: inline-block; + margin-left: 0px; + width: 100%; + -webkit-appearance: textarea; +} +/* line 333, ../scss/include/_skeleton.scss */ +#jqt ul li textarea { + height: 120px; + padding: 0; + text-indent: -2px; +} +/* line 338, ../scss/include/_skeleton.scss */ +#jqt ul li input[type="checkbox"], +#jqt ul li input[type="radio"] { + margin: 0; + padding: 10px; +} +/* line 342, ../scss/include/_skeleton.scss */ +#jqt ul li input[type="checkbox"]:after, +#jqt ul li input[type="radio"]:after { + content: attr(title); + position: absolute; + display: block; + width: 0; + left: 21px; + top: 12px; + font-family: "Helvetica Neue", Helvetica; + font-size: 17px; + line-height: 21px; + width: 246px; + margin: 0 0 0 17px; + color: white; + text-shadow: #3c3d3e 0 -1px 0; +} +/* line 355, ../scss/include/_skeleton.scss */ +#jqt ul li input[type='submit'] { + -webkit-border-radius: 4px; + border-radius: 4px; + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#eeeeee), to(#9c9ea0)); + border: 1px outset #aaa; + display: block; + font-size: inherit; + font-weight: inherit; + padding: 10px; +} +/* line 368, ../scss/include/_skeleton.scss */ +#jqt ul li.arrow small, +#jqt ul li.forward small { + margin-right: 24px; +} +/* line 380, ../scss/include/_skeleton.scss */ +#jqt ul li.forward:before { + content: ""; + position: absolute; + display: block; + top: 50%; + right: 6px; + margin-top: -12px; + width: 24px; + height: 24px; + -webkit-border-radius: 12px; + border-radius: 12px; + background-image: none; + background-color: #53b401; + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #76fe04), color-stop(50%, #5fcd01), color-stop(51%, #53b401), color-stop(100%, #479b01)); + background-image: -webkit-linear-gradient(top, #76fe04, #5fcd01 50%, #53b401 51%, #479b01); + background-image: linear-gradient(top, #76fe04, #5fcd01 50%, #53b401 51%, #479b01); + border: 2px solid #fff; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); + -webkit-box-sizing: border-box; + padding: 0; + z-index: 10; + line-height: 0; + pointer-events: none; +} +/* line 395, ../scss/include/_skeleton.scss */ +#jqt ul li.forward:after { + color: white; + text-shadow: #3c8101 0 -1px 0; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); + opacity: 1; + font-size: 24px; +} +/* line 404, ../scss/include/_skeleton.scss */ +#jqt ul.rounded, +#jqt ul.individual li { + -webkit-box-shadow: rgba(255, 255, 255, 0.15) 0 1px 0; + box-shadow: rgba(255, 255, 255, 0.15) 0 1px 0; + border: 1px solid #2f3031; +} +/* line 409, ../scss/include/_skeleton.scss */ +#jqt ul.rounded { + -webkit-border-radius: 8px; + border-radius: 8px; +} +/* line 412, ../scss/include/_skeleton.scss */ +#jqt ul.rounded li:first-child, +#jqt ul.rounded li:first-child a { + border-top: 0; + -webkit-border-top-left-radius: 8px; + border-top-left-radius: 8px; + -webkit-border-top-right-radius: 8px; + border-top-right-radius: 8px; +} +/* line 416, ../scss/include/_skeleton.scss */ +#jqt ul.rounded li:last-child, +#jqt ul.rounded li:last-child a { + -webkit-border-bottom-left-radius: 8px; + border-bottom-left-radius: 8px; + -webkit-border-bottom-right-radius: 8px; + border-bottom-right-radius: 8px; +} +/* line 422, ../scss/include/_skeleton.scss */ +#jqt ul.form li { + padding: 7px 10px; +} +/* line 425, ../scss/include/_skeleton.scss */ +#jqt ul.form li.error { + border: 2px solid red; +} +/* line 428, ../scss/include/_skeleton.scss */ +#jqt ul.form li.error + #jqt ul.form li.error { + border-top: 0; +} +/* line 438, ../scss/include/_skeleton.scss */ +#jqt ul.metal li { + background-image: none; + border-top: 1px solid #fff; + border-bottom: 1px solid #666; + font-size: 26px; +} +/* line 445, ../scss/include/_skeleton.scss */ +#jqt ul.metal li a { + line-height: 26px; + margin: 0; + padding: 13px 0; +} +/* line 451, ../scss/include/_skeleton.scss */ +#jqt ul.metal li em { + display: block; + font-size: 14px; + font-style: normal; + width: 50%; + line-height: 14px; +} +/* line 459, ../scss/include/_skeleton.scss */ +#jqt ul.metal li small { + float: right; + position: relative; + margin-top: 10px; + font-weight: bold; +} +/* line 473, ../scss/include/_skeleton.scss */ +#jqt ul.edgetoedge li { + font-size: 20px; +} +/* line 476, ../scss/include/_skeleton.scss */ +#jqt ul.edgetoedge li:first-child { + border-top: 0; +} +/* line 480, ../scss/include/_skeleton.scss */ +#jqt ul.edgetoedge li.sep { + font-size: 16px; + padding: 2px 10px; +} +/* line 485, ../scss/include/_skeleton.scss */ +#jqt ul.edgetoedge li em { + font-weight: normal; + font-style: normal; +} +/* line 494, ../scss/include/_skeleton.scss */ +#jqt ul.plastic { + font-size: 18px; +} +/* line 498, ../scss/include/_skeleton.scss */ +#jqt ul.plastic li { + border-width: 1px 0; + border-style: solid; + background-image: none; + background-color: #2a2b2c; + border-top-color: #2f3031; + border-bottom-color: #232324; +} +/* line 506, ../scss/include/_skeleton.scss */ +#jqt ul.plastic li:nth-child(odd) { + background-image: none; + background-color: #2f3031; +} +/* line 510, ../scss/include/_skeleton.scss */ +#jqt ul.plastic li a.active.loading { + background-image: url(img/loading.gif); + background-position: 95% center; + background-repeat: no-repeat; +} +/* line 515, ../scss/include/_skeleton.scss */ +#jqt ul.plastic li small { + color: #949698; + font-size: 13px; + font-weight: bold; + text-transform: uppercase; +} +/* line 525, ../scss/include/_skeleton.scss */ +#jqt ul.individual { + border: 0; + background: none; + clear: both; + overflow: hidden; +} +/* line 531, ../scss/include/_skeleton.scss */ +#jqt ul.individual li { + font-size: 14px; + text-align: center; + -webkit-border-radius: 8px; + border-radius: 8px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 48%; + float: left; + display: block; + padding: 11px 10px 14px 10px; +} +/* line 541, ../scss/include/_skeleton.scss */ +#jqt ul.individual li + li { + float: right; +} +/* line 546, ../scss/include/_skeleton.scss */ +#jqt ul.individual a { + line-height: 16px; + margin: -11px -10px -14px -10px; + padding: 11px 10px 14px 10px; + -webkit-border-radius: 8px; + border-radius: 8px; +} +/* line 555, ../scss/include/_skeleton.scss */ +#jqt .toggle { + width: 94px; + position: relative; + height: 27px; + display: block; + overflow: hidden; + float: right; +} +/* line 563, ../scss/include/_skeleton.scss */ +#jqt .toggle input[type="checkbox"] { + margin: 0; + -webkit-border-radius: 5px; + border-radius: 5px; + height: 27px; + overflow: hidden; + width: 149px; + border: 0; + -webkit-transition: left 0.15s ease-in-out; + transition: left 0.15s ease-in-out; + position: absolute; + top: 0; + left: -55px; + -webkit-appearance: textarea; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +/* line 577, ../scss/include/_skeleton.scss */ +#jqt .toggle input[type="checkbox"]:checked { + left: 0px; +} +/* line 583, ../scss/include/_skeleton.scss */ +#jqt .info { + font-size: 12px; + line-height: 16px; + text-align: center; + color: #444; + padding: 15px; + font-weight: bold; +} +/* line 12, ../scss/jqtouch.scss */ +#jqt { + /* Lists */ + +} +/* line 13, ../scss/jqtouch.scss */ +#jqt > * { + background-image: url('data:image/png;base64,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'), -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #7b7c7f), color-stop(30%, #696a6d), color-stop(65%, #555658), color-stop(100%, #464748)); + background-image: url('data:image/png;base64,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'), -webkit-linear-gradient(top, #7b7c7f, #696a6d 30%, #555658 65%, #464748); + background-image: url('data:image/png;base64,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'), linear-gradient(top, #7b7c7f, #696a6d 30%, #555658 65%, #464748); +} +/* line 20, ../scss/jqtouch.scss */ +#jqt .toolbar { + background-image: -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 12.5, color-stop(12.5%, #181819), color-stop(12.5%, rgba(11, 11, 12, 0))), -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 12.5, color-stop(12.5%, #181819), color-stop(12.5%, rgba(11, 11, 12, 0))), -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 12.5, color-stop(12.5%, rgba(255, 255, 255, 0.1)), color-stop(12.5%, rgba(255, 255, 255, 0))), -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 12.5, color-stop(12.5%, rgba(255, 255, 255, 0.1)), color-stop(12.5%, rgba(255, 255, 255, 0))); + background-image: -webkit-radial-gradient(#181819 12.5%, rgba(11, 11, 12, 0) 12.5%), -webkit-radial-gradient(#181819 12.5%, rgba(11, 11, 12, 0) 12.5%), -webkit-radial-gradient(rgba(255, 255, 255, 0.1) 12.5%, rgba(255, 255, 255, 0) 12.5%), -webkit-radial-gradient(rgba(255, 255, 255, 0.1) 12.5%, rgba(255, 255, 255, 0) 12.5%); + background-image: radial-gradient(#181819 12.5%, rgba(11, 11, 12, 0) 12.5%), radial-gradient(#181819 12.5%, rgba(11, 11, 12, 0) 12.5%), radial-gradient(rgba(255, 255, 255, 0.1) 12.5%, rgba(255, 255, 255, 0) 12.5%), radial-gradient(rgba(255, 255, 255, 0.1) 12.5%, rgba(255, 255, 255, 0) 12.5%); + background-repeat: repeat; + background-position: 0 0, 8px 8px, 0 1px, 8px 9px; + background-color: #2f3031; + background-size: 16px 16px; +} +/* line 29, ../scss/jqtouch.scss */ +#jqt ul li { + border-top: 1px solid #48494b; + background-image: none; + background-color: rgba(85, 86, 88, 0.2); + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(123, 124, 127, 0.2)), color-stop(3%, rgba(98, 99, 101, 0.2)), color-stop(100%, rgba(72, 73, 75, 0.2))); + background-image: -webkit-linear-gradient(top, rgba(123, 124, 127, 0.2), rgba(98, 99, 101, 0.2) 3%, rgba(72, 73, 75, 0.2)); + background-image: linear-gradient(top, rgba(123, 124, 127, 0.2), rgba(98, 99, 101, 0.2) 3%, rgba(72, 73, 75, 0.2)); +} +/* line 33, ../scss/jqtouch.scss */ +#jqt ul li a { + color: white; + text-shadow: #3c3d3e 0 -1px 0; +} +/* line 37, ../scss/jqtouch.scss */ +#jqt ul li .toggle input[type="checkbox"] { + -webkit-border-radius: 5px; + border-radius: 5px; + background: #ffffff url(../img/jqt/on_off.png) 0 0 no-repeat; +} +/* line 42, ../scss/jqtouch.scss */ +#jqt ul li input[type='submit'] { + background-image: none; + background-color: white; + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(50%, #ffffff), color-stop(51%, #ffffff), color-stop(100%, #f2f2f2)); + background-image: -webkit-linear-gradient(top, #ffffff, #ffffff 50%, #ffffff 51%, #f2f2f2); + background-image: linear-gradient(top, #ffffff, #ffffff 50%, #ffffff 51%, #f2f2f2); + border: 1px outset black; +} +/* line 47, ../scss/jqtouch.scss */ +#jqt ul li small.counter { + -webkit-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0; + box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0; +} +/* line 54, ../scss/jqtouch.scss */ +#jqt ul.metal li { + background-image: none; + border-top: 1px solid #fff; + border-bottom: 1px solid #666; + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#eeeeee), to(#9c9ea0)); +} +/* line 60, ../scss/jqtouch.scss */ +#jqt ul.metal li a { + text-shadow: #fff 0 1px 0; +} +/* line 62, ../scss/jqtouch.scss */ +#jqt ul.metal li a.active { + color: #000; +} +/* line 65, ../scss/jqtouch.scss */ +#jqt ul.metal li em { + color: #444; +} +/* line 71, ../scss/jqtouch.scss */ +#jqt ul.edgetoedge li { + background-image: none; + background-color: #3c3d3e; + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #282829), color-stop(100%, #2f3031)); + background-image: -webkit-linear-gradient(top, #282829, #2f3031); + background-image: linear-gradient(top, #282829, #2f3031); + border-bottom: 1px solid #1e1e1f; + border-top: 1px solid #343536; +} +/* line 76, ../scss/jqtouch.scss */ +#jqt ul.edgetoedge li.sep { + background-image: none; + background-color: rgba(0, 0, 0, 0.3); + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(38, 38, 38, 0.3)), color-stop(30%, rgba(20, 20, 20, 0.3)), color-stop(65%, rgba(0, 0, 0, 0.3)), color-stop(100%, rgba(0, 0, 0, 0.3))); + background-image: -webkit-linear-gradient(top, rgba(38, 38, 38, 0.3), rgba(20, 20, 20, 0.3) 30%, rgba(0, 0, 0, 0.3) 65%, rgba(0, 0, 0, 0.3)); + background-image: linear-gradient(top, rgba(38, 38, 38, 0.3), rgba(20, 20, 20, 0.3) 30%, rgba(0, 0, 0, 0.3) 65%, rgba(0, 0, 0, 0.3)); + color: #949698; + text-shadow: #000000 0 -1px 0; +} +/* line 83, ../scss/jqtouch.scss */ +#jqt .info { + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#cccccc), to(#aaaaaa), color-stop(0.6, #cccccc)); + text-shadow: rgba(255, 255, 255, 0.8) 0 1px 0; + color: #444; + border-top: 1px solid rgba(255, 255, 255, 0.2); +} +div.spinner { + position: relative; + width: 100px; + height: 100px; + display: inline-block; +} +div.spinner div { + width: 12%; + height: 26%; + background: #000; + position: absolute; + left: 44.5%; + top: 37%; + opacity: 0; + -webkit-animation: fade 1s linear infinite; + -webkit-border-radius: 50px; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.2); +} +div.spinner div.bar01 { + -webkit-transform: rotate(0deg) translate(0, -142%); + -webkit-animation-delay: 0s; +} +div.spinner div.bar02 { + -webkit-transform: rotate(30deg) translate(0, -142%); + -webkit-animation-delay: -0.9167s; +} +div.spinner div.bar03 { + -webkit-transform: rotate(60deg) translate(0, -142%); + -webkit-animation-delay: -0.833s; +} +div.spinner div.bar04 { + -webkit-transform: rotate(90deg) translate(0, -142%); + -webkit-animation-delay: -0.75s; +} +div.spinner div.bar05 { + -webkit-transform: rotate(120deg) translate(0, -142%); + -webkit-animation-delay: -0.667s; +} +div.spinner div.bar06 { + -webkit-transform: rotate(150deg) translate(0, -142%); + -webkit-animation-delay: -0.5833s; +} +div.spinner div.bar07 { + -webkit-transform: rotate(180deg) translate(0, -142%); + -webkit-animation-delay: -0.5s; +} +div.spinner div.bar08 { + -webkit-transform: rotate(210deg) translate(0, -142%); + -webkit-animation-delay: -0.41667s; +} +div.spinner div.bar09 { + -webkit-transform: rotate(240deg) translate(0, -142%); + -webkit-animation-delay: -0.333s; +} +div.spinner div.bar10 { + -webkit-transform: rotate(270deg) translate(0, -142%); + -webkit-animation-delay: -0.25s; +} +div.spinner div.bar11 { + -webkit-transform: rotate(300deg) translate(0, -142%); + -webkit-animation-delay: -0.1667s; +} +div.spinner div.bar12 { + -webkit-transform: rotate(330deg) translate(0, -142%); + -webkit-animation-delay: -0.0833s; +} +@-webkit-keyframes fade { + from { + opacity: 1; + } + to { + opacity: 0.25; + } +} +/* + +Color list: +- login box: + light #ff9955 + dark #ff6622 +- login button: + regular #dd5500 + hover #773311 +- login translations: + box: #cc6622; + not-selected: + color: #ddaa99 + background: #994422 + selected: #772211; +*/ +html { + height: 100%; + -webkit-text-size-adjust: none; + -ms-text-size-adjust: none; +} +body { + font-family: Helvetica-Neue, Helvetica, Arial, Geneva, sans-serif; + margin: 0px; +} +.ellipsis { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} +div#loginForm div.credentialsMessage.error h1 { + color: red; +} +div#loginForm div.validating div.loading { + margin-top: 50px; + margin-bottom: 50px; + margin-left: auto; + margin-right: auto; + width: 100px; +} +/* + +Color list: +- login box: + light #ff9955 + dark #ff6622 +- login button: + regular #dd5500 + hover #773311 +- login translations: + box: #cc6622; + not-selected: + color: #ddaa99 + background: #994422 + selected: #772211; +*/ +html { + height: 100%; + -webkit-text-size-adjust: none; + -ms-text-size-adjust: none; +} +body { + font-family: Helvetica-Neue, Helvetica, Arial, Geneva, sans-serif; + margin: 0px; +} +.ellipsis { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} +#jqt div.cardList ul li.cardListItem a small.favicon { + background: white; + -webkit-border-radius: 3px; + border-radius: 3px; + display: block; + width: 26px; + height: 26px; + padding: 0px; +} +#jqt div.cardList ul li.cardListItem a small.favicon img.favicon { + margin-right: 3px; + margin-top: 3px; + width: 20px; + height: 20px; +} +#jqt div.cardDetail ul li a.password { + color: gray; +} +/* ---------------------------------------- */ +/* +body { + margin: 0; + font-family: Helvetica; + background: #FFFFFF; + color: #000000; + overflow-x: hidden; + -webkit-user-select: none; + -webkit-text-size-adjust: none; +} + + +div.toolbar { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + border-bottom: 1px solid #2d3642; + border-top: 1px solid #6d84a2; + padding: 10px; + height: 45px; +// background: url(./images/old/iPhone/toolbar.png) #6d84a2 repeat-x; + background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAArCAIAAAA2QHWOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAE1JREFUCNddjDEOgEAQAgn//5qltYWFnb1GB4vdSy4WBAYStKyb9+O0FJMYyjMyMWCC35lJM71r6vF1P07/lFSfPx6ZxNLcy1HtihzpA/RWcOj0zlDhAAAAAElFTkSuQmCCCg==) #6d84a2 repeat-x; +} + +div.toolbar h1#pageTitle { + overflow: hidden; + margin-top: 1px; + margin-bottom: 0px; + margin-left: auto; + margin-right: auto; + width: 150px; + height: 25px; + font-size: 20px; + width: 150px; + font-weight: bold; + text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0; + text-align: center; + text-overflow: ellipsis; + white-space: nowrap; + color: #FFFFFF; +} + +div.toolbar a.button { + position: absolute; + overflow: hidden; + top: 8px; + right: 6px; + margin: 0; + border-width: 0 5px; + padding: 0 3px; + width: auto; + height: 30px; + line-height: 30px; + font-family: inherit; + font-size: 12px; + font-weight: bold; + color: #FFFFFF; + text-shadow: rgba(0, 0, 0, 0.6) 0px -1px 0; + text-overflow: ellipsis; + text-decoration: none; + white-space: nowrap; + background: none; +// -webkit-border-image: url(./images/old/iPhone/toolButton.png) 0 5 0 5; +} + +div.toolbar a#backButton { + left: 6px; + right: auto; + padding: 0px; + max-width: 55px; + border-width: 0 8px 0 14px; +// -webkit-border-image: url(./images/old/iPhone/backButton.png) 0 8 0 14; + -webkit-border-image: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAeCAIAAAA6iHCJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtJJREFUeNrEV21P01AYbbtubNExBnXDbYjjZYI4BMdgEANDQoTElw/+Rw0mBs0UiSGaoJFEQEPwjRhFCW/JxrZ2Xdu1fe71bpAhCHzqupPnS5ObPOeec+5zb+lHLxao05HPiwvzr3/++J7N7FFGgaaDLe034+O+wCXyxSKET1u5+Wc98XTK39zeOzjudLmNIoAR2tlaf/Zkqm9gKNI/RBigE9dtb23MJKZj8fvuC16b3WGxsJRxOFfHeQOtH+ZnOI+XRfgEBoLAzz6fjo7ebfD4GYYhMiEdDGRAW6xOt6d7YGzl4xIL/7mgyPL044edkVt19T4EFAJEVQYud+MvOCkHc7MJ3+VrXGOzXrHeZS1s9trjOVj7tiqpONTWBRgD6BVmQFls9iMaSHnx/bu3ffEHgC2gVVqAIojKR3Iw9zLRcjVmtTnA0NydxQDg0IWvq59kYIOeZtWs9gQkagcMcgK/vLjYNXQHcEkas0AcYPdNIPr7Q/0M69B089ofavB5ZVm3OJ2cTwegzAUgxGbSe8tLS52xewjRZGabzAABZt+8mvGHBsiYNF+AAw1cXEBGNUiQqWpAlArM5MSYBXgEOl0NkLcCkxak28MRKbuDMa6KDAwAUnU8HO2Q+N0SJ3OLMCA7V1S9vt7d3tSg5LNV0ACXwOekcGfreVbVVYUqMjOvyPsH71cqkxsZ7NHFJIXBTCMONMAlEryoxAfDucyOmaOpmINyaTowrK23IyDxKbNzUIYoKU3+i37OXpCESvfGCOw11uMMcCkQke4rDlrS1coOSk2VOXftERfKtZsURmLXQUqBVqiUABgrQirc0Xp4Fv4t8kxN8dLkaJQupOVcGnTN0PuQHHlRSG1Eu9tUTLOnxZ5clclsfmK078va7/WN7axomCN2e42Xc/VEIoiiM0KePeM20DTY3M22BZtuhENW1rC/NrI3WVGTmZxSKEr7V4ABAJ+53J1I3nPjAAAAAElFTkSuQmCCCg==) 0 8 0 14; +} + +// ------------------------------------------- + +body.iPhone form.loginForm { + min-height: 372px; + + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + padding: 10px; +// background: #c8c8c8 url(./images/old/iPhone/pinstripes.png); + background: #c8c8c8 url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAABCAIAAACdaSOZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABdJREFUeNpiPHrmCgMC/GNjYwNSAAEGADdNA3dnzPlQAAAAAElFTkSuQmCCCg==); +} + +fieldset { + position: relative; + margin: 0 0 20px 0; + padding: 0; + background: #FFFFFF; + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + border: 1px solid #999999; + text-align: right; + font-size: 16px; +} + +.row { + position: relative; + min-height: 42px; + border-bottom: 1px solid #999999; + -webkit-border-radius: 0; + text-align: right; +} + +fieldset > .row:last-child { + border-bottom: none !important; +} + + +.row > input:not(input[type|=radio]):not(input[type|=checkbox]), +.row > div.fieldValue { + width: 100%; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + margin: 0; + border: none; + padding: 0px 10px 0 112px; + height: 42px; + background: none; + font-size: 16px; + font-weight: normal; + + color: #666a60; + -webkit-user-select: text; +} + +.row > div.fieldValue p { + margin: 0px; + text-align: left; + height: 40px; + vertical-align: middle; + line-height: 40px; +} + +body[orientation="landscape"] .row > div.fieldValue.password { + padding-right: 120px; +// background: url(./images/old/iPhone/password_background.png) no-repeat 105px; + background: url(data:image/png;charset=utf-8;base64,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) no-repeat 105px; +} + +.row > div.fieldValue.password { + color: rgba(255,255,255,0.5); +// background: url(./images/old/iPhone/password_background.png) no-repeat 106px; + background: url(data:image/png;charset=utf-8;base64,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) no-repeat 106px; +} + +.row > div.fieldValue.password.clear { + color: #666a60; + background: none; +} + +.row > input[type|=radio], .row > input[type|=checkbox] { + margin: 7px 7px 0 0; + height: 25px; + width: 25px; +} + + +.row > label { + position: absolute; + margin: 0 0 0 14px; + line-height: 42px; + font-weight: bold; + max-width: 92px; + overflow: hidden; + white-space: nowrap; +} + +body[orientation="landscape"] .row > label { + max-width: 150px; +} + +body[orientation="landscape"] .row > input:not(input[type|=radio]):not(input[type|=checkbox]) { + padding-left: 140px; +} + +.row > img.favicon { + position: absolute; + width: 20px; + height: 20px; + top: 12px; + left: 11px; +} + +.row > span { + padding: 8px 13px; + text-align: left; + display: block; + color: #666a60; + font-size: 10pt; +} + +.row.notes { + -webkit-user-select: text; +} + +// ------------------------------------------- + +.whiteButton { + margin-left: auto; + margin-right: auto; + width: 150px; + display: block; + border-width: 0 12px; + padding: 10px; + text-align: center; + font-size: 20px; + font-weight: bold; + text-decoration: inherit; + color: inherit; + +// -webkit-border-image: url(./images/old/iPhone/whiteButton.png) 0 12 0 12; + -webkit-border-image: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAuCAQAAAB+dNqHAAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAAdAAAALgChnaVgAAAAAmJLR0QA/4ePzL8AAANhSURBVEjHnZZNaFxVFMd/5747mclMkpmxzYdJtFaJglgFpYSiBAVX7l0UUZGuSkEEu3PtSulCUXFdxYXL7kQQIWD9CsRIqdomGGOaSdJmZjKTeW/eu/e4mKRmrE3n5X83j/ve7/3POfe+d67QrTxP8QLDnMTenkv4kQ2+YZ6d/Y/Kvut+XuZVKtygzVbXC8v0cT+jXORLWneix/mAZZZwKIrSbSAIAcd5kDdZ6kaf4zzfEeLPnHrr+UeOWpMJ9rjYxe7a5ntff/YThhyneJ/Zf9Ep3uEXkhNjX50bHoiStoPE76HWiPQFfcGN+kufLKxheZJ3+aOD5vmIBaLXpz89HSVhzF2Uy2TtGxe/+JksJzjHjgCvMEHz6cnZt7dD5zlAgSlkZy7MrVDgbz43FJimhV46W2vFzutBI3aN8NJZlBbTFAKepZ/o/IszU1Gs95Tz2Uw1nFuiiTE8Rhs9fbIROt/LaISvTaO0mbIM0kTKeefoUSMDCI6SxRCT9d77XlFrCYgQi0PH72vH9CyNMSjO4tGM9do76hXB4y2KU+c8aaR41KJ4SIn6DgqgPq2rggWc+kMEjBUBVDUNKQBiOx+218Pl6tVr+jJhUZx4PYSr4XBSsAKaJH9tpirT7uIoTj3pAna43TJJWtSjYDpxp5bv5OpTb4mOq3IIX0W14ypeUq+rYBH5T9fqbRerWMClrbB4PBgUjZPUuXrUGBW51Yhc71y9LSJi1NgQxVWj3a7aw2gmONSGJtNAxC9v9+56vaoe6aubXEWy4meXe/+VXl42TvqzG4ZFCkRzv/+w3lu436/PX6NNnsUgCctjUUJwnWdGC/ZenpXw47loTRrldu3XwLkSrQmiHbkSP3FkwB4MXpjfWDE3JTfw29ZGAGHjgWJdcDW9XC/0PVS4W47fVj5cuLUmFWlOVlevei8ApVLp8bWclnWU4khpZvTRwaw5VggEINHlZuSv1mcr6zW2ZF22xqLqlWr19uYdGSkeWyn4IY5okX61GBHMrp1HJaYldW4G9Ylm7c/19a4jV6k0+fBmtjbkCwxoDovdQ0lIpEXTNIrbR6OVxWr1joNeJjM+Xhyu2+0+Z6Ocmt17Kj4bBvFgPJTUNlZX4/j/zohAJlMuF4vW5vP7Z3d2kqRW29qKuxr4P1RbNFwZtqq8AAAAAElFTkSuQmCCCg==) 0 12 0 12; + text-shadow: rgba(255, 255, 255, 0.7) 0 1px 0; +} + +// ------------------------------------------- + +body.iPhone .loginProgressPanel { + min-height: 372px; + + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + padding: 10px; +// background: #c8c8c8 url(./images/old/iPhone/pinstripes.png); + background: #c8c8c8 url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAABCAIAAACdaSOZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABdJREFUeNpiPHrmCgMC/GNjYwNSAAEGADdNA3dnzPlQAAAAAElFTkSuQmCCCg==); +} + +body.iPhone .loadingBar { + margin-left: auto; + margin-right: auto; + margin-top: 60px; +} + +div.loadingBar { + height: 22px; + width: 214px; +// background: url(./images/old/loading/loadingBar.gif) no-repeat center; + background: url(data:image/gif;charset=utf-8;base64,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) no-repeat center; +} + +div.loadingBar div.loadingBarProgress { + height: 100%; + width: 0%; +} + +div.loadingBar div.loadingBarProgress div.loadingBarProgress_left { + height: 100%; + max-width: 8px; +// background: url(./images/old/loading/loadingBarProgress.png) no-repeat 0; + background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAANYAAAAWCAYAAAC8C2KaAAAACXBIWXMAAAsSAAALEgHS3X78AAACIklEQVR4Ae3brU7DUBQH8HO6PQAazx4BRUKDwfChQTGFQ4wRFGEERdgQONRQoGEzGFISFI8w/DQSWHsP565r0xY2BiWY/ivW+530l52cdr0jwgEBCPy5AE9aUc7XV0kcl4jniGR20lj0QaAYAtzXWHgmNh7v3HTGXfOXgSWnKy6VqEZMCKZxcmiHgFCfAjrjva6XxfgUWNJc3tVBG9mBqEMAAmMFrrl+10r2pgJLTpYO9dZvNTkAZQhAYAoBNh3evz+KRsaBJccLevtXakYdOEMAAj8UCII6Hzx6dlY5nipBjXwTV1GAAAR+KiA1neHZWcOMJY35FS03bAMOCEAgl0CDG0/dMGP5by6xk2s1TIYABFRAjKufo8AyfoUkftyCDwQg8FsBloqdGmaswMf7qt9CYh4E0gLDWBrdCg7SXahBAAK5BEYZa9AnZmStXJSYDAEVENEtT/GtYNAjxl5AfDEgkFtAuGfXCDPW4N0jh9zci2IBCBRdwCTeY1kL2Z65RdYq+rcC159LQLjPFy9rdo0wY9nS+2uLSk5qI6FtxgEBCEwpEJg4flIvr2SrfEgOYxPulI4YBoFYwEiHL/2jqJ4KLNuowVXT4NqMBuAMAQh8I2DkSoPqLDnqU2DZTqmWF4mcXTxzJalQhkBGQJ+piEyL2/5DpifchJttjOpSLenmXMfVvboVBFmkgnOhBYbBJPqTuv41vx10C22Bi4fAfwt8AJe2flCLvH1PAAAAAElFTkSuQmCCCg==) no-repeat 0; +} + +div.loadingBar div.loadingBarProgress div.loadingBarProgress_right { + position: relative; + height: 100%; + margin-left: 8px; +// background: url(./images/old/loading/loadingBarProgress.png) no-repeat right; + background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAANYAAAAWCAYAAAC8C2KaAAAACXBIWXMAAAsSAAALEgHS3X78AAACIklEQVR4Ae3brU7DUBQH8HO6PQAazx4BRUKDwfChQTGFQ4wRFGEERdgQONRQoGEzGFISFI8w/DQSWHsP565r0xY2BiWY/ivW+530l52cdr0jwgEBCPy5AE9aUc7XV0kcl4jniGR20lj0QaAYAtzXWHgmNh7v3HTGXfOXgSWnKy6VqEZMCKZxcmiHgFCfAjrjva6XxfgUWNJc3tVBG9mBqEMAAmMFrrl+10r2pgJLTpYO9dZvNTkAZQhAYAoBNh3evz+KRsaBJccLevtXakYdOEMAAj8UCII6Hzx6dlY5nipBjXwTV1GAAAR+KiA1neHZWcOMJY35FS03bAMOCEAgl0CDG0/dMGP5by6xk2s1TIYABFRAjKufo8AyfoUkftyCDwQg8FsBloqdGmaswMf7qt9CYh4E0gLDWBrdCg7SXahBAAK5BEYZa9AnZmStXJSYDAEVENEtT/GtYNAjxl5AfDEgkFtAuGfXCDPW4N0jh9zci2IBCBRdwCTeY1kL2Z65RdYq+rcC159LQLjPFy9rdo0wY9nS+2uLSk5qI6FtxgEBCEwpEJg4flIvr2SrfEgOYxPulI4YBoFYwEiHL/2jqJ4KLNuowVXT4NqMBuAMAQh8I2DkSoPqLDnqU2DZTqmWF4mcXTxzJalQhkBGQJ+piEyL2/5DpifchJttjOpSLenmXMfVvboVBFmkgnOhBYbBJPqTuv41vx10C22Bi4fAfwt8AJe2flCLvH1PAAAAAElFTkSuQmCCCg==) no-repeat right; + top: -22px; +} + +// ------------------------------------------- + +body.iPhone .loginErrorPanel { + position: absolute; + min-height: 372px; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + padding: 10px; +// background: #c8c8c8 url(./images/old/iPhone/pinstripes.png); + background: #c8c8c8 url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAABCAIAAACdaSOZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABdJREFUeNpiPHrmCgMC/GNjYwNSAAEGADdNA3dnzPlQAAAAAElFTkSuQmCCCg==); +} + +body.iPhone .loginErrorPanel h2 { + text-align: center; + color: red; + margin-top: 40px; +} + +// ------------------------------------------- + +form.cardListSearchForm { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + border-bottom: 1px solid #2d3642; + border-top: 1px solid #6d84a2; + padding: 6px; + height: 45px; +// background: url(./images/old/iPhone/toolbar.png) #6d84a2 repeat-x; + background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAArCAIAAAA2QHWOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAE1JREFUCNddjDEOgEAQAgn//5qltYWFnb1GB4vdSy4WBAYStKyb9+O0FJMYyjMyMWCC35lJM71r6vF1P07/lFSfPx6ZxNLcy1HtihzpA/RWcOj0zlDhAAAAAElFTkSuQmCCCg==) #6d84a2 repeat-x; + margin: 0px; +} + +form.cardListSearchForm input { + margin: 7px; + -webkit-appearance: searchfield; + width: 200px; +} + +ul.cardListPanel { + margin: 0px; + padding: 0px; + list-style-type: none; + min-height: 372px; +} + +li.cardListItem { + height: 43px; + border-bottom: 1px solid #cccccc; +// background: url(./images/old/iPhone/listArrow.png) no-repeat right center; + background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAUCAYAAAB4d5a9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKVJREFUeNpi/P//PwOtARMDHcDwsYQFRJSXl8P4dVC6CZvizs5O8i1BsqARid9Ei+BiQ2KDLKumhSU1QNyKxG+hlkXoEQ+yqAPNogpapK5KNIvaKbUIVxKeAsTvkPg5QCxETUukgfgAkqFPgdgBzVKKLIFZoIJmwR1qBRdNLEC2BJQpV9LCAmRL/gBxAtRwqlqAXqzcgRrOQE0LQIBxtNIiBQAEGAA7xCa2yF9zEgAAAABJRU5ErkJgggo=) no-repeat right center; + +} + +li.cardListItem a { + position: relative; + top: -22px; + left: 40px; + display: block; + white-space: nowrap; + overflow: hidden; +} + +body[orientation="portrait"] li.cardListItem a { + max-width: 250px; +} + +body[orientation="landscape"] li.cardListItem a { + max-width: 400px; +} + +li.cardListItem img { + height: 20px; + width: 20px; + padding: 12px 10px 0px 10px; +} + +li.cardListItem a { + text-decoration: none; + color: black; + font-weight: bold; + font-size: 14pt; + vertical-align: 3px; +} + + +div.cardDetailPanel { + position: absolute; + top: 45px; + min-height: 372px; + + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + padding: 10px; +// background: #c8c8c8 url(./images/old/iPhone/pinstripes.png); + background: #c8c8c8 url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAABCAIAAACdaSOZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABdJREFUeNpiPHrmCgMC/GNjYwNSAAEGADdNA3dnzPlQAAAAAElFTkSuQmCCCg==); +} + +div.cardDetailPanel > fieldset > div.row > span.directLogin { + width: 100%; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + margin: 0; + border: none; + padding: 12px 10px 0 110px; + height: 42px; + background: none; + font-size: 16px; + font-weight: normal; + + padding-left: 40px; + color: black; +// background: url(./images/old/iPhone/listArrow.png) no-repeat right center; + background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAUCAYAAAB4d5a9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKVJREFUeNpi/P//PwOtARMDHcDwsYQFRJSXl8P4dVC6CZvizs5O8i1BsqARid9Ei+BiQ2KDLKumhSU1QNyKxG+hlkXoEQ+yqAPNogpapK5KNIvaKbUIVxKeAsTvkPg5QCxETUukgfgAkqFPgdgBzVKKLIFZoIJmwR1qBRdNLEC2BJQpV9LCAmRL/gBxAtRwqlqAXqzcgRrOQE0LQIBxtNIiBQAEGAA7xCa2yF9zEgAAAABJRU5ErkJgggo=) no-repeat right center; +} + +body[orientation="landscape"] div.cardDetailPanel > fieldset > div.row > span.directLogin { + padding-left: 50px; +} + +div.cardDetailPanel h2 { + margin: 0 0 8px 14px; + font-size: inherit; + font-weight: bold; + color: #4d4d70; + text-shadow: rgba(255, 255, 255, 0.75) 1px 1px 0; +} + +body[orientation="portrait"] > * { + width: 320px; +} + +body[orientation="landscape"] > * { + width: 480px; +} +*/
\ No newline at end of file diff --git a/frontend/gamma/css/static.css b/frontend/gamma/css/static.css new file mode 100644 index 0000000..9953a8d --- a/dev/null +++ b/frontend/gamma/css/static.css @@ -0,0 +1,166 @@ +/* + +Copyright 2008-2011 Clipperz Srl + +This file is part of Clipperz Community Edition. +Clipperz Community Edition is an online password manager. +For further information about its features and functionalities please +refer to http://www.clipperz.com. + +* Clipperz Community Edition is free software: you can redistribute + it and/or modify it under the terms of the GNU Affero General Public + License as published by the Free Software Foundation, either version + 3 of the License, or (at your option) any later version. + +* Clipperz Community Edition is distributed in the hope that it will + be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU Affero General Public License for more details. + +* You should have received a copy of the GNU Affero General Public + License along with Clipperz Community Edition. If not, see + <http://www.gnu.org/licenses/>. + +*/ + +body { + padding: 0px; + margin: 0px; + font-family: Helvetica, Arial, Geneva, sans-serif; + color: #666666; +} +div.header { + padding: 20px 25px; + background-color: #1f2148; +} +div#logo { + background: url(./images/old/logo.png); + width: 150px; + height: 39px; + display: block; +} +h5.clipperzPayoff { + color: white; + font-size: 13pt; + font-weight: normal; + padding-left: 20px; + white-space: nowrap; + margin: 0px; + padding-left: 4px; +} +/* +h1 { + font-size: 40pt; + color: #333366; +} + +h1 span.logo_z { + color: #ff9400; +} +*/ +div.contentWrapper { + padding: 20px; +} +div.block1 { + float: left; + margin-right: 40px; +} +div.block2 { + float: left; +} +div.languageBlock { + clear: both; + padding-top: 20px; +} +div.flags { + float: left; +} +div.content { + float: left; + margin-left: 20px; + width: 300px; +} +h3 { + margin: 0px; + padding-top: 10px; +} +p { + font-size: 10pt; + line-height: 20px; +} +/* @group RSS feed */ +body.iFrame { + margin: 0px; + padding: 0px; + border: 0px; + font-family: Helvetica, Arial, Geneva, sans-serif; +} +div#feedContent ul { + list-style-type: none; + padding: 0px; + margin: 0px; +} +div#feedContent ul li { + display: none; +} +div#feedContent ul li.selected { + display: block; + padding-top: 6px; +} +div#feedContent ul li.selected em.date { + display: none; +} +div#feedContent ul li.selected a { + display: none; +} +div#feedContent ul li.selected h2 { + font-size: 8pt; + color: #c3c4cf; + margin: 0px; + border: 0px; + padding: 0px; +} +div#feedContent ul li.selected p { + font-size: 8pt; + color: #c3c4cf; + margin: 0px; + display: inline; + line-height: 15px; +} +div#feedContent ul li.selected p a { + font-size: 8pt; + color: #c3c4cf; + display: inline; +} +div.languageBlock div.flags { + height: 64px; + width: 64px; +} +div.languageBlock.en-us div.flags { + background: url(./images/old/flags/en.png); +} +div.languageBlock.zh-cn div.flags { + background: url(./images/old/flags/cn.png); +} +div.languageBlock.fr-fr div.flags { + background: url(./images/old/flags/fr.png); +} +div.languageBlock.it-it div.flags { + background: url(./images/old/flags/it.png); +} +div.languageBlock.ja-jp div.flags { + background: url(./images/old/flags/jp.png); +} +div.languageBlock.pt-br div.flags { + background: url(./images/old/flags/br.png); +} +div.languageBlock.es-es div.flags { + background: url(./images/old/flags/es.png); +} +div.languageBlock.ru-ru div.flags { + background: url(./images/old/flags/ru.png); +} +div.languageBlock.de-de div.flags { + background: url(./images/old/flags/de.png); +} +/* @end */ diff --git a/frontend/gamma/css/web.css b/frontend/gamma/css/web.css index 0a72e09..5d8bc20 100644 --- a/frontend/gamma/css/web.css +++ b/frontend/gamma/css/web.css @@ -212,308 +212,8 @@ div.tooltip div.tooltip_body { border-radius: 8px; -moz-border-radius: 8px; -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - border-top: 1px solid #d4d4d4; - border-left: 1px solid #a2a2a2; - border-right: 1px solid #6f6f6f; - border-bottom: 1px solid #3c3c3c; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - border-top: 1px solid #d4d4d4; - border-left: 1px solid #a2a2a2; - border-right: 1px solid #6f6f6f; - border-bottom: 1px solid #3c3c3c; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - border-top: 1px solid #d4d4d4; - border-left: 1px solid #a2a2a2; - border-right: 1px solid #6f6f6f; - border-bottom: 1px solid #3c3c3c; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - border-top: 1px solid #d4d4d4; - border-left: 1px solid #a2a2a2; - border-right: 1px solid #6f6f6f; - border-bottom: 1px solid #3c3c3c; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - border-top: 1px solid #d4d4d4; - border-left: 1px solid #a2a2a2; - border-right: 1px solid #6f6f6f; - border-bottom: 1px solid #3c3c3c; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555)); - background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb); - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; - -webkit-box-shadow: 4px 4px 10px #333333; - -moz-box-shadow: 4px 4px 10px #333333; - box-shadow: 4px 4px 10px #333333; -webkit-box-shadow: 4px 4px 10px #333333; -moz-box-shadow: 4px 4px 10px #333333; box-shadow: 4px 4px 10px #333333; @@ -563,6 +263,53 @@ div.tooltip.RIGHT div.tooltip_arrow { div.tooltip.RIGHT div.tooltip_body div.tooltip_text { min-height: 45px; } +.button.default { + display: inline-block; + height: 20px; + cursor: pointer; + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ffa76f), to(#ff6622)); + background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ffa76f); + border-radius: 5; + -moz-border-radius: 5; + -webkit-border-radius: 5; + border: 1px solid #ff7f46; + padding-top: 4px; + padding-left: 15px; + padding-right: 15px; + padding-bottom: 2px; + color: white; + font-weight: lighter; + text-shadow: -1px -1px 1px #ff6622, 1px 1px 1px #ffa76f; + text-decoration: none; + font-weight: normal; +} +.button.default:hover { + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff8e46), to(#ff6622)); + background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ff8e46); +} +.button { + display: inline-block; + height: 20px; + cursor: pointer; + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bfbfbf), to(#999999)); + background: -moz-linear-gradient(0% 100% 90deg, #999999, #bfbfbf); + border-radius: 5; + -moz-border-radius: 5; + -webkit-border-radius: 5; + border: 1px solid #ababab; + padding-top: 4px; + padding-left: 15px; + padding-right: 15px; + padding-bottom: 2px; + color: white; + font-weight: lighter; + text-shadow: -1px -1px 1px #999999, 1px 1px 1px #bfbfbf; + text-decoration: none; +} +.button:hover { + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ababab), to(#999999)); + background: -moz-linear-gradient(0% 100% 90deg, #999999, #ababab); +} /* Color list: @@ -614,47 +361,32 @@ div.modalDialogMask.userInfoBoxMask { div.pageHeaderAndBody { height: 100%; } -body > div.pageHeaderAndBody { - height: auto; - min-height: 100%; +div.pageHeaderAndBody div#pageBody { + min-width: 1013px; + padding-bottom: 90px; } -div.pageHeader { +div.pageHeaderAndBody div.pageHeader { background-color: #1f2148; min-width: 1013px; } -div.pageHeader div#miscLinks { +div.pageHeaderAndBody div.pageHeader div#miscLinks { float: right; } -div.pageHeader div#miscLinks ul { +div.pageHeaderAndBody div.pageHeader div#miscLinks ul { margin: 12px 0px 0px; padding: 15px; } -div.pageHeader div#miscLinks ul li { +div.pageHeaderAndBody div.pageHeader div#miscLinks ul li { display: inline; margin: 0px; padding: 0px; border: 0px; } -div.pageHeader div#miscLinks ul li a { +div.pageHeaderAndBody div.pageHeader div#miscLinks ul li a { color: #ffffff; margin: 0px; padding: 0px; border: 0px; - margin: 0px; - padding: 0px; - border: 0px; - margin: 0px; - padding: 0px; - border: 0px; - margin: 0px; - padding: 0px; - border: 0px; - margin: 0px; - padding: 0px; - border: 0px; - margin: 0px; - padding: 0px; - border: 0px; padding: 15px; border-left: 1px solid #3e428f; font-weight: normal; @@ -662,106 +394,66 @@ div.pageHeader div#miscLinks ul li a { font-size: 12pt; min-width: 70px; } -div.pageHeader div#miscLinks ul li a:hover { +div.pageHeaderAndBody div.pageHeader div#miscLinks ul li a:hover { color: #b8bae1; } -div.pageHeader div#miscLinks ul li a#donateHeaderLink { +div.pageHeaderAndBody div.pageHeader div#miscLinks ul li a#donateHeaderLink { border-left: 0px; } -div.pageHeader div#logoFrame { +div.pageHeaderAndBody div.pageHeader div#logoFrame { padding: 16px 16px 60px 16px; min-height: 44px; } -div.pageHeader div#logoFrame a { +div.pageHeaderAndBody div.pageHeader div#logoFrame a { color: white; text-decoration: none; } -div.pageHeader div#logoFrame a canvas { - margin: 0px; - padding: 0px; - border: 0px; - margin: 0px; - padding: 0px; - border: 0px; - margin: 0px; - padding: 0px; - border: 0px; - margin: 0px; - padding: 0px; - border: 0px; - margin: 0px; - padding: 0px; - border: 0px; +div.pageHeaderAndBody div.pageHeader div#logoFrame a canvas { margin: 0px; padding: 0px; border: 0px; width: 150px; height: 39px; } -div.pageHeader div#logoFrame a h5.clipperzPayoff { +div.pageHeaderAndBody div.pageHeader div#logoFrame a h5.clipperzPayoff { font-size: 13pt; font-weight: normal; white-space: nowrap; margin: 0px; padding-left: 4px; } -div.pageHeader div#featureTabs table { +div.pageHeaderAndBody div.pageHeader div#featureTabs table { width: 100%; padding: 6px; padding-left: 15px; padding-right: 15px; padding-bottom: 46px; } -div.pageHeader div#featureTabs table tr td { +div.pageHeaderAndBody div.pageHeader div#featureTabs table tr td { width: 25%; vertical-align: top; font-size: 11pt; color: white; } -div.pageHeader div#featureTabs table tr td img { +div.pageHeaderAndBody div.pageHeader div#featureTabs table tr td img { float: left; } -div.pageHeader div#featureTabs table tr td span { +div.pageHeaderAndBody div.pageHeader div#featureTabs table tr td span { display: block; padding: 5 10 5 85; } -div.pageHeader div#featureTabs canvas.featureIcon { +div.pageHeaderAndBody div.pageHeader div#featureTabs canvas.featureIcon { width: 76px; height: 76px; display: block; float: left; background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ffad79), to(#ff6622)); background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ffad79); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ffad79), to(#ff6622)); - background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ffad79); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ffad79), to(#ff6622)); - background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ffad79); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ffad79), to(#ff6622)); - background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ffad79); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ffad79), to(#ff6622)); - background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ffad79); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ffad79), to(#ff6622)); - background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ffad79); - border-radius: 38px; - -moz-border-radius: 38px; - -webkit-border-radius: 38px; - border-radius: 38px; - -moz-border-radius: 38px; - -webkit-border-radius: 38px; - border-radius: 38px; - -moz-border-radius: 38px; - -webkit-border-radius: 38px; - border-radius: 38px; - -moz-border-radius: 38px; - -webkit-border-radius: 38px; - border-radius: 38px; - -moz-border-radius: 38px; - -webkit-border-radius: 38px; border-radius: 38px; -moz-border-radius: 38px; -webkit-border-radius: 38px; } -div.pageHeader div#news { +div.pageHeaderAndBody div.pageHeader div#news { top: -82px; left: 240px; width: 310px; @@ -771,257 +463,32 @@ div.pageHeader div#news { -webkit-border-bottom-left-radius: 8px; -moz-border-radius-bottomleft: 8px; border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; -webkit-border-bottom-right-radius: 8px; -moz-border-radius-bottomright: 8px; border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-left-radius: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-left-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomright: 8px; - border-bottom-right-radius: 8px; - -webkit-box-shadow: 2px 2px 9px #333333; - -moz-box-shadow: 2px 2px 9px #333333; - box-shadow: 2px 2px 9px #333333; - -webkit-box-shadow: 2px 2px 9px #333333; - -moz-box-shadow: 2px 2px 9px #333333; - box-shadow: 2px 2px 9px #333333; - -webkit-box-shadow: 2px 2px 9px #333333; - -moz-box-shadow: 2px 2px 9px #333333; - box-shadow: 2px 2px 9px #333333; - -webkit-box-shadow: 2px 2px 9px #333333; - -moz-box-shadow: 2px 2px 9px #333333; - box-shadow: 2px 2px 9px #333333; - -webkit-box-shadow: 2px 2px 9px #333333; - -moz-box-shadow: 2px 2px 9px #333333; - box-shadow: 2px 2px 9px #333333; -webkit-box-shadow: 2px 2px 9px #333333; -moz-box-shadow: 2px 2px 9px #333333; box-shadow: 2px 2px 9px #333333; } -div.pageHeader div#news div#newsframe { +div.pageHeaderAndBody div.pageHeader div#news div#newsframe { margin-left: 10px; margin-right: 10px; height: 75px; overflow: hidden; } -div.pageHeader div#news div#newsframe iframe { +div.pageHeaderAndBody div.pageHeader div#news div#newsframe iframe { width: 290px; border: 0px; color: #616475; background-color: #616475; } -div.pageHeader div#news div.grip { +div.pageHeaderAndBody div.pageHeader div#news div.grip { width: 310px; - height: 12px; + height: 6px; margin-top: 2px; cursor: pointer; } -div.pageHeader div#news div.grip div.gripHandler { +div.pageHeaderAndBody div.pageHeader div#news div.grip div.gripHandler { margin-left: auto; margin-right: auto; margin-top: 8px; @@ -1030,10 +497,10 @@ div.pageHeader div#news div.grip div.gripHandler { border-left: 5px solid transparent; border-right: 5px solid transparent; } -div.pageHeader div#news.open div.grip div.gripHandler { +div.pageHeaderAndBody div.pageHeader div#news.open div.grip div.gripHandler { border-bottom: 5px solid #e9e9ec; } -div.pageHeader div#news.hidden div.grip div.gripHandler { +div.pageHeaderAndBody div.pageHeader div#news.hidden div.grip div.gripHandler { border-top: 5px solid #e9e9ec; } div.pageFooter { @@ -1066,7 +533,7 @@ div.pageFooter div.footerWrapper div.footerContent a { font-weight: bold; text-decoration: none; } -div.pageFooter div.footerWrapper div.footerContent span.applicationVersion { +div.pageFooter div.footerWrapper div.footerContent div.applicationVersion { padding: 8px; color: #888888; background-color: #d2d2d2; @@ -1074,6 +541,10 @@ div.pageFooter div.footerWrapper div.footerContent span.applicationVersion { top: -40px; float: right; } +div.pageFooter div.footerWrapper div.footerContent div.applicationVersion a { + padding-left: 0px; + display: inline; +} /* Color list: @@ -1137,216 +608,6 @@ div#loginBox div.header { -webkit-border-top-left-radius: 20px; -moz-border-radius-topleft: 20px; border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-left-radius: 20px; - -moz-border-radius-topleft: 20px; - border-top-left-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; - -webkit-border-top-right-radius: 20px; - -moz-border-radius-topright: 20px; - border-top-right-radius: 20px; -webkit-border-top-right-radius: 20px; -moz-border-radius-topright: 20px; border-top-right-radius: 20px; @@ -1354,16 +615,6 @@ div#loginBox div.header { div#loginBox div.body { background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9b5a), to(#ff6622)); background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ff9b5a); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9b5a), to(#ff6622)); - background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ff9b5a); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9b5a), to(#ff6622)); - background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ff9b5a); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9b5a), to(#ff6622)); - background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ff9b5a); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9b5a), to(#ff6622)); - background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ff9b5a); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9b5a), to(#ff6622)); - background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ff9b5a); } div#loginBox div.body h4 { color: #ffffff; @@ -1473,216 +724,6 @@ div#loginBox div.footer { -webkit-border-bottom-left-radius: 20px; -moz-border-radius-bottomleft: 20px; border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-left-radius: 20px; - -moz-border-radius-bottomleft: 20px; - border-bottom-left-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; - -webkit-border-bottom-right-radius: 20px; - -moz-border-radius-bottomright: 20px; - border-bottom-right-radius: 20px; -webkit-border-bottom-right-radius: 20px; -moz-border-radius-bottomright: 20px; border-bottom-right-radius: 20px; @@ -1760,6 +801,7 @@ div.activeFeatures div.createAccountLink { display: inline-block; width: 282; height: 65px; + background-image: url(./images/old/home/register.png); margin-right: 20px; } div.activeFeatures div.createAccountLink a.createAccountLink { @@ -1779,6 +821,9 @@ div.activeFeatures div.createAccountLink a.createAccountLink span.link { padding-bottom: 10px; font-size: 12pt; } +div.activeFeatures div.createAccountLink:hover { + background-image: url(./images/old/home/register_selected.png); +} div.activeFeatures div.createAccountLink:hover a.createAccountLink span.payoff { color: #54535a; } @@ -1847,61 +892,21 @@ div.userInfoBox { background-color: #ff9955; background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9a56), to(#ff6723)); background: -moz-linear-gradient(0% 100% 90deg, #ff6723, #ff9a56); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9a56), to(#ff6723)); - background: -moz-linear-gradient(0% 100% 90deg, #ff6723, #ff9a56); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9a56), to(#ff6723)); - background: -moz-linear-gradient(0% 100% 90deg, #ff6723, #ff9a56); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9a56), to(#ff6723)); - background: -moz-linear-gradient(0% 100% 90deg, #ff6723, #ff9a56); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9a56), to(#ff6723)); - background: -moz-linear-gradient(0% 100% 90deg, #ff6723, #ff9a56); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9a56), to(#ff6723)); - background: -moz-linear-gradient(0% 100% 90deg, #ff6723, #ff9a56); - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -webkit-box-shadow: 2px 2px 9px #333333; -moz-box-shadow: 2px 2px 9px #333333; box-shadow: 2px 2px 9px #333333; - -webkit-box-shadow: 2px 2px 9px #333333; - -moz-box-shadow: 2px 2px 9px #333333; - box-shadow: 2px 2px 9px #333333; - -webkit-box-shadow: 2px 2px 9px #333333; - -moz-box-shadow: 2px 2px 9px #333333; - box-shadow: 2px 2px 9px #333333; - -webkit-box-shadow: 2px 2px 9px #333333; - -moz-box-shadow: 2px 2px 9px #333333; - box-shadow: 2px 2px 9px #333333; - -webkit-box-shadow: 2px 2px 9px #333333; - -moz-box-shadow: 2px 2px 9px #333333; - box-shadow: 2px 2px 9px #333333; - -webkit-box-shadow: 2px 2px 9px #333333; - -moz-box-shadow: 2px 2px 9px #333333; - box-shadow: 2px 2px 9px #333333; } div.userInfoBox.locked { z-index: 19001; } div.userInfoBox.locked div.header a.lockButton { - background: url(../images/old/lock/locked.png) no-repeat -5px -2px; + background: url(./images/old/lock/locked.png) no-repeat -5px -2px; } div.userInfoBox.locked div.header a.lockButton:hover { - background: url(../images/old/lock/locked_hover.png) no-repeat -5px -2px; + background: url(./images/old/lock/locked_hover.png) no-repeat -5px -2px; } div.userInfoBox.locked div.body a { display: none; @@ -1924,10 +929,10 @@ div.userInfoBox div.header a.lockButton { width: 15px; height: 20px; text-decoration: none; - background: url(../images/old/lock/unlocked.png) no-repeat -5px -2px; + background: url(./images/old/lock/unlocked.png) no-repeat -5px -2px; } div.userInfoBox div.header a.lockButton:hover { - background: url(../images/old/lock/unlocked_hover.png) no-repeat -5px -2px; + background: url(./images/old/lock/unlocked_hover.png) no-repeat -5px -2px; } div.userInfoBox div.body { padding: 0px 12px; @@ -1942,7 +947,6 @@ div.userInfoBox div.body ul { padding: 0px; margin: 4px 0px; list-style-position: inside; - text-shadow: #000000 0 0 0; } div.userInfoBox div.body ul li span.number { font-weight: bold; @@ -2022,35 +1026,24 @@ div.sidePanels div.tabSidePanel ul.mainTabs li.selected div.selectionHighlighter margin-top: -43px; } div.sidePanels div.tabSidePanel ul.mainTabs li.cards a { - background: url(../images/old/main/tabs/cardsBackground.png) -19px -63px; + background: url(./images/old/main/tabs/cardsBackground.png) -19px -63px; } div.sidePanels div.tabSidePanel ul.mainTabs li.cards a:hover { - background: url(../images/old/main/tabs/cardsBackground.png) -19px -110px; + background: url(./images/old/main/tabs/cardsBackground.png) -19px -110px; } div.sidePanels div.tabSidePanel ul.mainTabs li.cards.selected a { margin-left: -10px; padding-left: 50px; color: white; - background: url(../images/old/main/tabs/cardsBackground.png) -9px -14px; -} -div.sidePanels div.tabSidePanel ul.mainTabs li.cards.selected a:hover { - background: url(../images/old/main/tabs/cardsBackground.png) -9px -14px; -} -div.sidePanels div.tabSidePanel ul.mainTabs li.directLogins a { - background: url(../images/old/main/tabs/directLoginBackground.png) -19px -63px; -} -div.sidePanels div.tabSidePanel ul.mainTabs li.directLogins a:hover { - background: url(../images/old/main/tabs/directLoginBackground.png) -19px -110px; + background: url(./images/old/main/tabs/cardsBackground.png) -9px -14px; } div.sidePanels div.tabSidePanel ul.mainTabs li.directLogins.selected a { margin-left: -10px; padding-left: 50px; color: white; - background: url(../images/old/main/tabs/directLoginBackground.png) -9px -14px; } div.sidePanels div.tabSidePanel ul.mainTabs li.directLogins.selected a:hover { color: white; - background: url(../images/old/main/tabs/directLoginBackground.png) -9px -14px; } div.sidePanels div.tabSidePanel ul.otherTabs { margin: 10px 0px; @@ -2070,12 +1063,12 @@ div.sidePanels div.tabSidePanel ul.otherTabs li a { text-decoration: none; } div.sidePanels div.tabSidePanel ul.otherTabs li a:hover { - background: url(../images/old/main/tabs/itemsBackground.png) -10px -49px; + background: url(./images/old/main/tabs/itemsBackground.png) -10px -49px; } div.sidePanels div.tabSidePanel ul.otherTabs li.selected a { margin-left: -10px; padding-left: 50px; - background: url(../images/old/main/tabs/itemsBackground.png) 1px -96px; + background: url(./images/old/main/tabs/itemsBackground.png) 1px -96px; color: white; } div.sidePanels div.tabSidePanel ul.otherTabs li.selected div.selectionHighlighter { @@ -2090,7 +1083,7 @@ div.tagSidePanel { div.tagSidePanel div.header { height: 50px; - background-image: url(../images/old/main/tabs/tagsBackground.png); + background-image: url(./images/old/main/tabs/tagsBackground.png); } div.tagSidePanel div.header h1 { padding-left: 52px; @@ -2100,11 +1093,11 @@ div.tagSidePanel { color: #888888; } div.tagSidePanel div.body { - background: url(../images/old/main/tabs/tagsBackground.png) -255px; + background: url(./images/old/main/tabs/tagsBackground.png) -255px; } div.tagSidePanel div.footer { height: 10px; - background: url(../images/old/main/tabs/tagsBackground.png) -510px -40px; + background: url(./images/old/main/tabs/tagsBackground.png) -510px -40px; } div.tagSidePanel ul.tags { margin: 0px; @@ -2146,7 +1139,7 @@ div.groupSidePanel { div.groupSidePanel div.header { height: 50px; - background-image: url(../images/old/main/tabs/groupsBackground.png); + background-image: url(./images/old/main/tabs/groupsBackground.png); } div.groupSidePanel div.header h1 { padding-left: 52px; @@ -2168,11 +1161,11 @@ div.groupSidePanel { color: #444444; } div.groupSidePanel div.body { - background: url(../images/old/main/tabs/groupsBackground.png) -255px; + background: url(./images/old/main/tabs/groupsBackground.png) -255px; } div.groupSidePanel div.footer { height: 10px; - background: url(../images/old/main/tabs/groupsBackground.png) -510px -39px; + background: url(./images/old/main/tabs/groupsBackground.png) -510px -39px; } div.groupSidePanel ul.groups { margin: 0px; @@ -2208,3 +1201,2899 @@ div.groupSidePanel { } */ } +div.subPanelTabs ul { + margin: 0px; + margin-right: 7px; + padding: 0px; +} +div.subPanelTabs ul li { + display: inline-block; + vertical-align: middle; + height: 50px; + border-right: 1px solid #eef0e3; + border-bottom: 1px solid #d5d5bc; +} +div.subPanelTabs ul li.first { + -webkit-border-top-left-radius: 20px; + -moz-border-radius-topleft: 20px; + border-top-left-radius: 20px; +} +div.subPanelTabs ul li.selected { + background-color: #eef0e3; + border-bottom: 1px solid #eef0e3; + border-right: 1px solid #d5d5bc; +} +div.subPanelTabs ul li.selected:hover { + border-right: 1px solid #d5d5bc; +} +div.subPanelTabs ul li.selected a { + color: #444440; +} +div.subPanelTabs ul li:hover { + border-right: 1px solid #d5d5bc; + background-color: #eef0e3; +} +div.subPanelTabs ul li a { + color: #787872; + text-decoration: none; + display: block; + text-align: center; + padding-top: 15px; + padding-left: 20px; + padding-right: 20px; + font-size: 13pt; +} +div.subPanelContent { + padding-top: 20px; + padding-left: 30px; + padding-right: 30px; + min-height: 280px; + color: #787872; + margin: 0px 6px 0 9px; +} +div.subPanelContent h3 { + margin: 0px; + border: 0px; + padding: 0px; +} +div.subPanelContent ul { + margin: 0px; + padding: 0px; + list-style-type: none; +} +div.subPanelContent ul li { + display: none; +} +div.subPanelContent ul li.selected { + display: block; +} +.downloadOfflineCopy { + display: inline-block; + height: 20px; + cursor: pointer; + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#59bc4c), to(#448833)); + background: -moz-linear-gradient(0% 100% 90deg, #448833, #59bc4c); + border-radius: 5; + -moz-border-radius: 5; + -webkit-border-radius: 5; + border: 1px solid #51a23d; + padding-top: 4px; + padding-left: 15px; + padding-right: 15px; + padding-bottom: 2px; + color: white; + font-weight: lighter; + text-shadow: -1px -1px 1px #448833, 1px 1px 1px #59bc4c; + text-decoration: none; +} +.downloadOfflineCopy:hover { + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#49a23d), to(#448833)); + background: -moz-linear-gradient(0% 100% 90deg, #448833, #49a23d); +} +div.SimpleMessagePanel { + position: relative; + left: -225px; + top: -70px; + width: 450px; + height: 140px; +} +div.SimpleMessagePanel div.body { + padding: 20px; + padding-bottom: 15px; + background-color: #f1f1ef; + -webkit-box-shadow: 2px 2px 9px #333333; + -moz-box-shadow: 2px 2px 9px #333333; + box-shadow: 2px 2px 9px #333333; + border-radius: 10; + -moz-border-radius: 10; + -webkit-border-radius: 10; +} +div.SimpleMessagePanel div.body h3 { + font-size: 14pt; + font-weight: normal; + margin: 0px; + padding-top: 4px; + color: #787872; +} +div.SimpleMessagePanel div.body div.img { + width: 50px; + height: 50px; + float: left; + margin-right: 15px; + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9b5a), to(#ff6622)); + background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ff9b5a); + border-radius: 25px; + -moz-border-radius: 25px; + -webkit-border-radius: 25px; +} +div.SimpleMessagePanel div.body div.img canvas { + width: 50px; + height: 50px; +} +div.SimpleMessagePanel div.body p { + margin: 0; + font-size: 10pt; + font-weight: normal; + color: #787872; + padding-top: 10px; + padding-bottom: 5px; + line-height: 1.3; +} +div.SimpleMessagePanel div.body div.buttonArea { + height: 40px; + clear: both; +} +div.SimpleMessagePanel div.body div.buttonArea > div { + float: right; + margin-left: 15px; + margin-top: 10px; +} +div.SimpleMessagePanel div.passphrase { + padding-left: 65px; +} +div.SimpleMessagePanel div.passphrase input { + width: 250px; + font-size: 14pt; + border: 1px solid #bb4924; + color: #333366; + background-color: white; + padding: 2px 5px; + height: 28px; +} +div.SimpleMessagePanel div.progressBarWrapper { + margin-left: 80px; +} +/* @end */ +/* @group Javascript Alert */ +div#javaScriptAlert div.mask { + position: fixed; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; + background-color: black; + z-index: 1001; + -moz-opacity: 0.7; + opacity: .70; + filter: alpha(opacity=70); +} +div#javaScriptAlert div.header { + height: 34px; + width: 468; + background-image: url(./images/old/alert/header.png); +} +div#javaScriptAlert div.body { + background-image: url(./images/old/alert/body.png); + padding: 0px 20px 10px 20px; +} +/* +div#javaScriptAlert div.body div.alert { + padding-left: 100px; + background: url(./images/old/alert/alert.png) no-repeat; +} +*/ +/*div#javaScriptAlert div.body img.alert {*/ +div#javaScriptAlert div.body div.alertLogo { + float: left; + background-image: url(./images/old/alert/alert.png); + width: 88px; + height: 88px; +} +div#javaScriptAlert div.body div.alert { + padding-left: 100px; +} +div#javaScriptAlert div.footer { + height: 34px; + width: 468; + background-image: url(./images/old/alert/footer.png); +} +div#javaScriptAlert div.message { + position: relative; + top: -150px; + z-index: 1002; + /* + left: 100px; + right: 100px; +*/ + + margin-left: auto; + margin-right: auto; + max-width: 468px; +} +div#javaScriptAlert div.message h1 { + font-size: 16pt; + margin: 0px; + color: #ff5930; +} +div#javaScriptAlert div.message p { + margin-top: 0px; + color: #999999; +} +div#javaScriptAlert div.message h3 { + font-size: 12pt; + margin-bottom: 0px; + color: #ff5930; +} +div#javaScriptAlert div.message h5 { + margin: 0px; + color: #999999; +} +/* @end */ +/* @group Components + */ +/* @group LoginProgress */ +div.LoginProgress { + position: relative; + left: -190px; + top: -100px; + width: 380px; + height: 200px; + /* background: url(./images/old/loginProgress/background.png); */ + + background-color: #d7d7c0; + -webkit-border-radius: 20px; + -moz-border-radius: 20px; + border-radius: 20px; + -webkit-box-shadow: 5px 5px 7px rgba(0, 0, 0, 0.6); + -moz-box-shadow: 5px 5px 7px rgba(0, 0, 0, 0.6); + box-shadow: 5px 5px 7px rgba(0, 0, 0, 0.6); +} +div.LoginProgress div.header { + height: 40px; +} +div.LoginProgress div.header h3 { + font-size: 12pt; + font-weight: normal; + margin: 0px; + color: #777777; + padding-top: 13px; + padding-left: 18px; +} +div.LoginProgress div.body { + height: 120px; + overflow: auto; + padding-left: 20px; + padding-right: 20px; + background-color: #f1f1e9; + /* + margin-left: 19px; + margin-right: 18px; +*/ + +} +div.LoginProgress div.body div.img { + margin: 10px; + width: 50px; + height: 50px; + float: left; +} +div.LoginProgress div.body div.img.ALERT { + /* background-image: url(./images/old/simpleMessageBox/Alert.png); */ + + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9955), to(#ff6622), color-stop(1, #333333)); + background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ff9955); + -webkit-border-radius: 25px; + -moz-border-radius: 25px; + border-radius: 25px; +} +div.LoginProgress div.body div.img.ALERT canvas { + width: 50px; + height: 50px; + /* background-image: url(./images/old/simpleMessageBox/excalmationPoint.png); */ + +} +div.LoginProgress div.body div.loadingBar { + position: relative; + top: 51px; + left: 60px; +} +div.LoginProgress div.body div.errorBox p { + color: #787872; + padding-top: 20px; + padding-left: 80px; +} +div.LoginProgress div.footer { + margin-left: 19px; + margin-right: 18px; +} +/* +div.LoginProgress div.footer a { + text-decoration: none; + text-align: center; + color: #787872; + display: block; + font-weight: bold; + font-size: 11pt; + width: 100px; + margin-top: 11px; + margin-left: auto; + margin-right: auto; +} +*/ +div.LoginProgress div.buttonArea { + padding-top: 6px; + text-align: center; +} +div.LoginProgress div.button { + display: inline-block; +} +div.LoginProgress div.footer a:hover { + color: #515247; +} +/* @end */ +/* @group SimpleMessagePanel */ +/* -> SimpleMessagePanel.less +div.SimpleMessagePanel { + position: relative; + left: -225px; + top: -70px; + width: 450px; + height: 140px; +//background: url(./images/old/loginProgress/background.png); + background-color: #f1f1ef; + .border-radius(10); +} +//div.SimpleMessagePanel div.header { +// height: 17px; +// background: url(./images/old/simpleMessageBox/background_header.png) no-repeat; +} +div.SimpleMessagePanel div.body { +/ * + height: 120px; + overflow: auto; + margin-left: 19px; + margin-right: 18px; +* / + +// background: url(./images/old/simpleMessageBox/background_body.png) repeat-y; +// padding-left: 25px; +// padding-right: 25px; +// padding-top: 10px; + padding: 20px; + .box-shadow (2px, 2px, 9px, @Global_shadow-color); +} +div.SimpleMessagePanel div.body h3 { + font-size: 14pt; + font-weight: normal; + margin: 0px; + padding-top: 4px; + color: #787872; +} +div.SimpleMessagePanel div.body div.img { + width: 60px; + height: 60px; + float: left; + margin-right: 10px; + + .graduated-background (#ff6622, #ffad79); + .border-radius(30); +} +div.SimpleMessagePanel div.body div.img canvas { + width: 60px; + height: 60px; +} +div.SimpleMessagePanel div.body p { + margin: 0; + font-size: 10pt; + font-weight: normal; + color: #787872; + padding-top: 10px; + padding-bottom: 5px; + line-height: 1.3; +} +div.SimpleMessagePanel div.body div.img.ALERT { +// background: url(./images/old/simpleMessageBox/Alert.png) no-repeat; +} +div.SimpleMessagePanel div.body div.img.INFO { +// background: url(./images/old/simpleMessageBox/Info.png) no-repeat; +} +div.SimpleMessagePanel div.body div.buttonArea { + height: 40px; + clear: both; +} +div.SimpleMessagePanel div.body div.buttonArea > div { + float: right; + margin-left: 15px; + margin-top: 10px; +} +div.SimpleMessagePanel div.footer { + height: 25px; +// background: url(./images/old/simpleMessageBox/background_footer.png) no-repeat; +} +div.SimpleMessagePanel div.passphrase { + padding-left: 65px; +} +div.SimpleMessagePanel div.passphrase input { + width: 250px; + font-size: 14pt; + border: 1px solid #bb4924; + color: #333366; + background-color: white; + padding: 2px 5px; + height: 28px; +} +div.SimpleMessagePanel div.progressBarWrapper { + margin-left: 80px; +} +*/ +/* @end */ +/* @group Button */ +/* -> Button.less +div.button_wrapper { + height: 32px; + background: url(./images/old/button/default_left.png) no-repeat; + cursor: pointer; +} +div.button_wrapper.hover { + background: url(./images/old/button/hover_left.png) no-repeat; +} +div.button_wrapper.clicked { + background: url(./images/old/button/clicked_left.png) no-repeat; +} +div.button_bodyWrapper { + height: 32px; + margin-left: 6px; + padding-right: 6px; + background: url(./images/old/button/default_main.png) repeat-x right 0; +} +div.button_wrapper.hover div.button_bodyWrapper { + background: url(./images/old/button/hover_main.png) repeat-x right 0; +} +div.button_wrapper.clicked div.button_bodyWrapper { + background: url(./images/old/button/clicked_main.png) repeat-x right 0; +} +div.button_body { + text-align: center; + min-width: 60px; + padding: 0px 7px; + padding-top: 8px; +} +div.button_body span { + font-size: 11pt; + color: white; +} +div.button_wrapper.default div.button_body span { + font-weight: bold; +} +/ * +div.button_footer { + margin: 0px; + height: 31px; + width: 6px; + background: green url(./images/old/button/default_right.png) no-repeat; +} +* / +*/ +/* @end */ +/* @group Password enthropy */ +input.entropyLevelIndicator { + background: url(./images/old/passwordField/background.png) no-repeat 0 26px; +} +div.passwordEntropyWrapper { + padding: 0px; + border: 1px solid #bb4924; + border-top: 0px; + margin-bottom: 4px; + background-color: white; + margin-right: 3px; + margin-top: -2; +} +div.passwordEntropy { + height: 4px; + font-size: 1pt; + background: url(./images/old/entropyBackground.gif) repeat-x 0 0; + line-height: 3px; +} +div.messageBox { + position: absolute; + width: 409px; + height: 29px; + top: 23px; + left: 204px; + background: url(./images/old/main/messageBoxBackground.png); +} +div.messageBox h3 { + display: inline-block; + color: #342f6b; + font-weight: bold; + margin: 7px 2px 0px 12px; + font-size: 10pt; +} +body.ext-gecko div.messageBox h3 { + display: -moz-inline-box; +} +div.messageBox h1 { + color: #342f6b; + display: inline; + font-weight: normal; + margin: 0px 1px; + font-size: 9pt; +} +div.messageBox a { + display: block; + width: 20px; + height: 20px; + float: right; + position: absolute; + right: 5px; + top: 4px; + background-image: url(./images/old/main/messageBoxCloseButton.png); +} +div.messageBox a:hover { + background-image: url(./images/old/main/messageBoxCloseButtonActive.png); +} +/* @end */ +/* @group Side panels */ +/* @end */ +/* @end */ +/* @group MainPanels */ +div.mainPanels { + float: left; + width: 833px; + margin-top: -38px; + /* + position: relative; + width: 100%; + min-height: 600px; + top: -40px; + left: 250px; +*/ + +} +div.mainFooter { + clear: both; +} +/* @end */ +/* @group Grids */ +/* @group grid Component */ +/* @group delete */ +/*div.body div.rows table.rows tbody tr td.delete */ +div.delete, +div.new { + padding-left: 5px; + height: 19px; +} +div.new span, +div.delete span { + margin: 0px; + padding: 0px; + border: 0px; + display: inline-block; + height: 19px; + padding-right: 6px; +} +div.new span a, +div.delete span a { + white-space: nowrap; +} +div.delete:hover { + background: url(./images/old/delete_background_left.png) no-repeat 0; +} +div.delete:hover span { + background: url(./images/old/delete_background.png) no-repeat right 0; +} +div.new:hover { + background: url(./images/old/new_background_left.png) no-repeat 0; +} +div.new:hover span { + background: url(./images/old/new_background.png) no-repeat right 0; +} +/* +tr.selected div.delete { + background: url(./images/old/delete_background_left.png) no-repeat 0; +} +tr.selected div.delete span { + background: url(./images/old/delete_background.png) no-repeat right 0; +} +*/ +div.body div.rows table.rows tbody tr td.delete div.delete span a { + visibility: hidden; + font-size: 8pt; + vertical-align: -13px; + color: black; +} +div.body div.rows table.rows tbody tr.selected td.delete div.delete span a { + visibility: visible; +} +div.body div.rows table.rows tbody tr:hover td.delete div.delete span a { + visibility: visible; +} +div.body div.rows table.rows tbody tr:hover td.delete div.delete:hover span a { + color: white; +} +/* +div.body div.rows table.rows tbody tr.selected td.delete div.delete span a { + color: white; +} +*/ +/* @end */ +/* @group header */ +div.gridComponent table.rows thead tr th { + text-align: left; + height: 30px; + vertical-align: bottom; +} +div.gridComponent table.rows thead tr th.sortable span { + cursor: pointer; +} +div.gridComponent table.rows thead tr th.sortable span a { + margin-left: 5px; + padding-left: 10px; +} +div.gridComponent table.rows thead tr th.directLoginTH { + width: 420px; +} +div.gridComponent table.rows thead tr th.latestUpdateTH { + width: 100px; +} +div.gridComponent table.rows thead tr th.commandsTH { + width: 150px; +} +div.gridComponent table.rows thead a { + text-decoration: none; +} +div.gridComponent table.rows thead span { + font-weight: normal; + font-size: 9pt; + line-height: 20px; +} +div.gridComponent div.header div.headerSlot { + float: right; +} +/* @end */ +div.mainPanels div.gridComponent div.body table.rows td.favicon { + padding-left: 25px; +} +div.mainPanels div.gridComponent div.body table.rows td.favicon img { + width: 16px; + height: 16px; + border: 0px; +} +/* @end */ +/* @group Card Grid */ +/* @group DirectLogin links */ +div.gridComponent th.directLoginTH span { + margin-left: 7px; +} +td.card_directLogins div { + display: inline-table; +} +td.card_directLogins span { + display: inline-block; +} +/* +td.card_directLogins a { + display: inline-table; + height: 19px; + + padding-right: 7px; +} + +td.card_directLogins a:hover { + background: url(./images/old/directLink_background.png) right 0; +} +*/ +div.card_directLogin { + display: inline-block; + height: 19px; + padding-left: 7px; +} +div.card_directLogin_ellipses span { + padding-bottom: 2px; +} +div.card_directLogin div.card_directLogin_body { + display: inline-block; + height: 19px; + padding-right: 8px; + background-position: left; +} +div.card_directLogin div.card_directLogin_body a { + vertical-align: -14px; +} +/*div.card_directLogin:hover {*/ +div.card_directLogin:hover { + background: url(./images/old/directLink_background_left.png) no-repeat 0 0; +} +/*div.card_directLogin:hover div {*/ +div.card_directLogin:hover div.card_directLogin_body { + background: url(./images/old/directLink_background.png) right 0; +} +/* @group DirectLogin Popup */ +div.DirectLoginListPopup { + position: absolute; + width: 184px; +} +div.DirectLoginListPopup div.DirectLoginListPopup_body { + background-image: url(./images/old/directLogins_background.png); + padding-top: 8px; +} +div.DirectLoginListPopup div.DirectLoginListPopup_footer { + height: 8px; + background-image: url(./images/old/directLogins_background_bottom.png); +} +div.DirectLoginListPopup div.DirectLoginListPopup_body ul { + margin: 0px; + padding-left: 13px; + list-style: none; +} +div.DirectLoginListPopup div.DirectLoginListPopup_body ul li { + padding-top: 4px; + height: 20px; + padding-right: 10px; + white-space: nowrap; +} +div.DirectLoginListPopup div.DirectLoginListPopup_body ul li div { + padding-right: 10px; + overflow: hidden; +} +div.DirectLoginListPopup div.DirectLoginListPopup_body ul li img.favicon { + padding-left: 9px; + padding-right: 5px; +} +div.DirectLoginListPopup div.DirectLoginListPopup_body ul li a { + text-decoration: none; + color: white; + font-weight: normal; + font-size: 10pt; + vertical-align: 3px; + white-space: nowrap; + padding-right: 8px; +} +div.DirectLoginListPopup div.DirectLoginListPopup_body ul li:hover { + /* background-color: #a5a696; */ + + /* background-color: #7b7d70; */ + + background-color: rgba(123, 125, 112, 0.5); +} +div.DirectLoginListPopup div.DirectLoginListPopup_body ul li:hover a { + background: url(./images/old/directLink_no_background.png) right; +} +/* @end */ +/* @end */ +div.mainPanels div.gridComponent div.header { + /* + height: 90px; + background: url(./images/old/main/blocks/cardGridBackground.png) no-repeat; +*/ + + background: url(./images/old/main/blocks/cardGridBackground.png) no-repeat; + padding-left: 40px; + padding-right: 40px; + padding-top: 20px; + padding-bottom: 10px; +} +div.mainPanels div.gridComponent div.header form.search { + height: 32px; + margin: 0px; +} +div.mainPanels div.gridComponent div.header form.search div.clearSearchButton { + position: absolute; + margin-left: 192px; + width: 22px; + height: 22px; + margin-top: 6px; + background: url(./images/old/filter/clearFilter_notSelected.png) no-repeat; +} +div.mainPanels div.gridComponent div.header form.search div.clearSearchButton:hover { + background: url(./images/old/filter/clearFilter_selected.png) no-repeat; + cursor: pointer; +} +div.mainPanels div.gridComponent div.header form.search div.search { + display: block; + float: left; + width: 217px; +} +div.mainPanels div.gridComponent div.header form.search input.search { + border: 1px solid #76786a; + color: #666666; + font-size: 12pt; + width: 100%; + padding: 4px; + padding-left: 24px; + padding-right: 26px; + background: #e8ecde url(./images/old/main/grid/search.png) no-repeat 2px 4px; +} +div.mainPanels div.gridComponent div.header form.search input.search.disabled { + disabled: disabled; +} +div.mainPanels div.gridComponent div.header form.search input.search.running { + background: #e8ecde url(./images/old/main/grid/running_search.gif) no-repeat 4px 5px; +} +div.mainPanels div.gridComponent div.body { + clear: both; + background: url(./images/old/main/blocks/cardGridBackground.png) repeat-y -836px; +} +div.mainPanels div.gridComponent div.footer { + background: url(./images/old/main/blocks/cardGridBackground.png) 834px -28px; + height: 35px; +} +div.mainPanels div.gridComponent div.body h1 { + margin: 0px; +} +div.mainPanels div.gridComponent div.body div.rows { + margin-left: 9px; + margin-right: 6px; + min-height: 582px; + background: url(./images/old/main/blocks/cardGridStripes.png) 0 7px; +} +div.mainPanels div.gridComponent.noRows div.body table.rows thead, +div.mainPanels div.gridComponent.empty div.body table.rows thead { + visibility: hidden; +} +div.mainPanels div.gridComponent.empty div.body div.rows { + background: #eaebe6 url(./images/old/lock/background_star.png) no-repeat center center; +} +div.mainPanels div.gridComponent.noRows div.body div.rows { + background: #eaebe6; +} +div.mainPanels div.gridComponent div.body table.rows { + display: block; + width: 100%; +} +div.mainPanels div.gridComponent div.body table.rows tbody tr.odd.selected { + background-color: #a5a696; +} +div.mainPanels div.gridComponent div.body table.rows tbody tr.even.selected { + background-color: #a5a696; +} +div.mainPanels div.gridComponent div.body table.rows tbody tr.selected td a { + color: #f3f4eb; +} +div.mainPanels div.gridComponent div.body table.rows tbody tr.odd { + background-color: #d4d5cf; +} +div.mainPanels div.gridComponent div.body table.rows tbody tr.even { + background-color: #eaebe6; +} +div.mainPanels div.gridComponent div.body table.rows tbody tr.odd:hover { + background-color: #a5a696; +} +div.mainPanels div.gridComponent div.body table.rows tbody tr.even:hover { + background-color: #a5a696; +} +div.mainPanels div.gridComponent div.body table.rows tbody tr td { + height: 23px; + max-height: 23px; + /* + white-space: nowrap; + overflow: hidden; +*/ + +} +div.mainPanels div.gridComponent div.body table.rows tbody tr td span { + color: #828479; + font-size: 10pt; +} +div.mainPanels div.gridComponent div.body table.rows tbody tr td a { + color: #828479; + font-size: 10pt; + text-decoration: none; +} +div.mainPanels div.gridComponent div.body table.rows tbody tr:hover td span { + color: #f3f4eb; +} +div.mainPanels div.gridComponent div.body table.rows tbody tr.selected td span { + color: #f3f4eb; +} +div.mainPanels div.gridComponent div.body table.rows tbody tr:hover td a { + color: #f3f4eb; +} +div.mainPanels div.gridComponent div.body table.rows tbody tr td.title a { + font-weight: bold; +} +div.mainPanels div.gridComponent div.body table.rows tbody tr td img.favicon { + float: right; + padding-right: 6px; +} +/* @group header */ +div.gridComponent table.rows thead img { + padding-left: 10px; + vertical-align: middle; +} +div.gridComponent table.rows thead tr th { + background-color: #eaebe6; + border-bottom: 1px solid #b3b4af; +} +div.gridComponent table.rows thead span { + color: #8c8f7e; +} +div.gridComponent table.rows thead tr th.unsorted span.sortable a { + background-image: url(./images/old/main/grid/unsorted.png); +} +div.gridComponent table.rows thead tr th.descending span.sortable a { + background-image: url(./images/old/main/grid/descending.png); +} +div.gridComponent table.rows thead tr th.ascending span.sortable a { + background-image: url(./images/old/main/grid/ascending.png); +} +div.gridComponent table.rows thead tr th.faviconTH { + width: 53px; +} +div.gridComponent table.rows thead tr th.titleTH { + width: 200px; + max-width: 200px; +} +div.gridComponent table.rows thead tr th.deleteTH { + width: 50px; +} +/* @end */ +/* @end */ +/* @group Direct login Grid */ +/* +div.mainPanels div.directLoginGrid div.header { +/* + height: 90px; + background: url(./images/old/main/blocks/cardGridBackground.png) no-repeat; +* / +} + +div.mainPanels div.directLoginGrid div.header form.search { + background: url(./images/old/main/blocks/directLoginGridBackground.png) no-repeat; + padding-left: 40px; + padding-top: 20px; + padding-bottom: 10px; + margin: 0px; +} + +div.mainPanels div.directLoginGrid div.header form.search input.search { + border: 1px solid #76786a; + color: #666666; + font-size: 12pt; + padding: 4px; + background-color: #e8ecde; +} + +div.mainPanels div.directLoginGrid div.header form.search input.searchButton { + background-color: #858877; + border: 0px; + color: white; + font-size: 10pt; +} + +div.mainPanels div.directLoginGrid div.body { + background: url(./images/old/main/blocks/directLoginGridBackground.png) repeat-y -836px; +} + +div.mainPanels div.directLoginGrid div.footer { + background: url(./images/old/main/blocks/directLoginGridBackground.png) 834px -28px; + height: 35px; +} + +div.mainPanels div.directLoginGrid div.body h1 { + margin: 0px; +} + +div.mainPanels div.directLoginGrid div.body div.rows { + margin-left: 9px; + margin-right: 6px; + min-height: 582px; + background: url(./images/old/main/blocks/directLoginGridStripes.png) 0 7px; +} + +div.mainPanels div.directLoginGrid div.body table.rows { + display: block; + width: 100%; +} + +div.mainPanels div.directLoginGrid div.body table.rows img { + border: 0px; +} + +div.mainPanels div.directLoginGrid div.body table.rows tbody tr.even { + background-color: #787666; +} + +div.mainPanels div.directLoginGrid div.body table.rows tbody tr.odd { + background-color: #646351; +} + +div.mainPanels div.directLoginGrid div.body table.rows tbody tr.odd:hover { + background-color: #d1d4c6; +} + +div.mainPanels div.directLoginGrid div.body table.rows tbody tr.even:hover { + background-color: #d1d4c6; +} + +div.mainPanels div.directLoginGrid div.body table.rows tbody tr td { + height: 23px; + color: #e1e0d6; + font-size: 10pt; +} + +div.mainPanels div.directLoginGrid div.body table.rows tbody tr:hover td { + color: #777867; +} + +div.mainPanels div.directLoginGrid div.body table.rows tbody tr td.title { + font-weight: bold; +} + +div.directLoginGrid div.body table.rows tbody tr a { + color: #e1e0d6; + text-decoration: none; +} + +div.directLoginGrid div.body table.rows tbody tr:hover a { + color: #777867; +} +*/ +/* @group DirectLogin links */ +/* +td.card_directLogins div { + display: inline-table; +} + +td.card_directLogins span { + display: inline-table; +} +*/ +div.directLogin_directLogin { + display: inline-block; + height: 19px; + padding-left: 7px; +} +div.directLogin_directLogin div.directLogin_directLogin_body { + display: inline-block; + height: 19px; + padding-right: 8px; + background-position: left; +} +div.directLogin_directLogin div.directLogin_directLogin_body a { + vertical-align: -14px; +} +div.directLogin_directLogin:hover { + background: url(./images/old/directLink_background_left.png) no-repeat 0 0; +} +div.directLogin_directLogin:hover div.directLogin_directLogin_body { + background: url(./images/old/directLink_background.png) right 0; +} +table.rows tbody tr td div.directLogin_directLogin:hover div.directLogin_directLogin_body a { + color: #f3f4eb; +} +/* @end */ +/* @group header */ +div.directLoginGrid table.rows thead span { + color: #e1e0d6; +} +div.directLoginGrid table.rows thead tr th { + background-color: #787762; + border-bottom: 1px solid #999883; +} +div.directLoginGrid table.rows thead tr th.faviconTH { + min-width: 53px; + width: 53px; +} +div.directLoginGrid table.rows thead tr th.titleTH { + min-width: 250px; + width: 250px; +} +div.directLoginGrid table.rows thead tr th.titleTH span { + margin-left: 7px; +} +div.directLoginGrid table.rows thead tr th.strengthTH { + width: 100px; +} +div.directLoginGrid table.rows thead tr th.cardTitleTH { + width: 400px; +} +div.directLoginGrid table.rows thead tr th.bookmarkableLinkTH { + width: 64px; +} +div.directLoginGrid table.rows thead tr th.deleteTH { + width: 50px; +} +div.directLoginGrid table.rows thead tr th.latestAccessTH { + width: 100px; +} +div.directLoginGrid table.rows thead tr th.commandsTH { + width: 100px; +} +/* +div.directLoginGrid table.rows thead a { + font-weight: normal; + text-decoration: none; + color: #e9e9df; + font-size: 9pt; + line-height: 20px; +} +*/ +div.directLoginGrid table.rows thead img { + padding-left: 10px; + vertical-align: middle; +} +div.directLoginGrid table.rows thead tr th.unsorted span.sortable a { + background: url(./images/old/main/grid/directLogins/unsorted.png) no-repeat; +} +div.directLoginGrid table.rows thead tr th.descending span.sortable a { + background: url(./images/old/main/grid/directLogins/descending.png) no-repeat; +} +div.directLoginGrid table.rows thead tr th.ascending span.sortable a { + background: url(./images/old/main/grid/directLogins/ascending.png) no-repeat; +} +/* @end */ +/* @end */ +/* @end */ +/* @end */ +/* @group other Panels */ +/* @group common styles */ +/* +div.subPanelTabs ul { + margin: 0px; + margin-right: 7px; + padding: 0px; +} +div.subPanelTabs ul li { + display: inline-block; + vertical-align: middle; + /* width: 130px; * / + + height: 50px; + /* border-right: 1px solid #a5a79c; + border-bottom: 1px solid #a5a79c;* / + + border-right: 1px solid #eef0e3; + border-bottom: 1px solid #d5d5bc; +} +div.subPanelTabs ul li.first:hover { + /* background: url(./images/old/main/blocks/otherPanelBackground_selected.png) no-repeat -9px -5px; * / + +} +div.subPanelTabs ul li:hover { + /* background: url(./images/old/main/blocks/otherPanelBackground_selected.png) no-repeat -45px -5px; * / + + border-right: 1px solid #d5d5bc; + background-color: #eef0e3; +} +div.subPanelTabs ul li a { + color: #787872; + text-decoration: none; + display: block; + text-align: center; + padding-top: 15px; + padding-left: 20px; + padding-right: 20px; + font-size: 13pt; +} +div.subPanelTabs ul li.first { + /* background: url(./images/old/main/blocks/otherPanelBackground_selected.png) no-repeat -9px -5px; * / + + -webkit-border-top-left-radius: 20px; + -moz-border-radius-topleft: 20px; + border-top-left-radius: 20px; +} +div.subPanelTabs ul li.selected { + /* background: url(./images/old/main/blocks/otherPanelBackground_selected.png) no-repeat -45px -5px; * / + + background-color: #eef0e3; + border-bottom: 1px solid #eef0e3; + border-right: 1px solid #d5d5bc; +} +div.subPanelTabs ul li.selected:hover { + border-right: 1px solid #d5d5bc; +} +div.subPanelTabs ul li.selected a { + color: #444440; +} +div.subPanelContent { + padding-top: 20px; + padding-left: 30px; + padding-right: 30px; + min-height: 280px; + color: #787872; + margin: 0px 6px 0 9px; +} +div.subPanelContent ul { + margin: 0px; + padding: 0px; + list-style-type: none; +} +div.subPanelContent ul li.selected { + display: block; +} +div.subPanelContent ul li { + display: none; +} +div.subPanelContent h3 { + margin: 0px; + border: 0px; + padding: 0px; +} +*/ +/* @end */ +/* @group mainPanels otherPanel */ +div.mainPanels div.otherPanel { + margin: 5px 10px; + background-color: #eef0e3; + -webkit-border-radius: 20px; + -moz-border-radius: 20px; + border-radius: 20px; + -webkit-box-shadow: 2px 2px 9px rgba(0, 0, 0, 0.6); + -moz-box-shadow: 2px 2px 9px rgba(0, 0, 0, 0.6); + box-shadow: 2px 2px 9px rgba(0, 0, 0, 0.6); +} +div.mainPanels div.otherPanel div.header { + /* background: url(./images/old/main/blocks/otherPanelBackground.png) no-repeat; */ + + /* + height: 90px; +*/ + + background-color: #d5d5bc; + /* padding-left: 9px; + padding-top: 5px; */ + + margin: 0px; + margin-bottom: 0px; + -webkit-border-top-left-radius: 20px; + -webkit-border-top-right-radius: 20px; + -moz-border-radius-topleft: 20px; + -moz-border-radius-topright: 20px; + border-top-left-radius: 20px; + border-top-right-radius: 20px; +} +div.mainPanels div.otherPanel div.body { + /* background: url(./images/old/main/blocks/otherPanelBackground.png) repeat-y -836px; */ + + margin: 0px; + border: 0px; + padding: 0px; +} +div.mainPanels div.otherPanel div.footer { + /* background: url(./images/old/main/blocks/otherPanelBackground.png) 834px -18px; */ + + height: 45px; +} +div.mainPanels div.otherPanel div.body h1 { + margin: 0px; +} +/* @end */ +/* @group Account */ +form.changePassphrase div.currentCredentials, +form.changePassphrase div.newPassphrase { + float: left; + padding: 10px 20px; +} +form.changePassphrase label { + display: inline-block; + width: 150px; +} +form.changePassphrase div.confirm { + clear: both; + padding: 10px 20px; +} +form.changePassphrase div.confirm label { + width: 500px; +} +div.accountPanel h3.manageOTP { + margin-top: 20px; + margin-left: -20px; + padding-top: 10px; + padding-left: 20px; + border-top: 1px solid #aaaaaa; +} +/* @end */ +/* @end */ +/* @group Message Panel (?) */ +/* +div.messagePanelWrapper div.mask { + position: fixed; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; + + background-color: black; + z-index:50001; + + -moz-opacity: 0.0; + opacity:.0; + filter: alpha(opacity=0); +/ * + -moz-opacity: 0.7; + opacity:.70; + filter: alpha(opacity=70); +* / +} + +div.messagePanelFrame { + border: 1px solid white; + z-index:50002; +/ * + width: 443px; + height: 155px; + position: fixed; + top: 205px; + left: 260px; + margin-left: auto; + margin-right: auto; + max-width: 468px; +* / +} + + +div.messagePanel { + position: fixed; + z-index:50003; + top: 0px; + left: 0px; +/ * + margin-left: auto; + margin-right: auto; + max-width: 468px; + top: 200px; + left: 250px; + left: 100px; + right: 100px; +* / +} + +div.messagePanel div.header { + height: 34px; + width: 468; + background-image: url(./images/old/alert/header.png); +} + +div.messagePanel div.body { + background-image: url(./images/old/alert/body.png); + padding: 0px 20px 10px 20px; + min-height: 100px; +} +/ * +div#javaScriptAlert div.body div.alert { + padding-left: 100px; + background: url(./images/old/alert/alert.png) no-repeat; +} +* / + +div.messagePanel div.body img.alert { + float: left; +} + +div.messagePanel div.body div.alert { + padding-left: 100px; +} + +div.messagePanel div.footer { + height: 34px; + width: 468; + background-image: url(./images/old/alert/footer.png); +} + +div.messagePanel div.message h1 { + font-size: 16pt; + margin: 0px; + color: #ff5930; +} + +div.messagePanel div.message p { + margin-top: 0px; + color: #999999; +} + +div.messagePanel div.message h3 { + font-size: 12pt; + margin-bottom: 0px; + color: #ff5930; +} + +div.messagePanel div.message h5 { + margin: 0px; + color: #999999; +} + + +*/ +/* @end */ +/* @group LoginProgress (?) */ +/* +div#loginProgress { + position: relative; + left: -198px; + top: -118px; + width: 397px; + height: 236px; + background: url(./images/old/loginProgress/background.png); +} + +div#loginProgress div.header { + height: 52px; +} + +div#loginProgress div.header h3 { + font-size: 12pt; + font-weight: normal; + margin: 0px; + color: #787872; + padding-top: 25px; + padding-left: 35px; +} + +div#loginProgress div.body { + height: 120px; + overflow: auto; + margin-left: 19px; + margin-right: 18px; +} + +div#loginProgress div.footer { + margin-left: 19px; + margin-right: 18px; +} + +div#loginProgress div.footer a { + font-weight: bold; + text-decoration: none; + text-align: center; + color: #787872; + display: block; + font-size: 11pt; + width: 100px; + margin-top: 13px; + margin-left: auto; + margin-right: auto; +} + +div#loginProgress div.footer a:hover { + color: #515247; +} + +*/ +/* @end */ +div#modalDialogMask, +div.modalDialogMask { + z-index: 20000; + /* position: absolute; */ + + position: fixed; + top: 0; + left: 0; + -moz-opacity: 0.5; + opacity: .50; + filter: alpha(opacity=50); + /* background-color: #cccccc; */ + + background-color: #000000; + width: 100%; + height: 100%; + zoom: 1; +} +div#modalDialogFrame, +div.modalDialogFrame { + position: absolute; + /* border: 1px solid white; */ + + -moz-opacity: 0.5; + opacity: .50; + filter: alpha(opacity=50); + background-color: #333333; + z-index: 20001; + -webkit-border-radius: 20px; + -moz-border-radius: 20px; + border-radius: 20px; +} +div#modalDialog, +div.modalDialog { + z-index: 20001; +} +/*div#modalDialog.scrollable,*/ +div.modalDialog.scrollable { + position: absolute; + top: 0; + left: 50%; +} +/*div#modalDialog.fixed,*/ +div.modalDialog.fixed { + position: fixed; + top: 40%; + left: 50%; +} +div#modalDialog div, +div.modalDialog div { + z-index: 20002; + list-style-type: circle; +} +div.modalDialogMask.simpleMessagePanelMask { + z-index: 20010; +} +div.modalDialogFrame.simpleMessagePanelMask { + z-index: 20011; +} +div.modalDialog.simpleMessagePanelMask { + z-index: 20011; +} +div.modalDialog.simpleMessagePanelMask div { + z-index: 20012; +} +/* @group Bookmarklet */ +div.bookmarklet div.bookmarklet_link { + /* + padding-top: 5px; + padding-left: 4px; + padding-right: 3px; + + float: right; + margin-top: 12px; + margin-right: 13px; +*/ + + height: 34px; +} +div.bookmarklet div.bookmarklet_link a { + color: #838975; + text-decoration: none; + font-weight: bold; + font-size: 10pt; + /* + display: block; + text-align: right; + padding-top: 7px; + padding-right: 11px; + padding-bottom: 6px; +*/ + +} +div.bookmarklet div.bookmarklet_link a div.icon { + background: url(./images/old/bookmarklet/placeholder_icon.png) no-repeat 0 0; + float: left; + width: 34px; + height: 34px; +} +div.bookmarklet div.bookmarklet_link a:hover div.icon { + background: url(./images/old/bookmarklet/placeholder_selected_icon.png) no-repeat 0 0; +} +div.bookmarklet div.bookmarklet_link a div.text { + display: block; + float: right; + background: url(./images/old/bookmarklet/placeholder.png) no-repeat right 0; + white-space: nowrap; + height: 34px; +} +div.bookmarklet div.bookmarklet_link a:hover div.text { + background: url(./images/old/bookmarklet/placeholder_selected.png) no-repeat right 0; +} +div.bookmarklet div.bookmarklet_link a div.text span { + display: block; + padding-top: 10px; + padding-right: 10px; + padding-left: 6px; + clear: both; +} +/* @end */ +/* @group Tooltip */ +/* +div#Clipperz_PM_UI_Common_Components_Tooltip_wrapperNode { + position: absolute; + top: 0px; + left: 0px; +} +*/ +/* @end */ +/* @group News */ +/* +div#news { + top: 11px; + left: 240px; + width: 353px; + height: 85px; + padding-top: 4px; + position: absolute; + overflow: hidden; + background: url(./images/old/note.png) 1px 3px; +} + +div#news.hidden { + display: none; +} + +div#news div.close { + display: inline; + margin-top: 6px; + margin-left: 17px; + float: left; + width: 15px; +} + +div#news div.close a { + text-decoration: none; + color: #929c1b; +} + +div#news div.close a:hover { + text-decoration: none; + color: #3d420b; +} + +div#news div#newsframe { + display: block; + overflow: hidden; + width: 305px; + height: 70px; +} + +div#news div#newsframe iframe { + border: 0px; +} +*/ +/* --------------------------------------- */ +div#news { + top: -82px; + left: 240px; + width: 310px; + height: 90px; + position: absolute; + /* background: url(./images/old/tips/Tips_background.png) 0 -5px; */ + + background-color: #616474; + -webkit-border-bottom-right-radius: 8px; + -webkit-border-bottom-left-radius: 8px; + -moz-border-radius-bottomright: 8px; + -moz-border-radius-bottomleft: 8px; + border-bottom-right-radius: 8px; + border-bottom-left-radius: 8px; + -webkit-box-shadow: 2px 2px 9px rgba(0, 0, 0, 0.6); + -moz-box-shadow: 2px 2px 9px rgba(0, 0, 0, 0.6); + box-shadow: 2px 2px 9px rgba(0, 0, 0, 0.6); +} +/* +div#news.open { + background: url(./images/old/tips/Tips_open.png) 0 -5px; +} + +div#news.hidden { + background: url(./images/old/tips/Tips_close.png) 0 -5px; +} +*/ +/* +div#news div#newsframe { + margin-left: 10px; + margin-right: 10px; + height: 75px; + overflow: hidden; +} +div#news div#newsframe.loading { + background: url(./images/old/loading/news.gif) no-repeat center center; +} +div#news div#newsframe iframe { + width: 290px; + border: 0px; + color: #616474; + background-color: #616474; +} +div#news div.grip { + width: 310px; + height: 12px; + margin-top: 2px; + cursor: pointer; +} +div#news.open div.grip { + background: url(./images/old/tips/close.png) no-repeat center 6px; +} +div#news.hidden div.grip { + background: url(./images/old/tips/open.png) no-repeat center 6px; +} +*/ +/* @end */ +/* @group mainDialog */ +div.mainDialog { + position: relative; + left: -263px; + width: 525px; + height: 325px; +} +div.scrollable div.mainDialog { + top: 0px; +} +div.fixed div.mainDialog { + top: -118px; +} +div.mainDialog div.header { + height: 55px; + background: url(./images/old/cardDialog/background_header.png) no-repeat; +} +div.mainDialog div.header div.title { + padding-top: 16px; + padding-left: 20px; + padding-right: 20px; +} +div.mainDialog div.header div.title input { + width: 100%; + display: block; + font-size: 16pt; + margin: 0px; + border: 0px; + padding: 3px 10px; + color: #787872; + border: 1px solid #cccec0; + background-color: #cccec0; +} +div.mainDialog div.header div.title h3 { + display: block; + font-size: 16pt; + color: #787872; + margin: 0px; + border: 0px; + padding: 3px 10px; +} +div.mainDialog div.header div.title.selectedField input, +div.mainDialog div.header div.title:hover input { + border: 1px solid #515247; + background-color: #b5b7ab; +} +div.mainDialog div.header div.title.disabled:hover input { + border: 1px solid #cccec0; + background-color: #cccec0; +} +div.mainDialog div.body { + padding-top: 0px; + padding-left: 10px; + padding-right: 9px; + min-height: 200px; + background: url(./images/old/cardDialog/background_body.png) repeat-y; +} +div.mainDialog div.body div.mask { + display: none; +} +div.mainDialog.loading div.body div.mask { + display: block; + position: absolute; + top: 55px; + left: 10px; + right: 9px; + bottom: 70px; + z-index: 1001; + background-color: white; + padding-left: 146px; + padding-right: 146px; + padding-top: 70px; +} +div.mainDialog.loading div.body .tabPanels { + display: none; +} +div.mainDialog.loading div.body div.mask h3.progressDescription { + margin: 0px; + text-align: center; + padding-bottom: 10px; + color: #cccec0; + font-size: 14pt; + font-weight: normal; +} +div.loadingBar { + height: 22px; + width: 214px; + background: url(./images/old/loading/loadingBar.gif) no-repeat center top; +} +div.loadingBar div.loadingBarProgressBox { + padding: 2px; +} +div.loadingBar div.loadingBarProgress { + height: 18px; + width: 0%; + /* background-repeat: no-repeat; */ + + background-color: rgba(248, 79, 0, 0.6); + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} +/* +div.loadingBar div.loadingBarProgress div.loadingBarProgress_left { + height: 100%; + max-width: 8px; + background: url(./images/old/loading/loadingBarProgress.png) no-repeat 0; +} + +div.loadingBar div.loadingBarProgress div.loadingBarProgress_right { + position: relative; + height: 100%; + margin-left: 8px; + background: url(./images/old/loading/loadingBarProgress.png) no-repeat right; + top: -22px; +} +*/ +div.mainDialog div.body div ul { + padding: 0px; + clear: both; + margin: 0px; + list-style-type: none; +} +div.mainDialog div.body div.tabs { + height: 20px; +} +div.mainDialog div.body div.tabs ul.tabs { + height: 33px; + /* border-bottom: 1px solid #515247;*/ + + /* background: #cccec0 url(./images/old/cardDialog/tabs_shadow.png) repeat-x 0 -5px;*/ + + background: url(./images/old/cardDialog/tabs_background.png) repeat-x; +} +div.mainDialog div.body div.tabs ul.tabs li { + /* width: 150px; */ + + height: 32px; + font-size: 11pt; + text-align: center; + border-right: 1px solid #515247; + float: left; + color: #787872; + border-bottom: 1px solid #515247; + background: #cccec0 url(./images/old/cardDialog/tabs_shadow.png) repeat-x 0 -5px; + cursor: pointer; +} +div.mainDialog div.body div.tabs ul.tabs li div { + display: none; +} +div.mainDialog div.body div.tabs ul.tabs li span { + display: block; + padding-top: 9px; + padding-bottom: 6px; + padding-left: 40px; + padding-right: 40px; +} +div.mainDialog div.body div.tabs ul.tabs li:hover { + color: #515247; +} +div.mainDialog div.body div.tabs ul.tabs li.disabled:hover { + color: #787872; + cursor: default; +} +div.mainDialog div.body div.tabs ul.tabs li.selected { + color: #515247; + background-color: #f1f2e9; + border-bottom: 1px solid #f1f2e9; + cursor: default; +} +div.mainDialog div.body div.tabs ul.tabs li.selected.disabled:hover { + color: #515247; +} +div.mainDialog div.body div.tabs ul.tabs li.selected div.backToDirectLoginList { + position: absolute; + display: block; + top: 63px; + left: 140; + width: 20px; +} +div.mainDialog div.body div.tabs ul.tabs li.selected div.addDirectLoginButton { + position: absolute; + display: block; + top: 63px; + left: 265px; + width: 20px; +} +div.mainDialog div.body div.tabs ul.tabs li.selected div span { + padding: 0px; + margin: 0px; +} +div.mainDialog div.body div.tabs ul.tabs li.selected div:hover { + cursor: pointer; +} +div.mainDialog div.body .tabPanels { + clear: both; +} +div.mainDialog div.body ul.tabPanels li.tabPanel { + display: none; +} +div.mainDialog div.body ul.tabPanels li.tabPanel.selected { + display: block; +} +div.mainDialog div.body ul.tabPanels li.tabPanel.selected h2 { + margin: 0px; + text-align: center; + padding-top: 50px; + color: #787872; +} +div.mainDialog div.body ul.tabPanels li.tabPanel.selected div.wizardStepDescription { + margin: 0px 20px 10px; + font-size: 10pt; + color: b0b0b0; + font-style: italic; + text-align: center; +} +div.mainDialog div.footer { + height: 70px; + background: url(./images/old/cardDialog/background_footer.png) no-repeat 0 -14px; +} +div.mainDialog div.footer div.buttonArea { + padding-left: 40px; + padding-right: 40px; + padding-top: 15px; +} +div.mainDialog div.footer div.buttonArea div { + padding-left: 20px; + padding-right: 20px; + float: left; + font-weight: bold; + color: #787872; +} +div.mainDialog div.footer div.buttonArea div.disabled { + color: #b1b1a8; +} +div.mainDialog div.footer div.buttonArea div.disabled:hover { + color: #b1b1a8; + cursor: default; +} +div.mainDialog div.footer div.buttonArea div:hover { + color: #515247; + cursor: pointer; +} +div.mainDialog div.footer div.buttonArea div.save { + float: right; +} +/* @end */ +/* @group Card Dialog */ +div.addDirectLoginButton { + height: 20px; + width: 20px ; + background: url(./images/old/cardDialog/addDirectLogin_disabled_background.png) no-repeat -9px -9px; + color: white; + font-weight: bold; +} +div.addDirectLoginButton span { + display: block; + height: 20px; + width: 20px ; +} +div.addDirectLoginButton:hover { + background: url(./images/old/cardDialog/addDirectLogin_background.png) no-repeat -9px -9px; +} +/* @group Card Dialog - Direct Login */ +div.directLoginsComponentContainer { + overflow: hidden; + /* background-color: green; */ + +} +div.CardDialog div.directLogins { + /* background-color: yellow; */ + + padding-top: 2px; +} +div.CardDialog div.addNewDirectLoginSplash { + margin: 0px 80px; +} +div.CardDialog div.addNewDirectLoginSplash h3 { + color: #aaaaaa; + text-align: center; + font-weight: normal; + font-size: 11pt; +} +div.CardDialog div.addNewDirectLoginSplash a { + display: block; + text-decoration: none; + margin-left: auto; + margin-right: auto; + width: 190px; + /* color: #787878; */ + + color: rgba(255, 98, 6, 0.75); + text-transform: uppercase; + background: url(./images/old/cardDialog/addDirectLogin_disabled_background.png) no-repeat right; +} +div.CardDialog div.addNewDirectLoginSplash a span { + text-align: center; +} +div.CardDialog div.addNewDirectLoginSplash a:hover { + color: #ff6206; + background: url(./images/old/cardDialog/addDirectLogin_background.png) no-repeat right; +} +div.CardDialog div.directLoginItem { + clear: both; + min-height: 32px; + padding-left: 10px; + padding-top: 4px; + padding-bottom: 2px; + /* width: 100px; */ + + max-height: 32px; + overflow: hidden; +} +div.CardDialog div.directLoginItem:hover { + background-color: #cccec0; +} +div.CardDialog div.addDirectLoginListItem { + min-height: 32px; + padding-left: 10px; + padding-top: 4px; + padding-bottom: 2px; + max-height: 32px; + overflow: hidden; + background: url(./images/old/cardDialog/addDirectLogin_disabled_background.png) no-repeat 22px 0; +} +div.CardDialog div.addDirectLoginListItem a { + display: block; + font-size: 11pt; + padding-top: 6px; + padding-left: 50px; + color: rgba(255, 98, 6, 0.75); + text-decoration: none; + text-transform: uppercase; +} +div.CardDialog div.addDirectLoginListItem:hover { + background: url(./images/old/cardDialog/addDirectLogin_background.png) no-repeat 22px 0; + color: #ff6206; + background-color: #cccec0; +} +div.CardDialog div.directLoginItem div.cardDialogRecordDirectLoginComponent_favicon img.favicon { + width: 32px; + height: 32px; + float: left; +} +div.CardDialog div.directLoginItem div.cardDialogRecordDirectLoginComponent_label input { + float: left; + font-size: 11pt; + border: 0px; + padding: 5px; + color: #787872; + border: 1px solid #ededeb; + background-color: #ededeb; + height: 30px; + margin-left: 10px; + width: 68%; + margin-right: 5px; +} +div.CardDialog div.directLoginItem:hover div.cardDialogRecordDirectLoginComponent_label input { + border: 1px solid #515247; + background-color: #b5b7ab; +} +div.CardDialog div.directLoginItem > div.open { + float: left; + margin-top: 5px; + margin-right: 2px; + padding-left: 5px; + visibility: hidden; +} +div.CardDialog div.directLoginItem > div.edit, +div.CardDialog div.directLoginItem > div.delete { + float: left; + margin-top: 5px; + margin-left: 3px; + padding-left: 5px; + visibility: hidden; +} +div.CardDialog div.directLoginItem > div.open a { + display: block; + width: 22px; + height: 22px; + background: url(./images/old/cardDialog/openDirectLogin.png) no-repeat 0 -2px; +} +div.CardDialog div.directLoginItem > div.open a:hover { + background: url(./images/old/cardDialog/openDirectLogin_selected.png) no-repeat 0 -2px; +} +div.CardDialog div.directLoginItem:hover > div.open, +div.CardDialog div.directLoginItem:hover > div.edit, +div.CardDialog div.directLoginItem:hover > div.delete { + visibility: visible; +} +div.CardDialog div.directLoginItem div.edit span { + padding-right: 6px; + display: block; +} +div.CardDialog div.directLoginItem div.open span a, +div.CardDialog div.directLoginItem div.edit span a, +div.CardDialog div.directLoginItem div.delete span a { + font-size: 8pt; + color: #666666; + text-decoration: none; + line-height: 19px; +} +div.CardDialog div.directLoginItem div.edit:hover { + background: url(./images/old/new_background_left.png) no-repeat; +} +div.CardDialog div.directLoginItem div:hover span a { + color: white; +} +div.CardDialog div.directLoginItem div.edit:hover span { + background: url(./images/old/new_background.png) no-repeat right center; +} +div.CardDialog div.directLoginItem div.delete:hover { + background: url(./images/old/delete_background_left.png) no-repeat; +} +div.CardDialog div.directLoginItem div.delete:hover span { + background: url(./images/old/delete_background.png) right; +} +/* @group Direct Login Editing */ +div.CardDialog div.directLoginEditDetail { + position: relative; + /* background-color: red; */ + +} +/* +div.CardDialog div.directLoginEditDetail div.back { + float: left; + width: 30px; +} + +div.CardDialog div.directLoginEditDetail div.back a { + display: block; + padding: 5px; + text-decoration: none; + font-weight: bold; + font-size: 14pt; + color: #cccec0; + + background: url(./images/old/cardDialog/back.png) no-repeat 5px 14px; + width: 20px; + height: 200px; +} + +div.CardDialog div.directLoginEditDetail div.back a:hover { + color: #7f7872; + background: url(./images/old/cardDialog/back_selected.png) no-repeat 5px 14px; +} +*/ +form.directLoginEditingForm div.title, +form.directLoginEditingForm div.favicon { + padding: 5px 10px; +} +form.directLoginEditingForm div.title.disabled:hover { + background-color: #f1f2e9; +} +form.directLoginEditingForm div.title:hover, +form.directLoginEditingForm div.favicon:hover { + background-color: #cccec0; +} +form.directLoginEditingForm div.title input { + /* width: 100%; */ + + margin: 0px; + margin-left: 10px; + width: 440px; +} +form.directLoginEditingForm div.favicon { + padding-left: 10px; +} +/*form.directLoginEditingForm div.favicon img.favicon {*/ +form.directLoginEditingForm img.favicon { + float: left; + width: 32px; + height: 32px; +} +form.directLoginEditingForm div.favicon input { + margin-top: 1px; + width: 465px; +} +form.directLoginEditingForm div.disabled:hover input, +form.directLoginEditingForm div input { + font-size: 11pt; + border: 0px; + padding: 5px; + color: #787872; + border: 1px solid #ededeb; + background-color: #ededeb; + height: 30px; +} +form.directLoginEditingForm div:hover input { + border: 1px solid #515247; + background-color: #b5b7ab; +} +/* @group Bindings */ +div.bindings div.binding > span.formFieldName { + display: inline-block; + width: 140px; + overflow: hidden; + margin-right: 10px; + color: #6b5147; + text-overflow: ellipsis; +} +div.bindings div.binding { + padding-bottom: 3px; +} +div.bindings div.binding > input { + margin-right: 10px; + background: #cccec0; + width: 150px; + border: 1px solid #cccec0; +} +div.bindings div.binding:hover > input { + border: 1px solid #cccec0; +} +div.bindings div.binding > select { + font-size: 13pt; +} +div.bindings div.binding span.fieldLock { + display: inline-block; + width: 20px; + height: 20px; + margin-right: 3px; +} +div.bindings div.binding.showLocked input { + background: url(./images/old/cardDialog/password_background.png) no-repeat 2px 3px; + /* color: black; */ + + overflow: hidden; + background: #cccec0 url(./images/old/cardDialog/password_background.png) no-repeat 2px 3px; + color: rgba(237, 237, 235, 0.1); +} +div.bindings div.binding span.fieldLock a { + display: none; +} +div.bindings div.binding.locked span.fieldLock a { + display: block; + width: 20px; + height: 20px; + text-decoration: none; + background-image: url(./images/old/cardDialog/lock_open.png); +} +div.bindings div.binding.locked.showLocked span.fieldLock a { + background-image: url(./images/old/cardDialog/lock_closed.png); + text-decoration: none; +} +/* @end */ +/* @group FormValues */ +div.formValues { + padding-top: 15px; +} +div.formValues div.formValue div { + margin: 0px; + display: inline-block; +} +div.formValues div.formValue > span.formFieldName { + display: inline-table; + width: 160px; + overflow: hidden; + margin-right: 10px; + color: #6b5147; +} +/* @end */ +/* @group FormValues */ +/* +div.formValues { + padding-top: 15px; +} + +div.formValues div.formValue > span.formFieldName { + display: inline-table; + width: 150px; + overflow: hidden; + margin-right: 35px; + color: #6b5147; +} + +div.formValues div.formValue > select { + padding-left: 20px; +} +*/ +/* @end */ +/* @group Panels */ +div.directLoginEditing { + padding-top: 2px; +} +div.directLoginEditing div.tabContainer { + min-height: 150px; + height: 200px; +} +div.directLoginEditing div.tabContainer > ul.tabs { + display: none; +} +/* +div.directLoginEditing li.configuration, +div.directLoginEditing li.bindings, +div.directLoginEditing li.favicon { + padding: 10px; +} +*/ +div.directLoginEditing li { + padding: 10px; +} +div.directLoginEditing li.configuration > .bookmarkletConfigurationWrapper > textarea { + float: left; + width: 320px; + height: 125px; + font-family: monospace; + font-weight: normal; + font-size: 8pt; + border: 1px solid #ccc; +} +div.directLoginEditing li.configuration > .bookmarkletConfigurationWrapper .bookmarkletComponent { + float: right; +} +div.directLoginEditing li.configuration > textarea.error { + border: 1px solid red; + background-color: rgba(255, 0, 0, 0.1); +} +/* +div.directLoginEditing > form.directLoginEditingForm > div.tabContainer { + padding-top: 10px; +} + +div.directLoginEditing > form.directLoginEditingForm > div.tabContainer > ul.tabs > li { + float: left; + padding-left: 10px; + padding-right: 10px; + display: block; + font-size: 10pt; + color: #787872; + cursor: pointer; + + height: 22px; + text-align: center; + border-right: 1px solid #aaa; + border-bottom: 1px solid #aaa; + border-top: 1px solid #aaa; + + background-color: #cccec0; +} + +div.directLoginEditing > form.directLoginEditingForm > div.tabContainer > ul.tabs > li:first-child { + border-left: 1px solid #aaa; +} + +div.directLoginEditing > form.directLoginEditingForm > div.tabContainer > ul.tabs { + height: 23px; + padding-left: 10px; + border-bottom: 1px solid #aaa; + margin-left: 10px; + margin-right: 10px; +} + +div.directLoginEditing > form.directLoginEditingForm > div.tabContainer > ul.tabs > li > span { + line-height: 23px; +} + +div.directLoginEditing > form.directLoginEditingForm > div.tabContainer > ul.tabs > li.selected { + color: #6a5147; + cursor: default; + border-bottom: 1px solid #f1f2e9; + background-color: #f1f2e9; +} + +div.directLoginEditing > form.directLoginEditingForm > div.tabContainer > ul.tabs > li:hover { + color: #6a5147; +} + +div.directLoginEditing > form.directLoginEditingForm > div.tabContainer > ul.tabPanels { + padding-bottom: 5px; + margin-left: 10px; + margin-right: 10px; +} + +div.directLoginEditing > form.directLoginEditingForm > div.tabContainer > ul.tabPanels > li.selected { + border-bottom: 1px solid #aaa; + border-left: 1px solid #aaa; + border-right: 1px solid #aaa; +} + +div.directLoginEditing li.configuration { + padding: 5px; +} + +div.directLoginEditing li.configuration > textarea { + width: 100%; + height: 100px; + font-family: monospace; + font-weight: normal; + font-size: 8pt; +} +*/ +/* @end */ +/* @end */ +/* @end */ +/* @group Card Dialog FIELDS */ +div.CardDialog div.body { + padding-bottom: 1px; +} +div.CardDialog div.body table.fields { + width: 100%; + padding-top: 8px; + padding-bottom: 1px; +} +div.CardDialog div.body table.fields thead { + background: url(./images/old/cardDialog/dottedLine_background.png) repeat-x 0 15px; +} +div.CardDialog div.body table.fields tfoot { + background: url(./images/old/cardDialog/dottedLine_background.png) repeat-x 0 bottom; +} +div.CardDialog div.body table.fields thead th { + text-align: left; + font-weight: normal; + font-size: 9pt; + color: #787872; + padding-left: 10px; + padding-bottom: 3px; + /* + border-bottom: 1px dotted; +*/ + +} +div.CardDialog div.body table.fields thead th.fieldStateTH { + width: 10px; +} +div.CardDialog div.body table.fields tbody td.fieldLabel input { + width: 130px; +} +div.CardDialog div.body table.fields thead th.fieldLockTH { + width: 10px; +} +div.CardDialog div.body table.fields tbody td.fieldValue input { + width: 280px; +} +div.CardDialog div.body table.fields thead th.fieldActionTH { + width: 30px; +} +div.CardDialog div.body table.fields thead th.fieldDeleteTH { + width: 40px; +} +div.CardDialog div.body table.fields tbody tr:hover, +div.CardDialog div.body table.fields tbody tr.selectedField { + background-color: #cccec0; +} +div.CardDialog div.body table.fields tbody tr td { + font-size: 11pt; + color: #787872; + height: 35px; +} +div.CardDialog div.body table.fields tbody tr td input { + font-size: 11pt; + border: 0px; + padding: 5px; + color: #787872; + border: 1px solid #ededeb; + background-color: #ededeb; + height: 30px; +} +/* +div.CardDialog div.body table.fields tbody tr td.fieldValue div { + margin-right: 10px; +} + +div.CardDialog div.body table.fields tbody tr td.fieldValue div input { + width: 100%; +} +*/ +div.CardDialog div.body table.fields tbody tr td.fieldValue div.locked input { + background: #ededeb url(./images/old/cardDialog/password_background.png) no-repeat 2px 3px; + color: #ededeb; + color: rgba(237, 237, 235, 0.1); + /* color: black; */ + + /* line-height: 100px; */ + + overflow: hidden; +} +div.locked input.value::-moz-selection { + background: #ff0000; +} +div.locked input.value::selection { + background: #ff0000; +} +div.CardDialog div.body table.fields tbody tr.new.selectedField td input, +div.CardDialog div.body table.fields tbody tr.new:hover td input, +div.CardDialog div.body table.fields tbody tr:hover td input, +div.CardDialog div.body table.fields tbody tr.selectedField td input { + border: 1px solid #515247; + background-color: #b5b7ab; +} +div.CardDialog div.body table.fields tbody tr:hover td.fieldValue div.locked input, +div.CardDialog div.body table.fields tbody tr.selectedField td.fieldValue div.locked input { + background: #b5b7ab url(./images/old/cardDialog/password_background.png) no-repeat 2px 3px; + color: #b5b7ab; + color: rgba(237, 237, 235, 0.1); +} +div.CardDialog div.body table.fields tbody td.fieldLock div { + width: 20px; + height: 19px; + cursor: pointer; +} +div.CardDialog div.body table.fields tbody tr:hover td.fieldLock div.locked { + background-image: url(./images/old/cardDialog/lock_closed.png); +} +div.CardDialog div.body table.fields tbody tr:hover td.fieldLock div.unlocked { + background-image: url(./images/old/cardDialog/lock_open.png); +} +div.CardDialog div.body table.fields tbody tr td.fieldAddDelete div span a { + text-decoration: none; + visibility: hidden; + font-size: 8pt; + vertical-align: -13px; + color: black; +} +div.CardDialog div.body table.fields tbody tr.selectedField td.fieldAddDelete div span a { + visibility: visible; +} +div.CardDialog div.body table.fields tbody tr:hover td.fieldAddDelete div span a { + visibility: visible; +} +div.CardDialog div.body table.fields tbody tr:hover td.fieldAddDelete div:hover span a { + color: white; +} +div.CardDialog div.body div.notes { + background: url(./images/old/cardDialog/dottedLine_background.png) repeat-x 0 0; + padding-top: 2px; +} +div.CardDialog div.body div.notes div { + padding-left: 20px; + padding-right: 20px; + padding-top: 4px; + padding-bottom: 4px; +} +div.CardDialog div.body div.notes div:hover, +div.CardDialog div.body div.notes.selectedField div { + background-color: #cccec0; +} +div.CardDialog.loading div.body div.notes div textarea { + display: none; +} +div.CardDialog div.body div.notes div textarea { + border: 0; + width: 470px; + /* + width: 100%; + height: 100px; + min-height: 400px; + overflow: hidden; +*/ + + color: #787872; + border: 1px solid #ededeb; + background-color: #ededeb; + display: block; + line-height: 12pt; + min-height: 50px; +} +div.CardDialog div.body div.notes div:hover textarea, +div.CardDialog div.body div.notes.selectedField div textarea { + border: 1px solid #515247; + background-color: #b5b7ab; +} +div.CardDialog div.body table.fields tbody tr td.fieldAction { + /* background-color: red; */ + + padding-left: 4px; +} +div.CardDialog div.body table.fields tbody tr td.fieldAction a { + display: inline-block; + text-decoration: none; + text-align: center; + width: 16px; + height: 16px; +} +div.CardDialog div.body table.fields tbody tr td.fieldAction a.email { + background: url(./images/old/cardDialog/fieldTypes/email.png) no-repeat 0 0; +} +div.CardDialog div.body table.fields tbody tr td.fieldAction a.email:hover { + background: url(./images/old/cardDialog/fieldTypes/email_selected.png) no-repeat 0 0; +} +div.CardDialog div.body table.fields tbody tr td.fieldAction a.url { + background: url(./images/old/cardDialog/fieldTypes/url.png) no-repeat 0 0; +} +div.CardDialog div.body table.fields tbody tr td.fieldAction a.url:hover { + background: url(./images/old/cardDialog/fieldTypes/url_selected.png) no-repeat 0 0; +} +div.CardDialog div.body table.fields tbody tr td.fieldAction a.password { + background: url(./images/old/cardDialog/fieldTypes/password.png) no-repeat 0 0; +} +div.CardDialog div.body table.fields tbody tr td.fieldAction a.password:hover { + background: url(./images/old/cardDialog/fieldTypes/password_selected.png) no-repeat 0 0; +} +/* +/ *div.CardDialog div.body table.fields tbody* / tr.new { + background: yellow; +} + +div.CardDialog div.body table.fields tbody tr.new td input { + border: 1px solid red; + background-color: green; +} +*/ +/* @end */ +/* @end */ +div#disabledZone { + display: block; + visibility: visible; +} +div#messageZone { + display: block; + visibility: visible; +} +div.CardDialog div.error div.img { + margin: 10px; + width: 50px; + height: 50px; + float: left; + background-image: url(./images/old/simpleMessageBox/Alert.png); +} +/* @group Ruler */ +/* +div.rulerExtraWrapper { + position: absolute; + top: 0px; + left: 0px; + width: 100%; + height: 100%; + overflow: hidden; + background-color: rgba(255, 0, 0, 0.2); + z-index: 24999; +} +*/ +div.rulerWrapper { + left: -1000px; + margin-top: -30px; + margin-left: 50%; + z-index: 25000; +} +div.rulerWrapper.fixed { + position: fixed; +} +div.rulerWrapper.scrollable { + position: absolute; +} +div.ruler { + /* position: absolute; */ + + width: 541px; + height: 96px; + margin-left: -270px; + background: url(./images/old/ruler/ruler.png) no-repeat; +} +div.ruler a { + position: absolute; + display: block; + width: 15px; + height: 15px; + top: 3px; + text-decoration: none; +} +div.ruler a.exit { + margin-left: 2px; + background: url(./images/old/ruler/exit.png) no-repeat; +} +div.ruler a.exit:hover { + background: url(./images/old/ruler/exit_selected.png) no-repeat; +} +div.ruler a.smallButton.previous { + right: 16px; + background: url(./images/old/ruler/small_previous.png) no-repeat; +} +div.ruler a.smallButton.previous:hover { + cursor: pointer; + background: url(./images/old/ruler/small_previous_selected.png) no-repeat; +} +div.ruler a.smallButton.previous.disabled, +div.ruler a.smallButton.previous.disabled:hover { + cursor: default; + background: url(./images/old/ruler/small_previous_disabled.png) no-repeat; +} +div.ruler a.smallButton.next { + right: 3px; + background: url(./images/old/ruler/small_next.png) no-repeat; +} +div.ruler a.smallButton.next:hover { + cursor: pointer; + background: url(./images/old/ruler/small_next_selected.png) no-repeat; +} +div.ruler a.smallButton.next.disabled, +div.ruler a.smallButton.next.disabled:hover { + cursor: default; + background: url(./images/old/ruler/small_next_disabled.png) no-repeat; +} +div.ruler div.steps, +div.ruler div.dots { + position: absolute; + background-color: rgba(255, 255, 255, 0); + margin-left: 30px; + margin-right: 30px; +} +div.ruler div.steps { + top: 25px; + height: 30px; +} +div.ruler div.dots { + top: 58px; + height: 25px; +} +div.ruler div ul { + list-style-type: none; + margin: 0px; + padding: 0px; +} +div.ruler div ul li { + display: inline-block; + vertical-align: top; +} +div.ruler > div.steps > ul > li:first-child, +div.ruler > div.dots > ul > li:first-child { + margin-left: 0px; +} +div.ruler div.steps_3 ul li { + margin-left: 135px; +} +div.ruler div.steps_4 ul li { + margin-left: 67px; +} +div.ruler div.steps_5 ul li { + margin-left: 32px; +} +div.ruler div.steps_6 ul li { + margin-left: 12px; +} +div.ruler div ul li span { + font-weight: bold; + text-align: center; + width: 70px; + display: block; + font-size: 8pt; + overflow: hidden; + color: rgba(0, 0, 0, 0.3); +} +div.ruler div ul li.selected span { + color: black; +} +div.ruler div.dots ul li span { + /* + text-align: center; + width: 26px; + margin-left: 22px; + margin-right: 22px; + height: 25px; + background-color: #e57218; +*/ + + font-size: 40pt; + line-height: 47px; +} +div.ruler div.marker { + position: absolute; + top: -3px; + /* left: -246px; */ + +} +div.ruler div.marker div.markerBody { + width: 77px; + height: 97px; + background: url(./images/old/ruler/marker.png) no-repeat; +} +div.ruler div.marker div.next { + position: absolute; + top: 25px; + left: 76px; + width: 27px; + height: 65px; + background: url(./images/old/ruler/next.png) no-repeat -13px; + z-index: 26000; +} +div.ruler div.marker div.next:hover { + cursor: pointer; + background: url(./images/old/ruler/next.png) no-repeat -2px; +} +div.ruler div.marker div.disabled { + display: none; +} +div.ruler div.marker div.previous { + position: absolute; + top: 25px; + left: -24px; + width: 27px; + height: 65px; + /* background: url(./images/old/ruler/previous.png) no-repeat 13px 1px; */ + + background: url(./images/old/ruler/previous.png) no-repeat 18px 1px; + z-index: 26000; +} +div.ruler div.marker div.previous:hover { + cursor: pointer; + /* background: url(./images/old/ruler/previous.png) no-repeat 2px 1px; */ + + background: url(./images/old/ruler/previous.png) no-repeat 7px 1px; +} +/* @end */ +div.createNewCardSplash { + margin-top: -450px; + margin-left: 250px; + width: 354px; + float: left; + height: 186px; + text-align: center; + background: url(./images/old/main/grid/createNewCardSplash.png) no-repeat; +} +div.createNewCardSplash:hover { + cursor: pointer; + background: url(./images/old/main/grid/createNewCardSplash_selected.png) no-repeat; +} +div.createNewCardSplash span { + display: block; + padding-top: 130px; + font-size: 14pt; + color: #9a9586; +} +div.createNewCardSplash:hover span { + color: #605c4e; +} +/*=============================================*/ +div.NewUserCreation div.tabContainer { + min-height: 150px; + height: 200px; +} +div.NewUserCreation div.tabContainer > ul.tabs { + display: none; +} +ul.createUserStates li.creating { + background: url(./images/old/creatingUser.gif) no-repeat center center; +} +ul.createUserStates li { + height: 100px; +} +ul.createUserStates li span { + display: block; + width: 100%; + text-align: center; + color: #999; + font-style: italic; +} +div.NewUserCreation form.newUserCreationForm ul.tabPanels { + padding-top: 10px; +} +div.NewUserCreation form.newUserCreationForm ul ul { + margin-left: auto; + margin-right: auto; + width: 400px; +} +div.NewUserCreation form.newUserCreationForm ul.credentials li { + height: 45px; +} +div.NewUserCreation form.newUserCreationForm ul.credentials span.label { + text-align: right; + display: inline-block; + font-size: 12pt; + color: #787872; + width: 110px; + vertical-align: baseline; +} +div.NewUserCreation form.newUserCreationForm ul.credentials input { + font-size: 13pt; + color: #787872; + height: 35px; + margin-left: 15px; + padding-left: 5px; +} +div.NewUserCreation form.newUserCreationForm ul.termsOfService li { + padding: 0 0 15 0; +} +div.NewUserCreation form.newUserCreationForm ul.termsOfService input { + display: inline-block; +} +div.NewUserCreation form.newUserCreationForm ul.termsOfService .label { + display: inline-block; + text-align: left; + font-size: 12pt; + color: #787872; + width: 350px; + vertical-align: top; + padding-left: 10px; +} +div.NewUserCreation form.newUserCreationForm ul.termsOfService a { + font-weight: bold; + color: #787872; + text-decoration: none; +} +div.NewUserCreation form.newUserCreationForm ul.termsOfService a:hover { + color: #444; +} +div.NewUserCreation form.newUserCreationForm ul.createUserStates li.done span { + font-size: 16pt; + color: green; +} +div.NewUserCreation form.newUserCreationForm ul.createUserStates li.fail span { + font-size: 16pt; + color: red; +} diff --git a/frontend/gamma/html/exitPage_template.html b/frontend/gamma/html/exit_template.html index e17bee0..e17bee0 100644 --- a/frontend/gamma/html/exitPage_template.html +++ b/frontend/gamma/html/exit_template.html diff --git a/frontend/gamma/html/index_template.html b/frontend/gamma/html/index_template.html index 5f5ed2d..ba7c311 100644 --- a/frontend/gamma/html/index_template.html +++ b/frontend/gamma/html/index_template.html @@ -15,7 +15,9 @@ <script> Clipperz_IEisBroken = false; Clipperz_normalizedNewLine = '\n'; - Clipperz_dumpUrl = "/dump/"; + Clipperz_dumpUrl = "/../dump/"; + Clipperz_version = "@application.version@"; + "use strict"; </script> <!--[if IE]><script> @@ -45,6 +47,13 @@ Clipperz_normalizedNewLine = '\x0d\x0a'; <script> Clipperz.PM.Proxy.defaultProxy = new Clipperz.PM.Proxy.JSON({'url':'@request.path@', 'shouldPayTolls':@should.pay.toll@}); /*offline_data_placeholder*/ + +/* * / + MochiKit.DOM.addLoadEvent(function () { + Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); + MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'doLogin', {username:'j', passphrase:'j'}); + }); +/ * */ </script> <!-- --> diff --git a/frontend/gamma/html/mobile.appcache b/frontend/gamma/html/mobile.appcache new file mode 100644 index 0000000..237b5ad --- a/dev/null +++ b/frontend/gamma/html/mobile.appcache @@ -0,0 +1,24 @@ +CACHE MANIFEST +# 2012-02-23-v0.0.1 + +# Entry to add into Apache config: +# AddType text/cache-manifest .appcache + +# Explicitly cached entries +CACHE: +index.mobile.html +*.favico + +# static.html will be served if the user is offline +FALLBACK: +/index.mobile.html /index.mobile.html + +# /main.py /static.html +# images/large/ images/offline.jpg +# *.html /offline.html + + +# Resources that require the user to be online. +NETWORK: +* +# login.php, http://api.twitter.com, etc. diff --git a/frontend/gamma/html/mobile_template.html b/frontend/gamma/html/mobile_template.html index 0a1b54c..184fbd9 100644 --- a/frontend/gamma/html/mobile_template.html +++ b/frontend/gamma/html/mobile_template.html @@ -1,33 +1,31 @@ -<!-- +<!doctype html> +<!-- Conditional comment for mobile ie7 blogs.msdn.com/b/iemobile/ --> +<!--[if IEMobile 7 ]> <html class="no-js iem7" lang="en"> <![endif]--> +<!--[if (gt IEMobile 7)|!(IEMobile)]><!--> <html class="no-js" lang="en" manifest="mobile.appcache"> <!--<![endif]--> +<head> + <title>@page.title@</title> + <meta charset="utf-8"> -Copyright 2008-2011 Clipperz Srl + <meta name="HandheldFriendly" content="True"> + <meta name="MobileOptimized" content="320"> + <meta name="viewport" content="width=device-width"> -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. -For further information about its features and functionalities please -refer to http://www.clipperz.com. +<!-- link rel="apple-touch-icon-precomposed" ... --> + <link rel="apple-touch-icon" sizes="114x114" href="data:image/png;charset=utf-8;base64,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"> + <link rel="apple-touch-icon" sizes="72x72" href="data:image/png;charset=utf-8;base64,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"> + <link rel="apple-touch-icon" href="data:image/png;charset=utf-8;base64,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"> + <link rel="shortcut icon" href="data:image/png;charset=utf-8;base64,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"> -* Clipperz Community Edition is free software: you can redistribute - it and/or modify it under the terms of the GNU Affero General Public - License as published by the Free Software Foundation, either version - 3 of the License, or (at your option) any later version. + <meta http-equiv="cleartype" content="on"> + <meta name="apple-mobile-web-app-capable" content="yes"> -* Clipperz Community Edition is distributed in the hope that it will - be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU Affero General Public License for more details. -* You should have received a copy of the GNU Affero General Public - License along with Clipperz Community Edition. If not, see - <http://www.gnu.org/licenses/>. + <!-- link rel="apple-touch-startup-image" href="data:image/png;charset=utf-8;base64,iVBORw0K...ggo=" --> +<!-- +@copyright@ --> -<html> -<head> - <title>@page.title@</title> - <meta http-equiv="content-type" content="text/html; charset=utf-8" /> -@copyright@ @css@ <link rel="shortcut icon" href="./clipperz.ico" /> @@ -40,45 +38,29 @@ refer to http://www.clipperz.com. Clipperz_dumpUrl = "/dump/"; </script> -<!--[if IE]><script> -Clipperz_IEisBroken = true; -Clipperz_normalizedNewLine = '\x0d\x0a'; -</script><![endif]--> - -@CLIPPERZ_DEBUG_VERSION@ +@js_LINKED@ </head> <body> <div id="mainDiv"> <div id="loading"> - <a href="http://www.clipperz.com" target="_blank"><div id="logo"></div></a> - <h5 class="clipperzPayoff">keep it to yourself!</h5> - <h2>loading ...</h2> + <div> + <!-- a href="http://www.clipperz.com" target="_blank"><div id="logo"></div></a --> + <h1>clipperz</h1> + <h3 class="clipperzPayoff">keep it to yourself!</h3> + <!-- h5>loading ...</h5 --> + </div> </div> -@CLIPPERZ_INSTALLED_VERSION@ - -</div> -<div id="applicationVersionType" class="@application.version.type@"></div> +@js_EMBEDDED@ -<!-- --> -<div id="javaScriptAlert"> - <div class="mask"></div> - <div class="message"> - <div class="header"></div> - <div class="body"> - <div class="alertLogo"></div> - <div class="alert"> - <h1>Attention!</h1> - <p>If you can read this message, the chances are that your browser does not properly support JavaScript? or you have disabled this functionality yourself.</p> - <h3>Javascript is required to access Clipperz.</h3> - <h5>Please enable scripting or upgrade your browser.</h5> - </div> - </div> - <div class="footer"></div> - </div> </div> -<!-- --> +<!-- div id="applicationVersionType" class="@application.version.type@"></div --> + +<script> + Clipperz.PM.Proxy.defaultProxy = new Clipperz.PM.Proxy.JSON({'url':'@request.path@', 'shouldPayTolls':@should.pay.toll@}); + /*offline_data_placeholder*/ +</script> </body> </html> diff --git a/frontend/gamma/images/old/alert/alert.png b/frontend/gamma/images/old/alert/alert.png Binary files differnew file mode 100644 index 0000000..ade6040 --- a/dev/null +++ b/frontend/gamma/images/old/alert/alert.png diff --git a/frontend/gamma/images/old/alert/body.png b/frontend/gamma/images/old/alert/body.png Binary files differnew file mode 100644 index 0000000..3f0ab21 --- a/dev/null +++ b/frontend/gamma/images/old/alert/body.png diff --git a/frontend/gamma/images/old/alert/footer.png b/frontend/gamma/images/old/alert/footer.png Binary files differnew file mode 100644 index 0000000..a9587c8 --- a/dev/null +++ b/frontend/gamma/images/old/alert/footer.png diff --git a/frontend/gamma/images/old/alert/header.png b/frontend/gamma/images/old/alert/header.png Binary files differnew file mode 100644 index 0000000..079dd13 --- a/dev/null +++ b/frontend/gamma/images/old/alert/header.png diff --git a/frontend/gamma/images/old/bookmarklet/placeholder.png b/frontend/gamma/images/old/bookmarklet/placeholder.png Binary files differnew file mode 100644 index 0000000..792dbf5 --- a/dev/null +++ b/frontend/gamma/images/old/bookmarklet/placeholder.png diff --git a/frontend/gamma/images/old/bookmarklet/placeholder_icon.png b/frontend/gamma/images/old/bookmarklet/placeholder_icon.png Binary files differnew file mode 100644 index 0000000..dc06721 --- a/dev/null +++ b/frontend/gamma/images/old/bookmarklet/placeholder_icon.png diff --git a/frontend/gamma/images/old/bookmarklet/placeholder_selected.png b/frontend/gamma/images/old/bookmarklet/placeholder_selected.png Binary files differnew file mode 100644 index 0000000..d01ac89 --- a/dev/null +++ b/frontend/gamma/images/old/bookmarklet/placeholder_selected.png diff --git a/frontend/gamma/images/old/bookmarklet/placeholder_selected_icon.png b/frontend/gamma/images/old/bookmarklet/placeholder_selected_icon.png Binary files differnew file mode 100644 index 0000000..c8c2a86 --- a/dev/null +++ b/frontend/gamma/images/old/bookmarklet/placeholder_selected_icon.png diff --git a/frontend/gamma/images/old/button/clicked_left.png b/frontend/gamma/images/old/button/clicked_left.png Binary files differnew file mode 100644 index 0000000..332260d --- a/dev/null +++ b/frontend/gamma/images/old/button/clicked_left.png diff --git a/frontend/gamma/images/old/button/clicked_main.png b/frontend/gamma/images/old/button/clicked_main.png Binary files differnew file mode 100644 index 0000000..d0fe732 --- a/dev/null +++ b/frontend/gamma/images/old/button/clicked_main.png diff --git a/frontend/gamma/images/old/button/default_left.png b/frontend/gamma/images/old/button/default_left.png Binary files differnew file mode 100644 index 0000000..94178fc --- a/dev/null +++ b/frontend/gamma/images/old/button/default_left.png diff --git a/frontend/gamma/images/old/button/default_main.png b/frontend/gamma/images/old/button/default_main.png Binary files differnew file mode 100644 index 0000000..8b97bea --- a/dev/null +++ b/frontend/gamma/images/old/button/default_main.png diff --git a/frontend/gamma/images/old/button/hover_left.png b/frontend/gamma/images/old/button/hover_left.png Binary files differnew file mode 100644 index 0000000..de09c1a --- a/dev/null +++ b/frontend/gamma/images/old/button/hover_left.png diff --git a/frontend/gamma/images/old/button/hover_main.png b/frontend/gamma/images/old/button/hover_main.png Binary files differnew file mode 100644 index 0000000..6c07f57 --- a/dev/null +++ b/frontend/gamma/images/old/button/hover_main.png diff --git a/frontend/gamma/images/old/cardDialog/addDirectLogin_background.png b/frontend/gamma/images/old/cardDialog/addDirectLogin_background.png Binary files differnew file mode 100644 index 0000000..130d060 --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/addDirectLogin_background.png diff --git a/frontend/gamma/images/old/cardDialog/addDirectLogin_disabled_background.png b/frontend/gamma/images/old/cardDialog/addDirectLogin_disabled_background.png Binary files differnew file mode 100644 index 0000000..e67f5c4 --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/addDirectLogin_disabled_background.png diff --git a/frontend/gamma/images/old/cardDialog/back.png b/frontend/gamma/images/old/cardDialog/back.png Binary files differnew file mode 100644 index 0000000..97ef21e --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/back.png diff --git a/frontend/gamma/images/old/cardDialog/back_selected.png b/frontend/gamma/images/old/cardDialog/back_selected.png Binary files differnew file mode 100644 index 0000000..18d4f0a --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/back_selected.png diff --git a/frontend/gamma/images/old/cardDialog/background_body.png b/frontend/gamma/images/old/cardDialog/background_body.png Binary files differnew file mode 100644 index 0000000..9640d23 --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/background_body.png diff --git a/frontend/gamma/images/old/cardDialog/background_footer.png b/frontend/gamma/images/old/cardDialog/background_footer.png Binary files differnew file mode 100644 index 0000000..4d70eb3 --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/background_footer.png diff --git a/frontend/gamma/images/old/cardDialog/background_header.png b/frontend/gamma/images/old/cardDialog/background_header.png Binary files differnew file mode 100644 index 0000000..3223a1e --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/background_header.png diff --git a/frontend/gamma/images/old/cardDialog/dottedLine_background.png b/frontend/gamma/images/old/cardDialog/dottedLine_background.png Binary files differnew file mode 100644 index 0000000..c447f02 --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/dottedLine_background.png diff --git a/frontend/gamma/images/old/cardDialog/fieldTypes/email.png b/frontend/gamma/images/old/cardDialog/fieldTypes/email.png Binary files differnew file mode 100644 index 0000000..afe4e8a --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/fieldTypes/email.png diff --git a/frontend/gamma/images/old/cardDialog/fieldTypes/email_selected.png b/frontend/gamma/images/old/cardDialog/fieldTypes/email_selected.png Binary files differnew file mode 100644 index 0000000..017904c --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/fieldTypes/email_selected.png diff --git a/frontend/gamma/images/old/cardDialog/fieldTypes/password.png b/frontend/gamma/images/old/cardDialog/fieldTypes/password.png Binary files differnew file mode 100644 index 0000000..fff876d --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/fieldTypes/password.png diff --git a/frontend/gamma/images/old/cardDialog/fieldTypes/passwordTooltip.png b/frontend/gamma/images/old/cardDialog/fieldTypes/passwordTooltip.png Binary files differnew file mode 100644 index 0000000..3eb4d4f --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/fieldTypes/passwordTooltip.png diff --git a/frontend/gamma/images/old/cardDialog/fieldTypes/password_selected.png b/frontend/gamma/images/old/cardDialog/fieldTypes/password_selected.png Binary files differnew file mode 100644 index 0000000..b9dc839 --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/fieldTypes/password_selected.png diff --git a/frontend/gamma/images/old/cardDialog/fieldTypes/url.png b/frontend/gamma/images/old/cardDialog/fieldTypes/url.png Binary files differnew file mode 100644 index 0000000..3ac1266 --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/fieldTypes/url.png diff --git a/frontend/gamma/images/old/cardDialog/fieldTypes/url_selected.png b/frontend/gamma/images/old/cardDialog/fieldTypes/url_selected.png Binary files differnew file mode 100644 index 0000000..77b1143 --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/fieldTypes/url_selected.png diff --git a/frontend/gamma/images/old/cardDialog/loading.gif b/frontend/gamma/images/old/cardDialog/loading.gif Binary files differnew file mode 100644 index 0000000..a846634 --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/loading.gif diff --git a/frontend/gamma/images/old/cardDialog/lock_closed.png b/frontend/gamma/images/old/cardDialog/lock_closed.png Binary files differnew file mode 100644 index 0000000..5ea9b9e --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/lock_closed.png diff --git a/frontend/gamma/images/old/cardDialog/lock_open.png b/frontend/gamma/images/old/cardDialog/lock_open.png Binary files differnew file mode 100644 index 0000000..cb94955 --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/lock_open.png diff --git a/frontend/gamma/images/old/cardDialog/openDirectLogin.png b/frontend/gamma/images/old/cardDialog/openDirectLogin.png Binary files differnew file mode 100644 index 0000000..e0b6a25 --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/openDirectLogin.png diff --git a/frontend/gamma/images/old/cardDialog/openDirectLogin_selected.png b/frontend/gamma/images/old/cardDialog/openDirectLogin_selected.png Binary files differnew file mode 100644 index 0000000..a2a6f47 --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/openDirectLogin_selected.png diff --git a/frontend/gamma/images/old/cardDialog/password_background.png b/frontend/gamma/images/old/cardDialog/password_background.png Binary files differnew file mode 100644 index 0000000..9432573 --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/password_background.png diff --git a/frontend/gamma/images/old/cardDialog/tabs_background.png b/frontend/gamma/images/old/cardDialog/tabs_background.png Binary files differnew file mode 100644 index 0000000..ebaad24 --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/tabs_background.png diff --git a/frontend/gamma/images/old/cardDialog/tabs_shadow.png b/frontend/gamma/images/old/cardDialog/tabs_shadow.png Binary files differnew file mode 100644 index 0000000..04b51e6 --- a/dev/null +++ b/frontend/gamma/images/old/cardDialog/tabs_shadow.png diff --git a/frontend/gamma/images/old/creatingUser.gif b/frontend/gamma/images/old/creatingUser.gif Binary files differnew file mode 100644 index 0000000..69448f8 --- a/dev/null +++ b/frontend/gamma/images/old/creatingUser.gif diff --git a/frontend/gamma/images/old/delete_background.png b/frontend/gamma/images/old/delete_background.png Binary files differnew file mode 100644 index 0000000..b9bc088 --- a/dev/null +++ b/frontend/gamma/images/old/delete_background.png diff --git a/frontend/gamma/images/old/delete_background_left.png b/frontend/gamma/images/old/delete_background_left.png Binary files differnew file mode 100644 index 0000000..af3beac --- a/dev/null +++ b/frontend/gamma/images/old/delete_background_left.png diff --git a/frontend/gamma/images/old/directLink_background.png b/frontend/gamma/images/old/directLink_background.png Binary files differnew file mode 100644 index 0000000..b36757a --- a/dev/null +++ b/frontend/gamma/images/old/directLink_background.png diff --git a/frontend/gamma/images/old/directLink_background_left.png b/frontend/gamma/images/old/directLink_background_left.png Binary files differnew file mode 100644 index 0000000..11f282d --- a/dev/null +++ b/frontend/gamma/images/old/directLink_background_left.png diff --git a/frontend/gamma/images/old/directLink_no_background.png b/frontend/gamma/images/old/directLink_no_background.png Binary files differnew file mode 100644 index 0000000..21a18e2 --- a/dev/null +++ b/frontend/gamma/images/old/directLink_no_background.png diff --git a/frontend/gamma/images/old/directLogins_background.png b/frontend/gamma/images/old/directLogins_background.png Binary files differnew file mode 100644 index 0000000..959ecaf --- a/dev/null +++ b/frontend/gamma/images/old/directLogins_background.png diff --git a/frontend/gamma/images/old/directLogins_background_bottom.png b/frontend/gamma/images/old/directLogins_background_bottom.png Binary files differnew file mode 100644 index 0000000..c3c40d0 --- a/dev/null +++ b/frontend/gamma/images/old/directLogins_background_bottom.png diff --git a/frontend/gamma/images/old/filter/clearFilter_notSelected.png b/frontend/gamma/images/old/filter/clearFilter_notSelected.png Binary files differnew file mode 100644 index 0000000..ec2e2fe --- a/dev/null +++ b/frontend/gamma/images/old/filter/clearFilter_notSelected.png diff --git a/frontend/gamma/images/old/filter/clearFilter_selected.png b/frontend/gamma/images/old/filter/clearFilter_selected.png Binary files differnew file mode 100644 index 0000000..6bfb463 --- a/dev/null +++ b/frontend/gamma/images/old/filter/clearFilter_selected.png diff --git a/frontend/gamma/images/old/flags/br.png b/frontend/gamma/images/old/flags/br.png Binary files differnew file mode 100644 index 0000000..51ac06e --- a/dev/null +++ b/frontend/gamma/images/old/flags/br.png diff --git a/frontend/gamma/images/old/flags/cn.png b/frontend/gamma/images/old/flags/cn.png Binary files differnew file mode 100644 index 0000000..4be2967 --- a/dev/null +++ b/frontend/gamma/images/old/flags/cn.png diff --git a/frontend/gamma/images/old/flags/de.png b/frontend/gamma/images/old/flags/de.png Binary files differnew file mode 100644 index 0000000..a66d634 --- a/dev/null +++ b/frontend/gamma/images/old/flags/de.png diff --git a/frontend/gamma/images/old/flags/en.png b/frontend/gamma/images/old/flags/en.png Binary files differnew file mode 100644 index 0000000..6d193aa --- a/dev/null +++ b/frontend/gamma/images/old/flags/en.png diff --git a/frontend/gamma/images/old/flags/es.png b/frontend/gamma/images/old/flags/es.png Binary files differnew file mode 100644 index 0000000..503ffca --- a/dev/null +++ b/frontend/gamma/images/old/flags/es.png diff --git a/frontend/gamma/images/old/flags/it.png b/frontend/gamma/images/old/flags/it.png Binary files differnew file mode 100644 index 0000000..a271baf --- a/dev/null +++ b/frontend/gamma/images/old/flags/it.png diff --git a/frontend/gamma/images/old/flags/jp.png b/frontend/gamma/images/old/flags/jp.png Binary files differnew file mode 100644 index 0000000..19e81e3 --- a/dev/null +++ b/frontend/gamma/images/old/flags/jp.png diff --git a/frontend/gamma/images/old/flags/ru.png b/frontend/gamma/images/old/flags/ru.png Binary files differnew file mode 100644 index 0000000..7391499 --- a/dev/null +++ b/frontend/gamma/images/old/flags/ru.png diff --git a/frontend/gamma/images/old/footer/star.png b/frontend/gamma/images/old/footer/star.png Binary files differnew file mode 100644 index 0000000..7c6e53c --- a/dev/null +++ b/frontend/gamma/images/old/footer/star.png diff --git a/frontend/gamma/images/old/home/box/box_body.png b/frontend/gamma/images/old/home/box/box_body.png Binary files differnew file mode 100644 index 0000000..168c776 --- a/dev/null +++ b/frontend/gamma/images/old/home/box/box_body.png diff --git a/frontend/gamma/images/old/home/box/box_bottom.png b/frontend/gamma/images/old/home/box/box_bottom.png Binary files differnew file mode 100644 index 0000000..f8e72be --- a/dev/null +++ b/frontend/gamma/images/old/home/box/box_bottom.png diff --git a/frontend/gamma/images/old/home/box/box_top.png b/frontend/gamma/images/old/home/box/box_top.png Binary files differnew file mode 100644 index 0000000..ff7b607 --- a/dev/null +++ b/frontend/gamma/images/old/home/box/box_top.png diff --git a/frontend/gamma/images/old/home/download.png b/frontend/gamma/images/old/home/download.png Binary files differnew file mode 100644 index 0000000..deffc1b --- a/dev/null +++ b/frontend/gamma/images/old/home/download.png diff --git a/frontend/gamma/images/old/home/features/bullet.png b/frontend/gamma/images/old/home/features/bullet.png Binary files differnew file mode 100644 index 0000000..1f51609 --- a/dev/null +++ b/frontend/gamma/images/old/home/features/bullet.png diff --git a/frontend/gamma/images/old/home/look.png b/frontend/gamma/images/old/home/look.png Binary files differnew file mode 100644 index 0000000..a2a49eb --- a/dev/null +++ b/frontend/gamma/images/old/home/look.png diff --git a/frontend/gamma/images/old/home/register.png b/frontend/gamma/images/old/home/register.png Binary files differnew file mode 100644 index 0000000..be7c151 --- a/dev/null +++ b/frontend/gamma/images/old/home/register.png diff --git a/frontend/gamma/images/old/home/register_selected.png b/frontend/gamma/images/old/home/register_selected.png Binary files differnew file mode 100644 index 0000000..f29aaae --- a/dev/null +++ b/frontend/gamma/images/old/home/register_selected.png diff --git a/frontend/gamma/images/old/iPhone/backButton.png b/frontend/gamma/images/old/iPhone/backButton.png Binary files differnew file mode 100644 index 0000000..e27ea8c --- a/dev/null +++ b/frontend/gamma/images/old/iPhone/backButton.png diff --git a/frontend/gamma/images/old/iPhone/icon.png b/frontend/gamma/images/old/iPhone/icon.png Binary files differnew file mode 100644 index 0000000..1c97389 --- a/dev/null +++ b/frontend/gamma/images/old/iPhone/icon.png diff --git a/frontend/gamma/images/old/iPhone/listArrow.png b/frontend/gamma/images/old/iPhone/listArrow.png Binary files differnew file mode 100644 index 0000000..6421a16 --- a/dev/null +++ b/frontend/gamma/images/old/iPhone/listArrow.png diff --git a/frontend/gamma/images/old/iPhone/locked.png b/frontend/gamma/images/old/iPhone/locked.png Binary files differnew file mode 100644 index 0000000..e00d5f6 --- a/dev/null +++ b/frontend/gamma/images/old/iPhone/locked.png diff --git a/frontend/gamma/images/old/iPhone/logo_and_header.png b/frontend/gamma/images/old/iPhone/logo_and_header.png Binary files differnew file mode 100644 index 0000000..0fe26a3 --- a/dev/null +++ b/frontend/gamma/images/old/iPhone/logo_and_header.png diff --git a/frontend/gamma/images/old/iPhone/password_background.png b/frontend/gamma/images/old/iPhone/password_background.png Binary files differnew file mode 100644 index 0000000..9432573 --- a/dev/null +++ b/frontend/gamma/images/old/iPhone/password_background.png diff --git a/frontend/gamma/images/old/iPhone/pinstripes.png b/frontend/gamma/images/old/iPhone/pinstripes.png Binary files differnew file mode 100644 index 0000000..c997775 --- a/dev/null +++ b/frontend/gamma/images/old/iPhone/pinstripes.png diff --git a/frontend/gamma/images/old/iPhone/thumb.png b/frontend/gamma/images/old/iPhone/thumb.png Binary files differnew file mode 100644 index 0000000..cefa8fc --- a/dev/null +++ b/frontend/gamma/images/old/iPhone/thumb.png diff --git a/frontend/gamma/images/old/iPhone/toggle.png b/frontend/gamma/images/old/iPhone/toggle.png Binary files differnew file mode 100644 index 0000000..3b62ebf --- a/dev/null +++ b/frontend/gamma/images/old/iPhone/toggle.png diff --git a/frontend/gamma/images/old/iPhone/toggleOn.png b/frontend/gamma/images/old/iPhone/toggleOn.png Binary files differnew file mode 100644 index 0000000..b016814 --- a/dev/null +++ b/frontend/gamma/images/old/iPhone/toggleOn.png diff --git a/frontend/gamma/images/old/iPhone/toolbar.png b/frontend/gamma/images/old/iPhone/toolbar.png Binary files differnew file mode 100644 index 0000000..3dde94c --- a/dev/null +++ b/frontend/gamma/images/old/iPhone/toolbar.png diff --git a/frontend/gamma/images/old/iPhone/whiteButton.png b/frontend/gamma/images/old/iPhone/whiteButton.png Binary files differnew file mode 100644 index 0000000..5514b27 --- a/dev/null +++ b/frontend/gamma/images/old/iPhone/whiteButton.png diff --git a/frontend/gamma/images/old/loading/loadingBar.gif b/frontend/gamma/images/old/loading/loadingBar.gif Binary files differnew file mode 100644 index 0000000..b111948 --- a/dev/null +++ b/frontend/gamma/images/old/loading/loadingBar.gif diff --git a/frontend/gamma/images/old/loading/loadingBarProgress.png b/frontend/gamma/images/old/loading/loadingBarProgress.png Binary files differnew file mode 100644 index 0000000..68436ed --- a/dev/null +++ b/frontend/gamma/images/old/loading/loadingBarProgress.png diff --git a/frontend/gamma/images/old/loading/news.gif b/frontend/gamma/images/old/loading/news.gif Binary files differnew file mode 100644 index 0000000..33d70b5 --- a/dev/null +++ b/frontend/gamma/images/old/loading/news.gif diff --git a/frontend/gamma/images/old/lock/background_star.png b/frontend/gamma/images/old/lock/background_star.png Binary files differnew file mode 100644 index 0000000..4dff077 --- a/dev/null +++ b/frontend/gamma/images/old/lock/background_star.png diff --git a/frontend/gamma/images/old/lock/locked.png b/frontend/gamma/images/old/lock/locked.png Binary files differnew file mode 100644 index 0000000..e00d5f6 --- a/dev/null +++ b/frontend/gamma/images/old/lock/locked.png diff --git a/frontend/gamma/images/old/lock/locked_hover.png b/frontend/gamma/images/old/lock/locked_hover.png Binary files differnew file mode 100644 index 0000000..62ad133 --- a/dev/null +++ b/frontend/gamma/images/old/lock/locked_hover.png diff --git a/frontend/gamma/images/old/lock/unlocked.png b/frontend/gamma/images/old/lock/unlocked.png Binary files differnew file mode 100644 index 0000000..13eadfe --- a/dev/null +++ b/frontend/gamma/images/old/lock/unlocked.png diff --git a/frontend/gamma/images/old/lock/unlocked_hover.png b/frontend/gamma/images/old/lock/unlocked_hover.png Binary files differnew file mode 100644 index 0000000..1a45c2f --- a/dev/null +++ b/frontend/gamma/images/old/lock/unlocked_hover.png diff --git a/frontend/gamma/images/old/logo.png b/frontend/gamma/images/old/logo.png Binary files differnew file mode 100644 index 0000000..62b58d9 --- a/dev/null +++ b/frontend/gamma/images/old/logo.png diff --git a/frontend/gamma/images/old/logo_blue.png b/frontend/gamma/images/old/logo_blue.png Binary files differnew file mode 100644 index 0000000..fff4a51 --- a/dev/null +++ b/frontend/gamma/images/old/logo_blue.png diff --git a/frontend/gamma/images/old/main/blocks/cardGridBackground.png b/frontend/gamma/images/old/main/blocks/cardGridBackground.png Binary files differnew file mode 100644 index 0000000..66dabf8 --- a/dev/null +++ b/frontend/gamma/images/old/main/blocks/cardGridBackground.png diff --git a/frontend/gamma/images/old/main/blocks/cardGridStripes.png b/frontend/gamma/images/old/main/blocks/cardGridStripes.png Binary files differnew file mode 100644 index 0000000..fdda774 --- a/dev/null +++ b/frontend/gamma/images/old/main/blocks/cardGridStripes.png diff --git a/frontend/gamma/images/old/main/blocks/directLoginGridBackground.png b/frontend/gamma/images/old/main/blocks/directLoginGridBackground.png Binary files differnew file mode 100644 index 0000000..92dd1b8 --- a/dev/null +++ b/frontend/gamma/images/old/main/blocks/directLoginGridBackground.png diff --git a/frontend/gamma/images/old/main/blocks/directLoginGridStripes.png b/frontend/gamma/images/old/main/blocks/directLoginGridStripes.png Binary files differnew file mode 100644 index 0000000..a6fc345 --- a/dev/null +++ b/frontend/gamma/images/old/main/blocks/directLoginGridStripes.png diff --git a/frontend/gamma/images/old/main/blocks/otherPanelBackground.png b/frontend/gamma/images/old/main/blocks/otherPanelBackground.png Binary files differnew file mode 100644 index 0000000..d9f5ec5 --- a/dev/null +++ b/frontend/gamma/images/old/main/blocks/otherPanelBackground.png diff --git a/frontend/gamma/images/old/main/blocks/otherPanelBackground_selected.png b/frontend/gamma/images/old/main/blocks/otherPanelBackground_selected.png Binary files differnew file mode 100644 index 0000000..0ce1d0c --- a/dev/null +++ b/frontend/gamma/images/old/main/blocks/otherPanelBackground_selected.png diff --git a/frontend/gamma/images/old/main/grid/ascending.png b/frontend/gamma/images/old/main/grid/ascending.png Binary files differnew file mode 100644 index 0000000..9a05f48 --- a/dev/null +++ b/frontend/gamma/images/old/main/grid/ascending.png diff --git a/frontend/gamma/images/old/main/grid/createNewCardSplash.png b/frontend/gamma/images/old/main/grid/createNewCardSplash.png Binary files differnew file mode 100644 index 0000000..f7289a5 --- a/dev/null +++ b/frontend/gamma/images/old/main/grid/createNewCardSplash.png diff --git a/frontend/gamma/images/old/main/grid/createNewCardSplash_selected.png b/frontend/gamma/images/old/main/grid/createNewCardSplash_selected.png Binary files differnew file mode 100644 index 0000000..13d536f --- a/dev/null +++ b/frontend/gamma/images/old/main/grid/createNewCardSplash_selected.png diff --git a/frontend/gamma/images/old/main/grid/descending.png b/frontend/gamma/images/old/main/grid/descending.png Binary files differnew file mode 100644 index 0000000..868857b --- a/dev/null +++ b/frontend/gamma/images/old/main/grid/descending.png diff --git a/frontend/gamma/images/old/main/grid/directLogins/ascending.png b/frontend/gamma/images/old/main/grid/directLogins/ascending.png Binary files differnew file mode 100644 index 0000000..e1ace30 --- a/dev/null +++ b/frontend/gamma/images/old/main/grid/directLogins/ascending.png diff --git a/frontend/gamma/images/old/main/grid/directLogins/descending.png b/frontend/gamma/images/old/main/grid/directLogins/descending.png Binary files differnew file mode 100644 index 0000000..47b0685 --- a/dev/null +++ b/frontend/gamma/images/old/main/grid/directLogins/descending.png diff --git a/frontend/gamma/images/old/main/grid/directLogins/unsorted.png b/frontend/gamma/images/old/main/grid/directLogins/unsorted.png Binary files differnew file mode 100644 index 0000000..ecf674e --- a/dev/null +++ b/frontend/gamma/images/old/main/grid/directLogins/unsorted.png diff --git a/frontend/gamma/images/old/main/grid/favicon.png b/frontend/gamma/images/old/main/grid/favicon.png Binary files differnew file mode 100644 index 0000000..00d208d --- a/dev/null +++ b/frontend/gamma/images/old/main/grid/favicon.png diff --git a/frontend/gamma/images/old/main/grid/running_search.gif b/frontend/gamma/images/old/main/grid/running_search.gif Binary files differnew file mode 100644 index 0000000..d02d3b7 --- a/dev/null +++ b/frontend/gamma/images/old/main/grid/running_search.gif diff --git a/frontend/gamma/images/old/main/grid/search.png b/frontend/gamma/images/old/main/grid/search.png Binary files differnew file mode 100644 index 0000000..5bc8d62 --- a/dev/null +++ b/frontend/gamma/images/old/main/grid/search.png diff --git a/frontend/gamma/images/old/main/grid/unsorted.png b/frontend/gamma/images/old/main/grid/unsorted.png Binary files differnew file mode 100644 index 0000000..4bbcee3 --- a/dev/null +++ b/frontend/gamma/images/old/main/grid/unsorted.png diff --git a/frontend/gamma/images/old/main/messageBoxBackground.png b/frontend/gamma/images/old/main/messageBoxBackground.png Binary files differnew file mode 100644 index 0000000..de598b2 --- a/dev/null +++ b/frontend/gamma/images/old/main/messageBoxBackground.png diff --git a/frontend/gamma/images/old/main/messageBoxCloseButton.png b/frontend/gamma/images/old/main/messageBoxCloseButton.png Binary files differnew file mode 100644 index 0000000..061a7bb --- a/dev/null +++ b/frontend/gamma/images/old/main/messageBoxCloseButton.png diff --git a/frontend/gamma/images/old/main/messageBoxCloseButtonActive.png b/frontend/gamma/images/old/main/messageBoxCloseButtonActive.png Binary files differnew file mode 100644 index 0000000..dbc6871 --- a/dev/null +++ b/frontend/gamma/images/old/main/messageBoxCloseButtonActive.png diff --git a/frontend/gamma/images/old/main/tabs/cardsBackground.png b/frontend/gamma/images/old/main/tabs/cardsBackground.png Binary files differnew file mode 100644 index 0000000..dd3643e --- a/dev/null +++ b/frontend/gamma/images/old/main/tabs/cardsBackground.png diff --git a/frontend/gamma/images/old/main/tabs/directLoginBackground.png b/frontend/gamma/images/old/main/tabs/directLoginBackground.png Binary files differnew file mode 100644 index 0000000..23a9b22 --- a/dev/null +++ b/frontend/gamma/images/old/main/tabs/directLoginBackground.png diff --git a/frontend/gamma/images/old/main/tabs/groupsBackground.png b/frontend/gamma/images/old/main/tabs/groupsBackground.png Binary files differnew file mode 100644 index 0000000..9cbc9ba --- a/dev/null +++ b/frontend/gamma/images/old/main/tabs/groupsBackground.png diff --git a/frontend/gamma/images/old/main/tabs/itemsBackground.png b/frontend/gamma/images/old/main/tabs/itemsBackground.png Binary files differnew file mode 100644 index 0000000..1a276a5 --- a/dev/null +++ b/frontend/gamma/images/old/main/tabs/itemsBackground.png diff --git a/frontend/gamma/images/old/main/tabs/selectionHighligher.png b/frontend/gamma/images/old/main/tabs/selectionHighligher.png Binary files differnew file mode 100644 index 0000000..f93fb02 --- a/dev/null +++ b/frontend/gamma/images/old/main/tabs/selectionHighligher.png diff --git a/frontend/gamma/images/old/main/tabs/selectionHighligherGray copy.png b/frontend/gamma/images/old/main/tabs/selectionHighligherGray copy.png Binary files differnew file mode 100644 index 0000000..7741a7a --- a/dev/null +++ b/frontend/gamma/images/old/main/tabs/selectionHighligherGray copy.png diff --git a/frontend/gamma/images/old/main/tabs/selectionHighligherGray.png b/frontend/gamma/images/old/main/tabs/selectionHighligherGray.png Binary files differnew file mode 100644 index 0000000..8f6a690 --- a/dev/null +++ b/frontend/gamma/images/old/main/tabs/selectionHighligherGray.png diff --git a/frontend/gamma/images/old/main/tabs/tagsBackground.png b/frontend/gamma/images/old/main/tabs/tagsBackground.png Binary files differnew file mode 100644 index 0000000..4a8091d --- a/dev/null +++ b/frontend/gamma/images/old/main/tabs/tagsBackground.png diff --git a/frontend/gamma/images/old/main/userInfoBackground.png b/frontend/gamma/images/old/main/userInfoBackground.png Binary files differnew file mode 100644 index 0000000..6756c83 --- a/dev/null +++ b/frontend/gamma/images/old/main/userInfoBackground.png diff --git a/frontend/gamma/images/old/main/userInfoBullet.png b/frontend/gamma/images/old/main/userInfoBullet.png Binary files differnew file mode 100644 index 0000000..3817764 --- a/dev/null +++ b/frontend/gamma/images/old/main/userInfoBullet.png diff --git a/frontend/gamma/images/old/new_background.png b/frontend/gamma/images/old/new_background.png Binary files differnew file mode 100644 index 0000000..f946a47 --- a/dev/null +++ b/frontend/gamma/images/old/new_background.png diff --git a/frontend/gamma/images/old/new_background_left.png b/frontend/gamma/images/old/new_background_left.png Binary files differnew file mode 100644 index 0000000..e9bd958 --- a/dev/null +++ b/frontend/gamma/images/old/new_background_left.png diff --git a/frontend/gamma/images/old/note.png b/frontend/gamma/images/old/note.png Binary files differnew file mode 100644 index 0000000..4e43691 --- a/dev/null +++ b/frontend/gamma/images/old/note.png diff --git a/frontend/gamma/images/old/passwordField/background copy.png b/frontend/gamma/images/old/passwordField/background copy.png Binary files differnew file mode 100644 index 0000000..05050bb --- a/dev/null +++ b/frontend/gamma/images/old/passwordField/background copy.png diff --git a/frontend/gamma/images/old/passwordField/background.png b/frontend/gamma/images/old/passwordField/background.png Binary files differnew file mode 100644 index 0000000..3835a86 --- a/dev/null +++ b/frontend/gamma/images/old/passwordField/background.png diff --git a/frontend/gamma/images/old/ruler/exit.png b/frontend/gamma/images/old/ruler/exit.png Binary files differnew file mode 100644 index 0000000..30ab430 --- a/dev/null +++ b/frontend/gamma/images/old/ruler/exit.png diff --git a/frontend/gamma/images/old/ruler/exit_selected.png b/frontend/gamma/images/old/ruler/exit_selected.png Binary files differnew file mode 100644 index 0000000..07dfca6 --- a/dev/null +++ b/frontend/gamma/images/old/ruler/exit_selected.png diff --git a/frontend/gamma/images/old/ruler/marker.png b/frontend/gamma/images/old/ruler/marker.png Binary files differnew file mode 100644 index 0000000..8d12a88 --- a/dev/null +++ b/frontend/gamma/images/old/ruler/marker.png diff --git a/frontend/gamma/images/old/ruler/next.png b/frontend/gamma/images/old/ruler/next.png Binary files differnew file mode 100644 index 0000000..9d9662c --- a/dev/null +++ b/frontend/gamma/images/old/ruler/next.png diff --git a/frontend/gamma/images/old/ruler/previous.png b/frontend/gamma/images/old/ruler/previous.png Binary files differnew file mode 100644 index 0000000..39f5da3 --- a/dev/null +++ b/frontend/gamma/images/old/ruler/previous.png diff --git a/frontend/gamma/images/old/ruler/ruler.png b/frontend/gamma/images/old/ruler/ruler.png Binary files differnew file mode 100644 index 0000000..546fa7b --- a/dev/null +++ b/frontend/gamma/images/old/ruler/ruler.png diff --git a/frontend/gamma/images/old/ruler/small_next.png b/frontend/gamma/images/old/ruler/small_next.png Binary files differnew file mode 100644 index 0000000..a35c66b --- a/dev/null +++ b/frontend/gamma/images/old/ruler/small_next.png diff --git a/frontend/gamma/images/old/ruler/small_next_disabled.png b/frontend/gamma/images/old/ruler/small_next_disabled.png Binary files differnew file mode 100644 index 0000000..69e7f31 --- a/dev/null +++ b/frontend/gamma/images/old/ruler/small_next_disabled.png diff --git a/frontend/gamma/images/old/ruler/small_next_selected.png b/frontend/gamma/images/old/ruler/small_next_selected.png Binary files differnew file mode 100644 index 0000000..b8aa0c8 --- a/dev/null +++ b/frontend/gamma/images/old/ruler/small_next_selected.png diff --git a/frontend/gamma/images/old/ruler/small_previous.png b/frontend/gamma/images/old/ruler/small_previous.png Binary files differnew file mode 100644 index 0000000..03f90f7 --- a/dev/null +++ b/frontend/gamma/images/old/ruler/small_previous.png diff --git a/frontend/gamma/images/old/ruler/small_previous_disabled.png b/frontend/gamma/images/old/ruler/small_previous_disabled.png Binary files differnew file mode 100644 index 0000000..86a7565 --- a/dev/null +++ b/frontend/gamma/images/old/ruler/small_previous_disabled.png diff --git a/frontend/gamma/images/old/ruler/small_previous_selected.png b/frontend/gamma/images/old/ruler/small_previous_selected.png Binary files differnew file mode 100644 index 0000000..5c61b45 --- a/dev/null +++ b/frontend/gamma/images/old/ruler/small_previous_selected.png diff --git a/frontend/gamma/images/old/tabPanels/background.png b/frontend/gamma/images/old/tabPanels/background.png Binary files differnew file mode 100644 index 0000000..17350c9 --- a/dev/null +++ b/frontend/gamma/images/old/tabPanels/background.png diff --git a/frontend/gamma/images/old/tips/Tips_background.png b/frontend/gamma/images/old/tips/Tips_background.png Binary files differnew file mode 100644 index 0000000..34170b9 --- a/dev/null +++ b/frontend/gamma/images/old/tips/Tips_background.png diff --git a/frontend/gamma/images/old/tips/close.png b/frontend/gamma/images/old/tips/close.png Binary files differnew file mode 100644 index 0000000..554fc8e --- a/dev/null +++ b/frontend/gamma/images/old/tips/close.png diff --git a/frontend/gamma/images/old/tips/open.png b/frontend/gamma/images/old/tips/open.png Binary files differnew file mode 100644 index 0000000..66861d8 --- a/dev/null +++ b/frontend/gamma/images/old/tips/open.png diff --git a/frontend/gamma/images/old/tooltips/body.png b/frontend/gamma/images/old/tooltips/body.png Binary files differnew file mode 100644 index 0000000..ae5b5a3 --- a/dev/null +++ b/frontend/gamma/images/old/tooltips/body.png diff --git a/frontend/gamma/images/old/tooltips/body_bottom.png b/frontend/gamma/images/old/tooltips/body_bottom.png Binary files differnew file mode 100644 index 0000000..4567b5f --- a/dev/null +++ b/frontend/gamma/images/old/tooltips/body_bottom.png diff --git a/frontend/gamma/images/old/tooltips/bottom_arrow.png b/frontend/gamma/images/old/tooltips/bottom_arrow.png Binary files differnew file mode 100644 index 0000000..5884c94 --- a/dev/null +++ b/frontend/gamma/images/old/tooltips/bottom_arrow.png diff --git a/frontend/gamma/images/old/tooltips/left_arrow.png b/frontend/gamma/images/old/tooltips/left_arrow.png Binary files differnew file mode 100644 index 0000000..290d062 --- a/dev/null +++ b/frontend/gamma/images/old/tooltips/left_arrow.png diff --git a/frontend/gamma/images/old/tooltips/right_arrow.png b/frontend/gamma/images/old/tooltips/right_arrow.png Binary files differnew file mode 100644 index 0000000..d0bb64f --- a/dev/null +++ b/frontend/gamma/images/old/tooltips/right_arrow.png diff --git a/frontend/gamma/images/old/tooltips/top_arrow.png b/frontend/gamma/images/old/tooltips/top_arrow.png Binary files differnew file mode 100644 index 0000000..a5e8845 --- a/dev/null +++ b/frontend/gamma/images/old/tooltips/top_arrow.png diff --git a/frontend/gamma/js/Clipperz/Async.js b/frontend/gamma/js/Clipperz/Async.js index 97d8ecf..f7a9517 100644 --- a/frontend/gamma/js/Clipperz/Async.js +++ b/frontend/gamma/js/Clipperz/Async.js @@ -513,9 +513,9 @@ MochiKit.Base.update(Clipperz.Async, { return MochiKit.Base.map(function (aResult) { if (aResult[0]) { return aResult[1]; - } else { + } else { throw aResult[1]; - } + } }, aResultList); }); diff --git a/frontend/gamma/js/Clipperz/Base.js b/frontend/gamma/js/Clipperz/Base.js index 76b2c3f..9d399d9 100644 --- a/frontend/gamma/js/Clipperz/Base.js +++ b/frontend/gamma/js/Clipperz/Base.js @@ -77,6 +77,11 @@ MochiKit.Base.update(Clipperz.Base, { return MochiKit.Base.compose(function(aResult) { return -aResult; }, aComparator); }, + 'caseInsensitiveKeyComparator': function (aKey) { + return function (a, b) { + return MochiKit.Base.compare(a[aKey].toLowerCase(), b[aKey].toLowerCase()); + } + }, //------------------------------------------------------------------------- /* 'dependsOn': function(module, deps) { diff --git a/frontend/gamma/js/Clipperz/PM/Connection.js b/frontend/gamma/js/Clipperz/PM/Connection.js index b4e8aaa..a05a310 100644 --- a/frontend/gamma/js/Clipperz/PM/Connection.js +++ b/frontend/gamma/js/Clipperz/PM/Connection.js @@ -41,6 +41,7 @@ Clipperz.PM.Connection = function (args) { this._clipperz_pm_crypto_version = null; this._connectionId = null; this._sharedSecret = null; + this._serverLockValue = null; return this; } @@ -146,6 +147,16 @@ MochiKit.Logging.logError("### Connection.defaultErrorHandler: " + anErrorString this._connectionId = aValue; }, + //------------------------------------------------------------------------- + + 'serverLockValue': function () { + return this._serverLockValue; + }, + + 'setServerLockValue': function (aValue) { + this._serverLockValue = aValue; + }, + //========================================================================= /* // TODO: ????? @@ -320,13 +331,12 @@ Clipperz.PM.Connection.SRP['1.0'].prototype = MochiKit.Base.update(new Clipperz. ], {trace:false}) }, - 'login': function(/*anUsername, aPassphrase*/) { + 'login': function(isReconnecting) { var deferredResult; var cryptoVersion; var srpConnection; cryptoVersion = this.clipperz_pm_crypto_version(); - deferredResult = new Clipperz.Async.Deferred("Connection.login", {trace:false}); deferredResult.addCallback(this.getCredentialsFunction()); deferredResult.addMethod(this, 'normalizedCredentials'); @@ -399,6 +409,13 @@ Clipperz.PM.Connection.SRP['1.0'].prototype = MochiKit.Base.update(new Clipperz. // if (this.oneTimePassword() != null) { /// ?? result = this.user().oneTimePasswordManager().archiveOneTimePassword(this.oneTimePassword())); // } + + if ((isReconnecting == true) && (this.serverLockValue() != someParameters['lock'])) { + throw Clipperz.PM.Connection.exception.StaleData; + } else { + this.setServerLockValue(someParameters['lock']); + } + return someParameters; }, this)); // deferredResult.addCallbackPass(MochiKit.Signal.signal, this, 'updatedProgressState', 'connection_loggedIn'); @@ -429,12 +446,19 @@ Clipperz.PM.Connection.SRP['1.0'].prototype = MochiKit.Base.update(new Clipperz. 'message': function(aMessageName, someParameters) { var args; + var parameters; + + parameters = someParameters || {}; + if (typeof(parameters['user']) != 'undefined') { + parameters['user']['lock'] = this.serverLockValue(); + } //console.log(">>> Connection.message", aMessageName, someParameters); args = { message: aMessageName, srpSharedSecret: this.sharedSecret(), - parameters: (someParameters || {}) +// parameters: (someParameters || {}) + parameters: parameters } return this.sendMessage(args); @@ -449,8 +473,7 @@ Clipperz.PM.Connection.SRP['1.0'].prototype = MochiKit.Base.update(new Clipperz. deferredResult.addMethod(this.proxy(), 'message', someArguments); deferredResult.addCallback(MochiKit.Base.bind(function(res) { if (typeof(res['lock']) != 'undefined') { -// TODO: ????? -// ?? this.user().setLock(res['lock']); + this.setServerLockValue(res['lock']); } return res; }, this)); @@ -587,6 +610,7 @@ Clipperz.PM.Connection.SRP['1.1'].prototype = MochiKit.Base.update(new Clipperz. Clipperz.PM.Connection.exception = { WrongChecksum: new MochiKit.Base.NamedError("Clipperz.ByteArray.exception.InvalidValue"), + StaleData: new MochiKit.Base.NamedError("Stale data"), UnexpectedRequest: new MochiKit.Base.NamedError("Clipperz.ByteArray.exception.UnexpectedRequest") }; diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/User.js b/frontend/gamma/js/Clipperz/PM/DataModel/User.js index 72d4006..646ce21 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/User.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/User.js @@ -44,7 +44,7 @@ Clipperz.PM.DataModel.User = function (args) { this._connectionVersion = 'current'; this._serverData = null; - this._serverLockValue = null; +// this._serverLockValue = null; this._transientState = null; this._deferredLocks = { @@ -93,7 +93,7 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, { }, //------------------------------------------------------------------------- - +/* 'serverLockValue': function () { return this._serverLockValue; }, @@ -101,7 +101,7 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, { 'setServerLockValue': function (aValue) { this._serverLockValue = aValue; }, - +*/ //------------------------------------------------------------------------- 'transientState': function () { @@ -220,8 +220,8 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, { deferredResult.addMethod(this, 'prepareRemoteDataWithKey'); deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'advanceProgress'); deferredResult.addMethod(this.connection(), 'register'); - deferredResult.addCallback(MochiKit.Base.itemgetter('lock')); - deferredResult.addMethod(this, 'setServerLockValue'); +// deferredResult.addCallback(MochiKit.Base.itemgetter('lock')); +// deferredResult.addMethod(this, 'setServerLockValue'); deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'userSuccessfullyRegistered'); // deferredResult.addErrback (MochiKit.Base.method(this, 'handleRegistrationFailure')); @@ -247,7 +247,7 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, { MochiKit.Base.method(this.data(), 'setValue', 'passphrase') ], [])); deferredResult.addErrback(MochiKit.Base.method(this, 'getPassphrase')); - deferredResult.addMethod(this.connection(), 'login'); + deferredResult.addMethod(this.connection(), 'login', false); deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'userSuccessfullyLoggedIn'); deferredResult.addErrback (MochiKit.Base.method(this, 'handleConnectionFallback')); @@ -329,7 +329,7 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, { var oneTimePasswords; //console.log(">>> ***************** user.unpackServerData", someServerData); - this.setServerLockValue(someServerData['lock']); +// this.setServerLockValue(someServerData['lock']); headerVersion = this.headerFormatVersion(someServerData['header']); @@ -662,8 +662,8 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, { MochiKit.Base.method(this, 'invokeMethodNamedOnRecords', 'commitTransientState'), MochiKit.Base.method(this, 'transientState'), - MochiKit.Base.itemgetter('lock'), - MochiKit.Base.method(this, 'setServerLockValue'), +// MochiKit.Base.itemgetter('lock'), +// MochiKit.Base.method(this, 'setServerLockValue'), MochiKit.Base.method(this, 'resetTransientState', true) ], {trace:false}); }, @@ -740,7 +740,7 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, { return aResult; }, this), result); deferredResult.addCallback(Clipperz.Async.setItem, result, 'version', Clipperz.PM.Crypto.encryptingFunctions.currentVersion); - deferredResult.addCallback(Clipperz.Async.setItem, result, 'lock', this.serverLockValue()); +// deferredResult.addCallback(Clipperz.Async.setItem, result, 'lock', this.serverLockValue()); deferredResult.callback(); return deferredResult; diff --git a/frontend/gamma/js/Clipperz/PM/PIN.js b/frontend/gamma/js/Clipperz/PM/PIN.js new file mode 100644 index 0000000..bc932b2 --- a/dev/null +++ b/frontend/gamma/js/Clipperz/PM/PIN.js @@ -0,0 +1,134 @@ +/* + +Copyright 2008-2011 Clipperz Srl + +This file is part of Clipperz Community Edition. +Clipperz Community Edition is an online password manager. +For further information about its features and functionalities please +refer to http://www.clipperz.com. + +* Clipperz Community Edition is free software: you can redistribute + it and/or modify it under the terms of the GNU Affero General Public + License as published by the Free Software Foundation, either version + 3 of the License, or (at your option) any later version. + +* Clipperz Community Edition is distributed in the hope that it will + be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU Affero General Public License for more details. + +* You should have received a copy of the GNU Affero General Public + License along with Clipperz Community Edition. If not, see + <http://www.gnu.org/licenses/>. + +*/ + +if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } +if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } +if (typeof(Clipperz.PM.PIN) == 'undefined') { Clipperz.PM.PIN = {}; } + +MochiKit.Base.update(Clipperz.PM.PIN, { + + //------------------------------------------------------------------------- + + '__repr__': function () { + return "[" + this.NAME + " " + this.VERSION + "]"; + }, + + //------------------------------------------------------------------------- + + 'toString': function () { + return this.__repr__(); + }, + + 'CREDENTIALS': 'CLIPPERZ.CREDENTIALS', + 'FAILURE_COUNT': 'CLIPPERZ.FAILED_LOGIN_COUNT', + 'ALLOWED_RETRY': 3, + + //------------------------------------------------------------------------- + + 'isSet': function () { + return (this.storedCredentials() != null); + }, + + 'storedCredentials': function () { + return localStorage[this.CREDENTIALS]; + }, + + //------------------------------------------------------------------------- + + 'recordFailedAttempt': function () { + var failureCount; + var result; + + failureCount = localStorage[this.FAILURE_COUNT]; + + if (failureCount == null) { + failureCount = 0 + } + + failureCount ++; + + if (failureCount < this.ALLOWED_RETRY) { + localStorage[this.FAILURE_COUNT] = failureCount; + result = failureCount; + } else { + this.removeLocalCredentials(); + result = -1; + } + + return result; + }, + + 'resetFailedAttemptCount': function () { + localStorage.removeItem(this.FAILURE_COUNT); + }, + + 'failureCount': function () { + return localStorage[this.FAILURE_COUNT]; + }, + + //------------------------------------------------------------------------- + + 'deriveKeyFromPin': function (aPIN) { + return Clipperz.Crypto.SHA.sha256(new Clipperz.ByteArray(aPIN)); + }, + + 'credentialsWithPIN': function (aPIN) { + var byteArrayValue; + var decryptedValue; + var result; + + byteArrayValue = (new Clipperz.ByteArray()).appendBase64String(localStorage[this.CREDENTIALS]); + decryptedValue = Clipperz.Crypto.AES.decrypt(this.deriveKeyFromPin(aPIN), byteArrayValue).asString(); + try { + result = Clipperz.Base.evalJSON(decryptedValue); + } catch (error) { + result = {'username':'fakeusername', 'passphrase':'fakepassphrase'}; + } + + return result; + }, + + 'setCredentialsWithPIN': function (aPIN, someCredentials) { + var encodedValue; + var byteArrayValue; + var encryptedValue; + + encodedValue = Clipperz.Base.serializeJSON(someCredentials); + byteArrayValue = new Clipperz.ByteArray(encodedValue); + encryptedValue = Clipperz.Crypto.AES.encrypt(this.deriveKeyFromPin(aPIN), byteArrayValue).toBase64String(); + + localStorage[this.CREDENTIALS] = encryptedValue; + }, + + 'removeLocalCredentials': function () { + localStorage.removeItem(this.CREDENTIALS); + localStorage.removeItem(this.FAILURE_COUNT); + }, + + //------------------------------------------------------------------------- + __syntaxFix__: "syntax fix" + +}); + diff --git a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.OfflineCache.js b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.OfflineCache.js new file mode 100644 index 0000000..803c590 --- a/dev/null +++ b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.OfflineCache.js @@ -0,0 +1,65 @@ +/* + +Copyright 2008-2011 Clipperz Srl + +This file is part of Clipperz Community Edition. +Clipperz Community Edition is an online password manager. +For further information about its features and functionalities please +refer to http://www.clipperz.com. + +* Clipperz Community Edition is free software: you can redistribute + it and/or modify it under the terms of the GNU Affero General Public + License as published by the Free Software Foundation, either version + 3 of the License, or (at your option) any later version. + +* Clipperz Community Edition is distributed in the hope that it will + be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU Affero General Public License for more details. + +* You should have received a copy of the GNU Affero General Public + License along with Clipperz Community Edition. If not, see + <http://www.gnu.org/licenses/>. + +*/ + +if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } +if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } + +//============================================================================= + +Clipperz.PM.Proxy.OfflineCache = function(args) { + args = args || {}; + + Clipperz.PM.Proxy.Offline.superclass.constructor.call(this, args); + +// this._dataStore = args.dataStore || new Clipperz.PM.Proxy.Offline.DataStore(args); + + return this; +} + +Clipperz.Base.extend(Clipperz.PM.Proxy.OfflineCache, Clipperz.PM.Proxy, { + + 'toString': function () { + return "Clipperz.PM.Proxy.OfflineCache"; + }, + + //------------------------------------------------------------------------- + +// 'dataStore': function () { +// return this._dataStore; +// }, + + //------------------------------------------------------------------------- + + 'sendMessage': function(aFunctionName, someParameters) { + throw Clipperz.Base.exception.MethodNotImplementedYet; +// return this.dataStore().processMessage(aFunctionName, someParameters); + }, + + //------------------------------------------------------------------------- + + __syntaxFix__: "syntax fix" + +}); + diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js index 2a03fdf..b9d7adf 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js @@ -406,6 +406,10 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.BaseComponent, /*Ext.Compo return result; }, + 'getAnchor': function (aValue) { + return '#' + this.getId(aValue); + }, + //------------------------------------------------------------------------- 'getElement': function(aValue) { diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js index 716d851..1010c9d 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js @@ -62,7 +62,8 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.Button, Clipperz.PM.UI.Com //------------------------------------------------------------------------- 'renderSelf': function () { - this.append(this.element(), {tag:'div', id:this.getId('wrapper'), cls:'button_wrapper', children:[ +/* + this.append(this.element(), {tag:'div', id:this.getId('button'), cls:'button_wrapper', children:[ {tag:'div', id:this.getId('bodyWrapper'), cls:'button_bodyWrapper', children:[ {tag:'div', id:this.getId('body'), cls:'button_body', children:[ {tag:'span', html:this.text()} @@ -70,36 +71,43 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.Button, Clipperz.PM.UI.Com {tag:'div', id:this.getId('footer'), cls:'button_footer'} ]} ]}); +*/ +/* + this.append(this.element(), {tag:'div', id:this.getId('button'), cls:'button', children:[ + {tag:'span', html:this.text()} + ]}); +*/ + this.append(this.element(), {tag:'a', id:this.getId('button'), cls:'button', html:this.text()}); if (this.isDefault()) { - MochiKit.DOM.addElementClass(this.getId('wrapper'), 'default'); + MochiKit.DOM.addElementClass(this.getId('button'), 'default'); } - MochiKit.Signal.connect(this.getId('wrapper'), 'onmouseenter', this, 'handleOnMouseEnter'); - MochiKit.Signal.connect(this.getId('wrapper'), 'onmouseleave', this, 'handleOnMouseLeave'); - MochiKit.Signal.connect(this.getId('wrapper'), 'onmousedown', this, 'handleOnMouseDown'); - MochiKit.Signal.connect(this.getId('wrapper'), 'onclick', this, 'handleOnClick'); +// MochiKit.Signal.connect(this.getId('button'), 'onmouseenter', this, 'handleOnMouseEnter'); +// MochiKit.Signal.connect(this.getId('button'), 'onmouseleave', this, 'handleOnMouseLeave'); +// MochiKit.Signal.connect(this.getId('button'), 'onmousedown', this, 'handleOnMouseDown'); + MochiKit.Signal.connect(this.getId('button'), 'onclick', this, 'handleOnClick'); }, //------------------------------------------------------------------------- - +/* 'handleOnMouseEnter': function (anEvent) { - MochiKit.DOM.addElementClass(this.getId('wrapper'), 'hover'); + MochiKit.DOM.addElementClass(this.getId('button'), 'hover'); }, 'handleOnMouseLeave': function (anEvent) { - MochiKit.DOM.removeElementClass(this.getId('wrapper'), 'hover'); - MochiKit.DOM.removeElementClass(this.getId('wrapper'), 'clicked'); + MochiKit.DOM.removeElementClass(this.getId('button'), 'hover'); + MochiKit.DOM.removeElementClass(this.getId('button'), 'clicked'); }, 'handleOnMouseDown': function (anEvent) { - MochiKit.DOM.addElementClass(this.getId('wrapper'), 'clicked'); + MochiKit.DOM.addElementClass(this.getId('button'), 'clicked'); }, - +*/ 'handleOnClick': function (anEvent) { MochiKit.Signal.signal(this, 'onclick', anEvent); }, - + //------------------------------------------------------------------------- __syntaxFix__: "syntax fix" }); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js index 1992154..1d816a9 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js @@ -98,14 +98,29 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.SimpleMessagePanel, Clippe }, 'setType': function (aValue) { - if (this.getElement('icon') != null) { - MochiKit.DOM.removeElementClass(this.getId('icon'), this._type); - MochiKit.DOM.addElementClass(this.getId('icon'), aValue); - } +// if (this.getElement('icon') != null) { +// MochiKit.DOM.removeElementClass(this.getId('icon'), this._type); +// MochiKit.DOM.addElementClass(this.getId('icon'), aValue); +// } this._type = aValue; }, + 'icon': function () { + var type = this.type(); + var result; + + if (type == 'ALERT') { + result = '!'; + } else if (type == 'INFO') { + result = 'i'; + } else if (type == 'ERROR') { + result = '!'; + } + + return result; + }, + //------------------------------------------------------------------------- 'buttons': function () { @@ -132,17 +147,20 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.SimpleMessagePanel, Clippe 'renderSelf': function() { this.append(this.element(), {tag:'div', cls:'SimpleMessagePanel', id:this.getId('panel'), children: [ - {tag:'div', cls:'header', children:[]}, +// {tag:'div', cls:'header', children:[]}, {tag:'div', cls:'body', children:[ - {tag:'div', id:this.getId('icon'), cls:'img ' + this.type(), children:[{tag:'div'}]}, +// {tag:'div', id:this.getId('icon'), cls:'img ' + this.type(), children:[{tag:'div'}]}, + {tag:'div', /*id:this.getId('icon'),*/ cls:'img ' + this.type(), children:[{tag:'canvas', id:this.getId('icon')}]}, {tag:'h3', id:this.getId('title'), html:this.title()}, {tag:'p', id:this.getId('text'), html:this.text()}, {tag:'div', id:this.getId('container')}, {tag:'div', id:this.getId('buttonArea'), cls:'buttonArea', children:[]} - ]}, - {tag:'div', cls:'footer', children:[]} + ]} +// {tag:'div', cls:'footer', children:[]} ]}); + Clipperz.PM.UI.Canvas.marks[this.icon()](this.getElement('icon'), "#ffffff"); + MochiKit.Signal.connect(this.getId('panel'), 'onkeydown', this, 'keyDownHandler'); this.renderButtons(); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardDetail.js b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardDetail.js new file mode 100644 index 0000000..32dfa63 --- a/dev/null +++ b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardDetail.js @@ -0,0 +1,299 @@ +/* + +Copyright 2008-2011 Clipperz Srl + +This file is part of Clipperz Community Edition. +Clipperz Community Edition is an online password manager. +For further information about its features and functionalities please +refer to http://www.clipperz.com. + +* Clipperz Community Edition is free software: you can redistribute + it and/or modify it under the terms of the GNU Affero General Public + License as published by the Free Software Foundation, either version + 3 of the License, or (at your option) any later version. + +* Clipperz Community Edition is distributed in the hope that it will + be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU Affero General Public License for more details. + +* You should have received a copy of the GNU Affero General Public + License along with Clipperz Community Edition. If not, see + <http://www.gnu.org/licenses/>. + +*/ + +Clipperz.Base.module('Clipperz.PM.UI.Mobile.Components'); + +Clipperz.PM.UI.Mobile.Components.CardDetail = function(args) { + args = args || {}; + + Clipperz.PM.UI.Mobile.Components.CardDetail.superclass.constructor.apply(this, arguments); + +// this._cardReference = null; + + return this; +} + +//============================================================================= + +Clipperz.Base.extend(Clipperz.PM.UI.Mobile.Components.CardDetail, Clipperz.PM.UI.Common.Components.BaseComponent, { + + //------------------------------------------------------------------------- + + 'toString': function () { + return "Clipperz.PM.UI.Mobile.Components.CardDetail component"; + }, + + //------------------------------------------------------------------------- +/* + 'cardReference': function () { + return this._cardReference; + }, + + 'setCardReference': function (aValue) { + this._cardReference = aValue; + }, +*/ + //------------------------------------------------------------------------- + + 'renderSelf': function () { +console.log("CardDetail.renderSelf"); + this.append(this.element(), {tag:'div', cls:'cardDetail', children:[ + {tag:'div', cls:'toolbar', children:[ + {tag:'a', href:'#', cls:'back', html:"List"}, + {tag:'h1', id:this.getId('cardTitle'), html:"…"} + ]}, + {tag:'div', cls:'scroll', id:this.getId('cardDetails'), children:[ + ]} + ]}); + }, +/* + 'renderSelf': function() { + this.append(this.element(), [ + {tag:'div', cls:'cardDetail', id:this.getId('cardDetail'), children:[ + {tag:'div', id:this.getId('progressBar')} //, + ]} + ]); + + this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); + MochiKit.Signal.signal(Clipperz.PM.UI.Common.Controllers.ProgressBarController.defaultController, 'updateProgress', 0); + }, +*/ + + 'setTitle': function (aValue) { + this.getElement('cardTitle').innerHTML = aValue; + }, + + 'fieldListElement': function () { + var result; + + result = this.getElement('fieldList'); + if (result == null) { + result = this.append(this.getElement('cardDetails'), {tag:'ul', cls:'rounded', id:this.getId('fieldList')}); + } + + return result; + }, + + 'renderFieldValues': function (someFieldValues) { + var fieldClass; + + if ((someFieldValues['actionType'] != 'NONE') || (someFieldValues['label'] != '') && (someFieldValues['value'] != '')) { + if (someFieldValues['isHidden'] == true) { + fieldClass = 'password'; + } else { + fieldClass = ''; + } + + this.append(this.fieldListElement(), {tag:'li', cls:'cardField', children:[ + {tag:'a', href:'#', cls:fieldClass, html:someFieldValues['value'], children:[ + {tag:'small', cls:'label', html:someFieldValues['label']} + ]} + ]}) + } + }, + + 'addField': function (aField) { + var deferredResult; + var fieldValues; + + fieldValues = {}; + deferredResult = new Clipperz.Async.Deferred("CardDetail.addField", {trace:false}); + deferredResult.addMethod(aField, 'label'); + deferredResult.addCallback(function (aValue) { fieldValues['label'] = aValue; }); + deferredResult.addMethod(aField, 'value'); + deferredResult.addCallback(function (aValue) { fieldValues['value'] = aValue; }); + deferredResult.addMethod(aField, 'actionType'); + deferredResult.addCallback(function (aValue) { fieldValues['actionType'] = aValue; }); + deferredResult.addMethod(aField, 'isHidden'); + deferredResult.addCallback(function (aValue) { fieldValues['isHidden'] = aValue; }); + deferredResult.addMethod(this, 'renderFieldValues', fieldValues); + deferredResult.callback(); + + return deferredResult; + }, + + //------------------------------------------------------------------------- + + 'directLoginElement': function () { + var result; + + result = this.getElement('directLoginList'); + if (result == null) { + this.append(this.getElement('cardDetails'), {tag:'h2', html:"Direct login"}); + result = this.append(this.getElement('cardDetails'), {tag:'ul', cls:'rounded', id:this.getId('directLoginList')}); + } + + return result; + }, + + 'addDirectLogin': function (aDirectLogin) { + this.append(this.directLoginElement(), {tag:'li', cls:'directLogin forward', children:[ + {tag:'a', href:'#', html:"direct login", children:[ + {tag:'small', cls:'favicon', children:[{tag:'img', cls:'favicon', src:'http://www.clipperz.com/favicon.ico'}]} + ]} + ]}) + +console.log("ADD DIRECT LOGIN", aDirectLogin); + }, + + //========================================================================= + + 'showCard': function (aCard) { + var deferredResult; + +// this.render(); + +console.log("CardDetail.showCard", aCard); + deferredResult = new Clipperz.Async.Deferred("CardDetail.showCard", {trace:false}); + deferredResult.addMethod(aCard, 'label'); + deferredResult.addMethod(this, 'setTitle'); + + deferredResult.addMethod(aCard, 'fields'); + deferredResult.addCallback(MochiKit.Base.values); + deferredResult.addCallback(MochiKit.Base.map, MochiKit.Base.method(this, 'addField')); + + deferredResult.addMethod(aCard, 'directLogins'); + deferredResult.addCallback(MochiKit.Base.values); + deferredResult.addCallback(MochiKit.Base.map, MochiKit.Base.method(this, 'addDirectLogin')); + + + deferredResult.callback(); + + return deferredResult; +// return Clipperz.Async.callbacks("CardDialogController.updateComponentState", [ +// MochiKit.Base.method(this.record(), 'hasPendingChanges'), +// MochiKit.Base.method(this.cardDialogComponent(), 'setShouldEnableSaving'), +// +// MochiKit.Base.method(this.record(), 'label'), +// MochiKit.Base.method(this.cardDialogComponent(), 'setTitle'), +// MochiKit.Base.method(this.record(), 'notes'), +// MochiKit.Base.method(this.cardDialogComponent(), 'setNotes'), +// +// MochiKit.Base.method(this.record(), 'fields'), +// MochiKit.Base.values, +// MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.method(this, 'addCardDialogComponentWithField')), +// +// MochiKit.Base.method(this.record(), 'directLogins'), +// MochiKit.Base.values, +// MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.method(this, 'addCardDialogComponentWithDirectLogin')), +// +// MochiKit.Base.method(this.cardDialogComponent(), 'resetNewFieldInputs'), +// MochiKit.Base.noop +// ], {trace:false}); + + }, + + //========================================================================= + + 'showCardDetails': function (someData) { + this.element().innerHTML = ''; + this.append(this.element(), [ + {tag:'fieldset', id:this.getId('fields'), children:MochiKit.Base.map(function (aFieldData) { + return {tag:'div', cls:'row', children:[ + {tag:'label', html:aFieldData['label']}, +// {tag:'span', cls:('fieldValue ' + (aFieldData['isHidden'] ? 'password' : 'text')), html:aFieldData['value']} + {tag:'div', cls:('fieldValue ' + (aFieldData['isHidden'] ? 'password' : 'text')), children:[ + {tag:'div', children:[{tag:'p', html:aFieldData['value']}]} + ]} +// {tag:'input', type:'text', cls:('fieldValue ' + (aFieldData['isHidden'] ? 'password' : 'text')), value:aFieldData['value'], disabled:true} + + ]} + }, someData['fields'])} + ]); + + MochiKit.Iter.forEach(MochiKit.Selector.findChildElements(this.element(), ['span.password']), MochiKit.Base.bind(function (aPasswordElement) { + MochiKit.Signal.connect(aPasswordElement, 'onclick', function (anEvent) { alert(MochiKit.DOM.scrapeText(anEvent.src())); }) + }, this)); + + if (someData['directLogins'].length > 0) { + this.append(this.element(), [ + {tag:'h2', html:"Direct logins"}, + {tag:'fieldset', id:this.getId('directLogins'), children:MochiKit.Base.map(function (aDirectLoginData) { + return {tag:'div', cls:'row', id:('directLogin_' + aDirectLoginData['_reference']), children:[ + {tag:'img', cls:'favicon', src:aDirectLoginData['favicon']}, +// {tag:'input', cls:'directLogin', disabled:'disabled', type:'text', name:aDirectLoginData['label'], value:aDirectLoginData['label']} + {tag:'span', cls:'directLogin', html:aDirectLoginData['label']} + ]} + }, someData['directLogins'])} + ]); + + MochiKit.Base.map(MochiKit.Base.bind(function (aRowNode) { + MochiKit.Signal.connect(aRowNode, 'onclick', this, 'directLoginClickHandler'); + }, this), + MochiKit.Selector.findChildElements(this.getElement('directLogins'), ['div.row']) + ) + }; + + if (someData['notes'] != '') { + this.append(this.element(), [ + {tag:'h2', html:"Notes"}, + {tag:'fieldset', id:this.getId('fieldset'), children:[ + {tag:'div', cls:'row notes', children:[ + {tag:'span', html:someData['notes']} + ]} + ]} + ]); + }; + + return true; + }, + + //------------------------------------------------------------------------- +/* + 'toggleClickHandler': function (anEvent) { + var nextState; + var fieldValue; + +//console.log("TOGGLE"); + anEvent.preventDefault; + fieldValue = MochiKit.Selector.findChildElements(anEvent.src().parentNode.parentNode, ['span.password'])[0]; + + nextState = (MochiKit.DOM.getNodeAttribute(anEvent.src(), 'toggled') != 'true'); + if (nextState) { + MochiKit.DOM.removeElementClass(fieldValue, 'clear'); + } else { + MochiKit.DOM.addElementClass(fieldValue, 'clear'); + } + + MochiKit.DOM.setNodeAttribute(anEvent.src(), 'toggled', nextState); + }, +* / + //========================================================================= +/* + 'directLoginClickHandler': function (anEvent) { + anEvent.preventDefault(); + + if (/(directLogin_)/.test(anEvent.src().id)) { + var directLoginReference; + + directLoginReference = anEvent.src().id.match(/(directLogin_)(.*)/)[2]; + MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'selectedDirectLogin', {cardReference:this.cardReference(), directLoginReference:directLoginReference}); + } + }, +*/ + //========================================================================= + + __syntaxFix__: "syntax fix" +}); diff --git a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardList.js b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardList.js index c3f2701..a4aa212 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardList.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardList.js @@ -23,12 +23,12 @@ refer to http://www.clipperz.com. */ -Clipperz.Base.module('Clipperz.PM.UI.iPhone.Components'); +Clipperz.Base.module('Clipperz.PM.UI.Mobile.Components'); -Clipperz.PM.UI.iPhone.Components.CardList = function(args) { +Clipperz.PM.UI.Mobile.Components.CardList = function(args) { args = args || {}; - Clipperz.PM.UI.iPhone.Components.CardList.superclass.constructor.apply(this, arguments); + Clipperz.PM.UI.Mobile.Components.CardList.superclass.constructor.apply(this, arguments); this._cardDetail = null; @@ -37,44 +37,97 @@ Clipperz.PM.UI.iPhone.Components.CardList = function(args) { //============================================================================= -Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.CardList, Clipperz.PM.UI.Common.Components.BaseComponent, { +Clipperz.Base.extend(Clipperz.PM.UI.Mobile.Components.CardList, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { - return "Clipperz.PM.UI.iPhone.Components.CardList component"; + return "Clipperz.PM.UI.Mobile.Components.CardList component"; }, //------------------------------------------------------------------------- - 'renderSelf': function(/*aContainer, aPosition*/) { - this.append(this.element(), [ - {tag:'div', cls:'toolbar', id:'toolbar', children:[ - {tag:'h1', id:'pageTitle', html:"cards"}, - {tag:'a', id:'backButton', cls:'button', href:'#', html:"cards"} + 'renderSelf': function () { + this.append(this.element(), {tag:'div', cls:'cardList', children:[ + {tag:'div', cls:'toolbar', children:[ + {tag:'h1', html:"clipperz"}, +// {tag:'input', name:'search', type:'search', autocomplete:'off', placeholder:"search", id:this.getId('search')}, + {tag:'a', href:'#', id:'settings', cls:'button', html:"*"} ]}, - {tag:'div', cls:'cardList', id:this.getId('cardList'), children:[ - {tag:'form', title:'search', cls:'panel cardListSearchForm', id:this.getId('cardListSearchForm'), children:[ - {tag:'input', type:'search', name:'search', value:"", placeholder:"search", id:this.getId('searchField')} - ]}, - {tag:'ul', cls:'panel cardListPanel', id:this.getId('cardListPanel'), children:[]} - ]}, - {tag:'div', cls:'panel cardDetailPanel', id:this.getId('cardDetail')} - ]); - - MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onsubmit', this, 'searchHandler'); - MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onkeydown', this, 'searchHandler'); - MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onkeyup', this, 'searchHandler'); + {tag:'div', cls:'scroll', id:this.getId('listBox'), children:[ + {tag:'ul', cls:'rounded', id:this.getId('list'), children:[ + {tag:'li', html:'loading'} + ]} + ]} + ]}); + + MochiKit.Signal.connect(this.getElement('list'), 'onclick', this, 'cardSelectionHandler'); + MochiKit.Signal.connect(this.getElement('list'), 'ontouchstart', this, 'cardSelectionHandler'); +// MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onsubmit', this, 'searchHandler'); +// MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onkeydown', this, 'searchHandler'); +// MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onkeyup', this, 'searchHandler'); - MochiKit.Signal.connect(this.getElement('cardListPanel'), 'onclick', this, 'cardListClickHandler'); - MochiKit.Signal.connect('backButton', 'onclick', this, 'backButtonClickHandler'); +// MochiKit.Signal.connect(this.getElement('cardListPanel'), 'onclick', this, 'cardListClickHandler'); +// MochiKit.Signal.connect('backButton', 'onclick', this, 'backButtonClickHandler'); - MochiKit.Style.hideElement('backButton'); - MochiKit.Style.hideElement(this.getElement('cardDetail')); +// MochiKit.Style.hideElement('backButton'); +// MochiKit.Style.hideElement(this.getElement('cardDetail')); }, - //------------------------------------------------------------------------- + 'showCards': function (someCards) { + var cardListElement; + if (this.isFullyRendered() == false) { + this.render(); + }; + + cardListElement = this.getElement('list') + + cardInfo = { + '_rowObject': MochiKit.Async.succeed, + '_reference': MochiKit.Base.methodcaller('reference'), + '_searchableContent': MochiKit.Base.methodcaller('searchableContent'), + 'label': MochiKit.Base.methodcaller('label'), + 'favicon': MochiKit.Base.methodcaller('favicon') + }; + +//console.log("someCards", someCards); + deferredResult = new Clipperz.Async.Deferred("CardList.showCards", {trace:false}); + deferredResult.addCallback(MochiKit.Base.map, Clipperz.Async.collectResults("CardList.value - collectResults", cardInfo, {trace:false})); + deferredResult.addCallback(Clipperz.Async.collectAll); + deferredResult.addCallback(MochiKit.Base.methodcaller('sort', Clipperz.Base.caseInsensitiveKeyComparator('label'))); + deferredResult.addCallbackPass(MochiKit.DOM.replaceChildNodes, cardListElement); +// deferredResult.addCallbackPass(MochiKit.DOM.removeElementClass, cardListElement, 'loading'); + deferredResult.addCallback(MochiKit.Base.map, MochiKit.Base.method(this, 'appendCardToList', cardListElement)); + deferredResult.callback(someCards); + }, + + 'appendCardToList': function (aCardListElement, aCardInfo) { +//console.log("appendCardToList", aCardInfo); + this.append(aCardListElement, {tag:'li', cls:'cardListItem arrow', cardreference:aCardInfo['_reference'], children:[ + {tag:'a', href:'#', html:aCardInfo['label'], children:[ + {tag:'small', cls:'favicon', children:[{tag:'img', cls:'favicon', src:aCardInfo['favicon']}]} + ]} + ]}); + }, + + 'cardSelectionHandler': function (anEvent) { + var listElement; + var cardReference; + + anEvent.preventDefault(); + + listElement = anEvent.target(); + if (MochiKit.DOM.getNodeAttribute(listElement, 'cardreference') == null) { + listElement = MochiKit.DOM.getFirstParentByTagAndClassName(anEvent.target(), tagName='li', className='cardListItem'); + } + cardReference = MochiKit.DOM.getNodeAttribute(listElement, 'cardreference'); +console.log("###", listElement, cardReference); + // TODO: Notify card with reference MochiKit.DOM.getNodeAttribute(listElement, 'cardreference') has been selected + MochiKit.Signal.signal(this, 'selectedCard', cardReference); + }, + //------------------------------------------------------------------------- +/* 'searchHandler': function (anEvent) { if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ENTER')) { // RETURN anEvent.preventDefault(); @@ -127,7 +180,7 @@ Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.CardList, Clipperz.PM.UI.C 'cardDetail': function (someData) { if (this._cardDetail == null) { - this._cardDetail = new Clipperz.PM.UI.iPhone.Components.CardDetail({element:this.getElement('cardDetail')}); + this._cardDetail = new Clipperz.PM.UI.Mobile.Components.CardDetail({element:this.getElement('cardDetail')}); } return this._cardDetail; @@ -195,7 +248,7 @@ Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.CardList, Clipperz.PM.UI.C ], {duration:1, afterFinish:MochiKit.Base.method(this, 'removeCardDetail')}) }, - +*/ //========================================================================= __syntaxFix__: "syntax fix" }); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/LoginForm.js b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/LoginForm.js new file mode 100644 index 0000000..eafcdbc --- a/dev/null +++ b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/LoginForm.js @@ -0,0 +1,356 @@ +/* + +Copyright 2008-2011 Clipperz Srl + +This file is part of Clipperz Community Edition. +Clipperz Community Edition is an online password manager. +For further information about its features and functionalities please +refer to http://www.clipperz.com. + +* Clipperz Community Edition is free software: you can redistribute + it and/or modify it under the terms of the GNU Affero General Public + License as published by the Free Software Foundation, either version + 3 of the License, or (at your option) any later version. + +* Clipperz Community Edition is distributed in the hope that it will + be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU Affero General Public License for more details. + +* You should have received a copy of the GNU Affero General Public + License along with Clipperz Community Edition. If not, see + <http://www.gnu.org/licenses/>. + +*/ + +Clipperz.Base.module('Clipperz.PM.UI.Mobile.Components'); + +Clipperz.PM.UI.Mobile.Components.LoginForm = function(args) { + args = args || {}; + + this._pin = ''; + + this._message = null; + this._steps = 0; + this._actualSteps = 0; + + this._callback = null; + this._errorCallback = null; + + this._mode = 'CREDENTIALS'; + + Clipperz.PM.UI.Mobile.Components.LoginForm.superclass.constructor.apply(this, arguments); + + return this; +} + +//============================================================================= + +Clipperz.Base.extend(Clipperz.PM.UI.Mobile.Components.LoginForm, Clipperz.PM.UI.Common.Components.BaseComponent, { + + //------------------------------------------------------------------------- + + 'toString': function () { + return "Clipperz.PM.UI.Mobile.Components.LoginForm component"; + }, + + //------------------------------------------------------------------------- + + 'callback': function () { + return this._callback; + }, + + 'errorCallback': function () { + return this._errorCallback; + }, + + //------------------------------------------------------------------------- + + 'mode': function () { + return this._mode; + }, + + 'setMode': function (aValue) { + this._mode = aValue; + }, + + //.......................................................................... + + 'pin': function () { + return this._pin; + }, + + 'setPin': function (aValue) { + this._pin = aValue; + }, + + //.......................................................................... + + 'username': function () { + return this._username; + }, + + 'setUsername': function (aValue) { + this._username = aValue; + }, + + //.......................................................................... + + 'passphrase': function () { + return this._passphrase; + }, + + 'setPassphrase': function (aValue) { + this._passphrase = aValue; + }, + + //------------------------------------------------------------------------- + + 'message': function () { + return this._message; + }, + + '_setMessage': function (aValue) { + this._message = aValue; + + if (aValue == null) { + MochiKit.Style.hideElement(this.getElement('credentialsMessage')); + } else { + this.getElement('message').innerHTML = aValue; + MochiKit.Style.showElement(this.getElement('credentialsMessage')); + } + }, + + 'setMessage': function (aValue) { + this._setMessage(aValue); + MochiKit.DOM.removeElementClass(this.getElement('credentialsMessage'), 'error'); + }, + + 'setErrorMessage': function (aValue) { + this._setMessage(aValue); + MochiKit.DOM.addElementClass(this.getElement('credentialsMessage'), 'error'); + }, + + //------------------------------------------------------------------------- + + 'setCallbacks': function (args) { + this._callback = args['callback']; + this._errorCallback = args['errorCallback']; + }, + + 'showErrors': function (args) { +//console.log("LoginForm.showErrors", args); + if (args['previousFailedAttempt'] == 'LOGIN') { + this.setErrorMessage("Wrong credentials"); + } else if (args['previousFailedAttempt'] == 'PIN') { + if (args['failedAttempts'] == -1) { + this.setErrorMessage("Wrong PIN - Resetted"); + } else { + this.setErrorMessage("Wrong PIN"); + } + } else { + this.setMessage(null); + } + }, + + 'updateWithArgs': function (args) { + this.renderIfNeeded(); + this.setCallbacks(args); + this.showErrors(args); + this.updateRendering(); + }, + + 'showPinLogin': function (args) { + this.setPin(''); + this.setMode('PIN'); + this.updateWithArgs(args); + +// $(this.getAnchor('PIN')).focus(); + this.getElement('PIN').focus(); + }, + + 'showCredentialsLogin': function (args) { + this.setMode('CREDENTIALS'); + this.updateWithArgs(args); + + if (this.getElement('usernameField').value.length == 0) { +// $(this.getAnchor('usernameField')).focus(); + this.getElement('usernameField').focus(); + } else { +// $(this.getAnchor('passphraseField')).focus(); + this.getElement('passphraseField').focus(); + this.getElement('passphraseField').select(); + } + }, + + //------------------------------------------------------------------------- + + 'renderIfNeeded': function () { + if (this.isFullyRendered() == false) { + this.render(); + }; + this.updateRendering(); + }, + + 'updateRendering': function () { + MochiKit.Style.showElement(this.getElement('credentialsBody')); + MochiKit.Style.hideElement(this.getElement('validating')); + +// this.hideAllPanes(); + MochiKit.Base.map(function (aNode) { MochiKit.Style.hideElement(aNode); }, MochiKit.Selector.findDocElements('div.credentialsBody > div')); + if (this.mode() == 'CREDENTIALS') { + selectedPanel = this.getElement('credentials') + } else if (this.mode() == 'PIN') { + selectedPanel = this.getElement('pin') +// this.updatePinDisplay(); + } else { + throw 'Unhandled login form mode'; + } + MochiKit.Style.showElement(selectedPanel); + + MochiKit.Style.hideElement(this.getElement('validating')); + }, + + 'renderSelf': function() { + var selectedPanel; + this.append(this.element(), {tag:'div', id:'login', children:[ + {tag:'div', cls:'toolbar', children:[ + {tag:'h1', html:"clipperz"} + ]}, + {tag:'div', cls:'scroll', children:[ + //================================================================== + {tag:'div', cls:'credentialsMessage', id:this.getId('credentialsMessage'), children:[ + {tag:'h1', cls:'message', id:this.getId('message'), html:"Message"} + ]}, + //================================================================== + {tag:'div', cls:'credentialsBody', id:this.getId('credentialsBody'), children:[ + //-------------------------------------------------------------- + {tag:'div', cls:'pin', id:this.getId('pin'), children:[ + {tag:'form', cls:'scroll', id:this.getId('pinForm'), children:[ + {tag:'ul', cls:'edit rounded', children:[ + {tag:'li', children:[{tag:'input', type:'number', name:'PIN', placeholder:"PIN", id:this.getId('PIN') }]}, + ]}, + {tag:'a', href:'#', cls:'greenButton', id:this.getId('pinSubmitButton'), html:"Login"} + ]} + ]}, + //-------------------------------------------------------------- + {tag:'div', cls:'credentials', id:this.getId('credentials'), children:[ + {tag:'form', cls:'scroll', id:this.getId('credentialsForm'), children:[ + {tag:'ul', cls:'edit rounded', children:[ + {tag:'li', children:[{tag:'input', type:'email', name:'name', /*value:'joe',*/ placeholder:"username", id:this.getId('usernameField') }]}, + {tag:'li', children:[{tag:'input', type:'password', name:'passphrase', /*value:'clipperz',*/ placeholder:"passphrase", id:this.getId('passphraseField') }]} + ]}, + {tag:'a', href:'#', cls:'greenButton', id:this.getId('credentialsSubmitButton'), html:"Login"} +// {tag:'input', type:'submit', cls:'greenButton', id:this.getId('credentialsSubmitButton'), value:"Login"} + + ]} + ]}, + //-------------------------------------------------------------- + ]}, + //================================================================== + {tag:'div', cls:'validating', id:this.getId('validating'), children:[ + {tag:'div', cls:'loading', children:[ + {tag:'div', cls:'spinner', children:[ + {tag:'div', cls:'bar01'}, + {tag:'div', cls:'bar02'}, + {tag:'div', cls:'bar03'}, + {tag:'div', cls:'bar04'}, + {tag:'div', cls:'bar05'}, + {tag:'div', cls:'bar06'}, + {tag:'div', cls:'bar07'}, + {tag:'div', cls:'bar08'}, + {tag:'div', cls:'bar09'}, + {tag:'div', cls:'bar10'}, + {tag:'div', cls:'bar11'}, + {tag:'div', cls:'bar12'} + ]} + ]}, + {tag:'div', id:this.getId('loadingMessage')}, + {tag:'a', href:'#', cls:'grayButton', id:this.getId('loginCancelButton'), html:"Cancel"} + ]} + //================================================================== + ]} + ]}); + + MochiKit.Signal.connect(this.getElement('credentialsForm'), 'onsubmit', this, 'submitCredentialsHandler'); + MochiKit.Signal.connect(this.getElement('credentialsSubmitButton'), 'onclick', this, 'submitCredentialsHandler'); + + MochiKit.Signal.connect(this.getElement('pinForm'), 'onsubmit', this, 'submitPinHandler'); + MochiKit.Signal.connect(this.getElement('pinSubmitButton'), 'onclick', this, 'submitPinHandler'); + + MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'initProgress', this, 'initProgressHandle'); + MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'updateProgress', this, 'updateProgressHandle'); + MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'advanceProgress', this, 'advanceProgressHandle'); + MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'progressDone', this, 'progressDoneHandle'); + }, + + //------------------------------------------------------------------------- + + 'submitPinHandler': function (anEvent) { + var pin; + + this.setMessage(null); + pin = this.getElement('PIN').value; +// $(this.getAnchor('PIN')).blur(); + this.getElement('PIN').blur(); + + credentials = Clipperz.PM.PIN.credentialsWithPIN(pin); + this.loginWithCredentials(credentials); + }, + + 'submitCredentialsHandler': function (anEvent) { +//console.log("submitCredentialsHandler"); + var credentials; + + this.setMessage(null); + + credentials = {}; + credentials['username'] = this.getElement('usernameField').value; + credentials['passphrase'] = this.getElement('passphraseField').value; +// $(this.getAnchor('passphraseField')).blur(); + this.getElement('passphraseField').blur(); + + this.loginWithCredentials(credentials); + }, + + //------------------------------------------------------------------------- + + 'loginWithCredentials': function (someCredentials) { + var args; + + args = {}; + args['credentials'] = someCredentials; + args['errorCallback'] = this.errorCallback(); + + MochiKit.Style.hideElement(this.getElement('credentialsBody')); + MochiKit.Style.showElement(this.getElement('validating')); + + MochiKit.Async.callLater(0.1, this.callback(), args); + }, + + //------------------------------------------------------------------------- + + 'initProgressHandle': function (anEvent) { +//console.log("** initProgressHandle", anEvent); + this._steps = anEvent['steps']; + this._actualSteps = 0; + }, + + 'updateProgressHandle': function (anEvent) { +//console.log("** updateProgressHandle", anEvent); + this._steps += anEvent['extraSteps']; + }, + + 'advanceProgressHandle': function (anEvent) { +//console.log("** advanceProgressHandle", anEvent); + this._actualSteps ++; +//console.log("STEPS: " + this._actualSteps + "/" + this._steps); + }, + + 'progressDoneHandle': function (anEvent) { +//console.log("** progressDoneHandle", anEvent); + }, + + //------------------------------------------------------------------------- + __syntaxFix__: "syntax fix" +}); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Mobile/Controllers/MainController.js b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Controllers/MainController.js new file mode 100644 index 0000000..12a61f7 --- a/dev/null +++ b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Controllers/MainController.js @@ -0,0 +1,393 @@ +/* + +Copyright 2008-2011 Clipperz Srl + +This file is part of Clipperz Community Edition. +Clipperz Community Edition is an online password manager. +For further information about its features and functionalities please +refer to http://www.clipperz.com. + +* Clipperz Community Edition is free software: you can redistribute + it and/or modify it under the terms of the GNU Affero General Public + License as published by the Free Software Foundation, either version + 3 of the License, or (at your option) any later version. + +* Clipperz Community Edition is distributed in the hope that it will + be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU Affero General Public License for more details. + +* You should have received a copy of the GNU Affero General Public + License along with Clipperz Community Edition. If not, see + <http://www.gnu.org/licenses/>. + +*/ + +Clipperz.Base.module('Clipperz.PM.UI.Mobile.Controllers'); + +Clipperz.PM.UI.Mobile.Controllers.MainController = function() { + this._jQTouch = null; + this._user = null; + this._proxy = null; + this._loginForm = null; + this._cardList = null; + this._cardDetail = null; + + return this; +} + +MochiKit.Base.update(Clipperz.PM.UI.Mobile.Controllers.MainController.prototype, { + + 'toString': function () { + return "Clipperz.PM.UI.Mobile.Controllers.MainController"; + }, + + //------------------------------------------------------------------------- + + 'user': function () { + return this._user; + }, + + 'setUser': function (aValue) { + this._user = aValue; + }, + + //------------------------------------------------------------------------- + + 'jQTouch': function () { + return this._jQTouch; + }, + + 'setJQTouch': function (aValue) { + this._jQTouch = aValue; + }, + + //========================================================================= + + 'run': function () { + console.log("MainController.run"); + + MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'doLogin', MochiKit.Base.method(this, 'doLogin')); + Clipperz.DOM.Helper.overwrite(MochiKit.DOM.currentDocument().body, {tag:'div', id:'jqt', children:[ + {tag:'div', id:'loginForm'}, + {tag:'div', id:'cardList'}, + {tag:'div', id:'cardDetail'}, + {tag:'div', id:'preferences'} + ]}); + + this.showLoginForm(); + + this.initjQTouch(); + + +// this.showAddToHomeScreenBaloon(); +// this.selectInitialProxy(); + }, + + 'initjQTouch': function () { + var jqt; + + jqt = new $.jQTouch({ + icon: 'data:image/png;charset=utf-8;base64,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', +// icon4: 'jqtouch4.png', +// startupScreen: null, // Pass a string path to a 320px x 460px startup screen for full screen apps. + statusBar: 'black-translucent', // Styles the status bar when running as a fullscreen app. Other options are `default`, `black`, and `black-translucent`. +// addGlossToIcon: true, // Set to 'false' to prevent automatic glossy button effect on icon. + preloadImages: false, // Pass an array of image paths to load them before page loads. Ex: `['images/link_over.png', 'images/link_select.png']` + fixedViewport: true, // Removes the user's ability to scale the page. Ensures the site behaves more like an application. +// fullScreen: true, // The website will become a fullscreen application when saved to a user's home screen. Set to `false` to disable. +// fullScreenClass: 'fullscreen' // Adds a class to the `<body>` when running in full-screen mode, to allow for easy detection and styling. Set to `false` to disable. +// themeSelectionSelector: '#jqt #themes ul', // ??? + +// useAnimations: true, // Set to `false` to disable all animations. +// useFastTouch: true, // Removes ~350ms onClick delay when tapping a link (use in conjunction with the .tap() event) **Experimental** +// useTouchScroll: true, // Adds support for iOS5 scrolling. Set to false to disable. **Experimental** + + cacheGetRequests: false, // Automatically caches GET requests, so subsequent taps reference the pre-loaded views. (default: true) + +// backSelector: '.back, .cancel, .goback', // A CSS selector for back links/buttons. When clicked, the page history goes back one, automatically reversing whichever entrance animation was used. + +// cubeSelector: '.cube', // Link selector for a cube animation. +// dissolveSelector: '.dissolve', // Link selector for a dissolve animation. +// fadeSelector: '.fade', // Link selector for a fade animation. +// flipSelector: '.flip', // Link selector for a 3d flip animation. + formSelector: null, // Sets which forms are automatically submitted via Ajax. (default: 'form') +// popSelector: '.pop', // Link selector for a pop animation. (default: '.pop') +// slideSelector: 'body > * > ul li a', // Link selector for the default slide-left transition. By default applies to all links within an unordered list. Accepts any jQuery-capable selector `'li > a, a:not(.dontslide)'`, etc. (default: 'body > * > ul li a') +// slideupSelector: '.slideup', // Link selector for a slide up animation. (default: '.slideup') +// submitSelector: '.submit', // Selector which, when clicked, will submit its parent form (and close keyboard if open). (default: '.submit') +// swapSelector: '.swap', // Link selector for 3d swap animation. (default: '.swap') +// touchSelector: 'a, .touch', // Selector for items which are automatically given expanded touch events. This makes ordinary links more responsive and provides trigger events like `swipe` (default: 'a, .touch') + + debug: false + }); + + this.setJQTouch(jqt); + }, + + //========================================================================= + + 'showAddToHomeScreenBaloon': function () { +console.log(">>> showAddToHomeScreenBaloon"); + }, + + //------------------------------------------------------------------------- + + 'selectInitialProxy': function () { +//console.log(">>> selectInitialProxy"); + if (this.isOnline()) { +//console.log("--- selectInitialProxy: using default proxy"); + this._proxy = Clipperz.PM.Proxy.defaultProxy; + } else { + if (this.hasLocalData()) { +//console.log("--- selectInitialProxy: using local cache proxy"); + this._proxy = new Clipperz.PM.Proxy.OfflineCache({'shouldPayTolls':false}); + } else { + this.showOfflineError(); + } + } + }, + + //------------------------------------------------------------------------- + + 'showLoginForm': function (args) { + args = args || {}; + + args['callback'] = MochiKit.Base.method(this, 'doLogin'); + + if (Clipperz.PM.PIN.isSet()) { + args['errorCallback'] = MochiKit.Base.method(this, 'handleFailedPinLogin'); + this.loginForm().showPinLogin(args); + } else { + args['errorCallback'] = MochiKit.Base.method(this, 'handleFailedCredentialsLogin'); + this.loginForm().showCredentialsLogin(args); + } + }, + + //......................................................................... + + 'handleFailedCredentialsLogin': function () { +console.log("LOGIN FAILED"); + this.showLoginForm({'previousFailedAttempt':'LOGIN'}); + }, + + //......................................................................... + + 'handleFailedPinLogin': function () { + var failedAttempts; + var status; + + failedAttempts = Clipperz.PM.PIN.recordFailedAttempt(); + this.showLoginForm({'previousFailedAttempt':'PIN', 'failedAttempts': failedAttempts}); + }, + + //------------------------------------------------------------------------- + + 'doLogin': function (someArgs) { + var deferredResult; + var credentials; + var errorCallback; + var user; + var getPassphraseDelegate; + +//console.log(">>> MainController.doLogin", someArgs); + credentials = someArgs['credentials']; + errorCallback = someArgs['errorCallback'] || MochiKit.Base.noop; + + getPassphraseDelegate = MochiKit.Base.partial(MochiKit.Async.succeed, credentials.passphrase); + user = new Clipperz.PM.DataModel.User({'username':credentials.username, 'getPassphraseFunction':getPassphraseDelegate}); + + deferredResult = new Clipperz.Async.Deferred('MainController.doLogin', {trace:false}); + deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'initProgress', {'steps':4}); + deferredResult.addCallback(MochiKit.Async.wait, 0.1); + deferredResult.addMethod(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'deferredEntropyCollection'); + deferredResult.addMethod(user, 'login'); + deferredResult.addCallbacks( + MochiKit.Base.method(this, 'processSuccessfulLogin', user), + errorCallback + ); + deferredResult.callback(); + + return deferredResult; + }, + + //.......................................................................... + + 'processSuccessfulLogin': function (aUser) { + var deferredResult; + + deferredResult = new Clipperz.Async.Deferred('MainController.processSuccessfulLogin', {trace:false}); + deferredResult.addMethod(Clipperz.PM.PIN, 'resetFailedAttemptCount'); +// deferredResult.addMethod(this, 'removeLoginForm'); + deferredResult.addMethod(this, 'setUser', aUser); + deferredResult.addMethod(this, 'setupApplication'); + deferredResult.addMethod(this, 'runApplication'); + deferredResult.callback(); + + return deferredResult; + }, + + //------------------------------------------------------------------------- + + 'setupApplication': function () { + var deferredResult; + +console.log(">>> setupApplication"); + deferredResult = new Clipperz.Async.Deferred("MainController.setupApplication", {trace:false}); + deferredResult.addMethod(this, 'welcomeFirstTimeUser'); + deferredResult.addMethod(this, 'showPaymentReminder'); + deferredResult.addMethod(this, 'copyDataLocally'); + deferredResult.callback(arguments); + + return deferredResult; + }, + + + //.......................................................................... + + 'isFirstTimeUser': function () { + return false; + }, + + 'welcomeFirstTimeUser': function () { + var deferredResult; + + deferredResult = new Clipperz.Async.Deferred('MainController.welcomeFirstTimeUser', {trace:false}); + + if (this.isFirstTimeUser()) { + deferredResult.addCallback(function () { console.log("--> welcome"); }); + } + deferredResult.callback(); + + return deferredResult; + }, + + //.......................................................................... + + 'shouldShowPaymentReminder': function () { + return true; + }, + + 'showPaymentReminder': function () { + var deferredResult; + + deferredResult = new Clipperz.Async.Deferred('MainController.showPaymentReminder', {trace:false}); + + if (this.shouldShowPaymentReminder()) { + deferredResult.addCallback(function () { console.log("--> payment reminder"); }); + } + deferredResult.callback(); + + return deferredResult; + }, + + //.......................................................................... + + 'canCopyDataLocally': function () { + return false; + }, + + 'copyDataLocally': function () { + var deferredResult; + + deferredResult = new Clipperz.Async.Deferred('MainController.copyDataLocally', {trace:false}); + + if (this.canCopyDataLocally()) { + deferredResult.addCallback(function () { console.log("--> copy data locally"); }); + } + deferredResult.callback(); + + return deferredResult; + + }, + + //------------------------------------------------------------------------- + + 'runApplication': function () { + var deferredResult; + +//console.log(">>> runApplication"); + deferredResult = new Clipperz.Async.Deferred('MainController.runApplication', {trace:true}); + deferredResult.addMethod(this.user(), 'getRecords'); + deferredResult.addMethod(this, 'showCards'); + deferredResult.callback(); + + return deferredResult; + }, + + //========================================================================= + + 'showOfflineError': function (anException) { + alert("Error: " + anException); + throw anException; + }, + + //========================================================================= + + 'isOnline': function() { + return navigator.onLine; + }, + + 'hasLocalData': function() { + return false; + }, + + //========================================================================= + + 'loginForm': function() { + if (this._loginForm == null) { + this._loginForm = new Clipperz.PM.UI.Mobile.Components.LoginForm({element:MochiKit.DOM.getElement('loginForm')}); + } + + return this._loginForm; + }, + + 'removeLoginForm': function () { + if (this._loginForm != null) { + this._loginForm.remove(); + this._loginForm = null; + } + }, + + //------------------------------------------------------------------------- + + 'cardList': function () { + if (this._cardList == null) { + this._cardList = new Clipperz.PM.UI.Mobile.Components.CardList({element:MochiKit.DOM.getElement('cardList')}); + MochiKit.Signal.connect(this._cardList, 'selectedCard', this, 'selectCardHandler'); + } + + return this._cardList; + }, + + 'showCards': function (someCards) { + this.cardList().showCards(someCards); + this.jQTouch().goTo('#cardList', 'slideleft'); + }, + + //------------------------------------------------------------------------- + + 'cardDetail': function () { + if (this._cardDetail == null) { + this._cardDetail = new Clipperz.PM.UI.Mobile.Components.CardDetail({element:MochiKit.DOM.getElement('cardDetail')}); + } + + return this._cardDetail; + }, + + 'selectCardHandler': function (aCardReference) { + var deferredResult; + + deferredResult = new Clipperz.Async.Deferred("MainController.selectCardHandler", {trace:true}); + deferredResult.addMethod(this.cardDetail(), 'render'); + deferredResult.addMethod(this.jQTouch(), 'goTo', '#cardDetail', 'slideleft'); + deferredResult.addMethod(this.user(), 'getRecord', aCardReference); + deferredResult.addMethod(this.cardDetail(), 'showCard'); + deferredResult.callback(); + + return deferredResult; + }, + + //========================================================================= + __syntaxFix__: "syntax fix" +}); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js index ee6d7a3..d6b0574 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js @@ -41,6 +41,10 @@ Clipperz.PM.UI.Web.Components.AccountPanel = function(args) { tab: 'passphraseTab', panel: 'passphrasePanel' }, + 'OTP': { + tab: 'OTPTab', + panel: 'OTPPanel' + }, 'PREFERENCES': { tab: 'preferencesTab', panel: 'preferencesPanel' @@ -74,6 +78,7 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.AccountPanel, Clipperz.PM.UI. {tag:'ul', children:[ // {tag:'li', id:this.getId('accountTab'), children:[{tag:'a', href:'#', html:'Account'}], cls:'first'}, {tag:'li', id:this.getId('passphraseTab'), children:[{tag:'a', href:'#', html:'Passphrase'}], cls:'first'}, + {tag:'li', id:this.getId('OTPTab'), children:[{tag:'a', href:'#', html:'One Time Passwords'}]}, {tag:'li', id:this.getId('preferencesTab'), children:[{tag:'a', href:'#', html:'Preferences'}]}, {tag:'li', id:this.getId('loginHistoryTab'), children:[{tag:'a', href:'#', html:'Login history'}]} ]} @@ -117,16 +122,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.AccountPanel, Clipperz.PM.UI. {tag:'div', cls:'clear'}, {tag:'div', cls:'confirmButton', id:this.getId('confirmationButton'), children:[ {tag:'span', html:"change passphrase"} - ]}, - - {tag:'h3', cls:'manageOTP', html:"Manage One-Time Passphrases"}, - {} + ]} + ]}, + {tag:'li', id:this.getId('OTPPanel'), children:[ +// {tag:'h3', html:"Manage One-Time Passphrases"} ]}, {tag:'li', id:this.getId('preferencesPanel'), children:[ - {tag:'h3', html:"-- Preferences --"} +// {tag:'h3', html:"-- Preferences --"} ]}, {tag:'li', id:this.getId('loginHistoryPanel'), children:[ - {tag:'h3', html:"-- Login History --"} +// {tag:'h3', html:"-- Login History --"} ]} ]} ]} diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js index d2f1045..462d864 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js @@ -82,16 +82,18 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DataPanel, Clipperz.PM.UI.Com {tag:'div', cls:'subPanelContent', children:[ {tag:'ul', children:[ {tag:'li', id:this.getId('offlineCopyPanel'), children:[ - {tag:'h3', html:"Offline copy"} +// {tag:'h3', html:"Offline copy"}, + {tag:'p', html:"With just one click you can dump all your encrypted data from Clipperz servers to your hard disk and create a read-only offline version of Clipperz to be used when you are not connected to the Internet."}, + {tag:'a', id:this.getId('offlineCopyDownloadLink'), href:'#', html:"Download", cls:'downloadOfflineCopy'} ]}, {tag:'li', id:this.getId('sharingPanel'), children:[ - {tag:'h3', html:"Sharing"} +// {tag:'h3', html:"Sharing"} ]}, {tag:'li', id:this.getId('importPanel'), children:[ - {tag:'h3', html:"Import"} +// {tag:'h3', html:"Import"} ]}, {tag:'li', id:this.getId('exportPanel'), children:[ - {tag:'h3', html:"Export"} +// {tag:'h3', html:"Export"} ]} ]} ]} @@ -101,8 +103,14 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DataPanel, Clipperz.PM.UI.Com ]); this.tabPanelController().setup({selected:this.initiallySelectedTab()}); + MochiKit.Signal.connect(this.getId('offlineCopyDownloadLink'), 'onclick', this, 'downloadOfflineCopy'); }, - + + 'downloadOfflineCopy': function (anEvent) { + anEvent.preventDefault(); + MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'downloadOfflineCopy', anEvent.src()); + }, + //------------------------------------------------------------------------- __syntaxFix__: "syntax fix" }); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js index 5d082b5..26506e7 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js @@ -82,9 +82,10 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginProgress, Clipperz.PM.UI ]}, {tag:'div', cls:'footer', children:[ {tag:'div', cls:'buttonArea', id:this.getId('buttonArea'), children:[ - {tag:'div', cls:'button', id:this.getId('button'), children:[ - {tag:'a', href:'#', id:this.getId('buttonLink'), html:"cancel"} - ]} +// {tag:'div', cls:'button', id:this.getId('button'), children:[ +// {tag:'a', href:'#', id:this.getId('buttonLink'), html:"cancel"} +// ]} + {tag:'a', cls:'button', id:this.getId('button'), html:"cancel"} ]} ]} ]}); @@ -95,7 +96,8 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginProgress, Clipperz.PM.UI this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); MochiKit.Style.hideElement(this.getElement('errorBox')); - MochiKit.Signal.connect(this.getId('buttonLink'), 'onclick', this, 'cancelEventHandler'); +// MochiKit.Signal.connect(this.getId('buttonLink'), 'onclick', this, 'cancelEventHandler'); + MochiKit.Signal.connect(this.getId('button'), 'onclick', this, 'cancelEventHandler'); }, //------------------------------------------------------------------------- @@ -121,7 +123,9 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginProgress, Clipperz.PM.UI //------------------------------------------------------------------------- 'showErrorMessage': function() { - this.getElement('buttonLink').innerHTML = "close"; +// this.getElement('buttonLink').innerHTML = "close"; + this.getElement('button').innerHTML = "close"; + MochiKit.DOM.addElementClass(this.getElement('button'), 'default'); MochiKit.Style.hideElement(this.getElement('progressBar')); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js index a25c8f5..dcf506f 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js @@ -49,12 +49,11 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.PageFooter, Clipperz.PM.UI.Co this.append(this.element(), [ {tag:'div', cls:'footerWrapper', children:[ {tag:'div', cls:'footerContent', children:[ -// {tag:'div', cls:'footerStarIcon'}, {tag:'canvas', id:this.getId('footerStarIcon'), cls:'footerStarIcon'}, - {tag:'span', cls:'copyright', html:'Copyright © 2009-2012 Clipperz Srl'}, + {tag:'span', cls:'copyright', html:'Copyright © 2009-2013 Clipperz Srl'}, {tag:'a', href:'http://www.clipperz.com/terms_of_service', target:'_blank', html:'terms of service'}, {tag:'a', href:'http://www.clipperz.com/privacy_policy', target:'_blank', html:'privacy policy'}, - {tag:'span', cls:'applicationVersion', html:'application version: [1992]'} + {tag:'div', cls:'applicationVersion', htmlString:'application version: <a href="https://github.com/clipperz/password-manager/tree/' + Clipperz_version + '" target="github">' + Clipperz_version + '</a>'} ]} ]} ]); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js index 3ee6189..0fa369f 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js @@ -82,16 +82,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.ToolsPanel, Clipperz.PM.UI.Co {tag:'div', cls:'subPanelContent', children:[ {tag:'ul', children:[ {tag:'li', id:this.getId('passwordGeneratorPanel'), children:[ - {tag:'h3', html:"Password generator"} +// {tag:'h3', html:"Password generator"} ]}, {tag:'li', id:this.getId('bookmarkletPanel'), children:[ - {tag:'h3', html:"Bookmarklet"} +// {tag:'h3', html:"Bookmarklet"} ]}, {tag:'li', id:this.getId('compactEditionPanel'), children:[ - {tag:'h3', html:"Compact edition"} +// {tag:'h3', html:"Compact edition"} ]}, {tag:'li', id:this.getId('httpAuthPanel'), children:[ - {tag:'h3', html:"HTTP Auth"} +// {tag:'h3', html:"HTTP Auth"} ]} ]} ]} diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js index 9a0e744..1ab2e69 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js @@ -231,9 +231,11 @@ MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.AppController.prototype, { this.hideAllAppPageTabSlots(); this.appPage().showSlot(this.slotNameForTab('cards')); - MochiKit.Signal.connect(this.tabSidePanel(), 'tabSelected', this, 'handleTabSelected'); - MochiKit.Signal.connect(this.tabSidePanel(), 'addCard', this, 'handleAddCard'); - MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'addCard', this, 'handleAddCard'); + MochiKit.Signal.connect(this.tabSidePanel(), 'tabSelected', this, 'handleTabSelected'); + MochiKit.Signal.connect(this.tabSidePanel(), 'addCard', this, 'handleAddCard'); + MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'addCard', this, 'handleAddCard'); + + MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'downloadOfflineCopy', this, 'handleDownloadOfflineCopy'); deferredResult = new Clipperz.Async.Deferred("AppController.run", {trace:false}); @@ -321,6 +323,29 @@ MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.AppController.prototype, { ], {trace:false}); }, + 'handleDownloadOfflineCopy': function (anEvent) { +console.log("AppController.handleDownloadOfflineCopy"); + var downloadHref; + + downloadHref = window.location.href.replace(/\/[^\/]*$/,'') + Clipperz_dumpUrl; + + if (Clipperz_IEisBroken == true) { + window.open(downloadHref, ""); + } else { + var deferredResult; + var newWindow; + + newWindow = window.open("", ""); + + deferredResult = new Clipperz.Async.Deferred("AppController.handleDownloadOfflineCopy", {trace:true}); + deferredResult.addCallback(MochiKit.Base.method(this.user().connection(), 'message'), 'echo', {'echo':"echo"}); + deferredResult.addCallback(function(aWindow) { + aWindow.location.href = downloadHref; + }, newWindow); + deferredResult.callback(); + } + }, + //============================================================================= __syntaxFix__: "syntax fix" }); diff --git a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardDetail.js b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardDetail.js deleted file mode 100644 index 5380aa1..0000000 --- a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardDetail.js +++ b/dev/null @@ -1,163 +0,0 @@ -/* - -Copyright 2008-2011 Clipperz Srl - -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. -For further information about its features and functionalities please -refer to http://www.clipperz.com. - -* Clipperz Community Edition is free software: you can redistribute - it and/or modify it under the terms of the GNU Affero General Public - License as published by the Free Software Foundation, either version - 3 of the License, or (at your option) any later version. - -* Clipperz Community Edition is distributed in the hope that it will - be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU Affero General Public License for more details. - -* You should have received a copy of the GNU Affero General Public - License along with Clipperz Community Edition. If not, see - <http://www.gnu.org/licenses/>. - -*/ - -Clipperz.Base.module('Clipperz.PM.UI.iPhone.Components'); - -Clipperz.PM.UI.iPhone.Components.CardDetail = function(args) { - args = args || {}; - - Clipperz.PM.UI.iPhone.Components.CardDetail.superclass.constructor.apply(this, arguments); - - this._cardReference = null; - - return this; -} - -//============================================================================= - -Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.CardDetail, Clipperz.PM.UI.Common.Components.BaseComponent, { - - //------------------------------------------------------------------------- - - 'toString': function () { - return "Clipperz.PM.UI.iPhone.Components.CardDetail component"; - }, - - //------------------------------------------------------------------------- - - 'cardReference': function () { - return this._cardReference; - }, - - 'setCardReference': function (aValue) { - this._cardReference = aValue; - }, - - //------------------------------------------------------------------------- - - 'renderSelf': function(/*aContainer, aPosition*/) { - this.append(this.element(), [ - {tag:'div', cls:'cardDetail', id:this.getId('cardDetail'), children:[ - {tag:'div', id:this.getId('progressBar')} //, -// {tag:'h1', cls:'loading', html:"loading"} - ]} - ]); - - this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); - MochiKit.Signal.signal(Clipperz.PM.UI.Common.Controllers.ProgressBarController.defaultController, 'updateProgress', 0); - }, - - //========================================================================= - - 'showCardDetails': function (someData) { - this.element().innerHTML = ''; - this.append(this.element(), [ - {tag:'fieldset', id:this.getId('fields'), children:MochiKit.Base.map(function (aFieldData) { - return {tag:'div', cls:'row', children:[ - {tag:'label', html:aFieldData['label']}, -// {tag:'span', cls:('fieldValue ' + (aFieldData['isHidden'] ? 'password' : 'text')), html:aFieldData['value']} - {tag:'div', cls:('fieldValue ' + (aFieldData['isHidden'] ? 'password' : 'text')), children:[ - {tag:'div', children:[{tag:'p', html:aFieldData['value']}]} - ]} -// {tag:'input', type:'text', cls:('fieldValue ' + (aFieldData['isHidden'] ? 'password' : 'text')), value:aFieldData['value'], disabled:true} - - ]} - }, someData['fields'])} - ]); - - MochiKit.Iter.forEach(MochiKit.Selector.findChildElements(this.element(), ['span.password']), MochiKit.Base.bind(function (aPasswordElement) { - MochiKit.Signal.connect(aPasswordElement, 'onclick', function (anEvent) { alert(MochiKit.DOM.scrapeText(anEvent.src())); }) - }, this)); - - if (someData['directLogins'].length > 0) { - this.append(this.element(), [ - {tag:'h2', html:"Direct logins"}, - {tag:'fieldset', id:this.getId('directLogins'), children:MochiKit.Base.map(function (aDirectLoginData) { - return {tag:'div', cls:'row', id:('directLogin_' + aDirectLoginData['_reference']), children:[ - {tag:'img', cls:'favicon', src:aDirectLoginData['favicon']}, -// {tag:'input', cls:'directLogin', disabled:'disabled', type:'text', name:aDirectLoginData['label'], value:aDirectLoginData['label']} - {tag:'span', cls:'directLogin', html:aDirectLoginData['label']} - ]} - }, someData['directLogins'])} - ]); - - MochiKit.Base.map(MochiKit.Base.bind(function (aRowNode) { - MochiKit.Signal.connect(aRowNode, 'onclick', this, 'directLoginClickHandler'); - }, this), - MochiKit.Selector.findChildElements(this.getElement('directLogins'), ['div.row']) - ) - }; - - if (someData['notes'] != '') { - this.append(this.element(), [ - {tag:'h2', html:"Notes"}, - {tag:'fieldset', id:this.getId('fieldset'), children:[ - {tag:'div', cls:'row notes', children:[ - {tag:'span', html:someData['notes']} - ]} - ]} - ]); - }; - - return true; - }, - - //------------------------------------------------------------------------- -/* - 'toggleClickHandler': function (anEvent) { - var nextState; - var fieldValue; - -//console.log("TOGGLE"); - anEvent.preventDefault; - fieldValue = MochiKit.Selector.findChildElements(anEvent.src().parentNode.parentNode, ['span.password'])[0]; - - nextState = (MochiKit.DOM.getNodeAttribute(anEvent.src(), 'toggled') != 'true'); - if (nextState) { - MochiKit.DOM.removeElementClass(fieldValue, 'clear'); - } else { - MochiKit.DOM.addElementClass(fieldValue, 'clear'); - } - - MochiKit.DOM.setNodeAttribute(anEvent.src(), 'toggled', nextState); - }, -*/ - //========================================================================= - - 'directLoginClickHandler': function (anEvent) { - anEvent.preventDefault(); - - if (/(directLogin_)/.test(anEvent.src().id)) { - var directLoginReference; - - directLoginReference = anEvent.src().id.match(/(directLogin_)(.*)/)[2]; - MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'selectedDirectLogin', {cardReference:this.cardReference(), directLoginReference:directLoginReference}); - } - }, - - //========================================================================= - - __syntaxFix__: "syntax fix" -}); diff --git a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/LoginForm.js b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/LoginForm.js deleted file mode 100644 index 5341878..0000000 --- a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/LoginForm.js +++ b/dev/null @@ -1,178 +0,0 @@ -/* - -Copyright 2008-2011 Clipperz Srl - -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. -For further information about its features and functionalities please -refer to http://www.clipperz.com. - -* Clipperz Community Edition is free software: you can redistribute - it and/or modify it under the terms of the GNU Affero General Public - License as published by the Free Software Foundation, either version - 3 of the License, or (at your option) any later version. - -* Clipperz Community Edition is distributed in the hope that it will - be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU Affero General Public License for more details. - -* You should have received a copy of the GNU Affero General Public - License along with Clipperz Community Edition. If not, see - <http://www.gnu.org/licenses/>. - -*/ - -Clipperz.Base.module('Clipperz.PM.UI.iPhone.Components'); - -Clipperz.PM.UI.iPhone.Components.LoginForm = function(args) { - args = args || {}; - - Clipperz.PM.UI.iPhone.Components.LoginForm.superclass.constructor.apply(this, arguments); - - return this; -} - -//============================================================================= - -Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.LoginForm, Clipperz.PM.UI.Common.Components.BaseComponent, { - - //------------------------------------------------------------------------- - - 'toString': function () { - return "Clipperz.PM.UI.iPhone.Components.LoginForm component"; - }, - - //------------------------------------------------------------------------- - - 'focusOnUsername': function () { - this.getElement('username').focus(); - }, - - //------------------------------------------------------------------------- - - 'username': function () { - return this.getElement('username').value; - }, - - 'passphrase': function () { - return this.getElement('passphrase').value; - }, - - //------------------------------------------------------------------------- - - 'renderSelf': function(/*aContainer, aPosition*/) { - this.append(this.element(), [ - {tag:'div', cls:'toolbar iPhoneClipperzToolbar', children:[ - {tag:'h1', id:'pageTitle', html:'Clipperz'}, - {tag:'a', id:'backButton', cls:'button', href:'#', html:"back"} - ]}, - {tag:'form', title:'Theaters', cls:'panel toolbarlessPanel loginForm', id:this.getId('loginFormPanel'), children:[ - {tag:'fieldset', id:this.getId('fieldset'), children:[ - {tag:'div', cls:'row', children:[ - {tag:'label', html:"username"}, - {tag:'input', type:'text', name:'username', value:"", autocorrect:'off', autocapitalize:'off', id:this.getId('username')} - ]}, - {tag:'div', cls:'row', children:[ - {tag:'label', html:"passphrase"}, - {tag:'input', type:'password', name:'passphrase', value:"", id:this.getId('passphrase')} - ]} - ]}, - {tag:'a', cls:'whiteButton', type:'submit', href:'#', html:"Login", id:this.getId('submit')} - ]}, - {tag:'div', cls:'panel toolbarlessPanel loginProgressPanel', id:this.getId('loginProgressPanel'), children:[ - {tag:'div', id:this.getId('progressBar')} //, -// {tag:'a', cls:'whiteButton', type:'submit', href:'#', html:"Cancel", id:this.getId('cancel')} - ]}, - {tag:'div', cls:'panel loginErrorPanel', id:this.getId('loginErrorPanel'), children:[ - {tag:'div', cls:'errorMessage', id:this.getId('errorMessageBox'), children:[ - {tag:'h2', id:this.getId('errorMessage'), html:"Login failed"} - ]} - ]} - ]); - - MochiKit.Signal.connect(this.getElement('submit'), 'onclick', this, 'submitHandler'); - MochiKit.Signal.connect(this.getElement('loginFormPanel'), 'onsubmit', this, 'submitHandler'); - -// MochiKit.Signal.connect(this.getElement('cancel'), 'onclick', this, 'cancelHandler'); - MochiKit.Signal.connect('backButton', 'onclick', this, 'backHandler'); - - this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); - -// MochiKit.Style.hideElement(this.getElement('errorMessage')); - - this.showLoginForm(); -// MochiKit.Async.callLater(0.2, MochiKit.Base.method(this, 'focusOnUsername')); - }, - - //------------------------------------------------------------------------- - - 'showLoginForm': function () { - MochiKit.Style.showElement(this.getElement('loginFormPanel')); - MochiKit.Style.hideElement(this.getElement('loginProgressPanel')); - MochiKit.Style.hideElement(this.getElement('loginErrorPanel')); - MochiKit.Style.hideElement('backButton'); - }, - - 'slideInLoginForm': function () { - var offset; - - offset = ((MochiKit.DOM.getNodeAttribute(MochiKit.DOM.currentDocument().body, 'orientation') == 'portrait') ? 320 : 480); - - MochiKit.Style.showElement(this.getElement('loginFormPanel')); - MochiKit.Style.setElementPosition(this.getElement('loginFormPanel'), {x:-offset, y:0}); - - new MochiKit.Visual.Sequence([ - new MochiKit.Visual.Parallel([ - new MochiKit.Visual.Move(this.getElement('loginErrorPanel'), {x:offset, y:0, mode:'relative', transition:MochiKit.Visual.Transitions.linear, sync:true}), - new MochiKit.Visual.Move(this.getElement('loginFormPanel'), {x:0, y:0, mode:'absolute', transition:MochiKit.Visual.Transitions.linear, sync:true}), - MochiKit.Visual.fade ('backButton', { transition:MochiKit.Visual.Transitions.linear, sync:true}) - ], {duration:0.5, sync:true}), - MochiKit.Visual.fade(this.getElement('loginErrorPanel'), {duration:0, sync:true}) - ], {}) - }, - - 'showLoginProgress': function () { - MochiKit.Style.hideElement(this.getElement('loginFormPanel')); - MochiKit.Style.showElement(this.getElement('loginProgressPanel')); - }, - - 'showLoginError': function (anError) { - this.getElement('errorMessage').innerHTML = "Login error"; - - MochiKit.Style.showElement('backButton'); - MochiKit.Style.hideElement(this.getElement('loginProgressPanel')); - MochiKit.Style.showElement(this.getElement('loginErrorPanel')); - MochiKit.Style.setElementPosition(this.getElement('loginErrorPanel'), {x:0, y:45}); - }, - - //------------------------------------------------------------------------- -/* - 'disableCancelButton': function () { - MochiKit.DOM.hideElement(this.getElement('cancel')); - }, -*/ - //------------------------------------------------------------------------- - - 'submitHandler': function (anEvent) { - anEvent.preventDefault(); - - MochiKit.Signal.signal(this, 'doLogin', {'username':this.username(), 'passphrase':this.passphrase()}); - }, - - 'cancelHandler': function (anEvent) { - anEvent.preventDefault(); - -//console.log("CANCEL"); - }, - - 'backHandler': function (anEvent) { - anEvent.preventDefault(); - - this.slideInLoginForm(); - }, - - //------------------------------------------------------------------------- - - __syntaxFix__: "syntax fix" -}); diff --git a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Controllers/MainController.js b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Controllers/MainController.js deleted file mode 100644 index 3fcaae1..0000000 --- a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Controllers/MainController.js +++ b/dev/null @@ -1,369 +0,0 @@ -/* - -Copyright 2008-2011 Clipperz Srl - -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. -For further information about its features and functionalities please -refer to http://www.clipperz.com. - -* Clipperz Community Edition is free software: you can redistribute - it and/or modify it under the terms of the GNU Affero General Public - License as published by the Free Software Foundation, either version - 3 of the License, or (at your option) any later version. - -* Clipperz Community Edition is distributed in the hope that it will - be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU Affero General Public License for more details. - -* You should have received a copy of the GNU Affero General Public - License along with Clipperz Community Edition. If not, see - <http://www.gnu.org/licenses/>. - -*/ - -Clipperz.Base.module('Clipperz.PM.UI.iPhone.Controllers'); - -// Some parts of this controller have been derived from the iUI library. - -Clipperz.PM.UI.iPhone.Controllers.MainController = function() { - this._loginForm = null; - this._cardList = null; - this._cachedValues = null; - this._user = null; - - if (typeof window.onorientationchange == 'object') { - MochiKit.Signal.connect(window, 'onorientationchange', this, 'orientationChangeHandler'); - MochiKit.Async.callLater(0, MochiKit.Base.method(this, 'orientationChangeHandler')); - } else { - this.setOrientation('portrait'); -// this.setOrientation('landscape'); - } - - this.addMetaTag('viewport', 'width=devicewidth; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;'); - this.addMetaTag('apple-mobile-web-app-capable', 'yes'); - this.addMetaTag('apple-mobile-web-app-status-bar-style', 'black'); - - this.addLinkTag('apple-touch-icon', 'data:image/png;charset=utf-8;base64,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'); -// this.addLinkTag('apple-touch-startup-image', 'default.png'); - -// if (!window.navigator.standalone) // not running as an installed app - - MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'selectedDirectLogin', this, 'selectedDirectLoginHandler'); - - MochiKit.DOM.addElementClass(document.body, 'iPhone'); - return this; -} - -MochiKit.Base.update(Clipperz.PM.UI.iPhone.Controllers.MainController.prototype, { - - 'toString': function () { - return "Clipperz.PM.UI.iPhone.Controllers.MainController"; - }, - - //========================================================================= - - 'user': function () { - return this._user; - }, - - 'setUser': function (aValue) { - this._user = aValue; - }, - - //========================================================================= - - 'loginForm': function() { - if (this._loginForm == null) { - MochiKit.DOM.removeElement('mainDiv'); - this._loginForm = new Clipperz.PM.UI.iPhone.Components.LoginForm({element:MochiKit.DOM.currentDocument().body}); - MochiKit.Signal.connect(this._loginForm, 'doLogin', this, 'doLoginHandler') - } - - return this._loginForm; - }, - - 'removeLoginForm': function () { - if (this._loginForm != null) { - this._loginForm.remove(); - this._loginForm = null; - } - }, - - //----------------------------------------------------------------------------- - - 'cardList': function () { - if (this._cardList == null) { - this._cardList = new Clipperz.PM.UI.iPhone.Components.CardList({element:MochiKit.DOM.currentDocument().body}); - MochiKit.Signal.connect(this._cardList, 'searchEvent', this, 'searchEventHandler') - MochiKit.Signal.connect(this._cardList, 'selectedCard', this, 'selecetedCardHandler') - } - - return this._cardList; - }, - - //========================================================================= - - 'currentWidth': function () { - return this._currentWidth; - }, - - 'setCurrentWidth': function (aValue) { - this._currentWidth = aValue; - }, - - //========================================================================= - - 'orientationChangeHandler': function () { - switch(window.orientation) { - case 0: - this.setOrientation('portrait'); - break; - case 90: - case -90: - this.setOrientation('landscape'); - break; - } - }, - - //------------------------------------------------------------------------- - - 'setOrientation': function (anOrientation) { - document.body.setAttribute('orientation', anOrientation); - setTimeout(scrollTo, 100, 0, 1); - }, - - //------------------------------------------------------------------------- - - 'slidePages': function (fromPage, toPage, backwards) { - var axis; - var slideDone; - - slideDone = function () { - // console.log("slideDone"); - if (!hasClass(toPage, "dialog")) { - fromPage.removeAttribute("selected"); - } - checkTimer = setInterval(checkOrientAndLocation, 300); - setTimeout(updatePage, 0, toPage, fromPage); - fromPage.removeEventListener('webkitTransitionEnd', slideDone, false); - } - - axis = (backwards ? fromPage : toPage).getAttribute("axis"); - - clearInterval(checkTimer); - - if (canDoSlideAnim() && axis != 'y') { - slide2(fromPage, toPage, backwards, slideDone); - } else { - slide1(fromPage, toPage, backwards, axis, slideDone); - } - }, - - //------------------------------------------------------------------------- - - 'getCachedValues': function () { - var deferredResult; - - if (this._cachedObjects != null) { - deferredResult = MochiKit.Async.succeed(this._cachedObjects); - } else { - deferredResult = new Clipperz.Async.Deferred("MainController.getCachedValues", {trace:false}); - deferredResult.addMethod(this.user(), 'getRecords'); - deferredResult.addCallback(MochiKit.Base.map, Clipperz.Async.collectResults("MainController.getCachedValues - collectResults", { - '_rowObject': MochiKit.Async.succeed, - '_reference': MochiKit.Base.methodcaller('reference'), - 'label': MochiKit.Base.methodcaller('label'), - 'favicon': MochiKit.Base.methodcaller('favicon'), - '_searchableContent': MochiKit.Base.methodcaller('searchableContent') - }, {trace:false})); - deferredResult.addCallback(Clipperz.Async.collectAll); - deferredResult.addCallback(MochiKit.Base.bind(function (someRows) { - this._cachedObjects = someRows; - return this._cachedObjects; - }, this)); - deferredResult.callback(); - } - - return deferredResult; - }, - //========================================================================= - - 'run': function(shouldShowRegistrationForm) { - this.loginForm().render(); - MochiKit.Async.callLater(1, MochiKit.Base.method(this.loginForm(), 'focusOnUsername')); - }, - - //========================================================================= - - 'doLoginHandler': function (someArgs) { - var deferredResult; - var parameters; - var shouldUseOTP; -// var loginProgress; - var user; - var getPassphraseDelegate; - - parameters = someArgs; - shouldUseOTP = (typeof(parameters.passphrase) == 'undefined'); - - getPassphraseDelegate = MochiKit.Base.partial(MochiKit.Async.succeed, parameters.passphrase); - user = new Clipperz.PM.DataModel.User({'username':parameters.username, 'getPassphraseFunction':getPassphraseDelegate}); - - deferredResult = new Clipperz.Async.Deferred("MainController.doLogin", {trace:false}); - deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'initProgress', {'steps':4}); - deferredResult.addMethod(this.loginForm(), 'showLoginProgress'); - deferredResult.addCallback(MochiKit.Async.wait, 0.1); - deferredResult.addMethod(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'deferredEntropyCollection'); - deferredResult.addMethod(user, 'login'); - deferredResult.addMethod(this, 'setUser', user); - deferredResult.addMethod(user, 'getRecords'); - deferredResult.addMethod(this, 'removeLoginForm'); - deferredResult.addMethod(this.cardList(), 'render'); - deferredResult.addMethod(this, 'displaySelectedRecords', ''); - deferredResult.addErrback(MochiKit.Base.method(this.loginForm(), 'showLoginError')); - deferredResult.callback(); - - return deferredResult; - }, - - //========================================================================= - - 'searchEventHandler': function (aValue) { -//console.log("searching for ... " + aValue); - return this.displaySelectedRecords(aValue); - }, - - //========================================================================= - - '_displaySelectedRows': function (aFilter, someRows) { - var result; - - result = someRows; - - if (aFilter != null) { - var filter; - var filterRegExp; - - filter = aFilter.replace(/[^A-Za-z0-9]/g, "\\$&"); - filterRegExp = new RegExp(filter, "i"); - result = MochiKit.Base.filter(function (aCachedResult) { return filterRegExp.test(aCachedResult['_searchableContent'])}, result); - } - - - result.sort(MochiKit.Base.partial(function (aKey, aComparator, aObject, bObject) { - return aComparator(aObject[aKey], bObject[aKey]); - }, 'label', Clipperz.Base.caseInsensitiveCompare)); - - this.cardList().update(result); - }, - - //------------------------------------------------------------------------- - - 'displaySelectedRecords': function (aFilter) { - return Clipperz.Async.callbacks("MainController.displaySelectedrows", [ - MochiKit.Base.method(this, 'getCachedValues'), - MochiKit.Base.method(this, '_displaySelectedRows', aFilter) - ], {trace:false}); - }, - - //========================================================================= - - 'selecetedCardHandler': function (aRecordReference) { - var deferredResult; - var recordData; - - recordData = {}; -//console.log("Showing detail for card with reference", aRecordReference); - deferredResult = new Clipperz.Async.Deferred("MainController.selectedCardHandler", {trace:false}); - deferredResult.addMethod(this.user(), 'getRecord', aRecordReference); - deferredResult.collectResults({ - '_reference': MochiKit.Base.methodcaller('reference'), - 'title': MochiKit.Base.methodcaller('label'), - 'favicon': MochiKit.Base.methodcaller('favicon') - }); - deferredResult.addCallback(function (someData) { - MochiKit.Base.update(recordData, someData); - }) - deferredResult.addMethod(this.cardList(), 'showCard', recordData); - - deferredResult.addMethod(this.user(), 'getRecord', aRecordReference); - deferredResult.addMethodcaller('notes'); - deferredResult.addCallback(function (someNotes) { - recordData['notes'] = someNotes; - }) - - deferredResult.addMethod(this.user(), 'getRecord', aRecordReference); - deferredResult.addMethodcaller('getCurrentRecordVersion'); - deferredResult.addMethodcaller('fields'); - deferredResult.addCallback(MochiKit.Base.values); - deferredResult.addCallback(MochiKit.Base.map, Clipperz.Async.collectResults("MainController.selectedCardHandler - fields", { - 'label': MochiKit.Base.methodcaller('label'), - 'value': MochiKit.Base.methodcaller('value'), - 'isHidden': MochiKit.Base.methodcaller('isHidden') - }, {trace:false})); - deferredResult.addCallback(Clipperz.Async.collectAll); - deferredResult.addCallback(function (someData) { - recordData['fields'] = someData; - }); - - deferredResult.addMethod(this.user(), 'getRecord', aRecordReference); - deferredResult.addMethodcaller('directLogins'); - deferredResult.addCallback(MochiKit.Base.values); - deferredResult.addCallback(MochiKit.Base.map, Clipperz.Async.collectResults("MainController.selectedCardHandler - directLogins", { - 'label': MochiKit.Base.methodcaller('label'), - 'favicon': MochiKit.Base.methodcaller('favicon'), - '_reference': MochiKit.Base.methodcaller('reference') - }, {trace:false})); - deferredResult.addCallback(Clipperz.Async.collectAll); - deferredResult.addCallback(function (someData) { - recordData['directLogins'] = someData; - }); - - deferredResult.addMethod(this.cardList(), 'showCardDetails', recordData); - deferredResult.callback(); - - return deferredResult; - }, - - //========================================================================= - - 'selectedDirectLoginHandler': function (someData) { - var deferredResult; - -//console.log("<<< signal - directLogin"); - deferredResult = new Clipperz.Async.Deferred("MainController.selectedDirectLoginHandler", {trace:false}); - deferredResult.addMethod(this.user(), 'getRecord', someData['cardReference']); - deferredResult.addMethodcaller('directLogins'); - deferredResult.addCallback(MochiKit.Base.itemgetter(someData['directLoginReference'])); -// deferredResult.addMethodcaller('runDirectLogin'); - deferredResult.addCallback(Clipperz.PM.UI.Common.Controllers.DirectLoginRunner.openDirectLogin); - deferredResult.callback(); - - return deferredResult; - }, - - //========================================================================= - - 'addMetaTag': function (aName, aContent) { - var metaTag; - - metaTag = document.createElement('meta'); - metaTag.name = aName; - metaTag.content = aContent; - document.getElementsByTagName('head')[0].appendChild(metaTag); - }, - - 'addLinkTag': function (aRel, anHref) { - var linkTag; - - linkTag = document.createElement('link'); - linkTag.rel = aRel; - linkTag.href = anHref; - document.getElementsByTagName('head')[0].appendChild(linkTag); - }, - - //========================================================================= - __syntaxFix__: "syntax fix" -});
\ No newline at end of file diff --git a/frontend/gamma/js/JQTouch/extensions/jqt.actionsheet.js b/frontend/gamma/js/JQTouch/extensions/jqt.actionsheet.js new file mode 100644 index 0000000..2a5f8d1 --- a/dev/null +++ b/frontend/gamma/js/JQTouch/extensions/jqt.actionsheet.js @@ -0,0 +1,159 @@ +/* + + _/ _/_/ _/_/_/_/_/ _/ + _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/ + _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/ + _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ + _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/ + _/ + _/ + + Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/> + + (c) 2012 by jQTouch project members. + See LICENSE.txt for license. + + Author: Thomas Yip +*/ + +/* + + _/ _/_/ _/_/_/_/_/ _/ + _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/ + _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/ + _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ + _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/ + _/ + _/ + + Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/> + + (c) 2012 by jQTouch project members. + See LICENSE.txt for license. + + Author: Thomas Yip +*/ + +(function($) { + var src = $("head script").last().attr("src") || ''; + var scriptpath = src.split('?')[0].split('/').slice(0, -1).join('/')+'/'; + var csspath = scriptpath + 'jqt.actionsheet.css'; + var link = $('<link href="' + csspath + '" rel="stylesheet">'); + $('head').append($(link)); + + function hide(callback) { + var $target = $(this); + var data = $(this).data('actionsheet'); + var $source = data.source; + + var timeout; + + function cleanup() { + clearTimeout(timeout); + + $source.removeClass('transition'); + $target.removeClass('inmotion transition'); + !callback || callback.apply(this, arguments); + }; + timeout = setTimeout(cleanup, 500); + + if (data.shown) { + $(this).data('actionsheet', {}); + $target.one('webkitTransitionEnd', cleanup); + + $source.addClass('transition'); + $target.removeClass('current').addClass('inmotion transition'); + $('#jqt').removeClass('actionopened'); + } + return $target; + } + + function show(callback) { + var $target = $(this); + var data = $(this).data('actionsheet') || {}; + if (!data.shown) { + var $source = $('#jqt .current:not(.actionsheet)'); + + $target.one('webkitTransitionEnd', function() { + $source.removeClass('transition'); + $target.removeClass('inmotion transition'); + !callback || callback.apply(this, arguments); + }); + + data.shown = true; + data.source = $source; + $(this).data('actionsheet', data); + + $source.addClass('transition'); + $target.addClass('inmotion transition'); + $('#jqt').addClass('actionopened'); + setTimeout(function() { + $target.addClass('current'); + }, 50); + } + return $target; + } + + var methods = { + init: function(options) { + $(this).addClass('actionsheet'); + $(this).data({shown: false}); + }, + show: show, + hide: hide + }; + + $.fn.actionsheet = function(method) { + if (methods[method]) { + if ($(this).is('.actionsheet')) { + return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); + } else { + var msg = 'Target is not a `actionsheet`. Action `' + method + '` is ignored.'; + console.warn(msg); + } + } else if ( typeof method === 'object' || ! method ) { + return methods.init.apply(this, arguments); + } else { + $.error( 'Method ' + method + ' does not exist on jQuery.tooltip' ); + } + }; + + if ($.jQTouch) { + $.jQTouch.addTapHandler({ + name: 'open-actionsheet', + isSupported: function(e, params) { + return params.$el.is('.action'); + }, + fn: function(e, params) { + params.$el.removeClass('active'); + + var $target = $(params.hash); + $target.actionsheet('show'); + + return false; + } + }); + $.jQTouch.addTapHandler({ + name: 'follow-actionlink', + isSupported: function(e, params) { + if ($('#jqt').hasClass('actionopened')) { + return params.$el.is('.actionsheet a'); + } + return false; + }, + fn: function(e, params) { + params.$el.removeClass('active'); + + var $target = params.$el.closest('.actionsheet'); + $target.actionsheet('hide', function() { + if (!params.$el.is('.dismiss')) { + params.$el.trigger('tap'); + } + }); + return false; + } + }); + } else { + console.error('Extension `jqt.actionsheet` failed to load. jQT not found'); + } +})($); diff --git a/frontend/gamma/js/JQTouch/extensions/jqt.autotitles.js b/frontend/gamma/js/JQTouch/extensions/jqt.autotitles.js new file mode 100644 index 0000000..94f3d9b --- a/dev/null +++ b/frontend/gamma/js/JQTouch/extensions/jqt.autotitles.js @@ -0,0 +1,52 @@ +/* + + _/ _/_/ _/_/_/_/_/ _/ + _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/ + _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/ + _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ + _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/ + _/ + _/ + + Created by David Kaneda <http://www.davidkaneda.com> + Maintained by Thomas Yip <http://beedesk.com/> + Sponsored by Sencha Labs <http://www.sencha.com/> + Special thanks to Jonathan Stark <http://www.jonathanstark.com/> + + Documentation and issue tracking on GitHub <http://github.com/senchalabs/jQTouch/> + + (c) 2009-2011 Sencha Labs + jQTouch may be freely distributed under the MIT license. + +*/ + +(function($) { + if ($.jQTouch) + { + $.jQTouch.addExtension(function AutoTitles(jQT){ + + var titleSelector='.toolbar h1'; + + $(function(){ + $('#jqt').bind('pageAnimationStart', function(e, data){ + if (data.direction === 'in'){ + var $title = $(titleSelector, $(e.target)); + var $ref = $(e.target).data('referrer'); + if ($title.length && $ref && $title.text() === ''){ + $title.html($ref.text()); + } + } + }); + }); + + function setTitleSelector(ts){ + titleSelector=ts; + } + + return { + setTitleSelector: setTitleSelector + }; + + }); + } +})($); diff --git a/frontend/gamma/js/JQTouch/extensions/jqt.floaty.js b/frontend/gamma/js/JQTouch/extensions/jqt.floaty.js new file mode 100644 index 0000000..c7e4485 --- a/dev/null +++ b/frontend/gamma/js/JQTouch/extensions/jqt.floaty.js @@ -0,0 +1,96 @@ +/* + + _/ _/_/ _/_/_/_/_/ _/ + _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/ + _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/ + _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ + _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/ + _/ + _/ + + Created by David Kaneda <http://www.davidkaneda.com> + Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/> + + Special thanks to Jonathan Stark <http://jonathanstark.com/> + and pinch/zoom <http://www.pinchzoom.com/> + + (c) 2009 by jQTouch project members. + See LICENSE.txt for license. + +*/ + +(function($) { + if ($.jQTouch) + { + $.jQTouch.addExtension(function Floaty(jQT){ + + $.fn.makeFloaty = function(options){ + var defaults = { + align: 'top', + spacing: 20, + time: '.3s' + }; + + var settings = $.extend({}, defaults, options); + + settings.align = (settings.align == 'top') ? 'top' : 'bottom'; + + return this.each(function(){ + var $el = $(this); + + $el.css({ + '-webkit-transition': 'top ' + settings.time + ' ease-in-out', + 'display': 'block', + 'min-height': '0 !important' + }).data('settings', settings); + + $(document).scroll(function(){ + if ($el.data('floatyVisible') === 'true') + { + $el.scrollFloaty(); + } + }); + $el.scrollFloaty(); + }); + }; + + $.fn.scrollFloaty = function(){ + + + return this.each(function(){ + var $el = $(this); + var settings = $el.data('settings'); // Settings not being set as object w/Zepto + var wHeight = $('html').attr('clientHeight'); // WRONG + + var newY = window.pageYOffset + + ((settings.align == 'top') ? + settings.spacing : wHeight - settings.spacing - $el.get(0).offsetHeight); + + $el.css('top', newY).data('floatyVisible', true); + }); + }; + + $.fn.hideFloaty = function(){ + return this.each(function(){ + var $el = $(this); + var oh = $el.get(0).offsetHeight; + + $el.css('top', -oh-10).data('floatyVisible', false); + }); + }; + + $.fn.toggleFloaty = function(){ + return this.each(function(){ + var $el = $(this); + if ($el.data('floatyVisible') === 'true'){ + $el.hideFloaty(); + } + else + { + $el.scrollFloaty(); + } + }); + }; + }); + } +})($);
\ No newline at end of file diff --git a/frontend/gamma/js/JQTouch/extensions/jqt.location.js b/frontend/gamma/js/JQTouch/extensions/jqt.location.js new file mode 100644 index 0000000..9d53a1a --- a/dev/null +++ b/frontend/gamma/js/JQTouch/extensions/jqt.location.js @@ -0,0 +1,51 @@ +(function($) { + if ($.jQTouch) + { + $.jQTouch.addExtension(function Location(){ + + var latitude, longitude, callback, callback2; + + function updateLocation(fn, fn2) { + if (navigator.geolocation) + { + callback = fn; + callback2 = fn2; + navigator.geolocation.getCurrentPosition(savePosition, failResponse); + return true; + } else { + console.log('Device not capable of geo-location.'); + fn(false); + return false; + } + } + function failResponse(error){ + if (callback2) { + callback2(error); + } + } + function savePosition(position) { + latitude = position.coords.latitude; + longitude = position.coords.longitude; + if (callback) { + callback(getLocation()); + } + } + function getLocation() { + if (latitude && longitude) { + return { + latitude: latitude, + longitude: longitude + }; + + } else { + console.log('No location available. Try calling updateLocation() first.'); + return false; + } + } + return { + updateLocation: updateLocation, + getLocation: getLocation + }; + }); + } +})($);
\ No newline at end of file diff --git a/frontend/gamma/js/JQTouch/extensions/jqt.menusheet.js b/frontend/gamma/js/JQTouch/extensions/jqt.menusheet.js new file mode 100644 index 0000000..8d21aca --- a/dev/null +++ b/frontend/gamma/js/JQTouch/extensions/jqt.menusheet.js @@ -0,0 +1,137 @@ +/* + + _/ _/_/ _/_/_/_/_/ _/ + _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/ + _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/ + _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ + _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/ + _/ + _/ + + Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/> + + (c) 2012 by jQTouch project members. + See LICENSE.txt for license. + + Author: Thomas Yip +*/ + +(function($) { + var src = $("head script").last().attr("src") || ''; + var scriptpath = src.split('?')[0].split('/').slice(0, -1).join('/')+'/'; + var csspath = scriptpath + 'jqt.menusheet.css'; + var link = $('<link href="' + csspath + '" rel="stylesheet">'); + $('head').append($(link)); + + function hide(callback) { + var $target = $(this); + var data = $(this).data('menusheet'); + if (data.shown) { + $(this).data('menusheet', {}); + var $source = data.source; + $source.unbind('touchstart mousedown', data.closehandler); + $source.one('webkitTransitionEnd', function() { + $source.removeClass('inmotion transition in'); + $target.removeClass('inmotion out'); + !callback || callback.apply(this, arguments); + }); + + $source.addClass('inmotion transition in'); + $target.addClass('inmotion out').removeClass('current'); + $('#jqt').removeClass('menuopened'); + } + return $target; + } + + function show(callback) { + var $target = $(this); + var data = $(this).data('menusheet') || {}; + if (!data.shown) { + var $source = $('#jqt .current:not(.menusheet)'); + var closehandler = function() { + $target.menusheet('hide'); + return false; + }; + + $source.one('webkitTransitionEnd', function() { + $source.one('touchstart mousedown', closehandler); + $source.removeClass('inmotion transition out'); + $target.removeClass('inmotion in'); + !callback || callback.apply(this, arguments); + }); + + data.shown = true; + data.closehandler = closehandler; + data.source = $source; + $(this).data('menusheet', data); + + $source.addClass('inmotion transition out'); + $target.addClass('current in'); + $('#jqt').addClass('menuopened'); + } + return $target; + } + + var methods = { + init: function(options) { + $(this).addClass('menusheet'); + $(this).data({shown: false}); + }, + show: show, + hide: hide + }; + + $.fn.menusheet = function(method) { + if (methods[method]) { + if ($(this).is('.menusheet')) { + return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); + } else { + var msg = 'Target is not a `menusheet`. Action `' + method + '` is ignored.'; + console.warn(msg); + } + } else if ( typeof method === 'object' || ! method ) { + return methods.init.apply(this, arguments); + } else { + $.error( 'Method ' + method + ' does not exist on jQuery.tooltip' ); + } + }; + + if ($.jQTouch) { + $.jQTouch.addTapHandler({ + name: 'open-menusheet', + isSupported: function(e, params) { + return params.$el.is('.menu'); + }, + fn: function(e, params) { + params.$el.removeClass('active'); + + var $target = $(params.hash); + $target.menusheet('show'); + + return false; + } + }); + $.jQTouch.addTapHandler({ + name: 'follow-menulink', + isSupported: function(e, params) { + if ($('#jqt').hasClass('menuopened')) { + return params.$el.is('.menusheet a'); + } + return false; + }, + fn: function(e, params) { + params.$el.removeClass('active'); + + var $target = params.$el.closest('.menusheet'); + $target.menusheet('hide', function() { + if (!params.$el.is('.dismiss')) { + params.$el.trigger('tap'); + } + }); + return false; + } + }); + } else { + console.error('Extension `jqt.menusheet` failed to load. jQT not found'); + } +})($); diff --git a/frontend/gamma/js/JQTouch/extensions/jqt.offline.js b/frontend/gamma/js/JQTouch/extensions/jqt.offline.js new file mode 100644 index 0000000..b333a16 --- a/dev/null +++ b/frontend/gamma/js/JQTouch/extensions/jqt.offline.js @@ -0,0 +1,97 @@ +/* + + _/ _/_/ _/_/_/_/_/ _/ + _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/ + _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/ + _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ + _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/ + _/ + _/ + + Created by David Kaneda <http://www.davidkaneda.com> + Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/> + + Special thanks to Jonathan Stark <http://jonathanstark.com/> + + Lots of this code is specifically derived from Jonathan's book, + "Building iPhone Apps with HTML, CSS, and JavaScript" + + (c) 2009 by jQTouch project members. + See LICENSE.txt for license. + +*/ + +(function($) { + if ($.jQTouch) + { + $.jQTouch.addExtension(function Offline(){ + + // Convenience array of status values + var cacheStatusValues = []; + cacheStatusValues[0] = 'uncached'; + cacheStatusValues[1] = 'idle'; + cacheStatusValues[2] = 'checking'; + cacheStatusValues[3] = 'downloading'; + cacheStatusValues[4] = 'updateready'; + cacheStatusValues[5] = 'obsolete'; + + // Listeners for all possible events + var cache = window.applicationCache; + cache.addEventListener('cached', logEvent, false); + cache.addEventListener('checking', logEvent, false); + cache.addEventListener('downloading', logEvent, false); + cache.addEventListener('error', logEvent, false); + cache.addEventListener('noupdate', logEvent, false); + cache.addEventListener('obsolete', logEvent, false); + cache.addEventListener('progress', logEvent, false); + cache.addEventListener('updateready', logEvent, false); + + // Log every event to the console + function logEvent(e) { + var online, status, type, message; + online = (isOnline()) ? 'yes' : 'no'; + status = cacheStatusValues[cache.status]; + type = e.type; + message = 'online: ' + online; + message+= ', event: ' + type; + message+= ', status: ' + status; + if (type == 'error' && navigator.onLine) { + message+= ' There was an unknown error, check your Cache Manifest.'; + } + console.log(message); + } + + function isOnline() { + return navigator.onLine; + } + + if (!$('html').attr('manifest')) { + console.log('No Cache Manifest listed on the <html> tag.') + } + + // Swap in newly download files when update is ready + cache.addEventListener('updateready', function(e){ + // Don't perform "swap" if this is the first cache + if (cacheStatusValues[cache.status] != 'idle') { + cache.swapCache(); + console.log('Swapped/updated the Cache Manifest.'); + } + } + , false); + + // These two functions check for updates to the manifest file + function checkForUpdates(){ + cache.update(); + } + function autoCheckForUpdates(){ + setInterval(function(){cache.update()}, 10000); + } + + return { + isOnline: isOnline, + checkForUpdates: checkForUpdates, + autoCheckForUpdates: autoCheckForUpdates + } + }); + } +})(jQuery);
\ No newline at end of file diff --git a/frontend/gamma/js/JQTouch/extensions/jqt.themeswitcher.js b/frontend/gamma/js/JQTouch/extensions/jqt.themeswitcher.js new file mode 100755 index 0000000..ef3a75d --- a/dev/null +++ b/frontend/gamma/js/JQTouch/extensions/jqt.themeswitcher.js @@ -0,0 +1,123 @@ +/* + + _/ _/_/ _/_/_/_/_/ _/ + _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/ + _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/ + _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ + _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/ + _/ + _/ + + Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/> + + (c) 2011 by jQTouch project members. + See LICENSE.txt for license. + +*/ + +(function($) { + if ($.jQTouch) { + + var scriptpath = $("script").last().attr("src").split('?')[0].split('/').slice(0, -1).join('/')+'/'; + + $.jQTouch.addExtension(function ThemeSwitcher(jQT) { + + var current, + link, + titles = {}, + defaults = { + themeStyleSelector: 'link[rel="stylesheet"][title]', + themeIncluded: [ + {title: 'jQTouch', href: scriptpath + '../themes/css/jqtouch.css'}, + {title: 'Apple', href: scriptpath + '../themes/css/apple.css'}, + {title: 'Vanilla', href: scriptpath + '../themes/css/vanilla.css'} + + ] + }, + options = $.extend({}, defaults, jQT.settings); + + function setStyleState(item, title) { + var $item = $(item); + + if ($item.attr('title') === title) { + item.disabled = false; // workaround for Firefox on Zepto + $item.removeAttr('disabled'); + } else { + item.disabled = true; // workaround for Firefox on Zepto + $item.attr('disabled', true); + } + } + + function initializeStyleState(item, title) { + // and, workaround for WebKit by initializing the 'disabled' attribute + if (!current) { + current = title; + } + setStyleState(item, current); + } + + // public + function switchStyle(title) { + current = title; + $(options.themeStyleSelector).each(function(i, item) { + setStyleState(item, title); + }); + } + + // collect title names, from <head> + $(options.themeStyleSelector).each(function(i, item) { + var $item = $(item); + var title = $item.attr('title'); + + titles[title] = true; + + initializeStyleState(item, title); + }); + + // add included theme + for (var i=0; i < options.themeIncluded.length; i++) { + var hash = options.themeIncluded[i]; + if (!(hash.title in titles)) { + link = $('<link title="' + hash.title + '" href="' + hash.href + '" rel="stylesheet">'); + $('head').append($(link)); + + titles[hash.title] = true; + + initializeStyleState(link, hash.title); + } + } + + if (options.themeSelectionSelector) { + // create UI items + for (var title in titles) { + var $item = $('<li><a href="#" data-title="' + title + '">' + title + '</a></li>'); + $(options.themeSelectionSelector).append($item); + } + + // bind to UI items + $(options.themeSelectionSelector).delegate('* > a', 'tap', function(e) { + e.preventDefault(); + e.stopPropagation(); + + var $a = $(this).closest('a'); + $a.removeClass('active'); + switchStyle($a.attr('data-title')); + + // poor-man simulation of radio button behaviour + $(options.themeSelectionSelector).find('a').removeClass('selected'); + $a.addClass('selected'); + }); + + // poor-man simulation of radio button behaviour + $(options.themeSelectionSelector).closest('#jqt > *').bind('pageAnimationEnd', function(e, data){ + if (data.direction === 'in') { + $(options.themeSelectionSelector).find('a[data-title="' + current + '"]').addClass('selected'); + } + }); + } + + return {switchStyle: switchStyle}; + + }); + } +})($); diff --git a/frontend/gamma/js/JQTouch/jqtouch.js b/frontend/gamma/js/JQTouch/jqtouch.js new file mode 100644 index 0000000..bdc6d2e --- a/dev/null +++ b/frontend/gamma/js/JQTouch/jqtouch.js @@ -0,0 +1,889 @@ +/* + + _/ _/_/ _/_/_/_/_/ _/ + _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/ + _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/ + _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ + _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/ + _/ + _/ + + Created by David Kaneda <http://www.davidkaneda.com> + Maintained by Thomas Yip <http://beedesk.com/> + Sponsored by Sencha Labs <http://www.sencha.com/> + Special thanks to Jonathan Stark <http://www.jonathanstark.com/> + + Documentation and issue tracking on GitHub <http://github.com/senchalabs/jQTouch/> + + (c) 2009-2011 Sencha Labs + jQTouch may be freely distributed under the MIT license. + +*/ +(function() { + + var fx; + if ('Zepto' in window) { + fx = window.Zepto; + fx.fn.prop = fx.fn.attr; + + Event.prototype.isDefaultPrevented = function() { + return this.defaultPrevented; + }; + } else if ('jQuery' in window) { + fx = window.jQuery; + + // trick to get Zepto/touch.js to work for jQuery + window.Zepto = $; + } else { + throw('Either Zepto or jQuery is required but neither can be found.'); + } + + $.jQTouch = function(options) { + // Initialize internal jQT variables + var $ = fx, + $body, + $head=$('head'), + history=[], + newPageCount=0, + jQTSettings={}, + $currentPage='', + orientation='portrait', + touchSelectors=[], + publicObj={}, + tapBuffer=100, // High click delay = ~350, quickest animation (slide) = 250 + extensions=$.jQTouch.prototype.extensions, + extTapHandlers=$.jQTouch.prototype.tapHandlers, + tapHandlers=[], + animations=[], + hairExtensions='', + defaults = { + addGlossToIcon: true, + backSelector: '.back, .cancel, .goback', + cacheGetRequests: true, + debug: true, + defaultAnimation: 'slideleft', + fixedViewport: true, + formSelector: 'form', + fullScreen: true, + fullScreenClass: 'fullscreen', + icon: null, + icon4: null, // available in iOS 4.2 and later. + preloadImages: false, + startupScreen: null, + statusBar: 'default', // other options: black-translucent, black + submitSelector: '.submit', + touchSelector: 'a, .touch', + trackScrollPositions: true, + useAnimations: true, + useFastTouch: true, + useTouchScroll: true, + animations: [ // highest to lowest priority + {name:'cubeleft', selector:'.cubeleft, .cube', is3d: true}, + {name:'cuberight', selector:'.cuberight', is3d: true}, + {name:'dissolve', selector:'.dissolve'}, + {name:'fade', selector:'.fade'}, + {name:'flipleft', selector:'.flipleft, .flip', is3d: true}, + {name:'flipright', selector:'.flipright', is3d: true}, + {name:'pop', selector:'.pop', is3d: true}, + {name:'swapleft', selector:'.swap', is3d: true}, + {name:'slidedown', selector:'.slidedown'}, + {name:'slideright', selector:'.slideright'}, + {name:'slideup', selector:'.slideup'}, + {name:'slideleft', selector:'.slideleft, .slide, #jqt > * > ul li a'} + ] + }; // end defaults + + function warn(message) { + if (window.console !== undefined && jQTSettings.debug === true) { + console.warn(message); + } + } + function addAnimation(animation) { + if (typeof(animation.selector) === 'string' && typeof(animation.name) === 'string') { + animations.push(animation); + } + } + function addTapHandler(tapHandler) { + if (typeof(tapHandler.name) === 'string' + && typeof(tapHandler.isSupported) === 'function' + && typeof(tapHandler.fn) === 'function') { + + tapHandlers.push(tapHandler); + } + } + function addPageToHistory(page, animation) { + history.unshift({ + page: page, + animation: animation, + hash: '#' + page.attr('id'), + id: page.attr('id') + }); + } + + // Unfortunately, we can not assume the "tap" event + // is being used for links, forms, etc. + function clickHandler(e) { + // Figure out whether to prevent default + var $el = $(e.target); + + // Find the nearest tappable ancestor + if (!$el.is(touchSelectors.join(', '))) { + $el = $(e.target).closest(touchSelectors.join(', ')); + } + + // Prevent default if we found an internal link (relative or absolute) + if ($el && $el.attr('href') && !$el.isExternalLink()) { + warn('Need to prevent default click behavior'); + e.preventDefault(); + } else { + warn('No need to prevent default click behavior'); + } + + // Trigger a tap event if touchstart is not on the job + if ($.support.touch) { + warn('Not converting click to a tap event because touch handler is on the job'); + } else { + warn('Converting click event to a tap event because touch handlers are not present or off'); + $(e.target).trigger('tap', e); + } + + } + function doNavigation(fromPage, toPage, animation, goingBack) { + + goingBack = goingBack ? goingBack : false; + + // Error check for target page + if (toPage === undefined || toPage.length === 0) { + $.fn.unselect(); + warn('Target element is missing.'); + return false; + } + + // Error check for fromPage===toPage + if (toPage.hasClass('current')) { + $.fn.unselect(); + warn('You are already on the page you are trying to navigate to.'); + return false; + } + + // Collapse the keyboard + $(':focus').trigger('blur'); + + fromPage.trigger('pageAnimationStart', { direction: 'out', back: goingBack }); + toPage.trigger('pageAnimationStart', { direction: 'in', back: goingBack }); + + if ($.support.animationEvents && animation && jQTSettings.useAnimations) { + // Fail over to 2d animation if need be + if (!$.support.transform3d && animation.is3d) { + warn('Did not detect support for 3d animations, falling back to ' + jQTSettings.defaultAnimation); + animation.name = jQTSettings.defaultAnimation; + } + + // Reverse animation if need be + var finalAnimationName = animation.name, + is3d = animation.is3d ? 'animating3d' : ''; + + if (goingBack) { + finalAnimationName = finalAnimationName.replace(/left|right|up|down|in|out/, reverseAnimation ); + } + + warn('finalAnimationName is ' + finalAnimationName); + + // Bind internal "cleanup" callback + fromPage.bind('webkitAnimationEnd', navigationEndHandler); + + // Trigger animations + $body.addClass('animating ' + is3d); + + var lastScroll = window.pageYOffset; + + // Position the incoming page so toolbar is at top of viewport regardless of scroll position on from page + if (jQTSettings.trackScrollPositions === true) { + toPage.css('top', window.pageYOffset - (toPage.data('lastScroll') || 0)); + } + + toPage.addClass(finalAnimationName + ' in current'); + fromPage.removeClass('current').addClass(finalAnimationName + ' out inmotion'); + + if (jQTSettings.trackScrollPositions === true) { + fromPage.data('lastScroll', lastScroll); + $('.scroll', fromPage).each(function(){ + $(this).data('lastScroll', this.scrollTop); + }); + } + } else { + toPage.addClass('current in'); + fromPage.removeClass('current'); + navigationEndHandler(); + } + + // Housekeeping + $currentPage = toPage; + if (goingBack) { + history.shift(); + } else { + addPageToHistory($currentPage, animation); + } + setHash($currentPage.attr('id')); + + // Private navigationEnd callback + function navigationEndHandler(event) { + var bufferTime = tapBuffer; + + if ($.support.animationEvents && animation && jQTSettings.useAnimations) { + fromPage.unbind('webkitAnimationEnd', navigationEndHandler); + fromPage.removeClass(finalAnimationName + ' out inmotion'); + if (finalAnimationName) { + toPage.removeClass(finalAnimationName); + } + $body.removeClass('animating animating3d'); + if (jQTSettings.trackScrollPositions === true) { + toPage.css('top', -toPage.data('lastScroll')); + + // Have to make sure the scroll/style resets + // are outside the flow of this function. + setTimeout(function(){ + toPage.css('top', 0); + window.scroll(0, toPage.data('lastScroll')); + $('.scroll', toPage).each(function(){ + this.scrollTop = - $(this).data('lastScroll'); + }); + }, 0); + } + } else { + fromPage.removeClass(finalAnimationName + ' out inmotion'); + if (finalAnimationName) { + toPage.removeClass(finalAnimationName); + } + bufferTime += 260; + } + + // In class is intentionally delayed, as it is our ghost click hack + setTimeout(function(){ + toPage.removeClass('in'); + window.scroll(0,0); + }, bufferTime); + + fromPage.unselect(); + + // Trigger custom events + toPage.trigger('pageAnimationEnd', { + direction:'in', animation: animation, back: goingBack + }); + fromPage.trigger('pageAnimationEnd', { + direction:'out', animation: animation, back: goingBack + }); + } + + return true; + } + function reverseAnimation(animation) { + var opposites={ + 'up' : 'down', + 'down' : 'up', + 'left' : 'right', + 'right' : 'left', + 'in' : 'out', + 'out' : 'in' + }; + + return opposites[animation] || animation; + } + function getOrientation() { + return orientation; + } + function goBack() { + + // Error checking + if (history.length < 1 ) { + warn('History is empty.'); + } + + if (history.length === 1 ) { + warn('You are on the first panel.'); + window.history.go(-1); + } + + var from = history[0], + to = history[1]; + + if (doNavigation(from.page, to.page, from.animation, true)) { + return publicObj; + } else { + warn('Could not go back.'); + return false; + } + + } + function goTo(toPage, animation) { + + var fromPage = history[0].page; + + if (typeof animation === 'string') { + for (var i=0, max=animations.length; i < max; i++) { + if (animations[i].name === animation) { + animation = animations[i]; + break; + } + } + } + + if (typeof toPage === 'string') { + var nextPage = $(toPage); + + if (nextPage.length < 1) { + showPageByHref(toPage, { + animation: animation + }); + return; + } else { + toPage = nextPage; + } + } + if (doNavigation(fromPage, toPage, animation)) { + return publicObj; + } else { + warn('Could not animate pages.'); + return false; + } + } + function hashChangeHandler(e) { + if (location.hash === history[0].hash) { + warn('We are on the right panel'); + return true; + } else if (location.hash === '') { + goBack(); + return true; + } else { + if( (history[1] && location.hash === history[1].hash) ) { + goBack(); + return true; + } else { + // Lastly, just try going to the ID... + warn('Could not find ID in history, just forwarding to DOM element.'); + goTo($(location.hash), jQTSettings.defaultAnimation); + } + } + } + function init(options) { + jQTSettings = $.extend({}, defaults, options); + + // Preload images + if (jQTSettings.preloadImages) { + for (var i = jQTSettings.preloadImages.length - 1; i >= 0; i--) { + (new Image()).src = jQTSettings.preloadImages[i]; + } + } + + // Set appropriate icon (retina display available in iOS 4.2 and later.) + var precomposed = (jQTSettings.addGlossToIcon) ? '' : '-precomposed'; + if (jQTSettings.icon) { + hairExtensions += '<link rel="apple-touch-icon' + precomposed + '" href="' + jQTSettings.icon + '" />'; + } + if (jQTSettings.icon4) { + hairExtensions += '<link rel="apple-touch-icon' + precomposed + '" sizes="114x114" href="' + jQTSettings.icon4 + '" />'; + } + // Set startup screen + if (jQTSettings.startupScreen) { + hairExtensions += '<link rel="apple-touch-startup-image" href="' + jQTSettings.startupScreen + '" />'; + } + + // Set viewport + if (jQTSettings.fixedViewport) { + hairExtensions += '<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>'; + } + + // Set full-screen + if (jQTSettings.fullScreen) { + hairExtensions += '<meta name="apple-mobile-web-app-capable" content="yes" />'; + if (jQTSettings.statusBar) { + hairExtensions += '<meta name="apple-mobile-web-app-status-bar-style" content="' + jQTSettings.statusBar + '" />'; + } + } + + // Attach hair extensions + if (hairExtensions) { + $head.prepend(hairExtensions); + } + } + + function getAnimation(el) { + var animation; + + for (var i=0, max=animations.length; i < max; i++) { + if (el.is(animations[i].selector)) { + animation = animations[i]; + break; + } + } + + if (!animation) { + warn('Animation could not be found. Using ' + jQTSettings.defaultAnimation + '.'); + animation = jQTSettings.defaultAnimation; + } + return animation; + } + + function insertPages(nodes, animation) { + + var targetPage = null; + + // Call dom.createElement element directly instead of relying on $(nodes), + // to work around: https://github.com/madrobby/zepto/issues/312 + var div = document.createElement('div'); + div.innerHTML = nodes; + + $(div).children().each(function(index, node) { + var $node = $(this); + if (!$node.attr('id')) { + $node.attr('id', 'page-' + (++newPageCount)); + } + + // Remove any existing instance + $('#' + $node.attr('id')).remove(); + + $body.append($node); + $body.trigger('pageInserted', {page: $node}); + + if ($node.hasClass('current') || !targetPage) { + targetPage = $node; + } + }); + if (targetPage !== null) { + goTo(targetPage, animation); + return targetPage; + } else { + return false; + } + } + + function orientationChangeHandler() { + $body.css('minHeight', 1000); + scrollTo(0,0); + var bodyHeight = window.innerHeight; + $body.css('minHeight', bodyHeight); + + orientation = Math.abs(window.orientation) == 90 ? 'landscape' : 'portrait'; + $body.removeClass('portrait landscape').addClass(orientation).trigger('turn', {orientation: orientation}); + } + function setHash(hash) { + // Sanitize + location.hash = '#' + hash.replace(/^#/, ''); + } + function showPageByHref(href, options) { + + var defaults = { + data: null, + method: 'GET', + animation: null, + callback: null, + $referrer: null + }; + + var settings = $.extend({}, defaults, options); + + if (href != '#') { + $.ajax({ + url: href, + data: settings.data, + type: settings.method, + success: function (data) { + var firstPage = insertPages(data, settings.animation); + if (firstPage) { + if (settings.method == 'GET' && jQTSettings.cacheGetRequests === true && settings.$referrer) { + settings.$referrer.attr('href', '#' + firstPage.attr('id')); + } + if (settings.callback) { + settings.callback(true); + } + } + }, + error: function (data) { + if (settings.$referrer) { + settings.$referrer.unselect(); + } + if (settings.callback) { + settings.callback(false); + } + } + }); + } else if (settings.$referrer) { + settings.$referrer.unselect(); + } + } + function submitHandler(e, callback) { + + $(':focus').trigger('blur'); + + e.preventDefault(); + + var $form = (typeof(e)==='string') ? $(e).eq(0) : (e.target ? $(e.target) : $(e)); + + if ($form.length && $form.is(jQTSettings.formSelector) && $form.attr('action')) { + showPageByHref($form.attr('action'), { + data: $form.serialize(), + method: $form.attr('method') || "POST", + animation: getAnimation($form), + callback: callback + }); + return false; + } + return true; + } + function submitParentForm($el) { + + var $form = $el.closest('form'); + if ($form.length === 0) { + warn('No parent form found'); + } else { + warn('About to submit parent form'); + $form.trigger('submit'); + return false; + } + return true; + } + function supportForTransform3d() { + + var head, body, style, div, result; + + head = document.getElementsByTagName('head')[0]; + body = document.body; + + style = document.createElement('style'); + style.textContent = '@media (transform-3d),(-o-transform-3d),(-moz-transform-3d),(-webkit-transform-3d){#jqt-3dtest{height:3px}}'; + + div = document.createElement('div'); + div.id = 'jqt-3dtest'; + + // Add to the page + head.appendChild(style); + body.appendChild(div); + + // Check the result + result = div.offsetHeight === 3; + + // Clean up + style.parentNode.removeChild(style); + div.parentNode.removeChild(div); + + // Pass back result + warn('Support for 3d transforms: ' + result); + return result; + } + function supportIOS5() { + var support = false; + var REGEX_IOS_VERSION = /OS (\d+)(_\d+)* like Mac OS X/i; + + var agentString = window.navigator.userAgent; + if (REGEX_IOS_VERSION.test(agentString)) { + support = (REGEX_IOS_VERSION.exec(agentString)[1] >= 5); + } + return support; + } + function touchStartHandler(e){ + + var $el = $(e.target), + selectors = touchSelectors.join(', '); + + // Find the nearest tappable ancestor + if (!$el.is(selectors)) { + $el = $el.closest(selectors); + } + + // Make sure we have a tappable element + if ($el.length && $el.attr('href')) { + $el.addClass('active'); + } + + // Remove our active class if we move + $el.on($.support.touch ? 'touchmove' : 'mousemove', function(){ + $el.removeClass('active'); + }); + + $el.on('touchend', function(){ + $el.unbind('touchmove mousemove'); + }); + + } + function tapHandler(e){ + + if (e.isDefaultPrevented()) { + return true; + } + + // Grab the target element + var $el = $(e.target); + + // Find the nearest tappable ancestor + if (!$el.is(touchSelectors.join(', '))) { + $el = $el.closest(touchSelectors.join(', ')); + } + + // Make sure we have a tappable element + if (!$el.length || !$el.attr('href')) { + warn('Could not find a link related to tapped element'); + return true; + } + + // Init some vars + var target = $el.attr('target'), + hash = $el.prop('hash'), + href = $el.attr('href'); + + var params = { + e: e, + $el: $el, + target: target, + hash: hash, + href: href, + jQTSettings: jQTSettings + }; + + // Loop thru all handlers + for (var i=0, len=tapHandlers.length; i<len; i++) { + var handler = tapHandlers[i]; + var supported = handler.isSupported(e, params); + if (supported) { + var flag = handler.fn(e, params); + return flag; + } + } + } + function addDefaultTapHandlers() { + addTapHandler({ + name: 'external-link', + isSupported: function(e, params) { + return params.$el.isExternalLink(); + }, + fn: function(e, params) { + params.$el.unselect(); + return true; + } + }); + addTapHandler({ + name: 'back-selector', + isSupported: function(e, params) { + return params.$el.is(params.jQTSettings.backSelector); + }, + fn: function(e, params) { + // User clicked or tapped a back button + goBack(params.hash); + } + }); + addTapHandler({ + name: 'submit-selector', + isSupported: function(e, params) { + return params.$el.is(params.jQTSettings.submitSelector); + }, + fn: function(e, params) { + // User clicked or tapped a submit element + submitParentForm(params.$el); + } + }); + addTapHandler({ + name: 'webapp', + isSupported: function(e, params) { + return params.target === '_webapp'; + }, + fn: function(e, params) { + // User clicked or tapped an internal link, fullscreen mode + window.location = params.href; + return false; + } + }); + addTapHandler({ + name: 'no-op', + isSupported: function(e, params) { + return params.href === '#'; + }, + fn: function(e, params) { + // Allow tap on item with no href + params.$el.unselect(); + return true; + } + }); + addTapHandler({ + name: 'standard', + isSupported: function(e, params) { + return params.hash && params.hash !== '#'; + }, + fn: function(e, params) { + var animation = getAnimation(params.$el); + // Internal href + params.$el.addClass('active'); + goTo( + $(params.hash).data('referrer', params.$el), + animation, + params.$el.hasClass('reverse') + ); + return false; + } + }); + addTapHandler({ + name: 'external', + isSupported: function(e, params) { + return true; + }, + fn: function(e, params) { + var animation = getAnimation(params.$el); + + // External href + params.$el.addClass('loading active'); + showPageByHref(params.$el.attr('href'), { + animation: animation, + callback: function() { + params.$el.removeClass('loading'); + setTimeout($.fn.unselect, 250, params.$el); + }, + $referrer: params.$el + }); + return false; + } + }); + }; + + // Get the party started + init(options); + + // Document ready stuff + $(document).ready(function RUMBLE() { + // Store some properties in a support object + if (!$.support) $.support = {}; + $.support.animationEvents = (typeof window.WebKitAnimationEvent != 'undefined'); + $.support.touch = (typeof window.TouchEvent != 'undefined') && (window.navigator.userAgent.indexOf('Mobile') > -1) && jQTSettings.useFastTouch; + $.support.transform3d = supportForTransform3d(); + $.support.ios5 = supportIOS5(); + + if (!$.support.touch) { + warn('This device does not support touch interaction, or it has been deactivated by the developer. Some features might be unavailable.'); + } + if (!$.support.transform3d) { + warn('This device does not support 3d animation. 2d animations will be used instead.'); + } + + // Define public jQuery functions + $.fn.isExternalLink = function() { + var $el = $(this); + return ($el.attr('target') == '_blank' || $el.attr('rel') == 'external' || $el.is('a[href^="http://maps.google.com"], a[href^="mailto:"], a[href^="tel:"], a[href^="javascript:"], a[href*="youtube.com/v"], a[href*="youtube.com/watch"]')); + }; + $.fn.makeActive = function() { + return $(this).addClass('active'); + }; + $.fn.unselect = function(obj) { + if (obj) { + obj.removeClass('active'); + } else { + $('.active').removeClass('active'); + } + }; + + // Add extensions + for (var i=0, max=extensions.length; i < max; i++) { + var fn = extensions[i]; + if ($.isFunction(fn)) { + $.extend(publicObj, fn(publicObj)); + } + } + + // Add extensions tapHandlers + for (var i=0, max=extTapHandlers.length; i < max; i++) { + addTapHandler(extTapHandlers[i]); + } + // Add default tapHandlers + addDefaultTapHandlers(); + + // Add animations + for (var j=0, max_anims=defaults.animations.length; j < max_anims; j++) { + var animation = defaults.animations[j]; + if(jQTSettings[animation.name + 'Selector'] !== undefined){ + animation.selector = jQTSettings[animation.name + 'Selector']; + } + addAnimation(animation); + } + + // Create an array of stuff that needs touch event handling + touchSelectors.push(jQTSettings.touchSelector); + touchSelectors.push(jQTSettings.backSelector); + touchSelectors.push(jQTSettings.submitSelector); + $(touchSelectors.join(', ')).css('-webkit-touch-callout', 'none'); + + // Make sure we have a jqt element + $body = $('#jqt'); + var anatomy_lessons = []; + + if ($body.length === 0) { + warn('Could not find an element with the id "jqt", so the body id has been set to "jqt". If you are having any problems, wrapping your panels in a div with the id "jqt" might help.'); + $body = $(document.body).attr('id', 'jqt'); + } + + // Add some specific css if need be + if ($.support.transform3d) { + anatomy_lessons.push('supports3d'); + } + if ($.support.ios5 && jQTSettings.useTouchScroll) { + anatomy_lessons.push('touchscroll'); + } + + if (jQTSettings.fullScreenClass && window.navigator.standalone === true) { + anatomy_lessons.push(jQTSettings.fullScreenClass, jQTSettings.statusBar); + } + + // Bind events + + $body + .addClass(anatomy_lessons.join(' ')) + .bind('click', clickHandler) + .bind('orientationchange', orientationChangeHandler) + .bind('submit', submitHandler) + .bind('tap', tapHandler) + .bind( $.support.touch ? 'touchstart' : 'mousedown', touchStartHandler) + .trigger('orientationchange'); + + $(window).bind('hashchange', hashChangeHandler); + + var startHash = location.hash; + + // Determine what the initial view should be + if ($('#jqt > .current').length === 0) { + $currentPage = $('#jqt > *:first-child').addClass('current'); + } else { + $currentPage = $('#jqt > .current'); + } + + setHash($currentPage.attr('id')); + addPageToHistory($currentPage); + + if ($(startHash).length === 1) { + goTo(startHash); + } + }); + + // Expose public methods and properties + publicObj = { + addAnimation: addAnimation, + animations: animations, + getOrientation: getOrientation, + goBack: goBack, + insertPages: insertPages, + goTo: goTo, + history: history, + settings: jQTSettings, + submitForm: submitHandler + }; + return publicObj; + }; + + $.jQTouch.prototype.extensions = []; + $.jQTouch.prototype.tapHandlers = []; + + // Extensions directly manipulate the jQTouch object, before it's initialized. + $.jQTouch.addExtension = function(extension) { + $.jQTouch.prototype.extensions.push(extension); + }; + + // Experimental tap hanlders that can bypass default jQTouch tap handling + $.jQTouch.addTapHandler = function(extension) { + $.jQTouch.prototype.tapHandlers.push(extension); + }; + +})(); // Double closure, ALL THE WAY ACROSS THE SKY diff --git a/frontend/gamma/js/Zepto/ajax.js b/frontend/gamma/js/Zepto/ajax.js new file mode 100644 index 0000000..f4da150 --- a/dev/null +++ b/frontend/gamma/js/Zepto/ajax.js @@ -0,0 +1,285 @@ +// Zepto.js +// (c) 2010-2012 Thomas Fuchs +// Zepto.js may be freely distributed under the MIT license. + +;(function($){ + var jsonpID = 0, + isObject = $.isObject, + document = window.document, + key, + name, + rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, + scriptTypeRE = /^(?:text|application)\/javascript/i, + xmlTypeRE = /^(?:text|application)\/xml/i, + jsonType = 'application/json', + htmlType = 'text/html', + blankRE = /^\s*$/ + + // trigger a custom event and return false if it was cancelled + function triggerAndReturn(context, eventName, data) { + var event = $.Event(eventName) + $(context).trigger(event, data) + return !event.defaultPrevented + } + + // trigger an Ajax "global" event + function triggerGlobal(settings, context, eventName, data) { + if (settings.global) return triggerAndReturn(context || document, eventName, data) + } + + // Number of active Ajax requests + $.active = 0 + + function ajaxStart(settings) { + if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart') + } + function ajaxStop(settings) { + if (settings.global && !(--$.active)) triggerGlobal(settings, null, 'ajaxStop') + } + + // triggers an extra global event "ajaxBeforeSend" that's like "ajaxSend" but cancelable + function ajaxBeforeSend(xhr, settings) { + var context = settings.context + if (settings.beforeSend.call(context, xhr, settings) === false || + triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false) + return false + + triggerGlobal(settings, context, 'ajaxSend', [xhr, settings]) + } + function ajaxSuccess(data, xhr, settings) { + var context = settings.context, status = 'success' + settings.success.call(context, data, status, xhr) + triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data]) + ajaxComplete(status, xhr, settings) + } + // type: "timeout", "error", "abort", "parsererror" + function ajaxError(error, type, xhr, settings) { + var context = settings.context + settings.error.call(context, xhr, type, error) + triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error]) + ajaxComplete(type, xhr, settings) + } + // status: "success", "notmodified", "error", "timeout", "abort", "parsererror" + function ajaxComplete(status, xhr, settings) { + var context = settings.context + settings.complete.call(context, xhr, status) + triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings]) + ajaxStop(settings) + } + + // Empty function, used as default callback + function empty() {} + + $.ajaxJSONP = function(options){ + if (!('type' in options)) return $.ajax(options) + + var callbackName = 'jsonp' + (++jsonpID), + script = document.createElement('script'), + abort = function(){ + $(script).remove() + if (callbackName in window) window[callbackName] = empty + ajaxComplete('abort', xhr, options) + }, + xhr = { abort: abort }, abortTimeout + + if (options.error) script.onerror = function() { + xhr.abort() + options.error() + } + + window[callbackName] = function(data){ + clearTimeout(abortTimeout) + $(script).remove() + delete window[callbackName] + ajaxSuccess(data, xhr, options) + } + + serializeData(options) + script.src = options.url.replace(/=\?/, '=' + callbackName) + $('head').append(script) + + if (options.timeout > 0) abortTimeout = setTimeout(function(){ + xhr.abort() + ajaxComplete('timeout', xhr, options) + }, options.timeout) + + return xhr + } + + $.ajaxSettings = { + // Default type of request + type: 'GET', + // Callback that is executed before request + beforeSend: empty, + // Callback that is executed if the request succeeds + success: empty, + // Callback that is executed the the server drops error + error: empty, + // Callback that is executed on request complete (both: error and success) + complete: empty, + // The context for the callbacks + context: null, + // Whether to trigger "global" Ajax events + global: true, + // Transport + xhr: function () { + return new window.XMLHttpRequest() + }, + // MIME types mapping + accepts: { + script: 'text/javascript, application/javascript', + json: jsonType, + xml: 'application/xml, text/xml', + html: htmlType, + text: 'text/plain' + }, + // Whether the request is to another domain + crossDomain: false, + // Default timeout + timeout: 0, + // Whether data should be serialized to string + processData: true + } + + function mimeToDataType(mime) { + return mime && ( mime == htmlType ? 'html' : + mime == jsonType ? 'json' : + scriptTypeRE.test(mime) ? 'script' : + xmlTypeRE.test(mime) && 'xml' ) || 'text' + } + + function appendQuery(url, query) { + return (url + '&' + query).replace(/[&?]{1,2}/, '?') + } + + // serialize payload and append it to the URL for GET requests + function serializeData(options) { + if (options.processData && isObject(options.data)) + options.data = $.param(options.data, options.traditional) + if (options.data && (!options.type || options.type.toUpperCase() == 'GET')) + options.url = appendQuery(options.url, options.data) + } + + $.ajax = function(options){ + var settings = $.extend({}, options || {}) + for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key] + + ajaxStart(settings) + + if (!settings.crossDomain) settings.crossDomain = /^([\w-]+:)?\/\/([^\/]+)/.test(settings.url) && + RegExp.$2 != window.location.host + + var dataType = settings.dataType, hasPlaceholder = /=\?/.test(settings.url) + if (dataType == 'jsonp' || hasPlaceholder) { + if (!hasPlaceholder) settings.url = appendQuery(settings.url, 'callback=?') + return $.ajaxJSONP(settings) + } + + if (!settings.url) settings.url = window.location.toString() + serializeData(settings) + + var mime = settings.accepts[dataType], + baseHeaders = { }, + protocol = /^([\w-]+:)\/\//.test(settings.url) ? RegExp.$1 : window.location.protocol, + xhr = $.ajaxSettings.xhr(), abortTimeout + + if (!settings.crossDomain) baseHeaders['X-Requested-With'] = 'XMLHttpRequest' + if (mime) { + baseHeaders['Accept'] = mime + if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0] + xhr.overrideMimeType && xhr.overrideMimeType(mime) + } + if (settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET')) + baseHeaders['Content-Type'] = (settings.contentType || 'application/x-www-form-urlencoded') + settings.headers = $.extend(baseHeaders, settings.headers || {}) + + xhr.onreadystatechange = function(){ + if (xhr.readyState == 4) { + xhr.onreadystatechange = empty; + clearTimeout(abortTimeout) + var result, error = false + if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || (xhr.status == 0 && protocol == 'file:')) { + dataType = dataType || mimeToDataType(xhr.getResponseHeader('content-type')) + result = xhr.responseText + + try { + if (dataType == 'script') (1,eval)(result) + else if (dataType == 'xml') result = xhr.responseXML + else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result) + } catch (e) { error = e } + + if (error) ajaxError(error, 'parsererror', xhr, settings) + else ajaxSuccess(result, xhr, settings) + } else { + ajaxError(null, xhr.status ? 'error' : 'abort', xhr, settings) + } + } + } + + var async = 'async' in settings ? settings.async : true + xhr.open(settings.type, settings.url, async) + + for (name in settings.headers) xhr.setRequestHeader(name, settings.headers[name]) + + if (ajaxBeforeSend(xhr, settings) === false) { + xhr.abort() + return false + } + + if (settings.timeout > 0) abortTimeout = setTimeout(function(){ + xhr.onreadystatechange = empty + xhr.abort() + ajaxError(null, 'timeout', xhr, settings) + }, settings.timeout) + + // avoid sending empty string (#319) + xhr.send(settings.data ? settings.data : null) + return xhr + } + + $.get = function(url, success){ return $.ajax({ url: url, success: success }) } + + $.post = function(url, data, success, dataType){ + if ($.isFunction(data)) dataType = dataType || success, success = data, data = null + return $.ajax({ type: 'POST', url: url, data: data, success: success, dataType: dataType }) + } + + $.getJSON = function(url, success){ + return $.ajax({ url: url, success: success, dataType: 'json' }) + } + + $.fn.load = function(url, success){ + if (!this.length) return this + var self = this, parts = url.split(/\s/), selector + if (parts.length > 1) url = parts[0], selector = parts[1] + $.get(url, function(response){ + self.html(selector ? + $('<div>').html(response.replace(rscript, "")).find(selector) + : response) + success && success.apply(self, arguments) + }) + return this + } + + var escape = encodeURIComponent + + function serialize(params, obj, traditional, scope){ + var array = $.isArray(obj) + $.each(obj, function(key, value) { + if (scope) key = traditional ? scope : scope + '[' + (array ? '' : key) + ']' + // handle data in serializeArray() format + if (!scope && array) params.add(value.name, value.value) + // recurse into nested objects + else if (traditional ? $.isArray(value) : isObject(value)) + serialize(params, value, traditional, key) + else params.add(key, value) + }) + } + + $.param = function(obj, traditional){ + var params = [] + params.add = function(k, v){ this.push(escape(k) + '=' + escape(v)) } + serialize(params, obj, traditional) + return params.join('&').replace(/%20/g, '+') + } +})(Zepto) diff --git a/frontend/gamma/js/Zepto/assets.js b/frontend/gamma/js/Zepto/assets.js new file mode 100644 index 0000000..b5a5712 --- a/dev/null +++ b/frontend/gamma/js/Zepto/assets.js @@ -0,0 +1,21 @@ +// Zepto.js +// (c) 2010-2012 Thomas Fuchs +// Zepto.js may be freely distributed under the MIT license. + +;(function($){ + var cache = [], timeout + + $.fn.remove = function(){ + return this.each(function(){ + if(this.parentNode){ + if(this.tagName === 'IMG'){ + cache.push(this) + this.src = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=' + if (timeout) clearTimeout(timeout) + timeout = setTimeout(function(){ cache = [] }, 60000) + } + this.parentNode.removeChild(this) + } + }) + } +})(Zepto) diff --git a/frontend/gamma/js/Zepto/data.js b/frontend/gamma/js/Zepto/data.js new file mode 100644 index 0000000..b4c289f --- a/dev/null +++ b/frontend/gamma/js/Zepto/data.js @@ -0,0 +1,67 @@ +// Zepto.js +// (c) 2010-2012 Thomas Fuchs +// Zepto.js may be freely distributed under the MIT license. + +// The following code is heavily inspired by jQuery's $.fn.data() + +;(function($) { + var data = {}, dataAttr = $.fn.data, camelize = $.camelCase, + exp = $.expando = 'Zepto' + (+new Date()) + + // Get value from node: + // 1. first try key as given, + // 2. then try camelized key, + // 3. fall back to reading "data-*" attribute. + function getData(node, name) { + var id = node[exp], store = id && data[id] + if (name === undefined) return store || setData(node) + else { + if (store) { + if (name in store) return store[name] + var camelName = camelize(name) + if (camelName in store) return store[camelName] + } + return dataAttr.call($(node), name) + } + } + + // Store value under camelized key on node + function setData(node, name, value) { + var id = node[exp] || (node[exp] = ++$.uuid), + store = data[id] || (data[id] = attributeData(node)) + if (name !== undefined) store[camelize(name)] = value + return store + } + + // Read all "data-*" attributes from a node + function attributeData(node) { + var store = {} + $.each(node.attributes, function(i, attr){ + if (attr.name.indexOf('data-') == 0) + store[camelize(attr.name.replace('data-', ''))] = + $.zepto.deserializeValue(attr.value) + }) + return store + } + + $.fn.data = function(name, value) { + return value === undefined ? + // set multiple values via object + $.isPlainObject(name) ? + this.each(function(i, node){ + $.each(name, function(key, value){ setData(node, key, value) }) + }) : + // get value from first element + this.length == 0 ? undefined : getData(this[0], name) : + // set value on all elements + this.each(function(){ setData(this, name, value) }) + } + + $.fn.removeData = function(names) { + if (typeof names == 'string') names = names.split(/\s+/) + return this.each(function(){ + var id = this[exp], store = id && data[id] + if (store) $.each(names, function(){ delete store[camelize(this)] }) + }) + } +})(Zepto) diff --git a/frontend/gamma/js/Zepto/detect.js b/frontend/gamma/js/Zepto/detect.js new file mode 100644 index 0000000..22c0386 --- a/dev/null +++ b/frontend/gamma/js/Zepto/detect.js @@ -0,0 +1,42 @@ +// Zepto.js +// (c) 2010-2012 Thomas Fuchs +// Zepto.js may be freely distributed under the MIT license. + +;(function($){ + function detect(ua){ + var os = this.os = {}, browser = this.browser = {}, + webkit = ua.match(/WebKit\/([\d.]+)/), + android = ua.match(/(Android)\s+([\d.]+)/), + ipad = ua.match(/(iPad).*OS\s([\d_]+)/), + iphone = !ipad && ua.match(/(iPhone\sOS)\s([\d_]+)/), + webos = ua.match(/(webOS|hpwOS)[\s\/]([\d.]+)/), + touchpad = webos && ua.match(/TouchPad/), + kindle = ua.match(/Kindle\/([\d.]+)/), + silk = ua.match(/Silk\/([\d._]+)/), + blackberry = ua.match(/(BlackBerry).*Version\/([\d.]+)/), + chrome = ua.match(/Chrome\/([\d.]+)/) || ua.match(/CriOS\/([\d.]+)/) + + // todo clean this up with a better OS/browser + // separation. we need to discern between multiple + // browsers on android, and decide if kindle fire in + // silk mode is android or not + + if (browser.webkit = !!webkit) browser.version = webkit[1] + + if (android) os.android = true, os.version = android[2] + if (iphone) os.ios = os.iphone = true, os.version = iphone[2].replace(/_/g, '.') + if (ipad) os.ios = os.ipad = true, os.version = ipad[2].replace(/_/g, '.') + if (webos) os.webos = true, os.version = webos[2] + if (touchpad) os.touchpad = true + if (blackberry) os.blackberry = true, os.version = blackberry[2] + if (kindle) os.kindle = true, os.version = kindle[1] + if (silk) browser.silk = true, browser.version = silk[1] + if (!silk && os.android && ua.match(/Kindle Fire/)) browser.silk = true + if (chrome) browser.chrome = true, browser.version = chrome[1] + } + + detect.call($, navigator.userAgent) + // make available to unit tests + $.__detect = detect + +})(Zepto) diff --git a/frontend/gamma/js/Zepto/event.js b/frontend/gamma/js/Zepto/event.js new file mode 100644 index 0000000..b40af22 --- a/dev/null +++ b/frontend/gamma/js/Zepto/event.js @@ -0,0 +1,248 @@ +// Zepto.js +// (c) 2010-2012 Thomas Fuchs +// Zepto.js may be freely distributed under the MIT license. + +;(function($){ + var $$ = $.zepto.qsa, handlers = {}, _zid = 1, specialEvents={}, + hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' } + + specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents' + + function zid(element) { + return element._zid || (element._zid = _zid++) + } + function findHandlers(element, event, fn, selector) { + event = parse(event) + if (event.ns) var matcher = matcherFor(event.ns) + return (handlers[zid(element)] || []).filter(function(handler) { + return handler + && (!event.e || handler.e == event.e) + && (!event.ns || matcher.test(handler.ns)) + && (!fn || zid(handler.fn) === zid(fn)) + && (!selector || handler.sel == selector) + }) + } + function parse(event) { + var parts = ('' + event).split('.') + return {e: parts[0], ns: parts.slice(1).sort().join(' ')} + } + function matcherFor(ns) { + return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)') + } + + function eachEvent(events, fn, iterator){ + if ($.isObject(events)) $.each(events, iterator) + else events.split(/\s/).forEach(function(type){ iterator(type, fn) }) + } + + function eventCapture(handler, captureSetting) { + return handler.del && + (handler.e == 'focus' || handler.e == 'blur') || + !!captureSetting + } + + function realEvent(type) { + return hover[type] || type + } + + function add(element, events, fn, selector, getDelegate, capture){ + var id = zid(element), set = (handlers[id] || (handlers[id] = [])) + eachEvent(events, fn, function(event, fn){ + var handler = parse(event) + handler.fn = fn + handler.sel = selector + // emulate mouseenter, mouseleave + if (handler.e in hover) fn = function(e){ + var related = e.relatedTarget + if (!related || (related !== this && !$.contains(this, related))) + return handler.fn.apply(this, arguments) + } + handler.del = getDelegate && getDelegate(fn, event) + var callback = handler.del || fn + handler.proxy = function (e) { + var result = callback.apply(element, [e].concat(e.data)) + if (result === false) e.preventDefault(), e.stopPropagation() + return result + } + handler.i = set.length + set.push(handler) + element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture)) + }) + } + function remove(element, events, fn, selector, capture){ + var id = zid(element) + eachEvent(events || '', fn, function(event, fn){ + findHandlers(element, event, fn, selector).forEach(function(handler){ + delete handlers[id][handler.i] + element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture)) + }) + }) + } + + $.event = { add: add, remove: remove } + + $.proxy = function(fn, context) { + if ($.isFunction(fn)) { + var proxyFn = function(){ return fn.apply(context, arguments) } + proxyFn._zid = zid(fn) + return proxyFn + } else if (typeof context == 'string') { + return $.proxy(fn[context], fn) + } else { + throw new TypeError("expected function") + } + } + + $.fn.bind = function(event, callback){ + return this.each(function(){ + add(this, event, callback) + }) + } + $.fn.unbind = function(event, callback){ + return this.each(function(){ + remove(this, event, callback) + }) + } + $.fn.one = function(event, callback){ + return this.each(function(i, element){ + add(this, event, callback, null, function(fn, type){ + return function(){ + var result = fn.apply(element, arguments) + remove(element, type, fn) + return result + } + }) + }) + } + + var returnTrue = function(){return true}, + returnFalse = function(){return false}, + ignoreProperties = /^([A-Z]|layer[XY]$)/, + eventMethods = { + preventDefault: 'isDefaultPrevented', + stopImmediatePropagation: 'isImmediatePropagationStopped', + stopPropagation: 'isPropagationStopped' + } + function createProxy(event) { + var key, proxy = { originalEvent: event } + for (key in event) + if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key] + + $.each(eventMethods, function(name, predicate) { + proxy[name] = function(){ + this[predicate] = returnTrue + return event[name].apply(event, arguments) + } + proxy[predicate] = returnFalse + }) + return proxy + } + + // emulates the 'defaultPrevented' property for browsers that have none + function fix(event) { + if (!('defaultPrevented' in event)) { + event.defaultPrevented = false + var prevent = event.preventDefault + event.preventDefault = function() { + this.defaultPrevented = true + prevent.call(this) + } + } + } + + $.fn.delegate = function(selector, event, callback){ + return this.each(function(i, element){ + add(element, event, callback, selector, function(fn){ + return function(e){ + var evt, match = $(e.target).closest(selector, element).get(0) + if (match) { + evt = $.extend(createProxy(e), {currentTarget: match, liveFired: element}) + return fn.apply(match, [evt].concat([].slice.call(arguments, 1))) + } + } + }) + }) + } + $.fn.undelegate = function(selector, event, callback){ + return this.each(function(){ + remove(this, event, callback, selector) + }) + } + + $.fn.live = function(event, callback){ + $(document.body).delegate(this.selector, event, callback) + return this + } + $.fn.die = function(event, callback){ + $(document.body).undelegate(this.selector, event, callback) + return this + } + + $.fn.on = function(event, selector, callback){ + return !selector || $.isFunction(selector) ? + this.bind(event, selector || callback) : this.delegate(selector, event, callback) + } + $.fn.off = function(event, selector, callback){ + return !selector || $.isFunction(selector) ? + this.unbind(event, selector || callback) : this.undelegate(selector, event, callback) + } + + $.fn.trigger = function(event, data){ + if (typeof event == 'string' || $.isPlainObject(event)) event = $.Event(event) + fix(event) + event.data = data + return this.each(function(){ + // items in the collection might not be DOM elements + // (todo: possibly support events on plain old objects) + if('dispatchEvent' in this) this.dispatchEvent(event) + }) + } + + // triggers event handlers on current element just as if an event occurred, + // doesn't trigger an actual event, doesn't bubble + $.fn.triggerHandler = function(event, data){ + var e, result + this.each(function(i, element){ + e = createProxy(typeof event == 'string' ? $.Event(event) : event) + e.data = data + e.target = element + $.each(findHandlers(element, event.type || event), function(i, handler){ + result = handler.proxy(e) + if (e.isImmediatePropagationStopped()) return false + }) + }) + return result + } + + // shortcut methods for `.bind(event, fn)` for each event type + ;('focusin focusout load resize scroll unload click dblclick '+ + 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave '+ + 'change select keydown keypress keyup error').split(' ').forEach(function(event) { + $.fn[event] = function(callback) { + return callback ? + this.bind(event, callback) : + this.trigger(event) + } + }) + + ;['focus', 'blur'].forEach(function(name) { + $.fn[name] = function(callback) { + if (callback) this.bind(name, callback) + else this.each(function(){ + try { this[name]() } + catch(e) {} + }) + return this + } + }) + + $.Event = function(type, props) { + if (typeof type != 'string') props = type, type = props.type + var event = document.createEvent(specialEvents[type] || 'Events'), bubbles = true + if (props) for (var name in props) (name == 'bubbles') ? (bubbles = !!props[name]) : (event[name] = props[name]) + event.initEvent(type, bubbles, true, null, null, null, null, null, null, null, null, null, null, null, null) + event.isDefaultPrevented = function(){ return this.defaultPrevented } + return event + } + +})(Zepto) diff --git a/frontend/gamma/js/Zepto/form.js b/frontend/gamma/js/Zepto/form.js new file mode 100644 index 0000000..4d562a6 --- a/dev/null +++ b/frontend/gamma/js/Zepto/form.js @@ -0,0 +1,40 @@ +// Zepto.js +// (c) 2010-2012 Thomas Fuchs +// Zepto.js may be freely distributed under the MIT license. + +;(function ($) { + $.fn.serializeArray = function () { + var result = [], el + $( Array.prototype.slice.call(this.get(0).elements) ).each(function () { + el = $(this) + var type = el.attr('type') + if (this.nodeName.toLowerCase() != 'fieldset' && + !this.disabled && type != 'submit' && type != 'reset' && type != 'button' && + ((type != 'radio' && type != 'checkbox') || this.checked)) + result.push({ + name: el.attr('name'), + value: el.val() + }) + }) + return result + } + + $.fn.serialize = function () { + var result = [] + this.serializeArray().forEach(function (elm) { + result.push( encodeURIComponent(elm.name) + '=' + encodeURIComponent(elm.value) ) + }) + return result.join('&') + } + + $.fn.submit = function (callback) { + if (callback) this.bind('submit', callback) + else if (this.length) { + var event = $.Event('submit') + this.eq(0).trigger(event) + if (!event.defaultPrevented) this.get(0).submit() + } + return this + } + +})(Zepto) diff --git a/frontend/gamma/js/Zepto/fx.js b/frontend/gamma/js/Zepto/fx.js new file mode 100644 index 0000000..575449a --- a/dev/null +++ b/frontend/gamma/js/Zepto/fx.js @@ -0,0 +1,102 @@ +// Zepto.js +// (c) 2010-2012 Thomas Fuchs +// Zepto.js may be freely distributed under the MIT license. + +;(function($, undefined){ + var prefix = '', eventPrefix, endEventName, endAnimationName, + vendors = { Webkit: 'webkit', Moz: '', O: 'o', ms: 'MS' }, + document = window.document, testEl = document.createElement('div'), + supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i, + transform, + transitionProperty, transitionDuration, transitionTiming, + animationName, animationDuration, animationTiming, + cssReset = {} + + function dasherize(str) { return downcase(str.replace(/([a-z])([A-Z])/, '$1-$2')) } + function downcase(str) { return str.toLowerCase() } + function normalizeEvent(name) { return eventPrefix ? eventPrefix + name : downcase(name) } + + $.each(vendors, function(vendor, event){ + if (testEl.style[vendor + 'TransitionProperty'] !== undefined) { + prefix = '-' + downcase(vendor) + '-' + eventPrefix = event + return false + } + }) + + transform = prefix + 'transform' + cssReset[transitionProperty = prefix + 'transition-property'] = + cssReset[transitionDuration = prefix + 'transition-duration'] = + cssReset[transitionTiming = prefix + 'transition-timing-function'] = + cssReset[animationName = prefix + 'animation-name'] = + cssReset[animationDuration = prefix + 'animation-duration'] = + cssReset[animationTiming = prefix + 'animation-timing-function'] = '' + + $.fx = { + off: (eventPrefix === undefined && testEl.style.transitionProperty === undefined), + speeds: { _default: 400, fast: 200, slow: 600 }, + cssPrefix: prefix, + transitionEnd: normalizeEvent('TransitionEnd'), + animationEnd: normalizeEvent('AnimationEnd') + } + + $.fn.animate = function(properties, duration, ease, callback){ + if ($.isObject(duration)) + ease = duration.easing, callback = duration.complete, duration = duration.duration + if (duration) duration = (typeof duration == 'number' ? duration : + ($.fx.speeds[duration] || $.fx.speeds._default)) / 1000 + return this.anim(properties, duration, ease, callback) + } + + $.fn.anim = function(properties, duration, ease, callback){ + var key, cssValues = {}, cssProperties, transforms = '', + that = this, wrappedCallback, endEvent = $.fx.transitionEnd + + if (duration === undefined) duration = 0.4 + if ($.fx.off) duration = 0 + + if (typeof properties == 'string') { + // keyframe animation + cssValues[animationName] = properties + cssValues[animationDuration] = duration + 's' + cssValues[animationTiming] = (ease || 'linear') + endEvent = $.fx.animationEnd + } else { + cssProperties = [] + // CSS transitions + for (key in properties) + if (supportedTransforms.test(key)) transforms += key + '(' + properties[key] + ') ' + else cssValues[key] = properties[key], cssProperties.push(dasherize(key)) + + if (transforms) cssValues[transform] = transforms, cssProperties.push(transform) + if (duration > 0 && typeof properties === 'object') { + cssValues[transitionProperty] = cssProperties.join(', ') + cssValues[transitionDuration] = duration + 's' + cssValues[transitionTiming] = (ease || 'linear') + } + } + + wrappedCallback = function(event){ + if (typeof event !== 'undefined') { + if (event.target !== event.currentTarget) return // makes sure the event didn't bubble from "below" + $(event.target).unbind(endEvent, arguments.callee) + } + $(this).css(cssReset) + callback && callback.call(this) + } + if (duration > 0) this.bind(endEvent, wrappedCallback) + + // trigger page reflow so new elements can animate + this.size() && this.get(0).clientLeft + + this.css(cssValues) + + if (duration <= 0) setTimeout(function() { + that.each(function(){ wrappedCallback.call(this) }) + }, 0) + + return this + } + + testEl = null +})(Zepto) diff --git a/frontend/gamma/js/Zepto/fx_methods.js b/frontend/gamma/js/Zepto/fx_methods.js new file mode 100644 index 0000000..23daf6e --- a/dev/null +++ b/frontend/gamma/js/Zepto/fx_methods.js @@ -0,0 +1,71 @@ +// Zepto.js +// (c) 2010-2012 Thomas Fuchs +// Zepto.js may be freely distributed under the MIT license. + +;(function($, undefined){ + var document = window.document, docElem = document.documentElement, + origShow = $.fn.show, origHide = $.fn.hide, origToggle = $.fn.toggle + + function anim(el, speed, opacity, scale, callback) { + if (typeof speed == 'function' && !callback) callback = speed, speed = undefined + var props = { opacity: opacity } + if (scale) { + props.scale = scale + el.css($.fx.cssPrefix + 'transform-origin', '0 0') + } + return el.animate(props, speed, null, callback) + } + + function hide(el, speed, scale, callback) { + return anim(el, speed, 0, scale, function(){ + origHide.call($(this)) + callback && callback.call(this) + }) + } + + $.fn.show = function(speed, callback) { + origShow.call(this) + if (speed === undefined) speed = 0 + else this.css('opacity', 0) + return anim(this, speed, 1, '1,1', callback) + } + + $.fn.hide = function(speed, callback) { + if (speed === undefined) return origHide.call(this) + else return hide(this, speed, '0,0', callback) + } + + $.fn.toggle = function(speed, callback) { + if (speed === undefined || typeof speed == 'boolean') + return origToggle.call(this, speed) + else return this.each(function(){ + var el = $(this) + el[el.css('display') == 'none' ? 'show' : 'hide'](speed, callback) + }) + } + + $.fn.fadeTo = function(speed, opacity, callback) { + return anim(this, speed, opacity, null, callback) + } + + $.fn.fadeIn = function(speed, callback) { + var target = this.css('opacity') + if (target > 0) this.css('opacity', 0) + else target = 1 + return origShow.call(this).fadeTo(speed, target, callback) + } + + $.fn.fadeOut = function(speed, callback) { + return hide(this, speed, null, callback) + } + + $.fn.fadeToggle = function(speed, callback) { + return this.each(function(){ + var el = $(this) + el[ + (el.css('opacity') == 0 || el.css('display') == 'none') ? 'fadeIn' : 'fadeOut' + ](speed, callback) + }) + } + +})(Zepto) diff --git a/frontend/gamma/js/Zepto/gesture.js b/frontend/gamma/js/Zepto/gesture.js new file mode 100644 index 0000000..035455b --- a/dev/null +++ b/frontend/gamma/js/Zepto/gesture.js @@ -0,0 +1,35 @@ +// Zepto.js +// (c) 2010-2012 Thomas Fuchs +// Zepto.js may be freely distributed under the MIT license. + +;(function($){ + if ($.os.ios) { + var gesture = {}, gestureTimeout + + function parentIfText(node){ + return 'tagName' in node ? node : node.parentNode + } + + $(document).bind('gesturestart', function(e){ + var now = Date.now(), delta = now - (gesture.last || now) + gesture.target = parentIfText(e.target) + gestureTimeout && clearTimeout(gestureTimeout) + gesture.e1 = e.scale + gesture.last = now + }).bind('gesturechange', function(e){ + gesture.e2 = e.scale + }).bind('gestureend', function(e){ + if (gesture.e2 > 0) { + Math.abs(gesture.e1 - gesture.e2) != 0 && $(gesture.target).trigger('pinch') && + $(gesture.target).trigger('pinch' + (gesture.e1 - gesture.e2 > 0 ? 'In' : 'Out')) + gesture.e1 = gesture.e2 = gesture.last = 0 + } else if ('last' in gesture) { + gesture = {} + } + }) + + ;['pinch', 'pinchIn', 'pinchOut'].forEach(function(m){ + $.fn[m] = function(callback){ return this.bind(m, callback) } + }) + } +})(Zepto) diff --git a/frontend/gamma/js/Zepto/polyfill.js b/frontend/gamma/js/Zepto/polyfill.js new file mode 100644 index 0000000..933d1f8 --- a/dev/null +++ b/frontend/gamma/js/Zepto/polyfill.js @@ -0,0 +1,36 @@ +// Zepto.js +// (c) 2010-2012 Thomas Fuchs +// Zepto.js may be freely distributed under the MIT license. + +;(function(undefined){ + if (String.prototype.trim === undefined) // fix for iOS 3.2 + String.prototype.trim = function(){ return this.replace(/^\s+/, '').replace(/\s+$/, '') } + + // For iOS 3.x + // from https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reduce + if (Array.prototype.reduce === undefined) + Array.prototype.reduce = function(fun){ + if(this === void 0 || this === null) throw new TypeError() + var t = Object(this), len = t.length >>> 0, k = 0, accumulator + if(typeof fun != 'function') throw new TypeError() + if(len == 0 && arguments.length == 1) throw new TypeError() + + if(arguments.length >= 2) + accumulator = arguments[1] + else + do{ + if(k in t){ + accumulator = t[k++] + break + } + if(++k >= len) throw new TypeError() + } while (true) + + while (k < len){ + if(k in t) accumulator = fun.call(undefined, accumulator, t[k], k, t) + k++ + } + return accumulator + } + +})() diff --git a/frontend/gamma/js/Zepto/selector.js b/frontend/gamma/js/Zepto/selector.js new file mode 100644 index 0000000..c0b035a --- a/dev/null +++ b/frontend/gamma/js/Zepto/selector.js @@ -0,0 +1,81 @@ +;(function($){ + var zepto = $.zepto, oldQsa = zepto.qsa, oldMatches = zepto.matches + + function visible(elem){ + elem = $(elem) + return !!(elem.width() || elem.height()) && elem.css("display") !== "none" + } + + // Implements a subset from: + // http://api.jquery.com/category/selectors/jquery-selector-extensions/ + // + // Each filter function receives the current index, all nodes in the + // considered set, and a value if there were parentheses. The value + // of `this` is the node currently being considered. The function returns the + // resulting node(s), null, or undefined. + // + // Complex selectors are not supported: + // li:has(label:contains("foo")) + li:has(label:contains("bar")) + // ul.inner:first > li + var filters = $.expr[':'] = { + visible: function(){ if (visible(this)) return this }, + hidden: function(){ if (!visible(this)) return this }, + selected: function(){ if (this.selected) return this }, + checked: function(){ if (this.checked) return this }, + parent: function(){ return this.parentNode }, + first: function(idx){ if (idx === 0) return this }, + last: function(idx, nodes){ if (idx === nodes.length - 1) return this }, + eq: function(idx, _, value){ if (idx === value) return this }, + contains: function(idx, _, text){ if ($(this).text().indexOf(text) > -1) return this }, + has: function(idx, _, sel){ if (zepto.qsa(this, sel).length) return this } + } + + var filterRe = new RegExp('(.*):(\\w+)(?:\\(([^)]+)\\))?$\\s*'), + childRe = /^\s*>/, + classTag = 'Zepto' + (+new Date()) + + function process(sel, fn) { + // quote the hash in `a[href^=#]` expression + sel = sel.replace(/=#\]/g, '="#"]') + var filter, arg, match = filterRe.exec(sel) + if (match && match[2] in filters) { + var filter = filters[match[2]], arg = match[3] + sel = match[1] + if (arg) { + var num = Number(arg) + if (isNaN(num)) arg = arg.replace(/^["']|["']$/g, '') + else arg = num + } + } + return fn(sel, filter, arg) + } + + zepto.qsa = function(node, selector) { + return process(selector, function(sel, filter, arg){ + try { + var taggedParent + if (!sel && filter) sel = '*' + else if (childRe.test(sel)) + // support "> *" child queries by tagging the parent node with a + // unique class and prepending that classname onto the selector + taggedParent = $(node).addClass(classTag), sel = '.'+classTag+' '+sel + + var nodes = oldQsa(node, sel) + } catch(e) { + console.error('error performing selector: %o', selector) + throw e + } finally { + if (taggedParent) taggedParent.removeClass(classTag) + } + return !filter ? nodes : + zepto.uniq($.map(nodes, function(n, i){ return filter.call(n, i, nodes, arg) })) + }) + } + + zepto.matches = function(node, selector){ + return process(selector, function(sel, filter, arg){ + return (!sel || oldMatches(node, sel)) && + (!filter || filter.call(node, null, arg) === node) + }) + } +})(Zepto) diff --git a/frontend/gamma/js/Zepto/stack.js b/frontend/gamma/js/Zepto/stack.js new file mode 100644 index 0000000..c995285 --- a/dev/null +++ b/frontend/gamma/js/Zepto/stack.js @@ -0,0 +1,22 @@ +// Zepto.js +// (c) 2010-2012 Thomas Fuchs +// Zepto.js may be freely distributed under the MIT license. + +;(function($){ + $.fn.end = function(){ + return this.prevObject || $() + } + + $.fn.andSelf = function(){ + return this.add(this.prevObject || $()) + } + + 'filter,add,not,eq,first,last,find,closest,parents,parent,children,siblings'.split(',').forEach(function(property){ + var fn = $.fn[property] + $.fn[property] = function(){ + var ret = fn.apply(this, arguments) + ret.prevObject = this + return ret + } + }) +})(Zepto) diff --git a/frontend/gamma/js/Zepto/touch.js b/frontend/gamma/js/Zepto/touch.js new file mode 100644 index 0000000..af109b9 --- a/dev/null +++ b/frontend/gamma/js/Zepto/touch.js @@ -0,0 +1,113 @@ +// Zepto.js +// (c) 2010-2012 Thomas Fuchs +// Zepto.js may be freely distributed under the MIT license. + +;(function($){ + var touch = {}, + touchTimeout, tapTimeout, swipeTimeout, + longTapDelay = 750, longTapTimeout + + function parentIfText(node) { + return 'tagName' in node ? node : node.parentNode + } + + function swipeDirection(x1, x2, y1, y2) { + var xDelta = Math.abs(x1 - x2), yDelta = Math.abs(y1 - y2) + return xDelta >= yDelta ? (x1 - x2 > 0 ? 'Left' : 'Right') : (y1 - y2 > 0 ? 'Up' : 'Down') + } + + function longTap() { + longTapTimeout = null + if (touch.last) { + touch.el.trigger('longTap') + touch = {} + } + } + + function cancelLongTap() { + if (longTapTimeout) clearTimeout(longTapTimeout) + longTapTimeout = null + } + + function cancelAll() { + if (touchTimeout) clearTimeout(touchTimeout) + if (tapTimeout) clearTimeout(tapTimeout) + if (swipeTimeout) clearTimeout(swipeTimeout) + if (longTapTimeout) clearTimeout(longTapTimeout) + touchTimeout = tapTimeout = swipeTimeout = longTapTimeout = null + touch = {} + } + + $(document).ready(function(){ + var now, delta + + $(document.body) + .bind('touchstart', function(e){ + now = Date.now() + delta = now - (touch.last || now) + touch.el = $(parentIfText(e.touches[0].target)) + touchTimeout && clearTimeout(touchTimeout) + touch.x1 = e.touches[0].pageX + touch.y1 = e.touches[0].pageY + if (delta > 0 && delta <= 250) touch.isDoubleTap = true + touch.last = now + longTapTimeout = setTimeout(longTap, longTapDelay) + }) + .bind('touchmove', function(e){ + cancelLongTap() + touch.x2 = e.touches[0].pageX + touch.y2 = e.touches[0].pageY + }) + .bind('touchend', function(e){ + cancelLongTap() + + // swipe + if ((touch.x2 && Math.abs(touch.x1 - touch.x2) > 30) || + (touch.y2 && Math.abs(touch.y1 - touch.y2) > 30)) + + swipeTimeout = setTimeout(function() { + touch.el.trigger('swipe') + touch.el.trigger('swipe' + (swipeDirection(touch.x1, touch.x2, touch.y1, touch.y2))) + touch = {} + }, 0) + + // normal tap + else if ('last' in touch) + + // delay by one tick so we can cancel the 'tap' event if 'scroll' fires + // ('tap' fires before 'scroll') + tapTimeout = setTimeout(function() { + + // trigger universal 'tap' with the option to cancelTouch() + // (cancelTouch cancels processing of single vs double taps for faster 'tap' response) + var event = $.Event('tap') + event.cancelTouch = cancelAll + touch.el.trigger(event) + + // trigger double tap immediately + if (touch.isDoubleTap) { + touch.el.trigger('doubleTap') + touch = {} + } + + // trigger single tap after 250ms of inactivity + else { + touchTimeout = setTimeout(function(){ + touchTimeout = null + touch.el.trigger('singleTap') + touch = {} + }, 250) + } + + }, 0) + + }) + .bind('touchcancel', cancelAll) + + $(window).bind('scroll', cancelAll) + }) + + ;['swipe', 'swipeLeft', 'swipeRight', 'swipeUp', 'swipeDown', 'doubleTap', 'tap', 'singleTap', 'longTap'].forEach(function(m){ + $.fn[m] = function(callback){ return this.bind(m, callback) } + }) +})(Zepto) diff --git a/frontend/gamma/js/Zepto/zepto.js b/frontend/gamma/js/Zepto/zepto.js new file mode 100644 index 0000000..e67b3a2 --- a/dev/null +++ b/frontend/gamma/js/Zepto/zepto.js @@ -0,0 +1,751 @@ +// Zepto.js +// (c) 2010-2012 Thomas Fuchs +// Zepto.js may be freely distributed under the MIT license. + +var Zepto = (function() { + var undefined, key, $, classList, emptyArray = [], slice = emptyArray.slice, filter = emptyArray.filter, + document = window.document, + elementDisplay = {}, classCache = {}, + getComputedStyle = document.defaultView.getComputedStyle, + cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1,'opacity': 1, 'z-index': 1, 'zoom': 1 }, + fragmentRE = /^\s*<(\w+|!)[^>]*>/, + tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, + rootNodeRE = /^(?:body|html)$/i, + + // special attributes that should be get/set via method calls + methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'], + + adjacencyOperators = [ 'after', 'prepend', 'before', 'append' ], + table = document.createElement('table'), + tableRow = document.createElement('tr'), + containers = { + 'tr': document.createElement('tbody'), + 'tbody': table, 'thead': table, 'tfoot': table, + 'td': tableRow, 'th': tableRow, + '*': document.createElement('div') + }, + readyRE = /complete|loaded|interactive/, + classSelectorRE = /^\.([\w-]+)$/, + idSelectorRE = /^#([\w-]*)$/, + tagSelectorRE = /^[\w-]+$/, + toString = {}.toString, + zepto = {}, + camelize, uniq, + tempParent = document.createElement('div') + + zepto.matches = function(element, selector) { + if (!element || element.nodeType !== 1) return false + var matchesSelector = element.webkitMatchesSelector || element.mozMatchesSelector || + element.oMatchesSelector || element.matchesSelector + if (matchesSelector) return matchesSelector.call(element, selector) + // fall back to performing a selector: + var match, parent = element.parentNode, temp = !parent + if (temp) (parent = tempParent).appendChild(element) + match = ~zepto.qsa(parent, selector).indexOf(element) + temp && tempParent.removeChild(element) + return match + } + + function isFunction(value) { return toString.call(value) == "[object Function]" } + function isObject(value) { return value instanceof Object } + function isPlainObject(value) { + return isObject(value) && value != window && value.__proto__ == Object.prototype + } + function isArray(value) { return value instanceof Array } + function likeArray(obj) { return typeof obj.length == 'number' } + + function compact(array) { return filter.call(array, function(item){ return item != null }) } + function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array } + camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) } + function dasherize(str) { + return str.replace(/::/g, '/') + .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2') + .replace(/([a-z\d])([A-Z])/g, '$1_$2') + .replace(/_/g, '-') + .toLowerCase() + } + uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) } + + function classRE(name) { + return name in classCache ? + classCache[name] : (classCache[name] = new RegExp('(^|\\s)' + name + '(\\s|$)')) + } + + function maybeAddPx(name, value) { + return (typeof value == "number" && !cssNumber[dasherize(name)]) ? value + "px" : value + } + + function defaultDisplay(nodeName) { + var element, display + if (!elementDisplay[nodeName]) { + element = document.createElement(nodeName) + document.body.appendChild(element) + display = getComputedStyle(element, '').getPropertyValue("display") + element.parentNode.removeChild(element) + display == "none" && (display = "block") + elementDisplay[nodeName] = display + } + return elementDisplay[nodeName] + } + + function children(element) { + return 'children' in element ? + slice.call(element.children) : + $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node }) + } + + // `$.zepto.fragment` takes a html string and an optional tag name + // to generate DOM nodes nodes from the given html string. + // The generated DOM nodes are returned as an array. + // This function can be overriden in plugins for example to make + // it compatible with browsers that don't support the DOM fully. + zepto.fragment = function(html, name, properties) { + if (html.replace) html = html.replace(tagExpanderRE, "<$1></$2>") + if (name === undefined) name = fragmentRE.test(html) && RegExp.$1 + if (!(name in containers)) name = '*' + + var nodes, dom, container = containers[name] + container.innerHTML = '' + html + dom = $.each(slice.call(container.childNodes), function(){ + container.removeChild(this) + }) + if (isPlainObject(properties)) { + nodes = $(dom) + $.each(properties, function(key, value) { + if (methodAttributes.indexOf(key) > -1) nodes[key](value) + else nodes.attr(key, value) + }) + } + return dom + } + + // `$.zepto.Z` swaps out the prototype of the given `dom` array + // of nodes with `$.fn` and thus supplying all the Zepto functions + // to the array. Note that `__proto__` is not supported on Internet + // Explorer. This method can be overriden in plugins. + zepto.Z = function(dom, selector) { + dom = dom || [] + dom.__proto__ = arguments.callee.prototype + dom.selector = selector || '' + return dom + } + + // `$.zepto.isZ` should return `true` if the given object is a Zepto + // collection. This method can be overriden in plugins. + zepto.isZ = function(object) { + return object instanceof zepto.Z + } + + // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and + // takes a CSS selector and an optional context (and handles various + // special cases). + // This method can be overriden in plugins. + zepto.init = function(selector, context) { + // If nothing given, return an empty Zepto collection + if (!selector) return zepto.Z() + // If a function is given, call it when the DOM is ready + else if (isFunction(selector)) return $(document).ready(selector) + // If a Zepto collection is given, juts return it + else if (zepto.isZ(selector)) return selector + else { + var dom + // normalize array if an array of nodes is given + if (isArray(selector)) dom = compact(selector) + // Wrap DOM nodes. If a plain object is given, duplicate it. + else if (isObject(selector)) + dom = [isPlainObject(selector) ? $.extend({}, selector) : selector], selector = null + // If it's a html fragment, create nodes from it + else if (fragmentRE.test(selector)) + dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null + // If there's a context, create a collection on that context first, and select + // nodes from there + else if (context !== undefined) return $(context).find(selector) + // And last but no least, if it's a CSS selector, use it to select nodes. + else dom = zepto.qsa(document, selector) + // create a new Zepto collection from the nodes found + return zepto.Z(dom, selector) + } + } + + // `$` will be the base `Zepto` object. When calling this + // function just call `$.zepto.init, which makes the implementation + // details of selecting nodes and creating Zepto collections + // patchable in plugins. + $ = function(selector, context){ + return zepto.init(selector, context) + } + + function extend(target, source, deep) { + for (key in source) + if (deep && isPlainObject(source[key])) { + if (!isPlainObject(target[key])) target[key] = {} + extend(target[key], source[key], deep) + } + else if (source[key] !== undefined) target[key] = source[key] + } + + // Copy all but undefined properties from one or more + // objects to the `target` object. + $.extend = function(target){ + var deep, args = slice.call(arguments, 1) + if (typeof target == 'boolean') { + deep = target + target = args.shift() + } + args.forEach(function(arg){ extend(target, arg, deep) }) + return target + } + + // `$.zepto.qsa` is Zepto's CSS selector implementation which + // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`. + // This method can be overriden in plugins. + zepto.qsa = function(element, selector){ + var found + return (element === document && idSelectorRE.test(selector)) ? + ( (found = element.getElementById(RegExp.$1)) ? [found] : [] ) : + (element.nodeType !== 1 && element.nodeType !== 9) ? [] : + slice.call( + classSelectorRE.test(selector) ? element.getElementsByClassName(RegExp.$1) : + tagSelectorRE.test(selector) ? element.getElementsByTagName(selector) : + element.querySelectorAll(selector) + ) + } + + function filtered(nodes, selector) { + return selector === undefined ? $(nodes) : $(nodes).filter(selector) + } + + $.contains = function(parent, node) { + return parent !== node && parent.contains(node) + } + + function funcArg(context, arg, idx, payload) { + return isFunction(arg) ? arg.call(context, idx, payload) : arg + } + + function setAttribute(node, name, value) { + value == null ? node.removeAttribute(name) : node.setAttribute(name, value) + } + + // access className property while respecting SVGAnimatedString + function className(node, value){ + var klass = node.className, + svg = klass && klass.baseVal !== undefined + + if (value === undefined) return svg ? klass.baseVal : klass + svg ? (klass.baseVal = value) : (node.className = value) + } + + // "true" => true + // "false" => false + // "null" => null + // "42" => 42 + // "42.5" => 42.5 + // JSON => parse if valid + // String => self + function deserializeValue(value) { + var num + try { + return value ? + value == "true" || + ( value == "false" ? false : + value == "null" ? null : + !isNaN(num = Number(value)) ? num : + /^[\[\{]/.test(value) ? $.parseJSON(value) : + value ) + : value + } catch(e) { + return value + } + } + + $.isFunction = isFunction + $.isObject = isObject + $.isArray = isArray + $.isPlainObject = isPlainObject + + $.inArray = function(elem, array, i){ + return emptyArray.indexOf.call(array, elem, i) + } + + $.camelCase = camelize + $.trim = function(str) { return str.trim() } + + // plugin compatibility + $.uuid = 0 + $.support = { } + $.expr = { } + + $.map = function(elements, callback){ + var value, values = [], i, key + if (likeArray(elements)) + for (i = 0; i < elements.length; i++) { + value = callback(elements[i], i) + if (value != null) values.push(value) + } + else + for (key in elements) { + value = callback(elements[key], key) + if (value != null) values.push(value) + } + return flatten(values) + } + + $.each = function(elements, callback){ + var i, key + if (likeArray(elements)) { + for (i = 0; i < elements.length; i++) + if (callback.call(elements[i], i, elements[i]) === false) return elements + } else { + for (key in elements) + if (callback.call(elements[key], key, elements[key]) === false) return elements + } + + return elements + } + + $.grep = function(elements, callback){ + return filter.call(elements, callback) + } + + if (window.JSON) $.parseJSON = JSON.parse + + // Define methods that will be available on all + // Zepto collections + $.fn = { + // Because a collection acts like an array + // copy over these useful array functions. + forEach: emptyArray.forEach, + reduce: emptyArray.reduce, + push: emptyArray.push, + sort: emptyArray.sort, + indexOf: emptyArray.indexOf, + concat: emptyArray.concat, + + // `map` and `slice` in the jQuery API work differently + // from their array counterparts + map: function(fn){ + return $($.map(this, function(el, i){ return fn.call(el, i, el) })) + }, + slice: function(){ + return $(slice.apply(this, arguments)) + }, + + ready: function(callback){ + if (readyRE.test(document.readyState)) callback($) + else document.addEventListener('DOMContentLoaded', function(){ callback($) }, false) + return this + }, + get: function(idx){ + return idx === undefined ? slice.call(this) : this[idx] + }, + toArray: function(){ return this.get() }, + size: function(){ + return this.length + }, + remove: function(){ + return this.each(function(){ + if (this.parentNode != null) + this.parentNode.removeChild(this) + }) + }, + each: function(callback){ + emptyArray.every.call(this, function(el, idx){ + return callback.call(el, idx, el) !== false + }) + return this + }, + filter: function(selector){ + if (isFunction(selector)) return this.not(this.not(selector)) + return $(filter.call(this, function(element){ + return zepto.matches(element, selector) + })) + }, + add: function(selector,context){ + return $(uniq(this.concat($(selector,context)))) + }, + is: function(selector){ + return this.length > 0 && zepto.matches(this[0], selector) + }, + not: function(selector){ + var nodes=[] + if (isFunction(selector) && selector.call !== undefined) + this.each(function(idx){ + if (!selector.call(this,idx)) nodes.push(this) + }) + else { + var excludes = typeof selector == 'string' ? this.filter(selector) : + (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector) + this.forEach(function(el){ + if (excludes.indexOf(el) < 0) nodes.push(el) + }) + } + return $(nodes) + }, + has: function(selector){ + return this.filter(function(){ + return isObject(selector) ? + $.contains(this, selector) : + $(this).find(selector).size() + }) + }, + eq: function(idx){ + return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1) + }, + first: function(){ + var el = this[0] + return el && !isObject(el) ? el : $(el) + }, + last: function(){ + var el = this[this.length - 1] + return el && !isObject(el) ? el : $(el) + }, + find: function(selector){ + var result + if (this.length == 1) result = $(zepto.qsa(this[0], selector)) + else result = this.map(function(){ return zepto.qsa(this, selector) }) + return result + }, + closest: function(selector, context){ + var node = this[0] + while (node && !zepto.matches(node, selector)) + node = node !== context && node !== document && node.parentNode + return $(node) + }, + parents: function(selector){ + var ancestors = [], nodes = this + while (nodes.length > 0) + nodes = $.map(nodes, function(node){ + if ((node = node.parentNode) && node !== document && ancestors.indexOf(node) < 0) { + ancestors.push(node) + return node + } + }) + return filtered(ancestors, selector) + }, + parent: function(selector){ + return filtered(uniq(this.pluck('parentNode')), selector) + }, + children: function(selector){ + return filtered(this.map(function(){ return children(this) }), selector) + }, + contents: function() { + return this.map(function() { return slice.call(this.childNodes) }) + }, + siblings: function(selector){ + return filtered(this.map(function(i, el){ + return filter.call(children(el.parentNode), function(child){ return child!==el }) + }), selector) + }, + empty: function(){ + return this.each(function(){ this.innerHTML = '' }) + }, + // `pluck` is borrowed from Prototype.js + pluck: function(property){ + return $.map(this, function(el){ return el[property] }) + }, + show: function(){ + return this.each(function(){ + this.style.display == "none" && (this.style.display = null) + if (getComputedStyle(this, '').getPropertyValue("display") == "none") + this.style.display = defaultDisplay(this.nodeName) + }) + }, + replaceWith: function(newContent){ + return this.before(newContent).remove() + }, + wrap: function(structure){ + var func = isFunction(structure) + if (this[0] && !func) + var dom = $(structure).get(0), + clone = dom.parentNode || this.length > 1 + + return this.each(function(index){ + $(this).wrapAll( + func ? structure.call(this, index) : + clone ? dom.cloneNode(true) : dom + ) + }) + }, + wrapAll: function(structure){ + if (this[0]) { + $(this[0]).before(structure = $(structure)) + var children + // drill down to the inmost element + while ((children = structure.children()).length) structure = children.first() + $(structure).append(this) + } + return this + }, + wrapInner: function(structure){ + var func = isFunction(structure) + return this.each(function(index){ + var self = $(this), contents = self.contents(), + dom = func ? structure.call(this, index) : structure + contents.length ? contents.wrapAll(dom) : self.append(dom) + }) + }, + unwrap: function(){ + this.parent().each(function(){ + $(this).replaceWith($(this).children()) + }) + return this + }, + clone: function(){ + return this.map(function(){ return this.cloneNode(true) }) + }, + hide: function(){ + return this.css("display", "none") + }, + toggle: function(setting){ + return this.each(function(){ + var el = $(this) + ;(setting === undefined ? el.css("display") == "none" : setting) ? el.show() : el.hide() + }) + }, + prev: function(selector){ return $(this.pluck('previousElementSibling')).filter(selector || '*') }, + next: function(selector){ return $(this.pluck('nextElementSibling')).filter(selector || '*') }, + html: function(html){ + return html === undefined ? + (this.length > 0 ? this[0].innerHTML : null) : + this.each(function(idx){ + var originHtml = this.innerHTML + $(this).empty().append( funcArg(this, html, idx, originHtml) ) + }) + }, + text: function(text){ + return text === undefined ? + (this.length > 0 ? this[0].textContent : null) : + this.each(function(){ this.textContent = text }) + }, + attr: function(name, value){ + var result + return (typeof name == 'string' && value === undefined) ? + (this.length == 0 || this[0].nodeType !== 1 ? undefined : + (name == 'value' && this[0].nodeName == 'INPUT') ? this.val() : + (!(result = this[0].getAttribute(name)) && name in this[0]) ? this[0][name] : result + ) : + this.each(function(idx){ + if (this.nodeType !== 1) return + if (isObject(name)) for (key in name) setAttribute(this, key, name[key]) + else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name))) + }) + }, + removeAttr: function(name){ + return this.each(function(){ this.nodeType === 1 && setAttribute(this, name) }) + }, + prop: function(name, value){ + return (value === undefined) ? + (this[0] && this[0][name]) : + this.each(function(idx){ + this[name] = funcArg(this, value, idx, this[name]) + }) + }, + data: function(name, value){ + var data = this.attr('data-' + dasherize(name), value) + return data !== null ? deserializeValue(data) : undefined + }, + val: function(value){ + return (value === undefined) ? + (this[0] && (this[0].multiple ? + $(this[0]).find('option').filter(function(o){ return this.selected }).pluck('value') : + this[0].value) + ) : + this.each(function(idx){ + this.value = funcArg(this, value, idx, this.value) + }) + }, + offset: function(coordinates){ + if (coordinates) return this.each(function(index){ + var $this = $(this), + coords = funcArg(this, coordinates, index, $this.offset()), + parentOffset = $this.offsetParent().offset(), + props = { + top: coords.top - parentOffset.top, + left: coords.left - parentOffset.left + } + + if ($this.css('position') == 'static') props['position'] = 'relative' + $this.css(props) + }) + if (this.length==0) return null + var obj = this[0].getBoundingClientRect() + return { + left: obj.left + window.pageXOffset, + top: obj.top + window.pageYOffset, + width: obj.width, + height: obj.height + } + }, + css: function(property, value){ + if (arguments.length < 2 && typeof property == 'string') + return this[0] && (this[0].style[camelize(property)] || getComputedStyle(this[0], '').getPropertyValue(property)) + + var css = '' + for (key in property) + if (!property[key] && property[key] !== 0) + this.each(function(){ this.style.removeProperty(dasherize(key)) }) + else + css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';' + + if (typeof property == 'string') + if (!value && value !== 0) + this.each(function(){ this.style.removeProperty(dasherize(property)) }) + else + css = dasherize(property) + ":" + maybeAddPx(property, value) + + return this.each(function(){ this.style.cssText += ';' + css }) + }, + index: function(element){ + return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0]) + }, + hasClass: function(name){ + return emptyArray.some.call(this, function(el){ + return this.test(className(el)) + }, classRE(name)) + }, + addClass: function(name){ + return this.each(function(idx){ + classList = [] + var cls = className(this), newName = funcArg(this, name, idx, cls) + newName.split(/\s+/g).forEach(function(klass){ + if (!$(this).hasClass(klass)) classList.push(klass) + }, this) + classList.length && className(this, cls + (cls ? " " : "") + classList.join(" ")) + }) + }, + removeClass: function(name){ + return this.each(function(idx){ + if (name === undefined) return className(this, '') + classList = className(this) + funcArg(this, name, idx, classList).split(/\s+/g).forEach(function(klass){ + classList = classList.replace(classRE(klass), " ") + }) + className(this, classList.trim()) + }) + }, + toggleClass: function(name, when){ + return this.each(function(idx){ + var newName = funcArg(this, name, idx, className(this)) + ;(when === undefined ? !$(this).hasClass(newName) : when) ? + $(this).addClass(newName) : $(this).removeClass(newName) + }) + }, + scrollTop: function(){ + if (!this.length) return + return ('scrollTop' in this[0]) ? this[0].scrollTop : this[0].scrollY + }, + position: function() { + if (!this.length) return + + var elem = this[0], + // Get *real* offsetParent + offsetParent = this.offsetParent(), + // Get correct offsets + offset = this.offset(), + parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset() + + // Subtract element margins + // note: when an element has margin: auto the offsetLeft and marginLeft + // are the same in Safari causing offset.left to incorrectly be 0 + offset.top -= parseFloat( $(elem).css('margin-top') ) || 0 + offset.left -= parseFloat( $(elem).css('margin-left') ) || 0 + + // Add offsetParent borders + parentOffset.top += parseFloat( $(offsetParent[0]).css('border-top-width') ) || 0 + parentOffset.left += parseFloat( $(offsetParent[0]).css('border-left-width') ) || 0 + + // Subtract the two offsets + return { + top: offset.top - parentOffset.top, + left: offset.left - parentOffset.left + } + }, + offsetParent: function() { + return this.map(function(){ + var parent = this.offsetParent || document.body + while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css("position") == "static") + parent = parent.offsetParent + return parent + }) + } + } + + // for now + $.fn.detach = $.fn.remove + + // Generate the `width` and `height` functions + ;['width', 'height'].forEach(function(dimension){ + $.fn[dimension] = function(value){ + var offset, Dimension = dimension.replace(/./, function(m){ return m[0].toUpperCase() }) + if (value === undefined) return this[0] == window ? window['inner' + Dimension] : + this[0] == document ? document.documentElement['offset' + Dimension] : + (offset = this.offset()) && offset[dimension] + else return this.each(function(idx){ + var el = $(this) + el.css(dimension, funcArg(this, value, idx, el[dimension]())) + }) + } + }) + + function traverseNode(node, fun) { + fun(node) + for (var key in node.childNodes) traverseNode(node.childNodes[key], fun) + } + + // Generate the `after`, `prepend`, `before`, `append`, + // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods. + adjacencyOperators.forEach(function(operator, operatorIndex) { + var inside = operatorIndex % 2 //=> prepend, append + + $.fn[operator] = function(){ + // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings + var nodes = $.map(arguments, function(n){ return isObject(n) ? n : zepto.fragment(n) }), + parent, copyByClone = this.length > 1 + if (nodes.length < 1) return this + + return this.each(function(_, target){ + parent = inside ? target : target.parentNode + + // convert all methods to a "before" operation + target = operatorIndex == 0 ? target.nextSibling : + operatorIndex == 1 ? target.firstChild : + operatorIndex == 2 ? target : + null + + nodes.forEach(function(node){ + if (copyByClone) node = node.cloneNode(true) + else if (!parent) return $(node).remove() + + traverseNode(parent.insertBefore(node, target), function(el){ + if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' && + (!el.type || el.type === 'text/javascript') && !el.src) + window['eval'].call(window, el.innerHTML) + }) + }) + }) + } + + // after => insertAfter + // prepend => prependTo + // before => insertBefore + // append => appendTo + $.fn[inside ? operator+'To' : 'insert'+(operatorIndex ? 'Before' : 'After')] = function(html){ + $(html)[operator](this) + return this + } + }) + + zepto.Z.prototype = $.fn + + // Export internal API functions in the `$.zepto` namespace + zepto.uniq = uniq + zepto.deserializeValue = deserializeValue + $.zepto = zepto + + return $ +})() + +// If `$` is not yet defined, point it to `Zepto` +window.Zepto = Zepto +'$' in window || (window.$ = Zepto) diff --git a/frontend/gamma/js/main_iPhone.js b/frontend/gamma/js/main.mobile.js index 0644f68..60a32fa 100644 --- a/frontend/gamma/js/main_iPhone.js +++ b/frontend/gamma/js/main.mobile.js @@ -47,11 +47,18 @@ Clipperz.PM.RunTime = {}; function run() { - MochiKit.DOM.removeElement('javaScriptAlert'); Clipperz.PM.Strings.Languages.initSetup(); - Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.iPhone.Controllers.MainController(); - Clipperz.PM.RunTime.mainController.run(false); + Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.Mobile.Controllers.MainController(); + Clipperz.PM.RunTime.mainController.run(); } +// if (navigator.standalone == false) { +// window.localStorage.setItem('PIN', '1234'); +// alert("Saved PIN"); +// } else { +// alert (window.localStorage.getItem('PIN')); +// } + + MochiKit.DOM.addLoadEvent(run); diff --git a/frontend/gamma/properties/creditsAndCopyrights.txt b/frontend/gamma/properties/creditsAndCopyrights.txt index 598440d..59f0f0a 100644 --- a/frontend/gamma/properties/creditsAndCopyrights.txt +++ b/frontend/gamma/properties/creditsAndCopyrights.txt @@ -7,159 +7,200 @@ # MochiKit (http://www.mochikit.com) - repository: @mochikit.repository@ (revision: @mochikit.version@) - * Software licence: http://svn.mochikit.com/mochikit/trunk/licence.txt + * Software licence: https://github.com/mochi/mochikit/blob/master/LICENSE.txt | MochiKit is dual-licensed software. It is available under the terms of the | MIT License, or the Academic Free License version 2.1. The full text of | each license is included below. - | + | + | The MochiKit.Style.getElementPosition function is adapted from + | YAHOO.util.Dom.getXY v0.9.0. which is copyrighted by Yahoo! Inc. and + | licensed under the BSD license also reproduced in full below. + | | MIT License | =========== - | + | | Copyright (c) 2005 Bob Ippolito. All rights reserved. - | - | Permission is hereby granted, free of charge, to any person obtaining a copy of this - | software and associated documentation files (the "Software"), to deal in the Software - | without restriction, including without limitation the rights to use, copy, modify, - | merge, publish, distribute, sublicense, and/or sell copies of the Software, and to - | permit persons to whom the Software is furnished to do so, subject to the following - | conditions: - | - | The above copyright notice and this permission notice shall be included in all copies - | or substantial portions of the Software. - | - | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, - | INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR - | PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE - | FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - | OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - | DEALINGS IN THE SOFTWARE. - | - | + | + | Permission is hereby granted, free of charge, to any person obtaining a copy + | of this software and associated documentation files (the "Software"), to deal + | in the Software without restriction, including without limitation the rights + | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + | copies of the Software, and to permit persons to whom the Software is furnished + | to do so, subject to the following conditions: + | + | The above copyright notice and this permission notice shall be included in all + | copies or substantial portions of the Software. + | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + | + | | Academic Free License v. 2.1 | ============================ - | + | | Copyright (c) 2005 Bob Ippolito. All rights reserved. - | - | This Academic Free License (the "License") applies to any original work of authorship (the - | "Original Work") whose owner (the "Licensor") has placed the following notice immediately - | following the copyright notice for the Original Work: - | + | + | This Academic Free License (the "License") applies to any original work of + | authorship (the "Original Work") whose owner (the "Licensor") has placed the + | following notice immediately following the copyright notice for the Original Work: + | | Licensed under the Academic Free License version 2.1 - | - | 1) Grant of Copyright License. Licensor hereby grants You a world-wide, royalty-free, - | non-exclusive, perpetual, sublicenseable license to do the following: + | + | 1) Grant of Copyright License. Licensor hereby grants You a world-wide, royalty-free, + | non-exclusive, perpetual, sublicenseable license to do the following: | | a) to reproduce the Original Work in copies; | b) to prepare derivative works ("Derivative Works") based upon the Original Work; | c) to distribute copies of the Original Work and Derivative Works to the public; | d) to perform the Original Work publicly; and | e) to display the Original Work publicly. - | - | 2) Grant of Patent License. Licensor hereby grants You a world-wide, royalty-free, - | non-exclusive, perpetual, sublicenseable license, under patent claims owned or controlled - | by the Licensor that are embodied in the Original Work as furnished by the Licensor, to - | make, use, sell and offer for sale the Original Work and Derivative Works. - | - | 3) Grant of Source Code License. The term "Source Code" means the preferred form of the - | Original Work for making modifications to it and all available documentation describing - | how to modify the Original Work. Licensor hereby agrees to provide a machine-readable copy - | of the Source Code of the Original Work along with each copy of the Original Work that - | Licensor distributes. Licensor reserves the right to satisfy this obligation by placing - | a machine-readable copy of the Source Code in an information repository reasonably - | calculated to permit inexpensive and convenient access by You for as long as Licensor - | continues to distribute the Original Work, and by publishing the address of that information - | repository in a notice immediately following the copyright notice that applies to the Original - | Work. - | - | 4) Exclusions From License Grant. Neither the names of Licensor, nor the names of any - | contributors to the Original Work, nor any of their trademarks or service marks, may be used - | to endorse or promote products derived from this Original Work without express prior written - | permission of the Licensor. Nothing in this License shall be deemed to grant any rights to - | trademarks, copyrights, patents, trade secrets or any other intellectual property of Licensor - | except as expressly stated herein. No patent license is granted to make, use, sell or offer - | to sell embodiments of any patent claims other than the licensed claims defined in Section 2. - | No right is granted to the trademarks of Licensor even if such marks are included in the Original - | Work. Nothing in this License shall be interpreted to prohibit Licensor from licensing under - | different terms from this License any Original Work that Licensor otherwise would have a right - | to license. - | - | 5) This section intentionally omitted. - | - | 6) Attribution Rights. You must retain, in the Source Code of any Derivative Works that You - | create, all copyright, patent or trademark notices from the Source Code of the Original Work, - | as well as any notices of licensing and any descriptive text identified therein as an "Attribution - | Notice." You must cause the Source Code for any Derivative Works that You create to carry a - | prominent Attribution Notice reasonably calculated to inform recipients that You have modified the - | Original Work. - | - | 7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the copyright in and - | to the Original Work and the patent rights granted herein by Licensor are owned by the Licensor or - | are sublicensed to You under the terms of this License with the permission of the contributor(s) - | of those copyrights and patent rights. Except as expressly stated in the immediately proceeding - | sentence, the Original Work is provided under this License on an "AS IS" BASIS and WITHOUT WARRANTY, - | either express or implied, including, without limitation, the warranties of NON-INFRINGEMENT, - | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL - | WORK IS WITH YOU. This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No license - | to Original Work is granted hereunder except under this disclaimer. - | - | 8) Limitation of Liability. Under no circumstances and under no legal theory, whether in tort (including - | negligence), contract, or otherwise, shall the Licensor be liable to any person for any direct, indirect, - | special, incidental, or consequential damages of any character arising as a result of this License or the - | use of the Original Work including, without limitation, damages for loss of goodwill, work stoppage, - | computer failure or malfunction, or any and all other commercial damages or losses. This limitation of - | liability shall not apply to liability for death or personal injury resulting from Licensor's negligence - | to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or - | limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You. - | - | 9) Acceptance and Termination. If You distribute copies of the Original Work or a Derivative Work, You must - | make a reasonable effort under the circumstances to obtain the express assent of recipients to the terms of - | this License. Nothing else but this License (or another written agreement between Licensor and You) grants - | You permission to create Derivative Works based upon the Original Work or to exercise any of the rights - | granted in Section 1 herein, and any attempt to do so except under the terms of this License (or another - | written agreement between Licensor and You) is expressly prohibited by U.S. copyright law, the equivalent - | laws of other countries, and by international treaty. Therefore, by exercising any of the rights granted - | to You in Section 1 herein, You indicate Your acceptance of this License and all of its terms and conditions. - | - | 10) Termination for Patent Action. This License shall terminate automatically and You may no longer exercise - | any of the rights granted to You by this License as of the date You commence an action, including a cross-claim - | or counterclaim, against Licensor or any licensee alleging that the Original Work infringes a patent. This - | termination provision shall not apply for an action alleging patent infringement by combinations of the Original - | Work with other software or hardware. - | - | 11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this License may be brought only in - | the courts of a jurisdiction wherein the Licensor resides or in which Licensor conducts its primary business, - | and under the laws of that jurisdiction excluding its conflict-of-law provisions. The application of the United - | Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any use of the - | Original Work outside the scope of this License or after its termination shall be subject to the requirements - | and penalties of the U.S. Copyright Act, 17 U.S.C. ¬ß 101 et seq., the equivalent laws of other countries, - | and international treaty. This section shall survive the termination of this License. - | - | 12) Attorneys Fees. In any action to enforce the terms of this License or seeking damages - | relating thereto, the prevailing party shall be entitled to recover its costs and expenses, - | including, without limitation, reasonable attorneys' fees and costs incurred in connection - | with such action, including any appeal of such action. This section shall survive the - | termination of this License. - | - | 13) Miscellaneous. This License represents the complete agreement concerning the subject - | matter hereof. If any provision of this License is held to be unenforceable, such provision - | shall be reformed only to the extent necessary to make it enforceable. - | - | 14) Definition of "You" in This License. "You" throughout this License, whether in upper - | or lower case, means an individual or a legal entity exercising rights under, and complying - | with all of the terms of, this License. For legal entities, "You" includes any entity that - | controls, is controlled by, or is under common control with you. For purposes of this - | definition, "control" means (i) the power, direct or indirect, to cause the direction or - | management of such entity, whether by contract or otherwise, or (ii) ownership of fifty - | percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - | - | 15) Right to Use. You may use the Original Work in all ways not otherwise restricted or - | conditioned by this License or by law, and Licensor promises not to interfere with or be - | responsible for such uses by You. - | - | This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved. Permission - | is hereby granted to copy and distribute this license without modification. This license - | may not be modified without the express written permission of its copyright owner. + | + | 2) Grant of Patent License. Licensor hereby grants You a world-wide, royalty-free, + | non-exclusive, perpetual, sublicenseable license, under patent claims owned or + | controlled by the Licensor that are embodied in the Original Work as furnished by + | the Licensor, to make, use, sell and offer for sale the Original Work and Derivative + | Works. + | + | 3) Grant of Source Code License. The term "Source Code" means the preferred form of + | the Original Work for making modifications to it and all available documentation + | describing how to modify the Original Work. Licensor hereby agrees to provide a + | machine-readable copy of the Source Code of the Original Work along with each copy + | of the Original Work that Licensor distributes. Licensor reserves the right to satisfy + | this obligation by placing a machine-readable copy of the Source Code in an information + | repository reasonably calculated to permit inexpensive and convenient access by You for + | as long as Licensor continues to distribute the Original Work, and by publishing the + | address of that information repository in a notice immediately following the copyright + | notice that applies to the Original Work. + | + | 4) Exclusions From License Grant. Neither the names of Licensor, nor the names of any + | contributors to the Original Work, nor any of their trademarks or service marks, may + | be used to endorse or promote products derived from this Original Work without express + | prior written permission of the Licensor. Nothing in this License shall be deemed to + | grant any rights to trademarks, copyrights, patents, trade secrets or any other + | intellectual property of Licensor except as expressly stated herein. No patent license + | is granted to make, use, sell or offer to sell embodiments of any patent claims other + | than the licensed claims defined in Section 2. No right is granted to the trademarks + | of Licensor even if such marks are included in the Original Work. Nothing in this + | License shall be interpreted to prohibit Licensor from licensing under different terms + | from this License any Original Work that Licensor otherwise would have a right to license. + | + | 5) This section intentionally omitted. + | + | 6) Attribution Rights. You must retain, in the Source Code of any Derivative Works that You + | create, all copyright, patent or trademark notices from the Source Code of the Original + | Work, as well as any notices of licensing and any descriptive text identified therein as + | an "Attribution Notice." You must cause the Source Code for any Derivative Works that You + | create to carry a prominent Attribution Notice reasonably calculated to inform recipients + | that You have modified the Original Work. + | + | 7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the copyright + | in and to the Original Work and the patent rights granted herein by Licensor are owned + | by the Licensor or are sublicensed to You under the terms of this License with the + | permission of the contributor(s) of those copyrights and patent rights. Except as expressly + | stated in the immediately proceeding sentence, the Original Work is provided under this + | License on an "AS IS" BASIS and WITHOUT WARRANTY, either express or implied, including, + | without limitation, the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A + | PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. + | This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No license to + | Original Work is granted hereunder except under this disclaimer. + | + | 8) Limitation of Liability. Under no circumstances and under no legal theory, whether in tort + | (including negligence), contract, or otherwise, shall the Licensor be liable to any person + | for any direct, indirect, special, incidental, or consequential damages of any character + | arising as a result of this License or the use of the Original Work including, without + | limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, + | or any and all other commercial damages or losses. This limitation of liability shall not + | apply to liability for death or personal injury resulting from Licensor's negligence to + | the extent applicable law prohibits such limitation. Some jurisdictions do not allow the + | exclusion or limitation of incidental or consequential damages, so this exclusion and + | limitation may not apply to You. + | + | 9) Acceptance and Termination. If You distribute copies of the Original Work or a Derivative + | Work, You must make a reasonable effort under the circumstances to obtain the express + | assent of recipients to the terms of this License. Nothing else but this License (or + | another written agreement between Licensor and You) grants You permission to create + | Derivative Works based upon the Original Work or to exercise any of the rights granted in + | Section 1 herein, and any attempt to do so except under the terms of this License (or + | another written agreement between Licensor and You) is expressly prohibited by U.S. copyright + | law, the equivalent laws of other countries, and by international treaty. Therefore, by + | exercising any of the rights granted to You in Section 1 herein, You indicate Your + | acceptance of this License and all of its terms and conditions. + | + | 10) Termination for Patent Action. This License shall terminate automatically and You may no + | longer exercise any of the rights granted to You by this License as of the date You + | commence an action, including a cross-claim or counterclaim, against Licensor or any + | licensee alleging that the Original Work infringes a patent. This termination provision + | shall not apply for an action alleging patent infringement by combinations of the Original + | Work with other software or hardware. + | + | 11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this License may be + | brought only in the courts of a jurisdiction wherein the Licensor resides or in which + | Licensor conducts its primary business, and under the laws of that jurisdiction excluding + | its conflict-of-law provisions. The application of the United Nations Convention on Contracts + | for the International Sale of Goods is expressly excluded. Any use of the Original Work + | outside the scope of this License or after its termination shall be subject to the + | requirements and penalties of the U.S. Copyright Act, 17 U.S.C. § 101 et seq., the equivalent + | laws of other countries, and international treaty. This section shall survive the termination + | of this License. + | + | 12) Attorneys Fees. In any action to enforce the terms of this License or seeking damages + | relating thereto, the prevailing party shall be entitled to recover its costs and expenses, + | including, without limitation, reasonable attorneys' fees and costs incurred in connection + | with such action, including any appeal of such action. This section shall survive the + | termination of this License. + | + | 13) Miscellaneous. This License represents the complete agreement concerning the subject matter + | hereof. If any provision of this License is held to be unenforceable, such provision shall + | be reformed only to the extent necessary to make it enforceable. + | + | 14) Definition of "You" in This License. "You" throughout this License, whether in upper or lower + | case, means an individual or a legal entity exercising rights under, and complying with all + | of the terms of, this License. For legal entities, "You" includes any entity that controls, + | is controlled by, or is under common control with you. For purposes of this definition, + | "control" means (i) the power, direct or indirect, to cause the direction or management of + | such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or + | more of the outstanding shares, or (iii) beneficial ownership of such entity. + | + | 15) Right to Use. You may use the Original Work in all ways not otherwise restricted or + | conditioned by this License or by law, and Licensor promises not to interfere with or be + | responsible for such uses by You. + | + | This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved. Permission is + | hereby granted to copy and distribute this license without modification. This license may not + | be modified without the express written permission of its copyright owner. + | + | + | BSD License + | =========== + | + | Copyright (c) 2006, Yahoo! Inc. + | All rights reserved. + | + | Redistribution and use of this software in source and binary forms, with or without modification, + | are permitted provided that the following conditions are met: + | + | * Redistributions of source code must retain the above copyright notice, this list of + | conditions and the following disclaimer. + | * Redistributions in binary form must reproduce the above copyright notice, this list of + | conditions and the following disclaimer in the documentation and/or other materials provided + | with the distribution. + | * Neither the name of Yahoo! Inc. nor the names of its contributors may be used to endorse or + | promote products derived from this software without specific prior written permission of + | Yahoo! Inc. + | + | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED + | WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + | TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Yahoo! UI Library (http://developer.yahoo.com/yui/) @@ -236,39 +277,6 @@ -# iUI: iPhone User Interface Framework (http://code.google.com/p/iui/) - - package version: 282 - - Copyright (c) 2007-2009, iUI Project Members - - | All rights reserved. - | - | Redistribution and use in source and binary forms, with or without modification, - | are permitted provided that the following conditions are met: - | - | * Redistributions of source code must retain the above copyright notice, this - | list of conditions and the following disclaimer. - | * Redistributions in binary form must reproduce the above copyright notice, - | this list of conditions and the following disclaimer in the documentation - | and/or other materials provided with the distribution. - | * Neither the name of the iUI Project nor the names of its contributors may - | be used to endorse or promote products derived from this software without - | specific prior written permission. - | - | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - # Big Integer Library v. 5.0 - code downloaded on March 5, 2007 from http://www.leemon.com/crypto/BigInt.js diff --git a/frontend/gamma/properties/gamma.properties.json b/frontend/gamma/properties/gamma.properties.json index c847812..eec4194 100644 --- a/frontend/gamma/properties/gamma.properties.json +++ b/frontend/gamma/properties/gamma.properties.json @@ -1,7 +1,7 @@ { "copyright.values": { - "mochikit.repository": "https://github.com/mochi/mochikit.git", - "mochikit.version": "fe8d17bb9ac0a4e5ad4a8d5c2c94a6fac1c92d75" + "mochikit.repository": "https://github.com/mochi/mochikit.git", + "mochikit.version": "fe8d17bb9ac0a4e5ad4a8d5c2c94a6fac1c92d75" }, "html.template": "index_template.html", diff --git a/frontend/gamma/properties/mobile.properties.json b/frontend/gamma/properties/mobile.properties.json index e26b95f..bdb2d07 100644 --- a/frontend/gamma/properties/mobile.properties.json +++ b/frontend/gamma/properties/mobile.properties.json @@ -1,23 +1,26 @@ { "copyright.values": { - "mochikit.repository": "http://svn.mochikit.com/mochikit/trunk/", - "mochikit.version": "1506" + "mochikit.repository": "https://github.com/mochi/mochikit.git", + "mochikit.version": "fe8d17bb9ac0a4e5ad4a8d5c2c94a6fac1c92d75" }, + + "html.template": "mobile_template.html", + "js": [ "MochiKit/Base.js", "MochiKit/Iter.js", "MochiKit/Logging.js", - "-- MochiKit/DateTime.js", + "MochiKit/DateTime.js", "MochiKit/Format.js", "MochiKit/Async.js", "MochiKit/DOM.js", "MochiKit/Style.js", "MochiKit/LoggingPane.js", - "MochiKit/Color.js", + "-- MochiKit/Color.js", "MochiKit/Signal.js", - "MochiKit/Position.js", + "-- MochiKit/Position.js", "MochiKit/Selector.js", - "MochiKit/Visual.js", + "-- MochiKit/Visual.js", "JSON/json2.js", @@ -33,8 +36,8 @@ "Clipperz/DOM.js", "Clipperz/Logging.js", "Clipperz/Signal.js", - "Clipperz/Style.js", - "Clipperz/Visual.js", + "-- Clipperz/Style.js", + "-- Clipperz/Visual.js", "Clipperz/Set.js", "Clipperz/KeyValueObjectStore.js", @@ -69,10 +72,13 @@ "Clipperz/PM/Toll.js", "Clipperz/PM/Proxy.js", "Clipperz/PM/Proxy/Proxy.JSON.js", + "-- Clipperz/PM/Proxy/Proxy.OfflineCache.js", "Clipperz/PM/Proxy/Proxy.Offline.js", + "Clipperz/PM/Proxy/Proxy.Offline.DataStore.js", + "Clipperz/PM/Connection.js", "Clipperz/PM/Crypto.js", - "-- Clipperz/PM/BookmarkletProcessor.js", + "Clipperz/PM/PIN.js", "Clipperz/PM/DataModel/EncryptedRemoteObject.js", "Clipperz/PM/DataModel/User.js", @@ -89,6 +95,23 @@ "Clipperz/PM/DataModel/DirectLoginFormValue.js", "Clipperz/PM/DataModel/OneTimePassword.js", + "Zepto/zepto.js", + "Zepto/ajax.js", + "Zepto/assets.js", + "Zepto/data.js", + "Zepto/detect.js", + "Zepto/event.js", + "Zepto/form.js", + "Zepto/fx.js", + "Zepto/fx_methods.js", + "Zepto/gesture.js", + "Zepto/polyfill.js", + "Zepto/selector.js", + "Zepto/stack.js", + "Zepto/touch.js", + + "JQTouch/jqtouch.js", + "Clipperz/PM/UI/Common/Components/BaseComponent.js", "-- Clipperz/PM/UI/Common/Components/Button.js", "Clipperz/PM/UI/Common/Components/ComponentSlot.js", @@ -104,16 +127,16 @@ "Clipperz/PM/UI/Common/Controllers/ProgressBarController.js", "-- Clipperz/PM/UI/Common/Controllers/TabPanelController.js", - "Clipperz/PM/UI/iPhone/Components/LoginForm.js", - "Clipperz/PM/UI/iPhone/Components/CardList.js", - "Clipperz/PM/UI/iPhone/Components/CardDetail.js", + "Clipperz/PM/UI/Mobile/Components/LoginForm.js", + "Clipperz/PM/UI/Mobile/Components/CardList.js", + "-- Clipperz/PM/UI/Mobile/Components/CardDetail.js", - "Clipperz/PM/UI/iPhone/Controllers/MainController.js", + "Clipperz/PM/UI/Mobile/Controllers/MainController.js", - "main_iPhone.js" + "main.mobile.js" ], "css": [ - "clipperz/iPhone.css" + "mobile.css" ] }
\ No newline at end of file diff --git a/frontend/gamma/tests/tests/Clipperz/PM/PIN.html b/frontend/gamma/tests/tests/Clipperz/PM/PIN.html new file mode 100644 index 0000000..a08b286 --- a/dev/null +++ b/frontend/gamma/tests/tests/Clipperz/PM/PIN.html @@ -0,0 +1,66 @@ +<!-- + +Copyright 2008-2011 Clipperz Srl + +This file is part of Clipperz Community Edition. +Clipperz Community Edition is an online password manager. +For further information about its features and functionalities please +refer to http://www.clipperz.com. + +* Clipperz Community Edition is free software: you can redistribute + it and/or modify it under the terms of the GNU Affero General Public + License as published by the Free Software Foundation, either version + 3 of the License, or (at your option) any later version. + +* Clipperz Community Edition is distributed in the hope that it will + be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU Affero General Public License for more details. + +* You should have received a copy of the GNU Affero General Public + License along with Clipperz Community Edition. If not, see + <http://www.gnu.org/licenses/>. + +--> + +<html> +<head> + <title>Clipperz.PM.Proxy - TEST</title> + + <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> + <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> + + <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> + + <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> +<!-- + <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> + + <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> +--> + + <script type='text/javascript' src='../../../../js/Clipperz/PM/PIN.js'></script> + + <script type="text/javascript" src="../../../SimpleTest/SimpleTest.Async.js"></script> + +</head> +<body> +<pre id="test"> + <script type="text/javascript" src="PIN.test.js"></script> +</pre> +</body> +</html> diff --git a/frontend/gamma/tests/tests/Clipperz/PM/PIN.test.js b/frontend/gamma/tests/tests/Clipperz/PM/PIN.test.js new file mode 100644 index 0000000..ed795dd --- a/dev/null +++ b/frontend/gamma/tests/tests/Clipperz/PM/PIN.test.js @@ -0,0 +1,97 @@ +/* + +Copyright 2008-2011 Clipperz Srl + +This file is part of Clipperz Community Edition. +Clipperz Community Edition is an online password manager. +For further information about its features and functionalities please +refer to http://www.clipperz.com. + +* Clipperz Community Edition is free software: you can redistribute + it and/or modify it under the terms of the GNU Affero General Public + License as published by the Free Software Foundation, either version + 3 of the License, or (at your option) any later version. + +* Clipperz Community Edition is distributed in the hope that it will + be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU Affero General Public License for more details. + +* You should have received a copy of the GNU Affero General Public + License along with Clipperz Community Edition. If not, see + <http://www.gnu.org/licenses/>. + +*/ + +Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); + +Clipperz.PM.PIN['CREDENTIALS'] = 'TEST.CLIPPERZ.CREDENTIALS'; +Clipperz.PM.PIN['FAILURE_COUNT'] = 'TEST.CLIPPERZ.FAILED_LOGIN_COUNT'; + + +var tests = { + + //------------------------------------------------------------------------- + + 'clearCredentials': function () { + localStorage.removeItem(Clipperz.PM.PIN['CREDENTIALS']); + localStorage.removeItem(Clipperz.PM.PIN['FAILURE_COUNT']); + }, + + //------------------------------------------------------------------------- + + 'isSet': function () { + tests.clearCredentials(); + + is(false, Clipperz.PM.PIN.isSet(), "after cleaning all values, credentials should not be set"); + + Clipperz.PM.PIN.setCredentialsWithPIN("1234", {'username':'joe', 'passphrase':'eoj'}); + is(true, Clipperz.PM.PIN.isSet(), "once saved, they should be found"); + }, + + 'recordFailedAttempt': function () { + tests.clearCredentials(); + + Clipperz.PM.PIN.setCredentialsWithPIN("1234", {'username':'joe', 'passphrase':'eoj'}); + is(true, Clipperz.PM.PIN.isSet(), "once saved, they should be found"); + Clipperz.PM.PIN.recordFailedAttempt(); + is(true, Clipperz.PM.PIN.isSet(), "1st wrong PIN -> keep credentials"); + Clipperz.PM.PIN.recordFailedAttempt(); + is(true, Clipperz.PM.PIN.isSet(), "2nd wrong PIN -> keep credentials"); + Clipperz.PM.PIN.recordFailedAttempt(); + is(false, Clipperz.PM.PIN.isSet(), "3rd wrong PIN -> REMOVE credentials"); + + Clipperz.PM.PIN.setCredentialsWithPIN("1234", {'username':'joe', 'passphrase':'eoj'}); + is(true, Clipperz.PM.PIN.isSet(), "once saved, they should be found"); + Clipperz.PM.PIN.recordFailedAttempt(); + is(true, Clipperz.PM.PIN.isSet(), "1st wrong PIN -> keep credentials"); + Clipperz.PM.PIN.recordFailedAttempt(); + is(true, Clipperz.PM.PIN.isSet(), "2nd wrong PIN -> keep credentials"); + Clipperz.PM.PIN.resetFailedAttemptCount(); + Clipperz.PM.PIN.recordFailedAttempt(); + is(true, Clipperz.PM.PIN.isSet(), "3rd wrong PIN, but with a successful use in between -> keep credentials"); + }, + + 'credentialsWithPIN': function () { + var credentials; + var pin; + var decryptedCredentials; + + tests.clearCredentials(); + + credentials = {'username': 'joe', 'passphrase':'foobar'}; + pin = '1234'; + Clipperz.PM.PIN.setCredentialsWithPIN(pin, credentials); + decryptedCredentials = Clipperz.PM.PIN.credentialsWithPIN(pin); + + is(decryptedCredentials['username'], credentials['username']); + is(decryptedCredentials['passphrase'], credentials['passphrase']); + }, + + //------------------------------------------------------------------------- + 'syntaxFix': MochiKit.Base.noop +}; + +//############################################################################# + +SimpleTest.runDeferredTests("Clipperz.PM.PIN", tests, {trace:false}); diff --git a/frontend/gamma/tests/tests/Clipperz/PM/index.html b/frontend/gamma/tests/tests/Clipperz/PM/index.html index b9bede1..c3df56a 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/index.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/index.html @@ -45,6 +45,7 @@ TestRunner.runTests( // 'CryptoPerformance_ByteArrayHex.html', // 'CryptoPerformance_ByteArrayString.html', 'Date.html', + 'PIN.html', 'Proxy.html', 'Toll.html' ); diff --git a/frontend/gamma/tests/tests/Components/FullApp/User.data.js b/frontend/gamma/tests/tests/Components/FullApp/User.data.js index 7194f6a..4dfc81c 100644 --- a/frontend/gamma/tests/tests/Components/FullApp/User.data.js +++ b/frontend/gamma/tests/tests/Components/FullApp/User.data.js @@ -81,7 +81,7 @@ testData = { }, */ /* tt/tt with "fixed" direct login */ -/* 'afaadd70f647886043b9196c861dc04f5605baeab3812ea23707fcba08c4a54f': { + 'afaadd70f647886043b9196c861dc04f5605baeab3812ea23707fcba08c4a54f': { s: 'df781ec363a380a0bb171d7d4c226248259272a964f04fa2340c77ff84bbc594', v: 'eca214d990ec971a61cd9c5082e62c2d241f8e1ec805a2c26b1d31612747bfb0', version: '0.2', @@ -120,7 +120,7 @@ testData = { } } }, -*/ + //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ diff --git a/frontend/gamma/tests/tests/Components/FullApp/index.html b/frontend/gamma/tests/tests/Components/FullApp/index.html index bc00fa7..fab110b 100644 --- a/frontend/gamma/tests/tests/Components/FullApp/index.html +++ b/frontend/gamma/tests/tests/Components/FullApp/index.html @@ -25,23 +25,21 @@ refer to http://www.clipperz.com. <html> <head> - <title>Clipperz - online password manager - debug</title> + <title>FullApp TEST - WEB</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> - <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" /> - <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" /> - <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" /> + <link rel="stylesheet" type="text/css" href="../../../../css/web.css" /> <link rel="shortcut icon" href="./clipperz.ico" /> <meta name="description" content="Login to your web accounts with just one click. Never type a password again! Use multiple complex passwords and forget them. A password manager that enhances your online security." /> <meta name="keywords" content="password manager,gestor de contraseñas,gerenciador de senhas,Kennwortmanager,passwords,security,privacy,cryptography" /> - <script> Clipperz_IEisBroken = false; Clipperz_normalizedNewLine = '\n'; Clipperz_dumpUrl = "/dump/"; + Clipperz_version = ">>> hg:28fe087a9316 <<<"; </script> <!--[if IE]><script> @@ -50,8 +48,8 @@ Clipperz_normalizedNewLine = '\x0d\x0a'; </script><![endif]--> - <script type='text/javascript' src='../../../../js/bookmarklet.js'></script> - <script type='text/javascript' src='../../../../js/bookmarklet_ie.js'></script> + <script type='text/javascript' src='../../../../js/Bookmarklet.js'></script> + <script type='text/javascript' src='../../../../js/Bookmarklet_IE.js'></script> <script type='text/javascript' src='../../../../js/MochiKit/Base.js'></script> <script type='text/javascript' src='../../../../js/MochiKit/Iter.js'></script> @@ -196,45 +194,41 @@ Clipperz_normalizedNewLine = '\x0d\x0a'; <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Canvas/Logo/normal.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Canvas/GraphicFunctions.js'></script> - <!-- script type='text/javascript' src='../../../../js/main.js'></script --> + <script type='text/javascript' src='../../../../js/main.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> <script type='text/javascript' src='./User.data.js'></script> - <script type='text/javascript' src='./main_test.js'></script> - </head> <body> <div id="mainDiv"> <div id="loading"> - <a href="http://www.clipperz.com" target="_blank"><div id="logo"></div></a> - <h5 class="clipperzPayoff">keep it to yourself!</h5> - <h2>loading ...</h2> + <div> + <!-- a href="http://www.clipperz.com" target="_blank"><div id="logo"></div></a --> + <h1>clipperz</h1> + <h3 class="clipperzPayoff">keep it to yourself!</h3> + <!-- h5>loading ...</h5 --> + </div> </div> +@js_EMBEDDED@ - -</div> -<div id="applicationVersionType" class="LIVE"></div> - -<!-- --> -<div id="javaScriptAlert"> - <div class="mask"></div> - <div class="message"> - <div class="header"></div> - <div class="body"> - <div class="alertLogo"></div> - <div class="alert"> - <h1>Attention!</h1> - <p>If you can read this message, the chances are that your browser does not properly support JavaScript? or you have disabled this functionality yourself.</p> - <h3>Javascript is required to access Clipperz.</h3> - <h5>Please enable scripting or upgrade your browser.</h5> - </div> - </div> - <div class="footer"></div> - </div> </div> -<!-- --> +<!-- div id="applicationVersionType" class="@application.version.type@"></div --> + +<script> +// Clipperz.PM.Proxy.defaultProxy = new Clipperz.PM.Proxy.JSON({'url':'@request.path@', 'shouldPayTolls':@should.pay.toll@}); + /*offline_data_placeholder*/ + + MochiKit.DOM.addLoadEvent(function () { + Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); + + var proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:false, isDefault:true, readOnly:false}); + proxy.dataStore().setupWithEncryptedData(testData['testData']); + Clipperz.PM.Proxy.defaultProxy = proxy; + MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'doLogin', {username:'tt', passphrase:'tt'}); + }); +</script> </body> </html> diff --git a/frontend/gamma/tests/tests/Components/FullApp/main_test.js b/frontend/gamma/tests/tests/Components/FullApp/main_test.js deleted file mode 100644 index b13972a..0000000 --- a/frontend/gamma/tests/tests/Components/FullApp/main_test.js +++ b/dev/null @@ -1,111 +0,0 @@ -/* - -Copyright 2008-2011 Clipperz Srl - -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. -For further information about its features and functionalities please -refer to http://www.clipperz.com. - -* Clipperz Community Edition is free software: you can redistribute - it and/or modify it under the terms of the GNU Affero General Public - License as published by the Free Software Foundation, either version - 3 of the License, or (at your option) any later version. - -* Clipperz Community Edition is distributed in the hope that it will - be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU Affero General Public License for more details. - -* You should have received a copy of the GNU Affero General Public - License along with Clipperz Community Edition. If not, see - <http://www.gnu.org/licenses/>. - -*/ - -function _pm_logEvent(anEvent) { -// console.log("####", anEvent); - - anEvent.preventDefault(); -} - -function handleGenericDeferredError(anError) { - var result; - - if (anError instanceof MochiKit.Async.CancelledError) { - result = anError; - } else { -MochiKit.Logging.logError("## MainController - GENERIC ERROR" + "\n" + "==>> " + anError + " <<==\n" + anError.stack); -//console.log(anError); - result = new MochiKit.Async.CancelledError(anError); - } - - return result; -} - - -Clipperz.PM.RunTime = {}; - - -function run() { - var shouldShowRegistrationForm; - var useCompactDesign; - var controllerParameters; -// var iPhoneDesign; - -// MochiKit.Signal.connect(document.body, 'onkeydown', _pm_logEvent); -// MochiKit.Signal.connect(document.body, 'onkeypress', _pm_logEvent); -// MochiKit.Signal.connect(document.body, 'onclick', _pm_logEvent); - - controllerParameters = {}; - - MochiKit.DOM.removeElement('javaScriptAlert'); - Clipperz.PM.Strings.Languages.initSetup(); - - if (window.location.search.indexOf('registration') != -1) { - shouldShowRegistrationForm = true; - } else { - shouldShowRegistrationForm = false; - } - - if (window.location.search.indexOf('autocomplete') != -1) { - controllerParameters['autocomplete'] = 'on' - } - -// if ((window.location.search.indexOf('iPhone') != -1) || (navigator.userAgent.match('iPhone'))) { -// iPhoneDesign = true; -// } else { -// iPhoneDesign = false; -// } - - if (window.location.search.indexOf('compact') != -1) { - useCompactDesign = true; - } else { - useCompactDesign = false; - } - - if (useCompactDesign == true) { - Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.Compact.Controllers.MainController(controllerParameters); -// } else if (iPhoneDesign == true) { -// Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.iPhone.Controllers.MainController(); - } else { - Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.Web.Controllers.MainController(controllerParameters); - } - - Clipperz.PM.RunTime.mainController.run(shouldShowRegistrationForm); - -//Clipperz.log("HASH: " + window.location.hash); -// if (window.location.hash != "") { -// window.location.hash = "" -// } -//Clipperz.log("HASH cleaned"); -// #credentials=base64encoded({username:'joe', passphrase:'clipperz'}) -// MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'doLogin', {username:'joe', passphrase:'clipperz'}); -} - -Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); - -var proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); -proxy.dataStore().setupWithEncryptedData(testData['testData']); - -MochiKit.DOM.addLoadEvent(run); diff --git a/frontend/gamma/tests/tests/Components/FullApp/mobile.index.html b/frontend/gamma/tests/tests/Components/FullApp/mobile.index.html new file mode 100644 index 0000000..818e3d6 --- a/dev/null +++ b/frontend/gamma/tests/tests/Components/FullApp/mobile.index.html @@ -0,0 +1,204 @@ +<!-- + +Copyright 2008-2011 Clipperz Srl + +This file is part of Clipperz Community Edition. +Clipperz Community Edition is an online password manager. +For further information about its features and functionalities please +refer to http://www.clipperz.com. + +* Clipperz Community Edition is free software: you can redistribute + it and/or modify it under the terms of the GNU Affero General Public + License as published by the Free Software Foundation, either version + 3 of the License, or (at your option) any later version. + +* Clipperz Community Edition is distributed in the hope that it will + be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU Affero General Public License for more details. + +* You should have received a copy of the GNU Affero General Public + License along with Clipperz Community Edition. If not, see + <http://www.gnu.org/licenses/>. + +--> + +<!doctype html> +<!-- Conditional comment for mobile ie7 blogs.msdn.com/b/iemobile/ --> +<!--[if IEMobile 7 ]> <html class="no-js iem7" lang="en"> <![endif]--> +<!--[if (gt IEMobile 7)|!(IEMobile)]><!--> <html class="no-js" lang="en" manifest="mobile.appcache"> <!--<![endif]--> +<head> + <title>FullApp TEST - MOBILE</title> + <meta charset="utf-8"> + + <meta name="HandheldFriendly" content="True"> + <meta name="MobileOptimized" content="320"> + <meta name="viewport" content="width=device-width"> + +<!-- link rel="apple-touch-icon-precomposed" ... --> + <link rel="apple-touch-icon" sizes="114x114" href="data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAHIAAAByCAIAAAAAvxIqAAAD8GlDQ1BJQ0MgUHJvZmlsZQAAKJGNVd1v21QUP4lvXKQWP6Cxjg4Vi69VU1u5GxqtxgZJk6XpQhq5zdgqpMl1bhpT1za2021Vn/YCbwz4A4CyBx6QeEIaDMT2su0BtElTQRXVJKQ9dNpAaJP2gqpwrq9Tu13GuJGvfznndz7v0TVAx1ea45hJGWDe8l01n5GPn5iWO1YhCc9BJ/RAp6Z7TrpcLgIuxoVH1sNfIcHeNwfa6/9zdVappwMknkJsVz19HvFpgJSpO64PIN5G+fAp30Hc8TziHS4miFhheJbjLMMzHB8POFPqKGKWi6TXtSriJcT9MzH5bAzzHIK1I08t6hq6zHpRdu2aYdJYuk9Q/881bzZa8Xrx6fLmJo/iu4/VXnfH1BB/rmu5ScQvI77m+BkmfxXxvcZcJY14L0DymZp7pML5yTcW61PvIN6JuGr4halQvmjNlCa4bXJ5zj6qhpxrujeKPYMXEd+q00KR5yNAlWZzrF+Ie+uNsdC/MO4tTOZafhbroyXuR3Df08bLiHsQf+ja6gTPWVimZl7l/oUrjl8OcxDWLbNU5D6JRL2gxkDu16fGuC054OMhclsyXTOOFEL+kmMGs4i5kfNuQ62EnBuam8tzP+Q+tSqhz9SuqpZlvR1EfBiOJTSgYMMM7jpYsAEyqJCHDL4dcFFTAwNMlFDUUpQYiadhDmXteeWAw3HEmA2s15k1RmnP4RHuhBybdBOF7MfnICmSQ2SYjIBM3iRvkcMki9IRcnDTthyLz2Ld2fTzPjTQK+Mdg8y5nkZfFO+se9LQr3/09xZr+5GcaSufeAfAww60mAPx+q8u/bAr8rFCLrx7s+vqEkw8qb+p26n11Aruq6m1iJH6PbWGv1VIY25mkNE8PkaQhxfLIF7DZXx80HD/A3l2jLclYs061xNpWCfoB6WHJTjbH0mV35Q/lRXlC+W8cndbl9t2SfhU+Fb4UfhO+F74GWThknBZ+Em4InwjXIyd1ePnY/Psg3pb1TJNu15TMKWMtFt6ScpKL0ivSMXIn9QtDUlj0h7U7N48t3i8eC0GnMC91dX2sTivgloDTgUVeEGHLTizbf5Da9JLhkhh29QOs1luMcScmBXTIIt7xRFxSBxnuJWfuAd1I7jntkyd/pgKaIwVr3MgmDo2q8x6IdB5QH162mcX7ajtnHGN2bov71OU1+U0fqqoXLD0wX5ZM005UHmySz3qLtDqILDvIL+iH6jB9y2x83ok898GOPQX3lk3Itl0A+BrD6D7tUjWh3fis58BXDigN9yF8M5PJH4B8Gr79/F/XRm8m241mw/wvur4BGDj42bzn+Vmc+NL9L8GcMn8F1kAcXjEKMJAAAAACXBIWXMAAAsTAAALEwEAmpwYAAABbmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8ZGM6c3ViamVjdD4KICAgICAgICAgICAgPHJkZjpCYWcvPgogICAgICAgICA8L2RjOnN1YmplY3Q+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgrlPw1BAAAd7klEQVR4nO19eZQV13nn797a3tr7yg5ikxCIHRohkACBEFqsJY4z8T52nPHYPp74JJ54bMfOsRMf2Z44OZ7EJ16iDLIsS5ZlydJY+2Ii1haiAQFCNGvTNHS/9/pt9Wq93/xRb+9u6OU1wif9O3Wq6223bv3qu7/vu9+9txqYwAQmMIEJTGACE5jABCbwnxTs/a4AHnjggY0bNwohxl4U5/xnP/tZe3v72Iv6g8fDDz9MlcOHP/zh9/uCAEB+vysA27YBkHAh7KK3aSRlMIDAFcZl13UrW73R4f2nNQvXYGYMjANUROkVyWXZvbBIDcLXOH4VHBGuGVoBgAMMYGAAERhAeekfyC8r+svA3n8nUYxrilYXxAFkScz6sKENlgHkfc5AYmSyMc64dmglEOW4pOyOUSlZxS9Y4RVjIHeEcjy+uGZoJYBErmlTdk/5V0NQxnLkUgXiswrimqEVAIkcTQU685+BioJsyikAkDXbCVqHABWslcpopcJfopIuTIFZMSECQ0GAWBGJA2j13mQspw8MeRumayJczeNaorVMW7MxVqkUgIEox6Yo7CdEYAhQji+UuKxyWgcFA0SWWbompODaoRUD7K40Hri8dJIgIVjRt99fXEu0FhNKpWabbfulYJTthjGAXLqW5PVapRUYwGyuj1AcGGTBQAJiQgQGotDFQkFkBwkGcpZbiAK8nqsgEsC10te6FmglAESCeZFAltPiMGvQSAtALhYAsrSSmLDWLIg8Wt0iQgdoa7nXKupm5TuvwgW5NEFrFp6kilyEVGAWGERSvT0rsWgwkEtZeZ2g1YNnX1llRIHNYlq9Dy6Tc4EgciHcPzwRuP/++9Pp9KuvvuoNk1QKRAQIKjBSrABFx9l2P2jvgIFcCAFyxyNunTVj2h/dt82nad/8zg+G+ZPh0ur3+7/70HdnXTdrz54927dvf+qpp7q7u0dbzxJkaaVSESjYbFHbz3NKJSksIOuySFTSZQX8/lvWrPjQg3dvWr92UktTV/eFH/30kYu9fcP57XBpXbOmbebMGURi1apVq1at+upX/9czTz+9/ZGf79q1a8yjciKrjCgKPEvcF8o7tRggBiRIuCQqE2DNnjXjvrs2P3jvHTfMn6sosmmayWSiqaF2w/q2X/zqt8MpYbi0Pvjgg4xzYaXgpIhrLY31f/aZP//EJz6+e/fu7du3P/3Ms5cuXRrlRQjynHhRp55KDgbpdJUIQDbf6hnsGKw1FAysu3nlnzxw94Z1bfX1dY5tO44BV6gwDVcmId+7dWMlaa2urr5j8+0kXLgW4yoTJukpwSQu+2+5Ze0t69Z9/aunnvnts9t//os9e/aO/MIIwi2JBMqZ9YS1zGXlDgRlIwHhQjijE4F5c2Y9eM8dH7hr8/Vzr+MSt03TTPerkutTuCSrINW2kpaptK1YNG3KpLNdV1a/YdG6fv26GTNnuJbByQWTwRQmSZKwyYoLMya4Nqml4bOf+++f/PhHd+7c9cijjz373O96+4alQQCIBIQrhFuqrQNsVgwwWO/TbEfLJRJCjEyOqsKhDevaPnT/tnVrVtbVVlu27ZhpmVl+iWRNYpIMcIDAFZU5KcdsrK3efNuan2z/1RVLHhatD95/Hxgn12CMgbw0vgBjjKuMXC4M0pOOLklycMNt6zZsuPXUyZO/efq3jz72RPv+t69culegtxXKH0DrQB3wDgi5/quLgt+7AhbMn/PgvVvu2bpp7uyZnDPbNKx0ROW2ooBzCVwCGIQAIxCBQ1EVltZdV7l787qfPvLkFVvklWltbGzccNt6YWUYOeBK9pqLXQqXGeOycMiOuWZEcN/USY3/44uf+/QnP/YfO3c98ugvf/fiy9FobKjyCUTCpWy/s6jkkoNSqS3skR0vIEFCkHAvf7011VWb1q/54/vvXLt6WU11tW2ZrpngyAS5KyscXAI4iCBcMMpOWgBBEJd9CqKm6Vu2aP6cWdOOd54ZK60bb1s/eXKrldEVr7kVsZGj2LMRxrgqMUcSGaEnbV1SpNDmjetu33jric7Op37z7GNP/Lrj0DuD8SqyXU+IrHqW8VvSNSjrdCH7KYmsvA4RCSxaMO/Be7bcs3XDdTOnc8ZsM+2kuzVmKpwYl8A4gKx5gmXbfvYAAIFLqkyGaVZXBbfc2lYBWh+47wMggrCYoiBvU0DBlLIXKbLHTOIS4+SQExHxXof5Zk5p/PKXPv+ZT33s9zvefPTxJ198+fX+eKLAKuWttcxlDTDYEmXIcQoAjMj1rLXMZdXX1tx+25oPfmDrmpVLqsJh28oIIyKTHuK2JDEwzzxF1iVmzbOYU++MHIIpisYyumPL226/+V8efsK5bFh5BVqnTpmybm2bbegcAkzKznIgKr0wkXtHZAc/iAAwLktMSCIjMklHl/xSeNuWW7du3nj8vfd+/fRzv3zymSPHjgPw4k0ityhuHZTZPK2D9LgYuQRBJNyc11qy6Po/uueOu7asnzl9GgM5ZkKkzviZoXABzzwJIBdMADyXEfemKnnH3mwwBpY9KVc0hSVM01w0f9YN82YdPPLe6GndvOm2pqYGQ0+qipQjseiCy7qSVEqHRzTjXFI4OYrb5yZ6BfPNmd70lb/8/H/79Eff2LHz4UceD/h9wnUgRDmVA5kt7hqIXMo1a7ACwhWO01BX88cf2PpfHty2avnicDDgWDrpFxSk/MzmHGBSzr95I7gsSxwxMAbGQBxEYLl9Yd4CgUk+hWUyZtAf2Lph9eVpvdyMMMbYs089dsfmjbaR0nwhICthOZPMbdmXOUdMBLjZg8KnORUWthC2Q7LLw5K/1rJhGBlVVbmTCIme3J27jPvK39ocoV7YKpwENTtyfSaTqQqHOBPCjMsirrGMxAisaNJc9oCVHGT3vGjPAF7yDpfITvdG01wJH363c+uffskwraGou5y1zr5u1uoVSy0jI3MGzpF3CESFrcRsaWhNyHk2xjlXVHIh+pxkrwyfxqtclzMigmBe4UPSivLj3I6RICJBIqQJnjmnIqkwh/Gcz/ES5IUpiGzAxnPdNZ4z5LywMoDAOASYrGk8plvW/FlTFi+YvXv/kdHQeueWjbU11YaelNRAzsGW+qtyTUCRBytuy6LoHuQsl0myRDLpqptwhOxCAs9rqyj9eZk4oLQO3idCdmM+iqtM53nz9NpNfg4s5ayVsQK/xLPBMssJQj6uyjLLCxVgkk9T0knDFwjcuWHVaGiVJeneu7Y4tsVATFJzjRrZRsGkrBV4zV84gAPk55rJhebPvD6lneUUZVwzzmWVuSCzkJwelNlifoGi9gGAGEOIp4rUMN8pYIWDPJtULAI5YSWWlVTPeIlyFFPhJUHVfFKy3zLljWsWPxTwp/TMyGi94fp5S2+60TIzmqqAK1lCyYGdgHEJ+jlkeqB3I9MFMwonBWHBixaYDK5BqYIShlYPtR5qPbQGyAFwDRAQTqny5oKY7LG4HLNsqN6Bd0fzg4zFhKJgsN5Bll9WOChQyQr+iigXJOReCmKy6pPchG3Omtq84qZ5r+06MDJa7966KRTwZwxD0kIw+hB/B5G30H8QyfeQPgs7CVE6U7d4CmUxOMBlKGH4WhCYjPBchGbBPwVKFZgMYQFOSc+isC8S2WJmB0lxFZ14YAWGVFWAeM6JFcWqlJvmhXw8kL/xAJP9fiWRMWUlsO225SOjVVXVbXdstB3B4wfZwR8jfgiZbm9MpETlhwlyYMZgxNB/FHgZnEFrRGg2ahai5kb4WsEVCCvX0Sp2WZcV2QKzrNxy84QWuGalNpu3guIDzzsxEM/63oIs5E4toGh+hfWZlrxu5Q211aFYPDVcWpfedOON82dbtu07sx3nXoAMMEAaNo8DwQrXCBCMS8hcQu9OyBpCs1G/HLVL4WsGOMgqUl5RwmNJQrbIa5U4MZQ2HFa6L9PWHJvFzT8byeZdmWe2yPcLmKT6VYrp1pTm2jVL5z/32iDLwAan6rOf+si6taudZLev8/uM9MtGt6NC3mLIRaYXsQ707kD6JJgMrR5czWW1Sw22oLmicFDwhKUDt1lac28ylN+M4o0V3R42YI+8TXg/55ysVNqQZcVx3f/3+lsDr28Qaw0GA1s23mLarhTbzY3eETT20cEr30mjdw/69iA0E03rUbccchCuVS61JRRjQGCAIXWgzGAHD12pYLnFCpv3ltnvQPUFVClhWmbb4tnNDTUX+/rLrmkQa13btvxzn/pTx3H8p34o6acrb6qDIn91Vj+iB9D/NiDga4akFSVSS0W2kJbNezYxiCWiKH4o2CYKRoqylyh6M49SlyjJZCXTGVETDhzpPH/kRFfZ1Qxiivdu3SjLEqwos/rAclW9avDsJnMBpx7Fse8hsjuX3i7rK3sKkGfcBTyP5w6yCe99J7sXInec/0L+uLgXXlaOyKVmBFxTljiERcLdesvCgYvCyq21vq7277/2xYBPcUmyGjba1ctJDjA3ye1EiQ8Yb3iWaycQexv6afiaoNYOYrPFCuvZLyu24sGkEwXnM0iSM29BeYvOvvT8mG0Z6VS8Pxrpj6dcIsZITGqpf+a1t+NJvbj65dpaU1PTr4sWpgb8ZJrMrl5pVa9mdkxJHVajv1fi+ySjuxCNjDe8U/QfReokmtajcT0kDcIq19ZiOkRx+82FBPluqxdpZV96LTUfsRYrbD4lyMEIwrIsR8/YaUOYFhPEOGc+nyakQHfMfvPAKcMub86DcOMPBJctWXzX1k0bb1k5e3qzyoVlmrZgIMacmJI8rMb+Q020S2bP1eMXgABC0zH5bgSmQtil6RgM5rtQFJaiaPVmPmWFLI8exWVJLAYIsmxHN9y0CdOWXMEkiWmaRrK/O+buPnT2+df37W7viEUHGQy9HCWBYGjZ0sXbNm/YtG7ldVMbFeaYpukIBjBmx+TUEV//m2qyXTIvXSV+CZA0tNyO+lUA5TJqZfkt76v5lFXRz7MdqhyhJblBno1bGSCEabm6ibTJTVcWgnHONE2D7L8QFzs7zjz/RvvetzqikcsNLQ+LiVAovHz50js337rx5uUzJ9fJcEzTyPOrpo9o8Z1a8m3J6h13fj2aapegdQskX26tvCgIAkoNtpjZgoWiQKuXnQFBkGmLtMl1SzZdxSUmsSybPQnadfDM82+8tbu9IxrpHU41R0ZAuKp6xfKl225ff9vNS6a31Mhk5+2X21FFP+KL79bSHZLVN778CiA4FVPugVoHYZcSStkeUZmdUqm1slyClYRpU9qS05ZquqogLnFoqgol0JOgXYfOvfBG++72jkjfsNgsPuFoUFVds3LF0m2333rr6oXTmqs4WZZh2h6/TlRNH/Un92rpg5IdGdt5hgYBai0m3w3/lFzWsTgILRNZrw4sqwwgEmTZSFtK2tZMVxPEOSefpkEO9CRo9+FzL/x+/659HZG+Uc6AGuvlVtfUrlq5bNumdetWLpjaFOaukbNfcCem6cd8qX0+/bBkRytxtlIQIPsx6S6EZmXDg9IkbHZNYtZIyWPTdFjaUnXbbwgtZ5sKU4IXE9j9zrnn39i/u72jr3e088lyqNiF1tTWrV65bNumW25ZccOUBj9cwzQMhyQQSU5Myxzzp9p9maOSE6vkaT0n1roFoTmlNlv8DUFCmLaUtrW07TeFTxCXGGmaytTgxQT2HDn//Bv7d+07MHY286i8+NXW1betXHbnprVrl82bXOeHq5uG6RAHSLKjmvFuIH3AZxyR3HhlzkcAV9C6BaHZEFbuLQJAwjVsnra1tBOwXJ8LLjFomsKU4KUk9h7pfmHH2zv3Hui9dLEyNSnCOMZEdfUNa1Yvv3PjzTcvnt1aq1qZpG074DKE3dLzkM94r6I2q6J1CwLTiz2YcO2uRH1a1HLmSpxrgareFPYevfDCjgM79x64dLGnQqcfBFcjlG9oaFq9atmXPrF1drNmu7y2/8ma+PPjo7NboTVCONm3GExTnE22giu9Kf7dR/fs2nfgYs+Fip54cIx31g8A+vouvXfkQLWccYgH0vuqEy+NSwLXyaDnFVj9YJRPoGiq0+S7IFwnLOvxC+9eHU4xtoz/cFFbFfzJ331mxtRWlulqivxUEplxaSQMcE1YUQSn5YYLCUQ+2XZs02Hhm2+asWP/yUhcv3JRY8a408oY+9YXP7ipbaFppJqjD2t29zgKDwPsFIQF/6RszhAEICDrKZ35/eEFsxqf33ncssd90fG40/qRe9d+/sO3G5Zbl3gmnNk/7mLOACsCOQC1Nve4IcE480vpaEqZ3FRXHVJff+vUOFdinGldcv2M7//Vh7ikBvX2huSzjF2tfLjRC18zJBVwvTFwWRYK9IjuWzS7uTemHz5ZsRB1UIwjrXXVwX/+2kcmN9dzs6s18XNO5vidqxzChZNCYFJhDJHIp9iObacs36oFre3HLlzoG2QgulIYL1o5Y9/6wn23rZxvGqnW5KOqc+kqpWU9MMBOg6vQaiGc7AgCQ1DNJHXGJf+S2Y0vt59OG5VcDlmM8aL1o/e0ffZD6zOW25j+Xdg8dFU59cAAKw5/E7iUHxtnHAFFj6TkxprQpMbgK+1nhRgXXRoXWpfdMP2hv7iPMTlk7G/KvPg+cOpBuCAbvgbAzU/LlWWhwuhLaXOn1tiOaD82LiJbeVrra0I//OsPtjTUSGbXJP1JjiHn1g4fBObCx71JicOHJwVqFSStMEWDyKfZruP069ryufXHz/Wf7kmOvYZlqDCtnLNvf+6utUuvs8zU5MyTmohc+TfDQIJd183XVtNJjhGGnEQQJnz12bHu7KA3hTQjlWGuUJfNrdtxsKc/VYF7X4wK0/qxu1f+2QOrM6bbYr4Udt6tSJk2AmfZBh2NAAujfKLDFcAA14AczAVb3ui3YJyCqh5JKOGgOnty+OX9F2ynkg8oqyStyxdM/fvP30lMqrY7mqw3KlXsebQl0crI1NHoR9THRphRJIAs+Gqy8oqcyCpC40ZvXJveHPCr0puHRzascnlUjNaGmuA//dU9TXXVitU9xXp2xDo4BGI0s4dukmVFVv2upaepqYadldhIAiMGuBYUPyRvAVQu3iLh1yzhuNGUsmhWuCdqvNtVMZGtDK0SZ9/+7Ja2hdMcMznV+q1K5VO9RgcLwTNiraJoz3ck955yls/UdJMsBGt5F8NIAiMCIKAGQE7OYL2NQj4jpTPDkpbPDe873t8br4zIVobWT9y97JP3LDFMp9V5vYoq1eNmZ90VGTREDPVLP3jx1Z2Hbm5b0RpIJu2QDCvEoyMpCRA2VB84gRzABhwv6mJMhLRMJKFqsnTjjMArB6KGVQGRrQCtqxZM+daf3yZIqnEONou9Yy/QQ8Sd2ePMUzXtO788tq/juOvYh08n7ly3ULEjSVEX5n0qN0ZQHBE4QeagHKdwAAfkyIrjk81Lca2lRmmslt84FB84aDtSjJXWxtrgD/5iS311UHW6p4lXRhwADQGTQqesFYqqvPKO+Y+PvE4kAPT1RVJUs2Fxo5nRdVFdJ1/gbNiWxQC4UBhgAhZgASZgAzbI8fsM4VJfUp0/WdNN9+DpseZkx0SrJPFvf+bWlTe0OlZqOr2soTKST2Cn7SWGqIrZvr/84Y54vOD63zl+dsacBTe0WClDEiTVKMN9GAQACIJsg9s5g/U2G8wCOeFAOq3L6Yy89DrtaFemKzKmdMGYBl0+vm3hllXTM4bZSrsDGMkVXha99rSY1aCoyv95uvPc+ZJhEhLOd37y4ul0k8rNi2ZzxGoaQc+YADu3uqx4E4AQnNmzWroVnpK58+X7aifVjekJYaO31tU3TvrGJ9oEsTpxpIV1jKUSxciI0CljoSrLb7wn/uHnO2jAv9DJ6OnOXtq6ZiYykYRTXadEZD68YM67AXLpxKwiyIrwK+bFqFwToBmN/LXDpjta7zVKWptrg//7C+trw37N7ZkuvclRmS4KgZ/M3GC4wYQT/PKP9sX6B4/8z3f3SOFpa+aqum4YQmvwRYdrsjQ0rQQQ/D4HwrnUL2Y2urIk9p4Y5XWNhlZZ4t/6dNuyeQ2ulZol7VBZhQbdGHrMKT3GJJ9P/YdnL7751rHLfLfj3a6FixbPDEcSpswhqrT0cM/C8wsrSk6dR1XQSet2Im0vnCbOR9E5qrkZo9HWj985f9Oy1kzGnCy95WeVifwBpJ3QeX2KT3Z3nMCTLw6+Oi8P28x8+2c7+9gMmTLnUnVxMzBckXUGW7UhChtjmDtFaDKRiy9sYXNaRnMtI7bWpddP/btPLXcsUxAx2CEek1gF+qkC/ERytumqKVH11z85FIld+W4lEvGLRvj2pXVWui9l+xr8aWk4Y2UMkIdeZMIAwsUI+uLMcRFWae7U0IsdrjvCbPeIrTWq4534ZH+4hgkjYk9512hLuA0jLaQcDN16c9wMaKr845d6T545P8zfvfjavicO+INBLWWIU7HwsAw299C9QWyWwbJw5CSOnWa2RTKRG75+b3SRSyNmacTW2h9PPPf7w0r93KXzW5lx0XDkqNMCICTHR9ZPz4MhaQVPJqZqktjdFfrez9tH8pQw6jjeu2rFTc3y6f4MfLIb0obhZNhgXoujP4nDJ1kkwRmRX9N6fau/+ZT79ItvjfSpZRidy3Jsa+e+g8f7fCuWLq6VopZlxp26tBsKyYnhxjpFcIkf759qOUxntV95+L2+yJBPzBoUlmUcvcC2tE3imZP9GdQHSLlixMkHLIslnL2Io6eZYUEiClQ37+xf/pV/e+/YuydGejkeRh+3njp99qW3umdcv2JOM3P0vrQTiNl1Gjf88uBPLhgcDOcS9Zf0kN+n/vOr9ut7j4+iJn19EV2etm6+m0kldIs1hYfxT8nywQCHaeHoaZy5yEmQwsFqb/zZ/inff2RvMj6SbE4pxtR5TSbiz+84bIfmLF8wVTZ7TIeiVp0jpLCS5nxY3iNu+Dr76zXJab9Q/71fHBLuKL3fkc7emfOWzavp6U/ZnKE2dKWVj7k1WdF+HOpk0QTjRH6fv0dr+8avjedebSd3TJ3XsaZaSDhvdRw90MWXLl3WpMYsI5mwwgk7EFJ0VboCR47g70ZqLUeYvP6rj1y41Dey5l9aD/dAp75+9Y1V7tlomlX74fddllkJRDjTjSNnmGlBAgVqWndEl3714WMnOk+OvhqF4iuB890XXth7rmX2iuunqK7ek3HkSCascCekmkN6Z4bTsWBvSgoElH/dob2yp3OMdcjo6dPx6s3L6p1UbyLDmqsgDXVxHIaNd07iTA8jQSpnVLfox+0t//iLPelkZcLwig26ZPT0SzuP9MszVy6aqVldluVEjYDh8CrNlAYKAkNMlzojiipnDvRO/u5jJ12nAhNMzl/oleuuXzU1nUzoloOmmsG+xHEphoOdLJZgnCjgD5z3tf3Nr1Mv7dhPojIDRajwyCuJw0dP7OmkhUtWTQpGLD2SsNRYRgkqtk8pinsYbAdHLjLbMS25+euPGT2XRu8cynD4RN/Cm5ZNVbqiCfKpqCoWWQZBONHFjp1llg0Z5K+d/Fp0ydf+/cjp06crVQEPlZ9+0dvb+7td56qmrVw0Q6X0qYzt9qXBmQj7Csv4Tvay3hQF/P5/293y0q5KTot0Xftwl7tx1Vw10xVNsoYqaJq3bAO6gYOd7HwfANIkJuoX/6i98YeP7zbSiSsWO1KMy2Qh28rs2HOsy565csnsoHPaMs1omqUtVPkgK+hLoLOXaRIO9c9+6JdnnUo0/2Ik4vE+0brhBl8mEUtnWEs9uISLEXScYHEdEigYCp1V277+ZPy1nW+P07+FG7+JmPRe55nfH8W8m9ZPr07YeiJlskiKSRyne5ltk6O2fuMJ58LFykx7KcPJsxfrpy++qSHSnzCFYLEEjp5ljoDCyF8/7YWLi/7m3w+eO3duPE7tYXynDff3x17YdU5qWr1kTg1Lnzcs9CWY7SDg9/3f/a0v7By/WdHU0RlbvWJJI85GkoimGAP5ZG7XLf2nndU//tVu0xjHya24CpPcXcfae+D48cSU5cuWVotuy7RUiR1NXvfQ4+ccp8Izn4phW8a7vcqWldOYfoERgqGqTrnta4/3vrn3ICqUdL8MrsZKFwBnz51/9VBm+oL1cxuMjKt+8zfifE/Fxr6GQl8kmvHNXD9HSP7a57pv/NvtHd3dw82N/SGBy75P/cmW//rA6qv1xAwwSf2fn77z3ttXXBP/FGiccTXW2L1/p5vABCYwgQlMYAL/2fH/AdkCEQl+/Ar/AAAAAElFTkSuQmCCCg=="> + <link rel="apple-touch-icon" sizes="72x72" href="data:image/png;charset=utf-8;base64,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"> + <link rel="apple-touch-icon" href="data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAIAAAADehTSAAAD8GlDQ1BJQ0MgUHJvZmlsZQAAKJGNVd1v21QUP4lvXKQWP6Cxjg4Vi69VU1u5GxqtxgZJk6XpQhq5zdgqpMl1bhpT1za2021Vn/YCbwz4A4CyBx6QeEIaDMT2su0BtElTQRXVJKQ9dNpAaJP2gqpwrq9Tu13GuJGvfznndz7v0TVAx1ea45hJGWDe8l01n5GPn5iWO1YhCc9BJ/RAp6Z7TrpcLgIuxoVH1sNfIcHeNwfa6/9zdVappwMknkJsVz19HvFpgJSpO64PIN5G+fAp30Hc8TziHS4miFhheJbjLMMzHB8POFPqKGKWi6TXtSriJcT9MzH5bAzzHIK1I08t6hq6zHpRdu2aYdJYuk9Q/881bzZa8Xrx6fLmJo/iu4/VXnfH1BB/rmu5ScQvI77m+BkmfxXxvcZcJY14L0DymZp7pML5yTcW61PvIN6JuGr4halQvmjNlCa4bXJ5zj6qhpxrujeKPYMXEd+q00KR5yNAlWZzrF+Ie+uNsdC/MO4tTOZafhbroyXuR3Df08bLiHsQf+ja6gTPWVimZl7l/oUrjl8OcxDWLbNU5D6JRL2gxkDu16fGuC054OMhclsyXTOOFEL+kmMGs4i5kfNuQ62EnBuam8tzP+Q+tSqhz9SuqpZlvR1EfBiOJTSgYMMM7jpYsAEyqJCHDL4dcFFTAwNMlFDUUpQYiadhDmXteeWAw3HEmA2s15k1RmnP4RHuhBybdBOF7MfnICmSQ2SYjIBM3iRvkcMki9IRcnDTthyLz2Ld2fTzPjTQK+Mdg8y5nkZfFO+se9LQr3/09xZr+5GcaSufeAfAww60mAPx+q8u/bAr8rFCLrx7s+vqEkw8qb+p26n11Aruq6m1iJH6PbWGv1VIY25mkNE8PkaQhxfLIF7DZXx80HD/A3l2jLclYs061xNpWCfoB6WHJTjbH0mV35Q/lRXlC+W8cndbl9t2SfhU+Fb4UfhO+F74GWThknBZ+Em4InwjXIyd1ePnY/Psg3pb1TJNu15TMKWMtFt6ScpKL0ivSMXIn9QtDUlj0h7U7N48t3i8eC0GnMC91dX2sTivgloDTgUVeEGHLTizbf5Da9JLhkhh29QOs1luMcScmBXTIIt7xRFxSBxnuJWfuAd1I7jntkyd/pgKaIwVr3MgmDo2q8x6IdB5QH162mcX7ajtnHGN2bov71OU1+U0fqqoXLD0wX5ZM005UHmySz3qLtDqILDvIL+iH6jB9y2x83ok898GOPQX3lk3Itl0A+BrD6D7tUjWh3fis58BXDigN9yF8M5PJH4B8Gr79/F/XRm8m241mw/wvur4BGDj42bzn+Vmc+NL9L8GcMn8F1kAcXjEKMJAAAAACXBIWXMAAAsTAAALEwEAmpwYAAABbmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8ZGM6c3ViamVjdD4KICAgICAgICAgICAgPHJkZjpCYWcvPgogICAgICAgICA8L2RjOnN1YmplY3Q+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgrlPw1BAAALFElEQVRoge2aeWxcxR3Hv/OOvbKHvWuv7V0fcQK5E+wEm1w1OZ0Ek1BCARUhWpUCalGl0pMeIKBIFBVVolWJkGhpGiBAoCE0FaQBnEKUg6QkzmUbO7bjIz7iY+9950z/2F1718eujd1KVflp9GTtzux83m9+v+/7zRsDX9qX9r9jZJrjTSaT1+vNOEsg4L927do055quVVVVhcPhUDAYCgYmauFwaNeuXdOfS5jmeFEULRYLpH6AgbHxO5mtRqNxmhNh+qyMMYBBk5NYk4kJwAAjm+g2pmLTZQUAMDAdjMYpR2MxMDr9xMAMsQJMA02wgoEBYAABAViMdQZshlipDqYjFg/ASBiwGKueGhhf0GYqBjTQGNCYqGUMVKN0Blw7U37VRvw64t2YMegqo9r0J5kJVqaD6aBaEmhykjFQFVSf/jwzoVm6CqrFWTGcScN5xqCrdCZYuXE/feihh3bsuM1kMk0GFroKpsUbVeNXmrgyFVRlk2N15+Y8+M17fvGjh8f9dhy/ulyup3/1VE6u6+yZs6/tfX3fvrfa2tomRAWjusrRGCtLqGxyhsXiNR0rx3GVK8ru3llza/W6OSUFPX1DL7+y72pPX2bWDRvW5+Q6ER0qW1Ja9uwTP/3B9/5+6IM9e179+JOjiqKMgWUs5leqgTGAxq/xkAVA07AW5Llrtqy/+/ZbKssX2mcZQDWq+l0O48abV+1540Bm1q/t/CqYChCoKqSwy8ru+/q2e+/YdvrspVffeHv/O3/r6OxMYqVUV/kUv9KRDIux0tE6wPP8qoryu3fWbNu4erYnm4cCGoEqgxM4jnBadEd1VWZWT0HBzWtXQY6OZAmliAQ5qlYu81aW/+TR7z9w8NCRV/a+fezESU3TNE1jusqoRtiwX2mKIDAKqlI9zur15G/fsuHO2zZXLJtrM1GoESjXQHgQHoSCUfACdLmibF5psbe1vSsda/WmDXl5LmgqGE1pABQZNFhgZw/cs/G+OzadPNO4e+9fg6GwpspiTLbiPUfhUqYpIs+trlx+713bt66rKMmzcHoQeg+iZIRyuIHxPHLsxuqbK1/csz+ZbXRJcWDfKzt2bIWOlIyOhePwH0wF1SAIIMY+n2YymWx6J2FanJKNZo0y24DssBlVh1mFEgDTQXiAAziQWOMTVx6EBydIkfCho5d2fvvnyQ+8FL+Wzi5ZXVkOHeBEEB5UBQOggepx1xIeHAElIIAqgwbcRqppANTRfk3CFamvwBDkmYoIAALCARSEgHBgMUQ91bvgiF62sGj+nML65vbxWbdVr8/JcUENINAI3wUEGhHpgNwPXQYA3gDBBmMOzB5YimD2QnSAiAKRErVLDFcfFbgCGGjSMhISJyYx1+pJuEIsDESBy57Fb6laMT4rx3E7ampY80ukcRekLgyLzKgwiekmBxjsmFWKrDJk3wBzAQgHqiTUIFHOji1qCQGLsZIEK5catTxACSfwUDevXfaHv7yravpo1gXz5t64uIjVPUrCXeABHhlMCUCuw0AdRAPsi+CugmMxiAAqJ1iTtDZlr5BgTYnX4SYAFIAosEWl7iXzis9cah3Nun1bdRa5SiId8X1HxkKeJPpQBYNnMXQW1jnI34ysJfEqMVkTRlaEgCERtSQBqiclFgUTQJnAw2bCrevKRrMSQsqXLdDMs0nFbtZ7hO//WIg0QddGgNJbrKwItaD5RWQtRcE2mPLBYsKX9BhLvtEUVi6W/oDONFVWqKIyVSNBmbjdbsIRRmP3lzCn07myYnnN1o1VK28sdpvFSBPp+yc/dEyMXAbVJwsNgAKiBflb4FwBpoMl14rDoCS+LnFKwigna1A0XtFFXwT1bYO1pxo/PHauvqlNVeThhRxtTqdz9U0rajavW1t5Q2GOUYw0kf6jou+kKLWC0klBx6icK5C/GYSPJ9xIJJD4VowQRoms87JmUJjZH+Xqr/hqT33+0fFzFxtbNHV07ZFuWpfLteam5bds+srqFUu8Tl6MNHEDxw3B06LckZDbtMQUsM2Bpwa8MYELEAYwSomsCbJuUmD1S2Jju6/29OcfHTt/obFVU+WJfm9S65qbm7OmsnzrhtUry+Z7sogQbuJ8n5ojdQalI8NICszywFMD3gSqM0ajqhDRTDpnD8jGxk7/kVNNHx4/f7GxdXih09jUtu3u3NzVlWV3bFvzleXzs/p2O/zvTyoeLF4UbAHHM13rCrp6Qta9hy/Unrx4oaFlMojDllFFUywciTQ0tawtv26l56pj4E1CJrGTJoAahOaHuZBAt/DhoMS/sLf21Lkmqk9tYzM1VgD337npkbuWZve8yLHoZMcQQB4CITDmcES2isqS+QtqT7f4gtJ/kLVy2dznfrgz37dbVLunFj4EkK7BmA3eJHIRu5n35hceOtGsalN4bzAF1lyn7YXHvrHI+LEl/NkXeT3FGFQ/THkANfIhd3YWL5g/qevMPHCqrDzHPfPIndULAnbfQZIBlFAIBGMcRgBNAsfDYCVMNZJQSYGnqz/a0D40w6z3377mO9tnu3yv8xizPUy1QbKwnyxxoG2c7wighWDMAnSel41cdG6R99OG/j7fpAJ3Uqw3LS155uENXukdA+1P31OB7QpZH0a+yHwWMjhOD6qDA0QDdMUgSiaBFeflfnimV1Iya0JmVrfT+rsf37bY8ukstSF9TwbSx6/5U23kRMPA0uvnWGinSMbIJwF0GQYDoIIpZjFkM5ntFsuRcwMZXydnYBV47unvVlfP92dLn2RMJx+bc6p3zs92HTle17ps0fW5DquDdI2jwUwHr4GLgoYJiZqFQK49Oxhlda3habF+a3v5g1vz3dL7PDK86JOo9YpW8fjuiw2tPZTq51t9VSvmmTjZJo5JHQYQBYISc63AR418qMjlvNQhdQ6kmyUd68rFnqfuX17Mao3wpwdl4K7qS187pv75YF3sE58/NBAVKhZ6zBg0CamREKvlhQQ3g8moCpBLXMLRejXN82FC1mK39TcPr1lkr7eztvSgIOhXPf/qKfzlHz+LSCNYTe39ue682bkGh+DjuVQJYwAHkEQVzmCzqERXPQ52tBHKBM4d/z0hgLmlhXm52QNyTlDPTqf8BBHV3Bkpev6dy/1DwVQg+vu3Lp7pntURsLGxP6EDNMFK0dWDQBAlhZ4cp3WiqSb0a1tX/6nmyLzrrjOYnLqqWIXguMAUXHu4eN9p8vJ7TWMPBWRFaerFqoUGMwI28+ibjDVVRWMbugeMJ7qLHnsj0t49Ybyli9eevsHDp686crwed25YglUMC1yqChL0hBxnel2P72mNRMev7voGgirvWlQg2Q2aUUxl5eHz41IL+iPZr551P7e/x+cPpOHJoAOSJB05feWabJtfmi/JTCSyWVSHJwtKwmW/49l3o+cvjyf7Catvj5QUed1Gv8vGOBIfy4D2bjR3kCsR77OHDQeOdlBdTfMjmVkBAKyhpedEs1Y622vkNUWR7CadcNApWgbJgXPmlw9dS38kxKh+oRMV1zstCDodAIGk4FILuodMx3qLntwfqm/tncyh0mTrgYGhwAdnhgyOAq9TDYQiVhN6/TjXY3/yTSkUyVzbhyNSV9ixvJDYBFlWceEy+mXnnnO5zx/sDgaDGYdPjRWAqionzve3h/PmFWVJIb8vKv72H5a6yxmkd9g6+0Imh6fYEuobRFvU++vDwnsnO6Z0ljTVfQFr7Rw62mwsLSmqv8q/dHhgKueX7GKHtHhe0WW//Yn9gab2/9a/ExiMZqt11hcYaLfbBHEGzue/tP9P+zclUOrCr+J20QAAAABJRU5ErkJgggo="> + <link rel="shortcut icon" href="data:image/png;charset=utf-8;base64,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"> + + <meta http-equiv="cleartype" content="on"> + <meta name="apple-mobile-web-app-capable" content="yes"> + + <link rel="stylesheet" type="text/css" href="../../../../css/mobile.css" /> + <!-- link rel="stylesheet" type="text/css" href="../../../../css/jqtouch.css" / --> + <!-- link rel="apple-touch-startup-image" href="data:image/png;charset=utf-8;base64,iVBORw0K...ggo=" --> + +<script> + Clipperz_IEisBroken = false; + Clipperz_normalizedNewLine = '\n'; + Clipperz_dumpUrl = "/dump/"; + 'use strict'; + + if (typeof(MochiKit) == 'undefined') { + MochiKit = {}; + } + MochiKit['__export__'] = false; +</script> + <!-- Zepto.js modules: polyfill zepto event detect fx ajax form apple-touch-icon--> + <script type='text/javascript' src='../../../../js/Zepto/polyfill.js'></script> + <script type='text/javascript' src='../../../../js/Zepto/zepto.js'></script> + <script type='text/javascript' src='../../../../js/Zepto/event.js'></script> + <script type='text/javascript' src='../../../../js/Zepto/detect.js'></script> + <script type='text/javascript' src='../../../../js/Zepto/fx.js'></script> + <script type='text/javascript' src='../../../../js/Zepto/ajax.js'></script> + <script type='text/javascript' src='../../../../js/Zepto/form.js'></script> + <script type='text/javascript' src='../../../../js/Zepto/touch.js'></script> + <script type='text/javascript' src='../../../../js/Zepto/gesture.js'></script> + + <script type='text/javascript' src='../../../../js/JQTouch/jqtouch.js'></script> + + <script type='text/javascript' src='../../../../js/MochiKit/Base.js'></script> + <script type='text/javascript' src='../../../../js/MochiKit/Iter.js'></script> + <script type='text/javascript' src='../../../../js/MochiKit/Logging.js'></script> + <script type='text/javascript' src='../../../../js/MochiKit/Format.js'></script> + <script type='text/javascript' src='../../../../js/MochiKit/Async.js'></script> + <script type='text/javascript' src='../../../../js/MochiKit/DOM.js'></script> + <script type='text/javascript' src='../../../../js/MochiKit/Style.js'></script> + <script type='text/javascript' src='../../../../js/MochiKit/LoggingPane.js'></script> + <!-- script type='text/javascript' src='../../../../js/MochiKit/Color.js'></script --> + <script type='text/javascript' src='../../../../js/MochiKit/Signal.js'></script> + <!-- script type='text/javascript' src='../../../../js/MochiKit/Position.js'></script --> + <script type='text/javascript' src='../../../../js/MochiKit/Selector.js'></script> + <!-- script type='text/javascript' src='../../../../js/MochiKit/Visual.js'></script --> + + <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> + + <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> + + <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> + <!-- script type='text/javascript' src='../../../../js/Clipperz/CSVProcessor.js'></script --> + <!-- script type='text/javascript' src='../../../../js/Clipperz/KeePassExportProcessor.js'></script --> + <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> + <!-- script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script --> + <!-- script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script --> + <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/Crypto/RSA.js'></script> + + <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_defaults.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script> + + <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.JSON.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> + + <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/PIN.js'></script> + + <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Preferences.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLoginInput.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLoginBinding.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLoginFormValue.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/OneTimePassword.js'></script> + + <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/BaseComponent.js'></script> +<!-- + <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ComponentSlot.js'></script> + <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js'></script --> + +<!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/FaviconComponent.js'></script --> + <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ProgressBar.js'></script --> +<!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/MessagePanelWithProgressBar.js'></script --> +<!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js'></script --> +<!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Tooltip.js'></script --> +<!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js'></script --> + + <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js'></script --> + <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js'></script --> +<!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js'></script --> +<!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/WizardController.js'></script --> + + <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Mobile/Components/LoginForm.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Mobile/Components/CardList.js'></script> + <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Mobile/Components/CardDetail.js'></script> + + <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Mobile/Controllers/MainController.js'></script> + <script type='text/javascript' src='../../../../js/main.mobile.js'></script> + + <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> + <script type='text/javascript' src='./User.data.js'></script> +</head> +<body> +<div id="mainDiv"> + <div id="loading"> + <div> + <!-- a href="http://www.clipperz.com" target="_blank"><div id="logo"></div></a --> + <h1>clipperz</h1> + <h3 class="clipperzPayoff">keep it to yourself!</h3> + <!-- h5>loading ...</h5 --> + </div> + </div> + +</div> +<!-- div id="applicationVersionType" class="@application.version.type@"></div --> + +<script> +// Clipperz.PM.Proxy.defaultProxy = new Clipperz.PM.Proxy.JSON({'url':'@request.path@', 'shouldPayTolls':@should.pay.toll@}); + /*offline_data_placeholder*/ + + var proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:false, isDefault:true, readOnly:false}); + proxy.dataStore().setupWithEncryptedData(testData['testData']); + Clipperz.PM.Proxy.defaultProxy = proxy; + + Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); +// Clipperz.PM.PIN.setCredentialsWithPIN("1234", {username:'joe', passphrase:'clipperz'}); + + MochiKit.DOM.addLoadEvent(function () { +// MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'doLogin', { credentials: {username:'joe', passphrase:'clipperz'} }, function () { alert("Doh"); } ); + }); + +</script> + +</body> +</html> diff --git a/scripts/builder/backendBuilder.py b/scripts/builder/backendBuilder.py index 5b91678..36b28ca 100644 --- a/scripts/builder/backendBuilder.py +++ b/scripts/builder/backendBuilder.py @@ -9,7 +9,6 @@ import main #=================================================================== - class BackendBuilder(object): def __init__ (self, projectTargetDir, frontends, versions, settings): @@ -50,10 +49,12 @@ class BackendBuilder(object): def developmentTargetFolder (self): - return os.path.join(self.projectTargetDir, 'development', self.relativePath()) + return os.path.join(self.projectTargetDir, 'development') + def targetFolder (self): return os.path.join(self.projectTargetDir, self.relativePath()) + # -------------------------------------------------------------------------- @@ -103,7 +104,7 @@ class BackendBuilder(object): index = self.configureIndexContent(frontend.assemble(assemblyMode='DEBUG', versionType='DEBUG')) self.writeToFolder(self.frontEndTempFolder(), os.path.join(frontend.module, 'index_debug' + submoduleExtension + '.html'), index) - + if 'install' in self.versions: index = self.configureIndexContent(frontend.assemble()) self.writeToFolder(self.frontEndTempFolder(), os.path.join(frontend.module, 'index' + submoduleExtension + '.html'), index) @@ -112,20 +113,22 @@ class BackendBuilder(object): self.createPackage() - if 'development' in self.versions: - for frontend in self.frontends: - if (frontend.module == frontend.submodule): - submoduleExtension = '' - else: - submoduleExtension = '.' + frontend.submodule - - print "FRONTEND module: " + frontend.module - print "FRONTEND submodule: " + frontend.submodule - - main.createFolder(os.path.join(self.developmentTargetFolder(), frontend.module)) - - index = self.configureIndexContent(frontend.assemble(assemblyMode='DEVELOPMENT', versionType='DEBUG'), self.settings['development.settings']['url']) - self.writeToFolder(self.developmentTargetFolder(), os.path.join(frontend.module, 'index' + submoduleExtension + '.html'), index) +# if 'development' in self.versions: +# for frontend in self.frontends: +# if (frontend.module == frontend.submodule): +# submoduleExtension = '' +# else: +# submoduleExtension = '.' + frontend.submodule +# +# print "FRONTEND module: " + frontend.module +# print "FRONTEND submodule: " + frontend.submodule +# +## main.createFolder(os.path.join(self.developmentTargetFolder(), frontend.module)) +# main.createFolder(self.developmentTargetFolder()) +# +# index = self.configureIndexContent(frontend.assemble(assemblyMode='DEVELOPMENT', versionType='DEBUG'), self.settings['development.settings']['url']) +## self.writeToFolder(self.developmentTargetFolder(), os.path.join(frontend.module, 'index_development' + submoduleExtension + '.html'), index) +# self.writeToFolder(self.developmentTargetFolder(), os.path.join(frontend.module + submoduleExtension + '.html'), index) #=================================================================== diff --git a/scripts/builder/backends/devBuilder.py b/scripts/builder/backends/devBuilder.py new file mode 100644 index 0000000..671765e --- a/dev/null +++ b/scripts/builder/backends/devBuilder.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- + +import os +import shutil +import subprocess +import main + +from backendBuilder import BackendBuilder + +class DevBuilder(BackendBuilder): + + def name(self): + return "Dev builder" + + + def relativePath(self): + return 'dev' + + +# def frontEndTempFolder (self): +# return os.path.join(self.tempFolder(), 'src', 'main', 'webapp') + + +# def targetFolder (self): +# return self.projectTargetDir + + + def compileCode (self): + pass + + + def createPackage (self): + src = self.tempFolder() + dst = self.targetFolder() + + shutil.copytree(src, dst) + + + def run (self): + print self.name() + " - RUN (dev)" + + for frontend in self.frontends: + if (frontend.module == frontend.submodule): + submoduleExtension = '' + else: + submoduleExtension = '.' + frontend.submodule + + main.createFolder(os.path.join(self.frontEndTempFolder(), frontend.module)) + + index = self.configureIndexContent(frontend.assemble(assemblyMode='DEBUG', versionType='DEBUG')) + self.writeToFolder(self.frontEndTempFolder(), os.path.join(frontend.module, 'index' + submoduleExtension + '.html'), index) + + self.createPackage() + + diff --git a/scripts/builder/frontendBuilder.py b/scripts/builder/frontendBuilder.py index 1f0f92f..e52c31e 100644 --- a/scripts/builder/frontendBuilder.py +++ b/scripts/builder/frontendBuilder.py @@ -11,6 +11,8 @@ import urllib import main +#=============================================================================== + class FrontendBuilder(object): def __init__ (self, frontend, settings, repositoryVersion): @@ -27,10 +29,23 @@ class FrontendBuilder(object): # self.repository = repository.repositoryWithPath(self.projectDir) self.repositoryVersion = repositoryVersion self.processedFiles = {} - + + #--------------------------------------------------------------------------- + + def name (self): + raise NotImplementedError() + + + def copyStaticResources (self, targetFolder): + raise NotImplementedError() + + #--------------------------------------------------------------------------- def log (self, message): - print "frontend [" + self.module + "]: " + message + module = self.module + if (self.module != self.submodule): + module = module + "." + self.submodule + print "frontend [" + module + "]: " + message def absolutePathForSources (self): @@ -58,16 +73,30 @@ class FrontendBuilder(object): def copyResources (self, sourceFolder, destinationFolder, fileType): - for file in self.filterFiles(self.settings[fileType]): - src = self.absolutePathForSourceFile(fileType, file) - dst = self.absolutePathForTargetFile(destinationFolder, fileType, file) - main.createFolder(os.path.dirname(dst)) - shutil.copy2(src, dst) + if fileType in self.settings: + for file in self.filterFiles(self.settings[fileType]): + src = self.absolutePathForSourceFile(fileType, file) + dst = self.absolutePathForTargetFile(destinationFolder, fileType, file) + main.createFolder(os.path.dirname(dst)) + shutil.copy2(src, dst) + else: + srcFolder = os.path.join(self.absolutePathForSources(), fileType) + dstFolder = os.path.join(destinationFolder, self.module, fileType) + if not(os.path.exists(dstFolder)): + shutil.copytree(srcFolder, dstFolder) + +# try: +# shutil.copytree(srcFolder, dstFolder) +# except: +# pass + def copyResourcesToFolder (self, targetFolder): self.copyResources(self.projectDir, targetFolder, 'css') self.copyResources(self.projectDir, targetFolder, 'js') + self.copyResources(self.projectDir, targetFolder, 'images') + self.copyStaticResources(targetFolder) def loadFilesContent (self, basePath, files): @@ -279,13 +308,13 @@ class FrontendBuilder(object): def replaceTemplatePlaceholders (self, pageTitle, copyright, css, code, jsLoadMode, version, versionType): result = self.template() - result = result.replace('@page.title@', pageTitle, 1) - result = result.replace('@copyright@', copyright, 1) - result = result.replace('@css@', css, 1) - #result = result.replace('@bookmarklet@', bookmarklet, 1) - result = result.replace('@application.version@', version, 1) - result = result.replace('@application.version.type@', versionType, 1) - result = result.replace('@js_' + jsLoadMode + '@', code, 1) + result = result.replace('@page.title@', pageTitle) + result = result.replace('@copyright@', copyright) + result = result.replace('@css@', css) + #result = result.replace('@bookmarklet@', bookmarklet) + result = result.replace('@application.version@', version) + result = result.replace('@application.version.type@', versionType) + result = result.replace('@js_' + jsLoadMode + '@', code) result = re.sub('@js_[^@]+@', '', result) @@ -371,6 +400,7 @@ class FrontendBuilder(object): '\n' + \ self.scriptTagsForFiles('file://' + str(os.path.join(self.absolutePathForSources(), 'js')), self.filterFiles(self.settings['js'])) jsLoadMode = 'LINKED' + versionType = 'development' else: raise NotImplementedError() diff --git a/scripts/builder/frontends/betaBuilder.py b/scripts/builder/frontends/betaBuilder.py new file mode 100644 index 0000000..c5a3e76 --- a/dev/null +++ b/scripts/builder/frontends/betaBuilder.py @@ -0,0 +1,14 @@ +from frontendBuilder import FrontendBuilder +import shutil + +class BetaBuilder(FrontendBuilder): + + def name(self): + return "/beta builder" + + def copyStaticResources (self, targetFolder): + for file in self.filterFiles(self.settings['staticResources']): + src = self.absolutePathForSourceFile('staticResources', file) + dst = self.absolutePathForTargetFile(targetFolder, '', file) + shutil.copy2(src, dst) + diff --git a/scripts/builder/frontends/gammaBuilder.py b/scripts/builder/frontends/gammaBuilder.py new file mode 100644 index 0000000..35fa68b --- a/dev/null +++ b/scripts/builder/frontends/gammaBuilder.py @@ -0,0 +1,26 @@ +from frontendBuilder import FrontendBuilder +import shutil + +class GammaBuilder(FrontendBuilder): + + def name(self): + return "/gamma builder" + + def copyStaticResources (self, targetFolder): + resourcesToCopy = [ + {'folder': 'html', 'source': 'exit_template.html', 'target': 'exit.html'}, + {'folder': 'css', 'source': 'static.css', 'target': 'static.css'} + ] + + for resource in resourcesToCopy: + src = self.absolutePathForSourceFile(resource['folder'], resource['source']) + dst = self.absolutePathForTargetFile(targetFolder, '', resource['target']) + shutil.copy2(src, dst) + + # src = self.absolutePathForSourceFile('html', 'exit_template.html') + # dst = self.absolutePathForTargetFile(targetFolder, '', 'exit.html') + # shutil.copy2(src, dst) + + # src = self.absolutePathForSourceFile('css', 'static.css') + # dst = self.absolutePathForTargetFile(targetFolder, '', 'static.css') + # shutil.copy2(src, dst) diff --git a/scripts/builder/frontends/gamma_mobileBuilder.py b/scripts/builder/frontends/gamma_mobileBuilder.py new file mode 100644 index 0000000..f2e80c9 --- a/dev/null +++ b/scripts/builder/frontends/gamma_mobileBuilder.py @@ -0,0 +1,9 @@ +from frontendBuilder import FrontendBuilder + +class Gamma_MobileBuilder(FrontendBuilder): + + def name(self): + return "/gamma.mobile builder" + + def copyStaticResources (self, targetFolder): + pass diff --git a/scripts/builder/main.py b/scripts/builder/main.py index 6fce65d..b9fe04a 100755 --- a/scripts/builder/main.py +++ b/scripts/builder/main.py @@ -10,7 +10,7 @@ import codecs import itertools from collections import deque -import frontendBuilder +#import frontendBuilder import repository pp = pprint.PrettyPrinter(indent=4, depth=4) @@ -75,7 +75,7 @@ def assembleBackend (backend, frontends, versions): builderModuleName = backend + 'Builder' builderClassName = backend.capitalize() + 'Builder' - + #print ("BUILD BACKENDS - module: " + builderModuleName + " , class: " + builderClassName) builderModule = __import__(builderModuleName) builderClass = getattr(builderModule, builderClassName) @@ -88,10 +88,22 @@ def build (settings, repository): frontends = [] if repository.areTherePendingChanges(): - print "\nWARNING: repository has pending changes\n" + if 'install' in settings['versions']: + raise Exception("repository has pending changes, can't 'install'") + else: + print "\nWARNING: repository has pending changes\n" for frontend in settings['frontends']: - frontends.append(frontendBuilder.FrontendBuilder(frontend, loadSettings('frontend', frontend), repository.version())) + normalizedFrontendName = frontend.replace(".", "_") + builderModuleName = normalizedFrontendName + 'Builder' + builderClassName = normalizedFrontendName.title() + 'Builder' + + #print ("BUILD FRONTEND - module: " + builderModuleName + " , class: " + builderClassName) + builderModule = __import__(builderModuleName) + builderClass = getattr(builderModule, builderClassName) + builder = builderClass(frontend, loadSettings('frontend', frontend), repository.version()) + #builder = frontendBuilder.FrontendBuilder(frontend, loadSettings('frontend', frontend), repository.version()) + frontends.append(builder) for backend in settings['backends']: assembleBackend(backend, frontends, settings['versions']) @@ -114,6 +126,7 @@ def usage (message): # print "build clean install" print "build install --ALL" print "build install debug --ALL" + print "build install debug development --ALL" # print "build clean install debug --ALL" print "build install debug --backends php python --frontends beta gamma" print "build install debug development --backends php python --frontends beta gamma gamma.mobile" @@ -122,7 +135,7 @@ def usage (message): #-------------------------------------------------------------------- def allFrontends (): - return ['beta', 'gamma', 'mobile'] + return ['beta', 'gamma', 'gamma.mobile'] def allBackends (): return ['php', 'python'] @@ -134,6 +147,7 @@ def main (): parameters = list(itertools.islice(sys.argv, 1, None)) sys.path.append(os.path.join(scriptDir(), 'backends')) + sys.path.append(os.path.join(scriptDir(), 'frontends')) currentRepository = repository.repositoryWithPath(projectBaseDir()) clean() @@ -174,4 +188,4 @@ def main (): if __name__ == "__main__": - main() + main() diff --git a/scripts/dev-proxy b/scripts/dev-proxy new file mode 100755 index 0000000..e5980e3 --- a/dev/null +++ b/scripts/dev-proxy @@ -0,0 +1,7 @@ +#!/bin/bash + +readonly CURR_DIR=$(cd "$(dirname "$0")"; pwd -P) + +#${CURR_DIR}/proxy/main.py $@ +python ${CURR_DIR}/proxy/main.py $@ +#twistd -y ${CURR_DIR}/proxy/main.py --pidfile=${CURR_DIR}/../target/proxy/proxy.pid --logfile=${CURR_DIR}/../target/proxy/logs/proxy.log
\ No newline at end of file diff --git a/scripts/proxy/main.py b/scripts/proxy/main.py new file mode 100755 index 0000000..107ba16 --- a/dev/null +++ b/scripts/proxy/main.py @@ -0,0 +1,95 @@ +from twisted.internet import reactor +from twisted.web import proxy, server, http, resource, static +from posixpath import basename, dirname + +import copy +import sys +import os +import pprint + +#-------------------------------------------------------------------- + +def scriptDir (): + return os.path.dirname(sys.argv[0]) + +def projectBaseDir (): + return os.path.abspath(scriptDir() + '/../..') + +def projectTargetDir(): + return projectBaseDir() + '/target/' + +#-------------------------------------------------------------------- + +class ClipperzTestSite(server.Site): + + def __init__(self, resource, logPath=None, timeout=60 * 60 * 12): + server.Site.__init__(self, resource, logPath, timeout) + + + def getResourceFor(self, request): + if request.uri.startswith('/json') or request.uri.startswith('/dump'): + request.site = self + request.sitepath = copy.copy(request.prepath) + result = resource.getChildForRequest(self.resource, request) + + else: + pathParts = request.uri.split('/') + version = pathParts[1] + + if pathParts[2].startswith('index.'): + contentType = 'text/html' + absoluteFilePath = os.path.join(projectTargetDir(), 'dev', version, pathParts[2]) + result = static.File(absoluteFilePath, contentType) + + else: +# http://homer.local:8888/beta/css/clipperz/images/loginInfoBackground.png +# pathParts: ['', 'beta', 'css', 'clipperz', 'images', 'loginInfoBackground.png'] + try: + imagePathIndex = pathParts.index('images') + resourceType = 'images' + for _ in range(2, imagePathIndex): + del pathParts[2] + except: + resourceType = pathParts[2] + + basePath = projectBaseDir() + '/frontend' + if resourceType == 'images': + fileExtension = os.path.splitext(request.uri)[1] + if fileExtension == '.png': + contentType = 'image/png' + elif fileExtension == '.jpg': + contentType = 'image/jpeg' + elif fileExtension == '.gif': + contentType = 'image/gif' + else: + print "ERROR - unknown image extension: " + fileExtension + + absoluteFilePath = basePath + '/'.join(pathParts) + else: + resourceType = pathParts[2] + + if resourceType == 'css': + contentType = 'text/css' + elif resourceType == 'js': + contentType = 'text/javascript' + else: + contentType = 'text/html' + + absoluteFilePath = basePath + request.uri + + result = static.File(absoluteFilePath, contentType) + + + return result + + + +def main (): + site = ClipperzTestSite(proxy.ReverseProxyResource('localhost', 8084, '/java-backend')) + reactor.listenTCP(8888, site) + reactor.run() + + +if __name__ == "__main__": + main() + |