sunrise-widgets 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +34 -0
 - data/MIT-LICENSE +20 -0
 - data/README.rdoc +21 -0
 - data/Rakefile +27 -0
 - data/app/controllers/manage/widgets_controller.rb +33 -0
 - data/app/views/manage/widgets/_form.html.erb +21 -0
 - data/app/views/manage/widgets/_model_filter.html.erb +40 -0
 - data/app/views/manage/widgets/_widget.html.erb +41 -0
 - data/app/views/manage/widgets/edit.html.erb +6 -0
 - data/app/views/manage/widgets/index.html.erb +30 -0
 - data/app/views/manage/widgets/new.html.erb +6 -0
 - data/app/views/manage/widgets/show.html.erb +29 -0
 - data/config/locales/ru.yml +18 -0
 - data/config/locales/uk.yml +18 -0
 - data/config/routes.rb +5 -0
 - data/lib/generators/sunrise/widgets/USAGE +12 -0
 - data/lib/generators/sunrise/widgets/install_generator.rb +40 -0
 - data/lib/generators/sunrise/widgets/templates/create_widgets.rb +24 -0
 - data/lib/generators/sunrise/widgets/templates/widget.rb +6 -0
 - data/lib/generators/sunrise/widgets/templates/widget_position.rb +14 -0
 - data/lib/generators/sunrise/widgets/templates/widget_sweeper.rb +21 -0
 - data/lib/generators/sunrise/widgets/templates/widget_type.rb +15 -0
 - data/lib/sunrise/models/widget.rb +39 -0
 - data/lib/sunrise/widgets/engine.rb +18 -0
 - data/lib/sunrise/widgets/version.rb +5 -0
 - data/lib/sunrise/widgets.rb +12 -0
 - data/lib/sunrise-widgets.rb +1 -0
 - data/spec/controllers/manage/widgets_controller_spec.rb +95 -0
 - data/spec/dummy/Rakefile +7 -0
 - data/spec/dummy/app/controllers/application_controller.rb +3 -0
 - data/spec/dummy/app/helpers/application_helper.rb +2 -0
 - data/spec/dummy/app/helpers/manage/assets_helper.rb +2 -0
 - data/spec/dummy/app/helpers/manage/base_helper.rb +81 -0
 - data/spec/dummy/app/helpers/manage/pages_helper.rb +2 -0
 - data/spec/dummy/app/helpers/manage/settings_helper.rb +2 -0
 - data/spec/dummy/app/helpers/manage/structures_helper.rb +12 -0
 - data/spec/dummy/app/helpers/manage/users_helper.rb +6 -0
 - data/spec/dummy/app/models/defaults/ability.rb +39 -0
 - data/spec/dummy/app/models/defaults/asset.rb +7 -0
 - data/spec/dummy/app/models/defaults/attachment_file.rb +33 -0
 - data/spec/dummy/app/models/defaults/avatar.rb +37 -0
 - data/spec/dummy/app/models/defaults/header.rb +5 -0
 - data/spec/dummy/app/models/defaults/page.rb +5 -0
 - data/spec/dummy/app/models/defaults/picture.rb +35 -0
 - data/spec/dummy/app/models/defaults/position_type.rb +7 -0
 - data/spec/dummy/app/models/defaults/role.rb +20 -0
 - data/spec/dummy/app/models/defaults/role_type.rb +8 -0
 - data/spec/dummy/app/models/defaults/structure.rb +16 -0
 - data/spec/dummy/app/models/defaults/structure_type.rb +9 -0
 - data/spec/dummy/app/models/defaults/user.rb +47 -0
 - data/spec/dummy/app/views/layouts/application.html.erb +37 -0
 - data/spec/dummy/app/views/pages/show.html.erb +2 -0
 - data/spec/dummy/app/views/shared/_notice.html.erb +17 -0
 - data/spec/dummy/config/application.rb +47 -0
 - data/spec/dummy/config/application.yml.sample +4 -0
 - data/spec/dummy/config/boot.rb +10 -0
 - data/spec/dummy/config/database.yml +22 -0
 - data/spec/dummy/config/database.yml.sample +34 -0
 - data/spec/dummy/config/environment.rb +5 -0
 - data/spec/dummy/config/environments/development.rb +26 -0
 - data/spec/dummy/config/environments/production.rb +49 -0
 - data/spec/dummy/config/environments/test.rb +35 -0
 - data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
 - data/spec/dummy/config/initializers/devise.rb +204 -0
 - data/spec/dummy/config/initializers/inflections.rb +10 -0
 - data/spec/dummy/config/initializers/mime_types.rb +5 -0
 - data/spec/dummy/config/initializers/secret_token.rb +7 -0
 - data/spec/dummy/config/initializers/session_store.rb +8 -0
 - data/spec/dummy/config/initializers/simple_form.rb +93 -0
 - data/spec/dummy/config/initializers/sunrise.rb +7 -0
 - data/spec/dummy/config/locales/devise.en.yml +53 -0
 - data/spec/dummy/config/locales/en.yml +5 -0
 - data/spec/dummy/config/locales/simple_form.en.yml +24 -0
 - data/spec/dummy/config/logrotate-config.sample +9 -0
 - data/spec/dummy/config/nginx-config-passenger.sample +51 -0
 - data/spec/dummy/config/routes.rb +64 -0
 - data/spec/dummy/config.ru +4 -0
 - data/spec/dummy/db/migrate/20110801124809_sunrise_create_users.rb +29 -0
 - data/spec/dummy/db/migrate/20110801124909_sunrise_create_roles.rb +16 -0
 - data/spec/dummy/db/migrate/20110801125009_sunrise_create_structures.rb +27 -0
 - data/spec/dummy/db/migrate/20110801125109_sunrise_create_pages.rb +17 -0
 - data/spec/dummy/db/migrate/20110801125209_sunrise_create_assets.rb +28 -0
 - data/spec/dummy/db/migrate/20110801125309_sunrise_create_headers.rb +20 -0
 - data/spec/dummy/db/migrate/20110801161138_sunrise_create_widgets.rb +24 -0
 - data/spec/dummy/db/seeds.rb +25 -0
 - data/spec/dummy/db/test.sqlite3 +0 -0
 - data/spec/dummy/lib/templates/erb/scaffold/_form.html.erb +13 -0
 - data/spec/dummy/log/development.log +5 -0
 - data/spec/dummy/log/production.log +0 -0
 - data/spec/dummy/log/server.log +0 -0
 - data/spec/dummy/log/test.log +2324 -0
 - data/spec/dummy/public/404.html +26 -0
 - data/spec/dummy/public/422.html +26 -0
 - data/spec/dummy/public/500.html +26 -0
 - data/spec/dummy/public/favicon.ico +0 -0
 - data/spec/dummy/public/images/manage/add_post_bot.gif +0 -0
 - data/spec/dummy/public/images/manage/add_post_top.gif +0 -0
 - data/spec/dummy/public/images/manage/add_white_bot.gif +0 -0
 - data/spec/dummy/public/images/manage/add_white_top.gif +0 -0
 - data/spec/dummy/public/images/manage/arrow.png +0 -0
 - data/spec/dummy/public/images/manage/back_but_lc.gif +0 -0
 - data/spec/dummy/public/images/manage/back_but_rc.gif +0 -0
 - data/spec/dummy/public/images/manage/bot_corn.gif +0 -0
 - data/spec/dummy/public/images/manage/bot_duo_corn.gif +0 -0
 - data/spec/dummy/public/images/manage/but_bg.png +0 -0
 - data/spec/dummy/public/images/manage/but_block_lc.gif +0 -0
 - data/spec/dummy/public/images/manage/but_block_rc.gif +0 -0
 - data/spec/dummy/public/images/manage/but_freze_lc.gif +0 -0
 - data/spec/dummy/public/images/manage/but_freze_rc.gif +0 -0
 - data/spec/dummy/public/images/manage/but_gr.gif +0 -0
 - data/spec/dummy/public/images/manage/but_gr_l.gif +0 -0
 - data/spec/dummy/public/images/manage/but_gr_r.gif +0 -0
 - data/spec/dummy/public/images/manage/but_search.gif +0 -0
 - data/spec/dummy/public/images/manage/but_unfreze_lc.gif +0 -0
 - data/spec/dummy/public/images/manage/but_unfreze_rc.gif +0 -0
 - data/spec/dummy/public/images/manage/button_add_foto.gif +0 -0
 - data/spec/dummy/public/images/manage/button_add_foto_ru.gif +0 -0
 - data/spec/dummy/public/images/manage/button_add_foto_ua.gif +0 -0
 - data/spec/dummy/public/images/manage/button_add_foto_uk.gif +0 -0
 - data/spec/dummy/public/images/manage/cancelbutton.gif +0 -0
 - data/spec/dummy/public/images/manage/dark_arr.gif +0 -0
 - data/spec/dummy/public/images/manage/dark_arr_left.gif +0 -0
 - data/spec/dummy/public/images/manage/dark_cross_ico.gif +0 -0
 - data/spec/dummy/public/images/manage/dot.gif +0 -0
 - data/spec/dummy/public/images/manage/duo_bg.gif +0 -0
 - data/spec/dummy/public/images/manage/duo_bg_small.gif +0 -0
 - data/spec/dummy/public/images/manage/duo_bg_small_blocked.gif +0 -0
 - data/spec/dummy/public/images/manage/duo_bg_small_frozed.gif +0 -0
 - data/spec/dummy/public/images/manage/duo_bg_small_notact.gif +0 -0
 - data/spec/dummy/public/images/manage/duo_bot_small.gif +0 -0
 - data/spec/dummy/public/images/manage/duo_bot_small_blocked.gif +0 -0
 - data/spec/dummy/public/images/manage/duo_bot_small_frozed.gif +0 -0
 - data/spec/dummy/public/images/manage/duo_bot_small_notact.gif +0 -0
 - data/spec/dummy/public/images/manage/duo_top_small.gif +0 -0
 - data/spec/dummy/public/images/manage/duo_top_small_blocked.gif +0 -0
 - data/spec/dummy/public/images/manage/duo_top_small_frozed.gif +0 -0
 - data/spec/dummy/public/images/manage/duo_top_small_notact.gif +0 -0
 - data/spec/dummy/public/images/manage/edit_white_top.gif +0 -0
 - data/spec/dummy/public/images/manage/empty.gif +0 -0
 - data/spec/dummy/public/images/manage/filter_bot_bg.gif +0 -0
 - data/spec/dummy/public/images/manage/filter_top_bg.gif +0 -0
 - data/spec/dummy/public/images/manage/flag_en.gif +0 -0
 - data/spec/dummy/public/images/manage/flag_en_nonact.gif +0 -0
 - data/spec/dummy/public/images/manage/flag_ru.gif +0 -0
 - data/spec/dummy/public/images/manage/flag_ru_nonact.gif +0 -0
 - data/spec/dummy/public/images/manage/flag_ua.gif +0 -0
 - data/spec/dummy/public/images/manage/flag_ua_nonact.gif +0 -0
 - data/spec/dummy/public/images/manage/foto.jpg +0 -0
 - data/spec/dummy/public/images/manage/ico_add.gif +0 -0
 - data/spec/dummy/public/images/manage/ico_del.gif +0 -0
 - data/spec/dummy/public/images/manage/ico_down.gif +0 -0
 - data/spec/dummy/public/images/manage/ico_edit.gif +0 -0
 - data/spec/dummy/public/images/manage/ico_settings.gif +0 -0
 - data/spec/dummy/public/images/manage/ico_up.gif +0 -0
 - data/spec/dummy/public/images/manage/input_bg.gif +0 -0
 - data/spec/dummy/public/images/manage/l_but_corn.gif +0 -0
 - data/spec/dummy/public/images/manage/minimise_but.gif +0 -0
 - data/spec/dummy/public/images/manage/mp3.png +0 -0
 - data/spec/dummy/public/images/manage/page_arr_hover.png +0 -0
 - data/spec/dummy/public/images/manage/page_next_arr.gif +0 -0
 - data/spec/dummy/public/images/manage/page_num_hover.gif +0 -0
 - data/spec/dummy/public/images/manage/page_prev_arr.gif +0 -0
 - data/spec/dummy/public/images/manage/panel/l_but_corn.gif +0 -0
 - data/spec/dummy/public/images/manage/panel/maximise_but.gif +0 -0
 - data/spec/dummy/public/images/manage/panel/r_but_corn.gif +0 -0
 - data/spec/dummy/public/images/manage/panel/top_menu_arr.gif +0 -0
 - data/spec/dummy/public/images/manage/panel/user_pic.gif +0 -0
 - data/spec/dummy/public/images/manage/preloader.gif +0 -0
 - data/spec/dummy/public/images/manage/r_but_corn.gif +0 -0
 - data/spec/dummy/public/images/manage/select_bg.gif +0 -0
 - data/spec/dummy/public/images/manage/select_corn.gif +0 -0
 - data/spec/dummy/public/images/manage/struct_corn_lg.gif +0 -0
 - data/spec/dummy/public/images/manage/struct_corn_llg.gif +0 -0
 - data/spec/dummy/public/images/manage/struct_corn_lw.gif +0 -0
 - data/spec/dummy/public/images/manage/struct_corn_rg.gif +0 -0
 - data/spec/dummy/public/images/manage/struct_corn_rlg.gif +0 -0
 - data/spec/dummy/public/images/manage/struct_corn_rw.gif +0 -0
 - data/spec/dummy/public/images/manage/tab_gl.gif +0 -0
 - data/spec/dummy/public/images/manage/tab_gr.gif +0 -0
 - data/spec/dummy/public/images/manage/tab_wl.gif +0 -0
 - data/spec/dummy/public/images/manage/tab_wr.gif +0 -0
 - data/spec/dummy/public/images/manage/top_corn.gif +0 -0
 - data/spec/dummy/public/images/manage/top_duo_corn.gif +0 -0
 - data/spec/dummy/public/images/manage/top_menu_arr.gif +0 -0
 - data/spec/dummy/public/images/manage/transp_cross.png +0 -0
 - data/spec/dummy/public/images/manage/upload_progress.gif +0 -0
 - data/spec/dummy/public/images/manage/user_act_lc.gif +0 -0
 - data/spec/dummy/public/images/manage/user_act_rc.gif +0 -0
 - data/spec/dummy/public/images/manage/user_ico.gif +0 -0
 - data/spec/dummy/public/images/manage/user_pic.gif +0 -0
 - data/spec/dummy/public/images/manage/user_pic_small.gif +0 -0
 - data/spec/dummy/public/images/manage/user_pic_thumb.gif +0 -0
 - data/spec/dummy/public/javascripts/application.js +2 -0
 - data/spec/dummy/public/javascripts/controls.js +965 -0
 - data/spec/dummy/public/javascripts/datepicker/jquery-ui-i18n.js +1176 -0
 - data/spec/dummy/public/javascripts/datepicker/jquery.ui.datepicker-ru.js +37 -0
 - data/spec/dummy/public/javascripts/datepicker/jquery.ui.datepicker-uk.js +37 -0
 - data/spec/dummy/public/javascripts/dragdrop.js +974 -0
 - data/spec/dummy/public/javascripts/effects.js +1123 -0
 - data/spec/dummy/public/javascripts/fileupload/fileuploader-input.js +217 -0
 - data/spec/dummy/public/javascripts/fileupload/fileuploader.css +31 -0
 - data/spec/dummy/public/javascripts/fileupload/fileuploader.js +1288 -0
 - data/spec/dummy/public/javascripts/jquery-ui-timepicker-addon.js +911 -0
 - data/spec/dummy/public/javascripts/jquery.cookie.js +97 -0
 - data/spec/dummy/public/javascripts/jquery.fancybox-1.3.4.pack.js +46 -0
 - data/spec/dummy/public/javascripts/jquery.tmpl.min.js +10 -0
 - data/spec/dummy/public/javascripts/manage-fileuploader.js +182 -0
 - data/spec/dummy/public/javascripts/manage.js +294 -0
 - data/spec/dummy/public/javascripts/preloader.js +47 -0
 - data/spec/dummy/public/javascripts/prototype.js +6001 -0
 - data/spec/dummy/public/javascripts/rails.js +331 -0
 - data/spec/dummy/public/stylesheets/application.css +1 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/blank.gif +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/fancy_close.png +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/fancy_loading.png +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/fancy_nav_left.png +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/fancy_nav_right.png +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/fancy_shadow_e.png +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/fancy_shadow_n.png +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/fancy_shadow_ne.png +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/fancy_shadow_nw.png +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/fancy_shadow_s.png +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/fancy_shadow_se.png +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/fancy_shadow_sw.png +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/fancy_shadow_w.png +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/fancy_title_left.png +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/fancy_title_main.png +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/fancy_title_over.png +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/fancy_title_right.png +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/fancybox-x.png +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/fancybox-y.png +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/images/fancybox.png +0 -0
 - data/spec/dummy/public/stylesheets/fancybox/jquery.fancybox-1.3.4.css +359 -0
 - data/spec/dummy/public/stylesheets/manage/buttons.css +42 -0
 - data/spec/dummy/public/stylesheets/manage/ie.css +16 -0
 - data/spec/dummy/public/stylesheets/manage/main.css +1108 -0
 - data/spec/dummy/public/stylesheets/manage/panel.css +126 -0
 - data/spec/dummy/public/stylesheets/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
 - data/spec/dummy/public/stylesheets/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
 - data/spec/dummy/public/stylesheets/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
 - data/spec/dummy/public/stylesheets/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
 - data/spec/dummy/public/stylesheets/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
 - data/spec/dummy/public/stylesheets/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
 - data/spec/dummy/public/stylesheets/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
 - data/spec/dummy/public/stylesheets/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
 - data/spec/dummy/public/stylesheets/smoothness/images/ui-icons_222222_256x240.png +0 -0
 - data/spec/dummy/public/stylesheets/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
 - data/spec/dummy/public/stylesheets/smoothness/images/ui-icons_454545_256x240.png +0 -0
 - data/spec/dummy/public/stylesheets/smoothness/images/ui-icons_888888_256x240.png +0 -0
 - data/spec/dummy/public/stylesheets/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
 - data/spec/dummy/public/stylesheets/smoothness/jquery-ui-1.8.13.custom.css +578 -0
 - data/spec/dummy/script/rails +6 -0
 - data/spec/factories/structure_factory.rb +22 -0
 - data/spec/factories/user_factory.rb +48 -0
 - data/spec/factories/widget_factory.rb +12 -0
 - data/spec/generators/install_generator_spec.rb +27 -0
 - data/spec/integration/navigation_spec.rb +9 -0
 - data/spec/models/widget_spec.rb +30 -0
 - data/spec/spec.opts +2 -0
 - data/spec/spec_helper.rb +57 -0
 - data/spec/sunrise_widgets_spec.rb +7 -0
 - data/spec/support/helpers/controller_macros.rb +40 -0
 - data/spec/tmp/app/models/widget.rb +6 -0
 - data/spec/tmp/app/models/widget_position.rb +14 -0
 - data/spec/tmp/app/models/widget_type.rb +15 -0
 - data/spec/tmp/app/sweepers/widget_sweeper.rb +21 -0
 - data/spec/tmp/db/migrate/20110818113026_sunrise_create_widgets.rb +24 -0
 - metadata +587 -0
 
