var sankoreLang = { display: "Afficher", edit: "Modifier", short_desc: "Sélectionner les animaux dans la liste suivante :", add: "Nouveau bloc", enter: "Saisir votre consigne ici ...", cat: "chat", ball: "balle", shovel: "pelle", dog: "chien", tree: "arbre", wgt_name: "Sélectionner", reload: "Recharger", slate: "ardoise", pad: "tablette", none: "aucun", help: "aide", help_content: "Ceci est un exemple de contenu de l'aide ..." }; //main function function start(){ $("#wgt_display").text(sankoreLang.display); $("#wgt_edit").text(sankoreLang.edit); $("#wgt_name").text(sankoreLang.wgt_name); $("#wgt_reload").text(sankoreLang.reload); $("#wgt_help").text(sankoreLang.help); $("#help").html(sankoreLang.help_content); $(".style_select option[value='1']").text(sankoreLang.slate); $(".style_select option[value='2']").text(sankoreLang.pad); $(".style_select option[value='3']").text(sankoreLang.none); if(window.sankore){ if(sankore.preference("selectionner","")){ var data = jQuery.parseJSON(sankore.preference("selectionner","")); importData(data); } else showExample(); if(sankore.preference("sel_style","")){ changeStyle(sankore.preference("sel_style","")); $(".style_select").val(sankore.preference("sel_style","")); } else changeStyle("3") } else showExample(); //events if (window.widget) { window.widget.onleave = function(){ exportData(); sankore.setPreference("sel_style", $(".style_select").find("option:selected").val()); } } $("#wgt_help").click(function(){ var tmp = $(this); if($(this).hasClass("open")){ $("#help").slideUp("100", function(){ tmp.removeClass("open"); $("#data").show(); }); } else { $("#data").hide(); $("#help").slideDown("100", function(){ tmp.addClass("open"); }); } }); $("#wgt_reload").click(function(){ if($("#wgt_display").hasClass("selected")){ $(".cont").each(function(){ var container = $(this); container.find(".img_block, .text_block").each(function(){ $(this).find("input:checkbox").removeAttr("checked"); $(this).find("input:checkbox").parent().parent().removeClass("right"); }); }); } else $("#wgt_display").trigger("click"); }); $(".style_select").change(function (event){ changeStyle($(this).find("option:selected").val()); }) $("#wgt_display, #wgt_edit").click(function(event){ if(this.id == "wgt_display"){ if(!$(this).hasClass("selected")){ if(window.sankore) sankore.enableDropOnWidget(false); $(this).addClass("selected"); $("#wgt_edit").removeClass("selected"); $(".style_select").css("display","none"); $(".add_block").remove(); $(".cont").each(function(){ var container = $(this); container.find(".text_cont").removeAttr("contenteditable"); container.find(".add_img").remove(); container.find(".close_cont").remove(); container.find(".imgs_cont").removeAttr("ondragenter") .removeAttr("ondragleave") .removeAttr("ondragover") .removeAttr("ondrop"); container.find(".img_block, .text_block").each(function(){ $(this).find(".close_img").remove(); $(this).find(".text_subblock").removeAttr("contenteditable"); $(this).find("input:checkbox").removeAttr("checked") }); }); $(this).css("display", "none"); $("#wgt_edit").css("display", "block"); } } else { if(!$(this).hasClass("selected")){ if(window.sankore) sankore.enableDropOnWidget(true); $(this).addClass("selected"); $("#wgt_display").removeClass("selected"); $(".style_select").css("display","block"); $(".cont").each(function(){ var container = $(this); $("
").appendTo(container); container.find(".text_cont").attr("contenteditable","true"); container.find(".imgs_cont").removeClass("right") .attr("ondragenter", "return false;") .attr("ondragleave", "$(this).removeClass('over'); return false;") .attr("ondragover", "$(this).addClass('over'); return false;") .attr("ondrop", "$(this).removeClass('over'); return onDropTarget(this,event);"); var add_img = $("
"); container.find(".img_block, .text_block").each(function(){ $("
").appendTo($(this)); if($(this).find("input:hidden").val() == 0) $(this).find("input:checkbox").attr('checked', false); else $(this).find("input:checkbox").attr('checked', true); $(this).find(".text_subblock").attr("contenteditable","true"); }); add_img.insertBefore(container.find(".clear")); }); $("
" + sankoreLang.add + "
").appendTo("#data"); $(this).css("display", "none"); $("#wgt_display").css("display", "block"); } } }); //add new block $(".add_block").live("click", function(){ addContainer(); }); //checkbox events $("input:checkbox").live("click", function(){ if($("#wgt_display").hasClass("selected")){ var flag = true; var block = $(this).parent().parent(); block.find(".text_block, .img_block, .audio_block").each(function(){ if($(this).find("input:checkbox").is(':checked') && $(this).find("input:hidden").val() == 0) flag = false; else if(!$(this).find("input:checkbox").is(':checked') && $(this).find("input:hidden").val() == 1) flag = false; }); if(flag) block.addClass("right"); else block.removeClass("right"); } else { if($(this).is(":checked")) $(this).parent().find("input:hidden").val(1); else $(this).parent().find("input:hidden").val(0); } }); //play/pause event $(".play, .stop").live("click", function(){ var tmp_audio = $(this); var audio = tmp_audio.parent().find("audio").get(0); if($(this).hasClass("play")){ if(tmp_audio.parent().find("source").attr("src")){ tmp_audio.removeClass("play").addClass("stop"); var id = setInterval(function(){ if(audio.currentTime == audio.duration){ clearInterval(id); tmp_audio.removeClass("stop").addClass("play"); } }, 10); tmp_audio.parent().find("input").val(id); audio.play(); } } else { $(this).removeClass("stop").addClass("play"); clearInterval( tmp_audio.parent().find("input").val()) audio.pause(); } }); $(".replay").live("click", function(){ var tmp_audio = $(this).prev(); var audio = $(this).parent().find("audio").get(0); if(tmp_audio.parent().find("source").attr("src")){ $(this).prev().removeClass("play").addClass("stop"); clearInterval($(this).parent().find("input").val()); var id = setInterval(function(){ if(audio.currentTime == audio.duration){ clearInterval(id); tmp_audio.removeClass("stop").addClass("play"); } }, 10); tmp_audio.parent().find("input").val(id); audio.currentTime = 0; audio.play(); } }); //adding new img $(".add_img").live("click", function(){ addTextBlock($(this)); }); //deleting a block $(".close_cont").live("click",function(){ $(this).parent().remove(); refreshBlockNumbers(); }); //deleting the img block $(".close_img").live("click", function(){ $(this).parent().remove(); }); } //export function exportData(){ var array_to_export = []; $(".cont").each(function(){ var cont_obj = new Object(); cont_obj.text = $(this).find(".text_cont").text(); cont_obj.blocks = []; $(this).find(".img_block, .audio_block, .text_block").each(function(){ var tmp_block = new Object(); if($("#wgt_display").hasClass("selected")) tmp_block.state = "display"; else tmp_block.state = "edit"; if($(this).hasClass("img_block")){ if($(this).find(".audio_block").size() == 0){ tmp_block.src = $(this).find("img").attr("src").replace("../../",""); tmp_block.hidden = $(this).find("input:hidden").val(); tmp_block.h = $(this).find("img").height(); tmp_block.w = $(this).find("img").width(); tmp_block.type = "img"; tmp_block.checked = $(this).find("input:checkbox").attr("checked"); } } if($(this).hasClass("audio_block")){ tmp_block.src = $(this).find("source").attr("src").replace("../../",""); tmp_block.hidden = $(this).parent().find("input:hidden").val(); tmp_block.type = "audio"; tmp_block.checked = $(this).parent().find("input:checkbox").attr("checked"); } if($(this).hasClass("text_block")){ tmp_block.text = $(this).find(".text_subblock").text(); tmp_block.hidden = $(this).find("input:hidden").val(); tmp_block.type = "text"; tmp_block.checked = $(this).find("input:checkbox").attr("checked"); } cont_obj.blocks.push(tmp_block); }); array_to_export.push(cont_obj); }); sankore.setPreference("selectionner", JSON.stringify(array_to_export)); } //import function importData(data){ var tmp = 0; for(var i in data){ var container = $("
").appendTo("#data"); var sub_container = $("
").appendTo(container); var imgs_container = $("
").appendTo(container); $("
").appendTo(imgs_container); $("
" + (++tmp) + "
").appendTo(sub_container); $("
" + data[i].text + "
").appendTo(sub_container); for(var j in data[i].blocks){ switch(data[i].blocks[j].type){ case "text": var text_block = $("
").insertBefore(imgs_container.find(".clear")); $("
" + data[i].blocks[j].text + "
").appendTo(text_block); $("").appendTo(text_block); $("").attr("checked",(data[i].blocks[j].state == "display")?((data[i].blocks[j].checked == "checked")?true:false):false).appendTo(text_block); break; case "img": var img_block = $("
").insertBefore(imgs_container.find(".clear")); $("").appendTo(img_block); $("").attr("checked",(data[i].blocks[j].state == "display")?((data[i].blocks[j].checked == "checked")?true:false):false).appendTo(img_block) var img = $("").appendTo(img_block); img.height(data[i].blocks[j].h); if((120 - data[i].blocks[j].h) > 0) img.css("margin",(120 - data[i].blocks[j].h)/2 + "px 0"); break; case "audio": var img_tmp = $("
").insertBefore(imgs_container.find(".clear")); var audio_block = $("
").appendTo(img_tmp); $("
").appendTo(audio_block); $("
").appendTo(audio_block); var source = $("").attr("src", "../../" + data[i].blocks[j].src); var audio = $("