var p4 = { releasable:false }; $(document).ready(function(){ $(this).data('slideshow',false); $(this).data('slideshow_ctime', false); $('#mainMenu, .unselectable').disableSelection(); display_basket(); $(window).bind('mousedown', function(){ $(this).focus(); }).trigger('mousedown'); $('.basket_wrapper').hover( function(){ $(this).addClass('hover'); }, function(){ $(this).removeClass('hover'); } ).bind('click', function(){ var id = $('input[name=ssel_id]',this).val(); document.location = '/lightbox/validate/'+id+'/'; return; }); $('.basket_downloader').bind('click', function(){ download_basket(); }); if($('.right_column_wrapper_user').length > 0) { $('.right_column_title, #right_column_validation_toggle').bind('click', function(){ if(!$('.right_column_wrapper_caption').is(':visible')) { $('.right_column_wrapper_user').height($('.right_column_wrapper_user').height()).css('top','auto').animate({ 'height':0 }); $('.right_column_wrapper_caption').slideDown(); $('#right_column_validation_toggle').show(); } else { $('.right_column_wrapper_user').height('auto').animate({ 'top':$('.right_column_title').height() }); $('.right_column_wrapper_caption').slideUp(); $('#right_column_validation_toggle').hide(); } var title = $('.right_column_title'); title.hasClass('expanded') ? title.removeClass('expanded') : title.addClass('expanded'); }).addClass('clickable'); } var sselcont = $('#sc_container .basket_element:first'); if(sselcont.length > 0) { display_basket_element(false, sselcont.attr('id').split('_').pop()); } set_sizeable($('#record_main .container, #record_compare .container')); $('#navigation') .bind('change', function() { window.location.replace(window.location.protocol+"//"+window.location.host+'/lightbox/validate/'+$(this).val()+'/'); } ); $('#left_scroller') .bind('click', function() { scroll_elements(false); } ); $('#right_scroller') .bind('click', function() { scroll_elements(true); } ); $(window) .bind('resize',function() { resize(); } ); bind_keyboard(); }); $(window).bind('beforeunload', function(){ if(p4.releasable !== false) { if(confirm(p4.releasable)) { $('#basket_options .confirm_report').trigger('click'); } } }); function bind_keyboard() { $(document).bind('keydown', function(event){ var stop = false; $('.notes_wrapper').each(function(i,n){ if(parseInt($(n).css('top')) >= 0) stop = true; }); if(stop) return true; var cancelKey = false; var el, id; switch(event.keyCode) { case 39: get_next(); cancelKey = true; break; case 37: get_prev(); cancelKey = true; break; case 32: var bool = !$(document).data('slideshow'); slideshow(bool); break; case 38: el = $('#sc_container .basket_element.selected'); if(el.length === 1) { id = el.attr('id').split('_').pop(); set_agreement(event, el, id, 1); } break; case 40: el = $('#sc_container .basket_element.selected'); if(el.length === 1) { id = el.attr('id').split('_').pop(); set_agreement(event, el, id, -1); } break; default: break; } if(cancelKey) { event.cancelBubble = true; if(event.stopPropagation) event.stopPropagation(); return(false); } return true; }); } function is_ctrl_key(event) { if(event.altKey) return true; if(event.ctrlKey) return true; if(event.metaKey) // apple key opera return true; if(event.keyCode == '17') // apple key opera return true; if(event.keyCode == '224') // apple key mozilla return true; if(event.keyCode == '91') // apple key safari return true; return false; } function is_shift_key(event) { if(event.shiftKey) return true; return false; } function resize() { display_record($('#record_compare').css('visibility') != 'hidden'); } function set_release(el) { $('.loader', el).css({ visibility:'visible' }); $.ajax({ type: "POST", url: "/lightbox/ajax/SET_RELEASE/"+$('#navigation').val()+"/", dataType: 'json', error: function(data){ $('.loader', el).css({ visibility:'hidden' }); }, timeout: function(data){ $('.loader', el).css({ visibility:'hidden' }); }, success: function(data){ $('.loader', el).css({ visibility:'hidden' }); if(data.datas) { alert(data.datas); } if(!data.error) { p4.releasable = false; } return; } }); } function load_report() { $.ajax({ type: "GET", url: "/lightbox/ajax/LOAD_REPORT/"+$('#navigation').val()+"/", dataType: 'html', success: function(data){ $('#report').empty().append(data); $('#report .reportTips').tooltip({ delay:false }); $('#report').dialog({ width : 600, modal:true, resizable:false, height : Math.round($(window).height() * 0.8) }); return; } }); } function display_basket() { var sc_wrapper = $('#sc_wrapper'); var basket_options = $('#basket_options'); $('.report').live('click', function(){ load_report(); return false; }).addClass('clickable'); // $('#basket_infos .report').button({ // icons: { // primary: 'ui-icon-document' // } // }).bind('click',function(){ // $(this).blur(); // }); $('.confirm_report', basket_options).button() .bind('click',function(){ set_release($(this)); }); $('.basket_element',sc_wrapper).parent() .bind('click',function(event){ scid_click(event, this); return false; }); $('.agree_button, .disagree_button',sc_wrapper).bind('click',function(event){ var sselcont_id = $(this).closest('.basket_element').attr('id').split('_').pop(); var agreement = $(this).hasClass('agree_button') ? '1' : '-1'; set_agreement(event, $(this), sselcont_id, agreement); return false; }).addClass('clickable'); n = $('.basket_element',sc_wrapper).length; $('#sc_container').width(n * $('.basket_element_wrapper:first',sc_wrapper).outerWidth() + 1); $('.previewTips').tooltip(); } function scid_click(event, el) { var compare = is_ctrl_key(event); if(compare) { if($('.basket_element', el).hasClass('selected')) return; } else { $('#sc_container .basket_element.selected').removeClass('selected'); $('.basket_element', el).addClass('selected'); } var sselcont_id = $('.basket_element', el).attr('id').split('_').pop(); var ssel_id = $('#navigation').val(); var container = $('#sc_container'); var request = container.data('request'); if(request && typeof(request.abort) == 'function') { request.abort(); } request = $.ajax({ type: "GET", url: $(el).attr('href'),//"/lightbox/ajax/LOAD_BASKET_ELEMENT/"+sselcont_id+'/', dataType: 'json', success: function(datas){ var container = false; var data = datas; if(compare) { container = $('#record_compare'); } else { container = $('#record_main'); $('#record_infos .container') .empty() .append(data.caption); $('#basket_infos') .empty() .append(data.agreement_html); } $('.display_id',container) .empty() .append(data.number); $('.title',container) .empty() .append(data.title) .attr('title', data.title); var options_container = $('.options',container); options_container .empty() .append(data.options_html); $('.container', container).empty() .append(data.preview+data.selector_html+data.note_html); display_basket_element(compare, sselcont_id); return; } }); container.data('request', request); } function save_note(container, button) { var sselcont_id = $(button).attr('id').split('_').pop(); var note = $('.notes_wrapper textarea', container).val(); $.ajax({ type: "POST", url: "/lightbox/ajax/SET_NOTE/"+sselcont_id+"/", dataType: 'json', data: { note : note }, success: function(datas){ hide_notes(container); $('.notes_wrapper', container).remove(); $('.container', container).append(datas.datas); activate_notes(container); return; } }); } function display_basket_element(compare, sselcont_id) { var container; if(compare) { container = $('#record_compare'); } else { container = $('#record_main'); } $('.record_image', container).draggable(); var options_container = $('.options',container); $('.download_button', options_container).button({ text : false // , // icons : { // primary: 'ui-icon-disk' // } }).bind('click',function(){ // $(this).blur(); download($(this).next('form[name=download_form]').find('input').val()); }); $('.comment_button', options_container).button({ text : true // , // icons : { // primary: 'ui-icon-comment' // } }).bind('click',function() { // $(this).blur(); if($('.container', container).hasClass('note_editing')) { hide_notes(container); } else { show_notes(container); } } ); activate_notes(container); $('.previous_button', options_container).button({ text : false // , // icons : { // primary: 'ui-icon-seek-prev' // } }).bind('click',function(){ // $(this).blur(); get_prev(); }); $('.play_button', options_container).button({ text : false // , // icons : { // primary: 'ui-icon-play' // } }).bind('click',function(){ // $(this).blur(); slideshow(true); }); $('.pause_button', options_container).button({ text : false // , // icons : { // primary: 'ui-icon-pause' // } }).bind('click',function(){ // $(this).blur(); slideshow(false); }); if($(document).data('slideshow')) { $('.play_button, .next_button.play, .previous_button.play', options_container).hide(); } else { $('.pause_button, .next_button.pause, .previous_button.pause', options_container).hide(); } $('.next_button', options_container).button({ text : false // , // icons : { // primary: 'ui-icon-seek-next' // } }).bind('click',function(){ // $(this).blur(); slideshow(false); get_next(); }); $('.container', container).bind('dblclick',function(event){ display_record(); }); $('#record_wrapper .agree_'+sselcont_id+', .big_box.agree') .bind('click', function(event) { set_agreement(event, $(this), sselcont_id, '1'); } ) .addClass('clickable'); $('#record_wrapper .disagree_'+sselcont_id+', .big_box.disagree') .bind('click', function(event) { set_agreement(event, $(this), sselcont_id, '-1'); } ) .addClass('clickable'); if(compare == $('#record_wrapper').hasClass('single')) { if(compare) { // $('.agreement_selector').show(); // $('#record_wrapper').stop().animate({right:0},100,function(){display_record(compare);}); $('#record_wrapper').css({ right:0 }); display_record(compare); $('#right_column').hide(); } else { // $('.agreement_selector').hide(); $('#record_wrapper').css({ right:250 }); display_record(compare); $('#right_column').show(); $('#record_compare .container').empty(); } } else { display_record(compare); } } function show_notes(container) { $('.notes_wrapper', container).animate({ top:0 }); $('.container', container).addClass('note_editing'); } function hide_notes(container) { $('.notes_wrapper', container).animate({ top:'-100%' }); $('.container', container).removeClass('note_editing'); } function activate_notes(container) { $('.note_closer', container).button({ text : true }).bind('click',function() { $(this).blur(); hide_notes(container); return false; } ); $('.note_saver', container).button({ text : true }).bind('click',function() { $(this).blur(); save_note(container, this); return false; } ); } function is_viewable(el) { var sc_wrapper = $('#sc_wrapper'); var sc_container = $('#sc_container'); var el_width = $(el).parent().outerWidth(); var el_position = $(el).parent().position(); var sc_scroll_left = sc_wrapper.scrollLeft(); var boundup = sc_wrapper.width(), bounddown = 0, placeup = el_position.left + el_width - sc_scroll_left, placedown = el_position.left - sc_scroll_left; if(placeup <= boundup && placedown >= bounddown) return true; return false; } function adjust_visibility(el) { if(is_viewable(el)) return; var sc_wrapper = $('#sc_wrapper'); var el_parent = $(el).parent(); var sc_left = el_parent.position().left + el_parent.outerWidth() / 2 - sc_wrapper.width() / 2; sc_wrapper.stop().animate({ 'scrollLeft':sc_left }); } function get_next() { var current_wrapper = $('#sc_container .basket_element.selected').parent().parent(); if(current_wrapper.length === 0) return; current_wrapper = current_wrapper.next(); if(current_wrapper.length === 0) current_wrapper = $('#sc_container .basket_element_wrapper:first'); $('.basket_element', current_wrapper).parent().trigger('click'); adjust_visibility($('.basket_element', current_wrapper)); if($(document).data('slideshow')) { var timer = setTimeout('get_next();', 3500); $(document).data('slideshow_ctime', timer); } } function get_prev() { var current_wrapper = $('#sc_container .basket_element.selected').parent().parent(); if(current_wrapper.length === 0) return; slideshow(false); current_wrapper = current_wrapper.prev(); if(current_wrapper.length === 0) current_wrapper = $('#sc_container .basket_element_wrapper:last'); $('.basket_element', current_wrapper).parent().trigger('click'); adjust_visibility($('.basket_element', current_wrapper)); } function slideshow(boolean_value) { if(boolean_value == $(document).data('slideshow')) return; if(!boolean_value && $(document).data('slideshow_ctime')) { clearTimeout($(document).data('slideshow_ctime')); $(document).data('slideshow_ctime', false); } $(document).data('slideshow', boolean_value); var headers = $('#record_wrapper .header'); if(boolean_value) { $('.play_button, .next_button.play, .previous_button.play', headers).hide(); $('.pause_button, .next_button.pause, .previous_button.pause', headers).show(); get_next(); } else { $('.pause_button, .next_button.pause, .previous_button.pause', headers).hide(); $('.play_button, .next_button.play, .previous_button.play', headers).show(); } } function set_sizeable(container) { $(container).bind('mousewheel',function(event,delta){ if($(this).hasClass('note_editing')) return; var record = $('.record_image', this); if(record.length === 0) return; var o_top = parseInt(record.css('top')); var o_left = parseInt(record.css('left')); var o_width, o_height, width, height; if(delta > 0) { if (record.width() > 29788 || record.height() >= 29788) return; o_width = record.width(); o_height = record.height(); width = Math.round(o_width * 1.1); height = Math.round(o_height * 1.1); } else { if (record.width() < 30 || record.height() < 30) return; o_width = record.width(); o_height = record.height(); width = Math.round(o_width / 1.05); height = Math.round(o_height / 1.05); } var top = Math.round((height / o_height) * (o_top - $(this).height() / 2) + $(this).height() / 2); var left = Math.round((width / o_width) * (o_left - $(this).width() / 2) + $(this).width() / 2); record.width(width).height(height).css({ top:top, left:left }); }); } function set_agreement(event, el, sselcont_id, boolean_value) { if(event.stopPropagation) event.stopPropagation(); event.cancelBubble = true; var id = $.ajax({ type: "POST", url: "/lightbox/ajax/SET_ELEMENT_AGREEMENT/"+sselcont_id+"/", dataType: 'json', data: { agreement : boolean_value }, success: function(datas){ if(!datas.error) { if(boolean_value == '1') { $('.agree_'+sselcont_id+'').removeClass('not_decided'); $('.disagree_'+sselcont_id+'').addClass('not_decided'); $('.userchoice.me').addClass('agree').removeClass('disagree'); } else { $('.agree_'+sselcont_id+'').addClass('not_decided'); $('.disagree_'+sselcont_id+'').removeClass('not_decided'); $('.userchoice.me').addClass('disagree').removeClass('agree'); } p4.releasable = datas.releasable; if(datas.releasable !== false) { if(confirm(datas.releasable)) $('#basket_options .confirm_report').trigger('click'); } } else { alert(datas.datas); } return; } }); } function calculate_display(display_width, display_height, width, height, margin) { if(typeof margin == 'undefined') margin = 10; var display_ratio = display_width / display_height; var ratio = width / height; var w,h; if(ratio > display_ratio)//landscape { w = display_width - 2 * margin; if(w > width) w = width; h = w / ratio; } else { h = display_height - 2 * margin; if(h > height) h = height; w = ratio * h; } return { width:w, height:h }; } function display_record(compare) { var main_container = $('#record_wrapper'); if(typeof compare == 'undefined') compare = !main_container.hasClass('single'); var main_box = $('#record_main'); var compare_box = $('#record_compare'); var main_record = $('.container .record', main_box); var compare_record = $('.container .record', compare_box); var main_record_width = parseInt($('input[name=width]', main_box).val()); var main_record_height = parseInt($('input[name=height]', main_box).val()); var compare_record_width = parseInt($('input[name=width]', compare_box).val()); var compare_record_height = parseInt($('input[name=height]', compare_box).val()); var main_container_width = main_container.width(); var main_container_innerwidth = main_container.innerWidth(); var main_container_height = main_container.height(); var main_container_innerheight = main_container.innerHeight(); if(compare) { $('.agreement_selector').show(); main_container.addClass('comparison'); var double_portrait_width = main_container_innerwidth / 2; var double_portrait_height = main_container_innerheight - $('.header', main_box).outerHeight(); var double_paysage_width = main_container_innerwidth; var double_paysage_height = main_container_innerheight / 2 - $('.header', main_box).outerHeight(); var main_display_portrait = calculate_display( double_portrait_width, double_portrait_height, main_record_width, main_record_height ); var main_display_paysage = calculate_display( double_paysage_width, double_paysage_height, main_record_width, main_record_height ); var compare_display_portrait = calculate_display( double_portrait_width, double_portrait_height, compare_record_width, compare_record_height ); var compare_display_paysage = calculate_display( double_paysage_width, double_paysage_height, compare_record_width, compare_record_height ); var surface_main_portrait = main_display_portrait.width * main_display_portrait.height; var surface_main_paysage = main_display_paysage.width * main_display_paysage.height; var surface_compare_portrait = compare_display_portrait.width * compare_display_portrait.height; var surface_compare_paysage = compare_display_paysage.width * compare_display_paysage.height; var double_portrait_surface = (surface_main_portrait + surface_compare_portrait) / 2; var double_paysage_surface = (surface_main_paysage + surface_compare_paysage) / 2; var smooth_image = false; var m_width_image, m_height_image, c_width_image, c_height_image, dim_container; if(double_portrait_surface > double_paysage_surface) { if(!main_container.hasClass('portrait')) { smooth_image = true; smooth_transform( main_box, '50%', '100%', function() { set_container_status('portrait'); } ); compare_box.css('visibility','hidden'); smooth_transform( compare_box, '50%', '100%', function() { compare_box.css('display','none') .css('visibility','visible') .fadeIn(); } ); } m_width_image = main_display_portrait.width; m_height_image = main_display_portrait.height; c_width_image = compare_display_portrait.width; c_height_image = compare_display_portrait.height; dim_container = { width:double_portrait_width, height:double_portrait_height }; } else { if(!main_container.hasClass('paysage')) { smooth_image = true; smooth_transform( main_box, '100%', '50%', function() { set_container_status('paysage'); } ); compare_box.css('visibility','hidden'); smooth_transform( compare_box, '100%', '50%', function() { compare_box.css('display','none') .css('visibility','visible') .fadeIn(); } ); } m_width_image = main_display_paysage.width; m_height_image = main_display_paysage.height; c_width_image = compare_display_paysage.width; c_height_image = compare_display_paysage.height; dim_container = { width:double_paysage_width, height:double_paysage_height }; } var image_callback = set_image_position(false, compare_record, c_width_image, c_height_image, dim_container, function(){}); set_image_position(smooth_image, main_record, m_width_image, m_height_image, dim_container, image_callback); } else { $('.agreement_selector').hide(); main_container.removeClass('comparison'); if(compare_box.is(':visible')) { compare_box.hide().css('visibility','hidden').css('display','block'); } var main_display = calculate_display( main_container_innerwidth, (main_container_innerheight - $('.header', main_box).outerHeight()), main_record_width, main_record_height ); if(!main_container.hasClass('single')) { main_box.width('100%') .height('100%'); set_container_status('single'); } set_image_position(smooth_image, main_record, main_display.width, main_display.height, { width:main_container_width, height:(main_container_height - $('.header', main_box).outerHeight()) }); } } function set_container_status(status) { $('#record_wrapper').removeClass('paysage portrait single').addClass(status); } function set_image_position(smooth, image, width, height, container, callback) { var dimensions = {}; if(typeof container !== 'undefined') { var c_width = container.width; var c_height = container.height; dimensions.top = parseInt((c_height - height) / 2); dimensions.left = parseInt((c_width - width) / 2); } if(typeof callback == 'undefined') { callback = function(){}; } dimensions.width = width; dimensions.height = height; if(smooth) { $(image).stop().animate(dimensions,500,callback); } else { $(image).css(dimensions); callback(); } } function smooth_transform(box, width, height, callback) { if(typeof callback == 'undefined') callback = function(){}; $(box).stop() .animate( { width : width, height : height }, 500, callback ); } function scroll_elements(boolean_value) { var sc_wrapper = $('#sc_wrapper'); var value; if(boolean_value) value = sc_wrapper.scrollLeft() + 400; else value = sc_wrapper.scrollLeft() - 400; sc_wrapper.stop().animate({ 'scrollLeft':value }); return; } function download_basket() { var ids = $.map($('#sc_container .download_form').toArray(), function(el, i){ return $('input[name="basrec"]',$(el)).val(); }); download(ids.join(';')); } function download(value) { var dialog_box = $('#dialog_dwnl'); dialog_box = $('#dialog_dwnl'); dialog_box.empty().addClass('loading').dialog({ width:800, height:600, modal:true, closeOnEscape : false, resizable : false, overlay: { backgroundColor: '#000', opacity: 0.7 }, beforeclose:function(){ tinyMCE.execCommand('mceRemoveControl',true,'sendmail_message'); tinyMCE.execCommand('mceRemoveControl',true,'order_usage'); } }).dialog('open'); $.post("/include/multiexports.php", "lst="+value, function(data) { dialog_box.removeClass('loading').empty().append(data); $('.tabs', dialog_box).tabs(); tinyMCE.execCommand('mceAddControl',true,'sendmail_message'); tinyMCE.execCommand('mceAddControl',true,'order_usage'); $('.close_button', dialog_box).bind('click',function(){ dialog_box.dialog('close').dialog('destroy'); }); return false; }); }