| 
         @@ -0,0 +1,97 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /**
         
     | 
| 
      
 2 
     | 
    
         
            +
             * Cookie plugin
         
     | 
| 
      
 3 
     | 
    
         
            +
             *
         
     | 
| 
      
 4 
     | 
    
         
            +
             * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
         
     | 
| 
      
 5 
     | 
    
         
            +
             * Dual licensed under the MIT and GPL licenses:
         
     | 
| 
      
 6 
     | 
    
         
            +
             * http://www.opensource.org/licenses/mit-license.php
         
     | 
| 
      
 7 
     | 
    
         
            +
             * http://www.gnu.org/licenses/gpl.html
         
     | 
| 
      
 8 
     | 
    
         
            +
             *
         
     | 
| 
      
 9 
     | 
    
         
            +
             */
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            /**
         
     | 
| 
      
 12 
     | 
    
         
            +
             * Create a cookie with the given name and value and other optional parameters.
         
     | 
| 
      
 13 
     | 
    
         
            +
             *
         
     | 
| 
      
 14 
     | 
    
         
            +
             * @example $.cookie('the_cookie', 'the_value');
         
     | 
| 
      
 15 
     | 
    
         
            +
             * @desc Set the value of a cookie.
         
     | 
| 
      
 16 
     | 
    
         
            +
             * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
         
     | 
| 
      
 17 
     | 
    
         
            +
             * @desc Create a cookie with all available options.
         
     | 
| 
      
 18 
     | 
    
         
            +
             * @example $.cookie('the_cookie', 'the_value');
         
     | 
| 
      
 19 
     | 
    
         
            +
             * @desc Create a session cookie.
         
     | 
| 
      
 20 
     | 
    
         
            +
             * @example $.cookie('the_cookie', null);
         
     | 
| 
      
 21 
     | 
    
         
            +
             * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
         
     | 
| 
      
 22 
     | 
    
         
            +
             *       used when the cookie was set.
         
     | 
| 
      
 23 
     | 
    
         
            +
             *
         
     | 
| 
      
 24 
     | 
    
         
            +
             * @param String name The name of the cookie.
         
     | 
| 
      
 25 
     | 
    
         
            +
             * @param String value The value of the cookie.
         
     | 
| 
      
 26 
     | 
    
         
            +
             * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
         
     | 
| 
      
 27 
     | 
    
         
            +
             * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
         
     | 
| 
      
 28 
     | 
    
         
            +
             *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
         
     | 
| 
      
 29 
     | 
    
         
            +
             *                             If set to null or omitted, the cookie will be a session cookie and will not be retained
         
     | 
| 
      
 30 
     | 
    
         
            +
             *                             when the the browser exits.
         
     | 
| 
      
 31 
     | 
    
         
            +
             * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
         
     | 
| 
      
 32 
     | 
    
         
            +
             * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
         
     | 
| 
      
 33 
     | 
    
         
            +
             * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
         
     | 
| 
      
 34 
     | 
    
         
            +
             *                        require a secure protocol (like HTTPS).
         
     | 
| 
      
 35 
     | 
    
         
            +
             * @type undefined
         
     | 
| 
      
 36 
     | 
    
         
            +
             *
         
     | 
| 
      
 37 
     | 
    
         
            +
             * @name $.cookie
         
     | 
| 
      
 38 
     | 
    
         
            +
             * @cat Plugins/Cookie
         
     | 
| 
      
 39 
     | 
    
         
            +
             * @author Klaus Hartl/klaus.hartl@stilbuero.de
         
     | 
| 
      
 40 
     | 
    
         
            +
             */
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
            /**
         
     | 
| 
      
 43 
     | 
    
         
            +
             * Get the value of a cookie with the given name.
         
     | 
| 
      
 44 
     | 
    
         
            +
             *
         
     | 
| 
      
 45 
     | 
    
         
            +
             * @example $.cookie('the_cookie');
         
     | 
| 
      
 46 
     | 
    
         
            +
             * @desc Get the value of a cookie.
         
     | 
| 
      
 47 
     | 
    
         
            +
             *
         
     | 
| 
      
 48 
     | 
    
         
            +
             * @param String name The name of the cookie.
         
     | 
| 
      
 49 
     | 
    
         
            +
             * @return The value of the cookie.
         
     | 
| 
      
 50 
     | 
    
         
            +
             * @type String
         
     | 
| 
      
 51 
     | 
    
         
            +
             *
         
     | 
| 
      
 52 
     | 
    
         
            +
             * @name $.cookie
         
     | 
| 
      
 53 
     | 
    
         
            +
             * @cat Plugins/Cookie
         
     | 
| 
      
 54 
     | 
    
         
            +
             * @author Klaus Hartl/klaus.hartl@stilbuero.de
         
     | 
| 
      
 55 
     | 
    
         
            +
             */
         
     | 
