var sankoreLang = { display: "Display", edit: "Edit", short_desc: "Select animals from the following list:", add: "Add new block", enter: "Enter your text here ...", cat: "cat", ball: "ball", shovel: "shovel", dog: "dog", tree: "tree" }; //main function function start(){ $("#display_text").text(sankoreLang.display); $("#edit_text").text(sankoreLang.edit); if(window.sankore){ if(sankore.preference("selectionner","")){ var data = jQuery.parseJSON(sankore.preference("selectionner","")); importData(data); } else { showExample(); } } else showExample(); //events if (window.widget) { window.widget.onleave = function(){ exportData(); } } $("#display, #edit").click(function(event){ if(this.id == "display"){ if(!$(this).hasClass("selected")){ if(window.sankore) sankore.enableDropOnWidget(false); $(this).addClass("selected"); $("#display_img").removeClass("red_point").addClass("green_point"); $("#edit_img").removeClass("green_point").addClass("red_point"); $("#edit").removeClass("selected"); $(".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") }); }); } } else { if(!$(this).hasClass("selected")){ if(window.sankore) sankore.enableDropOnWidget(true); $(this).addClass("selected"); $("#edit_img").removeClass("red_point").addClass("green_point"); $("#display_img").removeClass("green_point").addClass("red_point"); $("#display").removeClass("selected"); $(".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("body"); } } }); //add new block $(".add_block").live("click", function(){ addContainer(); }); //checkbox events $("input:checkbox").live("click", function(){ if($("#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($(this).hasClass("img_block")){ if($(this).find(".audio_block").size() == 0){ tmp_block.src = $(this).find("img").attr("src"); 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"; } } if($(this).hasClass("audio_block")){ tmp_block.src = $(this).find("source").attr("src"); tmp_block.hidden = $(this).parent().find("input:hidden").val(); tmp_block.type = "audio"; } 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"; } 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("body"); 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); $("").appendTo(text_block); break; case "img": var img_block = $("
").insertBefore(imgs_container.find(".clear")); $("").appendTo(img_block); $("").appendTo(img_block) $("").appendTo(img_block); break; case "audio": var img_tmp = $("
").insertBefore(imgs_container.find(".clear")); var audio_block = $("
").appendTo(img_tmp); $("
").appendTo(img_tmp); $("
").appendTo(audio_block); $("
").appendTo(audio_block); var source = $("").attr("src", data[i].blocks[j].src); var audio = $("