From aa1f4108bec8d651a0314a9161996f2069121a18 Mon Sep 17 00:00:00 2001 From: Andrew Yasinsky Date: Sat, 16 Mar 2013 20:18:47 -0700 Subject: [PATCH] first working with CI --- .../etc/apache2/sites-enabled/mail.oopzy.com | 6 +- .../mail.oopzy.com/config/mongodb.php | 28 - .../mail.oopzy.com/controllers/api.php | 74 - .../mail.oopzy.com/controllers/welcome.php | 27 - .../mail.oopzy.com/views/welcome_message.php | 88 - .../mail.oopzy.com/assets/vendor/oopzy.js | 99 - .../web_roots/mail.oopzy.com/favicon.ico | Bin 198 -> 0 bytes .../code/var/mail.oopzy.com/.htaccess | 5 - .../var/mail.oopzy.com/.production.htaccess | 9 - .../code/var/mail.oopzy.com/.staging.htaccess | 8 - .../app/controllers/main/about.php | 6 - .../app/controllers/main/get_messages.php | 69 - .../app/controllers/main/home_message.php | 8 - .../app/controllers/main/index.php | 13 - .../app/controllers/main/price_list.php | 8 - .../app/controllers/main/save_message.php | 62 - .../app/controllers/main/verify_token.php | 28 - .../var/mail.oopzy.com/app/helpers/utils.php | 87 - .../mail.oopzy.com/app/models/Oopzy_mail.php | 41 - .../mail.oopzy.com/app/models/Oopzy_model.php | 189 - .../PlancakeEmailParser.php | 337 - .../app/vendors/swift/lib/classes/Swift.php | 81 - .../swift/lib/classes/Swift/Attachment.php | 73 - .../AbstractFilterableInputStream.php | 183 - .../Swift/ByteStream/ArrayByteStream.php | 186 - .../Swift/ByteStream/FileByteStream.php | 222 - .../ByteStream/TemporaryFileByteStream.php | 44 - .../lib/classes/Swift/CharacterReader.php | 69 - .../GenericFixedWidthReader.php | 99 - .../Swift/CharacterReader/UsAsciiReader.php | 85 - .../Swift/CharacterReader/Utf8Reader.php | 181 - .../classes/Swift/CharacterReaderFactory.php | 28 - .../SimpleCharacterReaderFactory.php | 126 - .../lib/classes/Swift/CharacterStream.php | 91 - .../CharacterStream/ArrayCharacterStream.php | 296 - .../CharacterStream/NgCharacterStream.php | 277 - .../lib/classes/Swift/ConfigurableSpool.php | 64 - .../lib/classes/Swift/DependencyContainer.php | 373 - .../lib/classes/Swift/DependencyException.php | 28 - .../swift/lib/classes/Swift/EmbeddedFile.php | 71 - .../swift/lib/classes/Swift/Encoder.php | 29 - .../classes/Swift/Encoder/Base64Encoder.php | 60 - .../lib/classes/Swift/Encoder/QpEncoder.php | 286 - .../classes/Swift/Encoder/Rfc2231Encoder.php | 86 - .../swift/lib/classes/Swift/Encoding.php | 66 - .../lib/classes/Swift/Events/CommandEvent.php | 67 - .../classes/Swift/Events/CommandListener.php | 26 - .../swift/lib/classes/Swift/Events/Event.php | 40 - .../classes/Swift/Events/EventDispatcher.php | 85 - .../classes/Swift/Events/EventListener.php | 20 - .../lib/classes/Swift/Events/EventObject.php | 65 - .../classes/Swift/Events/ResponseEvent.php | 68 - .../classes/Swift/Events/ResponseListener.php | 26 - .../lib/classes/Swift/Events/SendEvent.php | 128 - .../lib/classes/Swift/Events/SendListener.php | 33 - .../Swift/Events/SimpleEventDispatcher.php | 161 - .../Swift/Events/TransportChangeEvent.php | 29 - .../Swift/Events/TransportChangeListener.php | 47 - .../Swift/Events/TransportExceptionEvent.php | 48 - .../Events/TransportExceptionListener.php | 26 - .../lib/classes/Swift/FailoverTransport.php | 47 - .../swift/lib/classes/Swift/FileSpool.php | 201 - .../swift/lib/classes/Swift/FileStream.php | 26 - .../swift/lib/classes/Swift/Filterable.php | 33 - .../vendors/swift/lib/classes/Swift/Image.php | 63 - .../lib/classes/Swift/InputByteStream.php | 77 - .../swift/lib/classes/Swift/IoException.php | 28 - .../swift/lib/classes/Swift/KeyCache.php | 107 - .../classes/Swift/KeyCache/ArrayKeyCache.php | 210 - .../classes/Swift/KeyCache/DiskKeyCache.php | 328 - .../Swift/KeyCache/KeyCacheInputStream.php | 53 - .../classes/Swift/KeyCache/NullKeyCache.php | 117 - .../KeyCache/SimpleKeyCacheInputStream.php | 129 - .../classes/Swift/LoadBalancedTransport.php | 47 - .../swift/lib/classes/Swift/MailTransport.php | 47 - .../swift/lib/classes/Swift/Mailer.php | 115 - .../Swift/Mailer/ArrayRecipientIterator.php | 57 - .../Swift/Mailer/RecipientIterator.php | 34 - .../swift/lib/classes/Swift/MemorySpool.php | 84 - .../swift/lib/classes/Swift/Message.php | 85 - .../lib/classes/Swift/Mime/Attachment.php | 155 - .../classes/Swift/Mime/CharsetObserver.php | 26 - .../lib/classes/Swift/Mime/ContentEncoder.php | 36 - .../ContentEncoder/Base64ContentEncoder.php | 69 - .../ContentEncoder/NativeQpContentEncoder.php | 75 - .../ContentEncoder/PlainContentEncoder.php | 167 - .../Mime/ContentEncoder/QpContentEncoder.php | 125 - .../Mime/ContentEncoder/RawContentEncoder.php | 65 - .../lib/classes/Swift/Mime/EmbeddedFile.php | 47 - .../classes/Swift/Mime/EncodingObserver.php | 26 - .../swift/lib/classes/Swift/Mime/Grammar.php | 178 - .../swift/lib/classes/Swift/Mime/Header.php | 95 - .../lib/classes/Swift/Mime/HeaderEncoder.php | 26 - .../HeaderEncoder/Base64HeaderEncoder.php | 57 - .../Mime/HeaderEncoder/QpHeaderEncoder.php | 67 - .../lib/classes/Swift/Mime/HeaderFactory.php | 80 - .../lib/classes/Swift/Mime/HeaderSet.php | 171 - .../Swift/Mime/Headers/AbstractHeader.php | 502 - .../classes/Swift/Mime/Headers/DateHeader.php | 127 - .../Mime/Headers/IdentificationHeader.php | 183 - .../Swift/Mime/Headers/MailboxHeader.php | 358 - .../Mime/Headers/ParameterizedHeader.php | 265 - .../classes/Swift/Mime/Headers/PathHeader.php | 146 - .../Swift/Mime/Headers/UnstructuredHeader.php | 114 - .../swift/lib/classes/Swift/Mime/Message.php | 225 - .../lib/classes/Swift/Mime/MimeEntity.php | 117 - .../swift/lib/classes/Swift/Mime/MimePart.php | 218 - .../Swift/Mime/ParameterizedHeader.php | 36 - .../Swift/Mime/SimpleHeaderFactory.php | 192 - .../classes/Swift/Mime/SimpleHeaderSet.php | 387 - .../lib/classes/Swift/Mime/SimpleMessage.php | 655 - .../classes/Swift/Mime/SimpleMimeEntity.php | 857 -- .../swift/lib/classes/Swift/MimePart.php | 61 - .../swift/lib/classes/Swift/NullTransport.php | 40 - .../lib/classes/Swift/OutputByteStream.php | 48 - .../classes/Swift/Plugins/AntiFloodPlugin.php | 143 - .../Swift/Plugins/BandwidthMonitorPlugin.php | 166 - .../Swift/Plugins/Decorator/Replacements.php | 33 - .../classes/Swift/Plugins/DecoratorPlugin.php | 211 - .../Swift/Plugins/ImpersonatePlugin.php | 70 - .../lib/classes/Swift/Plugins/Logger.php | 38 - .../classes/Swift/Plugins/LoggerPlugin.php | 143 - .../Swift/Plugins/Loggers/ArrayLogger.php | 74 - .../Swift/Plugins/Loggers/EchoLogger.php | 60 - .../classes/Swift/Plugins/MessageLogger.php | 77 - .../Swift/Plugins/Pop/Pop3Connection.php | 33 - .../Swift/Plugins/Pop/Pop3Exception.php | 29 - .../Swift/Plugins/PopBeforeSmtpPlugin.php | 278 - .../Swift/Plugins/RedirectingPlugin.php | 195 - .../lib/classes/Swift/Plugins/Reporter.php | 34 - .../classes/Swift/Plugins/ReporterPlugin.php | 75 - .../Swift/Plugins/Reporters/HitReporter.php | 61 - .../Swift/Plugins/Reporters/HtmlReporter.php | 41 - .../lib/classes/Swift/Plugins/Sleeper.php | 26 - .../classes/Swift/Plugins/ThrottlerPlugin.php | 204 - .../swift/lib/classes/Swift/Plugins/Timer.php | 26 - .../swift/lib/classes/Swift/Preferences.php | 104 - .../Swift/ReplacementFilterFactory.php | 28 - .../classes/Swift/RfcComplianceException.php | 28 - .../lib/classes/Swift/SendmailTransport.php | 47 - .../swift/lib/classes/Swift/SignedMessage.php | 161 - .../swift/lib/classes/Swift/Signer.php | 22 - .../lib/classes/Swift/Signers/BodySigner.php | 35 - .../lib/classes/Swift/Signers/DKIMSigner.php | 666 - .../classes/Swift/Signers/DomainKeySigner.php | 509 - .../classes/Swift/Signers/HeaderSigner.php | 67 - .../classes/Swift/Signers/PeclDKIMSigner.php | 115 - .../lib/classes/Swift/Signers/SMimeSigner.php | 430 - .../swift/lib/classes/Swift/SmtpTransport.php | 53 - .../vendors/swift/lib/classes/Swift/Spool.php | 54 - .../lib/classes/Swift/SpoolTransport.php | 48 - .../swift/lib/classes/Swift/StreamFilter.php | 36 - .../ByteArrayReplacementFilter.php | 171 - .../StreamFilters/StringReplacementFilter.php | 67 - .../StringReplacementFilterFactory.php | 46 - .../lib/classes/Swift/SwiftException.php | 28 - .../swift/lib/classes/Swift/Transport.php | 56 - .../Swift/Transport/AbstractSmtpTransport.php | 502 - .../Esmtp/Auth/CramMd5Authenticator.php | 83 - .../Esmtp/Auth/LoginAuthenticator.php | 53 - .../Esmtp/Auth/PlainAuthenticator.php | 52 - .../Swift/Transport/Esmtp/AuthHandler.php | 268 - .../Swift/Transport/Esmtp/Authenticator.php | 37 - .../classes/Swift/Transport/EsmtpHandler.php | 88 - .../Swift/Transport/EsmtpTransport.php | 393 - .../Swift/Transport/FailoverTransport.php | 90 - .../lib/classes/Swift/Transport/IoBuffer.php | 69 - .../Swift/Transport/LoadBalancedTransport.php | 171 - .../classes/Swift/Transport/MailInvoker.php | 34 - .../classes/Swift/Transport/MailTransport.php | 231 - .../classes/Swift/Transport/NullTransport.php | 88 - .../Swift/Transport/SendmailTransport.php | 163 - .../Swift/Transport/SimpleMailInvoker.php | 41 - .../lib/classes/Swift/Transport/SmtpAgent.php | 38 - .../Swift/Transport/SpoolTransport.php | 118 - .../classes/Swift/Transport/StreamBuffer.php | 315 - .../lib/classes/Swift/TransportException.php | 29 - .../swift/lib/classes/Swift/Validate.php | 43 - .../swift/lib/dependency_maps/cache_deps.php | 23 - .../lib/dependency_maps/message_deps.php | 9 - .../swift/lib/dependency_maps/mime_deps.php | 122 - .../lib/dependency_maps/transport_deps.php | 68 - .../app/vendors/swift/lib/mime_types.php | 76 - .../app/vendors/swift/lib/preferences.php | 29 - .../app/vendors/swift/lib/swift_init.php | 28 - .../app/vendors/swift/lib/swift_required.php | 32 - .../vendors/swift/lib/swift_required_pear.php | 32 - .../mail.oopzy.com/app/views/errors/404.php | 47 - .../var/mail.oopzy.com/app/views/mail.php | 382 - .../mail.oopzy.com/assets/combined.css.php | 47 - .../var/mail.oopzy.com/assets/combined.js.php | 49 - .../mail.oopzy.com/assets/cssmin-v2.0.2.2.php | 1746 --- .../mail.oopzy.com/assets/images/custom_b.png | Bin 179 -> 0 bytes .../assets/images/custom_bl.png | Bin 213 -> 0 bytes .../assets/images/custom_br.png | Bin 227 -> 0 bytes .../mail.oopzy.com/assets/images/custom_l.png | Bin 148 -> 0 bytes .../mail.oopzy.com/assets/images/custom_r.png | Bin 165 -> 0 bytes .../mail.oopzy.com/assets/images/custom_t.png | Bin 159 -> 0 bytes .../assets/images/custom_tl.png | Bin 165 -> 0 bytes .../assets/images/custom_tr.png | Bin 222 -> 0 bytes .../assets/images/datepicker_b.png | Bin 135 -> 0 bytes .../assets/images/datepicker_bl.png | Bin 211 -> 0 bytes .../assets/images/datepicker_br.png | Bin 208 -> 0 bytes .../assets/images/datepicker_l.png | Bin 131 -> 0 bytes .../assets/images/datepicker_r.png | Bin 132 -> 0 bytes .../assets/images/datepicker_t.png | Bin 140 -> 0 bytes .../assets/images/datepicker_tl.png | Bin 209 -> 0 bytes .../assets/images/datepicker_tr.png | Bin 240 -> 0 bytes .../mail.oopzy.com/assets/images/field.png | Bin 767 -> 0 bytes .../mail.oopzy.com/assets/images/loading.gif | Bin 4204 -> 0 bytes .../mail.oopzy.com/assets/images/oopzy.png | Bin 6534 -> 0 bytes .../assets/images/oopzy_large.png | Bin 16472 -> 0 bytes .../mail.oopzy.com/assets/images/oopzybig.png | Bin 30701 -> 0 bytes .../assets/images/ui-anim_basic_16x16.gif | Bin 1553 -> 0 bytes .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 225 -> 0 bytes .../images/ui-bg_flat_75_ffffff_40x100.png | Bin 178 -> 0 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 120 -> 0 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 105 -> 0 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 111 -> 0 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 110 -> 0 bytes .../images/ui-bg_glass_75_ffffff_1x400.png | Bin 107 -> 0 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 119 -> 0 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 101 -> 0 bytes .../ui-bg_inset-soft_95_fef1ec_1x100.png | Bin 123 -> 0 bytes .../assets/images/ui-icons_222222_256x240.png | Bin 4369 -> 0 bytes .../assets/images/ui-icons_2e83ff_256x240.png | Bin 4369 -> 0 bytes .../assets/images/ui-icons_454545_256x240.png | Bin 4369 -> 0 bytes .../assets/images/ui-icons_888888_256x240.png | Bin 4369 -> 0 bytes .../assets/images/ui-icons_cd0a0a_256x240.png | Bin 4369 -> 0 bytes .../mail.oopzy.com/assets/images/zhenya.png | Bin 60319 -> 0 bytes .../mail.oopzy.com/assets/vendor/backbone.js | 1432 -- .../bootstrap/css/bootstrap-responsive.css | 686 - .../css/bootstrap-responsive.min.css | 12 - .../assets/vendor/bootstrap/css/bootstrap.css | 3990 ------ .../vendor/bootstrap/css/bootstrap.min.css | 442 - .../img/glyphicons-halflings-darkgreen.png | Bin 2028 -> 0 bytes .../img/glyphicons-halflings-darkred.png | Bin 2028 -> 0 bytes .../img/glyphicons-halflings-white.png | Bin 4352 -> 0 bytes .../bootstrap/img/glyphicons-halflings.png | Bin 4352 -> 0 bytes .../assets/vendor/bootstrap/js/bootstrap.js | 1726 --- .../vendor/bootstrap/js/bootstrap.min.js | 6 - .../assets/vendor/jquery.ui/.svn/entries | 78 - .../.svn/text-base/jquery.ui.js.svn-base | 11802 ---------------- .../assets/vendor/jquery.ui/css/.svn/entries | 106 - .../jquery-ui-1.8.18.custom.css.svn-base | 565 - .../css/.svn/text-base/jquery.ui.css.svn-base | 566 - .../vendor/jquery.ui/css/images/.svn/entries | 987 -- .../ui-anim_basic_16x16.gif.svn-base | 9 - ...agonals-thick_18_b81900_40x40.png.svn-base | 5 - ...agonals-thick_20_666666_40x40.png.svn-base | 5 - .../ui-bg_flat_0_aaaaaa_40x100.png.svn-base | 9 - .../ui-bg_flat_10_000000_40x100.png.svn-base | 5 - .../ui-bg_flat_75_ffffff_40x100.png.svn-base | 9 - .../ui-bg_glass_100_f6f6f6_1x400.png.svn-base | 5 - .../ui-bg_glass_100_fdf5ce_1x400.png.svn-base | 5 - .../ui-bg_glass_55_fbf9ee_1x400.png.svn-base | 9 - .../ui-bg_glass_65_ffffff_1x400.png.svn-base | 9 - .../ui-bg_glass_75_dadada_1x400.png.svn-base | 9 - .../ui-bg_glass_75_e6e6e6_1x400.png.svn-base | 9 - .../ui-bg_glass_75_ffffff_1x400.png.svn-base | 9 - .../ui-bg_glass_95_fef1ec_1x400.png.svn-base | 9 - ..._gloss-wave_35_f6a828_500x100.png.svn-base | 5 - ...ghlight-soft_100_eeeeee_1x100.png.svn-base | 5 - ...ighlight-soft_75_cccccc_1x100.png.svn-base | 9 - ...ighlight-soft_75_ffe45c_1x100.png.svn-base | 5 - ...bg_inset-soft_95_fef1ec_1x100.png.svn-base | 9 - .../ui-icons_222222_256x240.png.svn-base | 9 - .../ui-icons_228ef1_256x240.png.svn-base | 5 - .../ui-icons_2e83ff_256x240.png.svn-base | 9 - .../ui-icons_454545_256x240.png.svn-base | 9 - .../ui-icons_888888_256x240.png.svn-base | 9 - .../ui-icons_cd0a0a_256x240.png.svn-base | 9 - .../ui-icons_ef8c08_256x240.png.svn-base | 5 - .../ui-icons_ffd27a_256x240.png.svn-base | 5 - .../ui-icons_ffffff_256x240.png.svn-base | 5 - .../ui-anim_basic_16x16.gif.svn-base | Bin 1553 -> 0 bytes ...agonals-thick_18_b81900_40x40.png.svn-base | Bin 260 -> 0 bytes ...agonals-thick_20_666666_40x40.png.svn-base | Bin 251 -> 0 bytes .../ui-bg_flat_0_aaaaaa_40x100.png.svn-base | Bin 180 -> 0 bytes .../ui-bg_flat_10_000000_40x100.png.svn-base | Bin 178 -> 0 bytes .../ui-bg_flat_75_ffffff_40x100.png.svn-base | Bin 178 -> 0 bytes .../ui-bg_glass_100_f6f6f6_1x400.png.svn-base | Bin 104 -> 0 bytes .../ui-bg_glass_100_fdf5ce_1x400.png.svn-base | Bin 125 -> 0 bytes .../ui-bg_glass_55_fbf9ee_1x400.png.svn-base | Bin 120 -> 0 bytes .../ui-bg_glass_65_ffffff_1x400.png.svn-base | Bin 105 -> 0 bytes .../ui-bg_glass_75_dadada_1x400.png.svn-base | Bin 111 -> 0 bytes .../ui-bg_glass_75_e6e6e6_1x400.png.svn-base | Bin 110 -> 0 bytes .../ui-bg_glass_75_ffffff_1x400.png.svn-base | Bin 107 -> 0 bytes .../ui-bg_glass_95_fef1ec_1x400.png.svn-base | Bin 119 -> 0 bytes ..._gloss-wave_35_f6a828_500x100.png.svn-base | Bin 3762 -> 0 bytes ...ghlight-soft_100_eeeeee_1x100.png.svn-base | Bin 90 -> 0 bytes ...ighlight-soft_75_cccccc_1x100.png.svn-base | Bin 101 -> 0 bytes ...ighlight-soft_75_ffe45c_1x100.png.svn-base | Bin 129 -> 0 bytes ...bg_inset-soft_95_fef1ec_1x100.png.svn-base | Bin 123 -> 0 bytes .../ui-icons_222222_256x240.png.svn-base | Bin 4369 -> 0 bytes .../ui-icons_228ef1_256x240.png.svn-base | Bin 4369 -> 0 bytes .../ui-icons_2e83ff_256x240.png.svn-base | Bin 4369 -> 0 bytes .../ui-icons_454545_256x240.png.svn-base | Bin 4369 -> 0 bytes .../ui-icons_888888_256x240.png.svn-base | Bin 4369 -> 0 bytes .../ui-icons_cd0a0a_256x240.png.svn-base | Bin 4369 -> 0 bytes .../ui-icons_ef8c08_256x240.png.svn-base | Bin 4369 -> 0 bytes .../ui-icons_ffd27a_256x240.png.svn-base | Bin 4369 -> 0 bytes .../ui-icons_ffffff_256x240.png.svn-base | Bin 4369 -> 0 bytes .../css/images/ui-anim_basic_16x16.gif | Bin 1553 -> 0 bytes .../ui-bg_diagonals-thick_18_b81900_40x40.png | Bin 260 -> 0 bytes .../ui-bg_diagonals-thick_20_666666_40x40.png | Bin 251 -> 0 bytes .../css/images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 180 -> 0 bytes .../images/ui-bg_flat_10_000000_40x100.png | Bin 178 -> 0 bytes .../images/ui-bg_flat_75_ffffff_40x100.png | Bin 178 -> 0 bytes .../images/ui-bg_glass_100_f6f6f6_1x400.png | Bin 104 -> 0 bytes .../images/ui-bg_glass_100_fdf5ce_1x400.png | Bin 125 -> 0 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 120 -> 0 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 105 -> 0 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 111 -> 0 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 110 -> 0 bytes .../images/ui-bg_glass_75_ffffff_1x400.png | Bin 107 -> 0 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 119 -> 0 bytes .../ui-bg_gloss-wave_35_f6a828_500x100.png | Bin 3762 -> 0 bytes .../ui-bg_highlight-soft_100_eeeeee_1x100.png | Bin 90 -> 0 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 101 -> 0 bytes .../ui-bg_highlight-soft_75_ffe45c_1x100.png | Bin 129 -> 0 bytes .../ui-bg_inset-soft_95_fef1ec_1x100.png | Bin 123 -> 0 bytes .../css/images/ui-icons_222222_256x240.png | Bin 4369 -> 0 bytes .../css/images/ui-icons_228ef1_256x240.png | Bin 4369 -> 0 bytes .../css/images/ui-icons_2e83ff_256x240.png | Bin 4369 -> 0 bytes .../css/images/ui-icons_454545_256x240.png | Bin 4369 -> 0 bytes .../css/images/ui-icons_888888_256x240.png | Bin 4369 -> 0 bytes .../css/images/ui-icons_cd0a0a_256x240.png | Bin 4369 -> 0 bytes .../css/images/ui-icons_ef8c08_256x240.png | Bin 4369 -> 0 bytes .../css/images/ui-icons_ffd27a_256x240.png | Bin 4369 -> 0 bytes .../css/images/ui-icons_ffffff_256x240.png | Bin 4369 -> 0 bytes .../jquery.ui/css/jquery-ui-1.8.18.custom.css | 565 - .../assets/vendor/jquery.ui/css/jquery.ui.css | 566 - .../vendor/jquery.ui/images/.svn/entries | 35 - .../assets/vendor/jquery.ui/jquery.ui.js | 11802 ---------------- .../vendor/jquery.ui/plugins/.svn/entries | 239 - .../.svn/text-base/jquery.ui.core.js.svn-base | 308 - .../text-base/jquery.ui.mouse.js.svn-base | 151 - .../text-base/jquery.ui.slider.js.svn-base | 666 - .../text-base/jquery.ui.sortable.js.svn-base | 1073 -- .../.svn/text-base/jquery.ui.tabs.js.svn-base | 759 - .../text-base/jquery.ui.widget.js.svn-base | 262 - .../jquery.ui/plugins/jquery.ui.core.js | 308 - .../jquery.ui/plugins/jquery.ui.mouse.js | 151 - .../jquery.ui/plugins/jquery.ui.slider.js | 666 - .../jquery.ui/plugins/jquery.ui.sortable.js | 1073 -- .../jquery.ui/plugins/jquery.ui.tabs.js | 759 - .../jquery.ui/plugins/jquery.ui.widget.js | 262 - .../assets/vendor/jquery/css/datepicker.css | 63 - .../assets/vendor/jquery/css/fullcalendar.css | 618 - .../vendor/jquery/css/fullcalendar.print.css | 61 - .../vendor/jquery/css/images/custom_b.png | Bin 179 -> 0 bytes .../vendor/jquery/css/images/custom_bl.png | Bin 213 -> 0 bytes .../vendor/jquery/css/images/custom_br.png | Bin 227 -> 0 bytes .../vendor/jquery/css/images/custom_l.png | Bin 148 -> 0 bytes .../vendor/jquery/css/images/custom_r.png | Bin 165 -> 0 bytes .../vendor/jquery/css/images/custom_t.png | Bin 159 -> 0 bytes .../vendor/jquery/css/images/custom_tl.png | Bin 165 -> 0 bytes .../vendor/jquery/css/images/custom_tr.png | Bin 222 -> 0 bytes .../vendor/jquery/css/images/datepicker_b.png | Bin 135 -> 0 bytes .../jquery/css/images/datepicker_bl.png | Bin 211 -> 0 bytes .../jquery/css/images/datepicker_br.png | Bin 208 -> 0 bytes .../vendor/jquery/css/images/datepicker_l.png | Bin 131 -> 0 bytes .../vendor/jquery/css/images/datepicker_r.png | Bin 132 -> 0 bytes .../vendor/jquery/css/images/datepicker_t.png | Bin 140 -> 0 bytes .../jquery/css/images/datepicker_tl.png | Bin 209 -> 0 bytes .../jquery/css/images/datepicker_tr.png | Bin 240 -> 0 bytes .../assets/vendor/jquery/css/images/field.png | Bin 767 -> 0 bytes .../vendor/jquery/css/images/loading.gif | Bin 4204 -> 0 bytes .../jquery/css/images/ui-anim_basic_16x16.gif | Bin 1553 -> 0 bytes .../css/images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 180 -> 0 bytes .../images/ui-bg_flat_75_ffffff_40x100.png | Bin 178 -> 0 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 120 -> 0 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 105 -> 0 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 111 -> 0 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 110 -> 0 bytes .../images/ui-bg_glass_75_ffffff_1x400.png | Bin 107 -> 0 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 119 -> 0 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 101 -> 0 bytes .../ui-bg_inset-soft_95_fef1ec_1x100.png | Bin 123 -> 0 bytes .../css/images/ui-icons_222222_256x240.png | Bin 4369 -> 0 bytes .../css/images/ui-icons_2e83ff_256x240.png | Bin 4369 -> 0 bytes .../css/images/ui-icons_454545_256x240.png | Bin 4369 -> 0 bytes .../css/images/ui-icons_888888_256x240.png | Bin 4369 -> 0 bytes .../css/images/ui-icons_cd0a0a_256x240.png | Bin 4369 -> 0 bytes .../vendor/jquery/css/jquery.datatables.css | 508 - .../vendor/jquery/css/multidatepicker.css | 191 - .../assets/vendor/jquery/jquery.js | 4 - .../assets/vendor/jquery/plugins/.svn/entries | 501 - .../.svn/text-base/fullcalendar.js.svn-base | 5211 ------- .../text-base/fullcalendar.min.js.svn-base | 113 - .../text-base/jquery.autocomplete.js.svn-base | 613 - .../jquery.cookies.2.2.0.min.js.svn-base | 18 - .../text-base/jquery.csv.min.r34.js.svn-base | 1 - .../jquery.dataTables.min.1.6.2.js.svn-base | 7441 ---------- .../jquery.datepicker.1.8.js.svn-base | 1727 --- .../jquery.dimensions.min.1.2.js.svn-base | 12 - .../text-base/jquery.form.2.43.js.svn-base | 781 - .../jquery.jeditable.min.1.7.1.js.svn-base | 39 - .../jquery.pstrength-min.1.2.js.svn-base | 1 - .../jquery.validate.min.1.7.js.svn-base | 16 - .../text-base/multidatepicker.js.svn-base | 891 -- .../vendor/jquery/plugins/fullcalendar.js | 5211 ------- .../vendor/jquery/plugins/fullcalendar.min.js | 113 - .../jquery/plugins/jquery.autocomplete.js | 613 - .../plugins/jquery.cookies.2.2.0.min.js | 18 - .../jquery/plugins/jquery.csv.min.r34.js | 1 - .../plugins/jquery.dataTables.min.1.6.2.js | 7441 ---------- .../jquery/plugins/jquery.datepicker.1.8.js | 1727 --- .../plugins/jquery.dimensions.min.1.2.js | 12 - .../vendor/jquery/plugins/jquery.form.2.43.js | 781 - .../plugins/jquery.jeditable.min.1.7.1.js | 39 - .../plugins/jquery.pstrength-min.1.2.js | 1 - .../jquery/plugins/jquery.validate.min.1.7.js | 16 - .../vendor/jquery/plugins/multidatepicker.js | 891 -- .../assets/vendor/jsmin-v1.1.1.php | 325 - .../var/mail.oopzy.com/assets/vendor/json2.js | 481 - .../vendor/php.default.namespaced.min.js | 758 - .../assets/vendor/require/.svn/entries | 72 - .../.svn/text-base/require.js.svn-base | 33 - .../vendor/require/plugins/.svn/entries | 123 - .../plugins/.svn/text-base/async.js.svn-base | 42 - .../plugins/.svn/text-base/google.js.svn-base | 11 - .../plugins/.svn/text-base/use.js.svn-base | 102 - .../assets/vendor/require/plugins/async.js | 42 - .../assets/vendor/require/plugins/google.js | 11 - .../assets/vendor/require/plugins/use.js | 102 - .../assets/vendor/require/require.js | 33 - .../assets/vendor/underscore.js | 31 - .../mail.oopzy.com/assets/vendor/zepto.min.js | 4 - .../codeigniter2.1.3/license.txt | 0 .../codeigniter2.1.3/system/.htaccess | 0 .../system/core/Benchmark.php | 0 .../system/core/CodeIgniter.php | 0 .../codeigniter2.1.3/system/core/Common.php | 0 .../codeigniter2.1.3/system/core/Config.php | 0 .../system/core/Controller.php | 0 .../system/core/Exceptions.php | 0 .../codeigniter2.1.3/system/core/Hooks.php | 0 .../codeigniter2.1.3/system/core/Input.php | 0 .../codeigniter2.1.3/system/core/Lang.php | 0 .../codeigniter2.1.3/system/core/Loader.php | 0 .../codeigniter2.1.3/system/core/Model.php | 0 .../codeigniter2.1.3/system/core/Output.php | 0 .../codeigniter2.1.3/system/core/Router.php | 0 .../codeigniter2.1.3/system/core/Security.php | 0 .../codeigniter2.1.3/system/core/URI.php | 0 .../codeigniter2.1.3/system/core/Utf8.php | 0 .../codeigniter2.1.3/system/core/index.html | 0 .../codeigniter2.1.3/system/database/DB.php | 0 .../system/database/DB_active_rec.php | 0 .../system/database/DB_cache.php | 0 .../system/database/DB_driver.php | 0 .../system/database/DB_forge.php | 0 .../system/database/DB_result.php | 0 .../system/database/DB_utility.php | 0 .../database/drivers/cubrid/cubrid_driver.php | 0 .../database/drivers/cubrid/cubrid_forge.php | 0 .../database/drivers/cubrid/cubrid_result.php | 0 .../drivers/cubrid/cubrid_utility.php | 0 .../system/database/drivers/cubrid/index.html | 0 .../system/database/drivers/index.html | 0 .../system/database/drivers/mssql/index.html | 0 .../database/drivers/mssql/mssql_driver.php | 0 .../database/drivers/mssql/mssql_forge.php | 0 .../database/drivers/mssql/mssql_result.php | 0 .../database/drivers/mssql/mssql_utility.php | 0 .../system/database/drivers/mysql/index.html | 0 .../database/drivers/mysql/mysql_driver.php | 0 .../database/drivers/mysql/mysql_forge.php | 0 .../database/drivers/mysql/mysql_result.php | 0 .../database/drivers/mysql/mysql_utility.php | 0 .../system/database/drivers/mysqli/index.html | 0 .../database/drivers/mysqli/mysqli_driver.php | 0 .../database/drivers/mysqli/mysqli_forge.php | 0 .../database/drivers/mysqli/mysqli_result.php | 0 .../drivers/mysqli/mysqli_utility.php | 0 .../system/database/drivers/oci8/index.html | 0 .../database/drivers/oci8/oci8_driver.php | 0 .../database/drivers/oci8/oci8_forge.php | 0 .../database/drivers/oci8/oci8_result.php | 0 .../database/drivers/oci8/oci8_utility.php | 0 .../system/database/drivers/odbc/index.html | 0 .../database/drivers/odbc/odbc_driver.php | 0 .../database/drivers/odbc/odbc_forge.php | 0 .../database/drivers/odbc/odbc_result.php | 0 .../database/drivers/odbc/odbc_utility.php | 0 .../system/database/drivers/pdo/index.html | 0 .../database/drivers/pdo/pdo_driver.php | 0 .../system/database/drivers/pdo/pdo_forge.php | 0 .../database/drivers/pdo/pdo_result.php | 0 .../database/drivers/pdo/pdo_utility.php | 0 .../database/drivers/postgre/index.html | 0 .../drivers/postgre/postgre_driver.php | 0 .../drivers/postgre/postgre_forge.php | 0 .../drivers/postgre/postgre_result.php | 0 .../drivers/postgre/postgre_utility.php | 0 .../system/database/drivers/sqlite/index.html | 0 .../database/drivers/sqlite/sqlite_driver.php | 0 .../database/drivers/sqlite/sqlite_forge.php | 0 .../database/drivers/sqlite/sqlite_result.php | 0 .../drivers/sqlite/sqlite_utility.php | 0 .../system/database/drivers/sqlsrv/index.html | 0 .../database/drivers/sqlsrv/sqlsrv_driver.php | 0 .../database/drivers/sqlsrv/sqlsrv_forge.php | 0 .../database/drivers/sqlsrv/sqlsrv_result.php | 0 .../drivers/sqlsrv/sqlsrv_utility.php | 0 .../system/database/index.html | 0 .../codeigniter2.1.3/system/fonts/index.html | 0 .../codeigniter2.1.3/system/fonts/texb.ttf | Bin .../system/helpers/array_helper.php | 0 .../system/helpers/captcha_helper.php | 0 .../system/helpers/cookie_helper.php | 0 .../system/helpers/date_helper.php | 0 .../system/helpers/directory_helper.php | 0 .../system/helpers/download_helper.php | 0 .../system/helpers/email_helper.php | 0 .../system/helpers/file_helper.php | 0 .../system/helpers/form_helper.php | 0 .../system/helpers/html_helper.php | 0 .../system/helpers/index.html | 0 .../system/helpers/inflector_helper.php | 0 .../system/helpers/language_helper.php | 0 .../system/helpers/number_helper.php | 0 .../system/helpers/path_helper.php | 0 .../system/helpers/security_helper.php | 0 .../system/helpers/smiley_helper.php | 0 .../system/helpers/string_helper.php | 0 .../system/helpers/text_helper.php | 0 .../system/helpers/typography_helper.php | 0 .../system/helpers/url_helper.php | 0 .../system/helpers/xml_helper.php | 0 .../codeigniter2.1.3/system/index.html | 0 .../system/language/english/calendar_lang.php | 0 .../system/language/english/date_lang.php | 0 .../system/language/english/db_lang.php | 0 .../system/language/english/email_lang.php | 0 .../language/english/form_validation_lang.php | 0 .../system/language/english/ftp_lang.php | 0 .../system/language/english/imglib_lang.php | 0 .../system/language/english/index.html | 0 .../language/english/migration_lang.php | 0 .../system/language/english/number_lang.php | 0 .../system/language/english/profiler_lang.php | 0 .../language/english/unit_test_lang.php | 0 .../system/language/english/upload_lang.php | 0 .../system/language/index.html | 0 .../system/libraries/Cache/Cache.php | 0 .../libraries/Cache/drivers/Cache_apc.php | 0 .../libraries/Cache/drivers/Cache_dummy.php | 0 .../libraries/Cache/drivers/Cache_file.php | 0 .../Cache/drivers/Cache_memcached.php | 0 .../system/libraries/Calendar.php | 0 .../system/libraries/Cart.php | 0 .../system/libraries/Driver.php | 0 .../system/libraries/Email.php | 0 .../system/libraries/Encrypt.php | 0 .../system/libraries/Form_validation.php | 0 .../codeigniter2.1.3/system/libraries/Ftp.php | 0 .../system/libraries/Image_lib.php | 0 .../system/libraries/Javascript.php | 0 .../codeigniter2.1.3/system/libraries/Log.php | 0 .../system/libraries/Migration.php | 0 .../system/libraries/Pagination.php | 0 .../system/libraries/Parser.php | 0 .../system/libraries/Profiler.php | 0 .../system/libraries/Session.php | 0 .../system/libraries/Sha1.php | 0 .../system/libraries/Table.php | 0 .../system/libraries/Trackback.php | 0 .../system/libraries/Typography.php | 0 .../system/libraries/Unit_test.php | 0 .../system/libraries/Upload.php | 0 .../system/libraries/User_agent.php | 0 .../system/libraries/Xmlrpc.php | 0 .../system/libraries/Xmlrpcs.php | 0 .../codeigniter2.1.3/system/libraries/Zip.php | 0 .../system/libraries/index.html | 0 .../system/libraries/javascript/Jquery.php | 0 .../user_guide/changelog.html | 0 .../user_guide/database/active_record.html | 0 .../user_guide/database/caching.html | 0 .../user_guide/database/call_function.html | 0 .../user_guide/database/configuration.html | 0 .../user_guide/database/connecting.html | 0 .../user_guide/database/examples.html | 0 .../user_guide/database/fields.html | 0 .../user_guide/database/forge.html | 0 .../user_guide/database/helpers.html | 0 .../user_guide/database/index.html | 0 .../user_guide/database/queries.html | 0 .../user_guide/database/results.html | 0 .../user_guide/database/table_data.html | 0 .../user_guide/database/transactions.html | 0 .../user_guide/database/utilities.html | 0 .../user_guide/doc_style/index.html | 0 .../user_guide/doc_style/template.html | 0 .../user_guide/general/alternative_php.html | 0 .../user_guide/general/ancillary_classes.html | 0 .../user_guide/general/autoloader.html | 0 .../user_guide/general/caching.html | 0 .../user_guide/general/cli.html | 0 .../user_guide/general/common_functions.html | 0 .../user_guide/general/controllers.html | 0 .../user_guide/general/core_classes.html | 0 .../user_guide/general/creating_drivers.html | 0 .../general/creating_libraries.html | 0 .../user_guide/general/credits.html | 0 .../user_guide/general/drivers.html | 0 .../user_guide/general/environments.html | 0 .../user_guide/general/errors.html | 0 .../user_guide/general/helpers.html | 0 .../user_guide/general/hooks.html | 0 .../user_guide/general/libraries.html | 0 .../user_guide/general/managing_apps.html | 0 .../user_guide/general/models.html | 0 .../user_guide/general/profiling.html | 0 .../user_guide/general/quick_reference.html | 0 .../user_guide/general/requirements.html | 0 .../user_guide/general/reserved_names.html | 0 .../user_guide/general/routing.html | 0 .../user_guide/general/security.html | 0 .../user_guide/general/styleguide.html | 0 .../user_guide/general/urls.html | 0 .../user_guide/general/views.html | 0 .../user_guide/helpers/array_helper.html | 0 .../user_guide/helpers/captcha_helper.html | 0 .../user_guide/helpers/cookie_helper.html | 0 .../user_guide/helpers/date_helper.html | 0 .../user_guide/helpers/directory_helper.html | 0 .../user_guide/helpers/download_helper.html | 0 .../user_guide/helpers/email_helper.html | 0 .../user_guide/helpers/file_helper.html | 0 .../user_guide/helpers/form_helper.html | 0 .../user_guide/helpers/html_helper.html | 0 .../user_guide/helpers/inflector_helper.html | 0 .../user_guide/helpers/language_helper.html | 0 .../user_guide/helpers/number_helper.html | 0 .../user_guide/helpers/path_helper.html | 0 .../user_guide/helpers/security_helper.html | 0 .../user_guide/helpers/smiley_helper.html | 0 .../user_guide/helpers/string_helper.html | 0 .../user_guide/helpers/text_helper.html | 0 .../user_guide/helpers/typography_helper.html | 0 .../user_guide/helpers/url_helper.html | 0 .../user_guide/helpers/xml_helper.html | 0 .../user_guide/images/appflowchart.gif | Bin .../user_guide/images/arrow.gif | Bin .../user_guide/images/ci_logo.jpg | Bin .../user_guide/images/ci_logo_flame.jpg | Bin .../user_guide/images/ci_quick_ref.png | Bin .../codeigniter_1.7.1_helper_reference.pdf | Bin .../codeigniter_1.7.1_helper_reference.png | Bin .../codeigniter_1.7.1_library_reference.pdf | Bin .../codeigniter_1.7.1_library_reference.png | Bin .../user_guide/images/file.gif | Bin .../user_guide/images/folder.gif | Bin .../user_guide/images/nav_bg_darker.jpg | Bin .../images/nav_separator_darker.jpg | Bin .../user_guide/images/nav_toggle_darker.jpg | Bin .../user_guide/images/reactor-bullet.png | Bin .../user_guide/images/smile.gif | Bin .../user_guide/images/transparent.gif | Bin .../codeigniter2.1.3/user_guide/index.html | 0 .../user_guide/installation/downloads.html | 0 .../user_guide/installation/index.html | 0 .../installation/troubleshooting.html | 0 .../user_guide/installation/upgrade_120.html | 0 .../user_guide/installation/upgrade_130.html | 0 .../user_guide/installation/upgrade_131.html | 0 .../user_guide/installation/upgrade_132.html | 0 .../user_guide/installation/upgrade_133.html | 0 .../user_guide/installation/upgrade_140.html | 0 .../user_guide/installation/upgrade_141.html | 0 .../user_guide/installation/upgrade_150.html | 0 .../user_guide/installation/upgrade_152.html | 0 .../user_guide/installation/upgrade_153.html | 0 .../user_guide/installation/upgrade_154.html | 0 .../user_guide/installation/upgrade_160.html | 0 .../user_guide/installation/upgrade_161.html | 0 .../user_guide/installation/upgrade_162.html | 0 .../user_guide/installation/upgrade_163.html | 0 .../user_guide/installation/upgrade_170.html | 0 .../user_guide/installation/upgrade_171.html | 0 .../user_guide/installation/upgrade_172.html | 0 .../user_guide/installation/upgrade_200.html | 0 .../user_guide/installation/upgrade_201.html | 0 .../user_guide/installation/upgrade_202.html | 0 .../user_guide/installation/upgrade_203.html | 0 .../user_guide/installation/upgrade_210.html | 0 .../user_guide/installation/upgrade_211.html | 0 .../user_guide/installation/upgrade_212.html | 0 .../user_guide/installation/upgrade_213.html | 0 .../user_guide/installation/upgrade_b11.html | 0 .../user_guide/installation/upgrading.html | 0 .../user_guide/libraries/benchmark.html | 0 .../user_guide/libraries/caching.html | 0 .../user_guide/libraries/calendar.html | 0 .../user_guide/libraries/cart.html | 0 .../user_guide/libraries/config.html | 0 .../user_guide/libraries/email.html | 0 .../user_guide/libraries/encryption.html | 0 .../user_guide/libraries/file_uploading.html | 0 .../user_guide/libraries/form_validation.html | 0 .../user_guide/libraries/ftp.html | 0 .../user_guide/libraries/image_lib.html | 0 .../user_guide/libraries/input.html | 0 .../user_guide/libraries/javascript.html | 0 .../user_guide/libraries/language.html | 0 .../user_guide/libraries/loader.html | 0 .../user_guide/libraries/migration.html | 0 .../user_guide/libraries/output.html | 0 .../user_guide/libraries/pagination.html | 0 .../user_guide/libraries/parser.html | 0 .../user_guide/libraries/security.html | 0 .../user_guide/libraries/sessions.html | 0 .../user_guide/libraries/table.html | 0 .../user_guide/libraries/trackback.html | 0 .../user_guide/libraries/typography.html | 0 .../user_guide/libraries/unit_testing.html | 0 .../user_guide/libraries/uri.html | 0 .../user_guide/libraries/user_agent.html | 0 .../user_guide/libraries/xmlrpc.html | 0 .../user_guide/libraries/zip.html | 0 .../codeigniter2.1.3/user_guide/license.html | 0 .../codeigniter2.1.3/user_guide/nav/hacks.txt | 0 .../codeigniter2.1.3/user_guide/nav/moo.fx.js | 0 .../codeigniter2.1.3/user_guide/nav/nav.js | 0 .../user_guide/nav/prototype.lite.js | 0 .../user_guide/nav/user_guide_menu.js | 0 .../user_guide/overview/appflow.html | 0 .../user_guide/overview/at_a_glance.html | 0 .../user_guide/overview/cheatsheets.html | 0 .../user_guide/overview/features.html | 0 .../user_guide/overview/getting_started.html | 0 .../user_guide/overview/goals.html | 0 .../user_guide/overview/index.html | 0 .../user_guide/overview/mvc.html | 0 .../codeigniter2.1.3/user_guide/toc.html | 0 .../user_guide/tutorial/conclusion.html | 0 .../tutorial/create_news_items.html | 0 .../user_guide/tutorial/hard_coded_pages.html | 0 .../user_guide/tutorial/index.html | 0 .../user_guide/tutorial/news_section.html | 0 .../user_guide/tutorial/static_pages.html | 0 .../codeigniter2.1.3/user_guide/userguide.css | 0 .../code/var/mail.oopzy.com/index.php | 122 - .../var/mail.oopzy.com/index.production.php | 136 - .../code/var/mail.oopzy.com/index.staging.php | 126 - .../code/var/mail.oopzy.com/kissmvc.php | 38 - .../code/var/mail.oopzy.com/kissmvc_core.php | 372 - .../web_apps/mail.oopzy.com/.htaccess | 0 .../mail.oopzy.com/config/autoload.php | 2 +- .../web_apps/mail.oopzy.com/config/config.php | 34 +- .../mail.oopzy.com/config/constants.php | 28 +- .../mail.oopzy.com/config/database.php | 7 +- .../mail.oopzy.com/config/doctypes.php | 0 .../mail.oopzy.com/config/foreign_chars.php | 0 .../web_apps/mail.oopzy.com/config/hooks.php | 0 .../web_apps/mail.oopzy.com/config/index.html | 0 .../mail.oopzy.com/config/migration.php | 0 .../web_apps/mail.oopzy.com/config/mimes.php | 0 .../mail.oopzy.com/config/profiler.php | 0 .../web_apps/mail.oopzy.com/config/rest.php | 2 +- .../web_apps/mail.oopzy.com/config/routes.php | 7 +- .../mail.oopzy.com/config/smileys.php | 0 .../mail.oopzy.com/config/user_agents.php | 0 .../mail.oopzy.com/controllers/api.php | 308 + .../controllers}/get_server_info.php | 0 .../mail.oopzy.com/controllers/index.php | 59 + .../mail.oopzy.com/controllers/verify.php | 32 + .../mail.oopzy.com/core}/MY_Controller.php | 0 .../mail.oopzy.com/core}/MY_Email.php | 0 .../mail.oopzy.com/core}/MY_Loader.php | 4 +- .../web_apps/mail.oopzy.com/core}/MY_Log.php | 3 +- .../mail.oopzy.com/core}/MY_Session.php | 0 .../mail.oopzy.com/errors/error_404.php | 0 .../mail.oopzy.com/errors/error_db.php | 0 .../mail.oopzy.com/errors/error_general.php | 0 .../mail.oopzy.com/errors/error_php.php | 0 .../web_apps/mail.oopzy.com/errors/index.html | 0 .../mail.oopzy.com/helpers/index.html | 0 .../web_apps/mail.oopzy.com/index.html | 0 .../language/english/index.html | 0 .../mail.oopzy.com/language/index.html | 0 .../mail.oopzy.com/libraries/Format.php | 0 .../mail.oopzy.com/libraries/Mongo_db.php | 0 .../mail.oopzy.com/libraries/Oopzy_lib.php} | 73 +- .../mail.oopzy.com/libraries/Oopzy_mail.php | 16 +- .../libraries/REST_Controller.php | 0 .../mail.oopzy.com/libraries/index.html | 0 .../web_apps/mail.oopzy.com/libraries/mdb.php | 28 + .../mail.oopzy.com/libraries/mongodb_readme | 0 .../mail.oopzy.com/libraries/utils.php | 102 +- .../PlancakeEmailParser.php | 0 .../vendors/swift/lib/classes/Swift.php | 0 .../swift/lib/classes/Swift/Attachment.php | 0 .../AbstractFilterableInputStream.php | 0 .../Swift/ByteStream/ArrayByteStream.php | 0 .../Swift/ByteStream/FileByteStream.php | 0 .../ByteStream/TemporaryFileByteStream.php | 0 .../lib/classes/Swift/CharacterReader.php | 0 .../GenericFixedWidthReader.php | 0 .../Swift/CharacterReader/UsAsciiReader.php | 0 .../Swift/CharacterReader/Utf8Reader.php | 0 .../classes/Swift/CharacterReaderFactory.php | 0 .../SimpleCharacterReaderFactory.php | 0 .../lib/classes/Swift/CharacterStream.php | 0 .../CharacterStream/ArrayCharacterStream.php | 0 .../CharacterStream/NgCharacterStream.php | 0 .../lib/classes/Swift/ConfigurableSpool.php | 0 .../lib/classes/Swift/DependencyContainer.php | 0 .../lib/classes/Swift/DependencyException.php | 0 .../swift/lib/classes/Swift/EmbeddedFile.php | 0 .../swift/lib/classes/Swift/Encoder.php | 0 .../classes/Swift/Encoder/Base64Encoder.php | 0 .../lib/classes/Swift/Encoder/QpEncoder.php | 0 .../classes/Swift/Encoder/Rfc2231Encoder.php | 0 .../swift/lib/classes/Swift/Encoding.php | 0 .../lib/classes/Swift/Events/CommandEvent.php | 0 .../classes/Swift/Events/CommandListener.php | 0 .../swift/lib/classes/Swift/Events/Event.php | 0 .../classes/Swift/Events/EventDispatcher.php | 0 .../classes/Swift/Events/EventListener.php | 0 .../lib/classes/Swift/Events/EventObject.php | 0 .../classes/Swift/Events/ResponseEvent.php | 0 .../classes/Swift/Events/ResponseListener.php | 0 .../lib/classes/Swift/Events/SendEvent.php | 0 .../lib/classes/Swift/Events/SendListener.php | 0 .../Swift/Events/SimpleEventDispatcher.php | 0 .../Swift/Events/TransportChangeEvent.php | 0 .../Swift/Events/TransportChangeListener.php | 0 .../Swift/Events/TransportExceptionEvent.php | 0 .../Events/TransportExceptionListener.php | 0 .../lib/classes/Swift/FailoverTransport.php | 0 .../swift/lib/classes/Swift/FileSpool.php | 0 .../swift/lib/classes/Swift/FileStream.php | 0 .../swift/lib/classes/Swift/Filterable.php | 0 .../vendors/swift/lib/classes/Swift/Image.php | 0 .../lib/classes/Swift/InputByteStream.php | 0 .../swift/lib/classes/Swift/IoException.php | 0 .../swift/lib/classes/Swift/KeyCache.php | 0 .../classes/Swift/KeyCache/ArrayKeyCache.php | 0 .../classes/Swift/KeyCache/DiskKeyCache.php | 0 .../Swift/KeyCache/KeyCacheInputStream.php | 0 .../classes/Swift/KeyCache/NullKeyCache.php | 0 .../KeyCache/SimpleKeyCacheInputStream.php | 0 .../classes/Swift/LoadBalancedTransport.php | 0 .../swift/lib/classes/Swift/MailTransport.php | 0 .../swift/lib/classes/Swift/Mailer.php | 0 .../Swift/Mailer/ArrayRecipientIterator.php | 0 .../Swift/Mailer/RecipientIterator.php | 0 .../swift/lib/classes/Swift/MemorySpool.php | 0 .../swift/lib/classes/Swift/Message.php | 0 .../lib/classes/Swift/Mime/Attachment.php | 0 .../classes/Swift/Mime/CharsetObserver.php | 0 .../lib/classes/Swift/Mime/ContentEncoder.php | 0 .../ContentEncoder/Base64ContentEncoder.php | 0 .../ContentEncoder/NativeQpContentEncoder.php | 0 .../ContentEncoder/PlainContentEncoder.php | 0 .../Mime/ContentEncoder/QpContentEncoder.php | 0 .../Mime/ContentEncoder/RawContentEncoder.php | 0 .../lib/classes/Swift/Mime/EmbeddedFile.php | 0 .../classes/Swift/Mime/EncodingObserver.php | 0 .../swift/lib/classes/Swift/Mime/Grammar.php | 0 .../swift/lib/classes/Swift/Mime/Header.php | 0 .../lib/classes/Swift/Mime/HeaderEncoder.php | 0 .../HeaderEncoder/Base64HeaderEncoder.php | 0 .../Mime/HeaderEncoder/QpHeaderEncoder.php | 0 .../lib/classes/Swift/Mime/HeaderFactory.php | 0 .../lib/classes/Swift/Mime/HeaderSet.php | 0 .../Swift/Mime/Headers/AbstractHeader.php | 0 .../classes/Swift/Mime/Headers/DateHeader.php | 0 .../Mime/Headers/IdentificationHeader.php | 0 .../Swift/Mime/Headers/MailboxHeader.php | 0 .../Mime/Headers/ParameterizedHeader.php | 0 .../classes/Swift/Mime/Headers/PathHeader.php | 0 .../Swift/Mime/Headers/UnstructuredHeader.php | 0 .../swift/lib/classes/Swift/Mime/Message.php | 0 .../lib/classes/Swift/Mime/MimeEntity.php | 0 .../swift/lib/classes/Swift/Mime/MimePart.php | 0 .../Swift/Mime/ParameterizedHeader.php | 0 .../Swift/Mime/SimpleHeaderFactory.php | 0 .../classes/Swift/Mime/SimpleHeaderSet.php | 0 .../lib/classes/Swift/Mime/SimpleMessage.php | 0 .../classes/Swift/Mime/SimpleMimeEntity.php | 0 .../swift/lib/classes/Swift/MimePart.php | 0 .../swift/lib/classes/Swift/NullTransport.php | 0 .../lib/classes/Swift/OutputByteStream.php | 0 .../classes/Swift/Plugins/AntiFloodPlugin.php | 0 .../Swift/Plugins/BandwidthMonitorPlugin.php | 0 .../Swift/Plugins/Decorator/Replacements.php | 0 .../classes/Swift/Plugins/DecoratorPlugin.php | 0 .../Swift/Plugins/ImpersonatePlugin.php | 0 .../lib/classes/Swift/Plugins/Logger.php | 0 .../classes/Swift/Plugins/LoggerPlugin.php | 0 .../Swift/Plugins/Loggers/ArrayLogger.php | 0 .../Swift/Plugins/Loggers/EchoLogger.php | 0 .../classes/Swift/Plugins/MessageLogger.php | 0 .../Swift/Plugins/Pop/Pop3Connection.php | 0 .../Swift/Plugins/Pop/Pop3Exception.php | 0 .../Swift/Plugins/PopBeforeSmtpPlugin.php | 0 .../Swift/Plugins/RedirectingPlugin.php | 0 .../lib/classes/Swift/Plugins/Reporter.php | 0 .../classes/Swift/Plugins/ReporterPlugin.php | 0 .../Swift/Plugins/Reporters/HitReporter.php | 0 .../Swift/Plugins/Reporters/HtmlReporter.php | 0 .../lib/classes/Swift/Plugins/Sleeper.php | 0 .../classes/Swift/Plugins/ThrottlerPlugin.php | 0 .../swift/lib/classes/Swift/Plugins/Timer.php | 0 .../swift/lib/classes/Swift/Preferences.php | 0 .../Swift/ReplacementFilterFactory.php | 0 .../classes/Swift/RfcComplianceException.php | 0 .../lib/classes/Swift/SendmailTransport.php | 0 .../swift/lib/classes/Swift/SignedMessage.php | 0 .../swift/lib/classes/Swift/Signer.php | 0 .../lib/classes/Swift/Signers/BodySigner.php | 0 .../lib/classes/Swift/Signers/DKIMSigner.php | 0 .../classes/Swift/Signers/DomainKeySigner.php | 0 .../classes/Swift/Signers/HeaderSigner.php | 0 .../classes/Swift/Signers/PeclDKIMSigner.php | 0 .../lib/classes/Swift/Signers/SMimeSigner.php | 0 .../swift/lib/classes/Swift/SmtpTransport.php | 0 .../vendors/swift/lib/classes/Swift/Spool.php | 0 .../lib/classes/Swift/SpoolTransport.php | 0 .../swift/lib/classes/Swift/StreamFilter.php | 0 .../ByteArrayReplacementFilter.php | 0 .../StreamFilters/StringReplacementFilter.php | 0 .../StringReplacementFilterFactory.php | 0 .../lib/classes/Swift/SwiftException.php | 0 .../swift/lib/classes/Swift/Transport.php | 0 .../Swift/Transport/AbstractSmtpTransport.php | 0 .../Esmtp/Auth/CramMd5Authenticator.php | 0 .../Esmtp/Auth/LoginAuthenticator.php | 0 .../Esmtp/Auth/PlainAuthenticator.php | 0 .../Swift/Transport/Esmtp/AuthHandler.php | 0 .../Swift/Transport/Esmtp/Authenticator.php | 0 .../classes/Swift/Transport/EsmtpHandler.php | 0 .../Swift/Transport/EsmtpTransport.php | 0 .../Swift/Transport/FailoverTransport.php | 0 .../lib/classes/Swift/Transport/IoBuffer.php | 0 .../Swift/Transport/LoadBalancedTransport.php | 0 .../classes/Swift/Transport/MailInvoker.php | 0 .../classes/Swift/Transport/MailTransport.php | 0 .../classes/Swift/Transport/NullTransport.php | 0 .../Swift/Transport/SendmailTransport.php | 0 .../Swift/Transport/SimpleMailInvoker.php | 0 .../lib/classes/Swift/Transport/SmtpAgent.php | 0 .../Swift/Transport/SpoolTransport.php | 0 .../classes/Swift/Transport/StreamBuffer.php | 0 .../lib/classes/Swift/TransportException.php | 0 .../swift/lib/classes/Swift/Validate.php | 0 .../swift/lib/dependency_maps/cache_deps.php | 0 .../lib/dependency_maps/message_deps.php | 0 .../swift/lib/dependency_maps/mime_deps.php | 0 .../lib/dependency_maps/transport_deps.php | 0 .../vendors/swift/lib/mime_types.php | 0 .../vendors/swift/lib/preferences.php | 0 .../vendors/swift/lib/swift_init.php | 0 .../vendors/swift/lib/swift_required.php | 0 .../vendors/swift/lib/swift_required_pear.php | 0 .../web_apps/mail.oopzy.com/models/index.html | 0 .../mail.oopzy.com}/views/about.php | 0 .../mail.oopzy.com}/views/home_message.php | 0 .../web_apps/mail.oopzy.com/views/index.html | 0 .../web_apps/mail.oopzy.com/views/index.php | 169 + .../mail.oopzy.com}/views/price_list.php | 0 .../mail.oopzy.com/views/templates/blank.php | 1 + .../mail.oopzy.com}/views/templates/main.php | 91 +- .../mail.oopzy.com}/views/verified.php | 0 .../web_roots/mail.oopzy.com/.htaccess | 0 .../mail.oopzy.com/assets/combined.css.php | 0 .../mail.oopzy.com/assets/combined.js.php | 1 + .../mail.oopzy.com/assets/cssmin-v2.0.2.2.php | 0 .../mail.oopzy.com/assets/images/custom_b.png | Bin .../assets/images/custom_bl.png | Bin .../assets/images/custom_br.png | Bin .../mail.oopzy.com/assets/images/custom_l.png | Bin .../mail.oopzy.com/assets/images/custom_r.png | Bin .../mail.oopzy.com/assets/images/custom_t.png | Bin .../assets/images/custom_tl.png | Bin .../assets/images/custom_tr.png | Bin .../assets/images/datepicker_b.png | Bin .../assets/images/datepicker_bl.png | Bin .../assets/images/datepicker_br.png | Bin .../assets/images/datepicker_l.png | Bin .../assets/images/datepicker_r.png | Bin .../assets/images/datepicker_t.png | Bin .../assets/images/datepicker_tl.png | Bin .../assets/images/datepicker_tr.png | Bin .../mail.oopzy.com/assets/images/field.png | Bin .../mail.oopzy.com/assets/images/loading.gif | Bin .../mail.oopzy.com/assets/images/oopzy.png | Bin .../assets/images/oopzy_large.png | Bin .../mail.oopzy.com/assets/images/oopzybig.png | Bin .../assets/images/ui-anim_basic_16x16.gif | Bin .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin .../images/ui-bg_flat_75_ffffff_40x100.png | Bin .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin .../images/ui-bg_glass_65_ffffff_1x400.png | Bin .../images/ui-bg_glass_75_dadada_1x400.png | Bin .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin .../images/ui-bg_glass_75_ffffff_1x400.png | Bin .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin .../ui-bg_inset-soft_95_fef1ec_1x100.png | Bin .../assets/images/ui-icons_222222_256x240.png | Bin .../assets/images/ui-icons_2e83ff_256x240.png | Bin .../assets/images/ui-icons_454545_256x240.png | Bin .../assets/images/ui-icons_888888_256x240.png | Bin .../assets/images/ui-icons_cd0a0a_256x240.png | Bin .../mail.oopzy.com/assets/images/zhenya.png | Bin .../assets/jsapp/config_mail.js | 38 + .../mail.oopzy.com/assets/jsapp/index.html | 10 + .../mail.oopzy.com/assets/jsapp/mail.js | 285 + .../mail.oopzy.com/assets/jsapp/style.css} | 0 .../assets/jsapp/templates_mail.js | 34 + .../mail.oopzy.com/assets/vendor/backbone.js | 0 .../bootstrap/css/bootstrap-responsive.css | 0 .../css/bootstrap-responsive.min.css | 0 .../assets/vendor/bootstrap/css/bootstrap.css | 0 .../vendor/bootstrap/css/bootstrap.min.css | 0 .../img/glyphicons-halflings-darkgreen.png | Bin .../img/glyphicons-halflings-darkred.png | Bin .../img/glyphicons-halflings-white.png | Bin .../bootstrap/img/glyphicons-halflings.png | Bin .../vendor/bootstrap/js/bootstrap-tab.js | 0 .../assets/vendor/bootstrap/js/bootstrap.js | 0 .../vendor/bootstrap/js/bootstrap.min.js | 0 .../assets/vendor/jquery.ui/.svn/entries | 0 .../.svn/text-base/jquery.ui.js.svn-base | 0 .../assets/vendor/jquery.ui/css/.svn/entries | 0 .../jquery-ui-1.8.18.custom.css.svn-base | 0 .../css/.svn/text-base/jquery.ui.css.svn-base | 0 .../vendor/jquery.ui/css/images/.svn/entries | 0 .../ui-anim_basic_16x16.gif.svn-base | 0 ...agonals-thick_18_b81900_40x40.png.svn-base | 0 ...agonals-thick_20_666666_40x40.png.svn-base | 0 .../ui-bg_flat_0_aaaaaa_40x100.png.svn-base | 0 .../ui-bg_flat_10_000000_40x100.png.svn-base | 0 .../ui-bg_flat_75_ffffff_40x100.png.svn-base | 0 .../ui-bg_glass_100_f6f6f6_1x400.png.svn-base | 0 .../ui-bg_glass_100_fdf5ce_1x400.png.svn-base | 0 .../ui-bg_glass_55_fbf9ee_1x400.png.svn-base | 0 .../ui-bg_glass_65_ffffff_1x400.png.svn-base | 0 .../ui-bg_glass_75_dadada_1x400.png.svn-base | 0 .../ui-bg_glass_75_e6e6e6_1x400.png.svn-base | 0 .../ui-bg_glass_75_ffffff_1x400.png.svn-base | 0 .../ui-bg_glass_95_fef1ec_1x400.png.svn-base | 0 ..._gloss-wave_35_f6a828_500x100.png.svn-base | 0 ...ghlight-soft_100_eeeeee_1x100.png.svn-base | 0 ...ighlight-soft_75_cccccc_1x100.png.svn-base | 0 ...ighlight-soft_75_ffe45c_1x100.png.svn-base | 0 ...bg_inset-soft_95_fef1ec_1x100.png.svn-base | 0 .../ui-icons_222222_256x240.png.svn-base | 0 .../ui-icons_228ef1_256x240.png.svn-base | 0 .../ui-icons_2e83ff_256x240.png.svn-base | 0 .../ui-icons_454545_256x240.png.svn-base | 0 .../ui-icons_888888_256x240.png.svn-base | 0 .../ui-icons_cd0a0a_256x240.png.svn-base | 0 .../ui-icons_ef8c08_256x240.png.svn-base | 0 .../ui-icons_ffd27a_256x240.png.svn-base | 0 .../ui-icons_ffffff_256x240.png.svn-base | 0 .../ui-anim_basic_16x16.gif.svn-base | Bin ...agonals-thick_18_b81900_40x40.png.svn-base | Bin ...agonals-thick_20_666666_40x40.png.svn-base | Bin .../ui-bg_flat_0_aaaaaa_40x100.png.svn-base | Bin .../ui-bg_flat_10_000000_40x100.png.svn-base | Bin .../ui-bg_flat_75_ffffff_40x100.png.svn-base | Bin .../ui-bg_glass_100_f6f6f6_1x400.png.svn-base | Bin .../ui-bg_glass_100_fdf5ce_1x400.png.svn-base | Bin .../ui-bg_glass_55_fbf9ee_1x400.png.svn-base | Bin .../ui-bg_glass_65_ffffff_1x400.png.svn-base | Bin .../ui-bg_glass_75_dadada_1x400.png.svn-base | Bin .../ui-bg_glass_75_e6e6e6_1x400.png.svn-base | Bin .../ui-bg_glass_75_ffffff_1x400.png.svn-base | Bin .../ui-bg_glass_95_fef1ec_1x400.png.svn-base | Bin ..._gloss-wave_35_f6a828_500x100.png.svn-base | Bin ...ghlight-soft_100_eeeeee_1x100.png.svn-base | Bin ...ighlight-soft_75_cccccc_1x100.png.svn-base | Bin ...ighlight-soft_75_ffe45c_1x100.png.svn-base | Bin ...bg_inset-soft_95_fef1ec_1x100.png.svn-base | Bin .../ui-icons_222222_256x240.png.svn-base | Bin .../ui-icons_228ef1_256x240.png.svn-base | Bin .../ui-icons_2e83ff_256x240.png.svn-base | Bin .../ui-icons_454545_256x240.png.svn-base | Bin .../ui-icons_888888_256x240.png.svn-base | Bin .../ui-icons_cd0a0a_256x240.png.svn-base | Bin .../ui-icons_ef8c08_256x240.png.svn-base | Bin .../ui-icons_ffd27a_256x240.png.svn-base | Bin .../ui-icons_ffffff_256x240.png.svn-base | Bin .../css/images/ui-anim_basic_16x16.gif | Bin .../ui-bg_diagonals-thick_18_b81900_40x40.png | Bin .../ui-bg_diagonals-thick_20_666666_40x40.png | Bin .../css/images/ui-bg_flat_0_aaaaaa_40x100.png | Bin .../images/ui-bg_flat_10_000000_40x100.png | Bin .../images/ui-bg_flat_75_ffffff_40x100.png | Bin .../images/ui-bg_glass_100_f6f6f6_1x400.png | Bin .../images/ui-bg_glass_100_fdf5ce_1x400.png | Bin .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin .../images/ui-bg_glass_65_ffffff_1x400.png | Bin .../images/ui-bg_glass_75_dadada_1x400.png | Bin .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin .../images/ui-bg_glass_75_ffffff_1x400.png | Bin .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin .../ui-bg_gloss-wave_35_f6a828_500x100.png | Bin .../ui-bg_highlight-soft_100_eeeeee_1x100.png | Bin .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin .../ui-bg_highlight-soft_75_ffe45c_1x100.png | Bin .../ui-bg_inset-soft_95_fef1ec_1x100.png | Bin .../css/images/ui-icons_222222_256x240.png | Bin .../css/images/ui-icons_228ef1_256x240.png | Bin .../css/images/ui-icons_2e83ff_256x240.png | Bin .../css/images/ui-icons_454545_256x240.png | Bin .../css/images/ui-icons_888888_256x240.png | Bin .../css/images/ui-icons_cd0a0a_256x240.png | Bin .../css/images/ui-icons_ef8c08_256x240.png | Bin .../css/images/ui-icons_ffd27a_256x240.png | Bin .../css/images/ui-icons_ffffff_256x240.png | Bin .../jquery.ui/css/jquery-ui-1.8.18.custom.css | 0 .../assets/vendor/jquery.ui/css/jquery.ui.css | 0 .../vendor/jquery.ui/images/.svn/entries | 0 .../assets/vendor/jquery.ui/jquery.ui.js | 0 .../vendor/jquery.ui/plugins/.svn/entries | 0 .../.svn/text-base/jquery.ui.core.js.svn-base | 0 .../text-base/jquery.ui.mouse.js.svn-base | 0 .../text-base/jquery.ui.slider.js.svn-base | 0 .../text-base/jquery.ui.sortable.js.svn-base | 0 .../.svn/text-base/jquery.ui.tabs.js.svn-base | 0 .../text-base/jquery.ui.widget.js.svn-base | 0 .../jquery.ui/plugins/jquery.ui.core.js | 0 .../jquery.ui/plugins/jquery.ui.mouse.js | 0 .../jquery.ui/plugins/jquery.ui.slider.js | 0 .../jquery.ui/plugins/jquery.ui.sortable.js | 0 .../jquery.ui/plugins/jquery.ui.tabs.js | 0 .../jquery.ui/plugins/jquery.ui.widget.js | 0 .../assets/vendor/jquery/css/datepicker.css | 0 .../assets/vendor/jquery/css/fullcalendar.css | 0 .../vendor/jquery/css/fullcalendar.print.css | 0 .../vendor/jquery/css/images/custom_b.png | Bin .../vendor/jquery/css/images/custom_bl.png | Bin .../vendor/jquery/css/images/custom_br.png | Bin .../vendor/jquery/css/images/custom_l.png | Bin .../vendor/jquery/css/images/custom_r.png | Bin .../vendor/jquery/css/images/custom_t.png | Bin .../vendor/jquery/css/images/custom_tl.png | Bin .../vendor/jquery/css/images/custom_tr.png | Bin .../vendor/jquery/css/images/datepicker_b.png | Bin .../jquery/css/images/datepicker_bl.png | Bin .../jquery/css/images/datepicker_br.png | Bin .../vendor/jquery/css/images/datepicker_l.png | Bin .../vendor/jquery/css/images/datepicker_r.png | Bin .../vendor/jquery/css/images/datepicker_t.png | Bin .../jquery/css/images/datepicker_tl.png | Bin .../jquery/css/images/datepicker_tr.png | Bin .../assets/vendor/jquery/css/images/field.png | Bin .../vendor/jquery/css/images/loading.gif | Bin .../jquery/css/images/ui-anim_basic_16x16.gif | Bin .../css/images/ui-bg_flat_0_aaaaaa_40x100.png | Bin .../images/ui-bg_flat_75_ffffff_40x100.png | Bin .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin .../images/ui-bg_glass_65_ffffff_1x400.png | Bin .../images/ui-bg_glass_75_dadada_1x400.png | Bin .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin .../images/ui-bg_glass_75_ffffff_1x400.png | Bin .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin .../ui-bg_inset-soft_95_fef1ec_1x100.png | Bin .../css/images/ui-icons_222222_256x240.png | Bin .../css/images/ui-icons_2e83ff_256x240.png | Bin .../css/images/ui-icons_454545_256x240.png | Bin .../css/images/ui-icons_888888_256x240.png | Bin .../css/images/ui-icons_cd0a0a_256x240.png | Bin .../vendor/jquery/css/jquery.datatables.css | 0 .../vendor/jquery/css/multidatepicker.css | 0 .../assets/vendor/jquery/jquery.js | 0 .../assets/vendor/jquery/plugins/.svn/entries | 0 .../.svn/text-base/fullcalendar.js.svn-base | 0 .../text-base/fullcalendar.min.js.svn-base | 0 .../text-base/jquery.autocomplete.js.svn-base | 0 .../jquery.cookies.2.2.0.min.js.svn-base | 0 .../text-base/jquery.csv.min.r34.js.svn-base | 0 .../jquery.dataTables.min.1.6.2.js.svn-base | 0 .../jquery.datepicker.1.8.js.svn-base | 0 .../jquery.dimensions.min.1.2.js.svn-base | 0 .../text-base/jquery.form.2.43.js.svn-base | 0 .../jquery.jeditable.min.1.7.1.js.svn-base | 0 .../jquery.pstrength-min.1.2.js.svn-base | 0 .../jquery.validate.min.1.7.js.svn-base | 0 .../text-base/multidatepicker.js.svn-base | 0 .../vendor/jquery/plugins/fullcalendar.js | 0 .../vendor/jquery/plugins/fullcalendar.min.js | 0 .../jquery/plugins/jquery.autocomplete.js | 0 .../plugins/jquery.cookies.2.2.0.min.js | 0 .../jquery/plugins/jquery.csv.min.r34.js | 0 .../plugins/jquery.dataTables.min.1.6.2.js | 0 .../jquery/plugins/jquery.datepicker.1.8.js | 0 .../plugins/jquery.dimensions.min.1.2.js | 0 .../vendor/jquery/plugins/jquery.form.2.43.js | 0 .../plugins/jquery.jeditable.min.1.7.1.js | 0 .../plugins/jquery.pstrength-min.1.2.js | 0 .../jquery/plugins/jquery.validate.min.1.7.js | 0 .../vendor/jquery/plugins/multidatepicker.js | 0 .../assets/vendor/jsmin-v1.1.1.php | 0 .../mail.oopzy.com/assets/vendor/json2.js | 0 .../mail.oopzy.com}/assets/vendor/oopzy.js | 1 + .../vendor/php.default.namespaced.min.js | 0 .../assets/vendor/require/.svn/entries | 0 .../.svn/text-base/require.js.svn-base | 0 .../vendor/require/plugins/.svn/entries | 0 .../plugins/.svn/text-base/async.js.svn-base | 0 .../plugins/.svn/text-base/google.js.svn-base | 0 .../plugins/.svn/text-base/use.js.svn-base | 0 .../assets/vendor/require/plugins/async.js | 0 .../assets/vendor/require/plugins/google.js | 0 .../assets/vendor/require/plugins/use.js | 0 .../assets/vendor/require/require.js | 0 .../assets/vendor/underscore.js | 0 .../mail.oopzy.com/assets/vendor/zepto.min.js | 0 .../web_roots/mail.oopzy.com/favicon.ico | Bin 0 -> 1150 bytes .../web_roots/mail.oopzy.com/index.php | 0 1221 files changed, 1189 insertions(+), 104464 deletions(-) delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com.2/web_apps/mail.oopzy.com/config/mongodb.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com.2/web_apps/mail.oopzy.com/controllers/api.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com.2/web_apps/mail.oopzy.com/controllers/welcome.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com.2/web_apps/mail.oopzy.com/views/welcome_message.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com.2/web_roots/mail.oopzy.com/assets/vendor/oopzy.js delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com.2/web_roots/mail.oopzy.com/favicon.ico delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/.htaccess delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/.production.htaccess delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/.staging.htaccess delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/controllers/main/about.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/controllers/main/get_messages.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/controllers/main/home_message.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/controllers/main/index.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/controllers/main/price_list.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/controllers/main/save_message.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/controllers/main/verify_token.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/helpers/utils.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/models/Oopzy_mail.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/models/Oopzy_model.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/PlancakeEmailParser/PlancakeEmailParser.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Attachment.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ByteStream/AbstractFilterableInputStream.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ByteStream/ArrayByteStream.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ByteStream/FileByteStream.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ByteStream/TemporaryFileByteStream.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReader.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReader/GenericFixedWidthReader.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReader/UsAsciiReader.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReader/Utf8Reader.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReaderFactory.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReaderFactory/SimpleCharacterReaderFactory.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterStream.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterStream/ArrayCharacterStream.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterStream/NgCharacterStream.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ConfigurableSpool.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/DependencyContainer.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/DependencyException.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/EmbeddedFile.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Encoder.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Encoder/Base64Encoder.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Encoder/QpEncoder.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Encoder/Rfc2231Encoder.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Encoding.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/CommandEvent.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/CommandListener.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/Event.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/EventDispatcher.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/EventListener.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/EventObject.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/ResponseEvent.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/ResponseListener.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/SendEvent.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/SendListener.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/SimpleEventDispatcher.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/TransportChangeEvent.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/TransportChangeListener.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/TransportExceptionEvent.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/TransportExceptionListener.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/FailoverTransport.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/FileSpool.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/FileStream.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Filterable.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Image.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/InputByteStream.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/IoException.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/KeyCache.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/KeyCache/ArrayKeyCache.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/KeyCache/DiskKeyCache.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/KeyCache/KeyCacheInputStream.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/KeyCache/NullKeyCache.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/KeyCache/SimpleKeyCacheInputStream.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/LoadBalancedTransport.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/MailTransport.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mailer.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mailer/ArrayRecipientIterator.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mailer/RecipientIterator.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/MemorySpool.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Message.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Attachment.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/CharsetObserver.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ContentEncoder.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/Base64ContentEncoder.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/NativeQpContentEncoder.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/PlainContentEncoder.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoder.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/RawContentEncoder.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/EmbeddedFile.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/EncodingObserver.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Grammar.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Header.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/HeaderEncoder.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/HeaderEncoder/Base64HeaderEncoder.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/HeaderEncoder/QpHeaderEncoder.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/HeaderFactory.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/HeaderSet.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/AbstractHeader.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/DateHeader.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/IdentificationHeader.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/MailboxHeader.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/PathHeader.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/UnstructuredHeader.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Message.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/MimeEntity.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/MimePart.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ParameterizedHeader.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/SimpleHeaderFactory.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/SimpleHeaderSet.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/SimpleMessage.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/SimpleMimeEntity.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/MimePart.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/NullTransport.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/OutputByteStream.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/AntiFloodPlugin.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/BandwidthMonitorPlugin.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Decorator/Replacements.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/DecoratorPlugin.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/ImpersonatePlugin.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Logger.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/LoggerPlugin.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Loggers/ArrayLogger.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Loggers/EchoLogger.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/MessageLogger.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Pop/Pop3Connection.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Pop/Pop3Exception.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/PopBeforeSmtpPlugin.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/RedirectingPlugin.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Reporter.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/ReporterPlugin.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Reporters/HitReporter.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Reporters/HtmlReporter.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Sleeper.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/ThrottlerPlugin.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Timer.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Preferences.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ReplacementFilterFactory.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/RfcComplianceException.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/SendmailTransport.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/SignedMessage.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signer.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/BodySigner.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/DKIMSigner.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/DomainKeySigner.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/HeaderSigner.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/PeclDKIMSigner.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/SMimeSigner.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/SmtpTransport.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Spool.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/SpoolTransport.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/StreamFilter.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/StreamFilters/ByteArrayReplacementFilter.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/StreamFilters/StringReplacementFilter.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/StreamFilters/StringReplacementFilterFactory.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/SwiftException.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/AbstractSmtpTransport.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/Auth/CramMd5Authenticator.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/Auth/LoginAuthenticator.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/Auth/PlainAuthenticator.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/AuthHandler.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/Authenticator.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/EsmtpHandler.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/EsmtpTransport.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/FailoverTransport.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/IoBuffer.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/LoadBalancedTransport.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/MailInvoker.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/MailTransport.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/NullTransport.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/SendmailTransport.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/SimpleMailInvoker.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/SmtpAgent.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/SpoolTransport.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/StreamBuffer.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/TransportException.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Validate.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/dependency_maps/cache_deps.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/dependency_maps/message_deps.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/dependency_maps/mime_deps.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/dependency_maps/transport_deps.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/mime_types.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/preferences.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/swift_init.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/swift_required.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/swift_required_pear.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/views/errors/404.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/app/views/mail.php delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/combined.css.php delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/combined.js.php delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/cssmin-v2.0.2.2.php delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/custom_b.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/custom_bl.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/custom_br.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/custom_l.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/custom_r.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/custom_t.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/custom_tl.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/custom_tr.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_b.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_bl.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_br.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_l.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_r.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_t.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_tl.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_tr.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/field.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/loading.gif delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/oopzy.png delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/oopzy_large.png delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/oopzybig.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-anim_basic_16x16.gif delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_flat_75_ffffff_40x100.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_glass_55_fbf9ee_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_glass_65_ffffff_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_glass_75_dadada_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_glass_75_e6e6e6_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_glass_75_ffffff_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_glass_95_fef1ec_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_highlight-soft_75_cccccc_1x100.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_inset-soft_95_fef1ec_1x100.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-icons_222222_256x240.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-icons_2e83ff_256x240.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-icons_454545_256x240.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-icons_888888_256x240.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-icons_cd0a0a_256x240.png delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/assets/images/zhenya.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/backbone.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap-responsive.css delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap-responsive.min.css delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap.css delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap.min.css delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/img/glyphicons-halflings-darkgreen.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/img/glyphicons-halflings-darkred.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/img/glyphicons-halflings-white.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/img/glyphicons-halflings.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/js/bootstrap.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/js/bootstrap.min.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/.svn/entries delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/.svn/text-base/jquery.ui.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/.svn/entries delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/.svn/text-base/jquery-ui-1.8.18.custom.css.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/.svn/text-base/jquery.ui.css.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/entries delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-anim_basic_16x16.gif.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_diagonals-thick_18_b81900_40x40.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_diagonals-thick_20_666666_40x40.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_flat_0_aaaaaa_40x100.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_flat_10_000000_40x100.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_flat_75_ffffff_40x100.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_glass_100_f6f6f6_1x400.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_glass_100_fdf5ce_1x400.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_glass_55_fbf9ee_1x400.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_glass_65_ffffff_1x400.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_glass_75_dadada_1x400.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_glass_75_e6e6e6_1x400.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_glass_75_ffffff_1x400.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_glass_95_fef1ec_1x400.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_gloss-wave_35_f6a828_500x100.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_highlight-soft_100_eeeeee_1x100.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_highlight-soft_75_cccccc_1x100.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_highlight-soft_75_ffe45c_1x100.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_inset-soft_95_fef1ec_1x100.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-icons_222222_256x240.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-icons_228ef1_256x240.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-icons_2e83ff_256x240.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-icons_454545_256x240.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-icons_888888_256x240.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-icons_cd0a0a_256x240.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-icons_ef8c08_256x240.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-icons_ffd27a_256x240.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-icons_ffffff_256x240.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-anim_basic_16x16.gif.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_diagonals-thick_18_b81900_40x40.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_diagonals-thick_20_666666_40x40.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_flat_0_aaaaaa_40x100.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_flat_10_000000_40x100.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_flat_75_ffffff_40x100.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_glass_100_f6f6f6_1x400.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_glass_100_fdf5ce_1x400.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_glass_55_fbf9ee_1x400.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_glass_65_ffffff_1x400.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_glass_75_dadada_1x400.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_glass_75_e6e6e6_1x400.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_glass_75_ffffff_1x400.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_glass_95_fef1ec_1x400.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_gloss-wave_35_f6a828_500x100.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_highlight-soft_100_eeeeee_1x100.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_highlight-soft_75_cccccc_1x100.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_highlight-soft_75_ffe45c_1x100.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_inset-soft_95_fef1ec_1x100.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-icons_222222_256x240.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-icons_228ef1_256x240.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-icons_2e83ff_256x240.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-icons_454545_256x240.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-icons_888888_256x240.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-icons_cd0a0a_256x240.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-icons_ef8c08_256x240.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-icons_ffd27a_256x240.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-icons_ffffff_256x240.png.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-anim_basic_16x16.gif delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_diagonals-thick_20_666666_40x40.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_flat_10_000000_40x100.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_flat_75_ffffff_40x100.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_glass_100_f6f6f6_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_glass_100_fdf5ce_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_glass_55_fbf9ee_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_glass_65_ffffff_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_glass_75_dadada_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_glass_75_e6e6e6_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_glass_75_ffffff_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_glass_95_fef1ec_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_inset-soft_95_fef1ec_1x100.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-icons_222222_256x240.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-icons_228ef1_256x240.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-icons_2e83ff_256x240.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-icons_454545_256x240.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-icons_888888_256x240.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-icons_cd0a0a_256x240.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-icons_ef8c08_256x240.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-icons_ffd27a_256x240.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-icons_ffffff_256x240.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/jquery-ui-1.8.18.custom.css delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/css/jquery.ui.css delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/images/.svn/entries delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/jquery.ui.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/entries delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.core.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.mouse.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.slider.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.sortable.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.tabs.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.widget.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.core.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.mouse.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.slider.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.sortable.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.tabs.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.widget.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/datepicker.css delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/fullcalendar.css delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/fullcalendar.print.css delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/custom_b.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/custom_bl.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/custom_br.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/custom_l.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/custom_r.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/custom_t.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/custom_tl.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/custom_tr.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_b.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_bl.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_br.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_l.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_r.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_t.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_tl.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_tr.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/field.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/loading.gif delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-anim_basic_16x16.gif delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_flat_75_ffffff_40x100.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_glass_55_fbf9ee_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_glass_65_ffffff_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_glass_75_dadada_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_glass_75_e6e6e6_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_glass_75_ffffff_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_glass_95_fef1ec_1x400.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_inset-soft_95_fef1ec_1x100.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-icons_222222_256x240.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-icons_2e83ff_256x240.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-icons_454545_256x240.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-icons_888888_256x240.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-icons_cd0a0a_256x240.png delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/jquery.datatables.css delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/multidatepicker.css delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/jquery.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/entries delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/fullcalendar.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/fullcalendar.min.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.autocomplete.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.cookies.2.2.0.min.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.csv.min.r34.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.dataTables.min.1.6.2.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.datepicker.1.8.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.dimensions.min.1.2.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.form.2.43.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.jeditable.min.1.7.1.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.pstrength-min.1.2.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.validate.min.1.7.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/multidatepicker.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/fullcalendar.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/fullcalendar.min.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.autocomplete.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.cookies.2.2.0.min.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.csv.min.r34.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.dataTables.min.1.6.2.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.datepicker.1.8.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.dimensions.min.1.2.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.form.2.43.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.jeditable.min.1.7.1.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.pstrength-min.1.2.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.validate.min.1.7.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/multidatepicker.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jsmin-v1.1.1.php delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/json2.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/php.default.namespaced.min.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/require/.svn/entries delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/require/.svn/text-base/require.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/require/plugins/.svn/entries delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/require/plugins/.svn/text-base/async.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/require/plugins/.svn/text-base/google.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/require/plugins/.svn/text-base/use.js.svn-base delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/require/plugins/async.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/require/plugins/google.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/require/plugins/use.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/require/require.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/underscore.js delete mode 100755 mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/zepto.min.js rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/license.txt (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/.htaccess (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/core/Benchmark.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/core/CodeIgniter.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/core/Common.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/core/Config.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/core/Controller.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/core/Exceptions.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/core/Hooks.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/core/Input.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/core/Lang.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/core/Loader.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/core/Model.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/core/Output.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/core/Router.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/core/Security.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/core/URI.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/core/Utf8.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/core/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/DB.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/DB_active_rec.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/DB_cache.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/DB_driver.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/DB_forge.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/DB_result.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/DB_utility.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/cubrid/cubrid_driver.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/cubrid/cubrid_forge.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/cubrid/cubrid_result.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/cubrid/cubrid_utility.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/cubrid/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/mssql/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/mssql/mssql_driver.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/mssql/mssql_forge.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/mssql/mssql_result.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/mssql/mssql_utility.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/mysql/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/mysql/mysql_driver.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/mysql/mysql_forge.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/mysql/mysql_result.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/mysql/mysql_utility.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/mysqli/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/mysqli/mysqli_driver.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/mysqli/mysqli_forge.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/mysqli/mysqli_result.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/mysqli/mysqli_utility.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/oci8/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/oci8/oci8_driver.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/oci8/oci8_forge.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/oci8/oci8_result.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/oci8/oci8_utility.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/odbc/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/odbc/odbc_driver.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/odbc/odbc_forge.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/odbc/odbc_result.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/odbc/odbc_utility.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/pdo/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/pdo/pdo_driver.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/pdo/pdo_forge.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/pdo/pdo_result.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/pdo/pdo_utility.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/postgre/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/postgre/postgre_driver.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/postgre/postgre_forge.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/postgre/postgre_result.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/postgre/postgre_utility.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/sqlite/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/sqlite/sqlite_driver.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/sqlite/sqlite_forge.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/sqlite/sqlite_result.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/sqlite/sqlite_utility.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/sqlsrv/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/sqlsrv/sqlsrv_driver.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/sqlsrv/sqlsrv_forge.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/sqlsrv/sqlsrv_result.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/drivers/sqlsrv/sqlsrv_utility.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/database/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/fonts/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/fonts/texb.ttf (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/array_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/captcha_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/cookie_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/date_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/directory_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/download_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/email_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/file_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/form_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/html_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/inflector_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/language_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/number_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/path_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/security_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/smiley_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/string_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/text_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/typography_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/url_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/helpers/xml_helper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/language/english/calendar_lang.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/language/english/date_lang.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/language/english/db_lang.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/language/english/email_lang.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/language/english/form_validation_lang.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/language/english/ftp_lang.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/language/english/imglib_lang.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/language/english/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/language/english/migration_lang.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/language/english/number_lang.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/language/english/profiler_lang.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/language/english/unit_test_lang.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/language/english/upload_lang.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/language/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Cache/Cache.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Cache/drivers/Cache_apc.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Cache/drivers/Cache_dummy.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Cache/drivers/Cache_file.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Cache/drivers/Cache_memcached.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Calendar.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Cart.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Driver.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Email.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Encrypt.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Form_validation.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Ftp.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Image_lib.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Javascript.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Log.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Migration.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Pagination.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Parser.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Profiler.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Session.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Sha1.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Table.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Trackback.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Typography.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Unit_test.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Upload.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/User_agent.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Xmlrpc.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Xmlrpcs.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/Zip.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/system/libraries/javascript/Jquery.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/changelog.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/database/active_record.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/database/caching.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/database/call_function.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/database/configuration.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/database/connecting.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/database/examples.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/database/fields.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/database/forge.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/database/helpers.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/database/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/database/queries.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/database/results.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/database/table_data.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/database/transactions.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/database/utilities.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/doc_style/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/doc_style/template.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/alternative_php.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/ancillary_classes.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/autoloader.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/caching.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/cli.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/common_functions.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/controllers.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/core_classes.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/creating_drivers.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/creating_libraries.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/credits.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/drivers.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/environments.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/errors.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/helpers.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/hooks.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/libraries.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/managing_apps.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/models.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/profiling.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/quick_reference.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/requirements.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/reserved_names.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/routing.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/security.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/styleguide.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/urls.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/general/views.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/array_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/captcha_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/cookie_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/date_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/directory_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/download_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/email_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/file_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/form_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/html_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/inflector_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/language_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/number_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/path_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/security_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/smiley_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/string_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/text_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/typography_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/url_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/helpers/xml_helper.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/images/appflowchart.gif (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/images/arrow.gif (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/images/ci_logo.jpg (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/images/ci_logo_flame.jpg (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/images/ci_quick_ref.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/images/codeigniter_1.7.1_helper_reference.pdf (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/images/codeigniter_1.7.1_helper_reference.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/images/codeigniter_1.7.1_library_reference.pdf (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/images/codeigniter_1.7.1_library_reference.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/images/file.gif (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/images/folder.gif (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/images/nav_bg_darker.jpg (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/images/nav_separator_darker.jpg (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/images/nav_toggle_darker.jpg (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/images/reactor-bullet.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/images/smile.gif (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/images/transparent.gif (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/downloads.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/troubleshooting.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_120.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_130.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_131.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_132.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_133.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_140.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_141.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_150.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_152.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_153.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_154.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_160.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_161.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_162.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_163.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_170.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_171.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_172.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_200.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_201.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_202.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_203.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_210.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_211.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_212.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_213.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrade_b11.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/installation/upgrading.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/benchmark.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/caching.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/calendar.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/cart.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/config.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/email.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/encryption.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/file_uploading.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/form_validation.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/ftp.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/image_lib.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/input.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/javascript.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/language.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/loader.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/migration.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/output.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/pagination.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/parser.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/security.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/sessions.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/table.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/trackback.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/typography.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/unit_testing.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/uri.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/user_agent.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/xmlrpc.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/libraries/zip.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/license.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/nav/hacks.txt (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/nav/moo.fx.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/nav/nav.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/nav/prototype.lite.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/nav/user_guide_menu.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/overview/appflow.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/overview/at_a_glance.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/overview/cheatsheets.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/overview/features.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/overview/getting_started.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/overview/goals.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/overview/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/overview/mvc.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/toc.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/tutorial/conclusion.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/tutorial/create_news_items.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/tutorial/hard_coded_pages.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/tutorial/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/tutorial/news_section.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/tutorial/static_pages.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/codeigniter2.1.3/user_guide/userguide.css (100%) delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/index.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/index.production.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/index.staging.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/kissmvc.php delete mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/kissmvc_core.php rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/.htaccess (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/config/autoload.php (98%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/config/config.php (86%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/config/constants.php (68%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/config/database.php (96%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/config/doctypes.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/config/foreign_chars.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/config/hooks.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/config/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/config/migration.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/config/mimes.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/config/profiler.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/config/rest.php (99%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/config/routes.php (90%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/config/smileys.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/config/user_agents.php (100%) create mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/web_apps/mail.oopzy.com/controllers/api.php rename mail.oopzy.com/code/var/mail.oopzy.com/{app/controllers/main => web_apps/mail.oopzy.com/controllers}/get_server_info.php (100%) create mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/web_apps/mail.oopzy.com/controllers/index.php create mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/web_apps/mail.oopzy.com/controllers/verify.php rename mail.oopzy.com/code/var/{mail.oopzy.com.2/web_apps/mail.oopzy.com/libraries => mail.oopzy.com/web_apps/mail.oopzy.com/core}/MY_Controller.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2/web_apps/mail.oopzy.com/libraries => mail.oopzy.com/web_apps/mail.oopzy.com/core}/MY_Email.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2/web_apps/mail.oopzy.com/libraries => mail.oopzy.com/web_apps/mail.oopzy.com/core}/MY_Loader.php (95%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2/web_apps/mail.oopzy.com/libraries => mail.oopzy.com/web_apps/mail.oopzy.com/core}/MY_Log.php (97%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2/web_apps/mail.oopzy.com/libraries => mail.oopzy.com/web_apps/mail.oopzy.com/core}/MY_Session.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/errors/error_404.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/errors/error_db.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/errors/error_general.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/errors/error_php.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/errors/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/helpers/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/language/english/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/language/index.html (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/Format.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/Mongo_db.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2/web_apps/mail.oopzy.com/libraries/Oopzy_model.php => mail.oopzy.com/web_apps/mail.oopzy.com/libraries/Oopzy_lib.php} (62%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/Oopzy_mail.php (71%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/REST_Controller.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/index.html (100%) create mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/web_apps/mail.oopzy.com/libraries/mdb.php rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/mongodb_readme (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/utils.php (85%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/PlancakeEmailParser/PlancakeEmailParser.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Attachment.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/ByteStream/AbstractFilterableInputStream.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/ByteStream/ArrayByteStream.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/ByteStream/FileByteStream.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/ByteStream/TemporaryFileByteStream.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/CharacterReader.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/CharacterReader/GenericFixedWidthReader.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/CharacterReader/UsAsciiReader.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/CharacterReader/Utf8Reader.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/CharacterReaderFactory.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/CharacterReaderFactory/SimpleCharacterReaderFactory.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/CharacterStream.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/CharacterStream/ArrayCharacterStream.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/CharacterStream/NgCharacterStream.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/ConfigurableSpool.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/DependencyContainer.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/DependencyException.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/EmbeddedFile.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Encoder.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Encoder/Base64Encoder.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Encoder/QpEncoder.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Encoder/Rfc2231Encoder.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Encoding.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Events/CommandEvent.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Events/CommandListener.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Events/Event.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Events/EventDispatcher.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Events/EventListener.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Events/EventObject.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Events/ResponseEvent.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Events/ResponseListener.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Events/SendEvent.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Events/SendListener.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Events/SimpleEventDispatcher.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Events/TransportChangeEvent.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Events/TransportChangeListener.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Events/TransportExceptionEvent.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Events/TransportExceptionListener.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/FailoverTransport.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/FileSpool.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/FileStream.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Filterable.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Image.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/InputByteStream.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/IoException.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/KeyCache.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/KeyCache/ArrayKeyCache.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/KeyCache/DiskKeyCache.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/KeyCache/KeyCacheInputStream.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/KeyCache/NullKeyCache.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/KeyCache/SimpleKeyCacheInputStream.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/LoadBalancedTransport.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/MailTransport.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mailer.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mailer/ArrayRecipientIterator.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mailer/RecipientIterator.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/MemorySpool.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Message.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/Attachment.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/CharsetObserver.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/ContentEncoder.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/Base64ContentEncoder.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/NativeQpContentEncoder.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/PlainContentEncoder.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoder.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/RawContentEncoder.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/EmbeddedFile.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/EncodingObserver.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/Grammar.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/Header.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/HeaderEncoder.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/HeaderEncoder/Base64HeaderEncoder.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/HeaderEncoder/QpHeaderEncoder.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/HeaderFactory.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/HeaderSet.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/Headers/AbstractHeader.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/Headers/DateHeader.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/Headers/IdentificationHeader.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/Headers/MailboxHeader.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/Headers/PathHeader.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/Headers/UnstructuredHeader.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/Message.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/MimeEntity.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/MimePart.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/ParameterizedHeader.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/SimpleHeaderFactory.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/SimpleHeaderSet.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/SimpleMessage.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Mime/SimpleMimeEntity.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/MimePart.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/NullTransport.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/OutputByteStream.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/AntiFloodPlugin.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/BandwidthMonitorPlugin.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/Decorator/Replacements.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/DecoratorPlugin.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/ImpersonatePlugin.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/Logger.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/LoggerPlugin.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/Loggers/ArrayLogger.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/Loggers/EchoLogger.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/MessageLogger.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/Pop/Pop3Connection.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/Pop/Pop3Exception.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/PopBeforeSmtpPlugin.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/RedirectingPlugin.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/Reporter.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/ReporterPlugin.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/Reporters/HitReporter.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/Reporters/HtmlReporter.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/Sleeper.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/ThrottlerPlugin.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Plugins/Timer.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Preferences.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/ReplacementFilterFactory.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/RfcComplianceException.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/SendmailTransport.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/SignedMessage.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Signer.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Signers/BodySigner.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Signers/DKIMSigner.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Signers/DomainKeySigner.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Signers/HeaderSigner.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Signers/PeclDKIMSigner.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Signers/SMimeSigner.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/SmtpTransport.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Spool.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/SpoolTransport.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/StreamFilter.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/StreamFilters/ByteArrayReplacementFilter.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/StreamFilters/StringReplacementFilter.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/StreamFilters/StringReplacementFilterFactory.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/SwiftException.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport/AbstractSmtpTransport.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport/Esmtp/Auth/CramMd5Authenticator.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport/Esmtp/Auth/LoginAuthenticator.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport/Esmtp/Auth/PlainAuthenticator.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport/Esmtp/AuthHandler.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport/Esmtp/Authenticator.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport/EsmtpHandler.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport/EsmtpTransport.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport/FailoverTransport.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport/IoBuffer.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport/LoadBalancedTransport.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport/MailInvoker.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport/MailTransport.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport/NullTransport.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport/SendmailTransport.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport/SimpleMailInvoker.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport/SmtpAgent.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport/SpoolTransport.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Transport/StreamBuffer.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/TransportException.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/classes/Swift/Validate.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/dependency_maps/cache_deps.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/dependency_maps/message_deps.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/dependency_maps/mime_deps.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/dependency_maps/transport_deps.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/mime_types.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/preferences.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/swift_init.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/swift_required.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/libraries/vendors/swift/lib/swift_required_pear.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/models/index.html (100%) rename mail.oopzy.com/code/var/mail.oopzy.com/{app => web_apps/mail.oopzy.com}/views/about.php (100%) rename mail.oopzy.com/code/var/mail.oopzy.com/{app => web_apps/mail.oopzy.com}/views/home_message.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_apps/mail.oopzy.com/views/index.html (100%) create mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/web_apps/mail.oopzy.com/views/index.php rename mail.oopzy.com/code/var/mail.oopzy.com/{app => web_apps/mail.oopzy.com}/views/price_list.php (100%) create mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/web_apps/mail.oopzy.com/views/templates/blank.php rename mail.oopzy.com/code/var/mail.oopzy.com/{app => web_apps/mail.oopzy.com}/views/templates/main.php (62%) rename mail.oopzy.com/code/var/mail.oopzy.com/{app => web_apps/mail.oopzy.com}/views/verified.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/.htaccess (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/combined.css.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/combined.js.php (97%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/cssmin-v2.0.2.2.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/custom_b.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/custom_bl.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/custom_br.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/custom_l.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/custom_r.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/custom_t.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/custom_tl.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/custom_tr.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/datepicker_b.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/datepicker_bl.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/datepicker_br.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/datepicker_l.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/datepicker_r.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/datepicker_t.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/datepicker_tl.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/datepicker_tr.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/field.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/loading.gif (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/oopzy.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/oopzy_large.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/oopzybig.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/ui-anim_basic_16x16.gif (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/ui-bg_flat_0_aaaaaa_40x100.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/ui-bg_flat_75_ffffff_40x100.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/ui-bg_glass_55_fbf9ee_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/ui-bg_glass_65_ffffff_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/ui-bg_glass_75_dadada_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/ui-bg_glass_75_e6e6e6_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/ui-bg_glass_75_ffffff_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/ui-bg_glass_95_fef1ec_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/ui-bg_highlight-soft_75_cccccc_1x100.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/ui-bg_inset-soft_95_fef1ec_1x100.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/ui-icons_222222_256x240.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/ui-icons_2e83ff_256x240.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/ui-icons_454545_256x240.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/ui-icons_888888_256x240.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/ui-icons_cd0a0a_256x240.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/images/zhenya.png (100%) create mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/web_roots/mail.oopzy.com/assets/jsapp/config_mail.js create mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/web_roots/mail.oopzy.com/assets/jsapp/index.html create mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/web_roots/mail.oopzy.com/assets/jsapp/mail.js rename mail.oopzy.com/code/var/{mail.oopzy.com.2/web_roots/mail.oopzy.com/assets/vendor/bootstrap/js/bootstrap-tab.js => mail.oopzy.com/web_roots/mail.oopzy.com/assets/jsapp/style.css} (100%) create mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/web_roots/mail.oopzy.com/assets/jsapp/templates_mail.js rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/backbone.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap-responsive.css (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap-responsive.min.css (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap.css (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap.min.css (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/bootstrap/img/glyphicons-halflings-darkgreen.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/bootstrap/img/glyphicons-halflings-darkred.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/bootstrap/img/glyphicons-halflings-white.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/bootstrap/img/glyphicons-halflings.png (100%) rename mail.oopzy.com/code/var/mail.oopzy.com/{ => web_roots/mail.oopzy.com}/assets/vendor/bootstrap/js/bootstrap-tab.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/bootstrap/js/bootstrap.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/bootstrap/js/bootstrap.min.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/.svn/entries (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/.svn/text-base/jquery.ui.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/.svn/entries (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/.svn/text-base/jquery-ui-1.8.18.custom.css.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/.svn/text-base/jquery.ui.css.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/entries (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-anim_basic_16x16.gif.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_diagonals-thick_18_b81900_40x40.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_diagonals-thick_20_666666_40x40.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_flat_0_aaaaaa_40x100.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_flat_10_000000_40x100.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_flat_75_ffffff_40x100.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_glass_100_f6f6f6_1x400.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_glass_100_fdf5ce_1x400.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_glass_55_fbf9ee_1x400.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_glass_65_ffffff_1x400.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_glass_75_dadada_1x400.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_glass_75_e6e6e6_1x400.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_glass_75_ffffff_1x400.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_glass_95_fef1ec_1x400.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_gloss-wave_35_f6a828_500x100.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_highlight-soft_100_eeeeee_1x100.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_highlight-soft_75_cccccc_1x100.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_highlight-soft_75_ffe45c_1x100.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-bg_inset-soft_95_fef1ec_1x100.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-icons_222222_256x240.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-icons_228ef1_256x240.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-icons_2e83ff_256x240.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-icons_454545_256x240.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-icons_888888_256x240.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-icons_cd0a0a_256x240.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-icons_ef8c08_256x240.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-icons_ffd27a_256x240.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/prop-base/ui-icons_ffffff_256x240.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-anim_basic_16x16.gif.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_diagonals-thick_18_b81900_40x40.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_diagonals-thick_20_666666_40x40.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_flat_0_aaaaaa_40x100.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_flat_10_000000_40x100.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_flat_75_ffffff_40x100.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_glass_100_f6f6f6_1x400.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_glass_100_fdf5ce_1x400.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_glass_55_fbf9ee_1x400.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_glass_65_ffffff_1x400.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_glass_75_dadada_1x400.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_glass_75_e6e6e6_1x400.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_glass_75_ffffff_1x400.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_glass_95_fef1ec_1x400.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_gloss-wave_35_f6a828_500x100.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_highlight-soft_100_eeeeee_1x100.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_highlight-soft_75_cccccc_1x100.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_highlight-soft_75_ffe45c_1x100.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-bg_inset-soft_95_fef1ec_1x100.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-icons_222222_256x240.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-icons_228ef1_256x240.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-icons_2e83ff_256x240.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-icons_454545_256x240.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-icons_888888_256x240.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-icons_cd0a0a_256x240.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-icons_ef8c08_256x240.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-icons_ffd27a_256x240.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/.svn/text-base/ui-icons_ffffff_256x240.png.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-anim_basic_16x16.gif (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_diagonals-thick_20_666666_40x40.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_flat_0_aaaaaa_40x100.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_flat_10_000000_40x100.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_flat_75_ffffff_40x100.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_glass_100_f6f6f6_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_glass_100_fdf5ce_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_glass_55_fbf9ee_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_glass_65_ffffff_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_glass_75_dadada_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_glass_75_e6e6e6_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_glass_75_ffffff_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_glass_95_fef1ec_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-bg_inset-soft_95_fef1ec_1x100.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-icons_222222_256x240.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-icons_228ef1_256x240.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-icons_2e83ff_256x240.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-icons_454545_256x240.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-icons_888888_256x240.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-icons_cd0a0a_256x240.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-icons_ef8c08_256x240.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-icons_ffd27a_256x240.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/images/ui-icons_ffffff_256x240.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/jquery-ui-1.8.18.custom.css (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/css/jquery.ui.css (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/images/.svn/entries (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/jquery.ui.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/entries (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.core.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.mouse.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.slider.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.sortable.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.tabs.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.widget.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.core.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.mouse.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.slider.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.sortable.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.tabs.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.widget.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/datepicker.css (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/fullcalendar.css (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/fullcalendar.print.css (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/custom_b.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/custom_bl.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/custom_br.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/custom_l.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/custom_r.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/custom_t.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/custom_tl.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/custom_tr.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_b.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_bl.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_br.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_l.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_r.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_t.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_tl.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_tr.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/field.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/loading.gif (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/ui-anim_basic_16x16.gif (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_flat_0_aaaaaa_40x100.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_flat_75_ffffff_40x100.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_glass_55_fbf9ee_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_glass_65_ffffff_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_glass_75_dadada_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_glass_75_e6e6e6_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_glass_75_ffffff_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_glass_95_fef1ec_1x400.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_inset-soft_95_fef1ec_1x100.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/ui-icons_222222_256x240.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/ui-icons_2e83ff_256x240.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/ui-icons_454545_256x240.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/ui-icons_888888_256x240.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/images/ui-icons_cd0a0a_256x240.png (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/jquery.datatables.css (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/css/multidatepicker.css (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/jquery.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/entries (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/fullcalendar.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/fullcalendar.min.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.autocomplete.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.cookies.2.2.0.min.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.csv.min.r34.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.dataTables.min.1.6.2.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.datepicker.1.8.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.dimensions.min.1.2.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.form.2.43.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.jeditable.min.1.7.1.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.pstrength-min.1.2.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.validate.min.1.7.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/multidatepicker.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/fullcalendar.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/fullcalendar.min.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.autocomplete.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.cookies.2.2.0.min.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.csv.min.r34.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.dataTables.min.1.6.2.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.datepicker.1.8.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.dimensions.min.1.2.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.form.2.43.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.jeditable.min.1.7.1.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.pstrength-min.1.2.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/jquery.validate.min.1.7.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jquery/plugins/multidatepicker.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/jsmin-v1.1.1.php (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/json2.js (100%) rename mail.oopzy.com/code/var/mail.oopzy.com/{ => web_roots/mail.oopzy.com}/assets/vendor/oopzy.js (99%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/php.default.namespaced.min.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/require/.svn/entries (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/require/.svn/text-base/require.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/require/plugins/.svn/entries (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/require/plugins/.svn/text-base/async.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/require/plugins/.svn/text-base/google.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/require/plugins/.svn/text-base/use.js.svn-base (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/require/plugins/async.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/require/plugins/google.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/require/plugins/use.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/require/require.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/underscore.js (100%) rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/assets/vendor/zepto.min.js (100%) create mode 100644 mail.oopzy.com/code/var/mail.oopzy.com/web_roots/mail.oopzy.com/favicon.ico rename mail.oopzy.com/code/var/{mail.oopzy.com.2 => mail.oopzy.com}/web_roots/mail.oopzy.com/index.php (100%) diff --git a/mail.oopzy.com/code/etc/apache2/sites-enabled/mail.oopzy.com b/mail.oopzy.com/code/etc/apache2/sites-enabled/mail.oopzy.com index 8fbfacc..3caa901 100644 --- a/mail.oopzy.com/code/etc/apache2/sites-enabled/mail.oopzy.com +++ b/mail.oopzy.com/code/etc/apache2/sites-enabled/mail.oopzy.com @@ -7,9 +7,9 @@ ServerAdmin webmaster@this.com AllowEncodedSlashes On DirectoryIndex index.php index.html - DocumentRoot /var/www/mail.oopzy.com - Alias /assets/ /var/www/mail.oopzy.com/assets/ - + DocumentRoot /var/www/mail.oopzy.com/web_roots/mail.oopzy.com + Alias /assets/ /var/www/mail.oopzy.com/web_roots/mail.oopzy.com/assets/ + Options All Options -Indexes AllowOverride All diff --git a/mail.oopzy.com/code/var/mail.oopzy.com.2/web_apps/mail.oopzy.com/config/mongodb.php b/mail.oopzy.com/code/var/mail.oopzy.com.2/web_apps/mail.oopzy.com/config/mongodb.php deleted file mode 100644 index 3e781db..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com.2/web_apps/mail.oopzy.com/config/mongodb.php +++ /dev/null @@ -1,28 +0,0 @@ -user = 'EE3F725D-0E40-4A8C-B096-BF5013C6FEEB'; - $this->token = '5A1E8030-1040-4DA3-91DA-F766C0037801'; - $this->output_format = 'json'; - $this->protocol = 'https'; - } - - /* - * gets redis server info for a hash - * args [hash] - */ - public function server_info_get(){} - - /* - * returns list of messages in box - * args box(box id), page(page number if more than one)] - */ - public function messages_get(){} - - /* - * get message - * args [message id] - */ - public function message_get(){} - - /* - * verifies email ownership for a box - * args [token char(32)] - */ - public function token_verify_get(){} - - /* - * delete messages by boxname - * args [box] - */ - public function messages_delete(){} - - /* - * delete message by id - * args[id] - */ - public function message_delete(){} - - /* - * Get new random mail box - */ - public function new_box_get(){} - - /* - * get new random box and optionally link it to email for a string rule - * args [forwardto string , allowfrom array of strings ] - */ - public function new_box_put(){} - - /* - * create link between box and email - * args box, email - */ - public function link_put(){} - - /* - * delete link between box and email - * args box, mailto - */ - public function delete_link_put(){} -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com.2/web_apps/mail.oopzy.com/controllers/welcome.php b/mail.oopzy.com/code/var/mail.oopzy.com.2/web_apps/mail.oopzy.com/controllers/welcome.php deleted file mode 100644 index 21bef43..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com.2/web_apps/mail.oopzy.com/controllers/welcome.php +++ /dev/null @@ -1,27 +0,0 @@ - - * @see http://codeigniter.com/user_guide/general/urls.html - */ - public function index() - { - $this->load->view('welcome_message'); - } -} - -/* End of file welcome.php */ -/* Location: ./application/controllers/welcome.php */ \ No newline at end of file diff --git a/mail.oopzy.com/code/var/mail.oopzy.com.2/web_apps/mail.oopzy.com/views/welcome_message.php b/mail.oopzy.com/code/var/mail.oopzy.com.2/web_apps/mail.oopzy.com/views/welcome_message.php deleted file mode 100644 index 0bf5a8d..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com.2/web_apps/mail.oopzy.com/views/welcome_message.php +++ /dev/null @@ -1,88 +0,0 @@ - - - - - Welcome to CodeIgniter - - - - - -
-

Welcome to CodeIgniter!

- -
-

The page you are looking at is being generated dynamically by CodeIgniter.

- -

If you would like to edit this page you'll find it located at:

- application/views/welcome_message.php - -

The corresponding controller for this page is found at:

- application/controllers/welcome.php - -

If you are exploring CodeIgniter for the very first time, you should start by reading the User Guide.

-
- - -
- - - \ No newline at end of file diff --git a/mail.oopzy.com/code/var/mail.oopzy.com.2/web_roots/mail.oopzy.com/assets/vendor/oopzy.js b/mail.oopzy.com/code/var/mail.oopzy.com.2/web_roots/mail.oopzy.com/assets/vendor/oopzy.js deleted file mode 100644 index 4b5eb18..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com.2/web_roots/mail.oopzy.com/assets/vendor/oopzy.js +++ /dev/null @@ -1,99 +0,0 @@ -function checkStrength(str){ - - var strength = 0; - var res = ''; - - var p = str.charAt(0); - debug(p); - //if it has one special character, increase strength str - if (p.match(/([!,%,&,@,#,$,^,*,?,_,~])/)){ - return 'invalidfirst'; //invalid first char - } - - if(!isValidEmail(str + '@domain.com')) - { - return 'invalid'; - } - - //if the password length is less than 6, return message. - if (str.length < 6) { - res = 'too_short'; - return res; - } - - //length is ok, lets continue. - - if (str.length > 5){ - strength += 1; - } - - - //if password contains both lower and uppercase characters, increase strength str - if (str.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)){ - strength += 1; - } - - //if it has numbers and characters, increase strength str - if (str.match(/([a-zA-Z])/) && str.match(/([0-9])/)){ - strength += 1; - } - - //if it has one special character, increase strength str - if (str.match(/([!,%,&,@,#,$,^,*,?,_,~])/)){ - strength += 1; - } - - //if it has two special characters, increase strength str - if (str.match(/(.*[!,%,&,@,#,$,^,*,?,_,~].*[!,%,&,@,#,$,^,*,?,_,~])/)){ - strength += 1; - } - - //now we have calculated strength str, we can return messages - - //if str is less than 2 - if (strength < 2 ) { - res = 'bad'; - } else if (strength == 2 ) { - res = 'lousy'; - } else { - res = 'good'; - } - - return res; - } - - function isValidEmail(emailAddress) - { - var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i); - return pattern.test(emailAddress); - }; - - function createCookie(name,value,days) - { - if (days) - { - var date = new Date(); - date.setTime(date.getTime()+(days*24*60*60*1000)); - var expires = "; expires="+date.toGMTString(); - } - else var expires = ""; - document.cookie = escape(name)+"="+escape(value)+expires+"; path=/"; - } - - function readCookie(name) - { - var nameEQ = escape(name) + "="; - var ca = document.cookie.split(';'); - for(var i=0;i < ca.length;i++) - { - var c = ca[i]; - while (c.charAt(0)==' ') c = c.substring(1,c.length); - if (c.indexOf(nameEQ) == 0) return unescape(c.substring(nameEQ.length,c.length)); - } - return ''; - } - - function eraseCookie(name) - { - createCookie(name,"",-1); - } diff --git a/mail.oopzy.com/code/var/mail.oopzy.com.2/web_roots/mail.oopzy.com/favicon.ico b/mail.oopzy.com/code/var/mail.oopzy.com.2/web_roots/mail.oopzy.com/favicon.ico deleted file mode 100644 index 6b0c23bbbca194aeb2151195227e10ab2714df73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198 pcmZQzU<5(|0VXiLfq{WR42U&=SOAC>fEXl?3otSL$0bEqaR6^q0!jb? diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/.htaccess b/mail.oopzy.com/code/var/mail.oopzy.com/.htaccess deleted file mode 100644 index 2d02298..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/.htaccess +++ /dev/null @@ -1,5 +0,0 @@ -RewriteEngine On -RewriteBase / - -RewriteCond $1 !^(index\.php|favicon\.ico|assets|_mmServerScripts|robots\.txt|healthcheck\.php) -RewriteRule ^(.*)$ /index.php/$1 [L] \ No newline at end of file diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/.production.htaccess b/mail.oopzy.com/code/var/mail.oopzy.com/.production.htaccess deleted file mode 100644 index 18ce39c..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/.production.htaccess +++ /dev/null @@ -1,9 +0,0 @@ -RewriteEngine On -RewriteBase / - -RewriteCond %{HTTP_HOST} !^www\.oopzy\.com$ [NC] -RewriteCond %{SERVER_PORT} !^443$ -RewriteRule ^(.*)$ http://www.oopzy.com/$1 [R=301,L] - -RewriteCond $1 !^(index\.php|favicon\.ico|assets|_mmServerScripts|robots\.txt|healthcheck\.php) -RewriteRule ^(.*)$ /index.php/$1 [L] \ No newline at end of file diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/.staging.htaccess b/mail.oopzy.com/code/var/mail.oopzy.com/.staging.htaccess deleted file mode 100644 index f81d225..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/.staging.htaccess +++ /dev/null @@ -1,8 +0,0 @@ -RewriteEngine On -RewriteBase / - -RewriteCond %{HTTP_HOST} ^oopzy\.com -RewriteRule ^(.*)$ http://www.oopzy.com/$1 [R=permanent,L] - -RewriteCond $1 !^(index\.php|favicon\.ico|assets|_mmServerScripts|robots\.txt|healthcheck\.php) -RewriteRule ^(.*)$ /index.php/$1 [L] \ No newline at end of file diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/controllers/main/about.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/controllers/main/about.php deleted file mode 100644 index a0a8506..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/controllers/main/about.php +++ /dev/null @@ -1,6 +0,0 @@ -connect($GLOBALS['REDISHOST'], $GLOBALS['REDISPORT']); - //first get keys for this box - $keys = $redis->keys($box . '@' . $GLOBALS['host_name'] . ':*'); - - //then all messages - $res = $redis->mGet($keys); - - //process messages - $result = array(); - - if($res) - { - foreach($res as $key=>$data) - { - $data = unserialize($data); - - if(isset($data['email'])) - { - $email = $data['email']; - - $dt = array(); - include_once(APP_PATH . 'vendors/PlancakeEmailParser/PlancakeEmailParser.php'); - $emailParser = new PlancakeEmailParser($email); - $dt['to'] = $emailParser->getTo(); - $dt['key'] = $keys[$key]; - $dt['from'] = $emailParser->getHeader('from'); - $dt['dt'] = $emailParser->getHeader('Date'); - $dt['subject'] = $emailParser->getSubject(); - $dt['debug'] = $data['debug']; - - $emailDeliveredToHeader = $emailParser->getHeader('Delivered-To'); - - $dt['body'] = $emailParser->getPlainBody(); - $result[] = $dt; - } - } - } - - if(isset($_REQUEST['callback'])) - { - echo $_REQUEST['callback'] . '('. json_encode($result) . ')'; - } - else - { - echo json_encode($result); - } - } - catch(Exception $e) - { - echo json_encode(array('error' => $e->getMessage())); - } - - die; - -} \ No newline at end of file diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/controllers/main/home_message.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/controllers/main/home_message.php deleted file mode 100644 index 9fa313e..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/controllers/main/home_message.php +++ /dev/null @@ -1,8 +0,0 @@ -$box, 'rememberme'=>$rememberme)); -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/controllers/main/price_list.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/controllers/main/price_list.php deleted file mode 100644 index 7692e1f..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/controllers/main/price_list.php +++ /dev/null @@ -1,8 +0,0 @@ -connect($GLOBALS['REDISHOST'], $GLOBALS['REDISPORT']); - - $oopzy = new Oopzy_model(); - - $message = ''; - - //see if link is established already and we can process - $res = $oopzy->is_linked($box, $toemail); - - if( !$res) - { - //send verification emai; - - $v = $oopzy->verify_email($toemail, $box); - - if(!$v) - { - $message = utils::get_message($oopzy->get_error()); - utils::error_echo_die($message); - } - - $message = utils::get_message('MSG_SAVE_MESSAGE_VERIFY'); - } - - $oopzy->do_remail_queue($ref, $box, $toemail); - - //set autoremail - //if box quality is low not much we can do box_quality($box) - //also here where we can set $key request - - } - catch(Exception $e) - { - $message = $e->getMessage(); - } - - utils::error_echo_die($message); - -} \ No newline at end of file diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/controllers/main/verify_token.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/controllers/main/verify_token.php deleted file mode 100644 index e38be87..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/controllers/main/verify_token.php +++ /dev/null @@ -1,28 +0,0 @@ -verify_token($obj)) - { - utils::error_echo_die($verify->get_error()); - } - - //TODO , Token redirect - - View::output_with_template('templates/main','verified',array('oopzybox'=>$verify->oopzybox,'to'=>$verify->to)); -} \ No newline at end of file diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/helpers/utils.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/helpers/utils.php deleted file mode 100644 index 9881d10..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/helpers/utils.php +++ /dev/null @@ -1,87 +0,0 @@ -connect($GLOBALS['REDISHOST'], $GLOBALS['REDISPORT']); - return $redis; - - } - catch(Exception $e) - { - throw new Exception($e->getMessage()); - } - } - - public function box_quality($box) - { - $quality = 0; - - //if the password length is less than 6, return message. - if (strlen($box) < 6) - { - return $quality; - } - - $result = filter_var($box . '@oopzy.com', FILTER_VALIDATE_EMAIL); - - if(empty($result)) - { - return -1; - } - - if (strlen($box) > 6) - { - $quality += 1; - } - - //if password contains both lower and uppercase characters, increase strength str - if (preg_match('/([a-z].*[A-Z])|([A-Z].*[a-z])/',$box)) - { - $quality += 1; - } - - //if it has numbers and characters, increase strength str - if (preg_match('/([a-zA-Z])/',$box) && preg_match('/([0-9])/',$box)) - { - $quality += 1; - } - - //if it has one special character, increase strength str - if (preg_match('/([!,%,&,#,$,^,*,?,_,~])/',$box)) - { - $quality += 1; - } - - //if it has two special characters, increase strength str - if (preg_match('/(.*[!,%,&,#,$,^,*,?,_,~].*[!,%,&,#,$,^,*,?,_,~])/',$box)) - { - $quality += 1; - } - return $quality; - } - - public function error_echo_die($error) - { - echo json_encode(array('error'=>$error)); - die; - } diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/models/Oopzy_mail.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/models/Oopzy_mail.php deleted file mode 100644 index 275590d..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/models/Oopzy_mail.php +++ /dev/null @@ -1,41 +0,0 @@ -setUsername($GLOBALS['SMTP_USER']) - ->setPassword($GLOBALS['SMTP_PASSWORD']); - - // Create the Mailer using your created Transport - $mailer = Swift_Mailer::newInstance($transport); - - // Create the message - $msg = Swift_Message::newInstance() - - // Give the message a subject - ->setSubject($subject) - - // Set the From address with an associative array - ->setFrom(array($from)) - - // Set the To addresses with an associative array - ->setTo(array($to)) - - // Give it a body - ->setBody($message); - - if(!empty($message_html)) - { - // And optionally an alternative body - $msg->addPart($message_html, 'text/html'); - } - - $res = $mailer->send($msg); - - return $res; - } -} \ No newline at end of file diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/models/Oopzy_model.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/models/Oopzy_model.php deleted file mode 100644 index 4cee129..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/models/Oopzy_model.php +++ /dev/null @@ -1,189 +0,0 @@ -oopzybox=''; - $this->to = ''; - } - public function do_remail_queue($ref, $box, $toemail) - { - - } - - /*void*/ function verify_email($obj,$box,$qualityonly=false) - { - - $this->error_message = ''; - - if(empty($obj)) - { - $this->error_message = utils::get_message('MSG_VERIFY_INVALID_EMAIL'); - return false; - } - - //if obj is email init verification - $result = filter_var($obj, FILTER_VALIDATE_EMAIL); - - if(empty($result)) - { - $this->error_message = utils::get_message('MSG_VERIFY_INVALID_EMAIL'); - return false; - } - - if(stristr($obj, $GLOBALS['host_name'])) - { - //we do not verify ourselves - $this->error_message =utils::get_message('MSG_VERIFY_NOSELF'); - return false; - } - - if(empty($box)) - { - $this->error_message = utils::get_message('MSG_VERIFY_INVALID_BOX'); - return false; - } - - if($qualityonly) - { - $quality = utils::box_quality($box); - - if($quality < 3) - { - $this->error_message = utils::get_message('MSG_VERIFY_LOW_BOX_QUALITY') . "[$quality]"; - return false; - } - } - - $token = md5($obj . $GLOBALS['PRIVATE_KEY']); //no need to seed with time - $url = 'http://' . $GLOBALS['www_host_name'] . '/verify_token/' . $token; - $message = sprintf(utils::get_message('MSG_VERIFY_BODY'), $obj, $url); - $message_html = sprintf(utils::get_message('MSG_VERIFY_BODY_HTML'), $obj, $url, $url); - $subject = utils::get_message('MSG_VERIFY_SUBJECT'); - - //set request to redis - - $redis = new Redis(); - - try{ - $redis->connect($GLOBALS['REDISHOST'], $GLOBALS['REDISPORT']); - $res_redis = $redis->setex($token, 60*10 , serialize( array('to'=>$obj,'for'=>$box)) ); //10 min ttl - - #mailer - require_once APP_PATH. 'models/Oopzy_mail.php'; - - $mailer = new Oopzy_Mail(); - - $res_email = $mailer->send_email($GLOBALS['mail_from'], $obj, $subject, $message,$message_html); - - if(!$res_email) - { - throw new Exception("SMTP Error [$res_email]"); - return false; - } - - if(!$res_redis) - { - throw new Exception("Redis Error [$res_redis]"); - return false; - } - - if($res_redis && $res_email) - { - return true; - } - - } - catch(Exception $e) - { - $this->error_message = 'Exception: ' . $e->getMessage(); - return false; - } - } - - public function verify_token($obj) - { - $this->error_message = ""; - - //lets see if it is token - if(strlen($obj)!=32) - { - //not token - $this->error_message = utils::get_message('MSG_VERIFY_INVALID_TOKEN'); - return false; - } - - $redis = new Redis(); - - try{ - $redis->connect($GLOBALS['REDISHOST'], $GLOBALS['REDISPORT']); - $res = $redis->get($obj ); - - - if($res) - { - $res = unserialize($res); - - if(isset($res['to']) && isset($res['for'])) - { - - $this->oopzybox = $res['for']; - $this->to = $res['to']; - - //otherwise start list - $key = self::create_link_key($res['for'] , $res['to']); - $res_redis = $redis->setex($key, 60*60*24*30 , 1 ); //set for 30 days - - return true; - } - } - - $this->error_message = utils::get_message('MSG_VERIFY_INVALID_TOKEN'); - return false; - - } - catch(Exception $e) - { - $this->error_message = 'Exception: ' . $e->getMessage(); - return false; - } - } - - public function get_error() - { - return $this->error_message; - } - - private function create_link_key($from, $to) - { - return md5($from . $to); - } - - public function is_linked($from, $to) - { - $key = self::create_link_key($from, $to); - - $redis = new Redis(); - - try{ - $redis->connect($GLOBALS['REDISHOST'], $GLOBALS['REDISPORT']); - $res = $redis->exists($key); - - if($res) - { - return true; - } - - return false; - - } - catch(Exception $e) - { - $this->error_message = 'Exception: ' . $e->getMessage(); - return false; - } - - } -} \ No newline at end of file diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/PlancakeEmailParser/PlancakeEmailParser.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/PlancakeEmailParser/PlancakeEmailParser.php deleted file mode 100644 index 7c27084..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/PlancakeEmailParser/PlancakeEmailParser.php +++ /dev/null @@ -1,337 +0,0 @@ -. * -* * -************************************************************************************** -* -* Valuable contributions by: -* - Chris -* -* **************************************************************************************/ - -/** - * Extracts the headers and the body of an email - * Obviously it can't extract the bcc header because it doesn't appear in the content - * of the email. - * - * N.B.: if you deal with non-English languages, we recommend you install the IMAP PHP extension: - * the Plancake PHP Email Parser will detect it and used it automatically for better results. - * - * For more info, check: - * https://github.com/plancake/official-library-php-email-parser - * - * @author dan - */ -class PlancakeEmailParser { - - const PLAINTEXT = 1; - const HTML = 2; - - /** - * - * @var boolean - */ - private $isImapExtensionAvailable = false; - - /** - * - * @var string - */ - private $emailRawContent; - - /** - * - * @var associative array - */ - protected $rawFields; - - /** - * - * @var array of string (each element is a line) - */ - protected $rawBodyLines; - - /** - * - * @param string $emailRawContent - */ - public function __construct($emailRawContent) { - $this->emailRawContent = $emailRawContent; - - $this->extractHeadersAndRawBody(); - - if (function_exists('imap_open')) { - $this->isImapExtensionAvailable = true; - } - } - - private function extractHeadersAndRawBody() - { - $lines = preg_split("/(\r?\n|\r)/", $this->emailRawContent); - - $currentHeader = ''; - - $i = 0; - foreach ($lines as $line) - { - if(self::isNewLine($line)) - { - // end of headers - $this->rawBodyLines = array_slice($lines, $i); - break; - } - - if ($this->isLineStartingWithPrintableChar($line)) // start of new header - { - preg_match('/([^:]+): ?(.*)$/', $line, $matches); - $newHeader = strtolower($matches[1]); - $value = $matches[2]; - $this->rawFields[$newHeader] = $value; - $currentHeader = $newHeader; - } - else // more lines related to the current header - { - if ($currentHeader) { // to prevent notice from empty lines - $this->rawFields[$currentHeader] .= substr($line, 1); - } - } - $i++; - } - } - - /** - * - * @return string (in UTF-8 format) - * @throws Exception if a subject header is not found - */ - public function getSubject() - { - if (!isset($this->rawFields['subject'])) - { - throw new Exception("Couldn't find the subject of the email"); - } - - $ret = ''; - - if ($this->isImapExtensionAvailable) { - foreach (imap_mime_header_decode($this->rawFields['subject']) as $h) { // subject can span into several lines - $charset = ($h->charset == 'default') ? 'US-ASCII' : $h->charset; - $ret .= iconv($charset, "UTF-8//TRANSLIT", $h->text); - } - } else { - $ret = utf8_encode(iconv_mime_decode($this->rawFields['subject'])); - } - - return $ret; - } - - /** - * - * @return array - */ - public function getCc() - { - if (!isset($this->rawFields['cc'])) - { - return array(); - } - - return explode(',', $this->rawFields['cc']); - } - - /** - * - * @return array - * @throws Exception if a to header is not found or if there are no recipient - */ - public function getTo() - { - if ( (!isset($this->rawFields['to'])) || (!count($this->rawFields['to']))) - { - throw new Exception("Couldn't find the recipients of the email"); - } - return explode(',', $this->rawFields['to']); - } - - /** - * return string - UTF8 encoded - * - * Example of an email body - * - --0016e65b5ec22721580487cb20fd - Content-Type: text/plain; charset=ISO-8859-1 - - Hi all. I am new to Android development. - Please help me. - - -- - My signature - - email: myemail@gmail.com - web: http://www.example.com - - --0016e65b5ec22721580487cb20fd - Content-Type: text/html; charset=ISO-8859-1 - */ - public function getBody($returnType=self::PLAINTEXT) - { - $body = ''; - $detectedContentType = false; - $contentTransferEncoding = null; - $charset = 'ASCII'; - $waitingForContentStart = true; - - if ($returnType == self::HTML) - $contentTypeRegex = '/^Content-Type: ?text\/html/i'; - else - $contentTypeRegex = '/^Content-Type: ?text\/plain/i'; - - // there could be more than one boundary - preg_match_all('!boundary=(.*)$!mi', $this->emailRawContent, $matches); - $boundaries = $matches[1]; - // sometimes boundaries are delimited by quotes - we want to remove them - foreach($boundaries as $i => $v) { - $boundaries[$i] = str_replace(array("'", '"'), '', $v); - } - - foreach ($this->rawBodyLines as $line) { - if (!$detectedContentType) { - - if (preg_match($contentTypeRegex, $line, $matches)) { - $detectedContentType = true; - } - - if(preg_match('/charset=(.*)/i', $line, $matches)) { - $charset = strtoupper(trim($matches[1], '"')); - } - - } else if ($detectedContentType && $waitingForContentStart) { - - if(preg_match('/charset=(.*)/i', $line, $matches)) { - $charset = strtoupper(trim($matches[1], '"')); - } - - if ($contentTransferEncoding == null && preg_match('/^Content-Transfer-Encoding: ?(.*)/i', $line, $matches)) { - $contentTransferEncoding = $matches[1]; - } - - if (self::isNewLine($line)) { - $waitingForContentStart = false; - } - } else { // ($detectedContentType && !$waitingForContentStart) - // collecting the actual content until we find the delimiter - - // if the delimited is AAAAA, the line will be --AAAAA - that's why we use substr - if (is_array($boundaries)) { - if (in_array(substr($line, 2), $boundaries)) { // found the delimiter - break; - } - } - $body .= $line . "\n"; - } - } - - if (!$detectedContentType) - { - // if here, we missed the text/plain content-type (probably it was - // in the header), thus we assume the whole body is what we are after - $body = implode("\n", $this->rawBodyLines); - } - - // removing trailing new lines - $body = preg_replace('/((\r?\n)*)$/', '', $body); - - if ($contentTransferEncoding == 'base64') - $body = base64_decode($body); - else if ($contentTransferEncoding == 'quoted-printable') - $body = quoted_printable_decode($body); - - if($charset != 'UTF-8') { - // FORMAT=FLOWED, despite being popular in emails, it is not - // supported by iconv - $charset = str_replace("FORMAT=FLOWED", "", $charset); - - $body = iconv($charset, 'UTF-8//TRANSLIT', $body); - - if ($body === FALSE) { // iconv returns FALSE on failure - $body = utf8_encode($body); - } - } - - return $body; - } - - /** - * @return string - UTF8 encoded - * - */ - public function getPlainBody() - { - return $this->getBody(self::PLAINTEXT); - } - - /** - * return string - UTF8 encoded - */ - public function getHTMLBody() - { - return $this->getBody(self::HTML); - } - - /** - * N.B.: if the header doesn't exist an empty string is returned - * - * @param string $headerName - the header we want to retrieve - * @return string - the value of the header - */ - public function getHeader($headerName) - { - $headerName = strtolower($headerName); - - if (isset($this->rawFields[$headerName])) - { - return $this->rawFields[$headerName]; - } - return ''; - } - - /** - * - * @param string $line - * @return boolean - */ - public static function isNewLine($line) - { - $line = str_replace("\r", '', $line); - $line = str_replace("\n", '', $line); - - return (strlen($line) === 0); - } - - /** - * - * @param string $line - * @return boolean - */ - private function isLineStartingWithPrintableChar($line) - { - return preg_match('/^[A-Za-z]/', $line); - } -} -?> diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift.php deleted file mode 100644 index f113ca0..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift.php +++ /dev/null @@ -1,81 +0,0 @@ -createDependenciesFor('mime.attachment') - ); - - $this->setBody($data); - $this->setFilename($filename); - if ($contentType) { - $this->setContentType($contentType); - } - } - - /** - * Create a new Attachment. - * - * @param string|Swift_OutputByteStream $data - * @param string $filename - * @param string $contentType - * - * @return Swift_Mime_Attachment - */ - public static function newInstance($data = null, $filename = null, $contentType = null) - { - return new self($data, $filename, $contentType); - } - - /** - * Create a new Attachment from a filesystem path. - * - * @param string $path - * @param string $contentType optional - * - * @return Swift_Mime_Attachment - */ - public static function fromPath($path, $contentType = null) - { - return self::newInstance()->setFile( - new Swift_ByteStream_FileByteStream($path), - $contentType - ); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ByteStream/AbstractFilterableInputStream.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ByteStream/AbstractFilterableInputStream.php deleted file mode 100644 index 87b6428..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ByteStream/AbstractFilterableInputStream.php +++ /dev/null @@ -1,183 +0,0 @@ -_filters[$key] = $filter; - } - - /** - * Remove an already present StreamFilter based on its $key. - * - * @param string $key - */ - public function removeFilter($key) - { - unset($this->_filters[$key]); - } - - /** - * Writes $bytes to the end of the stream. - * - * @param string $bytes - * - * @return integer - * - * @throws Swift_IoException - */ - public function write($bytes) - { - $this->_writeBuffer .= $bytes; - foreach ($this->_filters as $filter) { - if ($filter->shouldBuffer($this->_writeBuffer)) { - return; - } - } - $this->_doWrite($this->_writeBuffer); - - return ++$this->_sequence; - } - - /** - * For any bytes that are currently buffered inside the stream, force them - * off the buffer. - * - * @throws Swift_IoException - */ - public function commit() - { - $this->_doWrite($this->_writeBuffer); - } - - /** - * Attach $is to this stream. - * - * The stream acts as an observer, receiving all data that is written. - * All {@link write()} and {@link flushBuffers()} operations will be mirrored. - * - * @param Swift_InputByteStream $is - */ - public function bind(Swift_InputByteStream $is) - { - $this->_mirrors[] = $is; - } - - /** - * Remove an already bound stream. - * - * If $is is not bound, no errors will be raised. - * If the stream currently has any buffered data it will be written to $is - * before unbinding occurs. - * - * @param Swift_InputByteStream $is - */ - public function unbind(Swift_InputByteStream $is) - { - foreach ($this->_mirrors as $k => $stream) { - if ($is === $stream) { - if ($this->_writeBuffer !== '') { - $stream->write($this->_filter($this->_writeBuffer)); - } - unset($this->_mirrors[$k]); - } - } - } - - /** - * Flush the contents of the stream (empty it) and set the internal pointer - * to the beginning. - * - * @throws Swift_IoException - */ - public function flushBuffers() - { - if ($this->_writeBuffer !== '') { - $this->_doWrite($this->_writeBuffer); - } - $this->_flush(); - - foreach ($this->_mirrors as $stream) { - $stream->flushBuffers(); - } - } - - // -- Private methods - - /** Run $bytes through all filters */ - private function _filter($bytes) - { - foreach ($this->_filters as $filter) { - $bytes = $filter->filter($bytes); - } - - return $bytes; - } - - /** Just write the bytes to the stream */ - private function _doWrite($bytes) - { - $this->_commit($this->_filter($bytes)); - - foreach ($this->_mirrors as $stream) { - $stream->write($bytes); - } - - $this->_writeBuffer = ''; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ByteStream/ArrayByteStream.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ByteStream/ArrayByteStream.php deleted file mode 100644 index 5c16248..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ByteStream/ArrayByteStream.php +++ /dev/null @@ -1,186 +0,0 @@ -_array = $stack; - $this->_arraySize = count($stack); - } elseif (is_string($stack)) { - $this->write($stack); - } else { - $this->_array = array(); - } - } - - /** - * Reads $length bytes from the stream into a string and moves the pointer - * through the stream by $length. - * - * If less bytes exist than are requested the - * remaining bytes are given instead. If no bytes are remaining at all, boolean - * false is returned. - * - * @param integer $length - * - * @return string - */ - public function read($length) - { - if ($this->_offset == $this->_arraySize) { - return false; - } - - // Don't use array slice - $end = $length + $this->_offset; - $end = $this->_arraySize<$end - ?$this->_arraySize - :$end; - $ret = ''; - for (; $this->_offset < $end; ++$this->_offset) { - $ret .= $this->_array[$this->_offset]; - } - - return $ret; - } - - /** - * Writes $bytes to the end of the stream. - * - * @param string $bytes - */ - public function write($bytes) - { - $to_add = str_split($bytes); - foreach ($to_add as $value) { - $this->_array[] = $value; - } - $this->_arraySize = count($this->_array); - - foreach ($this->_mirrors as $stream) { - $stream->write($bytes); - } - } - - /** - * Not used. - */ - public function commit() - { - } - - /** - * Attach $is to this stream. - * - * The stream acts as an observer, receiving all data that is written. - * All {@link write()} and {@link flushBuffers()} operations will be mirrored. - * - * @param Swift_InputByteStream $is - */ - public function bind(Swift_InputByteStream $is) - { - $this->_mirrors[] = $is; - } - - /** - * Remove an already bound stream. - * - * If $is is not bound, no errors will be raised. - * If the stream currently has any buffered data it will be written to $is - * before unbinding occurs. - * - * @param Swift_InputByteStream $is - */ - public function unbind(Swift_InputByteStream $is) - { - foreach ($this->_mirrors as $k => $stream) { - if ($is === $stream) { - unset($this->_mirrors[$k]); - } - } - } - - /** - * Move the internal read pointer to $byteOffset in the stream. - * - * @param integer $byteOffset - * - * @return boolean - */ - public function setReadPointer($byteOffset) - { - if ($byteOffset > $this->_arraySize) { - $byteOffset = $this->_arraySize; - } elseif ($byteOffset < 0) { - $byteOffset = 0; - } - - $this->_offset = $byteOffset; - } - - /** - * Flush the contents of the stream (empty it) and set the internal pointer - * to the beginning. - */ - public function flushBuffers() - { - $this->_offset = 0; - $this->_array = array(); - $this->_arraySize = 0; - - foreach ($this->_mirrors as $stream) { - $stream->flushBuffers(); - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ByteStream/FileByteStream.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ByteStream/FileByteStream.php deleted file mode 100644 index dd666b3..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ByteStream/FileByteStream.php +++ /dev/null @@ -1,222 +0,0 @@ -_path = $path; - $this->_mode = $writable ? 'w+b' : 'rb'; - - if (function_exists('get_magic_quotes_runtime') && @get_magic_quotes_runtime() == 1) { - $this->_quotes = true; - } - } - - /** - * Get the complete path to the file. - * - * @return string - */ - public function getPath() - { - return $this->_path; - } - - /** - * Reads $length bytes from the stream into a string and moves the pointer - * through the stream by $length. - * - * If less bytes exist than are requested the - * remaining bytes are given instead. If no bytes are remaining at all, boolean - * false is returned. - * - * @param integer $length - * - * @return string - * - * @throws Swift_IoException - */ - public function read($length) - { - $fp = $this->_getReadHandle(); - if (!feof($fp)) { - if ($this->_quotes) { - ini_set('magic_quotes_runtime', 0); - } - $bytes = fread($fp, $length); - if ($this->_quotes) { - ini_set('magic_quotes_runtime', 1); - } - $this->_offset = ftell($fp); - - return $bytes; - } else { - $this->_resetReadHandle(); - - return false; - } - } - - /** - * Move the internal read pointer to $byteOffset in the stream. - * - * @param integer $byteOffset - * - * @return boolean - */ - public function setReadPointer($byteOffset) - { - if (isset($this->_reader)) { - $this->_seekReadStreamToPosition($byteOffset); - } - $this->_offset = $byteOffset; - } - - // -- Private methods - - /** Just write the bytes to the file */ - protected function _commit($bytes) - { - fwrite($this->_getWriteHandle(), $bytes); - $this->_resetReadHandle(); - } - - /** Not used */ - protected function _flush() - { - } - - /** Get the resource for reading */ - private function _getReadHandle() - { - if (!isset($this->_reader)) { - if (!$this->_reader = fopen($this->_path, 'rb')) { - throw new Swift_IoException( - 'Unable to open file for reading [' . $this->_path . ']' - ); - } - if ($this->_offset <> 0) { - $this->_getReadStreamSeekableStatus(); - $this->_seekReadStreamToPosition($this->_offset); - } - } - - return $this->_reader; - } - - /** Get the resource for writing */ - private function _getWriteHandle() - { - if (!isset($this->_writer)) { - if (!$this->_writer = fopen($this->_path, $this->_mode)) { - throw new Swift_IoException( - 'Unable to open file for writing [' . $this->_path . ']' - ); - } - } - - return $this->_writer; - } - - /** Force a reload of the resource for reading */ - private function _resetReadHandle() - { - if (isset($this->_reader)) { - fclose($this->_reader); - $this->_reader = null; - } - } - - /** Check if ReadOnly Stream is seekable */ - private function _getReadStreamSeekableStatus() - { - $metas = stream_get_meta_data($this->_reader); - $this->_seekable = $metas['seekable']; - } - - /** Streams in a readOnly stream ensuring copy if needed */ - private function _seekReadStreamToPosition($offset) - { - if ($this->_seekable===null) { - $this->_getReadStreamSeekableStatus(); - } - if ($this->_seekable === false) { - $currentPos = ftell($this->_reader); - if ($currentPos<$offset) { - $toDiscard = $offset-$currentPos; - fread($this->_reader, $toDiscard); - - return; - } - $this->_copyReadStream(); - } - fseek($this->_reader, $offset, SEEK_SET); - } - - /** Copy a readOnly Stream to ensure seekability */ - private function _copyReadStream() - { - if ($tmpFile = fopen('php://temp/maxmemory:4096', 'w+b')) { - /* We have opened a php:// Stream Should work without problem */ - } elseif (function_exists('sys_get_temp_dir') && is_writable(sys_get_temp_dir()) && ($tmpFile = tmpfile())) { - /* We have opened a tmpfile */ - } else { - throw new Swift_IoException('Unable to copy the file to make it seekable, sys_temp_dir is not writable, php://memory not available'); - } - $currentPos = ftell($this->_reader); - fclose($this->_reader); - $source = fopen($this->_path, 'rb'); - if (!$source) { - throw new Swift_IoException('Unable to open file for copying [' . $this->_path . ']'); - } - fseek($tmpFile, 0, SEEK_SET); - while (!feof($source)) { - fwrite($tmpFile, fread($source, 4096)); - } - fseek($tmpFile, $currentPos, SEEK_SET); - fclose($source); - $this->_reader = $tmpFile; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ByteStream/TemporaryFileByteStream.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ByteStream/TemporaryFileByteStream.php deleted file mode 100644 index f35f885..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ByteStream/TemporaryFileByteStream.php +++ /dev/null @@ -1,44 +0,0 @@ -getPath())) === false) { - throw new Swift_IoException('Failed to get temporary file content.'); - } - - return $content; - } - - public function __destruct() - { - if (file_exists($this->getPath())) { - @unlink($this->getPath()); - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReader.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReader.php deleted file mode 100644 index df64d8a..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReader.php +++ /dev/null @@ -1,69 +0,0 @@ - - */ -interface Swift_CharacterReader -{ - const MAP_TYPE_INVALID = 0x01; - const MAP_TYPE_FIXED_LEN = 0x02; - const MAP_TYPE_POSITIONS = 0x03; - - /** - * Returns the complete character map - * - * @param string $string - * @param integer $startOffset - * @param array $currentMap - * @param mixed $ignoredChars - * - * @return integer - */ - public function getCharPositions($string, $startOffset, &$currentMap, &$ignoredChars); - - /** - * Returns the mapType, see constants. - * - * @return integer - */ - public function getMapType(); - - /** - * Returns an integer which specifies how many more bytes to read. - * - * A positive integer indicates the number of more bytes to fetch before invoking - * this method again. - * - * A value of zero means this is already a valid character. - * A value of -1 means this cannot possibly be a valid character. - * - * @param integer[] $bytes - * @param integer $size - * - * @return integer - */ - public function validateByteSequence($bytes, $size); - - /** - * Returns the number of bytes which should be read to start each character. - * - * For fixed width character sets this should be the number of octets-per-character. - * For multibyte character sets this will probably be 1. - * - * @return integer - */ - public function getInitialByteSize(); -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReader/GenericFixedWidthReader.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReader/GenericFixedWidthReader.php deleted file mode 100644 index 49d7398..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReader/GenericFixedWidthReader.php +++ /dev/null @@ -1,99 +0,0 @@ - - */ -class Swift_CharacterReader_GenericFixedWidthReader implements Swift_CharacterReader -{ - /** - * The number of bytes in a single character. - * - * @var integer - */ - private $_width; - - /** - * Creates a new GenericFixedWidthReader using $width bytes per character. - * - * @param integer $width - */ - public function __construct($width) - { - $this->_width = $width; - } - - /** - * Returns the complete character map. - * - * @param string $string - * @param integer $startOffset - * @param array $currentMap - * @param mixed $ignoredChars - * - * @return integer - */ - public function getCharPositions($string, $startOffset, &$currentMap, &$ignoredChars) - { - $strlen = strlen($string); - // % and / are CPU intensive, so, maybe find a better way - $ignored = $strlen % $this->_width; - $ignoredChars = substr($string, - $ignored); - $currentMap = $this->_width; - - return ($strlen - $ignored) / $this->_width; - } - - /** - * Returns the mapType. - * - * @return integer - */ - public function getMapType() - { - return self::MAP_TYPE_FIXED_LEN; - } - - /** - * Returns an integer which specifies how many more bytes to read. - * - * A positive integer indicates the number of more bytes to fetch before invoking - * this method again. - * - * A value of zero means this is already a valid character. - * A value of -1 means this cannot possibly be a valid character. - * - * @param string $bytes - * @param integer $size - * - * @return integer - */ - public function validateByteSequence($bytes, $size) - { - $needed = $this->_width - $size; - - return ($needed > -1) ? $needed : -1; - } - - /** - * Returns the number of bytes which should be read to start each character. - * - * @return integer - */ - public function getInitialByteSize() - { - return $this->_width; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReader/UsAsciiReader.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReader/UsAsciiReader.php deleted file mode 100644 index 18f3b04..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReader/UsAsciiReader.php +++ /dev/null @@ -1,85 +0,0 @@ -"\x07F") { // Invalid char - $currentMap[$i+$startOffset]=$string[$i]; - } - } - - return $strlen; - } - - /** - * Returns mapType - * - * @return integer mapType - */ - public function getMapType() - { - return self::MAP_TYPE_INVALID; - } - - /** - * Returns an integer which specifies how many more bytes to read. - * - * A positive integer indicates the number of more bytes to fetch before invoking - * this method again. - * A value of zero means this is already a valid character. - * A value of -1 means this cannot possibly be a valid character. - * - * @param string $bytes - * @param integer $size - * - * @return integer - */ - public function validateByteSequence($bytes, $size) - { - $byte = reset($bytes); - if (1 == count($bytes) && $byte >= 0x00 && $byte <= 0x7F) { - return 0; - } else { - return -1; - } - } - - /** - * Returns the number of bytes which should be read to start each character. - * - * @return integer - */ - public function getInitialByteSize() - { - return 1; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReader/Utf8Reader.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReader/Utf8Reader.php deleted file mode 100644 index dd3a60f..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReader/Utf8Reader.php +++ /dev/null @@ -1,181 +0,0 @@ - - */ -class Swift_CharacterReader_Utf8Reader implements Swift_CharacterReader -{ - /** Pre-computed for optimization */ - private static $length_map=array( - //N=0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, //0x0N - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, //0x1N - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, //0x2N - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, //0x3N - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, //0x4N - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, //0x5N - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, //0x6N - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, //0x7N - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, //0x8N - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, //0x9N - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, //0xAN - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, //0xBN - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, //0xCN - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, //0xDN - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, //0xEN - 4,4,4,4,4,4,4,4,5,5,5,5,6,6,0,0 //0xFN - ); - - private static $s_length_map=array( - "\x00"=>1, "\x01"=>1, "\x02"=>1, "\x03"=>1, "\x04"=>1, "\x05"=>1, "\x06"=>1, "\x07"=>1, - "\x08"=>1, "\x09"=>1, "\x0a"=>1, "\x0b"=>1, "\x0c"=>1, "\x0d"=>1, "\x0e"=>1, "\x0f"=>1, - "\x10"=>1, "\x11"=>1, "\x12"=>1, "\x13"=>1, "\x14"=>1, "\x15"=>1, "\x16"=>1, "\x17"=>1, - "\x18"=>1, "\x19"=>1, "\x1a"=>1, "\x1b"=>1, "\x1c"=>1, "\x1d"=>1, "\x1e"=>1, "\x1f"=>1, - "\x20"=>1, "\x21"=>1, "\x22"=>1, "\x23"=>1, "\x24"=>1, "\x25"=>1, "\x26"=>1, "\x27"=>1, - "\x28"=>1, "\x29"=>1, "\x2a"=>1, "\x2b"=>1, "\x2c"=>1, "\x2d"=>1, "\x2e"=>1, "\x2f"=>1, - "\x30"=>1, "\x31"=>1, "\x32"=>1, "\x33"=>1, "\x34"=>1, "\x35"=>1, "\x36"=>1, "\x37"=>1, - "\x38"=>1, "\x39"=>1, "\x3a"=>1, "\x3b"=>1, "\x3c"=>1, "\x3d"=>1, "\x3e"=>1, "\x3f"=>1, - "\x40"=>1, "\x41"=>1, "\x42"=>1, "\x43"=>1, "\x44"=>1, "\x45"=>1, "\x46"=>1, "\x47"=>1, - "\x48"=>1, "\x49"=>1, "\x4a"=>1, "\x4b"=>1, "\x4c"=>1, "\x4d"=>1, "\x4e"=>1, "\x4f"=>1, - "\x50"=>1, "\x51"=>1, "\x52"=>1, "\x53"=>1, "\x54"=>1, "\x55"=>1, "\x56"=>1, "\x57"=>1, - "\x58"=>1, "\x59"=>1, "\x5a"=>1, "\x5b"=>1, "\x5c"=>1, "\x5d"=>1, "\x5e"=>1, "\x5f"=>1, - "\x60"=>1, "\x61"=>1, "\x62"=>1, "\x63"=>1, "\x64"=>1, "\x65"=>1, "\x66"=>1, "\x67"=>1, - "\x68"=>1, "\x69"=>1, "\x6a"=>1, "\x6b"=>1, "\x6c"=>1, "\x6d"=>1, "\x6e"=>1, "\x6f"=>1, - "\x70"=>1, "\x71"=>1, "\x72"=>1, "\x73"=>1, "\x74"=>1, "\x75"=>1, "\x76"=>1, "\x77"=>1, - "\x78"=>1, "\x79"=>1, "\x7a"=>1, "\x7b"=>1, "\x7c"=>1, "\x7d"=>1, "\x7e"=>1, "\x7f"=>1, - "\x80"=>0, "\x81"=>0, "\x82"=>0, "\x83"=>0, "\x84"=>0, "\x85"=>0, "\x86"=>0, "\x87"=>0, - "\x88"=>0, "\x89"=>0, "\x8a"=>0, "\x8b"=>0, "\x8c"=>0, "\x8d"=>0, "\x8e"=>0, "\x8f"=>0, - "\x90"=>0, "\x91"=>0, "\x92"=>0, "\x93"=>0, "\x94"=>0, "\x95"=>0, "\x96"=>0, "\x97"=>0, - "\x98"=>0, "\x99"=>0, "\x9a"=>0, "\x9b"=>0, "\x9c"=>0, "\x9d"=>0, "\x9e"=>0, "\x9f"=>0, - "\xa0"=>0, "\xa1"=>0, "\xa2"=>0, "\xa3"=>0, "\xa4"=>0, "\xa5"=>0, "\xa6"=>0, "\xa7"=>0, - "\xa8"=>0, "\xa9"=>0, "\xaa"=>0, "\xab"=>0, "\xac"=>0, "\xad"=>0, "\xae"=>0, "\xaf"=>0, - "\xb0"=>0, "\xb1"=>0, "\xb2"=>0, "\xb3"=>0, "\xb4"=>0, "\xb5"=>0, "\xb6"=>0, "\xb7"=>0, - "\xb8"=>0, "\xb9"=>0, "\xba"=>0, "\xbb"=>0, "\xbc"=>0, "\xbd"=>0, "\xbe"=>0, "\xbf"=>0, - "\xc0"=>2, "\xc1"=>2, "\xc2"=>2, "\xc3"=>2, "\xc4"=>2, "\xc5"=>2, "\xc6"=>2, "\xc7"=>2, - "\xc8"=>2, "\xc9"=>2, "\xca"=>2, "\xcb"=>2, "\xcc"=>2, "\xcd"=>2, "\xce"=>2, "\xcf"=>2, - "\xd0"=>2, "\xd1"=>2, "\xd2"=>2, "\xd3"=>2, "\xd4"=>2, "\xd5"=>2, "\xd6"=>2, "\xd7"=>2, - "\xd8"=>2, "\xd9"=>2, "\xda"=>2, "\xdb"=>2, "\xdc"=>2, "\xdd"=>2, "\xde"=>2, "\xdf"=>2, - "\xe0"=>3, "\xe1"=>3, "\xe2"=>3, "\xe3"=>3, "\xe4"=>3, "\xe5"=>3, "\xe6"=>3, "\xe7"=>3, - "\xe8"=>3, "\xe9"=>3, "\xea"=>3, "\xeb"=>3, "\xec"=>3, "\xed"=>3, "\xee"=>3, "\xef"=>3, - "\xf0"=>4, "\xf1"=>4, "\xf2"=>4, "\xf3"=>4, "\xf4"=>4, "\xf5"=>4, "\xf6"=>4, "\xf7"=>4, - "\xf8"=>5, "\xf9"=>5, "\xfa"=>5, "\xfb"=>5, "\xfc"=>6, "\xfd"=>6, "\xfe"=>0, "\xff"=>0, - ); - - /** - * Returns the complete character map. - * - * @param string $string - * @param integer $startOffset - * @param array $currentMap - * @param mixed $ignoredChars - * - * @return integer - */ - public function getCharPositions($string, $startOffset, &$currentMap, &$ignoredChars) - { - if (!isset($currentMap['i']) || ! isset($currentMap['p'])) { - $currentMap['p'] = $currentMap['i'] = array(); - } - - $strlen=strlen($string); - $charPos=count($currentMap['p']); - $foundChars=0; - $invalid=false; - for ($i = 0; $i < $strlen; ++$i) { - $char = $string[$i]; - $size = self::$s_length_map[$char]; - if ($size == 0) { - /* char is invalid, we must wait for a resync */ - $invalid = true; - continue; - } else { - if ($invalid == true) { - /* We mark the chars as invalid and start a new char */ - $currentMap['p'][$charPos + $foundChars] = $startOffset + $i; - $currentMap['i'][$charPos + $foundChars] = true; - ++$foundChars; - $invalid = false; - } - if (($i + $size) > $strlen) { - $ignoredChars = substr($string, $i); - break; - } - for ($j = 1; $j < $size; ++$j) { - $char = $string[$i + $j]; - if ($char > "\x7F" && $char < "\xC0") { - // Valid - continue parsing - } else { - /* char is invalid, we must wait for a resync */ - $invalid = true; - continue 2; - } - } - /* Ok we got a complete char here */ - $currentMap['p'][$charPos + $foundChars] = $startOffset + $i + $size; - $i += $j - 1; - ++$foundChars; - } - } - - return $foundChars; - } - - /** - * Returns mapType. - * - * @return integer mapType - */ - public function getMapType() - { - return self::MAP_TYPE_POSITIONS; - } - - /** - * Returns an integer which specifies how many more bytes to read. - * - * A positive integer indicates the number of more bytes to fetch before invoking - * this method again. - * A value of zero means this is already a valid character. - * A value of -1 means this cannot possibly be a valid character. - * - * @param string $bytes - * @param integer $size - * - * @return integer - */ - public function validateByteSequence($bytes, $size) - { - if ($size<1) { - return -1; - } - $needed = self::$length_map[$bytes[0]] - $size; - - return ($needed > -1) - ? $needed - : -1 - ; - } - - /** - * Returns the number of bytes which should be read to start each character. - * - * @return integer - */ - public function getInitialByteSize() - { - return 1; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReaderFactory.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReaderFactory.php deleted file mode 100644 index d653b81..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterReaderFactory.php +++ /dev/null @@ -1,28 +0,0 @@ -init(); - } - - public function __wakeup() - { - $this->init(); - } - - public function init() - { - if (count(self::$_map) > 0) { - return; - } - - $prefix = 'Swift_CharacterReader_'; - - $singleByte = array( - 'class' => $prefix . 'GenericFixedWidthReader', - 'constructor' => array(1) - ); - - $doubleByte = array( - 'class' => $prefix . 'GenericFixedWidthReader', - 'constructor' => array(2) - ); - - $fourBytes = array( - 'class' => $prefix . 'GenericFixedWidthReader', - 'constructor' => array(4) - ); - - //Utf-8 - self::$_map['utf-?8'] = array( - 'class' => $prefix . 'Utf8Reader', - 'constructor' => array() - ); - - //7-8 bit charsets - self::$_map['(us-)?ascii'] = $singleByte; - self::$_map['(iso|iec)-?8859-?[0-9]+'] = $singleByte; - self::$_map['windows-?125[0-9]'] = $singleByte; - self::$_map['cp-?[0-9]+'] = $singleByte; - self::$_map['ansi'] = $singleByte; - self::$_map['macintosh'] = $singleByte; - self::$_map['koi-?7'] = $singleByte; - self::$_map['koi-?8-?.+'] = $singleByte; - self::$_map['mik'] = $singleByte; - self::$_map['(cork|t1)'] = $singleByte; - self::$_map['v?iscii'] = $singleByte; - - //16 bits - self::$_map['(ucs-?2|utf-?16)'] = $doubleByte; - - //32 bits - self::$_map['(ucs-?4|utf-?32)'] = $fourBytes; - - //Fallback - self::$_map['.*'] = $singleByte; - } - - /** - * Returns a CharacterReader suitable for the charset applied. - * - * @param string $charset - * - * @return Swift_CharacterReader - */ - public function getReaderFor($charset) - { - $charset = trim(strtolower($charset)); - foreach (self::$_map as $pattern => $spec) { - $re = '/^' . $pattern . '$/D'; - if (preg_match($re, $charset)) { - if (!array_key_exists($pattern, self::$_loaded)) { - $reflector = new ReflectionClass($spec['class']); - if ($reflector->getConstructor()) { - $reader = $reflector->newInstanceArgs($spec['constructor']); - } else { - $reader = $reflector->newInstance(); - } - self::$_loaded[$pattern] = $reader; - } - - return self::$_loaded[$pattern]; - } - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterStream.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterStream.php deleted file mode 100644 index 2946200..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterStream.php +++ /dev/null @@ -1,91 +0,0 @@ -setCharacterReaderFactory($factory); - $this->setCharacterSet($charset); - } - - /** - * Set the character set used in this CharacterStream. - * - * @param string $charset - */ - public function setCharacterSet($charset) - { - $this->_charset = $charset; - $this->_charReader = null; - } - - /** - * Set the CharacterReaderFactory for multi charset support. - * - * @param Swift_CharacterReaderFactory $factory - */ - public function setCharacterReaderFactory(Swift_CharacterReaderFactory $factory) - { - $this->_charReaderFactory = $factory; - } - - /** - * Overwrite this character stream using the byte sequence in the byte stream. - * - * @param Swift_OutputByteStream $os output stream to read from - */ - public function importByteStream(Swift_OutputByteStream $os) - { - if (!isset($this->_charReader)) { - $this->_charReader = $this->_charReaderFactory - ->getReaderFor($this->_charset); - } - - $startLength = $this->_charReader->getInitialByteSize(); - while (false !== $bytes = $os->read($startLength)) { - $c = array(); - for ($i = 0, $len = strlen($bytes); $i < $len; ++$i) { - $c[] = self::$_byteMap[$bytes[$i]]; - } - $size = count($c); - $need = $this->_charReader - ->validateByteSequence($c, $size); - if ($need > 0 && - false !== $bytes = $os->read($need)) - { - for ($i = 0, $len = strlen($bytes); $i < $len; ++$i) { - $c[] = self::$_byteMap[$bytes[$i]]; - } - } - $this->_array[] = $c; - ++$this->_array_size; - } - } - - /** - * Import a string a bytes into this CharacterStream, overwriting any existing - * data in the stream. - * - * @param string $string - */ - public function importString($string) - { - $this->flushContents(); - $this->write($string); - } - - /** - * Read $length characters from the stream and move the internal pointer - * $length further into the stream. - * - * @param integer $length - * - * @return string - */ - public function read($length) - { - if ($this->_offset == $this->_array_size) { - return false; - } - - // Don't use array slice - $arrays = array(); - $end = $length + $this->_offset; - for ($i = $this->_offset; $i < $end; ++$i) { - if (!isset($this->_array[$i])) { - break; - } - $arrays[] = $this->_array[$i]; - } - $this->_offset += $i - $this->_offset; // Limit function calls - $chars = false; - foreach ($arrays as $array) { - $chars .= implode('', array_map('chr', $array)); - } - - return $chars; - } - - /** - * Read $length characters from the stream and return a 1-dimensional array - * containing there octet values. - * - * @param integer $length - * - * @return integer[] - */ - public function readBytes($length) - { - if ($this->_offset == $this->_array_size) { - return false; - } - $arrays = array(); - $end = $length + $this->_offset; - for ($i = $this->_offset; $i < $end; ++$i) { - if (!isset($this->_array[$i])) { - break; - } - $arrays[] = $this->_array[$i]; - } - $this->_offset += ($i - $this->_offset); // Limit function calls - - return call_user_func_array('array_merge', $arrays); - } - - /** - * Write $chars to the end of the stream. - * - * @param string $chars - */ - public function write($chars) - { - if (!isset($this->_charReader)) { - $this->_charReader = $this->_charReaderFactory->getReaderFor( - $this->_charset); - } - - $startLength = $this->_charReader->getInitialByteSize(); - - $fp = fopen('php://memory', 'w+b'); - fwrite($fp, $chars); - unset($chars); - fseek($fp, 0, SEEK_SET); - - $buffer = array(0); - $buf_pos = 1; - $buf_len = 1; - $has_datas = true; - do { - $bytes = array(); - // Buffer Filing - if ($buf_len - $buf_pos < $startLength) { - $buf = array_splice($buffer, $buf_pos); - $new = $this->_reloadBuffer($fp, 100); - if ($new) { - $buffer = array_merge($buf, $new); - $buf_len = count($buffer); - $buf_pos = 0; - } else { - $has_datas = false; - } - } - if ($buf_len - $buf_pos > 0) { - $size = 0; - for ($i = 0; $i < $startLength && isset($buffer[$buf_pos]); ++$i) { - ++$size; - $bytes[] = $buffer[$buf_pos++]; - } - $need = $this->_charReader->validateByteSequence( - $bytes, $size); - if ($need > 0) { - if ($buf_len - $buf_pos < $need) { - $new = $this->_reloadBuffer($fp, $need); - - if ($new) { - $buffer = array_merge($buffer, $new); - $buf_len = count($buffer); - } - } - for ($i = 0; $i < $need && isset($buffer[$buf_pos]); ++$i) { - $bytes[] = $buffer[$buf_pos++]; - } - } - $this->_array[] = $bytes; - ++$this->_array_size; - } - } while ($has_datas); - - fclose($fp); - } - - /** - * Move the internal pointer to $charOffset in the stream. - * - * @param integer $charOffset - */ - public function setPointer($charOffset) - { - if ($charOffset > $this->_array_size) { - $charOffset = $this->_array_size; - } elseif ($charOffset < 0) { - $charOffset = 0; - } - $this->_offset = $charOffset; - } - - /** - * Empty the stream and reset the internal pointer. - */ - public function flushContents() - { - $this->_offset = 0; - $this->_array = array(); - $this->_array_size = 0; - } - - private function _reloadBuffer($fp, $len) - { - if (!feof($fp) && ($bytes = fread($fp, $len)) !== false) { - $buf = array(); - for ($i = 0, $len = strlen($bytes); $i < $len; ++$i) { - $buf[] = self::$_byteMap[$bytes[$i]]; - } - - return $buf; - } - - return false; - } - - private static function _initializeMaps() - { - if (!isset(self::$_charMap)) { - self::$_charMap = array(); - for ($byte = 0; $byte < 256; ++$byte) { - self::$_charMap[$byte] = chr($byte); - } - self::$_byteMap = array_flip(self::$_charMap); - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterStream/NgCharacterStream.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterStream/NgCharacterStream.php deleted file mode 100644 index 98aabab..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/CharacterStream/NgCharacterStream.php +++ /dev/null @@ -1,277 +0,0 @@ - - */ - -class Swift_CharacterStream_NgCharacterStream implements Swift_CharacterStream -{ - /** - * The char reader (lazy-loaded) for the current charset. - * - * @var Swift_CharacterReader - */ - private $_charReader; - - /** - * A factory for creating CharacterReader instances. - * - * @var Swift_CharacterReaderFactory - */ - private $_charReaderFactory; - - /** - * The character set this stream is using. - * - * @var string - */ - private $_charset; - - /** - * The data's stored as-is. - * - * @var string - */ - private $_datas = ''; - - /** - * Number of bytes in the stream - * - * @var integer - */ - private $_datasSize = 0; - - /** - * Map. - * - * @var mixed - */ - private $_map; - - /** - * Map Type. - * - * @var integer - */ - private $_mapType = 0; - - /** - * Number of characters in the stream. - * - * @var integer - */ - private $_charCount = 0; - - /** - * Position in the stream. - * - * @var integer - */ - private $_currentPos = 0; - - /** - * Constructor. - * - * @param Swift_CharacterReaderFactory $factory - * @param string $charset - */ - public function __construct(Swift_CharacterReaderFactory $factory, $charset) - { - $this->setCharacterReaderFactory($factory); - $this->setCharacterSet($charset); - } - - /* -- Changing parameters of the stream -- */ - - /** - * Set the character set used in this CharacterStream. - * - * @param string $charset - */ - public function setCharacterSet($charset) - { - $this->_charset = $charset; - $this->_charReader = null; - $this->_mapType = 0; - } - - /** - * Set the CharacterReaderFactory for multi charset support. - * - * @param Swift_CharacterReaderFactory $factory - */ - public function setCharacterReaderFactory(Swift_CharacterReaderFactory $factory) - { - $this->_charReaderFactory = $factory; - } - - /** - * @see Swift_CharacterStream::flushContents() - */ - public function flushContents() - { - $this->_datas = null; - $this->_map = null; - $this->_charCount = 0; - $this->_currentPos = 0; - $this->_datasSize = 0; - } - - /** - * @see Swift_CharacterStream::importByteStream() - * - * @param Swift_OutputByteStream $os - */ - public function importByteStream(Swift_OutputByteStream $os) - { - $this->flushContents(); - $blocks=512; - $os->setReadPointer(0); - while(false!==($read = $os->read($blocks))) - $this->write($read); - } - - /** - * @see Swift_CharacterStream::importString() - * - * @param string $string - */ - public function importString($string) - { - $this->flushContents(); - $this->write($string); - } - - /** - * @see Swift_CharacterStream::read() - * - * @param integer $length - * - * @return string - */ - public function read($length) - { - if ($this->_currentPos>=$this->_charCount) { - return false; - } - $ret=false; - $length = ($this->_currentPos+$length > $this->_charCount) - ? $this->_charCount - $this->_currentPos - : $length; - switch ($this->_mapType) { - case Swift_CharacterReader::MAP_TYPE_FIXED_LEN: - $len = $length*$this->_map; - $ret = substr($this->_datas, - $this->_currentPos * $this->_map, - $len); - $this->_currentPos += $length; - break; - - case Swift_CharacterReader::MAP_TYPE_INVALID: - $end = $this->_currentPos + $length; - $end = $end > $this->_charCount - ?$this->_charCount - :$end; - $ret = ''; - for (; $this->_currentPos < $length; ++$this->_currentPos) { - if (isset ($this->_map[$this->_currentPos])) { - $ret .= '?'; - } else { - $ret .= $this->_datas[$this->_currentPos]; - } - } - break; - - case Swift_CharacterReader::MAP_TYPE_POSITIONS: - $end = $this->_currentPos + $length; - $end = $end > $this->_charCount - ?$this->_charCount - :$end; - $ret = ''; - $start = 0; - if ($this->_currentPos>0) { - $start = $this->_map['p'][$this->_currentPos-1]; - } - $to = $start; - for (; $this->_currentPos < $end; ++$this->_currentPos) { - if (isset($this->_map['i'][$this->_currentPos])) { - $ret .= substr($this->_datas, $start, $to - $start).'?'; - $start = $this->_map['p'][$this->_currentPos]; - } else { - $to = $this->_map['p'][$this->_currentPos]; - } - } - $ret .= substr($this->_datas, $start, $to - $start); - break; - } - - return $ret; - } - - /** - * @see Swift_CharacterStream::readBytes() - * - * @param integer $length - * - * @return integer[] - */ - public function readBytes($length) - { - $read=$this->read($length); - if ($read!==false) { - $ret = array_map('ord', str_split($read, 1)); - - return $ret; - } - - return false; - } - - /** - * @see Swift_CharacterStream::setPointer() - * - * @param integer $charOffset - */ - public function setPointer($charOffset) - { - if ($this->_charCount<$charOffset) { - $charOffset=$this->_charCount; - } - $this->_currentPos = $charOffset; - } - - /** - * @see Swift_CharacterStream::write() - * - * @param string $chars - */ - public function write($chars) - { - if (!isset($this->_charReader)) { - $this->_charReader = $this->_charReaderFactory->getReaderFor( - $this->_charset); - $this->_map = array(); - $this->_mapType = $this->_charReader->getMapType(); - } - $ignored=''; - $this->_datas .= $chars; - $this->_charCount += $this->_charReader->getCharPositions(substr($this->_datas, $this->_datasSize), $this->_datasSize, $this->_map, $ignored); - if ($ignored!==false) { - $this->_datasSize=strlen($this->_datas)-strlen($ignored); - } else { - $this->_datasSize=strlen($this->_datas); - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ConfigurableSpool.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ConfigurableSpool.php deleted file mode 100644 index 58d5275..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ConfigurableSpool.php +++ /dev/null @@ -1,64 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/** - * Base class for Spools (implements time and message limits). - * - * @package Swift - * @author Fabien Potencier - */ -abstract class Swift_ConfigurableSpool implements Swift_Spool -{ - /** The maximum number of messages to send per flush */ - private $_message_limit; - - /** The time limit per flush */ - private $_time_limit; - - /** - * Sets the maximum number of messages to send per flush. - * - * @param integer $limit - */ - public function setMessageLimit($limit) - { - $this->_message_limit = (int) $limit; - } - - /** - * Gets the maximum number of messages to send per flush. - * - * @return integer The limit - */ - public function getMessageLimit() - { - return $this->_message_limit; - } - - /** - * Sets the time limit (in seconds) per flush. - * - * @param integer $limit The limit - */ - public function setTimeLimit($limit) - { - $this->_time_limit = (int) $limit; - } - - /** - * Gets the time limit (in seconds) per flush. - * - * @return integer The limit - */ - public function getTimeLimit() - { - return $this->_time_limit; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/DependencyContainer.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/DependencyContainer.php deleted file mode 100644 index b717861..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/DependencyContainer.php +++ /dev/null @@ -1,373 +0,0 @@ -_store); - } - - /** - * Test if an item is registered in this container with the given name. - * - * @see register() - * - * @param string $itemName - * - * @return boolean - */ - public function has($itemName) - { - return array_key_exists($itemName, $this->_store) - && isset($this->_store[$itemName]['lookupType']); - } - - /** - * Lookup the item with the given $itemName. - * - * @see register() - * - * @param string $itemName - * - * @return mixed - * - * @throws Swift_DependencyException If the dependency is not found - */ - public function lookup($itemName) - { - if (!$this->has($itemName)) { - throw new Swift_DependencyException( - 'Cannot lookup dependency "' . $itemName . '" since it is not registered.' - ); - } - - switch ($this->_store[$itemName]['lookupType']) { - case self::TYPE_ALIAS: - return $this->_createAlias($itemName); - case self::TYPE_VALUE: - return $this->_getValue($itemName); - case self::TYPE_INSTANCE: - return $this->_createNewInstance($itemName); - case self::TYPE_SHARED: - return $this->_createSharedInstance($itemName); - } - } - - /** - * Create an array of arguments passed to the constructor of $itemName. - * - * @param string $itemName - * - * @return array - */ - public function createDependenciesFor($itemName) - { - $args = array(); - if (isset($this->_store[$itemName]['args'])) { - $args = $this->_resolveArgs($this->_store[$itemName]['args']); - } - - return $args; - } - - /** - * Register a new dependency with $itemName. - * - * This method returns the current DependencyContainer instance because it - * requires the use of the fluid interface to set the specific details for the - * dependency. - * @see asNewInstanceOf(), asSharedInstanceOf(), asValue() - * - * @param string $itemName - * - * @return Swift_DependencyContainer - */ - public function register($itemName) - { - $this->_store[$itemName] = array(); - $this->_endPoint =& $this->_store[$itemName]; - - return $this; - } - - /** - * Specify the previously registered item as a literal value. - * - * {@link register()} must be called before this will work. - * - * @param mixed $value - * - * @return Swift_DependencyContainer - */ - public function asValue($value) - { - $endPoint =& $this->_getEndPoint(); - $endPoint['lookupType'] = self::TYPE_VALUE; - $endPoint['value'] = $value; - - return $this; - } - - /** - * Specify the previously registered item as an alias of another item. - * - * @param string $lookup - * - * @return Swift_DependencyContainer - */ - public function asAliasOf($lookup) - { - $endPoint =& $this->_getEndPoint(); - $endPoint['lookupType'] = self::TYPE_ALIAS; - $endPoint['ref'] = $lookup; - - return $this; - } - - /** - * Specify the previously registered item as a new instance of $className. - * - * {@link register()} must be called before this will work. - * Any arguments can be set with {@link withDependencies()}, - * {@link addConstructorValue()} or {@link addConstructorLookup()}. - * - * @see withDependencies(), addConstructorValue(), addConstructorLookup() - * - * @param string $className - * - * @return Swift_DependencyContainer - */ - public function asNewInstanceOf($className) - { - $endPoint =& $this->_getEndPoint(); - $endPoint['lookupType'] = self::TYPE_INSTANCE; - $endPoint['className'] = $className; - - return $this; - } - - /** - * Specify the previously registered item as a shared instance of $className. - * - * {@link register()} must be called before this will work. - * - * @param string $className - * - * @return Swift_DependencyContainer - */ - public function asSharedInstanceOf($className) - { - $endPoint =& $this->_getEndPoint(); - $endPoint['lookupType'] = self::TYPE_SHARED; - $endPoint['className'] = $className; - - return $this; - } - - /** - * Specify a list of injected dependencies for the previously registered item. - * - * This method takes an array of lookup names. - * - * @see addConstructorValue(), addConstructorLookup() - * - * @param array $lookups - * - * @return Swift_DependencyContainer - */ - public function withDependencies(array $lookups) - { - $endPoint =& $this->_getEndPoint(); - $endPoint['args'] = array(); - foreach ($lookups as $lookup) { - $this->addConstructorLookup($lookup); - } - - return $this; - } - - /** - * Specify a literal (non looked up) value for the constructor of the - * previously registered item. - * - * @see withDependencies(), addConstructorLookup() - * - * @param mixed $value - * - * @return Swift_DependencyContainer - */ - public function addConstructorValue($value) - { - $endPoint =& $this->_getEndPoint(); - if (!isset($endPoint['args'])) { - $endPoint['args'] = array(); - } - $endPoint['args'][] = array('type' => 'value', 'item' => $value); - - return $this; - } - - /** - * Specify a dependency lookup for the constructor of the previously - * registered item. - * - * @see withDependencies(), addConstructorValue() - * - * @param string $lookup - * - * @return Swift_DependencyContainer - */ - public function addConstructorLookup($lookup) - { - $endPoint =& $this->_getEndPoint(); - if (!isset($this->_endPoint['args'])) { - $endPoint['args'] = array(); - } - $endPoint['args'][] = array('type' => 'lookup', 'item' => $lookup); - - return $this; - } - - // -- Private methods - - /** Get the literal value with $itemName */ - private function _getValue($itemName) - { - return $this->_store[$itemName]['value']; - } - - /** Resolve an alias to another item */ - private function _createAlias($itemName) - { - return $this->lookup($this->_store[$itemName]['ref']); - } - - /** Create a fresh instance of $itemName */ - private function _createNewInstance($itemName) - { - $reflector = new ReflectionClass($this->_store[$itemName]['className']); - if ($reflector->getConstructor()) { - return $reflector->newInstanceArgs( - $this->createDependenciesFor($itemName) - ); - } else { - return $reflector->newInstance(); - } - } - - /** Create and register a shared instance of $itemName */ - private function _createSharedInstance($itemName) - { - if (!isset($this->_store[$itemName]['instance'])) { - $this->_store[$itemName]['instance'] = $this->_createNewInstance($itemName); - } - - return $this->_store[$itemName]['instance']; - } - - /** Get the current endpoint in the store */ - private function &_getEndPoint() - { - if (!isset($this->_endPoint)) { - throw new BadMethodCallException( - 'Component must first be registered by calling register()' - ); - } - - return $this->_endPoint; - } - - /** Get an argument list with dependencies resolved */ - private function _resolveArgs(array $args) - { - $resolved = array(); - foreach ($args as $argDefinition) { - switch ($argDefinition['type']) { - case 'lookup': - $resolved[] = $this->_lookupRecursive($argDefinition['item']); - break; - case 'value': - $resolved[] = $argDefinition['item']; - break; - } - } - - return $resolved; - } - - /** Resolve a single dependency with an collections */ - private function _lookupRecursive($item) - { - if (is_array($item)) { - $collection = array(); - foreach ($item as $k => $v) { - $collection[$k] = $this->_lookupRecursive($v); - } - - return $collection; - } else { - return $this->lookup($item); - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/DependencyException.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/DependencyException.php deleted file mode 100644 index b3f0170..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/DependencyException.php +++ /dev/null @@ -1,28 +0,0 @@ -createDependenciesFor('mime.embeddedfile') - ); - - $this->setBody($data); - $this->setFilename($filename); - if ($contentType) { - $this->setContentType($contentType); - } - } - - /** - * Create a new EmbeddedFile. - * - * @param string|Swift_OutputByteStream $data - * @param string $filename - * @param string $contentType - * - * @return Swift_Mime_EmbeddedFile - */ - public static function newInstance($data = null, $filename = null, $contentType = null) - { - return new self($data, $filename, $contentType); - } - - /** - * Create a new EmbeddedFile from a filesystem path. - * - * @param string $path - * - * @return Swift_Mime_EmbeddedFile - */ - public static function fromPath($path) - { - return self::newInstance()->setFile( - new Swift_ByteStream_FileByteStream($path) - ); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Encoder.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Encoder.php deleted file mode 100644 index 53e88b8..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Encoder.php +++ /dev/null @@ -1,29 +0,0 @@ -= $maxLineLength || 76 < $maxLineLength) { - $maxLineLength = 76; - } - - $encodedString = base64_encode($string); - $firstLine = ''; - - if (0 != $firstLineOffset) { - $firstLine = substr( - $encodedString, 0, $maxLineLength - $firstLineOffset - ) . "\r\n"; - $encodedString = substr( - $encodedString, $maxLineLength - $firstLineOffset - ); - } - - return $firstLine . trim(chunk_split($encodedString, $maxLineLength, "\r\n")); - } - - /** - * Does nothing. - */ - public function charsetChanged($charset) - { - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Encoder/QpEncoder.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Encoder/QpEncoder.php deleted file mode 100644 index 61cf31b..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Encoder/QpEncoder.php +++ /dev/null @@ -1,286 +0,0 @@ - '=00', 1 => '=01', 2 => '=02', 3 => '=03', 4 => '=04', - 5 => '=05', 6 => '=06', 7 => '=07', 8 => '=08', 9 => '=09', - 10 => '=0A', 11 => '=0B', 12 => '=0C', 13 => '=0D', 14 => '=0E', - 15 => '=0F', 16 => '=10', 17 => '=11', 18 => '=12', 19 => '=13', - 20 => '=14', 21 => '=15', 22 => '=16', 23 => '=17', 24 => '=18', - 25 => '=19', 26 => '=1A', 27 => '=1B', 28 => '=1C', 29 => '=1D', - 30 => '=1E', 31 => '=1F', 32 => '=20', 33 => '=21', 34 => '=22', - 35 => '=23', 36 => '=24', 37 => '=25', 38 => '=26', 39 => '=27', - 40 => '=28', 41 => '=29', 42 => '=2A', 43 => '=2B', 44 => '=2C', - 45 => '=2D', 46 => '=2E', 47 => '=2F', 48 => '=30', 49 => '=31', - 50 => '=32', 51 => '=33', 52 => '=34', 53 => '=35', 54 => '=36', - 55 => '=37', 56 => '=38', 57 => '=39', 58 => '=3A', 59 => '=3B', - 60 => '=3C', 61 => '=3D', 62 => '=3E', 63 => '=3F', 64 => '=40', - 65 => '=41', 66 => '=42', 67 => '=43', 68 => '=44', 69 => '=45', - 70 => '=46', 71 => '=47', 72 => '=48', 73 => '=49', 74 => '=4A', - 75 => '=4B', 76 => '=4C', 77 => '=4D', 78 => '=4E', 79 => '=4F', - 80 => '=50', 81 => '=51', 82 => '=52', 83 => '=53', 84 => '=54', - 85 => '=55', 86 => '=56', 87 => '=57', 88 => '=58', 89 => '=59', - 90 => '=5A', 91 => '=5B', 92 => '=5C', 93 => '=5D', 94 => '=5E', - 95 => '=5F', 96 => '=60', 97 => '=61', 98 => '=62', 99 => '=63', - 100 => '=64', 101 => '=65', 102 => '=66', 103 => '=67', 104 => '=68', - 105 => '=69', 106 => '=6A', 107 => '=6B', 108 => '=6C', 109 => '=6D', - 110 => '=6E', 111 => '=6F', 112 => '=70', 113 => '=71', 114 => '=72', - 115 => '=73', 116 => '=74', 117 => '=75', 118 => '=76', 119 => '=77', - 120 => '=78', 121 => '=79', 122 => '=7A', 123 => '=7B', 124 => '=7C', - 125 => '=7D', 126 => '=7E', 127 => '=7F', 128 => '=80', 129 => '=81', - 130 => '=82', 131 => '=83', 132 => '=84', 133 => '=85', 134 => '=86', - 135 => '=87', 136 => '=88', 137 => '=89', 138 => '=8A', 139 => '=8B', - 140 => '=8C', 141 => '=8D', 142 => '=8E', 143 => '=8F', 144 => '=90', - 145 => '=91', 146 => '=92', 147 => '=93', 148 => '=94', 149 => '=95', - 150 => '=96', 151 => '=97', 152 => '=98', 153 => '=99', 154 => '=9A', - 155 => '=9B', 156 => '=9C', 157 => '=9D', 158 => '=9E', 159 => '=9F', - 160 => '=A0', 161 => '=A1', 162 => '=A2', 163 => '=A3', 164 => '=A4', - 165 => '=A5', 166 => '=A6', 167 => '=A7', 168 => '=A8', 169 => '=A9', - 170 => '=AA', 171 => '=AB', 172 => '=AC', 173 => '=AD', 174 => '=AE', - 175 => '=AF', 176 => '=B0', 177 => '=B1', 178 => '=B2', 179 => '=B3', - 180 => '=B4', 181 => '=B5', 182 => '=B6', 183 => '=B7', 184 => '=B8', - 185 => '=B9', 186 => '=BA', 187 => '=BB', 188 => '=BC', 189 => '=BD', - 190 => '=BE', 191 => '=BF', 192 => '=C0', 193 => '=C1', 194 => '=C2', - 195 => '=C3', 196 => '=C4', 197 => '=C5', 198 => '=C6', 199 => '=C7', - 200 => '=C8', 201 => '=C9', 202 => '=CA', 203 => '=CB', 204 => '=CC', - 205 => '=CD', 206 => '=CE', 207 => '=CF', 208 => '=D0', 209 => '=D1', - 210 => '=D2', 211 => '=D3', 212 => '=D4', 213 => '=D5', 214 => '=D6', - 215 => '=D7', 216 => '=D8', 217 => '=D9', 218 => '=DA', 219 => '=DB', - 220 => '=DC', 221 => '=DD', 222 => '=DE', 223 => '=DF', 224 => '=E0', - 225 => '=E1', 226 => '=E2', 227 => '=E3', 228 => '=E4', 229 => '=E5', - 230 => '=E6', 231 => '=E7', 232 => '=E8', 233 => '=E9', 234 => '=EA', - 235 => '=EB', 236 => '=EC', 237 => '=ED', 238 => '=EE', 239 => '=EF', - 240 => '=F0', 241 => '=F1', 242 => '=F2', 243 => '=F3', 244 => '=F4', - 245 => '=F5', 246 => '=F6', 247 => '=F7', 248 => '=F8', 249 => '=F9', - 250 => '=FA', 251 => '=FB', 252 => '=FC', 253 => '=FD', 254 => '=FE', - 255 => '=FF' - ); - - protected static $_safeMapShare = array(); - - /** - * A map of non-encoded ascii characters. - * - * @var string[] - */ - protected $_safeMap = array(); - - /** - * Creates a new QpEncoder for the given CharacterStream. - * - * @param Swift_CharacterStream $charStream to use for reading characters - * @param Swift_StreamFilter $filter if input should be canonicalized - */ - public function __construct(Swift_CharacterStream $charStream, Swift_StreamFilter $filter = null) - { - $this->_charStream = $charStream; - if (!isset(self::$_safeMapShare[$this->getSafeMapShareId()])) { - $this->initSafeMap(); - self::$_safeMapShare[$this->getSafeMapShareId()] = $this->_safeMap; - } else { - $this->_safeMap = self::$_safeMapShare[$this->getSafeMapShareId()]; - } - $this->_filter = $filter; - } - - public function __sleep() - { - return array('_charStream', '_filter'); - } - - public function __wakeup() - { - if (!isset(self::$_safeMapShare[$this->getSafeMapShareId()])) { - $this->initSafeMap(); - self::$_safeMapShare[$this->getSafeMapShareId()] = $this->_safeMap; - } else { - $this->_safeMap = self::$_safeMapShare[$this->getSafeMapShareId()]; - } - } - - protected function getSafeMapShareId() - { - return get_class($this); - } - - protected function initSafeMap() - { - foreach (array_merge( - array(0x09, 0x20), range(0x21, 0x3C), range(0x3E, 0x7E)) as $byte) - { - $this->_safeMap[$byte] = chr($byte); - } - } - - /** - * Takes an unencoded string and produces a QP encoded string from it. - * - * QP encoded strings have a maximum line length of 76 characters. - * If the first line needs to be shorter, indicate the difference with - * $firstLineOffset. - * - * @param string $string to encode - * @param integer $firstLineOffset, optional - * @param integer $maxLineLength, optional 0 indicates the default of 76 chars - * - * @return string - */ - public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) - { - if ($maxLineLength > 76 || $maxLineLength <= 0) { - $maxLineLength = 76; - } - - $thisLineLength = $maxLineLength - $firstLineOffset; - - $lines = array(); - $lNo = 0; - $lines[$lNo] = ''; - $currentLine =& $lines[$lNo++]; - $size=$lineLen=0; - - $this->_charStream->flushContents(); - $this->_charStream->importString($string); - - // Fetching more than 4 chars at one is slower, as is fetching fewer bytes - // Conveniently 4 chars is the UTF-8 safe number since UTF-8 has up to 6 - // bytes per char and (6 * 4 * 3 = 72 chars per line) * =NN is 3 bytes - while (false !== $bytes = $this->_nextSequence()) { - //If we're filtering the input - if (isset($this->_filter)) { - //If we can't filter because we need more bytes - while ($this->_filter->shouldBuffer($bytes)) { - //Then collect bytes into the buffer - if (false === $moreBytes = $this->_nextSequence(1)) { - break; - } - - foreach ($moreBytes as $b) { - $bytes[] = $b; - } - } - //And filter them - $bytes = $this->_filter->filter($bytes); - } - - $enc = $this->_encodeByteSequence($bytes, $size); - if ($currentLine && $lineLen+$size >= $thisLineLength) { - $lines[$lNo] = ''; - $currentLine =& $lines[$lNo++]; - $thisLineLength = $maxLineLength; - $lineLen=0; - } - $lineLen+=$size; - $currentLine .= $enc; - } - - return $this->_standardize(implode("=\r\n", $lines)); - } - - /** - * Updates the charset used. - * - * @param string $charset - */ - public function charsetChanged($charset) - { - $this->_charStream->setCharacterSet($charset); - } - - // -- Protected methods - - /** - * Encode the given byte array into a verbatim QP form. - * - * @param integer[] $bytes - * @param integer $size - * - * @return string - */ - protected function _encodeByteSequence(array $bytes, &$size) - { - $ret = ''; - $size=0; - foreach ($bytes as $b) { - if (isset($this->_safeMap[$b])) { - $ret .= $this->_safeMap[$b]; - ++$size; - } else { - $ret .= self::$_qpMap[$b]; - $size+=3; - } - } - - return $ret; - } - - /** - * Get the next sequence of bytes to read from the char stream. - * - * @param integer $size number of bytes to read - * - * @return integer[] - */ - protected function _nextSequence($size = 4) - { - return $this->_charStream->readBytes($size); - } - - /** - * Make sure CRLF is correct and HT/SPACE are in valid places. - * - * @param string $string - * - * @return string - */ - protected function _standardize($string) - { - $string = str_replace(array("\t=0D=0A", " =0D=0A", "=0D=0A"), - array("=09\r\n", "=20\r\n", "\r\n"), $string - ); - switch ($end = ord(substr($string, -1))) { - case 0x09: - case 0x20: - $string = substr_replace($string, self::$_qpMap[$end], -1); - } - - return $string; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Encoder/Rfc2231Encoder.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Encoder/Rfc2231Encoder.php deleted file mode 100644 index 37e30c1..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Encoder/Rfc2231Encoder.php +++ /dev/null @@ -1,86 +0,0 @@ -_charStream = $charStream; - } - - /** - * Takes an unencoded string and produces a string encoded according to - * RFC 2231 from it. - * - * @param string $string - * @param integer $firstLineOffset - * @param integer $maxLineLength optional, 0 indicates the default of 75 bytes - * - * @return string - */ - public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) - { - $lines = array(); $lineCount = 0; - $lines[] = ''; - $currentLine =& $lines[$lineCount++]; - - if (0 >= $maxLineLength) { - $maxLineLength = 75; - } - - $this->_charStream->flushContents(); - $this->_charStream->importString($string); - - $thisLineLength = $maxLineLength - $firstLineOffset; - - while (false !== $char = $this->_charStream->read(4)) { - $encodedChar = rawurlencode($char); - if (0 != strlen($currentLine) - && strlen($currentLine . $encodedChar) > $thisLineLength) - { - $lines[] = ''; - $currentLine =& $lines[$lineCount++]; - $thisLineLength = $maxLineLength; - } - $currentLine .= $encodedChar; - } - - return implode("\r\n", $lines); - } - - /** - * Updates the charset used. - * - * @param string $charset - */ - public function charsetChanged($charset) - { - $this->_charStream->setCharacterSet($charset); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Encoding.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Encoding.php deleted file mode 100644 index 9639194..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Encoding.php +++ /dev/null @@ -1,66 +0,0 @@ -lookup($key); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/CommandEvent.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/CommandEvent.php deleted file mode 100644 index fa4f444..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/CommandEvent.php +++ /dev/null @@ -1,67 +0,0 @@ -_command = $command; - $this->_successCodes = $successCodes; - } - - /** - * Get the command which was sent to the server. - * - * @return string - */ - public function getCommand() - { - return $this->_command; - } - - /** - * Get the numeric response codes which indicate success for this command. - * - * @return integer[] - */ - public function getSuccessCodes() - { - return $this->_successCodes; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/CommandListener.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/CommandListener.php deleted file mode 100644 index 6800904..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/CommandListener.php +++ /dev/null @@ -1,26 +0,0 @@ -_source = $source; - } - - /** - * Get the source object of this event. - * - * @return object - */ - public function getSource() - { - return $this->_source; - } - - /** - * Prevent this Event from bubbling any further up the stack. - * - * @param boolean $cancel, optional - */ - public function cancelBubble($cancel = true) - { - $this->_bubbleCancelled = $cancel; - } - - /** - * Returns true if this Event will not bubble any further up the stack. - * - * @return boolean - */ - public function bubbleCancelled() - { - return $this->_bubbleCancelled; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/ResponseEvent.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/ResponseEvent.php deleted file mode 100644 index 6b9117c..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/ResponseEvent.php +++ /dev/null @@ -1,68 +0,0 @@ -_response = $response; - $this->_valid = $valid; - } - - /** - * Get the response which was received from the server. - * - * @return string - */ - public function getResponse() - { - return $this->_response; - } - - /** - * Get the success status of this Event. - * - * @return boolean - */ - public function isValid() - { - return $this->_valid; - } - -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/ResponseListener.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/ResponseListener.php deleted file mode 100644 index a39ba43..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/ResponseListener.php +++ /dev/null @@ -1,26 +0,0 @@ -_message = $message; - $this->_result = self::RESULT_PENDING; - } - - /** - * Get the Transport used to send the Message. - * - * @return Swift_Transport - */ - public function getTransport() - { - return $this->getSource(); - } - - /** - * Get the Message being sent. - * - * @return Swift_Mime_Message - */ - public function getMessage() - { - return $this->_message; - } - - /** - * Set the array of addresses that failed in sending. - * - * @param array $recipients - */ - public function setFailedRecipients($recipients) - { - $this->_failedRecipients = $recipients; - } - - /** - * Get an recipient addresses which were not accepted for delivery. - * - * @return string[] - */ - public function getFailedRecipients() - { - return $this->_failedRecipients; - } - - /** - * Set the result of sending. - * - * @param integer $result - */ - public function setResult($result) - { - $this->_result = $result; - } - - /** - * Get the result of this Event. - * - * The return value is a bitmask from - * {@see RESULT_PENDING, RESULT_SUCCESS, RESULT_TENTATIVE, RESULT_FAILED} - * - * @return integer - */ - public function getResult() - { - return $this->_result; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/SendListener.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/SendListener.php deleted file mode 100644 index bc914f5..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/SendListener.php +++ /dev/null @@ -1,33 +0,0 @@ -_eventMap = array( - 'Swift_Events_CommandEvent' => 'Swift_Events_CommandListener', - 'Swift_Events_ResponseEvent' => 'Swift_Events_ResponseListener', - 'Swift_Events_SendEvent' => 'Swift_Events_SendListener', - 'Swift_Events_TransportChangeEvent' => 'Swift_Events_TransportChangeListener', - 'Swift_Events_TransportExceptionEvent' => 'Swift_Events_TransportExceptionListener' - ); - } - - /** - * Create a new SendEvent for $source and $message. - * - * @param Swift_Transport $source - * @param Swift_Mime_Message - * - * @return Swift_Events_SendEvent - */ - public function createSendEvent(Swift_Transport $source, Swift_Mime_Message $message) - { - return new Swift_Events_SendEvent($source, $message); - } - - /** - * Create a new CommandEvent for $source and $command. - * - * @param Swift_Transport $source - * @param string $command That will be executed - * @param array $successCodes That are needed - * - * @return Swift_Events_CommandEvent - */ - public function createCommandEvent(Swift_Transport $source, $command, $successCodes = array()) - { - return new Swift_Events_CommandEvent($source, $command, $successCodes); - } - - /** - * Create a new ResponseEvent for $source and $response. - * - * @param Swift_Transport $source - * @param string $response - * @param boolean $valid If the response is valid - * - * @return Swift_Events_ResponseEvent - */ - public function createResponseEvent(Swift_Transport $source, $response, $valid) - { - return new Swift_Events_ResponseEvent($source, $response, $valid); - } - - /** - * Create a new TransportChangeEvent for $source. - * - * @param Swift_Transport $source - * - * @return Swift_Events_TransportChangeEvent - */ - public function createTransportChangeEvent(Swift_Transport $source) - { - return new Swift_Events_TransportChangeEvent($source); - } - - /** - * Create a new TransportExceptionEvent for $source. - * - * @param Swift_Transport $source - * @param Swift_TransportException $ex - * - * @return Swift_Events_TransportExceptionEvent - */ - public function createTransportExceptionEvent(Swift_Transport $source, Swift_TransportException $ex) - { - return new Swift_Events_TransportExceptionEvent($source, $ex); - } - - /** - * Bind an event listener to this dispatcher. - * - * @param Swift_Events_EventListener $listener - */ - public function bindEventListener(Swift_Events_EventListener $listener) - { - foreach ($this->_listeners as $l) { - //Already loaded - if ($l === $listener) { - return; - } - } - $this->_listeners[] = $listener; - } - - /** - * Dispatch the given Event to all suitable listeners. - * - * @param Swift_Events_EventObject $evt - * @param string $target method - */ - public function dispatchEvent(Swift_Events_EventObject $evt, $target) - { - $this->_prepareBubbleQueue($evt); - $this->_bubble($evt, $target); - } - - // -- Private methods - - /** Queue listeners on a stack ready for $evt to be bubbled up it */ - private function _prepareBubbleQueue(Swift_Events_EventObject $evt) - { - $this->_bubbleQueue = array(); - $evtClass = get_class($evt); - foreach ($this->_listeners as $listener) { - if (array_key_exists($evtClass, $this->_eventMap) - && ($listener instanceof $this->_eventMap[$evtClass])) - { - $this->_bubbleQueue[] = $listener; - } - } - } - - /** Bubble $evt up the stack calling $target() on each listener */ - private function _bubble(Swift_Events_EventObject $evt, $target) - { - if (!$evt->bubbleCancelled() && $listener = array_shift($this->_bubbleQueue)) { - $listener->$target($evt); - $this->_bubble($evt, $target); - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/TransportChangeEvent.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/TransportChangeEvent.php deleted file mode 100644 index d8b5316..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/TransportChangeEvent.php +++ /dev/null @@ -1,29 +0,0 @@ -getSource(); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/TransportChangeListener.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/TransportChangeListener.php deleted file mode 100644 index 1555037..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/TransportChangeListener.php +++ /dev/null @@ -1,47 +0,0 @@ -_exception = $ex; - } - - /** - * Get the TransportException thrown. - * - * @return Swift_TransportException - */ - public function getException() - { - return $this->_exception; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/TransportExceptionListener.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/TransportExceptionListener.php deleted file mode 100644 index 709abda..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Events/TransportExceptionListener.php +++ /dev/null @@ -1,26 +0,0 @@ -createDependenciesFor('transport.failover') - ); - - $this->setTransports($transports); - } - - /** - * Create a new FailoverTransport instance. - * - * @param Swift_Transport[] $transports - * - * @return Swift_FailoverTransport - */ - public static function newInstance($transports = array()) - { - return new self($transports); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/FileSpool.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/FileSpool.php deleted file mode 100644 index e458c07..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/FileSpool.php +++ /dev/null @@ -1,201 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/** - * Stores Messages on the filesystem. - * - * @package Swift - * @author Fabien Potencier - * @author Xavier De Cock - */ -class Swift_FileSpool extends Swift_ConfigurableSpool -{ - /** The spool directory */ - private $_path; - - /** - * File WriteRetry Limit - * - * @var int - */ - private $_retryLimit=10; - - /** - * Create a new FileSpool. - * - * @param string $path - * - * @throws Swift_IoException - */ - public function __construct($path) - { - $this->_path = $path; - - if (!file_exists($this->_path)) { - if (!mkdir($this->_path, 0777, true)) { - throw new Swift_IoException('Unable to create Path ['.$this->_path.']'); - } - } - } - - /** - * Tests if this Spool mechanism has started. - * - * @return boolean - */ - public function isStarted() - { - return true; - } - - /** - * Starts this Spool mechanism. - */ - public function start() - { - } - - /** - * Stops this Spool mechanism. - */ - public function stop() - { - } - - /** - * Allow to manage the enqueuing retry limit. - * - * Default, is ten and allows over 64^20 different fileNames - * - * @param integer $limit - */ - public function setRetryLimit($limit) - { - $this->_retryLimit=$limit; - } - - /** - * Queues a message. - * - * @param Swift_Mime_Message $message The message to store - * - * @return boolean - * - * @throws Swift_IoException - */ - public function queueMessage(Swift_Mime_Message $message) - { - $ser = serialize($message); - $fileName = $this->_path . '/' . $this->getRandomString(10); - for ($i = 0; $i < $this->_retryLimit; ++$i) { - /* We try an exclusive creation of the file. This is an atomic operation, it avoid locking mechanism */ - $fp = @fopen($fileName . '.message', 'x'); - if (false !== $fp) { - if (false === fwrite($fp, $ser)) { - return false; - } - - return fclose($fp); - } else { - /* The file already exists, we try a longer fileName */ - $fileName .= $this->getRandomString(1); - } - } - - throw new Swift_IoException('Unable to create a file for enqueuing Message'); - } - - /** - * Execute a recovery if for any reason a process is sending for too long. - * - * @param integer $timeout in second Defaults is for very slow smtp responses - */ - public function recover($timeout = 900) - { - foreach (new DirectoryIterator($this->_path) as $file) { - $file = $file->getRealPath(); - - if (substr($file, - 16) == '.message.sending') { - $lockedtime = filectime($file); - if ((time() - $lockedtime) > $timeout) { - rename($file, substr($file, 0, - 8)); - } - } - } - } - - /** - * Sends messages using the given transport instance. - * - * @param Swift_Transport $transport A transport instance - * @param string[] $failedRecipients An array of failures by-reference - * - * @return integer The number of sent e-mail's - */ - public function flushQueue(Swift_Transport $transport, &$failedRecipients = null) - { - if (!$transport->isStarted()) { - $transport->start(); - } - - $failedRecipients = (array) $failedRecipients; - $count = 0; - $time = time(); - foreach (new DirectoryIterator($this->_path) as $file) { - $file = $file->getRealPath(); - - if (substr($file, -8) != '.message') { - continue; - } - - /* We try a rename, it's an atomic operation, and avoid locking the file */ - if (rename($file, $file.'.sending')) { - $message = unserialize(file_get_contents($file.'.sending')); - - $count += $transport->send($message, $failedRecipients); - - unlink($file.'.sending'); - } else { - /* This message has just been catched by another process */ - continue; - } - - if ($this->getMessageLimit() && $count >= $this->getMessageLimit()) { - break; - } - - if ($this->getTimeLimit() && (time() - $time) >= $this->getTimeLimit()) { - break; - } - } - - return $count; - } - - /** - * Returns a random string needed to generate a fileName for the queue. - * - * @param integer $count - * - * @return string - */ - protected function getRandomString($count) - { - // This string MUST stay FS safe, avoid special chars - $base = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-."; - $ret = ''; - $strlen = strlen($base); - for ($i = 0; $i < $count; ++$i) { - $ret .= $base[((int) rand(0, $strlen - 1))]; - } - - return $ret; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/FileStream.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/FileStream.php deleted file mode 100644 index 567633e..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/FileStream.php +++ /dev/null @@ -1,26 +0,0 @@ -setFile( - new Swift_ByteStream_FileByteStream($path) - ); - - return $image; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/InputByteStream.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/InputByteStream.php deleted file mode 100644 index ae81e5d..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/InputByteStream.php +++ /dev/null @@ -1,77 +0,0 @@ -_stream = $stream; - } - - /** - * Set a string into the cache under $itemKey for the namespace $nsKey. - * - * @see MODE_WRITE, MODE_APPEND - * - * @param string $nsKey - * @param string $itemKey - * @param string $string - * @param integer $mode - */ - public function setString($nsKey, $itemKey, $string, $mode) - { - $this->_prepareCache($nsKey); - switch ($mode) { - case self::MODE_WRITE: - $this->_contents[$nsKey][$itemKey] = $string; - break; - case self::MODE_APPEND: - if (!$this->hasKey($nsKey, $itemKey)) { - $this->_contents[$nsKey][$itemKey] = ''; - } - $this->_contents[$nsKey][$itemKey] .= $string; - break; - default: - throw new Swift_SwiftException( - 'Invalid mode [' . $mode . '] used to set nsKey='. - $nsKey . ', itemKey=' . $itemKey - ); - } - } - - /** - * Set a ByteStream into the cache under $itemKey for the namespace $nsKey. - * - * @see MODE_WRITE, MODE_APPEND - * - * @param string $nsKey - * @param string $itemKey - * @param Swift_OutputByteStream $os - * @param integer $mode - */ - public function importFromByteStream($nsKey, $itemKey, Swift_OutputByteStream $os, $mode) - { - $this->_prepareCache($nsKey); - switch ($mode) { - case self::MODE_WRITE: - $this->clearKey($nsKey, $itemKey); - case self::MODE_APPEND: - if (!$this->hasKey($nsKey, $itemKey)) { - $this->_contents[$nsKey][$itemKey] = ''; - } - while (false !== $bytes = $os->read(8192)) { - $this->_contents[$nsKey][$itemKey] .= $bytes; - } - break; - default: - throw new Swift_SwiftException( - 'Invalid mode [' . $mode . '] used to set nsKey='. - $nsKey . ', itemKey=' . $itemKey - ); - } - } - - /** - * Provides a ByteStream which when written to, writes data to $itemKey. - * - * NOTE: The stream will always write in append mode. - * - * @param string $nsKey - * @param string $itemKey - * @param Swift_InputByteStream $writeThrough - * - * @return Swift_InputByteStream - */ - public function getInputByteStream($nsKey, $itemKey, Swift_InputByteStream $writeThrough = null) - { - $is = clone $this->_stream; - $is->setKeyCache($this); - $is->setNsKey($nsKey); - $is->setItemKey($itemKey); - if (isset($writeThrough)) { - $is->setWriteThroughStream($writeThrough); - } - - return $is; - } - - /** - * Get data back out of the cache as a string. - * - * @param string $nsKey - * @param string $itemKey - * - * @return string - */ - public function getString($nsKey, $itemKey) - { - $this->_prepareCache($nsKey); - if ($this->hasKey($nsKey, $itemKey)) { - return $this->_contents[$nsKey][$itemKey]; - } - } - - /** - * Get data back out of the cache as a ByteStream. - * - * @param string $nsKey - * @param string $itemKey - * @param Swift_InputByteStream $is to write the data to - */ - public function exportToByteStream($nsKey, $itemKey, Swift_InputByteStream $is) - { - $this->_prepareCache($nsKey); - $is->write($this->getString($nsKey, $itemKey)); - } - - /** - * Check if the given $itemKey exists in the namespace $nsKey. - * - * @param string $nsKey - * @param string $itemKey - * - * @return boolean - */ - public function hasKey($nsKey, $itemKey) - { - $this->_prepareCache($nsKey); - - return array_key_exists($itemKey, $this->_contents[$nsKey]); - } - - /** - * Clear data for $itemKey in the namespace $nsKey if it exists. - * - * @param string $nsKey - * @param string $itemKey - */ - public function clearKey($nsKey, $itemKey) - { - unset($this->_contents[$nsKey][$itemKey]); - } - - /** - * Clear all data in the namespace $nsKey if it exists. - * - * @param string $nsKey - */ - public function clearAll($nsKey) - { - unset($this->_contents[$nsKey]); - } - - // -- Private methods - - /** - * Initialize the namespace of $nsKey if needed. - * - * @param string $nsKey - */ - private function _prepareCache($nsKey) - { - if (!array_key_exists($nsKey, $this->_contents)) { - $this->_contents[$nsKey] = array(); - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/KeyCache/DiskKeyCache.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/KeyCache/DiskKeyCache.php deleted file mode 100644 index 740897a..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/KeyCache/DiskKeyCache.php +++ /dev/null @@ -1,328 +0,0 @@ -_stream = $stream; - $this->_path = $path; - - if (function_exists('get_magic_quotes_runtime') && @get_magic_quotes_runtime() == 1) { - $this->_quotes = true; - } - } - - /** - * Set a string into the cache under $itemKey for the namespace $nsKey. - * - * @see MODE_WRITE, MODE_APPEND - * - * @param string $nsKey - * @param string $itemKey - * @param string $string - * @param integer $mode - * - * @throws Swift_IoException - */ - public function setString($nsKey, $itemKey, $string, $mode) - { - $this->_prepareCache($nsKey); - switch ($mode) { - case self::MODE_WRITE: - $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_START); - break; - case self::MODE_APPEND: - $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_END); - break; - default: - throw new Swift_SwiftException( - 'Invalid mode [' . $mode . '] used to set nsKey='. - $nsKey . ', itemKey=' . $itemKey - ); - break; - } - fwrite($fp, $string); - $this->_freeHandle($nsKey, $itemKey); - } - - /** - * Set a ByteStream into the cache under $itemKey for the namespace $nsKey. - * - * @see MODE_WRITE, MODE_APPEND - * - * @param string $nsKey - * @param string $itemKey - * @param Swift_OutputByteStream $os - * @param integer $mode - * - * @throws Swift_IoException - */ - public function importFromByteStream($nsKey, $itemKey, Swift_OutputByteStream $os, $mode) - { - $this->_prepareCache($nsKey); - switch ($mode) { - case self::MODE_WRITE: - $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_START); - break; - case self::MODE_APPEND: - $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_END); - break; - default: - throw new Swift_SwiftException( - 'Invalid mode [' . $mode . '] used to set nsKey='. - $nsKey . ', itemKey=' . $itemKey - ); - break; - } - while (false !== $bytes = $os->read(8192)) { - fwrite($fp, $bytes); - } - $this->_freeHandle($nsKey, $itemKey); - } - - /** - * Provides a ByteStream which when written to, writes data to $itemKey. - * - * NOTE: The stream will always write in append mode. - * - * @param string $nsKey - * @param string $itemKey - * @param Swift_InputByteStream $writeThrough - * - * @return Swift_InputByteStream - */ - public function getInputByteStream($nsKey, $itemKey, Swift_InputByteStream $writeThrough = null) - { - $is = clone $this->_stream; - $is->setKeyCache($this); - $is->setNsKey($nsKey); - $is->setItemKey($itemKey); - if (isset($writeThrough)) { - $is->setWriteThroughStream($writeThrough); - } - - return $is; - } - - /** - * Get data back out of the cache as a string. - * - * @param string $nsKey - * @param string $itemKey - * - * @return string - * - * @throws Swift_IoException - */ - public function getString($nsKey, $itemKey) - { - $this->_prepareCache($nsKey); - if ($this->hasKey($nsKey, $itemKey)) { - $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_START); - if ($this->_quotes) { - ini_set('magic_quotes_runtime', 0); - } - $str = ''; - while (!feof($fp) && false !== $bytes = fread($fp, 8192)) { - $str .= $bytes; - } - if ($this->_quotes) { - ini_set('magic_quotes_runtime', 1); - } - $this->_freeHandle($nsKey, $itemKey); - - return $str; - } - } - - /** - * Get data back out of the cache as a ByteStream. - * - * @param string $nsKey - * @param string $itemKey - * @param Swift_InputByteStream $is to write the data to - */ - public function exportToByteStream($nsKey, $itemKey, Swift_InputByteStream $is) - { - if ($this->hasKey($nsKey, $itemKey)) { - $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_START); - if ($this->_quotes) { - ini_set('magic_quotes_runtime', 0); - } - while (!feof($fp) && false !== $bytes = fread($fp, 8192)) { - $is->write($bytes); - } - if ($this->_quotes) { - ini_set('magic_quotes_runtime', 1); - } - $this->_freeHandle($nsKey, $itemKey); - } - } - - /** - * Check if the given $itemKey exists in the namespace $nsKey. - * - * @param string $nsKey - * @param string $itemKey - * - * @return boolean - */ - public function hasKey($nsKey, $itemKey) - { - return is_file($this->_path . '/' . $nsKey . '/' . $itemKey); - } - - /** - * Clear data for $itemKey in the namespace $nsKey if it exists. - * - * @param string $nsKey - * @param string $itemKey - */ - public function clearKey($nsKey, $itemKey) - { - if ($this->hasKey($nsKey, $itemKey)) { - $this->_freeHandle($nsKey, $itemKey); - unlink($this->_path . '/' . $nsKey . '/' . $itemKey); - } - } - - /** - * Clear all data in the namespace $nsKey if it exists. - * - * @param string $nsKey - */ - public function clearAll($nsKey) - { - if (array_key_exists($nsKey, $this->_keys)) { - foreach ($this->_keys[$nsKey] as $itemKey=>$null) { - $this->clearKey($nsKey, $itemKey); - } - if (is_dir($this->_path . '/' . $nsKey)) { - rmdir($this->_path . '/' . $nsKey); - } - unset($this->_keys[$nsKey]); - } - } - - // -- Private methods - - /** - * Initialize the namespace of $nsKey if needed. - * - * @param string $nsKey - */ - private function _prepareCache($nsKey) - { - $cacheDir = $this->_path . '/' . $nsKey; - if (!is_dir($cacheDir)) { - if (!mkdir($cacheDir)) { - throw new Swift_IoException('Failed to create cache directory ' . $cacheDir); - } - $this->_keys[$nsKey] = array(); - } - } - - /** - * Get a file handle on the cache item. - * - * @param string $nsKey - * @param string $itemKey - * @param integer $position - * - * @return resource - */ - private function _getHandle($nsKey, $itemKey, $position) - { - if (!isset($this->_keys[$nsKey][$itemKey])) { - $openMode = $this->hasKey($nsKey, $itemKey) - ? 'r+b' - : 'w+b' - ; - $fp = fopen($this->_path . '/' . $nsKey . '/' . $itemKey, $openMode); - $this->_keys[$nsKey][$itemKey] = $fp; - } - if (self::POSITION_START == $position) { - fseek($this->_keys[$nsKey][$itemKey], 0, SEEK_SET); - } elseif (self::POSITION_END == $position) { - fseek($this->_keys[$nsKey][$itemKey], 0, SEEK_END); - } - - return $this->_keys[$nsKey][$itemKey]; - } - - private function _freeHandle($nsKey, $itemKey) - { - $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_CURRENT); - fclose($fp); - $this->_keys[$nsKey][$itemKey] = null; - } - - /** - * Destructor. - */ - public function __destruct() - { - foreach ($this->_keys as $nsKey=>$null) { - $this->clearAll($nsKey); - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/KeyCache/KeyCacheInputStream.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/KeyCache/KeyCacheInputStream.php deleted file mode 100644 index f4f8adb..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/KeyCache/KeyCacheInputStream.php +++ /dev/null @@ -1,53 +0,0 @@ -_keyCache = $keyCache; - } - - /** - * Specify a stream to write through for each write(). - * - * @param Swift_InputByteStream $is - */ - public function setWriteThroughStream(Swift_InputByteStream $is) - { - $this->_writeThrough = $is; - } - - /** - * Writes $bytes to the end of the stream. - * - * @param string $bytes - * @param Swift_InputByteStream $is optional - */ - public function write($bytes, Swift_InputByteStream $is = null) - { - $this->_keyCache->setString( - $this->_nsKey, $this->_itemKey, $bytes, Swift_KeyCache::MODE_APPEND - ); - if (isset($is)) { - $is->write($bytes); - } - if (isset($this->_writeThrough)) { - $this->_writeThrough->write($bytes); - } - } - - /** - * Not used. - */ - public function commit() - { - } - - /** - * Not used. - */ - public function bind(Swift_InputByteStream $is) - { - } - - /** - * Not used. - */ - public function unbind(Swift_InputByteStream $is) - { - } - - /** - * Flush the contents of the stream (empty it) and set the internal pointer - * to the beginning. - */ - public function flushBuffers() - { - $this->_keyCache->clearKey($this->_nsKey, $this->_itemKey); - } - - /** - * Set the nsKey which will be written to. - * - * @param string $nsKey - */ - public function setNsKey($nsKey) - { - $this->_nsKey = $nsKey; - } - - /** - * Set the itemKey which will be written to. - * - * @param string $itemKey - */ - public function setItemKey($itemKey) - { - $this->_itemKey = $itemKey; - } - - /** - * Any implementation should be cloneable, allowing the clone to access a - * separate $nsKey and $itemKey. - */ - public function __clone() - { - $this->_writeThrough = null; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/LoadBalancedTransport.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/LoadBalancedTransport.php deleted file mode 100644 index 6eb3db7..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/LoadBalancedTransport.php +++ /dev/null @@ -1,47 +0,0 @@ -createDependenciesFor('transport.loadbalanced') - ); - - $this->setTransports($transports); - } - - /** - * Create a new LoadBalancedTransport instance. - * - * @param array $transports - * - * @return Swift_LoadBalancedTransport - */ - public static function newInstance($transports = array()) - { - return new self($transports); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/MailTransport.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/MailTransport.php deleted file mode 100644 index 6c57939..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/MailTransport.php +++ /dev/null @@ -1,47 +0,0 @@ -createDependenciesFor('transport.mail') - ); - - $this->setExtraParams($extraParams); - } - - /** - * Create a new MailTransport instance. - * - * @param string $extraParams To be passed to mail() - * - * @return Swift_MailTransport - */ - public static function newInstance($extraParams = '-f%s') - { - return new self($extraParams); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mailer.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mailer.php deleted file mode 100644 index b6703de..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mailer.php +++ /dev/null @@ -1,115 +0,0 @@ -_transport = $transport; - } - - /** - * Create a new Mailer instance. - * - * @param Swift_Transport $transport - * - * @return Swift_Mailer - */ - public static function newInstance(Swift_Transport $transport) - { - return new self($transport); - } - - /** - * Create a new class instance of one of the message services. - * - * For example 'mimepart' would create a 'message.mimepart' instance - * - * @param string $service - * - * @return object - */ - public function createMessage($service = 'message') - { - return Swift_DependencyContainer::getInstance() - ->lookup('message.'.$service); - } - - /** - * Send the given Message like it would be sent in a mail client. - * - * All recipients (with the exception of Bcc) will be able to see the other - * recipients this message was sent to. - * - * Recipient/sender data will be retrieved from the Message object. - * - * The return value is the number of recipients who were accepted for - * delivery. - * - * @param Swift_Mime_Message $message - * @param array $failedRecipients An array of failures by-reference - * - * @return integer - */ - public function send(Swift_Mime_Message $message, &$failedRecipients = null) - { - $failedRecipients = (array) $failedRecipients; - - if (!$this->_transport->isStarted()) { - $this->_transport->start(); - } - - $sent = 0; - - try { - $sent = $this->_transport->send($message, $failedRecipients); - } catch (Swift_RfcComplianceException $e) { - foreach ($message->getTo() as $address => $name) { - $failedRecipients[] = $address; - } - } - - return $sent; - } - - /** - * Register a plugin using a known unique key (e.g. myPlugin). - * - * @param Swift_Events_EventListener $plugin - */ - public function registerPlugin(Swift_Events_EventListener $plugin) - { - $this->_transport->registerPlugin($plugin); - } - - /** - * The Transport used to send messages. - * - * @return Swift_Transport - */ - public function getTransport() - { - return $this->_transport; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mailer/ArrayRecipientIterator.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mailer/ArrayRecipientIterator.php deleted file mode 100644 index 37e98da..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mailer/ArrayRecipientIterator.php +++ /dev/null @@ -1,57 +0,0 @@ -_recipients = $recipients; - } - - /** - * Returns true only if there are more recipients to send to. - * - * @return boolean - */ - public function hasNext() - { - return !empty($this->_recipients); - } - - /** - * Returns an array where the keys are the addresses of recipients and the - * values are the names. e.g. ('foo@bar' => 'Foo') or ('foo@bar' => NULL) - * - * @return array - */ - public function nextRecipient() - { - return array_splice($this->_recipients, 0, 1); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mailer/RecipientIterator.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mailer/RecipientIterator.php deleted file mode 100644 index 073bce1..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mailer/RecipientIterator.php +++ /dev/null @@ -1,34 +0,0 @@ - 'Foo') or ('foo@bar' => NULL) - * - * @return array - */ - public function nextRecipient(); -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/MemorySpool.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/MemorySpool.php deleted file mode 100644 index 764b5aa..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/MemorySpool.php +++ /dev/null @@ -1,84 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/** - * Stores Messages in memory. - * - * @package Swift - * @author Fabien Potencier - */ -class Swift_MemorySpool implements Swift_Spool -{ - protected $messages = array(); - - /** - * Tests if this Transport mechanism has started. - * - * @return boolean - */ - public function isStarted() - { - return true; - } - - /** - * Starts this Transport mechanism. - */ - public function start() - { - } - - /** - * Stops this Transport mechanism. - */ - public function stop() - { - } - - /** - * Stores a message in the queue. - * - * @param Swift_Mime_Message $message The message to store - * - * @return boolean Whether the operation has succeeded - */ - public function queueMessage(Swift_Mime_Message $message) - { - $this->messages[] = $message; - - return true; - } - - /** - * Sends messages using the given transport instance. - * - * @param Swift_Transport $transport A transport instance - * @param string[] $failedRecipients An array of failures by-reference - * - * @return integer The number of sent emails - */ - public function flushQueue(Swift_Transport $transport, &$failedRecipients = null) - { - if (!$this->messages) { - return 0; - } - - if (!$transport->isStarted()) { - $transport->start(); - } - - $count = 0; - while ($message = array_pop($this->messages)) { - $count += $transport->send($message, $failedRecipients); - } - - return $count; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Message.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Message.php deleted file mode 100644 index 158ea25..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Message.php +++ /dev/null @@ -1,85 +0,0 @@ -createDependenciesFor('mime.message') - ); - - if (!isset($charset)) { - $charset = Swift_DependencyContainer::getInstance() - ->lookup('properties.charset'); - } - $this->setSubject($subject); - $this->setBody($body); - $this->setCharset($charset); - if ($contentType) { - $this->setContentType($contentType); - } - } - - /** - * Create a new Message. - * - * @param string $subject - * @param string $body - * @param string $contentType - * @param string $charset - * - * @return Swift_Message - */ - public static function newInstance($subject = null, $body = null, $contentType = null, $charset = null) - { - return new self($subject, $body, $contentType, $charset); - } - - /** - * Add a MimePart to this Message. - * - * @param string|Swift_OutputByteStream $body - * @param string $contentType - * @param string $charset - * - * @return Swift_Mime_SimpleMessage - */ - public function addPart($body, $contentType = null, $charset = null) - { - return $this->attach(Swift_MimePart::newInstance( - $body, $contentType, $charset - )); - } - - public function __wakeup() - { - Swift_DependencyContainer::getInstance()->createDependenciesFor('mime.message'); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Attachment.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Attachment.php deleted file mode 100644 index faf358f..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Attachment.php +++ /dev/null @@ -1,155 +0,0 @@ -setDisposition('attachment'); - $this->setContentType('application/octet-stream'); - $this->_mimeTypes = $mimeTypes; - } - - /** - * Get the nesting level used for this attachment. - * - * Always returns {@link LEVEL_MIXED}. - * - * @return integer - */ - public function getNestingLevel() - { - return self::LEVEL_MIXED; - } - - /** - * Get the Content-Disposition of this attachment. - * - * By default attachments have a disposition of "attachment". - * - * @return string - */ - public function getDisposition() - { - return $this->_getHeaderFieldModel('Content-Disposition'); - } - - /** - * Set the Content-Disposition of this attachment. - * - * @param string $disposition - * - * @return Swift_Mime_Attachment - */ - public function setDisposition($disposition) - { - if (!$this->_setHeaderFieldModel('Content-Disposition', $disposition)) { - $this->getHeaders()->addParameterizedHeader( - 'Content-Disposition', $disposition - ); - } - - return $this; - } - - /** - * Get the filename of this attachment when downloaded. - * - * @return string - */ - public function getFilename() - { - return $this->_getHeaderParameter('Content-Disposition', 'filename'); - } - - /** - * Set the filename of this attachment. - * - * @param string $filename - * - * @return Swift_Mime_Attachment - */ - public function setFilename($filename) - { - $this->_setHeaderParameter('Content-Disposition', 'filename', $filename); - $this->_setHeaderParameter('Content-Type', 'name', $filename); - - return $this; - } - - /** - * Get the file size of this attachment. - * - * @return integer - */ - public function getSize() - { - return $this->_getHeaderParameter('Content-Disposition', 'size'); - } - - /** - * Set the file size of this attachment. - * - * @param integer $size - * - * @return Swift_Mime_Attachment - */ - public function setSize($size) - { - $this->_setHeaderParameter('Content-Disposition', 'size', $size); - - return $this; - } - - /** - * Set the file that this attachment is for. - * - * @param Swift_FileStream $file - * @param string $contentType optional - * - * @return Swift_Mime_Attachment - */ - public function setFile(Swift_FileStream $file, $contentType = null) - { - $this->setFilename(basename($file->getPath())); - $this->setBody($file, $contentType); - if (!isset($contentType)) { - $extension = strtolower(substr( - $file->getPath(), strrpos($file->getPath(), '.') + 1 - )); - - if (array_key_exists($extension, $this->_mimeTypes)) { - $this->setContentType($this->_mimeTypes[$extension]); - } - } - - return $this; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/CharsetObserver.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/CharsetObserver.php deleted file mode 100644 index bfd41ed..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/CharsetObserver.php +++ /dev/null @@ -1,26 +0,0 @@ -= $maxLineLength || 76 < $maxLineLength) { - $maxLineLength = 76; - } - - $remainder = 0; - - while (false !== $bytes = $os->read(8190)) { - $encoded = base64_encode($bytes); - $encodedTransformed = ''; - $thisMaxLineLength = $maxLineLength - $remainder - $firstLineOffset; - - while ($thisMaxLineLength < strlen($encoded)) { - $encodedTransformed .= substr($encoded, 0, $thisMaxLineLength) . "\r\n"; - $firstLineOffset = 0; - $encoded = substr($encoded, $thisMaxLineLength); - $thisMaxLineLength = $maxLineLength; - $remainder = 0; - } - - if (0 < $remainingLength = strlen($encoded)) { - $remainder += $remainingLength; - $encodedTransformed .= $encoded; - $encoded = null; - } - - $is->write($encodedTransformed); - } - } - - /** - * Get the name of this encoding scheme. - * Returns the string 'base64'. - * - * @return string - */ - public function getName() - { - return 'base64'; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/NativeQpContentEncoder.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/NativeQpContentEncoder.php deleted file mode 100644 index 6a8ea68..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/NativeQpContentEncoder.php +++ /dev/null @@ -1,75 +0,0 @@ -read(8192)) { - $string .= $bytes; - } - - $is->write($this->encodeString($string)); - } - - /** - * Get the MIME name of this content encoding scheme. - * - * @return string - */ - public function getName() - { - return 'quoted-printable'; - } - - /** - * Encode a given string to produce an encoded string. - * - * @param string $string - * @param integer $firstLineOffset if first line needs to be shorter - * @param integer $maxLineLength 0 indicates the default length for this encoding - * - * @return string - */ - public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) - { - return quoted_printable_encode($string); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/PlainContentEncoder.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/PlainContentEncoder.php deleted file mode 100644 index a1df77b..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/PlainContentEncoder.php +++ /dev/null @@ -1,167 +0,0 @@ -_name = $name; - $this->_canonical = $canonical; - } - - /** - * Encode a given string to produce an encoded string. - * - * @param string $string - * @param integer $firstLineOffset ignored - * @param integer $maxLineLength - 0 means no wrapping will occur - * - * @return string - */ - public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) - { - if ($this->_canonical) { - $string = $this->_canonicalize($string); - } - - return $this->_safeWordWrap($string, $maxLineLength, "\r\n"); - } - - /** - * Encode stream $in to stream $out. - * - * @param Swift_OutputByteStream $os - * @param Swift_InputByteStream $is - * @param integer $firstLineOffset ignored - * @param integer $maxLineLength optional, 0 means no wrapping will occur - */ - public function encodeByteStream(Swift_OutputByteStream $os, Swift_InputByteStream $is, $firstLineOffset = 0, $maxLineLength = 0) - { - $leftOver = ''; - while (false !== $bytes = $os->read(8192)) { - $toencode = $leftOver . $bytes; - if ($this->_canonical) { - $toencode = $this->_canonicalize($toencode); - } - $wrapped = $this->_safeWordWrap($toencode, $maxLineLength, "\r\n"); - $lastLinePos = strrpos($wrapped, "\r\n"); - $leftOver = substr($wrapped, $lastLinePos); - $wrapped = substr($wrapped, 0, $lastLinePos); - - $is->write($wrapped); - } - if (strlen($leftOver)) { - $is->write($leftOver); - } - } - - /** - * Get the name of this encoding scheme. - * - * @return string - */ - public function getName() - { - return $this->_name; - } - - /** - * Not used. - */ - public function charsetChanged($charset) - { - } - - // -- Private methods - - /** - * A safer (but weaker) wordwrap for unicode. - * - * @param string $string - * @param integer $length - * @param string $le - * - * @return string - */ - private function _safeWordwrap($string, $length = 75, $le = "\r\n") - { - if (0 >= $length) { - return $string; - } - - $originalLines = explode($le, $string); - - $lines = array(); - $lineCount = 0; - - foreach ($originalLines as $originalLine) { - $lines[] = ''; - $currentLine =& $lines[$lineCount++]; - - //$chunks = preg_split('/(?<=[\ \t,\.!\?\-&\+\/])/', $originalLine); - $chunks = preg_split('/(?<=\s)/', $originalLine); - - foreach ($chunks as $chunk) { - if (0 != strlen($currentLine) - && strlen($currentLine . $chunk) > $length) - { - $lines[] = ''; - $currentLine =& $lines[$lineCount++]; - } - $currentLine .= $chunk; - } - } - - return implode("\r\n", $lines); - } - - /** - * Canonicalize string input (fix CRLF). - * - * @param string $string - * - * @return string - */ - private function _canonicalize($string) - { - return str_replace( - array("\r\n", "\r", "\n"), - array("\n", "\n", "\r\n"), - $string - ); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoder.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoder.php deleted file mode 100644 index 46d356c..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoder.php +++ /dev/null @@ -1,125 +0,0 @@ -_dotEscape = $dotEscape; - parent::__construct($charStream, $filter); - } - - public function __sleep() - { - return array('_charStream', '_filter', '_dotEscape'); - } - - protected function getSafeMapShareId() - { - return get_class($this).($this->_dotEscape ? '.dotEscape' : ''); - } - - protected function initSafeMap() - { - parent::initSafeMap(); - if ($this->_dotEscape) { - /* Encode . as =2e for buggy remote servers */ - unset($this->_safeMap[0x2e]); - } - } - - /** - * Encode stream $in to stream $out. - * - * QP encoded strings have a maximum line length of 76 characters. - * If the first line needs to be shorter, indicate the difference with - * $firstLineOffset. - * - * @param Swift_OutputByteStream $os output stream - * @param Swift_InputByteStream $is input stream - * @param integer $firstLineOffset - * @param integer $maxLineLength - */ - public function encodeByteStream(Swift_OutputByteStream $os, Swift_InputByteStream $is, $firstLineOffset = 0, $maxLineLength = 0) - { - if ($maxLineLength > 76 || $maxLineLength <= 0) { - $maxLineLength = 76; - } - - $thisLineLength = $maxLineLength - $firstLineOffset; - - $this->_charStream->flushContents(); - $this->_charStream->importByteStream($os); - - $currentLine = ''; - $prepend = ''; - $size=$lineLen=0; - - while (false !== $bytes = $this->_nextSequence()) { - //If we're filtering the input - if (isset($this->_filter)) { - //If we can't filter because we need more bytes - while ($this->_filter->shouldBuffer($bytes)) { - //Then collect bytes into the buffer - if (false === $moreBytes = $this->_nextSequence(1)) { - break; - } - - foreach ($moreBytes as $b) { - $bytes[] = $b; - } - } - //And filter them - $bytes = $this->_filter->filter($bytes); - } - - $enc = $this->_encodeByteSequence($bytes, $size); - if ($currentLine && $lineLen+$size >= $thisLineLength) { - $is->write($prepend . $this->_standardize($currentLine)); - $currentLine = ''; - $prepend = "=\r\n"; - $thisLineLength = $maxLineLength; - $lineLen=0; - } - $lineLen+=$size; - $currentLine .= $enc; - } - if (strlen($currentLine)) { - $is->write($prepend . $this->_standardize($currentLine)); - } - } - - /** - * Get the name of this encoding scheme. - * Returns the string 'quoted-printable'. - * - * @return string - */ - public function getName() - { - return 'quoted-printable'; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/RawContentEncoder.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/RawContentEncoder.php deleted file mode 100644 index 8f1f9b5..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ContentEncoder/RawContentEncoder.php +++ /dev/null @@ -1,65 +0,0 @@ - - */ -class Swift_Mime_ContentEncoder_RawContentEncoder implements Swift_Mime_ContentEncoder -{ - /** - * Encode a given string to produce an encoded string. - * - * @param string $string - * @param int $firstLineOffset ignored - * @param int $maxLineLength ignored - * @return string - */ - public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) - { - return $string; - } - - /** - * Encode stream $in to stream $out. - * - * @param Swift_OutputByteStream $in - * @param Swift_InputByteStream $out - * @param int $firstLineOffset ignored - * @param int $maxLineLength ignored - */ - public function encodeByteStream(Swift_OutputByteStream $os, Swift_InputByteStream $is, $firstLineOffset = 0, $maxLineLength = 0) - { - while (false !== ($bytes = $os->read(8192))) { - $is->write($bytes); - } - } - - /** - * Get the name of this encoding scheme. - * - * @return string - */ - public function getName() - { - return 'raw'; - } - - /** - * Not used. - */ - public function charsetChanged($charset) - { - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/EmbeddedFile.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/EmbeddedFile.php deleted file mode 100644 index 05e06e2..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/EmbeddedFile.php +++ /dev/null @@ -1,47 +0,0 @@ -setDisposition('inline'); - $this->setId($this->getId()); - } - - /** - * Get the nesting level of this EmbeddedFile. - * - * Returns {@see LEVEL_RELATED}. - * - * @return integer - */ - public function getNestingLevel() - { - return self::LEVEL_RELATED; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/EncodingObserver.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/EncodingObserver.php deleted file mode 100644 index e7e6f20..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/EncodingObserver.php +++ /dev/null @@ -1,26 +0,0 @@ -init(); - } - - public function __wakeup() - { - $this->init(); - } - - protected function init() - { - if (count(self::$_specials) > 0) { - return; - } - - self::$_specials = array( - '(', ')', '<', '>', '[', ']', - ':', ';', '@', ',', '.', '"' - ); - - /*** Refer to RFC 2822 for ABNF grammar ***/ - - //All basic building blocks - self::$_grammar['NO-WS-CTL'] = '[\x01-\x08\x0B\x0C\x0E-\x19\x7F]'; - self::$_grammar['WSP'] = '[ \t]'; - self::$_grammar['CRLF'] = '(?:\r\n)'; - self::$_grammar['FWS'] = '(?:(?:' . self::$_grammar['WSP'] . '*' . - self::$_grammar['CRLF'] . ')?' . self::$_grammar['WSP'] . ')'; - self::$_grammar['text'] = '[\x00-\x08\x0B\x0C\x0E-\x7F]'; - self::$_grammar['quoted-pair'] = '(?:\\\\' . self::$_grammar['text'] . ')'; - self::$_grammar['ctext'] = '(?:' . self::$_grammar['NO-WS-CTL'] . - '|[\x21-\x27\x2A-\x5B\x5D-\x7E])'; - //Uses recursive PCRE (?1) -- could be a weak point?? - self::$_grammar['ccontent'] = '(?:' . self::$_grammar['ctext'] . '|' . - self::$_grammar['quoted-pair'] . '|(?1))'; - self::$_grammar['comment'] = '(\((?:' . self::$_grammar['FWS'] . '|' . - self::$_grammar['ccontent']. ')*' . self::$_grammar['FWS'] . '?\))'; - self::$_grammar['CFWS'] = '(?:(?:' . self::$_grammar['FWS'] . '?' . - self::$_grammar['comment'] . ')*(?:(?:' . self::$_grammar['FWS'] . '?' . - self::$_grammar['comment'] . ')|' . self::$_grammar['FWS'] . '))'; - self::$_grammar['qtext'] = '(?:' . self::$_grammar['NO-WS-CTL'] . - '|[\x21\x23-\x5B\x5D-\x7E])'; - self::$_grammar['qcontent'] = '(?:' . self::$_grammar['qtext'] . '|' . - self::$_grammar['quoted-pair'] . ')'; - self::$_grammar['quoted-string'] = '(?:' . self::$_grammar['CFWS'] . '?"' . - '(' . self::$_grammar['FWS'] . '?' . self::$_grammar['qcontent'] . ')*' . - self::$_grammar['FWS'] . '?"' . self::$_grammar['CFWS'] . '?)'; - self::$_grammar['atext'] = '[a-zA-Z0-9!#\$%&\'\*\+\-\/=\?\^_`\{\}\|~]'; - self::$_grammar['atom'] = '(?:' . self::$_grammar['CFWS'] . '?' . - self::$_grammar['atext'] . '+' . self::$_grammar['CFWS'] . '?)'; - self::$_grammar['dot-atom-text'] = '(?:' . self::$_grammar['atext'] . '+' . - '(\.' . self::$_grammar['atext'] . '+)*)'; - self::$_grammar['dot-atom'] = '(?:' . self::$_grammar['CFWS'] . '?' . - self::$_grammar['dot-atom-text'] . '+' . self::$_grammar['CFWS'] . '?)'; - self::$_grammar['word'] = '(?:' . self::$_grammar['atom'] . '|' . - self::$_grammar['quoted-string'] . ')'; - self::$_grammar['phrase'] = '(?:' . self::$_grammar['word'] . '+?)'; - self::$_grammar['no-fold-quote'] = '(?:"(?:' . self::$_grammar['qtext'] . - '|' . self::$_grammar['quoted-pair'] . ')*")'; - self::$_grammar['dtext'] = '(?:' . self::$_grammar['NO-WS-CTL'] . - '|[\x21-\x5A\x5E-\x7E])'; - self::$_grammar['no-fold-literal'] = '(?:\[(?:' . self::$_grammar['dtext'] . - '|' . self::$_grammar['quoted-pair'] . ')*\])'; - - //Message IDs - self::$_grammar['id-left'] = '(?:' . self::$_grammar['dot-atom-text'] . '|' . - self::$_grammar['no-fold-quote'] . ')'; - self::$_grammar['id-right'] = '(?:' . self::$_grammar['dot-atom-text'] . '|' . - self::$_grammar['no-fold-literal'] . ')'; - - //Addresses, mailboxes and paths - self::$_grammar['local-part'] = '(?:' . self::$_grammar['dot-atom'] . '|' . - self::$_grammar['quoted-string'] . ')'; - self::$_grammar['dcontent'] = '(?:' . self::$_grammar['dtext'] . '|' . - self::$_grammar['quoted-pair'] . ')'; - self::$_grammar['domain-literal'] = '(?:' . self::$_grammar['CFWS'] . '?\[(' . - self::$_grammar['FWS'] . '?' . self::$_grammar['dcontent'] . ')*?' . - self::$_grammar['FWS'] . '?\]' . self::$_grammar['CFWS'] . '?)'; - self::$_grammar['domain'] = '(?:' . self::$_grammar['dot-atom'] . '|' . - self::$_grammar['domain-literal'] . ')'; - self::$_grammar['addr-spec'] = '(?:' . self::$_grammar['local-part'] . '@' . - self::$_grammar['domain'] . ')'; - } - - /** - * Get the grammar defined for $name token. - * - * @param string $name exactly as written in the RFC - * - * @return string - */ - public function getDefinition($name) - { - if (array_key_exists($name, self::$_grammar)) { - return self::$_grammar[$name]; - } else { - throw new Swift_RfcComplianceException( - "No such grammar '" . $name . "' defined." - ); - } - } - - /** - * Returns the tokens defined in RFC 2822 (and some related RFCs). - * - * @return array - */ - public function getGrammarDefinitions() - { - return self::$_grammar; - } - - /** - * Returns the current special characters used in the syntax which need to be escaped. - * - * @return array - */ - public function getSpecials() - { - return self::$_specials; - } - - /** - * Escape special characters in a string (convert to quoted-pairs). - * - * @param string $token - * @param string[] $include additional chars to escape - * @param string[] $exclude chars from escaping - * - * @return string - */ - public function escapeSpecials($token, $include = array(), $exclude = array()) - { - foreach (array_merge(array('\\'), array_diff(self::$_specials, $exclude), $include) as $char) { - $token = str_replace($char, '\\' . $char, $token); - } - - return $token; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Header.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Header.php deleted file mode 100644 index 55d3ab8..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Header.php +++ /dev/null @@ -1,95 +0,0 @@ -getName(), "\r\n"); - mb_internal_encoding($old); - - return $newstring; - } - - return parent::encodeString($string, $firstLineOffset, $maxLineLength); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/HeaderEncoder/QpHeaderEncoder.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/HeaderEncoder/QpHeaderEncoder.php deleted file mode 100644 index c9bbe71..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/HeaderEncoder/QpHeaderEncoder.php +++ /dev/null @@ -1,67 +0,0 @@ -_safeMap[$byte] = chr($byte); - } - } - - /** - * Get the name of this encoding scheme. - * - * Returns the string 'Q'. - * - * @return string - */ - public function getName() - { - return 'Q'; - } - - /** - * Takes an unencoded string and produces a QP encoded string from it. - * - * @param string $string string to encode - * @param integer $firstLineOffset optional - * @param integer $maxLineLength optional, 0 indicates the default of 76 chars - * - * @return string - */ - public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0) - { - return str_replace(array(' ', '=20', "=\r\n"), array('_', '_', "\r\n"), - parent::encodeString($string, $firstLineOffset, $maxLineLength) - ); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/HeaderFactory.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/HeaderFactory.php deleted file mode 100644 index 7cab133..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/HeaderFactory.php +++ /dev/null @@ -1,80 +0,0 @@ -setGrammar($grammar); - } - - /** - * Set the character set used in this Header. - * - * @param string $charset - */ - public function setCharset($charset) - { - $this->clearCachedValueIf($charset != $this->_charset); - $this->_charset = $charset; - if (isset($this->_encoder)) { - $this->_encoder->charsetChanged($charset); - } - } - - /** - * Get the character set used in this Header. - * - * @return string - */ - public function getCharset() - { - return $this->_charset; - } - - /** - * Set the language used in this Header. - * - * For example, for US English, 'en-us'. - * This can be unspecified. - * - * @param string $lang - */ - public function setLanguage($lang) - { - $this->clearCachedValueIf($this->_lang != $lang); - $this->_lang = $lang; - } - - /** - * Get the language used in this Header. - * - * @return string - */ - public function getLanguage() - { - return $this->_lang; - } - - /** - * Set the encoder used for encoding the header. - * - * @param Swift_Mime_HeaderEncoder $encoder - */ - public function setEncoder(Swift_Mime_HeaderEncoder $encoder) - { - $this->_encoder = $encoder; - $this->setCachedValue(null); - } - - /** - * Get the encoder used for encoding this Header. - * - * @return Swift_Mime_HeaderEncoder - */ - public function getEncoder() - { - return $this->_encoder; - } - - /** - * Set the grammar used for the header. - * - * @param Swift_Mime_Grammar $grammar - */ - public function setGrammar(Swift_Mime_Grammar $grammar) - { - $this->_grammar = $grammar; - $this->setCachedValue(null); - } - - /** - * Get the grammar used for this Header. - * - * @return Swift_Mime_Grammar - */ - public function getGrammar() - { - return $this->_grammar; - } - - /** - * Get the name of this header (e.g. charset). - * - * @return string - */ - public function getFieldName() - { - return $this->_name; - } - - /** - * Set the maximum length of lines in the header (excluding EOL). - * - * @param integer $lineLength - */ - public function setMaxLineLength($lineLength) - { - $this->clearCachedValueIf($this->_lineLength != $lineLength); - $this->_lineLength = $lineLength; - } - - /** - * Get the maximum permitted length of lines in this Header. - * - * @return int - */ - public function getMaxLineLength() - { - return $this->_lineLength; - } - - /** - * Get this Header rendered as a RFC 2822 compliant string. - * - * @return string - * - * @throws Swift_RfcComplianceException - */ - public function toString() - { - return $this->_tokensToString($this->toTokens()); - } - - /** - * Returns a string representation of this object. - * - * @return string - * - * @see toString() - */ - public function __toString() - { - return $this->toString(); - } - - // -- Points of extension - - /** - * Set the name of this Header field. - * - * @param string $name - */ - protected function setFieldName($name) - { - $this->_name = $name; - } - - /** - * Produces a compliant, formatted RFC 2822 'phrase' based on the string given. - * - * @param Swift_Mime_Header $header - * @param string $string as displayed - * @param string $charset of the text - * @param Swift_Mime_HeaderEncoder $encoder - * @param boolean $shorten the first line to make remove for header name - * - * @return string - */ - protected function createPhrase(Swift_Mime_Header $header, $string, $charset, Swift_Mime_HeaderEncoder $encoder = null, $shorten = false) - { - //Treat token as exactly what was given - $phraseStr = $string; - //If it's not valid - if (!preg_match('/^' . $this->getGrammar()->getDefinition('phrase') . '$/D', $phraseStr)) { - // .. but it is just ascii text, try escaping some characters - // and make it a quoted-string - if (preg_match('/^' . $this->getGrammar()->getDefinition('text') . '*$/D', $phraseStr)) { - $phraseStr = $this->getGrammar()->escapeSpecials( - $phraseStr, array('"'), $this->getGrammar()->getSpecials() - ); - $phraseStr = '"' . $phraseStr . '"'; - } else { // ... otherwise it needs encoding - //Determine space remaining on line if first line - if ($shorten) { - $usedLength = strlen($header->getFieldName() . ': '); - } else { - $usedLength = 0; - } - $phraseStr = $this->encodeWords($header, $string, $usedLength); - } - } - - return $phraseStr; - } - - /** - * Encode needed word tokens within a string of input. - * - * @param Swift_Mime_Header $header - * @param string $input - * @param string $usedLength optional - * - * @return string - */ - protected function encodeWords(Swift_Mime_Header $header, $input, $usedLength = -1) - { - $value = ''; - - $tokens = $this->getEncodableWordTokens($input); - - foreach ($tokens as $token) { - //See RFC 2822, Sect 2.2 (really 2.2 ??) - if ($this->tokenNeedsEncoding($token)) { - //Don't encode starting WSP - $firstChar = substr($token, 0, 1); - switch ($firstChar) { - case ' ': - case "\t": - $value .= $firstChar; - $token = substr($token, 1); - } - - if (-1 == $usedLength) { - $usedLength = strlen($header->getFieldName() . ': ') + strlen($value); - } - $value .= $this->getTokenAsEncodedWord($token, $usedLength); - - $header->setMaxLineLength(76); //Forcefully override - } else { - $value .= $token; - } - } - - return $value; - } - - /** - * Test if a token needs to be encoded or not. - * - * @param string $token - * - * @return boolean - */ - protected function tokenNeedsEncoding($token) - { - return preg_match('~[\x00-\x08\x10-\x19\x7F-\xFF\r\n]~', $token); - } - - /** - * Splits a string into tokens in blocks of words which can be encoded quickly. - * - * @param string $string - * - * @return string[] - */ - protected function getEncodableWordTokens($string) - { - $tokens = array(); - - $encodedToken = ''; - //Split at all whitespace boundaries - foreach (preg_split('~(?=[\t ])~', $string) as $token) { - if ($this->tokenNeedsEncoding($token)) { - $encodedToken .= $token; - } else { - if (strlen($encodedToken) > 0) { - $tokens[] = $encodedToken; - $encodedToken = ''; - } - $tokens[] = $token; - } - } - if (strlen($encodedToken)) { - $tokens[] = $encodedToken; - } - - return $tokens; - } - - /** - * Get a token as an encoded word for safe insertion into headers. - * - * @param string $token token to encode - * @param integer $firstLineOffset optional - * - * @return string - */ - protected function getTokenAsEncodedWord($token, $firstLineOffset = 0) - { - //Adjust $firstLineOffset to account for space needed for syntax - $charsetDecl = $this->_charset; - if (isset($this->_lang)) { - $charsetDecl .= '*' . $this->_lang; - } - $encodingWrapperLength = strlen( - '=?' . $charsetDecl . '?' . $this->_encoder->getName() . '??=' - ); - - if ($firstLineOffset >= 75) { //Does this logic need to be here? - $firstLineOffset = 0; - } - - $encodedTextLines = explode("\r\n", - $this->_encoder->encodeString( - $token, $firstLineOffset, 75 - $encodingWrapperLength, $this->_charset - ) - ); - - if (strtolower($this->_charset) !== 'iso-2022-jp') { // special encoding for iso-2022-jp using mb_encode_mimeheader - foreach ($encodedTextLines as $lineNum => $line) { - $encodedTextLines[$lineNum] = '=?' . $charsetDecl . - '?' . $this->_encoder->getName() . - '?' . $line . '?='; - } - } - - return implode("\r\n ", $encodedTextLines); - } - - /** - * Generates tokens from the given string which include CRLF as individual tokens. - * - * @param string $token - * - * @return string[] - */ - protected function generateTokenLines($token) - { - return preg_split('~(\r\n)~', $token, -1, PREG_SPLIT_DELIM_CAPTURE); - } - - /** - * Set a value into the cache. - * - * @param string $value - */ - protected function setCachedValue($value) - { - $this->_cachedValue = $value; - } - - /** - * Get the value in the cache. - * - * @return string - */ - protected function getCachedValue() - { - return $this->_cachedValue; - } - - /** - * Clear the cached value if $condition is met. - * - * @param boolean $condition - */ - protected function clearCachedValueIf($condition) - { - if ($condition) { - $this->setCachedValue(null); - } - } - - // -- Private methods - - /** - * Generate a list of all tokens in the final header. - * - * @param string $string The string to tokenize - * - * @return array An array of tokens as strings - */ - protected function toTokens($string = null) - { - if (is_null($string)) { - $string = $this->getFieldBody(); - } - - $tokens = array(); - - //Generate atoms; split at all invisible boundaries followed by WSP - foreach (preg_split('~(?=[ \t])~', $string) as $token) { - $tokens = array_merge($tokens, $this->generateTokenLines($token)); - } - - return $tokens; - } - - /** - * Takes an array of tokens which appear in the header and turns them into - * an RFC 2822 compliant string, adding FWSP where needed. - * - * @param string[] $tokens - * - * @return string - */ - private function _tokensToString(array $tokens) - { - $lineCount = 0; - $headerLines = array(); - $headerLines[] = $this->_name . ': '; - $currentLine =& $headerLines[$lineCount++]; - - //Build all tokens back into compliant header - foreach ($tokens as $i => $token) { - //Line longer than specified maximum or token was just a new line - if (("\r\n" == $token) || - ($i > 0 && strlen($currentLine . $token) > $this->_lineLength) - && 0 < strlen($currentLine)) - { - $headerLines[] = ''; - $currentLine =& $headerLines[$lineCount++]; - } - - //Append token to the line - if ("\r\n" != $token) { - $currentLine .= $token; - } - } - - //Implode with FWS (RFC 2822, 2.2.3) - return implode("\r\n", $headerLines) . "\r\n"; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/DateHeader.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/DateHeader.php deleted file mode 100644 index 9127cc2..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/DateHeader.php +++ /dev/null @@ -1,127 +0,0 @@ - - * - * - * - * @param string $name of Header - * @param Swift_Mime_Grammar $grammar - */ - public function __construct($name, Swift_Mime_Grammar $grammar) - { - $this->setFieldName($name); - parent::__construct($grammar); - } - - /** - * Get the type of Header that this instance represents. - * - * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX - * @see TYPE_DATE, TYPE_ID, TYPE_PATH - * - * @return int - */ - public function getFieldType() - { - return self::TYPE_DATE; - } - - /** - * Set the model for the field body. - * - * This method takes a UNIX timestamp. - * - * @param integer $model - */ - public function setFieldBodyModel($model) - { - $this->setTimestamp($model); - } - - /** - * Get the model for the field body. - * - * This method returns a UNIX timestamp. - * - * @return mixed - */ - public function getFieldBodyModel() - { - return $this->getTimestamp(); - } - - /** - * Get the UNIX timestamp of the Date in this Header. - * - * @return int - */ - public function getTimestamp() - { - return $this->_timestamp; - } - - /** - * Set the UNIX timestamp of the Date in this Header. - * - * @param integer $timestamp - */ - public function setTimestamp($timestamp) - { - if (!is_null($timestamp)) { - $timestamp = (int) $timestamp; - } - $this->clearCachedValueIf($this->_timestamp != $timestamp); - $this->_timestamp = $timestamp; - } - - /** - * Get the string value of the body in this Header. - * - * This is not necessarily RFC 2822 compliant since folding white space will - * not be added at this stage (see {@link toString()} for that). - * - * @see toString() - * - * @return string - */ - public function getFieldBody() - { - if (!$this->getCachedValue()) { - if (isset($this->_timestamp)) { - $this->setCachedValue(date('r', $this->_timestamp)); - } - } - - return $this->getCachedValue(); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/IdentificationHeader.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/IdentificationHeader.php deleted file mode 100644 index 1d00015..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/IdentificationHeader.php +++ /dev/null @@ -1,183 +0,0 @@ -setFieldName($name); - parent::__construct($grammar); - } - - /** - * Get the type of Header that this instance represents. - * - * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX - * @see TYPE_DATE, TYPE_ID, TYPE_PATH - * - * @return int - */ - public function getFieldType() - { - return self::TYPE_ID; - } - - /** - * Set the model for the field body. - * - * This method takes a string ID, or an array of IDs. - * - * @param mixed $model - * - * @throws Swift_RfcComplianceException - */ - public function setFieldBodyModel($model) - { - $this->setId($model); - } - - /** - * Get the model for the field body. - * - * This method returns an array of IDs - * - * @return array - */ - public function getFieldBodyModel() - { - return $this->getIds(); - } - - /** - * Set the ID used in the value of this header. - * - * @param string|array $id - * - * @throws Swift_RfcComplianceException - */ - public function setId($id) - { - $this->setIds(is_array($id) ? $id : array($id)); - } - - /** - * Get the ID used in the value of this Header. - * - * If multiple IDs are set only the first is returned. - * - * @return string - */ - public function getId() - { - if (count($this->_ids) > 0) { - return $this->_ids[0]; - } - } - - /** - * Set a collection of IDs to use in the value of this Header. - * - * @param string[] $ids - * - * @throws Swift_RfcComplianceException - */ - public function setIds(array $ids) - { - $actualIds = array(); - - foreach ($ids as $id) { - $this->_assertValidId($id); - $actualIds[] = $id; - } - - $this->clearCachedValueIf($this->_ids != $actualIds); - $this->_ids = $actualIds; - } - - /** - * Get the list of IDs used in this Header. - * - * @return string[] - */ - public function getIds() - { - return $this->_ids; - } - - /** - * Get the string value of the body in this Header. - * - * This is not necessarily RFC 2822 compliant since folding white space will - * not be added at this stage (see {@see toString()} for that). - * - * @see toString() - * - * @return string - * - * @throws Swift_RfcComplianceException - */ - public function getFieldBody() - { - if (!$this->getCachedValue()) { - $angleAddrs = array(); - - foreach ($this->_ids as $id) { - $angleAddrs[] = '<' . $id . '>'; - } - - $this->setCachedValue(implode(' ', $angleAddrs)); - } - - return $this->getCachedValue(); - } - - /** - * Throws an Exception if the id passed does not comply with RFC 2822. - * - * @param string $id - * - * @throws Swift_RfcComplianceException - */ - private function _assertValidId($id) - { - if (!preg_match( - '/^' . $this->getGrammar()->getDefinition('id-left') . '@' . - $this->getGrammar()->getDefinition('id-right') . '$/D', - $id - )) - { - throw new Swift_RfcComplianceException( - 'Invalid ID given <' . $id . '>' - ); - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/MailboxHeader.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/MailboxHeader.php deleted file mode 100644 index 0fda5ae..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/MailboxHeader.php +++ /dev/null @@ -1,358 +0,0 @@ -setFieldName($name); - $this->setEncoder($encoder); - parent::__construct($grammar); - } - - /** - * Get the type of Header that this instance represents. - * - * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX - * @see TYPE_DATE, TYPE_ID, TYPE_PATH - * - * @return int - */ - public function getFieldType() - { - return self::TYPE_MAILBOX; - } - - /** - * Set the model for the field body. - * - * This method takes a string, or an array of addresses. - * - * @param mixed $model - * - * @throws Swift_RfcComplianceException - */ - public function setFieldBodyModel($model) - { - $this->setNameAddresses($model); - } - - /** - * Get the model for the field body. - * - * This method returns an associative array like {@link getNameAddresses()} - * - * @return array - * - * @throws Swift_RfcComplianceException - */ - public function getFieldBodyModel() - { - return $this->getNameAddresses(); - } - - /** - * Set a list of mailboxes to be shown in this Header. - * - * The mailboxes can be a simple array of addresses, or an array of - * key=>value pairs where (email => personalName). - * Example: - * - * setNameAddresses(array( - * 'chris@swiftmailer.org' => 'Chris Corbyn', - * 'mark@swiftmailer.org' //No associated personal name - * )); - * ?> - * - * - * @see __construct() - * @see setAddresses() - * @see setValue() - * - * @param string|string[] $mailboxes - * - * @throws Swift_RfcComplianceException - */ - public function setNameAddresses($mailboxes) - { - $this->_mailboxes = $this->normalizeMailboxes((array) $mailboxes); - $this->setCachedValue(null); //Clear any cached value - } - - /** - * Get the full mailbox list of this Header as an array of valid RFC 2822 strings. - * - * Example: - * - * 'Chris Corbyn', - * 'mark@swiftmailer.org' => 'Mark Corbyn') - * ); - * print_r($header->getNameAddressStrings()); - * // array ( - * // 0 => Chris Corbyn , - * // 1 => Mark Corbyn - * // ) - * ?> - * - * - * @see getNameAddresses() - * @see toString() - * - * @return string[] - * - * @throws Swift_RfcComplianceException - */ - public function getNameAddressStrings() - { - return $this->_createNameAddressStrings($this->getNameAddresses()); - } - - /** - * Get all mailboxes in this Header as key=>value pairs. - * - * The key is the address and the value is the name (or null if none set). - * Example: - * - * 'Chris Corbyn', - * 'mark@swiftmailer.org' => 'Mark Corbyn') - * ); - * print_r($header->getNameAddresses()); - * // array ( - * // chris@swiftmailer.org => Chris Corbyn, - * // mark@swiftmailer.org => Mark Corbyn - * // ) - * ?> - * - * - * @see getAddresses() - * @see getNameAddressStrings() - * - * @return string[] - */ - public function getNameAddresses() - { - return $this->_mailboxes; - } - - /** - * Makes this Header represent a list of plain email addresses with no names. - * - * Example: - * - * setAddresses( - * array('one@domain.tld', 'two@domain.tld', 'three@domain.tld') - * ); - * ?> - * - * - * @see setNameAddresses() - * @see setValue() - * - * @param string[] $addresses - * - * @throws Swift_RfcComplianceException - */ - public function setAddresses($addresses) - { - $this->setNameAddresses(array_values((array) $addresses)); - } - - /** - * Get all email addresses in this Header. - * - * @see getNameAddresses() - * - * @return string[] - */ - public function getAddresses() - { - return array_keys($this->_mailboxes); - } - - /** - * Remove one or more addresses from this Header. - * - * @param string|string[] $addresses - */ - public function removeAddresses($addresses) - { - $this->setCachedValue(null); - foreach ((array) $addresses as $address) { - unset($this->_mailboxes[$address]); - } - } - - /** - * Get the string value of the body in this Header. - * - * This is not necessarily RFC 2822 compliant since folding white space will - * not be added at this stage (see {@link toString()} for that). - * - * @see toString() - * - * @return string - * - * @throws Swift_RfcComplianceException - */ - public function getFieldBody() - { - //Compute the string value of the header only if needed - if (is_null($this->getCachedValue())) { - $this->setCachedValue($this->createMailboxListString($this->_mailboxes)); - } - - return $this->getCachedValue(); - } - - // -- Points of extension - - /** - * Normalizes a user-input list of mailboxes into consistent key=>value pairs. - * - * @param string[] $mailboxes - * - * @return string[] - */ - protected function normalizeMailboxes(array $mailboxes) - { - $actualMailboxes = array(); - - foreach ($mailboxes as $key => $value) { - if (is_string($key)) { //key is email addr - $address = $key; - $name = $value; - } else { - $address = $value; - $name = null; - } - $this->_assertValidAddress($address); - $actualMailboxes[$address] = $name; - } - - return $actualMailboxes; - } - - /** - * Produces a compliant, formatted display-name based on the string given. - * - * @param string $displayName as displayed - * @param boolean $shorten the first line to make remove for header name - * - * @return string - */ - protected function createDisplayNameString($displayName, $shorten = false) - { - return $this->createPhrase($this, $displayName, - $this->getCharset(), $this->getEncoder(), $shorten - ); - } - - /** - * Creates a string form of all the mailboxes in the passed array. - * - * @param string[] $mailboxes - * - * @return string - * - * @throws Swift_RfcComplianceException - */ - protected function createMailboxListString(array $mailboxes) - { - return implode(', ', $this->_createNameAddressStrings($mailboxes)); - } - - /** - * Redefine the encoding requirements for mailboxes. - * - * Commas and semicolons are used to separate - * multiple addresses, and should therefore be encoded - * - * @param string $token - * - * @return boolean - */ - protected function tokenNeedsEncoding($token) - { - return preg_match('/[,;]/', $token) || parent::tokenNeedsEncoding($token); - } - - // -- Private methods - - /** - * Return an array of strings conforming the the name-addr spec of RFC 2822. - * - * @param string[] $mailboxes - * - * @return string[] - */ - private function _createNameAddressStrings(array $mailboxes) - { - $strings = array(); - - foreach ($mailboxes as $email => $name) { - $mailboxStr = $email; - if (!is_null($name)) { - $nameStr = $this->createDisplayNameString($name, empty($strings)); - $mailboxStr = $nameStr . ' <' . $mailboxStr . '>'; - } - $strings[] = $mailboxStr; - } - - return $strings; - } - - /** - * Throws an Exception if the address passed does not comply with RFC 2822. - * - * @param string $address - * - * @throws Swift_RfcComplianceException If invalid. - */ - private function _assertValidAddress($address) - { - if (!preg_match('/^' . $this->getGrammar()->getDefinition('addr-spec') . '$/D', - $address)) - { - throw new Swift_RfcComplianceException( - 'Address in mailbox given [' . $address . - '] does not comply with RFC 2822, 3.6.2.' - ); - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php deleted file mode 100644 index 3ef628c..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php +++ /dev/null @@ -1,265 +0,0 @@ -_paramEncoder = $paramEncoder; - } - - /** - * Get the type of Header that this instance represents. - * - * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX - * @see TYPE_DATE, TYPE_ID, TYPE_PATH - * - * @return int - */ - public function getFieldType() - { - return self::TYPE_PARAMETERIZED; - } - - /** - * Set the character set used in this Header. - * - * @param string $charset - */ - public function setCharset($charset) - { - parent::setCharset($charset); - if (isset($this->_paramEncoder)) { - $this->_paramEncoder->charsetChanged($charset); - } - } - - /** - * Set the value of $parameter. - * - * @param string $parameter - * @param string $value - */ - public function setParameter($parameter, $value) - { - $this->setParameters(array_merge($this->getParameters(), array($parameter => $value))); - } - - /** - * Get the value of $parameter. - * - * @param string $parameter - * - * @return string - */ - public function getParameter($parameter) - { - $params = $this->getParameters(); - - return array_key_exists($parameter, $params) - ? $params[$parameter] - : null; - } - - /** - * Set an associative array of parameter names mapped to values. - * - * @param string[] $parameters - */ - public function setParameters(array $parameters) - { - $this->clearCachedValueIf($this->_params != $parameters); - $this->_params = $parameters; - } - - /** - * Returns an associative array of parameter names mapped to values. - * - * @return string[] - */ - public function getParameters() - { - return $this->_params; - } - - /** - * Get the value of this header prepared for rendering. - * - * @return string - */ - public function getFieldBody() //TODO: Check caching here - { - $body = parent::getFieldBody(); - foreach ($this->_params as $name => $value) { - if (!is_null($value)) { - //Add the parameter - $body .= '; ' . $this->_createParameter($name, $value); - } - } - - return $body; - } - - // -- Protected methods - - /** - * Generate a list of all tokens in the final header. - * - * This doesn't need to be overridden in theory, but it is for implementation - * reasons to prevent potential breakage of attributes. - * - * @param string $string The string to tokenize - * - * @return array An array of tokens as strings - */ - protected function toTokens($string = null) - { - $tokens = parent::toTokens(parent::getFieldBody()); - - //Try creating any parameters - foreach ($this->_params as $name => $value) { - if (!is_null($value)) { - //Add the semi-colon separator - $tokens[count($tokens)-1] .= ';'; - $tokens = array_merge($tokens, $this->generateTokenLines( - ' ' . $this->_createParameter($name, $value) - )); - } - } - - return $tokens; - } - - // -- Private methods - - /** - * Render a RFC 2047 compliant header parameter from the $name and $value. - * - * @param string $name - * @param string $value - * - * @return string - */ - private function _createParameter($name, $value) - { - $origValue = $value; - - $encoded = false; - //Allow room for parameter name, indices, "=" and DQUOTEs - $maxValueLength = $this->getMaxLineLength() - strlen($name . '=*N"";') - 1; - $firstLineOffset = 0; - - //If it's not already a valid parameter value... - if (!preg_match('/^' . self::TOKEN_REGEX . '$/D', $value)) { - //TODO: text, or something else?? - //... and it's not ascii - if (!preg_match('/^' . $this->getGrammar()->getDefinition('text') . '*$/D', $value)) { - $encoded = true; - //Allow space for the indices, charset and language - $maxValueLength = $this->getMaxLineLength() - strlen($name . '*N*="";') - 1; - $firstLineOffset = strlen( - $this->getCharset() . "'" . $this->getLanguage() . "'" - ); - } - } - - //Encode if we need to - if ($encoded || strlen($value) > $maxValueLength) { - if (isset($this->_paramEncoder)) { - $value = $this->_paramEncoder->encodeString( - $origValue, $firstLineOffset, $maxValueLength, $this->getCharset() - ); - } else { //We have to go against RFC 2183/2231 in some areas for interoperability - $value = $this->getTokenAsEncodedWord($origValue); - $encoded = false; - } - } - - $valueLines = isset($this->_paramEncoder) ? explode("\r\n", $value) : array($value); - - //Need to add indices - if (count($valueLines) > 1) { - $paramLines = array(); - foreach ($valueLines as $i => $line) { - $paramLines[] = $name . '*' . $i . - $this->_getEndOfParameterValue($line, true, $i == 0); - } - - return implode(";\r\n ", $paramLines); - } else { - return $name . $this->_getEndOfParameterValue( - $valueLines[0], $encoded, true - ); - } - } - - /** - * Returns the parameter value from the "=" and beyond. - * - * @param string $value to append - * @param boolean $encoded - * @param boolean $firstLine - * - * @return string - */ - private function _getEndOfParameterValue($value, $encoded = false, $firstLine = false) - { - if (!preg_match('/^' . self::TOKEN_REGEX . '$/D', $value)) { - $value = '"' . $value . '"'; - } - $prepend = '='; - if ($encoded) { - $prepend = '*='; - if ($firstLine) { - $prepend = '*=' . $this->getCharset() . "'" . $this->getLanguage() . - "'"; - } - } - - return $prepend . $value; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/PathHeader.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/PathHeader.php deleted file mode 100644 index bfecf3f..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/PathHeader.php +++ /dev/null @@ -1,146 +0,0 @@ -setFieldName($name); - parent::__construct($grammar); - } - - /** - * Get the type of Header that this instance represents. - * - * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX - * @see TYPE_DATE, TYPE_ID, TYPE_PATH - * - * @return int - */ - public function getFieldType() - { - return self::TYPE_PATH; - } - - /** - * Set the model for the field body. - * This method takes a string for an address. - * - * @param string $model - * - * @throws Swift_RfcComplianceException - */ - public function setFieldBodyModel($model) - { - $this->setAddress($model); - } - - /** - * Get the model for the field body. - * This method returns a string email address. - * - * @return mixed - */ - public function getFieldBodyModel() - { - return $this->getAddress(); - } - - /** - * Set the Address which should appear in this Header. - * - * @param string $address - * - * @throws Swift_RfcComplianceException - */ - public function setAddress($address) - { - if (is_null($address)) { - $this->_address = null; - } elseif ('' == $address) { - $this->_address = ''; - } else { - $this->_assertValidAddress($address); - $this->_address = $address; - } - $this->setCachedValue(null); - } - - /** - * Get the address which is used in this Header (if any). - * - * Null is returned if no address is set. - * - * @return string - */ - public function getAddress() - { - return $this->_address; - } - - /** - * Get the string value of the body in this Header. - * - * This is not necessarily RFC 2822 compliant since folding white space will - * not be added at this stage (see {@link toString()} for that). - * - * @see toString() - * - * @return string - */ - public function getFieldBody() - { - if (!$this->getCachedValue()) { - if (isset($this->_address)) { - $this->setCachedValue('<' . $this->_address . '>'); - } - } - - return $this->getCachedValue(); - } - - /** - * Throws an Exception if the address passed does not comply with RFC 2822. - * - * @param string $address - * - * @throws Swift_RfcComplianceException If address is invalid - */ - private function _assertValidAddress($address) - { - if (!preg_match('/^' . $this->getGrammar()->getDefinition('addr-spec') . '$/D', - $address)) - { - throw new Swift_RfcComplianceException( - 'Address set in PathHeader does not comply with addr-spec of RFC 2822.' - ); - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/UnstructuredHeader.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/UnstructuredHeader.php deleted file mode 100644 index 2de49b4..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Headers/UnstructuredHeader.php +++ /dev/null @@ -1,114 +0,0 @@ -setFieldName($name); - $this->setEncoder($encoder); - parent::__construct($grammar); - } - - /** - * Get the type of Header that this instance represents. - * - * @see TYPE_TEXT, TYPE_PARAMETERIZED, TYPE_MAILBOX - * @see TYPE_DATE, TYPE_ID, TYPE_PATH - * - * @return int - */ - public function getFieldType() - { - return self::TYPE_TEXT; - } - - /** - * Set the model for the field body. - * - * This method takes a string for the field value. - * - * @param string $model - */ - public function setFieldBodyModel($model) - { - $this->setValue($model); - } - - /** - * Get the model for the field body. - * - * This method returns a string. - * - * @return string - */ - public function getFieldBodyModel() - { - return $this->getValue(); - } - - /** - * Get the (unencoded) value of this header. - * - * @return string - */ - public function getValue() - { - return $this->_value; - } - - /** - * Set the (unencoded) value of this header. - * - * @param string $value - */ - public function setValue($value) - { - $this->clearCachedValueIf($this->_value != $value); - $this->_value = $value; - } - - /** - * Get the value of this header prepared for rendering. - * - * @return string - */ - public function getFieldBody() - { - if (!$this->getCachedValue()) { - $this->setCachedValue( - $this->encodeWords($this, $this->_value) - ); - } - - return $this->getCachedValue(); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Message.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Message.php deleted file mode 100644 index bce3af3..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/Message.php +++ /dev/null @@ -1,225 +0,0 @@ - 'Real Name'). - * - * If the second parameter is provided and the first is a string, then $name - * is associated with the address. - * - * @param mixed $address - * @param string $name optional - */ - public function setSender($address, $name = null); - - /** - * Get the sender address for this message. - * - * This has a higher significance than the From address. - * - * @return string - */ - public function getSender(); - - /** - * Set the From address of this message. - * - * It is permissible for multiple From addresses to be set using an array. - * - * If multiple From addresses are used, you SHOULD set the Sender address and - * according to RFC 2822, MUST set the sender address. - * - * An array can be used if display names are to be provided: i.e. - * array('email@address.com' => 'Real Name'). - * - * If the second parameter is provided and the first is a string, then $name - * is associated with the address. - * - * @param mixed $addresses - * @param string $name optional - */ - public function setFrom($addresses, $name = null); - - /** - * Get the From address(es) of this message. - * - * This method always returns an associative array where the keys are the - * addresses. - * - * @return string[] - */ - public function getFrom(); - - /** - * Set the Reply-To address(es). - * - * Any replies from the receiver will be sent to this address. - * - * It is permissible for multiple reply-to addresses to be set using an array. - * - * This method has the same synopsis as {@link setFrom()} and {@link setTo()}. - * - * If the second parameter is provided and the first is a string, then $name - * is associated with the address. - * - * @param mixed $addresses - * @param string $name optional - */ - public function setReplyTo($addresses, $name = null); - - /** - * Get the Reply-To addresses for this message. - * - * This method always returns an associative array where the keys provide the - * email addresses. - * - * @return string[] - */ - public function getReplyTo(); - - /** - * Set the To address(es). - * - * Recipients set in this field will receive a copy of this message. - * - * This method has the same synopsis as {@link setFrom()} and {@link setCc()}. - * - * If the second parameter is provided and the first is a string, then $name - * is associated with the address. - * - * @param mixed $addresses - * @param string $name optional - */ - public function setTo($addresses, $name = null); - - /** - * Get the To addresses for this message. - * - * This method always returns an associative array, whereby the keys provide - * the actual email addresses. - * - * @return string[] - */ - public function getTo(); - - /** - * Set the Cc address(es). - * - * Recipients set in this field will receive a 'carbon-copy' of this message. - * - * This method has the same synopsis as {@link setFrom()} and {@link setTo()}. - * - * @param mixed $addresses - * @param string $name optional - */ - public function setCc($addresses, $name = null); - - /** - * Get the Cc addresses for this message. - * - * This method always returns an associative array, whereby the keys provide - * the actual email addresses. - * - * @return string[] - */ - public function getCc(); - - /** - * Set the Bcc address(es). - * - * Recipients set in this field will receive a 'blind-carbon-copy' of this - * message. - * - * In other words, they will get the message, but any other recipients of the - * message will have no such knowledge of their receipt of it. - * - * This method has the same synopsis as {@link setFrom()} and {@link setTo()}. - * - * @param mixed $addresses - * @param string $name optional - */ - public function setBcc($addresses, $name = null); - - /** - * Get the Bcc addresses for this message. - * - * This method always returns an associative array, whereby the keys provide - * the actual email addresses. - * - * @return string[] - */ - public function getBcc(); -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/MimeEntity.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/MimeEntity.php deleted file mode 100644 index bc9f2ad..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/MimeEntity.php +++ /dev/null @@ -1,117 +0,0 @@ -setContentType('text/plain'); - if (!is_null($charset)) { - $this->setCharset($charset); - } - } - - /** - * Set the body of this entity, either as a string, or as an instance of - * {@link Swift_OutputByteStream}. - * - * @param mixed $body - * @param string $contentType optional - * @param string $charset optional - * - * @return Swift_Mime_MimePart - */ - public function setBody($body, $contentType = null, $charset = null) - { - if (isset($charset)) { - $this->setCharset($charset); - } - $body = $this->_convertString($body); - - parent::setBody($body, $contentType); - - return $this; - } - - /** - * Get the character set of this entity. - * - * @return string - */ - public function getCharset() - { - return $this->_getHeaderParameter('Content-Type', 'charset'); - } - - /** - * Set the character set of this entity. - * - * @param string $charset - * - * @return Swift_Mime_MimePart - */ - public function setCharset($charset) - { - $this->_setHeaderParameter('Content-Type', 'charset', $charset); - if ($charset !== $this->_userCharset) { - $this->_clearCache(); - } - $this->_userCharset = $charset; - parent::charsetChanged($charset); - - return $this; - } - - /** - * Get the format of this entity (i.e. flowed or fixed). - * - * @return string - */ - public function getFormat() - { - return $this->_getHeaderParameter('Content-Type', 'format'); - } - - /** - * Set the format of this entity (flowed or fixed). - * - * @param string $format - * - * @return Swift_Mime_MimePart - */ - public function setFormat($format) - { - $this->_setHeaderParameter('Content-Type', 'format', $format); - $this->_userFormat = $format; - - return $this; - } - - /** - * Test if delsp is being used for this entity. - * - * @return boolean - */ - public function getDelSp() - { - return ($this->_getHeaderParameter('Content-Type', 'delsp') == 'yes') - ? true - : false; - } - - /** - * Turn delsp on or off for this entity. - * - * @param boolean $delsp - * - * @return Swift_Mime_MimePart - */ - public function setDelSp($delsp = true) - { - $this->_setHeaderParameter('Content-Type', 'delsp', $delsp ? 'yes' : null); - $this->_userDelSp = $delsp; - - return $this; - } - - /** - * Get the nesting level of this entity. - * - * @see LEVEL_TOP, LEVEL_ALTERNATIVE, LEVEL_MIXED, LEVEL_RELATED - * - * @return int - */ - public function getNestingLevel() - { - return $this->_nestingLevel; - } - - /** - * Receive notification that the charset has changed on this document, or a - * parent document. - * - * @param string $charset - */ - public function charsetChanged($charset) - { - $this->setCharset($charset); - } - - // -- Protected methods - - /** Fix the content-type and encoding of this entity */ - protected function _fixHeaders() - { - parent::_fixHeaders(); - if (count($this->getChildren())) { - $this->_setHeaderParameter('Content-Type', 'charset', null); - $this->_setHeaderParameter('Content-Type', 'format', null); - $this->_setHeaderParameter('Content-Type', 'delsp', null); - } else { - $this->setCharset($this->_userCharset); - $this->setFormat($this->_userFormat); - $this->setDelSp($this->_userDelSp); - } - } - - /** Set the nesting level of this entity */ - protected function _setNestingLevel($level) - { - $this->_nestingLevel = $level; - } - - /** Encode charset when charset is not utf-8 */ - protected function _convertString($string) - { - $charset = strtolower($this->getCharset()); - if (!in_array($charset, array('utf-8', 'iso-8859-1', ''))) { - // mb_convert_encoding must be the first one to check, since iconv cannot convert some words. - if (function_exists('mb_convert_encoding')) { - $string = mb_convert_encoding($string, $charset, 'utf-8'); - } elseif (function_exists('iconv')) { - $string = iconv($charset, 'utf-8//TRANSLIT//IGNORE', $string); - } else { - throw new Swift_SwiftException('No suitable convert encoding function (use UTF-8 as your charset or install the mbstring or iconv extension).'); - } - - return $string; - } - - return $string; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ParameterizedHeader.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ParameterizedHeader.php deleted file mode 100644 index 95172ec..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/ParameterizedHeader.php +++ /dev/null @@ -1,36 +0,0 @@ -_encoder = $encoder; - $this->_paramEncoder = $paramEncoder; - $this->_grammar = $grammar; - $this->_charset = $charset; - } - - /** - * Create a new Mailbox Header with a list of $addresses. - * - * @param string $name - * @param array|string|null $addresses - * - * @return Swift_Mime_Header - */ - public function createMailboxHeader($name, $addresses = null) - { - $header = new Swift_Mime_Headers_MailboxHeader($name, $this->_encoder, $this->_grammar); - if (isset($addresses)) { - $header->setFieldBodyModel($addresses); - } - $this->_setHeaderCharset($header); - - return $header; - } - - /** - * Create a new Date header using $timestamp (UNIX time). - * @param string $name - * @param integer|null $timestamp - * - * @return Swift_Mime_Header - */ - public function createDateHeader($name, $timestamp = null) - { - $header = new Swift_Mime_Headers_DateHeader($name, $this->_grammar); - if (isset($timestamp)) { - $header->setFieldBodyModel($timestamp); - } - $this->_setHeaderCharset($header); - - return $header; - } - - /** - * Create a new basic text header with $name and $value. - * - * @param string $name - * @param string $value - * - * @return Swift_Mime_Header - */ - public function createTextHeader($name, $value = null) - { - $header = new Swift_Mime_Headers_UnstructuredHeader($name, $this->_encoder, $this->_grammar); - if (isset($value)) { - $header->setFieldBodyModel($value); - } - $this->_setHeaderCharset($header); - - return $header; - } - - /** - * Create a new ParameterizedHeader with $name, $value and $params. - * - * @param string $name - * @param string $value - * @param array $params - * - * @return Swift_Mime_ParameterizedHeader - */ - public function createParameterizedHeader($name, $value = null, - $params = array()) - { - $header = new Swift_Mime_Headers_ParameterizedHeader($name, - $this->_encoder, (strtolower($name) == 'content-disposition') - ? $this->_paramEncoder - : null, - $this->_grammar - ); - if (isset($value)) { - $header->setFieldBodyModel($value); - } - foreach ($params as $k => $v) { - $header->setParameter($k, $v); - } - $this->_setHeaderCharset($header); - - return $header; - } - - /** - * Create a new ID header for Message-ID or Content-ID. - * - * @param string $name - * @param string|array $ids - * - * @return Swift_Mime_Header - */ - public function createIdHeader($name, $ids = null) - { - $header = new Swift_Mime_Headers_IdentificationHeader($name, $this->_grammar); - if (isset($ids)) { - $header->setFieldBodyModel($ids); - } - $this->_setHeaderCharset($header); - - return $header; - } - - /** - * Create a new Path header with an address (path) in it. - * - * @param string $name - * @param string $path - * - * @return Swift_Mime_Header - */ - public function createPathHeader($name, $path = null) - { - $header = new Swift_Mime_Headers_PathHeader($name, $this->_grammar); - if (isset($path)) { - $header->setFieldBodyModel($path); - } - $this->_setHeaderCharset($header); - - return $header; - } - - /** - * Notify this observer that the entity's charset has changed. - * - * @param string $charset - */ - public function charsetChanged($charset) - { - $this->_charset = $charset; - $this->_encoder->charsetChanged($charset); - $this->_paramEncoder->charsetChanged($charset); - } - - // -- Private methods - - /** Apply the charset to the Header */ - private function _setHeaderCharset(Swift_Mime_Header $header) - { - if (isset($this->_charset)) { - $header->setCharset($this->_charset); - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/SimpleHeaderSet.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/SimpleHeaderSet.php deleted file mode 100644 index e06f936..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/SimpleHeaderSet.php +++ /dev/null @@ -1,387 +0,0 @@ -_factory = $factory; - if (isset($charset)) { - $this->setCharset($charset); - } - } - - /** - * Set the charset used by these headers. - * - * @param string $charset - */ - public function setCharset($charset) - { - $this->_charset = $charset; - $this->_factory->charsetChanged($charset); - $this->_notifyHeadersOfCharset($charset); - } - - /** - * Add a new Mailbox Header with a list of $addresses. - * - * @param string $name - * @param array|string $addresses - */ - public function addMailboxHeader($name, $addresses = null) - { - $this->_storeHeader($name, - $this->_factory->createMailboxHeader($name, $addresses)); - } - - /** - * Add a new Date header using $timestamp (UNIX time). - * - * @param string $name - * @param integer $timestamp - */ - public function addDateHeader($name, $timestamp = null) - { - $this->_storeHeader($name, - $this->_factory->createDateHeader($name, $timestamp)); - } - - /** - * Add a new basic text header with $name and $value. - * - * @param string $name - * @param string $value - */ - public function addTextHeader($name, $value = null) - { - $this->_storeHeader($name, - $this->_factory->createTextHeader($name, $value)); - } - - /** - * Add a new ParameterizedHeader with $name, $value and $params. - * - * @param string $name - * @param string $value - * @param array $params - */ - public function addParameterizedHeader($name, $value = null, $params = array()) - { - $this->_storeHeader($name, $this->_factory->createParameterizedHeader($name, $value, $params)); - } - - /** - * Add a new ID header for Message-ID or Content-ID. - * - * @param string $name - * @param string|array $ids - */ - public function addIdHeader($name, $ids = null) - { - $this->_storeHeader($name, $this->_factory->createIdHeader($name, $ids)); - } - - /** - * Add a new Path header with an address (path) in it. - * - * @param string $name - * @param string $path - */ - public function addPathHeader($name, $path = null) - { - $this->_storeHeader($name, $this->_factory->createPathHeader($name, $path)); - } - - /** - * Returns true if at least one header with the given $name exists. - * - * If multiple headers match, the actual one may be specified by $index. - * - * @param string $name - * @param integer $index - * - * @return boolean - */ - public function has($name, $index = 0) - { - $lowerName = strtolower($name); - - return array_key_exists($lowerName, $this->_headers) && array_key_exists($index, $this->_headers[$lowerName]); - } - - /** - * Set a header in the HeaderSet. - * - * The header may be a previously fetched header via {@link get()} or it may - * be one that has been created separately. - * - * If $index is specified, the header will be inserted into the set at this - * offset. - * - * @param Swift_Mime_Header $header - * @param integer $index - */ - public function set(Swift_Mime_Header $header, $index = 0) - { - $this->_storeHeader($header->getFieldName(), $header, $index); - } - - /** - * Get the header with the given $name. - * - * If multiple headers match, the actual one may be specified by $index. - * Returns NULL if none present. - * - * @param string $name - * @param integer $index - * - * @return Swift_Mime_Header - */ - public function get($name, $index = 0) - { - if ($this->has($name, $index)) { - $lowerName = strtolower($name); - - return $this->_headers[$lowerName][$index]; - } - } - - /** - * Get all headers with the given $name. - * - * @param string $name - * - * @return array - */ - public function getAll($name = null) - { - if (!isset($name)) { - $headers = array(); - foreach ($this->_headers as $collection) { - $headers = array_merge($headers, $collection); - } - - return $headers; - } - - $lowerName = strtolower($name); - if (!array_key_exists($lowerName, $this->_headers)) { - return array(); - } - - return $this->_headers[$lowerName]; - } - - /** - * Return the name of all Headers - * - * @return array - */ - public function listAll() - { - $headers = $this->_headers; - if ($this->_canSort()) { - uksort($headers, array($this, '_sortHeaders')); - } - - return array_keys($headers); - } - - /** - * Remove the header with the given $name if it's set. - * - * If multiple headers match, the actual one may be specified by $index. - * - * @param string $name - * @param integer $index - */ - public function remove($name, $index = 0) - { - $lowerName = strtolower($name); - unset($this->_headers[$lowerName][$index]); - } - - /** - * Remove all headers with the given $name. - * - * @param string $name - */ - public function removeAll($name) - { - $lowerName = strtolower($name); - unset($this->_headers[$lowerName]); - } - - /** - * Create a new instance of this HeaderSet. - * - * @return Swift_Mime_HeaderSet - */ - public function newInstance() - { - return new self($this->_factory); - } - - /** - * Define a list of Header names as an array in the correct order. - * - * These Headers will be output in the given order where present. - * - * @param array $sequence - */ - public function defineOrdering(array $sequence) - { - $this->_order = array_flip(array_map('strtolower', $sequence)); - } - - /** - * Set a list of header names which must always be displayed when set. - * - * Usually headers without a field value won't be output unless set here. - * - * @param array $names - */ - public function setAlwaysDisplayed(array $names) - { - $this->_required = array_flip(array_map('strtolower', $names)); - } - - /** - * Notify this observer that the entity's charset has changed. - * - * @param string $charset - */ - public function charsetChanged($charset) - { - $this->setCharset($charset); - } - - /** - * Returns a string with a representation of all headers. - * - * @return string - */ - public function toString() - { - $string = ''; - $headers = $this->_headers; - if ($this->_canSort()) { - uksort($headers, array($this, '_sortHeaders')); - } - foreach ($headers as $collection) { - foreach ($collection as $header) { - if ($this->_isDisplayed($header) || $header->getFieldBody() != '') { - $string .= $header->toString(); - } - } - } - - return $string; - } - - /** - * Returns a string representation of this object. - * - * @return string - * - * @see toString() - */ - public function __toString() - { - return $this->toString(); - } - - // -- Private methods - - /** Save a Header to the internal collection */ - private function _storeHeader($name, Swift_Mime_Header $header, $offset = null) - { - if (!isset($this->_headers[strtolower($name)])) { - $this->_headers[strtolower($name)] = array(); - } - if (!isset($offset)) { - $this->_headers[strtolower($name)][] = $header; - } else { - $this->_headers[strtolower($name)][$offset] = $header; - } - } - - /** Test if the headers can be sorted */ - private function _canSort() - { - return count($this->_order) > 0; - } - - /** uksort() algorithm for Header ordering */ - private function _sortHeaders($a, $b) - { - $lowerA = strtolower($a); - $lowerB = strtolower($b); - $aPos = array_key_exists($lowerA, $this->_order) - ? $this->_order[$lowerA] - : -1; - $bPos = array_key_exists($lowerB, $this->_order) - ? $this->_order[$lowerB] - : -1; - - if ($aPos == -1) { - return 1; - } elseif ($bPos == -1) { - return -1; - } - - return ($aPos < $bPos) ? -1 : 1; - } - - /** Test if the given Header is always displayed */ - private function _isDisplayed(Swift_Mime_Header $header) - { - return array_key_exists(strtolower($header->getFieldName()), $this->_required); - } - - /** Notify all Headers of the new charset */ - private function _notifyHeadersOfCharset($charset) - { - foreach ($this->_headers as $headerGroup) { - foreach ($headerGroup as $header) { - $header->setCharset($charset); - } - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/SimpleMessage.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/SimpleMessage.php deleted file mode 100644 index b6a674b..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/SimpleMessage.php +++ /dev/null @@ -1,655 +0,0 @@ -getHeaders()->defineOrdering(array( - 'Return-Path', - 'Received', - 'DKIM-Signature', - 'DomainKey-Signature', - 'Sender', - 'Message-ID', - 'Date', - 'Subject', - 'From', - 'Reply-To', - 'To', - 'Cc', - 'Bcc', - 'MIME-Version', - 'Content-Type', - 'Content-Transfer-Encoding' - )); - $this->getHeaders()->setAlwaysDisplayed(array('Date', 'Message-ID', 'From')); - $this->getHeaders()->addTextHeader('MIME-Version', '1.0'); - $this->setDate(time()); - $this->setId($this->getId()); - $this->getHeaders()->addMailboxHeader('From'); - } - - /** - * Always returns {@link LEVEL_TOP} for a message instance. - * - * @return int - */ - public function getNestingLevel() - { - return self::LEVEL_TOP; - } - - /** - * Set the subject of this message. - * - * @param string $subject - * - * @return Swift_Mime_SimpleMessage - */ - public function setSubject($subject) - { - if (!$this->_setHeaderFieldModel('Subject', $subject)) { - $this->getHeaders()->addTextHeader('Subject', $subject); - } - - return $this; - } - - /** - * Get the subject of this message. - * - * @return string - */ - public function getSubject() - { - return $this->_getHeaderFieldModel('Subject'); - } - - /** - * Set the date at which this message was created. - * - * @param integer $date - * - * @return Swift_Mime_SimpleMessage - */ - public function setDate($date) - { - if (!$this->_setHeaderFieldModel('Date', $date)) { - $this->getHeaders()->addDateHeader('Date', $date); - } - - return $this; - } - - /** - * Get the date at which this message was created. - * - * @return integer - */ - public function getDate() - { - return $this->_getHeaderFieldModel('Date'); - } - - /** - * Set the return-path (the bounce address) of this message. - * - * @param string $address - * - * @return Swift_Mime_SimpleMessage - */ - public function setReturnPath($address) - { - if (!$this->_setHeaderFieldModel('Return-Path', $address)) { - $this->getHeaders()->addPathHeader('Return-Path', $address); - } - - return $this; - } - - /** - * Get the return-path (bounce address) of this message. - * - * @return string - */ - public function getReturnPath() - { - return $this->_getHeaderFieldModel('Return-Path'); - } - - /** - * Set the sender of this message. - * - * This does not override the From field, but it has a higher significance. - * - * @param string $address - * @param string $name optional - * - * @return Swift_Mime_SimpleMessage - */ - public function setSender($address, $name = null) - { - if (!is_array($address) && isset($name)) { - $address = array($address => $name); - } - - if (!$this->_setHeaderFieldModel('Sender', (array) $address)) { - $this->getHeaders()->addMailboxHeader('Sender', (array) $address); - } - - return $this; - } - - /** - * Get the sender of this message. - * - * @return string - */ - public function getSender() - { - return $this->_getHeaderFieldModel('Sender'); - } - - /** - * Add a From: address to this message. - * - * If $name is passed this name will be associated with the address. - * - * @param string $address - * @param string $name optional - * - * @return Swift_Mime_SimpleMessage - */ - public function addFrom($address, $name = null) - { - $current = $this->getFrom(); - $current[$address] = $name; - - return $this->setFrom($current); - } - - /** - * Set the from address of this message. - * - * You may pass an array of addresses if this message is from multiple people. - * - * If $name is passed and the first parameter is a string, this name will be - * associated with the address. - * - * @param string $addresses - * @param string $name optional - * - * @return Swift_Mime_SimpleMessage - */ - public function setFrom($addresses, $name = null) - { - if (!is_array($addresses) && isset($name)) { - $addresses = array($addresses => $name); - } - - if (!$this->_setHeaderFieldModel('From', (array) $addresses)) { - $this->getHeaders()->addMailboxHeader('From', (array) $addresses); - } - - return $this; - } - - /** - * Get the from address of this message. - * - * @return string - */ - public function getFrom() - { - return $this->_getHeaderFieldModel('From'); - } - - /** - * Add a Reply-To: address to this message. - * - * If $name is passed this name will be associated with the address. - * - * @param string $address - * @param string $name optional - * - * @return Swift_Mime_SimpleMessage - */ - public function addReplyTo($address, $name = null) - { - $current = $this->getReplyTo(); - $current[$address] = $name; - - return $this->setReplyTo($current); - } - - /** - * Set the reply-to address of this message. - * - * You may pass an array of addresses if replies will go to multiple people. - * - * If $name is passed and the first parameter is a string, this name will be - * associated with the address. - * - * @param string $addresses - * @param string $name optional - * - * @return Swift_Mime_SimpleMessage - */ - public function setReplyTo($addresses, $name = null) - { - if (!is_array($addresses) && isset($name)) { - $addresses = array($addresses => $name); - } - - if (!$this->_setHeaderFieldModel('Reply-To', (array) $addresses)) { - $this->getHeaders()->addMailboxHeader('Reply-To', (array) $addresses); - } - - return $this; - } - - /** - * Get the reply-to address of this message. - * - * @return string - */ - public function getReplyTo() - { - return $this->_getHeaderFieldModel('Reply-To'); - } - - /** - * Add a To: address to this message. - * - * If $name is passed this name will be associated with the address. - * - * @param string $address - * @param string $name optional - * - * @return Swift_Mime_SimpleMessage - */ - public function addTo($address, $name = null) - { - $current = $this->getTo(); - $current[$address] = $name; - - return $this->setTo($current); - } - - /** - * Set the to addresses of this message. - * - * If multiple recipients will receive the message and array should be used. - * - * If $name is passed and the first parameter is a string, this name will be - * associated with the address. - * - * @param mixed $addresses - * @param string $name optional - * - * @return Swift_Mime_SimpleMessage - */ - public function setTo($addresses, $name = null) - { - if (!is_array($addresses) && isset($name)) { - $addresses = array($addresses => $name); - } - - if (!$this->_setHeaderFieldModel('To', (array) $addresses)) { - $this->getHeaders()->addMailboxHeader('To', (array) $addresses); - } - - return $this; - } - - /** - * Get the To addresses of this message. - * - * @return array - */ - public function getTo() - { - return $this->_getHeaderFieldModel('To'); - } - - /** - * Add a Cc: address to this message. - * - * If $name is passed this name will be associated with the address. - * - * @param string $address - * @param string $name optional - * - * @return Swift_Mime_SimpleMessage - */ - public function addCc($address, $name = null) - { - $current = $this->getCc(); - $current[$address] = $name; - - return $this->setCc($current); - } - - /** - * Set the Cc addresses of this message. - * - * If $name is passed and the first parameter is a string, this name will be - * associated with the address. - * - * @param mixed $addresses - * @param string $name optional - * - * @return Swift_Mime_SimpleMessage - */ - public function setCc($addresses, $name = null) - { - if (!is_array($addresses) && isset($name)) { - $addresses = array($addresses => $name); - } - - if (!$this->_setHeaderFieldModel('Cc', (array) $addresses)) { - $this->getHeaders()->addMailboxHeader('Cc', (array) $addresses); - } - - return $this; - } - - /** - * Get the Cc address of this message. - * - * @return array - */ - public function getCc() - { - return $this->_getHeaderFieldModel('Cc'); - } - - /** - * Add a Bcc: address to this message. - * - * If $name is passed this name will be associated with the address. - * - * @param string $address - * @param string $name optional - * - * @return Swift_Mime_SimpleMessage - */ - public function addBcc($address, $name = null) - { - $current = $this->getBcc(); - $current[$address] = $name; - - return $this->setBcc($current); - } - - /** - * Set the Bcc addresses of this message. - * - * If $name is passed and the first parameter is a string, this name will be - * associated with the address. - * - * @param mixed $addresses - * @param string $name optional - * - * @return Swift_Mime_SimpleMessage - */ - public function setBcc($addresses, $name = null) - { - if (!is_array($addresses) && isset($name)) { - $addresses = array($addresses => $name); - } - - if (!$this->_setHeaderFieldModel('Bcc', (array) $addresses)) { - $this->getHeaders()->addMailboxHeader('Bcc', (array) $addresses); - } - - return $this; - } - - /** - * Get the Bcc addresses of this message. - * - * @return array - */ - public function getBcc() - { - return $this->_getHeaderFieldModel('Bcc'); - } - - /** - * Set the priority of this message. - * - * The value is an integer where 1 is the highest priority and 5 is the lowest. - * - * @param integer $priority - * - * @return Swift_Mime_SimpleMessage - */ - public function setPriority($priority) - { - $priorityMap = array( - 1 => 'Highest', - 2 => 'High', - 3 => 'Normal', - 4 => 'Low', - 5 => 'Lowest' - ); - $pMapKeys = array_keys($priorityMap); - if ($priority > max($pMapKeys)) { - $priority = max($pMapKeys); - } elseif ($priority < min($pMapKeys)) { - $priority = min($pMapKeys); - } - if (!$this->_setHeaderFieldModel('X-Priority', - sprintf('%d (%s)', $priority, $priorityMap[$priority]))) - { - $this->getHeaders()->addTextHeader('X-Priority', - sprintf('%d (%s)', $priority, $priorityMap[$priority])); - } - - return $this; - } - - /** - * Get the priority of this message. - * - * The returned value is an integer where 1 is the highest priority and 5 - * is the lowest. - * - * @return integer - */ - public function getPriority() - { - list($priority) = sscanf($this->_getHeaderFieldModel('X-Priority'), - '%[1-5]' - ); - - return isset($priority) ? $priority : 3; - } - - /** - * Ask for a delivery receipt from the recipient to be sent to $addresses - * - * @param array $addresses - * - * @return Swift_Mime_SimpleMessage - */ - public function setReadReceiptTo($addresses) - { - if (!$this->_setHeaderFieldModel('Disposition-Notification-To', $addresses)) { - $this->getHeaders() - ->addMailboxHeader('Disposition-Notification-To', $addresses); - } - - return $this; - } - - /** - * Get the addresses to which a read-receipt will be sent. - * - * @return string - */ - public function getReadReceiptTo() - { - return $this->_getHeaderFieldModel('Disposition-Notification-To'); - } - - /** - * Attach a {@link Swift_Mime_MimeEntity} such as an Attachment or MimePart. - * - * @param Swift_Mime_MimeEntity $entity - * - * @return Swift_Mime_SimpleMessage - */ - public function attach(Swift_Mime_MimeEntity $entity) - { - $this->setChildren(array_merge($this->getChildren(), array($entity))); - - return $this; - } - - /** - * Remove an already attached entity. - * - * @param Swift_Mime_MimeEntity $entity - * - * @return Swift_Mime_SimpleMessage - */ - public function detach(Swift_Mime_MimeEntity $entity) - { - $newChildren = array(); - foreach ($this->getChildren() as $child) { - if ($entity !== $child) { - $newChildren[] = $child; - } - } - $this->setChildren($newChildren); - - return $this; - } - - /** - * Attach a {@link Swift_Mime_MimeEntity} and return it's CID source. - * This method should be used when embedding images or other data in a message. - * - * @param Swift_Mime_MimeEntity $entity - * - * @return string - */ - public function embed(Swift_Mime_MimeEntity $entity) - { - $this->attach($entity); - - return 'cid:' . $entity->getId(); - } - - /** - * Get this message as a complete string. - * - * @return string - */ - public function toString() - { - if (count($children = $this->getChildren()) > 0 && $this->getBody() != '') { - $this->setChildren(array_merge(array($this->_becomeMimePart()), $children)); - $string = parent::toString(); - $this->setChildren($children); - } else { - $string = parent::toString(); - } - - return $string; - } - - /** - * Returns a string representation of this object. - * - * @see toString() - * - * @return string - */ - public function __toString() - { - return $this->toString(); - } - - /** - * Write this message to a {@link Swift_InputByteStream}. - * - * @param Swift_InputByteStream $is - */ - public function toByteStream(Swift_InputByteStream $is) - { - if (count($children = $this->getChildren()) > 0 && $this->getBody() != '') { - $this->setChildren(array_merge(array($this->_becomeMimePart()), $children)); - parent::toByteStream($is); - $this->setChildren($children); - } else { - parent::toByteStream($is); - } - } - - // -- Protected methods - - /** @see Swift_Mime_SimpleMimeEntity::_getIdField() */ - protected function _getIdField() - { - return 'Message-ID'; - } - - // -- Private methods - - /** Turn the body of this message into a child of itself if needed */ - private function _becomeMimePart() - { - $part = new parent($this->getHeaders()->newInstance(), $this->getEncoder(), - $this->_getCache(), $this->_getGrammar(), $this->_userCharset - ); - $part->setContentType($this->_userContentType); - $part->setBody($this->getBody()); - $part->setFormat($this->_userFormat); - $part->setDelSp($this->_userDelSp); - $part->_setNestingLevel($this->_getTopNestingLevel()); - - return $part; - } - - /** Get the highest nesting level nested inside this message */ - private function _getTopNestingLevel() - { - $highestLevel = $this->getNestingLevel(); - foreach ($this->getChildren() as $child) { - $childLevel = $child->getNestingLevel(); - if ($highestLevel < $childLevel) { - $highestLevel = $childLevel; - } - } - - return $highestLevel; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/SimpleMimeEntity.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/SimpleMimeEntity.php deleted file mode 100644 index 4c1df5c..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Mime/SimpleMimeEntity.php +++ /dev/null @@ -1,857 +0,0 @@ - array(self::LEVEL_TOP, self::LEVEL_MIXED), - 'multipart/alternative' => array(self::LEVEL_MIXED, self::LEVEL_ALTERNATIVE), - 'multipart/related' => array(self::LEVEL_ALTERNATIVE, self::LEVEL_RELATED) - ); - - /** A set of filter rules to define what level an entity should be nested at */ - private $_compoundLevelFilters = array(); - - /** The nesting level of this entity */ - private $_nestingLevel = self::LEVEL_ALTERNATIVE; - - /** A KeyCache instance used during encoding and streaming */ - private $_cache; - - /** Direct descendants of this entity */ - private $_immediateChildren = array(); - - /** All descendants of this entity */ - private $_children = array(); - - /** The maximum line length of the body of this entity */ - private $_maxLineLength = 78; - - /** The order in which alternative mime types should appear */ - private $_alternativePartOrder = array( - 'text/plain' => 1, - 'text/html' => 2, - 'multipart/related' => 3 - ); - - /** The CID of this entity */ - private $_id; - - /** The key used for accessing the cache */ - private $_cacheKey; - - protected $_userContentType; - - /** - * Create a new SimpleMimeEntity with $headers, $encoder and $cache. - * - * @param Swift_Mime_HeaderSet $headers - * @param Swift_Mime_ContentEncoder $encoder - * @param Swift_KeyCache $cache - * @param Swift_Mime_Grammar $grammar - */ - public function __construct(Swift_Mime_HeaderSet $headers, Swift_Mime_ContentEncoder $encoder, Swift_KeyCache $cache, Swift_Mime_Grammar $grammar) - { - $this->_cacheKey = uniqid(); - $this->_cache = $cache; - $this->_headers = $headers; - $this->_grammar = $grammar; - $this->setEncoder($encoder); - $this->_headers->defineOrdering(array('Content-Type', 'Content-Transfer-Encoding')); - - // This array specifies that, when the entire MIME document contains - // $compoundLevel, then for each child within $level, if its Content-Type - // is $contentType then it should be treated as if it's level is - // $neededLevel instead. I tried to write that unambiguously! :-\ - // Data Structure: - // array ( - // $compoundLevel => array( - // $level => array( - // $contentType => $neededLevel - // ) - // ) - // ) - - $this->_compoundLevelFilters = array( - (self::LEVEL_ALTERNATIVE + self::LEVEL_RELATED) => array( - self::LEVEL_ALTERNATIVE => array( - 'text/plain' => self::LEVEL_ALTERNATIVE, - 'text/html' => self::LEVEL_RELATED - ) - ) - ); - - $this->_id = $this->getRandomId(); - } - - /** - * Generate a new Content-ID or Message-ID for this MIME entity. - * - * @return string - */ - public function generateId() - { - $this->setId($this->getRandomId()); - - return $this->_id; - } - - /** - * Get the {@link Swift_Mime_HeaderSet} for this entity. - * - * @return Swift_Mime_HeaderSet - */ - public function getHeaders() - { - return $this->_headers; - } - - /** - * Get the nesting level of this entity. - * - * @see LEVEL_TOP, LEVEL_MIXED, LEVEL_RELATED, LEVEL_ALTERNATIVE - * - * @return integer - */ - public function getNestingLevel() - { - return $this->_nestingLevel; - } - - /** - * Get the Content-type of this entity. - * - * @return string - */ - public function getContentType() - { - return $this->_getHeaderFieldModel('Content-Type'); - } - - /** - * Set the Content-type of this entity. - * - * @param string $type - * - * @return Swift_Mime_SimpleMimeEntity - */ - public function setContentType($type) - { - $this->_setContentTypeInHeaders($type); - // Keep track of the value so that if the content-type changes automatically - // due to added child entities, it can be restored if they are later removed - $this->_userContentType = $type; - - return $this; - } - - /** - * Get the CID of this entity. - * - * The CID will only be present in headers if a Content-ID header is present. - * - * @return string - */ - public function getId() - { - return $this->_headers->has($this->_getIdField()) ? current((array) $this->_getHeaderFieldModel($this->_getIdField())) : $this->_id; - } - - /** - * Set the CID of this entity. - * - * @param string $id - * - * @return Swift_Mime_SimpleMimeEntity - */ - public function setId($id) - { - if (!$this->_setHeaderFieldModel($this->_getIdField(), $id)) { - $this->_headers->addIdHeader($this->_getIdField(), $id); - } - $this->_id = $id; - - return $this; - } - - /** - * Get the description of this entity. - * - * This value comes from the Content-Description header if set. - * - * @return string - */ - public function getDescription() - { - return $this->_getHeaderFieldModel('Content-Description'); - } - - /** - * Set the description of this entity. - * - * This method sets a value in the Content-ID header. - * - * @param string $description - * - * @return Swift_Mime_SimpleMimeEntity - */ - public function setDescription($description) - { - if (!$this->_setHeaderFieldModel('Content-Description', $description)) { - $this->_headers->addTextHeader('Content-Description', $description); - } - - return $this; - } - - /** - * Get the maximum line length of the body of this entity. - * - * @return integer - */ - public function getMaxLineLength() - { - return $this->_maxLineLength; - } - - /** - * Set the maximum line length of lines in this body. - * - * Though not enforced by the library, lines should not exceed 1000 chars. - * - * @param integer $length - * - * @return Swift_Mime_SimpleMimeEntity - */ - public function setMaxLineLength($length) - { - $this->_maxLineLength = $length; - - return $this; - } - - /** - * Get all children added to this entity. - * - * @return array of Swift_Mime_Entity - */ - public function getChildren() - { - return $this->_children; - } - - /** - * Set all children of this entity. - * - * @param array $children Swift_Mime_Entity instances - * @param integer $compoundLevel For internal use only - * - * @return Swift_Mime_SimpleMimeEntity - */ - public function setChildren(array $children, $compoundLevel = null) - { - //TODO: Try to refactor this logic - - $compoundLevel = isset($compoundLevel) - ? $compoundLevel - : $this->_getCompoundLevel($children) - ; - - $immediateChildren = array(); - $grandchildren = array(); - $newContentType = $this->_userContentType; - - foreach ($children as $child) { - $level = $this->_getNeededChildLevel($child, $compoundLevel); - if (empty($immediateChildren)) { //first iteration - $immediateChildren = array($child); - } else { - $nextLevel = $this->_getNeededChildLevel($immediateChildren[0], $compoundLevel); - if ($nextLevel == $level) { - $immediateChildren[] = $child; - } elseif ($level < $nextLevel) { - //Re-assign immediateChildren to grandchildren - $grandchildren = array_merge($grandchildren, $immediateChildren); - //Set new children - $immediateChildren = array($child); - } else { - $grandchildren[] = $child; - } - } - } - - if (!empty($immediateChildren)) { - $lowestLevel = $this->_getNeededChildLevel($immediateChildren[0], $compoundLevel); - - //Determine which composite media type is needed to accommodate the - // immediate children - foreach ($this->_compositeRanges as $mediaType => $range) { - if ($lowestLevel > $range[0] - && $lowestLevel <= $range[1]) - { - $newContentType = $mediaType; - break; - } - } - - //Put any grandchildren in a subpart - if (!empty($grandchildren)) { - $subentity = $this->_createChild(); - $subentity->_setNestingLevel($lowestLevel); - $subentity->setChildren($grandchildren, $compoundLevel); - array_unshift($immediateChildren, $subentity); - } - } - - $this->_immediateChildren = $immediateChildren; - $this->_children = $children; - $this->_setContentTypeInHeaders($newContentType); - $this->_fixHeaders(); - $this->_sortChildren(); - - return $this; - } - - /** - * Get the body of this entity as a string. - * - * @return string - */ - public function getBody() - { - return ($this->_body instanceof Swift_OutputByteStream) - ? $this->_readStream($this->_body) - : $this->_body; - } - - /** - * Set the body of this entity, either as a string, or as an instance of - * {@link Swift_OutputByteStream}. - * - * @param mixed $body - * @param string $contentType optional - * - * @return Swift_Mime_SimpleMimeEntity - */ - public function setBody($body, $contentType = null) - { - if ($body !== $this->_body) { - $this->_clearCache(); - } - - $this->_body = $body; - if (isset($contentType)) { - $this->setContentType($contentType); - } - - return $this; - } - - /** - * Get the encoder used for the body of this entity. - * - * @return Swift_Mime_ContentEncoder - */ - public function getEncoder() - { - return $this->_encoder; - } - - /** - * Set the encoder used for the body of this entity. - * - * @param Swift_Mime_ContentEncoder $encoder - * - * @return Swift_Mime_SimpleMimeEntity - */ - public function setEncoder(Swift_Mime_ContentEncoder $encoder) - { - if ($encoder !== $this->_encoder) { - $this->_clearCache(); - } - - $this->_encoder = $encoder; - $this->_setEncoding($encoder->getName()); - $this->_notifyEncoderChanged($encoder); - - return $this; - } - - /** - * Get the boundary used to separate children in this entity. - * - * @return string - */ - public function getBoundary() - { - if (!isset($this->_boundary)) { - $this->_boundary = '_=_swift_v4_' . time() . uniqid() . '_=_'; - } - - return $this->_boundary; - } - - /** - * Set the boundary used to separate children in this entity. - * - * @param string $boundary - * - * @return Swift_Mime_SimpleMimeEntity - * - * @throws Swift_RfcComplianceException - */ - public function setBoundary($boundary) - { - $this->_assertValidBoundary($boundary); - $this->_boundary = $boundary; - - return $this; - } - - /** - * Receive notification that the charset of this entity, or a parent entity - * has changed. - * - * @param string $charset - */ - public function charsetChanged($charset) - { - $this->_notifyCharsetChanged($charset); - } - - /** - * Receive notification that the encoder of this entity or a parent entity - * has changed. - * - * @param Swift_Mime_ContentEncoder $encoder - */ - public function encoderChanged(Swift_Mime_ContentEncoder $encoder) - { - $this->_notifyEncoderChanged($encoder); - } - - /** - * Get this entire entity as a string. - * - * @return string - */ - public function toString() - { - $string = $this->_headers->toString(); - $string .= $this->_bodyToString(); - - return $string; - } - - /** - * Get this entire entity as a string. - * - * @return string - */ - protected function _bodyToString() - { - $string = ''; - - if (isset($this->_body) && empty($this->_immediateChildren)) { - if ($this->_cache->hasKey($this->_cacheKey, 'body')) { - $body = $this->_cache->getString($this->_cacheKey, 'body'); - } else { - $body = "\r\n" . $this->_encoder->encodeString($this->getBody(), 0, - $this->getMaxLineLength() - ); - $this->_cache->setString($this->_cacheKey, 'body', $body, - Swift_KeyCache::MODE_WRITE - ); - } - $string .= $body; - } - - if (!empty($this->_immediateChildren)) { - foreach ($this->_immediateChildren as $child) { - $string .= "\r\n\r\n--" . $this->getBoundary() . "\r\n"; - $string .= $child->toString(); - } - $string .= "\r\n\r\n--" . $this->getBoundary() . "--\r\n"; - } - - return $string; - } - - /** - * Returns a string representation of this object. - * - * @see toString() - * - * @return string - */ - public function __toString() - { - return $this->toString(); - } - - /** - * Write this entire entity to a {@see Swift_InputByteStream}. - * - * @param Swift_InputByteStream - */ - public function toByteStream(Swift_InputByteStream $is) - { - $is->write($this->_headers->toString()); - $is->commit(); - - $this->_bodyToByteStream($is); - } - - /** - * Write this entire entity to a {@link Swift_InputByteStream}. - * - * @param Swift_InputByteStream - */ - protected function _bodyToByteStream(Swift_InputByteStream $is) - { - if (empty($this->_immediateChildren)) { - if (isset($this->_body)) { - if ($this->_cache->hasKey($this->_cacheKey, 'body')) { - $this->_cache->exportToByteStream($this->_cacheKey, 'body', $is); - } else { - $cacheIs = $this->_cache->getInputByteStream($this->_cacheKey, 'body'); - if ($cacheIs) { - $is->bind($cacheIs); - } - - $is->write("\r\n"); - - if ($this->_body instanceof Swift_OutputByteStream) { - $this->_body->setReadPointer(0); - - $this->_encoder->encodeByteStream($this->_body, $is, 0, $this->getMaxLineLength()); - } else { - $is->write($this->_encoder->encodeString($this->getBody(), 0, $this->getMaxLineLength())); - } - - if ($cacheIs) { - $is->unbind($cacheIs); - } - } - } - } - - if (!empty($this->_immediateChildren)) { - foreach ($this->_immediateChildren as $child) { - $is->write("\r\n\r\n--" . $this->getBoundary() . "\r\n"); - $child->toByteStream($is); - } - $is->write("\r\n\r\n--" . $this->getBoundary() . "--\r\n"); - } - } - - // -- Protected methods - - /** - * Get the name of the header that provides the ID of this entity - */ - protected function _getIdField() - { - return 'Content-ID'; - } - - /** - * Get the model data (usually an array or a string) for $field. - */ - protected function _getHeaderFieldModel($field) - { - if ($this->_headers->has($field)) { - return $this->_headers->get($field)->getFieldBodyModel(); - } - } - - /** - * Set the model data for $field. - */ - protected function _setHeaderFieldModel($field, $model) - { - if ($this->_headers->has($field)) { - $this->_headers->get($field)->setFieldBodyModel($model); - - return true; - } else { - return false; - } - } - - /** - * Get the parameter value of $parameter on $field header. - */ - protected function _getHeaderParameter($field, $parameter) - { - if ($this->_headers->has($field)) { - return $this->_headers->get($field)->getParameter($parameter); - } - } - - /** - * Set the parameter value of $parameter on $field header. - */ - protected function _setHeaderParameter($field, $parameter, $value) - { - if ($this->_headers->has($field)) { - $this->_headers->get($field)->setParameter($parameter, $value); - - return true; - } else { - return false; - } - } - - /** - * Re-evaluate what content type and encoding should be used on this entity. - */ - protected function _fixHeaders() - { - if (count($this->_immediateChildren)) { - $this->_setHeaderParameter('Content-Type', 'boundary', - $this->getBoundary() - ); - $this->_headers->remove('Content-Transfer-Encoding'); - } else { - $this->_setHeaderParameter('Content-Type', 'boundary', null); - $this->_setEncoding($this->_encoder->getName()); - } - } - - /** - * Get the KeyCache used in this entity. - * - * @return Swift_KeyCache - */ - protected function _getCache() - { - return $this->_cache; - } - - /** - * Get the grammar used for validation. - * - * @return Swift_Mime_Grammar - */ - protected function _getGrammar() - { - return $this->_grammar; - } - - /** - * Empty the KeyCache for this entity. - */ - protected function _clearCache() - { - $this->_cache->clearKey($this->_cacheKey, 'body'); - } - - /** - * Returns a random Content-ID or Message-ID. - * - * @return string - */ - protected function getRandomId() - { - $idLeft = time() . '.' . uniqid(); - $idRight = !empty($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'swift.generated'; - $id = $idLeft . '@' . $idRight; - - try { - $this->_assertValidId($id); - } catch (Swift_RfcComplianceException $e) { - $id = $idLeft . '@swift.generated'; - } - - return $id; - } - - // -- Private methods - - private function _readStream(Swift_OutputByteStream $os) - { - $string = ''; - while (false !== $bytes = $os->read(8192)) { - $string .= $bytes; - } - - return $string; - } - - private function _setEncoding($encoding) - { - if (!$this->_setHeaderFieldModel('Content-Transfer-Encoding', $encoding)) { - $this->_headers->addTextHeader('Content-Transfer-Encoding', $encoding); - } - } - - private function _assertValidBoundary($boundary) - { - if (!preg_match( - '/^[a-z0-9\'\(\)\+_\-,\.\/:=\?\ ]{0,69}[a-z0-9\'\(\)\+_\-,\.\/:=\?]$/Di', - $boundary)) - { - throw new Swift_RfcComplianceException('Mime boundary set is not RFC 2046 compliant.'); - } - } - - private function _setContentTypeInHeaders($type) - { - if (!$this->_setHeaderFieldModel('Content-Type', $type)) { - $this->_headers->addParameterizedHeader('Content-Type', $type); - } - } - - private function _setNestingLevel($level) - { - $this->_nestingLevel = $level; - } - - private function _getCompoundLevel($children) - { - $level = 0; - foreach ($children as $child) { - $level |= $child->getNestingLevel(); - } - - return $level; - } - - private function _getNeededChildLevel($child, $compoundLevel) - { - $filter = array(); - foreach ($this->_compoundLevelFilters as $bitmask => $rules) { - if (($compoundLevel & $bitmask) === $bitmask) { - $filter = $rules + $filter; - } - } - - $realLevel = $child->getNestingLevel(); - $lowercaseType = strtolower($child->getContentType()); - - if (isset($filter[$realLevel]) - && isset($filter[$realLevel][$lowercaseType])) - { - return $filter[$realLevel][$lowercaseType]; - } else { - return $realLevel; - } - } - - private function _createChild() - { - return new self($this->_headers->newInstance(), - $this->_encoder, $this->_cache, $this->_grammar); - } - - private function _notifyEncoderChanged(Swift_Mime_ContentEncoder $encoder) - { - foreach ($this->_immediateChildren as $child) { - $child->encoderChanged($encoder); - } - } - - private function _notifyCharsetChanged($charset) - { - $this->_encoder->charsetChanged($charset); - $this->_headers->charsetChanged($charset); - foreach ($this->_immediateChildren as $child) { - $child->charsetChanged($charset); - } - } - - private function _sortChildren() - { - $shouldSort = false; - foreach ($this->_immediateChildren as $child) { - //NOTE: This include alternative parts moved into a related part - if ($child->getNestingLevel() == self::LEVEL_ALTERNATIVE) { - $shouldSort = true; - break; - } - } - - //Sort in order of preference, if there is one - if ($shouldSort) { - usort($this->_immediateChildren, array($this, '_childSortAlgorithm')); - } - } - - private function _childSortAlgorithm($a, $b) - { - $typePrefs = array(); - $types = array( - strtolower($a->getContentType()), - strtolower($b->getContentType()) - ); - foreach ($types as $type) { - $typePrefs[] = (array_key_exists($type, $this->_alternativePartOrder)) - ? $this->_alternativePartOrder[$type] - : (max($this->_alternativePartOrder) + 1); - } - - return ($typePrefs[0] >= $typePrefs[1]) ? 1 : -1; - } - - // -- Destructor - - /** - * Empties it's own contents from the cache. - */ - public function __destruct() - { - $this->_cache->clearAll($this->_cacheKey); - } - - /** - * Throws an Exception if the id passed does not comply with RFC 2822. - * - * @param string $id - * - * @throws Swift_RfcComplianceException - */ - private function _assertValidId($id) - { - if (!preg_match( - '/^' . $this->_grammar->getDefinition('id-left') . '@' . - $this->_grammar->getDefinition('id-right') . '$/D', - $id - )) - { - throw new Swift_RfcComplianceException( - 'Invalid ID given <' . $id . '>' - ); - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/MimePart.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/MimePart.php deleted file mode 100644 index 10a4f3c..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/MimePart.php +++ /dev/null @@ -1,61 +0,0 @@ -createDependenciesFor('mime.part') - ); - - if (!isset($charset)) { - $charset = Swift_DependencyContainer::getInstance() - ->lookup('properties.charset'); - } - $this->setBody($body); - $this->setCharset($charset); - if ($contentType) { - $this->setContentType($contentType); - } - } - - /** - * Create a new MimePart. - * - * @param string $body - * @param string $contentType - * @param string $charset - * - * @return Swift_Mime_MimePart - */ - public static function newInstance($body = null, $contentType = null, $charset = null) - { - return new self($body, $contentType, $charset); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/NullTransport.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/NullTransport.php deleted file mode 100644 index 335c479..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/NullTransport.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/** - * Pretends messages have been sent, but just ignores them. - * - * @package Swift - * @author Fabien Potencier - */ -class Swift_NullTransport extends Swift_Transport_NullTransport -{ - /** - * Create a new NullTransport. - */ - public function __construct() - { - call_user_func_array( - array($this, 'Swift_Transport_NullTransport::__construct'), - Swift_DependencyContainer::getInstance() - ->createDependenciesFor('transport.null') - ); - } - - /** - * Create a new NullTransport instance. - * - * @return Swift_NullTransport - */ - public static function newInstance() - { - return new self(); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/OutputByteStream.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/OutputByteStream.php deleted file mode 100644 index 2ff7449..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/OutputByteStream.php +++ /dev/null @@ -1,48 +0,0 @@ -setThreshold($threshold); - $this->setSleepTime($sleep); - $this->_sleeper = $sleeper; - } - - /** - * Set the number of emails to send before restarting. - * - * @param integer $threshold - */ - public function setThreshold($threshold) - { - $this->_threshold = $threshold; - } - - /** - * Get the number of emails to send before restarting. - * - * @return int - */ - public function getThreshold() - { - return $this->_threshold; - } - - /** - * Set the number of seconds to sleep for during a restart. - * - * @param integer $sleep time - */ - public function setSleepTime($sleep) - { - $this->_sleep = $sleep; - } - - /** - * Get the number of seconds to sleep for during a restart. - * - * @return int - */ - public function getSleepTime() - { - return $this->_sleep; - } - - /** - * Invoked immediately before the Message is sent. - * - * @param Swift_Events_SendEvent $evt - */ - public function beforeSendPerformed(Swift_Events_SendEvent $evt) - { - } - - /** - * Invoked immediately after the Message is sent. - * - * @param Swift_Events_SendEvent $evt - */ - public function sendPerformed(Swift_Events_SendEvent $evt) - { - ++$this->_counter; - if ($this->_counter >= $this->_threshold) { - $transport = $evt->getTransport(); - $transport->stop(); - if ($this->_sleep) { - $this->sleep($this->_sleep); - } - $transport->start(); - $this->_counter = 0; - } - } - - /** - * Sleep for $seconds. - * - * @param integer $seconds - */ - public function sleep($seconds) - { - if (isset($this->_sleeper)) { - $this->_sleeper->sleep($seconds); - } else { - sleep($seconds); - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/BandwidthMonitorPlugin.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/BandwidthMonitorPlugin.php deleted file mode 100644 index 8794aac..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/BandwidthMonitorPlugin.php +++ /dev/null @@ -1,166 +0,0 @@ -getMessage(); - $message->toByteStream($this); - } - - /** - * Invoked immediately following a command being sent. - * - * @param Swift_Events_CommandEvent $evt - */ - public function commandSent(Swift_Events_CommandEvent $evt) - { - $command = $evt->getCommand(); - $this->_out += strlen($command); - } - - /** - * Invoked immediately following a response coming back. - * - * @param Swift_Events_ResponseEvent $evt - */ - public function responseReceived(Swift_Events_ResponseEvent $evt) - { - $response = $evt->getResponse(); - $this->_in += strlen($response); - } - - /** - * Called when a message is sent so that the outgoing counter can be increased. - * - * @param string $bytes - */ - public function write($bytes) - { - $this->_out += strlen($bytes); - foreach ($this->_mirrors as $stream) { - $stream->write($bytes); - } - } - - /** - * Not used. - */ - public function commit() - { - } - - /** - * Attach $is to this stream. - * - * The stream acts as an observer, receiving all data that is written. - * All {@link write()} and {@link flushBuffers()} operations will be mirrored. - * - * @param Swift_InputByteStream $is - */ - public function bind(Swift_InputByteStream $is) - { - $this->_mirrors[] = $is; - } - - /** - * Remove an already bound stream. - * - * If $is is not bound, no errors will be raised. - * If the stream currently has any buffered data it will be written to $is - * before unbinding occurs. - * - * @param Swift_InputByteStream $is - */ - public function unbind(Swift_InputByteStream $is) - { - foreach ($this->_mirrors as $k => $stream) { - if ($is === $stream) { - unset($this->_mirrors[$k]); - } - } - } - - /** - * Not used. - */ - public function flushBuffers() - { - foreach ($this->_mirrors as $stream) { - $stream->flushBuffers(); - } - } - - /** - * Get the total number of bytes sent to the server. - * - * @return int - */ - public function getBytesOut() - { - return $this->_out; - } - - /** - * Get the total number of bytes received from the server. - * - * @return int - */ - public function getBytesIn() - { - return $this->_in; - } - - /** - * Reset the internal counters to zero. - */ - public function reset() - { - $this->_out = 0; - $this->_in = 0; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Decorator/Replacements.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Decorator/Replacements.php deleted file mode 100644 index 3269c69..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Decorator/Replacements.php +++ /dev/null @@ -1,33 +0,0 @@ - - * $replacements = array( - * "address1@domain.tld" => array("{a}" => "b", "{c}" => "d"), - * "address2@domain.tld" => array("{a}" => "x", "{c}" => "y") - * ) - * - * - * When using an instance of {@link Swift_Plugins_Decorator_Replacements}, - * the object should return just the array of replacements for the address - * given to {@link Swift_Plugins_Decorator_Replacements::getReplacementsFor()}. - * - * @param mixed $replacements Array or Swift_Plugins_Decorator_Replacements - */ - public function __construct($replacements) - { - $this->setReplacements($replacements); - } - - /** - * Sets replacements. - * - * @param mixed $replacements Array or Swift_Plugins_Decorator_Replacements - * - * @see __construct() - */ - public function setReplacements($replacements) - { - if (!($replacements instanceof \Swift_Plugins_Decorator_Replacements)) { - $this->_replacements = (array) $replacements; - } else { - $this->_replacements = $replacements; - } - } - - /** - * Invoked immediately before the Message is sent. - * - * @param Swift_Events_SendEvent $evt - */ - public function beforeSendPerformed(Swift_Events_SendEvent $evt) - { - $message = $evt->getMessage(); - $this->_restoreMessage($message); - $to = array_keys($message->getTo()); - $address = array_shift($to); - if ($replacements = $this->getReplacementsFor($address)) { - $body = $message->getBody(); - $search = array_keys($replacements); - $replace = array_values($replacements); - $bodyReplaced = str_replace( - $search, $replace, $body - ); - if ($body != $bodyReplaced) { - $this->_originalBody = $body; - $message->setBody($bodyReplaced); - } - - foreach ($message->getHeaders()->getAll() as $header) { - $body = $header->getFieldBodyModel(); - $count = 0; - if (is_array($body)) { - $bodyReplaced = array(); - foreach ($body as $key => $value) { - $count1 = 0; - $count2 = 0; - $key = is_string($key) ? str_replace($search, $replace, $key, $count1) : $key; - $value = is_string($value) ? str_replace($search, $replace, $value, $count2) : $value; - $bodyReplaced[$key] = $value; - - if (!$count && ($count1 || $count2)) { - $count = 1; - } - } - } else { - $bodyReplaced = str_replace($search, $replace, $body, $count); - } - - if ($count) { - $this->_originalHeaders[$header->getFieldName()] = $body; - $header->setFieldBodyModel($bodyReplaced); - } - } - - $children = (array) $message->getChildren(); - foreach ($children as $child) { - list($type, ) = sscanf($child->getContentType(), '%[^/]/%s'); - if ('text' == $type) { - $body = $child->getBody(); - $bodyReplaced = str_replace( - $search, $replace, $body - ); - if ($body != $bodyReplaced) { - $child->setBody($bodyReplaced); - $this->_originalChildBodies[$child->getId()] = $body; - } - } - } - $this->_lastMessage = $message; - } - } - - /** - * Find a map of replacements for the address. - * - * If this plugin was provided with a delegate instance of - * {@link Swift_Plugins_Decorator_Replacements} then the call will be - * delegated to it. Otherwise, it will attempt to find the replacements - * from the array provided in the constructor. - * - * If no replacements can be found, an empty value (NULL) is returned. - * - * @param string $address - * - * @return array - */ - public function getReplacementsFor($address) - { - if ($this->_replacements instanceof Swift_Plugins_Decorator_Replacements) { - return $this->_replacements->getReplacementsFor($address); - } else { - return isset($this->_replacements[$address]) - ? $this->_replacements[$address] - : null - ; - } - } - - /** - * Invoked immediately after the Message is sent. - * - * @param Swift_Events_SendEvent $evt - */ - public function sendPerformed(Swift_Events_SendEvent $evt) - { - $this->_restoreMessage($evt->getMessage()); - } - - // -- Private methods - - /** Restore a changed message back to its original state */ - private function _restoreMessage(Swift_Mime_Message $message) - { - if ($this->_lastMessage === $message) { - if (isset($this->_originalBody)) { - $message->setBody($this->_originalBody); - $this->_originalBody = null; - } - if (!empty($this->_originalHeaders)) { - foreach ($message->getHeaders()->getAll() as $header) { - if (array_key_exists($header->getFieldName(), $this->_originalHeaders)) { - $header->setFieldBodyModel($this->_originalHeaders[$header->getFieldName()]); - } - } - $this->_originalHeaders = array(); - } - if (!empty($this->_originalChildBodies)) { - $children = (array) $message->getChildren(); - foreach ($children as $child) { - $id = $child->getId(); - if (array_key_exists($id, $this->_originalChildBodies)) { - $child->setBody($this->_originalChildBodies[$id]); - } - } - $this->_originalChildBodies = array(); - } - $this->_lastMessage = null; - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/ImpersonatePlugin.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/ImpersonatePlugin.php deleted file mode 100644 index 1f1e443..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/ImpersonatePlugin.php +++ /dev/null @@ -1,70 +0,0 @@ -_sender = $sender; - } - - /** - * Invoked immediately before the Message is sent. - * - * @param Swift_Events_SendEvent $evt - */ - public function beforeSendPerformed(Swift_Events_SendEvent $evt) - { - $message = $evt->getMessage(); - $headers = $message->getHeaders(); - - // save current recipients - $headers->addPathHeader('X-Swift-Return-Path', $message->getReturnPath()); - - // replace them with the one to send to - $message->setReturnPath($this->_sender); - } - - /** - * Invoked immediately after the Message is sent. - * - * @param Swift_Events_SendEvent $evt - */ - public function sendPerformed(Swift_Events_SendEvent $evt) - { - $message = $evt->getMessage(); - - // restore original headers - $headers = $message->getHeaders(); - - if ($headers->has('X-Swift-Return-Path')) { - $message->setReturnPath($headers->get('X-Swift-Return-Path')->getAddress()); - $headers->removeAll('X-Swift-Return-Path'); - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Logger.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Logger.php deleted file mode 100644 index 81c1d9b..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Logger.php +++ /dev/null @@ -1,38 +0,0 @@ -_logger = $logger; - } - - /** - * Add a log entry. - * - * @param string $entry - */ - public function add($entry) - { - $this->_logger->add($entry); - } - - /** - * Clear the log contents. - */ - public function clear() - { - $this->_logger->clear(); - } - - /** - * Get this log as a string. - * - * @return string - */ - public function dump() - { - return $this->_logger->dump(); - } - - /** - * Invoked immediately following a command being sent. - * - * @param Swift_Events_CommandEvent $evt - */ - public function commandSent(Swift_Events_CommandEvent $evt) - { - $command = $evt->getCommand(); - $this->_logger->add(sprintf(">> %s", $command)); - } - - /** - * Invoked immediately following a response coming back. - * - * @param Swift_Events_ResponseEvent $evt - */ - public function responseReceived(Swift_Events_ResponseEvent $evt) - { - $response = $evt->getResponse(); - $this->_logger->add(sprintf("<< %s", $response)); - } - - /** - * Invoked just before a Transport is started. - * - * @param Swift_Events_TransportChangeEvent $evt - */ - public function beforeTransportStarted(Swift_Events_TransportChangeEvent $evt) - { - $transportName = get_class($evt->getSource()); - $this->_logger->add(sprintf("++ Starting %s", $transportName)); - } - - /** - * Invoked immediately after the Transport is started. - * - * @param Swift_Events_TransportChangeEvent $evt - */ - public function transportStarted(Swift_Events_TransportChangeEvent $evt) - { - $transportName = get_class($evt->getSource()); - $this->_logger->add(sprintf("++ %s started", $transportName)); - } - - /** - * Invoked just before a Transport is stopped. - * - * @param Swift_Events_TransportChangeEvent $evt - */ - public function beforeTransportStopped(Swift_Events_TransportChangeEvent $evt) - { - $transportName = get_class($evt->getSource()); - $this->_logger->add(sprintf("++ Stopping %s", $transportName)); - } - - /** - * Invoked immediately after the Transport is stopped. - * - * @param Swift_Events_TransportChangeEvent $evt - */ - public function transportStopped(Swift_Events_TransportChangeEvent $evt) - { - $transportName = get_class($evt->getSource()); - $this->_logger->add(sprintf("++ %s stopped", $transportName)); - } - - /** - * Invoked as a TransportException is thrown in the Transport system. - * - * @param Swift_Events_TransportExceptionEvent $evt - */ - public function exceptionThrown(Swift_Events_TransportExceptionEvent $evt) - { - $e = $evt->getException(); - $message = $e->getMessage(); - $this->_logger->add(sprintf("!! %s", $message)); - $message .= PHP_EOL; - $message .= 'Log data:' . PHP_EOL; - $message .= $this->_logger->dump(); - $evt->cancelBubble(); - throw new Swift_TransportException($message); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Loggers/ArrayLogger.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Loggers/ArrayLogger.php deleted file mode 100644 index eb362ef..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Loggers/ArrayLogger.php +++ /dev/null @@ -1,74 +0,0 @@ -_size = $size; - } - - /** - * Add a log entry. - * - * @param string $entry - */ - public function add($entry) - { - $this->_log[] = $entry; - while (count($this->_log) > $this->_size) { - array_shift($this->_log); - } - } - - /** - * Clear the log contents. - */ - public function clear() - { - $this->_log = array(); - } - - /** - * Get this log as a string. - * - * @return string - */ - public function dump() - { - return implode(PHP_EOL, $this->_log); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Loggers/EchoLogger.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Loggers/EchoLogger.php deleted file mode 100644 index c542169..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Loggers/EchoLogger.php +++ /dev/null @@ -1,60 +0,0 @@ -_isHtml = $isHtml; - } - - /** - * Add a log entry. - * - * @param string $entry - */ - public function add($entry) - { - if ($this->_isHtml) { - printf('%s%s%s', htmlspecialchars($entry, ENT_QUOTES), '
', PHP_EOL); - } else { - printf('%s%s', $entry, PHP_EOL); - } - } - - /** - * Not implemented. - */ - public function clear() - { - } - - /** - * Not implemented. - */ - public function dump() - { - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/MessageLogger.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/MessageLogger.php deleted file mode 100644 index 35d5de5..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/MessageLogger.php +++ /dev/null @@ -1,77 +0,0 @@ -messages = array(); - } - - /** - * Get the message list - * - * @return array - */ - public function getMessages() - { - return $this->messages; - } - - /** - * Get the message count - * - * @return integer count - */ - public function countMessages() - { - return count($this->messages); - } - - /** - * Empty the message list - * - */ - public function clear() - { - $this->messages = array(); - } - - /** - * Invoked immediately before the Message is sent. - * - * @param Swift_Events_SendEvent $evt - */ - public function beforeSendPerformed(Swift_Events_SendEvent $evt) - { - $this->messages[] = clone $evt->getMessage(); - } - - /** - * Invoked immediately after the Message is sent. - * - * @param Swift_Events_SendEvent $evt - */ - public function sendPerformed(Swift_Events_SendEvent $evt) - { - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Pop/Pop3Connection.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Pop/Pop3Connection.php deleted file mode 100644 index d241721..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Pop/Pop3Connection.php +++ /dev/null @@ -1,33 +0,0 @@ -_host = $host; - $this->_port = $port; - $this->_crypto = $crypto; - } - - /** - * Create a new PopBeforeSmtpPlugin for $host and $port. - * - * @param string $host - * @param integer $port - * @param string $crypto as "tls" or "ssl" - * - * @return Swift_Plugins_PopBeforeSmtpPlugin - */ - public static function newInstance($host, $port = 110, $crypto = null) - { - return new self($host, $port, $crypto); - } - - /** - * Set a Pop3Connection to delegate to instead of connecting directly. - * - * @param Swift_Plugins_Pop_Pop3Connection $connection - * - * @return Swift_Plugins_PopBeforeSmtpPlugin - */ - public function setConnection(Swift_Plugins_Pop_Pop3Connection $connection) - { - $this->_connection = $connection; - - return $this; - } - - /** - * Bind this plugin to a specific SMTP transport instance. - * - * @param Swift_Transport - */ - public function bindSmtp(Swift_Transport $smtp) - { - $this->_transport = $smtp; - } - - /** - * Set the connection timeout in seconds (default 10). - * - * @param integer $timeout - * - * @return Swift_Plugins_PopBeforeSmtpPlugin - */ - public function setTimeout($timeout) - { - $this->_timeout = (int) $timeout; - - return $this; - } - - /** - * Set the username to use when connecting (if needed). - * - * @param string $username - * - * @return Swift_Plugins_PopBeforeSmtpPlugin - */ - public function setUsername($username) - { - $this->_username = $username; - - return $this; - } - - /** - * Set the password to use when connecting (if needed). - * - * @param string $password - * - * @return Swift_Plugins_PopBeforeSmtpPlugin - */ - public function setPassword($password) - { - $this->_password = $password; - - return $this; - } - - /** - * Connect to the POP3 host and authenticate. - * - * @throws Swift_Plugins_Pop_Pop3Exception if connection fails - */ - public function connect() - { - if (isset($this->_connection)) { - $this->_connection->connect(); - } else { - if (!isset($this->_socket)) { - if (!$socket = fsockopen( - $this->_getHostString(), $this->_port, $errno, $errstr, $this->_timeout)) - { - throw new Swift_Plugins_Pop_Pop3Exception( - sprintf('Failed to connect to POP3 host [%s]: %s', $this->_host, $errstr) - ); - } - $this->_socket = $socket; - - if (false === $greeting = fgets($this->_socket)) { - throw new Swift_Plugins_Pop_Pop3Exception( - sprintf('Failed to connect to POP3 host [%s]', trim($greeting)) - ); - } - - $this->_assertOk($greeting); - - if ($this->_username) { - $this->_command(sprintf("USER %s\r\n", $this->_username)); - $this->_command(sprintf("PASS %s\r\n", $this->_password)); - } - } - } - } - - /** - * Disconnect from the POP3 host. - */ - public function disconnect() - { - if (isset($this->_connection)) { - $this->_connection->disconnect(); - } else { - $this->_command("QUIT\r\n"); - if (!fclose($this->_socket)) { - throw new Swift_Plugins_Pop_Pop3Exception( - sprintf('POP3 host [%s] connection could not be stopped', $this->_host) - ); - } - $this->_socket = null; - } - } - - /** - * Invoked just before a Transport is started. - * - * @param Swift_Events_TransportChangeEvent $evt - */ - public function beforeTransportStarted(Swift_Events_TransportChangeEvent $evt) - { - if (isset($this->_transport)) { - if ($this->_transport !== $evt->getTransport()) { - return; - } - } - - $this->connect(); - $this->disconnect(); - } - - /** - * Not used. - */ - public function transportStarted(Swift_Events_TransportChangeEvent $evt) - { - } - - /** - * Not used. - */ - public function beforeTransportStopped(Swift_Events_TransportChangeEvent $evt) - { - } - - /** - * Not used. - */ - public function transportStopped(Swift_Events_TransportChangeEvent $evt) - { - } - - // -- Private Methods - - private function _command($command) - { - if (!fwrite($this->_socket, $command)) { - throw new Swift_Plugins_Pop_Pop3Exception( - sprintf('Failed to write command [%s] to POP3 host', trim($command)) - ); - } - - if (false === $response = fgets($this->_socket)) { - throw new Swift_Plugins_Pop_Pop3Exception( - sprintf('Failed to read from POP3 host after command [%s]', trim($command)) - ); - } - - $this->_assertOk($response); - - return $response; - } - - private function _assertOk($response) - { - if (substr($response, 0, 3) != '+OK') { - throw new Swift_Plugins_Pop_Pop3Exception( - sprintf('POP3 command failed [%s]', trim($response)) - ); - } - } - - private function _getHostString() - { - $host = $this->_host; - switch (strtolower($this->_crypto)) { - case 'ssl': - $host = 'ssl://' . $host; - break; - - case 'tls': - $host = 'tls://' . $host; - break; - } - - return $host; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/RedirectingPlugin.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/RedirectingPlugin.php deleted file mode 100644 index f4a4c5f..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/RedirectingPlugin.php +++ /dev/null @@ -1,195 +0,0 @@ -_recipient = $recipient; - $this->_whitelist = $whitelist; - } - - /** - * Set the recipient of all messages. - * - * @param string $recipient - */ - public function setRecipient($recipient) - { - $this->_recipient = $recipient; - } - - /** - * Get the recipient of all messages. - * - * @return int - */ - public function getRecipient() - { - return $this->_recipient; - } - - /** - * Set a list of regular expressions to whitelist certain recipients - * - * @param array $whitelist - */ - public function setWhitelist(array $whitelist) - { - $this->_whitelist = $whitelist; - } - - /** - * Get the whitelist - * - * @return array - */ - public function getWhitelist() - { - return $this->_whitelist; - } - - /** - * Invoked immediately before the Message is sent. - * - * @param Swift_Events_SendEvent $evt - */ - public function beforeSendPerformed(Swift_Events_SendEvent $evt) - { - $message = $evt->getMessage(); - $headers = $message->getHeaders(); - - // save current recipients - $headers->addMailboxHeader('X-Swift-To', $message->getTo()); - $headers->addMailboxHeader('X-Swift-Cc', $message->getCc()); - $headers->addMailboxHeader('X-Swift-Bcc', $message->getBcc()); - - // Add hard coded recipient - $message->addTo($this->_recipient); - - // Filter remaining headers against whitelist - $this->_filterHeaderSet($headers, 'To'); - $this->_filterHeaderSet($headers, 'Cc'); - $this->_filterHeaderSet($headers, 'Bcc'); - } - - /** - * Filter header set against a whitelist of regular expressions - * - * @param Swift_Mime_HeaderSet $headerSet - * @param string $type - */ - private function _filterHeaderSet(Swift_Mime_HeaderSet $headerSet, $type) - { - foreach ($headerSet->getAll($type) as $headers) { - $headers->setNameAddresses($this->_filterNameAddresses($headers->getNameAddresses())); - } - } - - /** - * Filtered list of addresses => name pairs - * - * @param array $recipients - * @return array - */ - private function _filterNameAddresses(array $recipients) - { - $filtered = array(); - - foreach ($recipients as $address => $name) { - if ($this->_isWhitelisted($address)) { - $filtered[$address] = $name; - } - } - - return $filtered; - } - - /** - * Matches address against whitelist of regular expressions - * - * @param $recipient - * @return bool - */ - protected function _isWhitelisted($recipient) - { - if ($recipient === $this->_recipient) { - return true; - } - - foreach ($this->_whitelist as $pattern) { - if (preg_match($pattern, $recipient)) { - return true; - } - } - - return false; - } - - /** - * Invoked immediately after the Message is sent. - * - * @param Swift_Events_SendEvent $evt - */ - public function sendPerformed(Swift_Events_SendEvent $evt) - { - $this->_restoreMessage($evt->getMessage()); - } - - // -- Private methods - - private function _restoreMessage(Swift_Mime_Message $message) - { - // restore original headers - $headers = $message->getHeaders(); - - if ($headers->has('X-Swift-To')) { - $message->setTo($headers->get('X-Swift-To')->getNameAddresses()); - $headers->removeAll('X-Swift-To'); - } - - if ($headers->has('X-Swift-Cc')) { - $message->setCc($headers->get('X-Swift-Cc')->getNameAddresses()); - $headers->removeAll('X-Swift-Cc'); - } - - if ($headers->has('X-Swift-Bcc')) { - $message->setBcc($headers->get('X-Swift-Bcc')->getNameAddresses()); - $headers->removeAll('X-Swift-Bcc'); - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Reporter.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Reporter.php deleted file mode 100644 index 0dfa22d..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Reporter.php +++ /dev/null @@ -1,34 +0,0 @@ -_reporter = $reporter; - } - - /** - * Not used. - */ - public function beforeSendPerformed(Swift_Events_SendEvent $evt) - { - } - - /** - * Invoked immediately after the Message is sent. - * - * @param Swift_Events_SendEvent $evt - */ - public function sendPerformed(Swift_Events_SendEvent $evt) - { - $message = $evt->getMessage(); - $failures = array_flip($evt->getFailedRecipients()); - foreach ((array) $message->getTo() as $address => $null) { - $this->_reporter->notify( - $message, $address, (array_key_exists($address, $failures) - ? Swift_Plugins_Reporter::RESULT_FAIL - : Swift_Plugins_Reporter::RESULT_PASS) - ); - } - foreach ((array) $message->getCc() as $address => $null) { - $this->_reporter->notify( - $message, $address, (array_key_exists($address, $failures) - ? Swift_Plugins_Reporter::RESULT_FAIL - : Swift_Plugins_Reporter::RESULT_PASS) - ); - } - foreach ((array) $message->getBcc() as $address => $null) { - $this->_reporter->notify( - $message, $address, (array_key_exists($address, $failures) - ? Swift_Plugins_Reporter::RESULT_FAIL - : Swift_Plugins_Reporter::RESULT_PASS) - ); - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Reporters/HitReporter.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Reporters/HitReporter.php deleted file mode 100644 index 844e2a1..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Reporters/HitReporter.php +++ /dev/null @@ -1,61 +0,0 @@ -_failures_cache[$address])) { - $this->_failures[] = $address; - $this->_failures_cache[$address] = true; - } - } - - /** - * Get an array of addresses for which delivery failed. - * - * @return array - */ - public function getFailedRecipients() - { - return $this->_failures; - } - - /** - * Clear the buffer (empty the list). - */ - public function clear() - { - $this->_failures = $this->_failures_cache = array(); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Reporters/HtmlReporter.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Reporters/HtmlReporter.php deleted file mode 100644 index 7b8c188..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Reporters/HtmlReporter.php +++ /dev/null @@ -1,41 +0,0 @@ -" . PHP_EOL; - echo "PASS " . $address . PHP_EOL; - echo "" . PHP_EOL; - flush(); - } else { - echo "
" . PHP_EOL; - echo "FAIL " . $address . PHP_EOL; - echo "
" . PHP_EOL; - flush(); - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Sleeper.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Sleeper.php deleted file mode 100644 index c491f63..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Sleeper.php +++ /dev/null @@ -1,26 +0,0 @@ -_rate = $rate; - $this->_mode = $mode; - $this->_sleeper = $sleeper; - $this->_timer = $timer; - } - - /** - * Invoked immediately before the Message is sent. - * - * @param Swift_Events_SendEvent $evt - */ - public function beforeSendPerformed(Swift_Events_SendEvent $evt) - { - $time = $this->getTimestamp(); - if (!isset($this->_start)) { - $this->_start = $time; - } - $duration = $time - $this->_start; - - switch($this->_mode) { - case self::BYTES_PER_MINUTE : - $sleep = $this->_throttleBytesPerMinute($duration); - break; - case self::MESSAGES_PER_SECOND : - $sleep = $this->_throttleMessagesPerSecond($duration); - break; - case self::MESSAGES_PER_MINUTE : - $sleep = $this->_throttleMessagesPerMinute($duration); - break; - default : - $sleep = 0; - break; - } - - if ($sleep > 0) { - $this->sleep($sleep); - } - } - - /** - * Invoked when a Message is sent. - * - * @param Swift_Events_SendEvent $evt - */ - public function sendPerformed(Swift_Events_SendEvent $evt) - { - parent::sendPerformed($evt); - ++$this->_messages; - } - - /** - * Sleep for $seconds. - * - * @param integer $seconds - */ - public function sleep($seconds) - { - if (isset($this->_sleeper)) { - $this->_sleeper->sleep($seconds); - } else { - sleep($seconds); - } - } - - /** - * Get the current UNIX timestamp. - * - * @return int - */ - public function getTimestamp() - { - if (isset($this->_timer)) { - return $this->_timer->getTimestamp(); - } else { - return time(); - } - } - - // -- Private methods - - /** - * Get a number of seconds to sleep for. - * - * @param integer $timePassed - * - * @return int - */ - private function _throttleBytesPerMinute($timePassed) - { - $expectedDuration = $this->getBytesOut() / ($this->_rate / 60); - - return (int) ceil($expectedDuration - $timePassed); - } - - /** - * Get a number of seconds to sleep for. - * - * @param int $timePassed - * - * @return int - */ - private function _throttleMessagesPerSecond($timePassed) - { - $expectedDuration = $this->_messages / ($this->_rate); - - return (int) ceil($expectedDuration - $timePassed); - } - - /** - * Get a number of seconds to sleep for. - * - * @param integer $timePassed - * - * @return int - */ - private function _throttleMessagesPerMinute($timePassed) - { - $expectedDuration = $this->_messages / ($this->_rate / 60); - - return (int) ceil($expectedDuration - $timePassed); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Timer.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Timer.php deleted file mode 100644 index 12dd09b..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Plugins/Timer.php +++ /dev/null @@ -1,26 +0,0 @@ -register('properties.charset')->asValue($charset); - - return $this; - } - - /** - * Set the directory where temporary files can be saved. - * - * @param string $dir - * - * @return Swift_Preferences - */ - public function setTempDir($dir) - { - Swift_DependencyContainer::getInstance() - ->register('tempdir')->asValue($dir); - - return $this; - } - - /** - * Set the type of cache to use (i.e. "disk" or "array"). - * - * @param string $type - * - * @return Swift_Preferences - */ - public function setCacheType($type) - { - Swift_DependencyContainer::getInstance() - ->register('cache')->asAliasOf(sprintf('cache.%s', $type)); - - return $this; - } - - /** - * Set the QuotedPrintable dot escaper preference. - * - * @param boolean $dotEscape - * - * @return Swift_Preferences - */ - public function setQPDotEscape($dotEscape) - { - $dotEscape = !empty($dotEscape); - Swift_DependencyContainer::getInstance() - -> register('mime.qpcontentencoder') - -> asNewInstanceOf('Swift_Mime_ContentEncoder_QpContentEncoder') - -> withDependencies(array('mime.charstream', 'mime.bytecanonicalizer')) - -> addConstructorValue($dotEscape); - - return $this; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ReplacementFilterFactory.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ReplacementFilterFactory.php deleted file mode 100644 index 4b6eed5..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/ReplacementFilterFactory.php +++ /dev/null @@ -1,28 +0,0 @@ -createDependenciesFor('transport.sendmail') - ); - - $this->setCommand($command); - } - - /** - * Create a new SendmailTransport instance. - * - * @param string $command - * - * @return Swift_SendmailTransport - */ - public static function newInstance($command = '/usr/sbin/sendmail -bs') - { - return new self($command); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/SignedMessage.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/SignedMessage.php deleted file mode 100644 index f96b210..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/SignedMessage.php +++ /dev/null @@ -1,161 +0,0 @@ - - */ -class Swift_SignedMessage extends Swift_Message -{ - /** - * @var Swift_Signers_HeaderSigner[] - */ - private $headerSigners = array(); - - /** - * @var Swift_Signers_BodySigner[] - */ - private $bodySigners = array(); - - /** - * @var array - */ - private $savedMessage = array(); - - /** - * Create a new Message. - * - * @param string $subject - * @param string $body - * @param string $contentType - * @param string $charset - * - * @return Swift_SignedMessage - */ - public static function newInstance($subject = null, $body = null, $contentType = null, $charset = null) - { - return new self($subject, $body, $contentType, $charset); - } - - /** - * Attach a new signature handler to the message. - * - * @param Swift_Signer $signer - * @return Swift_SignedMessage - */ - public function attachSigner(Swift_Signer $signer) - { - if ($signer instanceof Swift_Signers_HeaderSigner) { - $this->headerSigners[] = $signer; - } - elseif ($signer instanceof Swift_Signers_BodySigner) { - $this->bodySigners[] = $signer; - } - - return $this; - } - - /** - * Get this message as a complete string. - * - * @return string - */ - public function toString() - { - $this->saveMessage(); - - $this->doSign(); - $string = parent::toString(); - $this->restoreMessage(); - - return $string; - } - - /** - * Write this message to a {@link Swift_InputByteStream}. - * - * @param Swift_InputByteStream $is - */ - public function toByteStream(Swift_InputByteStream $is) - { - $this->saveMessage(); - $this->doSign(); - - parent::toByteStream($is); - $this->restoreMessage(); - } - - protected function doSign() - { - foreach ($this->bodySigners as $signer) { - $altered = $signer->getAlteredHeaders(); - $this->saveHeaders($altered); - $signer->signMessage($this); - } - - foreach ($this->headerSigners as $signer) { - $altered = $signer->getAlteredHeaders(); - $this->saveHeaders($altered); - $signer->reset(); - - $signer->setHeaders($this->getHeaders()); - - $signer->startBody(); - $this->_bodyToByteStream($signer); - $signer->endBody(); - - $signer->addSignature($this->getHeaders()); - } - } - - protected function saveMessage() - { - $this->savedMessage = array('headers'=> array()); - $this->savedMessage['body'] = $this->getBody(); - $this->savedMessage['children'] = $this->getChildren(); - } - - protected function saveHeaders(array $altered) - { - foreach ($altered as $head) { - $lc = strtolower($head); - - if (!isset($this->savedMessage['headers'][$lc])) { - $this->savedMessage['headers'][$lc] = $this->getHeaders()->getAll($head); - } - } - } - - protected function restoreHeaders() - { - foreach ($this->savedMessage['headers'] as $name => $savedValue) { - $headers = $this->getHeaders()->getAll($name); - - foreach ($headers as $key => $value) { - if (!isset($savedValue[$key])) { - $this->getHeaders()->remove($name, $key); - } - } - } - } - - protected function restoreMessage() - { - $this->setBody($this->savedMessage['body']); - $this->setChildren($this->savedMessage['children']); - - $this->restoreHeaders(); - $this->savedMessage = array(); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signer.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signer.php deleted file mode 100644 index 865f557..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signer.php +++ /dev/null @@ -1,22 +0,0 @@ - - */ -interface Swift_Signer -{ - public function reset(); -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/BodySigner.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/BodySigner.php deleted file mode 100644 index 3a653a3..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/BodySigner.php +++ /dev/null @@ -1,35 +0,0 @@ - - */ -interface Swift_Signers_BodySigner extends Swift_Signer -{ - /** - * Change the Swift_Signed_Message to apply the singing. - * - * @param Swift_Signed_Message $message - * - * @return Swift_Signers_BodySigner - */ - public function signMessage(Swift_SignedMessage $message); - - /** - * Return the list of header a signer might tamper - * - * @return array - */ - public function getAlteredHeaders(); -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/DKIMSigner.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/DKIMSigner.php deleted file mode 100644 index f01acc9..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/DKIMSigner.php +++ /dev/null @@ -1,666 +0,0 @@ - - */ -class Swift_Signers_DKIMSigner implements Swift_Signers_HeaderSigner -{ - /** - * PrivateKey - * - * @var string - */ - protected $_privateKey; - - /** - * DomainName - * - * @var string - */ - protected $_domainName; - - /** - * Selector - * - * @var string - */ - protected $_selector; - - /** - * Hash algorithm used - * - * @var string - */ - protected $_hashAlgorithm = 'rsa-sha1'; - - /** - * Body canon method - * - * @var string - */ - protected $_bodyCanon = 'simple'; - - /** - * Header canon method - * - * @var string - */ - protected $_headerCanon = 'simple'; - - /** - * Headers not being signed - * - * @var array - */ - protected $_ignoredHeaders = array(); - - /** - * Signer identity - * - * @var unknown_type - */ - protected $_signerIdentity; - - /** - * BodyLength - * - * @var int - */ - protected $_bodyLen = 0; - - /** - * Maximum signedLen - * - * @var int - */ - protected $_maxLen = PHP_INT_MAX; - - /** - * Embbed bodyLen in signature - * - * @var boolean - */ - protected $_showLen = false; - - /** - * When the signature has been applied (true means time()), false means not embedded - * - * @var mixed - */ - protected $_signatureTimestamp = true; - - /** - * When will the signature expires false means not embedded, if sigTimestamp is auto - * Expiration is relative, otherwhise it's absolute - * - * @var int - */ - protected $_signatureExpiration = false; - - /** - * Must we embed signed headers? - * - * @var boolean - */ - protected $_debugHeaders = false; - - // work variables - /** - * Headers used to generate hash - * - * @var array - */ - protected $_signedHeaders = array(); - - /** - * If debugHeaders is set store debugDatas here - * - * @var string - */ - private $_debugHeadersData = ''; - - /** - * Stores the bodyHash - * - * @var string - */ - private $_bodyHash = ''; - - /** - * Stores the signature header - * - * @var Swift_Mime_Headers_ParameterizedHeader - */ - protected $_dkimHeader; - - /** - * Hash Handler - * - * @var hash_ressource - */ - private $_headerHashHandler; - - private $_bodyHashHandler; - - private $_headerHash; - - private $_headerCanonData = ''; - - private $_bodyCanonEmptyCounter = 0; - - private $_bodyCanonIgnoreStart = 2; - - private $_bodyCanonSpace = false; - - private $_bodyCanonLastChar = null; - - private $_bodyCanonLine = ''; - - private $_bound = array(); - - /** - * Constructor - * - * @param string $privateKey - * @param string $domainName - * @param string $selector - */ - public function __construct($privateKey, $domainName, $selector) - { - $this->_privateKey = $privateKey; - $this->_domainName = $domainName; - $this->_signerIdentity = '@' . $domainName; - $this->_selector = $selector; - } - - public function reset() - { - $this->_headerHash = null; - $this->_signedHeaders = array(); - $this->_headerHashHandler = null; - $this->_bodyHash = null; - $this->_bodyHashHandler = null; - $this->_bodyCanonIgnoreStart = 2; - $this->_bodyCanonEmptyCounter = 0; - $this->_bodyCanonLastChar = NULL; - $this->_bodyCanonSpace = false; - } - - /** - * Writes $bytes to the end of the stream. - * - * Writing may not happen immediately if the stream chooses to buffer. If - * you want to write these bytes with immediate effect, call {@link commit()} - * after calling write(). - * - * This method returns the sequence ID of the write (i.e. 1 for first, 2 for - * second, etc etc). - * - * @param string $bytes - * @return int - * @throws Swift_IoException - */ - public function write($bytes) - { - $this->_canonicalizeBody($bytes); - foreach ($this->_bound as $is) { - $is->write($bytes); - } - } - - /** - * For any bytes that are currently buffered inside the stream, force them - * off the buffer. - * - * @throws Swift_IoException - */ - public function commit() - { - // Nothing to do - return; - } - - /** - * Attach $is to this stream. - * The stream acts as an observer, receiving all data that is written. - * All {@link write()} and {@link flushBuffers()} operations will be mirrored. - * - * @param Swift_InputByteStream $is - */ - public function bind(Swift_InputByteStream $is) - { - // Don't have to mirror anything - $this->_bound[] = $is; - - return; - } - - /** - * Remove an already bound stream. - * If $is is not bound, no errors will be raised. - * If the stream currently has any buffered data it will be written to $is - * before unbinding occurs. - * - * @param Swift_InputByteStream $is - */ - public function unbind(Swift_InputByteStream $is) - { - // Don't have to mirror anything - foreach ($this->_bound as $k => $el) { - if ($el == $is) { - unset($this->_bound[$k]); - - return; - } - } - - return; - } - - /** - * Flush the contents of the stream (empty it) and set the internal pointer - * to the beginning. - * - * @throws Swift_IoException - */ - public function flushBuffers() - { - $this->reset(); - } - - /** - * Set hash_algorithm, must be one of rsa-sha256 | rsa-sha1 defaults to rsa-sha256 - * - * @param string $hash - * @return Swift_Signers_DKIMSigner - */ - public function setHashAlgorithm($hash) - { - // Unable to sign with rsa-sha256 - if ($hash == 'rsa-sha1') { - $this->_hashAlgorithm = 'rsa-sha1'; - } else { - $this->_hashAlgorithm = 'rsa-sha256'; - } - - return $this; - } - - /** - * Set the body canonicalization algorithm - * - * @param string $canon - * @return Swift_Signers_DKIMSigner - */ - public function setBodyCanon($canon) - { - if ($canon == 'relaxed') { - $this->_bodyCanon = 'relaxed'; - } else { - $this->_bodyCanon = 'simple'; - } - - return $this; - } - - /** - * Set the header canonicalization algorithm - * - * @param string $canon - * @return Swift_Signers_DKIMSigner - */ - public function setHeaderCanon($canon) - { - if ($canon == 'relaxed') { - $this->_headerCanon = 'relaxed'; - } else { - $this->_headerCanon = 'simple'; - } - - return $this; - } - - /** - * Set the signer identity - * - * @param string $identity - * @return Swift_Signers_DKIMSigner - */ - public function setSignerIdentity($identity) - { - $this->_signerIdentity = $identity; - - return $this; - } - - /** - * Set the length of the body to sign - * - * @param mixed $len (bool or int) - * @return Swift_Signers_DKIMSigner - */ - public function setBodySignedLen($len) - { - if ($this->len === true) { - $this->_showLen = true; - $this->_maxLen = PHP_INT_MAX; - } elseif ($this->len === false) { - $this->_showLen = false; - $this->_maxLen = PHP_INT_MAX; - } else { - $this->_showLen = true; - $this->_maxLen = (int) $len; - } - - return $this; - } - - /** - * Set the signature timestamp - * - * @param timestamp $time - * @return Swift_Signers_DKIMSigner - */ - public function setSignatureTimestamp($time) - { - $this->_signatureTimestamp = $time; - - return $this; - } - - /** - * Set the signature expiration timestamp - * - * @param timestamp $time - * @return Swift_Signers_DKIMSigner - */ - public function setSignatureExpiration($time) - { - $this->_signatureExpiration = $time; - - return $this; - } - - /** - * Enable / disable the DebugHeaders - * - * @param boolean $debug - * @return Swift_Signers_DKIMSigner - */ - public function setDebugHeaders($debug) - { - $this->_debugHeaders = (bool) $debug; - - return $this; - } - - /** - * Start Body - * - */ - public function startBody() - { - // Init - switch ($this->_hashAlgorithm) { - case 'rsa-sha256' : - $this->_bodyHashHandler = hash_init('sha256'); - break; - case 'rsa-sha1' : - $this->_bodyHashHandler = hash_init('sha1'); - break; - } - $this->_bodyCanonLine = ''; - } - - /** - * End Body - * - */ - public function endBody() - { - $this->_endOfBody(); - } - - /** - * Returns the list of Headers Tampered by this plugin - * - * @return array - */ - public function getAlteredHeaders() - { - if ($this->_debugHeaders) { - return array('DKIM-Signature', 'X-DebugHash'); - } else { - return array('DKIM-Signature'); - } - } - - /** - * Adds an ignored Header - * - * @param string $header_name - * @return Swift_Signers_DKIMSigner - */ - public function ignoreHeader($header_name) - { - $this->_ignoredHeaders[strtolower($header_name)] = true; - - return $this; - } - - /** - * Set the headers to sign - * - * @param Swift_Mime_HeaderSet $headers - * @return Swift_Signers_DKIMSigner - */ - public function setHeaders(Swift_Mime_HeaderSet $headers) - { - $this->_headerCanonData = ''; - // Loop through Headers - $listHeaders = $headers->listAll(); - foreach ($listHeaders as $hName) { - // Check if we need to ignore Header - if (! isset($this->_ignoredHeaders[strtolower($hName)])) { - if ($headers->has($hName)) { - $tmp = $headers->getAll($hName); - foreach ($tmp as $header) { - if ($header->getFieldBody() != '') { - $this->_addHeader($header->toString()); - $this->_signedHeaders[] = $header->getFieldName(); - } - } - } - } - } - - return $this; - } - - /** - * Add the signature to the given Headers - * - * @param Swift_Mime_HeaderSet $headers - * @return Swift_Signers_DKIMSigner - */ - public function addSignature(Swift_Mime_HeaderSet $headers) - { - // Prepare the DKIM-Signature - $params = array('v' => '1', 'a' => $this->_hashAlgorithm, 'bh' => base64_encode($this->_bodyHash), 'd' => $this->_domainName, 'h' => implode(': ', $this->_signedHeaders), 'i' => $this->_signerIdentity, 's' => $this->_selector); - if ($this->_bodyCanon != 'simple') { - $params['c'] = $this->_headerCanon . '/' . $this->_bodyCanon; - } elseif ($this->_headerCanon != 'simple') { - $params['c'] = $this->_headerCanon; - } - if ($this->_showLen) { - $params['l'] = $this->_bodyLen; - } - if ($this->_signatureTimestamp === true) { - $params['t'] = time(); - if ($this->_signatureExpiration !== false) { - $params['x'] = $params['t'] + $this->_signatureExpiration; - } - } else { - if ($this->_signatureTimestamp !== false) { - $params['t'] = $this->_signatureTimestamp; - } - if ($this->_signatureExpiration !== false) { - $params['x'] = $this->_signatureExpiration; - } - } - if ($this->_debugHeaders) { - $params['z'] = implode('|', $this->_debugHeadersData); - } - $string = ''; - foreach ($params as $k => $v) { - $string .= $k . '=' . $v . '; '; - } - $string = trim($string); - $headers->addTextHeader('DKIM-Signature', $string); - // Add the last DKIM-Signature - $tmp = $headers->getAll('DKIM-Signature'); - $this->_dkimHeader = end($tmp); - $this->_addHeader(trim($this->_dkimHeader->toString()) . "\r\n b=", true); - $this->_endOfHeaders(); - if ($this->_debugHeaders) { - $headers->addTextHeader('X-DebugHash', base64_encode($this->_headerHash)); - } - $this->_dkimHeader->setValue($string . " b=" . trim(chunk_split(base64_encode($this->_getEncryptedHash()), 73, " "))); - - return $this; - } - - /* Private helpers */ - - protected function _addHeader($header, $is_sig = false) - { - switch ($this->_headerCanon) { - case 'relaxed' : - // Prepare Header and cascade - $exploded = explode(':', $header, 2); - $name = strtolower(trim($exploded[0])); - $value = str_replace("\r\n", "", $exploded[1]); - $value = preg_replace("/[ \t][ \t]+/", " ", $value); - $header = $name . ":" . trim($value) . ($is_sig ? '' : "\r\n"); - case 'simple' : - // Nothing to do - } - $this->_addToHeaderHash($header); - } - - protected function _endOfHeaders() - { - //$this->_headerHash=hash_final($this->_headerHashHandler, true); - } - - protected function _canonicalizeBody($string) - { - $len = strlen($string); - $canon = ''; - $method = ($this->_bodyCanon == "relaxed"); - for ($i = 0; $i < $len; ++$i) { - if ($this->_bodyCanonIgnoreStart > 0) { - --$this->_bodyCanonIgnoreStart; - continue; - } - switch ($string[$i]) { - case "\r" : - $this->_bodyCanonLastChar = "\r"; - break; - case "\n" : - if ($this->_bodyCanonLastChar == "\r") { - if ($method) { - $this->_bodyCanonSpace = false; - } - if ($this->_bodyCanonLine == '') { - ++$this->_bodyCanonEmptyCounter; - } else { - $this->_bodyCanonLine = ''; - $canon .= "\r\n"; - } - } else { - // Wooops Error - // todo handle it but should never happen - } - break; - case " " : - case "\t" : - if ($method) { - $this->_bodyCanonSpace = true; - break; - } - default : - if ($this->_bodyCanonEmptyCounter > 0) { - $canon .= str_repeat("\r\n", $this->_bodyCanonEmptyCounter); - $this->_bodyCanonEmptyCounter = 0; - } - if ($this->_bodyCanonSpace) { - $this->_bodyCanonLine .= ' '; - $canon .= ' '; - $this->_bodyCanonSpace = false; - } - $this->_bodyCanonLine .= $string[$i]; - $canon .= $string[$i]; - } - } - $this->_addToBodyHash($canon); - } - - protected function _endOfBody() - { - // Add trailing Line return if last line is non empty - if (strlen($this->_bodyCanonLine) > 0) { - $this->_addToBodyHash("\r\n"); - } - $this->_bodyHash = hash_final($this->_bodyHashHandler, true); - } - - private function _addToBodyHash($string) - { - $len = strlen($string); - if ($len > ($new_len = ($this->_maxLen - $this->_bodyLen))) { - $string = substr($string, 0, $new_len); - $len = $new_len; - } - hash_update($this->_bodyHashHandler, $string); - $this->_bodyLen += $len; - } - - private function _addToHeaderHash($header) - { - if ($this->_debugHeaders) { - $this->_debugHeadersData[] = trim($header); - } - $this->_headerCanonData .= $header; - } - - private function _getEncryptedHash() - { - $signature = ''; - switch ($this->_hashAlgorithm) { - case 'rsa-sha1': - $algorithm = 'sha1'; - break; - case 'rsa-sha256': - $algorithm = 'sha256'; - break; - } - if (openssl_sign($this->_headerCanonData, $signature, $this->_privateKey, $algorithm)) { - return $signature; - } - - return ''; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/DomainKeySigner.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/DomainKeySigner.php deleted file mode 100644 index 3d4a9ac..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/DomainKeySigner.php +++ /dev/null @@ -1,509 +0,0 @@ - - */ -class Swift_Signers_DomainKeySigner implements Swift_Signers_HeaderSigner -{ - /** - * PrivateKey - * - * @var string - */ - protected $_privateKey; - - /** - * DomainName - * - * @var string - */ - protected $_domainName; - - /** - * Selector - * - * @var string - */ - protected $_selector; - - /** - * Hash algorithm used - * - * @var string - */ - protected $_hashAlgorithm = 'rsa-sha1'; - - /** - * Canonisation method - * - * @var string - */ - protected $_canon = 'simple'; - - /** - * Headers not being signed - * - * @var array - */ - protected $_ignoredHeaders = array(); - - /** - * Signer identity - * - * @var unknown_type - */ - protected $_signerIdentity; - - /** - * Must we embed signed headers? - * - * @var boolean - */ - protected $_debugHeaders = false; - - // work variables - /** - * Headers used to generate hash - * - * @var array - */ - private $_signedHeaders = array(); - - /** - * If debugHeaders is set store debugDatas here - * - * @var string - */ - private $_debugHeadersData = ''; - - /** - * Stores the signature header - * - * @var Swift_Mime_Headers_ParameterizedHeader - */ - protected $_domainKeyHeader; - - /** - * Hash Handler - * - * @var hash_ressource - */ - private $_hashHandler; - - private $_hash; - - private $_canonData = ''; - - private $_bodyCanonEmptyCounter = 0; - - private $_bodyCanonIgnoreStart = 2; - - private $_bodyCanonSpace = false; - - private $_bodyCanonLastChar = null; - - private $_bodyCanonLine = ''; - - private $_bound = array(); - - /** - * Constructor - * - * @param string $privateKey - * @param string $domainName - * @param string $selector - */ - public function __construct($privateKey, $domainName, $selector) - { - $this->_privateKey = $privateKey; - $this->_domainName = $domainName; - $this->_signerIdentity = '@' . $domainName; - $this->_selector = $selector; - } - - /** - * Resets internal states - * - * @return Swift_Signers_DomainKeysSigner - */ - public function reset() - { - $this->_hash = null; - $this->_hashHandler = null; - $this->_bodyCanonIgnoreStart = 2; - $this->_bodyCanonEmptyCounter = 0; - $this->_bodyCanonLastChar = NULL; - $this->_bodyCanonSpace = false; - - return $this; - } - - /** - * Writes $bytes to the end of the stream. - * - * Writing may not happen immediately if the stream chooses to buffer. If - * you want to write these bytes with immediate effect, call {@link commit()} - * after calling write(). - * - * This method returns the sequence ID of the write (i.e. 1 for first, 2 for - * second, etc etc). - * - * @param string $bytes - * @return int - * @throws Swift_IoException - * @return Swift_Signers_DomainKeysSigner - */ - public function write($bytes) - { - $this->_canonicalizeBody($bytes); - foreach ($this->_bound as $is) { - $is->write($bytes); - } - - return $this; - } - - /** - * For any bytes that are currently buffered inside the stream, force them - * off the buffer. - * - * @throws Swift_IoException - * @return Swift_Signers_DomainKeysSigner - */ - public function commit() - { - // Nothing to do - return $this; - } - - /** - * Attach $is to this stream. - * The stream acts as an observer, receiving all data that is written. - * All {@link write()} and {@link flushBuffers()} operations will be mirrored. - * - * @param Swift_InputByteStream $is - * @return Swift_Signers_DomainKeysSigner - */ - public function bind(Swift_InputByteStream $is) - { - // Don't have to mirror anything - $this->_bound[] = $is; - - return $this; - } - - /** - * Remove an already bound stream. - * If $is is not bound, no errors will be raised. - * If the stream currently has any buffered data it will be written to $is - * before unbinding occurs. - * - * @param Swift_InputByteStream $is - * @return Swift_Signers_DomainKeysSigner - */ - public function unbind(Swift_InputByteStream $is) - { - // Don't have to mirror anything - foreach ($this->_bound as $k => $el) { - if ($el == $is) { - unset($this->_bound[$k]); - - return; - } - } - - return $this; - } - - /** - * Flush the contents of the stream (empty it) and set the internal pointer - * to the beginning. - * - * @throws Swift_IoException - * @return Swift_Signers_DomainKeysSigner - */ - public function flushBuffers() - { - $this->reset(); - - return $this; - } - - /** - * Set hash_algorithm, must be one of rsa-sha256 | rsa-sha1 defaults to rsa-sha256 - * - * @param string $hash - * @return Swift_Signers_DomainKeysSigner - */ - public function setHashAlgorithm($hash) - { - $this->_hashAlgorithm = 'rsa-sha1'; - - return $this; - } - - /** - * Set the canonicalization algorithm - * - * @param string $canon simple | nofws defaults to simple - * @return Swift_Signers_DomainKeysSigner - */ - public function setCanon($canon) - { - if ($canon == 'nofws') { - $this->_canon = 'nofws'; - } else { - $this->_canon = 'simple'; - } - - return $this; - } - - /** - * Set the signer identity - * - * @param string $identity - * @return Swift_Signers_DomainKeySigner - */ - public function setSignerIdentity($identity) - { - $this->_signerIdentity = $identity; - - return $this; - } - - /** - * Enable / disable the DebugHeaders - * - * @param boolean $debug - * @return Swift_Signers_DomainKeySigner - */ - public function setDebugHeaders($debug) - { - $this->_debugHeaders = (bool) $debug; - - return $this; - } - - /** - * Start Body - * - */ - public function startBody() - { - } - - /** - * End Body - * - */ - public function endBody() - { - $this->_endOfBody(); - } - - /** - * Returns the list of Headers Tampered by this plugin - * - * @return array - */ - public function getAlteredHeaders() - { - if ($this->_debugHeaders) { - return array('DomainKey-Signature', 'X-DebugHash'); - } else { - return array('DomainKey-Signature'); - } - } - - /** - * Adds an ignored Header - * - * @param string $header_name - * @return Swift_Signers_DomainKeySigner - */ - public function ignoreHeader($header_name) - { - $this->_ignoredHeaders[strtolower($header_name)] = true; - - return $this; - } - - /** - * Set the headers to sign - * - * @param Swift_Mime_HeaderSet $headers - * @return Swift_Signers_DomainKeySigner - */ - public function setHeaders(Swift_Mime_HeaderSet $headers) - { - $this->_startHash(); - $this->_canonData = ''; - // Loop through Headers - $listHeaders = $headers->listAll(); - foreach ($listHeaders as $hName) { - // Check if we need to ignore Header - if (! isset($this->_ignoredHeaders[strtolower($hName)])) { - if ($headers->has($hName)) { - $tmp = $headers->getAll($hName); - foreach ($tmp as $header) { - if ($header->getFieldBody() != '') { - $this->_addHeader($header->toString()); - $this->_signedHeaders[] = $header->getFieldName(); - } - } - } - } - } - $this->_endOfHeaders(); - - return $this; - } - - /** - * Add the signature to the given Headers - * - * @param Swift_Mime_HeaderSet $headers - * @return Swift_Signers_DomainKeySigner - */ - public function addSignature(Swift_Mime_HeaderSet $headers) - { - // Prepare the DomainKey-Signature Header - $params = array('a' => $this->_hashAlgorithm, 'b' => chunk_split(base64_encode($this->_getEncryptedHash()), 73, " "), 'c' => $this->_canon, 'd' => $this->_domainName, 'h' => implode(': ', $this->_signedHeaders), 'q' => 'dns', 's' => $this->_selector); - $string = ''; - foreach ($params as $k => $v) { - $string .= $k . '=' . $v . '; '; - } - $string = trim($string); - $headers->addTextHeader('DomainKey-Signature', $string); - - return $this; - } - - /* Private helpers */ - - protected function _addHeader($header) - { - switch ($this->_canon) { - case 'nofws' : - // Prepare Header and cascade - $exploded = explode(':', $header, 2); - $name = strtolower(trim($exploded[0])); - $value = str_replace("\r\n", "", $exploded[1]); - $value = preg_replace("/[ \t][ \t]+/", " ", $value); - $header = $name . ":" . trim($value) . "\r\n"; - case 'simple' : - // Nothing to do - } - $this->_addToHash($header); - } - - protected function _endOfHeaders() - { - $this->_bodyCanonEmptyCounter = 1; - } - - protected function _canonicalizeBody($string) - { - $len = strlen($string); - $canon = ''; - $nofws = ($this->_canon == "nofws"); - for ($i = 0; $i < $len; ++$i) { - if ($this->_bodyCanonIgnoreStart > 0) { - --$this->_bodyCanonIgnoreStart; - continue; - } - switch ($string[$i]) { - case "\r" : - $this->_bodyCanonLastChar = "\r"; - break; - case "\n" : - if ($this->_bodyCanonLastChar == "\r") { - if ($nofws) { - $this->_bodyCanonSpace = false; - } - if ($this->_bodyCanonLine == '') { - ++$this->_bodyCanonEmptyCounter; - } else { - $this->_bodyCanonLine = ''; - $canon .= "\r\n"; - } - } else { - // Wooops Error - throw new Swift_SwiftException('Invalid new line sequence in mail found \n without preceding \r'); - } - break; - case " " : - case "\t" : - case "\x09": //HTAB - if ($nofws) { - $this->_bodyCanonSpace = true; - break; - } - default : - if ($this->_bodyCanonEmptyCounter > 0) { - $canon .= str_repeat("\r\n", $this->_bodyCanonEmptyCounter); - $this->_bodyCanonEmptyCounter = 0; - } - $this->_bodyCanonLine .= $string[$i]; - $canon .= $string[$i]; - } - } - $this->_addToHash($canon); - } - - protected function _endOfBody() - { - if (strlen($this->_bodyCanonLine) > 0) { - $this->_addToHash("\r\n"); - } - $this->_hash = hash_final($this->_hashHandler, true); - } - - private function _addToHash($string) - { - echo $string; - $this->_canonData .= $string; - hash_update($this->_hashHandler, $string); - } - - private function _startHash() - { - // Init - switch ($this->_hashAlgorithm) { - case 'rsa-sha1' : - $this->_hashHandler = hash_init('sha1'); - break; - } - $this->_canonLine = ''; - } - - private function _getEncryptedHash() - { - $signature = ''; - $sig2 = ''; - openssl_sign($this->_canonData, $sig2, $this->_privateKey, 'sha1'); - var_dump($this->_hash); - var_dump($this->_privateKey); - if (openssl_private_encrypt($this->_hash, $signature, $this->_privateKey)) { - var_dump($this->_canonData, base64_encode($sig2), base64_encode($signature)); - - return $sig2; - return $signature; - } - - return ''; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/HeaderSigner.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/HeaderSigner.php deleted file mode 100644 index 47091db..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/HeaderSigner.php +++ /dev/null @@ -1,67 +0,0 @@ - - */ -interface Swift_Signers_HeaderSigner extends Swift_Signer, Swift_InputByteStream -{ - /** - * Exclude an header from the signed headers - * - * @param string $header_name - * - * @return Swift_Signers_HeaderSigner - */ - public function ignoreHeader($header_name); - - /** - * Prepare the Signer to get a new Body - * - * @return Swift_Signers_HeaderSigner - */ - public function startBody(); - - /** - * Give the signal that the body has finished streaming - * - * @return Swift_Signers_HeaderSigner - */ - public function endBody(); - - /** - * Give the headers already given - * - * @param Swift_Mime_SimpleHeaderSet $headers - * - * @return Swift_Signers_HeaderSigner - */ - public function setHeaders(Swift_Mime_HeaderSet $headers); - - /** - * Add the header(s) to the headerSet - * - * @param Swift_Mime_HeaderSet $headers - * - * @return Swift_Signers_HeaderSigner - */ - public function addSignature(Swift_Mime_HeaderSet $headers); - - /** - * Return the list of header a signer might tamper - * - * @return array - */ - public function getAlteredHeaders(); -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/PeclDKIMSigner.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/PeclDKIMSigner.php deleted file mode 100644 index af45fd2..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/PeclDKIMSigner.php +++ /dev/null @@ -1,115 +0,0 @@ - - */ - -class Swift_Signer_PeclDKIMSigner extends Swift_Signers_DKIMSigner -{ - private $_peclLoaded = false; - - private $_dkimHandler = null; - - public function __construct($privateKey, $domainName, $selector) - { - parent::__construct($privateKey, $domainName, $selector); - if (extension_loaded('dkim')) { - $this->_peclLoaded = true; - } - } - - public function addSignature(Swift_Mime_HeaderSet $headers) - { - if (! $this->_peclLoaded) { - return parent::addSignature($headers); - } else { - dkim_eom($this->_dkimHandler); - $headers->addTextHeader('DKIM-Signature: ', dkim_getsighdr($this->_dkimHandler)); - } - - return $this; - } - - public function setHeaders(Swift_Mime_HeaderSet $headers) - { - if (! $this->_peclLoaded) { - return parent::setHeaders($headers); - } - //dkim_sign(privateKey, selector, domain[, header_canon[, body_canon[, sign_alg[, body_length]]]]) - $bodyLen = $this->_bodyLen(); - if (is_bool($bodyLen)) { - $bodyLen = - 1; - } - $hash = ($this->_hashAlgorithm == 'rsa-sha1') ? DKIM_SIGN_RSASHA1 : DKIM_SIGN_RSASHA256; - $bodyCanon = ($this->_bodyCanon == 'simple') ? DKIM_CANON_SIMPLE : DKIM_CANON_RELAXED; - $headerCanon = ($this->_headerCanon == 'simple') ? DKIM_CANON_SIMPLE : DKIM_CANON_RELAXED; - $this->_dkimHandler = dkim_sign($this->_privateKey, $this->_selector, $this->_domainName, $headerCanon, $bodyCanon, $hash, $bodyLen); - - $listHeaders = $headers->listAll(); - foreach ($listHeaders as $hName) { - // Check if we need to ignore Header - if (! isset($this->_ignoredHeaders[strtolower($hName)])) { - $tmp = $headers->getAll($hName); - if ($headers->has($hName)) { - foreach ($tmp as $header) { - if ($header->getFieldBody() != '') { - dkim_header($this->_dkimHandler, $header->toString()); - $this->_signedHeaders[] = $header->getFieldName(); - } - } - } - } - } - - return $this; - } - - public function startBody() - { - if (! $this->_peclLoaded) { - return parent::startBody(); - } - dkim_eoh($this->_dkimHandler); - - return $this; - } - - public function endBody() - { - if (! $this->_peclLoaded) { - return parent::endBody(); - } - dkim_eob($this->_dkimHandler); - - return $this; - } - - public function reset() - { - $this->_dkimHandler = null; - parent::reset(); - } - - // Protected - - protected function _canonicalizeBody($string) - { - if (! $this->_peclLoaded) { - return parent::_canonicalizeBody($string); - } - dkim_body($this->_dkimHandler, $string); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/SMimeSigner.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/SMimeSigner.php deleted file mode 100644 index 47c0a3d..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Signers/SMimeSigner.php +++ /dev/null @@ -1,430 +0,0 @@ - - */ -class Swift_Signers_SMimeSigner implements Swift_Signers_BodySigner -{ - protected $signCertificate; - protected $signPrivateKey; - protected $encryptCert; - protected $signThenEncrypt = true; - protected $signLevel; - protected $encryptLevel; - protected $signOptions; - protected $encryptOptions; - protected $encryptCipher; - - /** - * @var Swift_StreamFilters_StringReplacementFilterFactory - */ - protected $replacementFactory; - - /** - * @var Swift_Mime_HeaderFactory - */ - protected $headerFactory; - - /** - * Constructor. - * - * @param string $certificate - * @param string $privateKey - * @param string $encryptCertificate - */ - public function __construct($signCertificate = null, $signPrivateKey = null, $encryptCertificate = null) - { - if (null !== $signPrivateKey) { - $this->setSignCertificate($signCertificate, $signPrivateKey); - } - - if (null !== $encryptCertificate) { - $this->setEncryptCertificate($encryptCertificate); - } - - $this->replacementFactory = Swift_DependencyContainer::getInstance() - ->lookup('transport.replacementfactory'); - - $this->signOptions = PKCS7_DETACHED; - - // Supported since php5.4 - if (defined('OPENSSL_CIPHER_AES_128_CBC')) { - $this->encryptCipher = OPENSSL_CIPHER_AES_128_CBC; - } else { - $this->encryptCipher = OPENSSL_CIPHER_RC2_128; - } - } - - /** - * Returns an new Swift_Signers_SMimeSigner instance. - * - * @param string $certificate - * @param string $privateKey - * - * @return Swift_Signers_SMimeSigner - */ - public static function newInstance($certificate = null, $privateKey = null) - { - return new static($certificate, $privateKey); - } - - /** - * Set the certificate location to use for signing. - * - * @link http://www.php.net/manual/en/openssl.pkcs7.flags.php - * - * @param string $certificate - * @param string|array $privateKey If the key needs an passphrase use array('file-location', 'passphrase') instead - * @param integer $signOptions Bitwise operator options for openssl_pkcs7_sign() - * - * @return Swift_Signers_SMimeSigner - */ - public function setSignCertificate($certificate, $privateKey = null, $signOptions = PKCS7_DETACHED) - { - $this->signCertificate = 'file://' . str_replace('\\', '/', realpath($certificate)); - - if (null !== $privateKey) { - if (is_array($privateKey)) { - $this->signPrivateKey = $privateKey; - $this->signPrivateKey[0] = 'file://' . str_replace('\\', '/', realpath($privateKey[0])); - } else { - $this->signPrivateKey = 'file://' . str_replace('\\', '/', realpath($privateKey)); - } - } - - $this->signOptions = $signOptions; - - return $this; - } - - /** - * Set the certificate location to use for encryption. - * - * @link http://www.php.net/manual/en/openssl.pkcs7.flags.php - * @link http://nl3.php.net/manual/en/openssl.ciphers.php - * - * @param string|array $recipientCerts Either an single X.509 certificate, or an assoc array of X.509 certificates. - * @param integer $cipher - * - * @return Swift_Signers_SMimeSigner - */ - public function setEncryptCertificate($recipientCerts, $cipher = null) - { - if (is_array($recipientCerts)) { - $this->encryptCert = array(); - - foreach ($recipientCerts as $cert) { - $this->encryptCert[] = 'file://' . str_replace('\\', '/', realpath($cert)); - } - } else { - $this->encryptCert = 'file://' . str_replace('\\', '/', realpath($recipientCerts)); - } - - if (null !== $cipher) { - $this->encryptCipher = $cipher; - } - - return $this; - } - - /** - * @return string - */ - public function getSignCertificate() - { - return $this->signCertificate; - } - - /** - * @return string - */ - public function getSignPrivateKey() - { - return $this->signPrivateKey; - } - - /** - * Set perform signing before encryption. - * - * The default is to first sign the message and then encrypt. - * But some older mail clients, namely Microsoft Outlook 2000 will work when the message first encrypted. - * As this goes against the official specs, its recommended to only use 'encryption -> signing' when specifically targeting these 'broken' clients. - * - * @param string $signThenEncrypt - * - * @return Swift_Signers_SMimeSigner - */ - public function setSignThenEncrypt($signThenEncrypt = true) - { - $this->signThenEncrypt = $signThenEncrypt; - - return $this; - } - - /** - * @return Boolean - */ - public function isSignThenEncrypt() - { - return $this->signThenEncrypt; - } - - /** - * Resets internal states. - * - * @return Swift_Signers_SMimeSigner - */ - public function reset() - { - return $this; - } - - /** - * Change the Swift_SignedMessage to apply the singing. - * - * @param Swift_SignedMessage $message - * - * @return Swift_Signers_SMimeSigner - */ - public function signMessage(Swift_SignedMessage $message) - { - if (null === $this->signCertificate && null === $this->encryptCert) { - return $this; - } - - // Store the message using ByteStream to a file{1} - // Remove all Children - // Sign file{1}, parse the new MIME headers and set them on the primary MimeEntity - // Set the singed-body as the new body (without boundary) - - $messageStream = new Swift_ByteStream_TemporaryFileByteStream(); - $this->toSMimeByteStream($messageStream, $message); - $message->setEncoder(Swift_DependencyContainer::getInstance()->lookup('mime.rawcontentencoder')); - - $message->setChildren(array()); - $this->streamToMime($messageStream, $message); - - } - - /** - * Return the list of header a signer might tamper. - * - * @return array - */ - public function getAlteredHeaders() - { - return array('Content-Type', 'Content-Transfer-Encoding', 'Content-Disposition'); - } - - /** - * @param Swift_InputByteStream $inputStream - * @param Swift_SignedMessage $mimeEntity - */ - protected function toSMimeByteStream(Swift_InputByteStream $inputStream, Swift_SignedMessage $message) - { - $mimeEntity = $this->createMessage($message); - $messageStream = new Swift_ByteStream_TemporaryFileByteStream(); - - $mimeEntity->toByteStream($messageStream); - $messageStream->commit(); - - if (null !== $this->signCertificate && null !== $this->encryptCert) { - $temporaryStream = new Swift_ByteStream_TemporaryFileByteStream(); - - if ($this->signThenEncrypt) { - $this->messageStreamToSignedByteStream($messageStream, $temporaryStream); - $this->messageStreamToEncryptedByteStream($temporaryStream, $inputStream); - } else { - $this->messageStreamToEncryptedByteStream($messageStream, $temporaryStream); - $this->messageStreamToSignedByteStream($temporaryStream, $inputStream); - } - } elseif ($this->signCertificate !== null) { - $this->messageStreamToSignedByteStream($messageStream, $inputStream); - } else { - $this->messageStreamToEncryptedByteStream($messageStream, $inputStream); - } - } - - /** - * @param Swift_SignedMessage $message - * - * @return Swift_Message - */ - protected function createMessage(Swift_SignedMessage $message) - { - $mimeEntity = new Swift_Message('', $message->getBody(), $message->getContentType(), $message->getCharset()); - $mimeEntity->setChildren($message->getChildren()); - - $messageHeaders = $mimeEntity->getHeaders(); - $messageHeaders->remove('Message-ID'); - $messageHeaders->remove('Date'); - $messageHeaders->remove('Subject'); - $messageHeaders->remove('MIME-Version'); - $messageHeaders->remove('To'); - $messageHeaders->remove('From'); - - return $mimeEntity; - } - - /** - * @param Swift_FileStream $outputStream - * @param Swift_InputByteStream $inputStream - * - * @throws Swift_IoException - */ - protected function messageStreamToSignedByteStream(Swift_FileStream $outputStream, Swift_InputByteStream $inputStream) - { - $signedMessageStream = new Swift_ByteStream_TemporaryFileByteStream(); - - if (!openssl_pkcs7_sign($outputStream->getPath(), $signedMessageStream->getPath(), $this->signCertificate, $this->signPrivateKey, array(), $this->signOptions)) { - throw new Swift_IoException(sprintf('Failed to sign S/Mime message. Error: "%s".', openssl_error_string())); - } - - $this->copyFromOpenSSLOutput($signedMessageStream, $inputStream); - } - - /** - * @param Swift_FileStream $outputStream - * @param Swift_InputByteStream $is - * - * @throws Swift_IoException - */ - protected function messageStreamToEncryptedByteStream(Swift_FileStream $outputStream, Swift_InputByteStream $is) - { - $encryptedMessageStream = new Swift_ByteStream_TemporaryFileByteStream(); - - if (!openssl_pkcs7_encrypt($outputStream->getPath(), $encryptedMessageStream->getPath(), $this->encryptCert, array())) { - throw new Swift_IoException(sprintf('Failed to encrypt S/Mime message. Error: "%s".', openssl_error_string())); - } - - $this->copyFromOpenSSLOutput($encryptedMessageStream, $is); - } - - /** - * @param Swift_OutputByteStream $fromStream - * @param Swift_InputByteStream $toStream - */ - protected function copyFromOpenSSLOutput(Swift_OutputByteStream $fromStream, Swift_InputByteStream $toStream) - { - $bufferLength = 4096; - $filteredStream = new Swift_ByteStream_TemporaryFileByteStream(); - $filteredStream->addFilter($this->replacementFactory->createFilter("\r\n", "\n"), 'CRLF to LF'); - $filteredStream->addFilter($this->replacementFactory->createFilter("\n", "\r\n"), 'LF to CRLF'); - - while (false !== ($buffer = $fromStream->read($bufferLength))) { - $filteredStream->write($buffer); - } - - $filteredStream->flushBuffers(); - - while (false !== ($buffer = $filteredStream->read($bufferLength))) { - $toStream->write($buffer); - } - - $toStream->commit(); - } - - /** - * Merges an OutputByteStream to Swift_SignedMessage. - * - * @param Swift_OutputByteStream $fromStream - * @param Swift_Message $message - */ - protected function streamToMime(Swift_OutputByteStream $fromStream, Swift_Message $message) - { - $bufferLength = 78; - $headerData = ''; - - $fromStream->setReadPointer(0); - - while (($buffer = $fromStream->read($bufferLength)) !== false) { - $headerData .= $buffer; - - if (false !== strpos($buffer, "\r\n\r\n")) { - break; - } - } - - $headersPosEnd = strpos($headerData, "\r\n\r\n"); - $headerData = trim($headerData); - $headerData = substr($headerData, 0, $headersPosEnd); - $headerLines = explode("\r\n", $headerData); - unset($headerData); - - $headers = array(); - $currentHeaderName = ''; - - foreach ($headerLines as $headerLine) { - // Line separated - if (ctype_space($headerLines[0]) || false === strpos($headerLine, ':')) { - $headers[$currentHeaderName] .= ' ' . trim($headerLine); - continue; - } - - $header = explode(':', $headerLine, 2); - $currentHeaderName = strtolower($header[0]); - $headers[$currentHeaderName] = trim($header[1]); - } - - $messageStream = new Swift_ByteStream_TemporaryFileByteStream(); - $messageStream->addFilter($this->replacementFactory->createFilter("\r\n", "\n"), 'CRLF to LF'); - $messageStream->addFilter($this->replacementFactory->createFilter("\n", "\r\n"), 'LF to CRLF'); - - $messageHeaders = $message->getHeaders(); - - // No need to check for 'application/pkcs7-mime', as this is always base64 - if ('multipart/signed;' === substr($headers['content-type'], 0, 17)) { - if (!preg_match('/boundary=("[^"]+"|(?:[^\s]+|$))/is', $headers['content-type'], $contentTypeData)) { - throw new Swift_SwiftException('Failed to find Boundary parameter'); - } - - $boundary = trim($contentTypeData['1'], '"'); - $boundaryLen = strlen($boundary); - - // Skip the header and CRLF CRLF - $fromStream->setReadPointer($headersPosEnd + 4); - - while (false !== ($buffer = $fromStream->read($bufferLength))) { - $messageStream->write($buffer); - } - - $messageStream->commit(); - - $messageHeaders->remove('Content-Transfer-Encoding'); - $message->setContentType($headers['content-type']); - $message->setBoundary($boundary); - $message->setBody($messageStream); - } else { - $fromStream->setReadPointer($headersPosEnd + 4); - - if (null === $this->headerFactory) { - $this->headerFactory = Swift_DependencyContainer::getInstance()->lookup('mime.headerfactory'); - } - - $message->setContentType($headers['content-type']); - $messageHeaders->set($this->headerFactory->createTextHeader('Content-Transfer-Encoding', $headers['content-transfer-encoding'])); - $messageHeaders->set($this->headerFactory->createTextHeader('Content-Disposition', $headers['content-disposition'])); - - while (false !== ($buffer = $fromStream->read($bufferLength))) { - $messageStream->write($buffer); - } - - $messageStream->commit(); - $message->setBody($messageStream); - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/SmtpTransport.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/SmtpTransport.php deleted file mode 100644 index 4fc750a..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/SmtpTransport.php +++ /dev/null @@ -1,53 +0,0 @@ -createDependenciesFor('transport.smtp') - ); - - $this->setHost($host); - $this->setPort($port); - $this->setEncryption($security); - } - - /** - * Create a new SmtpTransport instance. - * - * @param string $host - * @param integer $port - * @param string $security - * - * @return Swift_SmtpTransport - */ - public static function newInstance($host = 'localhost', $port = 25, $security = null) - { - return new self($host, $port, $security); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Spool.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Spool.php deleted file mode 100644 index 981c178..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Spool.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/** - * Interface for spools. - * - * @package Swift - * @author Fabien Potencier - */ -interface Swift_Spool -{ - /** - * Starts this Spool mechanism. - */ - public function start(); - - /** - * Stops this Spool mechanism. - */ - public function stop(); - - /** - * Tests if this Spool mechanism has started. - * - * @return boolean - */ - public function isStarted(); - - /** - * Queues a message. - * - * @param Swift_Mime_Message $message The message to store - * - * @return boolean Whether the operation has succeeded - */ - public function queueMessage(Swift_Mime_Message $message); - - /** - * Sends messages using the given transport instance. - * - * @param Swift_Transport $transport A transport instance - * @param string[] $failedRecipients An array of failures by-reference - * - * @return integer The number of sent emails - */ - public function flushQueue(Swift_Transport $transport, &$failedRecipients = null); -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/SpoolTransport.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/SpoolTransport.php deleted file mode 100644 index 8a135d4..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/SpoolTransport.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/** - * Stores Messages in a queue. - * - * @package Swift - * @author Fabien Potencier - */ -class Swift_SpoolTransport extends Swift_Transport_SpoolTransport -{ - /** - * Create a new SpoolTransport. - * - * @param Swift_Spool $spool - */ - public function __construct(Swift_Spool $spool) - { - $arguments = Swift_DependencyContainer::getInstance() - ->createDependenciesFor('transport.spool'); - - $arguments[] = $spool; - - call_user_func_array( - array($this, 'Swift_Transport_SpoolTransport::__construct'), - $arguments - ); - } - - /** - * Create a new SpoolTransport instance. - * - * @param Swift_Spool $spool - * - * @return Swift_SpoolTransport - */ - public static function newInstance(Swift_Spool $spool) - { - return new self($spool); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/StreamFilter.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/StreamFilter.php deleted file mode 100644 index 8b887bf..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/StreamFilter.php +++ /dev/null @@ -1,36 +0,0 @@ -_search = $search; - $this->_index = array(); - $this->_tree = array(); - $this->_replace = array(); - $this->_repSize = array(); - - $tree = null; - $i = null; - $last_size = $size = 0; - foreach ($search as $i => $search_element) { - if ($tree !== null) { - $tree[-1] = min (count($replace) - 1, $i - 1); - $tree[-2] = $last_size; - } - $tree = &$this->_tree; - if (is_array ($search_element)) { - foreach ($search_element as $k => $char) { - $this->_index[$char] = true; - if (!isset($tree[$char])) { - $tree[$char] = array(); - } - $tree = &$tree[$char]; - } - $last_size = $k+1; - $size = max($size, $last_size); - } else { - $last_size = 1; - if (!isset($tree[$search_element])) { - $tree[$search_element] = array(); - } - $tree = &$tree[$search_element]; - $size = max($last_size, $size); - $this->_index[$search_element] = true; - } - } - if ($i !== null) { - $tree[-1] = min (count ($replace) - 1, $i); - $tree[-2] = $last_size; - $this->_treeMaxLen = $size; - } - foreach ($replace as $rep) { - if (!is_array($rep)) { - $rep = array ($rep); - } - $this->_replace[] = $rep; - } - for ($i = count($this->_replace) - 1; $i >= 0; --$i) { - $this->_replace[$i] = $rep = $this->filter($this->_replace[$i], $i); - $this->_repSize[$i] = count($rep); - } - } - - /** - * Returns true if based on the buffer passed more bytes should be buffered. - * - * @param array $buffer - * - * @return boolean - */ - public function shouldBuffer($buffer) - { - $endOfBuffer = end($buffer); - - return isset ($this->_index[$endOfBuffer]); - } - - /** - * Perform the actual replacements on $buffer and return the result. - * - * @param array $buffer - * @param integer $_minReplaces - * - * @return array - */ - public function filter($buffer, $_minReplaces = -1) - { - if ($this->_treeMaxLen == 0) { - return $buffer; - } - - $newBuffer = array(); - $buf_size = count($buffer); - for ($i = 0; $i < $buf_size; ++$i) { - $search_pos = $this->_tree; - $last_found = PHP_INT_MAX; - // We try to find if the next byte is part of a search pattern - for ($j = 0; $j <= $this->_treeMaxLen; ++$j) { - // We have a new byte for a search pattern - if (isset ($buffer [$p = $i + $j]) && isset($search_pos[$buffer[$p]])) { - $search_pos = $search_pos[$buffer[$p]]; - // We have a complete pattern, save, in case we don't find a better match later - if (isset($search_pos[- 1]) && $search_pos[-1] < $last_found - && $search_pos[-1] > $_minReplaces) - { - $last_found = $search_pos[-1]; - $last_size = $search_pos[-2]; - } - } - // We got a complete pattern - elseif ($last_found !== PHP_INT_MAX) { - // Adding replacement datas to output buffer - $rep_size = $this->_repSize[$last_found]; - for ($j = 0; $j < $rep_size; ++$j) { - $newBuffer[] = $this->_replace[$last_found][$j]; - } - // We Move cursor forward - $i += $last_size - 1; - // Edge Case, last position in buffer - if ($i >= $buf_size) { - $newBuffer[] = $buffer[$i]; - } - - // We start the next loop - continue 2; - } else { - // this byte is not in a pattern and we haven't found another pattern - break; - } - } - // Normal byte, move it to output buffer - $newBuffer[] = $buffer[$i]; - } - - return $newBuffer; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/StreamFilters/StringReplacementFilter.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/StreamFilters/StringReplacementFilter.php deleted file mode 100644 index ca7454e..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/StreamFilters/StringReplacementFilter.php +++ /dev/null @@ -1,67 +0,0 @@ -_search = $search; - $this->_replace = $replace; - } - - /** - * Returns true if based on the buffer passed more bytes should be buffered. - * - * @param string $buffer - * - * @return boolean - */ - public function shouldBuffer($buffer) - { - $endOfBuffer = substr($buffer, -1); - foreach ((array) $this->_search as $needle) { - if (false !== strpos($needle, $endOfBuffer)) { - return true; - } - } - - return false; - } - - /** - * Perform the actual replacements on $buffer and return the result. - * - * @param string $buffer - * - * @return string - */ - public function filter($buffer) - { - return str_replace($this->_search, $this->_replace, $buffer); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/StreamFilters/StringReplacementFilterFactory.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/StreamFilters/StringReplacementFilterFactory.php deleted file mode 100644 index bb4af77..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/StreamFilters/StringReplacementFilterFactory.php +++ /dev/null @@ -1,46 +0,0 @@ -_filters[$search][$replace])) { - if (!isset($this->_filters[$search])) { - $this->_filters[$search] = array(); - } - - if (!isset($this->_filters[$search][$replace])) { - $this->_filters[$search][$replace] = array(); - } - - $this->_filters[$search][$replace] = new Swift_StreamFilters_StringReplacementFilter($search, $replace); - } - - return $this->_filters[$search][$replace]; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/SwiftException.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/SwiftException.php deleted file mode 100644 index f3bcbed..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/SwiftException.php +++ /dev/null @@ -1,28 +0,0 @@ -_eventDispatcher = $dispatcher; - $this->_buffer = $buf; - $this->_lookupHostname(); - } - - /** - * Set the name of the local domain which Swift will identify itself as. - * - * This should be a fully-qualified domain name and should be truly the domain - * you're using. - * - * If your server doesn't have a domain name, use the IP in square - * brackets (i.e. [127.0.0.1]). - * - * @param string $domain - * - * @return Swift_Transport_AbstractSmtpTransport - */ - public function setLocalDomain($domain) - { - $this->_domain = $domain; - - return $this; - } - - /** - * Get the name of the domain Swift will identify as. - * - * @return string - */ - public function getLocalDomain() - { - return $this->_domain; - } - - /** - * Sets the source IP. - * - * @param string $source - */ - public function setSourceIp($source) - { - $this->_sourceIp=$source; - } - - /** - * Returns the IP used to connect to the destination - * - * @return string - */ - public function getSourceIp() - { - return $this->_sourceIp; - } - - /** - * Start the SMTP connection. - */ - public function start() - { - if (!$this->_started) { - if ($evt = $this->_eventDispatcher->createTransportChangeEvent($this)) { - $this->_eventDispatcher->dispatchEvent($evt, 'beforeTransportStarted'); - if ($evt->bubbleCancelled()) { - return; - } - } - - try { - $this->_buffer->initialize($this->_getBufferParams()); - } catch (Swift_TransportException $e) { - $this->_throwException($e); - } - $this->_readGreeting(); - $this->_doHeloCommand(); - - if ($evt) { - $this->_eventDispatcher->dispatchEvent($evt, 'transportStarted'); - } - - $this->_started = true; - } - } - - /** - * Test if an SMTP connection has been established. - * - * @return boolean - */ - public function isStarted() - { - return $this->_started; - } - - /** - * Send the given Message. - * - * Recipient/sender data will be retrieved from the Message API. - * The return value is the number of recipients who were accepted for delivery. - * - * @param Swift_Mime_Message $message - * @param string[] $failedRecipients An array of failures by-reference - * - * @return int - */ - public function send(Swift_Mime_Message $message, &$failedRecipients = null) - { - $sent = 0; - $failedRecipients = (array) $failedRecipients; - - if ($evt = $this->_eventDispatcher->createSendEvent($this, $message)) { - $this->_eventDispatcher->dispatchEvent($evt, 'beforeSendPerformed'); - if ($evt->bubbleCancelled()) { - return 0; - } - } - - if (!$reversePath = $this->_getReversePath($message)) { - throw new Swift_TransportException( - 'Cannot send message without a sender address' - ); - } - - $to = (array) $message->getTo(); - $cc = (array) $message->getCc(); - $bcc = (array) $message->getBcc(); - - $message->setBcc(array()); - - try { - $sent += $this->_sendTo($message, $reversePath, $to, $failedRecipients); - $sent += $this->_sendCc($message, $reversePath, $cc, $failedRecipients); - $sent += $this->_sendBcc($message, $reversePath, $bcc, $failedRecipients); - } catch (Exception $e) { - $message->setBcc($bcc); - throw $e; - } - - $message->setBcc($bcc); - - if ($evt) { - if ($sent == count($to) + count($cc) + count($bcc)) { - $evt->setResult(Swift_Events_SendEvent::RESULT_SUCCESS); - } elseif ($sent > 0) { - $evt->setResult(Swift_Events_SendEvent::RESULT_TENTATIVE); - } else { - $evt->setResult(Swift_Events_SendEvent::RESULT_FAILED); - } - $evt->setFailedRecipients($failedRecipients); - $this->_eventDispatcher->dispatchEvent($evt, 'sendPerformed'); - } - - $message->generateId(); //Make sure a new Message ID is used - - return $sent; - } - - /** - * Stop the SMTP connection. - */ - public function stop() - { - if ($this->_started) { - if ($evt = $this->_eventDispatcher->createTransportChangeEvent($this)) { - $this->_eventDispatcher->dispatchEvent($evt, 'beforeTransportStopped'); - if ($evt->bubbleCancelled()) { - return; - } - } - - try { - $this->executeCommand("QUIT\r\n", array(221)); - } catch (Swift_TransportException $e) {} - - try { - $this->_buffer->terminate(); - - if ($evt) { - $this->_eventDispatcher->dispatchEvent($evt, 'transportStopped'); - } - } catch (Swift_TransportException $e) { - $this->_throwException($e); - } - } - $this->_started = false; - } - - /** - * Register a plugin. - * - * @param Swift_Events_EventListener $plugin - */ - public function registerPlugin(Swift_Events_EventListener $plugin) - { - $this->_eventDispatcher->bindEventListener($plugin); - } - - /** - * Reset the current mail transaction. - */ - public function reset() - { - $this->executeCommand("RSET\r\n", array(250)); - } - - /** - * Get the IoBuffer where read/writes are occurring. - * - * @return Swift_Transport_IoBuffer - */ - public function getBuffer() - { - return $this->_buffer; - } - - /** - * Run a command against the buffer, expecting the given response codes. - * - * If no response codes are given, the response will not be validated. - * If codes are given, an exception will be thrown on an invalid response. - * - * @param string $command - * @param int[] $codes - * @param string[] $failures An array of failures by-reference - * - * @return string - */ - public function executeCommand($command, $codes = array(), &$failures = null) - { - $failures = (array) $failures; - $seq = $this->_buffer->write($command); - $response = $this->_getFullResponse($seq); - if ($evt = $this->_eventDispatcher->createCommandEvent($this, $command, $codes)) { - $this->_eventDispatcher->dispatchEvent($evt, 'commandSent'); - } - $this->_assertResponseCode($response, $codes); - - return $response; - } - - // -- Protected methods - - /** Read the opening SMTP greeting */ - protected function _readGreeting() - { - $this->_assertResponseCode($this->_getFullResponse(0), array(220)); - } - - /** Send the HELO welcome */ - protected function _doHeloCommand() - { - $this->executeCommand( - sprintf("HELO %s\r\n", $this->_domain), array(250) - ); - } - - /** Send the MAIL FROM command */ - protected function _doMailFromCommand($address) - { - $this->executeCommand( - sprintf("MAIL FROM: <%s>\r\n", $address), array(250) - ); - } - - /** Send the RCPT TO command */ - protected function _doRcptToCommand($address) - { - $this->executeCommand( - sprintf("RCPT TO: <%s>\r\n", $address), array(250, 251, 252) - ); - } - - /** Send the DATA command */ - protected function _doDataCommand() - { - $this->executeCommand("DATA\r\n", array(354)); - } - - /** Stream the contents of the message over the buffer */ - protected function _streamMessage(Swift_Mime_Message $message) - { - $this->_buffer->setWriteTranslations(array("\r\n." => "\r\n..")); - try { - $message->toByteStream($this->_buffer); - $this->_buffer->flushBuffers(); - } catch (Swift_TransportException $e) { - $this->_throwException($e); - } - $this->_buffer->setWriteTranslations(array()); - $this->executeCommand("\r\n.\r\n", array(250)); - } - - /** Determine the best-use reverse path for this message */ - protected function _getReversePath(Swift_Mime_Message $message) - { - $return = $message->getReturnPath(); - $sender = $message->getSender(); - $from = $message->getFrom(); - $path = null; - if (!empty($return)) { - $path = $return; - } elseif (!empty($sender)) { - // Don't use array_keys - reset($sender); // Reset Pointer to first pos - $path = key($sender); // Get key - } elseif (!empty($from)) { - reset($from); // Reset Pointer to first pos - $path = key($from); // Get key - } - - return $path; - } - - /** Throw a TransportException, first sending it to any listeners */ - protected function _throwException(Swift_TransportException $e) - { - if ($evt = $this->_eventDispatcher->createTransportExceptionEvent($this, $e)) { - $this->_eventDispatcher->dispatchEvent($evt, 'exceptionThrown'); - if (!$evt->bubbleCancelled()) { - throw $e; - } - } else { - throw $e; - } - } - - /** Throws an Exception if a response code is incorrect */ - protected function _assertResponseCode($response, $wanted) - { - list($code) = sscanf($response, '%3d'); - $valid = (empty($wanted) || in_array($code, $wanted)); - - if ($evt = $this->_eventDispatcher->createResponseEvent($this, $response, - $valid)) - { - $this->_eventDispatcher->dispatchEvent($evt, 'responseReceived'); - } - - if (!$valid) { - $this->_throwException( - new Swift_TransportException( - 'Expected response code ' . implode('/', $wanted) . ' but got code ' . - '"' . $code . '", with message "' . $response . '"' - ) - ); - } - } - - /** Get an entire multi-line response using its sequence number */ - protected function _getFullResponse($seq) - { - $response = ''; - try { - do { - $line = $this->_buffer->readLine($seq); - $response .= $line; - } while (null !== $line && false !== $line && ' ' != $line{3}); - } catch (Swift_TransportException $e) { - $this->_throwException($e); - } - - return $response; - } - - // -- Private methods - - /** Send an email to the given recipients from the given reverse path */ - private function _doMailTransaction($message, $reversePath, array $recipients, array &$failedRecipients) - { - $sent = 0; - $this->_doMailFromCommand($reversePath); - foreach ($recipients as $forwardPath) { - try { - $this->_doRcptToCommand($forwardPath); - $sent++; - } catch (Swift_TransportException $e) { - $failedRecipients[] = $forwardPath; - } - } - - if ($sent != 0) { - $this->_doDataCommand(); - $this->_streamMessage($message); - } else { - $this->reset(); - } - - return $sent; - } - - /** Send a message to the given To: recipients */ - private function _sendTo(Swift_Mime_Message $message, $reversePath, array $to, array &$failedRecipients) - { - if (empty($to)) { - return 0; - } - - return $this->_doMailTransaction($message, $reversePath, array_keys($to), - $failedRecipients); - } - - /** Send a message to the given Cc: recipients */ - private function _sendCc(Swift_Mime_Message $message, $reversePath, array $cc, array &$failedRecipients) - { - if (empty($cc)) { - return 0; - } - - return $this->_doMailTransaction($message, $reversePath, array_keys($cc), - $failedRecipients); - } - - /** Send a message to all Bcc: recipients */ - private function _sendBcc(Swift_Mime_Message $message, $reversePath, array $bcc, array &$failedRecipients) - { - $sent = 0; - foreach ($bcc as $forwardPath => $name) { - $message->setBcc(array($forwardPath => $name)); - $sent += $this->_doMailTransaction( - $message, $reversePath, array($forwardPath), $failedRecipients - ); - } - - return $sent; - } - - /** Try to determine the hostname of the server this is run on */ - private function _lookupHostname() - { - if (!empty($_SERVER['SERVER_NAME']) - && $this->_isFqdn($_SERVER['SERVER_NAME'])) - { - $this->_domain = $_SERVER['SERVER_NAME']; - } elseif (!empty($_SERVER['SERVER_ADDR'])) { - $this->_domain = sprintf('[%s]', $_SERVER['SERVER_ADDR']); - } - } - - /** Determine is the $hostname is a fully-qualified name */ - private function _isFqdn($hostname) - { - //We could do a really thorough check, but there's really no point - if (false !== $dotPos = strpos($hostname, '.')) { - return ($dotPos > 0) && ($dotPos != strlen($hostname) - 1); - } else { - return false; - } - } - - /** - * Destructor. - */ - public function __destruct() - { - $this->stop(); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/Auth/CramMd5Authenticator.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/Auth/CramMd5Authenticator.php deleted file mode 100644 index 80b4712..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/Auth/CramMd5Authenticator.php +++ /dev/null @@ -1,83 +0,0 @@ -executeCommand("AUTH CRAM-MD5\r\n", array(334)); - $challenge = base64_decode(substr($challenge, 4)); - $message = base64_encode( - $username . ' ' . $this->_getResponse($password, $challenge) - ); - $agent->executeCommand(sprintf("%s\r\n", $message), array(235)); - - return true; - } catch (Swift_TransportException $e) { - $agent->executeCommand("RSET\r\n", array(250)); - - return false; - } - } - - /** - * Generate a CRAM-MD5 response from a server challenge. - * - * @param string $secret - * @param string $challenge - * - * @return string - */ - private function _getResponse($secret, $challenge) - { - if (strlen($secret) > 64) { - $secret = pack('H32', md5($secret)); - } - - if (strlen($secret) < 64) { - $secret = str_pad($secret, 64, chr(0)); - } - - $k_ipad = substr($secret, 0, 64) ^ str_repeat(chr(0x36), 64); - $k_opad = substr($secret, 0, 64) ^ str_repeat(chr(0x5C), 64); - - $inner = pack('H32', md5($k_ipad . $challenge)); - $digest = md5($k_opad . $inner); - - return $digest; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/Auth/LoginAuthenticator.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/Auth/LoginAuthenticator.php deleted file mode 100644 index deca3a5..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/Auth/LoginAuthenticator.php +++ /dev/null @@ -1,53 +0,0 @@ -executeCommand("AUTH LOGIN\r\n", array(334)); - $agent->executeCommand(sprintf("%s\r\n", base64_encode($username)), array(334)); - $agent->executeCommand(sprintf("%s\r\n", base64_encode($password)), array(235)); - - return true; - } catch (Swift_TransportException $e) { - $agent->executeCommand("RSET\r\n", array(250)); - - return false; - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/Auth/PlainAuthenticator.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/Auth/PlainAuthenticator.php deleted file mode 100644 index ffa9af3..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/Auth/PlainAuthenticator.php +++ /dev/null @@ -1,52 +0,0 @@ -executeCommand(sprintf("AUTH PLAIN %s\r\n", $message), array(235)); - - return true; - } catch (Swift_TransportException $e) { - $agent->executeCommand("RSET\r\n", array(250)); - - return false; - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/AuthHandler.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/AuthHandler.php deleted file mode 100644 index 40b0908..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/AuthHandler.php +++ /dev/null @@ -1,268 +0,0 @@ -setAuthenticators($authenticators); - } - - /** - * Set the Authenticators which can process a login request. - * - * @param Swift_Transport_Esmtp_Authenticator[] $authenticators - */ - public function setAuthenticators(array $authenticators) - { - $this->_authenticators = $authenticators; - } - - /** - * Get the Authenticators which can process a login request. - * - * @return Swift_Transport_Esmtp_Authenticator[] - */ - public function getAuthenticators() - { - return $this->_authenticators; - } - - /** - * Set the username to authenticate with. - * - * @param string $username - */ - public function setUsername($username) - { - $this->_username = $username; - } - - /** - * Get the username to authenticate with. - * - * @return string - */ - public function getUsername() - { - return $this->_username; - } - - /** - * Set the password to authenticate with. - * - * @param string $password - */ - public function setPassword($password) - { - $this->_password = $password; - } - - /** - * Get the password to authenticate with. - * - * @return string - */ - public function getPassword() - { - return $this->_password; - } - - /** - * Set the auth mode to use to authenticate. - * - * @param string $mode - */ - public function setAuthMode($mode) - { - $this->_auth_mode = $mode; - } - - /** - * Get the auth mode to use to authenticate. - * - * @return string - */ - public function getAuthMode() - { - return $this->_auth_mode; - } - - /** - * Get the name of the ESMTP extension this handles. - * - * @return boolean - */ - public function getHandledKeyword() - { - return 'AUTH'; - } - - /** - * Set the parameters which the EHLO greeting indicated. - * - * @param string[] $parameters - */ - public function setKeywordParams(array $parameters) - { - $this->_esmtpParams = $parameters; - } - - /** - * Runs immediately after a EHLO has been issued. - * - * @param Swift_Transport_SmtpAgent $agent to read/write - */ - public function afterEhlo(Swift_Transport_SmtpAgent $agent) - { - if ($this->_username) { - $count = 0; - foreach ($this->_getAuthenticatorsForAgent() as $authenticator) { - if (in_array(strtolower($authenticator->getAuthKeyword()), - array_map('strtolower', $this->_esmtpParams))) - { - $count++; - if ($authenticator->authenticate($agent, $this->_username, $this->_password)) { - return; - } - } - } - throw new Swift_TransportException( - 'Failed to authenticate on SMTP server with username "' . - $this->_username . '" using ' . $count . ' possible authenticators' - ); - } - } - - /** - * Not used. - */ - public function getMailParams() - { - return array(); - } - - /** - * Not used. - */ - public function getRcptParams() - { - return array(); - } - - /** - * Not used. - */ - public function onCommand(Swift_Transport_SmtpAgent $agent, $command, $codes = array(), &$failedRecipients = null, &$stop = false) - { - } - - /** - * Returns +1, -1 or 0 according to the rules for usort(). - * - * This method is called to ensure extensions can be execute in an appropriate order. - * - * @param string $esmtpKeyword to compare with - * - * @return int - */ - public function getPriorityOver($esmtpKeyword) - { - return 0; - } - - /** - * Returns an array of method names which are exposed to the Esmtp class. - * - * @return string[] - */ - public function exposeMixinMethods() - { - return array('setUsername', 'getUsername', 'setPassword', 'getPassword', 'setAuthMode', 'getAuthMode'); - } - - /** - * Not used. - */ - public function resetState() - { - } - - // -- Protected methods - - /** - * Returns the authenticator list for the given agent. - * - * @param Swift_Transport_SmtpAgent $agent - * - * @return array - */ - protected function _getAuthenticatorsForAgent() - { - if (!$mode = strtolower($this->_auth_mode)) { - return $this->_authenticators; - } - - foreach ($this->_authenticators as $authenticator) { - if (strtolower($authenticator->getAuthKeyword()) == $mode) { - return array($authenticator); - } - } - - throw new Swift_TransportException('Auth mode '.$mode.' is invalid'); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/Authenticator.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/Authenticator.php deleted file mode 100644 index 0c6dc2e..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/Esmtp/Authenticator.php +++ /dev/null @@ -1,37 +0,0 @@ -. - * - * @return string[] - */ - public function getMailParams(); - - /** - * Get params which are appended to RCPT TO:<>. - * - * @return string[] - */ - public function getRcptParams(); - - /** - * Runs when a command is due to be sent. - * - * @param Swift_Transport_SmtpAgent $agent to read/write - * @param string $command to send - * @param int[] $codes expected in response - * @param string[] $failedRecipients to collect failures - * @param boolean $stop to be set true by-reference if the command is now sent - */ - public function onCommand(Swift_Transport_SmtpAgent $agent, $command, $codes = array(), &$failedRecipients = null, &$stop = false); - - /** - * Returns +1, -1 or 0 according to the rules for usort(). - * - * This method is called to ensure extensions can be execute in an appropriate order. - * - * @param string $esmtpKeyword to compare with - * - * @return int - */ - public function getPriorityOver($esmtpKeyword); - - /** - * Returns an array of method names which are exposed to the Esmtp class. - * - * @return string[] - */ - public function exposeMixinMethods(); - - /** - * Tells this handler to clear any buffers and reset its state. - */ - public function resetState(); -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/EsmtpTransport.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/EsmtpTransport.php deleted file mode 100644 index 19e2d77..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/EsmtpTransport.php +++ /dev/null @@ -1,393 +0,0 @@ - 'tcp', - 'host' => 'localhost', - 'port' => 25, - 'timeout' => 30, - 'blocking' => 1, - 'tls' => false, - 'type' => Swift_Transport_IoBuffer::TYPE_SOCKET - ); - - /** - * Creates a new EsmtpTransport using the given I/O buffer. - * - * @param Swift_Transport_IoBuffer $buf - * @param Swift_Transport_EsmtpHandler[] $extensionHandlers - * @param Swift_Events_EventDispatcher $dispatcher - */ - public function __construct(Swift_Transport_IoBuffer $buf, array $extensionHandlers, Swift_Events_EventDispatcher $dispatcher) - { - parent::__construct($buf, $dispatcher); - $this->setExtensionHandlers($extensionHandlers); - } - - /** - * Set the host to connect to. - * - * @param string $host - * - * @return Swift_Transport_EsmtpTransport - */ - public function setHost($host) - { - $this->_params['host'] = $host; - - return $this; - } - - /** - * Get the host to connect to. - * - * @return string - */ - public function getHost() - { - return $this->_params['host']; - } - - /** - * Set the port to connect to. - * - * @param integer $port - * - * @return Swift_Transport_EsmtpTransport - */ - public function setPort($port) - { - $this->_params['port'] = (int) $port; - - return $this; - } - - /** - * Get the port to connect to. - * - * @return int - */ - public function getPort() - { - return $this->_params['port']; - } - - /** - * Set the connection timeout. - * - * @param integer $timeout seconds - * - * @return Swift_Transport_EsmtpTransport - */ - public function setTimeout($timeout) - { - $this->_params['timeout'] = (int) $timeout; - $this->_buffer->setParam('timeout', (int) $timeout); - - return $this; - } - - /** - * Get the connection timeout. - * - * @return int - */ - public function getTimeout() - { - return $this->_params['timeout']; - } - - /** - * Set the encryption type (tls or ssl) - * - * @param string $encryption - * - * @return Swift_Transport_EsmtpTransport - */ - public function setEncryption($encryption) - { - if ('tls' == $encryption) { - $this->_params['protocol'] = 'tcp'; - $this->_params['tls'] = true; - } else { - $this->_params['protocol'] = $encryption; - $this->_params['tls'] = false; - } - - return $this; - } - - /** - * Get the encryption type. - * - * @return string - */ - public function getEncryption() - { - return $this->_params['tls'] ? 'tls' : $this->_params['protocol']; - } - - /** - * Sets the source IP. - * - * @param string $source - * - * @return Swift_Transport_EsmtpTransport - */ - public function setSourceIp($source) - { - $this->_params['sourceIp']=$source; - - return $this; - } - - /** - * Returns the IP used to connect to the destination. - * - * @return string - */ - public function getSourceIp() - { - return $this->_params['sourceIp']; - } - - /** - * Set ESMTP extension handlers. - * - * @param Swift_Transport_EsmtpHandler[] $handlers - * - * @return Swift_Transport_EsmtpTransport - */ - public function setExtensionHandlers(array $handlers) - { - $assoc = array(); - foreach ($handlers as $handler) { - $assoc[$handler->getHandledKeyword()] = $handler; - } - uasort($assoc, array($this, '_sortHandlers')); - $this->_handlers = $assoc; - $this->_setHandlerParams(); - - return $this; - } - - /** - * Get ESMTP extension handlers. - * - * @return Swift_Transport_EsmtpHandler[] - */ - public function getExtensionHandlers() - { - return array_values($this->_handlers); - } - - /** - * Run a command against the buffer, expecting the given response codes. - * - * If no response codes are given, the response will not be validated. - * If codes are given, an exception will be thrown on an invalid response. - * - * @param string $command - * @param int[] $codes - * @param string[] $failures An array of failures by-reference - * - * @return string - */ - public function executeCommand($command, $codes = array(), &$failures = null) - { - $failures = (array) $failures; - $stopSignal = false; - $response = null; - foreach ($this->_getActiveHandlers() as $handler) { - $response = $handler->onCommand( - $this, $command, $codes, $failures, $stopSignal - ); - if ($stopSignal) { - return $response; - } - } - - return parent::executeCommand($command, $codes, $failures); - } - - // -- Mixin invocation code - - /** Mixin handling method for ESMTP handlers */ - public function __call($method, $args) - { - foreach ($this->_handlers as $handler) { - if (in_array(strtolower($method), - array_map('strtolower', (array) $handler->exposeMixinMethods()) - )) - { - $return = call_user_func_array(array($handler, $method), $args); - //Allow fluid method calls - if (is_null($return) && substr($method, 0, 3) == 'set') { - return $this; - } else { - return $return; - } - } - } - trigger_error('Call to undefined method ' . $method, E_USER_ERROR); - } - - // -- Protected methods - - /** Get the params to initialize the buffer */ - protected function _getBufferParams() - { - return $this->_params; - } - - /** Overridden to perform EHLO instead */ - protected function _doHeloCommand() - { - try { - $response = $this->executeCommand( - sprintf("EHLO %s\r\n", $this->_domain), array(250) - ); - } catch (Swift_TransportException $e) { - return parent::_doHeloCommand(); - } - - if ($this->_params['tls']) { - try { - $this->executeCommand("STARTTLS\r\n", array(220)); - - if (!$this->_buffer->startTLS()) { - throw new Swift_TransportException('Unable to connect with TLS encryption'); - } - - try { - $response = $this->executeCommand( - sprintf("EHLO %s\r\n", $this->_domain), array(250) - ); - } catch (Swift_TransportException $e) { - return parent::_doHeloCommand(); - } - } catch (Swift_TransportException $e) { - $this->_throwException($e); - } - } - - $this->_capabilities = $this->_getCapabilities($response); - $this->_setHandlerParams(); - foreach ($this->_getActiveHandlers() as $handler) { - $handler->afterEhlo($this); - } - } - - /** Overridden to add Extension support */ - protected function _doMailFromCommand($address) - { - $handlers = $this->_getActiveHandlers(); - $params = array(); - foreach ($handlers as $handler) { - $params = array_merge($params, (array) $handler->getMailParams()); - } - $paramStr = !empty($params) ? ' ' . implode(' ', $params) : ''; - $this->executeCommand( - sprintf("MAIL FROM: <%s>%s\r\n", $address, $paramStr), array(250) - ); - } - - /** Overridden to add Extension support */ - protected function _doRcptToCommand($address) - { - $handlers = $this->_getActiveHandlers(); - $params = array(); - foreach ($handlers as $handler) { - $params = array_merge($params, (array) $handler->getRcptParams()); - } - $paramStr = !empty($params) ? ' ' . implode(' ', $params) : ''; - $this->executeCommand( - sprintf("RCPT TO: <%s>%s\r\n", $address, $paramStr), array(250, 251, 252) - ); - } - - // -- Private methods - - /** Determine ESMTP capabilities by function group */ - private function _getCapabilities($ehloResponse) - { - $capabilities = array(); - $ehloResponse = trim($ehloResponse); - $lines = explode("\r\n", $ehloResponse); - array_shift($lines); - foreach ($lines as $line) { - if (preg_match('/^[0-9]{3}[ -]([A-Z0-9-]+)((?:[ =].*)?)$/Di', $line, $matches)) { - $keyword = strtoupper($matches[1]); - $paramStr = strtoupper(ltrim($matches[2], ' =')); - $params = !empty($paramStr) ? explode(' ', $paramStr) : array(); - $capabilities[$keyword] = $params; - } - } - - return $capabilities; - } - - /** Set parameters which are used by each extension handler */ - private function _setHandlerParams() - { - foreach ($this->_handlers as $keyword => $handler) { - if (array_key_exists($keyword, $this->_capabilities)) { - $handler->setKeywordParams($this->_capabilities[$keyword]); - } - } - } - - /** Get ESMTP handlers which are currently ok to use */ - private function _getActiveHandlers() - { - $handlers = array(); - foreach ($this->_handlers as $keyword => $handler) { - if (array_key_exists($keyword, $this->_capabilities)) { - $handlers[] = $handler; - } - } - - return $handlers; - } - - /** Custom sort for extension handler ordering */ - private function _sortHandlers($a, $b) - { - return $a->getPriorityOver($b->getHandledKeyword()); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/FailoverTransport.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/FailoverTransport.php deleted file mode 100644 index d0d3f69..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/FailoverTransport.php +++ /dev/null @@ -1,90 +0,0 @@ -_transports); - $sent = 0; - - for ($i = 0; $i < $maxTransports - && $transport = $this->_getNextTransport(); ++$i) - { - try { - if (!$transport->isStarted()) { - $transport->start(); - } - - return $transport->send($message, $failedRecipients); - } catch (Swift_TransportException $e) { - $this->_killCurrentTransport(); - } - } - - if (count($this->_transports) == 0) { - throw new Swift_TransportException( - 'All Transports in FailoverTransport failed, or no Transports available' - ); - } - - return $sent; - } - - // -- Protected methods - - protected function _getNextTransport() - { - if (!isset($this->_currentTransport)) { - $this->_currentTransport = parent::_getNextTransport(); - } - - return $this->_currentTransport; - } - - protected function _killCurrentTransport() - { - $this->_currentTransport = null; - parent::_killCurrentTransport(); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/IoBuffer.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/IoBuffer.php deleted file mode 100644 index 7559ebf..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/IoBuffer.php +++ /dev/null @@ -1,69 +0,0 @@ -_transports = $transports; - $this->_deadTransports = array(); - } - - /** - * Get $transports to delegate to. - * - * @return Swift_Transport[] - */ - public function getTransports() - { - return array_merge($this->_transports, $this->_deadTransports); - } - - /** - * Test if this Transport mechanism has started. - * - * @return boolean - */ - public function isStarted() - { - return count($this->_transports) > 0; - } - - /** - * Start this Transport mechanism. - */ - public function start() - { - $this->_transports = array_merge($this->_transports, $this->_deadTransports); - } - - /** - * Stop this Transport mechanism. - */ - public function stop() - { - foreach ($this->_transports as $transport) { - $transport->stop(); - } - } - - /** - * Send the given Message. - * - * Recipient/sender data will be retrieved from the Message API. - * The return value is the number of recipients who were accepted for delivery. - * - * @param Swift_Mime_Message $message - * @param string[] $failedRecipients An array of failures by-reference - * - * @return int - */ - public function send(Swift_Mime_Message $message, &$failedRecipients = null) - { - $maxTransports = count($this->_transports); - $sent = 0; - - for ($i = 0; $i < $maxTransports - && $transport = $this->_getNextTransport(); ++$i) - { - try { - if (!$transport->isStarted()) { - $transport->start(); - } - if ($sent = $transport->send($message, $failedRecipients)) { - break; - } - } catch (Swift_TransportException $e) { - $this->_killCurrentTransport(); - } - } - - if (count($this->_transports) == 0) { - throw new Swift_TransportException( - 'All Transports in LoadBalancedTransport failed, or no Transports available' - ); - } - - return $sent; - } - - /** - * Register a plugin. - * - * @param Swift_Events_EventListener $plugin - */ - public function registerPlugin(Swift_Events_EventListener $plugin) - { - foreach ($this->_transports as $transport) { - $transport->registerPlugin($plugin); - } - } - - // -- Protected methods - - /** - * Rotates the transport list around and returns the first instance. - * - * @return Swift_Transport - */ - protected function _getNextTransport() - { - if ($next = array_shift($this->_transports)) { - $this->_transports[] = $next; - } - - return $next; - } - - /** - * Tag the currently used (top of stack) transport as dead/useless. - */ - protected function _killCurrentTransport() - { - if ($transport = array_pop($this->_transports)) { - try { - $transport->stop(); - } catch (Exception $e) { - } - $this->_deadTransports[] = $transport; - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/MailInvoker.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/MailInvoker.php deleted file mode 100644 index a9bff69..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/MailInvoker.php +++ /dev/null @@ -1,34 +0,0 @@ -_invoker = $invoker; - $this->_eventDispatcher = $eventDispatcher; - } - - /** - * Not used. - */ - public function isStarted() - { - return false; - } - - /** - * Not used. - */ - public function start() - { - } - - /** - * Not used. - */ - public function stop() - { - } - - /** - * Set the additional parameters used on the mail() function. - * - * This string is formatted for sprintf() where %s is the sender address. - * - * @param string $params - * - * @return Swift_Transport_MailTransport - */ - public function setExtraParams($params) - { - $this->_extraParams = $params; - - return $this; - } - - /** - * Get the additional parameters used on the mail() function. - * - * This string is formatted for sprintf() where %s is the sender address. - * - * @return string - */ - public function getExtraParams() - { - return $this->_extraParams; - } - - /** - * Send the given Message. - * - * Recipient/sender data will be retrieved from the Message API. - * The return value is the number of recipients who were accepted for delivery. - * - * @param Swift_Mime_Message $message - * @param string[] $failedRecipients An array of failures by-reference - * - * @return int - */ - public function send(Swift_Mime_Message $message, &$failedRecipients = null) - { - $failedRecipients = (array) $failedRecipients; - - if ($evt = $this->_eventDispatcher->createSendEvent($this, $message)) { - $this->_eventDispatcher->dispatchEvent($evt, 'beforeSendPerformed'); - if ($evt->bubbleCancelled()) { - return 0; - } - } - - $count = ( - count((array) $message->getTo()) - + count((array) $message->getCc()) - + count((array) $message->getBcc()) - ); - - $toHeader = $message->getHeaders()->get('To'); - $subjectHeader = $message->getHeaders()->get('Subject'); - - if (!$toHeader) { - throw new Swift_TransportException( - 'Cannot send message without a recipient' - ); - } - $to = $toHeader->getFieldBody(); - $subject = $subjectHeader ? $subjectHeader->getFieldBody() : ''; - - $reversePath = $this->_getReversePath($message); - - //Remove headers that would otherwise be duplicated - $message->getHeaders()->remove('To'); - $message->getHeaders()->remove('Subject'); - - $messageStr = $message->toString(); - - $message->getHeaders()->set($toHeader); - $message->getHeaders()->set($subjectHeader); - - //Separate headers from body - if (false !== $endHeaders = strpos($messageStr, "\r\n\r\n")) { - $headers = substr($messageStr, 0, $endHeaders) . "\r\n"; //Keep last EOL - $body = substr($messageStr, $endHeaders + 4); - } else { - $headers = $messageStr . "\r\n"; - $body = ''; - } - - unset($messageStr); - - if ("\r\n" != PHP_EOL) { - //Non-windows (not using SMTP) - $headers = str_replace("\r\n", PHP_EOL, $headers); - $body = str_replace("\r\n", PHP_EOL, $body); - } else { - //Windows, using SMTP - $headers = str_replace("\r\n.", "\r\n..", $headers); - $body = str_replace("\r\n.", "\r\n..", $body); - } - - if ($this->_invoker->mail($to, $subject, $body, $headers, - sprintf($this->_extraParams, $reversePath))) - { - if ($evt) { - $evt->setResult(Swift_Events_SendEvent::RESULT_SUCCESS); - $evt->setFailedRecipients($failedRecipients); - $this->_eventDispatcher->dispatchEvent($evt, 'sendPerformed'); - } - } else { - $failedRecipients = array_merge( - $failedRecipients, - array_keys((array) $message->getTo()), - array_keys((array) $message->getCc()), - array_keys((array) $message->getBcc()) - ); - - if ($evt) { - $evt->setResult(Swift_Events_SendEvent::RESULT_FAILED); - $evt->setFailedRecipients($failedRecipients); - $this->_eventDispatcher->dispatchEvent($evt, 'sendPerformed'); - } - - $message->generateId(); - - $count = 0; - } - - return $count; - } - - /** - * Register a plugin. - * - * @param Swift_Events_EventListener $plugin - */ - public function registerPlugin(Swift_Events_EventListener $plugin) - { - $this->_eventDispatcher->bindEventListener($plugin); - } - - // -- Private methods - - /** Determine the best-use reverse path for this message */ - private function _getReversePath(Swift_Mime_Message $message) - { - $return = $message->getReturnPath(); - $sender = $message->getSender(); - $from = $message->getFrom(); - $path = null; - if (!empty($return)) { - $path = $return; - } elseif (!empty($sender)) { - $keys = array_keys($sender); - $path = array_shift($keys); - } elseif (!empty($from)) { - $keys = array_keys($from); - $path = array_shift($keys); - } - - return $path; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/NullTransport.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/NullTransport.php deleted file mode 100644 index ce136d3..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/NullTransport.php +++ /dev/null @@ -1,88 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/** - * Pretends messages have been sent, but just ignores them. - * - * @package Swift - * @author Fabien Potencier - */ -class Swift_Transport_NullTransport implements Swift_Transport -{ - /** The event dispatcher from the plugin API */ - private $_eventDispatcher; - - /** - * Constructor. - */ - public function __construct(Swift_Events_EventDispatcher $eventDispatcher) - { - $this->_eventDispatcher = $eventDispatcher; - } - - /** - * Tests if this Transport mechanism has started. - * - * @return boolean - */ - public function isStarted() - { - return true; - } - - /** - * Starts this Transport mechanism. - */ - public function start() - { - } - - /** - * Stops this Transport mechanism. - */ - public function stop() - { - } - - /** - * Sends the given message. - * - * @param Swift_Mime_Message $message - * @param string[] $failedRecipients An array of failures by-reference - * - * @return integer The number of sent emails - */ - public function send(Swift_Mime_Message $message, &$failedRecipients = null) - { - if ($evt = $this->_eventDispatcher->createSendEvent($this, $message)) { - $this->_eventDispatcher->dispatchEvent($evt, 'beforeSendPerformed'); - if ($evt->bubbleCancelled()) { - return 0; - } - } - - if ($evt) { - $evt->setResult(Swift_Events_SendEvent::RESULT_SUCCESS); - $this->_eventDispatcher->dispatchEvent($evt, 'sendPerformed'); - } - - return 0; - } - - /** - * Register a plugin. - * - * @param Swift_Events_EventListener $plugin - */ - public function registerPlugin(Swift_Events_EventListener $plugin) - { - $this->_eventDispatcher->bindEventListener($plugin); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/SendmailTransport.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/SendmailTransport.php deleted file mode 100644 index 95c2e4a..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/SendmailTransport.php +++ /dev/null @@ -1,163 +0,0 @@ - 30, - 'blocking' => 1, - 'command' => '/usr/sbin/sendmail -bs', - 'type' => Swift_Transport_IoBuffer::TYPE_PROCESS - ); - - /** - * Create a new SendmailTransport with $buf for I/O. - * - * @param Swift_Transport_IoBuffer $buf - * @param Swift_Events_EventDispatcher $dispatcher - */ - public function __construct(Swift_Transport_IoBuffer $buf, Swift_Events_EventDispatcher $dispatcher) - { - parent::__construct($buf, $dispatcher); - } - - /** - * Start the standalone SMTP session if running in -bs mode. - */ - public function start() - { - if (false !== strpos($this->getCommand(), ' -bs')) { - parent::start(); - } - } - - /** - * Set the command to invoke. - * - * If using -t mode you are strongly advised to include -oi or -i in the flags. - * For example: /usr/sbin/sendmail -oi -t - * Swift will append a -f flag if one is not present. - * - * The recommended mode is "-bs" since it is interactive and failure notifications - * are hence possible. - * - * @param string $command - * - * @return Swift_Transport_SendmailTransport - */ - public function setCommand($command) - { - $this->_params['command'] = $command; - - return $this; - } - - /** - * Get the sendmail command which will be invoked. - * - * @return string - */ - public function getCommand() - { - return $this->_params['command']; - } - - /** - * Send the given Message. - * - * Recipient/sender data will be retrieved from the Message API. - * - * The return value is the number of recipients who were accepted for delivery. - * NOTE: If using 'sendmail -t' you will not be aware of any failures until - * they bounce (i.e. send() will always return 100% success). - * - * @param Swift_Mime_Message $message - * @param string[] $failedRecipients An array of failures by-reference - * - * @return int - */ - public function send(Swift_Mime_Message $message, &$failedRecipients = null) - { - $failedRecipients = (array) $failedRecipients; - $command = $this->getCommand(); - $buffer = $this->getBuffer(); - - if (false !== strpos($command, ' -t')) { - if ($evt = $this->_eventDispatcher->createSendEvent($this, $message)) { - $this->_eventDispatcher->dispatchEvent($evt, 'beforeSendPerformed'); - if ($evt->bubbleCancelled()) { - return 0; - } - } - - if (false === strpos($command, ' -f')) { - $command .= ' -f' . $this->_getReversePath($message); - } - - $buffer->initialize(array_merge($this->_params, array('command' => $command))); - - if (false === strpos($command, ' -i') && false === strpos($command, ' -oi')) { - $buffer->setWriteTranslations(array("\r\n" => "\n", "\n." => "\n..")); - } else { - $buffer->setWriteTranslations(array("\r\n"=>"\n")); - } - - $count = count((array) $message->getTo()) - + count((array) $message->getCc()) - + count((array) $message->getBcc()) - ; - $message->toByteStream($buffer); - $buffer->flushBuffers(); - $buffer->setWriteTranslations(array()); - $buffer->terminate(); - - if ($evt) { - $evt->setResult(Swift_Events_SendEvent::RESULT_SUCCESS); - $evt->setFailedRecipients($failedRecipients); - $this->_eventDispatcher->dispatchEvent($evt, 'sendPerformed'); - } - - $message->generateId(); - } elseif (false !== strpos($command, ' -bs')) { - $count = parent::send($message, $failedRecipients); - } else { - $this->_throwException(new Swift_TransportException( - 'Unsupported sendmail command flags [' . $command . ']. ' . - 'Must be one of "-bs" or "-t" but can include additional flags.' - )); - } - - return $count; - } - - // -- Protected methods - - /** Get the params to initialize the buffer */ - protected function _getBufferParams() - { - return $this->_params; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/SimpleMailInvoker.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/SimpleMailInvoker.php deleted file mode 100644 index 91157e5..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/SimpleMailInvoker.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/** - * Stores Messages in a queue. - * - * @package Swift - * @author Fabien Potencier - */ -class Swift_Transport_SpoolTransport implements Swift_Transport -{ - /** The spool instance */ - private $_spool; - - /** The event dispatcher from the plugin API */ - private $_eventDispatcher; - - /** - * Constructor. - */ - public function __construct(Swift_Events_EventDispatcher $eventDispatcher, Swift_Spool $spool = null) - { - $this->_eventDispatcher = $eventDispatcher; - $this->_spool = $spool; - } - - /** - * Sets the spool object. - * - * @param Swift_Spool $spool - * - * @return Swift_Transport_SpoolTransport - */ - public function setSpool(Swift_Spool $spool) - { - $this->_spool = $spool; - - return $this; - } - - /** - * Get the spool object. - * - * @return Swift_Spool - */ - public function getSpool() - { - return $this->_spool; - } - - /** - * Tests if this Transport mechanism has started. - * - * @return boolean - */ - public function isStarted() - { - return true; - } - - /** - * Starts this Transport mechanism. - */ - public function start() - { - } - - /** - * Stops this Transport mechanism. - */ - public function stop() - { - } - - /** - * Sends the given message. - * - * @param Swift_Mime_Message $message - * @param string[] $failedRecipients An array of failures by-reference - * - * @return integer The number of sent e-mail's - */ - public function send(Swift_Mime_Message $message, &$failedRecipients = null) - { - if ($evt = $this->_eventDispatcher->createSendEvent($this, $message)) { - $this->_eventDispatcher->dispatchEvent($evt, 'beforeSendPerformed'); - if ($evt->bubbleCancelled()) { - return 0; - } - } - - $success = $this->_spool->queueMessage($message); - - if ($evt) { - $evt->setResult($success ? Swift_Events_SendEvent::RESULT_SUCCESS : Swift_Events_SendEvent::RESULT_FAILED); - $this->_eventDispatcher->dispatchEvent($evt, 'sendPerformed'); - } - - return 1; - } - - /** - * Register a plugin. - * - * @param Swift_Events_EventListener $plugin - */ - public function registerPlugin(Swift_Events_EventListener $plugin) - { - $this->_eventDispatcher->bindEventListener($plugin); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/StreamBuffer.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/StreamBuffer.php deleted file mode 100644 index c42ee00..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/Transport/StreamBuffer.php +++ /dev/null @@ -1,315 +0,0 @@ -_replacementFactory = $replacementFactory; - } - - /** - * Perform any initialization needed, using the given $params. - * - * Parameters will vary depending upon the type of IoBuffer used. - * - * @param array $params - */ - public function initialize(array $params) - { - $this->_params = $params; - switch ($params['type']) { - case self::TYPE_PROCESS: - $this->_establishProcessConnection(); - break; - case self::TYPE_SOCKET: - default: - $this->_establishSocketConnection(); - break; - } - } - - /** - * Set an individual param on the buffer (e.g. switching to SSL). - * - * @param string $param - * @param mixed $value - */ - public function setParam($param, $value) - { - if (isset($this->_stream)) { - switch ($param) { - case 'timeout': - if ($this->_stream) { - stream_set_timeout($this->_stream, $value); - } - break; - - case 'blocking': - if ($this->_stream) { - stream_set_blocking($this->_stream, 1); - } - - } - } - $this->_params[$param] = $value; - } - - public function startTLS() - { - return stream_socket_enable_crypto($this->_stream, true, STREAM_CRYPTO_METHOD_TLS_CLIENT); - } - - /** - * Perform any shutdown logic needed. - */ - public function terminate() - { - if (isset($this->_stream)) { - switch ($this->_params['type']) { - case self::TYPE_PROCESS: - fclose($this->_in); - fclose($this->_out); - proc_close($this->_stream); - break; - case self::TYPE_SOCKET: - default: - fclose($this->_stream); - break; - } - } - $this->_stream = null; - $this->_out = null; - $this->_in = null; - } - - /** - * Set an array of string replacements which should be made on data written - * to the buffer. - * - * This could replace LF with CRLF for example. - * - * @param string[] $replacements - */ - public function setWriteTranslations(array $replacements) - { - foreach ($this->_translations as $search => $replace) { - if (!isset($replacements[$search])) { - $this->removeFilter($search); - unset($this->_translations[$search]); - } - } - - foreach ($replacements as $search => $replace) { - if (!isset($this->_translations[$search])) { - $this->addFilter( - $this->_replacementFactory->createFilter($search, $replace), $search - ); - $this->_translations[$search] = true; - } - } - } - - /** - * Get a line of output (including any CRLF). - * - * The $sequence number comes from any writes and may or may not be used - * depending upon the implementation. - * - * @param integer $sequence of last write to scan from - * - * @return string - * - * @throws Swift_IoException - */ - public function readLine($sequence) - { - if (isset($this->_out) && !feof($this->_out)) { - $line = fgets($this->_out); - if (strlen($line)==0) { - $metas = stream_get_meta_data($this->_out); - if ($metas['timed_out']) { - throw new Swift_IoException( - 'Connection to ' . - $this->_getReadConnectionDescription() . - ' Timed Out' - ); - } - } - - return $line; - } - } - - /** - * Reads $length bytes from the stream into a string and moves the pointer - * through the stream by $length. - * - * If less bytes exist than are requested the remaining bytes are given instead. - * If no bytes are remaining at all, boolean false is returned. - * - * @param integer $length - * - * @return string|boolean - * - * @throws Swift_IoException - */ - public function read($length) - { - if (isset($this->_out) && !feof($this->_out)) { - $ret = fread($this->_out, $length); - if (strlen($ret)==0) { - $metas = stream_get_meta_data($this->_out); - if ($metas['timed_out']) { - throw new Swift_IoException( - 'Connection to ' . - $this->_getReadConnectionDescription() . - ' Timed Out' - ); - } - } - - return $ret; - } - } - - /** Not implemented */ - public function setReadPointer($byteOffset) - { - } - - // -- Protected methods - - /** Flush the stream contents */ - protected function _flush() - { - if (isset($this->_in)) { - fflush($this->_in); - } - } - - /** Write this bytes to the stream */ - protected function _commit($bytes) - { - if (isset($this->_in) - && fwrite($this->_in, $bytes)) - { - return ++$this->_sequence; - } - } - - // -- Private methods - - /** - * Establishes a connection to a remote server. - */ - private function _establishSocketConnection() - { - $host = $this->_params['host']; - if (!empty($this->_params['protocol'])) { - $host = $this->_params['protocol'] . '://' . $host; - } - $timeout = 15; - if (!empty($this->_params['timeout'])) { - $timeout = $this->_params['timeout']; - } - $options = array(); - if (!empty($this->_params['sourceIp'])) { - $options['socket']['bindto']=$this->_params['sourceIp'].':0'; - } - $this->_stream = @stream_socket_client($host.':'.$this->_params['port'], $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, stream_context_create($options)); - if (false === $this->_stream) { - throw new Swift_TransportException( - 'Connection could not be established with host ' . $this->_params['host'] . - ' [' . $errstr . ' #' . $errno . ']' - ); - } - if (!empty($this->_params['blocking'])) { - stream_set_blocking($this->_stream, 1); - } else { - stream_set_blocking($this->_stream, 0); - } - stream_set_timeout($this->_stream, $timeout); - $this->_in =& $this->_stream; - $this->_out =& $this->_stream; - } - - /** - * Opens a process for input/output. - */ - private function _establishProcessConnection() - { - $command = $this->_params['command']; - $descriptorSpec = array( - 0 => array('pipe', 'r'), - 1 => array('pipe', 'w'), - 2 => array('pipe', 'w') - ); - $this->_stream = proc_open($command, $descriptorSpec, $pipes); - stream_set_blocking($pipes[2], 0); - if ($err = stream_get_contents($pipes[2])) { - throw new Swift_TransportException( - 'Process could not be started [' . $err . ']' - ); - } - $this->_in =& $pipes[0]; - $this->_out =& $pipes[1]; - } - - private function _getReadConnectionDescription() - { - switch ($this->_params['type']) { - case self::TYPE_PROCESS: - return 'Process '.$this->_params['command']; - break; - - case self::TYPE_SOCKET: - default: - $host = $this->_params['host']; - if (!empty($this->_params['protocol'])) { - $host = $this->_params['protocol'] . '://' . $host; - } - $host.=':'.$this->_params['port']; - - return $host; - break; - } - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/TransportException.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/TransportException.php deleted file mode 100644 index 48e41d1..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/classes/Swift/TransportException.php +++ /dev/null @@ -1,29 +0,0 @@ - - */ -class Swift_Validate -{ - /** - * Grammar Object - * - * @var Swift_Mime_Grammar - */ - private static $grammar = null; - - /** - * Checks if an e-mail address matches the current grammars. - * - * @param string $email - * - * @return boolean - */ - public static function email($email) - { - if (self::$grammar===null) { - self::$grammar = Swift_DependencyContainer::getInstance() - ->lookup('mime.grammar'); - } - - return preg_match( - '/^' . self::$grammar->getDefinition('addr-spec') . '$/D', - $email - ); - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/dependency_maps/cache_deps.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/dependency_maps/cache_deps.php deleted file mode 100644 index e49e8b8..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/dependency_maps/cache_deps.php +++ /dev/null @@ -1,23 +0,0 @@ - register('cache') - -> asAliasOf('cache.array') - - -> register('tempdir') - -> asValue('/tmp') - - -> register('cache.null') - -> asSharedInstanceOf('Swift_KeyCache_NullKeyCache') - - -> register('cache.array') - -> asSharedInstanceOf('Swift_KeyCache_ArrayKeyCache') - -> withDependencies(array('cache.inputstream')) - - -> register('cache.disk') - -> asSharedInstanceOf('Swift_KeyCache_DiskKeyCache') - -> withDependencies(array('cache.inputstream', 'tempdir')) - - -> register('cache.inputstream') - -> asNewInstanceOf('Swift_KeyCache_SimpleKeyCacheInputStream') -; diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/dependency_maps/message_deps.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/dependency_maps/message_deps.php deleted file mode 100644 index 272cb3a..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/dependency_maps/message_deps.php +++ /dev/null @@ -1,9 +0,0 @@ - register('message.message') - -> asNewInstanceOf('Swift_Message') - - -> register('message.mimepart') - -> asNewInstanceOf('Swift_MimePart') -; diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/dependency_maps/mime_deps.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/dependency_maps/mime_deps.php deleted file mode 100644 index 25cd94d..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/dependency_maps/mime_deps.php +++ /dev/null @@ -1,122 +0,0 @@ - register('properties.charset') - -> asValue('utf-8') - - -> register('mime.grammar') - -> asSharedInstanceOf('Swift_Mime_Grammar') - - -> register('mime.message') - -> asNewInstanceOf('Swift_Mime_SimpleMessage') - -> withDependencies(array( - 'mime.headerset', - 'mime.qpcontentencoder', - 'cache', - 'mime.grammar', - 'properties.charset' - )) - - -> register('mime.part') - -> asNewInstanceOf('Swift_Mime_MimePart') - -> withDependencies(array( - 'mime.headerset', - 'mime.qpcontentencoder', - 'cache', - 'mime.grammar', - 'properties.charset' - )) - - -> register('mime.attachment') - -> asNewInstanceOf('Swift_Mime_Attachment') - -> withDependencies(array( - 'mime.headerset', - 'mime.base64contentencoder', - 'cache', - 'mime.grammar' - )) - -> addConstructorValue($swift_mime_types) - - -> register('mime.embeddedfile') - -> asNewInstanceOf('Swift_Mime_EmbeddedFile') - -> withDependencies(array( - 'mime.headerset', - 'mime.base64contentencoder', - 'cache', - 'mime.grammar' - )) - -> addConstructorValue($swift_mime_types) - - -> register('mime.headerfactory') - -> asNewInstanceOf('Swift_Mime_SimpleHeaderFactory') - -> withDependencies(array( - 'mime.qpheaderencoder', - 'mime.rfc2231encoder', - 'mime.grammar', - 'properties.charset' - )) - - -> register('mime.headerset') - -> asNewInstanceOf('Swift_Mime_SimpleHeaderSet') - -> withDependencies(array('mime.headerfactory', 'properties.charset')) - - -> register('mime.qpheaderencoder') - -> asNewInstanceOf('Swift_Mime_HeaderEncoder_QpHeaderEncoder') - -> withDependencies(array('mime.charstream')) - - -> register('mime.base64headerencoder') - -> asNewInstanceOf('Swift_Mime_HeaderEncoder_Base64HeaderEncoder') - -> withDependencies(array('mime.charstream')) - - -> register('mime.charstream') - -> asNewInstanceOf('Swift_CharacterStream_NgCharacterStream') - -> withDependencies(array('mime.characterreaderfactory', 'properties.charset')) - - -> register('mime.bytecanonicalizer') - -> asSharedInstanceOf('Swift_StreamFilters_ByteArrayReplacementFilter') - -> addConstructorValue(array(array(0x0D, 0x0A), array(0x0D), array(0x0A))) - -> addConstructorValue(array(array(0x0A), array(0x0A), array(0x0D, 0x0A))) - - -> register('mime.characterreaderfactory') - -> asSharedInstanceOf('Swift_CharacterReaderFactory_SimpleCharacterReaderFactory') - - -> register('mime.qpcontentencoder') - -> asNewInstanceOf('Swift_Mime_ContentEncoder_QpContentEncoder') - -> withDependencies(array('mime.charstream', 'mime.bytecanonicalizer')) - - -> register('mime.rawcontentencoder') - -> asNewInstanceOf('Swift_Mime_ContentEncoder_RawContentEncoder') - - -> register('mime.nativeqpcontentencoder') - -> asNewInstanceOf('Swift_Mime_ContentEncoder_NativeQpContentEncoder') - - -> register('mime.7bitcontentencoder') - -> asNewInstanceOf('Swift_Mime_ContentEncoder_PlainContentEncoder') - -> addConstructorValue('7bit') - -> addConstructorValue(true) - - -> register('mime.8bitcontentencoder') - -> asNewInstanceOf('Swift_Mime_ContentEncoder_PlainContentEncoder') - -> addConstructorValue('8bit') - -> addConstructorValue(true) - - -> register('mime.base64contentencoder') - -> asSharedInstanceOf('Swift_Mime_ContentEncoder_Base64ContentEncoder') - - -> register('mime.rfc2231encoder') - -> asNewInstanceOf('Swift_Encoder_Rfc2231Encoder') - -> withDependencies(array('mime.charstream')) -; - -// As of PHP 5.4.7, the quoted_printable_encode() function behaves correctly. -// see https://github.com/php/php-src/commit/18bb426587d62f93c54c40bf8535eb8416603629 -if (version_compare(phpversion(), '5.4.7', '>=')) { - Swift_DependencyContainer::getInstance() - ->register('mime.qpcontentencoder') - ->asAliasOf('mime.nativeqpcontentencoder') - ; -} - -unset($swift_mime_types); diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/dependency_maps/transport_deps.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/dependency_maps/transport_deps.php deleted file mode 100644 index f969932..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/dependency_maps/transport_deps.php +++ /dev/null @@ -1,68 +0,0 @@ - register('transport.smtp') - -> asNewInstanceOf('Swift_Transport_EsmtpTransport') - -> withDependencies(array( - 'transport.buffer', - array('transport.authhandler'), - 'transport.eventdispatcher' - )) - - -> register('transport.sendmail') - -> asNewInstanceOf('Swift_Transport_SendmailTransport') - -> withDependencies(array( - 'transport.buffer', - 'transport.eventdispatcher' - )) - - -> register('transport.mail') - -> asNewInstanceOf('Swift_Transport_MailTransport') - -> withDependencies(array('transport.mailinvoker', 'transport.eventdispatcher')) - - -> register('transport.loadbalanced') - -> asNewInstanceOf('Swift_Transport_LoadBalancedTransport') - - -> register('transport.failover') - -> asNewInstanceOf('Swift_Transport_FailoverTransport') - - -> register('transport.spool') - -> asNewInstanceOf('Swift_Transport_SpoolTransport') - -> withDependencies(array('transport.eventdispatcher')) - - -> register('transport.null') - -> asNewInstanceOf('Swift_Transport_NullTransport') - -> withDependencies(array('transport.eventdispatcher')) - - -> register('transport.mailinvoker') - -> asSharedInstanceOf('Swift_Transport_SimpleMailInvoker') - - -> register('transport.buffer') - -> asNewInstanceOf('Swift_Transport_StreamBuffer') - -> withDependencies(array('transport.replacementfactory')) - - -> register('transport.authhandler') - -> asNewInstanceOf('Swift_Transport_Esmtp_AuthHandler') - -> withDependencies(array( - array( - 'transport.crammd5auth', - 'transport.loginauth', - 'transport.plainauth' - ) - )) - - -> register('transport.crammd5auth') - -> asNewInstanceOf('Swift_Transport_Esmtp_Auth_CramMd5Authenticator') - - -> register('transport.loginauth') - -> asNewInstanceOf('Swift_Transport_Esmtp_Auth_LoginAuthenticator') - - -> register('transport.plainauth') - -> asNewInstanceOf('Swift_Transport_Esmtp_Auth_PlainAuthenticator') - - -> register('transport.eventdispatcher') - -> asNewInstanceOf('Swift_Events_SimpleEventDispatcher') - - -> register('transport.replacementfactory') - -> asSharedInstanceOf('Swift_StreamFilters_StringReplacementFilterFactory') -; diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/mime_types.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/mime_types.php deleted file mode 100644 index 3baebb2..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/mime_types.php +++ /dev/null @@ -1,76 +0,0 @@ - 'audio/x-aiff', - 'aiff' => 'audio/x-aiff', - 'avi' => 'video/avi', - 'bmp' => 'image/bmp', - 'bz2' => 'application/x-bz2', - 'csv' => 'text/csv', - 'dmg' => 'application/x-apple-diskimage', - 'doc' => 'application/msword', - 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'eml' => 'message/rfc822', - 'aps' => 'application/postscript', - 'exe' => 'application/x-ms-dos-executable', - 'flv' => 'video/x-flv', - 'gif' => 'image/gif', - 'gz' => 'application/x-gzip', - 'hqx' => 'application/stuffit', - 'htm' => 'text/html', - 'html' => 'text/html', - 'jar' => 'application/x-java-archive', - 'jpeg' => 'image/jpeg', - 'jpg' => 'image/jpeg', - 'm3u' => 'audio/x-mpegurl', - 'm4a' => 'audio/mp4', - 'mdb' => 'application/x-msaccess', - 'mid' => 'audio/midi', - 'midi' => 'audio/midi', - 'mov' => 'video/quicktime', - 'mp3' => 'audio/mpeg', - 'mp4' => 'video/mp4', - 'mpeg' => 'video/mpeg', - 'mpg' => 'video/mpeg', - 'odg' => 'vnd.oasis.opendocument.graphics', - 'odp' => 'vnd.oasis.opendocument.presentation', - 'odt' => 'vnd.oasis.opendocument.text', - 'ods' => 'vnd.oasis.opendocument.spreadsheet', - 'ogg' => 'audio/ogg', - 'pdf' => 'application/pdf', - 'png' => 'image/png', - 'ppt' => 'application/vnd.ms-powerpoint', - 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - 'ps' => 'application/postscript', - 'rar' => 'application/x-rar-compressed', - 'rtf' => 'application/rtf', - 'tar' => 'application/x-tar', - 'sit' => 'application/x-stuffit', - 'svg' => 'image/svg+xml', - 'tif' => 'image/tiff', - 'tiff' => 'image/tiff', - 'ttf' => 'application/x-font-truetype', - 'txt' => 'text/plain', - 'vcf' => 'text/x-vcard', - 'wav' => 'audio/wav', - 'wma' => 'audio/x-ms-wma', - 'wmv' => 'audio/x-ms-wmv', - 'xls' => 'application/excel', - 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'xml' => 'application/xml', - 'zip' => 'application/zip' -); diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/preferences.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/preferences.php deleted file mode 100644 index 91b313b..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/preferences.php +++ /dev/null @@ -1,29 +0,0 @@ -setCharset('utf-8'); - -// Without these lines the default caching mechanism is "array" but this uses a lot of memory. -// If possible, use a disk cache to enable attaching large attachments etc. -// You can override the default temporary directory by setting the TMPDIR environment variable. - -// The @ operator in front of is_writable calls is to avoid PHP warnings -// when using open_basedir -$tmp = getenv('TMPDIR'); -if ($tmp && @is_writable($tmp)) { - Swift_Preferences::getInstance() - ->setTempDir($tmp) - ->setCacheType('disk'); -} elseif (function_exists('sys_get_temp_dir') && @is_writable(sys_get_temp_dir())) { - Swift_Preferences::getInstance() - ->setTempDir(sys_get_temp_dir()) - ->setCacheType('disk'); -} - -Swift_Preferences::getInstance()->setQPDotEscape(false); diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/swift_init.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/swift_init.php deleted file mode 100644 index 5897e6f..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/vendors/swift/lib/swift_init.php +++ /dev/null @@ -1,28 +0,0 @@ - - -404 Page Not Found - - - - -
-

404 Page Not found!

- -
- - \ No newline at end of file diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/app/views/mail.php b/mail.oopzy.com/code/var/mail.oopzy.com/app/views/mail.php deleted file mode 100644 index 4a2b74b..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/app/views/mail.php +++ /dev/null @@ -1,382 +0,0 @@ - - - - -
-
-
- @ - -
-
-
- -
-
-
-
diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/combined.css.php b/mail.oopzy.com/code/var/mail.oopzy.com/assets/combined.css.php deleted file mode 100755 index 74e3e01..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/combined.css.php +++ /dev/null @@ -1,47 +0,0 @@ -= $last) { - header('HTTP/1.0 304 Not Modified'); - exit; -} - -// TODO: consider caching the results of combo + minify - -include_once('cssmin-v2.0.2.2.php'); -$output = ''; - -$output .= "\n/********* jquery.ui.css *********/\n"; -$output .= file_get_contents('vendor/jquery.ui/css/jquery.ui.css'); - -$output .= "\n/********* bootstrap *********/\n"; -$output .= file_get_contents('vendor/bootstrap/css/bootstrap.css'); - -$output .= "\n/********* bootstrap *********/\n"; -$output .= file_get_contents('vendor/bootstrap/css/bootstrap-responsive.css'); - -$minify = (array_key_exists('r', $_REQUEST) && 'dev' != substr($_REQUEST['r'],0,3)); // ability to view source unpacked -if ($minify && class_exists('CssMin')) -{ - $output = CssMin::minify($output); -} - -// http://www.w3.org/International/questions/qa-css-charset.en.php -$output = "@charset \"UTF-8\";\n" . $output; - -// we'll never have a release go longer than 90 days. never. ever ever. haha. -$expires = 60 * 60 * 24 * 90; - -// send the right headers -session_cache_limiter('public'); -//public -header("Content-Type: text/css"); -header('Pragma: public'); -header('Cache-Control: max-age=' . $expires); -header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT'); -header("Last-Modified: " . gmdate("D, d M Y H:i:s", $last) . " GMT"); -header("Content-Length: " . strlen($output)); - -echo $output; -exit; diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/combined.js.php b/mail.oopzy.com/code/var/mail.oopzy.com/assets/combined.js.php deleted file mode 100755 index 85f3207..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/combined.js.php +++ /dev/null @@ -1,49 +0,0 @@ -= $last) { - header('HTTP/1.0 304 Not Modified'); - exit; -} - -// TODO: consider caching the results of combo + minify - -include_once('vendor/jsmin-v1.1.1.php'); - -$output=''; - -$minify = (array_key_exists('r', $_REQUEST) && 'dev' != substr($_REQUEST['r'],0,3)); // ability to view source unpacked -if ($minify && class_exists('JSMin')) -{ - $output = JSMin::minify($output); -} - -// add in already minified libraries -// PHPJS needs to be first -$output .= file_get_contents('vendor/jquery/jquery.js')."\n"; -$output .= file_get_contents('vendor/jquery.ui/jquery.ui.js')."\n"; -$output = file_get_contents('vendor/php.default.namespaced.min.js')."\n".$output."\n"; -$output .= file_get_contents('vendor/jquery/plugins/jquery.csv.min.r34.js')."\n"; -$output .= file_get_contents('vendor/jquery/plugins/jquery.dataTables.min.1.6.2.js'); -$output .= file_get_contents('vendor/jquery/plugins/jquery.autocomplete.js'); -$output .= file_get_contents('vendor/underscore.js'); -$output .= file_get_contents('vendor/oopzy.js'); - -// we'll never have a release go longer than 90 days. never. ever ever. haha. -$expires = 60 * 60 * 24 * 90; - - - -// send the right headers -session_cache_limiter('public'); -//public -header("Content-Type: application/javascript"); -header('Pragma: public'); -header('Cache-Control: max-age=' . $expires); -header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT'); -header("Last-Modified: " . gmdate("D, d M Y H:i:s", $last) . " GMT"); -//header("Content-Length: " . strlen($output)); - -echo $output; -exit; diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/cssmin-v2.0.2.2.php b/mail.oopzy.com/code/var/mail.oopzy.com/assets/cssmin-v2.0.2.2.php deleted file mode 100755 index e93000f..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/cssmin-v2.0.2.2.php +++ /dev/null @@ -1,1746 +0,0 @@ - - * @copyright 2008 - 2011 Joe Scylla - * @license http://opensource.org/licenses/mit-license.php MIT License - * @version 2.0.2.2 (2011-03-28) - */ -class CssMin - { - /** - * Null-Token. - * - * @var integer - */ - const T_NULL = 0; - /** - * State: Is in document - * - * @var integer - */ - const T_DOCUMENT = 1; - /** - * Token: Comment - * - * @var integer - */ - const T_COMMENT = 2; - /** - * Token: Generic at-rule - * - * @var integer - */ - const T_AT_RULE = 3; - /** - * Token: Generic at-rule - * - * @var integer - */ - const T_AT_IMPORT = 22; - /** - * Token: Start of @media block - * - * @var integer - */ - const T_AT_MEDIA_START = 4; - /** - * State: Is in @media block - * - * @var integer - */ - const T_AT_MEDIA = 5; - /** - * Token: End of @media block - * - * @var integer - */ - const T_AT_MEDIA_END = 6; - /** - * Token: Start of @font-face block - * - * @var integer - */ - const T_AT_FONT_FACE_START = 7; - /** - * State: Is in @font-face block - * - * @var integer - */ - const T_AT_FONT_FACE = 8; - /** - * Token: @font-face declaration - * - * @var integer - */ - const T_FONT_FACE_DECLARATION = 9; - /** - * Token: End of @font-face block - * - * @var integer - */ - const T_AT_FONT_FACE_END = 10; - /** - * Token: Start of @page block - * - * @var integer - */ - const T_AT_PAGE_START = 11; - /** - * State: Is in @page block - * - * @var integer - */ - const T_AT_PAGE = 12; - /** - * Token: @page declaration - * - * @var integer - */ - const T_PAGE_DECLARATION = 13; - /** - * Token: End of @page block - * - * @var integer - */ - const T_AT_PAGE_END = 14; - /** - * Token: Start of ruleset - * - * @var integer - */ - const T_RULESET_START = 15; - /** - * Token: Ruleset selectors - * - * @var integer - */ - const T_SELECTORS = 16; - /** - * Token: Start of declarations - * - * @var integer - */ - const T_DECLARATIONS_START = 17; - /** - * State: Is in declarations - * - * @var integer - */ - const T_DECLARATIONS = 18; - /** - * Token: Declaration - * - * @var integer - */ - const T_DECLARATION = 19; - /** - * Token: End of declarations - * - * @var integer - */ - const T_DECLARATIONS_END = 20; - /** - * Token: End of ruleset - * - * @var integer - */ - const T_RULESET_END = 21; - /** - * Token: Start of @variables block - * - * @var integer - */ - const T_AT_VARIABLES_START = 100; - /** - * State: Is in @variables block - * - * @var integer - */ - const T_AT_VARIABLES = 101; - /** - * Token: @variables declaration - * - * @var integer - */ - const T_VARIABLE_DECLARATION = 102; - /** - * Token: End of @variables block - * - * @var integer - */ - const T_AT_VARIABLES_END = 103; - /** - * State: Is in string - * - * @var integer - */ - const T_STRING = 253; - /** - * State: Is in url string property - * - * @var integer - */ - const T_STRING_URL = 254; - /** - * State: Is in expression string property - * - * @var integer - */ - const T_STRING_EXPRESSION = 255; - /** - * Default configuration. - * - * @var array - */ - private static $defaultConfiguration = array - ( - "remove-empty-blocks" => true, - "remove-empty-rulesets" => true, - "remove-last-semicolons" => true, - "remove-comments" => true, - "convert-css3-properties" => false, - "convert-font-weight-values" => false, - "convert-named-color-values" => false, - "convert-hsl-color-values" => false, - "convert-rgb-color-values" => false, - "compress-color-values" => false, - "compress-unit-values" => false, - "emulate-css3-variables" => true, - "import-imports" => false, - "import-base-path" => null, - "import-remove-invalid" => false - ); - /** - * Css color transformations table. Used to convert named colors to hexadecimal notation. - * - * @var array - */ - private static $colorTransformations = array - ( - "aliceblue" => "#f0f8ff", - "antiquewhite" => "#faebd7", - "aqua" => "#0ff", - "aquamarine" => "#7fffd4", - "azure" => "#f0ffff", - "beige" => "#f5f5dc", - "black" => "#000", - "blue" => "#00f", - "blueviolet" => "#8a2be2", - "brown" => "#a52a2a", - "burlywood" => "#deb887", - "cadetblue" => "#5f9ea0", - "chartreuse" => "#7fff00", - "chocolate" => "#d2691e", - "coral" => "#ff7f50", - "cornflowerblue" => "#6495ed", - "cornsilk" => "#fff8dc", - "crimson" => "#dc143c", - "darkblue" => "#00008b", - "darkcyan" => "#008b8b", - "darkgoldenrod" => "#b8860b", - "darkgray" => "#a9a9a9", - "darkgreen" => "#006400", - "darkkhaki" => "#bdb76b", - "darkmagenta" => "#8b008b", - "darkolivegreen" => "#556b2f", - "darkorange" => "#ff8c00", - "darkorchid" => "#9932cc", - "darkred" => "#8b0000", - "darksalmon" => "#e9967a", - "darkseagreen" => "#8fbc8f", - "darkslateblue" => "#483d8b", - "darkslategray" => "#2f4f4f", - "darkturquoise" => "#00ced1", - "darkviolet" => "#9400d3", - "deeppink" => "#ff1493", - "deepskyblue" => "#00bfff", - "dimgray" => "#696969", - "dodgerblue" => "#1e90ff", - "firebrick" => "#b22222", - "floralwhite" => "#fffaf0", - "forestgreen" => "#228b22", - "fuchsia" => "#f0f", - "gainsboro" => "#dcdcdc", - "ghostwhite" => "#f8f8ff", - "gold" => "#ffd700", - "goldenrod" => "#daa520", - "gray" => "#808080", - "green" => "#008000", - "greenyellow" => "#adff2f", - "honeydew" => "#f0fff0", - "hotpink" => "#ff69b4", - "indianred" => "#cd5c5c", - "indigo" => "#4b0082", - "ivory" => "#fffff0", - "khaki" => "#f0e68c", - "lavender" => "#e6e6fa", - "lavenderblush" => "#fff0f5", - "lawngreen" => "#7cfc00", - "lemonchiffon" => "#fffacd", - "lightblue" => "#add8e6", - "lightcoral" => "#f08080", - "lightcyan" => "#e0ffff", - "lightgoldenrodyellow" => "#fafad2", - "lightgreen" => "#90ee90", - "lightgrey" => "#d3d3d3", - "lightpink" => "#ffb6c1", - "lightsalmon" => "#ffa07a", - "lightseagreen" => "#20b2aa", - "lightskyblue" => "#87cefa", - "lightslategray" => "#789", - "lightsteelblue" => "#b0c4de", - "lightyellow" => "#ffffe0", - "lime" => "#0f0", - "limegreen" => "#32cd32", - "linen" => "#faf0e6", - "maroon" => "#800000", - "mediumaquamarine" => "#66cdaa", - "mediumblue" => "#0000cd", - "mediumorchid" => "#ba55d3", - "mediumpurple" => "#9370db", - "mediumseagreen" => "#3cb371", - "mediumslateblue" => "#7b68ee", - "mediumspringgreen" => "#00fa9a", - "mediumturquoise" => "#48d1cc", - "mediumvioletred" => "#c71585", - "midnightblue" => "#191970", - "mintcream" => "#f5fffa", - "mistyrose" => "#ffe4e1", - "moccasin" => "#ffe4b5", - "navajowhite" => "#ffdead", - "navy" => "#000080", - "oldlace" => "#fdf5e6", - "olive" => "#808000", - "olivedrab" => "#6b8e23", - "orange" => "#ffa500", - "orangered" => "#ff4500", - "orchid" => "#da70d6", - "palegoldenrod" => "#eee8aa", - "palegreen" => "#98fb98", - "paleturquoise" => "#afeeee", - "palevioletred" => "#db7093", - "papayawhip" => "#ffefd5", - "peachpuff" => "#ffdab9", - "peru" => "#cd853f", - "pink" => "#ffc0cb", - "plum" => "#dda0dd", - "powderblue" => "#b0e0e6", - "purple" => "#800080", - "red" => "#f00", - "rosybrown" => "#bc8f8f", - "royalblue" => "#4169e1", - "saddlebrown" => "#8b4513", - "salmon" => "#fa8072", - "sandybrown" => "#f4a460", - "seagreen" => "#2e8b57", - "seashell" => "#fff5ee", - "sienna" => "#a0522d", - "silver" => "#c0c0c0", - "skyblue" => "#87ceeb", - "slateblue" => "#6a5acd", - "slategray" => "#708090", - "snow" => "#fffafa", - "springgreen" => "#00ff7f", - "steelblue" => "#4682b4", - "tan" => "#d2b48c", - "teal" => "#008080", - "thistle" => "#d8bfd8", - "tomato" => "#ff6347", - "turquoise" => "#40e0d0", - "violet" => "#ee82ee", - "wheat" => "#f5deb3", - "white" => "#fff", - "whitesmoke" => "#f5f5f5", - "yellow" => "#ff0", - "yellowgreen" => "#9acd32" - ); - /** - * - * @var array - */ - private static $fontWeightTransformations = array - ( - "normal" => "400", - "bold" => "700" - ); - /** - * Css property transformations table. Used to convert CSS3 and proprietary properties to the browser-specific counterparts. - * - * @var array - */ - private static $propertyTransformations = array - ( - // Property Array(Mozilla, Webkit, Opera, Internet Explorer); NULL values are placeholders and will get ignored - "animation" => array(null, "-webkit-animation", null, null), - "animation-delay" => array(null, "-webkit-animation-delay", null, null), - "animation-direction" => array(null, "-webkit-animation-direction", null, null), - "animation-duration" => array(null, "-webkit-animation-duration", null, null), - "animation-fill-mode" => array(null, "-webkit-animation-fill-mode", null, null), - "animation-iteration-count" => array(null, "-webkit-animation-iteration-count", null, null), - "animation-name" => array(null, "-webkit-animation-name", null, null), - "animation-play-state" => array(null, "-webkit-animation-play-state", null, null), - "animation-timing-function" => array(null, "-webkit-animation-timing-function", null, null), - "appearance" => array("-moz-appearance", "-webkit-appearance", null, null), - "backface-visibility" => array(null, "-webkit-backface-visibility", null, null), - "background-clip" => array(null, "-webkit-background-clip", null, null), - "background-composite" => array(null, "-webkit-background-composite", null, null), - "background-inline-policy" => array("-moz-background-inline-policy", null, null, null), - "background-origin" => array(null, "-webkit-background-origin", null, null), - "background-position-x" => array(null, null, null, "-ms-background-position-x"), - "background-position-y" => array(null, null, null, "-ms-background-position-y"), - "background-size" => array(null, "-webkit-background-size", null, null), - "behavior" => array(null, null, null, "-ms-behavior"), - "binding" => array("-moz-binding", null, null, null), - "border-after" => array(null, "-webkit-border-after", null, null), - "border-after-color" => array(null, "-webkit-border-after-color", null, null), - "border-after-style" => array(null, "-webkit-border-after-style", null, null), - "border-after-width" => array(null, "-webkit-border-after-width", null, null), - "border-before" => array(null, "-webkit-border-before", null, null), - "border-before-color" => array(null, "-webkit-border-before-color", null, null), - "border-before-style" => array(null, "-webkit-border-before-style", null, null), - "border-before-width" => array(null, "-webkit-border-before-width", null, null), - "border-border-bottom-colors" => array("-moz-border-bottom-colors", null, null, null), - "border-bottom-left-radius" => array("-moz-border-radius-bottomleft", "-webkit-border-bottom-left-radius", null, null), - "border-bottom-right-radius" => array("-moz-border-radius-bottomright", "-webkit-border-bottom-right-radius", null, null), - "border-end" => array("-moz-border-end", "-webkit-border-end", null, null), - "border-end-color" => array("-moz-border-end-color", "-webkit-border-end-color", null, null), - "border-end-style" => array("-moz-border-end-style", "-webkit-border-end-style", null, null), - "border-end-width" => array("-moz-border-end-width", "-webkit-border-end-width", null, null), - "border-fit" => array(null, "-webkit-border-fit", null, null), - "border-horizontal-spacing" => array(null, "-webkit-border-horizontal-spacing", null, null), - "border-image" => array("-moz-border-image", "-webkit-border-image", null, null), - "border-left-colors" => array("-moz-border-left-colors", null, null, null), - "border-radius" => array("-moz-border-radius", "-webkit-border-radius", null, null), - "border-border-right-colors" => array("-moz-border-right-colors", null, null, null), - "border-start" => array("-moz-border-start", "-webkit-border-start", null, null), - "border-start-color" => array("-moz-border-start-color", "-webkit-border-start-color", null, null), - "border-start-style" => array("-moz-border-start-style", "-webkit-border-start-style", null, null), - "border-start-width" => array("-moz-border-start-width", "-webkit-border-start-width", null, null), - "border-top-colors" => array("-moz-border-top-colors", null, null, null), - "border-top-left-radius" => array("-moz-border-radius-topleft", "-webkit-border-top-left-radius", null, null), - "border-top-right-radius" => array("-moz-border-radius-topright", "-webkit-border-top-right-radius", null, null), - "border-vertical-spacing" => array(null, "-webkit-border-vertical-spacing", null, null), - "box-align" => array("-moz-box-align", "-webkit-box-align", null, null), - "box-direction" => array("-moz-box-direction", "-webkit-box-direction", null, null), - "box-flex" => array("-moz-box-flex", "-webkit-box-flex", null, null), - "box-flex-group" => array(null, "-webkit-box-flex-group", null, null), - "box-flex-lines" => array(null, "-webkit-box-flex-lines", null, null), - "box-ordinal-group" => array("-moz-box-ordinal-group", "-webkit-box-ordinal-group", null, null), - "box-orient" => array("-moz-box-orient", "-webkit-box-orient", null, null), - "box-pack" => array("-moz-box-pack", "-webkit-box-pack", null, null), - "box-reflect" => array(null, "-webkit-box-reflect", null, null), - "box-shadow" => array("-moz-box-shadow", "-webkit-box-shadow", null, null), - "box-sizing" => array("-moz-box-sizing", null, null, null), - "color-correction" => array(null, "-webkit-color-correction", null, null), - "column-break-after" => array(null, "-webkit-column-break-after", null, null), - "column-break-before" => array(null, "-webkit-column-break-before", null, null), - "column-break-inside" => array(null, "-webkit-column-break-inside", null, null), - "column-count" => array("-moz-column-count", "-webkit-column-count", null, null), - "column-gap" => array("-moz-column-gap", "-webkit-column-gap", null, null), - "column-rule" => array("-moz-column-rule", "-webkit-column-rule", null, null), - "column-rule-color" => array("-moz-column-rule-color", "-webkit-column-rule-color", null, null), - "column-rule-style" => array("-moz-column-rule-style", "-webkit-column-rule-style", null, null), - "column-rule-width" => array("-moz-column-rule-width", "-webkit-column-rule-width", null, null), - "column-span" => array(null, "-webkit-column-span", null, null), - "column-width" => array("-moz-column-width", "-webkit-column-width", null, null), - "columns" => array(null, "-webkit-columns", null, null), - "filter" => array(null, null, null, "-ms-filter"), - "float-edge" => array("-moz-float-edge", null, null, null), - "font-feature-settings" => array("-moz-font-feature-settings", null, null, null), - "font-language-override" => array("-moz-font-language-override", null, null, null), - "font-size-delta" => array(null, "-webkit-font-size-delta", null, null), - "font-smoothing" => array(null, "-webkit-font-smoothing", null, null), - "force-broken-image-icon" => array("-moz-force-broken-image-icon", null, null, null), - "highlight" => array(null, "-webkit-highlight", null, null), - "hyphenate-character" => array(null, "-webkit-hyphenate-character", null, null), - "hyphenate-locale" => array(null, "-webkit-hyphenate-locale", null, null), - "hyphens" => array(null, "-webkit-hyphens", null, null), - "force-broken-image-icon" => array("-moz-image-region", null, null, null), - "ime-mode" => array(null, null, null, "-ms-ime-mode"), - "interpolation-mode" => array(null, null, null, "-ms-interpolation-mode"), - "layout-flow" => array(null, null, null, "-ms-layout-flow"), - "layout-grid" => array(null, null, null, "-ms-layout-grid"), - "layout-grid-char" => array(null, null, null, "-ms-layout-grid-char"), - "layout-grid-line" => array(null, null, null, "-ms-layout-grid-line"), - "layout-grid-mode" => array(null, null, null, "-ms-layout-grid-mode"), - "layout-grid-type" => array(null, null, null, "-ms-layout-grid-type"), - "line-break" => array(null, "-webkit-line-break", null, "-ms-line-break"), - "line-clamp" => array(null, "-webkit-line-clamp", null, null), - "line-grid-mode" => array(null, null, null, "-ms-line-grid-mode"), - "logical-height" => array(null, "-webkit-logical-height", null, null), - "logical-width" => array(null, "-webkit-logical-width", null, null), - "margin-after" => array(null, "-webkit-margin-after", null, null), - "margin-after-collapse" => array(null, "-webkit-margin-after-collapse", null, null), - "margin-before" => array(null, "-webkit-margin-before", null, null), - "margin-before-collapse" => array(null, "-webkit-margin-before-collapse", null, null), - "margin-bottom-collapse" => array(null, "-webkit-margin-bottom-collapse", null, null), - "margin-collapse" => array(null, "-webkit-margin-collapse", null, null), - "margin-end" => array("-moz-margin-end", "-webkit-margin-end", null, null), - "margin-start" => array("-moz-margin-start", "-webkit-margin-start", null, null), - "margin-top-collapse" => array(null, "-webkit-margin-top-collapse", null, null), - "marquee " => array(null, "-webkit-marquee", null, null), - "marquee-direction" => array(null, "-webkit-marquee-direction", null, null), - "marquee-increment" => array(null, "-webkit-marquee-increment", null, null), - "marquee-repetition" => array(null, "-webkit-marquee-repetition", null, null), - "marquee-speed" => array(null, "-webkit-marquee-speed", null, null), - "marquee-style" => array(null, "-webkit-marquee-style", null, null), - "mask" => array(null, "-webkit-mask", null, null), - "mask-attachment" => array(null, "-webkit-mask-attachment", null, null), - "mask-box-image" => array(null, "-webkit-mask-box-image", null, null), - "mask-clip" => array(null, "-webkit-mask-clip", null, null), - "mask-composite" => array(null, "-webkit-mask-composite", null, null), - "mask-image" => array(null, "-webkit-mask-image", null, null), - "mask-origin" => array(null, "-webkit-mask-origin", null, null), - "mask-position" => array(null, "-webkit-mask-position", null, null), - "mask-position-x" => array(null, "-webkit-mask-position-x", null, null), - "mask-position-y" => array(null, "-webkit-mask-position-y", null, null), - "mask-repeat" => array(null, "-webkit-mask-repeat", null, null), - "mask-repeat-x" => array(null, "-webkit-mask-repeat-x", null, null), - "mask-repeat-y" => array(null, "-webkit-mask-repeat-y", null, null), - "mask-size" => array(null, "-webkit-mask-size", null, null), - "match-nearest-mail-blockquote-color" => array(null, "-webkit-match-nearest-mail-blockquote-color", null, null), - "max-logical-height" => array(null, "-webkit-max-logical-height", null, null), - "max-logical-width" => array(null, "-webkit-max-logical-width", null, null), - "min-logical-height" => array(null, "-webkit-min-logical-height", null, null), - "min-logical-width" => array(null, "-webkit-min-logical-width", null, null), - "object-fit" => array(null, null, "-o-object-fit", null), - "object-position" => array(null, null, "-o-object-position", null), - "opacity" => array(array(__CLASS__, "_opacityTransformation")), - "outline-radius" => array("-moz-outline-radius", null, null, null), - "outline-bottom-left-radius" => array("-moz-outline-radius-bottomleft", null, null, null), - "outline-bottom-right-radius" => array("-moz-outline-radius-bottomright", null, null, null), - "outline-top-left-radius" => array("-moz-outline-radius-topleft", null, null, null), - "outline-top-right-radius" => array("-moz-outline-radius-topright", null, null, null), - "padding-after" => array(null, "-webkit-padding-after", null, null), - "padding-before" => array(null, "-webkit-padding-before", null, null), - "padding-end" => array("-moz-padding-end", "-webkit-padding-end", null, null), - "padding-start" => array("-moz-padding-start", "-webkit-padding-start", null, null), - "perspective" => array(null, "-webkit-perspective", null, null), - "perspective-origin" => array(null, "-webkit-perspective-origin", null, null), - "perspective-origin-x" => array(null, "-webkit-perspective-origin-x", null, null), - "perspective-origin-y" => array(null, "-webkit-perspective-origin-y", null, null), - "rtl-ordering" => array(null, "-webkit-rtl-ordering", null, null), - "scrollbar-3dlight-color" => array(null, null, null, "-ms-scrollbar-3dlight-color"), - "scrollbar-arrow-color" => array(null, null, null, "-ms-scrollbar-arrow-color"), - "scrollbar-base-color" => array(null, null, null, "-ms-scrollbar-base-color"), - "scrollbar-darkshadow-color" => array(null, null, null, "-ms-scrollbar-darkshadow-color"), - "scrollbar-face-color" => array(null, null, null, "-ms-scrollbar-face-color"), - "scrollbar-highlight-color" => array(null, null, null, "-ms-scrollbar-highlight-color"), - "scrollbar-shadow-color" => array(null, null, null, "-ms-scrollbar-shadow-color"), - "scrollbar-track-color" => array(null, null, null, "-ms-scrollbar-track-color"), - "stack-sizing" => array("-moz-stack-sizing", null, null, null), - "svg-shadow" => array(null, "-webkit-svg-shadow", null, null), - "tab-size" => array("-moz-tab-size", null, "-o-tab-size", null), - "table-baseline" => array(null, null, "-o-table-baseline", null), - "text-align-last" => array(null, null, null, "-ms-text-align-last"), - "text-autospace" => array(null, null, null, "-ms-text-autospace"), - "text-combine" => array(null, "-webkit-text-combine", null, null), - "text-decorations-in-effect" => array(null, "-webkit-text-decorations-in-effect", null, null), - "text-emphasis" => array(null, "-webkit-text-emphasis", null, null), - "text-emphasis-color" => array(null, "-webkit-text-emphasis-color", null, null), - "text-emphasis-position" => array(null, "-webkit-text-emphasis-position", null, null), - "text-emphasis-style" => array(null, "-webkit-text-emphasis-style", null, null), - "text-fill-color" => array(null, "-webkit-text-fill-color", null, null), - "text-justify" => array(null, null, null, "-ms-text-justify"), - "text-kashida-space" => array(null, null, null, "-ms-text-kashida-space"), - "text-overflow" => array(null, null, "-o-text-overflow", "-ms-text-overflow"), - "text-security" => array(null, "-webkit-text-security", null, null), - "text-size-adjust" => array(null, "-webkit-text-size-adjust", null, "-ms-text-size-adjust"), - "text-stroke" => array(null, "-webkit-text-stroke", null, null), - "text-stroke-color" => array(null, "-webkit-text-stroke-color", null, null), - "text-stroke-width" => array(null, "-webkit-text-stroke-width", null, null), - "text-underline-position" => array(null, null, null, "-ms-text-underline-position"), - "transform" => array("-moz-transform", "-webkit-transform", "-o-transform", null), - "transform-origin" => array("-moz-transform-origin", "-webkit-transform-origin", "-o-transform-origin", null), - "transform-origin-x" => array(null, "-webkit-transform-origin-x", null, null), - "transform-origin-y" => array(null, "-webkit-transform-origin-y", null, null), - "transform-origin-z" => array(null, "-webkit-transform-origin-z", null, null), - "transform-style" => array(null, "-webkit-transform-style", null, null), - "transition" => array("-moz-transition", "-webkit-transition", "-o-transition", null), - "transition-delay" => array("-moz-transition-delay", "-webkit-transition-delay", "-o-transition-delay", null), - "transition-duration" => array("-moz-transition-duration", "-webkit-transition-duration", "-o-transition-duration", null), - "transition-property" => array("-moz-transition-property", "-webkit-transition-property", "-o-transition-property", null), - "transition-timing-function" => array("-moz-transition-timing-function", "-webkit-transition-timing-function", "-o-transition-timing-function", null), - "user-drag" => array(null, "-webkit-user-drag", null, null), - "user-focus" => array("-moz-user-focus", null, null, null), - "user-input" => array("-moz-user-input", null, null, null), - "user-modify" => array("-moz-user-modify", "-webkit-user-modify", null, null), - "user-select" => array("-moz-user-select", "-webkit-user-select", null, null), - "white-space" => array(array(__CLASS__, "_whiteSpacePreWrapTransformation")), - "window-shadow" => array("-moz-window-shadow", null, null, null), - "word-break" => array(null, null, null, "-ms-word-break"), - "word-wrap" => array(null, null, null, "-ms-word-wrap"), - "writing-mode" => array(null, "-webkit-writing-mode", null, "-ms-writing-mode"), - "zoom" => array(null, null, null, "-ms-zoom") - ); - /** - * Minifies the Css. - * - * @param string $css Css as string - * @param array $config {@link http://code.google.com/p/cssmin/wiki/Configuration Configuration} as array [optional] - * @return string Minified css - */ - public static function minify($css, $config = array()) - { - $tokens = self::parse($css); - // Normalize configuration parameters - if (count($config) > 0) - { - $config = array_combine(array_map("trim", array_map("strtolower", array_keys($config))), array_values($config)); - } - $config = array_merge(self::$defaultConfiguration, $config); - // Minification options/variables - $sRemoveEmptyBlocks = $config["remove-empty-blocks"]; - $sRemoveEmptyRulesets = $config["remove-empty-rulesets"]; - $sRemoveLastSemicolon = $config["remove-last-semicolons"]; - $sRemoveComments = $config["remove-comments"]; - $sConvertCss3Properties = $config["convert-css3-properties"]; - $sCss3Variables = array(); - $sConvertFontWeightValues = $config["convert-font-weight-values"]; - $rConvertFontWeightValues = "/(^|\s)+(normal|bold)(\s|$)+/ie"; - $rConvertFontWeightValuesR = "'\\1'.self::\$fontWeightTransformations['\\2'].'\\3'"; - $sConvertNamedColorValues = $config["convert-named-color-values"]; - $rConvertNamedColorValues = "/(^|\s)+(" . implode("|", array_keys(self::$colorTransformations)) . ")(\s|$)+/ie"; - $rConvertNamedColorValuesR = "'\\1'.self::\$colorTransformations['\\2'].'\\3'"; - $sConvertRgbColorValues = $config["convert-rgb-color-values"]; - $rConvertRgbColorValues = "/rgb\s*\(\s*([0-9%]+)\s*,\s*([0-9%]+)\s*,\s*([0-9%]+)\s*\)/iS"; - $sConvertHslColorValues = $config["convert-rgb-color-values"]; - $rConvertHslColorValues = "/^hsl\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*%\s*,\s*([0-9]+)\s*%\s*\)/iS"; - $sCompressColorValues = $config["compress-color-values"]; - $rCompressColorValues = "/\#([0-9a-f]{6})/iS"; - $sCompressUnitValues = $config["compress-unit-values"]; - $rCompressUnitValues1 = "/(^| |-)0\.([0-9]+?)(0+)?(%|em|ex|px|in|cm|mm|pt|pc)/iS"; - $rCompressUnitValues1R = "\${1}.\${2}\${4}"; - $rCompressUnitValues2 = "/(^| )-?(\.?)0(%|em|ex|px|in|cm|mm|pt|pc)/iS"; - $rCompressUnitValues2R = "\${1}0"; - $sEmulateCcss3Variables = $config["emulate-css3-variables"]; - $sImportImports = $config["import-imports"]; - $sImportBasePath = $config["import-base-path"]; - $sImportRemoveInvalid = $config["import-remove-invalid"]; - $sImportStartBlockTokens = array(self::T_AT_MEDIA_START, self::T_AT_FONT_FACE_START, self::T_AT_PAGE_START); - $sImportEndBlockTokens = array(self::T_AT_MEDIA_END, self::T_AT_FONT_FACE_END, self::T_AT_PAGE_END); - $sImportStatementTokens = array(self::T_AT_RULE, self::T_AT_IMPORT); - $sImportMediaEndToken = array(self::T_AT_MEDIA_END); - $sImportImportedFiles = array(); - $sRemoveTokens = array_filter(array(self::T_NULL, ($sRemoveComments ? self::T_COMMENT : false))); - - /* - * Import @import at-rules. - * - * If the @import at-rule defines one or more media type the imported tokens wil get wrapped into T_AT_MEDIA_START - * and T_AT_MEDIA_END token. @font-face, @media and @page at-rule blocks and at-rule statements will get excluded - * of the wraping. - * - * Additional @media at-rule blocks with media types not defined in the @import at-rule have to get removed. - * Browsers ignore @media at-rule block with media types incompatible to the media types defined in the @import - * at-rule. - * - * Also @import rules require special treatment. If a included @import at-rule has no media type or only the - * "all" media type defined the media type of the @import at-rule will get set to the ones defined in the parent - * @import at-rule. Media types not defined in the parent @import at-rule will get filtered. @import at-rule - * with not matching media types will get removed. - * - * For compression if a @media at-rule block is defined the same media type as the @import at-rule the - * T_AT_MEDIA_START and T_AT_MEDIA_END tokens will get removed. - */ - if ($sImportImports && is_dir($sImportBasePath)) - { - $importFile = ""; - $importTokens = array(); - $importMediaStartToken = array(self::T_NULL); - $importBlocks = array(); - for($i = 0, $l = count($tokens); $i < $l; $i++) - { - if ($tokens[$i][0] == self::T_AT_IMPORT && file_exists($sImportBasePath . $tokens[$i][1])) - { - $importFile = $sImportBasePath . $tokens[$i][1]; - // Import file already imported; remove this @import at-rule to prevent any recursion - if (in_array($importFile, $sImportImportedFiles)) - { - $tokens[$i] = array(self::T_NULL); - } - else - { - $sImportImportedFiles[] = $sImportBasePath . $tokens[$i][1]; - $importTokens = self::parse(file_get_contents($importFile)); - // The @import at-rule has media types defined requires special handling - if (count($tokens[$i][2]) > 0 && !(count($tokens[$i][2]) == 1 && $tokens[$i][2][0] == "all")) - { - // Create T_AT_MEDIA_START token used for wrapping and array for blocks - $importMediaStartToken = array(self::T_AT_MEDIA_START, $tokens[$i][2]); - $importBlocks = array(); - // Filter or set media types of @import at-rule or remove the @import at-rule if no media type is matching the parent @import at-rule - for($ii = 0, $ll = count($importTokens); $ii < $ll; $ii++) - { - if ($importTokens[$ii][0] == self::T_AT_IMPORT) - { - // @import at-rule defines no media type or only the "all" media type; set the media types to the one defined in the parent @import at-rule - if (count($importTokens[$ii][2]) == 0 || (count($importTokens[$ii][2]) == 1 && $importTokens[$ii][2][0]) == "all") - { - $importTokens[$ii][2] = $tokens[$i][2]; - } - // @import at-rule defineds one or more media types; filter out media types not matching with the parent @import at-rule - elseif (count($importTokens[$ii][2] > 0)) - { - foreach ($importTokens[$ii][2] as $index => $mediaType) - { - if (!in_array($mediaType, $tokens[$i][2])) - { - unset($importTokens[$ii][2][$index]); - } - } - $importTokens[$ii][2] = array_values($importTokens[$ii][2]); - // If there are no media types left in the @import at-rule remove the @import at-rule - if (count($importTokens[$ii][2]) == 0) - { - $importTokens[$ii] = array(self::T_NULL); - } - } - } - } - // Remove media types of @media at-rule block not defined in the @import at-rule - for($ii = 0, $ll = count($importTokens); $ii < $ll; $ii++) - { - if ($importTokens[$ii][0] == self::T_AT_MEDIA_START) - { - foreach ($importTokens[$ii][1] as $index => $mediaType) - { - if (!in_array($mediaType, $tokens[$i][2])) - { - unset($importTokens[$ii][1][$index]); - } - $importTokens[$ii][1] = array_values($importTokens[$ii][1]); - } - } - } - // If no media types left of the @media at-rule block remove the complete block - for($ii = 0, $ll = count($importTokens); $ii < $ll; $ii++) - { - if ($importTokens[$ii][0] == self::T_AT_MEDIA_START) - { - if (count($importTokens[$ii][1]) == 0) - { - for ($iii = $ii; $iii < $ll; $iii++) - { - if ($importTokens[$iii][0] == self::T_AT_MEDIA_END) - { - break; - } - } - if ($importTokens[$iii][0] == self::T_AT_MEDIA_END) - { - array_splice($importTokens, $ii, $iii - $ii + 1, array()); - $ll = count($importTokens); - } - } - } - } - // If the media types of the @media at-rule equals the media types defined in the @import at-rule remove the T_AT_MEDIA_START and T_AT_MEDIA_END token - for($ii = 0, $ll = count($importTokens); $ii < $ll; $ii++) - { - if ($importTokens[$ii][0] == self::T_AT_MEDIA_START && count(array_diff($tokens[$i][2], $importTokens[$ii][1])) == 0) - { - for ($iii = $ii; $iii < $ll; $iii++) - { - if ($importTokens[$iii][0] == self::T_AT_MEDIA_END) - { - break; - } - } - if ($importTokens[$iii][0] == self::T_AT_MEDIA_END) - { - unset($importTokens[$ii]); - unset($importTokens[$iii]); - $importTokens = array_values($importTokens); - $ll = count($importTokens); - } - } - } - // Extract @import at-rule tokens - for($ii = 0, $ll = count($importTokens); $ii < $ll; $ii++) - { - if ($importTokens[$ii][0] == self::T_AT_IMPORT) - { - $importBlocks = array_merge($importBlocks, array_splice($importTokens, $ii, 1, array())); - $ll = count($importTokens); - } - } - // Extract T_AT_RULE tokens - for($ii = 0, $ll = count($importTokens); $ii < $ll; $ii++) - { - if ($importTokens[$ii][0] == self::T_AT_RULE) - { - $importBlocks = array_merge($importBlocks, array_splice($importTokens, $ii, 1, array())); - $ll = count($importTokens); - } - } - // Extract the @font-face, @media and @page at-rule block - for($ii = 0, $ll = count($importTokens); $ii < $ll; $ii++) - { - if (in_array($importTokens[$ii][0], $sImportStartBlockTokens)) - { - for ($iii = $ii; $iii < $ll; $iii++) - { - if (in_array($importTokens[$iii][0], $sImportEndBlockTokens)) - { - break; - } - } - if (isset($importTokens[$iii][0]) && in_array($importTokens[$iii][0], $sImportEndBlockTokens)) - { - $importBlocks = array_merge($importBlocks, array_splice($importTokens, $ii, $iii - $ii + 1, array())); - $ll = count($importTokens); - } - } - } - // Create the array with imported tokens for @import at-rules with defined media types - $importTokens = array_merge($importBlocks, array($importMediaStartToken), $importTokens, array($sImportMediaEndToken)); - } - array_splice($tokens, $i, 1, $importTokens); - // Modify parameters of the for-loop - $i--; - $l = count($tokens); - } - } - } - } - /* - * Remove tokens. - * - * Remove tokens not required for minification. Defaults to T_NULL and T_COMMENT tokens. - * - * If CSS Level 3 Variables (emulate-css3-variables) is disabled add T_AT_VARIABLES_START, T_VARIABLE_DECLARATION - * and T_AT_VARIABLES_END tokens. - * - * If the configuration options "import-imports" and "import-remove-invalid" is enabled remove also remaining - * T_AT_IMPORT tokens. - */ - if (!$sEmulateCcss3Variables) - { - $sRemoveTokens = array_merge($sRemoveTokens, array(self::T_AT_VARIABLES_START, self::T_VARIABLE_DECLARATION, self::T_AT_VARIABLES_END)); - } - if ($sImportImports && is_dir($sImportBasePath) && $sImportRemoveInvalid) - { - $sRemoveTokens[] = self::T_AT_IMPORT; - } - for($i = 0, $l = count($tokens); $i < $l; $i++) - { - if (in_array($tokens[$i][0], $sRemoveTokens)) - { - unset($tokens[$i]); - } - } - $tokens = array_values($tokens); - /* - * Remove empty rulesets - * - * The ruleset is empty if it only contains the tokens T_RULESET_START, T_SELECTORS, T_DECLARATIONS_START, - * T_DECLARATIONS_END and T_RULESET_END - */ - if ($sRemoveEmptyRulesets) - { - for($i = 0, $l = count($tokens); $i < $l; $i++) - { - if ($tokens[$i][0] == self::T_RULESET_START && $tokens[$i+4][0] == self::T_RULESET_END) - { - unset($tokens[$i]); // T_RULESET_START - unset($tokens[++$i]); // T_SELECTORS - unset($tokens[++$i]); // T_DECLARATIONS_START - unset($tokens[++$i]); // T_DECLARATIONS_END - unset($tokens[++$i]); // T_RULESET_END - } - } - $tokens = array_values($tokens); - } - /* - * Remove empty @media, @font-face or @page blocks - */ - if ($sRemoveEmptyBlocks) - { - for($i = 0, $l = count($tokens); $i < $l; $i++) - { - if (($tokens[$i][0] == self::T_AT_MEDIA_START && $tokens[$i+1][0] == self::T_AT_MEDIA_END) - || ($tokens[$i][0] == self::T_AT_FONT_FACE_START && $tokens[$i+1][0] == self::T_AT_FONT_FACE_END) - || ($tokens[$i][0] == self::T_AT_PAGE_START && $tokens[$i+1][0] == self::T_AT_PAGE_END)) - { - unset($tokens[$i]); // T_AT_MEDIA_START, T_AT_FONT_FACE_START, T_AT_PAGE_START - unset($tokens[++$i]); // T_AT_MEDIA_END, T_AT_FONT_FACE_END, T_AT_PAGE_END - } - } - $tokens = array_values($tokens); - } - /* - * Parse CSS Level 3 variables if the configuration option "emulate-css3-variables" is enabled. - */ - if ($sEmulateCcss3Variables) - { - for($i = 0, $l = count($tokens); $i < $l; $i++) - { - // Found a variable declaration - if ($tokens[$i][0] == self::T_VARIABLE_DECLARATION) - { - for($i2 = 0, $l2 = count($tokens[$i][3]); $i2 < $l2; $i2++) - { - // Create the scope (all, screen, print, etc.) if not defined - if (!isset($sCss3Variables[$tokens[$i][3][$i2]])) - { - $sCss3Variables[$tokens[$i][3][$i2]] = array(); - } - // Store variable and value - $sCss3Variables[$tokens[$i][3][$i2]][$tokens[$i][1]] = $tokens[$i][2]; - } - } - } - } - /* - * Conversion and compression - */ - for($i = 0, $l = count($tokens); $i < $l; $i++) - { - if ($tokens[$i][0] == self::T_DECLARATION) - { - /* - * Search for CSS Level 3 variable statement if the configuration option "emulate-css3-variables" is - * enabled. - * - * The variable value depends on the media type of the declaration. Primary the variable value - * of the media type of the declaration will get used if available. If no variable value for the media - * type of the declaration is defined use the variable value definition for the media type "all". - */ - if ($sEmulateCcss3Variables) - { - // Found a 'var' statement - if (strtolower(substr($tokens[$i][2], 0, 4)) == "var(" && substr($tokens[$i][2], -1, 1) == ")") - { - // Extract the variable name - $variable = trim(substr($tokens[$i][2], 4, -1)); - // Append the media type "all" to the declaration - $tokens[$i][3][] = "all"; - for($i2 = 0, $l2 = count($tokens[$i][3]); $i2 < $l2; $i2++) - { - // Found a variable value for the current media type scope - if (isset($sCss3Variables[$tokens[$i][3][$i2]][$variable])) - { - $tokens[$i][2] = $sCss3Variables[$tokens[$i][3][$i2]][$variable]; - break; - } - } - } - } - /* - * Convert font-weight values if the configuration option "convert-font-weight-values" is enabled. - * - * Will convert font weight values "normal" to "400" and "bold" to "700". Restricted to "font-weight" - * and "font" declarations. - */ - if ($sConvertFontWeightValues && in_array(strtolower($tokens[$i][1]), array("font-weight", "font")) && preg_match($rConvertFontWeightValues, $tokens[$i][2])) - { - $tokens[$i][2] = preg_replace($rConvertFontWeightValues, $rConvertFontWeightValuesR, $tokens[$i][2]); - } - /** - * Compress unit values if the configuration option "compress-unit-values" is enabled. - * - * This will compress: - * 1. "0.5px" to ".5px" - * 2. "0px" to "0" - * 3. "0 0 0 0", "0 0 0" or "0 0" to "0" - */ - if ($sCompressUnitValues) - { - $tokens[$i][2] = preg_replace($rCompressUnitValues1, $rCompressUnitValues1R, $tokens[$i][2]); - $tokens[$i][2] = preg_replace($rCompressUnitValues2, $rCompressUnitValues2R, $tokens[$i][2]); - if (strtolower($tokens[$i][1]) != "background-position") - { - if ($tokens[$i][2] == "0 0 0 0" || $tokens[$i][2] == "0 0 0" || $tokens[$i][2] == "0 0") {$tokens[$i][2] = "0";} - } - } - /* - * Convert RGB color values if the configuration option "convert-rgb-color-values" is enabled. - * - * This will convert values like "rgb(200,60%,5)" to "#c89905". - */ - if ($sConvertRgbColorValues && preg_match($rConvertRgbColorValues, $tokens[$i][2], $m)) - { - for ($i2 = 1, $l2 = count($m); $i2 < $l2; $i2++) - { - if (strpos("%", $m[$i2]) !== false) - { - $m[$i2] = substr($m[$i2], 0, -1); - $m[$i2] = (int) (256 * ($m[$i2] / 100)); - } - $m[$i2] = str_pad(dechex($m[$i2]), 2, "0", STR_PAD_LEFT); - } - $tokens[$i][2] = str_replace($m[0], "#" . $m[1] . $m[2] . $m[3], $tokens[$i][2]); - } - /** - * Convert HSL color values if the configuration option "convert-hsl-color-values" is enabled. - * - * This will convert values like "hsl(232,36%,48%)" to "#4e5aa7". - */ - if ($sConvertHslColorValues && preg_match($rConvertHslColorValues, $tokens[$i][2], $m)) - { - $tokens[$i][2] = str_replace($m[0], self::_hsl2hex($m[1], $m[2], $m[3]), $tokens[$i][2]); - } - /** - * Compress color values if the configuration option "compress-color-values" is enabled. - * - * This will convert color value like "#aabbcc" to their short notation "#abc". - */ - if ($sCompressColorValues && preg_match($rCompressColorValues, $tokens[$i][2], $m)) - { - $m[1] = strtolower($m[1]); - if (substr($m[1], 0, 1) == substr($m[1], 1, 1) && substr($m[1], 2, 1) == substr($m[1], 3, 1) && substr($m[1], 4, 1) == substr($m[1], 5, 1)) - { - $tokens[$i][2] = str_replace($m[0], "#" . substr($m[1], 0, 1) . substr($m[1], 2, 1) . substr($m[1], 4, 1), $tokens[$i][2]); - } - } - /** - * Convert named color values if the configuration option "convert-named-color-values" is enabled. - * - * This will convert named color value like "black" to their hexadecimal notation "#000". - */ - if ($sConvertNamedColorValues && preg_match($rConvertNamedColorValues, $tokens[$i][2])) - { - $tokens[$i][2] = preg_replace($rConvertNamedColorValues, $rConvertNamedColorValuesR, $tokens[$i][2]); - } - } - } - /* - * Create minified css - */ - $r = ""; - for($i = 0, $l = count($tokens); $i < $l; $i++) - { - // T_AT_RULE - if ($tokens[$i][0] == self::T_AT_RULE) - { - $r .= "@" . $tokens[$i][1] . " " . $tokens[$i][2] . ";"; - } - // T_AT_IMPORT - if ($tokens[$i][0] == self::T_AT_IMPORT) - { - $r .= "@import \"" . $tokens[$i][1] . "\" " . implode(",", $tokens[$i][2]) . ";"; - } - // T_AT_MEDIA_START - elseif ($tokens[$i][0] == self::T_AT_MEDIA_START) - { - if (count($tokens[$i][1]) == 1 && $tokens[$i][1][0] == "all") - { - $r .= "@media{"; - } - else - { - $r .= "@media " . implode(",", $tokens[$i][1]) . "{"; - } - } - // T_AT_FONT_FACE_START - elseif ($tokens[$i][0] == self::T_AT_FONT_FACE_START) - { - $r .= "@font-face{"; - } - // T_FONT_FACE_DECLARATION - elseif ($tokens[$i][0] == self::T_FONT_FACE_DECLARATION) - { - $r .= $tokens[$i][1] . ":" . $tokens[$i][2] . ($sRemoveLastSemicolon && $tokens[$i+1][0] == self::T_AT_FONT_FACE_END ? "" : ";"); - } - // T_AT_PAGE_START - elseif ($tokens[$i][0] == self::T_AT_PAGE_START) - { - $r .= "@page{"; - } - // T_PAGE_DECLARATION - elseif ($tokens[$i][0] == self::T_PAGE_DECLARATION) - { - $r .= $tokens[$i][1] . ":" . $tokens[$i][2] . ($sRemoveLastSemicolon && $tokens[$i+1][0] == self::T_AT_PAGE_END ? "" : ";"); - } - // T_SELECTORS - elseif ($tokens[$i][0] == self::T_SELECTORS) - { - $r .= implode(",", $tokens[$i][1]); - } - // Start of declarations - elseif ($tokens[$i][0] == self::T_DECLARATIONS_START) - { - $r .= "{"; - } - // T_DECLARATION - elseif ($tokens[$i][0] == self::T_DECLARATION) - { - // Convert CSS Level 3 and browser specific properties if "convert-css3-properties" is enabled - if ($sConvertCss3Properties && isset(self::$propertyTransformations[$tokens[$i][1]])) - { - foreach (self::$propertyTransformations[$tokens[$i][1]] as $value) - { - if (!is_null($value) && !is_array($value)) - { - $r .= $value . ":" . $tokens[$i][2] . ";"; - } - elseif (is_array($value) && is_callable($value)) - { - $r .= call_user_func_array($value, array($tokens[$i][1], $tokens[$i][2])); - } - } - } - $r .= $tokens[$i][1] . ":" . $tokens[$i][2] . ($sRemoveLastSemicolon && (isset($tokens[$i+1]) &&$tokens[$i+1][0] == self::T_DECLARATIONS_END) ? "" : ";"); - } - // T_DECLARATIONS_END, T_AT_MEDIA_END, T_AT_FONT_FACE_END, T_AT_PAGE_END - elseif (in_array($tokens[$i][0], array(self::T_DECLARATIONS_END, self::T_AT_MEDIA_END, self::T_AT_FONT_FACE_END, self::T_AT_PAGE_END))) - { - $r .= "}"; - } - elseif ($tokens[$i][0] == self::T_COMMENT) - { - $r .= "\n" . $tokens[$i][1] . "\n"; - } - else - { - // Tokens with no output: T_NULL, T_COMMENT, T_RULESET_START, T_RULESET_END, T_AT_VARIABLES_START, T_VARIABLE_DECLARATION and T_AT_VARIABLES_END - } - } - return $r; - } - /** - * Parses the Css and returns an array of tokens. - * - * @param string $css - * @return array Array of tokens - */ - public static function parse($css) - { - /* - * Settings - */ - $sDefaultScope = array("all"); // Default scope - $sDefaultTrim = " \t\n\r\0\x0B"; // Default trim charlist - $sTokenChars = "@{}();:\n\"'/*,"; // Tokens triggering parser processing - $sWhitespaceChars = $sDefaultTrim; // Whitespace chars - /* - * Basic variables - */ - $c = null; // Current char - $p = null; // Previous char - $buffer = ""; // Buffer - $errors = array(); - $saveBuffer = ""; // Saved buffer - $state = array(self::T_DOCUMENT); // State stack - $currentState = self::T_DOCUMENT; // Current state - $scope = $sDefaultScope; // Current scope - $stringChar = null; // Current string delimiter char - $isFilterWs = true; // Filter double whitespaces? Will get disabled for comments, selectors, etc. - $selectors = array(); // Array with collected selectors - $importUrl = ""; // @import Url - $line = 1; // Line - $r = array(); // Return value - /* - * Prepare: normalize line endings - */ - $css = str_replace("\r\n", "\n", $css); // Windows to Unix line endings - $css = str_replace("\r", "\n", $css); // Mac to Unix line endings - /** - * Parse: - */ - for ($i = 0, $l = strlen($css); $i < $l; $i++) - { - // Set the current Char - $c = substr($css, $i, 1); - // Increments line number on line endings - if ($c == "\n") - { - $line++; - } - // Whitespace handling - if ($isFilterWs && strpos($sWhitespaceChars, $c) !== false) - { - // Filter double whitespaces if the previous char is also a whitespace - if (strpos($sWhitespaceChars, $p) !== false) - { - continue; - } - // Normalize whitespace chars to space - elseif ($c != " " && strpos($sWhitespaceChars, $c) !== false) - { - $c = " "; - } - } - $buffer .= $c; - // Extended processing only if the current char is a token char - if (strpos($sTokenChars, $c) !== false) - { - // Set the current state - $currentState = $state[count($state) - 1]; - /* - * Start of comment - * - * The current buffer will get saved and restored at the end of the comment because comments are - * allowed within many parsable elements. - */ - if ($p == "/" && $c == "*" && $currentState != self::T_STRING && $currentState != self::T_COMMENT) - { - $saveBuffer = substr($buffer, 0, -2); // Save the current buffer - $buffer = $p . $c; - $isFilterWs = false; - array_push($state, self::T_COMMENT); - } - /* - * End of comment - */ - elseif ($p == "*" && $c == "/" && $currentState == self::T_COMMENT) - { - $r[] = array(self::T_COMMENT, trim($buffer)); - $buffer = $saveBuffer; // Restore the buffer - $isFilterWs = true; - array_pop($state); - } - /* - * Start of string - */ - elseif (($c == "\"" || $c == "'") && $currentState != self::T_STRING && $currentState != self::T_COMMENT && $currentState != self::T_STRING_URL) - { - $stringChar = $c; - $isFilterWs = false; - array_push($state, self::T_STRING); - } - /** - * Escaped LF in string => remove escape backslash and LF - */ - elseif ($c == "\n" && $p == "\\" && $currentState == self::T_STRING) - { - $buffer = substr($buffer, 0, -2); - } - /** - * Parse error: Unescaped LF in string literal - */ - elseif ($c == "\n" && $p != "\\" && $currentState == self::T_STRING) - { - $errorStart = strrpos($css, "\n", - ($l - strrpos($css, ":", -($l - $i + 2)))); - $errorEnd = strpos($css, "\n", $errorStart + 1); - $errorLine = trim(substr($css, $errorStart, $errorEnd - $errorStart)); - trigger_error("Line #" . $line . ": Unescaped line ending in string literal:\n" . $errorLine . "_", E_USER_WARNING); - $buffer = substr($buffer, 0, -1) . $stringChar; // Replace the LF with the current string char - $stringChar = null; - $isFilterWs = true; - array_pop($state); - } - /* - * End of string - */ - elseif ($c === $stringChar && $currentState == self::T_STRING) - { - if ($p == "\\") // Previous char is a escape char - { - $count = 1; - $i2 = $i -2; - while (substr($css, $i2, 1) == "\\") - { - $count++; - $i2--; - } - // if count of escape chars is uneven => continue with string... - if ($count % 2) - { - continue; - } - } - // ...else end the string - $isFilterWs = true; - // Special handling for @import url strings - if ($state[count($state) - 2] == self::T_AT_IMPORT) - { - $importUrl = $buffer; - $buffer = ""; - } - array_pop($state); - $stringChar = null; - } - /** - * Start of expression string property - */ - elseif ($c == "(" && ($currentState != self::T_COMMENT && $currentState != self::T_STRING && $currentState != self::T_STRING_URL) && strtolower(substr($css, $i - 10, 10) == "expression") - && ($currentState == self::T_DECLARATION || $currentState == self::T_FONT_FACE_DECLARATION || $currentState == self::T_PAGE_DECLARATION || $currentState == self::T_VARIABLE_DECLARATION)) - { - array_push($state, self::T_STRING_EXPRESSION); - } - /** - * End of expression string property - */ - elseif (($c == ";" || $c == "}") && $p == ")" && $currentState == self::T_STRING_EXPRESSION) - { - $buffer = substr($buffer, 0, -2); - array_pop($state); - $i = $i - 2; - } - /** - * Start of url string property - */ - elseif ($c == "(" && ($currentState != self::T_COMMENT && $currentState != self::T_STRING && $currentState != self::T_STRING_EXPRESSION) && strtolower(substr($css, $i - 3, 3) == "url") - && ($currentState == self::T_DECLARATION || $currentState == self::T_FONT_FACE_DECLARATION || $currentState == self::T_PAGE_DECLARATION || $currentState == self::T_VARIABLE_DECLARATION || $currentState == self::T_AT_IMPORT)) - { - array_push($state, self::T_STRING_URL); - } - /** - * End of url string property - */ - elseif (($c == ")" || $c == "\n") && $currentState == self::T_STRING_URL) - { - if ($p == "\\") - { - continue; - } - // Special handling for @import urls - if ($state[count($state) - 2] == self::T_AT_IMPORT) - { - $importUrl = $buffer; - $buffer = ""; - } - array_pop($state); - } - /* - * Start of at-rule @media block - */ - elseif ($c == "@" && $currentState == self::T_DOCUMENT && strtolower(substr($css, $i, 6)) == "@media") - { - $i = $i + 6; - $buffer = ""; - array_push($state, self::T_AT_MEDIA_START); - } - /* - * At-rule @media block media types - */ - elseif ($c == "{" && $currentState == self::T_AT_MEDIA_START) - { - $buffer = strtolower(trim($buffer, $sDefaultTrim . "{")); - $scope = $buffer != "" ? array_filter(array_map("trim", explode(",", $buffer))) : $sDefaultScope; - $r[] = array(self::T_AT_MEDIA_START, $scope); - $i = $i++; - $buffer = ""; - array_pop($state); - array_push($state, self::T_AT_MEDIA); - } - /* - * End of at-rule @media block - */ - elseif ($currentState == self::T_AT_MEDIA && $c == "}") - { - $r[] = array(self::T_AT_MEDIA_END); - $scope = $sDefaultScope; - $buffer = ""; - array_pop($state); - } - /* - * Start of at-rule @font-face block - */ - elseif ($c == "@" && $currentState == self::T_DOCUMENT && strtolower(substr($css, $i, 10)) == "@font-face") - { - $r[] = array(self::T_AT_FONT_FACE_START); - $i = $i + 10; - $buffer = ""; - array_push($state, self::T_AT_FONT_FACE); - } - /* - * @font-face declaration: Property - */ - elseif ($c == ":" && $currentState == self::T_AT_FONT_FACE) - { - $property = trim($buffer, $sDefaultTrim . ":{"); - $buffer = ""; - array_push($state, self::T_FONT_FACE_DECLARATION); - } - /* - * @font-face declaration: Value - */ - elseif (($c == ";" || $c == "}") && $currentState == self::T_FONT_FACE_DECLARATION) - { - $value = trim($buffer, $sDefaultTrim . ";}"); - $r[] = array(self::T_FONT_FACE_DECLARATION, $property, $value, $scope); - $buffer = ""; - array_pop($state); - if ($c == "}") // @font-face declaration closed with a right curly brace => closes @font-face block - { - array_pop($state); - $r[] = array(self::T_AT_FONT_FACE_END); - } - } - /* - * Parse error: @font-face declaration value - */ - elseif ($c == ":" && $currentState == self::T_FONT_FACE_DECLARATION) - { - $errorStart = strrpos($css, "\n", -($l - strrpos($css, ":", -($l - $i + 2)))); - $errorEnd = strpos($css, "\n", $errorStart + 1); - $errorLine = trim(substr($css, $errorStart, $errorEnd - $errorStart)); - trigger_error("Line #" . $line . ": Unterminated @font-face declaration:\n" . $errorLine . "_", E_USER_WARNING); - } - /* - * End of at-rule @font-face block - */ - elseif ($c == "}" && $currentState == self::T_AT_FONT_FACE) - { - $r[] = array(self::T_AT_FONT_FACE_END); - $buffer = ""; - array_pop($state); - } - /* - * Start of at-rule @page block - */ - elseif ($c == "@" && $currentState == self::T_DOCUMENT && strtolower(substr($css, $i, 5)) == "@page") - { - $r[] = array(self::T_AT_PAGE_START); - $i = $i + 5; - $buffer = ""; - array_push($state, self::T_AT_PAGE); - } - /* - * @page declaration: Property - */ - elseif ($c == ":" && $currentState == self::T_AT_PAGE) - { - $property = trim($buffer, $sDefaultTrim . ":{"); - $buffer = ""; - array_push($state, self::T_PAGE_DECLARATION); - } - /* - * @page declaration: Value - */ - elseif (($c == ";" || $c == "}") && $currentState == self::T_PAGE_DECLARATION) - { - $value = trim($buffer, $sDefaultTrim . ";}"); - $r[] = array(self::T_PAGE_DECLARATION, $property, $value, $scope); - $buffer = ""; - array_pop($state); - if ($c == "}") // @page declaration closed with a right curly brace => closes @page block - { - array_pop($state); - $r[] = array(self::T_AT_PAGE_END); - } - } - /* - * - */ - elseif ($c == ":" && $currentState == self::T_PAGE_DECLARATION) - { - $errorStart = strrpos($css, "\n", -($l - strrpos($css, ":", -($l - $i + 2)))); - $errorEnd = strpos($css, "\n", $errorStart + 1); - $errorLine = trim(substr($css, $errorStart, $errorEnd - $errorStart)); - trigger_error("Line #" . $line . ": Unterminated @page declaration:\n" . $errorLine . "_", E_USER_WARNING); - } - /* - * End of at-rule @page block - */ - elseif ($c == "}" && $currentState == self::T_AT_PAGE) - { - $r[] = array(self::T_AT_PAGE_END); - $buffer = ""; - array_pop($state); - } - /* - * Start of at-rule @variables block - */ - elseif ($c == "@" && $currentState == self::T_DOCUMENT && strtolower(substr($css, $i, 10)) == "@variables") - { - $i = $i + 10; - $buffer = ""; - array_push($state, self::T_AT_VARIABLES_START); - } - /* - * @variables media types - */ - elseif ($c == "{" && $currentState == self::T_AT_VARIABLES_START) - { - $buffer = strtolower(trim($buffer, $sDefaultTrim . "{")); - $r[] = array(self::T_AT_VARIABLES_START, $scope); - $scope = $buffer != "" ? array_filter(array_map("trim", explode(",", $buffer))) : $sDefaultScope; - $i = $i++; - $buffer = ""; - array_pop($state); - array_push($state, self::T_AT_VARIABLES); - } - /* - * @variables declaration: Property - */ - elseif ($c == ":" && $currentState == self::T_AT_VARIABLES) - { - $property = trim($buffer, $sDefaultTrim . ":"); - $buffer = ""; - array_push($state, self::T_VARIABLE_DECLARATION); - } - /* - * @variables declaration: Value - */ - elseif (($c == ";" || $c == "}") && $currentState == self::T_VARIABLE_DECLARATION) - { - $value = trim($buffer, $sDefaultTrim . ";}"); - $r[] = array(self::T_VARIABLE_DECLARATION, $property, $value, $scope); - $buffer = ""; - array_pop($state); - if ($c == "}") // @variable declaration closed with a right curly brace => closes @variables block - { - array_pop($state); - $r[] = array(self::T_AT_VARIABLES_END); - $scope = $sDefaultScope; - } - } - /* - * Parse error: @variable declaration value - */ - elseif ($c == ":" && $currentState == self::T_VARIABLE_DECLARATION) - { - $errorStart = strrpos($css, "\n", -($l - strrpos($css, ":", -($l - $i + 2)))); - $errorEnd = strpos($css, "\n", $errorStart + 1); - $errorLine = trim(substr($css, $errorStart, $errorEnd - $errorStart)); - trigger_error("Line #" . $line . ": Unterminated @variable declaration:\n" . $errorLine . "_", E_USER_WARNING); - } - /* - * End of at-rule @variables block - */ - elseif ($c == "}" && $currentState == self::T_AT_VARIABLES) - { - $r[] = array(self::T_AT_VARIABLES_END); - $scope = $sDefaultScope; - $buffer = ""; - array_pop($state); - } - /* - * Start of at-rule @import - */ - elseif ($c == "@" && $currentState == self::T_DOCUMENT && strtolower(substr($css, $i, 7)) == "@import") - { - $i = $i + 7; - $buffer = ""; - array_push($state, self::T_AT_IMPORT); - } - /* - * End of at-rule @import - */ - elseif (($c == ";" || $c == "\n") && $currentState == self::T_AT_IMPORT) - { - $scopes = array_filter(array_map("trim", explode(",", strtolower(trim($buffer, $sDefaultTrim . ";"))))); - if (stripos($importUrl, "url(") !== false) - { - $importUrl = rtrim(substr($importUrl, 4), $sDefaultTrim . ")"); - } - $importUrl = trim($importUrl, $sDefaultTrim . "\"'"); - $r[] = array(self::T_AT_IMPORT, $importUrl, $scopes); - $buffer = ""; - array_pop($state); - } - /* - * Start of document level at-rule - */ - elseif ($c == "@" && $currentState == self::T_DOCUMENT) - { - $buffer = ""; - array_push($state, self::T_AT_RULE); - } - /* - * End of document level at-rule - */ - elseif ($c == ";" && $currentState == self::T_AT_RULE) - { - $pos = strpos($buffer, " "); - $rule = substr($buffer, 0, $pos); - $value = trim(substr($buffer, $pos), $sDefaultTrim . ";"); - $r[] = array(self::T_AT_RULE, $rule, $value); - $buffer = ""; - array_pop($state); - } - /** - * Selector - */ - elseif ($c == "," && ($currentState == self::T_AT_MEDIA || $currentState == self::T_DOCUMENT)) - { - $selectors[]= trim($buffer, $sDefaultTrim . ","); - $buffer = ""; - } - /* - * Start of ruleset - */ - elseif ($c == "{" && ($currentState == self::T_AT_MEDIA || $currentState == self::T_DOCUMENT)) - { - $selectors[]= trim($buffer, $sDefaultTrim . "{"); - $selectors = array_filter(array_map("trim", $selectors)); - $r[] = array(self::T_RULESET_START); - $r[] = array(self::T_SELECTORS, $selectors); - $r[] = array(self::T_DECLARATIONS_START); - $buffer = ""; - $selectors = array(); - array_push($state, self::T_DECLARATIONS); - } - /* - * Declaration: Property - */ - elseif ($c == ":" && $currentState == self::T_DECLARATIONS) - { - $property = trim($buffer, $sDefaultTrim . ":;"); - $buffer = ""; - array_push($state, self::T_DECLARATION); - } - /* - * Declaration: Value - */ - elseif (($c == ";" || $c == "}") && $currentState == self::T_DECLARATION) - { - $value = trim($buffer, $sDefaultTrim . ";}"); - $r[] = array(self::T_DECLARATION, $property, $value, $scope); - $buffer = ""; - array_pop($state); - if ($c == "}") // declaration closed with a right curly brace => close ruleset - { - array_pop($state); - $r[] = array(self::T_DECLARATIONS_END); - $r[] = array(self::T_RULESET_END); - } - } - /* - * Parse error: declaration value - */ - elseif ($c == ":" && $currentState == self::T_DECLARATION) - { - // Fix for Internet Explorer declaration filter as the declaration value conrains a colon (Ex.: progid:DXImageTransform.Microsoft.Alpha(Opacity=85);) - if (strpos(strtolower($property), "filter") !== false && strtolower(trim($buffer)) == "progid:") - { - continue; - } - $errorStart = strrpos($css, "\n", -($l - strrpos($css, ":", -($l - $i + 2)))); - $errorEnd = strpos($css, "\n", $errorStart + 1); - $errorLine = trim(substr($css, $errorStart, $errorEnd - $errorStart)); - trigger_error("Line #" . $line . ": Unterminated declaration:\n" . $errorLine . "_", E_USER_WARNING); - } - /* - * End of ruleset - */ - elseif ($c == "}" && $currentState == self::T_DECLARATIONS) - { - $r[] = array(self::T_DECLARATIONS_END); - $r[] = array(self::T_RULESET_END); - $buffer = ""; - array_pop($state); - } - } - $p = $c; // Set the parent char - } - return $r; - } - /** - * Transforms "opacity: {value}" into browser specific counterparts. - * - * @param string $property Property - * @param string $value Value - * @return string - */ - private static function _opacityTransformation($property, $value) - { - // Calculate the value for Internet Explorer filter statement - $ieValue = (int) ((float) $value * 100); - $r = "-moz-opacity:" . $value . ";"; // Firefox < 3.5 - $r .= "-ms-filter: \"alpha(opacity=" . $ieValue . ")\";"; // Internet Explorer 8 - $r .= "filter: alpha(opacity=" . $ieValue . ");zoom:1;"; // Internet Explorer 4 - 7 - return $r; - } - /** - * Transforms "white-space: pre-wrap" into browser specific counterparts. - * - * @param string $property Property - * @param string $value Value - * @return string - */ - private static function _whiteSpacePreWrapTransformation($property, $value) - { - if (strtolower($value) == "pre-wrap") - { - $r = "white-space:-moz-pre-wrap;"; // Mozilla - $r .= "white-space:-webkit-pre-wrap;"; // Webkit - $r .= "white-space:-pre-wrap;"; // Opera 4 - 6 - $r .= "white-space:-o-pre-wrap;"; // Opera 7+ - $r .= "word-wrap:break-word;"; // Internet Explorer 5.5+ - return $r; - } - else - { - return ""; - } - } - /** - * Convert a HSL value to hexadecimal notation. - * - * Based on: {@link http://www.easyrgb.com/index.php?X=MATH&H=19#text19}. - * - * @param integer $hue Hue - * @param integer $saturation Saturation - * @param integer $lightness Lightnesss - * @return string - */ - private static function _hsl2hex($hue, $saturation, $lightness) - { - $hue = $hue / 360; - $saturation = $saturation / 100; - $lightness = $lightness / 100; - if ($saturation == 0) - { - $red = $lightness * 255; - $green = $lightness * 255; - $blue = $lightness * 255; - } - else - { - if ($lightness < 0.5 ) - { - $v2 = $lightness * (1 + $saturation); - } - else - { - $v2 = ($lightness + $saturation) - ($saturation * $lightness); - } - $v1 = 2 * $lightness - $v2; - $red = 255 * self::_hue2rgb($v1, $v2, $hue + (1 / 3)); - $green = 255 * self::_hue2rgb($v1, $v2, $hue); - $blue = 255 * self::_hue2rgb($v1, $v2, $hue - (1 / 3)); - } - return "#" . str_pad(dechex(round($red)), 2, "0", STR_PAD_LEFT) . str_pad(dechex(round($green)), 2, "0", STR_PAD_LEFT) . str_pad(dechex(round($blue)), 2, "0", STR_PAD_LEFT); - } - /** - * Apply hue to a rgb color value. - * - * @param integer $v1 Value 1 - * @param integer $v2 Value 2 - * @param integer $hue Hue - * @return integer - */ - private static function _hue2rgb($v1, $v2, $hue) - { - if ($hue < 0) - { - $hue += 1; - } - if ($hue > 1) - { - $hue -= 1; - } - if ((6 * $hue) < 1) - { - return ($v1 + ($v2 - $v1) * 6 * $hue); - } - if ((2 * $hue) < 1) - { - return ($v2); - } - if ((3 * $hue) < 2) - { - return ($v1 + ($v2 - $v1) * (( 2 / 3) - $hue) * 6); - } - return $v1; - } - } -?> \ No newline at end of file diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/custom_b.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/custom_b.png deleted file mode 100755 index eff56c3dbd1e470c2b091545ade35e094011d266..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^Ahrkx6Ogp-v1SBPEa{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i=~db&7wd>?5Uc afZ$xwjf`eDrp84_QnzIL{IP6RF zkdorCPhJ+`bKvmd!>3MlX`cJ>?yhyytVSzK3yX+|hzq95&sQy+?9sL&t$~4=p}|?| VC#5QQ<|d}62BjvZR2H60wE-$p^K@|xskoKI!^vrAVq#PO&xTpT rXO@X)P|zeswiyy1nkH)T3M4QHyra@ocD)4hB}-f* zN`mv#O3D+9QW+dm@{>{(JaZG%Q-e|yQz{EjrrH1%nR~i8hE&{2`t$$4Ju{C@{XZLh zef~pcCMG~;Ozopr02f~|F#rGn diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/custom_t.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/custom_t.png deleted file mode 100755 index 9b4d994a58c1caca766e2c44f25fc7215c067135..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhC#5QQ<|d}62BjvZR2H60wE-$J^mK6yskoKI!^xR=fH#7Nm-nOR zeEWL2eiLElI0uJWA8&3>|FPu%|Ns8RyE#3WStJ;2Hgg_)$#m&HP&0$4tDnm{r-UW| Dgv2k; diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/custom_tl.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/custom_tl.png deleted file mode 100755 index 1ef2e27d8a47731bc9d3f9318d1e76025c78d1fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhC#5QQ<|d}62BjvZR2H60wE-$J_jGX#skoKI!^xR=fH$Jy#)S(4 z^GyWi*w@RgHW6lyb8wi&+H0SANu}nJgMy}}r|ND_4`vn#218>u$@!)Mhk!;fc)I$z JtaD0e0su&YEi3>4 diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/custom_tr.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/custom_tr.png deleted file mode 100755 index c8482adca40d59a755cf5985c00809239132318a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^B0$W=!2~3&&0lT=QY`6?zK#qG>ra@ocD)4hB}-f* zN`mv#O3D+9QW+dm@{>{(JaZG%Q-e|yQz{EjrrH1%6?nQhhE&{2;^E{>Jir^aKCah& z+R+Oa1g78l`T4oz2PUx?Erqsy_5bBOHf`EeR8X*C!-fUf$MU~5v-3Bo@bmXCS)wvQ z#n<>qn!=C2zs<$c{b!kQ&YVAe`f&%71jb$L=PLjGv1Hb4=xk&%D44~_#KW*!N}5ku SflnD|H-o3EpUXO@geCwf2utt) diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_b.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_b.png deleted file mode 100755 index b4f3580953cf6546cdb2123b6297d3bac2af042b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3C%0R?LXv_I&jKg0($dmJB1TLf>yt#S fczef4NtU=qlmzFem6RtIr7}3CExIm`slC8kVivTBuorDMUsVZiW4UVNXa_AyPM0~kDA{an^L HB{Ts5Qshg7 diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_br.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_br.png deleted file mode 100755 index b1ab6463c29c5f5762ec61d4c618798f2d754d8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3CwE*-m8(}J`{eEUlB^CNnIX}^QW9|D z^y$+do}ZT&_{==%L%!IA!xs-Wv-3M#5mZ^o-{Zh^_xk^a3UdK}mPhjgHfHObaBN_% z`S<_-e{QFFKY5OrJMxI>Oj1~0!}3VnVe-6#ER0M%45jB3o_K`rNCDc;;OXk;vd$@? F2>`|8ONjsg diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_l.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_l.png deleted file mode 100755 index 54bff7693c2f85a21d588bab5f1a5a4a08cdf245..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3CbP0l+XkKmPsW= diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_r.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_r.png deleted file mode 100755 index ede3850f88a3f18711c5997171a2b4d183fe8b28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3CwE*-m8(}J`{eEUlB^CNnIX}^vY2b- dVgZE%3=>RP!m35x(ttV`JYD@<);T3K0RY)vCW-(6 diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_t.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_t.png deleted file mode 100755 index cba1928bd314b8fae354b7ce33d3f877550ca58a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3CFVdQ&MBb@00CGi$p8QV diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_tl.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_tl.png deleted file mode 100755 index 70045cc6567517c5f49efb534bf3c5e5a5969af9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3C diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_tr.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/datepicker_tr.png deleted file mode 100755 index 804021abbd19b12b82fb8b0dc1d6dad4e89425a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3Ca&$MaNG`Q;j{yO^M z%}wLB=jZ3^vll&gXpJ}K;^bVYAtET4_~7~Tbc@FDRB+aEzt+^hp!qpBfZgx1D3NEKh1Scnd3{JvX_d^i>gAO8yxZIy$ot&h0 zyTK{ASdmsk2YXagueE4te!Qvgn?O0*yQZXd(eH;6-n@B|A@Jo%-a>dnh_37HcH1;f z4ggk%=XqI{3xxvTXf$Zjve|4j8pVBq|5>$K&FAwgyr6B{-ENoWOQ3x$m&+kz0MvM; zL{Us8ll^{Qv@A=KB-~#B%5~k74t@2U_spL>N)QCL#hnFMq?^_2byZdAHgIwZy{w2k z3oyT%oqDpn_W6Tx^`5TlhG8Th-w{L>9M^G-{0)EdOi8sb6=XHLWnARuOg!62q-dihIP;U4U1O6B(CkmCKQ zo>#Vpm;r=~*>E^)wOW_&N*_gWHxl^~iTDc}w3v7t$Dv!g8%N9l!o^H`IW8%|=k96T z755Wj1`sA@tXYl4>#wf)yNN`i*Xtb}P;YL&rDb?G0|*&2%d#AoB}G+L*4#90YEY}y z9G8_LW&j~$HX4m=5-TOjoW^!@oH{iqB~+WRGQ*FJ^Z$l$ypbl zBW3`h-pw98Tl{>)3?NL*mWP-DAZ7snK+Ggb!skE$eEv5DRv)u;I<4zEJ|GA1m%5oO x%RC{Z*=%+?9efTIV6}LjkH_Q1V)2gv0{~=UGbv(OIb;9;002ovPDHLkV1mF~THF8t diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/loading.gif b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/loading.gif deleted file mode 100755 index 30056f99151d773588afa63fdcf8506d1810f048..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4204 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 diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/oopzy.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/oopzy.png deleted file mode 100644 index ca7fdcf2f4f9c71039ae8f11d8d206ef97b80b86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6534 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 diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/oopzy_large.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/oopzy_large.png deleted file mode 100644 index 6edb81b72effc42ce38e9257c73dd98201b862f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16472 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�hP41k=J7{_mSqXZqS#{tK$!0>Xq)^?}BpOC?hol_;o0@-DoecdkcS$Ur_N zXoJs~2-9bvRf>e|@VnV1GBTEU#gd4Wdf-Bl%k%) zYf#P8W_UpgQ>$*BHj;OOd6IS{_ly*SbXWq1%GN(-3x8V1QurJ zexh_U;orUzTj0E4c0m@Wgf5hpRcka?sZZ1&Wcuf7vV*1?r!C-T;~m@_;G?CuT^-C+ z#>uOauV~P3$R$9uepH@jKywkLNVrlK({Ex%d;oS){8J|A z%bp^)R|;2V*_SC1g0=#xl<{z3#Fp+}?i`v|hagWR8@^};Jd^q9J(GQkDY2vmi_7&OHA$NN1 z3$r||o2OhsFZW-mYb#aoc&np?zoG?fBf+qq!N22zd4-q&qlZ9g;K~#yXkCe1QCC%N z&gF!x5XlqaL=yGWFE7N1Gc8as9Q$qH`kT^b8&qBA(Losqr^D6fY2tsHXf@5%As+~J zDfgE=WVd+ZKA+FSP53f52Tqj|Rh0na7=eQSkA3;4|FXLJ+E4!KVbFeyac$3=ukttw?$+SaW{vgKZ}frrFuY<|!vIFI%J-!GyTYOoKf?5GBQZs3$HP^Gqu4 zkz+~yrF1{sB>G1utFiDY>7AxAf&;MY-2%L!9;yu%a!?94*Ys1b0z5LeF#G62jAwUe zW0Yy4?9(izFlW{VbTaD2TaGNtMtTs4KXrwwU7oY>sA*B%BG_*cocuytg-i}|PAq>v z?W^eaJkZ9i(=11cz)`-OkDdBlujovd^!|AB-U0Jpdky7!At5EZqXRZt?`n~!~N8|Z1QH+U8Sy8kj3@;P<#m z6G=1NcCv_E4=y(jB#eDLU<+zpA(#jg9$!h=;2BJ$>H{kdmdww7^yyD0&iy*u;B$_u z*>l6L8VZxFc*#sMG3Y7^AAHL-gXMzzvg>vF!5vr^X*y6`5kg>jEJbR#oHA~m8pD#- zzD7EIQ4uGhhc(*RPb9l zo8{4ItMrr#l)_|j(LF`}c)Y%Xc#(u9lBr_pOQj3%YDFdlroC;8fnipr zoVx`#HFB%p8JKrb=Kupk->O?317mv4Im;jf*_1j=%)Dz~9)L{yn zceB!j;p6w^rZ*E#qAIsA|NIi*ezoSqa720+2qqR4#_xi5v*>_l-C?@06}p*PYqZ4P z0ZtRE=imE0XHF(4p1x|`^x$B^#0x2puv0x)VIANx4W_*)0Ty#CuRaQ{B13TOPJCey7Ku%k`%O>IkphsWg0zQzXqg@(t%WbFgH=f>8(Av+zy>;D$KEM#WNPD>ryV0EH>>G++gXLqwj+dQs)DA zn>*7Y&13sIsbSKLm?u?a+P(3lMntq+nwEG_r5uH|nw8=$7$+WR)aUJdrey~zoA!9A z2}Imf7T5%X0-QCq*;ke$FVv?rCT9oGT;;J^W7?f%-bREW6-IE_#`#(=pha)YwDN|tB-94f>~V%@OSRG3zj2TWV4wcb>r1G+C?yhglg8cn;UVA{Rq zy4|j}=7+h>o*kY`V5jQA$)`KH=hWE^D;Q!h@2B9+W?z9+``%Xo8cFn`f;LIozt zZ~n5#mi$YmoHgw{DYT0JB$2!P2t_3k-_O4 zoMiQGel-fKBJ3(Kv5?LDv1v=i`81cF?mrc~Y+MMHMwqmbS5f;g)TC*+5kvS|if=Rr z!MMXq*LIJY;WpW;_m64>=qfNxcEWY$!!)qQn>lOJT9YIC;uV34<$!t@}(dGldva+F+{MGM;GIfQ61%8mO=u5RI-I|z= z!^9djG8{_h?~&p;llmQXy}9&sl}6cw=D4yqL^xcMk{fB%#?k)rkZiEZ?46ndx~lxZ zlhTT;wbF*KfG}Q?lIv>JYO$q!*=LbJIn}%2)pAXB-Z&^jM&eo{$(BLge9QmM8d{Ux zogB3_Xs$X@r}8IF$F)D+lH7<{y(#k8gVM|Mio;XhUtGFFUrqEhZimRCs(ImK6sl$= zQ)ZTLE|&)}m4~O?xW>^jHWjcpWL$VICH}b9$7}I5;D)XO>Lo#puX6YVaBHL(rbvT^ z&*zx<=GRrt2A`Y~uN?Q9T(FbjZ4PoP9!(#sgwi>HU{PK8ScJKufx97B06td11y$;d z^O#>tD1SKUKxnAD_HVy{p^9i@Q^kI6+}bb$PG`S%U5X4;TzfrMBf1MYH@8&XM&^Xh zQ1Ot*vCal>Jgk(FlP8<_%uEmHV6FVBpfbtD7e8El=}VUBGYy4lpkkSmHcd{NR^wX6 zT9r$JM5W}4P&{-!B;8_ucDK9^v!cD=9;m#>xk1(7l+SUdGJG5$Xr_Z*YsXtm1Z)i! zCN55C9oeDMAwq+Vs7&S8FTR4pgLCuDYMUIGVaM0P#A(cW1*SwpUTY%9qSgvm34xtsRdkb z8hpxJ@q^22bk0g970*?fI0u)FiewzDG=@OVSxU@rg9Gb@k}4Xa(e(TXYAFP`srjl`=&*So}op55IsTC+t$@*O*x;bm0fD*IA zrgcSW1;8v`-I)AJo-=huWfw<(?-tfq<(&+(V-6)g7n>Io3 zF%dTXDqFLCT95NX5d6^`O3|Qg9r7ndY@mg9U-reO+b%(Ovmtf94&39p(dsPJv94b3 zGXTOZAkI8S>xc$7GE5%>_)u<K1qy8SXocH)H)tzQ{ho7Ow&N?FSLoUv>{PS0d!4BlI-Xt zG~cJ!Png=l`U#4V!psfZW@!__+%|w8WLGyBMyqtuOKB$MUJgUKfps)YAlxsp@FXQ9 z0H%+fqA}Kp)4dx{mX0d%8dF6f)T?e`inm-o3AH?3+{AXjaQ^$HmxcQZhWtc2N>nD&h zeM$;P*@HH?Ze<;X34}kTLgBD9B~3^XQoA{HcVC)6*(ZYK`3;29uWkhUNCZv8LlJ3W zM1YocM5*asXbs9Mx`N#u4@v>I0MlQLeQEa8$=EdF^y!TQ(;sgZkPA$)P(+H1+Q71& zC?Of>`4nesQ52+MG*7Jn7_!WsTv%9`X)C^`zQk^BKoq*=jAbMeume1|o@s#ruu&X| zuO6_$t{~mzSP`c$5>By&IW$nh_csJg-xgtKNXf;8T4D3zdZN_i5N_cU5T!^rGzVzn zm^5M~`*bRHl2%^ziJQUu=A}hQ*>7hblgA9Oag?R?MF|b~5FdF&qoFz@kq}+S6Ha{# ze2@6-myY!USblt|Whrfe*1%D|n|<<7^E%%U5Vb@D&ROjcG>`BvFc27R6`*(So-mv`%y(h1iIHXz66=dnlLOv~vD_4XOm7GKQ55MA#w=1K;0Cd6hVM~Z zm|r+X>p&8h(3I2IjgR9g+PDA!9NkGoK~x4ADI7x+DlV=wN=*PG4|B5^1aXM5DV`Aw zeu_K^Ei5`ki}@ZqHP_eH*o`2S*itt8OBYz>4G$CJ!^oGG)*B_H1HlM~X$XYTXo%lb zMA<>q{@o%H@?-L5$CI%cTCwhV;ZmiT1V7(l&zRr3zI;hOU*qGn7|%)Uq#76=F!=?_ z%f09#f%^Ocw^1=!^WJj_qL+);i{KBTWr#`>-2yn)A0=c>t<*)#XttkU*|iv?_wuS7 zkE1}%#A36LB2XvkG66Q-_v`gmy6uP(i-ahk+6m&@E&)nS{jiIYrA!(D808gu(nJ@) zc21No@{PN_v{H>P=37`GpkOfd`g(@DE?)0NgY_^zXxra(DNeu8Macoiy1^FWbYQ$o zfc89{yh!!ny~n;3n|+Kl?@O^hTJZFq7uS<72?sGOM|mGc7kA>4pwzS%VItbZ?7S2m zEz_+4H@#VOmvQcGn?UTFi_Ohb77FcDAJHiEdh5cY5*Dx>WRVC9hI)icKm_tIVKn)$ zL`xKhqWGDy2L)4~gP5{@+B|?c7Xi}<) z9Tea%7;(2&mFATUZy=eTTX>9&)aPSgd~~{3L}z%@a%1oDelq~V&JkYdHDnWE;F6(4 z`2n6-?gAUea%{pah-wALyk(`WZw9653$rsb$L5YrPty`Q@x4E9pjkrWZ4VHU3wGd# zvUKTC;)}-#rdH^{pfZY7K%;AbH;-)Vo9^W+`at~c-sx%5J-F_K`ABgQ{oy8n&ZFpH z*oYgw$|VGeCkRF&VJT##!H6tih5ee9NiXd#DS2y~p5cB^E~Gd6d;mnNpVB(PF6+A9 zGiijrx6m{;0Ro(fxBXK4BmOikjoNeksi&TP=BX!dcOcblo0*;NF3BP zcYGuwMUM_Q+XTnbB}R#iQ;@Fbgbhv3k-AX^1++;Ln+=IO8A z!8eiZc|z8_r`n)*4)NiO>lbJ{`+tqiJ<_MpE7*Mf4c<>Df2Cvd_=Oxf%bniolgHXn zqQor?tIb*3@5sMg`@Sll$625Tke~pIS{I3Az(pY^Lnu?5@f(gipMDmBdJ@EG!f1Ye zUf#*RKsh`F4zZ%Ni;UN`o_kItl9d_@-h5#>-=`rW;s5O1srf!MQoDo(l?^WSmo-21 zSDdf1D5AIXL(6Y8>Y364IBwsr-}X=XwpUz3sL?ey{KG#~=Tga(tef?z*vYC)i$*aVN9q{muN09ug0QUF5{ zqX@9CPZUMf{uQwZpuXvu*kiLNXBSQ_#7-g|+YyW&9Xo;{l*#=~D|hn=iKWBs38{X~ zPvk`q#zIsbr*U?}9kRA@yCjIWe^mhrpK#0ZuZw~pq6AQOb3u`%BA7@U$z-8yAzm}n z)4g=I6%PJeU*Gg2$71}<6T3icPtI&Zj~AeOg6P;mtGRu=OItPOaq|%ZT5R?QU}b+Q zf~K7XIG!T_Pd{-xg)E9lJ#`1!D9Wke_fQn(Na^Iq(Y2EOvK6M2TXOx9fM=GPsu3(Ans@~%N-R%_Vz@ivs7 zmODAgM2SL>Zb-Z*XI75QaS#^fAC+wt|2I;|*t`tIY%x6aJ^t1F7r&TO+8DAXKM zF{x~*N0^3NP1~e40B}>a#IkBpPz&^gazhBb<-?0p034+~gn|f!&av3%+d!h=-r**!&0 z@@J3Vd|l3kZR?$$nVXAoLsWpLAXW7B>`9{T)4khdhbP$V{*ke0v}j=5QQDV16>yuw zp3b1gyHd!ChzIZ2fD_|wPXcgthJi!XfteK%bzl(Qq1BUtUbZW#?S7L`J1 zi^8Ebi|LsZMYRiB%}8OMs6OH34K7pd{C&Cohw&2&4tKk)R{R*58&2?_@zGRk$}SbJ zt^X}f2)-)9W*6bK9mHpH*_0;{afbu$(#i(B{>n?=`ShR#fv~E<(`>ij((NA(jLG5? zMmQpfN(BEImE`a7>JJjD4xxUIiQeddz8L(C8w9X_XguFe9PnGgF4+~Blr=?U$P2{a zCYfFyCl5Yg4_?TnF!|n%MoZV0~9^xI(Rmb%MR_)S8iL)Cp+r_*7vM z;;8=t2Jq5an0W5TnUb~WebDxG4#}N@$prz@H0lcSp-uN-ZY|z^4g@LZb8`;;9a^C**GfxU) zF-lK4%Jv{=o~_U|Ru@c+R)eh6rE`X7cE9cvcLro}3X?!JD^gT8?vvM|?0zBp22##F zPkwbxPUU!;0h>4o_FyzbrFk{OG+AFAn5%{{6iE=fd8MU18)AoIy5r@$WvG4zyy?t- zfEJ|i138fX#-VrJK`!i8x;|<=5ym>|3V$6n%;-cZDcb&y!ODPQLR2C{zEW;5vy4$M z67l0tKKbMmcT&a)_P%Q16`fRR%A)na)Ll=mccrGOiZt9OZ!3_xxpLV6HJ=%mC&F{Q z@=@&F=M25zAgyNzMe8t5Y^WaNv;;yeclGZFftNV*cipc%bkcI2_?}2M; zVj5y~7$;Weg1&vFc?_NB1ctz}=V4Ot8bxs{tu9=?i*)V!$6w8A)EZPvb#>JV6PnO_ z>&On&G!E{qw$}#bs z3aO~NAZ$gR+-SM$+o@HfFK5dQJ*^d{dU$wCtwZxJil_!`l2N1KAyBR}_f{ui%7|wg z5NpK6z5t+s(L{KPHe6JO5Y0oV9v+^H$BZ8z*aQ6Cg=t@z4EA?*QTlX383$@{#`O-0 zeP!*m_+n2lO+65-CT3(sLv=Ly);^3n4T4|dx2kl(BTLb1x+glO;`!z2p16)eLe%F` zrf!=h*3}VW)s>Fb;p%FartCdnmjmEP5Y=8T-0>LMg_%zH@>NOB!9=nmSOil!7VIb@ zFe*S$4@~abuUBe>X_cD`;r`s!fdHrZok-Gfz9E$ubQaB#9gJ%XO4Wdg?odY1ZdHdV z%(}pJ31C7t$yb$7X3j0N=Yp?V20Esf^K-2^S{9dQkj59seZFK7Olp=1jm{{Dy1bnq zEVX;O=WB*34#I<6?j`9%Hg1$wsoEl0s}>_zgC1webzJVwPhFZM872tniGD|FX9SK~ zc@tfl2;#8fi9gW_{W5x%`sahDmg9(*%jNO73c{%Y6X6pSga<>_B41Rx(b^e7d+jih z!L~=`941X}dTCAZjycDdhe?DHmB*iyq_LVtG2PS*Xj9{^@tzIsngM}#j%BC>>-JZWuNScIFA(oDFlBP~DFRu!t5e?%^!P3YlrD`Zith;8I zR_fXriy_1zrHF`%W0YEg6qqy(J6+iO+ro!aXuuS-LAO-p_MCCzRC7AKzWtR>+KoF& z8n2YYS+BNV4>1B6lH;$OoiIn5n}g?SdT?f>(oS7{uBW zP6z6MX+PMdhbKwz@oxw7=y>(vl=3-CS7Eq{x-^poXD|rOV^U<2sYh#5{|2m~Xs9ww z5rU~^emOuzeKnuw$pO*IDSCrrJ=R8&Y&Rc$=f0hs*YL(skbQg%Xu0`~vh8T{K%r(!3l$h`z4+wQ#78{AGJxY|x`P>ac7~hg)G&Dp!zV z(b{EA(@UJ%`MV_Ds1Fvc!X5RLj)3@|3;2fCwT zjM&7@&%d7gZ{W?S{0SWuRf7d6(*iVyrtnmt*^xjq?3xN!hACPPOieBIEJXbU@R1gU zDnn_+mak!^VO*tkCxf8R7^W07ljrc4>>eE*4N8^DcBW9AMye!J>Vv7@Nd8(SI33Bs zq^)hc_efN=oS+ycfR@^(6&)yUSu%Ly#4n3am?u{7i=#BJ3>>EmguND_-AmP}(dxA* z$gq!1qqhsH{;d2hjOkLD=jrq6uhEG6OoK^@3#i6;^pM*s;AfXsxO6T2EVC7^30A+V zjAHaZGutN$T|sTz6p%ltv{$na-puZvHRoe%U}B87wMCU1*~ovopO3$x84$Hz;QbuP z`Y~2fpxDt-fZ3C=HqmxaJ$*+%G@8qX_-d1<6{tCfxd`sc35=2MRzeDG_^Y-2{#7bC zdv|1#vC7SK2LT?9&C}YqcO8vHBC>s?sGQ?V*O?J2BFJ0Rn(m@*u34N05T+^$5jfa| z#Ju)pwl@mRp}!1Qu}(c8J{nt?L!7J!*(VwGMTUw(0}N-_M~fy-?yf2IbOve->}Xs= z(+JS{vWKxfr^xGva+FvVtPM6mXZk42{li)Rs0Ic*I_{@^m?VCrr~`1 zYRwb0Qz3oDoFO4KVXtS!7}C;VeAJ3CxuN$_KH_1f4TN`u6vHkv2^6g;`)KQ$nA=;^ zAfA<4SA){9LT%%eTQfW)h;__MU3EZbsIoLY)Czr%&MwTJnxCh+G zv*7*KwUvD7+LrhosO`e;jZH{v!c}4FR7Mrlc$R3POPEzCI|&KM2WA%tshMpU1>3p< z#e{SS-N>fon``r~{k2i?TJk9=fCr>%=2ePn4^`85w!^NFRH;#n)23NI(uj8EUJoGb z>KP&1G&a)XwxO@}l+1YjUTx#AmTI!%_@~Azn&NGb)!tE48KP;N`5*MhP#t$0Fge%0_&0S6!JuIu0tO z(x@T`@h+@hd5}@8Pvp)hv+T`Zm3n*`)r4Yg)lL967~aR=gj>cURW7BahwOE)j!uAW zw8G1<9neQZoaRr>^%l|)=~OD2OlgfcyrITwCnQgI85E~qig1WkB?P0*we~XP&jkx| zCrz!E0#@k#98ImAdqhOHuWRb6r`BpG^mZRJ%4p=yl}cCAwA2UcE#tW`2-h4@P1wjB z9BuTr-rhg#rD0dPuNZ4hJoOum?Hm}EhAYDqqCmoutrw;g?E=vfCTVBETI&wGYKN(* z9So^Q5`@DQ(`7PD9cI)!xzzH13NH%^aN_ideutyoVPfH!-GoTx$8|vuRTxkJIQok^XJ<)KqLKuM|!-N#F)pKE* z%cuN;25zh8cgH)ST?Xm@t=tQ{b>A@7G13Wf0-b9?S6#64@KGs0{s2EB!{Nz0AsW7^vtTUr#T{*`|? zNR#oDrfG9v%80^H+4bBcei~h{c_|N*-hB0-34@;pplYiCpMC<4{(=8l^cGiEmKOK% zafV>+4&=s9nq-@@+o^20^cIsv0s`zWdI#;gj8hWKSS|7#%Ek8ODs?sei)Y9joL?z9 z=NAWBX!7gM;b@d+?@fZ~y7-0qJuAoIbt=b*9YKWlyd;INuh_Rw;>XIC%_Mi-^W?9PMcq@B9^ds$qbmz zEB3fW?&@BCSrKDpgn(snX+_uhxC0r&t+u-JD7otie>4{vh2^W|!vgfL{kYDrELmVP zIqEmGQQCs<-vnVQ(2)L|lXrSt$}C~W;)>q$k7xIbG*C8f3QR6?b@}F$C{ox_H?)+0 zVyB@}#6?41=?Tn)iI5s_6g8DN29{O~obxMR+X7}aB6@i>L9Pa!3OYIj_?pVABB5!~ zuum_e$=FIB+H9D(`YkOE3=AwjX9%L4wdglq{#Butikh2cn4;r;q)g>}1ntvvqDCn! zP5o&O1@Ds?aZki4Q}fzYbcVedVm`OP(eTh?f!r+LMPWVxu<1RX5 z4or3gCwEQGhU~C)>Aae|rEd*Tpy@5z8Y9p8K^HCmktWk&Dlnt-#$m$0eqbI<6EaM6 z^&Qv+;&bRF_$N{Hg1Pso>}j%id~u)8Coj_Ke=h$+byD#24bVCyqh`Pq2YZOCTlisV zY^(#sk5_)#rA0?ek@wkB@IL2P%m`J?J`OXoyabb5$pJ=qYjK&CDHrCY#RL2LosRbY zfwfex{;;=c!`koyOni6B-D;1lruOBh$(&;{OeWcIgefGaW(cM2>QAie4K)la#@Ps3R^VaU1g7AHcDm+qQw+~=|$eecni27h-bCEdPRsf1V|ch(+iGO zb7DHiq9MPV@;K)!Ja8oo)wFR=>Dx@yH9VtG{^FmKjz)*wqPSGWtFI+}8x*B-q+05y z1hmw3G#sHRo5E7{CvLduZUj*K>aVs~U7_JSlyPJxKuR<{KgcF_uW`1s|AQXZ!R^&9bK;oZU3d?KXjay$H~&ed(ilOVj? zF2LU?{=KQ`vIJ_NUUAw7V29=d=Py%XQgAv4u)nSn0>1olVCCoM&YO@2*{C>CNljf7 zF=_rx;ikFia>a=#rl&3np5sfGuP||(4(MO{q*8iG3%xIQS(0(;hn935mg$N>32|C# zskwLMeH^9pR{~5;WW{SEPcHzK3S9PvDW`Ux+FI1pPH0)VGE|P^MAxpyL*NXe``nd- zl5CzVM%mNqU_OvLe?_3w#4{?J4dR3-{n65uBupG95#Y43ivnoB!cc0GGjyW4r^D*XU0%X;J8fh!Rux#ZYHHc=RvaX`Ozj^1g+_*^rYj96Iwz>??asbl`B-?*5I^qW>GGsc6j0mnyZjXrSdzo#Qvp~D;%Yw>)54%b|^nB{flpv z3)}U;iJRs#r$4aQk?-$pX&>PIXID{DXua81X~Gp2M7q1owc)a4`sseoJzW}F8o)N`BAdown`HdrlP<;=Dsr1$NF86K7+CSCMBez2r#hs|k zvgp;OBTzuc{;cAsAcP9}88SxDJz0h#`LpubS)?z95M_42*^%2N)zs-QcscogxN$G7 zqzDv>CInB~Ga^Vv{^vu$J6zI$w+{#me;QHipZ+vRJ4N3bXhPq^{xm)}{B20sqW^~> z|BOe&(E2<6Uqk*G|G)i9J0flggaEW0I|VE({X`xqa{M3a26QwNr~=$OW_(uA9=V?{1=wdG#TnS=FD1LtaD~X~J3#x#HIb{tc#l4c>-3t=&Gm8qTa_o01&b9mC zbv@2T3F&{H%m5nDbG_Z5-#!W(b!+WiwOvAyH+)6nhqGngw2GenN4{ERqfJztXQ)Z( zY@{5l?%JjO5lG)lv^6?>lY>*;;Ic~x7A{_kuXJ~}WHYV1jWl{;}5;d&GfUZPcy znSqFi;JTFb?5W7bAugDU?j1|)jr6g(=|NdQ$u6rp^PvySIO6v%p!zlmr~3*BeUXlg z0az^sXst#thC3VTorzq=PT9;^hA-E9c#~+~rOUHYaiOHg>HZbJ9e34guxr6=YYshK z!>hPdD27jaQ9mJXH!OX2Lt>|SFOAyAtL00S*%lj+jS_YRN zzM#W2jl|j?RNZRY2vKmbs=jsfj{74NzVE4AI-#7?>N#a+ukaC>NP;u@ZOItve;3lQ z@=ZY9r3y}%=HLCb-H@TJDHvk6yK!!~y{`##FZHPoD;L!$8oU~*-?f32%PmCyT6<5e zVkJ6GIf;S`Bu`fFI|75#MZZ(~$P?4z^UouRWLDCN^uz(GZV_jlZg&=L_GQH9MG)d2 zwm$tMAgv%LTi>NIw{!z^*G59vK?d-*SM$_%ccp8`v!2#p(5y%@)Hi3w+EX5v8S|vE zt@;8hs}YB0*}gjXS#}C4Kv)KZe|F*$uAC(pp@-u2<4nVVdM$;qcmxp0E*GkpN(jdM z;|Ts6$B~oq+tKvRf#~TBl=jTS*fo#3_-C9C)Jy+nm{&YoVjvVB23^Bsny>|O#&Q_Y zNJhb;|5b)onx>EG*$ZvpeeImG-5EUg?r_ljwkG7k#F>#R#$mGjXb=FLL<9AJS%z(hTTdU{Nv@y zb>!$!Pt@+`N0Hn!slNhyJ>sKy&hP0xIsj-hR5^%W3h^` zoB8N3wzblTcuZHetY<%lG|x5<%GBSfweWO$UBw>Y+#zG*Ao{x4#|e+I>7(pSaaTYg zM|>GKTSlPZYrXEqBodd&kPmifYuf{7^o%{AP?{9ux~Hc*DO$I^8jtQKaVHC_wjWl} z`;SWnf86J%j=k7wFQ}nYbxwGo^mhnE6ME{*34SK?03x?T{2Tv~=`7w|N`+X-T6ARmasMvFpV9 zakqYbuC$Ock^kufwEix}^YoI4zzs*MM%%M3uL|E;P{Jw!^{Y~A++6WY&Q7;aozC2C zX5Zk2!!E$tWaDr>{T1HC<8-QlM`F+S`cI57Rk+XW^2n4c_xh&1&w8jj+&g5<-8#1y z`!kd?7PAW8;el}Kxh{S;Z+gLR>XrFwsc{7FNl|D@jh^u#ArX zvVpMQqzb2w@iowrhl@eg#thE#NV#>{bV zvX`8GRInoZ7BxDH-D-x9s=dVjVsa4c^l)kY<>Lb3e|nKKm=&8Y^~WiP1Z}cne1cAh zb-9dW)apm8RKfL)E`a^y(16^;u_X5;0~w<5#Z@fkxYit;4x7G+zy&LqdYd1o`eCfT zn7M9#Jkxo-Yu+#LcKguAvmvPo8wa0s5?mH&6EzJ zoY%ZMwMC(~N)FbJl|zwshrH8A8D?2+aup%C{eJzO)m$n8iVmLQP)Ct_rrXa7DLt6e z^*oiQ3uJG<;K_F3MI4?54Y|OO!!c@x`&JWU&#uUlY9%pT#*eE15BQH}UsizkuEZ>6u+_b^E^F6=|=ElZ15@i()chL&vzhJ|T z%${;BY$cn}G_zWu8TFgo64QcZQY_PPeq!eZ$N4m2!Tx6CH77V;J24+>EPNkF6N zD<3+7&65#KZ@yXLGf&{(^>fy7UB#U+qG~v(niOb4dKY|Z&@pz>Cdk~N#4vxC92;0Bdw9(fO-aAJ)mpM?of1H z{tymoR|#J~c%AR5map+Es_TAIC582H3%v%aSop|}597AJGViN5*x9G9x7LmSe&@@X z_OX+>QRH8QwJEmy^4X@A_xcbzpMYeo)xdcg0b1J!C4`Mte~{y$?#{1DYD&~!deqg~ zk|Hi*tE2HjaD~9}JHyjq{pGn=(@HL^TKT%!%M6FlP2T>&>JJYCIAgpdrNgz6rULLb z;FmCkN3VBF-HIaeiHc?AWjpGcxo=>SF-f&w%Cv zjGz92^F@kENE2$*AdnRH8>;{1S=4`W4rOv6YlHONO3X<=PxSr2Cdf%Gx$__LhQGb< zLUTlDLMMSV|Kt`86T;FT&xz0&X3*-FUl{*{uFZn?^lynyr6zDjHUHD*S2Dm`eq!hF zgZF0P*@Zf=0eb+-@vS3P0c%HR-7c#T1mY+TX&_&NvoDf(Lt3HZllb$n%O#*gl(%l+ zK=vonfQAdG}>&@<;yd;13Pq~5CZ-NI#@Okh@bTB(L8S;Dgces*)$o+5&A)r zJs^tsEjMb27M8|3#~haj&g9NHF4>u$&!30~N(N!Ez2|p#`YP^V;7UIE_lL%&2=5Z0 z#3z`F7#G|9)e)PB=>(LtFC!56yz#(?keHH@FuzTbCyMX)Cd;2Y z`4YHUXhO@bhSA)lqr&cQY1Jm|r?6p!zw)w9cw5h1T#D#!Xx=BGY4YIEx3Bx)>8pOH z{nhSf!7q3TMW9o3oKVPBtgz^tWYPydIV5&Agy5>u>o76iK-GV!9Tar5C4_bGFV&oU z!znoD2o9VPD;lnvdhM=Ya8m1YF;QaxcgxQKimjMG`J6~D3cX^-(KH>4Dm8Yah>kGn za9hS?Oel}81@WjDsB|`H(Gk>HSXCn04hPpfAgb{3%gM|({F!+T2SyK&| zGD$6QRaL{RsMrV4KU@-(q~9{u5KUh?78my6UR%?2Ms@C5`G&n?R3hsNL1rK{7tiKz z$_w=N2o2XH9dR51T^xaz))`D*L*9V8!M4|0Ecf!qyX2ezNfOUzFx3MiKsreRGiu7JyaITf-cT6RX;Z&zxqq}r7|I83- zg$$|x!A1U^x_2MTV%uuVb$xQnl!>zj2-l_d8UmCL`A1JZWf&TU(TxviT(CUc47p5e z3P<*d@I|1}Vkh;~5SH+ncnCK=TNu+Nq2N_Zs3Ko`TspmeH;*YpK*cYJE4#Y`XwJ*Y z@17u*ZcKXLb_A@SUqc!HxF75I@izmU!Odhi|J@xt%FR_@)pFaul6Dl4=`_ALv50jH z8cbH~@rg%T7BzFvIFe&z;Z&z_%B|W^m8#cT?A*6YHN%KQ`Dzgv^C2U3O0iP&OYU#*t`o%{ z$Dk;XZ3KS~&{M(Mu?7M;GwssfjCSokM_1Pk^dW;FTuqXm!LT;(xc2EUB6{qMynFjR ztAnau|8ttL3ji0Y550W(3^XzJI+cOeU(4S*KP-N2g8mVj(*pwWsNy7BeEk2OR;}~A zNGJe5Sbh#bQ@!~DqQcL5Z_Bf#k6C#!joM=f1nRaH>r4$bwtW zqd$IbBh_L#q{+;rzo9((&7>(WztqaRg0D zSiK)YT7Hjc`Sph8cotEGUOOWG^&#b{k{$WOY<953uu6G`LVqGf$kC3{tkEwhT_x6` z9p5;a5L!y@gg4s_#1g%LUDVw+4wes$H`S{Gfdr&?M*la-Tv4X-XFS}CO;9i5ZobYs zNAA}TAt(`HgGal^HNM=M#A{y#X$v`-7q$bE{%-h!TUD+zmh-RcK7s<~1yU}Gz*-e4 zXJYH;?AFH$tlc>skKR@?l_b_9FOR?OrtK8U8D)LLGH=j4fA>7&Z*2eBhq>3N<*v?< z=tGjkV??V?-sn_5#VNS@kHZ<_mY;;z`z4+FcY%GvigCt*SJey&Itf8>m_x$6U-|1; z{Z}amC(zK$^4G4@MO?Jy+<-=L%!A5qi48GcA62Q}Kigh?|TuYEKBI=*_ZfDLRszxBv$xys*F=XTzNjrowm_m#8Iq{B0O zeLsLq8e{P@a*{pPREihd4OMqu1%bx@bbA#Jx4|g&s#!@OpLR=8t?|XvF?_tFn;nTM z`Bn^7`9os_HCz#wcApp`ljOIg>>_X?0_iwi!rT7gB;{xHqx0BVE@JzY8LU%ewTqG0 zxV!}k&2Z6aWUM`WGl>7JrlvdcQ48Dn`W0DQ76Rjsu5(BMpIhl}s9u#_&!(!4P1yta zbG>`DS}YT$JiPc9id6jf}%0fALlf=5pQr75?T$t}}rz#zpDAmo$Kf!X9{rZ%$?Dq?> zOf|q#H)<@>w5R>vYMCPzNV>Ng{f7%h7FUd0@`d{!hi(MaMv;rxT+G92W_TUp^#;P!?6;b2A)fXEUn&HEB;{%x(-i5?}v_`Ej1rA zLBr=Fi0d{`qPgUzq|wmg#xHwEj9qS?3cT-4ju+|!Z65$;c`e5cY;Av#pQ&j@#-W*A zlum;C<^pk_JhzsKZFwV9QIB~CQ7^%Ayhe4zwZgFht3+2^#z^#@|gq5|hXfoq24XP!D$*?gD<(@gAHjS;_pnsI(jo$Zr8r{Aq z<;+aw{KOp%+wM+8GV>33z%$m03m`&i2T@v_Kmq&Q)+7j@9-pQpeUvY-;7!Dv&~hnN zoNUa{xD+gWoDaxEM9mD@k`l0`Rs1z9KPge=;*!PIOg(BH-|&EMcLnNV&B9j+eBUY{ChQ=GbECS< zXX(m0)HPvM;;t`$3Pa+ty_OPF*N7X~pQ@aF)!RMiTat;68)?4$MBiXxsgl^NPz=si zn2R1H0@JR_N?lmTggR6cnLkKPVYlSX`i6l(-}c-w^pv`$D7HO`A{MzMBl(R- z?ciT@qxaWwDt6{UFQ^eXy44D8rurk71Gb&h3399>hkPsYH%wuj*HPtIoZy1t9^2GJ zf?pPh1CTratyz2*tlQ9U00yt-eGZCoI7cA=NJo%ZP%?c?R4eqI#oQd;gHtrtfhw)z z9ExYfEsftG^a7<$=ls_YV(n)yqMqoVM8A0_brCF6h3xjtfh&5g({uSC5IU0-qAsu9 zF7=Wwam{{PJwG8qUnK%_oXsM~WF58pt(+&`qY@;x5!}YGcXSxlJUrqYYEd%;(YXHi zpUf^Ncddb(GAXxu)Hw8e!4JJ|W~EQ!?!#&-X4R50yf_cg4%5@Xc#P$79DtnaroT_DiiVe5BS~{{U zb?lcBTC>&K_a-C+jltT#Uq|A*3^KM0@3V(cM85PgUQ?}(a25y8B}}_5BRi0E_Rb9N zbAl(>HV^ya^2%?v`#IgWR<^nD;ZO%Jp+4M8v810BW!^B(wvY@**fe9z(@2g08q{x* z6m(WkMwTZUaeNuA& zR!l3<>cQFXT-#sahMs=PGZ^(FkgGB6(Z2>5NuzO71m!4*13~>m=lG5yJU5k+2J#y> z*WFXj?ir&B4xy8==99ncohsA4z~kW#f=gR2VY_jvI-eQSsh@j>#w9Ie=gr&*|8XOq zh9l!%v$|LOIto7f*?C1(V#vd!rA?f}ZDfR^x#sD@=DBaeXxoo%oFQ(QKk$=*x@MWZ z7O?cniBvW_YH((gCtEQ{>z>8ng1>LS2RV3&a&@&-#@%*Boi7>;Xt--owsQQoxYvAm z^TXy@o{E7O$X9K+=LS7HW6D|do!N%+V&vLS>I#MDW_ts=sy^glycK$NWLCY;`u7O} zbA{!{_Rm1jpW_3&UmZDFN$Z``kCx=kYF;@%_6bqyXyFGh=b3n^Z>m zCt7sMu?Ixl1vqW4nqNe@dzR)=9C)HL>k<^=F+#a^M3v7tik=D+C}VC^|0B2@BU#3Wd<;-{DG!vktJ}P z+jDM63L);c@Q)m#_G=cBj*ZnX^7}XwYauRC8RH?I8lu3NBLkb48t#$iw5+Z5AXJQ2 zlBr*hg<7Reynbgk;p4?zP+x(t+5>Yr&DOq^7`TO`%w>phoY#G7o54OqP>U#hUn=aH87w{?*4cP+x72YT5KvHM zKw{s$+l}_%`@U)bp1fJDg7tuWz@WE+BhFTz3sUcD;YS5%%Sf1D^2>&er!+%pRv4Hj z!?qxr`pK*luOCS_WCo?g@<%|rLqDqk<2$qdBN$Vb%SWpwe7m_AlDFz2;|qioS$B~_Ecb;X%A^G*s0zkC}Il8 z9s8m5B#dZ>xKxy}yqFa>o$hA3Us{p^xf+_|n!&H-=vT?20-Pb64Eejjm$oc18H^~`$-HDL&TJS^c)0E)it^8he zV}JQV(AkSL15wZc754^RnJt1ffiqe=hj9%GP43$74y}ydR~;+q+0`FX5{c~Q)>5r> zOWqm6!h0C-p6~OdypG-etrkF1?XSq@C~B^~OBtKLB5jUR4_trnIT>RhT&;bm8a;8K zC15`iDf8iVTXgg6v^joY$m{_J)5v~;n*M%0qxwN()WvjP>#2ylaSI|@`?EC=pV|*? zj;RJI)seuXji@K9&_yS4{L`WM7~BmXdi#&d?{ZQKsT-;-0@H-}i#|WHcWNxnjdB0- zPZPe`JF9z|mG|x42kg!Q{sy7>pEw(hwM*Q#pFa=UH&bP&H|ZMd*?q+_!anEUBN?;j zKb;!p&-MfJ$iU1>* zsb|Bh*Vt8t@=grmH5T@77JMU>d>u^|JS#R~HT_LXYe$Rq=R{Gmxcc3`0=d3IR!Up( zz9*+Lko^tY6HSL(G~(xX)GN9EQK{l%0~Pr8exw{-HAXH(1`OaE0Xq_Zok<|#3;}Z z=nfsPghq=0&6c!q7{>PxRY?7pDpU%nR>9)v9;qiR^G6zNCGQH0MKGb1|0o|yD$*VG z#{IETA)3};Xjo%|WZyh0&D$~H+ji%qghPc+Fz3$RppR89S+T7ga;5k~zS_ltI1VaR zcqK`#A;}kLoJ;)OEmf1TghODT0952?Io{N$Z3kn~>?`Bx@cAu0s1~)DJAoQ}{+3GV zVssZPddtt%1S3bq*X3ecdeOfu{ygd@bE$7vRFZR^<$f?JCEi%nC!rRzZjZd%jWm-TKRY`8f9?jyzU4CI95qOh zS7bXrWYj!3Qb()eZci)FcO0)gU@FDIxWv$hfX9#2~dnpp`i-YX6$ z&Ap3Z&gO9*8oE2JzJNc4Ga&?YHQ}Ch)RG8f2P`b{imdVyqSlJ9>5Cbm`ZmOFM`#*w z@szK%sZ}j?Qehco`CNafm_KB$ovFmjJ@NOY9ose91*K@ss1eZl2B!9az+`~knf0?* zUy_XjqV_4D$ic;i(&xX*Gq~G{wvNMnWVtQtRtndg23OSPNuBleFvh?iSc05Zeydjh zDvpq?~;y4`E0F10Zy)dn%Z9bQ>-B3 zT_4Le)h!CfFL*kEC#tFTMh}$v3$V9lk6`hwUx#ag?cnU;%Y_jAR>DPI%otrzG=6ld zp)d{L&zNsn7LYXVU!6f*3?(woFP+vEXHKQ;GIj|Rw1^rHs8?6myPl0hSMX;FG6`dX z8VjE-;()5!bCYXeDT=5cu_h~Cf=5}C3_L##G|BwDE`!i>y#L^}#4jJv_W~I>qrS*% zuL+Cn`nOcs{ND1Iy_kF<{&z7YAoT_`+XHm*Q>Wk;JV z;JRV?6P<5v+=iHgy$6@|D)zhDDy=aug9z%~QE&pLQ3ra^*w}8wl0a@wj)ckbKy`42 z*ZNXsBfw{++AqL5NrdvuM+s=u`t+z~kx6I!$^#D1nqa!AB`+%2=JN>T*_n^hNyTve zOcsci^J^ZN5&_D#-@ z=M)h`0FM=CP&j}q4vz@Fpu&=+`_t98;{%SnlOh;Hjn{}0VZgi2PX)(6LU-4WD7W@b zshjta3l{go!c=#hyiocgC#>`gNjo}3XTtHSLPA47K`eXxs+=2Jdo|(<#_}~f3)(ze z+Xy{X7Dr5a+2ygE;jJv8X{au`2}+k281NQXQM*ud`2M7kc4j7^%aXU0sB0UHBJQeh z2Mbwe^K1U3A(G4x!h;afTlTzju6}_8ycnD!RD<&IK@mWnPid3l)k|3u02(Z~EI=3f zF5P`jgmMB`o~@pU&304;rJG0s=XyL_xhe0(t-*|LQg*B5BK=m@m7p>2@BfVV^>HTB zjp^(&Q{u$Cdl#YH-%3lI_+_$TUp=(@>y}Hj32R7Ukl%Fxguyu_A2ct61;27^`8;d+ z4gORxJaQuk7gujM$9Aa7g1oYMX}#1}SJ0_+Q1i{_8~}UY+!SBh>352San^59kwjp8 zF2yTC$zG?baxw`NYM??bz2w#^yjDf#oHWmanD$AcJ&omuk;hi*F*IwR?%sU5G&DjR zbjG7AqR)dN@}Jk3mBcb@RAOIHl3wrR?7PRb$3$hTj5G+I};xmT83Ao|+>o`Z94{QfwNFk04xS6o`^u)8%AbiR4p z3DKxvZ1#1}Z>kTY?dON~ZD=B$uOEn>Z9-|0OjZrU`h}j)y;TI!pHddFNlZ*CnR>%K zVvqz&`a4%*Je5yqiC-v6zpA=T!7H{Kh7ZB0)II&iSuoQFcJ=v}7s;)@72Wt>GT8C< z$&Vgp-hC^{;}bxB1zVb5bH46B9nF^o)+{{l9$6HOy3t#KXdMdLWxv|V);n*AWazZo zboP(5v9UHCS*(`ur2f|mxpULRd`2&lNBw1QU+VL{I-5$pn?L+v&TFW6eG8}iqav)~ z{sab^k@20yQe)Wys*_1X2<)-_K(>;=zB@m(Dz7yTL>U2>?WrFqg6P72LG9`lXbfjk zKh%yI5rHrBWT(#|&w16@?FN53n(T`VqL*_uV{2a!>#7j>wtx5bBS>4(X5xK)JQ^GCK7=NuZyQ^I8FAK7;Wi$FS{l&s=AUyS?BXm7eDla zmnznf%jw**DQz*|(b&0QhF94{~7v?(wTD!ftV!SMsE}!lP4(cs9#7>t0?U4*m z{e^oR2TTT1{oOWnRigpkBU{v*yZWn=mWv)0J*SuOr0z<&ePmuN4^VNX3g?-{`oTV z6XaAPyJ^$I9^xU=YxXk~TZi&4eZE@80#@FmbV<7-cwhLWms@wF{N_<`lg_Y{7CXf} zi@w<^&F|EyGi#4h?-^&Uj~Gn>mf4l-yYC^58q2wO5{FWEX9A`dSTzy$WsvAlAwD8Wo~WnMAuH#*5euv1&o7u8SUMm1ioZU;83 zZiQpVHES)dyV$`Uj2RHp@YjTDf_8xyA9fZ(0)PQb#%9#d!Zm$ zvF7vLu6;U>LceYM749xDqbqDYK}!?)%gwIuJjj+B? z)gQYEA9gPELXl1R-}9YNL-;TdP2M+;eb9Nwbg4{~{)97^tfMVX)remD9(w+sBr&dR z*|_t=DPCN}sA&Tzhn)Vx< z!lKx;8j)W{DPkI%w;ssGh#IBGYb3jr*2e=RcDCwa{Q|= z1;?Qu8l8E&r;s45_fwsz+0B%E9RPXgGa-qAe6HO3Xy=c2p(c=2Fu5bT_>~-@ibB4M z9r7U1>``K{yPlQb=G-TL#sX)P#VU(-vEaw4J7o1Ihjrpp`iGkjxO}UbJw(s~xx+=> z4UyDlnBr}Z(CL;C;8r!kH>*{3%;ZtpcwPXresiZzIc!xa1o`k2vU)+>F>bU9b&S1(!|fvo>FCx0+pAWBm=mN3fAA4pC6TC*|7B z?hDT<6+5w9Ee8Y9Yvd#cr}^2>1HK-l^WO-P&x0t8*Skc5_Qcw=a}DOm*$@VNfwRG1 z3wq8NcL=94S0-GQipQaxF2iLBm%l!SDIGy4y!U6*BLYJs`uR|Y#-P%{?9OP0P+PSk zMNSJ`*va5#yzuQTwy}xpIKA*)#6KFO&}mtRvOMu|hwDCV+SbOsquzN5lZyo5-IZtT zSE5o+r&b*Eo7h?W)a^6b*KZH$y&AL zcr4@Q#$rk|L1ohFkoIkPkdMdB``p7Oe5^zSNy|ZkTSOc?%SMKM$4K>cXU)x(J3aVp zdtA(Awq-5Z2Y@yByZxl#iU^q%mfTGe{`94PTD{uvI2r9m1_hhlcd+u^qi-A5uN~zz z_EdPIj_#fPYs$_LUFsEkGq~J-s{%;{9VeIEsD=VJrnj)x}v9n}OylRfF z2%9JuF}8so(~7rBYVagID-<*{EX>-(+a^?n=T~~eAFa73v{%d33HrX9b8o>#GxWp6 zL#U*3a+H{y2;@?NHeH+*);4=1wQC^SY{es?Z<>01`a8uk9=+jCV2vyJoFOb$QOm(~ z)PQe=Os$yKIs=!tm_qJa))*TqPWr-AXNeKo!tgRy?F7QVJ}m!tRnv@R{sc35Pji8c zsHi)uX3cBteFbgK;+6wPVPb)p&+{TO2byq6sv@3s!KSbgATj1WsS!rr9+}p~3_Pc~ za;bcyp-5)6GlPwWY{!#>%GJSzpfj?6BU6T`_j_l-|H5N)Hels?4pA#QE zP`#e(Ib0tyRUA-_1~gA8^!}I245!C_2RHfu?Og`hg6X%I$YH$S#VLTEzK7an7@tQu~a)yI`eH-r-^6z{Xf`c%}j~wgt;^!OCp*LfC95HGED1zPh5YCNF1n zE-$$HV$*-9LhHYjAPx2U)Uk`Qwh3 z$5Yw3xR)$OALz}cP3p#C7FaRI>3F>+x^1xZ=vTaDIRriyBwcUEdU94H`m}Ya>+dSj zh7}@pbTbN%aJSq*J$fsDL{)=)dPk@HR>pDbmnv+c9hVA*8wSVAC2_SZ|E3cX9X*JR)D9xz4GgMz=bkh_a_e@71-P9~W#wxBxl3K4K}ZBMAHTz^S% z=u4k9h)DnDpP;Zjq*vSTv*ye`H5o)-#X`jgsSQ5-DBT5$l7;KvIix>%P+=7Ce3_Y4 z{tx$ZLV^%!3q3Rw7-p2Ba7IILou$+X{5*69cguKr>>UdUtlYIfXD^(59zLhAau9e* zJyW@gEN`D4DFUUGQ4NMD1L*ef!-`>2(jQ{q=0b*y}zsFQkmjE8!=m;rwSYm|CHFO(G<0APj0B=W1!%5sJzkdj!bJpGm6mBt6AX0 zPC;)?yLnfRmgQ_aQAE>D=eVVyuSw(Bc~>((y0XGqf`Fj%KJYI?O)0eWJgj%Ys z#oeXBWx9>FpQ+zzThp>>(CYY6bHULoUx5jZ3>-k9wtOlnalK*kpu|i+USEbuHBM;F zlbK2B_fwsNXC?WM>ct*3NTi)R=D%BBQWHR+UcpS*l@K9zj%vb8YZ)vnc8XjwhqI7A zm5m?O!H}Hon0Fky1-nF}mRV(e5cKjV6}S&F91#2+mO$WD{;xyzPBFCxZ^0E3kYE@B zN8fTS^vVwL(u7Wz`N12_|9yy^;_AW1=oSNnT&@%>wtdI1ddxuy)!nue@QP4tFYFI4 zDh8P=W9<-|8{@O@J@u1vC{@2qd@?J7)l-9mYj{qZ6SM4trMPc& zhx^B<6wzZ5FWbznmI>tomWNOEyv1ZQjLFriQmkbmWPZ z8tz}p`T>G0!$qw^&2OqdFw|*p7*CWH`YwwAKlE)+H9KI0n*rPG9gUMU7ngP-yD|fl ztVX`EY@)UxPE-!nAfcWg2*lDS^~M96M7ce0>bLmU$0S@s>;$U2!VZk(rfREyV`|%Y ztkA^c2eTcl!EJ*;DHT+M`g)M(KA|~J>cAP@{EfFFaYfEkFPv>#m>f?{s(hTnIM4dVwXC!JrF1h7epI+`SCn3hf3489R#8Yj_jfT zQt(YXSg9@h$A<>K=nb=#wegE#`HLRwzV82wSsgtx<9 zDIm}U;@P*^xAm=rT-rahPiFEy@OO*1UGc__o_!kzvnjJ%G3wPRKo;*M@!65kGH!4g z>Dbvjc?xlD9qYzaX#=@hz8Hk;dXHhV)PO>gtja>m?EGc9{AwkO()02JqYBY^`pg+@ zw+H$GsB&mz)f6x4gt~KKpEBz5J|(#z%ZKG&$bXkekoIO-iC3brZN(Bl!Zdqw7=tcX zhW$#BX$q!(BL(pTKg~4yd0l8J562V7xk$AffWH8rEyit_NFM1JLXuqbW*rT_elu`(N6cIa|huG`_X|EIjpjY(b0(wGdOBIpQo8 za&xQabnxJpx4cB1#QG^{IZXuwZsnn6)evq9IeC)|+S_!i9Qrs_^a>6T;SDo_KtB#gaG2YToLWE4ssbOj$$6I-}brc;fzUvrH= zbAo0}u|tGLo7`+DtoE zpFZnl7gqMhw_`GVzMkV5=w|un=L^Id?Rtd>67Mt}1C}2x^)fV0C?2YJ>&J?IvC_{Y z*VLmm7dwdBObHyqz-D{8n`W`r*OlSmNILiV_KC!Bq$`p&jTbcThWFLIAs4hdQo7t8 z)=~~OL4Y=r?%fkI%T%}uP3G*10Rtxoci7>6_y{?!s?XW7lfKmA%w-GW%8@KG4{IK> zFN9IV(Mgcut<`Z|RZUxIU6|ZBLrPi3z01E^8Z#z^t97T<+O51_B z(Gf&g3YJ-=FkjI+g|Oe{!)Mnk2q7M{%Eb)CT|JUz#YMf7_=vDJcXh|t%<6Cka5x=V zM%~NMXSh%^(=!PsB5Bw3nF5?;hxM@R0iP8f)9Pu&gPRqEPd)7`srs|r| zeY*ullMBOS$k_sUK7XuIJjg8sAcQ?073dCS?y8^X&|5PbV12yOwNJs+Ppm} zF0E9wOx4hc~MFz$3>X*D@M7PqOi84r zO|=~;e_RBzs`5Jb<^nb{EWo!zQd1*-QxI&XF>=m2(I+3jR$`BS`35A%1x@$Ud)Xe$ zlV-4O1**&XE8c{h53eY*(k@JLQH34mbAA10TdXVK&!xo_$g%UQ zIe+Nhdx;WxUpl?u%k+uYUF>Rb#N?+}wBmS+%0G7%t-&Lo52ks5W!bwWxJ?)9aRSy0 zOo!|a-|g%ev%n3Z+*0~0M=uQzpQD%DNf`#LxGyycZp*BHsM^v&lA67nrTthbM@)KR z|Egt8%C3V>U?xAQLpe%>@{z2Lr!l#$;a(JT{9K%<^>t9)P5@R1R){KXZV)vIrKKQF z1EHm~HUjh=vcR5?|I!o+HB!JCxVQYB@FT7?jx`mdt#Ts3e8d;aCEQTG=27?2o>{j< z`NWPu(Oa;q@w2>;7jlwS9c}k}-4PdqVG9&B2iEeV2J*^<%8jjWT?w})3o=n#A{=V; z#B)w`lzT&?nO`7r+b$z@QZXOE2hVc*8zH2WWS=yQMN3Twnl#3J#NN3CdrKNy=O?#) zc`FUT-VlqyYt(_^9N2i2T;b+ihX+4X7A&J4?pu;SEhRX58?ufvU>{wC%;@jj)y>`o zTTb+i;OKEyYQh9R7z~+8ZVs6D5MOjCtw&JzBO~cm`*mj7*|L1wOZpk6`pNoBJLWXC zl6X0@_7-e;yb`K%!(ml-U?TQ9d^ki9O+JbaJQG2Qnrm@dWaP_sXe*_dBL!aVT>jae zDU`h}wD^r`Fj&9f=82_Mc)CHXnY(EZm*kWH*A=M1GZ(qxw#%95wSq#y$F;&=>)6i@ zp;i_oU{l*CaVe9S*rV4WXkWm}j^qPN!Aa}Kedimi9n?yBn*S2fYj2<(e17G)4v3jm zuy~&4DO=9zFV_KNe^_xw4O*_C9jc{et$DAgX#M$De?6vx4>cSo+h%urE!l37LnHC| z=>-B;)81t}ZmLSd;N9kc#yt1#VNxy}Lq#rtn&)NOI34FvAU*ymd33~6UbBqVY{?yE zB&emVY*(E}U{Bjh=24_DO*1b5fL-QC^Y2KV6(ob&zn``5b9_l=p=(^PeJS6BDmUG;~c zT#hF0Ppq2)&9+iEj7;_nP{`k$>`9g8ss>Q#*3Hy__b&Yid50N4Y~L?Nd%Y_SZn1ws zJdi#xeodcSrBEBLMRs!K$eEiDffJu7IB-(e%N-6OG2IBf8^Y~g-?(ZDkS)mJvGNe4 zR5d0h8GhO@c1vElnb(<;Qsb+gYMWhdv=M6kjVpJ^e_Fb>?^0~hk`+8(p-*<48<8Pe zV@B|{DRNJ|W0V80F9ewVHGZDR7ZA6d458+VhysJVL`4*yTTsV%{k!F_H(KSn$ORVu zE}?KAg)gTHeM`Bz_(dy2@mSIIxg%J`Wky~7z-_ULN|i`k#RgrR02!mMncy3;3qs#F zDTuz9N;##?QuWv4)xXa8i1z&m28N@qcR3itd$m%aQpW_OOgqVuV>>AoXOR*sPWa+EDQI~_u_-0Pwd zx~{gF+wA{^Bjnvf0CDP3$t$E zCkbUTT@W6$0q3V#a^sd)kJ=rRDbPEhU>oE8&JTNi>YfHO77FIiC5aw!EoROhtkhTW zO0Hb>NGO;_OQDR{6o@rwt_&~{nc~ck$?8~|=Idv>+8MGs%}nXEzu?aKP=ZJFv@i4U;bKkH zYi#Pm;G90b@;-uy$2!8ook_P^N+Z#{_2rRa8IeSEeO<`Wdsj0REZ`RvkmR^$q_ z3e4_SnF3_;3Tv$*8x3IKDdu*;8gaTN3byW67ZTm0(b(Qxw3iE3N<$pZ7&#}jywE}_7GYgQb^wXOYQW|5;?n=0+QxcCziT(GFM zq&~m=lchG~gUfW8HFM=WBgN~IBl)geUI#qaUnpL5Df=9#Wr~m2uILlrg+YispY0}} z4-`}AhRSMZ+)@B$d}D_pb+s_V&~!Fhr5G=SD-v3OH;?meBA}V^vnghx*NG@+PgXHol#%!%6L%Lh3V44v((XFwX`^;c@=Fi z7wD~jWWc$19#biPNsUfPtQ(YCL2Pn%4Opx61IdZ^T4tV}LC76453;aQI;%fVp#4HS=a^ zGtr=E$xz4>(xn#AIS=R!C<|cbJr(rNXk-Q^Ot-@a>^(=@|XGv;*vfd=5yk|1~tlLI#d)JZe`0pdzY7D8=_a3M=66R^d z(~gSk6sVuxr^44#=lp`q)|Ur+^(`r;ri9r22AP#b)Sipl1if9u{P??f$Tl*1g+Z2ds%R&WOv6GNKa(N(&6f*YI2ewiClt7MkBkVE6#Qaz{Su>F( zLQYNBWA&FA$`27kLJWNw2(tUQ2ag1h^30B{jL|?-en}Q0;=05gimOc?8EkdTBk`wv zJ4X&60FAV!DuD~xeG(JOkMxOeTJ0JEl`hfuCe zgGpLLO3Q|$OzuZrhPRWG6}rVTek_2E>mo^m=}yvwG^IflolHZq38SOc=mI_>>-N}b zuTj4&77Q=`_3NBk_`f#m?09JHordPop|r@;5V9_?rHo3^i&?1g5WVH8J!IHb3O8#Z z?m()*Mb8&t_B!VV96?Qp!WOO3>B;ufB~#1&66xIloj}3p?X<;()CyGhl>R#uA>@~r zu-m3IAUGR2LUiRsP^An_91?`#C6HI6Ls5Vf7nZB{nVeh?NBz0hQ|Zd3&*B=V<|R-M%tjnkmPW0>gBY8L#yb3Lv& zdbPwp?K!JnxXU*iU=2O=ZfW;%`k1z>;5V=KHpuMXO z8g2LfO3eQJ;3_6mlR7kHpCCv(@K!H9<#o*bO$Tf|C~gP_a#l&mPK1o2%@7V4Vk- z%jgpeZ$#ZL#g)S!_g-XjKk;i83sWz>Q}?uqgG={cgwuIZl+!O+5fsbht)3b{8)FX;H#DR4J_vVqS(@%FO+lQG+!Ld`oPJfKfDj>l^I zzzKP@URc_M$5YAH6=ifIW)_p`Z}*N#0lQ-`vMmAPiJ8KLKZ*t?BVM>%A8_HeKYkI4 zN^V*oO;~8Q%Ce3ulidGpR57eMZz3?7cGTD=9LYN_ z7l9M`7*yeW z_n^$x$AGD-ptSnmn#EbM;=^nK5?&sJ=B5(T>Y1~i%0*Jt#PH!9rhvYclR?*2$vCFv zgIxszi2ApWidg2Jw>p==;nO=*a(i)hJp=4bYCd^P^h5QsG>)tO9FbkfG*6GERY(Sn zUiCg;TLI&o@#3plr6OCb8I6Eq9`;i`Ua12B#OZBFNfk6RxH`HaeMxuP@>0$KBd5MC zl@PU9ms(avE~pyp3x4K{G&25kFufd%+9Pr(!Q*3utM@}IG2bc_UZ4cW+FlB7V%5GZFo zL$JTu{?x?@Km9Kex5@!_co+d_Ee>WoGBqSobCrjM0izky7h7TRrY`FL6;(b)l*Jay z+9V2!w(R~!N+0R<9y(k;ZY?=2@v7W?Q-=JI=OmQUee2N58L!JLSYvH=n#Z5VxGFvW7&V1|FUE;>%n4_ zQfrO9fikLTqPic!7a<3Hmc=_KRP>cz<;!kx&8qq8ilV`hX;70U1Y9r^Lj(H5R5 zC8bb3l5n!Xu6B^ViJTe|Bhq=F#sadcXIuenukooCMXf4q2G7?ty!Q;aDe4vAE0d4L zJy9oSsIbl4kb?jihzPjlrpjayDX#xu*b?@A>}!;o{BG6VbD^U7cjlYhxpnmgZQ5^} zMYgKx;f|UUE>{XUI;kVRxjmje$I>J5nrP)$mVNZo7)`#;c;oP5ZwEnE*%gO3Dd zom>UPPg2%S@pK_XG;%vFiEKo}dnB69D7H#A_>9?w6JPA%JS`XSKP8{E?Q#%E9=Z5g z%k9`6xjA16fAB2f)S{X-EKI#(MP-6(%W6Z>D+17pn29c#O>98UNyJKbUQzvcDtJlq z@DmrjwL?1bBbBP72FXOffU9XY^I2?zHO1?^_pUBi<*n}z?Nfiv!OWDJNX!O$?5iaY zA7eNn9fQVs09MFI5V+ z&Kq%T?*6j)Hj3&wl@z%N+NwNLVhbnzuju81f#GvIZmvZluh&Ald9I^c{f7DXkAqGy z&A(tTHTg=lW$>TAPrMyrh5cEAXu@$%?0fPMd|7;%GVl3cQPV$H9NW3#{f=A#u1TxL zJ0rc$-TvH8shT&y>x`jWPgpm`Ie{#iXV*QviLg3P0y@Z=SF&~2U_P6l6tObxU`{y1 zKes5exhr51$n9M_QIS4wC8(O35yypan zER3|Z6?PUVtuO8-PFwZ3ply*T#!!(8h3SPL8)y(MeO}=EMBJ}q*jH~G$NRV8-O%4N z3k29s0Wwx1K<8sP1lx<6&6kt5KTv`V_n&cDhnBs~B^UjH<0e`ha>r7e4T0-IcA~M; zuSZDn^?`}$ni+d*Q|L$D_NqmNSKBlSzrNvX-fZelHoPv&2H^Q<|U7-a>oCADxu1iiF;z#NJ-t*9TF zF}`l643YA`g0I66_Dnh_+OJL}I5iLS1f#|VZLQ7zjOb32Radl?7j~Ut`h;dElTHGU zN=mcHM6-*8r{-&S;o_jGpZCU4lDNI?x~A5J52TmY6@K|skF6+Uzk}sgh-Rsr=k_no zu*{~)5v5Ic0b7D(iwwX+as#rDCTJPH(1D*#z&96RKh1cOl6FHplpI`s1E1BF&>Kg_ zSZP)fgnN4;5R*Ie9>B_J>dzjb`IENKbF)kqi%#(Aa^1ZayNJjql53|iDh6zX_0_b( z8;g9};C$+CyJ5>JA%4(#0Nh0$!JAL0qwLAuk5{jums7eNA5$zM39$&sonI&jc$cky*Z)`d|A$>O^R<*?0fdNE>xdc1es_ z7HTLPS(%g*iZ~fs=`ucZaCl>5)8$i^z%jRC@`&T{)I!$hIh#{LIeIJ3`M60x_E(oz zGD%XjCN?!4XvtFotEzLvWj8J8d41}}7*WSXab#p(4rWiQ1%^vO28GS=el}`*3@60fHxzo&$7z*-1v&aP%%u)X zr!DnU4=ShA2@fK+O_>O6cjKB}R~f7Glrj3^E1z`|z`LOF3Iu%3@Xv3|2%5m#KA^4x zMd!vIAkzN@jgNmQalCWdkx_ed%H(!%jtxop=G&_9`+OOr_lA#QDYMDNOdW$HLRSyh zP+PJ5sc*>p9UEndOA%$Wpe1~&7;K5Lnb@U{%qdG!BBL&Demo^NEHODXy0p%IdWBZS zsN6gK6>}8Z_;(i*XB=fc{8QKF?dO{@E_stfG2;9Ud8K^6z4jR?`8;QA$DI&V(;pZ= zdM$nj3TDf92d3fwZePS!ZLu(xKaAU1V77Q9tc<>)U=8>p4ot2)4Y%?xxFyAEEy26= zVieNrRAQd>9yl~4bdz{N5^-suKWIpo} zzcm@6Y0;ec9n}pUqd77T9JAGd384D?OZqM#fj?*J+ZwDMB;fO&;e{X|dje1k4`rl+ z_htPcd^2wzA+)eJM&p9<@ngUpxsRKO3A8pxA>!^G0<$N_330h8uzAoXW8`T^O{CUC z5O7p5vs_0PVOsjSfsLBqw|^*a4e9YQitdaGw)tXYdR`CyQRYvn794NFA9miZiT4_B z{LmBrK+7pVlb-h18dRwgb;9Z?5;kfAQ%~zWC%jvxOmRh)R|19hJ@=>?&QYV1QPvzw zHsZc7z88mtxXNRNB6Vw^i`L3-Rmdq3jGC$rW8BVd9o4)l>w#e-S7D!fg$o-ZY)sV+_O>(WoP^iA)(h% z;Yb4<&u7MX`lW9=Yq^YgjSDRx4*ZjyA`XBAZR;3SO$x2!$y!gx$Z_ zQTe=A!}HfGW98J3FyfOPD`}>YN>@mHaS_~;v51ZHUINCX7+|Be{}bK96@{mkU;cL# zc17gXFfu2P586`qM?C17l-=K$Td{icddp9Dk*;H}xiK?G2MIk@ZN6keL1AmY)Cl+) zE7a3pQOtPOE2r;LMaeLe9cM+#r$G5~Gj#7CpRoAtv~yNK~G1>Kp0wXAo2?a25{ z@7{DTp|#4KeweO7D~EuZFwHP!V1t8RP}Aw^*5NeU+jA6Zvy7KBN!h~Z=NL=loU_Z( zi$tI$jC^<^e>UOlUf+>_7HWeUE3vM-7H;EvRvS@m{Pd$9AjlQ`2rm6~e6oq}CiLczZTG5f)AP2P zH6Ve4rU^Sr{2-TJDz&*Li%-7-%OdokfVlx+rS5Wv?*g;ua2RuL`>iQA>oQ(%Lp`6!nu#%1UzWR<=X;4*Q<3k!H zM^O-*VEAqBBxOVo^W~{#0oJE?SkjGCssgoQndRzje~?t+%idT!A=tl($nn!j74Lq2 zRC~}4WGvk@`tD>gC(&52X{=D9fdF$#b{_?@ABL~YWQ3f@uUnl^ua`d7bXyyg)S7rpE?Hfi!lIqu^!dX0+Pl>092bmt*dG^W=cRTPS_`Xvdbd7f-qLzO) zAH_kBJdK~OX3;(LocwW12L9q0(<&>eZYYj<=H>>k&gywW&|`^Y&3VFMYcse9T4?-H z`(yW1zC>`b(BOmt$5?d@KfDY^HryNWz7k=KoG+0_Hg@=V%y68c-t3C#VxlaC)?s_6Sa+6d^X@a zEJt)R|ENNpSG@Vt$yM<9j9G@;^;f?cxX;zzaMArPQyFsQ_i$w|Zo~MHq>OWu?E2&S z#xVPc{)8^B$?_{JZh2wDCgWUf6E?R)!*ZTdf8nXHk`7#JQEpZG?&dy%)tVR)#*dD> zqt1Ja30*S5h{72IH&DCRq*dlOpW*PV%W>mYn#}F)Y7K!gbK+;l>xAkHVZ2o#K_!GJ ztp%)vA~3;z$VKn4>21(@v}3r%+)tj*B0~1>7-%Lo>>jKnCaQm^ES-4v3?SL-p! zd7(Lxh6_Uj>LUv8*&~>$)Ofsmg2P#)o`J4T6UM>$p9;V=dX z6Y3-u;>;jeUB%lpO|&B@U+doQ<0sskCzJS5uXIaY#~<_gVz6~3Ng#a@;!BI>6m~^$ znhF)iFWN9dqwQ)471)3>Vo=oojT1)mA_B$s0K;V zJ|J0kR+av27Gs_UZw9;Dtn1c)JtY41v;4d1hp!9D7qO>0KZsApd)`!KWp7d#q2Jgr zAE!dWtm(G6AoIvg6_Wnse0nswWZiRSO4_A3ByPrvs~tQ&;6T0;uR35S&Yi;CP)h7( z3>hY->p`y*!v=f(fL9kUo9lw>i;v+63(zxU-rhXZXPzu?SAV7()-R$VJO*i>M~dvm7Z&g=HiWxgQGCroK5^kU z*1fb28vnIjDjgu@wWz}(P?H3Wrs`QqgX%!MTbK|@@8>)39M{5$;UvrByicdDzJ*_| zok-LfaBMPzDRdzRcDPJ9lz4&If;2lgephjXyhj#0PhaeY8>G8zgHy@_P`#5{L4%g>ZS0UA;* z%6E0Na!nKuteU+lS9a#CBolC*Z{r@OmLtW~Qp^@fqb8`2V-8JHga zn7zgOniFRu-o|36v_gOO#3DIec14wiT);N9YS_u1eD70Uh9oJ)N<+Y`C-mdbWrR!X zLU%1z$ux$*BUd<8KOaPoqw+>>zS+;#!Wp)icO7%2f^!A(0FzIxPK>na#p;AZEC;bb zkMMw$M%{^D-)p`vCdjwEE8mW)TOSbDsO=INvLkrS>0@g?HU6$MeJj){=cpq&)&H!s zsw)a}b*A@xiSHmLdt}zJ3B71(*QmaZebM&BpSv<8mE6n-jY#qR^a9+jkn!cj9&RwV z?h}6>5s-5QeIlrnY!R~}E8m)!e{%(pFxrfMQw!t|=`xH$&m*DpEtYPat*>93n&)UG zo~2EQdW9hCWZDco8Vp%8Zq8fMOW2Q+u)F*MS5)jrg)|P<#~O|KVq)0VKVy0ErG@Km zaai383c5ttwt+{968P<~cQD6m*B1yhZY?N-E+e#g?61p!(OVsIxEdR&96_dHyM z5{8f}Bj?HqMt3SB_zBbNmv{Z!$+N;<;oSPT>XI|Vr*6~?R?exwOR?EWV=`;Lq2$Xq zcozc}XMB8oNLj-9<9E?^TiL&BGxNR2vVG$yQ=u#i(0i`kM2|rUOrG<)$s|)ya&I^c zock!sK80^tGDks3LkU-d$e@m@5?DE`r0G|XH%N2TK2Z?UdaJL!mOaSiGe}04zvD<6 zQt0Usvsj2jF0Os*Eu=mV|6~}vHO~fUcan~7Cau5_lLyVZV`8X*Ay&xS9ldrHU8&0$ zpwdyAjUc57UqKtt!;TrD+)d8SV}Bw zADc$428iLAquaDu@=Iqap(3#~HTWJx(QmTD9-Kn?MuhMcot^by#z> zZ8weW)W0cXk^{^pSD`v}xm-a{=sUWo#)Y{T450VT`!Fz_mV1z=Pe}*L^6+iWbrbTb zhBrfSAX=g%Z@HiWld{6+I`>ZxmIt~%T`0*B;gnW}%p4~T7#nnrr$tFw=L@~s;;hy z@gnPQ9dOOFC+9W@ZJ&UB;hRsI=z6WqU2X-EDn${g#t${(WDSj*GxI30POP~SK?4#R z5XT*+#WH1^M>V#&;idBS)*8P+SG^v17{E4?#a}kwKRpkN0mr47$}-Mt_XzPr(B*n} z9O0=;DNm&hhkB|VzBz{?#SHBw^SWBrI=a^Ucu-=p>1kS$uSo9_jBN1nWN8qNvCq{w z`D1BAlVx|v_RW&HUktou*c8*>nr--wP=$Mb~I@y77gPrXI`j$SR=2tDHi! zoVP#r`Jcfdb#&aw_bQn6;u)FR?&m7^?ArvDRm3>je;fds5D<}aJDyFK(fQ-fd-D?U zDO@Thdz`})QP@o@hpw2ZHU5P&NJpVRTjK<(rS)IJ&C&(xyFaYWgF2oC&EcKz;4m^L zqQpgomA+f~UgpACv+Va{i6T?9V8IE>Zn_$uxCqR-YR)G}&1Znq5Ku7BA_A#OQ6YRt zDDL&gkWLOP6{Kejl&vf3{XKKmvy`Aa1HGcG3B6az5U>_QZw0s6$)lgjTqeL^Izm_;ZoSocG;wz**+&*cxDz?M zr?(385?>2GD1U*qJZCA8|31Xu(2TqpNBd*1Jh$%sF7e+1AA$Sx2ASkT-%!QvTIwSS{DAkBCs~eooC8EPy8dGm>d3*&X4d%F30_A%}4*NoN^^6#o zLl-!`&`}{6%A8Py%C5|R z{Jx?yDn2S+Fyp@cAl}$r3HQR%KxLe}%l=;&%HEG`Bta__$M)hVwLnIS*_hY#WtsTX z_M~>&lnNA{rEz$cWOgj*xn|07plB1rA1%l!p+4W;OHE{Z7G%z!I8wGlUimT`oOX0; zgK?%^+Y5b6`&G}XX&Ux1E(a|fDoW8&46+>jv{;0d z1Ye>lT0^yJxkVLOS8!BkebDiPA%X^_l_>n~0A;fh${l5A7UF__l=67;-Gb%`d1h#PVYSX8V7V<#eK#?`6-T zq}!G%@Sc#_WuDVaT=-e86!4O(jDVClaoad@?7leo7AU90bW$a&Z4z&8u)JSu_U-A( zP1y*E3HpS+WOGO#LHYc2ewIdL={UG^Pr_59G&V$hbU(Eh|AM~YodW*;CaDM}n?>LV z9{T4A2%;Llb3unUZn=cx23``LZXwuiP7-8NG@JOjX6y7k6H7wjxnfARp7v&Fng33w z^y5D)x!*lCNuDcyXA*?FkgE-1q7FioKPO(BuKLo}j+z?!*6dA4pxow@zE(3nKuPu} zqtp+3CR7)Cz%z;JKjb7#iL&8^a|z<8GO;S0nfy$nCLpt&w=nrpGctvU83Vp&u9Tw3YjgQJ9L@=G@61Zi#*3XyE2F zrgl6VKK`TA8wj%7hh2Df_%*6nnmtA(*%BWE|_BNowr?42dqeo*2-2PT@*myn#?)HPMa3QXr6yymGXuy19$xch3&bOGZ8 znEr^EcxQ&>GQW8%#sJSvi(hJtt5kI^;?^vLKQwEX zZnDheR9YUn9s$V)1yusn& zpp6cvlG%!PNuh&U+h(GFoRQW#~kZ(BwcZ zQp;n7g-jT4(f<>UAl&JqD;v1OkCu*#G@}bILhJY~&>hhMaH=d*6CtZ>6usY_9m=4W zcm=Ose0N|T{bjH>P-^ni-!JMLc0rTXI-8@-Ovb2i@t)@wCt8rxOZ~Xew9Q7o>YQ0g z8Z|s7c@?WGL-3t~r&oWbR|xWz8#4p1`-j}AtKlNMs`nO;XUeqVt6^DdjPgpx@-4Uo z1(5^uuX+n(n0^Vu1yY8}jsLKC22t&i=<>ed17tNtWnMZAcIQHU6kawtHr2g%^b7fbZTWo_g{)xF zzPwbHsui+PEDK2HA9oFmN8MLXwY=_68}MEnvG??TBmJDb8AD_y?kHG%{${%&=APn5 zUsEd(?Yi2BQK*>sw6u}y)!4yZWA}eV_*csREyBN2z7U80uU7vy`CnT7 ftGGhklTd{62_Z7c8V960FO;OHoJgs#-mm`y9cwuI diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-anim_basic_16x16.gif b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-anim_basic_16x16.gif deleted file mode 100755 index 085ccaecaf5fa5c34bc14cd2c2ed5cbbd8e25dcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1553 zcma)+TTl~c6vwlh>nb99Af5rT)t{mCEg5urg=A(g z{C|6SPb~9Xage|wB`SrZk2FOMYM!buln2sX?5Y+T78iB(Zu9cS7|LZyZ++}u$^oi1 z_j@S}bW9OzU2R+RMy&~OT>X-oZ98$jq#ogNfJ!BM-42wHGZk*6s2KD}U*IA%epmxb zm}|6BK9YoIF;*xSL!+z@<64lB7->LTW2Vi4ostCA(z&2XniwNIv}fFo-`MbG;)u4G z^p@F!)|9HhZprHd_vXjDoxs6WkK-6P0@lfxnGT>*p(QHoUV=u1FAqb@b%*W=a3{`LsH5k^AvQNL>6fPpy#oU(&MuH(*aEX4b35*} zn4n7)`I2U%=+Z=?BVZQ?vjQFW4gD@~XSOO6b{qu81`4&LFuU2(ilxW+1|ZkNMnWe79C$gs zWT?Ele|HR{JGPe)5BTW>0Ey?-Ls6S#GoV0tbt6ku7B&*0 z;i9QM$W1Rj*rRIdceL)rAOSl+sDe3LkB87<%){;ZdHp6|SNlopDXRx< zxBDF9-lTo&v`8$humFygUij@qgT=Qzhj8{ym2-{Xciwqq_Xwk%=O3B-MNAL_6e`3U zyxwmXex4`g0^1RYw~Dth3av3Dl^AAlpO3mG!nLr#&ZZ7c_wUboI+deC+&%TFjK2Lm z!Y&f1h|T_On%RCV&=4bx`!>(YezqGVhl&QpED?N6GV)HmzJ9&rh$x*i?*@o9#6QI< z5ZI_MRX;0+pY8$`j)eF#TlUyG(eE%E7S!rj;mj^M5vhUicPm zVWQ2z+imFyg}SRABmOBY_@osR!>7Ov!ioK`NB6_Rv}7Ud?35ed5Sb@?yND?kv~RCa wqs^a3Sh>&&L4)!LKI?D2&k@))k(LESaga|C278ChSzn3NWVkcuNoY&{0f?~U_5c6? diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_flat_0_aaaaaa_40x100.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_flat_0_aaaaaa_40x100.png deleted file mode 100755 index cf94039668285a331232b43faa80538cebd3a63d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FDaPU;cPEB*=VV?2Ic!PZ?k)`f zL2$v|<&%LToCO|{#S9GG!XV7ZFl&wkP>{XE)7O>#E;Ad0vQ>qYULQ~>(bL5-B;(%O za~pXX6gU_RoelwHY2N?5qe+sdIk_kRex}nKnORG}HUJ&Nz~JfX=d#Wz Gp$PzITrd&< diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_flat_75_ffffff_40x100.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_flat_75_ffffff_40x100.png deleted file mode 100755 index ac8b229af950c29356abf64a6c4aa894575445f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsY*{5$B>N1x91EQ4=4yQYz+E8 zPo9&<{J;c_6SHRil>2s{Zw^OT)6@jj2u|u!(plXsM>LJD`vD!n;OXk;vd$@?2>^GI BH@yG= diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_glass_55_fbf9ee_1x400.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_glass_55_fbf9ee_1x400.png deleted file mode 100755 index ad3d6346e00f246102f72f2e026ed0491988b394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour0hLi978O6-<~(*I$*%ybaDOn z{W;e!B}_MSUQoPXhYd^Y6RUoS1yepnPx`2Kz)7OXQG!!=-jY=F+d2OOy?#DnJ32>z UEim$g7SJdLPgg&ebxsLQ09~*s;{X5v diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_glass_65_ffffff_1x400.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_glass_65_ffffff_1x400.png deleted file mode 100755 index 42ccba269b6e91bef12ad0fa18be651b5ef0ee68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouqzpV=978O6-=0?FV^9z|eBtf= z|7WztIJ;WT>{+tN>ySr~=F{k$>;_x^_y?afmf9pRKH0)6?eSP?3s5hEr>mdKI;Vst E0O;M1& diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_glass_75_dadada_1x400.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_glass_75_dadada_1x400.png deleted file mode 100755 index 5a46b47cb16631068aee9e0bd61269fc4e95e5cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq|7{B978O6lPf+wIa#m9#>Unb zm^4K~wN3Zq+uPMaW978O6-<~?i$)F&>d~nX+ z>vO)oJQ&&FVaKefeOt$qOR>f~^ebnN_=~%qdHEa{vDV26o)#~38k_!`W=^oo1w6ixmPC4R1b Tyd6G3lNdZ*{an^LB{Ts5`idse diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-bg_highlight-soft_75_cccccc_1x100.png deleted file mode 100755 index 7c9fa6c6edcfcdd3e5b77e6f547b719e6fc66e30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l#Zv1V~E7mS{Ou}E*`%9 zKPdOkfrN+ZlHSt7(uY{3{#;wiJb&Ugx1>W4qtrSDm(4hFaaY-$3p3x|sIU3`%J?Qj YcLn#R=pC)AfTl5cy85}Sb4q9e0MP_2(*OVf diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-icons_222222_256x240.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-icons_222222_256x240.png deleted file mode 100755 index b273ff111d219c9b9a8b96d57683d0075fb7871a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 zcmd^?`8O2)_s3^phOrG}UnfiUEn8(9QW1?MNkxXVDEpFin2{xWrLx5kBC;k~GmPmYTG^FX}c% zlGE{DS1Q;~I7-6ze&TN@+F-xsI6sd%SwK#*O5K|pDRZqEy< zJg0Nd8F@!OxqElm`~U#piM22@u@8B<moyKE%ct`B(jysxK+1m?G)UyIFs1t0}L zemGR&?jGaM1YQblj?v&@0iXS#fi-VbR9zLEnHLP?xQ|=%Ihrc7^yPWR!tW$yH!zrw z#I2}_!JnT^(qk)VgJr`NGdPtT^dmQIZc%=6nTAyJDXk+^3}wUOilJuwq>s=T_!9V) zr1)DT6VQ2~rgd@!Jlrte3}}m~j}juCS`J4(d-5+e-3@EzzTJNCE2z)w(kJ90z*QE) zBtnV@4mM>jTrZZ*$01SnGov0&=A-JrX5Ge%Pce1Vj}=5YQqBD^W@n4KmFxxpFK`uH zP;(xKV+6VJ2|g+?_Lct7`uElL<&jzGS8Gfva2+=8A@#V+xsAj9|Dkg)vL5yhX@~B= zN2KZSAUD%QH`x>H+@Ou(D1~Pyv#0nc&$!1kI?IO01yw3jD0@80qvc?T*Nr8?-%rC8 z@5$|WY?Hqp`ixmEkzeJTz_`_wsSRi1%Zivd`#+T{Aib6-rf$}M8sz6v zb6ERbr-SniO2wbOv!M4)nb}6UVzoVZEh5kQWh_5x4rYy3c!871NeaM(_p=4(kbS6U#x<*k8Wg^KHs2ttCz<+pBxQ$Z zQMv;kVm5_fF_vH`Mzrq$Y&6u?j6~ftIV0Yg)Nw7JysIN_ z-_n*K_v1c&D}-1{NbBwS2h#m1y0a5RiEcYil+58$8IDh49bPnzE7R8In6P%V{2IZU z7#clr=V4yyrRe@oXNqbqo^^LvlLE?%8XaI&N(Np90-psU}7kqmbWk zZ;YBwJNnNs$~d!mx9oMGyT( znaBoj0d}gpQ^aRr?6nW)$4god*`@Uh2e+YpS@0(Mw{|z|6ko3NbTvDiCu3YO+)egL z>uW(^ahKFj>iJ-JF!^KhKQyPTznJa;xyHYwxJgr16&Wid_9)-%*mEwo{B_|M9t@S1 zf@T@q?b2Qgl!~_(Roe;fdK)y|XG0;ls;ZbT)w-aOVttk#daQcY7$cpY496H*`m@+L zeP#$&yRbBjFWv}B)|5-1v=(66M_;V1SWv6MHnO}}1=vby&9l+gaP?|pXwp0AFDe#L z&MRJ^*qX6wgxhA_`*o=LGZ>G_NTX%AKHPz4bO^R72ZYK}ale3lffDgM8H!Wrw{B7A z{?c_|dh2J*y8b04c37OmqUw;#;G<* z@nz@dV`;7&^$)e!B}cd5tl0{g(Q>5_7H^@bEJi7;fQ4B$NGZerH#Ae1#8WDTH`iB&) zC6Et3BYY#mcJxh&)b2C^{aLq~psFN)Q1SucCaBaBUr%5PYX{~-q{KGEh)*;n;?75k z=hq%i^I}rd;z-#YyI`8-OfMpWz5kgJE3I!3ean6=UZi!BxG7i(YBk? z02HM7wS0)Wni{dWbQMRtd-A)_Az!t>F;IwWf~!*)-Az4}yryNkz&9)w>ElA80Oc`6 zHo#9H!Y3*Qx9n@Jn)!w6G^hb;e_n8zpIyXCN`JFkPc)^Q?2MsLNFhMgrcZI-<#1ne zjH;KFf?4eAT9mQZ}ZfHLGA#d%s;SZK4p0FwZT2S^{ zQ2BG1xJsbK6?yrHTjJi|5C0u=!|r!?*4FL%y%3q#(d+e>b_2I9!*iI!30}42Ia0bq zUf`Z?LGSEvtz8s``Tg5o_CP(FbR0X$FlE0yCnB7suDPmI2=yOg^*2#cY9o`X z;NY-3VBHZjnVcGS){GZ98{e+lq~O$u6pEcgd0CrnIsWffN1MbCZDH<7c^hv+Z0Ucf0{w zSzi^qKuUHD9Dgp0EAGg@@$zr32dQx>N=ws`MESEsmzgT2&L;?MSTo&ky&!-JR3g~1 zPGTt515X)wr+Bx(G9lWd;@Y3^Vl}50Wb&6-Tiy;HPS0drF`rC}qYq22K4)G#AoD0X zYw$E+Bz@Zr^50MAwu@$?%f9$r4WHH?*2|67&FXFhXBrVFGmg)6?h3^-1?t;UzH0*I zNVf9wQLNLnG2@q>6CGm>&y|lC`iCFfYd}9i%+xkl^5oBJ?<;aneCfcHqJh7Yl5uLS z9Fx-(kMdcNyZejXh22N{mCw_rX1O!cOE&3>e(ZH81PR95wQC37En4O{w;{3q9n1t&;p)D%&Z%Nw$gSPa!nz8Slh7=ko2am)XARwOWw zpsz0~K!s{(dM$NB=(A=kkp>T(*yU6<_dwIx>cH4+LWl282hXa6-EUq>R3t?G2623< z*RwTN%-fgBmD{fu*ejNn)1@KG?Sg*8z3hYtkQJQjB6 zQ|x>wA=o$=O)+nLmgTXW3_6diA;b4EY{*i*R%6dO2EMg z@6g?M3rpbnfB@hOdUeb96=~I?OIA3@BWAGmTwiQ{x5Cqq<8c10L!P zd@Qk^BseTX%$Q7^s}5n%HB|)gKx}H$d8Sb$bBnq9-AglT2dGR2(+I;_fL|R4p$odJ zllfb0NqI)7=^z~qAm1V{(PkpxXsQ#4*NH9yYZ`Vf@)?#ueGgtCmGGY|9U#v|hRdg- zQ%0#cGIfXCd{Y)JB~qykO;KPvHu|5Ck&(Hn%DF~cct@}j+87xhs2ew;fLm5#2+mb| z8{9e*YI(u|gt|{x1G+U=DA3y)9s2w7@cvQ($ZJIA)x$e~5_3LKFV~ASci8W}jF&VeJoPDUy(BB>ExJpck;%;!`0AAo zAcHgcnT8%OX&UW_n|%{2B|<6Wp2MMGvd5`T2KKv;ltt_~H+w00x6+SlAD`{K4!9zx z*1?EpQ%Lwiik){3n{-+YNrT;fH_niD_Ng9|58@m8RsKFVF!6pk@qxa{BH-&8tsim0 zdAQ(GyC^9ane7_KW*#^vMIoeQdpJqmPp%%px3GIftbwESu#+vPyI*YTuJ6+4`z{s? zpkv~0x4c_PFH`-tqafw5)>4AuQ78SkZ!$8}INLK;Egr;2tS18hEO5=t;QDmZ-qu?I zG+=DN`nR72Xto{{bJp||`k}-2G;5#xg8E~xgz22)^_Z;=K|4@(E&5J)SY2of=olcw z5)@L)_Ntcm!*5nEy0M9v0`S33;pO4TN;>4(Z+19p_0>u#e-vE zXCU(6gAvu~I7Cw(xd%0e59MNLw^U37ZDbsBrj%eDCexw8a3G`nTcXVNL6{B7Hj@i& zbVB{;ApEtHk76q08DJ48dSxd$C(;$K6=FpU<~l9pVoT9arW^Vu{%Bcn4`eIpkOVC| z$)AKYG_`ypM{0@BUb3^9lqi_c?ONH|4UJMJWDowMVjacycX7}9g={O7swOB+{;+?; zjBo!9?+nd)ie#x5IbFW-zBOo0c4q@9wGVt5;pNt`=-~Zgcw#*`m($6ibxtZ`H=e=} zF#GZ~5$%AUn};8U#tRem0J(JTR}d4vR(dgK2ML~lZsPhayJ2h1%sD4FVst| zKF)+@`iNzLRjg4=K8@**0=5cE>%?FDc({I^+g9USk<8$&^qD~@%W0i4b|yMG*p4`N zh}I!ltTRI8Ex$+@V{02Br%xq#O?UlhO{r8WsaZnZCZq0MK9%AXU%MDLT;3=0A9(BV z9VxxxJd7jo$hw3q;3o?yBLmA=azBUrd9>-<_ANs0n3?-Ic*6&ytb@H~?0E(*d>T5n z-HiH2jsDf6uWhID%#n>SzOqrFCPDfUcu5QPd?<(=w6pv1BE#nsxS{n!UnC9qAha1< z;3cpZ9A-e$+Y)%b;w@!!YRA9p%Kf9IHGGg^{+p`mh;q8i7}&e@V3EQaMsItEMS&=X plT@$;k0WcB_jb;cn%_Idz4HO$QU*abf4}+wi?e96N>fbq{{i|W0@(ln diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-icons_2e83ff_256x240.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-icons_2e83ff_256x240.png deleted file mode 100755 index 09d1cdc856c292c4ab6dd818c7543ac0828bd616..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 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 diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-icons_454545_256x240.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-icons_454545_256x240.png deleted file mode 100755 index 59bd45b907c4fd965697774ce8c5fc6b2fd9c105..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 zcmd^?`8O2)_s3^p#%>toqJ#RmwV2==ic*rz7lOw=eaq=H~;_ux21)-Jpcgw zdj+hrf&W^f<%Qk9Zpqf#;jH;N^Z%VA?R|9mZ{esQd(2F=?y+!`XZ5CR?ue=UdHIfUDFM*m15I;g=VN2jw zQW9?wOhDI#+P0|`@JQoC3!pu=AzGMtYB>V&?8(2>_B5_p`1Sb1t{^|J%bZYv09RS? zQ*dcs7}$)taJ@vX0E<96P{ur)Eygr{&ALyNoMP%_94m}=qFVT)&CeG1DBBMLUSKP^ zp%%Q3$MEtKll)X*+$)3O_3x`4%cHY0uhy7U;5x^Ir}X1)mv&B%|A)@A$a>f}tP{5X z9-gkti`YyT+hk9)cZW7fAQhjT%$XLLI^&VR=qev36;`WGBOP!^&(?!sK6jSH0Dnz4 zoEMMNu}y&n=rd-GWI?rGBI8!GD*NJ$k&e5-6+~-9F^6tV<=5`FcY~t{iqRcncEU+F zkT~jww!oy(@~b~WGI8!lzjURX&IpJjFGxShOKUunP+rW$I{c|x0qM6!Gxf6n(;$D> z+QYiULqq)Fy4VDk&Mev)NyM@nvF z7O6M*A$C)kBi0HGMT_+xfQ^USTM)>*h_Rx%eSRxA%n|FuC&=F=Pz}E5uCqbcy;7j=%Qh`glqEA-jx0(a<)uKO5Fe|JLD-ndZ-vnW`G=O&^%pa}Ah(2%m?oANs{lJ`?RhrZ8n!`Q97TKw{YAw9 zD)=M{mD(~_jj`LTd%q6Veum)Cnd!7lw}(5h%ubHcg^2O`prn%u9es3C#&%TsnmSD3%3Ik^Yd@6-d%(I7kqT(B@dVX2 zIidXgd>qYT-oTZ=1sGI7^*_E9Q)1F2mooE0R zXopPnh^ci@+wz2ZDjo&Owyxh6t90Gt!u0miLxc!bue^LvHF?)O@Yf!dQUXfW$u8(f_n07^N)-vpIe;TrHv5uKm{h_v`-IN^zwWc>Lk ziGsSr89sDcdOR_wa~DjrqV&Nd*$18(vohPJ3hSzEJPF2d!u}415wrSMtS(zNa7 zbO0G4ajgKNp{`D7DO<(T?wowarQ0dIKLb<}#prQM)ytB73YNTPQgX^xoT zm>;yKSJ*c@QfD8HW`6&+mowOaA|A&~G0fO6&xwj;E3O9^Zu~ZXts~;-d%FyyeXrijORi<_S(dw_5@h&-fTY?#FJo% zQZZ1&ED%$if+n8JVM{s-ZoK@P>p@z4s`AoI6hYxE!Ie_Y)cpjZjc8@~uNMYVfy#J$ z)+sdEX7DK^{}kUAST8U6^p6#c>0Lc>T~9`0}`*2 zizaU)TFS4(u;BenUWZr?s{D)Z)rc9L5&gUvz3iSQaF#J)D)Ts{YgagdDcI1S`dtes zPqb4|h-RIkjhnpmn(Q2Je6Di5C?MkCUL)!WoKn|P#al41v#-Q8`K1$Gh64UhPQj|T zaZb%tJ}O{A?Cvl26!jeKS3OUkp5@8RDBYwh`Loxb5W<^m*R37+v}#*m-G{{ocF-#r z7!k3ZS^4Qu9sNRNZ3`laW2TqV{rsR#~gtVp6C zL0?}~gbLTv^jqtPQD@Cpq6{B6v&*Y)?tx})z=qQNB4Z_59 zpI2L)xQ`!|J8wWgs82jSw_8(;#}y7~Y^&hY9P1G)@`CGtIi*tZ%-%&;$PuG(!M%)E zQ?T#imBH8dCZxUBX^RWPwIh9LcnL3#$befQDr@UJl{=}o0){qIt52vU9X=3L_gvVW zPqp_YhhpM6XiE7Lvn-G0Wzo>0;g|$_-7|ucz~*w%bW@hr6M?~v9dT}L=>UotTj13& z?Uvt0_uOvzMq4iG6)gZqeU;W=P@EVod;}Vr7P*@=C19v;iz$4N+c5ewauTtKK5e;yIx(FQUec0 z`G)VlTUY|m2L=KusMRgMlapu#wt8MohK3=y`!J`tD6nYd%?xIZO`Q)skL)R%3Vf(P z__5Sx3h%fKF=sNdZo2p(w=_|}1M%ri7fO?8))sU1ySG;M4p4;zrr}4l0lzvA!WQ&a zrwX>%lJkv`Gr_u=K>kHOg6(AB(R3FOryElY)-vi|fRsBS<)$1;TC_?BnyScjY6>_ZD=T|bjcbjz@D6V+yfHd4SU+J*2Dh%n;$5ou zHh6R=)$>IH@%5js2KH#JkfFCVI}P>~U;|}>kk|06tA}^~B;|gJ$UvSF-l4GX43DAR z&M2mp8OgiTaK4li0|Q2qmGNYsm+Qq^JM8yfCP>5!31rjh4Mnq~+5X8+_$scfP1Fp!c zcQO*#6cfJ?ZRxn_$Se_|}Xo1oIF7s(7CllypCW@W8-y5%Bel_K*0G zd~8UWeYCWz>~^hF3ond|tQcClJ(8^9FW&&?U)a4O-pE;Y*u|FHGax>F*Kg_beOF5c z&?#xRN5Q?ckEwCnNr-${XC=w-te5%QH(6O~yxke=R!_ns))PU07Pu)CY`<>$+XicZ zCI=g^;q7NZnw=-vf;HoWLD+}`&Bph>kiqyX5jxjI1A41d$R3nahq@CHULV#9ItIwJ z0)^JGy{hB;@SD|}Zel8~2z;UjN96MR@dt;EV`9RP4X&zn8ib=n*107cICSp7z6srZ~4Qg|Vp$OB0By{IxAPaD7HGFw_HTza~wWN1A6 z3`7BZFse2a4{y#V^&;nRVcZOz*2>A?jm$%?)KawLR0cEz24qxxOOo9_2)9MrWpSg7 zPiPz+M7(zPRZ3$#11ti?uI!}bM!Dg%L#+uR+^2L2RX+QlMpL zg_DrR=GIT7C~b+^OZK)?l7*9c-78zWVbLo1oS}bItdscuF80}guwA8c^(47DfaBjV z^V@&JJHxYHqS+e7&X;ezZwsE2+t~n0?*m^(db@WnI{LgAnOqOa<8pRvo0E>*O&~J_ z&A)t2LOG)5=3$3n2_gi2Kpvgv)#LCUh2Y~ z!A&(~-8reT$sJk0=L;m~ES3k}k% zkF%gzzT(+nRU0IeUvuW8pq=8uzr&7HW>K5ZiD*8qL17AI^ zGqo>*mvIChU6+&t{A3|!W?~pi9_O$>k2d|#(Z721wcT{S1)_UFZ+}QS^KZ*u?5Y~bz z^cLI;2{$C_ZwWqM@sYMYwG+^N<^Ivq8ZOwV;7xT+WCh)I9PHC}ut;VNr?w z<@?HsG!Qg3zaV+-xQ3ldtad!U<6iGz_enGH*2akP_r)o1D&8p^5M)_c8IIj6Wy*7HJo&CBLuo~nj>(63pZzO(Vv^ZuB3 zMYigjkwA;FEy|G}1jpiMj6|NTm7Uyiw=@FDE*nX<>jR!W@9XIyf%$Fd*J5*D0Z0Lm z9}ZQxyT|x5ftNy?V>EbJz-K>bV9gs9RaXUP<^=;e?&Fqxj;6{ieR-a-@HycA1KMKhql8GOmcxwZ?_-(3hMK^^a*(gaFvBH ziIC!fgH4$W*NbKIaY&T?%&13``KbD@S-0`xQ%v3TV+B!;RC7O!+1a9QCA$H@3tR;k z)SSoR7(s4)f{zM}eWgFN{(ZH5d1O}l)f$ruT!)Q&NImXyZsTzOf9TwctcSfr+M)aJ z5otO+$jvm-P4)ykH)x|cO5xeb>?!`qGw$(>&axqLL6yoB${vsMXgL_-bz@2J_tS92 zdvZG-+vKl@K4Vr(EL{WQt@Z+Ea-hxX0}nTSZxnpi^#Kn8Ox8FgIS|hc}KJQ4tm*HO16ui{(O9} z1YN)GjiQt6fGq`Cj+^`zUf?8hk^(T{{cOQGWFP98am}is28A!5%{R#ENv8fCN!j69 zlMEK(2z?|BY=Je$XD9mB-Kkem*(d-j^9j$2#6r$Dz?s)-TCDCGCs z8>6Pvj{Y+YIeFA@qY22V$)awy@q!9A4rgk5b9TcC;s9Ig^G|6nDP+5=Fzg&?(L=vc zCbGd>fSu~@6!94td+o#d@sid!EIX$rx7*cawe6 z`dScJ+$HssdOjE)O#Ybs56vm-FQ$7yuJJD^Zqk%hMaIgAJ<2yb_MFQte_i;62ScT$ zpjifYyR_E=rQ+>H)pmlr-Udzg*-!|ssw(D7wJvC+Sf8bb9;;q8#z?0p!!bsd{wy|5 zpBaMHE-Ve>i#LLjHRaMLtp%9&(HCng7Sw96jVv!#0k%?F^K7&=T)mnYn)D9(i;4x5 z^NJTJwq~pv;kH@#ejTd*48~(J(r6j34|m`h9fEDj0im)~+%I5XphWymhT;_Zty|Q& zzjPg#-ufAHZ1M*Gccw?Kf|8Pnhtb0`!{N`Bqsa37J+>wC$!e z00k+2Egzz;rbcWoUB%Jvp8W1}$XD%e3>4y;;OZ1ccT-O#uW6Ys@C}Pa`nZrNKzR(2 z4e%3)@QI4SE&E!lW`5y14QhbepBG%_XBV-O(%5tj)@9#|;sC-MNev!zGDHk}JdpGC`iJF#8=8-P$Xoku_=Dw%Cv3{U7L>gf zRQ?<$t`cZ*MP5GQmbmx#!+*!zu>0MewRO9GFGS{b^m_fJ-N0?j@EqoFf>$khj+E|@ z7r3We&^tR^YZrxKe*d22agXqCO0l44&kqCv{u)T|(lv`~PK@DvE z{QI_TlCH5z*gR!>LO)k67{^R+vWx24U2^2ODXpwT;6y+6+$5m)_*w4WY&#do9dCeE z)>p+Ykdhq($DhmMiaYXey!@N%L26uz($aJ!QT{B^Wu}U$^9e#5)=c+XF9@Ill?ZmM zlNgHiz*9!vDc&uxOo;ZVxb`Q!Sk0*gnfxWzmbZh4(=%CD%qP?0=);n$&zaW_$UKV9 z8axdcN#AyZ{P)wj?V{P}vM)YY!>6@}^>U+iv$`9>nMTCPjN>z%yF&3yf%>+T@0vh4 zlC8Xa6zeo?%=o3}M8{aebLHcO{^1Ar8qiM=Gquf?Jo)q5`-+?sUpg?QXyEUpWSm+n z$K-UyqkIwHLquru~o(OF)hhz$Y*|X>ZIbswnxRvr~ z2=rdOGVuD|xRlpAZE<0!X1F(%Anpl^@V^D3vbM}qxe|NI;TTiZy7(IM;R69RkA>a& z6gwYE2sREzQ_LHmWqB+ogMk(fMaSFeoDq-!HkFB_nXt5+2ncFuk9BQL1I&oB1zZi) zYW{6_&-Ip1l*OVRA##1ILQS;5R{-K^0wGTiJbVSi@LA^$D$;@J>^G{6@&+%4{b3(s zC~LEHiTv(0b#zxt?YJ0r_~pUZM~mQ(??(n#>&tD%+@nq=Abj5*8R!~Ul1`G~=qFJ4 zfl|m8ZDCYgtr`4LcOpgiJYX9qRY5;DcWti~PmS$VB$E-Zt^f4)vLDOe_3XTq5^ylW zJ9PKm!V-8sAOJXnUfuFNIf0R9tK-pNs2hO04zr620}5B(Ok>yB)Of-3sP59qfQNbm zA4{w!2@cB;GbR(~szVrbO%(w=5S!X`o@o@x++wbN_tMPT0Vc)*I;Fgsbf^*g0 z2Di?HTApwKq3+YwfNsqd3iP%{hyK1iyuVZc@*0tO_3+N0#GFsz>8MjeJ2UJ%L!%hi zGYYAthH`E+ywA*u{(eJ=ia3h*%k?779rk-K<0VZAPkl;TFUbmei|$fqWO8!_zIvqt z$ly$VrlH46nnpX~X5Yk0iBJl;=WuA4>~X4-f&K0yWf42h&0b30t@NYX$7egQ1Fp!a zbui-D6cWCWV&|R1CY@G8(qOmWjWeX3eX7UggZPGimA}soOuQdXe4uZ#2>5zN>qlI0 z9xk}lE=tNpX1m6*nFr2EQ3xs79!^sCldDJYE$m(qYv3q7>}1R7?iZW7>$~*%zKaC| z=$N?ME$>#+%T&MZC`dW1wUl6Z)JgyCn~V%K&i0H|iwE%$>xsZW3tTfZxIUePci@p;cRu|d=ItIwF z1clVHy{hH?@SD|(Zfqi^0DQ1hczHN7xq85h)rzQqLHMX2^IkuK7FB!kI40s$|CY7~ zNX^{_UjN8}L%Med;|+=4RNTMozn8KT;2tb77bUPCmioh+rZBfIiM6f_P34cQ__o1G zWqQp3VL~~pE5?qODf%iiQQ3f42YF@09tQ*$4v_EKUx;t1KCPCBtgqg z@+Tn;O)a0uky_%jm+WjNB?=~VyH>V#L!*=l*@OS6SVyt_UEH&NA=?V2stHPyKkVNy z&jg<#cjros){#ji)dK z%)We0L_478=HZ8-@xnwsKrWs8)x`MB;(Y`Cmu2c-&SH(vN-F(*e`l?c%+l$|y_AJJ zhcDGnwLvN+bu;_sX|1AiePhx@u&%P$hf*xE+O=~D?_(_KGWQ!158YL-y9$*6mmPo;Rp*Dl5lm-mVM2i`h- zM@nxv590_tvMwPD_{l=b$iOm|+|S{D9&P%zeT$GgX6Akl-tfUF>tL@Ld!B&{pN39t zH>3Vhqkr}2Yul+jb7UiouWVGPNsxX7Ueba+9|~dz?d*QM$ng0DZfO0`7fAy?2yMm| zcnRzUhZ&IcwgjH9cuU!w+VStYa{p*)4IgBf|E8)sqMYtB2KH_}SfsFq(c9i(Q6S3U oBo%DI*Kv;w;*%(i9W@f3_WCF#rGn diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-icons_cd0a0a_256x240.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/images/ui-icons_cd0a0a_256x240.png deleted file mode 100755 index 2ab019b73ec11a485fa09378f3a0e155194f6a5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 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

n|~sTV*{Ve&IEpmAMOlL)NDK+r>|Ytz`Ap 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').hide().appendTo('body')[0].contentWindow; - this.navigate(fragment); - } - - // Depending on whether we're using pushState or hashes, and whether - // 'onhashchange' is supported, determine how we check the URL state. - if (this._hasPushState) { - $(window).bind('popstate', this.checkUrl); - } else if (this._wantsHashChange && ('onhashchange' in window) && !oldIE) { - $(window).bind('hashchange', this.checkUrl); - } else if (this._wantsHashChange) { - this._checkUrlInterval = setInterval(this.checkUrl, this.interval); - } - - // Determine if we need to change the base url, for a pushState link - // opened by a non-pushState browser. - this.fragment = fragment; - var loc = window.location; - var atRoot = loc.pathname == this.options.root; - - // If we've started off with a route from a `pushState`-enabled browser, - // but we're currently in a browser that doesn't support it... - if (this._wantsHashChange && this._wantsPushState && !this._hasPushState && !atRoot) { - this.fragment = this.getFragment(null, true); - window.location.replace(this.options.root + '#' + this.fragment); - // Return immediately as browser will do redirect to new url - return true; - - // Or if we've started out with a hash-based route, but we're currently - // in a browser where it could be `pushState`-based instead... - } else if (this._wantsPushState && this._hasPushState && atRoot && loc.hash) { - this.fragment = this.getHash().replace(routeStripper, ''); - window.history.replaceState({}, document.title, loc.protocol + '//' + loc.host + this.options.root + this.fragment); - } - - if (!this.options.silent) { - return this.loadUrl(); - } - }, - - // Disable Backbone.history, perhaps temporarily. Not useful in a real app, - // but possibly useful for unit testing Routers. - stop: function() { - $(window).unbind('popstate', this.checkUrl).unbind('hashchange', this.checkUrl); - clearInterval(this._checkUrlInterval); - History.started = false; - }, - - // Add a route to be tested when the fragment changes. Routes added later - // may override previous routes. - route: function(route, callback) { - this.handlers.unshift({route: route, callback: callback}); - }, - - // Checks the current URL to see if it has changed, and if it has, - // calls `loadUrl`, normalizing across the hidden iframe. - checkUrl: function(e) { - var current = this.getFragment(); - if (current == this.fragment && this.iframe) current = this.getFragment(this.getHash(this.iframe)); - if (current == this.fragment) return false; - if (this.iframe) this.navigate(current); - this.loadUrl() || this.loadUrl(this.getHash()); - }, - - // Attempt to load the current URL fragment. If a route succeeds with a - // match, returns `true`. If no defined routes matches the fragment, - // returns `false`. - loadUrl: function(fragmentOverride) { - var fragment = this.fragment = this.getFragment(fragmentOverride); - var matched = _.any(this.handlers, function(handler) { - if (handler.route.test(fragment)) { - handler.callback(fragment); - return true; - } - }); - return matched; - }, - - // Save a fragment into the hash history, or replace the URL state if the - // 'replace' option is passed. You are responsible for properly URL-encoding - // the fragment in advance. - // - // The options object can contain `trigger: true` if you wish to have the - // route callback be fired (not usually desirable), or `replace: true`, if - // you wish to modify the current URL without adding an entry to the history. - navigate: function(fragment, options) { - if (!History.started) return false; - if (!options || options === true) options = {trigger: options}; - var frag = (fragment || '').replace(routeStripper, ''); - if (this.fragment == frag) return; - - // If pushState is available, we use it to set the fragment as a real URL. - if (this._hasPushState) { - if (frag.indexOf(this.options.root) != 0) frag = this.options.root + frag; - this.fragment = frag; - window.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, frag); - - // If hash changes haven't been explicitly disabled, update the hash - // fragment to store history. - } else if (this._wantsHashChange) { - this.fragment = frag; - this._updateHash(window.location, frag, options.replace); - if (this.iframe && (frag != this.getFragment(this.getHash(this.iframe)))) { - // Opening and closing the iframe tricks IE7 and earlier to push a history entry on hash-tag change. - // When replace is true, we don't want this. - if(!options.replace) this.iframe.document.open().close(); - this._updateHash(this.iframe.location, frag, options.replace); - } - - // If you've told us that you explicitly don't want fallback hashchange- - // based history, then `navigate` becomes a page refresh. - } else { - window.location.assign(this.options.root + fragment); - } - if (options.trigger) this.loadUrl(fragment); - }, - - // Update the hash location, either replacing the current entry, or adding - // a new one to the browser history. - _updateHash: function(location, fragment, replace) { - if (replace) { - location.replace(location.toString().replace(/(javascript:|#).*$/, '') + '#' + fragment); - } else { - location.hash = fragment; - } - } - }); - - // Backbone.View - // ------------- - - // Creating a Backbone.View creates its initial element outside of the DOM, - // if an existing element is not provided... - var View = Backbone.View = function(options) { - this.cid = _.uniqueId('view'); - this._configure(options || {}); - this._ensureElement(); - this.initialize.apply(this, arguments); - this.delegateEvents(); - }; - - // Cached regex to split keys for `delegate`. - var delegateEventSplitter = /^(\S+)\s*(.*)$/; - - // List of view options to be merged as properties. - var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName']; - - // Set up all inheritable **Backbone.View** properties and methods. - _.extend(View.prototype, Events, { - - // The default `tagName` of a View's element is `"div"`. - tagName: 'div', - - // jQuery delegate for element lookup, scoped to DOM elements within the - // current view. This should be prefered to global lookups where possible. - $: function(selector) { - return this.$el.find(selector); - }, - - // Initialize is an empty function by default. Override it with your own - // initialization logic. - initialize: function(){}, - - // **render** is the core function that your view should override, in order - // to populate its element (`this.el`), with the appropriate HTML. The - // convention is for **render** to always return `this`. - render: function() { - return this; - }, - - // Remove this view from the DOM. Note that the view isn't present in the - // DOM by default, so calling this method may be a no-op. - remove: function() { - this.$el.remove(); - return this; - }, - - // For small amounts of DOM Elements, where a full-blown template isn't - // needed, use **make** to manufacture elements, one at a time. - // - // var el = this.make('li', {'class': 'row'}, this.model.escape('title')); - // - make: function(tagName, attributes, content) { - var el = document.createElement(tagName); - if (attributes) $(el).attr(attributes); - if (content) $(el).html(content); - return el; - }, - - // Change the view's element (`this.el` property), including event - // re-delegation. - setElement: function(element, delegate) { - if (this.$el) this.undelegateEvents(); - this.$el = (element instanceof $) ? element : $(element); - this.el = this.$el[0]; - if (delegate !== false) this.delegateEvents(); - return this; - }, - - // Set callbacks, where `this.events` is a hash of - // - // *{"event selector": "callback"}* - // - // { - // 'mousedown .title': 'edit', - // 'click .button': 'save' - // 'click .open': function(e) { ... } - // } - // - // pairs. Callbacks will be bound to the view, with `this` set properly. - // Uses event delegation for efficiency. - // Omitting the selector binds the event to `this.el`. - // This only works for delegate-able events: not `focus`, `blur`, and - // not `change`, `submit`, and `reset` in Internet Explorer. - delegateEvents: function(events) { - if (!(events || (events = getValue(this, 'events')))) return; - this.undelegateEvents(); - for (var key in events) { - var method = events[key]; - if (!_.isFunction(method)) method = this[events[key]]; - if (!method) throw new Error('Method "' + events[key] + '" does not exist'); - var match = key.match(delegateEventSplitter); - var eventName = match[1], selector = match[2]; - method = _.bind(method, this); - eventName += '.delegateEvents' + this.cid; - if (selector === '') { - this.$el.bind(eventName, method); - } else { - this.$el.delegate(selector, eventName, method); - } - } - }, - - // Clears all callbacks previously bound to the view with `delegateEvents`. - // You usually don't need to use this, but may wish to if you have multiple - // Backbone views attached to the same DOM element. - undelegateEvents: function() { - this.$el.unbind('.delegateEvents' + this.cid); - }, - - // Performs the initial configuration of a View with a set of options. - // Keys with special meaning *(model, collection, id, className)*, are - // attached directly to the view. - _configure: function(options) { - if (this.options) options = _.extend({}, this.options, options); - for (var i = 0, l = viewOptions.length; i < l; i++) { - var attr = viewOptions[i]; - if (options[attr]) this[attr] = options[attr]; - } - this.options = options; - }, - - // Ensure that the View has a DOM element to render into. - // If `this.el` is a string, pass it through `$()`, take the first - // matching element, and re-assign it to `el`. Otherwise, create - // an element from the `id`, `className` and `tagName` properties. - _ensureElement: function() { - if (!this.el) { - var attrs = getValue(this, 'attributes') || {}; - if (this.id) attrs.id = this.id; - if (this.className) attrs['class'] = this.className; - this.setElement(this.make(this.tagName, attrs), false); - } else { - this.setElement(this.el, false); - } - } - - }); - - // The self-propagating extend function that Backbone classes use. - var extend = function (protoProps, classProps) { - var child = inherits(this, protoProps, classProps); - child.extend = this.extend; - return child; - }; - - // Set up inheritance for the model, collection, and view. - Model.extend = Collection.extend = Router.extend = View.extend = extend; - - // Backbone.sync - // ------------- - - // Map from CRUD to HTTP for our default `Backbone.sync` implementation. - var methodMap = { - 'create': 'POST', - 'update': 'PUT', - 'delete': 'DELETE', - 'read': 'GET' - }; - - // Override this function to change the manner in which Backbone persists - // models to the server. You will be passed the type of request, and the - // model in question. By default, makes a RESTful Ajax request - // to the model's `url()`. Some possible customizations could be: - // - // * Use `setTimeout` to batch rapid-fire updates into a single request. - // * Send up the models as XML instead of JSON. - // * Persist models via WebSockets instead of Ajax. - // - // Turn on `Backbone.emulateHTTP` in order to send `PUT` and `DELETE` requests - // as `POST`, with a `_method` parameter containing the true HTTP method, - // as well as all requests with the body as `application/x-www-form-urlencoded` - // instead of `application/json` with the model in a param named `model`. - // Useful when interfacing with server-side languages like **PHP** that make - // it difficult to read the body of `PUT` requests. - Backbone.sync = function(method, model, options) { - var type = methodMap[method]; - - // Default options, unless specified. - options || (options = {}); - - // Default JSON-request options. - var params = {type: type, dataType: 'json'}; - - // Ensure that we have a URL. - if (!options.url) { - params.url = getValue(model, 'url') || urlError(); - } - - // Ensure that we have the appropriate request data. - if (!options.data && model && (method == 'create' || method == 'update')) { - params.contentType = 'application/json'; - params.data = JSON.stringify(model.toJSON()); - } - - // For older servers, emulate JSON by encoding the request into an HTML-form. - if (Backbone.emulateJSON) { - params.contentType = 'application/x-www-form-urlencoded'; - params.data = params.data ? {model: params.data} : {}; - } - - // For older servers, emulate HTTP by mimicking the HTTP method with `_method` - // And an `X-HTTP-Method-Override` header. - if (Backbone.emulateHTTP) { - if (type === 'PUT' || type === 'DELETE') { - if (Backbone.emulateJSON) params.data._method = type; - params.type = 'POST'; - params.beforeSend = function(xhr) { - xhr.setRequestHeader('X-HTTP-Method-Override', type); - }; - } - } - - // Don't process data on a non-GET request. - if (params.type !== 'GET' && !Backbone.emulateJSON) { - params.processData = false; - } - - // Make the request, allowing the user to override any Ajax options. - return $.ajax(_.extend(params, options)); - }; - - // Wrap an optional error callback with a fallback error event. - Backbone.wrapError = function(onError, originalModel, options) { - return function(model, resp) { - resp = model === originalModel ? resp : model; - if (onError) { - onError(originalModel, resp, options); - } else { - originalModel.trigger('error', originalModel, resp, options); - } - }; - }; - - // Helpers - // ------- - - // Shared empty constructor function to aid in prototype-chain creation. - var ctor = function(){}; - - // Helper function to correctly set up the prototype chain, for subclasses. - // Similar to `goog.inherits`, but uses a hash of prototype properties and - // class properties to be extended. - var inherits = function(parent, protoProps, staticProps) { - var child; - - // The constructor function for the new subclass is either defined by you - // (the "constructor" property in your `extend` definition), or defaulted - // by us to simply call the parent's constructor. - if (protoProps && protoProps.hasOwnProperty('constructor')) { - child = protoProps.constructor; - } else { - child = function(){ parent.apply(this, arguments); }; - } - - // Inherit class (static) properties from parent. - _.extend(child, parent); - - // Set the prototype chain to inherit from `parent`, without calling - // `parent`'s constructor function. - ctor.prototype = parent.prototype; - child.prototype = new ctor(); - - // Add prototype properties (instance properties) to the subclass, - // if supplied. - if (protoProps) _.extend(child.prototype, protoProps); - - // Add static properties to the constructor function, if supplied. - if (staticProps) _.extend(child, staticProps); - - // Correctly set child's `prototype.constructor`. - child.prototype.constructor = child; - - // Set a convenience property in case the parent's prototype is needed later. - child.__super__ = parent.prototype; - - return child; - }; - - // Helper function to get a value from a Backbone object as a property - // or as a function. - var getValue = function(object, prop) { - if (!(object && object[prop])) return null; - return _.isFunction(object[prop]) ? object[prop]() : object[prop]; - }; - - // Throw an error when a URL is needed, and none is supplied. - var urlError = function() { - throw new Error('A "url" property or function must be specified'); - }; - -}).call(this); diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap-responsive.css b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap-responsive.css deleted file mode 100755 index 0bc6de9..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap-responsive.css +++ /dev/null @@ -1,686 +0,0 @@ -/*! - * Bootstrap Responsive v2.0.2 - * - * Copyright 2012 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world @twitter by @mdo and @fat. - */ -.clearfix { - *zoom: 1; -} -.clearfix:before, -.clearfix:after { - display: table; - content: ""; -} -.clearfix:after { - clear: both; -} -.hide-text { - overflow: hidden; - text-indent: 100%; - white-space: nowrap; -} -.input-block-level { - display: block; - width: 100%; - min-height: 28px; - /* Make inputs at least the height of their button counterpart */ - - /* Makes inputs behave like true block-level elements */ - - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; -} -.hidden { - display: none; - visibility: hidden; -} -.visible-phone { - display: none; -} -.visible-tablet { - display: none; -} -.visible-desktop { - display: block; -} -.hidden-phone { - display: block; -} -.hidden-tablet { - display: block; -} -.hidden-desktop { - display: none; -} -@media (max-width: 767px) { - .visible-phone { - display: block; - } - .hidden-phone { - display: none; - } - .hidden-desktop { - display: block; - } - .visible-desktop { - display: none; - } -} -@media (min-width: 768px) and (max-width: 979px) { - .visible-tablet { - display: block; - } - .hidden-tablet { - display: none; - } - .hidden-desktop { - display: block; - } - .visible-desktop { - display: none; - } -} -@media (max-width: 480px) { - .nav-collapse { - -webkit-transform: translate3d(0, 0, 0); - } - .page-header h1 small { - display: block; - line-height: 18px; - } - input[type="checkbox"], - input[type="radio"] { - border: 1px solid #ccc; - } - .form-horizontal .control-group > label { - float: none; - width: auto; - padding-top: 0; - text-align: left; - } - .form-horizontal .controls { - margin-left: 0; - } - .form-horizontal .control-list { - padding-top: 0; - } - .form-horizontal .form-actions { - padding-left: 10px; - padding-right: 10px; - } - .modal { - position: absolute; - top: 10px; - left: 10px; - right: 10px; - width: auto; - margin: 0; - } - .modal.fade.in { - top: auto; - } - .modal-header .close { - padding: 10px; - margin: -10px; - } - .carousel-caption { - position: static; - } -} -@media (max-width: 767px) { - body { - padding-left: 20px; - padding-right: 20px; - } - .navbar-fixed-top { - margin-left: -20px; - margin-right: -20px; - } - .container { - width: auto; - } - .row-fluid { - width: 100%; - } - .row { - margin-left: 0; - } - .row > [class*="span"], - .row-fluid > [class*="span"] { - float: none; - display: block; - width: auto; - margin: 0; - } - .thumbnails [class*="span"] { - width: auto; - } - input[class*="span"], - select[class*="span"], - textarea[class*="span"], - .uneditable-input { - display: block; - width: 100%; - min-height: 28px; - /* Make inputs at least the height of their button counterpart */ - - /* Makes inputs behave like true block-level elements */ - - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; - } - .input-prepend input[class*="span"], - .input-append input[class*="span"] { - width: auto; - } -} -@media (min-width: 768px) and (max-width: 979px) { - .row { - margin-left: -20px; - *zoom: 1; - } - .row:before, - .row:after { - display: table; - content: ""; - } - .row:after { - clear: both; - } - [class*="span"] { - float: left; - margin-left: 20px; - } - .container, - .navbar-fixed-top .container, - .navbar-fixed-bottom .container { - width: 724px; - } - .span12 { - width: 724px; - } - .span11 { - width: 662px; - } - .span10 { - width: 600px; - } - .span9 { - width: 538px; - } - .span8 { - width: 476px; - } - .span7 { - width: 414px; - } - .span6 { - width: 352px; - } - .span5 { - width: 290px; - } - .span4 { - width: 228px; - } - .span3 { - width: 166px; - } - .span2 { - width: 104px; - } - .span1 { - width: 42px; - } - .offset12 { - margin-left: 764px; - } - .offset11 { - margin-left: 702px; - } - .offset10 { - margin-left: 640px; - } - .offset9 { - margin-left: 578px; - } - .offset8 { - margin-left: 516px; - } - .offset7 { - margin-left: 454px; - } - .offset6 { - margin-left: 392px; - } - .offset5 { - margin-left: 330px; - } - .offset4 { - margin-left: 268px; - } - .offset3 { - margin-left: 206px; - } - .offset2 { - margin-left: 144px; - } - .offset1 { - margin-left: 82px; - } - .row-fluid { - width: 100%; - *zoom: 1; - } - .row-fluid:before, - .row-fluid:after { - display: table; - content: ""; - } - .row-fluid:after { - clear: both; - } - .row-fluid > [class*="span"] { - float: left; - margin-left: 2.762430939%; - } - .row-fluid > [class*="span"]:first-child { - margin-left: 0; - } - .row-fluid > .span12 { - width: 99.999999993%; - } - .row-fluid > .span11 { - width: 91.436464082%; - } - .row-fluid > .span10 { - width: 82.87292817100001%; - } - .row-fluid > .span9 { - width: 74.30939226%; - } - .row-fluid > .span8 { - width: 65.74585634900001%; - } - .row-fluid > .span7 { - width: 57.182320438000005%; - } - .row-fluid > .span6 { - width: 48.618784527%; - } - .row-fluid > .span5 { - width: 40.055248616%; - } - .row-fluid > .span4 { - width: 31.491712705%; - } - .row-fluid > .span3 { - width: 22.928176794%; - } - .row-fluid > .span2 { - width: 14.364640883%; - } - .row-fluid > .span1 { - width: 5.801104972%; - } - input, - textarea, - .uneditable-input { - margin-left: 0; - } - input.span12, textarea.span12, .uneditable-input.span12 { - width: 714px; - } - input.span11, textarea.span11, .uneditable-input.span11 { - width: 652px; - } - input.span10, textarea.span10, .uneditable-input.span10 { - width: 590px; - } - input.span9, textarea.span9, .uneditable-input.span9 { - width: 528px; - } - input.span8, textarea.span8, .uneditable-input.span8 { - width: 466px; - } - input.span7, textarea.span7, .uneditable-input.span7 { - width: 404px; - } - input.span6, textarea.span6, .uneditable-input.span6 { - width: 342px; - } - input.span5, textarea.span5, .uneditable-input.span5 { - width: 280px; - } - input.span4, textarea.span4, .uneditable-input.span4 { - width: 218px; - } - input.span3, textarea.span3, .uneditable-input.span3 { - width: 156px; - } - input.span2, textarea.span2, .uneditable-input.span2 { - width: 94px; - } - input.span1, textarea.span1, .uneditable-input.span1 { - width: 32px; - } -} -@media (max-width: 979px) { - body { - padding-top: 0; - } - .navbar-fixed-top { - position: static; - margin-bottom: 18px; - } - .navbar-fixed-top .navbar-inner { - padding: 5px; - } - .navbar .container { - width: auto; - padding: 0; - } - .navbar .brand { - padding-left: 10px; - padding-right: 10px; - margin: 0 0 0 -5px; - } - .navbar .nav-collapse { - clear: left; - } - .navbar .nav { - float: none; - margin: 0 0 9px; - } - .navbar .nav > li { - float: none; - } - .navbar .nav > li > a { - margin-bottom: 2px; - } - .navbar .nav > .divider-vertical { - display: none; - } - .navbar .nav .nav-header { - color: #999999; - text-shadow: none; - } - .navbar .nav > li > a, - .navbar .dropdown-menu a { - padding: 6px 15px; - font-weight: bold; - color: #999999; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - } - .navbar .dropdown-menu li + li a { - margin-bottom: 2px; - } - .navbar .nav > li > a:hover, - .navbar .dropdown-menu a:hover { - background-color: #222222; - } - .navbar .dropdown-menu { - position: static; - top: auto; - left: auto; - float: none; - display: block; - max-width: none; - margin: 0 15px; - padding: 0; - background-color: transparent; - border: none; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - } - .navbar .dropdown-menu:before, - .navbar .dropdown-menu:after { - display: none; - } - .navbar .dropdown-menu .divider { - display: none; - } - .navbar-form, - .navbar-search { - float: none; - padding: 9px 15px; - margin: 9px 0; - border-top: 1px solid #222222; - border-bottom: 1px solid #222222; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - } - .navbar .nav.pull-right { - float: none; - margin-left: 0; - } - .navbar-static .navbar-inner { - padding-left: 10px; - padding-right: 10px; - } - .btn-navbar { - display: block; - } - .nav-collapse { - overflow: hidden; - height: 0; - } -} -@media (min-width: 980px) { - .nav-collapse.collapse { - height: auto !important; - overflow: visible !important; - } -} -@media (min-width: 1200px) { - .row { - margin-left: -30px; - *zoom: 1; - } - .row:before, - .row:after { - display: table; - content: ""; - } - .row:after { - clear: both; - } - [class*="span"] { - float: left; - margin-left: 30px; - } - .container, - .navbar-fixed-top .container, - .navbar-fixed-bottom .container { - width: 1170px; - } - .span12 { - width: 1170px; - } - .span11 { - width: 1070px; - } - .span10 { - width: 970px; - } - .span9 { - width: 870px; - } - .span8 { - width: 770px; - } - .span7 { - width: 670px; - } - .span6 { - width: 570px; - } - .span5 { - width: 470px; - } - .span4 { - width: 370px; - } - .span3 { - width: 270px; - } - .span2 { - width: 170px; - } - .span1 { - width: 70px; - } - .offset12 { - margin-left: 1230px; - } - .offset11 { - margin-left: 1130px; - } - .offset10 { - margin-left: 1030px; - } - .offset9 { - margin-left: 930px; - } - .offset8 { - margin-left: 830px; - } - .offset7 { - margin-left: 730px; - } - .offset6 { - margin-left: 630px; - } - .offset5 { - margin-left: 530px; - } - .offset4 { - margin-left: 430px; - } - .offset3 { - margin-left: 330px; - } - .offset2 { - margin-left: 230px; - } - .offset1 { - margin-left: 130px; - } - .row-fluid { - width: 100%; - *zoom: 1; - } - .row-fluid:before, - .row-fluid:after { - display: table; - content: ""; - } - .row-fluid:after { - clear: both; - } - .row-fluid > [class*="span"] { - float: left; - margin-left: 2.564102564%; - } - .row-fluid > [class*="span"]:first-child { - margin-left: 0; - } - .row-fluid > .span12 { - width: 100%; - } - .row-fluid > .span11 { - width: 91.45299145300001%; - } - .row-fluid > .span10 { - width: 82.905982906%; - } - .row-fluid > .span9 { - width: 74.358974359%; - } - .row-fluid > .span8 { - width: 65.81196581200001%; - } - .row-fluid > .span7 { - width: 57.264957265%; - } - .row-fluid > .span6 { - width: 48.717948718%; - } - .row-fluid > .span5 { - width: 40.170940171000005%; - } - .row-fluid > .span4 { - width: 31.623931624%; - } - .row-fluid > .span3 { - width: 23.076923077%; - } - .row-fluid > .span2 { - width: 14.529914530000001%; - } - .row-fluid > .span1 { - width: 5.982905983%; - } - input, - textarea, - .uneditable-input { - margin-left: 0; - } - input.span12, textarea.span12, .uneditable-input.span12 { - width: 1160px; - } - input.span11, textarea.span11, .uneditable-input.span11 { - width: 1060px; - } - input.span10, textarea.span10, .uneditable-input.span10 { - width: 960px; - } - input.span9, textarea.span9, .uneditable-input.span9 { - width: 860px; - } - input.span8, textarea.span8, .uneditable-input.span8 { - width: 760px; - } - input.span7, textarea.span7, .uneditable-input.span7 { - width: 660px; - } - input.span6, textarea.span6, .uneditable-input.span6 { - width: 560px; - } - input.span5, textarea.span5, .uneditable-input.span5 { - width: 460px; - } - input.span4, textarea.span4, .uneditable-input.span4 { - width: 360px; - } - input.span3, textarea.span3, .uneditable-input.span3 { - width: 260px; - } - input.span2, textarea.span2, .uneditable-input.span2 { - width: 160px; - } - input.span1, textarea.span1, .uneditable-input.span1 { - width: 60px; - } - .thumbnails { - margin-left: -30px; - } - .thumbnails > li { - margin-left: 30px; - } -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap-responsive.min.css b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap-responsive.min.css deleted file mode 100755 index 60a47c9..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap-responsive.min.css +++ /dev/null @@ -1,12 +0,0 @@ -.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";} -.clearfix:after{clear:both;} -.hide-text{overflow:hidden;text-indent:100%;white-space:nowrap;} -.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;} -.hidden{display:none;visibility:hidden;} -.visible-phone{display:none;} -.visible-tablet{display:none;} -.visible-desktop{display:block;} -.hidden-phone{display:block;} -.hidden-tablet{display:block;} -.hidden-desktop{display:none;} -@media (max-width:767px){.visible-phone{display:block;} .hidden-phone{display:none;} .hidden-desktop{display:block;} .visible-desktop{display:none;}}@media (min-width:768px) and (max-width:979px){.visible-tablet{display:block;} .hidden-tablet{display:none;} .hidden-desktop{display:block;} .visible-desktop{display:none;}}@media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:18px;} input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} .form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:10px;padding-right:10px;} .modal{position:absolute;top:10px;left:10px;right:10px;width:auto;margin:0;}.modal.fade.in{top:auto;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (max-width:767px){body{padding-left:20px;padding-right:20px;} .navbar-fixed-top{margin-left:-20px;margin-right:-20px;} .container{width:auto;} .row-fluid{width:100%;} .row{margin-left:0;} .row>[class*="span"],.row-fluid>[class*="span"]{float:none;display:block;width:auto;margin:0;} .thumbnails [class*="span"]{width:auto;} input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;} .input-prepend input[class*="span"],.input-append input[class*="span"]{width:auto;}}@media (min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:20px;} .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px;} .span12{width:724px;} .span11{width:662px;} .span10{width:600px;} .span9{width:538px;} .span8{width:476px;} .span7{width:414px;} .span6{width:352px;} .span5{width:290px;} .span4{width:228px;} .span3{width:166px;} .span2{width:104px;} .span1{width:42px;} .offset12{margin-left:764px;} .offset11{margin-left:702px;} .offset10{margin-left:640px;} .offset9{margin-left:578px;} .offset8{margin-left:516px;} .offset7{margin-left:454px;} .offset6{margin-left:392px;} .offset5{margin-left:330px;} .offset4{margin-left:268px;} .offset3{margin-left:206px;} .offset2{margin-left:144px;} .offset1{margin-left:82px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.762430939%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid > .span12{width:99.999999993%;} .row-fluid > .span11{width:91.436464082%;} .row-fluid > .span10{width:82.87292817100001%;} .row-fluid > .span9{width:74.30939226%;} .row-fluid > .span8{width:65.74585634900001%;} .row-fluid > .span7{width:57.182320438000005%;} .row-fluid > .span6{width:48.618784527%;} .row-fluid > .span5{width:40.055248616%;} .row-fluid > .span4{width:31.491712705%;} .row-fluid > .span3{width:22.928176794%;} .row-fluid > .span2{width:14.364640883%;} .row-fluid > .span1{width:5.801104972%;} input,textarea,.uneditable-input{margin-left:0;} input.span12, textarea.span12, .uneditable-input.span12{width:714px;} input.span11, textarea.span11, .uneditable-input.span11{width:652px;} input.span10, textarea.span10, .uneditable-input.span10{width:590px;} input.span9, textarea.span9, .uneditable-input.span9{width:528px;} input.span8, textarea.span8, .uneditable-input.span8{width:466px;} input.span7, textarea.span7, .uneditable-input.span7{width:404px;} input.span6, textarea.span6, .uneditable-input.span6{width:342px;} input.span5, textarea.span5, .uneditable-input.span5{width:280px;} input.span4, textarea.span4, .uneditable-input.span4{width:218px;} input.span3, textarea.span3, .uneditable-input.span3{width:156px;} input.span2, textarea.span2, .uneditable-input.span2{width:94px;} input.span1, textarea.span1, .uneditable-input.span1{width:32px;}}@media (max-width:979px){body{padding-top:0;} .navbar-fixed-top{position:static;margin-bottom:18px;} .navbar-fixed-top .navbar-inner{padding:5px;} .navbar .container{width:auto;padding:0;} .navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;} .navbar .nav-collapse{clear:left;} .navbar .nav{float:none;margin:0 0 9px;} .navbar .nav>li{float:none;} .navbar .nav>li>a{margin-bottom:2px;} .navbar .nav>.divider-vertical{display:none;} .navbar .nav .nav-header{color:#999999;text-shadow:none;} .navbar .nav>li>a,.navbar .dropdown-menu a{padding:6px 15px;font-weight:bold;color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} .navbar .dropdown-menu li+li a{margin-bottom:2px;} .navbar .nav>li>a:hover,.navbar .dropdown-menu a:hover{background-color:#222222;} .navbar .dropdown-menu{position:static;top:auto;left:auto;float:none;display:block;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} .navbar .dropdown-menu:before,.navbar .dropdown-menu:after{display:none;} .navbar .dropdown-menu .divider{display:none;} .navbar-form,.navbar-search{float:none;padding:9px 15px;margin:9px 0;border-top:1px solid #222222;border-bottom:1px solid #222222;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);} .navbar .nav.pull-right{float:none;margin-left:0;} .navbar-static .navbar-inner{padding-left:10px;padding-right:10px;} .btn-navbar{display:block;} .nav-collapse{overflow:hidden;height:0;}}@media (min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important;}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:30px;} .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px;} .span12{width:1170px;} .span11{width:1070px;} .span10{width:970px;} .span9{width:870px;} .span8{width:770px;} .span7{width:670px;} .span6{width:570px;} .span5{width:470px;} .span4{width:370px;} .span3{width:270px;} .span2{width:170px;} .span1{width:70px;} .offset12{margin-left:1230px;} .offset11{margin-left:1130px;} .offset10{margin-left:1030px;} .offset9{margin-left:930px;} .offset8{margin-left:830px;} .offset7{margin-left:730px;} .offset6{margin-left:630px;} .offset5{margin-left:530px;} .offset4{margin-left:430px;} .offset3{margin-left:330px;} .offset2{margin-left:230px;} .offset1{margin-left:130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.564102564%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid > .span12{width:100%;} .row-fluid > .span11{width:91.45299145300001%;} .row-fluid > .span10{width:82.905982906%;} .row-fluid > .span9{width:74.358974359%;} .row-fluid > .span8{width:65.81196581200001%;} .row-fluid > .span7{width:57.264957265%;} .row-fluid > .span6{width:48.717948718%;} .row-fluid > .span5{width:40.170940171000005%;} .row-fluid > .span4{width:31.623931624%;} .row-fluid > .span3{width:23.076923077%;} .row-fluid > .span2{width:14.529914530000001%;} .row-fluid > .span1{width:5.982905983%;} input,textarea,.uneditable-input{margin-left:0;} input.span12, textarea.span12, .uneditable-input.span12{width:1160px;} input.span11, textarea.span11, .uneditable-input.span11{width:1060px;} input.span10, textarea.span10, .uneditable-input.span10{width:960px;} input.span9, textarea.span9, .uneditable-input.span9{width:860px;} input.span8, textarea.span8, .uneditable-input.span8{width:760px;} input.span7, textarea.span7, .uneditable-input.span7{width:660px;} input.span6, textarea.span6, .uneditable-input.span6{width:560px;} input.span5, textarea.span5, .uneditable-input.span5{width:460px;} input.span4, textarea.span4, .uneditable-input.span4{width:360px;} input.span3, textarea.span3, .uneditable-input.span3{width:260px;} input.span2, textarea.span2, .uneditable-input.span2{width:160px;} input.span1, textarea.span1, .uneditable-input.span1{width:60px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;}} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap.css b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap.css deleted file mode 100755 index 00cbfb0..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap.css +++ /dev/null @@ -1,3990 +0,0 @@ -/*! - * Bootstrap v2.0.2 - * - * Copyright 2012 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world @twitter by @mdo and @fat. - */ -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -nav, -section { - display: block; -} -audio, -canvas, -video { - display: inline-block; - *display: inline; - *zoom: 1; -} -audio:not([controls]) { - display: none; -} -html { - font-size: 100%; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} -a:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -a:hover, -a:active { - outline: 0; -} -sub, -sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} -sup { - top: -0.5em; -} -sub { - bottom: -0.25em; -} -img { - height: auto; - border: 0; - -ms-interpolation-mode: bicubic; - vertical-align: middle; -} -button, -input, -select, -textarea { - margin: 0; - font-size: 100%; - vertical-align: middle; -} -button, -input { - *overflow: visible; - line-height: normal; -} -button::-moz-focus-inner, -input::-moz-focus-inner { - padding: 0; - border: 0; -} -button, -input[type="button"], -input[type="reset"], -input[type="submit"] { - cursor: pointer; - -webkit-appearance: button; -} -input[type="search"] { - -webkit-appearance: textfield; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -input[type="search"]::-webkit-search-decoration, -input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; -} -textarea { - overflow: auto; - vertical-align: top; -} -.clearfix { - *zoom: 1; -} -.clearfix:before, -.clearfix:after { - display: table; - content: ""; -} -.clearfix:after { - clear: both; -} -.hide-text { - overflow: hidden; - text-indent: 100%; - white-space: nowrap; -} -.input-block-level { - display: block; - width: 100%; - min-height: 28px; - /* Make inputs at least the height of their button counterpart */ - - /* Makes inputs behave like true block-level elements */ - - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; -} -body { - margin: 0; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - line-height: 18px; - color: #333333; - background-color: #ffffff; -} -a { - color: #0088cc; - text-decoration: none; -} -a:hover { - color: #005580; - text-decoration: underline; -} -.row { - margin-left: -20px; - *zoom: 1; -} -.row:before, -.row:after { - display: table; - content: ""; -} -.row:after { - clear: both; -} -[class*="span"] { - float: left; - margin-left: 20px; -} -.container, -.navbar-fixed-top .container, -.navbar-fixed-bottom .container { - width: 940px; -} -.span12 { - width: 940px; -} -.span11 { - width: 860px; -} -.span10 { - width: 780px; -} -.span9 { - width: 700px; -} -.span8 { - width: 620px; -} -.span7 { - width: 540px; -} -.span6 { - width: 460px; -} -.span5 { - width: 380px; -} -.span4 { - width: 300px; -} -.span3 { - width: 220px; -} -.span2 { - width: 140px; -} -.span1 { - width: 60px; -} -.offset12 { - margin-left: 980px; -} -.offset11 { - margin-left: 900px; -} -.offset10 { - margin-left: 820px; -} -.offset9 { - margin-left: 740px; -} -.offset8 { - margin-left: 660px; -} -.offset7 { - margin-left: 580px; -} -.offset6 { - margin-left: 500px; -} -.offset5 { - margin-left: 420px; -} -.offset4 { - margin-left: 340px; -} -.offset3 { - margin-left: 260px; -} -.offset2 { - margin-left: 180px; -} -.offset1 { - margin-left: 100px; -} -.row-fluid { - width: 100%; - *zoom: 1; -} -.row-fluid:before, -.row-fluid:after { - display: table; - content: ""; -} -.row-fluid:after { - clear: both; -} -.row-fluid > [class*="span"] { - float: left; - margin-left: 2.127659574%; -} -.row-fluid > [class*="span"]:first-child { - margin-left: 0; -} -.row-fluid > .span12 { - width: 99.99999998999999%; -} -.row-fluid > .span11 { - width: 91.489361693%; -} -.row-fluid > .span10 { - width: 82.97872339599999%; -} -.row-fluid > .span9 { - width: 74.468085099%; -} -.row-fluid > .span8 { - width: 65.95744680199999%; -} -.row-fluid > .span7 { - width: 57.446808505%; -} -.row-fluid > .span6 { - width: 48.93617020799999%; -} -.row-fluid > .span5 { - width: 40.425531911%; -} -.row-fluid > .span4 { - width: 31.914893614%; -} -.row-fluid > .span3 { - width: 23.404255317%; -} -.row-fluid > .span2 { - width: 14.89361702%; -} -.row-fluid > .span1 { - width: 6.382978723%; -} -.container { - margin-left: auto; - margin-right: auto; - *zoom: 1; -} -.container:before, -.container:after { - display: table; - content: ""; -} -.container:after { - clear: both; -} -.container-fluid { - padding-left: 20px; - padding-right: 20px; - *zoom: 1; -} -.container-fluid:before, -.container-fluid:after { - display: table; - content: ""; -} -.container-fluid:after { - clear: both; -} -p { - margin: 0 0 9px; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - line-height: 18px; -} -p small { - font-size: 11px; - color: #999999; -} -.lead { - margin-bottom: 18px; - font-size: 20px; - font-weight: 200; - line-height: 27px; -} -h1, -h2, -h3, -h4, -h5, -h6 { - margin: 0; - font-family: inherit; - font-weight: bold; - color: inherit; - text-rendering: optimizelegibility; -} -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small { - font-weight: normal; - color: #999999; -} -h1 { - font-size: 30px; - line-height: 36px; -} -h1 small { - font-size: 18px; -} -h2 { - font-size: 24px; - line-height: 36px; -} -h2 small { - font-size: 18px; -} -h3 { - line-height: 27px; - font-size: 18px; -} -h3 small { - font-size: 14px; -} -h4, -h5, -h6 { - line-height: 18px; -} -h4 { - font-size: 14px; -} -h4 small { - font-size: 12px; -} -h5 { - font-size: 12px; -} -h6 { - font-size: 11px; - color: #999999; - text-transform: uppercase; -} -.page-header { - padding-bottom: 17px; - margin: 18px 0; - border-bottom: 1px solid #eeeeee; -} -.page-header h1 { - line-height: 1; -} -ul, -ol { - padding: 0; - margin: 0 0 9px 25px; -} -ul ul, -ul ol, -ol ol, -ol ul { - margin-bottom: 0; -} -ul { - list-style: disc; -} -ol { - list-style: decimal; -} -li { - line-height: 18px; -} -ul.unstyled, -ol.unstyled { - margin-left: 0; - list-style: none; -} -dl { - margin-bottom: 18px; -} -dt, -dd { - line-height: 18px; -} -dt { - font-weight: bold; - line-height: 17px; -} -dd { - margin-left: 9px; -} -.dl-horizontal dt { - float: left; - clear: left; - width: 120px; - text-align: right; -} -.dl-horizontal dd { - margin-left: 130px; -} -hr { - margin: 18px 0; - border: 0; - border-top: 1px solid #eeeeee; - border-bottom: 1px solid #ffffff; -} -strong { - font-weight: bold; -} -em { - font-style: italic; -} -.muted { - color: #999999; -} -abbr[title] { - border-bottom: 1px dotted #ddd; - cursor: help; -} -abbr.initialism { - font-size: 90%; - text-transform: uppercase; -} -blockquote { - padding: 0 0 0 15px; - margin: 0 0 18px; - border-left: 5px solid #eeeeee; -} -blockquote p { - margin-bottom: 0; - font-size: 16px; - font-weight: 300; - line-height: 22.5px; -} -blockquote small { - display: block; - line-height: 18px; - color: #999999; -} -blockquote small:before { - content: '\2014 \00A0'; -} -blockquote.pull-right { - float: right; - padding-left: 0; - padding-right: 15px; - border-left: 0; - border-right: 5px solid #eeeeee; -} -blockquote.pull-right p, -blockquote.pull-right small { - text-align: right; -} -q:before, -q:after, -blockquote:before, -blockquote:after { - content: ""; -} -address { - display: block; - margin-bottom: 18px; - line-height: 18px; - font-style: normal; -} -small { - font-size: 100%; -} -cite { - font-style: normal; -} -code, -pre { - padding: 0 3px 2px; - font-family: Menlo, Monaco, "Courier New", monospace; - font-size: 12px; - color: #333333; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -code { - padding: 2px 4px; - color: #d14; - background-color: #f7f7f9; - border: 1px solid #e1e1e8; -} -pre { - display: block; - padding: 8.5px; - margin: 0 0 9px; - font-size: 12.025px; - line-height: 18px; - background-color: #f5f5f5; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.15); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - white-space: pre; - white-space: pre-wrap; - word-break: break-all; - word-wrap: break-word; -} -pre.prettyprint { - margin-bottom: 18px; -} -pre code { - padding: 0; - color: inherit; - background-color: transparent; - border: 0; -} -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} -form { - margin: 0 0 18px; -} -fieldset { - padding: 0; - margin: 0; - border: 0; -} -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 27px; - font-size: 19.5px; - line-height: 36px; - color: #333333; - border: 0; - border-bottom: 1px solid #eee; -} -legend small { - font-size: 13.5px; - color: #999999; -} -label, -input, -button, -select, -textarea { - font-size: 13px; - font-weight: normal; - line-height: 18px; -} -input, -button, -select, -textarea { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -} -label { - display: block; - margin-bottom: 5px; - color: #333333; -} -input, -textarea, -select, -.uneditable-input { - display: inline-block; - width: 210px; - height: 18px; - padding: 4px; - margin-bottom: 9px; - font-size: 13px; - line-height: 18px; - color: #555555; - border: 1px solid #cccccc; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -.uneditable-textarea { - width: auto; - height: auto; -} -label input, -label textarea, -label select { - display: block; -} -input[type="image"], -input[type="checkbox"], -input[type="radio"] { - width: auto; - height: auto; - padding: 0; - margin: 3px 0; - *margin-top: 0; - /* IE7 */ - - line-height: normal; - cursor: pointer; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; - border: 0 \9; - /* IE9 and down */ - -} -input[type="image"] { - border: 0; -} -input[type="file"] { - width: auto; - padding: initial; - line-height: initial; - border: initial; - background-color: #ffffff; - background-color: initial; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} -input[type="button"], -input[type="reset"], -input[type="submit"] { - width: auto; - height: auto; -} -select, -input[type="file"] { - height: 28px; - /* In IE7, the height of the select element cannot be changed by height, only font-size */ - - *margin-top: 4px; - /* For IE7, add top margin to align select with labels */ - - line-height: 28px; -} -input[type="file"] { - line-height: 18px \9; -} -select { - width: 220px; - background-color: #ffffff; -} -select[multiple], -select[size] { - height: auto; -} -input[type="image"] { - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} -textarea { - height: auto; -} -input[type="hidden"] { - display: none; -} -.radio, -.checkbox { - padding-left: 18px; -} -.radio input[type="radio"], -.checkbox input[type="checkbox"] { - float: left; - margin-left: -18px; -} -.controls > .radio:first-child, -.controls > .checkbox:first-child { - padding-top: 5px; -} -.radio.inline, -.checkbox.inline { - display: inline-block; - padding-top: 5px; - margin-bottom: 0; - vertical-align: middle; -} -.radio.inline + .radio.inline, -.checkbox.inline + .checkbox.inline { - margin-left: 10px; -} -input, -textarea { - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; - -moz-transition: border linear 0.2s, box-shadow linear 0.2s; - -ms-transition: border linear 0.2s, box-shadow linear 0.2s; - -o-transition: border linear 0.2s, box-shadow linear 0.2s; - transition: border linear 0.2s, box-shadow linear 0.2s; -} -input:focus, -textarea:focus { - border-color: rgba(82, 168, 236, 0.8); - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); - outline: 0; - outline: thin dotted \9; - /* IE6-9 */ - -} -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus, -select:focus { - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.input-mini { - width: 60px; -} -.input-small { - width: 90px; -} -.input-medium { - width: 150px; -} -.input-large { - width: 210px; -} -.input-xlarge { - width: 270px; -} -.input-xxlarge { - width: 530px; -} -input[class*="span"], -select[class*="span"], -textarea[class*="span"], -.uneditable-input { - float: none; - margin-left: 0; -} -input, -textarea, -.uneditable-input { - margin-left: 0; -} -input.span12, textarea.span12, .uneditable-input.span12 { - width: 930px; -} -input.span11, textarea.span11, .uneditable-input.span11 { - width: 850px; -} -input.span10, textarea.span10, .uneditable-input.span10 { - width: 770px; -} -input.span9, textarea.span9, .uneditable-input.span9 { - width: 690px; -} -input.span8, textarea.span8, .uneditable-input.span8 { - width: 610px; -} -input.span7, textarea.span7, .uneditable-input.span7 { - width: 530px; -} -input.span6, textarea.span6, .uneditable-input.span6 { - width: 450px; -} -input.span5, textarea.span5, .uneditable-input.span5 { - width: 370px; -} -input.span4, textarea.span4, .uneditable-input.span4 { - width: 290px; -} -input.span3, textarea.span3, .uneditable-input.span3 { - width: 210px; -} -input.span2, textarea.span2, .uneditable-input.span2 { - width: 130px; -} -input.span1, textarea.span1, .uneditable-input.span1 { - width: 50px; -} -input[disabled], -select[disabled], -textarea[disabled], -input[readonly], -select[readonly], -textarea[readonly] { - background-color: #eeeeee; - border-color: #ddd; - cursor: not-allowed; -} -.control-group.warning > label, -.control-group.warning .help-block, -.control-group.warning .help-inline { - color: #c09853; -} -.control-group.warning input, -.control-group.warning select, -.control-group.warning textarea { - color: #c09853; - border-color: #c09853; -} -.control-group.warning input:focus, -.control-group.warning select:focus, -.control-group.warning textarea:focus { - border-color: #a47e3c; - -webkit-box-shadow: 0 0 6px #dbc59e; - -moz-box-shadow: 0 0 6px #dbc59e; - box-shadow: 0 0 6px #dbc59e; -} -.control-group.warning .input-prepend .add-on, -.control-group.warning .input-append .add-on { - color: #c09853; - background-color: #fcf8e3; - border-color: #c09853; -} -.control-group.error > label, -.control-group.error .help-block, -.control-group.error .help-inline { - color: #b94a48; -} -.control-group.error input, -.control-group.error select, -.control-group.error textarea { - color: #b94a48; - border-color: #b94a48; -} -.control-group.error input:focus, -.control-group.error select:focus, -.control-group.error textarea:focus { - border-color: #953b39; - -webkit-box-shadow: 0 0 6px #d59392; - -moz-box-shadow: 0 0 6px #d59392; - box-shadow: 0 0 6px #d59392; -} -.control-group.error .input-prepend .add-on, -.control-group.error .input-append .add-on { - color: #b94a48; - background-color: #f2dede; - border-color: #b94a48; -} -.control-group.success > label, -.control-group.success .help-block, -.control-group.success .help-inline { - color: #468847; -} -.control-group.success input, -.control-group.success select, -.control-group.success textarea { - color: #468847; - border-color: #468847; -} -.control-group.success input:focus, -.control-group.success select:focus, -.control-group.success textarea:focus { - border-color: #356635; - -webkit-box-shadow: 0 0 6px #7aba7b; - -moz-box-shadow: 0 0 6px #7aba7b; - box-shadow: 0 0 6px #7aba7b; -} -.control-group.success .input-prepend .add-on, -.control-group.success .input-append .add-on { - color: #468847; - background-color: #dff0d8; - border-color: #468847; -} -input:focus:required:invalid, -textarea:focus:required:invalid, -select:focus:required:invalid { - color: #b94a48; - border-color: #ee5f5b; -} -input:focus:required:invalid:focus, -textarea:focus:required:invalid:focus, -select:focus:required:invalid:focus { - border-color: #e9322d; - -webkit-box-shadow: 0 0 6px #f8b9b7; - -moz-box-shadow: 0 0 6px #f8b9b7; - box-shadow: 0 0 6px #f8b9b7; -} -.form-actions { - padding: 17px 20px 18px; - margin-top: 18px; - margin-bottom: 18px; - background-color: #eeeeee; - border-top: 1px solid #ddd; - *zoom: 1; -} -.form-actions:before, -.form-actions:after { - display: table; - content: ""; -} -.form-actions:after { - clear: both; -} -.uneditable-input { - display: block; - background-color: #ffffff; - border-color: #eee; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - cursor: not-allowed; -} -:-moz-placeholder { - color: #999999; -} -::-webkit-input-placeholder { - color: #999999; -} -.help-block, -.help-inline { - color: #555555; -} -.help-block { - display: block; - margin-bottom: 9px; -} -.help-inline { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; - vertical-align: middle; - padding-left: 5px; -} -.input-prepend, -.input-append { - margin-bottom: 5px; -} -.input-prepend input, -.input-append input, -.input-prepend select, -.input-append select, -.input-prepend .uneditable-input, -.input-append .uneditable-input { - *margin-left: 0; - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} -.input-prepend input:focus, -.input-append input:focus, -.input-prepend select:focus, -.input-append select:focus, -.input-prepend .uneditable-input:focus, -.input-append .uneditable-input:focus { - position: relative; - z-index: 2; -} -.input-prepend .uneditable-input, -.input-append .uneditable-input { - border-left-color: #ccc; -} -.input-prepend .add-on, -.input-append .add-on { - display: inline-block; - width: auto; - min-width: 16px; - height: 18px; - padding: 4px 5px; - font-weight: normal; - line-height: 18px; - text-align: center; - text-shadow: 0 1px 0 #ffffff; - vertical-align: middle; - background-color: #eeeeee; - border: 1px solid #ccc; -} -.input-prepend .add-on, -.input-append .add-on, -.input-prepend .btn, -.input-append .btn { - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} -.input-prepend .active, -.input-append .active { - background-color: #a9dba9; - border-color: #46a546; -} -.input-prepend .add-on, -.input-prepend .btn { - margin-right: -1px; -} -.input-append input, -.input-append select .uneditable-input { - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} -.input-append .uneditable-input { - border-left-color: #eee; - border-right-color: #ccc; -} -.input-append .add-on, -.input-append .btn { - margin-left: -1px; - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} -.input-prepend.input-append input, -.input-prepend.input-append select, -.input-prepend.input-append .uneditable-input { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} -.input-prepend.input-append .add-on:first-child, -.input-prepend.input-append .btn:first-child { - margin-right: -1px; - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} -.input-prepend.input-append .add-on:last-child, -.input-prepend.input-append .btn:last-child { - margin-left: -1px; - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} -.search-query { - padding-left: 14px; - padding-right: 14px; - margin-bottom: 0; - -webkit-border-radius: 14px; - -moz-border-radius: 14px; - border-radius: 14px; -} -.form-search input, -.form-inline input, -.form-horizontal input, -.form-search textarea, -.form-inline textarea, -.form-horizontal textarea, -.form-search select, -.form-inline select, -.form-horizontal select, -.form-search .help-inline, -.form-inline .help-inline, -.form-horizontal .help-inline, -.form-search .uneditable-input, -.form-inline .uneditable-input, -.form-horizontal .uneditable-input, -.form-search .input-prepend, -.form-inline .input-prepend, -.form-horizontal .input-prepend, -.form-search .input-append, -.form-inline .input-append, -.form-horizontal .input-append { - display: inline-block; - margin-bottom: 0; -} -.form-search .hide, -.form-inline .hide, -.form-horizontal .hide { - display: none; -} -.form-search label, -.form-inline label { - display: inline-block; -} -.form-search .input-append, -.form-inline .input-append, -.form-search .input-prepend, -.form-inline .input-prepend { - margin-bottom: 0; -} -.form-search .radio, -.form-search .checkbox, -.form-inline .radio, -.form-inline .checkbox { - padding-left: 0; - margin-bottom: 0; - vertical-align: middle; -} -.form-search .radio input[type="radio"], -.form-search .checkbox input[type="checkbox"], -.form-inline .radio input[type="radio"], -.form-inline .checkbox input[type="checkbox"] { - float: left; - margin-left: 0; - margin-right: 3px; -} -.control-group { - margin-bottom: 9px; -} -legend + .control-group { - margin-top: 18px; - -webkit-margin-top-collapse: separate; -} -.form-horizontal .control-group { - margin-bottom: 18px; - *zoom: 1; -} -.form-horizontal .control-group:before, -.form-horizontal .control-group:after { - display: table; - content: ""; -} -.form-horizontal .control-group:after { - clear: both; -} -.form-horizontal .control-label { - float: left; - width: 140px; - padding-top: 5px; - text-align: right; -} -.form-horizontal .controls { - margin-left: 160px; - /* Super jank IE7 fix to ensure the inputs in .input-append and input-prepend don't inherit the margin of the parent, in this case .controls */ - - *display: inline-block; - *margin-left: 0; - *padding-left: 20px; -} -.form-horizontal .help-block { - margin-top: 9px; - margin-bottom: 0; -} -.form-horizontal .form-actions { - padding-left: 160px; -} -table { - max-width: 100%; - border-collapse: collapse; - border-spacing: 0; - background-color: transparent; -} -.table { - width: 100%; - margin-bottom: 18px; -} -.table th, -.table td { - padding: 8px; - line-height: 18px; - text-align: left; - vertical-align: top; - border-top: 1px solid #dddddd; -} -.table th { - font-weight: bold; -} -.table thead th { - vertical-align: bottom; -} -.table colgroup + thead tr:first-child th, -.table colgroup + thead tr:first-child td, -.table thead:first-child tr:first-child th, -.table thead:first-child tr:first-child td { - border-top: 0; -} -.table tbody + tbody { - border-top: 2px solid #dddddd; -} -.table-condensed th, -.table-condensed td { - padding: 4px 5px; -} -.table-bordered { - border: 1px solid #dddddd; - border-left: 0; - border-collapse: separate; - *border-collapse: collapsed; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.table-bordered th, -.table-bordered td { - border-left: 1px solid #dddddd; -} -.table-bordered thead:first-child tr:first-child th, -.table-bordered tbody:first-child tr:first-child th, -.table-bordered tbody:first-child tr:first-child td { - border-top: 0; -} -.table-bordered thead:first-child tr:first-child th:first-child, -.table-bordered tbody:first-child tr:first-child td:first-child { - -webkit-border-radius: 4px 0 0 0; - -moz-border-radius: 4px 0 0 0; - border-radius: 4px 0 0 0; -} -.table-bordered thead:first-child tr:first-child th:last-child, -.table-bordered tbody:first-child tr:first-child td:last-child { - -webkit-border-radius: 0 4px 0 0; - -moz-border-radius: 0 4px 0 0; - border-radius: 0 4px 0 0; -} -.table-bordered thead:last-child tr:last-child th:first-child, -.table-bordered tbody:last-child tr:last-child td:first-child { - -webkit-border-radius: 0 0 0 4px; - -moz-border-radius: 0 0 0 4px; - border-radius: 0 0 0 4px; -} -.table-bordered thead:last-child tr:last-child th:last-child, -.table-bordered tbody:last-child tr:last-child td:last-child { - -webkit-border-radius: 0 0 4px 0; - -moz-border-radius: 0 0 4px 0; - border-radius: 0 0 4px 0; -} -.table-striped tbody tr:nth-child(odd) td, -.table-striped tbody tr:nth-child(odd) th { - background-color: #f9f9f9; -} -.table tbody tr:hover td, -.table tbody tr:hover th { - background-color: #f5f5f5; -} -table .span1 { - float: none; - width: 44px; - margin-left: 0; -} -table .span2 { - float: none; - width: 124px; - margin-left: 0; -} -table .span3 { - float: none; - width: 204px; - margin-left: 0; -} -table .span4 { - float: none; - width: 284px; - margin-left: 0; -} -table .span5 { - float: none; - width: 364px; - margin-left: 0; -} -table .span6 { - float: none; - width: 444px; - margin-left: 0; -} -table .span7 { - float: none; - width: 524px; - margin-left: 0; -} -table .span8 { - float: none; - width: 604px; - margin-left: 0; -} -table .span9 { - float: none; - width: 684px; - margin-left: 0; -} -table .span10 { - float: none; - width: 764px; - margin-left: 0; -} -table .span11 { - float: none; - width: 844px; - margin-left: 0; -} -table .span12 { - float: none; - width: 924px; - margin-left: 0; -} -table .span13 { - float: none; - width: 1004px; - margin-left: 0; -} -table .span14 { - float: none; - width: 1084px; - margin-left: 0; -} -table .span15 { - float: none; - width: 1164px; - margin-left: 0; -} -table .span16 { - float: none; - width: 1244px; - margin-left: 0; -} -table .span17 { - float: none; - width: 1324px; - margin-left: 0; -} -table .span18 { - float: none; - width: 1404px; - margin-left: 0; -} -table .span19 { - float: none; - width: 1484px; - margin-left: 0; -} -table .span20 { - float: none; - width: 1564px; - margin-left: 0; -} -table .span21 { - float: none; - width: 1644px; - margin-left: 0; -} -table .span22 { - float: none; - width: 1724px; - margin-left: 0; -} -table .span23 { - float: none; - width: 1804px; - margin-left: 0; -} -table .span24 { - float: none; - width: 1884px; - margin-left: 0; -} -[class^="icon-"], -[class*=" icon-"] { - display: inline-block; - width: 14px; - height: 14px; - line-height: 14px; - vertical-align: text-top; - background-image: url("/assets/vendor/bootstrap/img/glyphicons-halflings.png"); - background-position: 14px 14px; - background-repeat: no-repeat; - *margin-right: .3em; -} -[class^="icon-"]:last-child, -[class*=" icon-"]:last-child { - *margin-left: 0; -} -.icon-white { - background-image: url("/assets/vendor/bootstrap/img/glyphicons-halflings-white.png"); -} -.icon-glass { - background-position: 0 0; -} -.icon-music { - background-position: -24px 0; -} -.icon-search { - background-position: -48px 0; -} -.icon-envelope { - background-position: -72px 0; -} -.icon-heart { - background-position: -96px 0; -} -.icon-star { - background-position: -120px 0; -} -.icon-star-empty { - background-position: -144px 0; -} -.icon-user { - background-position: -168px 0; -} -.icon-film { - background-position: -192px 0; -} -.icon-th-large { - background-position: -216px 0; -} -.icon-th { - background-position: -240px 0; -} -.icon-th-list { - background-position: -264px 0; -} -.icon-ok { - background-position: -288px 0; -} -.icon-remove { - background-position: -312px 0; -} -.icon-zoom-in { - background-position: -336px 0; -} -.icon-zoom-out { - background-position: -360px 0; -} -.icon-off { - background-position: -384px 0; -} -.icon-signal { - background-position: -408px 0; -} -.icon-cog { - background-position: -432px 0; -} -.icon-trash { - background-position: -456px 0; -} -.icon-home { - background-position: 0 -24px; -} -.icon-file { - background-position: -24px -24px; -} -.icon-time { - background-position: -48px -24px; -} -.icon-road { - background-position: -72px -24px; -} -.icon-download-alt { - background-position: -96px -24px; -} -.icon-download { - background-position: -120px -24px; -} -.icon-upload { - background-position: -144px -24px; -} -.icon-inbox { - background-position: -168px -24px; -} -.icon-play-circle { - background-position: -192px -24px; -} -.icon-repeat { - background-position: -216px -24px; -} -.icon-refresh { - background-position: -240px -24px; -} -.icon-list-alt { - background-position: -264px -24px; -} -.icon-lock { - background-position: -287px -24px; -} -.icon-flag { - background-position: -312px -24px; -} -.icon-headphones { - background-position: -336px -24px; -} -.icon-volume-off { - background-position: -360px -24px; -} -.icon-volume-down { - background-position: -384px -24px; -} -.icon-volume-up { - background-position: -408px -24px; -} -.icon-qrcode { - background-position: -432px -24px; -} -.icon-barcode { - background-position: -456px -24px; -} -.icon-tag { - background-position: 0 -48px; -} -.icon-tags { - background-position: -25px -48px; -} -.icon-book { - background-position: -48px -48px; -} -.icon-bookmark { - background-position: -72px -48px; -} -.icon-print { - background-position: -96px -48px; -} -.icon-camera { - background-position: -120px -48px; -} -.icon-font { - background-position: -144px -48px; -} -.icon-bold { - background-position: -167px -48px; -} -.icon-italic { - background-position: -192px -48px; -} -.icon-text-height { - background-position: -216px -48px; -} -.icon-text-width { - background-position: -240px -48px; -} -.icon-align-left { - background-position: -264px -48px; -} -.icon-align-center { - background-position: -288px -48px; -} -.icon-align-right { - background-position: -312px -48px; -} -.icon-align-justify { - background-position: -336px -48px; -} -.icon-list { - background-position: -360px -48px; -} -.icon-indent-left { - background-position: -384px -48px; -} -.icon-indent-right { - background-position: -408px -48px; -} -.icon-facetime-video { - background-position: -432px -48px; -} -.icon-picture { - background-position: -456px -48px; -} -.icon-pencil { - background-position: 0 -72px; -} -.icon-map-marker { - background-position: -24px -72px; -} -.icon-adjust { - background-position: -48px -72px; -} -.icon-tint { - background-position: -72px -72px; -} -.icon-edit { - background-position: -96px -72px; -} -.icon-share { - background-position: -120px -72px; -} -.icon-check { - background-position: -144px -72px; -} -.icon-move { - background-position: -168px -72px; -} -.icon-step-backward { - background-position: -192px -72px; -} -.icon-fast-backward { - background-position: -216px -72px; -} -.icon-backward { - background-position: -240px -72px; -} -.icon-play { - background-position: -264px -72px; -} -.icon-pause { - background-position: -288px -72px; -} -.icon-stop { - background-position: -312px -72px; -} -.icon-forward { - background-position: -336px -72px; -} -.icon-fast-forward { - background-position: -360px -72px; -} -.icon-step-forward { - background-position: -384px -72px; -} -.icon-eject { - background-position: -408px -72px; -} -.icon-chevron-left { - background-position: -432px -72px; -} -.icon-chevron-right { - background-position: -456px -72px; -} -.icon-plus-sign { - background-position: 0 -96px; -} -.icon-minus-sign { - background-position: -24px -96px; -} -.icon-remove-sign { - background-position: -48px -96px; -} -.icon-ok-sign { - background-position: -72px -96px; -} -.icon-question-sign { - background-position: -96px -96px; -} -.icon-info-sign { - background-position: -120px -96px; -} -.icon-screenshot { - background-position: -144px -96px; -} -.icon-remove-circle { - background-position: -168px -96px; -} -.icon-ok-circle { - background-position: -192px -96px; -} -.icon-ban-circle { - background-position: -216px -96px; -} -.icon-arrow-left { - background-position: -240px -96px; -} -.icon-arrow-right { - background-position: -264px -96px; -} -.icon-arrow-up { - background-position: -289px -96px; -} -.icon-arrow-down { - background-position: -312px -96px; -} -.icon-share-alt { - background-position: -336px -96px; -} -.icon-resize-full { - background-position: -360px -96px; -} -.icon-resize-small { - background-position: -384px -96px; -} -.icon-plus { - background-position: -408px -96px; -} -.icon-minus { - background-position: -433px -96px; -} -.icon-asterisk { - background-position: -456px -96px; -} -.icon-exclamation-sign { - background-position: 0 -120px; -} -.icon-gift { - background-position: -24px -120px; -} -.icon-leaf { - background-position: -48px -120px; -} -.icon-fire { - background-position: -72px -120px; -} -.icon-eye-open { - background-position: -96px -120px; -} -.icon-eye-close { - background-position: -120px -120px; -} -.icon-warning-sign { - background-position: -144px -120px; -} -.icon-plane { - background-position: -168px -120px; -} -.icon-calendar { - background-position: -192px -120px; -} -.icon-random { - background-position: -216px -120px; -} -.icon-comment { - background-position: -240px -120px; -} -.icon-magnet { - background-position: -264px -120px; -} -.icon-chevron-up { - background-position: -288px -120px; -} -.icon-chevron-down { - background-position: -313px -119px; -} -.icon-retweet { - background-position: -336px -120px; -} -.icon-shopping-cart { - background-position: -360px -120px; -} -.icon-folder-close { - background-position: -384px -120px; -} -.icon-folder-open { - background-position: -408px -120px; -} -.icon-resize-vertical { - background-position: -432px -119px; -} -.icon-resize-horizontal { - background-position: -456px -118px; -} -.dropdown { - position: relative; -} -.dropdown-toggle { - *margin-bottom: -3px; -} -.dropdown-toggle:active, -.open .dropdown-toggle { - outline: 0; -} -.caret { - display: inline-block; - width: 0; - height: 0; - vertical-align: top; - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-top: 4px solid #000000; - opacity: 0.3; - filter: alpha(opacity=30); - content: ""; -} -.dropdown .caret { - margin-top: 8px; - margin-left: 2px; -} -.dropdown:hover .caret, -.open.dropdown .caret { - opacity: 1; - filter: alpha(opacity=100); -} -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - float: left; - display: none; - min-width: 160px; - padding: 4px 0; - margin: 0; - list-style: none; - background-color: #ffffff; - border-color: #ccc; - border-color: rgba(0, 0, 0, 0.2); - border-style: solid; - border-width: 1px; - -webkit-border-radius: 0 0 5px 5px; - -moz-border-radius: 0 0 5px 5px; - border-radius: 0 0 5px 5px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; - *border-right-width: 2px; - *border-bottom-width: 2px; -} -.dropdown-menu.pull-right { - right: 0; - left: auto; -} -.dropdown-menu .divider { - height: 1px; - margin: 8px 1px; - overflow: hidden; - background-color: #e5e5e5; - border-bottom: 1px solid #ffffff; - *width: 100%; - *margin: -5px 0 5px; -} -.dropdown-menu a { - display: block; - padding: 3px 15px; - clear: both; - font-weight: normal; - line-height: 18px; - color: #333333; - white-space: nowrap; -} -.dropdown-menu li > a:hover, -.dropdown-menu .active > a, -.dropdown-menu .active > a:hover { - color: #ffffff; - text-decoration: none; - background-color: #0088cc; -} -.dropdown.open { - *z-index: 1000; -} -.dropdown.open .dropdown-toggle { - color: #ffffff; - background: #ccc; - background: rgba(0, 0, 0, 0.3); -} -.dropdown.open .dropdown-menu { - display: block; -} -.pull-right .dropdown-menu { - left: auto; - right: 0; -} -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top: 0; - border-bottom: 4px solid #000000; - content: "\2191"; -} -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; -} -.typeahead { - margin-top: 2px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #eee; - border: 1px solid rgba(0, 0, 0, 0.05); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -} -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); -} -.well-large { - padding: 24px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} -.well-small { - padding: 9px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -.fade { - -webkit-transition: opacity 0.15s linear; - -moz-transition: opacity 0.15s linear; - -ms-transition: opacity 0.15s linear; - -o-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; - opacity: 0; -} -.fade.in { - opacity: 1; -} -.collapse { - -webkit-transition: height 0.35s ease; - -moz-transition: height 0.35s ease; - -ms-transition: height 0.35s ease; - -o-transition: height 0.35s ease; - transition: height 0.35s ease; - position: relative; - overflow: hidden; - height: 0; -} -.collapse.in { - height: auto; -} -.close { - float: right; - font-size: 20px; - font-weight: bold; - line-height: 18px; - color: #000000; - text-shadow: 0 1px 0 #ffffff; - opacity: 0.2; - filter: alpha(opacity=20); -} -.close:hover { - color: #000000; - text-decoration: none; - opacity: 0.4; - filter: alpha(opacity=40); - cursor: pointer; -} -.btn { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; - padding: 4px 10px 4px; - margin-bottom: 0; - font-size: 13px; - line-height: 18px; - color: #333333; - text-align: center; - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); - vertical-align: middle; - background-color: #f5f5f5; - background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); - background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); - background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); - background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); - background-image: linear-gradient(top, #ffffff, #e6e6e6); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); - border-color: #e6e6e6 #e6e6e6 #bfbfbf; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); - border: 1px solid #cccccc; - border-bottom-color: #b3b3b3; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - cursor: pointer; - *margin-left: .3em; -} -.btn:hover, -.btn:active, -.btn.active, -.btn.disabled, -.btn[disabled] { - background-color: #e6e6e6; -} -.btn:active, -.btn.active { - background-color: #cccccc \9; -} -.btn:first-child { - *margin-left: 0; -} -.btn:hover { - color: #333333; - text-decoration: none; - background-color: #e6e6e6; - background-position: 0 -15px; - -webkit-transition: background-position 0.1s linear; - -moz-transition: background-position 0.1s linear; - -ms-transition: background-position 0.1s linear; - -o-transition: background-position 0.1s linear; - transition: background-position 0.1s linear; -} -.btn:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.btn.active, -.btn:active { - background-image: none; - -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - background-color: #e6e6e6; - background-color: #d9d9d9 \9; - outline: 0; -} -.btn.disabled, -.btn[disabled] { - cursor: default; - background-image: none; - background-color: #e6e6e6; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} -.btn-large { - padding: 9px 14px; - font-size: 15px; - line-height: normal; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} -.btn-large [class^="icon-"] { - margin-top: 1px; -} -.btn-small { - padding: 5px 9px; - font-size: 11px; - line-height: 16px; -} -.btn-small [class^="icon-"] { - margin-top: -1px; -} -.btn-mini { - padding: 2px 6px; - font-size: 11px; - line-height: 14px; -} -.btn-primary, -.btn-primary:hover, -.btn-warning, -.btn-warning:hover, -.btn-danger, -.btn-danger:hover, -.btn-success, -.btn-success:hover, -.btn-info, -.btn-info:hover, -.btn-inverse, -.btn-inverse:hover { - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - color: #ffffff; -} -.btn-primary.active, -.btn-warning.active, -.btn-danger.active, -.btn-success.active, -.btn-info.active, -.btn-inverse.active { - color: rgba(255, 255, 255, 0.75); -} -.btn-primary { - background-color: #0074cc; - background-image: -moz-linear-gradient(top, #0088cc, #0055cc); - background-image: -ms-linear-gradient(top, #0088cc, #0055cc); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc)); - background-image: -webkit-linear-gradient(top, #0088cc, #0055cc); - background-image: -o-linear-gradient(top, #0088cc, #0055cc); - background-image: linear-gradient(top, #0088cc, #0055cc); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0); - border-color: #0055cc #0055cc #003580; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} -.btn-primary:hover, -.btn-primary:active, -.btn-primary.active, -.btn-primary.disabled, -.btn-primary[disabled] { - background-color: #0055cc; -} -.btn-primary:active, -.btn-primary.active { - background-color: #004099 \9; -} -.btn-warning { - background-color: #faa732; - background-image: -moz-linear-gradient(top, #fbb450, #f89406); - background-image: -ms-linear-gradient(top, #fbb450, #f89406); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); - background-image: -webkit-linear-gradient(top, #fbb450, #f89406); - background-image: -o-linear-gradient(top, #fbb450, #f89406); - background-image: linear-gradient(top, #fbb450, #f89406); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); - border-color: #f89406 #f89406 #ad6704; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} -.btn-warning:hover, -.btn-warning:active, -.btn-warning.active, -.btn-warning.disabled, -.btn-warning[disabled] { - background-color: #f89406; -} -.btn-warning:active, -.btn-warning.active { - background-color: #c67605 \9; -} -.btn-danger { - background-color: #da4f49; - background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); - background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); - background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); - background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); - background-image: linear-gradient(top, #ee5f5b, #bd362f); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0); - border-color: #bd362f #bd362f #802420; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} -.btn-danger:hover, -.btn-danger:active, -.btn-danger.active, -.btn-danger.disabled, -.btn-danger[disabled] { - background-color: #bd362f; -} -.btn-danger:active, -.btn-danger.active { - background-color: #942a25 \9; -} -.btn-success { - background-color: #5bb75b; - background-image: -moz-linear-gradient(top, #62c462, #51a351); - background-image: -ms-linear-gradient(top, #62c462, #51a351); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); - background-image: -webkit-linear-gradient(top, #62c462, #51a351); - background-image: -o-linear-gradient(top, #62c462, #51a351); - background-image: linear-gradient(top, #62c462, #51a351); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0); - border-color: #51a351 #51a351 #387038; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} -.btn-success:hover, -.btn-success:active, -.btn-success.active, -.btn-success.disabled, -.btn-success[disabled] { - background-color: #51a351; -} -.btn-success:active, -.btn-success.active { - background-color: #408140 \9; -} -.btn-info { - background-color: #49afcd; - background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); - background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); - background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); - background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); - background-image: linear-gradient(top, #5bc0de, #2f96b4); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0); - border-color: #2f96b4 #2f96b4 #1f6377; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} -.btn-info:hover, -.btn-info:active, -.btn-info.active, -.btn-info.disabled, -.btn-info[disabled] { - background-color: #2f96b4; -} -.btn-info:active, -.btn-info.active { - background-color: #24748c \9; -} -.btn-inverse { - background-color: #414141; - background-image: -moz-linear-gradient(top, #555555, #222222); - background-image: -ms-linear-gradient(top, #555555, #222222); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222)); - background-image: -webkit-linear-gradient(top, #555555, #222222); - background-image: -o-linear-gradient(top, #555555, #222222); - background-image: linear-gradient(top, #555555, #222222); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0); - border-color: #222222 #222222 #000000; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} -.btn-inverse:hover, -.btn-inverse:active, -.btn-inverse.active, -.btn-inverse.disabled, -.btn-inverse[disabled] { - background-color: #222222; -} -.btn-inverse:active, -.btn-inverse.active { - background-color: #080808 \9; -} -button.btn, -input[type="submit"].btn { - *padding-top: 2px; - *padding-bottom: 2px; -} -button.btn::-moz-focus-inner, -input[type="submit"].btn::-moz-focus-inner { - padding: 0; - border: 0; -} -button.btn.btn-large, -input[type="submit"].btn.btn-large { - *padding-top: 7px; - *padding-bottom: 7px; -} -button.btn.btn-small, -input[type="submit"].btn.btn-small { - *padding-top: 3px; - *padding-bottom: 3px; -} -button.btn.btn-mini, -input[type="submit"].btn.btn-mini { - *padding-top: 1px; - *padding-bottom: 1px; -} -.btn-group { - position: relative; - *zoom: 1; - *margin-left: .3em; -} -.btn-group:before, -.btn-group:after { - display: table; - content: ""; -} -.btn-group:after { - clear: both; -} -.btn-group:first-child { - *margin-left: 0; -} -.btn-group + .btn-group { - margin-left: 5px; -} -.btn-toolbar { - margin-top: 9px; - margin-bottom: 9px; -} -.btn-toolbar .btn-group { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; -} -.btn-group .btn { - position: relative; - float: left; - margin-left: -1px; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} -.btn-group .btn:first-child { - margin-left: 0; - -webkit-border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; - border-top-left-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - border-bottom-left-radius: 4px; -} -.btn-group .btn:last-child, -.btn-group .dropdown-toggle { - -webkit-border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; - border-top-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -moz-border-radius-bottomright: 4px; - border-bottom-right-radius: 4px; -} -.btn-group .btn.large:first-child { - margin-left: 0; - -webkit-border-top-left-radius: 6px; - -moz-border-radius-topleft: 6px; - border-top-left-radius: 6px; - -webkit-border-bottom-left-radius: 6px; - -moz-border-radius-bottomleft: 6px; - border-bottom-left-radius: 6px; -} -.btn-group .btn.large:last-child, -.btn-group .large.dropdown-toggle { - -webkit-border-top-right-radius: 6px; - -moz-border-radius-topright: 6px; - border-top-right-radius: 6px; - -webkit-border-bottom-right-radius: 6px; - -moz-border-radius-bottomright: 6px; - border-bottom-right-radius: 6px; -} -.btn-group .btn:hover, -.btn-group .btn:focus, -.btn-group .btn:active, -.btn-group .btn.active { - z-index: 2; -} -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} -.btn-group .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; - -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - *padding-top: 3px; - *padding-bottom: 3px; -} -.btn-group .btn-mini.dropdown-toggle { - padding-left: 5px; - padding-right: 5px; - *padding-top: 1px; - *padding-bottom: 1px; -} -.btn-group .btn-small.dropdown-toggle { - *padding-top: 4px; - *padding-bottom: 4px; -} -.btn-group .btn-large.dropdown-toggle { - padding-left: 12px; - padding-right: 12px; -} -.btn-group.open { - *z-index: 1000; -} -.btn-group.open .dropdown-menu { - display: block; - margin-top: 1px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} -.btn-group.open .dropdown-toggle { - background-image: none; - -webkit-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); -} -.btn .caret { - margin-top: 7px; - margin-left: 0; -} -.btn:hover .caret, -.open.btn-group .caret { - opacity: 1; - filter: alpha(opacity=100); -} -.btn-mini .caret { - margin-top: 5px; -} -.btn-small .caret { - margin-top: 6px; -} -.btn-large .caret { - margin-top: 6px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-top: 5px solid #000000; -} -.btn-primary .caret, -.btn-warning .caret, -.btn-danger .caret, -.btn-info .caret, -.btn-success .caret, -.btn-inverse .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; - opacity: 0.75; - filter: alpha(opacity=75); -} -.alert { - padding: 8px 35px 8px 14px; - margin-bottom: 18px; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - background-color: #fcf8e3; - border: 1px solid #fbeed5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - color: #c09853; -} -.alert-heading { - color: inherit; -} -.alert .close { - position: relative; - top: -2px; - right: -21px; - line-height: 18px; -} -.alert-success { - background-color: #dff0d8; - border-color: #d6e9c6; - color: #468847; -} -.alert-danger, -.alert-error { - background-color: #f2dede; - border-color: #eed3d7; - color: #b94a48; -} -.alert-info { - background-color: #d9edf7; - border-color: #bce8f1; - color: #3a87ad; -} -.alert-block { - padding-top: 14px; - padding-bottom: 14px; -} -.alert-block > p, -.alert-block > ul { - margin-bottom: 0; -} -.alert-block p + p { - margin-top: 5px; -} -.nav { - margin-left: 0; - margin-bottom: 18px; - list-style: none; -} -.nav > li > a { - display: block; -} -.nav > li > a:hover { - text-decoration: none; - background-color: #eeeeee; -} -.nav .nav-header { - display: block; - padding: 3px 15px; - font-size: 11px; - font-weight: bold; - line-height: 18px; - color: #999999; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - text-transform: uppercase; -} -.nav li + .nav-header { - margin-top: 9px; -} -.nav-list { - padding-left: 15px; - padding-right: 15px; - margin-bottom: 0; -} -.nav-list > li > a, -.nav-list .nav-header { - margin-left: -15px; - margin-right: -15px; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} -.nav-list > li > a { - padding: 3px 15px; -} -.nav-list > .active > a, -.nav-list > .active > a:hover { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); - background-color: #0088cc; -} -.nav-list [class^="icon-"] { - margin-right: 2px; -} -.nav-list .divider { - height: 1px; - margin: 8px 1px; - overflow: hidden; - background-color: #e5e5e5; - border-bottom: 1px solid #ffffff; - *width: 100%; - *margin: -5px 0 5px; -} -.nav-tabs, -.nav-pills { - *zoom: 1; -} -.nav-tabs:before, -.nav-pills:before, -.nav-tabs:after, -.nav-pills:after { - display: table; - content: ""; -} -.nav-tabs:after, -.nav-pills:after { - clear: both; -} -.nav-tabs > li, -.nav-pills > li { - float: left; -} -.nav-tabs > li > a, -.nav-pills > li > a { - padding-right: 12px; - padding-left: 12px; - margin-right: 2px; - line-height: 14px; -} -.nav-tabs { - border-bottom: 1px solid #ddd; -} -.nav-tabs > li { - margin-bottom: -1px; -} -.nav-tabs > li > a { - padding-top: 8px; - padding-bottom: 8px; - line-height: 18px; - border: 1px solid transparent; - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; -} -.nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #dddddd; -} -.nav-tabs > .active > a, -.nav-tabs > .active > a:hover { - color: #555555; - background-color: #ffffff; - border: 1px solid #ddd; - border-bottom-color: transparent; - cursor: default; -} -.nav-pills > li > a { - padding-top: 8px; - padding-bottom: 8px; - margin-top: 2px; - margin-bottom: 2px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} -.nav-pills > .active > a, -.nav-pills > .active > a:hover { - color: #ffffff; - background-color: #0088cc; -} -.nav-stacked > li { - float: none; -} -.nav-stacked > li > a { - margin-right: 0; -} -.nav-tabs.nav-stacked { - border-bottom: 0; -} -.nav-tabs.nav-stacked > li > a { - border: 1px solid #ddd; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} -.nav-tabs.nav-stacked > li:first-child > a { - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; -} -.nav-tabs.nav-stacked > li:last-child > a { - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius: 0 0 4px 4px; - border-radius: 0 0 4px 4px; -} -.nav-tabs.nav-stacked > li > a:hover { - border-color: #ddd; - z-index: 2; -} -.nav-pills.nav-stacked > li > a { - margin-bottom: 3px; -} -.nav-pills.nav-stacked > li:last-child > a { - margin-bottom: 1px; -} -.nav-tabs .dropdown-menu, -.nav-pills .dropdown-menu { - margin-top: 1px; - border-width: 1px; -} -.nav-pills .dropdown-menu { - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.nav-tabs .dropdown-toggle .caret, -.nav-pills .dropdown-toggle .caret { - border-top-color: #0088cc; - border-bottom-color: #0088cc; - margin-top: 6px; -} -.nav-tabs .dropdown-toggle:hover .caret, -.nav-pills .dropdown-toggle:hover .caret { - border-top-color: #005580; - border-bottom-color: #005580; -} -.nav-tabs .active .dropdown-toggle .caret, -.nav-pills .active .dropdown-toggle .caret { - border-top-color: #333333; - border-bottom-color: #333333; -} -.nav > .dropdown.active > a:hover { - color: #000000; - cursor: pointer; -} -.nav-tabs .open .dropdown-toggle, -.nav-pills .open .dropdown-toggle, -.nav > .open.active > a:hover { - color: #ffffff; - background-color: #999999; - border-color: #999999; -} -.nav .open .caret, -.nav .open.active .caret, -.nav .open a:hover .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; - opacity: 1; - filter: alpha(opacity=100); -} -.tabs-stacked .open > a:hover { - border-color: #999999; -} -.tabbable { - *zoom: 1; -} -.tabbable:before, -.tabbable:after { - display: table; - content: ""; -} -.tabbable:after { - clear: both; -} -.tab-content { - display: table; - width: 100%; -} -.tabs-below .nav-tabs, -.tabs-right .nav-tabs, -.tabs-left .nav-tabs { - border-bottom: 0; -} -.tab-content > .tab-pane, -.pill-content > .pill-pane { - display: none; -} -.tab-content > .active, -.pill-content > .active { - display: block; -} -.tabs-below .nav-tabs { - border-top: 1px solid #ddd; -} -.tabs-below .nav-tabs > li { - margin-top: -1px; - margin-bottom: 0; -} -.tabs-below .nav-tabs > li > a { - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius: 0 0 4px 4px; - border-radius: 0 0 4px 4px; -} -.tabs-below .nav-tabs > li > a:hover { - border-bottom-color: transparent; - border-top-color: #ddd; -} -.tabs-below .nav-tabs .active > a, -.tabs-below .nav-tabs .active > a:hover { - border-color: transparent #ddd #ddd #ddd; -} -.tabs-left .nav-tabs > li, -.tabs-right .nav-tabs > li { - float: none; -} -.tabs-left .nav-tabs > li > a, -.tabs-right .nav-tabs > li > a { - min-width: 74px; - margin-right: 0; - margin-bottom: 3px; -} -.tabs-left .nav-tabs { - float: left; - margin-right: 19px; - border-right: 1px solid #ddd; -} -.tabs-left .nav-tabs > li > a { - margin-right: -1px; - -webkit-border-radius: 4px 0 0 4px; - -moz-border-radius: 4px 0 0 4px; - border-radius: 4px 0 0 4px; -} -.tabs-left .nav-tabs > li > a:hover { - border-color: #eeeeee #dddddd #eeeeee #eeeeee; -} -.tabs-left .nav-tabs .active > a, -.tabs-left .nav-tabs .active > a:hover { - border-color: #ddd transparent #ddd #ddd; - *border-right-color: #ffffff; -} -.tabs-right .nav-tabs { - float: right; - margin-left: 19px; - border-left: 1px solid #ddd; -} -.tabs-right .nav-tabs > li > a { - margin-left: -1px; - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} -.tabs-right .nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #eeeeee #dddddd; -} -.tabs-right .nav-tabs .active > a, -.tabs-right .nav-tabs .active > a:hover { - border-color: #ddd #ddd #ddd transparent; - *border-left-color: #ffffff; -} -.navbar { - *position: relative; - *z-index: 2; - overflow: visible; - margin-bottom: 18px; -} -.navbar-inner { - padding-left: 20px; - padding-right: 20px; - background-color: #2c2c2c; - background-image: -moz-linear-gradient(top, #333333, #222222); - background-image: -ms-linear-gradient(top, #333333, #222222); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); - background-image: -webkit-linear-gradient(top, #333333, #222222); - background-image: -o-linear-gradient(top, #333333, #222222); - background-image: linear-gradient(top, #333333, #222222); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); -} -.navbar .container { - width: auto; -} -.btn-navbar { - display: none; - float: right; - padding: 7px 10px; - margin-left: 5px; - margin-right: 5px; - background-color: #2c2c2c; - background-image: -moz-linear-gradient(top, #333333, #222222); - background-image: -ms-linear-gradient(top, #333333, #222222); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); - background-image: -webkit-linear-gradient(top, #333333, #222222); - background-image: -o-linear-gradient(top, #333333, #222222); - background-image: linear-gradient(top, #333333, #222222); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); - border-color: #222222 #222222 #000000; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); -} -.btn-navbar:hover, -.btn-navbar:active, -.btn-navbar.active, -.btn-navbar.disabled, -.btn-navbar[disabled] { - background-color: #222222; -} -.btn-navbar:active, -.btn-navbar.active { - background-color: #080808 \9; -} -.btn-navbar .icon-bar { - display: block; - width: 18px; - height: 2px; - background-color: #f5f5f5; - -webkit-border-radius: 1px; - -moz-border-radius: 1px; - border-radius: 1px; - -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); - -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); - box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); -} -.btn-navbar .icon-bar + .icon-bar { - margin-top: 3px; -} -.nav-collapse.collapse { - height: auto; -} -.navbar { - color: #999999; -} -.navbar .brand:hover { - text-decoration: none; -} -.navbar .brand { - float: left; - display: block; - padding: 8px 20px 12px; - margin-left: -20px; - font-size: 20px; - font-weight: 200; - line-height: 1; - color: #ffffff; -} -.navbar .navbar-text { - margin-bottom: 0; - line-height: 40px; -} -.navbar .btn, -.navbar .btn-group { - margin-top: 5px; -} -.navbar .btn-group .btn { - margin-top: 0; -} -.navbar-form { - margin-bottom: 0; - *zoom: 1; -} -.navbar-form:before, -.navbar-form:after { - display: table; - content: ""; -} -.navbar-form:after { - clear: both; -} -.navbar-form input, -.navbar-form select, -.navbar-form .radio, -.navbar-form .checkbox { - margin-top: 5px; -} -.navbar-form input, -.navbar-form select { - display: inline-block; - margin-bottom: 0; -} -.navbar-form input[type="image"], -.navbar-form input[type="checkbox"], -.navbar-form input[type="radio"] { - margin-top: 3px; -} -.navbar-form .input-append, -.navbar-form .input-prepend { - margin-top: 6px; - white-space: nowrap; -} -.navbar-form .input-append input, -.navbar-form .input-prepend input { - margin-top: 0; -} -.navbar-search { - position: relative; - float: left; - margin-top: 6px; - margin-bottom: 0; -} -.navbar-search .search-query { - padding: 4px 9px; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - font-weight: normal; - line-height: 1; - color: #ffffff; - background-color: #626262; - border: 1px solid #151515; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - -o-transition: none; - transition: none; -} -.navbar-search .search-query:-moz-placeholder { - color: #cccccc; -} -.navbar-search .search-query::-webkit-input-placeholder { - color: #cccccc; -} -.navbar-search .search-query:focus, -.navbar-search .search-query.focused { - padding: 5px 10px; - color: #333333; - text-shadow: 0 1px 0 #ffffff; - background-color: #ffffff; - border: 0; - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - outline: 0; -} -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; - margin-bottom: 0; -} -.navbar-fixed-top .navbar-inner, -.navbar-fixed-bottom .navbar-inner { - padding-left: 0; - padding-right: 0; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} -.navbar-fixed-top .container, -.navbar-fixed-bottom .container { - width: 940px; -} -.navbar-fixed-top { - top: 0; -} -.navbar-fixed-bottom { - bottom: 0; -} -.navbar .nav { - position: relative; - left: 0; - display: block; - float: left; - margin: 0 10px 0 0; -} -.navbar .nav.pull-right { - float: right; -} -.navbar .nav > li { - display: block; - float: left; -} -.navbar .nav > li > a { - float: none; - padding: 10px 10px 11px; - line-height: 19px; - color: #999999; - text-decoration: none; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.navbar .nav > li > a:hover { - background-color: transparent; - color: #ffffff; - text-decoration: none; -} -.navbar .nav .active > a, -.navbar .nav .active > a:hover { - color: #ffffff; - text-decoration: none; - background-color: #222222; -} -.navbar .divider-vertical { - height: 40px; - width: 1px; - margin: 0 9px; - overflow: hidden; - background-color: #222222; - border-right: 1px solid #333333; -} -.navbar .nav.pull-right { - margin-left: 10px; - margin-right: 0; -} -.navbar .dropdown-menu { - margin-top: 1px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.navbar .dropdown-menu:before { - content: ''; - display: inline-block; - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-bottom-color: rgba(0, 0, 0, 0.2); - position: absolute; - top: -7px; - left: 9px; -} -.navbar .dropdown-menu:after { - content: ''; - display: inline-block; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-bottom: 6px solid #ffffff; - position: absolute; - top: -6px; - left: 10px; -} -.navbar-fixed-bottom .dropdown-menu:before { - border-top: 7px solid #ccc; - border-top-color: rgba(0, 0, 0, 0.2); - border-bottom: 0; - bottom: -7px; - top: auto; -} -.navbar-fixed-bottom .dropdown-menu:after { - border-top: 6px solid #ffffff; - border-bottom: 0; - bottom: -6px; - top: auto; -} -.navbar .nav .dropdown-toggle .caret, -.navbar .nav .open.dropdown .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; -} -.navbar .nav .active .caret { - opacity: 1; - filter: alpha(opacity=100); -} -.navbar .nav .open > .dropdown-toggle, -.navbar .nav .active > .dropdown-toggle, -.navbar .nav .open.active > .dropdown-toggle { - background-color: transparent; -} -.navbar .nav .active > .dropdown-toggle:hover { - color: #ffffff; -} -.navbar .nav.pull-right .dropdown-menu, -.navbar .nav .dropdown-menu.pull-right { - left: auto; - right: 0; -} -.navbar .nav.pull-right .dropdown-menu:before, -.navbar .nav .dropdown-menu.pull-right:before { - left: auto; - right: 12px; -} -.navbar .nav.pull-right .dropdown-menu:after, -.navbar .nav .dropdown-menu.pull-right:after { - left: auto; - right: 13px; -} -.breadcrumb { - padding: 7px 14px; - margin: 0 0 18px; - list-style: none; - background-color: #fbfbfb; - background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5); - background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5)); - background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5); - background-image: -o-linear-gradient(top, #ffffff, #f5f5f5); - background-image: linear-gradient(top, #ffffff, #f5f5f5); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0); - border: 1px solid #ddd; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - -webkit-box-shadow: inset 0 1px 0 #ffffff; - -moz-box-shadow: inset 0 1px 0 #ffffff; - box-shadow: inset 0 1px 0 #ffffff; -} -.breadcrumb li { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; - text-shadow: 0 1px 0 #ffffff; -} -.breadcrumb .divider { - padding: 0 5px; - color: #999999; -} -.breadcrumb .active a { - color: #333333; -} -.pagination { - height: 36px; - margin: 18px 0; -} -.pagination ul { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; - margin-left: 0; - margin-bottom: 0; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); -} -.pagination li { - display: inline; -} -.pagination a { - float: left; - padding: 0 14px; - line-height: 34px; - text-decoration: none; - border: 1px solid #ddd; - border-left-width: 0; -} -.pagination a:hover, -.pagination .active a { - background-color: #f5f5f5; -} -.pagination .active a { - color: #999999; - cursor: default; -} -.pagination .disabled span, -.pagination .disabled a, -.pagination .disabled a:hover { - color: #999999; - background-color: transparent; - cursor: default; -} -.pagination li:first-child a { - border-left-width: 1px; - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} -.pagination li:last-child a { - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} -.pagination-centered { - text-align: center; -} -.pagination-right { - text-align: right; -} -.pager { - margin-left: 0; - margin-bottom: 18px; - list-style: none; - text-align: center; - *zoom: 1; -} -.pager:before, -.pager:after { - display: table; - content: ""; -} -.pager:after { - clear: both; -} -.pager li { - display: inline; -} -.pager a { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; -} -.pager a:hover { - text-decoration: none; - background-color: #f5f5f5; -} -.pager .next a { - float: right; -} -.pager .previous a { - float: left; -} -.pager .disabled a, -.pager .disabled a:hover { - color: #999999; - background-color: #fff; - cursor: default; -} -.modal-open .dropdown-menu { - z-index: 2050; -} -.modal-open .dropdown.open { - *z-index: 2050; -} -.modal-open .popover { - z-index: 2060; -} -.modal-open .tooltip { - z-index: 2070; -} -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000000; -} -.modal-backdrop.fade { - opacity: 0; -} -.modal-backdrop, -.modal-backdrop.fade.in { - opacity: 0.8; - filter: alpha(opacity=80); -} -.modal { - position: fixed; - top: 50%; - left: 50%; - z-index: 1050; - overflow: auto; - width: 560px; - margin: -250px 0 0 -280px; - background-color: #ffffff; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, 0.3); - *border: 1px solid #999; - /* IE6-7 */ - - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; - background-clip: padding-box; -} -.modal.fade { - -webkit-transition: opacity .3s linear, top .3s ease-out; - -moz-transition: opacity .3s linear, top .3s ease-out; - -ms-transition: opacity .3s linear, top .3s ease-out; - -o-transition: opacity .3s linear, top .3s ease-out; - transition: opacity .3s linear, top .3s ease-out; - top: -25%; -} -.modal.fade.in { - top: 50%; -} -.modal-header { - padding: 9px 15px; - border-bottom: 1px solid #eee; -} -.modal-header .close { - margin-top: 2px; -} -.modal-body { - overflow-y: auto; - max-height: 400px; - padding: 15px; -} -.modal-form { - margin-bottom: 0; -} -.modal-footer { - padding: 14px 15px 15px; - margin-bottom: 0; - text-align: right; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; - -webkit-box-shadow: inset 0 1px 0 #ffffff; - -moz-box-shadow: inset 0 1px 0 #ffffff; - box-shadow: inset 0 1px 0 #ffffff; - *zoom: 1; -} -.modal-footer:before, -.modal-footer:after { - display: table; - content: ""; -} -.modal-footer:after { - clear: both; -} -.modal-footer .btn + .btn { - margin-left: 5px; - margin-bottom: 0; -} -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} -.tooltip { - position: absolute; - z-index: 1020; - display: block; - visibility: visible; - padding: 5px; - font-size: 11px; - opacity: 0; - filter: alpha(opacity=0); -} -.tooltip.in { - opacity: 0.8; - filter: alpha(opacity=80); -} -.tooltip.top { - margin-top: -2px; -} -.tooltip.right { - margin-left: 2px; -} -.tooltip.bottom { - margin-top: 2px; -} -.tooltip.left { - margin-left: -2px; -} -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-top: 5px solid #000000; -} -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-left: 5px solid #000000; -} -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-bottom: 5px solid #000000; -} -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-right: 5px solid #000000; -} -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #ffffff; - text-align: center; - text-decoration: none; - background-color: #000000; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; -} -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1010; - display: none; - padding: 5px; -} -.popover.top { - margin-top: -5px; -} -.popover.right { - margin-left: 5px; -} -.popover.bottom { - margin-top: 5px; -} -.popover.left { - margin-left: -5px; -} -.popover.top .arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-top: 5px solid #000000; -} -.popover.right .arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-right: 5px solid #000000; -} -.popover.bottom .arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-bottom: 5px solid #000000; -} -.popover.left .arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-left: 5px solid #000000; -} -.popover .arrow { - position: absolute; - width: 0; - height: 0; -} -.popover-inner { - padding: 3px; - width: 280px; - overflow: hidden; - background: #000000; - background: rgba(0, 0, 0, 0.8); - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); -} -.popover-title { - padding: 9px 15px; - line-height: 1; - background-color: #f5f5f5; - border-bottom: 1px solid #eee; - -webkit-border-radius: 3px 3px 0 0; - -moz-border-radius: 3px 3px 0 0; - border-radius: 3px 3px 0 0; -} -.popover-content { - padding: 14px; - background-color: #ffffff; - -webkit-border-radius: 0 0 3px 3px; - -moz-border-radius: 0 0 3px 3px; - border-radius: 0 0 3px 3px; - -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; - background-clip: padding-box; -} -.popover-content p, -.popover-content ul, -.popover-content ol { - margin-bottom: 0; -} -.thumbnails { - margin-left: -20px; - list-style: none; - *zoom: 1; -} -.thumbnails:before, -.thumbnails:after { - display: table; - content: ""; -} -.thumbnails:after { - clear: both; -} -.thumbnails > li { - float: left; - margin: 0 0 18px 20px; -} -.thumbnail { - display: block; - padding: 4px; - line-height: 1; - border: 1px solid #ddd; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); -} -a.thumbnail:hover { - border-color: #0088cc; - -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); - -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); - box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); -} -.thumbnail > img { - display: block; - max-width: 100%; - margin-left: auto; - margin-right: auto; -} -.thumbnail .caption { - padding: 9px; -} -.label { - padding: 1px 4px 2px; - font-size: 10.998px; - font-weight: bold; - line-height: 13px; - color: #ffffff; - vertical-align: middle; - white-space: nowrap; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #999999; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -.label:hover { - color: #ffffff; - text-decoration: none; -} -.label-important { - background-color: #b94a48; -} -.label-important:hover { - background-color: #953b39; -} -.label-warning { - background-color: #f89406; -} -.label-warning:hover { - background-color: #c67605; -} -.label-success { - background-color: #468847; -} -.label-success:hover { - background-color: #356635; -} -.label-info { - background-color: #3a87ad; -} -.label-info:hover { - background-color: #2d6987; -} -.label-inverse { - background-color: #333333; -} -.label-inverse:hover { - background-color: #1a1a1a; -} -.badge { - padding: 1px 9px 2px; - font-size: 12.025px; - font-weight: bold; - white-space: nowrap; - color: #ffffff; - background-color: #999999; - -webkit-border-radius: 9px; - -moz-border-radius: 9px; - border-radius: 9px; -} -.badge:hover { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} -.badge-error { - background-color: #b94a48; -} -.badge-error:hover { - background-color: #953b39; -} -.badge-warning { - background-color: #f89406; -} -.badge-warning:hover { - background-color: #c67605; -} -.badge-success { - background-color: #468847; -} -.badge-success:hover { - background-color: #356635; -} -.badge-info { - background-color: #3a87ad; -} -.badge-info:hover { - background-color: #2d6987; -} -.badge-inverse { - background-color: #333333; -} -.badge-inverse:hover { - background-color: #1a1a1a; -} -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} -@-moz-keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} -@-ms-keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} -@keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} -.progress { - overflow: hidden; - height: 18px; - margin-bottom: 18px; - background-color: #f7f7f7; - background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); - background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: linear-gradient(top, #f5f5f5, #f9f9f9); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0); - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.progress .bar { - width: 0%; - height: 18px; - color: #ffffff; - font-size: 12px; - text-align: center; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #0e90d2; - background-image: -moz-linear-gradient(top, #149bdf, #0480be); - background-image: -ms-linear-gradient(top, #149bdf, #0480be); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); - background-image: -webkit-linear-gradient(top, #149bdf, #0480be); - background-image: -o-linear-gradient(top, #149bdf, #0480be); - background-image: linear-gradient(top, #149bdf, #0480be); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0); - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; - -webkit-transition: width 0.6s ease; - -moz-transition: width 0.6s ease; - -ms-transition: width 0.6s ease; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; -} -.progress-striped .bar { - background-color: #149bdf; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - -webkit-background-size: 40px 40px; - -moz-background-size: 40px 40px; - -o-background-size: 40px 40px; - background-size: 40px 40px; -} -.progress.active .bar { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -moz-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} -.progress-danger .bar { - background-color: #dd514c; - background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); - background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); - background-image: linear-gradient(top, #ee5f5b, #c43c35); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); -} -.progress-danger.progress-striped .bar { - background-color: #ee5f5b; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-success .bar { - background-color: #5eb95e; - background-image: -moz-linear-gradient(top, #62c462, #57a957); - background-image: -ms-linear-gradient(top, #62c462, #57a957); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); - background-image: -webkit-linear-gradient(top, #62c462, #57a957); - background-image: -o-linear-gradient(top, #62c462, #57a957); - background-image: linear-gradient(top, #62c462, #57a957); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0); -} -.progress-success.progress-striped .bar { - background-color: #62c462; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-info .bar { - background-color: #4bb1cf; - background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); - background-image: -ms-linear-gradient(top, #5bc0de, #339bb9); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); - background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); - background-image: -o-linear-gradient(top, #5bc0de, #339bb9); - background-image: linear-gradient(top, #5bc0de, #339bb9); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0); -} -.progress-info.progress-striped .bar { - background-color: #5bc0de; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-warning .bar { - background-color: #faa732; - background-image: -moz-linear-gradient(top, #fbb450, #f89406); - background-image: -ms-linear-gradient(top, #fbb450, #f89406); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); - background-image: -webkit-linear-gradient(top, #fbb450, #f89406); - background-image: -o-linear-gradient(top, #fbb450, #f89406); - background-image: linear-gradient(top, #fbb450, #f89406); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); -} -.progress-warning.progress-striped .bar { - background-color: #fbb450; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.accordion { - margin-bottom: 18px; -} -.accordion-group { - margin-bottom: 2px; - border: 1px solid #e5e5e5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.accordion-heading { - border-bottom: 0; -} -.accordion-heading .accordion-toggle { - display: block; - padding: 8px 15px; -} -.accordion-inner { - padding: 9px 15px; - border-top: 1px solid #e5e5e5; -} -.carousel { - position: relative; - margin-bottom: 18px; - line-height: 1; -} -.carousel-inner { - overflow: hidden; - width: 100%; - position: relative; -} -.carousel .item { - display: none; - position: relative; - -webkit-transition: 0.6s ease-in-out left; - -moz-transition: 0.6s ease-in-out left; - -ms-transition: 0.6s ease-in-out left; - -o-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; -} -.carousel .item > img { - display: block; - line-height: 1; -} -.carousel .active, -.carousel .next, -.carousel .prev { - display: block; -} -.carousel .active { - left: 0; -} -.carousel .next, -.carousel .prev { - position: absolute; - top: 0; - width: 100%; -} -.carousel .next { - left: 100%; -} -.carousel .prev { - left: -100%; -} -.carousel .next.left, -.carousel .prev.right { - left: 0; -} -.carousel .active.left { - left: -100%; -} -.carousel .active.right { - left: 100%; -} -.carousel-control { - position: absolute; - top: 40%; - left: 15px; - width: 40px; - height: 40px; - margin-top: -20px; - font-size: 60px; - font-weight: 100; - line-height: 30px; - color: #ffffff; - text-align: center; - background: #222222; - border: 3px solid #ffffff; - -webkit-border-radius: 23px; - -moz-border-radius: 23px; - border-radius: 23px; - opacity: 0.5; - filter: alpha(opacity=50); -} -.carousel-control.right { - left: auto; - right: 15px; -} -.carousel-control:hover { - color: #ffffff; - text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); -} -.carousel-caption { - position: absolute; - left: 0; - right: 0; - bottom: 0; - padding: 10px 15px 5px; - background: #333333; - background: rgba(0, 0, 0, 0.75); -} -.carousel-caption h4, -.carousel-caption p { - color: #ffffff; -} -.hero-unit { - padding: 60px; - margin-bottom: 30px; - background-color: #eeeeee; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} -.hero-unit h1 { - margin-bottom: 0; - font-size: 60px; - line-height: 1; - color: inherit; - letter-spacing: -1px; -} -.hero-unit p { - font-size: 18px; - font-weight: 200; - line-height: 27px; - color: inherit; -} -.pull-right { - float: right; -} -.pull-left { - float: left; -} -.hide { - display: none; -} -.show { - display: block; -} -.invisible { - visibility: hidden; -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap.min.css b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap.min.css deleted file mode 100755 index e46de1b..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/css/bootstrap.min.css +++ /dev/null @@ -1,442 +0,0 @@ -[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;line-height:14px;vertical-align:text-top;background-image:url("/assets/vendor/bootstrap/img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat;*margin-right:.3em;}[class^="icon-"]:last-child,[class*=" icon-"]:last-child{*margin-left:0;} -.icon-white{background-image:url("/assets/vendor/bootstrap/img/glyphicons-halflings-white.png");} -.icon-glass{background-position:0 0;} -.icon-music{background-position:-24px 0;} -.icon-search{background-position:-48px 0;} -.icon-envelope{background-position:-72px 0;} -.icon-heart{background-position:-96px 0;} -.icon-star{background-position:-120px 0;} -.icon-star-empty{background-position:-144px 0;} -.icon-user{background-position:-168px 0;} -.icon-film{background-position:-192px 0;} -.icon-th-large{background-position:-216px 0;} -.icon-th{background-position:-240px 0;} -.icon-th-list{background-position:-264px 0;} -.icon-ok{background-position:-288px 0;} -.icon-remove{background-position:-312px 0;} -.icon-zoom-in{background-position:-336px 0;} -.icon-zoom-out{background-position:-360px 0;} -.icon-off{background-position:-384px 0;} -.icon-signal{background-position:-408px 0;} -.icon-cog{background-position:-432px 0;} -.icon-trash{background-position:-456px 0;} -.icon-home{background-position:0 -24px;} -.icon-file{background-position:-24px -24px;} -.icon-time{background-position:-48px -24px;} -.icon-road{background-position:-72px -24px;} -.icon-download-alt{background-position:-96px -24px;} -.icon-download{background-position:-120px -24px;} -.icon-upload{background-position:-144px -24px;} -.icon-inbox{background-position:-168px -24px;} -.icon-play-circle{background-position:-192px -24px;} -.icon-repeat{background-position:-216px -24px;} -.icon-refresh{background-position:-240px -24px;} -.icon-list-alt{background-position:-264px -24px;} -.icon-lock{background-position:-287px -24px;} -.icon-flag{background-position:-312px -24px;} -.icon-headphones{background-position:-336px -24px;} -.icon-volume-off{background-position:-360px -24px;} -.icon-volume-down{background-position:-384px -24px;} -.icon-volume-up{background-position:-408px -24px;} -.icon-qrcode{background-position:-432px -24px;} -.icon-barcode{background-position:-456px -24px;} -.icon-tag{background-position:0 -48px;} -.icon-tags{background-position:-25px -48px;} -.icon-book{background-position:-48px -48px;} -.icon-bookmark{background-position:-72px -48px;} -.icon-print{background-position:-96px -48px;} -.icon-camera{background-position:-120px -48px;} -.icon-font{background-position:-144px -48px;} -.icon-bold{background-position:-167px -48px;} -.icon-italic{background-position:-192px -48px;} -.icon-text-height{background-position:-216px -48px;} -.icon-text-width{background-position:-240px -48px;} -.icon-align-left{background-position:-264px -48px;} -.icon-align-center{background-position:-288px -48px;} -.icon-align-right{background-position:-312px -48px;} -.icon-align-justify{background-position:-336px -48px;} -.icon-list{background-position:-360px -48px;} -.icon-indent-left{background-position:-384px -48px;} -.icon-indent-right{background-position:-408px -48px;} -.icon-facetime-video{background-position:-432px -48px;} -.icon-picture{background-position:-456px -48px;} -.icon-pencil{background-position:0 -72px;} -.icon-map-marker{background-position:-24px -72px;} -.icon-adjust{background-position:-48px -72px;} -.icon-tint{background-position:-72px -72px;} -.icon-edit{background-position:-96px -72px;} -.icon-share{background-position:-120px -72px;} -.icon-check{background-position:-144px -72px;} -.icon-move{background-position:-168px -72px;} -.icon-step-backward{background-position:-192px -72px;} -.icon-fast-backward{background-position:-216px -72px;} -.icon-backward{background-position:-240px -72px;} -.icon-play{background-position:-264px -72px;} -.icon-pause{background-position:-288px -72px;} -.icon-stop{background-position:-312px -72px;} -.icon-forward{background-position:-336px -72px;} -.icon-fast-forward{background-position:-360px -72px;} -.icon-step-forward{background-position:-384px -72px;} -.icon-eject{background-position:-408px -72px;} -.icon-chevron-left{background-position:-432px -72px;} -.icon-chevron-right{background-position:-456px -72px;} -.icon-plus-sign{background-position:0 -96px;} -.icon-minus-sign{background-position:-24px -96px;} -.icon-remove-sign{background-position:-48px -96px;} -.icon-ok-sign{background-position:-72px -96px;} -.icon-question-sign{background-position:-96px -96px;} -.icon-info-sign{background-position:-120px -96px;} -.icon-screenshot{background-position:-144px -96px;} -.icon-remove-circle{background-position:-168px -96px;} -.icon-ok-circle{background-position:-192px -96px;} -.icon-ban-circle{background-position:-216px -96px;} -.icon-arrow-left{background-position:-240px -96px;} -.icon-arrow-right{background-position:-264px -96px;} -.icon-arrow-up{background-position:-289px -96px;} -.icon-arrow-down{background-position:-312px -96px;} -.icon-share-alt{background-position:-336px -96px;} -.icon-resize-full{background-position:-360px -96px;} -.icon-resize-small{background-position:-384px -96px;} -.icon-plus{background-position:-408px -96px;} -.icon-minus{background-position:-433px -96px;} -.icon-asterisk{background-position:-456px -96px;} -.icon-exclamation-sign{background-position:0 -120px;} -.icon-gift{background-position:-24px -120px;} -.icon-leaf{background-position:-48px -120px;} -.icon-fire{background-position:-72px -120px;} -.icon-eye-open{background-position:-96px -120px;} -.icon-eye-close{background-position:-120px -120px;} -.icon-warning-sign{background-position:-144px -120px;} -.icon-plane{background-position:-168px -120px;} -.icon-calendar{background-position:-192px -120px;} -.icon-random{background-position:-216px -120px;} -.icon-comment{background-position:-240px -120px;} -.icon-magnet{background-position:-264px -120px;} -.icon-chevron-up{background-position:-288px -120px;} -.icon-chevron-down{background-position:-313px -119px;} -.icon-retweet{background-position:-336px -120px;} -.icon-shopping-cart{background-position:-360px -120px;} -.icon-folder-close{background-position:-384px -120px;} -.icon-folder-open{background-position:-408px -120px;} -.icon-resize-vertical{background-position:-432px -119px;} -.icon-resize-horizontal{background-position:-456px -118px;} -.dropdown{position:relative;} -.dropdown-toggle{*margin-bottom:-3px;} -.dropdown-toggle:active,.open .dropdown-toggle{outline:0;} -.caret{display:inline-block;width:0;height:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000000;opacity:0.3;filter:alpha(opacity=30);content:"";} -.dropdown .caret{margin-top:8px;margin-left:2px;} -.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100);} -.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;padding:4px 0;margin:0;list-style:none;background-color:#ffffff;border-color:#ccc;border-color:rgba(0, 0, 0, 0.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;*border-right-width:2px;*border-bottom-width:2px;}.dropdown-menu.pull-right{right:0;left:auto;} -.dropdown-menu .divider{height:1px;margin:8px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;*width:100%;*margin:-5px 0 5px;} -.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:18px;color:#333333;white-space:nowrap;} -.dropdown-menu li>a:hover,.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#ffffff;text-decoration:none;background-color:#0088cc;} -.dropdown.open{*z-index:1000;}.dropdown.open .dropdown-toggle{color:#ffffff;background:#ccc;background:rgba(0, 0, 0, 0.3);} -.dropdown.open .dropdown-menu{display:block;} -.pull-right .dropdown-menu{left:auto;right:0;} -.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000000;content:"\2191";} -.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;} -.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} -.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #eee;border:1px solid rgba(0, 0, 0, 0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);} -.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} -.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} -.fade{-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-ms-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;opacity:0;}.fade.in{opacity:1;} -.collapse{-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-ms-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;position:relative;overflow:hidden;height:0;}.collapse.in{height:auto;} -.close{float:right;font-size:20px;font-weight:bold;line-height:18px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover{color:#000000;text-decoration:none;opacity:0.4;filter:alpha(opacity=40);cursor:pointer;} -.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 10px 4px;margin-bottom:0;font-size:13px;line-height:18px;color:#333333;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);vertical-align:middle;background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-ms-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(top, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);border:1px solid #cccccc;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);cursor:pointer;*margin-left:.3em;}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{background-color:#e6e6e6;} -.btn:active,.btn.active{background-color:#cccccc \9;} -.btn:first-child{*margin-left:0;} -.btn:hover{color:#333333;text-decoration:none;background-color:#e6e6e6;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-ms-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;} -.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} -.btn.active,.btn:active{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);background-color:#e6e6e6;background-color:#d9d9d9 \9;outline:0;} -.btn.disabled,.btn[disabled]{cursor:default;background-image:none;background-color:#e6e6e6;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} -.btn-large{padding:9px 14px;font-size:15px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} -.btn-large [class^="icon-"]{margin-top:1px;} -.btn-small{padding:5px 9px;font-size:11px;line-height:16px;} -.btn-small [class^="icon-"]{margin-top:-1px;} -.btn-mini{padding:2px 6px;font-size:11px;line-height:14px;} -.btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover,.btn-inverse,.btn-inverse:hover{text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);color:#ffffff;} -.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255, 255, 255, 0.75);} -.btn-primary{background-color:#0074cc;background-image:-moz-linear-gradient(top, #0088cc, #0055cc);background-image:-ms-linear-gradient(top, #0088cc, #0055cc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc));background-image:-webkit-linear-gradient(top, #0088cc, #0055cc);background-image:-o-linear-gradient(top, #0088cc, #0055cc);background-image:linear-gradient(top, #0088cc, #0055cc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0);border-color:#0055cc #0055cc #003580;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#0055cc;} -.btn-primary:active,.btn-primary.active{background-color:#004099 \9;} -.btn-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-ms-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(top, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;} -.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;} -.btn-danger{background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-ms-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(top, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;} -.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;} -.btn-success{background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-ms-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(top, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;} -.btn-success:active,.btn-success.active{background-color:#408140 \9;} -.btn-info{background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-ms-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(top, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;} -.btn-info:active,.btn-info.active{background-color:#24748c \9;} -.btn-inverse{background-color:#414141;background-image:-moz-linear-gradient(top, #555555, #222222);background-image:-ms-linear-gradient(top, #555555, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222));background-image:-webkit-linear-gradient(top, #555555, #222222);background-image:-o-linear-gradient(top, #555555, #222222);background-image:linear-gradient(top, #555555, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{background-color:#222222;} -.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;} -button.btn,input[type="submit"].btn{*padding-top:2px;*padding-bottom:2px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;} -button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px;} -button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px;} -button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px;} -.btn-group{position:relative;*zoom:1;*margin-left:.3em;}.btn-group:before,.btn-group:after{display:table;content:"";} -.btn-group:after{clear:both;} -.btn-group:first-child{*margin-left:0;} -.btn-group+.btn-group{margin-left:5px;} -.btn-toolbar{margin-top:9px;margin-bottom:9px;}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1;} -.btn-group .btn{position:relative;float:left;margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} -.btn-group .btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;} -.btn-group .btn:last-child,.btn-group .dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;} -.btn-group .btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;} -.btn-group .btn.large:last-child,.btn-group .large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;} -.btn-group .btn:hover,.btn-group .btn:focus,.btn-group .btn:active,.btn-group .btn.active{z-index:2;} -.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;} -.btn-group .dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);*padding-top:3px;*padding-bottom:3px;} -.btn-group .btn-mini.dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:1px;*padding-bottom:1px;} -.btn-group .btn-small.dropdown-toggle{*padding-top:4px;*padding-bottom:4px;} -.btn-group .btn-large.dropdown-toggle{padding-left:12px;padding-right:12px;} -.btn-group.open{*z-index:1000;}.btn-group.open .dropdown-menu{display:block;margin-top:1px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} -.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);} -.btn .caret{margin-top:7px;margin-left:0;} -.btn:hover .caret,.open.btn-group .caret{opacity:1;filter:alpha(opacity=100);} -.btn-mini .caret{margin-top:5px;} -.btn-small .caret{margin-top:6px;} -.btn-large .caret{margin-top:6px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} -.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:0.75;filter:alpha(opacity=75);} -.alert{padding:8px 35px 8px 14px;margin-bottom:18px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;color:#c09853;} -.alert-heading{color:inherit;} -.alert .close{position:relative;top:-2px;right:-21px;line-height:18px;} -.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847;} -.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48;} -.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad;} -.alert-block{padding-top:14px;padding-bottom:14px;} -.alert-block>p,.alert-block>ul{margin-bottom:0;} -.alert-block p+p{margin-top:5px;} -.nav{margin-left:0;margin-bottom:18px;list-style:none;} -.nav>li>a{display:block;} -.nav>li>a:hover{text-decoration:none;background-color:#eeeeee;} -.nav .nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:18px;color:#999999;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);text-transform:uppercase;} -.nav li+.nav-header{margin-top:9px;} -.nav-list{padding-left:15px;padding-right:15px;margin-bottom:0;} -.nav-list>li>a,.nav-list .nav-header{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);} -.nav-list>li>a{padding:3px 15px;} -.nav-list>.active>a,.nav-list>.active>a:hover{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#0088cc;} -.nav-list [class^="icon-"]{margin-right:2px;} -.nav-list .divider{height:1px;margin:8px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;*width:100%;*margin:-5px 0 5px;} -.nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";} -.nav-tabs:after,.nav-pills:after{clear:both;} -.nav-tabs>li,.nav-pills>li{float:left;} -.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;} -.nav-tabs{border-bottom:1px solid #ddd;} -.nav-tabs>li{margin-bottom:-1px;} -.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:18px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd;} -.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;} -.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} -.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#ffffff;background-color:#0088cc;} -.nav-stacked>li{float:none;} -.nav-stacked>li>a{margin-right:0;} -.nav-tabs.nav-stacked{border-bottom:0;} -.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} -.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;} -.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;} -.nav-tabs.nav-stacked>li>a:hover{border-color:#ddd;z-index:2;} -.nav-pills.nav-stacked>li>a{margin-bottom:3px;} -.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;} -.nav-tabs .dropdown-menu,.nav-pills .dropdown-menu{margin-top:1px;border-width:1px;} -.nav-pills .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} -.nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret{border-top-color:#0088cc;border-bottom-color:#0088cc;margin-top:6px;} -.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580;} -.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333333;border-bottom-color:#333333;} -.nav>.dropdown.active>a:hover{color:#000000;cursor:pointer;} -.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>.open.active>a:hover{color:#ffffff;background-color:#999999;border-color:#999999;} -.nav .open .caret,.nav .open.active .caret,.nav .open a:hover .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:1;filter:alpha(opacity=100);} -.tabs-stacked .open>a:hover{border-color:#999999;} -.tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";} -.tabbable:after{clear:both;} -.tab-content{display:table;width:100%;} -.tabs-below .nav-tabs,.tabs-right .nav-tabs,.tabs-left .nav-tabs{border-bottom:0;} -.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;} -.tab-content>.active,.pill-content>.active{display:block;} -.tabs-below .nav-tabs{border-top:1px solid #ddd;} -.tabs-below .nav-tabs>li{margin-top:-1px;margin-bottom:0;} -.tabs-below .nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below .nav-tabs>li>a:hover{border-bottom-color:transparent;border-top-color:#ddd;} -.tabs-below .nav-tabs .active>a,.tabs-below .nav-tabs .active>a:hover{border-color:transparent #ddd #ddd #ddd;} -.tabs-left .nav-tabs>li,.tabs-right .nav-tabs>li{float:none;} -.tabs-left .nav-tabs>li>a,.tabs-right .nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;} -.tabs-left .nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;} -.tabs-left .nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;} -.tabs-left .nav-tabs>li>a:hover{border-color:#eeeeee #dddddd #eeeeee #eeeeee;} -.tabs-left .nav-tabs .active>a,.tabs-left .nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;} -.tabs-right .nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;} -.tabs-right .nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;} -.tabs-right .nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #eeeeee #dddddd;} -.tabs-right .nav-tabs .active>a,.tabs-right .nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;} -.navbar{*position:relative;*z-index:2;overflow:visible;margin-bottom:18px;} -.navbar-inner{padding-left:20px;padding-right:20px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);} -.navbar .container{width:auto;} -.btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);}.btn-navbar:hover,.btn-navbar:active,.btn-navbar.active,.btn-navbar.disabled,.btn-navbar[disabled]{background-color:#222222;} -.btn-navbar:active,.btn-navbar.active{background-color:#080808 \9;} -.btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);} -.btn-navbar .icon-bar+.icon-bar{margin-top:3px;} -.nav-collapse.collapse{height:auto;} -.navbar{color:#999999;}.navbar .brand:hover{text-decoration:none;} -.navbar .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#ffffff;} -.navbar .navbar-text{margin-bottom:0;line-height:40px;} -.navbar .btn,.navbar .btn-group{margin-top:5px;} -.navbar .btn-group .btn{margin-top:0;} -.navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";} -.navbar-form:after{clear:both;} -.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px;} -.navbar-form input,.navbar-form select{display:inline-block;margin-bottom:0;} -.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;} -.navbar-form .input-append,.navbar-form .input-prepend{margin-top:6px;white-space:nowrap;}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0;} -.navbar-search{position:relative;float:left;margin-top:6px;margin-bottom:0;}.navbar-search .search-query{padding:4px 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;color:#ffffff;background-color:#626262;border:1px solid #151515;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;}.navbar-search .search-query:-moz-placeholder{color:#cccccc;} -.navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;} -.navbar-search .search-query:focus,.navbar-search .search-query.focused{padding:5px 10px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);outline:0;} -.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;} -.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} -.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;} -.navbar-fixed-top{top:0;} -.navbar-fixed-bottom{bottom:0;} -.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;} -.navbar .nav.pull-right{float:right;} -.navbar .nav>li{display:block;float:left;} -.navbar .nav>li>a{float:none;padding:10px 10px 11px;line-height:19px;color:#999999;text-decoration:none;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);} -.navbar .nav>li>a:hover{background-color:transparent;color:#ffffff;text-decoration:none;} -.navbar .nav .active>a,.navbar .nav .active>a:hover{color:#ffffff;text-decoration:none;background-color:#222222;} -.navbar .divider-vertical{height:40px;width:1px;margin:0 9px;overflow:hidden;background-color:#222222;border-right:1px solid #333333;} -.navbar .nav.pull-right{margin-left:10px;margin-right:0;} -.navbar .dropdown-menu{margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.navbar .dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;} -.navbar .dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;} -.navbar-fixed-bottom .dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0, 0, 0, 0.2);border-bottom:0;bottom:-7px;top:auto;} -.navbar-fixed-bottom .dropdown-menu:after{border-top:6px solid #ffffff;border-bottom:0;bottom:-6px;top:auto;} -.navbar .nav .dropdown-toggle .caret,.navbar .nav .open.dropdown .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;} -.navbar .nav .active .caret{opacity:1;filter:alpha(opacity=100);} -.navbar .nav .open>.dropdown-toggle,.navbar .nav .active>.dropdown-toggle,.navbar .nav .open.active>.dropdown-toggle{background-color:transparent;} -.navbar .nav .active>.dropdown-toggle:hover{color:#ffffff;} -.navbar .nav.pull-right .dropdown-menu,.navbar .nav .dropdown-menu.pull-right{left:auto;right:0;}.navbar .nav.pull-right .dropdown-menu:before,.navbar .nav .dropdown-menu.pull-right:before{left:auto;right:12px;} -.navbar .nav.pull-right .dropdown-menu:after,.navbar .nav .dropdown-menu.pull-right:after{left:auto;right:13px;} -.breadcrumb{padding:7px 14px;margin:0 0 18px;list-style:none;background-color:#fbfbfb;background-image:-moz-linear-gradient(top, #ffffff, #f5f5f5);background-image:-ms-linear-gradient(top, #ffffff, #f5f5f5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));background-image:-webkit-linear-gradient(top, #ffffff, #f5f5f5);background-image:-o-linear-gradient(top, #ffffff, #f5f5f5);background-image:linear-gradient(top, #ffffff, #f5f5f5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;}.breadcrumb li{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 0 #ffffff;} -.breadcrumb .divider{padding:0 5px;color:#999999;} -.breadcrumb .active a{color:#333333;} -.pagination{height:36px;margin:18px 0;} -.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);} -.pagination li{display:inline;} -.pagination a{float:left;padding:0 14px;line-height:34px;text-decoration:none;border:1px solid #ddd;border-left-width:0;} -.pagination a:hover,.pagination .active a{background-color:#f5f5f5;} -.pagination .active a{color:#999999;cursor:default;} -.pagination .disabled span,.pagination .disabled a,.pagination .disabled a:hover{color:#999999;background-color:transparent;cursor:default;} -.pagination li:first-child a{border-left-width:1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} -.pagination li:last-child a{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;} -.pagination-centered{text-align:center;} -.pagination-right{text-align:right;} -.pager{margin-left:0;margin-bottom:18px;list-style:none;text-align:center;*zoom:1;}.pager:before,.pager:after{display:table;content:"";} -.pager:after{clear:both;} -.pager li{display:inline;} -.pager a{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;} -.pager a:hover{text-decoration:none;background-color:#f5f5f5;} -.pager .next a{float:right;} -.pager .previous a{float:left;} -.pager .disabled a,.pager .disabled a:hover{color:#999999;background-color:#fff;cursor:default;} -.modal-open .dropdown-menu{z-index:2050;} -.modal-open .dropdown.open{*z-index:2050;} -.modal-open .popover{z-index:2060;} -.modal-open .tooltip{z-index:2070;} -.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;} -.modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);} -.modal{position:fixed;top:50%;left:50%;z-index:1050;overflow:auto;width:560px;margin:-250px 0 0 -280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-ms-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;} -.modal.fade.in{top:50%;} -.modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;} -.modal-body{overflow-y:auto;max-height:400px;padding:15px;} -.modal-form{margin-bottom:0;} -.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;*zoom:1;}.modal-footer:before,.modal-footer:after{display:table;content:"";} -.modal-footer:after{clear:both;} -.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;} -.modal-footer .btn-group .btn+.btn{margin-left:-1px;} -.tooltip{position:absolute;z-index:1020;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);} -.tooltip.top{margin-top:-2px;} -.tooltip.right{margin-left:2px;} -.tooltip.bottom{margin-top:2px;} -.tooltip.left{margin-left:-2px;} -.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} -.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;} -.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;} -.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;} -.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} -.tooltip-arrow{position:absolute;width:0;height:0;} -.popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:5px;}.popover.top{margin-top:-5px;} -.popover.right{margin-left:5px;} -.popover.bottom{margin-top:5px;} -.popover.left{margin-left:-5px;} -.popover.top .arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} -.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;} -.popover.bottom .arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;} -.popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;} -.popover .arrow{position:absolute;width:0;height:0;} -.popover-inner{padding:3px;width:280px;overflow:hidden;background:#000000;background:rgba(0, 0, 0, 0.8);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);} -.popover-title{padding:9px 15px;line-height:1;background-color:#f5f5f5;border-bottom:1px solid #eee;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;} -.popover-content{padding:14px;background-color:#ffffff;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;} -.thumbnails{margin-left:-20px;list-style:none;*zoom:1;}.thumbnails:before,.thumbnails:after{display:table;content:"";} -.thumbnails:after{clear:both;} -.thumbnails>li{float:left;margin:0 0 18px 20px;} -.thumbnail{display:block;padding:4px;line-height:1;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);} -a.thumbnail:hover{border-color:#0088cc;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);} -.thumbnail>img{display:block;max-width:100%;margin-left:auto;margin-right:auto;} -.thumbnail .caption{padding:9px;} -.label{padding:1px 4px 2px;font-size:10.998px;font-weight:bold;line-height:13px;color:#ffffff;vertical-align:middle;white-space:nowrap;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} -.label:hover{color:#ffffff;text-decoration:none;} -.label-important{background-color:#b94a48;} -.label-important:hover{background-color:#953b39;} -.label-warning{background-color:#f89406;} -.label-warning:hover{background-color:#c67605;} -.label-success{background-color:#468847;} -.label-success:hover{background-color:#356635;} -.label-info{background-color:#3a87ad;} -.label-info:hover{background-color:#2d6987;} -.label-inverse{background-color:#333333;} -.label-inverse:hover{background-color:#1a1a1a;} -.badge{padding:1px 9px 2px;font-size:12.025px;font-weight:bold;white-space:nowrap;color:#ffffff;background-color:#999999;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px;} -.badge:hover{color:#ffffff;text-decoration:none;cursor:pointer;} -.badge-error{background-color:#b94a48;} -.badge-error:hover{background-color:#953b39;} -.badge-warning{background-color:#f89406;} -.badge-warning:hover{background-color:#c67605;} -.badge-success{background-color:#468847;} -.badge-success:hover{background-color:#356635;} -.badge-info{background-color:#3a87ad;} -.badge-info:hover{background-color:#2d6987;} -.badge-inverse{background-color:#333333;} -.badge-inverse:hover{background-color:#1a1a1a;} -@-webkit-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@-ms-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-ms-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(top, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} -.progress .bar{width:0%;height:18px;color:#ffffff;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-ms-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(top, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-ms-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;} -.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;} -.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;} -.progress-danger .bar{background-color:#dd514c;background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(top, #ee5f5b, #c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);} -.progress-danger.progress-striped .bar{background-color:#ee5f5b;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} -.progress-success .bar{background-color:#5eb95e;background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-ms-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(top, #62c462, #57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);} -.progress-success.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} -.progress-info .bar{background-color:#4bb1cf;background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-ms-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(top, #5bc0de, #339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);} -.progress-info.progress-striped .bar{background-color:#5bc0de;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} -.progress-warning .bar{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-ms-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(top, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);} -.progress-warning.progress-striped .bar{background-color:#fbb450;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} -.accordion{margin-bottom:18px;} -.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} -.accordion-heading{border-bottom:0;} -.accordion-heading .accordion-toggle{display:block;padding:8px 15px;} -.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;} -.carousel{position:relative;margin-bottom:18px;line-height:1;} -.carousel-inner{overflow:hidden;width:100%;position:relative;} -.carousel .item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-moz-transition:0.6s ease-in-out left;-ms-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left;} -.carousel .item>img{display:block;line-height:1;} -.carousel .active,.carousel .next,.carousel .prev{display:block;} -.carousel .active{left:0;} -.carousel .next,.carousel .prev{position:absolute;top:0;width:100%;} -.carousel .next{left:100%;} -.carousel .prev{left:-100%;} -.carousel .next.left,.carousel .prev.right{left:0;} -.carousel .active.left{left:-100%;} -.carousel .active.right{left:100%;} -.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#ffffff;text-align:center;background:#222222;border:3px solid #ffffff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:0.5;filter:alpha(opacity=50);}.carousel-control.right{left:auto;right:15px;} -.carousel-control:hover{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);} -.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:10px 15px 5px;background:#333333;background:rgba(0, 0, 0, 0.75);} -.carousel-caption h4,.carousel-caption p{color:#ffffff;} -.hero-unit{padding:60px;margin-bottom:30px;background-color:#eeeeee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;color:inherit;letter-spacing:-1px;} -.hero-unit p{font-size:18px;font-weight:200;line-height:27px;color:inherit;} -.pull-right{float:right;} -.pull-left{float:left;} -.hide{display:none;} -.show{display:block;} -.invisible{visibility:hidden;} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/img/glyphicons-halflings-darkgreen.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/img/glyphicons-halflings-darkgreen.png deleted file mode 100755 index 44004e7e929100430261d60e6bad781e19d1e1ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2028 zcmV-P)Px#22e~?MF0Q*8gVl{BDTl?0004WQchC7DBSFgH#-TNp-P|V& zOIGr+UR%_>&5*K=!S2hVvasB+TQAAtiR+)#`$5Jhh7FYs`p4L30a+)N^C6AF5Ks)e zoRT#*pJp)$KkQ34<*L2cBU{xwOlY&2E3k7_n=?{Sge8DpCp|gdZp^tt8;I|d^$IqC zseS&}iD@td^{QS^xJGCLfwiAi*eK-+Vly;gLz{wnb$#cBdjoACpumCxi+aDXk)|j zV5U63=7f6c{ooVYE$dfJ`SJx>JYPw8qTxos270>T983k$Zi<`8CmA2k=sBHf%QwG} zg&SE(<(jW{3f(WnHn^}_u^0OAQ;1q6E01}wbX zU{?l-3|3`Z$NM^`YP9U=TM6LCh|Sgu_UeIUdrcXHGU$=*wXMyN^^tnBm>?;aPeOGv zrQRxg;pLb`Gvn)w%~7N_D{J&#N#()!h0U*ITiKxSx){PxClhl8)=XE&w|d(`ww$Xw z@tDP0klnTG0vpOTGJ4zUX3I6Ye=ugTK!=C=F4OujFE&X!)=L*%lsgGO4U7GjZ?lcr zlN`HNF2~$gr`erAZthJF^t7C*G7uhTPs1lCu^}`9s(K>#4(V(slp!P(zcpqN$6k!3 z7R#T?4%KPbHS*caWlcyno5;lqi-V7c-BNExR|$0w@9Mw)wk%>ucsa0M{8sjA zMjwm%g9AS7{xjD5JmO1jg3Y)A;0l12x8c(u$61UT>|Ci=gJ-AIn@F@uo5A9e;;7BH zl!eXkX^^+E=fLV*J;JQQN$Ok$#oM9P7dN%+=}VTKXT3mS|I~Gjd~;RF`8x2_=2TzV zX7Y!nUQ~*`f&EiMV1Ql!iQW?k2}hJzkbS?tTF8i+C#fLJ$@3vIgDjX)ZKEEVjtSe}h!K4eY+g7)>4 zNr^QL>_Y^!xjfDoQZ6L23BMO{2!?&0$n$-1LQM$7wg>1n>>BLMWYffi>XAGR4h=ih z=Z?8Y2$iCTrHt(7P`WFRd$N&?Sza`VgeIRKS?hy`>J2QcN;d;e9nY<25aWIuP; zeZwNjhJH+D%+puNgncFDzM7V4IZOGC_@vY;56h%?N(5r=s#U319$Hr)7p$fk z8-@R8!t=P`FqRkR8KYFwCNsxjqWQqXomo+bn#`wC>8|OFX^r%`ELpY#6ZxjY^ zYtV)0cc=j{>Tp&}Q;cM7pAM&{F?mBPwS;0=lV>(z^Ur|{B8hVLwxQtq$X>dc;uc1& z60-;M#N=!Z+mA?X7c9lKp&;g}t8RH#Xi3SIHb+{)*9)Nqe{`+hy1Ftno)?N?VRJcG zw=&i-U1qMXX>!Aix2~S>r&J!Q-g2%cuaTK&!`_a$HEzmyjVA96v%Y3;)c6AkrQ93; zWlz?Nhyr@s<^G(OX*qNL+0~!zZ2YW&3O0YMXYQ*!iR0oP3$Ss}aO7(_k7`3*qG912 z>`hi!+v>J8en@i%4)=xjRuy5Nr-hfavM?(b9>wEsLOIj($Jr)x_dS~ z!j!;~z2xG+b|U#JXGm#ozOb#;CJ1~f;N_itzGR-k=zafptCxB8yq3E*91V56CWQ-j zQGXSEvM*0YbVU4(74GqcWj&1vL)Yda?!DF=f;v??F2u2!Jl&V4E?K+??ypLtX<3u5 zDcMIymNg^#Fq4&xZh0%v;8`Q>`NHO%jFyzFcVunus9VMiuW0gl*{7esKB8VTSNLzF z?mZl6b^^itk)5lqvfae?;OVcWmtNR4TGS2T>z!!WDcD21MrLnd>Mm;7j2-g&kQPEO z_J%9tH~4U5F9O3uyEpI&wr5_iV%gcA?kf$RjS8DoiHo-zzx@kVcL~MLw?Jh80000< KMNUMnLSTX-Dd|xF diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/img/glyphicons-halflings-darkred.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/img/glyphicons-halflings-darkred.png deleted file mode 100755 index 98d8664421dc24f21e7a09adc6a3c806c28443d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2028 zcmV-P)Px#22e~?MF0Q*wIU)EAcF7!0004WQchC7DBSFgH#-TNp-P|V& zOIGr+UR%_>&5*K=!S2hVvasB+TQAAtiR+)#`$5Jhh7FYs`p4L30a+)N^C6AF5Ks)e zoRT#*pJp)$KkQ34<*L2cBU{xwOlY&2E3k7_n=?{Sge8DpCp|gdZp^tt8;I|d^$IqC zseS&}iD@td^{QS^xJGCLfwiAi*eK-+Vly;gLz{wnb$#cBdjoACpumCxi+aDXk)|j zV5U63=7f6c{ooVYE$dfJ`SJx>JYPw8qTxos270>T983k$Zi<`8CmA2k=sBHf%QwG} zg&SE(<(jW{3f(WnHn^}_u^0OAQ;1q6E01}wbX zU{?l-3|3`Z$NM^`YP9U=TM6LCh|Sgu_UeIUdrcXHGU$=*wXMyN^^tnBm>?;aPeOGv zrQRxg;pLb`Gvn)w%~7N_D{J&#N#()!h0U*ITiKxSx){PxClhl8)=XE&w|d(`ww$Xw z@tDP0klnTG0vpOTGJ4zUX3I6Ye=ugTK!=C=F4OujFE&X!)=L*%lsgGO4U7GjZ?lcr zlN`HNF2~$gr`erAZthJF^t7C*G7uhTPs1lCu^}`9s(K>#4(V(slp!P(zcpqN$6k!3 z7R#T?4%KPbHS*caWlcyno5;lqi-V7c-BNExR|$0w@9Mw)wk%>ucsa0M{8sjA zMjwm%g9AS7{xjD5JmO1jg3Y)A;0l12x8c(u$61UT>|Ci=gJ-AIn@F@uo5A9e;;7BH zl!eXkX^^+E=fLV*J;JQQN$Ok$#oM9P7dN%+=}VTKXT3mS|I~Gjd~;RF`8x2_=2TzV zX7Y!nUQ~*`f&EiMV1Ql!iQW?k2}hJzkbS?tTF8i+C#fLJ$@3vIgDjX)ZKEEVjtSe}h!K4eY+g7)>4 zNr^QL>_Y^!xjfDoQZ6L23BMO{2!?&0$n$-1LQM$7wg>1n>>BLMWYffi>XAGR4h=ih z=Z?8Y2$iCTrHt(7P`WFRd$N&?Sza`VgeIRKS?hy`>J2QcN;d;e9nY<25aWIuP; zeZwNjhJH+D%+puNgncFDzM7V4IZOGC_@vY;56h%?N(5r=s#U319$Hr)7p$fk z8-@R8!t=P`FqRkR8KYFwCNsxjqWQqXomo+bn#`wC>8|OFX^r%`ELpY#6ZxjY^ zYtV)0cc=j{>Tp&}Q;cM7pAM&{F?mBPwS;0=lV>(z^Ur|{B8hVLwxQtq$X>dc;uc1& z60-;M#N=!Z+mA?X7c9lKp&;g}t8RH#Xi3SIHb+{)*9)Nqe{`+hy1Ftno)?N?VRJcG zw=&i-U1qMXX>!Aix2~S>r&J!Q-g2%cuaTK&!`_a$HEzmyjVA96v%Y3;)c6AkrQ93; zWlz?Nhyr@s<^G(OX*qNL+0~!zZ2YW&3O0YMXYQ*!iR0oP3$Ss}aO7(_k7`3*qG912 z>`hi!+v>J8en@i%4)=xjRuy5Nr-hfavM?(b9>wEsLOIj($Jr)x_dS~ z!j!;~z2xG+b|U#JXGm#ozOb#;CJ1~f;N_itzGR-k=zafptCxB8yq3E*91V56CWQ-j zQGXSEvM*0YbVU4(74GqcWj&1vL)Yda?!DF=f;v??F2u2!Jl&V4E?K+??ypLtX<3u5 zDcMIymNg^#Fq4&xZh0%v;8`Q>`NHO%jFyzFcVunus9VMiuW0gl*{7esKB8VTSNLzF z?mZl6b^^itk)5lqvfae?;OVcWmtNR4TGS2T>z!!WDcD21MrLnd>Mm;7j2-g&kQPEO z_J%9tH~4U5F9O3uyEpI&wr5_iV%gcA?kf$RjS8DoiHo-zzx@kVcL~MLw?Jh80000< KMNUMnLSTZee(1LV diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/img/glyphicons-halflings-white.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/img/glyphicons-halflings-white.png deleted file mode 100755 index a20760bfde58d1c92cee95116059fba03c68d689..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4352 zcmd6r_dnEu|G?izMxtxU%uI5!l8nr)ZF&&*%FGe4jtO*5mbhJzhV&et11z&&^B?xH$MZ007{+ZK!Jj01(PQ zJBFS4pH$0DefCd1HM@h*JNkcsi%oOXzj>qsEle$eQ7ApHL(XYdn5Y$Lk_3-J9p9d) zFeVfl3J47_g1XaoDXWsnBp9ZzZ74CI9RN-Nw{>+8A&#rBpZgc9WX2H3Ssv6doZP?t zS!g}lGvW1<9%?dj_G_x}3WUMN(8(x{a6_pd0yiUsf^67GGS50uSB*ORe5x6}qAf1z z@Q;2y4G{Lb?f21p)uTpChN&4q%^blZ2IsusUOhk)pe0yxPD6oHKXWSjv8&2pMdnegiQUtoXt1U0MmWAWu2&>3j$eb^qKNV z_(`JQZP&mXLT@U%-2rPy!7r|*Y1oAdlarltaUyq+yq^|d{B9_>t@Rd#@_KW9w_6P$ z^Dv8(Hi8pDJK{r0Iqq*va$cL=isZh0=1)wIoQ^vYPs$(rBz$+DY z`y}1}`M%-da686`}zw_w>8 z!BcqxVTim*F)-}$segV$ON*!Zl~dhX@Rz^K2Xurh<1-vjImult%O z!-WXvkA_agVuhluW};J;#r>)?^uHS;G?a?j;(z?Y^FTwOA?tzLFvQDf&X8}9s7Wh< znEfd_vPyF_V`?>kR`w_h@+%59oKa;NPVGUo52QjisO-|$cYE(VNmm#+`#T5a;gh|Z z8A0^l3UwQMn0J3xXWL7tY~OxAu=_hGvp@_%SZKA)ec-h-dfwIhS3jGBLL6e6Os;1LR zRDG&3TF`HV*n{&*H!oTSsLq!U5xV5!Yr6I_!*VhmwC3a2BOYfWH13AtVY|n5jv49e zcb0xCCZnt0i$>-S$k9J@-c!8wG#siu(Lgy_r1nfy+}!W9g-ucwp=&Hs1=Vs4i_q;dQL$8~Uq2BVA4o4uY!6}S`xH(Qec+{mJD~qgg@6W8 zipi@Z!ZR+Kr_)u&G);pG$tg$8#KPrsl&N3(m($NAU&9ogH9rVfW<4Mw>^7$&96g<9 zHQzekG9T5SS7DVm7EFY%CjChhfRyap4+d;+^0ng^B)~xKFG^7d2oOo|R8uY&S|X0@ znAGMb^rFQwGPTzsFQ8ZK4S@WO(8`6T+$Yt9{jGMd?jrTeb|_!Un`n9xDZu-fW+_aJ z4Uyy_$)`Ot!~doWUHW`(?F!iYvc5+g-(W9X<-tX*h%6(f;+A(OQ@w{WYSiq&pjKnN z)tSH~5g)03sKk)U+&GyP*?86fusX1ttpH1ng8ruC6UOddM~t>0wvZh}1cW%&7{tT$ zze(TwkA~V|_~nL{6YE#^RUC__Mx26zo*w(EfK2Q@R6xo`VkJKs^Eax`&*O*bw~*ap zyaqA_p(~(POY{H5+NIgewtB{|(%ML_wR8o);^XGTQ|{*J>74v>{_iyU;U*NTN}A%` z`8ltg(&furYlb!j%1ra!KPSiGmJ>f4c!bkAtjb_qmQ+aVB(QohO zRo@%)1krVtMPgkT6&3T*u`XO8pE&-!!u((3qVnraj|gN5aDxvqtrPs*MCZcO3i^Qt zI7$&BFr)50exhv11)82?u`ab0FgUSw;dpbnAtmz4k^&Nx`xMQ$5(JW}ry%)ry+DV> zS)TWjtXz7V6iK5$ghFuPiT>;;fAp)oy%%7grs4UwqU5+Ms96%`wU=YU5W-UGw(6iq z2GhB=Zw49;Yu<#7=soc@tZvYFIVNfkRPsCT&;76cYOONMwv!v*e#(X?l7eB- z&pWvVcaO;IKDg7C8bZ-+Hm`g>n_WC6%BL=CZlc``M{0T;%eYQ4t}V%m20okR=HET) z@)@WU_}tJOqiH7w2K%lpe0P z^FhhCX$ufUPCq4?C1A8ZSrVz=$~!VZ>;=kb8eaI;S1TKb|E9j*muthJe2||9pYYI$ zR@lkEo?K76^_v{llrL+?Swi1koJYJqG_-g!v?$ITb=q4#Rk--)fABD zh4Ibu7+f~5HEzy@7xoP^f$=} z+D3gYZ3W>%>m=U)p#UNOPPd&2cD&; zxb{vXTzpCjcJAOEA_~=RX^_BM+_BYW*T{zzM(3TosvFOmf6Kp0IerP4`MuBgFdrkZ zf9X~m0O$toCckMn8klZDxWKr2%FHNk1VLQE)$!{Hz9{*a@TaZjC7kKsC1dIUx*6AQ zJFZc8p~!CewW(VvE@yaTPFt-6n+dZ@TM582m7=-#9JoDOH#zYPe{)-Lza89t+w#Zd zvQ3k$)Q)mPF)g)_+v$Gqgq~*RwGeBn{vhp!IPgkixW8WY)H`S{&~om!keO$Sum=oY zTatGW#*O^aVU<^!#et91z~$IYa;_C@J7+V)`<1b_lh`8FHOAgc=Az}lf)k%5xTMrv zr6uV%eKaU~wvi7pU)MeB7HK z2D;27Dik%)-q@hK-!I|N(cl`lAF^EIv0C-t$d1qtFnKIkcMW<4b%Lzf3Y+~~qB7`< zj);HTQS0Oex%zA170>?kRVA_m_*O?rZRpS3v{+O+cifN7Eb&>$Z==vGKh1V)C`qGu z_u8y<#N3Wp&$V^@T??GnE&RN^IyXM)r0h(gS3;b2pt0O!eNIt4{;3H~V5Ln7vs>8{ ziqqZL4Nwlvj4CtEv0>;Fw~D>LB_+-ecI)tiR%a!^GI3BawvNQGz4#b|_df&`e||2k;K}WnvU!Dx=0#ue(=U# zK&pYNNf5RQZOveUm+;dQ*FIA0&#`?@z*bBhUgr(n9_FpoHPB2pI8iMpW|sF*D{+75 z-k;nba~m^}=b7P$FAF1)S!oDKtNG-`%h{XQi6=SMH5GZ%8j?ugqt~!K zwvA_m(*=EIssFVW0EZ;o=u#R5gBB$CUL+->U32;2PM2O(drij20XBy|hH+=bu!0*KIKBj%c+ z^{)B`3$NB2yp-IHf02C#Fw!(;S&rR%2Pq(!<`Q=u&+_V4eCe z?!d0m@ndhMu%QZ`ERBCD+uU~%h>+E^Qd;Cz=IlGV(IwUrOz(+1Gkd7O z$HME|^+mAGBc4k(2jEj5$g30r-BUoK@Nn!*Td)5USoe+IZ-x9)#yd)sD}2Z?2{4@) zb|)xsK&pqOpB;+H#gbf^Pto29M<2Y>dU5pAF4p{+j=oBZ$2EXA*xI~AM@g20H7o_x z{2-Kc;SRpcxLXzU)a53ZoX%ndB^i8=>Sf&{i6CYkGSkvLj0<@C-!VKm#iX8dws__S zKp`T~rIAfaogJ!tV(~rs5)ctD#A};YXgPNI`<5=nWQjnIf<=1Pzn2y$C8yUkFKhwM z@%Ah?L`DM^@d<2evu->Oo=SVaiR<1GjYwe^G2)XY`l$Q%4H`|PpFA($N_8=6uOr0s zj+)C5xin zwn`&QQOr<`27|~lU*GNfe)r$+;%v`3=Q$VW;ymZMrG+ssw-7e~0K7L%46Ffwh5XNs z<6`?KHS^P-{ZmgZZ@~?jOs2~JH%~nY@PG5j1zTI#0Amn(L8qe2oETm=+B^jogFL!D zS!ISRHW3ybWQ6o&?2=byQi)JhfBSH9PzL~<0B#!S!^50cUq25lRnLyYPq06zWw>~J z`$KJG?wJet%MCZ1y81U)c?UzG;{mBi?no2aAHvt8L__Xy66K$DAupSD_4^VSeG;vA zGhrY7dmCA}Zg<=d*dvUYvYMo40k!iu>o|-n)q^ld6Q(6yBtUWr1GY<4vK2?uoeS|r zT(a}}&NC3;#Lv8{0Y$f=#j|95fZYUrx?foCUQ)KvUf$-LSb+6D%%)z#|1KO+ZTgw~ zNbE_n|4p~xYoc$edOQF-XOS;%evzdNi3 zk@(r9h#R5FpacG)j3VDRRz>g49u-o5A=@X`M=nQQ@W&MqFu3+}8)vIJyezf?(vDF#3iq72Yg1rU0$uCw``L1fzH6tU=MT zJ)FP#7~BMLoosB<>)Y`BnyxN?%PW`qwa_nrmk;P<^+|3lA$cC z!KnRdI-*8rENgl-h*t3^hviocbR?_BCX&(%?-)#H*`RRAUES@w^(0ey@bvFIq^EE0 zYIYPpa4Xz>{9(cUIq~=IuByDHtJskc@OXkoyhOvqjT$BRxhihe#hq<$(TaV?g(bYx zzk*$b_y4xdrKd-u!#@W)7x%!%FE62JOZu)fTpnAUKW94KXQKo9lR9BoI`nN#BVNL^WLc-2PBnDb`!FkQ6Yw zt8#VMCqN`vOx>8A-pqa3!sg7$vF4w|C29%3h5O_{d+D-|gED!U;S&A}5QU_Uz%?vp zmMBIPvj7qQQG74PJJYIU8KAgcJcJvNO0O6=%8w|@chXvpUX6O34cERMj)m?X)jwit zWYksusgx8zcrOv1Kd4Cm%yUoW#?wfM-ee=?*pXt7dUvyZrhI*Zx3!VQzm2&Dk2i(z zv;J?=_W|Z`2Nb*9*m`XJ^1ixr>GY^eNXXM8UzHKbJ%`E&g=nC-&t%U{b2>k}4 zM^eC8z9@VJ)NO6~zgW94x7psn_*GsP&AXPV>|c7+3V*`GDl?NuNHOr8_5jSBY+FrJ zxxFy&omakmacj-wPLUexLeI~s2^i^7jdiy$lDh;U-ze^bf8Wq&_j48xx9sRj~I0?AI|l`&NRKa0xj_M7{QQP8x>W$llZ# z^2}mA)Bep^+iA@Qw-LK1wT3nbnW#j??18HOX9M~EwO_4MW54*U(nB|yBja(g7FnMC zblZNR)Y{`EcNWNZ9&#=!$@W#;-?`_@7{fb;%BTGaNt!jg%h zP{`+<{G!`T5|=OLq>Z*{Z2O&8zMn16ACVB$Qm``DYk?tjJdb2uC7aci<-`J?E%OU+ zGrN5UtA#%|w#4Z;NP?k$>n!<|SrjF%qnK36 z-X#tb9{hRfZswTsPVZBN8H~75sHKLYIz~6u+pKzy#crwlQTpM#$E~+Abk)TD#sz#v zXX8Go`ZaF>B8Zu%M9U<;>RXE zbfFb@39Y9#&~E%DMKl*GIPjFwcNZ7nuMbVEpA0WbvBjM9QA!sp{YiDoe131&NawG0 z)w7{^`zTTBX*b%&r|n~U@dMgnxo!))g;D+Qg=`Xw5@VHk^{hiH?Dbc#u;gsXHzn0i z2)8o6*&Kl>6tpGG-xYvB-r`9coW<<#c<0|E=wQpY(XerrkkfVOt!t*N?wvbI|9F@&~JQ7q2jXe2H zCW^MvkWX8I-=%fo@BdI{A^py@pAB`shd&A{*amKE*X!a7A2Yu?Z%f;af$36@t#hgGI$UAqZQr>(vfUM3&C0L=d07kpTV z65hXXqa6SYLUvQ%beIm#w8HN~d3!4?$?iB2Owr|ut8l>>rMSqaZB}JGncrpN>H)eX z?`{XC$$(nou>9J>y&RJ_GCHrPS%%Jr+GeZ-p;^lV`1YLmyxKN-u#7+}dnx}N%zgXH z$CV1rQyi4eN)t(4&9Ix9{_jMeW*4;LYis@>9EQ2Es^gfy-VKyn0lc8i{7q3yuQV}F zD6Fom;2?qz@ukzYpge~g8?BAWbC}{;E82F=WrGc0;?er)DQ&9VG84bSn{>9B(k zwM%!e%*jQ~?@0DuS;yYC#^~O_E+}d7VN;GP%ockmCFlj4DNZ%yl_X-Hn$v_=+Er1z z)xF^ugN@xFweaki3bVXB3?uwjsn55RD1&YMi6B+jBAEU6|0Y1ne zLxbyOnkM9BHX2f}bHa<7WG>P_pz=aP(B)D(uo1i&yvId9DaA3GTsK?WdG%g5Q5z-% zUfT;wH`Xu@LDvM>F<4<`LiFUdk7UO)oS&1>Rnv!81;V#S1gZ^;byAIw5fmjY3m)nw z?+@SmlmBCWV>bFM8|-jGB{WLeI3o9DaWo<)11@8`kh*v=cN0DNB+st4sz6R#2I0qi z4c&8ZcAexDoiEyzoZJ((D9)8bG%^Z+MCs@_Q)++#Uvn&7#CI<7^ioFM{2qLTEAfMX z#1kD>oACS6EsTK8F}{R&pahvhyt|}$lX5-EzVP=!*jL*U(=7^7%UUF#`g>m(9)4uh zN+-O*&B&PgYQ520)x+!;$#)PXM`Kgq-o1CQLPsDGuSVi?k7|gIEtmv^WewHMkLAio zl1Us*ZM8T5*j_cED4OCIiNDZ{(dj&{3{g&T+~4Y*L((GimlI~v8Q&*2;zNurHxdEX zDgWY5T-u#~Rw6AH53<&eUOA_3sJa+<`S@61`0Z+&gPPC(dA9xY-3vCHs+QQ8y<*H| zq`~2~B6ACGIIhlq0$V=$vE_&HDcwxCpLD6$_1>ZT*h{SQByL1NMw0+fOj?Wz& zFvJdbQkbJBeJ=wX#hUle7%rUXR$4yPWhM|#t(`DrC+d#^K8*!sRn%{Eee5S%bqSan z?Gaxb6y6;Dw^4Ura3@7~UnV3ahsAZxfc!%uwqZbo@PGj7@>ji1sVn}8fiB(aiz~Jo zTDXK*@oVh~gVo^Iu~o8PQNMj6)RalL?o3^H@pnjZNLWoX&@@;gDJHvX&C-&SZCkAF z?Pux@B3eZQ037cWb&FZMuP+XLz1yG`s8)?SoCs!ygWlxG$PB`Eka2i37Fv)TK{|58 zJti;S=?xo)8?eTei(HD#f`Jq8j>vX~5NRzRU9sf_ z>oxtdr~$>ax+OJ;^X)vsSztp0JYJsoQlX{)JP`NN^%4mv6u3oW-hBTdM2W@5-Fze> z9n9nd!;qg7R6d&M#&&}CPAvA|mF^4XPltG`XZl9!t)5o^flxcEGJRDAZjOjF zQ0Iea%DG$E3bP&!(93|2RCY3l5t3s3J*JOik0=hGeaJ@3@H8tD7CVRqHg&`+R3j0a8@kqB}PI}{$m!yRab zvul5lL(>3*TF>n~)*#hsmwUTtKRAA2Fnk0PENdI!9GrZLu@zyKzs+&m-IKFviqv>& kg1Lm#gqI~e;$iYPkmG5c&N-g{UI@TVLkokN>#mRg2V?7pi2wiq diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/js/bootstrap.js b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/js/bootstrap.js deleted file mode 100755 index ca86867..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/bootstrap/js/bootstrap.js +++ /dev/null @@ -1,1726 +0,0 @@ -/* =================================================== - * bootstrap-transition.js v2.0.2 - * http://twitter.github.com/bootstrap/javascript.html#transitions - * =================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================== */ - -!function( $ ) { - - $(function () { - - "use strict" - - /* CSS TRANSITION SUPPORT (https://gist.github.com/373874) - * ======================================================= */ - - $.support.transition = (function () { - var thisBody = document.body || document.documentElement - , thisStyle = thisBody.style - , support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined - - return support && { - end: (function () { - var transitionEnd = "TransitionEnd" - if ( $.browser.webkit ) { - transitionEnd = "webkitTransitionEnd" - } else if ( $.browser.mozilla ) { - transitionEnd = "transitionend" - } else if ( $.browser.opera ) { - transitionEnd = "oTransitionEnd" - } - return transitionEnd - }()) - } - })() - - }) - -}( window.jQuery );/* ========================================================== - * bootstrap-alert.js v2.0.2 - * http://twitter.github.com/bootstrap/javascript.html#alerts - * ========================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================== */ - - -!function( $ ){ - - "use strict" - - /* ALERT CLASS DEFINITION - * ====================== */ - - var dismiss = '[data-dismiss="alert"]' - , Alert = function ( el ) { - $(el).on('click', dismiss, this.close) - } - - Alert.prototype = { - - constructor: Alert - - , close: function ( e ) { - var $this = $(this) - , selector = $this.attr('data-target') - , $parent - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 - } - - $parent = $(selector) - $parent.trigger('close') - - e && e.preventDefault() - - $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) - - $parent - .trigger('close') - .removeClass('in') - - function removeElement() { - $parent - .trigger('closed') - .remove() - } - - $.support.transition && $parent.hasClass('fade') ? - $parent.on($.support.transition.end, removeElement) : - removeElement() - } - - } - - - /* ALERT PLUGIN DEFINITION - * ======================= */ - - $.fn.alert = function ( option ) { - return this.each(function () { - var $this = $(this) - , data = $this.data('alert') - if (!data) $this.data('alert', (data = new Alert(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - $.fn.alert.Constructor = Alert - - - /* ALERT DATA-API - * ============== */ - - $(function () { - $('body').on('click.alert.data-api', dismiss, Alert.prototype.close) - }) - -}( window.jQuery );/* ============================================================ - * bootstrap-button.js v2.0.2 - * http://twitter.github.com/bootstrap/javascript.html#buttons - * ============================================================ - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================================================ */ - -!function( $ ){ - - "use strict" - - /* BUTTON PUBLIC CLASS DEFINITION - * ============================== */ - - var Button = function ( element, options ) { - this.$element = $(element) - this.options = $.extend({}, $.fn.button.defaults, options) - } - - Button.prototype = { - - constructor: Button - - , setState: function ( state ) { - var d = 'disabled' - , $el = this.$element - , data = $el.data() - , val = $el.is('input') ? 'val' : 'html' - - state = state + 'Text' - data.resetText || $el.data('resetText', $el[val]()) - - $el[val](data[state] || this.options[state]) - - // push to event loop to allow forms to submit - setTimeout(function () { - state == 'loadingText' ? - $el.addClass(d).attr(d, d) : - $el.removeClass(d).removeAttr(d) - }, 0) - } - - , toggle: function () { - var $parent = this.$element.parent('[data-toggle="buttons-radio"]') - - $parent && $parent - .find('.active') - .removeClass('active') - - this.$element.toggleClass('active') - } - - } - - - /* BUTTON PLUGIN DEFINITION - * ======================== */ - - $.fn.button = function ( option ) { - return this.each(function () { - var $this = $(this) - , data = $this.data('button') - , options = typeof option == 'object' && option - if (!data) $this.data('button', (data = new Button(this, options))) - if (option == 'toggle') data.toggle() - else if (option) data.setState(option) - }) - } - - $.fn.button.defaults = { - loadingText: 'loading...' - } - - $.fn.button.Constructor = Button - - - /* BUTTON DATA-API - * =============== */ - - $(function () { - $('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) { - var $btn = $(e.target) - if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') - $btn.button('toggle') - }) - }) - -}( window.jQuery );/* ========================================================== - * bootstrap-carousel.js v2.0.2 - * http://twitter.github.com/bootstrap/javascript.html#carousel - * ========================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================== */ - - -!function( $ ){ - - "use strict" - - /* CAROUSEL CLASS DEFINITION - * ========================= */ - - var Carousel = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, $.fn.carousel.defaults, options) - this.options.slide && this.slide(this.options.slide) - this.options.pause == 'hover' && this.$element - .on('mouseenter', $.proxy(this.pause, this)) - .on('mouseleave', $.proxy(this.cycle, this)) - } - - Carousel.prototype = { - - cycle: function () { - this.interval = setInterval($.proxy(this.next, this), this.options.interval) - return this - } - - , to: function (pos) { - var $active = this.$element.find('.active') - , children = $active.parent().children() - , activePos = children.index($active) - , that = this - - if (pos > (children.length - 1) || pos < 0) return - - if (this.sliding) { - return this.$element.one('slid', function () { - that.to(pos) - }) - } - - if (activePos == pos) { - return this.pause().cycle() - } - - return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])) - } - - , pause: function () { - clearInterval(this.interval) - this.interval = null - return this - } - - , next: function () { - if (this.sliding) return - return this.slide('next') - } - - , prev: function () { - if (this.sliding) return - return this.slide('prev') - } - - , slide: function (type, next) { - var $active = this.$element.find('.active') - , $next = next || $active[type]() - , isCycling = this.interval - , direction = type == 'next' ? 'left' : 'right' - , fallback = type == 'next' ? 'first' : 'last' - , that = this - - this.sliding = true - - isCycling && this.pause() - - $next = $next.length ? $next : this.$element.find('.item')[fallback]() - - if ($next.hasClass('active')) return - - if (!$.support.transition && this.$element.hasClass('slide')) { - this.$element.trigger('slide') - $active.removeClass('active') - $next.addClass('active') - this.sliding = false - this.$element.trigger('slid') - } else { - $next.addClass(type) - $next[0].offsetWidth // force reflow - $active.addClass(direction) - $next.addClass(direction) - this.$element.trigger('slide') - this.$element.one($.support.transition.end, function () { - $next.removeClass([type, direction].join(' ')).addClass('active') - $active.removeClass(['active', direction].join(' ')) - that.sliding = false - setTimeout(function () { that.$element.trigger('slid') }, 0) - }) - } - - isCycling && this.cycle() - - return this - } - - } - - - /* CAROUSEL PLUGIN DEFINITION - * ========================== */ - - $.fn.carousel = function ( option ) { - return this.each(function () { - var $this = $(this) - , data = $this.data('carousel') - , options = typeof option == 'object' && option - if (!data) $this.data('carousel', (data = new Carousel(this, options))) - if (typeof option == 'number') data.to(option) - else if (typeof option == 'string' || (option = options.slide)) data[option]() - else data.cycle() - }) - } - - $.fn.carousel.defaults = { - interval: 5000 - , pause: 'hover' - } - - $.fn.carousel.Constructor = Carousel - - - /* CAROUSEL DATA-API - * ================= */ - - $(function () { - $('body').on('click.carousel.data-api', '[data-slide]', function ( e ) { - var $this = $(this), href - , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 - , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data()) - $target.carousel(options) - e.preventDefault() - }) - }) - -}( window.jQuery );/* ============================================================= - * bootstrap-collapse.js v2.0.2 - * http://twitter.github.com/bootstrap/javascript.html#collapse - * ============================================================= - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================================================ */ - -!function( $ ){ - - "use strict" - - var Collapse = function ( element, options ) { - this.$element = $(element) - this.options = $.extend({}, $.fn.collapse.defaults, options) - - if (this.options["parent"]) { - this.$parent = $(this.options["parent"]) - } - - this.options.toggle && this.toggle() - } - - Collapse.prototype = { - - constructor: Collapse - - , dimension: function () { - var hasWidth = this.$element.hasClass('width') - return hasWidth ? 'width' : 'height' - } - - , show: function () { - var dimension = this.dimension() - , scroll = $.camelCase(['scroll', dimension].join('-')) - , actives = this.$parent && this.$parent.find('.in') - , hasData - - if (actives && actives.length) { - hasData = actives.data('collapse') - actives.collapse('hide') - hasData || actives.data('collapse', null) - } - - this.$element[dimension](0) - this.transition('addClass', 'show', 'shown') - this.$element[dimension](this.$element[0][scroll]) - - } - - , hide: function () { - var dimension = this.dimension() - this.reset(this.$element[dimension]()) - this.transition('removeClass', 'hide', 'hidden') - this.$element[dimension](0) - } - - , reset: function ( size ) { - var dimension = this.dimension() - - this.$element - .removeClass('collapse') - [dimension](size || 'auto') - [0].offsetWidth - - this.$element[size ? 'addClass' : 'removeClass']('collapse') - - return this - } - - , transition: function ( method, startEvent, completeEvent ) { - var that = this - , complete = function () { - if (startEvent == 'show') that.reset() - that.$element.trigger(completeEvent) - } - - this.$element - .trigger(startEvent) - [method]('in') - - $.support.transition && this.$element.hasClass('collapse') ? - this.$element.one($.support.transition.end, complete) : - complete() - } - - , toggle: function () { - this[this.$element.hasClass('in') ? 'hide' : 'show']() - } - - } - - /* COLLAPSIBLE PLUGIN DEFINITION - * ============================== */ - - $.fn.collapse = function ( option ) { - return this.each(function () { - var $this = $(this) - , data = $this.data('collapse') - , options = typeof option == 'object' && option - if (!data) $this.data('collapse', (data = new Collapse(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - $.fn.collapse.defaults = { - toggle: true - } - - $.fn.collapse.Constructor = Collapse - - - /* COLLAPSIBLE DATA-API - * ==================== */ - - $(function () { - $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) { - var $this = $(this), href - , target = $this.attr('data-target') - || e.preventDefault() - || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 - , option = $(target).data('collapse') ? 'toggle' : $this.data() - $(target).collapse(option) - }) - }) - -}( window.jQuery );/* ============================================================ - * bootstrap-dropdown.js v2.0.2 - * http://twitter.github.com/bootstrap/javascript.html#dropdowns - * ============================================================ - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================================================ */ - - -!function( $ ){ - - "use strict" - - /* DROPDOWN CLASS DEFINITION - * ========================= */ - - var toggle = '[data-toggle="dropdown"]' - , Dropdown = function ( element ) { - var $el = $(element).on('click.dropdown.data-api', this.toggle) - $('html').on('click.dropdown.data-api', function () { - $el.parent().removeClass('open') - }) - } - - Dropdown.prototype = { - - constructor: Dropdown - - , toggle: function ( e ) { - var $this = $(this) - , selector = $this.attr('data-target') - , $parent - , isActive - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 - } - - $parent = $(selector) - $parent.length || ($parent = $this.parent()) - - isActive = $parent.hasClass('open') - - clearMenus() - !isActive && $parent.toggleClass('open') - - return false - } - - } - - function clearMenus() { - $(toggle).parent().removeClass('open') - } - - - /* DROPDOWN PLUGIN DEFINITION - * ========================== */ - - $.fn.dropdown = function ( option ) { - return this.each(function () { - var $this = $(this) - , data = $this.data('dropdown') - if (!data) $this.data('dropdown', (data = new Dropdown(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - $.fn.dropdown.Constructor = Dropdown - - - /* APPLY TO STANDARD DROPDOWN ELEMENTS - * =================================== */ - - $(function () { - $('html').on('click.dropdown.data-api', clearMenus) - $('body').on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle) - }) - -}( window.jQuery );/* ========================================================= - * bootstrap-modal.js v2.0.2 - * http://twitter.github.com/bootstrap/javascript.html#modals - * ========================================================= - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================= */ - - -!function( $ ){ - - "use strict" - - /* MODAL CLASS DEFINITION - * ====================== */ - - var Modal = function ( content, options ) { - this.options = options - this.$element = $(content) - .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) - } - - Modal.prototype = { - - constructor: Modal - - , toggle: function () { - return this[!this.isShown ? 'show' : 'hide']() - } - - , show: function () { - var that = this - - if (this.isShown) return - - $('body').addClass('modal-open') - - this.isShown = true - this.$element.trigger('show') - - escape.call(this) - backdrop.call(this, function () { - var transition = $.support.transition && that.$element.hasClass('fade') - - !that.$element.parent().length && that.$element.appendTo(document.body) //don't move modals dom position - - that.$element - .show() - - if (transition) { - that.$element[0].offsetWidth // force reflow - } - - that.$element.addClass('in') - - transition ? - that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) : - that.$element.trigger('shown') - - }) - } - - , hide: function ( e ) { - e && e.preventDefault() - - if (!this.isShown) return - - var that = this - this.isShown = false - - $('body').removeClass('modal-open') - - escape.call(this) - - this.$element - .trigger('hide') - .removeClass('in') - - $.support.transition && this.$element.hasClass('fade') ? - hideWithTransition.call(this) : - hideModal.call(this) - } - - } - - - /* MODAL PRIVATE METHODS - * ===================== */ - - function hideWithTransition() { - var that = this - , timeout = setTimeout(function () { - that.$element.off($.support.transition.end) - hideModal.call(that) - }, 500) - - this.$element.one($.support.transition.end, function () { - clearTimeout(timeout) - hideModal.call(that) - }) - } - - function hideModal( that ) { - this.$element - .hide() - .trigger('hidden') - - backdrop.call(this) - } - - function backdrop( callback ) { - var that = this - , animate = this.$element.hasClass('fade') ? 'fade' : '' - - if (this.isShown && this.options.backdrop) { - var doAnimate = $.support.transition && animate - - this.$backdrop = $('

') - .css({ - position: 'absolute', - visibility: 'visible', - left: -j*(width/cells), - top: -i*(height/rows) - }) - .parent() - .addClass('ui-effects-explode') - .css({ - position: 'absolute', - overflow: 'hidden', - width: width/cells, - height: height/rows, - left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? (j-Math.floor(cells/2))*(width/cells) : 0), - top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? (i-Math.floor(rows/2))*(height/rows) : 0), - opacity: o.options.mode == 'show' ? 0 : 1 - }).animate({ - left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? 0 : (j-Math.floor(cells/2))*(width/cells)), - top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? 0 : (i-Math.floor(rows/2))*(height/rows)), - opacity: o.options.mode == 'show' ? 1 : 0 - }, o.duration || 500); - } - } - - // Set a timeout, to call the callback approx. when the other animations have finished - setTimeout(function() { - - o.options.mode == 'show' ? el.css({ visibility: 'visible' }) : el.css({ visibility: 'visible' }).hide(); - if(o.callback) o.callback.apply(el[0]); // Callback - el.dequeue(); - - $('div.ui-effects-explode').remove(); - - }, o.duration || 500); - - - }); - -}; - -})(jQuery); -/* - * jQuery UI Effects Fade 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Fade - * - * Depends: - * jquery.effects.core.js - */ -(function( $, undefined ) { - -$.effects.fade = function(o) { - return this.queue(function() { - var elem = $(this), - mode = $.effects.setMode(elem, o.options.mode || 'hide'); - - elem.animate({ opacity: mode }, { - queue: false, - duration: o.duration, - easing: o.options.easing, - complete: function() { - (o.callback && o.callback.apply(this, arguments)); - elem.dequeue(); - } - }); - }); -}; - -})(jQuery); -/* - * jQuery UI Effects Fold 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Fold - * - * Depends: - * jquery.effects.core.js - */ -(function( $, undefined ) { - -$.effects.fold = function(o) { - - return this.queue(function() { - - // Create element - var el = $(this), props = ['position','top','bottom','left','right']; - - // Set options - var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode - var size = o.options.size || 15; // Default fold size - var horizFirst = !(!o.options.horizFirst); // Ensure a boolean value - var duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2; - - // Adjust - $.effects.save(el, props); el.show(); // Save & Show - var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper - var widthFirst = ((mode == 'show') != horizFirst); - var ref = widthFirst ? ['width', 'height'] : ['height', 'width']; - var distance = widthFirst ? [wrapper.width(), wrapper.height()] : [wrapper.height(), wrapper.width()]; - var percent = /([0-9]+)%/.exec(size); - if(percent) size = parseInt(percent[1],10) / 100 * distance[mode == 'hide' ? 0 : 1]; - if(mode == 'show') wrapper.css(horizFirst ? {height: 0, width: size} : {height: size, width: 0}); // Shift - - // Animation - var animation1 = {}, animation2 = {}; - animation1[ref[0]] = mode == 'show' ? distance[0] : size; - animation2[ref[1]] = mode == 'show' ? distance[1] : 0; - - // Animate - wrapper.animate(animation1, duration, o.options.easing) - .animate(animation2, duration, o.options.easing, function() { - if(mode == 'hide') el.hide(); // Hide - $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore - if(o.callback) o.callback.apply(el[0], arguments); // Callback - el.dequeue(); - }); - - }); - -}; - -})(jQuery); -/* - * jQuery UI Effects Highlight 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Highlight - * - * Depends: - * jquery.effects.core.js - */ -(function( $, undefined ) { - -$.effects.highlight = function(o) { - return this.queue(function() { - var elem = $(this), - props = ['backgroundImage', 'backgroundColor', 'opacity'], - mode = $.effects.setMode(elem, o.options.mode || 'show'), - animation = { - backgroundColor: elem.css('backgroundColor') - }; - - if (mode == 'hide') { - animation.opacity = 0; - } - - $.effects.save(elem, props); - elem - .show() - .css({ - backgroundImage: 'none', - backgroundColor: o.options.color || '#ffff99' - }) - .animate(animation, { - queue: false, - duration: o.duration, - easing: o.options.easing, - complete: function() { - (mode == 'hide' && elem.hide()); - $.effects.restore(elem, props); - (mode == 'show' && !$.support.opacity && this.style.removeAttribute('filter')); - (o.callback && o.callback.apply(this, arguments)); - elem.dequeue(); - } - }); - }); -}; - -})(jQuery); -/* - * jQuery UI Effects Pulsate 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Pulsate - * - * Depends: - * jquery.effects.core.js - */ -(function( $, undefined ) { - -$.effects.pulsate = function(o) { - return this.queue(function() { - var elem = $(this), - mode = $.effects.setMode(elem, o.options.mode || 'show'); - times = ((o.options.times || 5) * 2) - 1; - duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2, - isVisible = elem.is(':visible'), - animateTo = 0; - - if (!isVisible) { - elem.css('opacity', 0).show(); - animateTo = 1; - } - - if ((mode == 'hide' && isVisible) || (mode == 'show' && !isVisible)) { - times--; - } - - for (var i = 0; i < times; i++) { - elem.animate({ opacity: animateTo }, duration, o.options.easing); - animateTo = (animateTo + 1) % 2; - } - - elem.animate({ opacity: animateTo }, duration, o.options.easing, function() { - if (animateTo == 0) { - elem.hide(); - } - (o.callback && o.callback.apply(this, arguments)); - }); - - elem - .queue('fx', function() { elem.dequeue(); }) - .dequeue(); - }); -}; - -})(jQuery); -/* - * jQuery UI Effects Scale 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Scale - * - * Depends: - * jquery.effects.core.js - */ -(function( $, undefined ) { - -$.effects.puff = function(o) { - return this.queue(function() { - var elem = $(this), - mode = $.effects.setMode(elem, o.options.mode || 'hide'), - percent = parseInt(o.options.percent, 10) || 150, - factor = percent / 100, - original = { height: elem.height(), width: elem.width() }; - - $.extend(o.options, { - fade: true, - mode: mode, - percent: mode == 'hide' ? percent : 100, - from: mode == 'hide' - ? original - : { - height: original.height * factor, - width: original.width * factor - } - }); - - elem.effect('scale', o.options, o.duration, o.callback); - elem.dequeue(); - }); -}; - -$.effects.scale = function(o) { - - return this.queue(function() { - - // Create element - var el = $(this); - - // Set options - var options = $.extend(true, {}, o.options); - var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode - var percent = parseInt(o.options.percent,10) || (parseInt(o.options.percent,10) == 0 ? 0 : (mode == 'hide' ? 0 : 100)); // Set default scaling percent - var direction = o.options.direction || 'both'; // Set default axis - var origin = o.options.origin; // The origin of the scaling - if (mode != 'effect') { // Set default origin and restore for show/hide - options.origin = origin || ['middle','center']; - options.restore = true; - } - var original = {height: el.height(), width: el.width()}; // Save original - el.from = o.options.from || (mode == 'show' ? {height: 0, width: 0} : original); // Default from state - - // Adjust - var factor = { // Set scaling factor - y: direction != 'horizontal' ? (percent / 100) : 1, - x: direction != 'vertical' ? (percent / 100) : 1 - }; - el.to = {height: original.height * factor.y, width: original.width * factor.x}; // Set to state - - if (o.options.fade) { // Fade option to support puff - if (mode == 'show') {el.from.opacity = 0; el.to.opacity = 1;}; - if (mode == 'hide') {el.from.opacity = 1; el.to.opacity = 0;}; - }; - - // Animation - options.from = el.from; options.to = el.to; options.mode = mode; - - // Animate - el.effect('size', options, o.duration, o.callback); - el.dequeue(); - }); - -}; - -$.effects.size = function(o) { - - return this.queue(function() { - - // Create element - var el = $(this), props = ['position','top','bottom','left','right','width','height','overflow','opacity']; - var props1 = ['position','top','bottom','left','right','overflow','opacity']; // Always restore - var props2 = ['width','height','overflow']; // Copy for children - var cProps = ['fontSize']; - var vProps = ['borderTopWidth', 'borderBottomWidth', 'paddingTop', 'paddingBottom']; - var hProps = ['borderLeftWidth', 'borderRightWidth', 'paddingLeft', 'paddingRight']; - - // Set options - var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode - var restore = o.options.restore || false; // Default restore - var scale = o.options.scale || 'both'; // Default scale mode - var origin = o.options.origin; // The origin of the sizing - var original = {height: el.height(), width: el.width()}; // Save original - el.from = o.options.from || original; // Default from state - el.to = o.options.to || original; // Default to state - // Adjust - if (origin) { // Calculate baseline shifts - var baseline = $.effects.getBaseline(origin, original); - el.from.top = (original.height - el.from.height) * baseline.y; - el.from.left = (original.width - el.from.width) * baseline.x; - el.to.top = (original.height - el.to.height) * baseline.y; - el.to.left = (original.width - el.to.width) * baseline.x; - }; - var factor = { // Set scaling factor - from: {y: el.from.height / original.height, x: el.from.width / original.width}, - to: {y: el.to.height / original.height, x: el.to.width / original.width} - }; - if (scale == 'box' || scale == 'both') { // Scale the css box - if (factor.from.y != factor.to.y) { // Vertical props scaling - props = props.concat(vProps); - el.from = $.effects.setTransition(el, vProps, factor.from.y, el.from); - el.to = $.effects.setTransition(el, vProps, factor.to.y, el.to); - }; - if (factor.from.x != factor.to.x) { // Horizontal props scaling - props = props.concat(hProps); - el.from = $.effects.setTransition(el, hProps, factor.from.x, el.from); - el.to = $.effects.setTransition(el, hProps, factor.to.x, el.to); - }; - }; - if (scale == 'content' || scale == 'both') { // Scale the content - if (factor.from.y != factor.to.y) { // Vertical props scaling - props = props.concat(cProps); - el.from = $.effects.setTransition(el, cProps, factor.from.y, el.from); - el.to = $.effects.setTransition(el, cProps, factor.to.y, el.to); - }; - }; - $.effects.save(el, restore ? props : props1); el.show(); // Save & Show - $.effects.createWrapper(el); // Create Wrapper - el.css('overflow','hidden').css(el.from); // Shift - - // Animate - if (scale == 'content' || scale == 'both') { // Scale the children - vProps = vProps.concat(['marginTop','marginBottom']).concat(cProps); // Add margins/font-size - hProps = hProps.concat(['marginLeft','marginRight']); // Add margins - props2 = props.concat(vProps).concat(hProps); // Concat - el.find("*[width]").each(function(){ - child = $(this); - if (restore) $.effects.save(child, props2); - var c_original = {height: child.height(), width: child.width()}; // Save original - child.from = {height: c_original.height * factor.from.y, width: c_original.width * factor.from.x}; - child.to = {height: c_original.height * factor.to.y, width: c_original.width * factor.to.x}; - if (factor.from.y != factor.to.y) { // Vertical props scaling - child.from = $.effects.setTransition(child, vProps, factor.from.y, child.from); - child.to = $.effects.setTransition(child, vProps, factor.to.y, child.to); - }; - if (factor.from.x != factor.to.x) { // Horizontal props scaling - child.from = $.effects.setTransition(child, hProps, factor.from.x, child.from); - child.to = $.effects.setTransition(child, hProps, factor.to.x, child.to); - }; - child.css(child.from); // Shift children - child.animate(child.to, o.duration, o.options.easing, function(){ - if (restore) $.effects.restore(child, props2); // Restore children - }); // Animate children - }); - }; - - // Animate - el.animate(el.to, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { - if (el.to.opacity === 0) { - el.css('opacity', el.from.opacity); - } - if(mode == 'hide') el.hide(); // Hide - $.effects.restore(el, restore ? props : props1); $.effects.removeWrapper(el); // Restore - if(o.callback) o.callback.apply(this, arguments); // Callback - el.dequeue(); - }}); - - }); - -}; - -})(jQuery); -/* - * jQuery UI Effects Shake 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Shake - * - * Depends: - * jquery.effects.core.js - */ -(function( $, undefined ) { - -$.effects.shake = function(o) { - - return this.queue(function() { - - // Create element - var el = $(this), props = ['position','top','bottom','left','right']; - - // Set options - var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode - var direction = o.options.direction || 'left'; // Default direction - var distance = o.options.distance || 20; // Default distance - var times = o.options.times || 3; // Default # of times - var speed = o.duration || o.options.duration || 140; // Default speed per shake - - // Adjust - $.effects.save(el, props); el.show(); // Save & Show - $.effects.createWrapper(el); // Create Wrapper - var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; - var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; - - // Animation - var animation = {}, animation1 = {}, animation2 = {}; - animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance; - animation1[ref] = (motion == 'pos' ? '+=' : '-=') + distance * 2; - animation2[ref] = (motion == 'pos' ? '-=' : '+=') + distance * 2; - - // Animate - el.animate(animation, speed, o.options.easing); - for (var i = 1; i < times; i++) { // Shakes - el.animate(animation1, speed, o.options.easing).animate(animation2, speed, o.options.easing); - }; - el.animate(animation1, speed, o.options.easing). - animate(animation, speed / 2, o.options.easing, function(){ // Last shake - $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore - if(o.callback) o.callback.apply(this, arguments); // Callback - }); - el.queue('fx', function() { el.dequeue(); }); - el.dequeue(); - }); - -}; - -})(jQuery); -/* - * jQuery UI Effects Slide 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Slide - * - * Depends: - * jquery.effects.core.js - */ -(function( $, undefined ) { - -$.effects.slide = function(o) { - - return this.queue(function() { - - // Create element - var el = $(this), props = ['position','top','bottom','left','right']; - - // Set options - var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode - var direction = o.options.direction || 'left'; // Default Direction - - // Adjust - $.effects.save(el, props); el.show(); // Save & Show - $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper - var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; - var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; - var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) : el.outerWidth({margin:true})); - if (mode == 'show') el.css(ref, motion == 'pos' ? (isNaN(distance) ? "-" + distance : -distance) : distance); // Shift - - // Animation - var animation = {}; - animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance; - - // Animate - el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { - if(mode == 'hide') el.hide(); // Hide - $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore - if(o.callback) o.callback.apply(this, arguments); // Callback - el.dequeue(); - }}); - - }); - -}; - -})(jQuery); -/* - * jQuery UI Effects Transfer 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Transfer - * - * Depends: - * jquery.effects.core.js - */ -(function( $, undefined ) { - -$.effects.transfer = function(o) { - return this.queue(function() { - var elem = $(this), - target = $(o.options.to), - endPosition = target.offset(), - animation = { - top: endPosition.top, - left: endPosition.left, - height: target.innerHeight(), - width: target.innerWidth() - }, - startPosition = elem.offset(), - transfer = $('
') - .appendTo(document.body) - .addClass(o.options.className) - .css({ - top: startPosition.top, - left: startPosition.left, - height: elem.innerHeight(), - width: elem.innerWidth(), - position: 'absolute' - }) - .animate(animation, o.duration, o.options.easing, function() { - transfer.remove(); - (o.callback && o.callback.apply(elem[0], arguments)); - elem.dequeue(); - }); - }); -}; - -})(jQuery); \ No newline at end of file diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/entries b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/entries deleted file mode 100755 index bec7192..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/entries +++ /dev/null @@ -1,239 +0,0 @@ -10 - -dir -808 -svn+ssh://andrew@util.helppain.net/srv/svn/helppain/dashboard/code/var/www/web_roots/dashboard/assets/vendor/jquery.ui/plugins -svn+ssh://andrew@util.helppain.net/srv/svn/helppain - - - -2012-02-29T18:30:38.892504Z -808 -andrew - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -147760bf-2e89-47d8-8d4d-606508277b6e - - - - - - -0 - -jquery.ui.core.js -file - - - - -2011-10-24T19:31:21.000000Z -51f90493a43592d2fa397cd2c1070e76 -2012-02-29T18:30:38.892504Z -808 -andrew - - - - - - - - - - - - - - - - - - - - - -8112 - -jquery.ui.mouse.js -file - - - - -2011-10-24T19:31:21.000000Z -50d2bb85b1dc54fb1f419db11d8e1c82 -2012-02-29T18:30:38.892504Z -808 -andrew - - - - - - - - - - - - - - - - - - - - - -4045 - -jquery.ui.slider.js -file - - - - -2011-10-24T19:31:21.000000Z -646c59748d8971fe21ba1d393b7c12ba -2012-02-29T18:30:38.892504Z -808 -andrew - - - - - - - - - - - - - - - - - - - - - -17595 - -jquery.ui.sortable.js -file - - - - -2011-10-24T19:31:21.000000Z -1d910d81e5d1765c4f8652f0b9d9a7ae -2012-02-29T18:30:38.892504Z -808 -andrew - - - - - - - - - - - - - - - - - - - - - -39624 - -jquery.ui.tabs.js -file - - - - -2011-10-24T19:31:21.000000Z -dc0387648408f25d209cc474703d0519 -2012-02-29T18:30:38.892504Z -808 -andrew - - - - - - - - - - - - - - - - - - - - - -26771 - -jquery.ui.widget.js -file - - - - -2011-10-24T19:31:21.000000Z -58ada4b79964e186ad9808a1271833c1 -2012-02-29T18:30:38.892504Z -808 -andrew - - - - - - - - - - - - - - - - - - - - - -6864 - diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.core.js.svn-base b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.core.js.svn-base deleted file mode 100755 index 9b358e7..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.core.js.svn-base +++ /dev/null @@ -1,308 +0,0 @@ -/*! - * jQuery UI 1.8.9 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function( $, undefined ) { - -// prevent duplicate loading -// this is only a problem because we proxy existing functions -// and we don't want to double proxy them -$.ui = $.ui || {}; -if ( $.ui.version ) { - return; -} - -$.extend( $.ui, { - version: "1.8.9", - - keyCode: { - ALT: 18, - BACKSPACE: 8, - CAPS_LOCK: 20, - COMMA: 188, - COMMAND: 91, - COMMAND_LEFT: 91, // COMMAND - COMMAND_RIGHT: 93, - CONTROL: 17, - DELETE: 46, - DOWN: 40, - END: 35, - ENTER: 13, - ESCAPE: 27, - HOME: 36, - INSERT: 45, - LEFT: 37, - MENU: 93, // COMMAND_RIGHT - NUMPAD_ADD: 107, - NUMPAD_DECIMAL: 110, - NUMPAD_DIVIDE: 111, - NUMPAD_ENTER: 108, - NUMPAD_MULTIPLY: 106, - NUMPAD_SUBTRACT: 109, - PAGE_DOWN: 34, - PAGE_UP: 33, - PERIOD: 190, - RIGHT: 39, - SHIFT: 16, - SPACE: 32, - TAB: 9, - UP: 38, - WINDOWS: 91 // COMMAND - } -}); - -// plugins -$.fn.extend({ - _focus: $.fn.focus, - focus: function( delay, fn ) { - return typeof delay === "number" ? - this.each(function() { - var elem = this; - setTimeout(function() { - $( elem ).focus(); - if ( fn ) { - fn.call( elem ); - } - }, delay ); - }) : - this._focus.apply( this, arguments ); - }, - - scrollParent: function() { - var scrollParent; - if (($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) { - scrollParent = this.parents().filter(function() { - return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1)); - }).eq(0); - } else { - scrollParent = this.parents().filter(function() { - return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1)); - }).eq(0); - } - - return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent; - }, - - zIndex: function( zIndex ) { - if ( zIndex !== undefined ) { - return this.css( "zIndex", zIndex ); - } - - if ( this.length ) { - var elem = $( this[ 0 ] ), position, value; - while ( elem.length && elem[ 0 ] !== document ) { - // Ignore z-index if position is set to a value where z-index is ignored by the browser - // This makes behavior of this function consistent across browsers - // WebKit always returns auto if the element is positioned - position = elem.css( "position" ); - if ( position === "absolute" || position === "relative" || position === "fixed" ) { - // IE returns 0 when zIndex is not specified - // other browsers return a string - // we ignore the case of nested elements with an explicit value of 0 - //
- value = parseInt( elem.css( "zIndex" ), 10 ); - if ( !isNaN( value ) && value !== 0 ) { - return value; - } - } - elem = elem.parent(); - } - } - - return 0; - }, - - disableSelection: function() { - return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) + - ".ui-disableSelection", function( event ) { - event.preventDefault(); - }); - }, - - enableSelection: function() { - return this.unbind( ".ui-disableSelection" ); - } -}); - -$.each( [ "Width", "Height" ], function( i, name ) { - var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], - type = name.toLowerCase(), - orig = { - innerWidth: $.fn.innerWidth, - innerHeight: $.fn.innerHeight, - outerWidth: $.fn.outerWidth, - outerHeight: $.fn.outerHeight - }; - - function reduce( elem, size, border, margin ) { - $.each( side, function() { - size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0; - if ( border ) { - size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0; - } - if ( margin ) { - size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0; - } - }); - return size; - } - - $.fn[ "inner" + name ] = function( size ) { - if ( size === undefined ) { - return orig[ "inner" + name ].call( this ); - } - - return this.each(function() { - $( this ).css( type, reduce( this, size ) + "px" ); - }); - }; - - $.fn[ "outer" + name] = function( size, margin ) { - if ( typeof size !== "number" ) { - return orig[ "outer" + name ].call( this, size ); - } - - return this.each(function() { - $( this).css( type, reduce( this, size, true, margin ) + "px" ); - }); - }; -}); - -// selectors -function visible( element ) { - return !$( element ).parents().andSelf().filter(function() { - return $.curCSS( this, "visibility" ) === "hidden" || - $.expr.filters.hidden( this ); - }).length; -} - -$.extend( $.expr[ ":" ], { - data: function( elem, i, match ) { - return !!$.data( elem, match[ 3 ] ); - }, - - focusable: function( element ) { - var nodeName = element.nodeName.toLowerCase(), - tabIndex = $.attr( element, "tabindex" ); - if ( "area" === nodeName ) { - var map = element.parentNode, - mapName = map.name, - img; - if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { - return false; - } - img = $( "img[usemap=#" + mapName + "]" )[0]; - return !!img && visible( img ); - } - return ( /input|select|textarea|button|object/.test( nodeName ) - ? !element.disabled - : "a" == nodeName - ? element.href || !isNaN( tabIndex ) - : !isNaN( tabIndex )) - // the element and all of its ancestors must be visible - && visible( element ); - }, - - tabbable: function( element ) { - var tabIndex = $.attr( element, "tabindex" ); - return ( isNaN( tabIndex ) || tabIndex >= 0 ) && $( element ).is( ":focusable" ); - } -}); - -// support -$(function() { - var body = document.body, - div = body.appendChild( div = document.createElement( "div" ) ); - - $.extend( div.style, { - minHeight: "100px", - height: "auto", - padding: 0, - borderWidth: 0 - }); - - $.support.minHeight = div.offsetHeight === 100; - $.support.selectstart = "onselectstart" in div; - - // set display to none to avoid a layout bug in IE - // http://dev.jquery.com/ticket/4014 - body.removeChild( div ).style.display = "none"; -}); - - - - - -// deprecated -$.extend( $.ui, { - // $.ui.plugin is deprecated. Use the proxy pattern instead. - plugin: { - add: function( module, option, set ) { - var proto = $.ui[ module ].prototype; - for ( var i in set ) { - proto.plugins[ i ] = proto.plugins[ i ] || []; - proto.plugins[ i ].push( [ option, set[ i ] ] ); - } - }, - call: function( instance, name, args ) { - var set = instance.plugins[ name ]; - if ( !set || !instance.element[ 0 ].parentNode ) { - return; - } - - for ( var i = 0; i < set.length; i++ ) { - if ( instance.options[ set[ i ][ 0 ] ] ) { - set[ i ][ 1 ].apply( instance.element, args ); - } - } - } - }, - - // will be deprecated when we switch to jQuery 1.4 - use jQuery.contains() - contains: function( a, b ) { - return document.compareDocumentPosition ? - a.compareDocumentPosition( b ) & 16 : - a !== b && a.contains( b ); - }, - - // only used by resizable - hasScroll: function( el, a ) { - - //If overflow is hidden, the element might have extra content, but the user wants to hide it - if ( $( el ).css( "overflow" ) === "hidden") { - return false; - } - - var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop", - has = false; - - if ( el[ scroll ] > 0 ) { - return true; - } - - // TODO: determine which cases actually cause this to happen - // if the element doesn't have the scroll set, see if it's possible to - // set the scroll - el[ scroll ] = 1; - has = ( el[ scroll ] > 0 ); - el[ scroll ] = 0; - return has; - }, - - // these are odd functions, fix the API or move into individual plugins - isOverAxis: function( x, reference, size ) { - //Determines when x coordinate is over "b" element axis - return ( x > reference ) && ( x < ( reference + size ) ); - }, - isOver: function( y, x, top, left, height, width ) { - //Determines when x, y coordinates is over "b" element - return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width ); - } -}); - -})( jQuery ); diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.mouse.js.svn-base b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.mouse.js.svn-base deleted file mode 100755 index d63fdd7..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.mouse.js.svn-base +++ /dev/null @@ -1,151 +0,0 @@ -/*! - * jQuery UI Mouse 1.8.9 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Mouse - * - * Depends: - * jquery.ui.widget.js - */ -(function( $, undefined ) { - -$.widget("ui.mouse", { - options: { - cancel: ':input,option', - distance: 1, - delay: 0 - }, - _mouseInit: function() { - var self = this; - - this.element - .bind('mousedown.'+this.widgetName, function(event) { - return self._mouseDown(event); - }) - .bind('click.'+this.widgetName, function(event) { - if (true === $.data(event.target, self.widgetName + '.preventClickEvent')) { - $.removeData(event.target, self.widgetName + '.preventClickEvent'); - event.stopImmediatePropagation(); - return false; - } - }); - - this.started = false; - }, - - // TODO: make sure destroying one instance of mouse doesn't mess with - // other instances of mouse - _mouseDestroy: function() { - this.element.unbind('.'+this.widgetName); - }, - - _mouseDown: function(event) { - // don't let more than one widget handle mouseStart - // TODO: figure out why we have to use originalEvent - event.originalEvent = event.originalEvent || {}; - if (event.originalEvent.mouseHandled) { return; } - - // we may have missed mouseup (out of window) - (this._mouseStarted && this._mouseUp(event)); - - this._mouseDownEvent = event; - - var self = this, - btnIsLeft = (event.which == 1), - elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false); - if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) { - return true; - } - - this.mouseDelayMet = !this.options.delay; - if (!this.mouseDelayMet) { - this._mouseDelayTimer = setTimeout(function() { - self.mouseDelayMet = true; - }, this.options.delay); - } - - if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { - this._mouseStarted = (this._mouseStart(event) !== false); - if (!this._mouseStarted) { - event.preventDefault(); - return true; - } - } - - // these delegates are required to keep context - this._mouseMoveDelegate = function(event) { - return self._mouseMove(event); - }; - this._mouseUpDelegate = function(event) { - return self._mouseUp(event); - }; - $(document) - .bind('mousemove.'+this.widgetName, this._mouseMoveDelegate) - .bind('mouseup.'+this.widgetName, this._mouseUpDelegate); - - event.preventDefault(); - event.originalEvent.mouseHandled = true; - return true; - }, - - _mouseMove: function(event) { - // IE mouseup check - mouseup happened when mouse was out of window - if ($.browser.msie && !(document.documentMode >= 9) && !event.button) { - return this._mouseUp(event); - } - - if (this._mouseStarted) { - this._mouseDrag(event); - return event.preventDefault(); - } - - if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { - this._mouseStarted = - (this._mouseStart(this._mouseDownEvent, event) !== false); - (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event)); - } - - return !this._mouseStarted; - }, - - _mouseUp: function(event) { - $(document) - .unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate) - .unbind('mouseup.'+this.widgetName, this._mouseUpDelegate); - - if (this._mouseStarted) { - this._mouseStarted = false; - - if (event.target == this._mouseDownEvent.target) { - $.data(event.target, this.widgetName + '.preventClickEvent', true); - } - - this._mouseStop(event); - } - - return false; - }, - - _mouseDistanceMet: function(event) { - return (Math.max( - Math.abs(this._mouseDownEvent.pageX - event.pageX), - Math.abs(this._mouseDownEvent.pageY - event.pageY) - ) >= this.options.distance - ); - }, - - _mouseDelayMet: function(event) { - return this.mouseDelayMet; - }, - - // These are placeholder methods, to be overriden by extending plugin - _mouseStart: function(event) {}, - _mouseDrag: function(event) {}, - _mouseStop: function(event) {}, - _mouseCapture: function(event) { return true; } -}); - -})(jQuery); diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.slider.js.svn-base b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.slider.js.svn-base deleted file mode 100755 index 9bb27be..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.slider.js.svn-base +++ /dev/null @@ -1,666 +0,0 @@ -/* - * jQuery UI Slider 1.8.16 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Slider - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function( $, undefined ) { - -// number of pages in a slider -// (how many times can you page up/down to go through the whole range) -var numPages = 5; - -$.widget( "ui.slider", $.ui.mouse, { - - widgetEventPrefix: "slide", - - options: { - animate: false, - distance: 0, - max: 100, - min: 0, - orientation: "horizontal", - range: false, - step: 1, - value: 0, - values: null - }, - - _create: function() { - var self = this, - o = this.options, - existingHandles = this.element.find( ".ui-slider-handle" ).addClass( "ui-state-default ui-corner-all" ), - handle = "", - handleCount = ( o.values && o.values.length ) || 1, - handles = []; - - this._keySliding = false; - this._mouseSliding = false; - this._animateOff = true; - this._handleIndex = null; - this._detectOrientation(); - this._mouseInit(); - - this.element - .addClass( "ui-slider" + - " ui-slider-" + this.orientation + - " ui-widget" + - " ui-widget-content" + - " ui-corner-all" + - ( o.disabled ? " ui-slider-disabled ui-disabled" : "" ) ); - - this.range = $([]); - - if ( o.range ) { - if ( o.range === true ) { - if ( !o.values ) { - o.values = [ this._valueMin(), this._valueMin() ]; - } - if ( o.values.length && o.values.length !== 2 ) { - o.values = [ o.values[0], o.values[0] ]; - } - } - - this.range = $( "
" ) - .appendTo( this.element ) - .addClass( "ui-slider-range" + - // note: this isn't the most fittingly semantic framework class for this element, - // but worked best visually with a variety of themes - " ui-widget-header" + - ( ( o.range === "min" || o.range === "max" ) ? " ui-slider-range-" + o.range : "" ) ); - } - - for ( var i = existingHandles.length; i < handleCount; i += 1 ) { - handles.push( handle ); - } - - this.handles = existingHandles.add( $( handles.join( "" ) ).appendTo( self.element ) ); - - this.handle = this.handles.eq( 0 ); - - this.handles.add( this.range ).filter( "a" ) - .click(function( event ) { - event.preventDefault(); - }) - .hover(function() { - if ( !o.disabled ) { - $( this ).addClass( "ui-state-hover" ); - } - }, function() { - $( this ).removeClass( "ui-state-hover" ); - }) - .focus(function() { - if ( !o.disabled ) { - $( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" ); - $( this ).addClass( "ui-state-focus" ); - } else { - $( this ).blur(); - } - }) - .blur(function() { - $( this ).removeClass( "ui-state-focus" ); - }); - - this.handles.each(function( i ) { - $( this ).data( "index.ui-slider-handle", i ); - }); - - this.handles - .keydown(function( event ) { - var ret = true, - index = $( this ).data( "index.ui-slider-handle" ), - allowed, - curVal, - newVal, - step; - - if ( self.options.disabled ) { - return; - } - - switch ( event.keyCode ) { - case $.ui.keyCode.HOME: - case $.ui.keyCode.END: - case $.ui.keyCode.PAGE_UP: - case $.ui.keyCode.PAGE_DOWN: - case $.ui.keyCode.UP: - case $.ui.keyCode.RIGHT: - case $.ui.keyCode.DOWN: - case $.ui.keyCode.LEFT: - ret = false; - if ( !self._keySliding ) { - self._keySliding = true; - $( this ).addClass( "ui-state-active" ); - allowed = self._start( event, index ); - if ( allowed === false ) { - return; - } - } - break; - } - - step = self.options.step; - if ( self.options.values && self.options.values.length ) { - curVal = newVal = self.values( index ); - } else { - curVal = newVal = self.value(); - } - - switch ( event.keyCode ) { - case $.ui.keyCode.HOME: - newVal = self._valueMin(); - break; - case $.ui.keyCode.END: - newVal = self._valueMax(); - break; - case $.ui.keyCode.PAGE_UP: - newVal = self._trimAlignValue( curVal + ( (self._valueMax() - self._valueMin()) / numPages ) ); - break; - case $.ui.keyCode.PAGE_DOWN: - newVal = self._trimAlignValue( curVal - ( (self._valueMax() - self._valueMin()) / numPages ) ); - break; - case $.ui.keyCode.UP: - case $.ui.keyCode.RIGHT: - if ( curVal === self._valueMax() ) { - return; - } - newVal = self._trimAlignValue( curVal + step ); - break; - case $.ui.keyCode.DOWN: - case $.ui.keyCode.LEFT: - if ( curVal === self._valueMin() ) { - return; - } - newVal = self._trimAlignValue( curVal - step ); - break; - } - - self._slide( event, index, newVal ); - - return ret; - - }) - .keyup(function( event ) { - var index = $( this ).data( "index.ui-slider-handle" ); - - if ( self._keySliding ) { - self._keySliding = false; - self._stop( event, index ); - self._change( event, index ); - $( this ).removeClass( "ui-state-active" ); - } - - }); - - this._refreshValue(); - - this._animateOff = false; - }, - - destroy: function() { - this.handles.remove(); - this.range.remove(); - - this.element - .removeClass( "ui-slider" + - " ui-slider-horizontal" + - " ui-slider-vertical" + - " ui-slider-disabled" + - " ui-widget" + - " ui-widget-content" + - " ui-corner-all" ) - .removeData( "slider" ) - .unbind( ".slider" ); - - this._mouseDestroy(); - - return this; - }, - - _mouseCapture: function( event ) { - var o = this.options, - position, - normValue, - distance, - closestHandle, - self, - index, - allowed, - offset, - mouseOverHandle; - - if ( o.disabled ) { - return false; - } - - this.elementSize = { - width: this.element.outerWidth(), - height: this.element.outerHeight() - }; - this.elementOffset = this.element.offset(); - - position = { x: event.pageX, y: event.pageY }; - normValue = this._normValueFromMouse( position ); - distance = this._valueMax() - this._valueMin() + 1; - self = this; - this.handles.each(function( i ) { - var thisDistance = Math.abs( normValue - self.values(i) ); - if ( distance > thisDistance ) { - distance = thisDistance; - closestHandle = $( this ); - index = i; - } - }); - - // workaround for bug #3736 (if both handles of a range are at 0, - // the first is always used as the one with least distance, - // and moving it is obviously prevented by preventing negative ranges) - if( o.range === true && this.values(1) === o.min ) { - index += 1; - closestHandle = $( this.handles[index] ); - } - - allowed = this._start( event, index ); - if ( allowed === false ) { - return false; - } - this._mouseSliding = true; - - self._handleIndex = index; - - closestHandle - .addClass( "ui-state-active" ) - .focus(); - - offset = closestHandle.offset(); - mouseOverHandle = !$( event.target ).parents().andSelf().is( ".ui-slider-handle" ); - this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : { - left: event.pageX - offset.left - ( closestHandle.width() / 2 ), - top: event.pageY - offset.top - - ( closestHandle.height() / 2 ) - - ( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) - - ( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) + - ( parseInt( closestHandle.css("marginTop"), 10 ) || 0) - }; - - if ( !this.handles.hasClass( "ui-state-hover" ) ) { - this._slide( event, index, normValue ); - } - this._animateOff = true; - return true; - }, - - _mouseStart: function( event ) { - return true; - }, - - _mouseDrag: function( event ) { - var position = { x: event.pageX, y: event.pageY }, - normValue = this._normValueFromMouse( position ); - - this._slide( event, this._handleIndex, normValue ); - - return false; - }, - - _mouseStop: function( event ) { - this.handles.removeClass( "ui-state-active" ); - this._mouseSliding = false; - - this._stop( event, this._handleIndex ); - this._change( event, this._handleIndex ); - - this._handleIndex = null; - this._clickOffset = null; - this._animateOff = false; - - return false; - }, - - _detectOrientation: function() { - this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal"; - }, - - _normValueFromMouse: function( position ) { - var pixelTotal, - pixelMouse, - percentMouse, - valueTotal, - valueMouse; - - if ( this.orientation === "horizontal" ) { - pixelTotal = this.elementSize.width; - pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 ); - } else { - pixelTotal = this.elementSize.height; - pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 ); - } - - percentMouse = ( pixelMouse / pixelTotal ); - if ( percentMouse > 1 ) { - percentMouse = 1; - } - if ( percentMouse < 0 ) { - percentMouse = 0; - } - if ( this.orientation === "vertical" ) { - percentMouse = 1 - percentMouse; - } - - valueTotal = this._valueMax() - this._valueMin(); - valueMouse = this._valueMin() + percentMouse * valueTotal; - - return this._trimAlignValue( valueMouse ); - }, - - _start: function( event, index ) { - var uiHash = { - handle: this.handles[ index ], - value: this.value() - }; - if ( this.options.values && this.options.values.length ) { - uiHash.value = this.values( index ); - uiHash.values = this.values(); - } - return this._trigger( "start", event, uiHash ); - }, - - _slide: function( event, index, newVal ) { - var otherVal, - newValues, - allowed; - - if ( this.options.values && this.options.values.length ) { - otherVal = this.values( index ? 0 : 1 ); - - if ( ( this.options.values.length === 2 && this.options.range === true ) && - ( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) ) - ) { - newVal = otherVal; - } - - if ( newVal !== this.values( index ) ) { - newValues = this.values(); - newValues[ index ] = newVal; - // A slide can be canceled by returning false from the slide callback - allowed = this._trigger( "slide", event, { - handle: this.handles[ index ], - value: newVal, - values: newValues - } ); - otherVal = this.values( index ? 0 : 1 ); - if ( allowed !== false ) { - this.values( index, newVal, true ); - } - } - } else { - if ( newVal !== this.value() ) { - // A slide can be canceled by returning false from the slide callback - allowed = this._trigger( "slide", event, { - handle: this.handles[ index ], - value: newVal - } ); - if ( allowed !== false ) { - this.value( newVal ); - } - } - } - }, - - _stop: function( event, index ) { - var uiHash = { - handle: this.handles[ index ], - value: this.value() - }; - if ( this.options.values && this.options.values.length ) { - uiHash.value = this.values( index ); - uiHash.values = this.values(); - } - - this._trigger( "stop", event, uiHash ); - }, - - _change: function( event, index ) { - if ( !this._keySliding && !this._mouseSliding ) { - var uiHash = { - handle: this.handles[ index ], - value: this.value() - }; - if ( this.options.values && this.options.values.length ) { - uiHash.value = this.values( index ); - uiHash.values = this.values(); - } - - this._trigger( "change", event, uiHash ); - } - }, - - value: function( newValue ) { - if ( arguments.length ) { - this.options.value = this._trimAlignValue( newValue ); - this._refreshValue(); - this._change( null, 0 ); - return; - } - - return this._value(); - }, - - values: function( index, newValue ) { - var vals, - newValues, - i; - - if ( arguments.length > 1 ) { - this.options.values[ index ] = this._trimAlignValue( newValue ); - this._refreshValue(); - this._change( null, index ); - return; - } - - if ( arguments.length ) { - if ( $.isArray( arguments[ 0 ] ) ) { - vals = this.options.values; - newValues = arguments[ 0 ]; - for ( i = 0; i < vals.length; i += 1 ) { - vals[ i ] = this._trimAlignValue( newValues[ i ] ); - this._change( null, i ); - } - this._refreshValue(); - } else { - if ( this.options.values && this.options.values.length ) { - return this._values( index ); - } else { - return this.value(); - } - } - } else { - return this._values(); - } - }, - - _setOption: function( key, value ) { - var i, - valsLength = 0; - - if ( $.isArray( this.options.values ) ) { - valsLength = this.options.values.length; - } - - $.Widget.prototype._setOption.apply( this, arguments ); - - switch ( key ) { - case "disabled": - if ( value ) { - this.handles.filter( ".ui-state-focus" ).blur(); - this.handles.removeClass( "ui-state-hover" ); - this.handles.propAttr( "disabled", true ); - this.element.addClass( "ui-disabled" ); - } else { - this.handles.propAttr( "disabled", false ); - this.element.removeClass( "ui-disabled" ); - } - break; - case "orientation": - this._detectOrientation(); - this.element - .removeClass( "ui-slider-horizontal ui-slider-vertical" ) - .addClass( "ui-slider-" + this.orientation ); - this._refreshValue(); - break; - case "value": - this._animateOff = true; - this._refreshValue(); - this._change( null, 0 ); - this._animateOff = false; - break; - case "values": - this._animateOff = true; - this._refreshValue(); - for ( i = 0; i < valsLength; i += 1 ) { - this._change( null, i ); - } - this._animateOff = false; - break; - } - }, - - //internal value getter - // _value() returns value trimmed by min and max, aligned by step - _value: function() { - var val = this.options.value; - val = this._trimAlignValue( val ); - - return val; - }, - - //internal values getter - // _values() returns array of values trimmed by min and max, aligned by step - // _values( index ) returns single value trimmed by min and max, aligned by step - _values: function( index ) { - var val, - vals, - i; - - if ( arguments.length ) { - val = this.options.values[ index ]; - val = this._trimAlignValue( val ); - - return val; - } else { - // .slice() creates a copy of the array - // this copy gets trimmed by min and max and then returned - vals = this.options.values.slice(); - for ( i = 0; i < vals.length; i+= 1) { - vals[ i ] = this._trimAlignValue( vals[ i ] ); - } - - return vals; - } - }, - - // returns the step-aligned value that val is closest to, between (inclusive) min and max - _trimAlignValue: function( val ) { - if ( val <= this._valueMin() ) { - return this._valueMin(); - } - if ( val >= this._valueMax() ) { - return this._valueMax(); - } - var step = ( this.options.step > 0 ) ? this.options.step : 1, - valModStep = (val - this._valueMin()) % step, - alignValue = val - valModStep; - - if ( Math.abs(valModStep) * 2 >= step ) { - alignValue += ( valModStep > 0 ) ? step : ( -step ); - } - - // Since JavaScript has problems with large floats, round - // the final value to 5 digits after the decimal point (see #4124) - return parseFloat( alignValue.toFixed(5) ); - }, - - _valueMin: function() { - return this.options.min; - }, - - _valueMax: function() { - return this.options.max; - }, - - _refreshValue: function() { - var oRange = this.options.range, - o = this.options, - self = this, - animate = ( !this._animateOff ) ? o.animate : false, - valPercent, - _set = {}, - lastValPercent, - value, - valueMin, - valueMax; - - if ( this.options.values && this.options.values.length ) { - this.handles.each(function( i, j ) { - valPercent = ( self.values(i) - self._valueMin() ) / ( self._valueMax() - self._valueMin() ) * 100; - _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; - $( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); - if ( self.options.range === true ) { - if ( self.orientation === "horizontal" ) { - if ( i === 0 ) { - self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate ); - } - if ( i === 1 ) { - self.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - } else { - if ( i === 0 ) { - self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate ); - } - if ( i === 1 ) { - self.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - } - } - lastValPercent = valPercent; - }); - } else { - value = this.value(); - valueMin = this._valueMin(); - valueMax = this._valueMax(); - valPercent = ( valueMax !== valueMin ) ? - ( value - valueMin ) / ( valueMax - valueMin ) * 100 : - 0; - _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; - this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); - - if ( oRange === "min" && this.orientation === "horizontal" ) { - this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate ); - } - if ( oRange === "max" && this.orientation === "horizontal" ) { - this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - if ( oRange === "min" && this.orientation === "vertical" ) { - this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate ); - } - if ( oRange === "max" && this.orientation === "vertical" ) { - this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - } - } - -}); - -$.extend( $.ui.slider, { - version: "1.8.16" -}); - -}(jQuery)); diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.sortable.js.svn-base b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.sortable.js.svn-base deleted file mode 100755 index 59312f4..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.sortable.js.svn-base +++ /dev/null @@ -1,1073 +0,0 @@ -/* - * jQuery UI Sortable 1.8.9 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Sortables - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function( $, undefined ) { - -$.widget("ui.sortable", $.ui.mouse, { - widgetEventPrefix: "sort", - options: { - appendTo: "parent", - axis: false, - connectWith: false, - containment: false, - cursor: 'auto', - cursorAt: false, - dropOnEmpty: true, - forcePlaceholderSize: false, - forceHelperSize: false, - grid: false, - handle: false, - helper: "original", - items: '> *', - opacity: false, - placeholder: false, - revert: false, - scroll: true, - scrollSensitivity: 20, - scrollSpeed: 20, - scope: "default", - tolerance: "intersect", - zIndex: 1000 - }, - _create: function() { - - var o = this.options; - this.containerCache = {}; - this.element.addClass("ui-sortable"); - - //Get the items - this.refresh(); - - //Let's determine if the items are floating - this.floating = this.items.length ? (/left|right/).test(this.items[0].item.css('float')) : false; - - //Let's determine the parent's offset - this.offset = this.element.offset(); - - //Initialize mouse events for interaction - this._mouseInit(); - - }, - - destroy: function() { - this.element - .removeClass("ui-sortable ui-sortable-disabled") - .removeData("sortable") - .unbind(".sortable"); - this._mouseDestroy(); - - for ( var i = this.items.length - 1; i >= 0; i-- ) - this.items[i].item.removeData("sortable-item"); - - return this; - }, - - _setOption: function(key, value){ - if ( key === "disabled" ) { - this.options[ key ] = value; - - this.widget() - [ value ? "addClass" : "removeClass"]( "ui-sortable-disabled" ); - } else { - // Don't call widget base _setOption for disable as it adds ui-state-disabled class - $.Widget.prototype._setOption.apply(this, arguments); - } - }, - - _mouseCapture: function(event, overrideHandle) { - - if (this.reverting) { - return false; - } - - if(this.options.disabled || this.options.type == 'static') return false; - - //We have to refresh the items data once first - this._refreshItems(event); - - //Find out if the clicked node (or one of its parents) is a actual item in this.items - var currentItem = null, self = this, nodes = $(event.target).parents().each(function() { - if($.data(this, 'sortable-item') == self) { - currentItem = $(this); - return false; - } - }); - if($.data(event.target, 'sortable-item') == self) currentItem = $(event.target); - - if(!currentItem) return false; - if(this.options.handle && !overrideHandle) { - var validHandle = false; - - $(this.options.handle, currentItem).find("*").andSelf().each(function() { if(this == event.target) validHandle = true; }); - if(!validHandle) return false; - } - - this.currentItem = currentItem; - this._removeCurrentsFromItems(); - return true; - - }, - - _mouseStart: function(event, overrideHandle, noActivation) { - - var o = this.options, self = this; - this.currentContainer = this; - - //We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture - this.refreshPositions(); - - //Create and append the visible helper - this.helper = this._createHelper(event); - - //Cache the helper size - this._cacheHelperProportions(); - - /* - * - Position generation - - * This block generates everything position related - it's the core of draggables. - */ - - //Cache the margins of the original element - this._cacheMargins(); - - //Get the next scrolling parent - this.scrollParent = this.helper.scrollParent(); - - //The element's absolute position on the page minus margins - this.offset = this.currentItem.offset(); - this.offset = { - top: this.offset.top - this.margins.top, - left: this.offset.left - this.margins.left - }; - - // Only after we got the offset, we can change the helper's position to absolute - // TODO: Still need to figure out a way to make relative sorting possible - this.helper.css("position", "absolute"); - this.cssPosition = this.helper.css("position"); - - $.extend(this.offset, { - click: { //Where the click happened, relative to the element - left: event.pageX - this.offset.left, - top: event.pageY - this.offset.top - }, - parent: this._getParentOffset(), - relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper - }); - - //Generate the original position - this.originalPosition = this._generatePosition(event); - this.originalPageX = event.pageX; - this.originalPageY = event.pageY; - - //Adjust the mouse offset relative to the helper if 'cursorAt' is supplied - (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt)); - - //Cache the former DOM position - this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] }; - - //If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way - if(this.helper[0] != this.currentItem[0]) { - this.currentItem.hide(); - } - - //Create the placeholder - this._createPlaceholder(); - - //Set a containment if given in the options - if(o.containment) - this._setContainment(); - - if(o.cursor) { // cursor option - if ($('body').css("cursor")) this._storedCursor = $('body').css("cursor"); - $('body').css("cursor", o.cursor); - } - - if(o.opacity) { // opacity option - if (this.helper.css("opacity")) this._storedOpacity = this.helper.css("opacity"); - this.helper.css("opacity", o.opacity); - } - - if(o.zIndex) { // zIndex option - if (this.helper.css("zIndex")) this._storedZIndex = this.helper.css("zIndex"); - this.helper.css("zIndex", o.zIndex); - } - - //Prepare scrolling - if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') - this.overflowOffset = this.scrollParent.offset(); - - //Call callbacks - this._trigger("start", event, this._uiHash()); - - //Recache the helper size - if(!this._preserveHelperProportions) - this._cacheHelperProportions(); - - - //Post 'activate' events to possible containers - if(!noActivation) { - for (var i = this.containers.length - 1; i >= 0; i--) { this.containers[i]._trigger("activate", event, self._uiHash(this)); } - } - - //Prepare possible droppables - if($.ui.ddmanager) - $.ui.ddmanager.current = this; - - if ($.ui.ddmanager && !o.dropBehaviour) - $.ui.ddmanager.prepareOffsets(this, event); - - this.dragging = true; - - this.helper.addClass("ui-sortable-helper"); - this._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position - return true; - - }, - - _mouseDrag: function(event) { - - //Compute the helpers position - this.position = this._generatePosition(event); - this.positionAbs = this._convertPositionTo("absolute"); - - if (!this.lastPositionAbs) { - this.lastPositionAbs = this.positionAbs; - } - - //Do scrolling - if(this.options.scroll) { - var o = this.options, scrolled = false; - if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') { - - if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) - this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed; - else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity) - this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed; - - if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) - this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed; - else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity) - this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed; - - } else { - - if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) - scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed); - else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) - scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed); - - if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) - scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); - else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) - scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); - - } - - if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) - $.ui.ddmanager.prepareOffsets(this, event); - } - - //Regenerate the absolute position used for position checks - this.positionAbs = this._convertPositionTo("absolute"); - - //Set the helper position - if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px'; - if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px'; - - //Rearrange - for (var i = this.items.length - 1; i >= 0; i--) { - - //Cache variables and intersection, continue if no intersection - var item = this.items[i], itemElement = item.item[0], intersection = this._intersectsWithPointer(item); - if (!intersection) continue; - - if(itemElement != this.currentItem[0] //cannot intersect with itself - && this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement //no useless actions that have been done before - && !$.ui.contains(this.placeholder[0], itemElement) //no action if the item moved is the parent of the item checked - && (this.options.type == 'semi-dynamic' ? !$.ui.contains(this.element[0], itemElement) : true) - //&& itemElement.parentNode == this.placeholder[0].parentNode // only rearrange items within the same container - ) { - - this.direction = intersection == 1 ? "down" : "up"; - - if (this.options.tolerance == "pointer" || this._intersectsWithSides(item)) { - this._rearrange(event, item); - } else { - break; - } - - this._trigger("change", event, this._uiHash()); - break; - } - } - - //Post events to containers - this._contactContainers(event); - - //Interconnect with droppables - if($.ui.ddmanager) $.ui.ddmanager.drag(this, event); - - //Call callbacks - this._trigger('sort', event, this._uiHash()); - - this.lastPositionAbs = this.positionAbs; - return false; - - }, - - _mouseStop: function(event, noPropagation) { - - if(!event) return; - - //If we are using droppables, inform the manager about the drop - if ($.ui.ddmanager && !this.options.dropBehaviour) - $.ui.ddmanager.drop(this, event); - - if(this.options.revert) { - var self = this; - var cur = self.placeholder.offset(); - - self.reverting = true; - - $(this.helper).animate({ - left: cur.left - this.offset.parent.left - self.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft), - top: cur.top - this.offset.parent.top - self.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop) - }, parseInt(this.options.revert, 10) || 500, function() { - self._clear(event); - }); - } else { - this._clear(event, noPropagation); - } - - return false; - - }, - - cancel: function() { - - var self = this; - - if(this.dragging) { - - this._mouseUp({ target: null }); - - if(this.options.helper == "original") - this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); - else - this.currentItem.show(); - - //Post deactivating events to containers - for (var i = this.containers.length - 1; i >= 0; i--){ - this.containers[i]._trigger("deactivate", null, self._uiHash(this)); - if(this.containers[i].containerCache.over) { - this.containers[i]._trigger("out", null, self._uiHash(this)); - this.containers[i].containerCache.over = 0; - } - } - - } - - if (this.placeholder) { - //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! - if(this.placeholder[0].parentNode) this.placeholder[0].parentNode.removeChild(this.placeholder[0]); - if(this.options.helper != "original" && this.helper && this.helper[0].parentNode) this.helper.remove(); - - $.extend(this, { - helper: null, - dragging: false, - reverting: false, - _noFinalSort: null - }); - - if(this.domPosition.prev) { - $(this.domPosition.prev).after(this.currentItem); - } else { - $(this.domPosition.parent).prepend(this.currentItem); - } - } - - return this; - - }, - - serialize: function(o) { - - var items = this._getItemsAsjQuery(o && o.connected); - var str = []; o = o || {}; - - $(items).each(function() { - var res = ($(o.item || this).attr(o.attribute || 'id') || '').match(o.expression || (/(.+)[-=_](.+)/)); - if(res) str.push((o.key || res[1]+'[]')+'='+(o.key && o.expression ? res[1] : res[2])); - }); - - if(!str.length && o.key) { - str.push(o.key + '='); - } - - return str.join('&'); - - }, - - toArray: function(o) { - - var items = this._getItemsAsjQuery(o && o.connected); - var ret = []; o = o || {}; - - items.each(function() { ret.push($(o.item || this).attr(o.attribute || 'id') || ''); }); - return ret; - - }, - - /* Be careful with the following core functions */ - _intersectsWith: function(item) { - - var x1 = this.positionAbs.left, - x2 = x1 + this.helperProportions.width, - y1 = this.positionAbs.top, - y2 = y1 + this.helperProportions.height; - - var l = item.left, - r = l + item.width, - t = item.top, - b = t + item.height; - - var dyClick = this.offset.click.top, - dxClick = this.offset.click.left; - - var isOverElement = (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 + dxClick) > l && (x1 + dxClick) < r; - - if( this.options.tolerance == "pointer" - || this.options.forcePointerForContainers - || (this.options.tolerance != "pointer" && this.helperProportions[this.floating ? 'width' : 'height'] > item[this.floating ? 'width' : 'height']) - ) { - return isOverElement; - } else { - - return (l < x1 + (this.helperProportions.width / 2) // Right Half - && x2 - (this.helperProportions.width / 2) < r // Left Half - && t < y1 + (this.helperProportions.height / 2) // Bottom Half - && y2 - (this.helperProportions.height / 2) < b ); // Top Half - - } - }, - - _intersectsWithPointer: function(item) { - - var isOverElementHeight = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height), - isOverElementWidth = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width), - isOverElement = isOverElementHeight && isOverElementWidth, - verticalDirection = this._getDragVerticalDirection(), - horizontalDirection = this._getDragHorizontalDirection(); - - if (!isOverElement) - return false; - - return this.floating ? - ( ((horizontalDirection && horizontalDirection == "right") || verticalDirection == "down") ? 2 : 1 ) - : ( verticalDirection && (verticalDirection == "down" ? 2 : 1) ); - - }, - - _intersectsWithSides: function(item) { - - var isOverBottomHalf = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height), - isOverRightHalf = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width), - verticalDirection = this._getDragVerticalDirection(), - horizontalDirection = this._getDragHorizontalDirection(); - - if (this.floating && horizontalDirection) { - return ((horizontalDirection == "right" && isOverRightHalf) || (horizontalDirection == "left" && !isOverRightHalf)); - } else { - return verticalDirection && ((verticalDirection == "down" && isOverBottomHalf) || (verticalDirection == "up" && !isOverBottomHalf)); - } - - }, - - _getDragVerticalDirection: function() { - var delta = this.positionAbs.top - this.lastPositionAbs.top; - return delta != 0 && (delta > 0 ? "down" : "up"); - }, - - _getDragHorizontalDirection: function() { - var delta = this.positionAbs.left - this.lastPositionAbs.left; - return delta != 0 && (delta > 0 ? "right" : "left"); - }, - - refresh: function(event) { - this._refreshItems(event); - this.refreshPositions(); - return this; - }, - - _connectWith: function() { - var options = this.options; - return options.connectWith.constructor == String - ? [options.connectWith] - : options.connectWith; - }, - - _getItemsAsjQuery: function(connected) { - - var self = this; - var items = []; - var queries = []; - var connectWith = this._connectWith(); - - if(connectWith && connected) { - for (var i = connectWith.length - 1; i >= 0; i--){ - var cur = $(connectWith[i]); - for (var j = cur.length - 1; j >= 0; j--){ - var inst = $.data(cur[j], 'sortable'); - if(inst && inst != this && !inst.options.disabled) { - queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), inst]); - } - }; - }; - } - - queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), this]); - - for (var i = queries.length - 1; i >= 0; i--){ - queries[i][0].each(function() { - items.push(this); - }); - }; - - return $(items); - - }, - - _removeCurrentsFromItems: function() { - - var list = this.currentItem.find(":data(sortable-item)"); - - for (var i=0; i < this.items.length; i++) { - - for (var j=0; j < list.length; j++) { - if(list[j] == this.items[i].item[0]) - this.items.splice(i,1); - }; - - }; - - }, - - _refreshItems: function(event) { - - this.items = []; - this.containers = [this]; - var items = this.items; - var self = this; - var queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]]; - var connectWith = this._connectWith(); - - if(connectWith) { - for (var i = connectWith.length - 1; i >= 0; i--){ - var cur = $(connectWith[i]); - for (var j = cur.length - 1; j >= 0; j--){ - var inst = $.data(cur[j], 'sortable'); - if(inst && inst != this && !inst.options.disabled) { - queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]); - this.containers.push(inst); - } - }; - }; - } - - for (var i = queries.length - 1; i >= 0; i--) { - var targetData = queries[i][1]; - var _queries = queries[i][0]; - - for (var j=0, queriesLength = _queries.length; j < queriesLength; j++) { - var item = $(_queries[j]); - - item.data('sortable-item', targetData); // Data for target checking (mouse manager) - - items.push({ - item: item, - instance: targetData, - width: 0, height: 0, - left: 0, top: 0 - }); - }; - }; - - }, - - refreshPositions: function(fast) { - - //This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change - if(this.offsetParent && this.helper) { - this.offset.parent = this._getParentOffset(); - } - - for (var i = this.items.length - 1; i >= 0; i--){ - var item = this.items[i]; - - var t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item; - - if (!fast) { - item.width = t.outerWidth(); - item.height = t.outerHeight(); - } - - var p = t.offset(); - item.left = p.left; - item.top = p.top; - }; - - if(this.options.custom && this.options.custom.refreshContainers) { - this.options.custom.refreshContainers.call(this); - } else { - for (var i = this.containers.length - 1; i >= 0; i--){ - var p = this.containers[i].element.offset(); - this.containers[i].containerCache.left = p.left; - this.containers[i].containerCache.top = p.top; - this.containers[i].containerCache.width = this.containers[i].element.outerWidth(); - this.containers[i].containerCache.height = this.containers[i].element.outerHeight(); - }; - } - - return this; - }, - - _createPlaceholder: function(that) { - - var self = that || this, o = self.options; - - if(!o.placeholder || o.placeholder.constructor == String) { - var className = o.placeholder; - o.placeholder = { - element: function() { - - var el = $(document.createElement(self.currentItem[0].nodeName)) - .addClass(className || self.currentItem[0].className+" ui-sortable-placeholder") - .removeClass("ui-sortable-helper")[0]; - - if(!className) - el.style.visibility = "hidden"; - - return el; - }, - update: function(container, p) { - - // 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that - // 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified - if(className && !o.forcePlaceholderSize) return; - - //If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item - if(!p.height()) { p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10)); }; - if(!p.width()) { p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10)); }; - } - }; - } - - //Create the placeholder - self.placeholder = $(o.placeholder.element.call(self.element, self.currentItem)); - - //Append it after the actual current item - self.currentItem.after(self.placeholder); - - //Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317) - o.placeholder.update(self, self.placeholder); - - }, - - _contactContainers: function(event) { - - // get innermost container that intersects with item - var innermostContainer = null, innermostIndex = null; - - - for (var i = this.containers.length - 1; i >= 0; i--){ - - // never consider a container that's located within the item itself - if($.ui.contains(this.currentItem[0], this.containers[i].element[0])) - continue; - - if(this._intersectsWith(this.containers[i].containerCache)) { - - // if we've already found a container and it's more "inner" than this, then continue - if(innermostContainer && $.ui.contains(this.containers[i].element[0], innermostContainer.element[0])) - continue; - - innermostContainer = this.containers[i]; - innermostIndex = i; - - } else { - // container doesn't intersect. trigger "out" event if necessary - if(this.containers[i].containerCache.over) { - this.containers[i]._trigger("out", event, this._uiHash(this)); - this.containers[i].containerCache.over = 0; - } - } - - } - - // if no intersecting containers found, return - if(!innermostContainer) return; - - // move the item into the container if it's not there already - if(this.containers.length === 1) { - this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); - this.containers[innermostIndex].containerCache.over = 1; - } else if(this.currentContainer != this.containers[innermostIndex]) { - - //When entering a new container, we will find the item with the least distance and append our item near it - var dist = 10000; var itemWithLeastDistance = null; var base = this.positionAbs[this.containers[innermostIndex].floating ? 'left' : 'top']; - for (var j = this.items.length - 1; j >= 0; j--) { - if(!$.ui.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) continue; - var cur = this.items[j][this.containers[innermostIndex].floating ? 'left' : 'top']; - if(Math.abs(cur - base) < dist) { - dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j]; - } - } - - if(!itemWithLeastDistance && !this.options.dropOnEmpty) //Check if dropOnEmpty is enabled - return; - - this.currentContainer = this.containers[innermostIndex]; - itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true); - this._trigger("change", event, this._uiHash()); - this.containers[innermostIndex]._trigger("change", event, this._uiHash(this)); - - //Update the placeholder - this.options.placeholder.update(this.currentContainer, this.placeholder); - - this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); - this.containers[innermostIndex].containerCache.over = 1; - } - - - }, - - _createHelper: function(event) { - - var o = this.options; - var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper == 'clone' ? this.currentItem.clone() : this.currentItem); - - if(!helper.parents('body').length) //Add the helper to the DOM if that didn't happen already - $(o.appendTo != 'parent' ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]); - - if(helper[0] == this.currentItem[0]) - this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") }; - - if(helper[0].style.width == '' || o.forceHelperSize) helper.width(this.currentItem.width()); - if(helper[0].style.height == '' || o.forceHelperSize) helper.height(this.currentItem.height()); - - return helper; - - }, - - _adjustOffsetFromHelper: function(obj) { - if (typeof obj == 'string') { - obj = obj.split(' '); - } - if ($.isArray(obj)) { - obj = {left: +obj[0], top: +obj[1] || 0}; - } - if ('left' in obj) { - this.offset.click.left = obj.left + this.margins.left; - } - if ('right' in obj) { - this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; - } - if ('top' in obj) { - this.offset.click.top = obj.top + this.margins.top; - } - if ('bottom' in obj) { - this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; - } - }, - - _getParentOffset: function() { - - - //Get the offsetParent and cache its position - this.offsetParent = this.helper.offsetParent(); - var po = this.offsetParent.offset(); - - // This is a special case where we need to modify a offset calculated on start, since the following happened: - // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent - // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that - // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag - if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) { - po.left += this.scrollParent.scrollLeft(); - po.top += this.scrollParent.scrollTop(); - } - - if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information - || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix - po = { top: 0, left: 0 }; - - return { - top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0), - left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0) - }; - - }, - - _getRelativeOffset: function() { - - if(this.cssPosition == "relative") { - var p = this.currentItem.position(); - return { - top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(), - left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft() - }; - } else { - return { top: 0, left: 0 }; - } - - }, - - _cacheMargins: function() { - this.margins = { - left: (parseInt(this.currentItem.css("marginLeft"),10) || 0), - top: (parseInt(this.currentItem.css("marginTop"),10) || 0) - }; - }, - - _cacheHelperProportions: function() { - this.helperProportions = { - width: this.helper.outerWidth(), - height: this.helper.outerHeight() - }; - }, - - _setContainment: function() { - - var o = this.options; - if(o.containment == 'parent') o.containment = this.helper[0].parentNode; - if(o.containment == 'document' || o.containment == 'window') this.containment = [ - 0 - this.offset.relative.left - this.offset.parent.left, - 0 - this.offset.relative.top - this.offset.parent.top, - $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left, - ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top - ]; - - if(!(/^(document|window|parent)$/).test(o.containment)) { - var ce = $(o.containment)[0]; - var co = $(o.containment).offset(); - var over = ($(ce).css("overflow") != 'hidden'); - - this.containment = [ - co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left, - co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top, - co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left, - co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top - ]; - } - - }, - - _convertPositionTo: function(d, pos) { - - if(!pos) pos = this.position; - var mod = d == "absolute" ? 1 : -1; - var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); - - return { - top: ( - pos.top // The absolute mouse position - + this.offset.relative.top * mod // Only for relative positioned nodes: Relative offset from element to offset parent - + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border) - - ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod) - ), - left: ( - pos.left // The absolute mouse position - + this.offset.relative.left * mod // Only for relative positioned nodes: Relative offset from element to offset parent - + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border) - - ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod) - ) - }; - - }, - - _generatePosition: function(event) { - - var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); - - // This is another very weird special case that only happens for relative elements: - // 1. If the css position is relative - // 2. and the scroll parent is the document or similar to the offset parent - // we have to refresh the relative offset during the scroll so there are no jumps - if(this.cssPosition == 'relative' && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) { - this.offset.relative = this._getRelativeOffset(); - } - - var pageX = event.pageX; - var pageY = event.pageY; - - /* - * - Position constraining - - * Constrain the position to a mix of grid, containment. - */ - - if(this.originalPosition) { //If we are not dragging yet, we won't check for options - - if(this.containment) { - if(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left; - if(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top; - if(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left; - if(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top; - } - - if(o.grid) { - var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1]; - pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top; - - var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0]; - pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left; - } - - } - - return { - top: ( - pageY // The absolute mouse position - - this.offset.click.top // Click offset (relative to the element) - - this.offset.relative.top // Only for relative positioned nodes: Relative offset from element to offset parent - - this.offset.parent.top // The offsetParent's offset without borders (offset + border) - + ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) )) - ), - left: ( - pageX // The absolute mouse position - - this.offset.click.left // Click offset (relative to the element) - - this.offset.relative.left // Only for relative positioned nodes: Relative offset from element to offset parent - - this.offset.parent.left // The offsetParent's offset without borders (offset + border) - + ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() )) - ) - }; - - }, - - _rearrange: function(event, i, a, hardRefresh) { - - a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction == 'down' ? i.item[0] : i.item[0].nextSibling)); - - //Various things done here to improve the performance: - // 1. we create a setTimeout, that calls refreshPositions - // 2. on the instance, we have a counter variable, that get's higher after every append - // 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same - // 4. this lets only the last addition to the timeout stack through - this.counter = this.counter ? ++this.counter : 1; - var self = this, counter = this.counter; - - window.setTimeout(function() { - if(counter == self.counter) self.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove - },0); - - }, - - _clear: function(event, noPropagation) { - - this.reverting = false; - // We delay all events that have to be triggered to after the point where the placeholder has been removed and - // everything else normalized again - var delayedTriggers = [], self = this; - - // We first have to update the dom position of the actual currentItem - // Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088) - if(!this._noFinalSort && this.currentItem[0].parentNode) this.placeholder.before(this.currentItem); - this._noFinalSort = null; - - if(this.helper[0] == this.currentItem[0]) { - for(var i in this._storedCSS) { - if(this._storedCSS[i] == 'auto' || this._storedCSS[i] == 'static') this._storedCSS[i] = ''; - } - this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); - } else { - this.currentItem.show(); - } - - if(this.fromOutside && !noPropagation) delayedTriggers.push(function(event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); }); - if((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !noPropagation) delayedTriggers.push(function(event) { this._trigger("update", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed - if(!$.ui.contains(this.element[0], this.currentItem[0])) { //Node was moved out of the current element - if(!noPropagation) delayedTriggers.push(function(event) { this._trigger("remove", event, this._uiHash()); }); - for (var i = this.containers.length - 1; i >= 0; i--){ - if($.ui.contains(this.containers[i].element[0], this.currentItem[0]) && !noPropagation) { - delayedTriggers.push((function(c) { return function(event) { c._trigger("receive", event, this._uiHash(this)); }; }).call(this, this.containers[i])); - delayedTriggers.push((function(c) { return function(event) { c._trigger("update", event, this._uiHash(this)); }; }).call(this, this.containers[i])); - } - }; - }; - - //Post events to containers - for (var i = this.containers.length - 1; i >= 0; i--){ - if(!noPropagation) delayedTriggers.push((function(c) { return function(event) { c._trigger("deactivate", event, this._uiHash(this)); }; }).call(this, this.containers[i])); - if(this.containers[i].containerCache.over) { - delayedTriggers.push((function(c) { return function(event) { c._trigger("out", event, this._uiHash(this)); }; }).call(this, this.containers[i])); - this.containers[i].containerCache.over = 0; - } - } - - //Do what was originally in plugins - if(this._storedCursor) $('body').css("cursor", this._storedCursor); //Reset cursor - if(this._storedOpacity) this.helper.css("opacity", this._storedOpacity); //Reset opacity - if(this._storedZIndex) this.helper.css("zIndex", this._storedZIndex == 'auto' ? '' : this._storedZIndex); //Reset z-index - - this.dragging = false; - if(this.cancelHelperRemoval) { - if(!noPropagation) { - this._trigger("beforeStop", event, this._uiHash()); - for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events - this._trigger("stop", event, this._uiHash()); - } - return false; - } - - if(!noPropagation) this._trigger("beforeStop", event, this._uiHash()); - - //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! - this.placeholder[0].parentNode.removeChild(this.placeholder[0]); - - if(this.helper[0] != this.currentItem[0]) this.helper.remove(); this.helper = null; - - if(!noPropagation) { - for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events - this._trigger("stop", event, this._uiHash()); - } - - this.fromOutside = false; - return true; - - }, - - _trigger: function() { - if ($.Widget.prototype._trigger.apply(this, arguments) === false) { - this.cancel(); - } - }, - - _uiHash: function(inst) { - var self = inst || this; - return { - helper: self.helper, - placeholder: self.placeholder || $([]), - position: self.position, - originalPosition: self.originalPosition, - offset: self.positionAbs, - item: self.currentItem, - sender: inst ? inst.element : null - }; - } - -}); - -$.extend($.ui.sortable, { - version: "1.8.9" -}); - -})(jQuery); diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.tabs.js.svn-base b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.tabs.js.svn-base deleted file mode 100755 index 1f04166..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.tabs.js.svn-base +++ /dev/null @@ -1,759 +0,0 @@ -/* - * jQuery UI Tabs 1.8.16 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - */ -(function( $, undefined ) { - -var tabId = 0, - listId = 0; - -function getNextTabId() { - return ++tabId; -} - -function getNextListId() { - return ++listId; -} - -$.widget( "ui.tabs", { - options: { - add: null, - ajaxOptions: null, - cache: false, - cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true } - collapsible: false, - disable: null, - disabled: [], - enable: null, - event: "click", - fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 } - idPrefix: "ui-tabs-", - load: null, - panelTemplate: "
", - remove: null, - select: null, - show: null, - spinner: "Loading…", - tabTemplate: "
  • #{label}
  • " - }, - - _create: function() { - this._tabify( true ); - }, - - _setOption: function( key, value ) { - if ( key == "selected" ) { - if (this.options.collapsible && value == this.options.selected ) { - return; - } - this.select( value ); - } else { - this.options[ key ] = value; - this._tabify(); - } - }, - - _tabId: function( a ) { - return a.title && a.title.replace( /\s/g, "_" ).replace( /[^\w\u00c0-\uFFFF-]/g, "" ) || - this.options.idPrefix + getNextTabId(); - }, - - _sanitizeSelector: function( hash ) { - // we need this because an id may contain a ":" - return hash.replace( /:/g, "\\:" ); - }, - - _cookie: function() { - var cookie = this.cookie || - ( this.cookie = this.options.cookie.name || "ui-tabs-" + getNextListId() ); - return $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments ) ) ); - }, - - _ui: function( tab, panel ) { - return { - tab: tab, - panel: panel, - index: this.anchors.index( tab ) - }; - }, - - _cleanup: function() { - // restore all former loading tabs labels - this.lis.filter( ".ui-state-processing" ) - .removeClass( "ui-state-processing" ) - .find( "span:data(label.tabs)" ) - .each(function() { - var el = $( this ); - el.html( el.data( "label.tabs" ) ).removeData( "label.tabs" ); - }); - }, - - _tabify: function( init ) { - var self = this, - o = this.options, - fragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash - - this.list = this.element.find( "ol,ul" ).eq( 0 ); - this.lis = $( " > li:has(a[href])", this.list ); - this.anchors = this.lis.map(function() { - return $( "a", this )[ 0 ]; - }); - this.panels = $( [] ); - - this.anchors.each(function( i, a ) { - var href = $( a ).attr( "href" ); - // For dynamically created HTML that contains a hash as href IE < 8 expands - // such href to the full page url with hash and then misinterprets tab as ajax. - // Same consideration applies for an added tab with a fragment identifier - // since a[href=#fragment-identifier] does unexpectedly not match. - // Thus normalize href attribute... - var hrefBase = href.split( "#" )[ 0 ], - baseEl; - if ( hrefBase && ( hrefBase === location.toString().split( "#" )[ 0 ] || - ( baseEl = $( "base" )[ 0 ]) && hrefBase === baseEl.href ) ) { - href = a.hash; - a.href = href; - } - - // inline tab - if ( fragmentId.test( href ) ) { - self.panels = self.panels.add( self.element.find( self._sanitizeSelector( href ) ) ); - // remote tab - // prevent loading the page itself if href is just "#" - } else if ( href && href !== "#" ) { - // required for restore on destroy - $.data( a, "href.tabs", href ); - - // TODO until #3808 is fixed strip fragment identifier from url - // (IE fails to load from such url) - $.data( a, "load.tabs", href.replace( /#.*$/, "" ) ); - - var id = self._tabId( a ); - a.href = "#" + id; - var $panel = self.element.find( "#" + id ); - if ( !$panel.length ) { - $panel = $( o.panelTemplate ) - .attr( "id", id ) - .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) - .insertAfter( self.panels[ i - 1 ] || self.list ); - $panel.data( "destroy.tabs", true ); - } - self.panels = self.panels.add( $panel ); - // invalid tab href - } else { - o.disabled.push( i ); - } - }); - - // initialization from scratch - if ( init ) { - // attach necessary classes for styling - this.element.addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" ); - this.list.addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ); - this.lis.addClass( "ui-state-default ui-corner-top" ); - this.panels.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ); - - // Selected tab - // use "selected" option or try to retrieve: - // 1. from fragment identifier in url - // 2. from cookie - // 3. from selected class attribute on
  • - if ( o.selected === undefined ) { - if ( location.hash ) { - this.anchors.each(function( i, a ) { - if ( a.hash == location.hash ) { - o.selected = i; - return false; - } - }); - } - if ( typeof o.selected !== "number" && o.cookie ) { - o.selected = parseInt( self._cookie(), 10 ); - } - if ( typeof o.selected !== "number" && this.lis.filter( ".ui-tabs-selected" ).length ) { - o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) ); - } - o.selected = o.selected || ( this.lis.length ? 0 : -1 ); - } else if ( o.selected === null ) { // usage of null is deprecated, TODO remove in next release - o.selected = -1; - } - - // sanity check - default to first tab... - o.selected = ( ( o.selected >= 0 && this.anchors[ o.selected ] ) || o.selected < 0 ) - ? o.selected - : 0; - - // Take disabling tabs via class attribute from HTML - // into account and update option properly. - // A selected tab cannot become disabled. - o.disabled = $.unique( o.disabled.concat( - $.map( this.lis.filter( ".ui-state-disabled" ), function( n, i ) { - return self.lis.index( n ); - }) - ) ).sort(); - - if ( $.inArray( o.selected, o.disabled ) != -1 ) { - o.disabled.splice( $.inArray( o.selected, o.disabled ), 1 ); - } - - // highlight selected tab - this.panels.addClass( "ui-tabs-hide" ); - this.lis.removeClass( "ui-tabs-selected ui-state-active" ); - // check for length avoids error when initializing empty list - if ( o.selected >= 0 && this.anchors.length ) { - self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) ).removeClass( "ui-tabs-hide" ); - this.lis.eq( o.selected ).addClass( "ui-tabs-selected ui-state-active" ); - - // seems to be expected behavior that the show callback is fired - self.element.queue( "tabs", function() { - self._trigger( "show", null, - self._ui( self.anchors[ o.selected ], self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) )[ 0 ] ) ); - }); - - this.load( o.selected ); - } - - // clean up to avoid memory leaks in certain versions of IE 6 - // TODO: namespace this event - $( window ).bind( "unload", function() { - self.lis.add( self.anchors ).unbind( ".tabs" ); - self.lis = self.anchors = self.panels = null; - }); - // update selected after add/remove - } else { - o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) ); - } - - // update collapsible - // TODO: use .toggleClass() - this.element[ o.collapsible ? "addClass" : "removeClass" ]( "ui-tabs-collapsible" ); - - // set or update cookie after init and add/remove respectively - if ( o.cookie ) { - this._cookie( o.selected, o.cookie ); - } - - // disable tabs - for ( var i = 0, li; ( li = this.lis[ i ] ); i++ ) { - $( li )[ $.inArray( i, o.disabled ) != -1 && - // TODO: use .toggleClass() - !$( li ).hasClass( "ui-tabs-selected" ) ? "addClass" : "removeClass" ]( "ui-state-disabled" ); - } - - // reset cache if switching from cached to not cached - if ( o.cache === false ) { - this.anchors.removeData( "cache.tabs" ); - } - - // remove all handlers before, tabify may run on existing tabs after add or option change - this.lis.add( this.anchors ).unbind( ".tabs" ); - - if ( o.event !== "mouseover" ) { - var addState = function( state, el ) { - if ( el.is( ":not(.ui-state-disabled)" ) ) { - el.addClass( "ui-state-" + state ); - } - }; - var removeState = function( state, el ) { - el.removeClass( "ui-state-" + state ); - }; - this.lis.bind( "mouseover.tabs" , function() { - addState( "hover", $( this ) ); - }); - this.lis.bind( "mouseout.tabs", function() { - removeState( "hover", $( this ) ); - }); - this.anchors.bind( "focus.tabs", function() { - addState( "focus", $( this ).closest( "li" ) ); - }); - this.anchors.bind( "blur.tabs", function() { - removeState( "focus", $( this ).closest( "li" ) ); - }); - } - - // set up animations - var hideFx, showFx; - if ( o.fx ) { - if ( $.isArray( o.fx ) ) { - hideFx = o.fx[ 0 ]; - showFx = o.fx[ 1 ]; - } else { - hideFx = showFx = o.fx; - } - } - - // Reset certain styles left over from animation - // and prevent IE's ClearType bug... - function resetStyle( $el, fx ) { - $el.css( "display", "" ); - if ( !$.support.opacity && fx.opacity ) { - $el[ 0 ].style.removeAttribute( "filter" ); - } - } - - // Show a tab... - var showTab = showFx - ? function( clicked, $show ) { - $( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" ); - $show.hide().removeClass( "ui-tabs-hide" ) // avoid flicker that way - .animate( showFx, showFx.duration || "normal", function() { - resetStyle( $show, showFx ); - self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) ); - }); - } - : function( clicked, $show ) { - $( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" ); - $show.removeClass( "ui-tabs-hide" ); - self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) ); - }; - - // Hide a tab, $show is optional... - var hideTab = hideFx - ? function( clicked, $hide ) { - $hide.animate( hideFx, hideFx.duration || "normal", function() { - self.lis.removeClass( "ui-tabs-selected ui-state-active" ); - $hide.addClass( "ui-tabs-hide" ); - resetStyle( $hide, hideFx ); - self.element.dequeue( "tabs" ); - }); - } - : function( clicked, $hide, $show ) { - self.lis.removeClass( "ui-tabs-selected ui-state-active" ); - $hide.addClass( "ui-tabs-hide" ); - self.element.dequeue( "tabs" ); - }; - - // attach tab event handler, unbind to avoid duplicates from former tabifying... - this.anchors.bind( o.event + ".tabs", function() { - var el = this, - $li = $(el).closest( "li" ), - $hide = self.panels.filter( ":not(.ui-tabs-hide)" ), - $show = self.element.find( self._sanitizeSelector( el.hash ) ); - - // If tab is already selected and not collapsible or tab disabled or - // or is already loading or click callback returns false stop here. - // Check if click handler returns false last so that it is not executed - // for a disabled or loading tab! - if ( ( $li.hasClass( "ui-tabs-selected" ) && !o.collapsible) || - $li.hasClass( "ui-state-disabled" ) || - $li.hasClass( "ui-state-processing" ) || - self.panels.filter( ":animated" ).length || - self._trigger( "select", null, self._ui( this, $show[ 0 ] ) ) === false ) { - this.blur(); - return false; - } - - o.selected = self.anchors.index( this ); - - self.abort(); - - // if tab may be closed - if ( o.collapsible ) { - if ( $li.hasClass( "ui-tabs-selected" ) ) { - o.selected = -1; - - if ( o.cookie ) { - self._cookie( o.selected, o.cookie ); - } - - self.element.queue( "tabs", function() { - hideTab( el, $hide ); - }).dequeue( "tabs" ); - - this.blur(); - return false; - } else if ( !$hide.length ) { - if ( o.cookie ) { - self._cookie( o.selected, o.cookie ); - } - - self.element.queue( "tabs", function() { - showTab( el, $show ); - }); - - // TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171 - self.load( self.anchors.index( this ) ); - - this.blur(); - return false; - } - } - - if ( o.cookie ) { - self._cookie( o.selected, o.cookie ); - } - - // show new tab - if ( $show.length ) { - if ( $hide.length ) { - self.element.queue( "tabs", function() { - hideTab( el, $hide ); - }); - } - self.element.queue( "tabs", function() { - showTab( el, $show ); - }); - - self.load( self.anchors.index( this ) ); - } else { - throw "jQuery UI Tabs: Mismatching fragment identifier."; - } - - // Prevent IE from keeping other link focussed when using the back button - // and remove dotted border from clicked link. This is controlled via CSS - // in modern browsers; blur() removes focus from address bar in Firefox - // which can become a usability and annoying problem with tabs('rotate'). - if ( $.browser.msie ) { - this.blur(); - } - }); - - // disable click in any case - this.anchors.bind( "click.tabs", function(){ - return false; - }); - }, - - _getIndex: function( index ) { - // meta-function to give users option to provide a href string instead of a numerical index. - // also sanitizes numerical indexes to valid values. - if ( typeof index == "string" ) { - index = this.anchors.index( this.anchors.filter( "[href$=" + index + "]" ) ); - } - - return index; - }, - - destroy: function() { - var o = this.options; - - this.abort(); - - this.element - .unbind( ".tabs" ) - .removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" ) - .removeData( "tabs" ); - - this.list.removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ); - - this.anchors.each(function() { - var href = $.data( this, "href.tabs" ); - if ( href ) { - this.href = href; - } - var $this = $( this ).unbind( ".tabs" ); - $.each( [ "href", "load", "cache" ], function( i, prefix ) { - $this.removeData( prefix + ".tabs" ); - }); - }); - - this.lis.unbind( ".tabs" ).add( this.panels ).each(function() { - if ( $.data( this, "destroy.tabs" ) ) { - $( this ).remove(); - } else { - $( this ).removeClass([ - "ui-state-default", - "ui-corner-top", - "ui-tabs-selected", - "ui-state-active", - "ui-state-hover", - "ui-state-focus", - "ui-state-disabled", - "ui-tabs-panel", - "ui-widget-content", - "ui-corner-bottom", - "ui-tabs-hide" - ].join( " " ) ); - } - }); - - if ( o.cookie ) { - this._cookie( null, o.cookie ); - } - - return this; - }, - - add: function( url, label, index ) { - if ( index === undefined ) { - index = this.anchors.length; - } - - var self = this, - o = this.options, - $li = $( o.tabTemplate.replace( /#\{href\}/g, url ).replace( /#\{label\}/g, label ) ), - id = !url.indexOf( "#" ) ? url.replace( "#", "" ) : this._tabId( $( "a", $li )[ 0 ] ); - - $li.addClass( "ui-state-default ui-corner-top" ).data( "destroy.tabs", true ); - - // try to find an existing element before creating a new one - var $panel = self.element.find( "#" + id ); - if ( !$panel.length ) { - $panel = $( o.panelTemplate ) - .attr( "id", id ) - .data( "destroy.tabs", true ); - } - $panel.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" ); - - if ( index >= this.lis.length ) { - $li.appendTo( this.list ); - $panel.appendTo( this.list[ 0 ].parentNode ); - } else { - $li.insertBefore( this.lis[ index ] ); - $panel.insertBefore( this.panels[ index ] ); - } - - o.disabled = $.map( o.disabled, function( n, i ) { - return n >= index ? ++n : n; - }); - - this._tabify(); - - if ( this.anchors.length == 1 ) { - o.selected = 0; - $li.addClass( "ui-tabs-selected ui-state-active" ); - $panel.removeClass( "ui-tabs-hide" ); - this.element.queue( "tabs", function() { - self._trigger( "show", null, self._ui( self.anchors[ 0 ], self.panels[ 0 ] ) ); - }); - - this.load( 0 ); - } - - this._trigger( "add", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); - return this; - }, - - remove: function( index ) { - index = this._getIndex( index ); - var o = this.options, - $li = this.lis.eq( index ).remove(), - $panel = this.panels.eq( index ).remove(); - - // If selected tab was removed focus tab to the right or - // in case the last tab was removed the tab to the left. - if ( $li.hasClass( "ui-tabs-selected" ) && this.anchors.length > 1) { - this.select( index + ( index + 1 < this.anchors.length ? 1 : -1 ) ); - } - - o.disabled = $.map( - $.grep( o.disabled, function(n, i) { - return n != index; - }), - function( n, i ) { - return n >= index ? --n : n; - }); - - this._tabify(); - - this._trigger( "remove", null, this._ui( $li.find( "a" )[ 0 ], $panel[ 0 ] ) ); - return this; - }, - - enable: function( index ) { - index = this._getIndex( index ); - var o = this.options; - if ( $.inArray( index, o.disabled ) == -1 ) { - return; - } - - this.lis.eq( index ).removeClass( "ui-state-disabled" ); - o.disabled = $.grep( o.disabled, function( n, i ) { - return n != index; - }); - - this._trigger( "enable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); - return this; - }, - - disable: function( index ) { - index = this._getIndex( index ); - var self = this, o = this.options; - // cannot disable already selected tab - if ( index != o.selected ) { - this.lis.eq( index ).addClass( "ui-state-disabled" ); - - o.disabled.push( index ); - o.disabled.sort(); - - this._trigger( "disable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); - } - - return this; - }, - - select: function( index ) { - index = this._getIndex( index ); - if ( index == -1 ) { - if ( this.options.collapsible && this.options.selected != -1 ) { - index = this.options.selected; - } else { - return this; - } - } - this.anchors.eq( index ).trigger( this.options.event + ".tabs" ); - return this; - }, - - load: function( index ) { - index = this._getIndex( index ); - var self = this, - o = this.options, - a = this.anchors.eq( index )[ 0 ], - url = $.data( a, "load.tabs" ); - - this.abort(); - - // not remote or from cache - if ( !url || this.element.queue( "tabs" ).length !== 0 && $.data( a, "cache.tabs" ) ) { - this.element.dequeue( "tabs" ); - return; - } - - // load remote from here on - this.lis.eq( index ).addClass( "ui-state-processing" ); - - if ( o.spinner ) { - var span = $( "span", a ); - span.data( "label.tabs", span.html() ).html( o.spinner ); - } - - this.xhr = $.ajax( $.extend( {}, o.ajaxOptions, { - url: url, - success: function( r, s ) { - self.element.find( self._sanitizeSelector( a.hash ) ).html( r ); - - // take care of tab labels - self._cleanup(); - - if ( o.cache ) { - $.data( a, "cache.tabs", true ); - } - - self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) ); - try { - o.ajaxOptions.success( r, s ); - } - catch ( e ) {} - }, - error: function( xhr, s, e ) { - // take care of tab labels - self._cleanup(); - - self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) ); - try { - // Passing index avoid a race condition when this method is - // called after the user has selected another tab. - // Pass the anchor that initiated this request allows - // loadError to manipulate the tab content panel via $(a.hash) - o.ajaxOptions.error( xhr, s, index, a ); - } - catch ( e ) {} - } - } ) ); - - // last, so that load event is fired before show... - self.element.dequeue( "tabs" ); - - return this; - }, - - abort: function() { - // stop possibly running animations - this.element.queue( [] ); - this.panels.stop( false, true ); - - // "tabs" queue must not contain more than two elements, - // which are the callbacks for the latest clicked tab... - this.element.queue( "tabs", this.element.queue( "tabs" ).splice( -2, 2 ) ); - - // terminate pending requests from other tabs - if ( this.xhr ) { - this.xhr.abort(); - delete this.xhr; - } - - // take care of tab labels - this._cleanup(); - return this; - }, - - url: function( index, url ) { - this.anchors.eq( index ).removeData( "cache.tabs" ).data( "load.tabs", url ); - return this; - }, - - length: function() { - return this.anchors.length; - } -}); - -$.extend( $.ui.tabs, { - version: "1.8.16" -}); - -/* - * Tabs Extensions - */ - -/* - * Rotate - */ -$.extend( $.ui.tabs.prototype, { - rotation: null, - rotate: function( ms, continuing ) { - var self = this, - o = this.options; - - var rotate = self._rotate || ( self._rotate = function( e ) { - clearTimeout( self.rotation ); - self.rotation = setTimeout(function() { - var t = o.selected; - self.select( ++t < self.anchors.length ? t : 0 ); - }, ms ); - - if ( e ) { - e.stopPropagation(); - } - }); - - var stop = self._unrotate || ( self._unrotate = !continuing - ? function(e) { - if (e.clientX) { // in case of a true click - self.rotate(null); - } - } - : function( e ) { - t = o.selected; - rotate(); - }); - - // start rotation - if ( ms ) { - this.element.bind( "tabsshow", rotate ); - this.anchors.bind( o.event + ".tabs", stop ); - rotate(); - // stop rotation - } else { - clearTimeout( self.rotation ); - this.element.unbind( "tabsshow", rotate ); - this.anchors.unbind( o.event + ".tabs", stop ); - delete this._rotate; - delete this._unrotate; - } - - return this; - } -}); - -})( jQuery ); - diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.widget.js.svn-base b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.widget.js.svn-base deleted file mode 100755 index ef5bcd9..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/.svn/text-base/jquery.ui.widget.js.svn-base +++ /dev/null @@ -1,262 +0,0 @@ -/*! - * jQuery UI Widget 1.8.9 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Widget - */ -(function( $, undefined ) { - -// jQuery 1.4+ -if ( $.cleanData ) { - var _cleanData = $.cleanData; - $.cleanData = function( elems ) { - for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { - $( elem ).triggerHandler( "remove" ); - } - _cleanData( elems ); - }; -} else { - var _remove = $.fn.remove; - $.fn.remove = function( selector, keepData ) { - return this.each(function() { - if ( !keepData ) { - if ( !selector || $.filter( selector, [ this ] ).length ) { - $( "*", this ).add( [ this ] ).each(function() { - $( this ).triggerHandler( "remove" ); - }); - } - } - return _remove.call( $(this), selector, keepData ); - }); - }; -} - -$.widget = function( name, base, prototype ) { - var namespace = name.split( "." )[ 0 ], - fullName; - name = name.split( "." )[ 1 ]; - fullName = namespace + "-" + name; - - if ( !prototype ) { - prototype = base; - base = $.Widget; - } - - // create selector for plugin - $.expr[ ":" ][ fullName ] = function( elem ) { - return !!$.data( elem, name ); - }; - - $[ namespace ] = $[ namespace ] || {}; - $[ namespace ][ name ] = function( options, element ) { - // allow instantiation without initializing for simple inheritance - if ( arguments.length ) { - this._createWidget( options, element ); - } - }; - - var basePrototype = new base(); - // we need to make the options hash a property directly on the new instance - // otherwise we'll modify the options hash on the prototype that we're - // inheriting from -// $.each( basePrototype, function( key, val ) { -// if ( $.isPlainObject(val) ) { -// basePrototype[ key ] = $.extend( {}, val ); -// } -// }); - basePrototype.options = $.extend( true, {}, basePrototype.options ); - $[ namespace ][ name ].prototype = $.extend( true, basePrototype, { - namespace: namespace, - widgetName: name, - widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name, - widgetBaseClass: fullName - }, prototype ); - - $.widget.bridge( name, $[ namespace ][ name ] ); -}; - -$.widget.bridge = function( name, object ) { - $.fn[ name ] = function( options ) { - var isMethodCall = typeof options === "string", - args = Array.prototype.slice.call( arguments, 1 ), - returnValue = this; - - // allow multiple hashes to be passed on init - options = !isMethodCall && args.length ? - $.extend.apply( null, [ true, options ].concat(args) ) : - options; - - // prevent calls to internal methods - if ( isMethodCall && options.charAt( 0 ) === "_" ) { - return returnValue; - } - - if ( isMethodCall ) { - this.each(function() { - var instance = $.data( this, name ), - methodValue = instance && $.isFunction( instance[options] ) ? - instance[ options ].apply( instance, args ) : - instance; - // TODO: add this back in 1.9 and use $.error() (see #5972) -// if ( !instance ) { -// throw "cannot call methods on " + name + " prior to initialization; " + -// "attempted to call method '" + options + "'"; -// } -// if ( !$.isFunction( instance[options] ) ) { -// throw "no such method '" + options + "' for " + name + " widget instance"; -// } -// var methodValue = instance[ options ].apply( instance, args ); - if ( methodValue !== instance && methodValue !== undefined ) { - returnValue = methodValue; - return false; - } - }); - } else { - this.each(function() { - var instance = $.data( this, name ); - if ( instance ) { - instance.option( options || {} )._init(); - } else { - $.data( this, name, new object( options, this ) ); - } - }); - } - - return returnValue; - }; -}; - -$.Widget = function( options, element ) { - // allow instantiation without initializing for simple inheritance - if ( arguments.length ) { - this._createWidget( options, element ); - } -}; - -$.Widget.prototype = { - widgetName: "widget", - widgetEventPrefix: "", - options: { - disabled: false - }, - _createWidget: function( options, element ) { - // $.widget.bridge stores the plugin instance, but we do it anyway - // so that it's stored even before the _create function runs - $.data( element, this.widgetName, this ); - this.element = $( element ); - this.options = $.extend( true, {}, - this.options, - this._getCreateOptions(), - options ); - - var self = this; - this.element.bind( "remove." + this.widgetName, function() { - self.destroy(); - }); - - this._create(); - this._trigger( "create" ); - this._init(); - }, - _getCreateOptions: function() { - return $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ]; - }, - _create: function() {}, - _init: function() {}, - - destroy: function() { - this.element - .unbind( "." + this.widgetName ) - .removeData( this.widgetName ); - this.widget() - .unbind( "." + this.widgetName ) - .removeAttr( "aria-disabled" ) - .removeClass( - this.widgetBaseClass + "-disabled " + - "ui-state-disabled" ); - }, - - widget: function() { - return this.element; - }, - - option: function( key, value ) { - var options = key; - - if ( arguments.length === 0 ) { - // don't return a reference to the internal hash - return $.extend( {}, this.options ); - } - - if (typeof key === "string" ) { - if ( value === undefined ) { - return this.options[ key ]; - } - options = {}; - options[ key ] = value; - } - - this._setOptions( options ); - - return this; - }, - _setOptions: function( options ) { - var self = this; - $.each( options, function( key, value ) { - self._setOption( key, value ); - }); - - return this; - }, - _setOption: function( key, value ) { - this.options[ key ] = value; - - if ( key === "disabled" ) { - this.widget() - [ value ? "addClass" : "removeClass"]( - this.widgetBaseClass + "-disabled" + " " + - "ui-state-disabled" ) - .attr( "aria-disabled", value ); - } - - return this; - }, - - enable: function() { - return this._setOption( "disabled", false ); - }, - disable: function() { - return this._setOption( "disabled", true ); - }, - - _trigger: function( type, event, data ) { - var callback = this.options[ type ]; - - event = $.Event( event ); - event.type = ( type === this.widgetEventPrefix ? - type : - this.widgetEventPrefix + type ).toLowerCase(); - data = data || {}; - - // copy original event properties over to the new event - // this would happen if we could call $.event.fix instead of $.Event - // but we don't have a way to force an event to be fixed multiple times - if ( event.originalEvent ) { - for ( var i = $.event.props.length, prop; i; ) { - prop = $.event.props[ --i ]; - event[ prop ] = event.originalEvent[ prop ]; - } - } - - this.element.trigger( event, data ); - - return !( $.isFunction(callback) && - callback.call( this.element[0], event, data ) === false || - event.isDefaultPrevented() ); - } -}; - -})( jQuery ); diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.core.js b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.core.js deleted file mode 100755 index 9b358e7..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.core.js +++ /dev/null @@ -1,308 +0,0 @@ -/*! - * jQuery UI 1.8.9 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function( $, undefined ) { - -// prevent duplicate loading -// this is only a problem because we proxy existing functions -// and we don't want to double proxy them -$.ui = $.ui || {}; -if ( $.ui.version ) { - return; -} - -$.extend( $.ui, { - version: "1.8.9", - - keyCode: { - ALT: 18, - BACKSPACE: 8, - CAPS_LOCK: 20, - COMMA: 188, - COMMAND: 91, - COMMAND_LEFT: 91, // COMMAND - COMMAND_RIGHT: 93, - CONTROL: 17, - DELETE: 46, - DOWN: 40, - END: 35, - ENTER: 13, - ESCAPE: 27, - HOME: 36, - INSERT: 45, - LEFT: 37, - MENU: 93, // COMMAND_RIGHT - NUMPAD_ADD: 107, - NUMPAD_DECIMAL: 110, - NUMPAD_DIVIDE: 111, - NUMPAD_ENTER: 108, - NUMPAD_MULTIPLY: 106, - NUMPAD_SUBTRACT: 109, - PAGE_DOWN: 34, - PAGE_UP: 33, - PERIOD: 190, - RIGHT: 39, - SHIFT: 16, - SPACE: 32, - TAB: 9, - UP: 38, - WINDOWS: 91 // COMMAND - } -}); - -// plugins -$.fn.extend({ - _focus: $.fn.focus, - focus: function( delay, fn ) { - return typeof delay === "number" ? - this.each(function() { - var elem = this; - setTimeout(function() { - $( elem ).focus(); - if ( fn ) { - fn.call( elem ); - } - }, delay ); - }) : - this._focus.apply( this, arguments ); - }, - - scrollParent: function() { - var scrollParent; - if (($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) { - scrollParent = this.parents().filter(function() { - return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1)); - }).eq(0); - } else { - scrollParent = this.parents().filter(function() { - return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1)); - }).eq(0); - } - - return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent; - }, - - zIndex: function( zIndex ) { - if ( zIndex !== undefined ) { - return this.css( "zIndex", zIndex ); - } - - if ( this.length ) { - var elem = $( this[ 0 ] ), position, value; - while ( elem.length && elem[ 0 ] !== document ) { - // Ignore z-index if position is set to a value where z-index is ignored by the browser - // This makes behavior of this function consistent across browsers - // WebKit always returns auto if the element is positioned - position = elem.css( "position" ); - if ( position === "absolute" || position === "relative" || position === "fixed" ) { - // IE returns 0 when zIndex is not specified - // other browsers return a string - // we ignore the case of nested elements with an explicit value of 0 - //
    - value = parseInt( elem.css( "zIndex" ), 10 ); - if ( !isNaN( value ) && value !== 0 ) { - return value; - } - } - elem = elem.parent(); - } - } - - return 0; - }, - - disableSelection: function() { - return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) + - ".ui-disableSelection", function( event ) { - event.preventDefault(); - }); - }, - - enableSelection: function() { - return this.unbind( ".ui-disableSelection" ); - } -}); - -$.each( [ "Width", "Height" ], function( i, name ) { - var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], - type = name.toLowerCase(), - orig = { - innerWidth: $.fn.innerWidth, - innerHeight: $.fn.innerHeight, - outerWidth: $.fn.outerWidth, - outerHeight: $.fn.outerHeight - }; - - function reduce( elem, size, border, margin ) { - $.each( side, function() { - size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0; - if ( border ) { - size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0; - } - if ( margin ) { - size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0; - } - }); - return size; - } - - $.fn[ "inner" + name ] = function( size ) { - if ( size === undefined ) { - return orig[ "inner" + name ].call( this ); - } - - return this.each(function() { - $( this ).css( type, reduce( this, size ) + "px" ); - }); - }; - - $.fn[ "outer" + name] = function( size, margin ) { - if ( typeof size !== "number" ) { - return orig[ "outer" + name ].call( this, size ); - } - - return this.each(function() { - $( this).css( type, reduce( this, size, true, margin ) + "px" ); - }); - }; -}); - -// selectors -function visible( element ) { - return !$( element ).parents().andSelf().filter(function() { - return $.curCSS( this, "visibility" ) === "hidden" || - $.expr.filters.hidden( this ); - }).length; -} - -$.extend( $.expr[ ":" ], { - data: function( elem, i, match ) { - return !!$.data( elem, match[ 3 ] ); - }, - - focusable: function( element ) { - var nodeName = element.nodeName.toLowerCase(), - tabIndex = $.attr( element, "tabindex" ); - if ( "area" === nodeName ) { - var map = element.parentNode, - mapName = map.name, - img; - if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { - return false; - } - img = $( "img[usemap=#" + mapName + "]" )[0]; - return !!img && visible( img ); - } - return ( /input|select|textarea|button|object/.test( nodeName ) - ? !element.disabled - : "a" == nodeName - ? element.href || !isNaN( tabIndex ) - : !isNaN( tabIndex )) - // the element and all of its ancestors must be visible - && visible( element ); - }, - - tabbable: function( element ) { - var tabIndex = $.attr( element, "tabindex" ); - return ( isNaN( tabIndex ) || tabIndex >= 0 ) && $( element ).is( ":focusable" ); - } -}); - -// support -$(function() { - var body = document.body, - div = body.appendChild( div = document.createElement( "div" ) ); - - $.extend( div.style, { - minHeight: "100px", - height: "auto", - padding: 0, - borderWidth: 0 - }); - - $.support.minHeight = div.offsetHeight === 100; - $.support.selectstart = "onselectstart" in div; - - // set display to none to avoid a layout bug in IE - // http://dev.jquery.com/ticket/4014 - body.removeChild( div ).style.display = "none"; -}); - - - - - -// deprecated -$.extend( $.ui, { - // $.ui.plugin is deprecated. Use the proxy pattern instead. - plugin: { - add: function( module, option, set ) { - var proto = $.ui[ module ].prototype; - for ( var i in set ) { - proto.plugins[ i ] = proto.plugins[ i ] || []; - proto.plugins[ i ].push( [ option, set[ i ] ] ); - } - }, - call: function( instance, name, args ) { - var set = instance.plugins[ name ]; - if ( !set || !instance.element[ 0 ].parentNode ) { - return; - } - - for ( var i = 0; i < set.length; i++ ) { - if ( instance.options[ set[ i ][ 0 ] ] ) { - set[ i ][ 1 ].apply( instance.element, args ); - } - } - } - }, - - // will be deprecated when we switch to jQuery 1.4 - use jQuery.contains() - contains: function( a, b ) { - return document.compareDocumentPosition ? - a.compareDocumentPosition( b ) & 16 : - a !== b && a.contains( b ); - }, - - // only used by resizable - hasScroll: function( el, a ) { - - //If overflow is hidden, the element might have extra content, but the user wants to hide it - if ( $( el ).css( "overflow" ) === "hidden") { - return false; - } - - var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop", - has = false; - - if ( el[ scroll ] > 0 ) { - return true; - } - - // TODO: determine which cases actually cause this to happen - // if the element doesn't have the scroll set, see if it's possible to - // set the scroll - el[ scroll ] = 1; - has = ( el[ scroll ] > 0 ); - el[ scroll ] = 0; - return has; - }, - - // these are odd functions, fix the API or move into individual plugins - isOverAxis: function( x, reference, size ) { - //Determines when x coordinate is over "b" element axis - return ( x > reference ) && ( x < ( reference + size ) ); - }, - isOver: function( y, x, top, left, height, width ) { - //Determines when x, y coordinates is over "b" element - return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width ); - } -}); - -})( jQuery ); diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.mouse.js b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.mouse.js deleted file mode 100755 index d63fdd7..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.mouse.js +++ /dev/null @@ -1,151 +0,0 @@ -/*! - * jQuery UI Mouse 1.8.9 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Mouse - * - * Depends: - * jquery.ui.widget.js - */ -(function( $, undefined ) { - -$.widget("ui.mouse", { - options: { - cancel: ':input,option', - distance: 1, - delay: 0 - }, - _mouseInit: function() { - var self = this; - - this.element - .bind('mousedown.'+this.widgetName, function(event) { - return self._mouseDown(event); - }) - .bind('click.'+this.widgetName, function(event) { - if (true === $.data(event.target, self.widgetName + '.preventClickEvent')) { - $.removeData(event.target, self.widgetName + '.preventClickEvent'); - event.stopImmediatePropagation(); - return false; - } - }); - - this.started = false; - }, - - // TODO: make sure destroying one instance of mouse doesn't mess with - // other instances of mouse - _mouseDestroy: function() { - this.element.unbind('.'+this.widgetName); - }, - - _mouseDown: function(event) { - // don't let more than one widget handle mouseStart - // TODO: figure out why we have to use originalEvent - event.originalEvent = event.originalEvent || {}; - if (event.originalEvent.mouseHandled) { return; } - - // we may have missed mouseup (out of window) - (this._mouseStarted && this._mouseUp(event)); - - this._mouseDownEvent = event; - - var self = this, - btnIsLeft = (event.which == 1), - elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false); - if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) { - return true; - } - - this.mouseDelayMet = !this.options.delay; - if (!this.mouseDelayMet) { - this._mouseDelayTimer = setTimeout(function() { - self.mouseDelayMet = true; - }, this.options.delay); - } - - if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { - this._mouseStarted = (this._mouseStart(event) !== false); - if (!this._mouseStarted) { - event.preventDefault(); - return true; - } - } - - // these delegates are required to keep context - this._mouseMoveDelegate = function(event) { - return self._mouseMove(event); - }; - this._mouseUpDelegate = function(event) { - return self._mouseUp(event); - }; - $(document) - .bind('mousemove.'+this.widgetName, this._mouseMoveDelegate) - .bind('mouseup.'+this.widgetName, this._mouseUpDelegate); - - event.preventDefault(); - event.originalEvent.mouseHandled = true; - return true; - }, - - _mouseMove: function(event) { - // IE mouseup check - mouseup happened when mouse was out of window - if ($.browser.msie && !(document.documentMode >= 9) && !event.button) { - return this._mouseUp(event); - } - - if (this._mouseStarted) { - this._mouseDrag(event); - return event.preventDefault(); - } - - if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { - this._mouseStarted = - (this._mouseStart(this._mouseDownEvent, event) !== false); - (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event)); - } - - return !this._mouseStarted; - }, - - _mouseUp: function(event) { - $(document) - .unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate) - .unbind('mouseup.'+this.widgetName, this._mouseUpDelegate); - - if (this._mouseStarted) { - this._mouseStarted = false; - - if (event.target == this._mouseDownEvent.target) { - $.data(event.target, this.widgetName + '.preventClickEvent', true); - } - - this._mouseStop(event); - } - - return false; - }, - - _mouseDistanceMet: function(event) { - return (Math.max( - Math.abs(this._mouseDownEvent.pageX - event.pageX), - Math.abs(this._mouseDownEvent.pageY - event.pageY) - ) >= this.options.distance - ); - }, - - _mouseDelayMet: function(event) { - return this.mouseDelayMet; - }, - - // These are placeholder methods, to be overriden by extending plugin - _mouseStart: function(event) {}, - _mouseDrag: function(event) {}, - _mouseStop: function(event) {}, - _mouseCapture: function(event) { return true; } -}); - -})(jQuery); diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.slider.js b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.slider.js deleted file mode 100755 index 9bb27be..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.slider.js +++ /dev/null @@ -1,666 +0,0 @@ -/* - * jQuery UI Slider 1.8.16 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Slider - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function( $, undefined ) { - -// number of pages in a slider -// (how many times can you page up/down to go through the whole range) -var numPages = 5; - -$.widget( "ui.slider", $.ui.mouse, { - - widgetEventPrefix: "slide", - - options: { - animate: false, - distance: 0, - max: 100, - min: 0, - orientation: "horizontal", - range: false, - step: 1, - value: 0, - values: null - }, - - _create: function() { - var self = this, - o = this.options, - existingHandles = this.element.find( ".ui-slider-handle" ).addClass( "ui-state-default ui-corner-all" ), - handle = "", - handleCount = ( o.values && o.values.length ) || 1, - handles = []; - - this._keySliding = false; - this._mouseSliding = false; - this._animateOff = true; - this._handleIndex = null; - this._detectOrientation(); - this._mouseInit(); - - this.element - .addClass( "ui-slider" + - " ui-slider-" + this.orientation + - " ui-widget" + - " ui-widget-content" + - " ui-corner-all" + - ( o.disabled ? " ui-slider-disabled ui-disabled" : "" ) ); - - this.range = $([]); - - if ( o.range ) { - if ( o.range === true ) { - if ( !o.values ) { - o.values = [ this._valueMin(), this._valueMin() ]; - } - if ( o.values.length && o.values.length !== 2 ) { - o.values = [ o.values[0], o.values[0] ]; - } - } - - this.range = $( "
    " ) - .appendTo( this.element ) - .addClass( "ui-slider-range" + - // note: this isn't the most fittingly semantic framework class for this element, - // but worked best visually with a variety of themes - " ui-widget-header" + - ( ( o.range === "min" || o.range === "max" ) ? " ui-slider-range-" + o.range : "" ) ); - } - - for ( var i = existingHandles.length; i < handleCount; i += 1 ) { - handles.push( handle ); - } - - this.handles = existingHandles.add( $( handles.join( "" ) ).appendTo( self.element ) ); - - this.handle = this.handles.eq( 0 ); - - this.handles.add( this.range ).filter( "a" ) - .click(function( event ) { - event.preventDefault(); - }) - .hover(function() { - if ( !o.disabled ) { - $( this ).addClass( "ui-state-hover" ); - } - }, function() { - $( this ).removeClass( "ui-state-hover" ); - }) - .focus(function() { - if ( !o.disabled ) { - $( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" ); - $( this ).addClass( "ui-state-focus" ); - } else { - $( this ).blur(); - } - }) - .blur(function() { - $( this ).removeClass( "ui-state-focus" ); - }); - - this.handles.each(function( i ) { - $( this ).data( "index.ui-slider-handle", i ); - }); - - this.handles - .keydown(function( event ) { - var ret = true, - index = $( this ).data( "index.ui-slider-handle" ), - allowed, - curVal, - newVal, - step; - - if ( self.options.disabled ) { - return; - } - - switch ( event.keyCode ) { - case $.ui.keyCode.HOME: - case $.ui.keyCode.END: - case $.ui.keyCode.PAGE_UP: - case $.ui.keyCode.PAGE_DOWN: - case $.ui.keyCode.UP: - case $.ui.keyCode.RIGHT: - case $.ui.keyCode.DOWN: - case $.ui.keyCode.LEFT: - ret = false; - if ( !self._keySliding ) { - self._keySliding = true; - $( this ).addClass( "ui-state-active" ); - allowed = self._start( event, index ); - if ( allowed === false ) { - return; - } - } - break; - } - - step = self.options.step; - if ( self.options.values && self.options.values.length ) { - curVal = newVal = self.values( index ); - } else { - curVal = newVal = self.value(); - } - - switch ( event.keyCode ) { - case $.ui.keyCode.HOME: - newVal = self._valueMin(); - break; - case $.ui.keyCode.END: - newVal = self._valueMax(); - break; - case $.ui.keyCode.PAGE_UP: - newVal = self._trimAlignValue( curVal + ( (self._valueMax() - self._valueMin()) / numPages ) ); - break; - case $.ui.keyCode.PAGE_DOWN: - newVal = self._trimAlignValue( curVal - ( (self._valueMax() - self._valueMin()) / numPages ) ); - break; - case $.ui.keyCode.UP: - case $.ui.keyCode.RIGHT: - if ( curVal === self._valueMax() ) { - return; - } - newVal = self._trimAlignValue( curVal + step ); - break; - case $.ui.keyCode.DOWN: - case $.ui.keyCode.LEFT: - if ( curVal === self._valueMin() ) { - return; - } - newVal = self._trimAlignValue( curVal - step ); - break; - } - - self._slide( event, index, newVal ); - - return ret; - - }) - .keyup(function( event ) { - var index = $( this ).data( "index.ui-slider-handle" ); - - if ( self._keySliding ) { - self._keySliding = false; - self._stop( event, index ); - self._change( event, index ); - $( this ).removeClass( "ui-state-active" ); - } - - }); - - this._refreshValue(); - - this._animateOff = false; - }, - - destroy: function() { - this.handles.remove(); - this.range.remove(); - - this.element - .removeClass( "ui-slider" + - " ui-slider-horizontal" + - " ui-slider-vertical" + - " ui-slider-disabled" + - " ui-widget" + - " ui-widget-content" + - " ui-corner-all" ) - .removeData( "slider" ) - .unbind( ".slider" ); - - this._mouseDestroy(); - - return this; - }, - - _mouseCapture: function( event ) { - var o = this.options, - position, - normValue, - distance, - closestHandle, - self, - index, - allowed, - offset, - mouseOverHandle; - - if ( o.disabled ) { - return false; - } - - this.elementSize = { - width: this.element.outerWidth(), - height: this.element.outerHeight() - }; - this.elementOffset = this.element.offset(); - - position = { x: event.pageX, y: event.pageY }; - normValue = this._normValueFromMouse( position ); - distance = this._valueMax() - this._valueMin() + 1; - self = this; - this.handles.each(function( i ) { - var thisDistance = Math.abs( normValue - self.values(i) ); - if ( distance > thisDistance ) { - distance = thisDistance; - closestHandle = $( this ); - index = i; - } - }); - - // workaround for bug #3736 (if both handles of a range are at 0, - // the first is always used as the one with least distance, - // and moving it is obviously prevented by preventing negative ranges) - if( o.range === true && this.values(1) === o.min ) { - index += 1; - closestHandle = $( this.handles[index] ); - } - - allowed = this._start( event, index ); - if ( allowed === false ) { - return false; - } - this._mouseSliding = true; - - self._handleIndex = index; - - closestHandle - .addClass( "ui-state-active" ) - .focus(); - - offset = closestHandle.offset(); - mouseOverHandle = !$( event.target ).parents().andSelf().is( ".ui-slider-handle" ); - this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : { - left: event.pageX - offset.left - ( closestHandle.width() / 2 ), - top: event.pageY - offset.top - - ( closestHandle.height() / 2 ) - - ( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) - - ( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) + - ( parseInt( closestHandle.css("marginTop"), 10 ) || 0) - }; - - if ( !this.handles.hasClass( "ui-state-hover" ) ) { - this._slide( event, index, normValue ); - } - this._animateOff = true; - return true; - }, - - _mouseStart: function( event ) { - return true; - }, - - _mouseDrag: function( event ) { - var position = { x: event.pageX, y: event.pageY }, - normValue = this._normValueFromMouse( position ); - - this._slide( event, this._handleIndex, normValue ); - - return false; - }, - - _mouseStop: function( event ) { - this.handles.removeClass( "ui-state-active" ); - this._mouseSliding = false; - - this._stop( event, this._handleIndex ); - this._change( event, this._handleIndex ); - - this._handleIndex = null; - this._clickOffset = null; - this._animateOff = false; - - return false; - }, - - _detectOrientation: function() { - this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal"; - }, - - _normValueFromMouse: function( position ) { - var pixelTotal, - pixelMouse, - percentMouse, - valueTotal, - valueMouse; - - if ( this.orientation === "horizontal" ) { - pixelTotal = this.elementSize.width; - pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 ); - } else { - pixelTotal = this.elementSize.height; - pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 ); - } - - percentMouse = ( pixelMouse / pixelTotal ); - if ( percentMouse > 1 ) { - percentMouse = 1; - } - if ( percentMouse < 0 ) { - percentMouse = 0; - } - if ( this.orientation === "vertical" ) { - percentMouse = 1 - percentMouse; - } - - valueTotal = this._valueMax() - this._valueMin(); - valueMouse = this._valueMin() + percentMouse * valueTotal; - - return this._trimAlignValue( valueMouse ); - }, - - _start: function( event, index ) { - var uiHash = { - handle: this.handles[ index ], - value: this.value() - }; - if ( this.options.values && this.options.values.length ) { - uiHash.value = this.values( index ); - uiHash.values = this.values(); - } - return this._trigger( "start", event, uiHash ); - }, - - _slide: function( event, index, newVal ) { - var otherVal, - newValues, - allowed; - - if ( this.options.values && this.options.values.length ) { - otherVal = this.values( index ? 0 : 1 ); - - if ( ( this.options.values.length === 2 && this.options.range === true ) && - ( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) ) - ) { - newVal = otherVal; - } - - if ( newVal !== this.values( index ) ) { - newValues = this.values(); - newValues[ index ] = newVal; - // A slide can be canceled by returning false from the slide callback - allowed = this._trigger( "slide", event, { - handle: this.handles[ index ], - value: newVal, - values: newValues - } ); - otherVal = this.values( index ? 0 : 1 ); - if ( allowed !== false ) { - this.values( index, newVal, true ); - } - } - } else { - if ( newVal !== this.value() ) { - // A slide can be canceled by returning false from the slide callback - allowed = this._trigger( "slide", event, { - handle: this.handles[ index ], - value: newVal - } ); - if ( allowed !== false ) { - this.value( newVal ); - } - } - } - }, - - _stop: function( event, index ) { - var uiHash = { - handle: this.handles[ index ], - value: this.value() - }; - if ( this.options.values && this.options.values.length ) { - uiHash.value = this.values( index ); - uiHash.values = this.values(); - } - - this._trigger( "stop", event, uiHash ); - }, - - _change: function( event, index ) { - if ( !this._keySliding && !this._mouseSliding ) { - var uiHash = { - handle: this.handles[ index ], - value: this.value() - }; - if ( this.options.values && this.options.values.length ) { - uiHash.value = this.values( index ); - uiHash.values = this.values(); - } - - this._trigger( "change", event, uiHash ); - } - }, - - value: function( newValue ) { - if ( arguments.length ) { - this.options.value = this._trimAlignValue( newValue ); - this._refreshValue(); - this._change( null, 0 ); - return; - } - - return this._value(); - }, - - values: function( index, newValue ) { - var vals, - newValues, - i; - - if ( arguments.length > 1 ) { - this.options.values[ index ] = this._trimAlignValue( newValue ); - this._refreshValue(); - this._change( null, index ); - return; - } - - if ( arguments.length ) { - if ( $.isArray( arguments[ 0 ] ) ) { - vals = this.options.values; - newValues = arguments[ 0 ]; - for ( i = 0; i < vals.length; i += 1 ) { - vals[ i ] = this._trimAlignValue( newValues[ i ] ); - this._change( null, i ); - } - this._refreshValue(); - } else { - if ( this.options.values && this.options.values.length ) { - return this._values( index ); - } else { - return this.value(); - } - } - } else { - return this._values(); - } - }, - - _setOption: function( key, value ) { - var i, - valsLength = 0; - - if ( $.isArray( this.options.values ) ) { - valsLength = this.options.values.length; - } - - $.Widget.prototype._setOption.apply( this, arguments ); - - switch ( key ) { - case "disabled": - if ( value ) { - this.handles.filter( ".ui-state-focus" ).blur(); - this.handles.removeClass( "ui-state-hover" ); - this.handles.propAttr( "disabled", true ); - this.element.addClass( "ui-disabled" ); - } else { - this.handles.propAttr( "disabled", false ); - this.element.removeClass( "ui-disabled" ); - } - break; - case "orientation": - this._detectOrientation(); - this.element - .removeClass( "ui-slider-horizontal ui-slider-vertical" ) - .addClass( "ui-slider-" + this.orientation ); - this._refreshValue(); - break; - case "value": - this._animateOff = true; - this._refreshValue(); - this._change( null, 0 ); - this._animateOff = false; - break; - case "values": - this._animateOff = true; - this._refreshValue(); - for ( i = 0; i < valsLength; i += 1 ) { - this._change( null, i ); - } - this._animateOff = false; - break; - } - }, - - //internal value getter - // _value() returns value trimmed by min and max, aligned by step - _value: function() { - var val = this.options.value; - val = this._trimAlignValue( val ); - - return val; - }, - - //internal values getter - // _values() returns array of values trimmed by min and max, aligned by step - // _values( index ) returns single value trimmed by min and max, aligned by step - _values: function( index ) { - var val, - vals, - i; - - if ( arguments.length ) { - val = this.options.values[ index ]; - val = this._trimAlignValue( val ); - - return val; - } else { - // .slice() creates a copy of the array - // this copy gets trimmed by min and max and then returned - vals = this.options.values.slice(); - for ( i = 0; i < vals.length; i+= 1) { - vals[ i ] = this._trimAlignValue( vals[ i ] ); - } - - return vals; - } - }, - - // returns the step-aligned value that val is closest to, between (inclusive) min and max - _trimAlignValue: function( val ) { - if ( val <= this._valueMin() ) { - return this._valueMin(); - } - if ( val >= this._valueMax() ) { - return this._valueMax(); - } - var step = ( this.options.step > 0 ) ? this.options.step : 1, - valModStep = (val - this._valueMin()) % step, - alignValue = val - valModStep; - - if ( Math.abs(valModStep) * 2 >= step ) { - alignValue += ( valModStep > 0 ) ? step : ( -step ); - } - - // Since JavaScript has problems with large floats, round - // the final value to 5 digits after the decimal point (see #4124) - return parseFloat( alignValue.toFixed(5) ); - }, - - _valueMin: function() { - return this.options.min; - }, - - _valueMax: function() { - return this.options.max; - }, - - _refreshValue: function() { - var oRange = this.options.range, - o = this.options, - self = this, - animate = ( !this._animateOff ) ? o.animate : false, - valPercent, - _set = {}, - lastValPercent, - value, - valueMin, - valueMax; - - if ( this.options.values && this.options.values.length ) { - this.handles.each(function( i, j ) { - valPercent = ( self.values(i) - self._valueMin() ) / ( self._valueMax() - self._valueMin() ) * 100; - _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; - $( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); - if ( self.options.range === true ) { - if ( self.orientation === "horizontal" ) { - if ( i === 0 ) { - self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate ); - } - if ( i === 1 ) { - self.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - } else { - if ( i === 0 ) { - self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate ); - } - if ( i === 1 ) { - self.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - } - } - lastValPercent = valPercent; - }); - } else { - value = this.value(); - valueMin = this._valueMin(); - valueMax = this._valueMax(); - valPercent = ( valueMax !== valueMin ) ? - ( value - valueMin ) / ( valueMax - valueMin ) * 100 : - 0; - _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; - this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); - - if ( oRange === "min" && this.orientation === "horizontal" ) { - this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate ); - } - if ( oRange === "max" && this.orientation === "horizontal" ) { - this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - if ( oRange === "min" && this.orientation === "vertical" ) { - this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate ); - } - if ( oRange === "max" && this.orientation === "vertical" ) { - this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - } - } - -}); - -$.extend( $.ui.slider, { - version: "1.8.16" -}); - -}(jQuery)); diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.sortable.js b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.sortable.js deleted file mode 100755 index 59312f4..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.sortable.js +++ /dev/null @@ -1,1073 +0,0 @@ -/* - * jQuery UI Sortable 1.8.9 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Sortables - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function( $, undefined ) { - -$.widget("ui.sortable", $.ui.mouse, { - widgetEventPrefix: "sort", - options: { - appendTo: "parent", - axis: false, - connectWith: false, - containment: false, - cursor: 'auto', - cursorAt: false, - dropOnEmpty: true, - forcePlaceholderSize: false, - forceHelperSize: false, - grid: false, - handle: false, - helper: "original", - items: '> *', - opacity: false, - placeholder: false, - revert: false, - scroll: true, - scrollSensitivity: 20, - scrollSpeed: 20, - scope: "default", - tolerance: "intersect", - zIndex: 1000 - }, - _create: function() { - - var o = this.options; - this.containerCache = {}; - this.element.addClass("ui-sortable"); - - //Get the items - this.refresh(); - - //Let's determine if the items are floating - this.floating = this.items.length ? (/left|right/).test(this.items[0].item.css('float')) : false; - - //Let's determine the parent's offset - this.offset = this.element.offset(); - - //Initialize mouse events for interaction - this._mouseInit(); - - }, - - destroy: function() { - this.element - .removeClass("ui-sortable ui-sortable-disabled") - .removeData("sortable") - .unbind(".sortable"); - this._mouseDestroy(); - - for ( var i = this.items.length - 1; i >= 0; i-- ) - this.items[i].item.removeData("sortable-item"); - - return this; - }, - - _setOption: function(key, value){ - if ( key === "disabled" ) { - this.options[ key ] = value; - - this.widget() - [ value ? "addClass" : "removeClass"]( "ui-sortable-disabled" ); - } else { - // Don't call widget base _setOption for disable as it adds ui-state-disabled class - $.Widget.prototype._setOption.apply(this, arguments); - } - }, - - _mouseCapture: function(event, overrideHandle) { - - if (this.reverting) { - return false; - } - - if(this.options.disabled || this.options.type == 'static') return false; - - //We have to refresh the items data once first - this._refreshItems(event); - - //Find out if the clicked node (or one of its parents) is a actual item in this.items - var currentItem = null, self = this, nodes = $(event.target).parents().each(function() { - if($.data(this, 'sortable-item') == self) { - currentItem = $(this); - return false; - } - }); - if($.data(event.target, 'sortable-item') == self) currentItem = $(event.target); - - if(!currentItem) return false; - if(this.options.handle && !overrideHandle) { - var validHandle = false; - - $(this.options.handle, currentItem).find("*").andSelf().each(function() { if(this == event.target) validHandle = true; }); - if(!validHandle) return false; - } - - this.currentItem = currentItem; - this._removeCurrentsFromItems(); - return true; - - }, - - _mouseStart: function(event, overrideHandle, noActivation) { - - var o = this.options, self = this; - this.currentContainer = this; - - //We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture - this.refreshPositions(); - - //Create and append the visible helper - this.helper = this._createHelper(event); - - //Cache the helper size - this._cacheHelperProportions(); - - /* - * - Position generation - - * This block generates everything position related - it's the core of draggables. - */ - - //Cache the margins of the original element - this._cacheMargins(); - - //Get the next scrolling parent - this.scrollParent = this.helper.scrollParent(); - - //The element's absolute position on the page minus margins - this.offset = this.currentItem.offset(); - this.offset = { - top: this.offset.top - this.margins.top, - left: this.offset.left - this.margins.left - }; - - // Only after we got the offset, we can change the helper's position to absolute - // TODO: Still need to figure out a way to make relative sorting possible - this.helper.css("position", "absolute"); - this.cssPosition = this.helper.css("position"); - - $.extend(this.offset, { - click: { //Where the click happened, relative to the element - left: event.pageX - this.offset.left, - top: event.pageY - this.offset.top - }, - parent: this._getParentOffset(), - relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper - }); - - //Generate the original position - this.originalPosition = this._generatePosition(event); - this.originalPageX = event.pageX; - this.originalPageY = event.pageY; - - //Adjust the mouse offset relative to the helper if 'cursorAt' is supplied - (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt)); - - //Cache the former DOM position - this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] }; - - //If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way - if(this.helper[0] != this.currentItem[0]) { - this.currentItem.hide(); - } - - //Create the placeholder - this._createPlaceholder(); - - //Set a containment if given in the options - if(o.containment) - this._setContainment(); - - if(o.cursor) { // cursor option - if ($('body').css("cursor")) this._storedCursor = $('body').css("cursor"); - $('body').css("cursor", o.cursor); - } - - if(o.opacity) { // opacity option - if (this.helper.css("opacity")) this._storedOpacity = this.helper.css("opacity"); - this.helper.css("opacity", o.opacity); - } - - if(o.zIndex) { // zIndex option - if (this.helper.css("zIndex")) this._storedZIndex = this.helper.css("zIndex"); - this.helper.css("zIndex", o.zIndex); - } - - //Prepare scrolling - if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') - this.overflowOffset = this.scrollParent.offset(); - - //Call callbacks - this._trigger("start", event, this._uiHash()); - - //Recache the helper size - if(!this._preserveHelperProportions) - this._cacheHelperProportions(); - - - //Post 'activate' events to possible containers - if(!noActivation) { - for (var i = this.containers.length - 1; i >= 0; i--) { this.containers[i]._trigger("activate", event, self._uiHash(this)); } - } - - //Prepare possible droppables - if($.ui.ddmanager) - $.ui.ddmanager.current = this; - - if ($.ui.ddmanager && !o.dropBehaviour) - $.ui.ddmanager.prepareOffsets(this, event); - - this.dragging = true; - - this.helper.addClass("ui-sortable-helper"); - this._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position - return true; - - }, - - _mouseDrag: function(event) { - - //Compute the helpers position - this.position = this._generatePosition(event); - this.positionAbs = this._convertPositionTo("absolute"); - - if (!this.lastPositionAbs) { - this.lastPositionAbs = this.positionAbs; - } - - //Do scrolling - if(this.options.scroll) { - var o = this.options, scrolled = false; - if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') { - - if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) - this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed; - else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity) - this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed; - - if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) - this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed; - else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity) - this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed; - - } else { - - if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) - scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed); - else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) - scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed); - - if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) - scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); - else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) - scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); - - } - - if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) - $.ui.ddmanager.prepareOffsets(this, event); - } - - //Regenerate the absolute position used for position checks - this.positionAbs = this._convertPositionTo("absolute"); - - //Set the helper position - if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px'; - if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px'; - - //Rearrange - for (var i = this.items.length - 1; i >= 0; i--) { - - //Cache variables and intersection, continue if no intersection - var item = this.items[i], itemElement = item.item[0], intersection = this._intersectsWithPointer(item); - if (!intersection) continue; - - if(itemElement != this.currentItem[0] //cannot intersect with itself - && this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement //no useless actions that have been done before - && !$.ui.contains(this.placeholder[0], itemElement) //no action if the item moved is the parent of the item checked - && (this.options.type == 'semi-dynamic' ? !$.ui.contains(this.element[0], itemElement) : true) - //&& itemElement.parentNode == this.placeholder[0].parentNode // only rearrange items within the same container - ) { - - this.direction = intersection == 1 ? "down" : "up"; - - if (this.options.tolerance == "pointer" || this._intersectsWithSides(item)) { - this._rearrange(event, item); - } else { - break; - } - - this._trigger("change", event, this._uiHash()); - break; - } - } - - //Post events to containers - this._contactContainers(event); - - //Interconnect with droppables - if($.ui.ddmanager) $.ui.ddmanager.drag(this, event); - - //Call callbacks - this._trigger('sort', event, this._uiHash()); - - this.lastPositionAbs = this.positionAbs; - return false; - - }, - - _mouseStop: function(event, noPropagation) { - - if(!event) return; - - //If we are using droppables, inform the manager about the drop - if ($.ui.ddmanager && !this.options.dropBehaviour) - $.ui.ddmanager.drop(this, event); - - if(this.options.revert) { - var self = this; - var cur = self.placeholder.offset(); - - self.reverting = true; - - $(this.helper).animate({ - left: cur.left - this.offset.parent.left - self.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft), - top: cur.top - this.offset.parent.top - self.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop) - }, parseInt(this.options.revert, 10) || 500, function() { - self._clear(event); - }); - } else { - this._clear(event, noPropagation); - } - - return false; - - }, - - cancel: function() { - - var self = this; - - if(this.dragging) { - - this._mouseUp({ target: null }); - - if(this.options.helper == "original") - this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); - else - this.currentItem.show(); - - //Post deactivating events to containers - for (var i = this.containers.length - 1; i >= 0; i--){ - this.containers[i]._trigger("deactivate", null, self._uiHash(this)); - if(this.containers[i].containerCache.over) { - this.containers[i]._trigger("out", null, self._uiHash(this)); - this.containers[i].containerCache.over = 0; - } - } - - } - - if (this.placeholder) { - //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! - if(this.placeholder[0].parentNode) this.placeholder[0].parentNode.removeChild(this.placeholder[0]); - if(this.options.helper != "original" && this.helper && this.helper[0].parentNode) this.helper.remove(); - - $.extend(this, { - helper: null, - dragging: false, - reverting: false, - _noFinalSort: null - }); - - if(this.domPosition.prev) { - $(this.domPosition.prev).after(this.currentItem); - } else { - $(this.domPosition.parent).prepend(this.currentItem); - } - } - - return this; - - }, - - serialize: function(o) { - - var items = this._getItemsAsjQuery(o && o.connected); - var str = []; o = o || {}; - - $(items).each(function() { - var res = ($(o.item || this).attr(o.attribute || 'id') || '').match(o.expression || (/(.+)[-=_](.+)/)); - if(res) str.push((o.key || res[1]+'[]')+'='+(o.key && o.expression ? res[1] : res[2])); - }); - - if(!str.length && o.key) { - str.push(o.key + '='); - } - - return str.join('&'); - - }, - - toArray: function(o) { - - var items = this._getItemsAsjQuery(o && o.connected); - var ret = []; o = o || {}; - - items.each(function() { ret.push($(o.item || this).attr(o.attribute || 'id') || ''); }); - return ret; - - }, - - /* Be careful with the following core functions */ - _intersectsWith: function(item) { - - var x1 = this.positionAbs.left, - x2 = x1 + this.helperProportions.width, - y1 = this.positionAbs.top, - y2 = y1 + this.helperProportions.height; - - var l = item.left, - r = l + item.width, - t = item.top, - b = t + item.height; - - var dyClick = this.offset.click.top, - dxClick = this.offset.click.left; - - var isOverElement = (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 + dxClick) > l && (x1 + dxClick) < r; - - if( this.options.tolerance == "pointer" - || this.options.forcePointerForContainers - || (this.options.tolerance != "pointer" && this.helperProportions[this.floating ? 'width' : 'height'] > item[this.floating ? 'width' : 'height']) - ) { - return isOverElement; - } else { - - return (l < x1 + (this.helperProportions.width / 2) // Right Half - && x2 - (this.helperProportions.width / 2) < r // Left Half - && t < y1 + (this.helperProportions.height / 2) // Bottom Half - && y2 - (this.helperProportions.height / 2) < b ); // Top Half - - } - }, - - _intersectsWithPointer: function(item) { - - var isOverElementHeight = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height), - isOverElementWidth = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width), - isOverElement = isOverElementHeight && isOverElementWidth, - verticalDirection = this._getDragVerticalDirection(), - horizontalDirection = this._getDragHorizontalDirection(); - - if (!isOverElement) - return false; - - return this.floating ? - ( ((horizontalDirection && horizontalDirection == "right") || verticalDirection == "down") ? 2 : 1 ) - : ( verticalDirection && (verticalDirection == "down" ? 2 : 1) ); - - }, - - _intersectsWithSides: function(item) { - - var isOverBottomHalf = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height), - isOverRightHalf = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width), - verticalDirection = this._getDragVerticalDirection(), - horizontalDirection = this._getDragHorizontalDirection(); - - if (this.floating && horizontalDirection) { - return ((horizontalDirection == "right" && isOverRightHalf) || (horizontalDirection == "left" && !isOverRightHalf)); - } else { - return verticalDirection && ((verticalDirection == "down" && isOverBottomHalf) || (verticalDirection == "up" && !isOverBottomHalf)); - } - - }, - - _getDragVerticalDirection: function() { - var delta = this.positionAbs.top - this.lastPositionAbs.top; - return delta != 0 && (delta > 0 ? "down" : "up"); - }, - - _getDragHorizontalDirection: function() { - var delta = this.positionAbs.left - this.lastPositionAbs.left; - return delta != 0 && (delta > 0 ? "right" : "left"); - }, - - refresh: function(event) { - this._refreshItems(event); - this.refreshPositions(); - return this; - }, - - _connectWith: function() { - var options = this.options; - return options.connectWith.constructor == String - ? [options.connectWith] - : options.connectWith; - }, - - _getItemsAsjQuery: function(connected) { - - var self = this; - var items = []; - var queries = []; - var connectWith = this._connectWith(); - - if(connectWith && connected) { - for (var i = connectWith.length - 1; i >= 0; i--){ - var cur = $(connectWith[i]); - for (var j = cur.length - 1; j >= 0; j--){ - var inst = $.data(cur[j], 'sortable'); - if(inst && inst != this && !inst.options.disabled) { - queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), inst]); - } - }; - }; - } - - queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), this]); - - for (var i = queries.length - 1; i >= 0; i--){ - queries[i][0].each(function() { - items.push(this); - }); - }; - - return $(items); - - }, - - _removeCurrentsFromItems: function() { - - var list = this.currentItem.find(":data(sortable-item)"); - - for (var i=0; i < this.items.length; i++) { - - for (var j=0; j < list.length; j++) { - if(list[j] == this.items[i].item[0]) - this.items.splice(i,1); - }; - - }; - - }, - - _refreshItems: function(event) { - - this.items = []; - this.containers = [this]; - var items = this.items; - var self = this; - var queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]]; - var connectWith = this._connectWith(); - - if(connectWith) { - for (var i = connectWith.length - 1; i >= 0; i--){ - var cur = $(connectWith[i]); - for (var j = cur.length - 1; j >= 0; j--){ - var inst = $.data(cur[j], 'sortable'); - if(inst && inst != this && !inst.options.disabled) { - queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]); - this.containers.push(inst); - } - }; - }; - } - - for (var i = queries.length - 1; i >= 0; i--) { - var targetData = queries[i][1]; - var _queries = queries[i][0]; - - for (var j=0, queriesLength = _queries.length; j < queriesLength; j++) { - var item = $(_queries[j]); - - item.data('sortable-item', targetData); // Data for target checking (mouse manager) - - items.push({ - item: item, - instance: targetData, - width: 0, height: 0, - left: 0, top: 0 - }); - }; - }; - - }, - - refreshPositions: function(fast) { - - //This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change - if(this.offsetParent && this.helper) { - this.offset.parent = this._getParentOffset(); - } - - for (var i = this.items.length - 1; i >= 0; i--){ - var item = this.items[i]; - - var t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item; - - if (!fast) { - item.width = t.outerWidth(); - item.height = t.outerHeight(); - } - - var p = t.offset(); - item.left = p.left; - item.top = p.top; - }; - - if(this.options.custom && this.options.custom.refreshContainers) { - this.options.custom.refreshContainers.call(this); - } else { - for (var i = this.containers.length - 1; i >= 0; i--){ - var p = this.containers[i].element.offset(); - this.containers[i].containerCache.left = p.left; - this.containers[i].containerCache.top = p.top; - this.containers[i].containerCache.width = this.containers[i].element.outerWidth(); - this.containers[i].containerCache.height = this.containers[i].element.outerHeight(); - }; - } - - return this; - }, - - _createPlaceholder: function(that) { - - var self = that || this, o = self.options; - - if(!o.placeholder || o.placeholder.constructor == String) { - var className = o.placeholder; - o.placeholder = { - element: function() { - - var el = $(document.createElement(self.currentItem[0].nodeName)) - .addClass(className || self.currentItem[0].className+" ui-sortable-placeholder") - .removeClass("ui-sortable-helper")[0]; - - if(!className) - el.style.visibility = "hidden"; - - return el; - }, - update: function(container, p) { - - // 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that - // 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified - if(className && !o.forcePlaceholderSize) return; - - //If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item - if(!p.height()) { p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10)); }; - if(!p.width()) { p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10)); }; - } - }; - } - - //Create the placeholder - self.placeholder = $(o.placeholder.element.call(self.element, self.currentItem)); - - //Append it after the actual current item - self.currentItem.after(self.placeholder); - - //Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317) - o.placeholder.update(self, self.placeholder); - - }, - - _contactContainers: function(event) { - - // get innermost container that intersects with item - var innermostContainer = null, innermostIndex = null; - - - for (var i = this.containers.length - 1; i >= 0; i--){ - - // never consider a container that's located within the item itself - if($.ui.contains(this.currentItem[0], this.containers[i].element[0])) - continue; - - if(this._intersectsWith(this.containers[i].containerCache)) { - - // if we've already found a container and it's more "inner" than this, then continue - if(innermostContainer && $.ui.contains(this.containers[i].element[0], innermostContainer.element[0])) - continue; - - innermostContainer = this.containers[i]; - innermostIndex = i; - - } else { - // container doesn't intersect. trigger "out" event if necessary - if(this.containers[i].containerCache.over) { - this.containers[i]._trigger("out", event, this._uiHash(this)); - this.containers[i].containerCache.over = 0; - } - } - - } - - // if no intersecting containers found, return - if(!innermostContainer) return; - - // move the item into the container if it's not there already - if(this.containers.length === 1) { - this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); - this.containers[innermostIndex].containerCache.over = 1; - } else if(this.currentContainer != this.containers[innermostIndex]) { - - //When entering a new container, we will find the item with the least distance and append our item near it - var dist = 10000; var itemWithLeastDistance = null; var base = this.positionAbs[this.containers[innermostIndex].floating ? 'left' : 'top']; - for (var j = this.items.length - 1; j >= 0; j--) { - if(!$.ui.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) continue; - var cur = this.items[j][this.containers[innermostIndex].floating ? 'left' : 'top']; - if(Math.abs(cur - base) < dist) { - dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j]; - } - } - - if(!itemWithLeastDistance && !this.options.dropOnEmpty) //Check if dropOnEmpty is enabled - return; - - this.currentContainer = this.containers[innermostIndex]; - itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true); - this._trigger("change", event, this._uiHash()); - this.containers[innermostIndex]._trigger("change", event, this._uiHash(this)); - - //Update the placeholder - this.options.placeholder.update(this.currentContainer, this.placeholder); - - this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); - this.containers[innermostIndex].containerCache.over = 1; - } - - - }, - - _createHelper: function(event) { - - var o = this.options; - var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper == 'clone' ? this.currentItem.clone() : this.currentItem); - - if(!helper.parents('body').length) //Add the helper to the DOM if that didn't happen already - $(o.appendTo != 'parent' ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]); - - if(helper[0] == this.currentItem[0]) - this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") }; - - if(helper[0].style.width == '' || o.forceHelperSize) helper.width(this.currentItem.width()); - if(helper[0].style.height == '' || o.forceHelperSize) helper.height(this.currentItem.height()); - - return helper; - - }, - - _adjustOffsetFromHelper: function(obj) { - if (typeof obj == 'string') { - obj = obj.split(' '); - } - if ($.isArray(obj)) { - obj = {left: +obj[0], top: +obj[1] || 0}; - } - if ('left' in obj) { - this.offset.click.left = obj.left + this.margins.left; - } - if ('right' in obj) { - this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; - } - if ('top' in obj) { - this.offset.click.top = obj.top + this.margins.top; - } - if ('bottom' in obj) { - this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; - } - }, - - _getParentOffset: function() { - - - //Get the offsetParent and cache its position - this.offsetParent = this.helper.offsetParent(); - var po = this.offsetParent.offset(); - - // This is a special case where we need to modify a offset calculated on start, since the following happened: - // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent - // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that - // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag - if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) { - po.left += this.scrollParent.scrollLeft(); - po.top += this.scrollParent.scrollTop(); - } - - if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information - || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix - po = { top: 0, left: 0 }; - - return { - top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0), - left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0) - }; - - }, - - _getRelativeOffset: function() { - - if(this.cssPosition == "relative") { - var p = this.currentItem.position(); - return { - top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(), - left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft() - }; - } else { - return { top: 0, left: 0 }; - } - - }, - - _cacheMargins: function() { - this.margins = { - left: (parseInt(this.currentItem.css("marginLeft"),10) || 0), - top: (parseInt(this.currentItem.css("marginTop"),10) || 0) - }; - }, - - _cacheHelperProportions: function() { - this.helperProportions = { - width: this.helper.outerWidth(), - height: this.helper.outerHeight() - }; - }, - - _setContainment: function() { - - var o = this.options; - if(o.containment == 'parent') o.containment = this.helper[0].parentNode; - if(o.containment == 'document' || o.containment == 'window') this.containment = [ - 0 - this.offset.relative.left - this.offset.parent.left, - 0 - this.offset.relative.top - this.offset.parent.top, - $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left, - ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top - ]; - - if(!(/^(document|window|parent)$/).test(o.containment)) { - var ce = $(o.containment)[0]; - var co = $(o.containment).offset(); - var over = ($(ce).css("overflow") != 'hidden'); - - this.containment = [ - co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left, - co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top, - co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left, - co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top - ]; - } - - }, - - _convertPositionTo: function(d, pos) { - - if(!pos) pos = this.position; - var mod = d == "absolute" ? 1 : -1; - var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); - - return { - top: ( - pos.top // The absolute mouse position - + this.offset.relative.top * mod // Only for relative positioned nodes: Relative offset from element to offset parent - + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border) - - ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod) - ), - left: ( - pos.left // The absolute mouse position - + this.offset.relative.left * mod // Only for relative positioned nodes: Relative offset from element to offset parent - + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border) - - ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod) - ) - }; - - }, - - _generatePosition: function(event) { - - var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); - - // This is another very weird special case that only happens for relative elements: - // 1. If the css position is relative - // 2. and the scroll parent is the document or similar to the offset parent - // we have to refresh the relative offset during the scroll so there are no jumps - if(this.cssPosition == 'relative' && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) { - this.offset.relative = this._getRelativeOffset(); - } - - var pageX = event.pageX; - var pageY = event.pageY; - - /* - * - Position constraining - - * Constrain the position to a mix of grid, containment. - */ - - if(this.originalPosition) { //If we are not dragging yet, we won't check for options - - if(this.containment) { - if(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left; - if(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top; - if(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left; - if(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top; - } - - if(o.grid) { - var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1]; - pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top; - - var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0]; - pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left; - } - - } - - return { - top: ( - pageY // The absolute mouse position - - this.offset.click.top // Click offset (relative to the element) - - this.offset.relative.top // Only for relative positioned nodes: Relative offset from element to offset parent - - this.offset.parent.top // The offsetParent's offset without borders (offset + border) - + ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) )) - ), - left: ( - pageX // The absolute mouse position - - this.offset.click.left // Click offset (relative to the element) - - this.offset.relative.left // Only for relative positioned nodes: Relative offset from element to offset parent - - this.offset.parent.left // The offsetParent's offset without borders (offset + border) - + ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() )) - ) - }; - - }, - - _rearrange: function(event, i, a, hardRefresh) { - - a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction == 'down' ? i.item[0] : i.item[0].nextSibling)); - - //Various things done here to improve the performance: - // 1. we create a setTimeout, that calls refreshPositions - // 2. on the instance, we have a counter variable, that get's higher after every append - // 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same - // 4. this lets only the last addition to the timeout stack through - this.counter = this.counter ? ++this.counter : 1; - var self = this, counter = this.counter; - - window.setTimeout(function() { - if(counter == self.counter) self.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove - },0); - - }, - - _clear: function(event, noPropagation) { - - this.reverting = false; - // We delay all events that have to be triggered to after the point where the placeholder has been removed and - // everything else normalized again - var delayedTriggers = [], self = this; - - // We first have to update the dom position of the actual currentItem - // Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088) - if(!this._noFinalSort && this.currentItem[0].parentNode) this.placeholder.before(this.currentItem); - this._noFinalSort = null; - - if(this.helper[0] == this.currentItem[0]) { - for(var i in this._storedCSS) { - if(this._storedCSS[i] == 'auto' || this._storedCSS[i] == 'static') this._storedCSS[i] = ''; - } - this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); - } else { - this.currentItem.show(); - } - - if(this.fromOutside && !noPropagation) delayedTriggers.push(function(event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); }); - if((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !noPropagation) delayedTriggers.push(function(event) { this._trigger("update", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed - if(!$.ui.contains(this.element[0], this.currentItem[0])) { //Node was moved out of the current element - if(!noPropagation) delayedTriggers.push(function(event) { this._trigger("remove", event, this._uiHash()); }); - for (var i = this.containers.length - 1; i >= 0; i--){ - if($.ui.contains(this.containers[i].element[0], this.currentItem[0]) && !noPropagation) { - delayedTriggers.push((function(c) { return function(event) { c._trigger("receive", event, this._uiHash(this)); }; }).call(this, this.containers[i])); - delayedTriggers.push((function(c) { return function(event) { c._trigger("update", event, this._uiHash(this)); }; }).call(this, this.containers[i])); - } - }; - }; - - //Post events to containers - for (var i = this.containers.length - 1; i >= 0; i--){ - if(!noPropagation) delayedTriggers.push((function(c) { return function(event) { c._trigger("deactivate", event, this._uiHash(this)); }; }).call(this, this.containers[i])); - if(this.containers[i].containerCache.over) { - delayedTriggers.push((function(c) { return function(event) { c._trigger("out", event, this._uiHash(this)); }; }).call(this, this.containers[i])); - this.containers[i].containerCache.over = 0; - } - } - - //Do what was originally in plugins - if(this._storedCursor) $('body').css("cursor", this._storedCursor); //Reset cursor - if(this._storedOpacity) this.helper.css("opacity", this._storedOpacity); //Reset opacity - if(this._storedZIndex) this.helper.css("zIndex", this._storedZIndex == 'auto' ? '' : this._storedZIndex); //Reset z-index - - this.dragging = false; - if(this.cancelHelperRemoval) { - if(!noPropagation) { - this._trigger("beforeStop", event, this._uiHash()); - for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events - this._trigger("stop", event, this._uiHash()); - } - return false; - } - - if(!noPropagation) this._trigger("beforeStop", event, this._uiHash()); - - //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! - this.placeholder[0].parentNode.removeChild(this.placeholder[0]); - - if(this.helper[0] != this.currentItem[0]) this.helper.remove(); this.helper = null; - - if(!noPropagation) { - for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events - this._trigger("stop", event, this._uiHash()); - } - - this.fromOutside = false; - return true; - - }, - - _trigger: function() { - if ($.Widget.prototype._trigger.apply(this, arguments) === false) { - this.cancel(); - } - }, - - _uiHash: function(inst) { - var self = inst || this; - return { - helper: self.helper, - placeholder: self.placeholder || $([]), - position: self.position, - originalPosition: self.originalPosition, - offset: self.positionAbs, - item: self.currentItem, - sender: inst ? inst.element : null - }; - } - -}); - -$.extend($.ui.sortable, { - version: "1.8.9" -}); - -})(jQuery); diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.tabs.js b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.tabs.js deleted file mode 100755 index 1f04166..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.tabs.js +++ /dev/null @@ -1,759 +0,0 @@ -/* - * jQuery UI Tabs 1.8.16 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - */ -(function( $, undefined ) { - -var tabId = 0, - listId = 0; - -function getNextTabId() { - return ++tabId; -} - -function getNextListId() { - return ++listId; -} - -$.widget( "ui.tabs", { - options: { - add: null, - ajaxOptions: null, - cache: false, - cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true } - collapsible: false, - disable: null, - disabled: [], - enable: null, - event: "click", - fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 } - idPrefix: "ui-tabs-", - load: null, - panelTemplate: "
    ", - remove: null, - select: null, - show: null, - spinner: "Loading…", - tabTemplate: "
  • #{label}
  • " - }, - - _create: function() { - this._tabify( true ); - }, - - _setOption: function( key, value ) { - if ( key == "selected" ) { - if (this.options.collapsible && value == this.options.selected ) { - return; - } - this.select( value ); - } else { - this.options[ key ] = value; - this._tabify(); - } - }, - - _tabId: function( a ) { - return a.title && a.title.replace( /\s/g, "_" ).replace( /[^\w\u00c0-\uFFFF-]/g, "" ) || - this.options.idPrefix + getNextTabId(); - }, - - _sanitizeSelector: function( hash ) { - // we need this because an id may contain a ":" - return hash.replace( /:/g, "\\:" ); - }, - - _cookie: function() { - var cookie = this.cookie || - ( this.cookie = this.options.cookie.name || "ui-tabs-" + getNextListId() ); - return $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments ) ) ); - }, - - _ui: function( tab, panel ) { - return { - tab: tab, - panel: panel, - index: this.anchors.index( tab ) - }; - }, - - _cleanup: function() { - // restore all former loading tabs labels - this.lis.filter( ".ui-state-processing" ) - .removeClass( "ui-state-processing" ) - .find( "span:data(label.tabs)" ) - .each(function() { - var el = $( this ); - el.html( el.data( "label.tabs" ) ).removeData( "label.tabs" ); - }); - }, - - _tabify: function( init ) { - var self = this, - o = this.options, - fragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash - - this.list = this.element.find( "ol,ul" ).eq( 0 ); - this.lis = $( " > li:has(a[href])", this.list ); - this.anchors = this.lis.map(function() { - return $( "a", this )[ 0 ]; - }); - this.panels = $( [] ); - - this.anchors.each(function( i, a ) { - var href = $( a ).attr( "href" ); - // For dynamically created HTML that contains a hash as href IE < 8 expands - // such href to the full page url with hash and then misinterprets tab as ajax. - // Same consideration applies for an added tab with a fragment identifier - // since a[href=#fragment-identifier] does unexpectedly not match. - // Thus normalize href attribute... - var hrefBase = href.split( "#" )[ 0 ], - baseEl; - if ( hrefBase && ( hrefBase === location.toString().split( "#" )[ 0 ] || - ( baseEl = $( "base" )[ 0 ]) && hrefBase === baseEl.href ) ) { - href = a.hash; - a.href = href; - } - - // inline tab - if ( fragmentId.test( href ) ) { - self.panels = self.panels.add( self.element.find( self._sanitizeSelector( href ) ) ); - // remote tab - // prevent loading the page itself if href is just "#" - } else if ( href && href !== "#" ) { - // required for restore on destroy - $.data( a, "href.tabs", href ); - - // TODO until #3808 is fixed strip fragment identifier from url - // (IE fails to load from such url) - $.data( a, "load.tabs", href.replace( /#.*$/, "" ) ); - - var id = self._tabId( a ); - a.href = "#" + id; - var $panel = self.element.find( "#" + id ); - if ( !$panel.length ) { - $panel = $( o.panelTemplate ) - .attr( "id", id ) - .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) - .insertAfter( self.panels[ i - 1 ] || self.list ); - $panel.data( "destroy.tabs", true ); - } - self.panels = self.panels.add( $panel ); - // invalid tab href - } else { - o.disabled.push( i ); - } - }); - - // initialization from scratch - if ( init ) { - // attach necessary classes for styling - this.element.addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" ); - this.list.addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ); - this.lis.addClass( "ui-state-default ui-corner-top" ); - this.panels.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ); - - // Selected tab - // use "selected" option or try to retrieve: - // 1. from fragment identifier in url - // 2. from cookie - // 3. from selected class attribute on
  • - if ( o.selected === undefined ) { - if ( location.hash ) { - this.anchors.each(function( i, a ) { - if ( a.hash == location.hash ) { - o.selected = i; - return false; - } - }); - } - if ( typeof o.selected !== "number" && o.cookie ) { - o.selected = parseInt( self._cookie(), 10 ); - } - if ( typeof o.selected !== "number" && this.lis.filter( ".ui-tabs-selected" ).length ) { - o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) ); - } - o.selected = o.selected || ( this.lis.length ? 0 : -1 ); - } else if ( o.selected === null ) { // usage of null is deprecated, TODO remove in next release - o.selected = -1; - } - - // sanity check - default to first tab... - o.selected = ( ( o.selected >= 0 && this.anchors[ o.selected ] ) || o.selected < 0 ) - ? o.selected - : 0; - - // Take disabling tabs via class attribute from HTML - // into account and update option properly. - // A selected tab cannot become disabled. - o.disabled = $.unique( o.disabled.concat( - $.map( this.lis.filter( ".ui-state-disabled" ), function( n, i ) { - return self.lis.index( n ); - }) - ) ).sort(); - - if ( $.inArray( o.selected, o.disabled ) != -1 ) { - o.disabled.splice( $.inArray( o.selected, o.disabled ), 1 ); - } - - // highlight selected tab - this.panels.addClass( "ui-tabs-hide" ); - this.lis.removeClass( "ui-tabs-selected ui-state-active" ); - // check for length avoids error when initializing empty list - if ( o.selected >= 0 && this.anchors.length ) { - self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) ).removeClass( "ui-tabs-hide" ); - this.lis.eq( o.selected ).addClass( "ui-tabs-selected ui-state-active" ); - - // seems to be expected behavior that the show callback is fired - self.element.queue( "tabs", function() { - self._trigger( "show", null, - self._ui( self.anchors[ o.selected ], self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) )[ 0 ] ) ); - }); - - this.load( o.selected ); - } - - // clean up to avoid memory leaks in certain versions of IE 6 - // TODO: namespace this event - $( window ).bind( "unload", function() { - self.lis.add( self.anchors ).unbind( ".tabs" ); - self.lis = self.anchors = self.panels = null; - }); - // update selected after add/remove - } else { - o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) ); - } - - // update collapsible - // TODO: use .toggleClass() - this.element[ o.collapsible ? "addClass" : "removeClass" ]( "ui-tabs-collapsible" ); - - // set or update cookie after init and add/remove respectively - if ( o.cookie ) { - this._cookie( o.selected, o.cookie ); - } - - // disable tabs - for ( var i = 0, li; ( li = this.lis[ i ] ); i++ ) { - $( li )[ $.inArray( i, o.disabled ) != -1 && - // TODO: use .toggleClass() - !$( li ).hasClass( "ui-tabs-selected" ) ? "addClass" : "removeClass" ]( "ui-state-disabled" ); - } - - // reset cache if switching from cached to not cached - if ( o.cache === false ) { - this.anchors.removeData( "cache.tabs" ); - } - - // remove all handlers before, tabify may run on existing tabs after add or option change - this.lis.add( this.anchors ).unbind( ".tabs" ); - - if ( o.event !== "mouseover" ) { - var addState = function( state, el ) { - if ( el.is( ":not(.ui-state-disabled)" ) ) { - el.addClass( "ui-state-" + state ); - } - }; - var removeState = function( state, el ) { - el.removeClass( "ui-state-" + state ); - }; - this.lis.bind( "mouseover.tabs" , function() { - addState( "hover", $( this ) ); - }); - this.lis.bind( "mouseout.tabs", function() { - removeState( "hover", $( this ) ); - }); - this.anchors.bind( "focus.tabs", function() { - addState( "focus", $( this ).closest( "li" ) ); - }); - this.anchors.bind( "blur.tabs", function() { - removeState( "focus", $( this ).closest( "li" ) ); - }); - } - - // set up animations - var hideFx, showFx; - if ( o.fx ) { - if ( $.isArray( o.fx ) ) { - hideFx = o.fx[ 0 ]; - showFx = o.fx[ 1 ]; - } else { - hideFx = showFx = o.fx; - } - } - - // Reset certain styles left over from animation - // and prevent IE's ClearType bug... - function resetStyle( $el, fx ) { - $el.css( "display", "" ); - if ( !$.support.opacity && fx.opacity ) { - $el[ 0 ].style.removeAttribute( "filter" ); - } - } - - // Show a tab... - var showTab = showFx - ? function( clicked, $show ) { - $( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" ); - $show.hide().removeClass( "ui-tabs-hide" ) // avoid flicker that way - .animate( showFx, showFx.duration || "normal", function() { - resetStyle( $show, showFx ); - self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) ); - }); - } - : function( clicked, $show ) { - $( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" ); - $show.removeClass( "ui-tabs-hide" ); - self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) ); - }; - - // Hide a tab, $show is optional... - var hideTab = hideFx - ? function( clicked, $hide ) { - $hide.animate( hideFx, hideFx.duration || "normal", function() { - self.lis.removeClass( "ui-tabs-selected ui-state-active" ); - $hide.addClass( "ui-tabs-hide" ); - resetStyle( $hide, hideFx ); - self.element.dequeue( "tabs" ); - }); - } - : function( clicked, $hide, $show ) { - self.lis.removeClass( "ui-tabs-selected ui-state-active" ); - $hide.addClass( "ui-tabs-hide" ); - self.element.dequeue( "tabs" ); - }; - - // attach tab event handler, unbind to avoid duplicates from former tabifying... - this.anchors.bind( o.event + ".tabs", function() { - var el = this, - $li = $(el).closest( "li" ), - $hide = self.panels.filter( ":not(.ui-tabs-hide)" ), - $show = self.element.find( self._sanitizeSelector( el.hash ) ); - - // If tab is already selected and not collapsible or tab disabled or - // or is already loading or click callback returns false stop here. - // Check if click handler returns false last so that it is not executed - // for a disabled or loading tab! - if ( ( $li.hasClass( "ui-tabs-selected" ) && !o.collapsible) || - $li.hasClass( "ui-state-disabled" ) || - $li.hasClass( "ui-state-processing" ) || - self.panels.filter( ":animated" ).length || - self._trigger( "select", null, self._ui( this, $show[ 0 ] ) ) === false ) { - this.blur(); - return false; - } - - o.selected = self.anchors.index( this ); - - self.abort(); - - // if tab may be closed - if ( o.collapsible ) { - if ( $li.hasClass( "ui-tabs-selected" ) ) { - o.selected = -1; - - if ( o.cookie ) { - self._cookie( o.selected, o.cookie ); - } - - self.element.queue( "tabs", function() { - hideTab( el, $hide ); - }).dequeue( "tabs" ); - - this.blur(); - return false; - } else if ( !$hide.length ) { - if ( o.cookie ) { - self._cookie( o.selected, o.cookie ); - } - - self.element.queue( "tabs", function() { - showTab( el, $show ); - }); - - // TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171 - self.load( self.anchors.index( this ) ); - - this.blur(); - return false; - } - } - - if ( o.cookie ) { - self._cookie( o.selected, o.cookie ); - } - - // show new tab - if ( $show.length ) { - if ( $hide.length ) { - self.element.queue( "tabs", function() { - hideTab( el, $hide ); - }); - } - self.element.queue( "tabs", function() { - showTab( el, $show ); - }); - - self.load( self.anchors.index( this ) ); - } else { - throw "jQuery UI Tabs: Mismatching fragment identifier."; - } - - // Prevent IE from keeping other link focussed when using the back button - // and remove dotted border from clicked link. This is controlled via CSS - // in modern browsers; blur() removes focus from address bar in Firefox - // which can become a usability and annoying problem with tabs('rotate'). - if ( $.browser.msie ) { - this.blur(); - } - }); - - // disable click in any case - this.anchors.bind( "click.tabs", function(){ - return false; - }); - }, - - _getIndex: function( index ) { - // meta-function to give users option to provide a href string instead of a numerical index. - // also sanitizes numerical indexes to valid values. - if ( typeof index == "string" ) { - index = this.anchors.index( this.anchors.filter( "[href$=" + index + "]" ) ); - } - - return index; - }, - - destroy: function() { - var o = this.options; - - this.abort(); - - this.element - .unbind( ".tabs" ) - .removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" ) - .removeData( "tabs" ); - - this.list.removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ); - - this.anchors.each(function() { - var href = $.data( this, "href.tabs" ); - if ( href ) { - this.href = href; - } - var $this = $( this ).unbind( ".tabs" ); - $.each( [ "href", "load", "cache" ], function( i, prefix ) { - $this.removeData( prefix + ".tabs" ); - }); - }); - - this.lis.unbind( ".tabs" ).add( this.panels ).each(function() { - if ( $.data( this, "destroy.tabs" ) ) { - $( this ).remove(); - } else { - $( this ).removeClass([ - "ui-state-default", - "ui-corner-top", - "ui-tabs-selected", - "ui-state-active", - "ui-state-hover", - "ui-state-focus", - "ui-state-disabled", - "ui-tabs-panel", - "ui-widget-content", - "ui-corner-bottom", - "ui-tabs-hide" - ].join( " " ) ); - } - }); - - if ( o.cookie ) { - this._cookie( null, o.cookie ); - } - - return this; - }, - - add: function( url, label, index ) { - if ( index === undefined ) { - index = this.anchors.length; - } - - var self = this, - o = this.options, - $li = $( o.tabTemplate.replace( /#\{href\}/g, url ).replace( /#\{label\}/g, label ) ), - id = !url.indexOf( "#" ) ? url.replace( "#", "" ) : this._tabId( $( "a", $li )[ 0 ] ); - - $li.addClass( "ui-state-default ui-corner-top" ).data( "destroy.tabs", true ); - - // try to find an existing element before creating a new one - var $panel = self.element.find( "#" + id ); - if ( !$panel.length ) { - $panel = $( o.panelTemplate ) - .attr( "id", id ) - .data( "destroy.tabs", true ); - } - $panel.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" ); - - if ( index >= this.lis.length ) { - $li.appendTo( this.list ); - $panel.appendTo( this.list[ 0 ].parentNode ); - } else { - $li.insertBefore( this.lis[ index ] ); - $panel.insertBefore( this.panels[ index ] ); - } - - o.disabled = $.map( o.disabled, function( n, i ) { - return n >= index ? ++n : n; - }); - - this._tabify(); - - if ( this.anchors.length == 1 ) { - o.selected = 0; - $li.addClass( "ui-tabs-selected ui-state-active" ); - $panel.removeClass( "ui-tabs-hide" ); - this.element.queue( "tabs", function() { - self._trigger( "show", null, self._ui( self.anchors[ 0 ], self.panels[ 0 ] ) ); - }); - - this.load( 0 ); - } - - this._trigger( "add", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); - return this; - }, - - remove: function( index ) { - index = this._getIndex( index ); - var o = this.options, - $li = this.lis.eq( index ).remove(), - $panel = this.panels.eq( index ).remove(); - - // If selected tab was removed focus tab to the right or - // in case the last tab was removed the tab to the left. - if ( $li.hasClass( "ui-tabs-selected" ) && this.anchors.length > 1) { - this.select( index + ( index + 1 < this.anchors.length ? 1 : -1 ) ); - } - - o.disabled = $.map( - $.grep( o.disabled, function(n, i) { - return n != index; - }), - function( n, i ) { - return n >= index ? --n : n; - }); - - this._tabify(); - - this._trigger( "remove", null, this._ui( $li.find( "a" )[ 0 ], $panel[ 0 ] ) ); - return this; - }, - - enable: function( index ) { - index = this._getIndex( index ); - var o = this.options; - if ( $.inArray( index, o.disabled ) == -1 ) { - return; - } - - this.lis.eq( index ).removeClass( "ui-state-disabled" ); - o.disabled = $.grep( o.disabled, function( n, i ) { - return n != index; - }); - - this._trigger( "enable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); - return this; - }, - - disable: function( index ) { - index = this._getIndex( index ); - var self = this, o = this.options; - // cannot disable already selected tab - if ( index != o.selected ) { - this.lis.eq( index ).addClass( "ui-state-disabled" ); - - o.disabled.push( index ); - o.disabled.sort(); - - this._trigger( "disable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); - } - - return this; - }, - - select: function( index ) { - index = this._getIndex( index ); - if ( index == -1 ) { - if ( this.options.collapsible && this.options.selected != -1 ) { - index = this.options.selected; - } else { - return this; - } - } - this.anchors.eq( index ).trigger( this.options.event + ".tabs" ); - return this; - }, - - load: function( index ) { - index = this._getIndex( index ); - var self = this, - o = this.options, - a = this.anchors.eq( index )[ 0 ], - url = $.data( a, "load.tabs" ); - - this.abort(); - - // not remote or from cache - if ( !url || this.element.queue( "tabs" ).length !== 0 && $.data( a, "cache.tabs" ) ) { - this.element.dequeue( "tabs" ); - return; - } - - // load remote from here on - this.lis.eq( index ).addClass( "ui-state-processing" ); - - if ( o.spinner ) { - var span = $( "span", a ); - span.data( "label.tabs", span.html() ).html( o.spinner ); - } - - this.xhr = $.ajax( $.extend( {}, o.ajaxOptions, { - url: url, - success: function( r, s ) { - self.element.find( self._sanitizeSelector( a.hash ) ).html( r ); - - // take care of tab labels - self._cleanup(); - - if ( o.cache ) { - $.data( a, "cache.tabs", true ); - } - - self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) ); - try { - o.ajaxOptions.success( r, s ); - } - catch ( e ) {} - }, - error: function( xhr, s, e ) { - // take care of tab labels - self._cleanup(); - - self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) ); - try { - // Passing index avoid a race condition when this method is - // called after the user has selected another tab. - // Pass the anchor that initiated this request allows - // loadError to manipulate the tab content panel via $(a.hash) - o.ajaxOptions.error( xhr, s, index, a ); - } - catch ( e ) {} - } - } ) ); - - // last, so that load event is fired before show... - self.element.dequeue( "tabs" ); - - return this; - }, - - abort: function() { - // stop possibly running animations - this.element.queue( [] ); - this.panels.stop( false, true ); - - // "tabs" queue must not contain more than two elements, - // which are the callbacks for the latest clicked tab... - this.element.queue( "tabs", this.element.queue( "tabs" ).splice( -2, 2 ) ); - - // terminate pending requests from other tabs - if ( this.xhr ) { - this.xhr.abort(); - delete this.xhr; - } - - // take care of tab labels - this._cleanup(); - return this; - }, - - url: function( index, url ) { - this.anchors.eq( index ).removeData( "cache.tabs" ).data( "load.tabs", url ); - return this; - }, - - length: function() { - return this.anchors.length; - } -}); - -$.extend( $.ui.tabs, { - version: "1.8.16" -}); - -/* - * Tabs Extensions - */ - -/* - * Rotate - */ -$.extend( $.ui.tabs.prototype, { - rotation: null, - rotate: function( ms, continuing ) { - var self = this, - o = this.options; - - var rotate = self._rotate || ( self._rotate = function( e ) { - clearTimeout( self.rotation ); - self.rotation = setTimeout(function() { - var t = o.selected; - self.select( ++t < self.anchors.length ? t : 0 ); - }, ms ); - - if ( e ) { - e.stopPropagation(); - } - }); - - var stop = self._unrotate || ( self._unrotate = !continuing - ? function(e) { - if (e.clientX) { // in case of a true click - self.rotate(null); - } - } - : function( e ) { - t = o.selected; - rotate(); - }); - - // start rotation - if ( ms ) { - this.element.bind( "tabsshow", rotate ); - this.anchors.bind( o.event + ".tabs", stop ); - rotate(); - // stop rotation - } else { - clearTimeout( self.rotation ); - this.element.unbind( "tabsshow", rotate ); - this.anchors.unbind( o.event + ".tabs", stop ); - delete this._rotate; - delete this._unrotate; - } - - return this; - } -}); - -})( jQuery ); - diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.widget.js b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.widget.js deleted file mode 100755 index ef5bcd9..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery.ui/plugins/jquery.ui.widget.js +++ /dev/null @@ -1,262 +0,0 @@ -/*! - * jQuery UI Widget 1.8.9 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Widget - */ -(function( $, undefined ) { - -// jQuery 1.4+ -if ( $.cleanData ) { - var _cleanData = $.cleanData; - $.cleanData = function( elems ) { - for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { - $( elem ).triggerHandler( "remove" ); - } - _cleanData( elems ); - }; -} else { - var _remove = $.fn.remove; - $.fn.remove = function( selector, keepData ) { - return this.each(function() { - if ( !keepData ) { - if ( !selector || $.filter( selector, [ this ] ).length ) { - $( "*", this ).add( [ this ] ).each(function() { - $( this ).triggerHandler( "remove" ); - }); - } - } - return _remove.call( $(this), selector, keepData ); - }); - }; -} - -$.widget = function( name, base, prototype ) { - var namespace = name.split( "." )[ 0 ], - fullName; - name = name.split( "." )[ 1 ]; - fullName = namespace + "-" + name; - - if ( !prototype ) { - prototype = base; - base = $.Widget; - } - - // create selector for plugin - $.expr[ ":" ][ fullName ] = function( elem ) { - return !!$.data( elem, name ); - }; - - $[ namespace ] = $[ namespace ] || {}; - $[ namespace ][ name ] = function( options, element ) { - // allow instantiation without initializing for simple inheritance - if ( arguments.length ) { - this._createWidget( options, element ); - } - }; - - var basePrototype = new base(); - // we need to make the options hash a property directly on the new instance - // otherwise we'll modify the options hash on the prototype that we're - // inheriting from -// $.each( basePrototype, function( key, val ) { -// if ( $.isPlainObject(val) ) { -// basePrototype[ key ] = $.extend( {}, val ); -// } -// }); - basePrototype.options = $.extend( true, {}, basePrototype.options ); - $[ namespace ][ name ].prototype = $.extend( true, basePrototype, { - namespace: namespace, - widgetName: name, - widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name, - widgetBaseClass: fullName - }, prototype ); - - $.widget.bridge( name, $[ namespace ][ name ] ); -}; - -$.widget.bridge = function( name, object ) { - $.fn[ name ] = function( options ) { - var isMethodCall = typeof options === "string", - args = Array.prototype.slice.call( arguments, 1 ), - returnValue = this; - - // allow multiple hashes to be passed on init - options = !isMethodCall && args.length ? - $.extend.apply( null, [ true, options ].concat(args) ) : - options; - - // prevent calls to internal methods - if ( isMethodCall && options.charAt( 0 ) === "_" ) { - return returnValue; - } - - if ( isMethodCall ) { - this.each(function() { - var instance = $.data( this, name ), - methodValue = instance && $.isFunction( instance[options] ) ? - instance[ options ].apply( instance, args ) : - instance; - // TODO: add this back in 1.9 and use $.error() (see #5972) -// if ( !instance ) { -// throw "cannot call methods on " + name + " prior to initialization; " + -// "attempted to call method '" + options + "'"; -// } -// if ( !$.isFunction( instance[options] ) ) { -// throw "no such method '" + options + "' for " + name + " widget instance"; -// } -// var methodValue = instance[ options ].apply( instance, args ); - if ( methodValue !== instance && methodValue !== undefined ) { - returnValue = methodValue; - return false; - } - }); - } else { - this.each(function() { - var instance = $.data( this, name ); - if ( instance ) { - instance.option( options || {} )._init(); - } else { - $.data( this, name, new object( options, this ) ); - } - }); - } - - return returnValue; - }; -}; - -$.Widget = function( options, element ) { - // allow instantiation without initializing for simple inheritance - if ( arguments.length ) { - this._createWidget( options, element ); - } -}; - -$.Widget.prototype = { - widgetName: "widget", - widgetEventPrefix: "", - options: { - disabled: false - }, - _createWidget: function( options, element ) { - // $.widget.bridge stores the plugin instance, but we do it anyway - // so that it's stored even before the _create function runs - $.data( element, this.widgetName, this ); - this.element = $( element ); - this.options = $.extend( true, {}, - this.options, - this._getCreateOptions(), - options ); - - var self = this; - this.element.bind( "remove." + this.widgetName, function() { - self.destroy(); - }); - - this._create(); - this._trigger( "create" ); - this._init(); - }, - _getCreateOptions: function() { - return $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ]; - }, - _create: function() {}, - _init: function() {}, - - destroy: function() { - this.element - .unbind( "." + this.widgetName ) - .removeData( this.widgetName ); - this.widget() - .unbind( "." + this.widgetName ) - .removeAttr( "aria-disabled" ) - .removeClass( - this.widgetBaseClass + "-disabled " + - "ui-state-disabled" ); - }, - - widget: function() { - return this.element; - }, - - option: function( key, value ) { - var options = key; - - if ( arguments.length === 0 ) { - // don't return a reference to the internal hash - return $.extend( {}, this.options ); - } - - if (typeof key === "string" ) { - if ( value === undefined ) { - return this.options[ key ]; - } - options = {}; - options[ key ] = value; - } - - this._setOptions( options ); - - return this; - }, - _setOptions: function( options ) { - var self = this; - $.each( options, function( key, value ) { - self._setOption( key, value ); - }); - - return this; - }, - _setOption: function( key, value ) { - this.options[ key ] = value; - - if ( key === "disabled" ) { - this.widget() - [ value ? "addClass" : "removeClass"]( - this.widgetBaseClass + "-disabled" + " " + - "ui-state-disabled" ) - .attr( "aria-disabled", value ); - } - - return this; - }, - - enable: function() { - return this._setOption( "disabled", false ); - }, - disable: function() { - return this._setOption( "disabled", true ); - }, - - _trigger: function( type, event, data ) { - var callback = this.options[ type ]; - - event = $.Event( event ); - event.type = ( type === this.widgetEventPrefix ? - type : - this.widgetEventPrefix + type ).toLowerCase(); - data = data || {}; - - // copy original event properties over to the new event - // this would happen if we could call $.event.fix instead of $.Event - // but we don't have a way to force an event to be fixed multiple times - if ( event.originalEvent ) { - for ( var i = $.event.props.length, prop; i; ) { - prop = $.event.props[ --i ]; - event[ prop ] = event.originalEvent[ prop ]; - } - } - - this.element.trigger( event, data ); - - return !( $.isFunction(callback) && - callback.call( this.element[0], event, data ) === false || - event.isDefaultPrevented() ); - } -}; - -})( jQuery ); diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/datepicker.css b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/datepicker.css deleted file mode 100755 index f0a242b..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/datepicker.css +++ /dev/null @@ -1,63 +0,0 @@ -/* Datepicker -----------------------------------*/ -.ui-datepicker { width: 17em; padding: .2em .2em 0; } -.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } -.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } -.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } -.ui-datepicker .ui-datepicker-prev { left:2px; } -.ui-datepicker .ui-datepicker-next { right:2px; } -.ui-datepicker .ui-datepicker-prev-hover { left:1px; } -.ui-datepicker .ui-datepicker-next-hover { right:1px; } -.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } -.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } -.ui-datepicker .ui-datepicker-title select { float:left; font-size:1em; margin:1px 0; } -.ui-datepicker select.ui-datepicker-month-year {width: 100%;} -.ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { width: 49%;} -.ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: right; } -.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } -.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } -.ui-datepicker td { border: 0; padding: 1px; } -.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } -.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } -.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } -.ui-datepicker-week-col { color: #60ae56; font-size: 0.7em; } - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { width:auto; } -.ui-datepicker-multi .ui-datepicker-group { float:left; } -.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } -.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } -.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } -.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } -.ui-datepicker-row-break { clear:both; width:100%; } - -/* RTL support */ -.ui-datepicker-rtl { direction: rtl; } -.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } -.ui-datepicker-rtl .ui-datepicker-group { float:right; } -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } - -/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ -.ui-datepicker-cover { - display: none; /*sorry for IE5*/ - display/**/: block; /*sorry for IE5*/ - position: absolute; /*must have*/ - z-index: -1; /*must have*/ - filter: mask(); /*must have*/ - top: -4px; /*must have*/ - left: -4px; /*must have*/ - width: 200px; /*must have*/ - height: 200px; /*must have*/ -} diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/fullcalendar.css b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/fullcalendar.css deleted file mode 100755 index 28a1d17..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/fullcalendar.css +++ /dev/null @@ -1,618 +0,0 @@ -/* - * FullCalendar v1.5.2 Stylesheet - * - * Copyright (c) 2011 Adam Shaw - * Dual licensed under the MIT and GPL licenses, located in - * MIT-LICENSE.txt and GPL-LICENSE.txt respectively. - * - * Date: Sun Aug 21 22:06:09 2011 -0700 - * - */ - - -.fc { - direction: ltr; - text-align: left; - } - -.fc table { - border-collapse: collapse; - border-spacing: 0; - } - -html .fc, -.fc table { - font-size: 1em; - } - -.fc td, -.fc th { - padding: 0; - vertical-align: top; - } - - - -/* Header -------------------------------------------------------------------------*/ - -.fc-header td { - white-space: nowrap; - } - -.fc-header-left { - width: 25%; - text-align: left; - } - -.fc-header-center { - text-align: center; - } - -.fc-header-right { - width: 25%; - text-align: right; - } - -.fc-header-title { - display: inline-block; - vertical-align: top; - } - -.fc-header-title h2 { - margin-top: 0; - white-space: nowrap; - } - -.fc .fc-header-space { - padding-left: 10px; - } - -.fc-header .fc-button { - margin-bottom: 1em; - vertical-align: top; - } - -/* buttons edges butting together */ - -.fc-header .fc-button { - margin-right: -1px; - } - -.fc-header .fc-corner-right { - margin-right: 1px; /* back to normal */ - } - -.fc-header .ui-corner-right { - margin-right: 0; /* back to normal */ - } - -/* button layering (for border precedence) */ - -.fc-header .fc-state-hover, -.fc-header .ui-state-hover { - z-index: 2; - } - -.fc-header .fc-state-down { - z-index: 3; - } - -.fc-header .fc-state-active, -.fc-header .ui-state-active { - z-index: 4; - } - - - -/* Content -------------------------------------------------------------------------*/ - -.fc-content { - clear: both; - } - -.fc-view { - width: 100%; /* needed for view switching (when view is absolute) */ - overflow: hidden; - } - - - -/* Cell Styles -------------------------------------------------------------------------*/ - -.fc-widget-header, /* , usually */ -.fc-widget-content { /* , usually */ - border: 1px solid #ccc; - } - -.fc-state-highlight { /* today cell */ /* TODO: add .fc-today to */ - background: #ffc; - } - -.fc-cell-overlay { /* semi-transparent rectangle while dragging */ - background: #9cf; - opacity: .2; - filter: alpha(opacity=20); /* for IE */ - } - - - -/* Buttons -------------------------------------------------------------------------*/ - -.fc-button { - position: relative; - display: inline-block; - cursor: pointer; - } - -.fc-state-default { /* non-theme */ - border-style: solid; - border-width: 1px 0; - } - -.fc-button-inner { - position: relative; - float: left; - overflow: hidden; - } - -.fc-state-default .fc-button-inner { /* non-theme */ - border-style: solid; - border-width: 0 1px; - } - -.fc-button-content { - position: relative; - float: left; - height: 1.9em; - line-height: 1.9em; - padding: 0 .6em; - white-space: nowrap; - } - -/* icon (for jquery ui) */ - -.fc-button-content .fc-icon-wrap { - position: relative; - float: left; - top: 50%; - } - -.fc-button-content .ui-icon { - position: relative; - float: left; - margin-top: -50%; - *margin-top: 0; - *top: -50%; - } - -/* gloss effect */ - -.fc-state-default .fc-button-effect { - position: absolute; - top: 50%; - left: 0; - } - -.fc-state-default .fc-button-effect span { - position: absolute; - top: -100px; - left: 0; - width: 500px; - height: 100px; - border-width: 100px 0 0 1px; - border-style: solid; - border-color: #fff; - background: #444; - opacity: .09; - filter: alpha(opacity=9); - } - -/* button states (determines colors) */ - -.fc-state-default, -.fc-state-default .fc-button-inner { - border-style: solid; - border-color: #ccc #bbb #aaa; - background: #F3F3F3; - color: #000; - } - -.fc-state-hover, -.fc-state-hover .fc-button-inner { - border-color: #999; - } - -.fc-state-down, -.fc-state-down .fc-button-inner { - border-color: #555; - background: #777; - } - -.fc-state-active, -.fc-state-active .fc-button-inner { - border-color: #555; - background: #777; - color: #fff; - } - -.fc-state-disabled, -.fc-state-disabled .fc-button-inner { - color: #999; - border-color: #ddd; - } - -.fc-state-disabled { - cursor: default; - } - -.fc-state-disabled .fc-button-effect { - display: none; - } - - - -/* Global Event Styles -------------------------------------------------------------------------*/ - -.fc-event { - border-style: solid; - border-width: 0; - font-size: .85em; - cursor: default; - } - -a.fc-event, -.fc-event-draggable { - cursor: pointer; - } - -a.fc-event { - text-decoration: none; - } - -.fc-rtl .fc-event { - text-align: right; - } - -.fc-event-skin { - border-color: #36c; /* default BORDER color */ - background-color: #36c; /* default BACKGROUND color */ - color: #fff; /* default TEXT color */ - } - -.fc-event-inner { - position: relative; - width: 100%; - height: 100%; - border-style: solid; - border-width: 0; - overflow: hidden; - } - -.fc-event-time, -.fc-event-title { - padding: 0 1px; - } - -.fc .ui-resizable-handle { /*** TODO: don't use ui-resizable anymore, change class ***/ - display: block; - position: absolute; - z-index: 99999; - overflow: hidden; /* hacky spaces (IE6/7) */ - font-size: 300%; /* */ - line-height: 50%; /* */ - } - - - -/* Horizontal Events -------------------------------------------------------------------------*/ - -.fc-event-hori { - border-width: 1px 0; - margin-bottom: 1px; - } - -/* resizable */ - -.fc-event-hori .ui-resizable-e { - top: 0 !important; /* importants override pre jquery ui 1.7 styles */ - right: -3px !important; - width: 7px !important; - height: 100% !important; - cursor: e-resize; - } - -.fc-event-hori .ui-resizable-w { - top: 0 !important; - left: -3px !important; - width: 7px !important; - height: 100% !important; - cursor: w-resize; - } - -.fc-event-hori .ui-resizable-handle { - _padding-bottom: 14px; /* IE6 had 0 height */ - } - - - -/* Fake Rounded Corners (for buttons and events) -------------------------------------------------------------*/ - -.fc-corner-left { - margin-left: 1px; - } - -.fc-corner-left .fc-button-inner, -.fc-corner-left .fc-event-inner { - margin-left: -1px; - } - -.fc-corner-right { - margin-right: 1px; - } - -.fc-corner-right .fc-button-inner, -.fc-corner-right .fc-event-inner { - margin-right: -1px; - } - -.fc-corner-top { - margin-top: 1px; - } - -.fc-corner-top .fc-event-inner { - margin-top: -1px; - } - -.fc-corner-bottom { - margin-bottom: 1px; - } - -.fc-corner-bottom .fc-event-inner { - margin-bottom: -1px; - } - - - -/* Fake Rounded Corners SPECIFICALLY FOR EVENTS ------------------------------------------------------------------*/ - -.fc-corner-left .fc-event-inner { - border-left-width: 1px; - } - -.fc-corner-right .fc-event-inner { - border-right-width: 1px; - } - -.fc-corner-top .fc-event-inner { - border-top-width: 1px; - } - -.fc-corner-bottom .fc-event-inner { - border-bottom-width: 1px; - } - - - -/* Reusable Separate-border Table -------------------------------------------------------------*/ - -table.fc-border-separate { - border-collapse: separate; - } - -.fc-border-separate th, -.fc-border-separate td { - border-width: 1px 0 0 1px; - } - -.fc-border-separate th.fc-last, -.fc-border-separate td.fc-last { - border-right-width: 1px; - } - -.fc-border-separate tr.fc-last th, -.fc-border-separate tr.fc-last td { - border-bottom-width: 1px; - } - -.fc-border-separate tbody tr.fc-first td, -.fc-border-separate tbody tr.fc-first th { - border-top-width: 0; - } - - - -/* Month View, Basic Week View, Basic Day View -------------------------------------------------------------------------*/ - -.fc-grid th { - text-align: center; - } - -.fc-grid .fc-day-number { - float: right; - padding: 0 2px; - } - -.fc-grid .fc-other-month .fc-day-number { - opacity: 0.3; - filter: alpha(opacity=30); /* for IE */ - /* opacity with small font can sometimes look too faded - might want to set the 'color' property instead - making day-numbers bold also fixes the problem */ - } - -.fc-grid .fc-day-content { - clear: both; - padding: 2px 2px 1px; /* distance between events and day edges */ - } - -/* event styles */ - -.fc-grid .fc-event-time { - font-weight: bold; - } - -/* right-to-left */ - -.fc-rtl .fc-grid .fc-day-number { - float: left; - } - -.fc-rtl .fc-grid .fc-event-time { - float: right; - } - - - -/* Agenda Week View, Agenda Day View -------------------------------------------------------------------------*/ - -.fc-agenda table { - border-collapse: separate; - } - -.fc-agenda-days th { - text-align: center; - } - -.fc-agenda .fc-agenda-axis { - width: 50px; - padding: 0 4px; - vertical-align: middle; - text-align: right; - white-space: nowrap; - font-weight: normal; - } - -.fc-agenda .fc-day-content { - padding: 2px 2px 1px; - } - -/* make axis border take precedence */ - -.fc-agenda-days .fc-agenda-axis { - border-right-width: 1px; - } - -.fc-agenda-days .fc-col0 { - border-left-width: 0; - } - -/* all-day area */ - -.fc-agenda-allday th { - border-width: 0 1px; - } - -.fc-agenda-allday .fc-day-content { - min-height: 34px; /* TODO: doesnt work well in quirksmode */ - _height: 34px; - } - -/* divider (between all-day and slots) */ - -.fc-agenda-divider-inner { - height: 2px; - overflow: hidden; - } - -.fc-widget-header .fc-agenda-divider-inner { - background: #eee; - } - -/* slot rows */ - -.fc-agenda-slots th { - border-width: 1px 1px 0; - } - -.fc-agenda-slots td { - border-width: 1px 0 0; - background: none; - } - -.fc-agenda-slots td div { - height: 20px; - } - -.fc-agenda-slots tr.fc-slot0 th, -.fc-agenda-slots tr.fc-slot0 td { - border-top-width: 0; - } - -.fc-agenda-slots tr.fc-minor th, -.fc-agenda-slots tr.fc-minor td { - border-top-style: dotted; - } - -.fc-agenda-slots tr.fc-minor th.ui-widget-header { - *border-top-style: solid; /* doesn't work with background in IE6/7 */ - } - - - -/* Vertical Events -------------------------------------------------------------------------*/ - -.fc-event-vert { - border-width: 0 1px; - } - -.fc-event-vert .fc-event-head, -.fc-event-vert .fc-event-content { - position: relative; - z-index: 2; - width: 100%; - overflow: hidden; - } - -.fc-event-vert .fc-event-time { - white-space: nowrap; - font-size: 10px; - } - -.fc-event-vert .fc-event-bg { /* makes the event lighter w/ a semi-transparent overlay */ - position: absolute; - z-index: 1; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: #fff; - opacity: .3; - filter: alpha(opacity=30); - } - -.fc .ui-draggable-dragging .fc-event-bg, /* TODO: something nicer like .fc-opacity */ -.fc-select-helper .fc-event-bg { - display: none\9; /* for IE6/7/8. nested opacity filters while dragging don't work */ - } - -/* resizable */ - -.fc-event-vert .ui-resizable-s { - bottom: 0 !important; /* importants override pre jquery ui 1.7 styles */ - width: 100% !important; - height: 8px !important; - overflow: hidden !important; - line-height: 8px !important; - font-size: 11px !important; - font-family: monospace; - text-align: center; - cursor: s-resize; - } - -.fc-agenda .ui-resizable-resizing { /* TODO: better selector */ - _overflow: hidden; - } - - diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/fullcalendar.print.css b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/fullcalendar.print.css deleted file mode 100755 index c55f253..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/fullcalendar.print.css +++ /dev/null @@ -1,61 +0,0 @@ -/* - * FullCalendar v1.5.2 Print Stylesheet - * - * Include this stylesheet on your page to get a more printer-friendly calendar. - * When including this stylesheet, use the media='print' attribute of the tag. - * Make sure to include this stylesheet IN ADDITION to the regular fullcalendar.css. - * - * Copyright (c) 2011 Adam Shaw - * Dual licensed under the MIT and GPL licenses, located in - * MIT-LICENSE.txt and GPL-LICENSE.txt respectively. - * - * Date: Sun Aug 21 22:06:09 2011 -0700 - * - */ - - - /* Events ------------------------------------------------------*/ - -.fc-event-skin { - background: none !important; - color: #000 !important; - } - -/* horizontal events */ - -.fc-event-hori { - border-width: 0 0 1px 0 !important; - border-bottom-style: dotted !important; - border-bottom-color: #000 !important; - padding: 1px 0 0 0 !important; - } - -.fc-event-hori .fc-event-inner { - border-width: 0 !important; - padding: 0 1px !important; - } - -/* vertical events */ - -.fc-event-vert { - border-width: 0 0 0 1px !important; - border-left-style: dotted !important; - border-left-color: #000 !important; - padding: 0 1px 0 0 !important; - } - -.fc-event-vert .fc-event-inner { - border-width: 0 !important; - padding: 1px 0 !important; - } - -.fc-event-bg { - display: none !important; - } - -.fc-event .ui-resizable-handle { - display: none !important; - } - - diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/custom_b.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/custom_b.png deleted file mode 100755 index eff56c3dbd1e470c2b091545ade35e094011d266..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^Ahrkx6Ogp-v1SBPEa{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i=~db&7wd>?5Uc afZ$xwjf`eDrp84_QnzIL{IP6RF zkdorCPhJ+`bKvmd!>3MlX`cJ>?yhyytVSzK3yX+|hzq95&sQy+?9sL&t$~4=p}|?| VC#5QQ<|d}62BjvZR2H60wE-$p^K@|xskoKI!^vrAVq#PO&xTpT rXO@X)P|zeswiyy1nkH)T3M4QHyra@ocD)4hB}-f* zN`mv#O3D+9QW+dm@{>{(JaZG%Q-e|yQz{EjrrH1%nR~i8hE&{2`t$$4Ju{C@{XZLh zef~pcCMG~;Ozopr02f~|F#rGn diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/custom_t.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/custom_t.png deleted file mode 100755 index 9b4d994a58c1caca766e2c44f25fc7215c067135..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhC#5QQ<|d}62BjvZR2H60wE-$J^mK6yskoKI!^xR=fH#7Nm-nOR zeEWL2eiLElI0uJWA8&3>|FPu%|Ns8RyE#3WStJ;2Hgg_)$#m&HP&0$4tDnm{r-UW| Dgv2k; diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/custom_tl.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/custom_tl.png deleted file mode 100755 index 1ef2e27d8a47731bc9d3f9318d1e76025c78d1fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhC#5QQ<|d}62BjvZR2H60wE-$J_jGX#skoKI!^xR=fH$Jy#)S(4 z^GyWi*w@RgHW6lyb8wi&+H0SANu}nJgMy}}r|ND_4`vn#218>u$@!)Mhk!;fc)I$z JtaD0e0su&YEi3>4 diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/custom_tr.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/custom_tr.png deleted file mode 100755 index c8482adca40d59a755cf5985c00809239132318a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^B0$W=!2~3&&0lT=QY`6?zK#qG>ra@ocD)4hB}-f* zN`mv#O3D+9QW+dm@{>{(JaZG%Q-e|yQz{EjrrH1%6?nQhhE&{2;^E{>Jir^aKCah& z+R+Oa1g78l`T4oz2PUx?Erqsy_5bBOHf`EeR8X*C!-fUf$MU~5v-3Bo@bmXCS)wvQ z#n<>qn!=C2zs<$c{b!kQ&YVAe`f&%71jb$L=PLjGv1Hb4=xk&%D44~_#KW*!N}5ku SflnD|H-o3EpUXO@geCwf2utt) diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_b.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_b.png deleted file mode 100755 index b4f3580953cf6546cdb2123b6297d3bac2af042b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3C%0R?LXv_I&jKg0($dmJB1TLf>yt#S fczef4NtU=qlmzFem6RtIr7}3CExIm`slC8kVivTBuorDMUsVZiW4UVNXa_AyPM0~kDA{an^L HB{Ts5Qshg7 diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_br.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_br.png deleted file mode 100755 index b1ab6463c29c5f5762ec61d4c618798f2d754d8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3CwE*-m8(}J`{eEUlB^CNnIX}^QW9|D z^y$+do}ZT&_{==%L%!IA!xs-Wv-3M#5mZ^o-{Zh^_xk^a3UdK}mPhjgHfHObaBN_% z`S<_-e{QFFKY5OrJMxI>Oj1~0!}3VnVe-6#ER0M%45jB3o_K`rNCDc;;OXk;vd$@? F2>`|8ONjsg diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_l.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_l.png deleted file mode 100755 index 54bff7693c2f85a21d588bab5f1a5a4a08cdf245..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3CbP0l+XkKmPsW= diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_r.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_r.png deleted file mode 100755 index ede3850f88a3f18711c5997171a2b4d183fe8b28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3CwE*-m8(}J`{eEUlB^CNnIX}^vY2b- dVgZE%3=>RP!m35x(ttV`JYD@<);T3K0RY)vCW-(6 diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_t.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_t.png deleted file mode 100755 index cba1928bd314b8fae354b7ce33d3f877550ca58a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3CFVdQ&MBb@00CGi$p8QV diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_tl.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_tl.png deleted file mode 100755 index 70045cc6567517c5f49efb534bf3c5e5a5969af9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3C diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_tr.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/datepicker_tr.png deleted file mode 100755 index 804021abbd19b12b82fb8b0dc1d6dad4e89425a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3Ca&$MaNG`Q;j{yO^M z%}wLB=jZ3^vll&gXpJ}K;^bVYAtET4_~7~Tbc@FDRB+aEzt+^hp!qpBfZgx1D3NEKh1Scnd3{JvX_d^i>gAO8yxZIy$ot&h0 zyTK{ASdmsk2YXagueE4te!Qvgn?O0*yQZXd(eH;6-n@B|A@Jo%-a>dnh_37HcH1;f z4ggk%=XqI{3xxvTXf$Zjve|4j8pVBq|5>$K&FAwgyr6B{-ENoWOQ3x$m&+kz0MvM; zL{Us8ll^{Qv@A=KB-~#B%5~k74t@2U_spL>N)QCL#hnFMq?^_2byZdAHgIwZy{w2k z3oyT%oqDpn_W6Tx^`5TlhG8Th-w{L>9M^G-{0)EdOi8sb6=XHLWnARuOg!62q-dihIP;U4U1O6B(CkmCKQ zo>#Vpm;r=~*>E^)wOW_&N*_gWHxl^~iTDc}w3v7t$Dv!g8%N9l!o^H`IW8%|=k96T z755Wj1`sA@tXYl4>#wf)yNN`i*Xtb}P;YL&rDb?G0|*&2%d#AoB}G+L*4#90YEY}y z9G8_LW&j~$HX4m=5-TOjoW^!@oH{iqB~+WRGQ*FJ^Z$l$ypbl zBW3`h-pw98Tl{>)3?NL*mWP-DAZ7snK+Ggb!skE$eEv5DRv)u;I<4zEJ|GA1m%5oO x%RC{Z*=%+?9efTIV6}LjkH_Q1V)2gv0{~=UGbv(OIb;9;002ovPDHLkV1mF~THF8t diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/loading.gif b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/loading.gif deleted file mode 100755 index 30056f99151d773588afa63fdcf8506d1810f048..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4204 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 diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-anim_basic_16x16.gif b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-anim_basic_16x16.gif deleted file mode 100755 index 085ccaecaf5fa5c34bc14cd2c2ed5cbbd8e25dcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1553 zcma)+TTl~c6vwlh>nb99Af5rT)t{mCEg5urg=A(g z{C|6SPb~9Xage|wB`SrZk2FOMYM!buln2sX?5Y+T78iB(Zu9cS7|LZyZ++}u$^oi1 z_j@S}bW9OzU2R+RMy&~OT>X-oZ98$jq#ogNfJ!BM-42wHGZk*6s2KD}U*IA%epmxb zm}|6BK9YoIF;*xSL!+z@<64lB7->LTW2Vi4ostCA(z&2XniwNIv}fFo-`MbG;)u4G z^p@F!)|9HhZprHd_vXjDoxs6WkK-6P0@lfxnGT>*p(QHoUV=u1FAqb@b%*W=a3{`LsH5k^AvQNL>6fPpy#oU(&MuH(*aEX4b35*} zn4n7)`I2U%=+Z=?BVZQ?vjQFW4gD@~XSOO6b{qu81`4&LFuU2(ilxW+1|ZkNMnWe79C$gs zWT?Ele|HR{JGPe)5BTW>0Ey?-Ls6S#GoV0tbt6ku7B&*0 z;i9QM$W1Rj*rRIdceL)rAOSl+sDe3LkB87<%){;ZdHp6|SNlopDXRx< zxBDF9-lTo&v`8$humFygUij@qgT=Qzhj8{ym2-{Xciwqq_Xwk%=O3B-MNAL_6e`3U zyxwmXex4`g0^1RYw~Dth3av3Dl^AAlpO3mG!nLr#&ZZ7c_wUboI+deC+&%TFjK2Lm z!Y&f1h|T_On%RCV&=4bx`!>(YezqGVhl&QpED?N6GV)HmzJ9&rh$x*i?*@o9#6QI< z5ZI_MRX;0+pY8$`j)eF#TlUyG(eE%E7S!rj;mj^M5vhUicPm zVWQ2z+imFyg}SRABmOBY_@osR!>7Ov!ioK`NB6_Rv}7Ud?35ed5Sb@?yND?kv~RCa wqs^a3Sh>&&L4)!LKI?D2&k@))k(LESaga|C278ChSzn3NWVkcuNoY&{0f?~U_5c6? diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_flat_0_aaaaaa_40x100.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_flat_0_aaaaaa_40x100.png deleted file mode 100755 index 5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^ z$vje}bP0l+XkK DSH>_4 diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_flat_75_ffffff_40x100.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_flat_75_ffffff_40x100.png deleted file mode 100755 index ac8b229af950c29356abf64a6c4aa894575445f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsY*{5$B>N1x91EQ4=4yQYz+E8 zPo9&<{J;c_6SHRil>2s{Zw^OT)6@jj2u|u!(plXsM>LJD`vD!n;OXk;vd$@?2>^GI BH@yG= diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_glass_55_fbf9ee_1x400.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_glass_55_fbf9ee_1x400.png deleted file mode 100755 index ad3d6346e00f246102f72f2e026ed0491988b394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour0hLi978O6-<~(*I$*%ybaDOn z{W;e!B}_MSUQoPXhYd^Y6RUoS1yepnPx`2Kz)7OXQG!!=-jY=F+d2OOy?#DnJ32>z UEim$g7SJdLPgg&ebxsLQ09~*s;{X5v diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_glass_65_ffffff_1x400.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_glass_65_ffffff_1x400.png deleted file mode 100755 index 42ccba269b6e91bef12ad0fa18be651b5ef0ee68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouqzpV=978O6-=0?FV^9z|eBtf= z|7WztIJ;WT>{+tN>ySr~=F{k$>;_x^_y?afmf9pRKH0)6?eSP?3s5hEr>mdKI;Vst E0O;M1& diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_glass_75_dadada_1x400.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_glass_75_dadada_1x400.png deleted file mode 100755 index 5a46b47cb16631068aee9e0bd61269fc4e95e5cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq|7{B978O6lPf+wIa#m9#>Unb zm^4K~wN3Zq+uPMaW978O6-<~?i$)F&>d~nX+ z>vO)oJQ&&FVaKefeOt$qOR>f~^ebnN_=~%qdHEa{vDV26o)#~38k_!`W=^oo1w6ixmPC4R1b Tyd6G3lNdZ*{an^LB{Ts5`idse diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png deleted file mode 100755 index 7c9fa6c6edcfcdd3e5b77e6f547b719e6fc66e30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l#Zv1V~E7mS{Ou}E*`%9 zKPdOkfrN+ZlHSt7(uY{3{#;wiJb&Ugx1>W4qtrSDm(4hFaaY-$3p3x|sIU3`%J?Qj YcLn#R=pC)AfTl5cy85}Sb4q9e0MP_2(*OVf diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-icons_222222_256x240.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-icons_222222_256x240.png deleted file mode 100755 index b273ff111d219c9b9a8b96d57683d0075fb7871a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 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 diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-icons_2e83ff_256x240.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-icons_2e83ff_256x240.png deleted file mode 100755 index 09d1cdc856c292c4ab6dd818c7543ac0828bd616..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 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 diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-icons_454545_256x240.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-icons_454545_256x240.png deleted file mode 100755 index 59bd45b907c4fd965697774ce8c5fc6b2fd9c105..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 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 oBo%DI*Kv;w;*%(i9W@f3_WCF#rGn diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-icons_cd0a0a_256x240.png b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/images/ui-icons_cd0a0a_256x240.png deleted file mode 100755 index 2ab019b73ec11a485fa09378f3a0e155194f6a5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 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 c4 - ee > d5 - Level 2: - dd > d1 - ee > e2 - */ -table.display tr.odd.gradeA td.sorting_1 { - background-color: #c4ffc4; -} - -table.display tr.odd.gradeA td.sorting_2 { - background-color: #d1ffd1; -} - -table.display tr.odd.gradeA td.sorting_3 { - background-color: #d1ffd1; -} - -table.display tr.even.gradeA td.sorting_1 { - background-color: #d5ffd5; -} - -table.display tr.even.gradeA td.sorting_2 { - background-color: #e2ffe2; -} - -table.display tr.even.gradeA td.sorting_3 { - background-color: #e2ffe2; -} - -table.display tr.odd.gradeC td.sorting_1 { - background-color: #c4c4ff; -} - -table.display tr.odd.gradeC td.sorting_2 { - background-color: #d1d1ff; -} - -table.display tr.odd.gradeC td.sorting_3 { - background-color: #d1d1ff; -} - -table.display tr.even.gradeC td.sorting_1 { - background-color: #d5d5ff; -} - -table.display tr.even.gradeC td.sorting_2 { - background-color: #e2e2ff; -} - -table.display tr.even.gradeC td.sorting_3 { - background-color: #e2e2ff; -} - -table.display tr.odd.gradeX td.sorting_1 { - background-color: #ffc4c4; -} - -table.display tr.odd.gradeX td.sorting_2 { - background-color: #ffd1d1; -} - -table.display tr.odd.gradeX td.sorting_3 { - background-color: #ffd1d1; -} - -table.display tr.even.gradeX td.sorting_1 { - background-color: #ffd5d5; -} - -table.display tr.even.gradeX td.sorting_2 { - background-color: #ffe2e2; -} - -table.display tr.even.gradeX td.sorting_3 { - background-color: #ffe2e2; -} - -table.display tr.odd.gradeY td.sorting_1 { - background-color: #DDDD93; -} - -table.display tr.odd.gradeY td.sorting_2 { - background-color: #DDDD93; -} - -table.display tr.odd.gradeY td.sorting_3 { - background-color: #DDDD93; -} - -table.display tr.even.gradeY td.sorting_1 { - background-color: #E6E6B8; -} - -table.display tr.even.gradeY td.sorting_2 { - background-color: #E6E6B8; -} - -table.display tr.even.gradeY td.sorting_3 { - background-color: #E6E6B8; -} - -table.display tr.odd.gradeU td.sorting_1 { - background-color: #c4c4c4; -} - -table.display tr.odd.gradeU td.sorting_2 { - background-color: #d1d1d1; -} - -table.display tr.odd.gradeU td.sorting_3 { - background-color: #d1d1d1; -} - -table.display tr.even.gradeU td.sorting_1 { - background-color: #d5d5d5; -} - -table.display tr.even.gradeU td.sorting_2 { - background-color: #e2e2e2; -} - -table.display tr.even.gradeU td.sorting_3 { - background-color: #e2e2e2; -} - - -/* - * Row highlighting example - */ -.ex_highlight #example tbody tr.even:hover, #example tbody tr.even td.highlighted { - background-color: #ECFFB3; -} - -.ex_highlight #example tbody tr.odd:hover, #example tbody tr.odd td.highlighted { - background-color: #E6FF99; -} \ No newline at end of file diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/multidatepicker.css b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/multidatepicker.css deleted file mode 100755 index f67617b..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/css/multidatepicker.css +++ /dev/null @@ -1,191 +0,0 @@ -div.datepicker { - position: relative; - font-family: Arial, Helvetica, sans-serif; - font-size: 12px; - width: 196px; - height: 147px; - position: absolute; - cursor: default; - top: 0; - left: 0; - display: none; -} -.datepickerContainer { - background: #121212; - position: absolute; - top: 10px; - left: 10px; -} -.datepickerBorderT { - position: absolute; - left: 10px; - top: 0; - right: 10px; - height: 10px; - background: url(images/datepicker_t.png); -} -.datepickerBorderB { - position: absolute; - left: 10px; - bottom: 0; - right: 10px; - height: 10px; - background: url(images/datepicker_b.png); -} -.datepickerBorderL { - position: absolute; - left: 0; - bottom: 10px; - top: 10px; - width: 10px; - background: url(images/datepicker_l.png); -} -.datepickerBorderR { - position: absolute; - right: 0; - bottom: 10px; - top: 10px; - width: 10px; - background: url(images/datepicker_r.png); -} -.datepickerBorderTL { - position: absolute; - top: 0; - left: 0; - width: 10px; - height: 10px; - background: url(images/datepicker_tl.png); -} -.datepickerBorderTR { - position: absolute; - top: 0; - right: 0; - width: 10px; - height: 10px; - background: url(images/datepicker_tr.png); -} -.datepickerBorderBL { - position: absolute; - bottom: 0; - left: 0; - width: 10px; - height: 10px; - background: url(images/datepicker_bl.png); -} -.datepickerBorderBR { - position: absolute; - bottom: 0; - right: 0; - width: 10px; - height: 10px; - background: url(images/datepicker_br.png); -} -.datepickerHidden { - display: none; -} -div.datepicker table { - border-collapse:collapse; -} -div.datepicker a { - color: #eee; - text-decoration: none; - cursor: default; - outline: none; -} -div.datepicker table td { - text-align: right; - padding: 0; - margin: 0; -} -div.datepicker th { - text-align: center; - color: #999; - font-weight: normal; -} -div.datepicker tbody th { - text-align: left; -} -div.datepicker tbody a { - display: block; -} -.datepickerDays a { - width: 20px; - line-height: 16px; - height: 16px; - padding-right: 2px; -} -.datepickerYears a, -.datepickerMonths a{ - width: 44px; - line-height: 36px; - height: 36px; - text-align: center; -} -td.datepickerNotInMonth a { - color: #666; -} -tbody.datepickerDays td.datepickerSelected{ - background: #136A9F; -} -tbody.datepickerDays td.datepickerNotInMonth.datepickerSelected { - background: #17384d; -} -tbody.datepickerYears td.datepickerSelected, -tbody.datepickerMonths td.datepickerSelected{ - background: #17384d; -} -div.datepicker a:hover, -div.datepicker a:hover { - color: #88c5eb; -} -div.datepicker td.datepickerNotInMonth a:hover { - color: #999; -} -div.datepicker tbody th { - text-align: left; -} -.datepickerSpace div { - width: 20px; -} -.datepickerGoNext a, -.datepickerGoPrev a, -.datepickerMonth a { - text-align: center; - height: 20px; - line-height: 20px; -} -.datepickerGoNext a { - float: right; - width: 20px; -} -.datepickerGoPrev a { - float: left; - width: 20px; -} -table.datepickerViewDays tbody.datepickerMonths, -table.datepickerViewDays tbody.datepickerYears { - display: none; -} -table.datepickerViewMonths tbody.datepickerDays, -table.datepickerViewMonths tbody.datepickerYears, -table.datepickerViewMonths tr.datepickerDoW { - display: none; -} -table.datepickerViewYears tbody.datepickerDays, -table.datepickerViewYears tbody.datepickerMonths, -table.datepickerViewYears tr.datepickerDoW { - display: none; -} -td.datepickerDisabled a, -td.datepickerDisabled.datepickerNotInMonth a{ - color: #333; -} -td.datepickerDisabled a:hover { - color: #333; -} -td.datepickerSpecial a { - background: #700; -} -td.datepickerSpecial.datepickerSelected a { - background: #a00; -} \ No newline at end of file diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/jquery.js b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/jquery.js deleted file mode 100755 index d2424e6..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/jquery.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.7 jquery.com | jquery.org/license */ -(function(a,b){function cA(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cx(a){if(!cm[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cn||(cn=c.createElement("iframe"),cn.frameBorder=cn.width=cn.height=0),b.appendChild(cn);if(!co||!cn.createElement)co=(cn.contentWindow||cn.contentDocument).document,co.write((c.compatMode==="CSS1Compat"?"":"")+""),co.close();d=co.createElement(a),co.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cn)}cm[a]=e}return cm[a]}function cw(a,b){var c={};f.each(cs.concat.apply([],cs.slice(0,b)),function(){c[this]=a});return c}function cv(){ct=b}function cu(){setTimeout(cv,0);return ct=f.now()}function cl(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ck(){try{return new a.XMLHttpRequest}catch(b){}}function ce(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bB(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function br(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bi,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bq(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bp(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bp)}function bp(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bo(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bn(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bm(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(){return!0}function M(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.add(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;B.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return a!=null&&m.test(a)&&!isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
    a

    ",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,unknownElems:!!a.getElementsByTagName("nav").length,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",enctype:!!c.createElement("form").enctype,submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.lastChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-999px",top:"-999px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
    ",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
    t
    ",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;f(function(){var a,b,d,e,g,h,i=1,j="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",l="visibility:hidden;border:0;",n="style='"+j+"border:5px solid #000;padding:0;'",p="
    "+""+"
    ";m=c.getElementsByTagName("body")[0];!m||(a=c.createElement("div"),a.style.cssText=l+"width:0;height:0;position:static;top:0;margin-top:"+i+"px",m.insertBefore(a,m.firstChild),o=c.createElement("div"),o.style.cssText=j+l,o.innerHTML=p,a.appendChild(o),b=o.firstChild,d=b.firstChild,g=b.nextSibling.firstChild.firstChild,h={doesNotAddBorder:d.offsetTop!==5,doesAddBorderForTableAndCells:g.offsetTop===5},d.style.position="fixed",d.style.top="20px",h.fixedPosition=d.offsetTop===20||d.offsetTop===15,d.style.position=d.style.top="",b.style.overflow="hidden",b.style.position="relative",h.subtractsBorderForOverflowNotVisible=d.offsetTop===-5,h.doesNotIncludeMarginInBodyOffset=m.offsetTop!==i,m.removeChild(a),o=a=null,f.extend(k,h))}),o.innerHTML="",n.removeChild(o),o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[f.expando]:a[f.expando]&&f.expando,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[f.expando]=n=++f.uuid:n=f.expando),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[f.expando]:f.expando;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)?b=b:b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" "));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];if(!arguments.length){if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}return b}e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!a||j===3||j===8||j===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g},removeAttr:function(a,b){var c,d,e,g,h=0;if(a.nodeType===1){d=(b||"").split(p),g=d.length;for(;h=0}})});var z=/\.(.*)$/,A=/^(?:textarea|input|select)$/i,B=/\./g,C=/ /g,D=/[^\w\s.|`]/g,E=/^([^\.]*)?(?:\.(.+))?$/,F=/\bhover(\.\S+)?/,G=/^key/,H=/^(?:mouse|contextmenu)|click/,I=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,J=function(a){var b=I.exec(a);b&& -(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},K=function(a,b){return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||a.id===b[2])&&(!b[3]||b[3].test(a.className))},L=function(a){return f.event.special.hover?a:a.replace(F,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=L(c).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"",(g||!e)&&c.preventDefault();if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,n=null;for(m=e.parentNode;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l=0:t===b&&(t=o[s]=r.quick?K(m,r.quick):f(m).is(s)),t&&q.push(r);q.length&&j.push({elem:m,matches:q})}d.length>e&&j.push({elem:this,matches:d.slice(e)});for(k=0;k0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),G.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),H.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y="abbr article aside audio canvas datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",Z=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,_=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,ba=/<([\w:]+)/,bb=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bk=X(c);bj.optgroup=bj.option,bj.tbody=bj.tfoot=bj.colgroup=bj.caption=bj.thead,bj.th=bj.td,f.support.htmlSerialize||(bj._default=[1,"div
    ","
    "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after" -,arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Z,""):null;if(typeof a=="string"&&!bd.test(a)&&(f.support.leadingWhitespace||!$.test(a))&&!bj[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(_,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bn(a,d),e=bo(a),g=bo(d);for(h=0;e[h];++h)g[h]&&bn(e[h],g[h])}if(b){bm(a,d);if(c){e=bo(a),g=bo(d);for(h=0;e[h];++h)bm(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bc.test(k))k=b.createTextNode(k);else{k=k.replace(_,"<$1>");var l=(ba.exec(k)||["",""])[1].toLowerCase(),m=bj[l]||bj._default,n=m[0],o=b.createElement("div");b===c?bk.appendChild(o):X(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=bb.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&$.test(k)&&o.insertBefore(b.createTextNode($.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bt.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bs,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bs.test(g)?g.replace(bs,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bB(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bC=function(a,c){var d,e,g;c=c.replace(bu,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bD=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bv.test(f)&&bw.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bB=bC||bD,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bF=/%20/g,bG=/\[\]$/,bH=/\r?\n/g,bI=/#.*$/,bJ=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bK=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bL=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bM=/^(?:GET|HEAD)$/,bN=/^\/\//,bO=/\?/,bP=/)<[^<]*)*<\/script>/gi,bQ=/^(?:select|textarea)/i,bR=/\s+/,bS=/([?&])_=[^&]*/,bT=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bU=f.fn.load,bV={},bW={},bX,bY,bZ=["*/"]+["*"];try{bX=e.href}catch(b$){bX=c.createElement("a"),bX.href="",bX=bX.href}bY=bT.exec(bX.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bU)return bU.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
    ").append(c.replace(bP,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bQ.test(this.nodeName)||bK.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bH,"\r\n")}}):{name:b.name,value:c.replace(bH,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?cb(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),cb(a,b);return a},ajaxSettings:{url:bX,isLocal:bL.test(bY[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bZ},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:b_(bV),ajaxTransport:b_(bW),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cd(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=ce(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bJ.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bI,"").replace(bN,bY[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bR),d.crossDomain==null&&(r=bT.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bY[1]&&r[2]==bY[2]&&(r[3]||(r[1]==="http:"?80:443))==(bY[3]||(bY[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),ca(bV,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bM.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bO.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bS,"$1_="+x);d.url=y+(y===d.url?(bO.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bZ+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=ca(bW,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){s<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)cc(g,a[g],c,e);return d.join("&").replace(bF,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cf=f.now(),cg=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cf++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cg.test(b.url)||e&&cg.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cg,l),b.url===j&&(e&&(k=k.replace(cg,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ch=a.ActiveXObject?function(){for(var a in cj)cj[a](0,1)}:!1,ci=0,cj;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ck()||cl()}:ck,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ch&&delete cj[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++ci,ch&&(cj||(cj={},f(a).unload(ch)),cj[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cm={},cn,co,cp=/^(?:toggle|show|hide)$/,cq=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cr,cs=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],ct;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cw("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cz.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cz.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cA(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cA(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/entries b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/entries deleted file mode 100755 index f3ab2c6..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/entries +++ /dev/null @@ -1,501 +0,0 @@ -10 - -dir -808 -svn+ssh://andrew@util.helppain.net/srv/svn/helppain/dashboard/code/var/www/web_roots/dashboard/assets/vendor/jquery/plugins -svn+ssh://andrew@util.helppain.net/srv/svn/helppain - - - -2012-02-29T18:30:38.892504Z -808 -andrew - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -147760bf-2e89-47d8-8d4d-606508277b6e - - - - - - -0 - -fullcalendar.js -file - - - - -2011-10-24T19:31:21.000000Z -67631fb28696fa0e14ab92132289e378 -2012-02-29T18:30:38.892504Z -808 -andrew - - - - - - - - - - - - - - - - - - - - - -124400 - -fullcalendar.min.js -file - - - - -2011-10-24T19:31:21.000000Z -72902d02cd130cdb2dc60379338df8df -2012-02-29T18:30:38.892504Z -808 -andrew - - - - - - - - - - - - - - - - - - - - - -49900 - -jquery.autocomplete.js -file - - - - -2011-10-24T19:31:21.000000Z -4ac647c4063ddffd276d1ab57d656e79 -2012-02-29T18:30:38.892504Z -808 -andrew - - - - - - - - - - - - - - - - - - - - - -16530 - -jquery.cookies.2.2.0.min.js -file - - - - -2011-10-24T19:31:21.000000Z -03b9574487d06f8f8513f95758c7cab3 -2012-02-29T18:30:38.892504Z -808 -andrew - - - - - - - - - - - - - - - - - - - - - -5496 - -jquery.csv.min.r34.js -file - - - - -2011-10-24T19:31:21.000000Z -1d7acee8772874710f5357bc63f84a1e -2012-02-29T18:30:38.892504Z -808 -andrew - - - - - - - - - - - - - - - - - - - - - -1927 - -jquery.dataTables.min.1.6.2.js -file - - - - -2012-01-11T23:18:49.000000Z -2af8fedcf0b7d7c621386db467e4cf01 -2012-02-29T18:30:38.892504Z -808 -andrew - - - - - - - - - - - - - - - - - - - - - -230257 - -jquery.datepicker.1.8.js -file - - - - -2011-10-24T19:31:21.000000Z -2fc8e5c4961780a6fc8ca9390351975b -2012-02-29T18:30:38.892504Z -808 -andrew - - - - - - - - - - - - - - - - - - - - - -72315 - -jquery.dimensions.min.1.2.js -file - - - - -2011-10-24T19:31:21.000000Z -47c86e764c9d5dec1a2929f06cd7464a -2012-02-29T18:30:38.892504Z -808 -andrew - - - - - - - - - - - - - - - - - - - - - -2514 - -jquery.form.2.43.js -file - - - - -2011-10-24T19:31:21.000000Z -7a639f26e53d7e657cf52b2eed4e3aed -2012-02-29T18:30:38.892504Z -808 -andrew - - - - - - - - - - - - - - - - - - - - - -22330 - -jquery.jeditable.min.1.7.1.js -file - - - - -2011-10-24T19:31:21.000000Z -f8b316066b987e073b141e4d2b5256b1 -2012-02-29T18:30:38.892504Z -808 -andrew - - - - - - - - - - - - - - - - - - - - - -8136 - -jquery.pstrength-min.1.2.js -file - - - - -2011-10-24T19:31:21.000000Z -b08253d7f425ae83246d2ca9d062a83a -2012-02-29T18:30:38.892504Z -808 -andrew - - - - - - - - - - - - - - - - - - - - - -2483 - -jquery.validate.min.1.7.js -file - - - - -2011-10-24T19:31:21.000000Z -7c8f6ee816c71933a8f93966b34e458c -2012-02-29T18:30:38.892504Z -808 -andrew - - - - - - - - - - - - - - - - - - - - - -25361 - -multidatepicker.css -file -813 - - - - - - - - - - - - - - - - - - - -deleted - -multidatepicker.js -file - - - - -2011-10-24T19:31:21.000000Z -07bd86f9113a932bf4dae27a8b949889 -2012-02-29T18:30:38.892504Z -808 -andrew - - - - - - - - - - - - - - - - - - - - - -47548 - diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/fullcalendar.js.svn-base b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/fullcalendar.js.svn-base deleted file mode 100755 index c76c137..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/fullcalendar.js.svn-base +++ /dev/null @@ -1,5211 +0,0 @@ -/** - * @preserve - * FullCalendar v1.5.2 - * http://arshaw.com/fullcalendar/ - * - * Use fullcalendar.css for basic styling. - * For event drag & drop, requires jQuery UI draggable. - * For event resizing, requires jQuery UI resizable. - * - * Copyright (c) 2011 Adam Shaw - * Dual licensed under the MIT and GPL licenses, located in - * MIT-LICENSE.txt and GPL-LICENSE.txt respectively. - * - * Date: Sun Aug 21 22:06:09 2011 -0700 - * - */ - -(function($, undefined) { - - -var defaults = { - - // display - defaultView: 'month', - aspectRatio: 1.35, - header: { - left: 'title', - center: '', - right: 'today prev,next' - }, - weekends: true, - - // editing - //editable: false, - //disableDragging: false, - //disableResizing: false, - - allDayDefault: true, - ignoreTimezone: true, - - // event ajax - lazyFetching: true, - startParam: 'start', - endParam: 'end', - - // time formats - titleFormat: { - month: 'MMMM yyyy', - week: "MMM d[ yyyy]{ '—'[ MMM] d yyyy}", - day: 'dddd, MMM d, yyyy' - }, - columnFormat: { - month: 'ddd', - week: 'ddd M/d', - day: 'dddd M/d' - }, - timeFormat: { // for event elements - '': 'h(:mm)t' // default - }, - - // locale - isRTL: false, - firstDay: 0, - monthNames: ['January','February','March','April','May','June','July','August','September','October','November','December'], - monthNamesShort: ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'], - dayNames: ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'], - dayNamesShort: ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'], - buttonText: { - prev: ' ◄ ', - next: ' ► ', - prevYear: ' << ', - nextYear: ' >> ', - today: 'today', - month: 'month', - week: 'week', - day: 'day' - }, - - // jquery-ui theming - theme: false, - buttonIcons: { - prev: 'circle-triangle-w', - next: 'circle-triangle-e' - }, - - //selectable: false, - unselectAuto: true, - - dropAccept: '*' - -}; - -// right-to-left defaults -var rtlDefaults = { - header: { - left: 'next,prev today', - center: '', - right: 'title' - }, - buttonText: { - prev: ' ► ', - next: ' ◄ ', - prevYear: ' >> ', - nextYear: ' << ' - }, - buttonIcons: { - prev: 'circle-triangle-e', - next: 'circle-triangle-w' - } -}; - - - -var fc = $.fullCalendar = { version: "1.5.2" }; -var fcViews = fc.views = {}; - - -$.fn.fullCalendar = function(options) { - - - // method calling - if (typeof options == 'string') { - var args = Array.prototype.slice.call(arguments, 1); - var res; - this.each(function() { - var calendar = $.data(this, 'fullCalendar'); - if (calendar && $.isFunction(calendar[options])) { - var r = calendar[options].apply(calendar, args); - if (res === undefined) { - res = r; - } - if (options == 'destroy') { - $.removeData(this, 'fullCalendar'); - } - } - }); - if (res !== undefined) { - return res; - } - return this; - } - - - // would like to have this logic in EventManager, but needs to happen before options are recursively extended - var eventSources = options.eventSources || []; - delete options.eventSources; - if (options.events) { - eventSources.push(options.events); - delete options.events; - } - - - options = $.extend(true, {}, - defaults, - (options.isRTL || options.isRTL===undefined && defaults.isRTL) ? rtlDefaults : {}, - options - ); - - - this.each(function(i, _element) { - var element = $(_element); - var calendar = new Calendar(element, options, eventSources); - element.data('fullCalendar', calendar); // TODO: look into memory leak implications - calendar.render(); - }); - - - return this; - -}; - - -// function for adding/overriding defaults -function setDefaults(d) { - $.extend(true, defaults, d); -} - - - - -function Calendar(element, options, eventSources) { - var t = this; - - - // exports - t.options = options; - t.render = render; - t.destroy = destroy; - t.refetchEvents = refetchEvents; - t.reportEvents = reportEvents; - t.reportEventChange = reportEventChange; - t.rerenderEvents = rerenderEvents; - t.changeView = changeView; - t.select = select; - t.unselect = unselect; - t.prev = prev; - t.next = next; - t.prevYear = prevYear; - t.nextYear = nextYear; - t.today = today; - t.gotoDate = gotoDate; - t.incrementDate = incrementDate; - t.formatDate = function(format, date) { return formatDate(format, date, options) }; - t.formatDates = function(format, date1, date2) { return formatDates(format, date1, date2, options) }; - t.getDate = getDate; - t.getView = getView; - t.option = option; - t.trigger = trigger; - - - // imports - EventManager.call(t, options, eventSources); - var isFetchNeeded = t.isFetchNeeded; - var fetchEvents = t.fetchEvents; - - - // locals - var _element = element[0]; - var header; - var headerElement; - var content; - var tm; // for making theme classes - var currentView; - var viewInstances = {}; - var elementOuterWidth; - var suggestedViewHeight; - var absoluteViewElement; - var resizeUID = 0; - var ignoreWindowResize = 0; - var date = new Date(); - var events = []; - var _dragElement; - - - - /* Main Rendering - -----------------------------------------------------------------------------*/ - - - setYMD(date, options.year, options.month, options.date); - - - function render(inc) { - if (!content) { - initialRender(); - }else{ - calcSize(); - markSizesDirty(); - markEventsDirty(); - renderView(inc); - } - } - - - function initialRender() { - tm = options.theme ? 'ui' : 'fc'; - element.addClass('fc'); - if (options.isRTL) { - element.addClass('fc-rtl'); - } - if (options.theme) { - element.addClass('ui-widget'); - } - content = $("
    ") - .prependTo(element); - header = new Header(t, options); - headerElement = header.render(); - if (headerElement) { - element.prepend(headerElement); - } - changeView(options.defaultView); - $(window).resize(windowResize); - // needed for IE in a 0x0 iframe, b/c when it is resized, never triggers a windowResize - if (!bodyVisible()) { - lateRender(); - } - } - - - // called when we know the calendar couldn't be rendered when it was initialized, - // but we think it's ready now - function lateRender() { - setTimeout(function() { // IE7 needs this so dimensions are calculated correctly - if (!currentView.start && bodyVisible()) { // !currentView.start makes sure this never happens more than once - renderView(); - } - },0); - } - - - function destroy() { - $(window).unbind('resize', windowResize); - header.destroy(); - content.remove(); - element.removeClass('fc fc-rtl ui-widget'); - } - - - - function elementVisible() { - return _element.offsetWidth !== 0; - } - - - function bodyVisible() { - return $('body')[0].offsetWidth !== 0; - } - - - - /* View Rendering - -----------------------------------------------------------------------------*/ - - // TODO: improve view switching (still weird transition in IE, and FF has whiteout problem) - - function changeView(newViewName) { - if (!currentView || newViewName != currentView.name) { - ignoreWindowResize++; // because setMinHeight might change the height before render (and subsequently setSize) is reached - - unselect(); - - var oldView = currentView; - var newViewElement; - - if (oldView) { - (oldView.beforeHide || noop)(); // called before changing min-height. if called after, scroll state is reset (in Opera) - setMinHeight(content, content.height()); - oldView.element.hide(); - }else{ - setMinHeight(content, 1); // needs to be 1 (not 0) for IE7, or else view dimensions miscalculated - } - content.css('overflow', 'hidden'); - - currentView = viewInstances[newViewName]; - if (currentView) { - currentView.element.show(); - }else{ - currentView = viewInstances[newViewName] = new fcViews[newViewName]( - newViewElement = absoluteViewElement = - $("
    ") - .appendTo(content), - t // the calendar object - ); - } - - if (oldView) { - header.deactivateButton(oldView.name); - } - header.activateButton(newViewName); - - renderView(); // after height has been set, will make absoluteViewElement's position=relative, then set to null - - content.css('overflow', ''); - if (oldView) { - setMinHeight(content, 1); - } - - if (!newViewElement) { - (currentView.afterShow || noop)(); // called after setting min-height/overflow, so in final scroll state (for Opera) - } - - ignoreWindowResize--; - } - } - - - - function renderView(inc) { - if (elementVisible()) { - ignoreWindowResize++; // because renderEvents might temporarily change the height before setSize is reached - - unselect(); - - if (suggestedViewHeight === undefined) { - calcSize(); - } - - var forceEventRender = false; - if (!currentView.start || inc || date < currentView.start || date >= currentView.end) { - // view must render an entire new date range (and refetch/render events) - currentView.render(date, inc || 0); // responsible for clearing events - setSize(true); - forceEventRender = true; - } - else if (currentView.sizeDirty) { - // view must resize (and rerender events) - currentView.clearEvents(); - setSize(); - forceEventRender = true; - } - else if (currentView.eventsDirty) { - currentView.clearEvents(); - forceEventRender = true; - } - currentView.sizeDirty = false; - currentView.eventsDirty = false; - updateEvents(forceEventRender); - - elementOuterWidth = element.outerWidth(); - - header.updateTitle(currentView.title); - var today = new Date(); - if (today >= currentView.start && today < currentView.end) { - header.disableButton('today'); - }else{ - header.enableButton('today'); - } - - ignoreWindowResize--; - currentView.trigger('viewDisplay', _element); - } - } - - - - /* Resizing - -----------------------------------------------------------------------------*/ - - - function updateSize() { - markSizesDirty(); - if (elementVisible()) { - calcSize(); - setSize(); - unselect(); - currentView.clearEvents(); - currentView.renderEvents(events); - currentView.sizeDirty = false; - } - } - - - function markSizesDirty() { - $.each(viewInstances, function(i, inst) { - inst.sizeDirty = true; - }); - } - - - function calcSize() { - if (options.contentHeight) { - suggestedViewHeight = options.contentHeight; - } - else if (options.height) { - suggestedViewHeight = options.height - (headerElement ? headerElement.height() : 0) - vsides(content); - } - else { - suggestedViewHeight = Math.round(content.width() / Math.max(options.aspectRatio, .5)); - } - } - - - function setSize(dateChanged) { // todo: dateChanged? - ignoreWindowResize++; - currentView.setHeight(suggestedViewHeight, dateChanged); - if (absoluteViewElement) { - absoluteViewElement.css('position', 'relative'); - absoluteViewElement = null; - } - currentView.setWidth(content.width(), dateChanged); - ignoreWindowResize--; - } - - - function windowResize() { - if (!ignoreWindowResize) { - if (currentView.start) { // view has already been rendered - var uid = ++resizeUID; - setTimeout(function() { // add a delay - if (uid == resizeUID && !ignoreWindowResize && elementVisible()) { - if (elementOuterWidth != (elementOuterWidth = element.outerWidth())) { - ignoreWindowResize++; // in case the windowResize callback changes the height - updateSize(); - currentView.trigger('windowResize', _element); - ignoreWindowResize--; - } - } - }, 200); - }else{ - // calendar must have been initialized in a 0x0 iframe that has just been resized - lateRender(); - } - } - } - - - - /* Event Fetching/Rendering - -----------------------------------------------------------------------------*/ - - - // fetches events if necessary, rerenders events if necessary (or if forced) - function updateEvents(forceRender) { - if (!options.lazyFetching || isFetchNeeded(currentView.visStart, currentView.visEnd)) { - refetchEvents(); - } - else if (forceRender) { - rerenderEvents(); - } - } - - - function refetchEvents() { - fetchEvents(currentView.visStart, currentView.visEnd); // will call reportEvents - } - - - // called when event data arrives - function reportEvents(_events) { - events = _events; - rerenderEvents(); - } - - - // called when a single event's data has been changed - function reportEventChange(eventID) { - rerenderEvents(eventID); - } - - - // attempts to rerenderEvents - function rerenderEvents(modifiedEventID) { - markEventsDirty(); - if (elementVisible()) { - currentView.clearEvents(); - currentView.renderEvents(events, modifiedEventID); - currentView.eventsDirty = false; - } - } - - - function markEventsDirty() { - $.each(viewInstances, function(i, inst) { - inst.eventsDirty = true; - }); - } - - - - /* Selection - -----------------------------------------------------------------------------*/ - - - function select(start, end, allDay) { - currentView.select(start, end, allDay===undefined ? true : allDay); - } - - - function unselect() { // safe to be called before renderView - if (currentView) { - currentView.unselect(); - } - } - - - - /* Date - -----------------------------------------------------------------------------*/ - - - function prev() { - renderView(-1); - } - - - function next() { - renderView(1); - } - - - function prevYear() { - addYears(date, -1); - renderView(); - } - - - function nextYear() { - addYears(date, 1); - renderView(); - } - - - function today() { - date = new Date(); - renderView(); - } - - - function gotoDate(year, month, dateOfMonth) { - if (year instanceof Date) { - date = cloneDate(year); // provided 1 argument, a Date - }else{ - setYMD(date, year, month, dateOfMonth); - } - renderView(); - } - - - function incrementDate(years, months, days) { - if (years !== undefined) { - addYears(date, years); - } - if (months !== undefined) { - addMonths(date, months); - } - if (days !== undefined) { - addDays(date, days); - } - renderView(); - } - - - function getDate() { - return cloneDate(date); - } - - - - /* Misc - -----------------------------------------------------------------------------*/ - - - function getView() { - return currentView; - } - - - function option(name, value) { - if (value === undefined) { - return options[name]; - } - if (name == 'height' || name == 'contentHeight' || name == 'aspectRatio') { - options[name] = value; - updateSize(); - } - } - - - function trigger(name, thisObj) { - if (options[name]) { - return options[name].apply( - thisObj || _element, - Array.prototype.slice.call(arguments, 2) - ); - } - } - - - - /* External Dragging - ------------------------------------------------------------------------*/ - - if (options.droppable) { - $(document) - .bind('dragstart', function(ev, ui) { - var _e = ev.target; - var e = $(_e); - if (!e.parents('.fc').length) { // not already inside a calendar - var accept = options.dropAccept; - if ($.isFunction(accept) ? accept.call(_e, e) : e.is(accept)) { - _dragElement = _e; - currentView.dragStart(_dragElement, ev, ui); - } - } - }) - .bind('dragstop', function(ev, ui) { - if (_dragElement) { - currentView.dragStop(_dragElement, ev, ui); - _dragElement = null; - } - }); - } - - -} - -function Header(calendar, options) { - var t = this; - - - // exports - t.render = render; - t.destroy = destroy; - t.updateTitle = updateTitle; - t.activateButton = activateButton; - t.deactivateButton = deactivateButton; - t.disableButton = disableButton; - t.enableButton = enableButton; - - - // locals - var element = $([]); - var tm; - - - - function render() { - tm = options.theme ? 'ui' : 'fc'; - var sections = options.header; - if (sections) { - element = $("
    ") - .append( - $("") - .append(renderSection('left')) - .append(renderSection('center')) - .append(renderSection('right')) - ); - return element; - } - } - - - function destroy() { - element.remove(); - } - - - function renderSection(position) { - var e = $("" + - ""; - for (i=0; i"; // need fc- for setDayID - } - s += - "" + - "" + - ""; - for (i=0; i"; - for (j=0; j" + // need fc- for setDayID - "
    " + - (showNumbers ? - "
    " : - '' - ) + - "
    " + - "
     
    " + - "
    " + - "
    " + - ""; - } - s += - ""; - } - s += - "
    " + - "
    "); - var buttonStr = options.header[position]; - if (buttonStr) { - $.each(buttonStr.split(' '), function(i) { - if (i > 0) { - e.append(""); - } - var prevButton; - $.each(this.split(','), function(j, buttonName) { - if (buttonName == 'title') { - e.append("

     

    "); - if (prevButton) { - prevButton.addClass(tm + '-corner-right'); - } - prevButton = null; - }else{ - var buttonClick; - if (calendar[buttonName]) { - buttonClick = calendar[buttonName]; // calendar method - } - else if (fcViews[buttonName]) { - buttonClick = function() { - button.removeClass(tm + '-state-hover'); // forget why - calendar.changeView(buttonName); - }; - } - if (buttonClick) { - var icon = options.theme ? smartProperty(options.buttonIcons, buttonName) : null; // why are we using smartProperty here? - var text = smartProperty(options.buttonText, buttonName); // why are we using smartProperty here? - var button = $( - "" + - "" + - "" + - (icon ? - "" + - "" + - "" : - text - ) + - "" + - "" + - "" + - "" - ); - if (button) { - button - .click(function() { - if (!button.hasClass(tm + '-state-disabled')) { - buttonClick(); - } - }) - .mousedown(function() { - button - .not('.' + tm + '-state-active') - .not('.' + tm + '-state-disabled') - .addClass(tm + '-state-down'); - }) - .mouseup(function() { - button.removeClass(tm + '-state-down'); - }) - .hover( - function() { - button - .not('.' + tm + '-state-active') - .not('.' + tm + '-state-disabled') - .addClass(tm + '-state-hover'); - }, - function() { - button - .removeClass(tm + '-state-hover') - .removeClass(tm + '-state-down'); - } - ) - .appendTo(e); - if (!prevButton) { - button.addClass(tm + '-corner-left'); - } - prevButton = button; - } - } - } - }); - if (prevButton) { - prevButton.addClass(tm + '-corner-right'); - } - }); - } - return e; - } - - - function updateTitle(html) { - element.find('h2') - .html(html); - } - - - function activateButton(buttonName) { - element.find('span.fc-button-' + buttonName) - .addClass(tm + '-state-active'); - } - - - function deactivateButton(buttonName) { - element.find('span.fc-button-' + buttonName) - .removeClass(tm + '-state-active'); - } - - - function disableButton(buttonName) { - element.find('span.fc-button-' + buttonName) - .addClass(tm + '-state-disabled'); - } - - - function enableButton(buttonName) { - element.find('span.fc-button-' + buttonName) - .removeClass(tm + '-state-disabled'); - } - - -} - -fc.sourceNormalizers = []; -fc.sourceFetchers = []; - -var ajaxDefaults = { - dataType: 'json', - cache: false -}; - -var eventGUID = 1; - - -function EventManager(options, _sources) { - var t = this; - - - // exports - t.isFetchNeeded = isFetchNeeded; - t.fetchEvents = fetchEvents; - t.addEventSource = addEventSource; - t.removeEventSource = removeEventSource; - t.updateEvent = updateEvent; - t.renderEvent = renderEvent; - t.removeEvents = removeEvents; - t.clientEvents = clientEvents; - t.normalizeEvent = normalizeEvent; - - - // imports - var trigger = t.trigger; - var getView = t.getView; - var reportEvents = t.reportEvents; - - - // locals - var stickySource = { events: [] }; - var sources = [ stickySource ]; - var rangeStart, rangeEnd; - var currentFetchID = 0; - var pendingSourceCnt = 0; - var loadingLevel = 0; - var cache = []; - - - for (var i=0; i<_sources.length; i++) { - _addEventSource(_sources[i]); - } - - - - /* Fetching - -----------------------------------------------------------------------------*/ - - - function isFetchNeeded(start, end) { - return !rangeStart || start < rangeStart || end > rangeEnd; - } - - - function fetchEvents(start, end) { - rangeStart = start; - rangeEnd = end; - cache = []; - var fetchID = ++currentFetchID; - var len = sources.length; - pendingSourceCnt = len; - for (var i=0; i)), return null instead - return null; -} - - -function parseISO8601(s, ignoreTimezone) { // ignoreTimezone defaults to false - // derived from http://delete.me.uk/2005/03/iso8601.html - // TODO: for a know glitch/feature, read tests/issue_206_parseDate_dst.html - var m = s.match(/^([0-9]{4})(-([0-9]{2})(-([0-9]{2})([T ]([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?(Z|(([-+])([0-9]{2})(:?([0-9]{2}))?))?)?)?)?$/); - if (!m) { - return null; - } - var date = new Date(m[1], 0, 1); - if (ignoreTimezone || !m[13]) { - var check = new Date(m[1], 0, 1, 9, 0); - if (m[3]) { - date.setMonth(m[3] - 1); - check.setMonth(m[3] - 1); - } - if (m[5]) { - date.setDate(m[5]); - check.setDate(m[5]); - } - fixDate(date, check); - if (m[7]) { - date.setHours(m[7]); - } - if (m[8]) { - date.setMinutes(m[8]); - } - if (m[10]) { - date.setSeconds(m[10]); - } - if (m[12]) { - date.setMilliseconds(Number("0." + m[12]) * 1000); - } - fixDate(date, check); - }else{ - date.setUTCFullYear( - m[1], - m[3] ? m[3] - 1 : 0, - m[5] || 1 - ); - date.setUTCHours( - m[7] || 0, - m[8] || 0, - m[10] || 0, - m[12] ? Number("0." + m[12]) * 1000 : 0 - ); - if (m[14]) { - var offset = Number(m[16]) * 60 + (m[18] ? Number(m[18]) : 0); - offset *= m[15] == '-' ? 1 : -1; - date = new Date(+date + (offset * 60 * 1000)); - } - } - return date; -} - - -function parseTime(s) { // returns minutes since start of day - if (typeof s == 'number') { // an hour - return s * 60; - } - if (typeof s == 'object') { // a Date object - return s.getHours() * 60 + s.getMinutes(); - } - var m = s.match(/(\d+)(?::(\d+))?\s*(\w+)?/); - if (m) { - var h = parseInt(m[1], 10); - if (m[3]) { - h %= 12; - if (m[3].toLowerCase().charAt(0) == 'p') { - h += 12; - } - } - return h * 60 + (m[2] ? parseInt(m[2], 10) : 0); - } -} - - - -/* Date Formatting ------------------------------------------------------------------------------*/ -// TODO: use same function formatDate(date, [date2], format, [options]) - - -function formatDate(date, format, options) { - return formatDates(date, null, format, options); -} - - -function formatDates(date1, date2, format, options) { - options = options || defaults; - var date = date1, - otherDate = date2, - i, len = format.length, c, - i2, formatter, - res = ''; - for (i=0; ii; i2--) { - if (formatter = dateFormatters[format.substring(i, i2)]) { - if (date) { - res += formatter(date, options); - } - i = i2 - 1; - break; - } - } - if (i2 == i) { - if (date) { - res += c; - } - } - } - } - return res; -}; - - -var dateFormatters = { - s : function(d) { return d.getSeconds() }, - ss : function(d) { return zeroPad(d.getSeconds()) }, - m : function(d) { return d.getMinutes() }, - mm : function(d) { return zeroPad(d.getMinutes()) }, - h : function(d) { return d.getHours() % 12 || 12 }, - hh : function(d) { return zeroPad(d.getHours() % 12 || 12) }, - H : function(d) { return d.getHours() }, - HH : function(d) { return zeroPad(d.getHours()) }, - d : function(d) { return d.getDate() }, - dd : function(d) { return zeroPad(d.getDate()) }, - ddd : function(d,o) { return o.dayNamesShort[d.getDay()] }, - dddd: function(d,o) { return o.dayNames[d.getDay()] }, - M : function(d) { return d.getMonth() + 1 }, - MM : function(d) { return zeroPad(d.getMonth() + 1) }, - MMM : function(d,o) { return o.monthNamesShort[d.getMonth()] }, - MMMM: function(d,o) { return o.monthNames[d.getMonth()] }, - yy : function(d) { return (d.getFullYear()+'').substring(2) }, - yyyy: function(d) { return d.getFullYear() }, - t : function(d) { return d.getHours() < 12 ? 'a' : 'p' }, - tt : function(d) { return d.getHours() < 12 ? 'am' : 'pm' }, - T : function(d) { return d.getHours() < 12 ? 'A' : 'P' }, - TT : function(d) { return d.getHours() < 12 ? 'AM' : 'PM' }, - u : function(d) { return formatDate(d, "yyyy-MM-dd'T'HH:mm:ss'Z'") }, - S : function(d) { - var date = d.getDate(); - if (date > 10 && date < 20) { - return 'th'; - } - return ['st', 'nd', 'rd'][date%10-1] || 'th'; - } -}; - - - -fc.applyAll = applyAll; - - -/* Event Date Math ------------------------------------------------------------------------------*/ - - -function exclEndDay(event) { - if (event.end) { - return _exclEndDay(event.end, event.allDay); - }else{ - return addDays(cloneDate(event.start), 1); - } -} - - -function _exclEndDay(end, allDay) { - end = cloneDate(end); - return allDay || end.getHours() || end.getMinutes() ? addDays(end, 1) : clearTime(end); -} - - -function segCmp(a, b) { - return (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start); -} - - -function segsCollide(seg1, seg2) { - return seg1.end > seg2.start && seg1.start < seg2.end; -} - - - -/* Event Sorting ------------------------------------------------------------------------------*/ - - -// event rendering utilities -function sliceSegs(events, visEventEnds, start, end) { - var segs = [], - i, len=events.length, event, - eventStart, eventEnd, - segStart, segEnd, - isStart, isEnd; - for (i=0; i start && eventStart < end) { - if (eventStart < start) { - segStart = cloneDate(start); - isStart = false; - }else{ - segStart = eventStart; - isStart = true; - } - if (eventEnd > end) { - segEnd = cloneDate(end); - isEnd = false; - }else{ - segEnd = eventEnd; - isEnd = true; - } - segs.push({ - event: event, - start: segStart, - end: segEnd, - isStart: isStart, - isEnd: isEnd, - msLength: segEnd - segStart - }); - } - } - return segs.sort(segCmp); -} - - -// event rendering calculation utilities -function stackSegs(segs) { - var levels = [], - i, len = segs.length, seg, - j, collide, k; - for (i=0; i=0; i--) { - res = obj[parts[i].toLowerCase()]; - if (res !== undefined) { - return res; - } - } - return obj['']; -} - - -function htmlEscape(s) { - return s.replace(/&/g, '&') - .replace(//g, '>') - .replace(/'/g, ''') - .replace(/"/g, '"') - .replace(/\n/g, '
    '); -} - - -function cssKey(_element) { - return _element.id + '/' + _element.className + '/' + _element.style.cssText.replace(/(^|;)\s*(top|left|width|height)\s*:[^;]*/ig, ''); -} - - -function disableTextSelection(element) { - element - .attr('unselectable', 'on') - .css('MozUserSelect', 'none') - .bind('selectstart.ui', function() { return false; }); -} - - -/* -function enableTextSelection(element) { - element - .attr('unselectable', 'off') - .css('MozUserSelect', '') - .unbind('selectstart.ui'); -} -*/ - - -function markFirstLast(e) { - e.children() - .removeClass('fc-first fc-last') - .filter(':first-child') - .addClass('fc-first') - .end() - .filter(':last-child') - .addClass('fc-last'); -} - - -function setDayID(cell, date) { - cell.each(function(i, _cell) { - _cell.className = _cell.className.replace(/^fc-\w*/, 'fc-' + dayIDs[date.getDay()]); - // TODO: make a way that doesn't rely on order of classes - }); -} - - -function getSkinCss(event, opt) { - var source = event.source || {}; - var eventColor = event.color; - var sourceColor = source.color; - var optionColor = opt('eventColor'); - var backgroundColor = - event.backgroundColor || - eventColor || - source.backgroundColor || - sourceColor || - opt('eventBackgroundColor') || - optionColor; - var borderColor = - event.borderColor || - eventColor || - source.borderColor || - sourceColor || - opt('eventBorderColor') || - optionColor; - var textColor = - event.textColor || - source.textColor || - opt('eventTextColor'); - var statements = []; - if (backgroundColor) { - statements.push('background-color:' + backgroundColor); - } - if (borderColor) { - statements.push('border-color:' + borderColor); - } - if (textColor) { - statements.push('color:' + textColor); - } - return statements.join(';'); -} - - -function applyAll(functions, thisObj, args) { - if ($.isFunction(functions)) { - functions = [ functions ]; - } - if (functions) { - var i; - var ret; - for (i=0; i" + - "
    "; - table = $(s).appendTo(element); - - head = table.find('thead'); - headCells = head.find('th'); - body = table.find('tbody'); - bodyRows = body.find('tr'); - bodyCells = body.find('td'); - bodyFirstCells = bodyCells.filter(':first-child'); - bodyCellTopInners = bodyRows.eq(0).find('div.fc-day-content div'); - - markFirstLast(head.add(head.find('tr'))); // marks first+last tr/th's - markFirstLast(bodyRows); // marks first+last td's - bodyRows.eq(0).addClass('fc-first'); // fc-last is done in updateCells - - dayBind(bodyCells); - - daySegmentContainer = - $("
    ") - .appendTo(element); - } - - - - function updateCells(firstTime) { - var dowDirty = firstTime || rowCnt == 1; // could the cells' day-of-weeks need updating? - var month = t.start.getMonth(); - var today = clearTime(new Date()); - var cell; - var date; - var row; - - if (dowDirty) { - headCells.each(function(i, _cell) { - cell = $(_cell); - date = indexDate(i); - cell.html(formatDate(date, colFormat)); - setDayID(cell, date); - }); - } - - bodyCells.each(function(i, _cell) { - cell = $(_cell); - date = indexDate(i); - cell.addClass('fc-date-' + date.getDate() + '-' + (date.getMonth()+1)); - if (date.getMonth() == month) { - cell.removeClass('fc-other-month'); - }else{ - cell.addClass('fc-other-month'); - } - if (+date == +today) { - cell.addClass(tm + '-state-highlight fc-today'); - }else{ - cell.removeClass(tm + '-state-highlight fc-today'); - } - cell.find('div.fc-day-number').text(date.getDate()); - if (dowDirty) { - setDayID(cell, date); - } - }); - - bodyRows.each(function(i, _row) { - row = $(_row); - if (i < rowCnt) { - row.show(); - if (i == rowCnt-1) { - row.addClass('fc-last'); - }else{ - row.removeClass('fc-last'); - } - }else{ - row.hide(); - } - }); - } - - - - function setHeight(height) { - viewHeight = height; - - var bodyHeight = viewHeight - head.height(); - var rowHeight; - var rowHeightLast; - var cell; - - if (opt('weekMode') == 'variable') { - rowHeight = rowHeightLast = Math.floor(bodyHeight / (rowCnt==1 ? 2 : 6)); - }else{ - rowHeight = Math.floor(bodyHeight / rowCnt); - rowHeightLast = bodyHeight - rowHeight * (rowCnt-1); - } - - bodyFirstCells.each(function(i, _cell) { - if (i < rowCnt) { - cell = $(_cell); - setMinHeight( - cell.find('> div'), - (i==rowCnt-1 ? rowHeightLast : rowHeight) - vsides(cell) - ); - } - }); - - } - - - function setWidth(width) { - viewWidth = width; - colContentPositions.clear(); - colWidth = Math.floor(viewWidth / colCnt); - setOuterWidth(headCells.slice(0, -1), colWidth); - } - - - - /* Day clicking and binding - -----------------------------------------------------------*/ - - - function dayBind(days) { - days.click(dayClick) - .mousedown(daySelectionMousedown); - } - - - function dayClick(ev) { - if (!opt('selectable')) { // if selectable, SelectionManager will worry about dayClick - var index = parseInt(this.className.match(/fc\-day(\d+)/)[1]); // TODO: maybe use .data - var date = indexDate(index); - trigger('dayClick', this, date, true, ev); - } - } - - - - /* Semi-transparent Overlay Helpers - ------------------------------------------------------*/ - - - function renderDayOverlay(overlayStart, overlayEnd, refreshCoordinateGrid) { // overlayEnd is exclusive - if (refreshCoordinateGrid) { - coordinateGrid.build(); - } - var rowStart = cloneDate(t.visStart); - var rowEnd = addDays(cloneDate(rowStart), colCnt); - for (var i=0; i" + - "" + - "" + - " "; - for (i=0; i"; // fc- needed for setDayID - } - s += - " " + - "" + - "" + - "" + - "" + - " "; - for (i=0; i" + // fc- needed for setDayID - "
    " + - "
    " + - "
     
    " + - "
    " + - "
    " + - ""; - } - s += - " " + - "" + - "" + - ""; - dayTable = $(s).appendTo(element); - dayHead = dayTable.find('thead'); - dayHeadCells = dayHead.find('th').slice(1, -1); - dayBody = dayTable.find('tbody'); - dayBodyCells = dayBody.find('td').slice(0, -1); - dayBodyCellInners = dayBodyCells.find('div.fc-day-content div'); - dayBodyFirstCell = dayBodyCells.eq(0); - dayBodyFirstCellStretcher = dayBodyFirstCell.find('> div'); - - markFirstLast(dayHead.add(dayHead.find('tr'))); - markFirstLast(dayBody.add(dayBody.find('tr'))); - - axisFirstCells = dayHead.find('th:first'); - gutterCells = dayTable.find('.fc-agenda-gutter'); - - slotLayer = - $("
    ") - .appendTo(element); - - if (opt('allDaySlot')) { - - daySegmentContainer = - $("
    ") - .appendTo(slotLayer); - - s = - "" + - "" + - "" + - "" + - "" + - "" + - "
    " + opt('allDayText') + "" + - "
    " + - "
     
    "; - allDayTable = $(s).appendTo(slotLayer); - allDayRow = allDayTable.find('tr'); - - dayBind(allDayRow.find('td')); - - axisFirstCells = axisFirstCells.add(allDayTable.find('th:first')); - gutterCells = gutterCells.add(allDayTable.find('th.fc-agenda-gutter')); - - slotLayer.append( - "
    " + - "
    " + - "
    " - ); - - }else{ - - daySegmentContainer = $([]); // in jQuery 1.4, we can just do $() - - } - - slotScroller = - $("
    ") - .appendTo(slotLayer); - - slotContent = - $("
    ") - .appendTo(slotScroller); - - slotSegmentContainer = - $("
    ") - .appendTo(slotContent); - - s = - "" + - ""; - d = zeroDate(); - maxd = addMinutes(cloneDate(d), maxMinute); - addMinutes(d, minMinute); - slotCnt = 0; - for (i=0; d < maxd; i++) { - minutes = d.getMinutes(); - s += - "" + - "" + - "" + - ""; - addMinutes(d, opt('slotMinutes')); - slotCnt++; - } - s += - "" + - "
    " + - ((!slotNormal || !minutes) ? formatDate(d, opt('axisFormat')) : ' ') + - "" + - "
     
    " + - "
    "; - slotTable = $(s).appendTo(slotContent); - slotTableFirstInner = slotTable.find('div:first'); - - slotBind(slotTable.find('td')); - - axisFirstCells = axisFirstCells.add(slotTable.find('th:first')); - } - - - - function updateCells() { - var i; - var headCell; - var bodyCell; - var date; - var today = clearTime(new Date()); - for (i=0; i= 0) { - addMinutes(d, minMinute + slotIndex * opt('slotMinutes')); - } - return d; - } - - - function colDate(col) { // returns dates with 00:00:00 - return addDays(cloneDate(t.visStart), col*dis+dit); - } - - - function cellIsAllDay(cell) { - return opt('allDaySlot') && !cell.row; - } - - - function dayOfWeekCol(dayOfWeek) { - return ((dayOfWeek - Math.max(firstDay, nwe) + colCnt) % colCnt)*dis+dit; - } - - - - - // get the Y coordinate of the given time on the given day (both Date objects) - function timePosition(day, time) { // both date objects. day holds 00:00 of current day - day = cloneDate(day, true); - if (time < addMinutes(cloneDate(day), minMinute)) { - return 0; - } - if (time >= addMinutes(cloneDate(day), maxMinute)) { - return slotTable.height(); - } - var slotMinutes = opt('slotMinutes'), - minutes = time.getHours()*60 + time.getMinutes() - minMinute, - slotI = Math.floor(minutes / slotMinutes), - slotTop = slotTopCache[slotI]; - if (slotTop === undefined) { - slotTop = slotTopCache[slotI] = slotTable.find('tr:eq(' + slotI + ') td div')[0].offsetTop; //.position().top; // need this optimization??? - } - return Math.max(0, Math.round( - slotTop - 1 + slotHeight * ((minutes % slotMinutes) / slotMinutes) - )); - } - - - function allDayBounds() { - return { - left: axisWidth, - right: viewWidth - gutterWidth - } - } - - - function getAllDayRow(index) { - return allDayRow; - } - - - function defaultEventEnd(event) { - var start = cloneDate(event.start); - if (event.allDay) { - return start; - } - return addMinutes(start, opt('defaultEventMinutes')); - } - - - - /* Selection - ---------------------------------------------------------------------------------*/ - - - function defaultSelectionEnd(startDate, allDay) { - if (allDay) { - return cloneDate(startDate); - } - return addMinutes(cloneDate(startDate), opt('slotMinutes')); - } - - - function renderSelection(startDate, endDate, allDay) { // only for all-day - if (allDay) { - if (opt('allDaySlot')) { - renderDayOverlay(startDate, addDays(cloneDate(endDate), 1), true); - } - }else{ - renderSlotSelection(startDate, endDate); - } - } - - - function renderSlotSelection(startDate, endDate) { - var helperOption = opt('selectHelper'); - coordinateGrid.build(); - if (helperOption) { - var col = dayDiff(startDate, t.visStart) * dis + dit; - if (col >= 0 && col < colCnt) { // only works when times are on same day - var rect = coordinateGrid.rect(0, col, 0, col, slotContent); // only for horizontal coords - var top = timePosition(startDate, startDate); - var bottom = timePosition(startDate, endDate); - if (bottom > top) { // protect against selections that are entirely before or after visible range - rect.top = top; - rect.height = bottom - top; - rect.left += 2; - rect.width -= 5; - if ($.isFunction(helperOption)) { - var helperRes = helperOption(startDate, endDate); - if (helperRes) { - rect.position = 'absolute'; - rect.zIndex = 8; - selectionHelper = $(helperRes) - .css(rect) - .appendTo(slotContent); - } - }else{ - rect.isStart = true; // conside rect a "seg" now - rect.isEnd = true; // - selectionHelper = $(slotSegHtml( - { - title: '', - start: startDate, - end: endDate, - className: ['fc-select-helper'], - editable: false - }, - rect - )); - selectionHelper.css('opacity', opt('dragOpacity')); - } - if (selectionHelper) { - slotBind(selectionHelper); - slotContent.append(selectionHelper); - setOuterWidth(selectionHelper, rect.width, true); // needs to be after appended - setOuterHeight(selectionHelper, rect.height, true); - } - } - } - }else{ - renderSlotOverlay(startDate, endDate); - } - } - - - function clearSelection() { - clearOverlays(); - if (selectionHelper) { - selectionHelper.remove(); - selectionHelper = null; - } - } - - - function slotSelectionMousedown(ev) { - if (ev.which == 1 && opt('selectable')) { // ev.which==1 means left mouse button - unselect(ev); - var dates; - hoverListener.start(function(cell, origCell) { - clearSelection(); - if (cell && cell.col == origCell.col && !cellIsAllDay(cell)) { - var d1 = cellDate(origCell); - var d2 = cellDate(cell); - dates = [ - d1, - addMinutes(cloneDate(d1), opt('slotMinutes')), - d2, - addMinutes(cloneDate(d2), opt('slotMinutes')) - ].sort(cmp); - renderSlotSelection(dates[0], dates[3]); - }else{ - dates = null; - } - }, ev); - $(document).one('mouseup', function(ev) { - hoverListener.stop(); - if (dates) { - if (+dates[0] == +dates[1]) { - reportDayClick(dates[0], false, ev); - } - reportSelection(dates[0], dates[3], false, ev); - } - }); - } - } - - - function reportDayClick(date, allDay, ev) { - trigger('dayClick', dayBodyCells[dayOfWeekCol(date.getDay())], date, allDay, ev); - } - - - - /* External Dragging - --------------------------------------------------------------------------------*/ - - - function dragStart(_dragElement, ev, ui) { - hoverListener.start(function(cell) { - clearOverlays(); - if (cell) { - if (cellIsAllDay(cell)) { - renderCellOverlay(cell.row, cell.col, cell.row, cell.col); - }else{ - var d1 = cellDate(cell); - var d2 = addMinutes(cloneDate(d1), opt('defaultEventMinutes')); - renderSlotOverlay(d1, d2); - } - } - }, ev); - } - - - function dragStop(_dragElement, ev, ui) { - var cell = hoverListener.stop(); - clearOverlays(); - if (cell) { - trigger('drop', _dragElement, cellDate(cell), cellIsAllDay(cell), ev, ui); - } - } - - -} - -function AgendaEventRenderer() { - var t = this; - - - // exports - t.renderEvents = renderEvents; - t.compileDaySegs = compileDaySegs; // for DayEventRenderer - t.clearEvents = clearEvents; - t.slotSegHtml = slotSegHtml; - t.bindDaySeg = bindDaySeg; - - - // imports - DayEventRenderer.call(t); - var opt = t.opt; - var trigger = t.trigger; - //var setOverflowHidden = t.setOverflowHidden; - var isEventDraggable = t.isEventDraggable; - var isEventResizable = t.isEventResizable; - var eventEnd = t.eventEnd; - var reportEvents = t.reportEvents; - var reportEventClear = t.reportEventClear; - var eventElementHandlers = t.eventElementHandlers; - var setHeight = t.setHeight; - var getDaySegmentContainer = t.getDaySegmentContainer; - var getSlotSegmentContainer = t.getSlotSegmentContainer; - var getHoverListener = t.getHoverListener; - var getMaxMinute = t.getMaxMinute; - var getMinMinute = t.getMinMinute; - var timePosition = t.timePosition; - var colContentLeft = t.colContentLeft; - var colContentRight = t.colContentRight; - var renderDaySegs = t.renderDaySegs; - var resizableDayEvent = t.resizableDayEvent; // TODO: streamline binding architecture - var getColCnt = t.getColCnt; - var getColWidth = t.getColWidth; - var getSlotHeight = t.getSlotHeight; - var getBodyContent = t.getBodyContent; - var reportEventElement = t.reportEventElement; - var showEvents = t.showEvents; - var hideEvents = t.hideEvents; - var eventDrop = t.eventDrop; - var eventResize = t.eventResize; - var renderDayOverlay = t.renderDayOverlay; - var clearOverlays = t.clearOverlays; - var calendar = t.calendar; - var formatDate = calendar.formatDate; - var formatDates = calendar.formatDates; - - - - /* Rendering - ----------------------------------------------------------------------------*/ - - - function renderEvents(events, modifiedEventId) { - reportEvents(events); - var i, len=events.length, - dayEvents=[], - slotEvents=[]; - for (i=0; i" + - "
    " + - "
    " + - "
    " + - htmlEscape(formatDates(event.start, event.end, opt('timeFormat'))) + - "
    " + - "
    " + - "
    " + - "
    " + - htmlEscape(event.title) + - "
    " + - "
    " + - "
    " + - "
    "; // close inner - if (seg.isEnd && isEventResizable(event)) { - html += - "
    =
    "; - } - html += - ""; - return html; - } - - - function bindDaySeg(event, eventElement, seg) { - if (isEventDraggable(event)) { - draggableDayEvent(event, eventElement, seg.isStart); - } - if (seg.isEnd && isEventResizable(event)) { - resizableDayEvent(event, eventElement, seg); - } - eventElementHandlers(event, eventElement); - // needs to be after, because resizableDayEvent might stopImmediatePropagation on click - } - - - function bindSlotSeg(event, eventElement, seg) { - var timeElement = eventElement.find('div.fc-event-time'); - if (isEventDraggable(event)) { - draggableSlotEvent(event, eventElement, timeElement); - } - if (seg.isEnd && isEventResizable(event)) { - resizableSlotEvent(event, eventElement, timeElement); - } - eventElementHandlers(event, eventElement); - } - - - - /* Dragging - -----------------------------------------------------------------------------------*/ - - - // when event starts out FULL-DAY - - function draggableDayEvent(event, eventElement, isStart) { - var origWidth; - var revert; - var allDay=true; - var dayDelta; - var dis = opt('isRTL') ? -1 : 1; - var hoverListener = getHoverListener(); - var colWidth = getColWidth(); - var slotHeight = getSlotHeight(); - var minMinute = getMinMinute(); - eventElement.draggable({ - zIndex: 9, - opacity: opt('dragOpacity', 'month'), // use whatever the month view was using - revertDuration: opt('dragRevertDuration'), - start: function(ev, ui) { - trigger('eventDragStart', eventElement, event, ev, ui); - hideEvents(event, eventElement); - origWidth = eventElement.width(); - hoverListener.start(function(cell, origCell, rowDelta, colDelta) { - clearOverlays(); - if (cell) { - //setOverflowHidden(true); - revert = false; - dayDelta = colDelta * dis; - if (!cell.row) { - // on full-days - renderDayOverlay( - addDays(cloneDate(event.start), dayDelta), - addDays(exclEndDay(event), dayDelta) - ); - resetElement(); - }else{ - // mouse is over bottom slots - if (isStart) { - if (allDay) { - // convert event to temporary slot-event - eventElement.width(colWidth - 10); // don't use entire width - setOuterHeight( - eventElement, - slotHeight * Math.round( - (event.end ? ((event.end - event.start) / MINUTE_MS) : opt('defaultEventMinutes')) - / opt('slotMinutes') - ) - ); - eventElement.draggable('option', 'grid', [colWidth, 1]); - allDay = false; - } - }else{ - revert = true; - } - } - revert = revert || (allDay && !dayDelta); - }else{ - resetElement(); - //setOverflowHidden(false); - revert = true; - } - eventElement.draggable('option', 'revert', revert); - }, ev, 'drag'); - }, - stop: function(ev, ui) { - hoverListener.stop(); - clearOverlays(); - trigger('eventDragStop', eventElement, event, ev, ui); - if (revert) { - // hasn't moved or is out of bounds (draggable has already reverted) - resetElement(); - eventElement.css('filter', ''); // clear IE opacity side-effects - showEvents(event, eventElement); - }else{ - // changed! - var minuteDelta = 0; - if (!allDay) { - minuteDelta = Math.round((eventElement.offset().top - getBodyContent().offset().top) / slotHeight) - * opt('slotMinutes') - + minMinute - - (event.start.getHours() * 60 + event.start.getMinutes()); - } - eventDrop(this, event, dayDelta, minuteDelta, allDay, ev, ui); - } - //setOverflowHidden(false); - } - }); - function resetElement() { - if (!allDay) { - eventElement - .width(origWidth) - .height('') - .draggable('option', 'grid', null); - allDay = true; - } - } - } - - - // when event starts out IN TIMESLOTS - - function draggableSlotEvent(event, eventElement, timeElement) { - var origPosition; - var allDay=false; - var dayDelta; - var minuteDelta; - var prevMinuteDelta; - var dis = opt('isRTL') ? -1 : 1; - var hoverListener = getHoverListener(); - var colCnt = getColCnt(); - var colWidth = getColWidth(); - var slotHeight = getSlotHeight(); - eventElement.draggable({ - zIndex: 9, - scroll: false, - grid: [colWidth, slotHeight], - axis: colCnt==1 ? 'y' : false, - opacity: opt('dragOpacity'), - revertDuration: opt('dragRevertDuration'), - start: function(ev, ui) { - trigger('eventDragStart', eventElement, event, ev, ui); - hideEvents(event, eventElement); - origPosition = eventElement.position(); - minuteDelta = prevMinuteDelta = 0; - hoverListener.start(function(cell, origCell, rowDelta, colDelta) { - eventElement.draggable('option', 'revert', !cell); - clearOverlays(); - if (cell) { - dayDelta = colDelta * dis; - if (opt('allDaySlot') && !cell.row) { - // over full days - if (!allDay) { - // convert to temporary all-day event - allDay = true; - timeElement.hide(); - eventElement.draggable('option', 'grid', null); - } - renderDayOverlay( - addDays(cloneDate(event.start), dayDelta), - addDays(exclEndDay(event), dayDelta) - ); - }else{ - // on slots - resetElement(); - } - } - }, ev, 'drag'); - }, - drag: function(ev, ui) { - minuteDelta = Math.round((ui.position.top - origPosition.top) / slotHeight) * opt('slotMinutes'); - if (minuteDelta != prevMinuteDelta) { - if (!allDay) { - updateTimeText(minuteDelta); - } - prevMinuteDelta = minuteDelta; - } - }, - stop: function(ev, ui) { - var cell = hoverListener.stop(); - clearOverlays(); - trigger('eventDragStop', eventElement, event, ev, ui); - if (cell && (dayDelta || minuteDelta || allDay)) { - // changed! - eventDrop(this, event, dayDelta, allDay ? 0 : minuteDelta, allDay, ev, ui); - }else{ - // either no change or out-of-bounds (draggable has already reverted) - resetElement(); - eventElement.css('filter', ''); // clear IE opacity side-effects - eventElement.css(origPosition); // sometimes fast drags make event revert to wrong position - updateTimeText(0); - showEvents(event, eventElement); - } - } - }); - function updateTimeText(minuteDelta) { - var newStart = addMinutes(cloneDate(event.start), minuteDelta); - var newEnd; - if (event.end) { - newEnd = addMinutes(cloneDate(event.end), minuteDelta); - } - timeElement.text(formatDates(newStart, newEnd, opt('timeFormat'))); - } - function resetElement() { - // convert back to original slot-event - if (allDay) { - timeElement.css('display', ''); // show() was causing display=inline - eventElement.draggable('option', 'grid', [colWidth, slotHeight]); - allDay = false; - } - } - } - - - - /* Resizing - --------------------------------------------------------------------------------------*/ - - - function resizableSlotEvent(event, eventElement, timeElement) { - var slotDelta, prevSlotDelta; - var slotHeight = getSlotHeight(); - eventElement.resizable({ - handles: { - s: 'div.ui-resizable-s' - }, - grid: slotHeight, - start: function(ev, ui) { - slotDelta = prevSlotDelta = 0; - hideEvents(event, eventElement); - eventElement.css('z-index', 9); - trigger('eventResizeStart', this, event, ev, ui); - }, - resize: function(ev, ui) { - // don't rely on ui.size.height, doesn't take grid into account - slotDelta = Math.round((Math.max(slotHeight, eventElement.height()) - ui.originalSize.height) / slotHeight); - if (slotDelta != prevSlotDelta) { - timeElement.text( - formatDates( - event.start, - (!slotDelta && !event.end) ? null : // no change, so don't display time range - addMinutes(eventEnd(event), opt('slotMinutes')*slotDelta), - opt('timeFormat') - ) - ); - prevSlotDelta = slotDelta; - } - }, - stop: function(ev, ui) { - trigger('eventResizeStop', this, event, ev, ui); - if (slotDelta) { - eventResize(this, event, 0, opt('slotMinutes')*slotDelta, ev, ui); - }else{ - eventElement.css('z-index', 8); - showEvents(event, eventElement); - // BUG: if event was really short, need to put title back in span - } - } - }); - } - - -} - - -function countForwardSegs(levels) { - var i, j, k, level, segForward, segBack; - for (i=levels.length-1; i>0; i--) { - level = levels[i]; - for (j=0; j"); - var elements; - var segmentContainer = getDaySegmentContainer(); - var i; - var segCnt = segs.length; - var element; - tempContainer[0].innerHTML = daySegHTML(segs); // faster than .html() - elements = tempContainer.children(); - segmentContainer.append(elements); - daySegElementResolve(segs, elements); - daySegCalcHSides(segs); - daySegSetWidths(segs); - daySegCalcHeights(segs); - daySegSetTops(segs, getRowTops(getRowDivs())); - elements = []; - for (i=0; i" + - ""; - if (!event.allDay && seg.isStart) { - html += - "" + - htmlEscape(formatDates(event.start, event.end, opt('timeFormat'))) + - ""; - } - html += - "" + htmlEscape(event.title) + "" + - "
    "; - if (seg.isEnd && isEventResizable(event)) { - html += - "
    " + - "   " + // makes hit area a lot better for IE6/7 - "
    "; - } - html += - ""; - seg.left = left; - seg.outerWidth = right - left; - seg.startCol = leftCol; - seg.endCol = rightCol + 1; // needs to be exclusive - } - return html; - } - - - function daySegElementResolve(segs, elements) { // sets seg.element - var i; - var segCnt = segs.length; - var seg; - var event; - var element; - var triggerRes; - for (i=0; i div'); // optimal selector? - } - return rowDivs; - } - - - function getRowTops(rowDivs) { - var i; - var rowCnt = rowDivs.length; - var tops = []; - for (i=0; i selection for IE - element - .mousedown(function(ev) { // prevent native selection for others - ev.preventDefault(); - }) - .click(function(ev) { - if (isResizing) { - ev.preventDefault(); // prevent link from being visited (only method that worked in IE6) - ev.stopImmediatePropagation(); // prevent fullcalendar eventClick handler from being called - // (eventElementHandlers needs to be bound after resizableDayEvent) - } - }); - - handle.mousedown(function(ev) { - if (ev.which != 1) { - return; // needs to be left mouse button - } - isResizing = true; - var hoverListener = t.getHoverListener(); - var rowCnt = getRowCnt(); - var colCnt = getColCnt(); - var dis = rtl ? -1 : 1; - var dit = rtl ? colCnt-1 : 0; - var elementTop = element.css('top'); - var dayDelta; - var helpers; - var eventCopy = $.extend({}, event); - var minCell = dateCell(event.start); - clearSelection(); - $('body') - .css('cursor', direction + '-resize') - .one('mouseup', mouseup); - trigger('eventResizeStart', this, event, ev); - hoverListener.start(function(cell, origCell) { - if (cell) { - var r = Math.max(minCell.row, cell.row); - var c = cell.col; - if (rowCnt == 1) { - r = 0; // hack for all-day area in agenda views - } - if (r == minCell.row) { - if (rtl) { - c = Math.min(minCell.col, c); - }else{ - c = Math.max(minCell.col, c); - } - } - dayDelta = (r*7 + c*dis+dit) - (origCell.row*7 + origCell.col*dis+dit); - var newEnd = addDays(eventEnd(event), dayDelta, true); - if (dayDelta) { - eventCopy.end = newEnd; - var oldHelpers = helpers; - helpers = renderTempDaySegs(compileDaySegs([eventCopy]), seg.row, elementTop); - helpers.find('*').css('cursor', direction + '-resize'); - if (oldHelpers) { - oldHelpers.remove(); - } - hideEvents(event); - }else{ - if (helpers) { - showEvents(event); - helpers.remove(); - helpers = null; - } - } - clearOverlays(); - renderDayOverlay(event.start, addDays(cloneDate(newEnd), 1)); // coordinate grid already rebuild at hoverListener.start - } - }, ev); - - function mouseup(ev) { - trigger('eventResizeStop', this, event, ev); - $('body').css('cursor', ''); - hoverListener.stop(); - clearOverlays(); - if (dayDelta) { - eventResize(this, event, dayDelta, 0, ev); - // event redraw will clear helpers - } - // otherwise, the drag handler already restored the old events - - setTimeout(function() { // make this happen after the element's click event - isResizing = false; - },0); - } - - }); - } - - -} - -//BUG: unselect needs to be triggered when events are dragged+dropped - -function SelectionManager() { - var t = this; - - - // exports - t.select = select; - t.unselect = unselect; - t.reportSelection = reportSelection; - t.daySelectionMousedown = daySelectionMousedown; - - - // imports - var opt = t.opt; - var trigger = t.trigger; - var defaultSelectionEnd = t.defaultSelectionEnd; - var renderSelection = t.renderSelection; - var clearSelection = t.clearSelection; - - - // locals - var selected = false; - - - - // unselectAuto - if (opt('selectable') && opt('unselectAuto')) { - $(document).mousedown(function(ev) { - var ignore = opt('unselectCancel'); - if (ignore) { - if ($(ev.target).parents(ignore).length) { // could be optimized to stop after first match - return; - } - } - unselect(ev); - }); - } - - - function select(startDate, endDate, allDay) { - unselect(); - if (!endDate) { - endDate = defaultSelectionEnd(startDate, allDay); - } - renderSelection(startDate, endDate, allDay); - reportSelection(startDate, endDate, allDay); - } - - - function unselect(ev) { - if (selected) { - selected = false; - clearSelection(); - trigger('unselect', null, ev); - } - } - - - function reportSelection(startDate, endDate, allDay, ev) { - selected = true; - trigger('select', null, startDate, endDate, allDay, ev); - } - - - function daySelectionMousedown(ev) { // not really a generic manager method, oh well - var cellDate = t.cellDate; - var cellIsAllDay = t.cellIsAllDay; - var hoverListener = t.getHoverListener(); - var reportDayClick = t.reportDayClick; // this is hacky and sort of weird - if (ev.which == 1 && opt('selectable')) { // which==1 means left mouse button - unselect(ev); - var _mousedownElement = this; - var dates; - hoverListener.start(function(cell, origCell) { // TODO: maybe put cellDate/cellIsAllDay info in cell - clearSelection(); - if (cell && cellIsAllDay(cell)) { - dates = [ cellDate(origCell), cellDate(cell) ].sort(cmp); - renderSelection(dates[0], dates[1], true); - }else{ - dates = null; - } - }, ev); - $(document).one('mouseup', function(ev) { - hoverListener.stop(); - if (dates) { - if (+dates[0] == +dates[1]) { - reportDayClick(dates[0], true, ev); - } - reportSelection(dates[0], dates[1], true, ev); - } - }); - } - } - - -} - -function OverlayManager() { - var t = this; - - - // exports - t.renderOverlay = renderOverlay; - t.clearOverlays = clearOverlays; - - - // locals - var usedOverlays = []; - var unusedOverlays = []; - - - function renderOverlay(rect, parent) { - var e = unusedOverlays.shift(); - if (!e) { - e = $("
    "); - } - if (e[0].parentNode != parent[0]) { - e.appendTo(parent); - } - usedOverlays.push(e.css(rect).show()); - return e; - } - - - function clearOverlays() { - var e; - while (e = usedOverlays.shift()) { - unusedOverlays.push(e.hide().unbind()); - } - } - - -} - -function CoordinateGrid(buildFunc) { - - var t = this; - var rows; - var cols; - - - t.build = function() { - rows = []; - cols = []; - buildFunc(rows, cols); - }; - - - t.cell = function(x, y) { - var rowCnt = rows.length; - var colCnt = cols.length; - var i, r=-1, c=-1; - for (i=0; i= rows[i][0] && y < rows[i][1]) { - r = i; - break; - } - } - for (i=0; i= cols[i][0] && x < cols[i][1]) { - c = i; - break; - } - } - return (r>=0 && c>=0) ? { row:r, col:c } : null; - }; - - - t.rect = function(row0, col0, row1, col1, originElement) { // row1,col1 is inclusive - var origin = originElement.offset(); - return { - top: rows[row0][0] - origin.top, - left: cols[col0][0] - origin.left, - width: cols[col1][1] - cols[col0][0], - height: rows[row1][1] - rows[row0][0] - }; - }; - -} - -function HoverListener(coordinateGrid) { - - - var t = this; - var bindType; - var change; - var firstCell; - var cell; - - - t.start = function(_change, ev, _bindType) { - change = _change; - firstCell = cell = null; - coordinateGrid.build(); - mouse(ev); - bindType = _bindType || 'mousemove'; - $(document).bind(bindType, mouse); - }; - - - function mouse(ev) { - var newCell = coordinateGrid.cell(ev.pageX, ev.pageY); - if (!newCell != !cell || newCell && (newCell.row != cell.row || newCell.col != cell.col)) { - if (newCell) { - if (!firstCell) { - firstCell = newCell; - } - change(newCell, firstCell, newCell.row-firstCell.row, newCell.col-firstCell.col); - }else{ - change(newCell, firstCell); - } - cell = newCell; - } - } - - - t.stop = function() { - $(document).unbind(bindType, mouse); - return cell; - }; - - -} - -function HorizontalPositionCache(getElement) { - - var t = this, - elements = {}, - lefts = {}, - rights = {}; - - function e(i) { - return elements[i] = elements[i] || getElement(i); - } - - t.left = function(i) { - return lefts[i] = lefts[i] === undefined ? e(i).position().left : lefts[i]; - }; - - t.right = function(i) { - return rights[i] = rights[i] === undefined ? t.left(i) + e(i).width() : rights[i]; - }; - - t.clear = function() { - elements = {}; - lefts = {}; - rights = {}; - }; - -} - -})(jQuery); diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/fullcalendar.min.js.svn-base b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/fullcalendar.min.js.svn-base deleted file mode 100755 index fc06a89..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/fullcalendar.min.js.svn-base +++ /dev/null @@ -1,113 +0,0 @@ -/* - - FullCalendar v1.5.2 - http://arshaw.com/fullcalendar/ - - Use fullcalendar.css for basic styling. - For event drag & drop, requires jQuery UI draggable. - For event resizing, requires jQuery UI resizable. - - Copyright (c) 2011 Adam Shaw - Dual licensed under the MIT and GPL licenses, located in - MIT-LICENSE.txt and GPL-LICENSE.txt respectively. - - Date: Sun Aug 21 22:06:09 2011 -0700 - -*/ -(function(m,oa){function wb(a){m.extend(true,Ya,a)}function Yb(a,b,e){function d(k){if(E){u();q();ma();S(k)}else f()}function f(){B=b.theme?"ui":"fc";a.addClass("fc");b.isRTL&&a.addClass("fc-rtl");b.theme&&a.addClass("ui-widget");E=m("
    ").prependTo(a);C=new Zb(X,b);(P=C.render())&&a.prepend(P);y(b.defaultView);m(window).resize(na);t()||g()}function g(){setTimeout(function(){!n.start&&t()&&S()},0)}function l(){m(window).unbind("resize",na);C.destroy(); -E.remove();a.removeClass("fc fc-rtl ui-widget")}function j(){return i.offsetWidth!==0}function t(){return m("body")[0].offsetWidth!==0}function y(k){if(!n||k!=n.name){F++;pa();var D=n,Z;if(D){(D.beforeHide||xb)();Za(E,E.height());D.element.hide()}else Za(E,1);E.css("overflow","hidden");if(n=Y[k])n.element.show();else n=Y[k]=new Ja[k](Z=s=m("
    ").appendTo(E),X);D&&C.deactivateButton(D.name);C.activateButton(k);S();E.css("overflow","");D&& -Za(E,1);Z||(n.afterShow||xb)();F--}}function S(k){if(j()){F++;pa();o===oa&&u();var D=false;if(!n.start||k||r=n.end){n.render(r,k||0);fa(true);D=true}else if(n.sizeDirty){n.clearEvents();fa();D=true}else if(n.eventsDirty){n.clearEvents();D=true}n.sizeDirty=false;n.eventsDirty=false;ga(D);W=a.outerWidth();C.updateTitle(n.title);k=new Date;k>=n.start&&k").append(m("").append(f("left")).append(f("center")).append(f("right")))}function d(){Q.remove()}function f(u){var fa=m("");(u=b.header[u])&&m.each(u.split(" "),function(na){na>0&&fa.append("");var ga; -m.each(this.split(","),function(ra,sa){if(sa=="title"){fa.append("

     

    ");ga&&ga.addClass(q+"-corner-right");ga=null}else{var ha;if(a[sa])ha=a[sa];else if(Ja[sa])ha=function(){ma.removeClass(q+"-state-hover");a.changeView(sa)};if(ha){ra=b.theme?jb(b.buttonIcons,sa):null;var da=jb(b.buttonText,sa),ma=m(""+(ra?"":da)+"");if(ma){ma.click(function(){ma.hasClass(q+"-state-disabled")||ha()}).mousedown(function(){ma.not("."+q+"-state-active").not("."+q+"-state-disabled").addClass(q+"-state-down")}).mouseup(function(){ma.removeClass(q+"-state-down")}).hover(function(){ma.not("."+q+"-state-active").not("."+q+"-state-disabled").addClass(q+"-state-hover")},function(){ma.removeClass(q+"-state-hover").removeClass(q+"-state-down")}).appendTo(fa); -ga||ma.addClass(q+"-corner-left");ga=ma}}}});ga&&ga.addClass(q+"-corner-right")});return fa}function g(u){Q.find("h2").html(u)}function l(u){Q.find("span.fc-button-"+u).addClass(q+"-state-active")}function j(u){Q.find("span.fc-button-"+u).removeClass(q+"-state-active")}function t(u){Q.find("span.fc-button-"+u).addClass(q+"-state-disabled")}function y(u){Q.find("span.fc-button-"+u).removeClass(q+"-state-disabled")}var S=this;S.render=e;S.destroy=d;S.updateTitle=g;S.activateButton=l;S.deactivateButton= -j;S.disableButton=t;S.enableButton=y;var Q=m([]),q}function $b(a,b){function e(c,z){return!ca||cka}function d(c,z){ca=c;ka=z;L=[];c=++qa;G=z=U.length;for(var H=0;Hl;y--)if(S=dc[e.substring(l,y)]){if(f)Q+=S(f,d);l=y-1;break}if(y==l)if(f)Q+=t}}return Q}function Ua(a){return a.end?ec(a.end,a.allDay):ba(N(a.start),1)}function ec(a,b){a=N(a);return b||a.getHours()||a.getMinutes()?ba(a,1):Ka(a)}function fc(a,b){return(b.msLength-a.msLength)*100+(a.event.start-b.event.start)}function Cb(a,b){return a.end>b.start&&a.starte&&td){y=N(d);Q=false}else{y=y;Q=true}f.push({event:j,start:t,end:y,isStart:S,isEnd:Q,msLength:y-t})}}return f.sort(fc)}function ob(a){var b=[],e,d=a.length,f,g,l,j;for(e=0;e=0;e--){d=a[b[e].toLowerCase()];if(d!== -oa)return d}return a[""]}function Qa(a){return a.replace(/&/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""").replace(/\n/g,"
    ")}function Ib(a){return a.id+"/"+a.className+"/"+a.style.cssText.replace(/(^|;)\s*(top|left|width|height)\s*:[^;]*/ig,"")}function qb(a){a.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})}function ab(a){a.children().removeClass("fc-first fc-last").filter(":first-child").addClass("fc-first").end().filter(":last-child").addClass("fc-last")} -function rb(a,b){a.each(function(e,d){d.className=d.className.replace(/^fc-\w*/,"fc-"+lc[b.getDay()])})}function Jb(a,b){var e=a.source||{},d=a.color,f=e.color,g=b("eventColor"),l=a.backgroundColor||d||e.backgroundColor||f||b("eventBackgroundColor")||g;d=a.borderColor||d||e.borderColor||f||b("eventBorderColor")||g;a=a.textColor||e.textColor||b("eventTextColor");b=[];l&&b.push("background-color:"+l);d&&b.push("border-color:"+d);a&&b.push("color:"+a);return b.join(";")}function $a(a,b,e){if(m.isFunction(a))a= -[a];if(a){var d,f;for(d=0;d";for(aa=0;aa";R+="";for(aa=0;aa";for(V=0;V
    "+(I?"
    ":"")+"
     
    ";R+=""}R+="";w= -m(R).appendTo(a);K=w.find("thead");i=K.find("th");C=w.find("tbody");P=C.find("tr");E=C.find("td");B=E.filter(":first-child");n=P.eq(0).find("div.fc-day-content div");ab(K.add(K.find("tr")));ab(P);P.eq(0).addClass("fc-first");y(E);Y=m("
    ").appendTo(a)}function l(w){var I=w||v==1,R=p.start.getMonth(),V=Ka(new Date),ea,aa,va;I&&i.each(function(wa,Ga){ea=m(Ga);aa=ca(wa);ea.html(ya(aa,$));rb(ea,aa)});E.each(function(wa,Ga){ea=m(Ga);aa=ca(wa);aa.getMonth()== -R?ea.removeClass("fc-other-month"):ea.addClass("fc-other-month");+aa==+V?ea.addClass(la+"-state-highlight fc-today"):ea.removeClass(la+"-state-highlight fc-today");ea.find("div.fc-day-number").text(aa.getDate());I&&rb(ea,aa)});P.each(function(wa,Ga){va=m(Ga);if(wa div"),(ea==v-1?R:I)-Sa(V))}})}function t(w){W=w;M.clear();s=Math.floor(W/F);Va(i.slice(0,-1),s)}function y(w){w.click(S).mousedown(X)}function S(w){if(!L("selectable")){var I=parseInt(this.className.match(/fc\-day(\d+)/)[1]);I=ca(I);c("dayClick",this,I,true,w)}}function Q(w,I,R){R&&r.build();R=N(p.visStart);for(var V=ba(N(R),F),ea=0;ea ";for(A=0;A";x+="  ";for(A=0;A
     
    ";x+=" ";v=m(x).appendTo(a);F=v.find("thead");r=F.find("th").slice(1,-1);J=v.find("tbody");M=J.find("td").slice(0,-1);k=M.find("div.fc-day-content div");D=M.eq(0);Z=D.find("> div");ab(F.add(F.find("tr")));ab(J.add(J.find("tr")));aa=F.find("th:first");va=v.find(".fc-agenda-gutter");ja=m("
    ").appendTo(a); -if(i("allDaySlot")){ia=m("
    ").appendTo(ja);x="
    "+i("allDayText")+"
     
    ";la=m(x).appendTo(ja);$=la.find("tr");q($.find("td"));aa=aa.add(la.find("th:first"));va=va.add(la.find("th.fc-agenda-gutter"));ja.append("
    ")}else ia=m([]);w=m("
    ").appendTo(ja);I=m("
    ").appendTo(w);R=m("
    ").appendTo(I);x="";ta=zb();za=xa(N(ta),bb);xa(ta,La);for(A=tb=0;ta";xa(ta,i("slotMinutes"));tb++}x+="
    "+(!Ea||!Da?s(ta,i("axisFormat")):" ")+"
     
    ";V=m(x).appendTo(I);ea=V.find("div:first");u(V.find("td"));aa=aa.add(V.find("th:first"))}function l(){var h,O,x,A,ta=Ka(new Date);for(h=0;h=0&&xa(O,La+h*i("slotMinutes"));return O}function ua(h){return ba(N(K.visStart),h*Ha+Ia)}function pa(h){return i("allDaySlot")&&!h.row}function U(h){return(h-Math.max(Tb,Sb)+Ba)%Ba*Ha+Ia}function ca(h,O){h=N(h,true);if(O=xa(N(h),bb))return V.height(); -h=i("slotMinutes");O=O.getHours()*60+O.getMinutes()-La;var x=Math.floor(O/h),A=ub[x];if(A===oa)A=ub[x]=V.find("tr:eq("+x+") td div")[0].offsetTop;return Math.max(0,Math.round(A-1+Xa*(O%h/h)))}function ka(){return{left:Ma,right:Ga-vb}}function qa(){return $}function G(h){var O=N(h.start);if(h.allDay)return O;return xa(O,i("defaultEventMinutes"))}function p(h,O){if(O)return N(h);return xa(N(h),i("slotMinutes"))}function L(h,O,x){if(x)i("allDaySlot")&&na(h,ba(N(O),1),true);else c(h,O)}function c(h,O){var x= -i("selectHelper");Na.build();if(x){var A=Ca(h,K.visStart)*Ha+Ia;if(A>=0&&Ata){A.top=ta;A.height=za-ta;A.left+=2;A.width-=5;if(m.isFunction(x)){if(h=x(h,O)){A.position="absolute";A.zIndex=8;wa=m(h).css(A).appendTo(I)}}else{A.isStart=true;A.isEnd=true;wa=m(o({title:"",start:h,end:O,className:["fc-select-helper"],editable:false},A));wa.css("opacity",i("dragOpacity"))}if(wa){u(wa);I.append(wa);Va(wa,A.width,true);Eb(wa,A.height,true)}}}}else ra(h, -O)}function z(){B();if(wa){wa.remove();wa=null}}function H(h){if(h.which==1&&i("selectable")){Y(h);var O;Ra.start(function(x,A){z();if(x&&x.col==A.col&&!pa(x)){A=ma(A);x=ma(x);O=[A,xa(N(A),i("slotMinutes")),x,xa(N(x),i("slotMinutes"))].sort(Gb);c(O[0],O[3])}else O=null},h);m(document).one("mouseup",function(x){Ra.stop();if(O){+O[0]==+O[1]&&T(O[0],false,x);n(O[0],O[3],false,x)}})}}function T(h,O,x){C("dayClick",M[U(h.getDay())],h,O,x)}function X(h,O){Ra.start(function(x){B();if(x)if(pa(x))ga(x.row, -x.col,x.row,x.col);else{x=ma(x);var A=xa(N(x),i("defaultEventMinutes"));ra(x,A)}},O)}function ya(h,O,x){var A=Ra.stop();B();A&&C("drop",h,ma(A),pa(A),O,x)}var K=this;K.renderAgenda=d;K.setWidth=t;K.setHeight=j;K.beforeHide=S;K.afterShow=Q;K.defaultEventEnd=G;K.timePosition=ca;K.dayOfWeekCol=U;K.dateCell=da;K.cellDate=ma;K.cellIsAllDay=pa;K.allDayRow=qa;K.allDayBounds=ka;K.getHoverListener=function(){return Ra};K.colContentLeft=sa;K.colContentRight=ha;K.getDaySegmentContainer=function(){return ia}; -K.getSlotSegmentContainer=function(){return R};K.getMinMinute=function(){return La};K.getMaxMinute=function(){return bb};K.getBodyContent=function(){return I};K.getRowCnt=function(){return 1};K.getColCnt=function(){return Ba};K.getColWidth=function(){return db};K.getSlotHeight=function(){return Xa};K.defaultSelectionEnd=p;K.renderDayOverlay=na;K.renderSelection=L;K.clearSelection=z;K.reportDayClick=T;K.dragStart=X;K.dragStop=ya;Kb.call(K,a,b,e);Lb.call(K);Mb.call(K);sc.call(K);var i=K.opt,C=K.trigger, -P=K.clearEvents,E=K.renderOverlay,B=K.clearOverlays,n=K.reportSelection,Y=K.unselect,W=K.daySelectionMousedown,o=K.slotSegHtml,s=b.formatDate,v,F,r,J,M,k,D,Z,ja,ia,la,$,w,I,R,V,ea,aa,va,wa,Ga,Wb,Ma,db,vb,Xa,Xb,Ba,tb,Na,Ra,cb,ub={},Wa,Tb,Sb,Ub,Ha,Ia,La,bb,Vb;qb(a.addClass("fc-agenda"));Na=new Nb(function(h,O){function x(eb){return Math.max(Ea,Math.min(tc,eb))}var A,ta,za;r.each(function(eb,uc){A=m(uc);ta=A.offset().left;if(eb)za[1]=ta;za=[ta];O[eb]=za});za[1]=ta+A.outerWidth();if(i("allDaySlot")){A= -$;ta=A.offset().top;h[0]=[ta,ta+A.outerHeight()]}for(var Da=I.offset().top,Ea=w.offset().top,tc=Ea+w.outerHeight(),fb=0;fb
    "+Qa(W(o.start,o.end,u("timeFormat")))+"
    "+Qa(o.title)+"
    ";if(s.isEnd&&ga(o))v+="
    =
    "; -v+="";return v}function j(o,s,v){na(o)&&y(o,s,v.isStart);v.isEnd&&ga(o)&&c(o,s,v);da(o,s)}function t(o,s,v){var F=s.find("div.fc-event-time");na(o)&&S(o,s,F);v.isEnd&&ga(o)&&Q(o,s,F);da(o,s)}function y(o,s,v){function F(){if(!M){s.width(r).height("").draggable("option","grid",null);M=true}}var r,J,M=true,k,D=u("isRTL")?-1:1,Z=U(),ja=H(),ia=T(),la=ka();s.draggable({zIndex:9,opacity:u("dragOpacity","month"),revertDuration:u("dragRevertDuration"),start:function($,w){fa("eventDragStart", -s,o,$,w);i(o,s);r=s.width();Z.start(function(I,R,V,ea){B();if(I){J=false;k=ea*D;if(I.row)if(v){if(M){s.width(ja-10);Eb(s,ia*Math.round((o.end?(o.end-o.start)/wc:u("defaultEventMinutes"))/u("slotMinutes")));s.draggable("option","grid",[ja,1]);M=false}}else J=true;else{E(ba(N(o.start),k),ba(Ua(o),k));F()}J=J||M&&!k}else{F();J=true}s.draggable("option","revert",J)},$,"drag")},stop:function($,w){Z.stop();B();fa("eventDragStop",s,o,$,w);if(J){F();s.css("filter","");K(o,s)}else{var I=0;M||(I=Math.round((s.offset().top- -X().offset().top)/ia)*u("slotMinutes")+la-(o.start.getHours()*60+o.start.getMinutes()));C(this,o,k,I,M,$,w)}}})}function S(o,s,v){function F(I){var R=xa(N(o.start),I),V;if(o.end)V=xa(N(o.end),I);v.text(W(R,V,u("timeFormat")))}function r(){if(M){v.css("display","");s.draggable("option","grid",[$,w]);M=false}}var J,M=false,k,D,Z,ja=u("isRTL")?-1:1,ia=U(),la=z(),$=H(),w=T();s.draggable({zIndex:9,scroll:false,grid:[$,w],axis:la==1?"y":false,opacity:u("dragOpacity"),revertDuration:u("dragRevertDuration"), -start:function(I,R){fa("eventDragStart",s,o,I,R);i(o,s);J=s.position();D=Z=0;ia.start(function(V,ea,aa,va){s.draggable("option","revert",!V);B();if(V){k=va*ja;if(u("allDaySlot")&&!V.row){if(!M){M=true;v.hide();s.draggable("option","grid",null)}E(ba(N(o.start),k),ba(Ua(o),k))}else r()}},I,"drag")},drag:function(I,R){D=Math.round((R.position.top-J.top)/w)*u("slotMinutes");if(D!=Z){M||F(D);Z=D}},stop:function(I,R){var V=ia.stop();B();fa("eventDragStop",s,o,I,R);if(V&&(k||D||M))C(this,o,k,M?0:D,M,I,R); -else{r();s.css("filter","");s.css(J);F(0);K(o,s)}}})}function Q(o,s,v){var F,r,J=T();s.resizable({handles:{s:"div.ui-resizable-s"},grid:J,start:function(M,k){F=r=0;i(o,s);s.css("z-index",9);fa("eventResizeStart",this,o,M,k)},resize:function(M,k){F=Math.round((Math.max(J,s.height())-k.originalSize.height)/J);if(F!=r){v.text(W(o.start,!F&&!o.end?null:xa(ra(o),u("slotMinutes")*F),u("timeFormat")));r=F}},stop:function(M,k){fa("eventResizeStop",this,o,M,k);if(F)P(this,o,0,u("slotMinutes")*F,M,k);else{s.css("z-index", -8);K(o,s)}}})}var q=this;q.renderEvents=a;q.compileDaySegs=e;q.clearEvents=b;q.slotSegHtml=l;q.bindDaySeg=j;Qb.call(q);var u=q.opt,fa=q.trigger,na=q.isEventDraggable,ga=q.isEventResizable,ra=q.eventEnd,sa=q.reportEvents,ha=q.reportEventClear,da=q.eventElementHandlers,ma=q.setHeight,ua=q.getDaySegmentContainer,pa=q.getSlotSegmentContainer,U=q.getHoverListener,ca=q.getMaxMinute,ka=q.getMinMinute,qa=q.timePosition,G=q.colContentLeft,p=q.colContentRight,L=q.renderDaySegs,c=q.resizableDayEvent,z=q.getColCnt, -H=q.getColWidth,T=q.getSlotHeight,X=q.getBodyContent,ya=q.reportEventElement,K=q.showEvents,i=q.hideEvents,C=q.eventDrop,P=q.eventResize,E=q.renderDayOverlay,B=q.clearOverlays,n=q.calendar,Y=n.formatDate,W=n.formatDates}function vc(a){var b,e,d,f,g,l;for(b=a.length-1;b>0;b--){f=a[b];for(e=0;e"),B=z(),n=i.length,Y;E[0].innerHTML=e(i);E=E.children();B.append(E);d(i,E);l(i);j(i);t(i);Q(i,S(y()));E=[];for(B=0;B
    ";if(!n.allDay&&B.isStart)k+=""+Qa(T(n.start,n.end,fa("timeFormat")))+"";k+=""+Qa(n.title)+"
    ";if(B.isEnd&&ra(n))k+="
       
    ";k+="";B.left=r;B.outerWidth=J-r;B.startCol=v;B.endCol=F+1}return k}function d(i,C){var P,E=i.length,B,n,Y;for(P=0;P div");return P}function S(i){var C,P=i.length,E=[];for(C=0;C"));j[0].parentNode!=l[0]&&j.appendTo(l);d.push(j.css(g).show());return j}function b(){for(var g;g=d.shift();)f.push(g.hide().unbind())}var e=this;e.renderOverlay=a;e.clearOverlays=b;var d=[],f=[]}function Nb(a){var b=this,e,d;b.build=function(){e=[];d=[];a(e,d)};b.cell=function(f,g){var l=e.length,j=d.length, -t,y=-1,S=-1;for(t=0;t=e[t][0]&&g=d[t][0]&&f=0&&S>=0?{row:y,col:S}:null};b.rect=function(f,g,l,j,t){t=t.offset();return{top:e[f][0]-t.top,left:d[g][0]-t.left,width:d[j][1]-d[g][0],height:e[l][1]-e[f][0]}}}function Ob(a){function b(j){j=a.cell(j.pageX,j.pageY);if(!j!=!l||j&&(j.row!=l.row||j.col!=l.col)){if(j){g||(g=j);f(j,g,j.row-g.row,j.col-g.col)}else f(j,g);l=j}}var e=this,d,f,g,l;e.start=function(j,t,y){f=j;g=l=null; -a.build();b(t);d=y||"mousemove";m(document).bind(d,b)};e.stop=function(){m(document).unbind(d,b);return l}}function Pb(a){function b(l){return d[l]=d[l]||a(l)}var e=this,d={},f={},g={};e.left=function(l){return f[l]=f[l]===oa?b(l).position().left:f[l]};e.right=function(l){return g[l]=g[l]===oa?e.left(l)+b(l).width():g[l]};e.clear=function(){d={};f={};g={}}}var Ya={defaultView:"month",aspectRatio:1.35,header:{left:"title",center:"",right:"today prev,next"},weekends:true,allDayDefault:true,ignoreTimezone:true, -lazyFetching:true,startParam:"start",endParam:"end",titleFormat:{month:"MMMM yyyy",week:"MMM d[ yyyy]{ '—'[ MMM] d yyyy}",day:"dddd, MMM d, yyyy"},columnFormat:{month:"ddd",week:"ddd M/d",day:"dddd M/d"},timeFormat:{"":"h(:mm)t"},isRTL:false,firstDay:0,monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday", -"Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],buttonText:{prev:" ◄ ",next:" ► ",prevYear:" << ",nextYear:" >> ",today:"today",month:"month",week:"week",day:"day"},theme:false,buttonIcons:{prev:"circle-triangle-w",next:"circle-triangle-e"},unselectAuto:true,dropAccept:"*"},xc={header:{left:"next,prev today",center:"",right:"title"},buttonText:{prev:" ► ",next:" ◄ ", -prevYear:" >> ",nextYear:" << "},buttonIcons:{prev:"circle-triangle-e",next:"circle-triangle-w"}},Aa=m.fullCalendar={version:"1.5.2"},Ja=Aa.views={};m.fn.fullCalendar=function(a){if(typeof a=="string"){var b=Array.prototype.slice.call(arguments,1),e;this.each(function(){var f=m.data(this,"fullCalendar");if(f&&m.isFunction(f[a])){f=f[a].apply(f,b);if(e===oa)e=f;a=="destroy"&&m.removeData(this,"fullCalendar")}});if(e!==oa)return e;return this}var d=a.eventSources||[]; -delete a.eventSources;if(a.events){d.push(a.events);delete a.events}a=m.extend(true,{},Ya,a.isRTL||a.isRTL===oa&&Ya.isRTL?xc:{},a);this.each(function(f,g){f=m(g);g=new Yb(f,a,d);f.data("fullCalendar",g);g.render()});return this};Aa.sourceNormalizers=[];Aa.sourceFetchers=[];var ac={dataType:"json",cache:false},bc=1;Aa.addDays=ba;Aa.cloneDate=N;Aa.parseDate=kb;Aa.parseISO8601=Bb;Aa.parseTime=mb;Aa.formatDate=Oa;Aa.formatDates=ib;var lc=["sun","mon","tue","wed","thu","fri","sat"],Ab=864E5,cc=36E5,wc= -6E4,dc={s:function(a){return a.getSeconds()},ss:function(a){return Pa(a.getSeconds())},m:function(a){return a.getMinutes()},mm:function(a){return Pa(a.getMinutes())},h:function(a){return a.getHours()%12||12},hh:function(a){return Pa(a.getHours()%12||12)},H:function(a){return a.getHours()},HH:function(a){return Pa(a.getHours())},d:function(a){return a.getDate()},dd:function(a){return Pa(a.getDate())},ddd:function(a,b){return b.dayNamesShort[a.getDay()]},dddd:function(a,b){return b.dayNames[a.getDay()]}, -M:function(a){return a.getMonth()+1},MM:function(a){return Pa(a.getMonth()+1)},MMM:function(a,b){return b.monthNamesShort[a.getMonth()]},MMMM:function(a,b){return b.monthNames[a.getMonth()]},yy:function(a){return(a.getFullYear()+"").substring(2)},yyyy:function(a){return a.getFullYear()},t:function(a){return a.getHours()<12?"a":"p"},tt:function(a){return a.getHours()<12?"am":"pm"},T:function(a){return a.getHours()<12?"A":"P"},TT:function(a){return a.getHours()<12?"AM":"PM"},u:function(a){return Oa(a, -"yyyy-MM-dd'T'HH:mm:ss'Z'")},S:function(a){a=a.getDate();if(a>10&&a<20)return"th";return["st","nd","rd"][a%10-1]||"th"}};Aa.applyAll=$a;Ja.month=mc;Ja.basicWeek=nc;Ja.basicDay=oc;wb({weekMode:"fixed"});Ja.agendaWeek=qc;Ja.agendaDay=rc;wb({allDaySlot:true,allDayText:"all-day",firstHour:6,slotMinutes:30,defaultEventMinutes:120,axisFormat:"h(:mm)tt",timeFormat:{agenda:"h:mm{ - h:mm}"},dragOpacity:{agenda:0.5},minTime:0,maxTime:24})})(jQuery); diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.autocomplete.js.svn-base b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.autocomplete.js.svn-base deleted file mode 100755 index 0421a72..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.autocomplete.js.svn-base +++ /dev/null @@ -1,613 +0,0 @@ -/* - * jQuery UI Autocomplete 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Autocomplete - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - * jquery.ui.position.js - */ -(function( $, undefined ) { - -// used to prevent race conditions with remote data sources -var requestIndex = 0; - -$.widget( "ui.autocomplete", { - options: { - appendTo: "body", - autoFocus: false, - delay: 300, - minLength: 1, - position: { - my: "left top", - at: "left bottom", - collision: "none" - }, - source: null - }, - - pending: 0, - - _create: function() { - var self = this, - doc = this.element[ 0 ].ownerDocument, - suppressKeyPress; - - this.element - .addClass( "ui-autocomplete-input" ) - .attr( "autocomplete", "off" ) - // TODO verify these actually work as intended - .attr({ - role: "textbox", - "aria-autocomplete": "list", - "aria-haspopup": "true" - }) - .bind( "keydown.autocomplete", function( event ) { - if ( self.options.disabled || self.element.attr( "readonly" ) ) { - return; - } - - suppressKeyPress = false; - var keyCode = $.ui.keyCode; - switch( event.keyCode ) { - case keyCode.PAGE_UP: - self._move( "previousPage", event ); - break; - case keyCode.PAGE_DOWN: - self._move( "nextPage", event ); - break; - case keyCode.UP: - self._move( "previous", event ); - // prevent moving cursor to beginning of text field in some browsers - event.preventDefault(); - break; - case keyCode.DOWN: - self._move( "next", event ); - // prevent moving cursor to end of text field in some browsers - event.preventDefault(); - break; - case keyCode.ENTER: - case keyCode.NUMPAD_ENTER: - // when menu is open and has focus - if ( self.menu.active ) { - // #6055 - Opera still allows the keypress to occur - // which causes forms to submit - suppressKeyPress = true; - event.preventDefault(); - } - //passthrough - ENTER and TAB both select the current element - case keyCode.TAB: - if ( !self.menu.active ) { - return; - } - self.menu.select( event ); - break; - case keyCode.ESCAPE: - self.element.val( self.term ); - self.close( event ); - break; - default: - // keypress is triggered before the input value is changed - clearTimeout( self.searching ); - self.searching = setTimeout(function() { - // only search if the value has changed - if ( self.term != self.element.val() ) { - self.selectedItem = null; - self.search( null, event ); - } - }, self.options.delay ); - break; - } - }) - .bind( "keypress.autocomplete", function( event ) { - if ( suppressKeyPress ) { - suppressKeyPress = false; - event.preventDefault(); - } - }) - .bind( "focus.autocomplete", function() { - if ( self.options.disabled ) { - return; - } - - self.selectedItem = null; - self.previous = self.element.val(); - }) - .bind( "blur.autocomplete", function( event ) { - if ( self.options.disabled ) { - return; - } - - clearTimeout( self.searching ); - // clicks on the menu (or a button to trigger a search) will cause a blur event - self.closing = setTimeout(function() { - self.close( event ); - self._change( event ); - }, 150 ); - }); - this._initSource(); - this.response = function() { - return self._response.apply( self, arguments ); - }; - this.menu = $( "
      " ) - .addClass( "ui-autocomplete" ) - .appendTo( $( this.options.appendTo || "body", doc )[0] ) - // prevent the close-on-blur in case of a "slow" click on the menu (long mousedown) - .mousedown(function( event ) { - // clicking on the scrollbar causes focus to shift to the body - // but we can't detect a mouseup or a click immediately afterward - // so we have to track the next mousedown and close the menu if - // the user clicks somewhere outside of the autocomplete - var menuElement = self.menu.element[ 0 ]; - if ( !$( event.target ).closest( ".ui-menu-item" ).length ) { - setTimeout(function() { - $( document ).one( 'mousedown', function( event ) { - if ( event.target !== self.element[ 0 ] && - event.target !== menuElement && - !$.ui.contains( menuElement, event.target ) ) { - self.close(); - } - }); - }, 1 ); - } - - // use another timeout to make sure the blur-event-handler on the input was already triggered - setTimeout(function() { - clearTimeout( self.closing ); - }, 13); - }) - .menu({ - focus: function( event, ui ) { - var item = ui.item.data( "item.autocomplete" ); - if ( false !== self._trigger( "focus", event, { item: item } ) ) { - // use value to match what will end up in the input, if it was a key event - if ( /^key/.test(event.originalEvent.type) ) { - self.element.val( item.value ); - } - } - }, - selected: function( event, ui ) { - var item = ui.item.data( "item.autocomplete" ), - previous = self.previous; - - // only trigger when focus was lost (click on menu) - if ( self.element[0] !== doc.activeElement ) { - self.element.focus(); - self.previous = previous; - // #6109 - IE triggers two focus events and the second - // is asynchronous, so we need to reset the previous - // term synchronously and asynchronously :-( - setTimeout(function() { - self.previous = previous; - self.selectedItem = item; - }, 1); - } - - if ( false !== self._trigger( "select", event, { item: item } ) ) { - self.element.val( item.value ); - } - // reset the term after the select event - // this allows custom select handling to work properly - self.term = self.element.val(); - - self.close( event ); - self.selectedItem = item; - }, - blur: function( event, ui ) { - // don't set the value of the text field if it's already correct - // this prevents moving the cursor unnecessarily - if ( self.menu.element.is(":visible") && - ( self.element.val() !== self.term ) ) { - self.element.val( self.term ); - } - } - }) - .zIndex( this.element.zIndex() + 1 ) - // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781 - .css({ top: 0, left: 0 }) - .hide() - .data( "menu" ); - if ( $.fn.bgiframe ) { - this.menu.element.bgiframe(); - } - }, - - destroy: function() { - this.element - .removeClass( "ui-autocomplete-input" ) - .removeAttr( "autocomplete" ) - .removeAttr( "role" ) - .removeAttr( "aria-autocomplete" ) - .removeAttr( "aria-haspopup" ); - this.menu.element.remove(); - $.Widget.prototype.destroy.call( this ); - }, - - _setOption: function( key, value ) { - $.Widget.prototype._setOption.apply( this, arguments ); - if ( key === "source" ) { - this._initSource(); - } - if ( key === "appendTo" ) { - this.menu.element.appendTo( $( value || "body", this.element[0].ownerDocument )[0] ) - } - if ( key === "disabled" && value && this.xhr ) { - this.xhr.abort(); - } - }, - - _initSource: function() { - var self = this, - array, - url; - if ( $.isArray(this.options.source) ) { - array = this.options.source; - this.source = function( request, response ) { - response( $.ui.autocomplete.filter(array, request.term) ); - }; - } else if ( typeof this.options.source === "string" ) { - url = this.options.source; - this.source = function( request, response ) { - if ( self.xhr ) { - self.xhr.abort(); - } - self.xhr = $.ajax({ - url: url, - data: request, - dataType: "json", - autocompleteRequest: ++requestIndex, - success: function( data, status ) { - if ( this.autocompleteRequest === requestIndex ) { - response( data ); - } - }, - error: function() { - if ( this.autocompleteRequest === requestIndex ) { - response( [] ); - } - } - }); - }; - } else { - this.source = this.options.source; - } - }, - - search: function( value, event ) { - value = value != null ? value : this.element.val(); - - // always save the actual value, not the one passed as an argument - this.term = this.element.val(); - - if ( value.length < this.options.minLength ) { - return this.close( event ); - } - - clearTimeout( this.closing ); - if ( this._trigger( "search", event ) === false ) { - return; - } - - return this._search( value ); - }, - - _search: function( value ) { - this.pending++; - this.element.addClass( "ui-autocomplete-loading" ); - - this.source( { term: value }, this.response ); - }, - - _response: function( content ) { - if ( !this.options.disabled && content && content.length ) { - content = this._normalize( content ); - this._suggest( content ); - this._trigger( "open" ); - } else { - this.close(); - } - this.pending--; - if ( !this.pending ) { - this.element.removeClass( "ui-autocomplete-loading" ); - } - }, - - close: function( event ) { - clearTimeout( this.closing ); - if ( this.menu.element.is(":visible") ) { - this.menu.element.hide(); - this.menu.deactivate(); - this._trigger( "close", event ); - } - }, - - _change: function( event ) { - if ( this.previous !== this.element.val() ) { - this._trigger( "change", event, { item: this.selectedItem } ); - } - }, - - _normalize: function( items ) { - // assume all items have the right format when the first item is complete - if ( items.length && items[0].label && items[0].value ) { - return items; - } - return $.map( items, function(item) { - if ( typeof item === "string" ) { - return { - label: item, - value: item - }; - } - return $.extend({ - label: item.label || item.value, - value: item.value || item.label - }, item ); - }); - }, - - _suggest: function( items ) { - var ul = this.menu.element - .empty() - .zIndex( this.element.zIndex() + 1 ); - this._renderMenu( ul, items ); - // TODO refresh should check if the active item is still in the dom, removing the need for a manual deactivate - this.menu.deactivate(); - this.menu.refresh(); - - // size and position menu - ul.show(); - this._resizeMenu(); - ul.position( $.extend({ - of: this.element - }, this.options.position )); - - if ( this.options.autoFocus ) { - this.menu.next( new $.Event("mouseover") ); - } - }, - - _resizeMenu: function() { - var ul = this.menu.element; - ul.outerWidth( Math.max( - ul.width( "" ).outerWidth(), - this.element.outerWidth() - ) ); - }, - - _renderMenu: function( ul, items ) { - var self = this; - $.each( items, function( index, item ) { - self._renderItem( ul, item ); - }); - }, - - _renderItem: function( ul, item) { - return $( "
    • " ) - .data( "item.autocomplete", item ) - .append( $( "" ).text( item.label ) ) - .appendTo( ul ); - }, - - _move: function( direction, event ) { - if ( !this.menu.element.is(":visible") ) { - this.search( null, event ); - return; - } - if ( this.menu.first() && /^previous/.test(direction) || - this.menu.last() && /^next/.test(direction) ) { - this.element.val( this.term ); - this.menu.deactivate(); - return; - } - this.menu[ direction ]( event ); - }, - - widget: function() { - return this.menu.element; - } -}); - -$.extend( $.ui.autocomplete, { - escapeRegex: function( value ) { - return value.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); - }, - filter: function(array, term) { - var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" ); - return $.grep( array, function(value) { - return matcher.test( value.label || value.value || value ); - }); - } -}); - -}( jQuery )); - -/* - * jQuery UI Menu (not officially released) - * - * This widget isn't yet finished and the API is subject to change. We plan to finish - * it for the next release. You're welcome to give it a try anyway and give us feedback, - * as long as you're okay with migrating your code later on. We can help with that, too. - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Menu - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - */ -(function($) { - -$.widget("ui.menu", { - _create: function() { - var self = this; - this.element - .addClass("ui-menu ui-widget ui-widget-content ui-corner-all") - .attr({ - role: "listbox", - "aria-activedescendant": "ui-active-menuitem" - }) - .click(function( event ) { - if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) { - return; - } - // temporary - event.preventDefault(); - self.select( event ); - }); - this.refresh(); - }, - - refresh: function() { - var self = this; - - // don't refresh list items that are already adapted - var items = this.element.children("li:not(.ui-menu-item):has(a)") - .addClass("ui-menu-item") - .attr("role", "menuitem"); - - items.children("a") - .addClass("ui-corner-all") - .attr("tabindex", -1) - // mouseenter doesn't work with event delegation - .mouseenter(function( event ) { - self.activate( event, $(this).parent() ); - }) - .mouseleave(function() { - self.deactivate(); - }); - }, - - activate: function( event, item ) { - this.deactivate(); - if (this.hasScroll()) { - var offset = item.offset().top - this.element.offset().top, - scroll = this.element.scrollTop(), - elementHeight = this.element.height(); - if (offset < 0) { - this.element.scrollTop( scroll + offset); - } else if (offset >= elementHeight) { - this.element.scrollTop( scroll + offset - elementHeight + item.height()); - } - } - this.active = item.eq(0) - .children("a") - .addClass("ui-state-hover") - .attr("id", "ui-active-menuitem") - .end(); - this._trigger("focus", event, { item: item }); - }, - - deactivate: function() { - if (!this.active) { return; } - - this.active.children("a") - .removeClass("ui-state-hover") - .removeAttr("id"); - this._trigger("blur"); - this.active = null; - }, - - next: function(event) { - this.move("next", ".ui-menu-item:first", event); - }, - - previous: function(event) { - this.move("prev", ".ui-menu-item:last", event); - }, - - first: function() { - return this.active && !this.active.prevAll(".ui-menu-item").length; - }, - - last: function() { - return this.active && !this.active.nextAll(".ui-menu-item").length; - }, - - move: function(direction, edge, event) { - if (!this.active) { - this.activate(event, this.element.children(edge)); - return; - } - var next = this.active[direction + "All"](".ui-menu-item").eq(0); - if (next.length) { - this.activate(event, next); - } else { - this.activate(event, this.element.children(edge)); - } - }, - - // TODO merge with previousPage - nextPage: function(event) { - if (this.hasScroll()) { - // TODO merge with no-scroll-else - if (!this.active || this.last()) { - this.activate(event, this.element.children(".ui-menu-item:first")); - return; - } - var base = this.active.offset().top, - height = this.element.height(), - result = this.element.children(".ui-menu-item").filter(function() { - var close = $(this).offset().top - base - height + $(this).height(); - // TODO improve approximation - return close < 10 && close > -10; - }); - - // TODO try to catch this earlier when scrollTop indicates the last page anyway - if (!result.length) { - result = this.element.children(".ui-menu-item:last"); - } - this.activate(event, result); - } else { - this.activate(event, this.element.children(".ui-menu-item") - .filter(!this.active || this.last() ? ":first" : ":last")); - } - }, - - // TODO merge with nextPage - previousPage: function(event) { - if (this.hasScroll()) { - // TODO merge with no-scroll-else - if (!this.active || this.first()) { - this.activate(event, this.element.children(".ui-menu-item:last")); - return; - } - - var base = this.active.offset().top, - height = this.element.height(); - result = this.element.children(".ui-menu-item").filter(function() { - var close = $(this).offset().top - base + height - $(this).height(); - // TODO improve approximation - return close < 10 && close > -10; - }); - - // TODO try to catch this earlier when scrollTop indicates the last page anyway - if (!result.length) { - result = this.element.children(".ui-menu-item:first"); - } - this.activate(event, result); - } else { - this.activate(event, this.element.children(".ui-menu-item") - .filter(!this.active || this.first() ? ":last" : ":first")); - } - }, - - hasScroll: function() { - return this.element.height() < this.element[ $.fn.prop ? "prop" : "attr" ]("scrollHeight"); - }, - - select: function( event ) { - this._trigger("selected", event, { item: this.active }); - } -}); - -}(jQuery)); - diff --git a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.cookies.2.2.0.min.js.svn-base b/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.cookies.2.2.0.min.js.svn-base deleted file mode 100755 index bd2dacb..0000000 --- a/mail.oopzy.com/code/var/mail.oopzy.com/assets/vendor/jquery/plugins/.svn/text-base/jquery.cookies.2.2.0.min.js.svn-base +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright (c) 2005 - 2010, James Auldridge - * All rights reserved. - * - * Licensed under the BSD, MIT, and GPL (your choice!) Licenses: - * http://code.google.com/p/cookies/wiki/License - * - */ -var jaaulde=window.jaaulde||{};jaaulde.utils=jaaulde.utils||{};jaaulde.utils.cookies=(function(){var resolveOptions,assembleOptionsString,parseCookies,constructor,defaultOptions={expiresAt:null,path:'/',domain:null,secure:false};resolveOptions=function(options){var returnValue,expireDate;if(typeof options!=='object'||options===null){returnValue=defaultOptions;}else -{returnValue={expiresAt:defaultOptions.expiresAt,path:defaultOptions.path,domain:defaultOptions.domain,secure:defaultOptions.secure};if(typeof options.expiresAt==='object'&&options.expiresAt instanceof Date){returnValue.expiresAt=options.expiresAt;}else if(typeof options.hoursToLive==='number'&&options.hoursToLive!==0){expireDate=new Date();expireDate.setTime(expireDate.getTime()+(options.hoursToLive*60*60*1000));returnValue.expiresAt=expireDate;}if(typeof options.path==='string'&&options.path!==''){returnValue.path=options.path;}if(typeof options.domain==='string'&&options.domain!==''){returnValue.domain=options.domain;}if(options.secure===true){returnValue.secure=options.secure;}}return returnValue;};assembleOptionsString=function(options){options=resolveOptions(options);return((typeof options.expiresAt==='object'&&options.expiresAt instanceof Date?'; expires='+options.expiresAt.toGMTString():'')+'; path='+options.path+(typeof options.domain==='string'?'; domain='+options.domain:'')+(options.secure===true?'; secure':''));};parseCookies=function(){var cookies={},i,pair,name,value,separated=document.cookie.split(';'),unparsedValue;for(i=0;iK.index){N.lastIndex=K.index}if(N.lastIndex>F){if(K.length>1){K[0].replace(L,function(){for(var O=1;O= (iPages - iPageCountHalf)) - { - iStartButton = iPages - iPageCount + 1; - iEndButton = iPages; - } - else - { - iStartButton = iCurrentPage - Math.ceil(iPageCount / 2) + 1; - iEndButton = iStartButton + iPageCount - 1; - } - } - } - - /* Build the dynamic list */ - for ( i=iStartButton ; i<=iEndButton ; i++ ) - { - if ( iCurrentPage != i ) - { - sList += ''+i+''; - } - else - { - sList += ''+i+''; - } - } - - /* Loop over each instance of the pager */ - var an = oSettings.aanFeatures.p; - var anButtons, anStatic, nPaginateList; - var fnClick = function(e) { - /* Use the information in the element to jump to the required page */ - var iTarget = (this.innerHTML * 1) - 1; - oSettings._iDisplayStart = iTarget * oSettings._iDisplayLength; - fnCallbackDraw( oSettings ); - e.preventDefault(); - }; - var fnFalse = function () { return false; }; - - for ( i=0, iLen=an.length ; i y) ? 1 : 0)); - }, - - "string-desc": function ( a, b ) - { - if ( typeof a != 'string' ) { a = ''; } - if ( typeof b != 'string' ) { b = ''; } - var x = a.toLowerCase(); - var y = b.toLowerCase(); - return ((x < y) ? 1 : ((x > y) ? -1 : 0)); - }, - - - /* - * html sorting (ignore html tags) - */ - "html-asc": function ( a, b ) - { - var x = a.replace( /<.*?>/g, "" ).toLowerCase(); - var y = b.replace( /<.*?>/g, "" ).toLowerCase(); - return ((x < y) ? -1 : ((x > y) ? 1 : 0)); - }, - - "html-desc": function ( a, b ) - { - var x = a.replace( /<.*?>/g, "" ).toLowerCase(); - var y = b.replace( /<.*?>/g, "" ).toLowerCase(); - return ((x < y) ? 1 : ((x > y) ? -1 : 0)); - }, - - - /* - * date sorting - */ - "date-asc": function ( a, b ) - { - var x = Date.parse( a ); - var y = Date.parse( b ); - - if ( isNaN(x) || x==="" ) - { - x = Date.parse( "01/01/1970 00:00:00" ); - } - if ( isNaN(y) || y==="" ) - { - y = Date.parse( "01/01/1970 00:00:00" ); - } - - return x - y; - }, - - "date-desc": function ( a, b ) - { - var x = Date.parse( a ); - var y = Date.parse( b ); - - if ( isNaN(x) || x==="" ) - { - x = Date.parse( "01/01/1970 00:00:00" ); - } - if ( isNaN(y) || y==="" ) - { - y = Date.parse( "01/01/1970 00:00:00" ); - } - - return y - x; - }, - - - /* - * numerical sorting - */ - "numeric-asc": function ( a, b ) - { - var x = (a=="-" || a==="") ? 0 : a*1; - var y = (b=="-" || b==="") ? 0 : b*1; - return x - y; - }, - - "numeric-desc": function ( a, b ) - { - var x = (a=="-" || a==="") ? 0 : a*1; - var y = (b=="-" || b==="") ? 0 : b*1; - return y - x; - } - }; - - - /* - * Variable: aTypes - * Purpose: Container for the various type of type detection that dataTables supports - * Scope: jQuery.fn.dataTableExt - * Notes: The functions in this array are expected to parse a string to see if it is a data - * type that it recognises. If so then the function should return the name of the type (a - * corresponding sort function should be defined!), if the type is not recognised then the - * function should return null such that the parser and move on to check the next type. - * Note that ordering is important in this array - the functions are processed linearly, - * starting at index 0. - * Note that the input for these functions is always a string! It cannot be any other data - * type - */ - _oExt.aTypes = [ - /* - * Function: - - * Purpose: Check to see if a string is numeric - * Returns: string:'numeric' or null - * Inputs: mixed:sText - string to check - */ - function ( sData ) - { - /* Allow zero length strings as a number */ - if ( typeof sData == 'number' ) - { - return 'numeric'; - } - else if ( typeof sData != 'string' ) - { - return null; - } - - var sValidFirstChars = "0123456789-"; - var sValidChars = "0123456789."; - var Char; - var bDecimal = false; - - /* Check for a valid first char (no period and allow negatives) */ - Char = sData.charAt(0); - if (sValidFirstChars.indexOf(Char) == -1) - { - return null; - } - - /* Check all the other characters are valid */ - for ( var i=1 ; i') != -1 ) - { - return 'html'; - } - return null; - } - ]; - - /* - * Function: fnVersionCheck - * Purpose: Check a version string against this version of DataTables. Useful for plug-ins - * Returns: bool:true -this version of DataTables is greater or equal to the required version - * false -this version of DataTales is not suitable - * Inputs: string:sVersion - the version to check against. May be in the following formats: - * "a", "a.b" or "a.b.c" - * Notes: This function will only check the first three parts of a version string. It is - * assumed that beta and dev versions will meet the requirements. This might change in future - */ - _oExt.fnVersionCheck = function( sVersion ) - { - /* This is cheap, but very effective */ - var fnZPad = function (Zpad, count) - { - while(Zpad.length < count) { - Zpad += '0'; - } - return Zpad; - }; - var aThis = _oExt.sVersion.split('.'); - var aThat = sVersion.split('.'); - var sThis = '', sThat = ''; - - for ( var i=0, iLen=aThat.length ; i= parseInt(sThat, 10); - }; - - /* - * Variable: _oExternConfig - * Purpose: Store information for DataTables to access globally about other instances - * Scope: jQuery.fn.dataTableExt - */ - _oExt._oExternConfig = { - /* int:iNextUnique - next unique number for an instance */ - "iNextUnique": 0 - }; - - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Section - DataTables prototype - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - /* - * Function: dataTable - * Purpose: DataTables information - * Returns: - - * Inputs: object:oInit - initialisation options for the table - */ - $.fn.dataTable = function( oInit ) - { - /* - * Function: classSettings - * Purpose: Settings container function for all 'class' properties which are required - * by dataTables - * Returns: - - * Inputs: - - */ - function classSettings () - { - this.fnRecordsTotal = function () - { - if ( this.oFeatures.bServerSide ) { - return parseInt(this._iRecordsTotal, 10); - } else { - return this.aiDisplayMaster.length; - } - }; - - this.fnRecordsDisplay = function () - { - if ( this.oFeatures.bServerSide ) { - return parseInt(this._iRecordsDisplay, 10); - } else { - return this.aiDisplay.length; - } - }; - - this.fnDisplayEnd = function () - { - if ( this.oFeatures.bServerSide ) { - if ( this.oFeatures.bPaginate === false || this._iDisplayLength == -1 ) { - return this._iDisplayStart+this.aiDisplay.length; - } else { - return Math.min( this._iDisplayStart+this._iDisplayLength, - this._iRecordsDisplay ); - } - } else { - return this._iDisplayEnd; - } - }; - - /* - * Variable: oInstance - * Purpose: The DataTables object for this table - * Scope: jQuery.dataTable.classSettings - */ - this.oInstance = null; - - /* - * Variable: sInstance - * Purpose: Unique idendifier for each instance of the DataTables object - * Scope: jQuery.dataTable.classSettings - */ - this.sInstance = null; - - /* - * Variable: oFeatures - * Purpose: Indicate the enablement of key dataTable features - * Scope: jQuery.dataTable.classSettings - */ - this.oFeatures = { - "bPaginate": true, - "bLengthChange": true, - "bFilter": true, - "bSort": true, - "bInfo": true, - "bAutoWidth": true, - "bProcessing": false, - "bSortClasses": true, - "bStateSave": false, - "bServerSide": false, - "bDeferRender": false - }; - - /* - * Variable: oScroll - * Purpose: Container for scrolling options - * Scope: jQuery.dataTable.classSettings - */ - this.oScroll = { - "sX": "", - "sXInner": "", - "sY": "", - "bCollapse": false, - "bInfinite": false, - "iLoadGap": 100, - "iBarWidth": 0, - "bAutoCss": true - }; - - /* - * Variable: aanFeatures - * Purpose: Array referencing the nodes which are used for the features - * Scope: jQuery.dataTable.classSettings - * Notes: The parameters of this object match what is allowed by sDom - i.e. - * 'l' - Length changing - * 'f' - Filtering input - * 't' - The table! - * 'i' - Information - * 'p' - Pagination - * 'r' - pRocessing - */ - this.aanFeatures = []; - - /* - * Variable: oLanguage - * Purpose: Store the language strings used by dataTables - * Scope: jQuery.dataTable.classSettings - * Notes: The words in the format _VAR_ are variables which are dynamically replaced - * by javascript - */ - this.oLanguage = { - "sProcessing": "Processing...", - "sLengthMenu": "Show _MENU_ entries", - "sZeroRecords": "No matching records found", - "sEmptyTable": "No data available in table", - "sLoadingRecords": "Loading...", - "sInfo": "Showing _START_ to _END_ of _TOTAL_ entries", - "sInfoEmpty": "Showing 0 to 0 of 0 entries", - "sInfoFiltered": "(filtered from _MAX_ total entries)", - "sInfoPostFix": "", - "sInfoThousands": ",", - "sSearch": "Search:", - "sUrl": "", - "oPaginate": { - "sFirst": "First", - "sPrevious": "Previous", - "sNext": "Next", - "sLast": "Last" - }, - "fnInfoCallback": null - }; - - /* - * Variable: aoData - * Purpose: Store data information - * Scope: jQuery.dataTable.classSettings - * Notes: This is an array of objects with the following parameters: - * int: _iId - internal id for tracking - * array: _aData - internal data - used for sorting / filtering etc - * node: nTr - display node - * array node: _anHidden - hidden TD nodes - * string: _sRowStripe - */ - this.aoData = []; - - /* - * Variable: aiDisplay - * Purpose: Array of indexes which are in the current display (after filtering etc) - * Scope: jQuery.dataTable.classSettings - */ - this.aiDisplay = []; - - /* - * Variable: aiDisplayMaster - * Purpose: Array of indexes for display - no filtering - * Scope: jQuery.dataTable.classSettings - */ - this.aiDisplayMaster = []; - - /* - * Variable: aoColumns - * Purpose: Store information about each column that is in use - * Scope: jQuery.dataTable.classSettings - */ - this.aoColumns = []; - - /* - * Variable: aoHeader - * Purpose: Store information about the table's header - * Scope: jQuery.dataTable.classSettings - */ - this.aoHeader = []; - - /* - * Variable: aoFooter - * Purpose: Store information about the table's footer - * Scope: jQuery.dataTable.classSettings - */ - this.aoFooter = []; - - /* - * Variable: iNextId - * Purpose: Store the next unique id to be used for a new row - * Scope: jQuery.dataTable.classSettings - */ - this.iNextId = 0; - - /* - * Variable: asDataSearch - * Purpose: Search data array for regular expression searching - * Scope: jQuery.dataTable.classSettings - */ - this.asDataSearch = []; - - /* - * Variable: oPreviousSearch - * Purpose: Store the previous search incase we want to force a re-search - * or compare the old search to a new one - * Scope: jQuery.dataTable.classSettings - */ - this.oPreviousSearch = { - "sSearch": "", - "bRegex": false, - "bSmart": true - }; - - /* - * Variable: aoPreSearchCols - * Purpose: Store the previous search for each column - * Scope: jQuery.dataTable.classSettings - */ - this.aoPreSearchCols = []; - - /* - * Variable: aaSorting - * Purpose: Sorting information - * Scope: jQuery.dataTable.classSettings - * Notes: Index 0 - column number - * Index 1 - current sorting direction - * Index 2 - index of asSorting for this column - */ - this.aaSorting = [ [0, 'asc', 0] ]; - - /* - * Variable: aaSortingFixed - * Purpose: Sorting information that is always applied - * Scope: jQuery.dataTable.classSettings - */ - this.aaSortingFixed = null; - - /* - * Variable: asStripeClasses - * Purpose: Classes to use for the striping of a table - * Scope: jQuery.dataTable.classSettings - */ - this.asStripeClasses = []; - - /* - * Variable: asDestroyStripes - * Purpose: If restoring a table - we should restore its striping classes as well - * Scope: jQuery.dataTable.classSettings - */ - this.asDestroyStripes = []; - - /* - * Variable: sDestroyWidth - * Purpose: If restoring a table - we should restore its width - * Scope: jQuery.dataTable.classSettings - */ - this.sDestroyWidth = 0; - - /* - * Variable: fnRowCallback - * Purpose: Call this function every time a row is inserted (draw) - * Scope: jQuery.dataTable.classSettings - */ - this.fnRowCallback = null; - - /* - * Variable: fnHeaderCallback - * Purpose: Callback function for the header on each draw - * Scope: jQuery.dataTable.classSettings - */ - this.fnHeaderCallback = null; - - /* - * Variable: fnFooterCallback - * Purpose: Callback function for the footer on each draw - * Scope: jQuery.dataTable.classSettings - */ - this.fnFooterCallback = null; - - /* - * Variable: aoDrawCallback - * Purpose: Array of callback functions for draw callback functions - * Scope: jQuery.dataTable.classSettings - * Notes: Each array element is an object with the following parameters: - * function:fn - function to call - * string:sName - name callback (feature). useful for arranging array - */ - this.aoDrawCallback = []; - - /* - * Variable: fnPreDrawCallback - * Purpose: Callback function for just before the table is redrawn. A return of false - * will be used to cancel the draw. - * Scope: jQuery.dataTable.classSettings - */ - this.fnPreDrawCallback = null; - - /* - * Variable: fnInitComplete - * Purpose: Callback function for when the table has been initialised - * Scope: jQuery.dataTable.classSettings - */ - this.fnInitComplete = null; - - /* - * Variable: sTableId - * Purpose: Cache the table ID for quick access - * Scope: jQuery.dataTable.classSettings - */ - this.sTableId = ""; - - /* - * Variable: nTable - * Purpose: Cache the table node for quick access - * Scope: jQuery.dataTable.classSettings - */ - this.nTable = null; - - /* - * Variable: nTHead - * Purpose: Permanent ref to the thead element - * Scope: jQuery.dataTable.classSettings - */ - this.nTHead = null; - - /* - * Variable: nTFoot - * Purpose: Permanent ref to the tfoot element - if it exists - * Scope: jQuery.dataTable.classSettings - */ - this.nTFoot = null; - - /* - * Variable: nTBody - * Purpose: Permanent ref to the tbody element - * Scope: jQuery.dataTable.classSettings - */ - this.nTBody = null; - - /* - * Variable: nTableWrapper - * Purpose: Cache the wrapper node (contains all DataTables controlled elements) - * Scope: jQuery.dataTable.classSettings - */ - this.nTableWrapper = null; - - /* - * Variable: bDeferLoading - * Purpose: Indicate if when using server-side processing the loading of data - * should be deferred until the second draw - * Scope: jQuery.dataTable.classSettings - */ - this.bDeferLoading = false; - - /* - * Variable: bInitialised - * Purpose: Indicate if all required information has been read in - * Scope: jQuery.dataTable.classSettings - */ - this.bInitialised = false; - - /* - * Variable: aoOpenRows - * Purpose: Information about open rows - * Scope: jQuery.dataTable.classSettings - * Notes: Has the parameters 'nTr' and 'nParent' - */ - this.aoOpenRows = []; - - /* - * Variable: sDom - * Purpose: Dictate the positioning that the created elements will take - * Scope: jQuery.dataTable.classSettings - * Notes: - * The following options are allowed: - * 'l' - Length changing - * 'f' - Filtering input - * 't' - The table! - * 'i' - Information - * 'p' - Pagination - * 'r' - pRocessing - * The following constants are allowed: - * 'H' - jQueryUI theme "header" classes - * 'F' - jQueryUI theme "footer" classes - * The following syntax is expected: - * '<' and '>' - div elements - * '<"class" and '>' - div with a class - * Examples: - * '<"wrapper"flipt>', 'ip>' - */ - this.sDom = 'lfrtip'; - - /* - * Variable: sPaginationType - * Purpose: Note which type of sorting should be used - * Scope: jQuery.dataTable.classSettings - */ - this.sPaginationType = "two_button"; - - /* - * Variable: iCookieDuration - * Purpose: The cookie duration (for bStateSave) in seconds - default 2 hours - * Scope: jQuery.dataTable.classSettings - */ - this.iCookieDuration = 60 * 60 * 2; - - /* - * Variable: sCookiePrefix - * Purpose: The cookie name prefix - * Scope: jQuery.dataTable.classSettings - */ - this.sCookiePrefix = "SpryMedia_DataTables_"; - - /* - * Variable: fnCookieCallback - * Purpose: Callback function for cookie creation - * Scope: jQuery.dataTable.classSettings - */ - this.fnCookieCallback = null; - - /* - * Variable: aoStateSave - * Purpose: Array of callback functions for state saving - * Scope: jQuery.dataTable.classSettings - * Notes: Each array element is an object with the following parameters: - * function:fn - function to call. Takes two parameters, oSettings and the JSON string to - * save that has been thus far created. Returns a JSON string to be inserted into a - * json object (i.e. '"param": [ 0, 1, 2]') - * string:sName - name of callback - */ - this.aoStateSave = []; - - /* - * Variable: aoStateLoad - * Purpose: Array of callback functions for state loading - * Scope: jQuery.dataTable.classSettings - * Notes: Each array element is an object with the following parameters: - * function:fn - function to call. Takes two parameters, oSettings and the object stored. - * May return false to cancel state loading. - * string:sName - name of callback - */ - this.aoStateLoad = []; - - /* - * Variable: oLoadedState - * Purpose: State that was loaded from the cookie. Useful for back reference - * Scope: jQuery.dataTable.classSettings - */ - this.oLoadedState = null; - - /* - * Variable: sAjaxSource - * Purpose: Source url for AJAX data for the table - * Scope: jQuery.dataTable.classSettings - */ - this.sAjaxSource = null; - - /* - * Variable: sAjaxDataProp - * Purpose: Property from a given object from which to read the table data from. This can - * be an empty string (when not server-side processing), in which case it is - * assumed an an array is given directly. - * Scope: jQuery.dataTable.classSettings - */ - this.sAjaxDataProp = 'aaData'; - - /* - * Variable: bAjaxDataGet - * Purpose: Note if draw should be blocked while getting data - * Scope: jQuery.dataTable.classSettings - */ - this.bAjaxDataGet = true; - - /* - * Variable: jqXHR - * Purpose: The last jQuery XHR object that was used for server-side data gathering. - * This can be used for working with the XHR information in one of the callbacks - * Scope: jQuery.dataTable.classSettings - */ - this.jqXHR = null; - - /* - * Variable: fnServerData - * Purpose: Function to get the server-side data - can be overruled by the developer - * Scope: jQuery.dataTable.classSettings - */ - this.fnServerData = function ( url, data, callback, settings ) { - settings.jqXHR = $.ajax( { - "url": url, - "data": data, - "success": function (json) { - $(settings.oInstance).trigger('xhr', settings); - callback( json ); - }, - "dataType": "json", - "cache": false, - "error": function (xhr, error, thrown) { - if ( error == "parsererror" ) { - alert( "DataTables warning: JSON data from server could not be parsed. "+ - "This is caused by a JSON formatting error." ); - } - } - } ); - }; - - /* - * Variable: aoServerParams - * Purpose: Functions which are called prior to sending an Ajax request so extra parameters - * can easily be sent to the server - * Scope: jQuery.dataTable.classSettings - * Notes: Each array element is an object with the following parameters: - * function:fn - function to call - * string:sName - name callback - useful for knowing where it came from (plugin etc) - */ - this.aoServerParams = []; - - /* - * Variable: fnFormatNumber - * Purpose: Format numbers for display - * Scope: jQuery.dataTable.classSettings - */ - this.fnFormatNumber = function ( iIn ) - { - if ( iIn < 1000 ) - { - /* A small optimisation for what is likely to be the vast majority of use cases */ - return iIn; - } - else - { - var s=(iIn+""), a=s.split(""), out="", iLen=s.length; - - for ( var i=0 ; i