| 
      
 56 
     | 
    
         
            +
            jQuery.cookie = function(name, value, options) {
         
     | 
| 
      
 57 
     | 
    
         
            +
                if (typeof value != 'undefined') { // name and value given, set cookie
         
     | 
| 
      
 58 
     | 
    
         
            +
                    options = options || {};
         
     | 
| 
      
 59 
     | 
    
         
            +
                    if (value === null) {
         
     | 
| 
      
 60 
     | 
    
         
            +
                        value = '';
         
     | 
| 
      
 61 
     | 
    
         
            +
                        options.expires = -1;
         
     | 
| 
      
 62 
     | 
    
         
            +
                    }
         
     | 
| 
      
 63 
     | 
    
         
            +
                    var expires = '';
         
     | 
| 
      
 64 
     | 
    
         
            +
                    if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
         
     | 
| 
      
 65 
     | 
    
         
            +
                        var date;
         
     | 
| 
      
 66 
     | 
    
         
            +
                        if (typeof options.expires == 'number') {
         
     | 
| 
      
 67 
     | 
    
         
            +
                            date = new Date();
         
     | 
| 
      
 68 
     | 
    
         
            +
                            date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
         
     | 
| 
      
 69 
     | 
    
         
            +
                        } else {
         
     | 
| 
      
 70 
     | 
    
         
            +
                            date = options.expires;
         
     | 
| 
      
 71 
     | 
    
         
            +
                        }
         
     | 
| 
      
 72 
     | 
    
         
            +
                        expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
         
     | 
| 
      
 73 
     | 
    
         
            +
                    }
         
     | 
| 
      
 74 
     | 
    
         
            +
                    // CAUTION: Needed to parenthesize options.path and options.domain
         
     | 
| 
      
 75 
     | 
    
         
            +
                    // in the following expressions, otherwise they evaluate to undefined
         
     | 
| 
      
 76 
     | 
    
         
            +
                    // in the packed version for some reason...
         
     | 
| 
      
 77 
     | 
    
         
            +
                    var path = options.path ? '; path=' + (options.path) : '';
         
     | 
| 
      
 78 
     | 
    
         
            +
                    var domain = options.domain ? '; domain=' + (options.domain) : '';
         
     | 
| 
      
 79 
     | 
    
         
            +
                    var secure = options.secure ? '; secure' : '';
         
     | 
| 
      
 80 
     | 
    
         
            +
                    document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
         
     | 
| 
      
 81 
     | 
    
         
            +
                } else { // only name given, get cookie
         
     | 
| 
      
 82 
     | 
    
         
            +
                    var cookieValue = null;
         
     | 
| 
      
 83 
     | 
    
         
            +
                    if (document.cookie && document.cookie != '') {
         
     | 
| 
      
 84 
     | 
    
         
            +
                        var cookies = document.cookie.split(';');
         
     | 
| 
      
 85 
     | 
    
         
            +
                        for (var i = 0; i < cookies.length; i++) {
         
     | 
| 
      
 86 
     | 
    
         
            +
                            var cookie = jQuery.trim(cookies[i]);
         
     | 
| 
      
 87 
     | 
    
         
            +
                            // Does this cookie string begin with the name we want?
         
     | 
| 
      
 88 
     | 
    
         
            +
                            if (cookie.substring(0, name.length + 1) == (name + '=')) {
         
     | 
| 
      
 89 
     | 
    
         
            +
                                cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
         
     | 
| 
      
 90 
     | 
    
         
            +
                                break;
         
     | 
| 
      
 91 
     | 
    
         
            +
                            }
         
     | 
| 
      
 92 
     | 
    
         
            +
                        }
         
     | 
| 
      
 93 
     | 
    
         
            +
                    }
         
     | 
| 
      
 94 
     | 
    
         
            +
                    return cookieValue;
         
     | 
| 
      
 95 
     | 
    
         
            +
                }
         
     | 
| 
      
 96 
     | 
    
         
            +
            };
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
         @@ -0,0 +1,46 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /*
         
     | 
| 
      
 2 
     | 
    
         
            +
             * FancyBox - jQuery Plugin
         
     | 
| 
      
 3 
     | 
    
         
            +
             * Simple and fancy lightbox alternative
         
     | 
| 
      
 4 
     | 
    
         
            +
             *
         
     | 
| 
      
 5 
     | 
    
         
            +
             * Examples and documentation at: http://fancybox.net
         
     | 
| 
      
 6 
     | 
    
         
            +
             * 
         
     | 
| 
      
 7 
     | 
    
         
            +
             * Copyright (c) 2008 - 2010 Janis Skarnelis
         
     | 
| 
      
 8 
     | 
    
         
            +
             * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated.
         
     | 
| 
      
 9 
     | 
    
         
            +
             * 
         
     | 
| 
      
 10 
     | 
    
         
            +
             * Version: 1.3.4 (11/11/2010)
         
     | 
| 
      
 11 
     | 
    
         
            +
             * Requires: jQuery v1.3+
         
     | 
| 
      
 12 
     | 
    
         
            +
             *
         
     | 
| 
      
 13 
     | 
    
         
            +
             * Dual licensed under the MIT and GPL licenses:
         
     | 
| 
      
 14 
     | 
    
         
            +
             *   http://www.opensource.org/licenses/mit-license.php
         
     | 
| 
      
 15 
     | 
    
         
            +
             *   http://www.gnu.org/licenses/gpl.html
         
     | 
| 
      
 16 
     | 
    
         
            +
             */
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            ;(function(b){var m,t,u,f,D,j,E,n,z,A,q=0,e={},o=[],p=0,d={},l=[],G=null,v=new Image,J=/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i,W=/[^\.]\.(swf)\s*$/i,K,L=1,y=0,s="",r,i,h=false,B=b.extend(b("<div/>")[0],{prop:0}),M=b.browser.msie&&b.browser.version<7&&!window.XMLHttpRequest,N=function(){t.hide();v.onerror=v.onload=null;G&&G.abort();m.empty()},O=function(){if(false===e.onError(o,q,e)){t.hide();h=false}else{e.titleShow=false;e.width="auto";e.height="auto";m.html('<p id="fancybox-error">The requested content cannot be loaded.<br />Please try again later.</p>');
         
     | 
| 
      
 19 
     | 
    
         
            +
            F()}},I=function(){var a=o[q],c,g,k,C,P,w;N();e=b.extend({},b.fn.fancybox.defaults,typeof b(a).data("fancybox")=="undefined"?e:b(a).data("fancybox"));w=e.onStart(o,q,e);if(w===false)h=false;else{if(typeof w=="object")e=b.extend(e,w);k=e.title||(a.nodeName?b(a).attr("title"):a.title)||"";if(a.nodeName&&!e.orig)e.orig=b(a).children("img:first").length?b(a).children("img:first"):b(a);if(k===""&&e.orig&&e.titleFromAlt)k=e.orig.attr("alt");c=e.href||(a.nodeName?b(a).attr("href"):a.href)||null;if(/^(?:javascript)/i.test(c)||
         
     | 
| 
      
 20 
     | 
    
         
            +
            c=="#")c=null;if(e.type){g=e.type;if(!c)c=e.content}else if(e.content)g="html";else if(c)g=c.match(J)?"image":c.match(W)?"swf":b(a).hasClass("iframe")?"iframe":c.indexOf("#")===0?"inline":"ajax";if(g){if(g=="inline"){a=c.substr(c.indexOf("#"));g=b(a).length>0?"inline":"ajax"}e.type=g;e.href=c;e.title=k;if(e.autoDimensions)if(e.type=="html"||e.type=="inline"||e.type=="ajax"){e.width="auto";e.height="auto"}else e.autoDimensions=false;if(e.modal){e.overlayShow=true;e.hideOnOverlayClick=false;e.hideOnContentClick=
         
     | 
| 
      
 21 
     | 
    
         
            +
            false;e.enableEscapeButton=false;e.showCloseButton=false}e.padding=parseInt(e.padding,10);e.margin=parseInt(e.margin,10);m.css("padding",e.padding+e.margin);b(".fancybox-inline-tmp").unbind("fancybox-cancel").bind("fancybox-change",function(){b(this).replaceWith(j.children())});switch(g){case "html":m.html(e.content);F();break;case "inline":if(b(a).parent().is("#fancybox-content")===true){h=false;break}b('<div class="fancybox-inline-tmp" />').hide().insertBefore(b(a)).bind("fancybox-cleanup",function(){b(this).replaceWith(j.children())}).bind("fancybox-cancel",
         
     | 
| 
      
 22 
     | 
    
         
            +
            function(){b(this).replaceWith(m.children())});b(a).appendTo(m);F();break;case "image":h=false;b.fancybox.showActivity();v=new Image;v.onerror=function(){O()};v.onload=function(){h=true;v.onerror=v.onload=null;e.width=v.width;e.height=v.height;b("<img />").attr({id:"fancybox-img",src:v.src,alt:e.title}).appendTo(m);Q()};v.src=c;break;case "swf":e.scrolling="no";C='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+e.width+'" height="'+e.height+'"><param name="movie" value="'+c+
         
     | 
| 
      
 23 
     | 
    
         
            +
            '"></param>';P="";b.each(e.swf,function(x,H){C+='<param name="'+x+'" value="'+H+'"></param>';P+=" "+x+'="'+H+'"'});C+='<embed src="'+c+'" type="application/x-shockwave-flash" width="'+e.width+'" height="'+e.height+'"'+P+"></embed></object>";m.html(C);F();break;case "ajax":h=false;b.fancybox.showActivity();e.ajax.win=e.ajax.success;G=b.ajax(b.extend({},e.ajax,{url:c,data:e.ajax.data||{},error:function(x){x.status>0&&O()},success:function(x,H,R){if((typeof R=="object"?R:G).status==200){if(typeof e.ajax.win==
         
     | 
| 
      
 24 
     | 
    
         
            +
            "function"){w=e.ajax.win(c,x,H,R);if(w===false){t.hide();return}else if(typeof w=="string"||typeof w=="object")x=w}m.html(x);F()}}}));break;case "iframe":Q()}}else O()}},F=function(){var a=e.width,c=e.height;a=a.toString().indexOf("%")>-1?parseInt((b(window).width()-e.margin*2)*parseFloat(a)/100,10)+"px":a=="auto"?"auto":a+"px";c=c.toString().indexOf("%")>-1?parseInt((b(window).height()-e.margin*2)*parseFloat(c)/100,10)+"px":c=="auto"?"auto":c+"px";m.wrapInner('<div style="width:'+a+";height:"+c+
         
     | 
| 
      
 25 
     | 
    
         
            +
            ";overflow: "+(e.scrolling=="auto"?"auto":e.scrolling=="yes"?"scroll":"hidden")+';position:relative;"></div>');e.width=m.width();e.height=m.height();Q()},Q=function(){var a,c;t.hide();if(f.is(":visible")&&false===d.onCleanup(l,p,d)){b.event.trigger("fancybox-cancel");h=false}else{h=true;b(j.add(u)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");f.is(":visible")&&d.titlePosition!=="outside"&&f.css("height",f.height());l=o;p=q;d=e;if(d.overlayShow){u.css({"background-color":d.overlayColor,
         
     | 
| 
      
 26 
     | 
    
         
            +
            opacity:d.overlayOpacity,cursor:d.hideOnOverlayClick?"pointer":"auto",height:b(document).height()});if(!u.is(":visible")){M&&b("select:not(#fancybox-tmp select)").filter(function(){return this.style.visibility!=="hidden"}).css({visibility:"hidden"}).one("fancybox-cleanup",function(){this.style.visibility="inherit"});u.show()}}else u.hide();i=X();s=d.title||"";y=0;n.empty().removeAttr("style").removeClass();if(d.titleShow!==false){if(b.isFunction(d.titleFormat))a=d.titleFormat(s,l,p,d);else a=s&&s.length?
         
     | 
| 
      
 27 
     | 
    
         
            +
            d.titlePosition=="float"?'<table id="fancybox-title-float-wrap" cellpadding="0" cellspacing="0"><tr><td id="fancybox-title-float-left"></td><td id="fancybox-title-float-main">'+s+'</td><td id="fancybox-title-float-right"></td></tr></table>':'<div id="fancybox-title-'+d.titlePosition+'">'+s+"</div>":false;s=a;if(!(!s||s==="")){n.addClass("fancybox-title-"+d.titlePosition).html(s).appendTo("body").show();switch(d.titlePosition){case "inside":n.css({width:i.width-d.padding*2,marginLeft:d.padding,marginRight:d.padding});
         
     | 
| 
      
 28 
     | 
    
         
            +
            y=n.outerHeight(true);n.appendTo(D);i.height+=y;break;case "over":n.css({marginLeft:d.padding,width:i.width-d.padding*2,bottom:d.padding}).appendTo(D);break;case "float":n.css("left",parseInt((n.width()-i.width-40)/2,10)*-1).appendTo(f);break;default:n.css({width:i.width-d.padding*2,paddingLeft:d.padding,paddingRight:d.padding}).appendTo(f)}}}n.hide();if(f.is(":visible")){b(E.add(z).add(A)).hide();a=f.position();r={top:a.top,left:a.left,width:f.width(),height:f.height()};c=r.width==i.width&&r.height==
         
     | 
| 
      
 29 
     | 
    
         
            +
            i.height;j.fadeTo(d.changeFade,0.3,function(){var g=function(){j.html(m.contents()).fadeTo(d.changeFade,1,S)};b.event.trigger("fancybox-change");j.empty().removeAttr("filter").css({"border-width":d.padding,width:i.width-d.padding*2,height:e.autoDimensions?"auto":i.height-y-d.padding*2});if(c)g();else{B.prop=0;b(B).animate({prop:1},{duration:d.changeSpeed,easing:d.easingChange,step:T,complete:g})}})}else{f.removeAttr("style");j.css("border-width",d.padding);if(d.transitionIn=="elastic"){r=V();j.html(m.contents());
         
     | 
| 
      
 30 
     | 
    
         
            +
            f.show();if(d.opacity)i.opacity=0;B.prop=0;b(B).animate({prop:1},{duration:d.speedIn,easing:d.easingIn,step:T,complete:S})}else{d.titlePosition=="inside"&&y>0&&n.show();j.css({width:i.width-d.padding*2,height:e.autoDimensions?"auto":i.height-y-d.padding*2}).html(m.contents());f.css(i).fadeIn(d.transitionIn=="none"?0:d.speedIn,S)}}}},Y=function(){if(d.enableEscapeButton||d.enableKeyboardNav)b(document).bind("keydown.fb",function(a){if(a.keyCode==27&&d.enableEscapeButton){a.preventDefault();b.fancybox.close()}else if((a.keyCode==
         
     | 
| 
      
 31 
     | 
    
         
            +
            37||a.keyCode==39)&&d.enableKeyboardNav&&a.target.tagName!=="INPUT"&&a.target.tagName!=="TEXTAREA"&&a.target.tagName!=="SELECT"){a.preventDefault();b.fancybox[a.keyCode==37?"prev":"next"]()}});if(d.showNavArrows){if(d.cyclic&&l.length>1||p!==0)z.show();if(d.cyclic&&l.length>1||p!=l.length-1)A.show()}else{z.hide();A.hide()}},S=function(){if(!b.support.opacity){j.get(0).style.removeAttribute("filter");f.get(0).style.removeAttribute("filter")}e.autoDimensions&&j.css("height","auto");f.css("height","auto");
         
     | 
| 
      
 32 
     | 
    
         
            +
            s&&s.length&&n.show();d.showCloseButton&&E.show();Y();d.hideOnContentClick&&j.bind("click",b.fancybox.close);d.hideOnOverlayClick&&u.bind("click",b.fancybox.close);b(window).bind("resize.fb",b.fancybox.resize);d.centerOnScroll&&b(window).bind("scroll.fb",b.fancybox.center);if(d.type=="iframe")b('<iframe id="fancybox-frame" name="fancybox-frame'+(new Date).getTime()+'" frameborder="0" hspace="0" '+(b.browser.msie?'allowtransparency="true""':"")+' scrolling="'+e.scrolling+'" src="'+d.href+'"></iframe>').appendTo(j);
         
     | 
| 
      
 33 
     | 
    
         
            +
            f.show();h=false;b.fancybox.center();d.onComplete(l,p,d);var a,c;if(l.length-1>p){a=l[p+1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}if(p>0){a=l[p-1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}},T=function(a){var c={width:parseInt(r.width+(i.width-r.width)*a,10),height:parseInt(r.height+(i.height-r.height)*a,10),top:parseInt(r.top+(i.top-r.top)*a,10),left:parseInt(r.left+(i.left-r.left)*a,10)};if(typeof i.opacity!=="undefined")c.opacity=a<0.5?0.5:a;f.css(c);
         
     | 
| 
      
 34 
     | 
    
         
            +
            j.css({width:c.width-d.padding*2,height:c.height-y*a-d.padding*2})},U=function(){return[b(window).width()-d.margin*2,b(window).height()-d.margin*2,b(document).scrollLeft()+d.margin,b(document).scrollTop()+d.margin]},X=function(){var a=U(),c={},g=d.autoScale,k=d.padding*2;c.width=d.width.toString().indexOf("%")>-1?parseInt(a[0]*parseFloat(d.width)/100,10):d.width+k;c.height=d.height.toString().indexOf("%")>-1?parseInt(a[1]*parseFloat(d.height)/100,10):d.height+k;if(g&&(c.width>a[0]||c.height>a[1]))if(e.type==
         
     | 
| 
      
 35 
     | 
    
         
            +
            "image"||e.type=="swf"){g=d.width/d.height;if(c.width>a[0]){c.width=a[0];c.height=parseInt((c.width-k)/g+k,10)}if(c.height>a[1]){c.height=a[1];c.width=parseInt((c.height-k)*g+k,10)}}else{c.width=Math.min(c.width,a[0]);c.height=Math.min(c.height,a[1])}c.top=parseInt(Math.max(a[3]-20,a[3]+(a[1]-c.height-40)*0.5),10);c.left=parseInt(Math.max(a[2]-20,a[2]+(a[0]-c.width-40)*0.5),10);return c},V=function(){var a=e.orig?b(e.orig):false,c={};if(a&&a.length){c=a.offset();c.top+=parseInt(a.css("paddingTop"),
         
     | 
| 
      
 36 
     | 
    
         
            +
            10)||0;c.left+=parseInt(a.css("paddingLeft"),10)||0;c.top+=parseInt(a.css("border-top-width"),10)||0;c.left+=parseInt(a.css("border-left-width"),10)||0;c.width=a.width();c.height=a.height();c={width:c.width+d.padding*2,height:c.height+d.padding*2,top:c.top-d.padding-20,left:c.left-d.padding-20}}else{a=U();c={width:d.padding*2,height:d.padding*2,top:parseInt(a[3]+a[1]*0.5,10),left:parseInt(a[2]+a[0]*0.5,10)}}return c},Z=function(){if(t.is(":visible")){b("div",t).css("top",L*-40+"px");L=(L+1)%12}else clearInterval(K)};
         
     | 
| 
      
 37 
     | 
    
         
            +
            b.fn.fancybox=function(a){if(!b(this).length)return this;b(this).data("fancybox",b.extend({},a,b.metadata?b(this).metadata():{})).unbind("click.fb").bind("click.fb",function(c){c.preventDefault();if(!h){h=true;b(this).blur();o=[];q=0;c=b(this).attr("rel")||"";if(!c||c==""||c==="nofollow")o.push(this);else{o=b("a[rel="+c+"], area[rel="+c+"]");q=o.index(this)}I()}});return this};b.fancybox=function(a,c){var g;if(!h){h=true;g=typeof c!=="undefined"?c:{};o=[];q=parseInt(g.index,10)||0;if(b.isArray(a)){for(var k=
         
     | 
| 
      
 38 
     | 
    
         
            +
            0,C=a.length;k<C;k++)if(typeof a[k]=="object")b(a[k]).data("fancybox",b.extend({},g,a[k]));else a[k]=b({}).data("fancybox",b.extend({content:a[k]},g));o=jQuery.merge(o,a)}else{if(typeof a=="object")b(a).data("fancybox",b.extend({},g,a));else a=b({}).data("fancybox",b.extend({content:a},g));o.push(a)}if(q>o.length||q<0)q=0;I()}};b.fancybox.showActivity=function(){clearInterval(K);t.show();K=setInterval(Z,66)};b.fancybox.hideActivity=function(){t.hide()};b.fancybox.next=function(){return b.fancybox.pos(p+
         
     | 
| 
      
 39 
     | 
    
         
            +
            1)};b.fancybox.prev=function(){return b.fancybox.pos(p-1)};b.fancybox.pos=function(a){if(!h){a=parseInt(a);o=l;if(a>-1&&a<l.length){q=a;I()}else if(d.cyclic&&l.length>1){q=a>=l.length?0:l.length-1;I()}}};b.fancybox.cancel=function(){if(!h){h=true;b.event.trigger("fancybox-cancel");N();e.onCancel(o,q,e);h=false}};b.fancybox.close=function(){function a(){u.fadeOut("fast");n.empty().hide();f.hide();b.event.trigger("fancybox-cleanup");j.empty();d.onClosed(l,p,d);l=e=[];p=q=0;d=e={};h=false}if(!(h||f.is(":hidden"))){h=
         
     | 
| 
      
 40 
     | 
    
         
            +
            true;if(d&&false===d.onCleanup(l,p,d))h=false;else{N();b(E.add(z).add(A)).hide();b(j.add(u)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");j.find("iframe").attr("src",M&&/^https/i.test(window.location.href||"")?"javascript:void(false)":"about:blank");d.titlePosition!=="inside"&&n.empty();f.stop();if(d.transitionOut=="elastic"){r=V();var c=f.position();i={top:c.top,left:c.left,width:f.width(),height:f.height()};if(d.opacity)i.opacity=1;n.empty().hide();B.prop=1;
         
     | 
| 
      
 41 
     | 
    
         
            +
            b(B).animate({prop:0},{duration:d.speedOut,easing:d.easingOut,step:T,complete:a})}else f.fadeOut(d.transitionOut=="none"?0:d.speedOut,a)}}};b.fancybox.resize=function(){u.is(":visible")&&u.css("height",b(document).height());b.fancybox.center(true)};b.fancybox.center=function(a){var c,g;if(!h){g=a===true?1:0;c=U();!g&&(f.width()>c[0]||f.height()>c[1])||f.stop().animate({top:parseInt(Math.max(c[3]-20,c[3]+(c[1]-j.height()-40)*0.5-d.padding)),left:parseInt(Math.max(c[2]-20,c[2]+(c[0]-j.width()-40)*0.5-
         
     | 
| 
      
 42 
     | 
    
         
            +
            d.padding))},typeof a=="number"?a:200)}};b.fancybox.init=function(){if(!b("#fancybox-wrap").length){b("body").append(m=b('<div id="fancybox-tmp"></div>'),t=b('<div id="fancybox-loading"><div></div></div>'),u=b('<div id="fancybox-overlay"></div>'),f=b('<div id="fancybox-wrap"></div>'));D=b('<div id="fancybox-outer"></div>').append('<div class="fancybox-bg" id="fancybox-bg-n"></div><div class="fancybox-bg" id="fancybox-bg-ne"></div><div class="fancybox-bg" id="fancybox-bg-e"></div><div class="fancybox-bg" id="fancybox-bg-se"></div><div class="fancybox-bg" id="fancybox-bg-s"></div><div class="fancybox-bg" id="fancybox-bg-sw"></div><div class="fancybox-bg" id="fancybox-bg-w"></div><div class="fancybox-bg" id="fancybox-bg-nw"></div>').appendTo(f);
         
     | 
| 
      
 43 
     | 
    
         
            +
            D.append(j=b('<div id="fancybox-content"></div>'),E=b('<a id="fancybox-close"></a>'),n=b('<div id="fancybox-title"></div>'),z=b('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'),A=b('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>'));E.click(b.fancybox.close);t.click(b.fancybox.cancel);z.click(function(a){a.preventDefault();b.fancybox.prev()});A.click(function(a){a.preventDefault();b.fancybox.next()});
         
     | 
| 
      
 44 
     | 
    
         
            +
            b.fn.mousewheel&&f.bind("mousewheel.fb",function(a,c){if(h)a.preventDefault();else if(b(a.target).get(0).clientHeight==0||b(a.target).get(0).scrollHeight===b(a.target).get(0).clientHeight){a.preventDefault();b.fancybox[c>0?"prev":"next"]()}});b.support.opacity||f.addClass("fancybox-ie");if(M){t.addClass("fancybox-ie6");f.addClass("fancybox-ie6");b('<iframe id="fancybox-hide-sel-frame" src="'+(/^https/i.test(window.location.href||"")?"javascript:void(false)":"about:blank")+'" scrolling="no" border="0" frameborder="0" tabindex="-1"></iframe>').prependTo(D)}}};
         
     | 
| 
      
 45 
     | 
    
         
            +
            b.fn.fancybox.defaults={padding:10,margin:40,opacity:false,modal:false,cyclic:false,scrolling:"auto",width:560,height:340,autoScale:true,autoDimensions:true,centerOnScroll:false,ajax:{},swf:{wmode:"transparent"},hideOnOverlayClick:true,hideOnContentClick:false,overlayShow:true,overlayOpacity:0.7,overlayColor:"#777",titleShow:true,titlePosition:"float",titleFormat:null,titleFromAlt:false,transitionIn:"fade",transitionOut:"fade",speedIn:300,speedOut:300,changeSpeed:300,changeFade:"fast",easingIn:"swing",
         
     | 
| 
      
 46 
     | 
    
         
            +
            easingOut:"swing",showCloseButton:true,showNavArrows:true,enableEscapeButton:true,enableKeyboardNav:true,onStart:function(){},onCancel:function(){},onComplete:function(){},onCleanup:function(){},onClosed:function(){},onError:function(){}};b(document).ready(function(){b.fancybox.init()})})(jQuery);
         
     | 
| 
         @@ -0,0 +1,10 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /*
         
     | 
| 
      
 2 
     | 
    
         
            +
             * jQuery Templates Plugin 1.0.0pre
         
     | 
| 
      
 3 
     | 
    
         
            +
             * http://github.com/jquery/jquery-tmpl
         
     | 
| 
      
 4 
     | 
    
         
            +
             * Requires jQuery 1.4.2
         
     | 
| 
      
 5 
     | 
    
         
            +
             *
         
     | 
| 
      
 6 
     | 
    
         
            +
             * Copyright Software Freedom Conservancy, Inc.
         
     | 
| 
      
 7 
     | 
    
         
            +
             * Dual licensed under the MIT or GPL Version 2 licenses.
         
     | 
| 
      
 8 
     | 
    
         
            +
             * http://jquery.org/license
         
     | 
| 
      
 9 
     | 
    
         
            +
             */
         
     | 
| 
      
 10 
     | 
    
         
            +
            (function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
         
     | 
| 
         @@ -0,0 +1,182 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            // Collection of all instances on page
         
     | 
| 
      
 2 
     | 
    
         
            +
            qq.FileUploader.instances = new Object();
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            /**
         
     | 
| 
      
 5 
     | 
    
         
            +
             * Class that creates upload widget with drag-and-drop and file list
         
     | 
| 
      
 6 
     | 
    
         
            +
             * @inherits qq.FileUploaderBasic
         
     | 
| 
      
 7 
     | 
    
         
            +
             */
         
     | 
| 
      
 8 
     | 
    
         
            +
            qq.FileUploaderInput = function(o){
         
     | 
| 
      
 9 
     | 
    
         
            +
                // call parent constructor
         
     | 
| 
      
 10 
     | 
    
         
            +
                qq.FileUploaderBasic.apply(this, arguments);
         
     | 
| 
      
 11 
     | 
    
         
            +
                
         
     | 
| 
      
 12 
     | 
    
         
            +
                // additional options    
         
     | 
| 
      
 13 
     | 
    
         
            +
                qq.extend(this._options, {
         
     | 
| 
      
 14 
     | 
    
         
            +
                    element: null,
         
     | 
| 
      
 15 
     | 
    
         
            +
                    // if set, will be used instead of qq-upload-list in template
         
     | 
| 
      
 16 
     | 
    
         
            +
                    listElement: null,
         
     | 
| 
      
 17 
     | 
    
         
            +
                    
         
     | 
| 
      
 18 
     | 
    
         
            +
                    template_id: '#fileupload_tmpl',       
         
     | 
| 
      
 19 
     | 
    
         
            +
                    
         
     | 
| 
      
 20 
     | 
    
         
            +
                    classes: {
         
     | 
| 
      
 21 
     | 
    
         
            +
                        // used to get elements from templates
         
     | 
| 
      
 22 
     | 
    
         
            +
                        button: 'fileupload-button',
         
     | 
| 
      
 23 
     | 
    
         
            +
                        drop: 'fileupload-drop-area',
         
     | 
| 
      
 24 
     | 
    
         
            +
                        dropActive: 'fileupload-drop-area-active',
         
     | 
| 
      
 25 
     | 
    
         
            +
                        list: 'fileupload-list',
         
     | 
| 
      
 26 
     | 
    
         
            +
                        preview: 'fileupload-preview',
         
     | 
| 
      
 27 
     | 
    
         
            +
                                    
         
     | 
| 
      
 28 
     | 
    
         
            +
                        file: 'fileupload-file',
         
     | 
| 
      
 29 
     | 
    
         
            +
                        spinner: 'fileupload-spinner',
         
     | 
| 
      
 30 
     | 
    
         
            +
                        size: 'fileupload-size',
         
     | 
| 
      
 31 
     | 
    
         
            +
                        cancel: 'fileupload-cancel',
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                        // added to list item when upload completes
         
     | 
| 
      
 34 
     | 
    
         
            +
                        // used in css to hide progress spinner
         
     | 
| 
      
 35 
     | 
    
         
            +
                        success: 'fileupload-success',
         
     | 
| 
      
 36 
     | 
    
         
            +
                        fail: 'fileupload-fail'
         
     | 
| 
      
 37 
     | 
    
         
            +
                    }
         
     | 
| 
      
 38 
     | 
    
         
            +
                });
         
     | 
| 
      
 39 
     | 
    
         
            +
                // overwrite options with user supplied    
         
     | 
| 
      
 40 
     | 
    
         
            +
                qq.extend(this._options, o);       
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                this._element = document.getElementById(this._options.element);
         
     | 
| 
      
 43 
     | 
    
         
            +
                this._listElement = this._options.listElement || this._find(this._element, 'list');
         
     | 
| 
      
 44 
     | 
    
         
            +
                
         
     | 
| 
      
 45 
     | 
    
         
            +
                this._classes = this._options.classes;
         
     | 
| 
      
 46 
     | 
    
         
            +
                    
         
     | 
| 
      
 47 
     | 
    
         
            +
                this._button = this._createUploadButton(this._find(this._element, 'button'));        
         
     | 
| 
      
 48 
     | 
    
         
            +
                
         
     | 
| 
      
 49 
     | 
    
         
            +
                //this._setupDragDrop();
         
     | 
| 
      
 50 
     | 
    
         
            +
                
         
     | 
| 
      
 51 
     | 
    
         
            +
                qq.FileUploader.instances[this._element.id] = this;
         
     | 
| 
      
 52 
     | 
    
         
            +
            };
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
            // inherit from Basic Uploader
         
     | 
| 
      
 55 
     | 
    
         
            +
            qq.extend(qq.FileUploaderInput.prototype, qq.FileUploaderBasic.prototype);
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
            qq.extend(qq.FileUploaderInput.prototype, {
         
     | 
| 
      
 58 
     | 
    
         
            +
                /**
         
     | 
| 
      
 59 
     | 
    
         
            +
                 * Gets one of the elements listed in this._options.classes
         
     | 
| 
      
 60 
     | 
    
         
            +
                 **/
         
     | 
| 
      
 61 
     | 
    
         
            +
                _find: function(parent, type){                                
         
     | 
| 
      
 62 
     | 
    
         
            +
                    var element = qq.getByClass(parent, this._options.classes[type])[0];        
         
     | 
| 
      
 63 
     | 
    
         
            +
                    if (!element){
         
     | 
| 
      
 64 
     | 
    
         
            +
                        throw new Error('element not found ' + type);
         
     | 
| 
      
 65 
     | 
    
         
            +
                    }
         
     | 
| 
      
 66 
     | 
    
         
            +
                    
         
     | 
| 
      
 67 
     | 
    
         
            +
                    return element;
         
     | 
| 
      
 68 
     | 
    
         
            +
                },
         
     | 
| 
      
 69 
     | 
    
         
            +
                _setupDragDrop: function(){
         
     | 
| 
      
 70 
     | 
    
         
            +
                    var self = this,
         
     | 
| 
      
 71 
     | 
    
         
            +
                        dropArea = this._find(this._element, 'drop');                        
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
                    var dz = new qq.UploadDropZone({
         
     | 
| 
      
 74 
     | 
    
         
            +
                        element: dropArea,
         
     | 
| 
      
 75 
     | 
    
         
            +
                        onEnter: function(e){
         
     | 
| 
      
 76 
     | 
    
         
            +
                            qq.addClass(dropArea, self._classes.dropActive);
         
     | 
| 
      
 77 
     | 
    
         
            +
                            e.stopPropagation();
         
     | 
| 
      
 78 
     | 
    
         
            +
                        },
         
     | 
| 
      
 79 
     | 
    
         
            +
                        onLeave: function(e){
         
     | 
| 
      
 80 
     | 
    
         
            +
                            e.stopPropagation();
         
     | 
| 
      
 81 
     | 
    
         
            +
                        },
         
     | 
| 
      
 82 
     | 
    
         
            +
                        onLeaveNotDescendants: function(e){
         
     | 
| 
      
 83 
     | 
    
         
            +
                            qq.removeClass(dropArea, self._classes.dropActive);  
         
     | 
| 
      
 84 
     | 
    
         
            +
                        },
         
     | 
| 
      
 85 
     | 
    
         
            +
                        onDrop: function(e){
         
     | 
| 
      
 86 
     | 
    
         
            +
                            dropArea.style.display = 'none';
         
     | 
| 
      
 87 
     | 
    
         
            +
                            qq.removeClass(dropArea, self._classes.dropActive);
         
     | 
| 
      
 88 
     | 
    
         
            +
                            self._uploadFileList(e.dataTransfer.files);    
         
     | 
| 
      
 89 
     | 
    
         
            +
                        }
         
     | 
| 
      
 90 
     | 
    
         
            +
                    });
         
     | 
| 
      
 91 
     | 
    
         
            +
                            
         
     | 
| 
      
 92 
     | 
    
         
            +
                    dropArea.style.display = 'none';
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
                    qq.attach(document, 'dragenter', function(e){     
         
     | 
| 
      
 95 
     | 
    
         
            +
                        if (!dz._isValidFileDrag(e)) return; 
         
     | 
| 
      
 96 
     | 
    
         
            +
                        
         
     | 
| 
      
 97 
     | 
    
         
            +
                        dropArea.style.display = 'block';            
         
     | 
| 
      
 98 
     | 
    
         
            +
                    });                 
         
     | 
| 
      
 99 
     | 
    
         
            +
                    qq.attach(document, 'dragleave', function(e){
         
     | 
| 
      
 100 
     | 
    
         
            +
                        if (!dz._isValidFileDrag(e)) return;            
         
     | 
| 
      
 101 
     | 
    
         
            +
                        
         
     | 
| 
      
 102 
     | 
    
         
            +
                        var relatedTarget = document.elementFromPoint(e.clientX, e.clientY);
         
     | 
| 
      
 103 
     | 
    
         
            +
                        // only fire when leaving document out
         
     | 
| 
      
 104 
     | 
    
         
            +
                        if ( ! relatedTarget || relatedTarget.nodeName == "HTML"){               
         
     | 
| 
      
 105 
     | 
    
         
            +
                            dropArea.style.display = 'none';                                            
         
     | 
| 
      
 106 
     | 
    
         
            +
                        }
         
     | 
| 
      
 107 
     | 
    
         
            +
                    });                
         
     | 
| 
      
 108 
     | 
    
         
            +
                },
         
     | 
| 
      
 109 
     | 
    
         
            +
                _onSubmit: function(id, fileName){
         
     | 
| 
      
 110 
     | 
    
         
            +
                    qq.FileUploaderBasic.prototype._onSubmit.apply(this, arguments);
         
     | 
| 
      
 111 
     | 
    
         
            +
                    this._addToList(id, fileName);  
         
     | 
| 
      
 112 
     | 
    
         
            +
                },
         
     | 
| 
      
 113 
     | 
    
         
            +
                _onProgress: function(id, fileName, loaded, total){
         
     | 
| 
      
 114 
     | 
    
         
            +
                    qq.FileUploaderBasic.prototype._onProgress.apply(this, arguments);
         
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
      
 116 
     | 
    
         
            +
                    /*var item = this._getItemByFileId(id);
         
     | 
| 
      
 117 
     | 
    
         
            +
                    var size = this._find(item, 'size');
         
     | 
| 
      
 118 
     | 
    
         
            +
                    size.style.display = 'inline';
         
     | 
| 
      
 119 
     | 
    
         
            +
                    
         
     | 
| 
      
 120 
     | 
    
         
            +
                    var text; 
         
     | 
| 
      
 121 
     | 
    
         
            +
                    if (loaded != total){
         
     | 
| 
      
 122 
     | 
    
         
            +
                        text = Math.round(loaded / total * 100) + '% from ' + this._formatSize(total);
         
     | 
| 
      
 123 
     | 
    
         
            +
                    } else {                                   
         
     | 
| 
      
 124 
     | 
    
         
            +
                        text = this._formatSize(total);
         
     | 
| 
      
 125 
     | 
    
         
            +
                    }          
         
     | 
| 
      
 126 
     | 
    
         
            +
                    
         
     | 
| 
      
 127 
     | 
    
         
            +
                    qq.setText(size, text);*/
         
     | 
| 
      
 128 
     | 
    
         
            +
                },
         
     | 
| 
      
 129 
     | 
    
         
            +
                _onComplete: function(id, fileName, result){
         
     | 
| 
      
 130 
     | 
    
         
            +
                    qq.FileUploaderBasic.prototype._onComplete.apply(this, arguments);
         
     | 
| 
      
 131 
     | 
    
         
            +
             
     | 
| 
      
 132 
     | 
    
         
            +
                    var item = this._getItemByFileId(id);
         
     | 
| 
      
 133 
     | 
    
         
            +
                    var asset = result.asset;
         
     | 
| 
      
 134 
     | 
    
         
            +
                    
         
     | 
| 
      
 135 
     | 
    
         
            +
                    // mark completed
         
     | 
| 
      
 136 
     | 
    
         
            +
                    //qq.remove(this._find(item, 'cancel'));
         
     | 
| 
      
 137 
     | 
    
         
            +
                    //qq.remove(this._find(item, 'spinner'));
         
     | 
| 
      
 138 
     | 
    
         
            +
                    
         
     | 
| 
      
 139 
     | 
    
         
            +
                    if (asset && asset.id){
         
     | 
| 
      
 140 
     | 
    
         
            +
                        qq.addClass(item, this._classes.success);
         
     | 
| 
      
 141 
     | 
    
         
            +
                        
         
     | 
| 
      
 142 
     | 
    
         
            +
                        $(item).replaceWith( $(this._options.template_id).tmpl(asset) );
         
     | 
| 
      
 143 
     | 
    
         
            +
                    } else {
         
     | 
| 
      
 144 
     | 
    
         
            +
                        qq.addClass(item, this._classes.fail);
         
     | 
| 
      
 145 
     | 
    
         
            +
                    }
         
     | 
| 
      
 146 
     | 
    
         
            +
                },
         
     | 
| 
      
 147 
     | 
    
         
            +
                _addToList: function(id, fileName){
         
     | 
| 
      
 148 
     | 
    
         
            +
                    if (this._listElement) {
         
     | 
| 
      
 149 
     | 
    
         
            +
                      if (this._options.multiple === false) {
         
     | 
| 
      
 150 
     | 
    
         
            +
                        $(this._listElement).empty();
         
     | 
| 
      
 151 
     | 
    
         
            +
                      }
         
     | 
| 
      
 152 
     | 
    
         
            +
                      
         
     | 
| 
      
 153 
     | 
    
         
            +
                      var asset = {id: 0, filename: this._formatFileName(fileName), 
         
     | 
| 
      
 154 
     | 
    
         
            +
                        url: "#",
         
     | 
| 
      
 155 
     | 
    
         
            +
                        thumb_url: "/images/manage/preloader.gif"};
         
     | 
| 
      
 156 
     | 
    
         
            +
                      
         
     | 
| 
      
 157 
     | 
    
         
            +
                      var item = $(this._options.template_id)
         
     | 
| 
      
 158 
     | 
    
         
            +
                        .tmpl(asset)
         
     | 
| 
      
 159 
     | 
    
         
            +
                        .attr('qqfileid', id)
         
     | 
| 
      
 160 
     | 
    
         
            +
                        .appendTo( this._listElement );
         
     | 
| 
      
 161 
     | 
    
         
            +
                      
         
     | 
| 
      
 162 
     | 
    
         
            +
                      this._bindCancelEvent(item);
         
     | 
| 
      
 163 
     | 
    
         
            +
                    }
         
     | 
| 
      
 164 
     | 
    
         
            +
                },
         
     | 
| 
      
 165 
     | 
    
         
            +
                _getItemByFileId: function(id){
         
     | 
| 
      
 166 
     | 
    
         
            +
                    return $(this._listElement).find('div[qqfileid=' + id  +']').get(0); 
         
     | 
| 
      
 167 
     | 
    
         
            +
                },
         
     | 
| 
      
 168 
     | 
    
         
            +
                /**
         
     | 
| 
      
 169 
     | 
    
         
            +
                 * delegate click event for cancel link 
         
     | 
| 
      
 170 
     | 
    
         
            +
                 **/
         
     | 
| 
      
 171 
     | 
    
         
            +
                _bindCancelEvent: function(element){
         
     | 
| 
      
 172 
     | 
    
         
            +
                    var self = this,
         
     | 
| 
      
 173 
     | 
    
         
            +
                        item = $(element);        
         
     | 
| 
      
 174 
     | 
    
         
            +
                    
         
     | 
| 
      
 175 
     | 
    
         
            +
                    item.find('a.' + this._classes.cancel).bind('click', function(e){
         
     | 
| 
      
 176 
     | 
    
         
            +
                      self._handler.cancel( item.attr('qqfileid') );
         
     | 
| 
      
 177 
     | 
    
         
            +
                      item.remove();
         
     | 
| 
      
 178 
     | 
    
         
            +
                      qq.preventDefault(e);
         
     | 
| 
      
 179 
     | 
    
         
            +
                      return false;
         
     | 
| 
      
 180 
     | 
    
         
            +
                    });
         
     | 
| 
      
 181 
     | 
    
         
            +
                }
         
     | 
| 
      
 182 
     | 
    
         
            +
            });
         
     | 
| 
         @@ -0,0 +1,294 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /* ------------------------------------------------------------------------
         
     | 
| 
      
 2 
     | 
    
         
            +
             * manage.js
         
     | 
| 
      
 3 
     | 
    
         
            +
             * Copyright (c) 2007-2011 Aimbulance, LLC. All rights reserved.
         
     | 
| 
      
 4 
     | 
    
         
            +
             * ------------------------------------------------------------------------ */
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            $(document).ready(function(){
         
     | 
| 
      
 7 
     | 
    
         
            +
              //$("input[type='text']:first", document.forms[0]).focus();
         
     | 
| 
      
 8 
     | 
    
         
            +
              var element = $('input:visible,select:visible,textarea:visible', document).get(0);
         
     | 
| 
      
 9 
     | 
    
         
            +
              if (element) element.focus();
         
     | 
| 
      
 10 
     | 
    
         
            +
            });
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            var Manage = {
         
     | 
| 
      
 13 
     | 
    
         
            +
              fade_flash: function()
         
     | 
| 
      
 14 
     | 
    
         
            +
              {
         
     | 
| 
      
 15 
     | 
    
         
            +
                $('#manage_container div.message').slideUp('slow');  
         
     | 
| 
      
 16 
     | 
    
         
            +
              },
         
     | 
| 
      
 17 
     | 
    
         
            +
              
         
     | 
| 
      
 18 
     | 
    
         
            +
              toggle_element: function(dom_id)
         
     | 
| 
      
 19 
     | 
    
         
            +
              { 
         
     | 
| 
      
 20 
     | 
    
         
            +
                var element = $('#' + dom_id);
         
     | 
| 
      
 21 
     | 
    
         
            +
                
         
     | 
| 
      
 22 
     | 
    
         
            +
                $.cookie(element.id, (element.is(':visible') ? 0 : 1), { expires: 3, path: '/manage' });
         
     | 
| 
      
 23 
     | 
    
         
            +
                
         
     | 
| 
      
 24 
     | 
    
         
            +
                element.is(':visible') ? element.slideUp("slow") : element.slideDown("slow");
         
     | 
| 
      
 25 
     | 
    
         
            +
              },
         
     | 
| 
      
 26 
     | 
    
         
            +
              
         
     | 
| 
      
 27 
     | 
    
         
            +
              init_collection: function(dom_id, class_name)
         
     | 
| 
      
 28 
     | 
    
         
            +
              { 
         
     | 
| 
      
 29 
     | 
    
         
            +
                var query = "#" + dom_id + " div." + class_name;
         
     | 
| 
      
 30 
     | 
    
         
            +
                
         
     | 
| 
      
 31 
     | 
    
         
            +
                $(query)
         
     | 
| 
      
 32 
     | 
    
         
            +
                  .bind('mouseover', this.handle_over)
         
     | 
| 
      
 33 
     | 
    
         
            +
                  .bind('mouseout', this.handle_out);
         
     | 
| 
      
 34 
     | 
    
         
            +
              },
         
     | 
| 
      
 35 
     | 
    
         
            +
              
         
     | 
| 
      
 36 
     | 
    
         
            +
              handle_over: function(e)
         
     | 
| 
      
 37 
     | 
    
         
            +
              {
         
     | 
| 
      
 38 
     | 
    
         
            +
                $(this).find('div.dot-block').show();
         
     | 
| 
      
 39 
     | 
    
         
            +
                $(this).find('div.act-bl').show();
         
     | 
| 
      
 40 
     | 
    
         
            +
              },
         
     | 
| 
      
 41 
     | 
    
         
            +
              
         
     | 
| 
      
 42 
     | 
    
         
            +
              handle_out: function(e)
         
     | 
| 
      
 43 
     | 
    
         
            +
              {
         
     | 
| 
      
 44 
     | 
    
         
            +
                $(this).find('div.dot-block').hide();
         
     | 
| 
      
 45 
     | 
    
         
            +
                $(this).find('div.act-bl').hide();
         
     | 
| 
      
 46 
     | 
    
         
            +
              },
         
     | 
| 
      
 47 
     | 
    
         
            +
              
         
     | 
| 
      
 48 
     | 
    
         
            +
              append_node: function(sibling, element)
         
     | 
| 
      
 49 
     | 
    
         
            +
              {
         
     | 
| 
      
 50 
     | 
    
         
            +
                $(sibling).css({left: 0, top: 0});
         
     | 
| 
      
 51 
     | 
    
         
            +
                $(element).css({left: 0, top: 0});
         
     | 
| 
      
 52 
     | 
    
         
            +
                
         
     | 
| 
      
 53 
     | 
    
         
            +
                $(element).insertAfter(sibling);
         
     | 
| 
      
 54 
     | 
    
         
            +
              },
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
              move_node: function(dom_id, direction)
         
     | 
| 
      
 57 
     | 
    
         
            +
              {
         
     | 
| 
      
 58 
     | 
    
         
            +
                var element = $('#' + dom_id);
         
     | 
| 
      
 59 
     | 
    
         
            +
                var sibling = null;
         
     | 
| 
      
 60 
     | 
    
         
            +
                var node = null;
         
     | 
| 
      
 61 
     | 
    
         
            +
                
         
     | 
| 
      
 62 
     | 
    
         
            +
                switch(direction)
         
     | 
| 
      
 63 
     | 
    
         
            +
                {
         
     | 
| 
      
 64 
     | 
    
         
            +
                  case 'up':
         
     | 
| 
      
 65 
     | 
    
         
            +
                    sibling = element.prev();
         
     | 
| 
      
 66 
     | 
    
         
            +
                    node = element;
         
     | 
| 
      
 67 
     | 
    
         
            +
                    element = sibling;
         
     | 
| 
      
 68 
     | 
    
         
            +
                    sibling = node;
         
     | 
| 
      
 69 
     | 
    
         
            +
                    break;
         
     | 
| 
      
 70 
     | 
    
         
            +
                  case 'down':
         
     | 
| 
      
 71 
     | 
    
         
            +
                    sibling = element.next();
         
     | 
| 
      
 72 
     | 
    
         
            +
                    break;
         
     | 
| 
      
 73 
     | 
    
         
            +
                }
         
     | 
| 
      
 74 
     | 
    
         
            +
                
         
     | 
| 
      
 75 
     | 
    
         
            +
                if (sibling != null)
         
     | 
| 
      
 76 
     | 
    
         
            +
                { 
         
     | 
| 
      
 77 
     | 
    
         
            +
                  var element_height = element.height() + 10;
         
     | 
| 
      
 78 
     | 
    
         
            +
                  var sibling_height = sibling.height() + 10; 
         
     | 
| 
      
 79 
     | 
    
         
            +
                  
         
     | 
| 
      
 80 
     | 
    
         
            +
                  element.animate({left: 0, top: sibling_height}, { duration: "slow" });
         
     | 
| 
      
 81 
     | 
    
         
            +
                  
         
     | 
| 
      
 82 
     | 
    
         
            +
                  sibling.animate({left: 0, top: -element_height}, {duration: "slow", complete: function(){
         
     | 
| 
      
 83 
     | 
    
         
            +
                    Manage.append_node(sibling, element); 
         
     | 
| 
      
 84 
     | 
    
         
            +
                  }});
         
     | 
| 
      
 85 
     | 
    
         
            +
                }
         
     | 
| 
      
 86 
     | 
    
         
            +
              },
         
     | 
| 
      
 87 
     | 
    
         
            +
              
         
     | 
| 
      
 88 
     | 
    
         
            +
              init_assets: function(element_id, url, sortable)
         
     | 
| 
      
 89 
     | 
    
         
            +
              {
         
     | 
| 
      
 90 
     | 
    
         
            +
                var query = '#' + element_id + ' div.galery';
         
     | 
| 
      
 91 
     | 
    
         
            +
                
         
     | 
| 
      
 92 
     | 
    
         
            +
                $(query + " a.fancybox").fancybox({
         
     | 
| 
      
 93 
     | 
    
         
            +
            			'titleShow'		: false,
         
     | 
| 
      
 94 
     | 
    
         
            +
            			'transitionIn'	: 'none',
         
     | 
| 
      
 95 
     | 
    
         
            +
            			'transitionOut'	: 'none'
         
     | 
| 
      
 96 
     | 
    
         
            +
            		});
         
     | 
| 
      
 97 
     | 
    
         
            +
                
         
     | 
| 
      
 98 
     | 
    
         
            +
                $(query + ' a.del').live("ajax:complete", function(){
         
     | 
| 
      
 99 
     | 
    
         
            +
                  $(this).parents('div.asset').remove();
         
     | 
| 
      
 100 
     | 
    
         
            +
                });
         
     | 
| 
      
 101 
     | 
    
         
            +
                
         
     | 
| 
      
 102 
     | 
    
         
            +
                if (sortable) {
         
     | 
| 
      
 103 
     | 
    
         
            +
                  $(query).sortable({
         
     | 
| 
      
 104 
     | 
    
         
            +
            		    revert: true,
         
     | 
| 
      
 105 
     | 
    
         
            +
            		    update: function(event, ui){
         
     | 
| 
      
 106 
     | 
    
         
            +
            		      var data = $(query).sortable('serialize');
         
     | 
| 
      
 107 
     | 
    
         
            +
            		      $.ajax({
         
     | 
| 
      
 108 
     | 
    
         
            +
                        url: url,
         
     | 
| 
      
 109 
     | 
    
         
            +
                        data: data,
         
     | 
| 
      
 110 
     | 
    
         
            +
                        dataType: 'script',
         
     | 
| 
      
 111 
     | 
    
         
            +
                        type: 'POST'
         
     | 
| 
      
 112 
     | 
    
         
            +
                      });
         
     | 
| 
      
 113 
     | 
    
         
            +
            		    }
         
     | 
| 
      
 114 
     | 
    
         
            +
            	    });
         
     | 
| 
      
 115 
     | 
    
         
            +
            	  }
         
     | 
| 
      
 116 
     | 
    
         
            +
              }
         
     | 
| 
      
 117 
     | 
    
         
            +
            };
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
            var Tree = {
         
     | 
| 
      
 120 
     | 
    
         
            +
            	expand: function(e)
         
     | 
| 
      
 121 
     | 
    
         
            +
            	{
         
     | 
| 
      
 122 
     | 
    
         
            +
            	  var event = e || window.event;
         
     | 
| 
      
 123 
     | 
    
         
            +
                var target = event.target || event.srcElement;
         
     | 
| 
      
 124 
     | 
    
         
            +
              
         
     | 
| 
      
 125 
     | 
    
         
            +
            	  var node = $(target).closest('a');
         
     | 
| 
      
 126 
     | 
    
         
            +
            		if (typeof(node) == 'undefined') return;
         
     | 
| 
      
 127 
     | 
    
         
            +
              
         
     | 
| 
      
 128 
     | 
    
         
            +
                var item = node.parents('div.row-container');
         
     | 
| 
      
 129 
     | 
    
         
            +
                var stage = $('#' + item.attr('id') + '_children');
         
     | 
| 
      
 130 
     | 
    
         
            +
            		
         
     | 
| 
      
 131 
     | 
    
         
            +
            		if (stage != null) 
         
     | 
| 
      
 132 
     | 
    
         
            +
            		{
         
     | 
| 
      
 133 
     | 
    
         
            +
            		  var mode = stage.is(':visible') ? 1 : 0;
         
     | 
| 
      
 134 
     | 
    
         
            +
            		  stage.toggle();
         
     | 
| 
      
 135 
     | 
    
         
            +
            		  event.data.save(node.attr('id'), mode);
         
     | 
| 
      
 136 
     | 
    
         
            +
            		}
         
     | 
| 
      
 137 
     | 
    
         
            +
            		
         
     | 
| 
      
 138 
     | 
    
         
            +
            		event.preventDefault();
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
      
 140 
     | 
    
         
            +
            		return false;
         
     | 
| 
      
 141 
     | 
    
         
            +
            	},
         
     | 
| 
      
 142 
     | 
    
         
            +
            	
         
     | 
| 
      
 143 
     | 
    
         
            +
            	init: function(tree)
         
     | 
| 
      
 144 
     | 
    
         
            +
            	{
         
     | 
| 
      
 145 
     | 
    
         
            +
            		this.tree = $(tree);
         
     | 
| 
      
 146 
     | 
    
         
            +
            		this.cookie_key = "mtree";
         
     | 
| 
      
 147 
     | 
    
         
            +
            		
         
     | 
| 
      
 148 
     | 
    
         
            +
            		var links = this.tree.find("a.dark-arr");
         
     | 
| 
      
 149 
     | 
    
         
            +
            		
         
     | 
| 
      
 150 
     | 
    
         
            +
            		for(var i = 0; i < links.length; i++)
         
     | 
| 
      
 151 
     | 
    
         
            +
            		{
         
     | 
| 
      
 152 
     | 
    
         
            +
            			node = $(links[i]);
         
     | 
| 
      
 153 
     | 
    
         
            +
                  
         
     | 
| 
      
 154 
     | 
    
         
            +
            			if (typeof(node) != 'undefined')
         
     | 
| 
      
 155 
     | 
    
         
            +
            			{
         
     | 
| 
      
 156 
     | 
    
         
            +
            			  node.bind('click', this, this.expand);
         
     | 
| 
      
 157 
     | 
    
         
            +
            			  
         
     | 
| 
      
 158 
     | 
    
         
            +
            			  mode = !this.state(node.attr('id'));
         
     | 
| 
      
 159 
     | 
    
         
            +
            				
         
     | 
| 
      
 160 
     | 
    
         
            +
            				var item = node.parents('div.row-container');
         
     | 
| 
      
 161 
     | 
    
         
            +
            				var stage = $(item.attr('id') + '_children');
         
     | 
| 
      
 162 
     | 
    
         
            +
            				
         
     | 
| 
      
 163 
     | 
    
         
            +
            				if (stage != null)
         
     | 
| 
      
 164 
     | 
    
         
            +
            				{
         
     | 
| 
      
 165 
     | 
    
         
            +
            				  if (mode)	{stage.hide();} else {stage.show();}
         
     | 
| 
      
 166 
     | 
    
         
            +
            				}
         
     | 
| 
      
 167 
     | 
    
         
            +
            			}
         
     | 
| 
      
 168 
     | 
    
         
            +
            		}
         
     | 
| 
      
 169 
     | 
    
         
            +
            	},
         
     | 
| 
      
 170 
     | 
    
         
            +
            	
         
     | 
| 
      
 171 
     | 
    
         
            +
            	save: function(node_key, value)
         
     | 
| 
      
 172 
     | 
    
         
            +
            	{	
         
     | 
| 
      
 173 
     | 
    
         
            +
            		var str = $.cookie(this.cookie_key);
         
     | 
| 
      
 174 
     | 
    
         
            +
            		var mas = new Array();
         
     | 
| 
      
 175 
     | 
    
         
            +
            		
         
     | 
| 
      
 176 
     | 
    
         
            +
            		if (str == null) str = '';
         
     | 
| 
      
 177 
     | 
    
         
            +
            		
         
     | 
| 
      
 178 
     | 
    
         
            +
            		var arr = str.split(';');
         
     | 
| 
      
 179 
     | 
    
         
            +
            		
         
     | 
| 
      
 180 
     | 
    
         
            +
            		mas.push(node_key + ":" + value);
         
     | 
| 
      
 181 
     | 
    
         
            +
            		
         
     | 
| 
      
 182 
     | 
    
         
            +
            		for(var i = 0; i < arr.length; i++)
         
     | 
| 
      
 183 
     | 
    
         
            +
            		{
         
     | 
| 
      
 184 
     | 
    
         
            +
            			hash = arr[i].split(':');
         
     | 
| 
      
 185 
     | 
    
         
            +
            			if (hash[0] != node_key)
         
     | 
| 
      
 186 
     | 
    
         
            +
            			{
         
     | 
| 
      
 187 
     | 
    
         
            +
            				mas.push(arr[i]);
         
     | 
| 
      
 188 
     | 
    
         
            +
            			}
         
     | 
| 
      
 189 
     | 
    
         
            +
            		}
         
     | 
| 
      
 190 
     | 
    
         
            +
            		
         
     | 
| 
      
 191 
     | 
    
         
            +
            		str = mas.join(';');
         
     | 
| 
      
 192 
     | 
    
         
            +
            		$.cookie(this.cookie_key, str, { expires: 3, path: '/manage' });
         
     | 
| 
      
 193 
     | 
    
         
            +
            	},
         
     | 
| 
      
 194 
     | 
    
         
            +
            	
         
     | 
| 
      
 195 
     | 
    
         
            +
            	state: function(node_key)
         
     | 
| 
      
 196 
     | 
    
         
            +
            	{
         
     | 
| 
      
 197 
     | 
    
         
            +
            		var str = $.cookie(this.cookie_key);
         
     | 
| 
      
 198 
     | 
    
         
            +
            		if (str == null) str = '';
         
     | 
| 
      
 199 
     | 
    
         
            +
            		var value = 0;
         
     | 
| 
      
 200 
     | 
    
         
            +
            		
         
     | 
| 
      
 201 
     | 
    
         
            +
            		var arr = str.split(';');
         
     | 
| 
      
 202 
     | 
    
         
            +
            		for(var i = 0; i < arr.length; i++)
         
     | 
| 
      
 203 
     | 
    
         
            +
            		{
         
     | 
| 
      
 204 
     | 
    
         
            +
            			hash = arr[i].split(':');
         
     | 
| 
      
 205 
     | 
    
         
            +
            			if (hash[0] == node_key)
         
     | 
| 
      
 206 
     | 
    
         
            +
            			{
         
     | 
| 
      
 207 
     | 
    
         
            +
            				value = parseInt(hash[1]);
         
     | 
| 
      
 208 
     | 
    
         
            +
            				break;
         
     | 
| 
      
 209 
     | 
    
         
            +
            			}
         
     | 
| 
      
 210 
     | 
    
         
            +
            		}
         
     | 
| 
      
 211 
     | 
    
         
            +
            	
         
     | 
| 
      
 212 
     | 
    
         
            +
            		return value == 1;
         
     | 
| 
      
 213 
     | 
    
         
            +
            	}
         
     | 
| 
      
 214 
     | 
    
         
            +
            	
         
     | 
| 
      
 215 
     | 
    
         
            +
            };
         
     | 
| 
      
 216 
     | 
    
         
            +
             
     | 
| 
      
 217 
     | 
    
         
            +
            var SelectList = {
         
     | 
| 
      
 218 
     | 
    
         
            +
            	show: function(element, list)
         
     | 
| 
      
 219 
     | 
    
         
            +
            	{ 
         
     | 
| 
      
 220 
     | 
    
         
            +
            	  var size = { width: element.width(), height: element.height() };
         
     | 
| 
      
 221 
     | 
    
         
            +
            	  var pos = element.offset();
         
     | 
| 
      
 222 
     | 
    
         
            +
            	  var height = list.height();
         
     | 
| 
      
 223 
     | 
    
         
            +
            	  var width = size.width + 20;
         
     | 
| 
      
 224 
     | 
    
         
            +
            	  	  
         
     | 
| 
      
 225 
     | 
    
         
            +
            	  list.css({
         
     | 
| 
      
 226 
     | 
    
         
            +
            	    width: ((width < 150) ? 150 : width) + "px",
         
     | 
| 
      
 227 
     | 
    
         
            +
            	    left: pos.left + "px",
         
     | 
| 
      
 228 
     | 
    
         
            +
            	    top: pos.top + size.height + "px",
         
     | 
| 
      
 229 
     | 
    
         
            +
            	    height: ((height > 200) ? 200 : height) + 'px',
         
     | 
| 
      
 230 
     | 
    
         
            +
            	    zIndex: 5000
         
     | 
| 
      
 231 
     | 
    
         
            +
            	  });
         
     | 
| 
      
 232 
     | 
    
         
            +
            	  
         
     | 
| 
      
 233 
     | 
    
         
            +
            	  list.slideDown();
         
     | 
| 
      
 234 
     | 
    
         
            +
            	},
         
     | 
| 
      
 235 
     | 
    
         
            +
            	
         
     | 
| 
      
 236 
     | 
    
         
            +
            	hide: function(list)
         
     | 
| 
      
 237 
     | 
    
         
            +
            	{
         
     | 
| 
      
 238 
     | 
    
         
            +
            	  list.slideUp();
         
     | 
| 
      
 239 
     | 
    
         
            +
            	},
         
     | 
| 
      
 240 
     | 
    
         
            +
            	
         
     | 
| 
      
 241 
     | 
    
         
            +
            	toggle: function(e)
         
     | 
| 
      
 242 
     | 
    
         
            +
            	{
         
     | 
| 
      
 243 
     | 
    
         
            +
            	  var event = e || window.event;
         
     | 
| 
      
 244 
     | 
    
         
            +
                var target = event.target || event.srcElement;
         
     | 
| 
      
 245 
     | 
    
         
            +
                 
         
     | 
| 
      
 246 
     | 
    
         
            +
            	  var element = $(target).closest("a");
         
     | 
| 
      
 247 
     | 
    
         
            +
            	  var list = $('#' + element.attr('id') + '_list');
         
     | 
| 
      
 248 
     | 
    
         
            +
            	  
         
     | 
| 
      
 249 
     | 
    
         
            +
            	  list.is(':visible') ? this.hide(list) : this.show(element, list);
         
     | 
| 
      
 250 
     | 
    
         
            +
            	  
         
     | 
| 
      
 251 
     | 
    
         
            +
            	  return false;
         
     | 
| 
      
 252 
     | 
    
         
            +
            	}
         
     | 
| 
      
 253 
     | 
    
         
            +
            };
         
     | 
| 
      
 254 
     | 
    
         
            +
             
     | 
| 
      
 255 
     | 
    
         
            +
            var TabPanel = {
         
     | 
| 
      
 256 
     | 
    
         
            +
            	click: function(e)
         
     | 
| 
      
 257 
     | 
    
         
            +
            	{
         
     | 
| 
      
 258 
     | 
    
         
            +
            	  var event = e || window.event;
         
     | 
| 
      
 259 
     | 
    
         
            +
                var target = event.target || event.srcElement;
         
     | 
| 
      
 260 
     | 
    
         
            +
                
         
     | 
| 
      
 261 
     | 
    
         
            +
            	  var element = $(target).closest("a");
         
     | 
| 
      
 262 
     | 
    
         
            +
            	  var container = $('#' + element.attr('id') + "_block");
         
     | 
| 
      
 263 
     | 
    
         
            +
            	  var li = element.parents('li');
         
     | 
| 
      
 264 
     | 
    
         
            +
            	  var parent_ul = li.parents('ul');
         
     | 
| 
      
 265 
     | 
    
         
            +
            	  
         
     | 
| 
      
 266 
     | 
    
         
            +
            	  parent_ul.nextAll('div.add-white-bl').hide();
         
     | 
| 
      
 267 
     | 
    
         
            +
            	  parent_ul.children('li').removeClass('active');
         
     | 
| 
      
 268 
     | 
    
         
            +
            	  parent_ul.children('li').addClass('not-active');
         
     | 
| 
      
 269 
     | 
    
         
            +
            	  
         
     | 
| 
      
 270 
     | 
    
         
            +
            	  li.toggleClass("not-active");
         
     | 
| 
      
 271 
     | 
    
         
            +
            	  li.addClass('active');
         
     | 
| 
      
 272 
     | 
    
         
            +
            	  
         
     | 
| 
      
 273 
     | 
    
         
            +
            	  container.show();
         
     | 
| 
      
 274 
     | 
    
         
            +
            	}
         
     | 
| 
      
 275 
     | 
    
         
            +
            };
         
     | 
| 
      
 276 
     | 
    
         
            +
             
     | 
| 
      
 277 
     | 
    
         
            +
            function insert_fields(link, method, content) 
         
     | 
| 
      
 278 
     | 
    
         
            +
            {
         
     | 
| 
      
 279 
     | 
    
         
            +
              var new_id = new Date().getTime();
         
     | 
| 
      
 280 
     | 
    
         
            +
              var regexp = new RegExp("new_" + method, "g")
         
     | 
| 
      
 281 
     | 
    
         
            +
              
         
     | 
| 
      
 282 
     | 
    
         
            +
              $(link).before(content.replace(regexp, new_id));
         
     | 
| 
      
 283 
     | 
    
         
            +
            }
         
     | 
| 
      
 284 
     | 
    
         
            +
             
     | 
| 
      
 285 
     | 
    
         
            +
            function remove_fields(link) 
         
     | 
| 
      
 286 
     | 
    
         
            +
            {
         
     | 
| 
      
 287 
     | 
    
         
            +
              var hidden_field = $(link).prev("input[type=hidden]");
         
     | 
| 
      
 288 
     | 
    
         
            +
              
         
     | 
| 
      
 289 
     | 
    
         
            +
              if (hidden_field) {
         
     | 
| 
      
 290 
     | 
    
         
            +
                hidden_field.val('1');
         
     | 
| 
      
 291 
     | 
    
         
            +
              }
         
     | 
| 
      
 292 
     | 
    
         
            +
              
         
     | 
| 
      
 293 
     | 
    
         
            +
              $(link).closest("div.elem-bl").hide();
         
     | 
| 
      
 294 
     | 
    
         
            +
            }
         
     |