

/***********************************************************************************
 * PAGE VARIABLES
 ***********************************************************************************/

    var tmp = {};
    var data = {};
    var cache = {};

    data['text'] = "";
    data['textpos'] = 1;


/***********************************************************************************
 * TEXT EDITOR
 ***********************************************************************************/

    function TextEditor_open()
    {
        page.setDisabled();

        if (!tmp["text-editor-init"]) {
            page.Ajax.populate({"cmd":"createHTMLEditor"},
                                   function (okMsg) {
                                       if (data['text'] != "") {
                                           setTimeout(function() {try {htmlEditor.setHTML(data['text'])} catch (err) {}}, 1000);
                                       }
                                   });
            page.centerElement(e("divTextEditor"));

            tmp["text-editor-init"] = true;
        }

        e('divTextEditor').style.visibility = "visible";
        e('divTextEditor').style.display = "block";
    }


    function TextEditor_ok()
    {
        data['text'] = e('htmlEditor').value;
        e('targetText'+data['textpos']).innerHTML = data['text'];

        TextEditor_cancel();
    }


    function TextEditor_cancel()
    {
        e('divTextEditor').style.display = "none";
        page.setEnabled();
    }


    function changeTextPosition(pos)
    {
        if (data['textpos'] == pos) {
            return;
        }

        data['textpos'] = pos;
        if (data['textpos'] > 2) {
            data['textpos'] = 1;
        }

        if (data['textpos'] == 1) {
            e('targetBox1').style.display = "block";
            e('targetBox2').style.display = "none";
            e('targetImgW1').innerHTML = e('targetImgW2').innerHTML;
            e('targetImgW2').innerHTML = "";
            e('targetText1').innerHTML = data['text'];
            e('targetText2').innerHTML = "";
        }
        else if (data['textpos'] == 2) {
            e('targetBox1').style.display = "none";
            e('targetBox2').style.display = "block";
            e('targetImgW2').innerHTML = e('targetImgW1').innerHTML;
            e('targetImgW1').innerHTML = "";
            e('targetText1').innerHTML = "";
            e('targetText2').innerHTML = data['text'];
        }
    }



/***********************************************************************************
 * BACKGROUND
 ***********************************************************************************/

    function BackgroundEditor_open(target)
    {
        tmp['bgtarget'] = target;
        page.setDisabled();

        if (target == 'card') {
            e('cardBackgroundEditorTitle').style.display = "block";
            e('pageBackgroundEditorTitle').style.display = "none";
        }
        else if (target == 'page') {
            e('cardBackgroundEditorTitle').style.display = "none";
            e('pageBackgroundEditorTitle').style.display = "block";
        }

        if (!tmp["background-editor-init"]) {
            var colors = new Array(
                  new Array("#330000","#333300","#336600","#339900","#33CC00","#33FF00","#66FF00","#66CC00","#669900","#666600","#663300","#660000","#FF0000","#FF3300","#FF6600","#FF9900","#FFCC00","#FFFF00"),
                  new Array("#330033","#333333","#336633","#339933","#33CC33","#33FF33","#66FF33","#66CC33","#669933","#666633","#663333","#660033","#FF0033","#FF3333","#FF6633","#FF9933","#FFCC33","#FFFF33"),
                  new Array("#330066","#333366","#336666","#339966","#33CC66","#33FF66","#66FF66","#66CC66","#669966","#666666","#663366","#660066","#FF0066","#FF3366","#FF6666","#FF9966","#FFCC66","#FFFF66"),
                  new Array("#330099","#333399","#336699","#339999","#33CC99","#33FF99","#66FF99","#66CC99","#669999","#666699","#663399","#660099","#FF0099","#FF3399","#FF6699","#FF9999","#FFCC99","#FFFF99"),
                  new Array("#3300CC","#3333CC","#3366CC","#3399CC","#33CCCC","#33FFCC","#66FFCC","#66CCCC","#6699CC","#6666CC","#6633CC","#6600CC","#FF00CC","#FF33CC","#FF66CC","#FF99CC","#FFCCCC","#FFFFCC"),
                  new Array("#3300FF","#3333FF","#3366FF","#3399FF","#33CCFF","#33FFFF","#66FFFF","#66CCFF","#6699FF","#6666FF","#6633FF","#6600FF","#FF00FF","#FF33FF","#FF66FF","#FF99FF","#FFCCFF","#FFFFFF"),
                  new Array("#0000FF","#0033FF","#0066FF","#0099FF","#00CCFF","#00FFFF","#99FFFF","#99CCFF","#9999FF","#9966FF","#9933FF","#9900FF","#CC00FF","#CC33FF","#CC66FF","#CC99FF","#CCCCFF","#CCFFFF"),
                  new Array("#0000CC","#0033CC","#0066CC","#0099CC","#00CCCC","#00FFCC","#99FFCC","#99CCCC","#9999CC","#9966CC","#9933CC","#9900CC","#CC00CC","#CC33CC","#CC66CC","#CC99CC","#CCCCCC","#CCFFCC"),
                  new Array("#000099","#003399","#006699","#009999","#00CC99","#00FF99","#99FF99","#99CC99","#999999","#996699","#993399","#990099","#CC0099","#CC3399","#CC6699","#CC9999","#CCCC99","#CCFF99"),
                  new Array("#000066","#003366","#006666","#009966","#00CC66","#00FF66","#99FF66","#99CC66","#999966","#996666","#993366","#990066","#CC0066","#CC3366","#CC6666","#CC9966","#CCCC66","#CCFF66"),
                  new Array("#000033","#003333","#006633","#009933","#00CC33","#00FF33","#99FF33","#99CC33","#999933","#996633","#993333","#990033","#CC0033","#CC3333","#CC6633","#CC9933","#CCCC33","#CCFF33"),
                  new Array("#000000","#003300","#006600","#009900","#00CC00","#00FF00","#99FF00","#99CC00","#999900","#996600","#993300","#990000","#CC0000","#CC3300","#CC6600","#CC9900","#CCCC00","#CCFF00"),
                  new Array("#000000","#000000","#111111","#222222","#333333","#444444","#555555","#666666","#777777","#888888","#999999","#AAAAAA","#BBBBBB","#CCCCCC","#DDDDDD","#EEEEEE","#FFFFFF","#FFFFFF")
                );
            var content = "<table border='0' cellspacing='1' cellpadding='0' bgcolor='#000000'>";
            var tdWidth = 12; var tdHeight = 12;
            for (rowIndex = 0; rowIndex < colors.length; rowIndex++) {
                 content += "<tr>\n";
        	       var col = colors[rowIndex];
                 for (colIndex = 0; colIndex < col.length; colIndex++) {
                      var color = col[colIndex];
                      content += "<td width='" + tdWidth + "' height='" + tdHeight + "' bgcolor='" + color + "'><a href=\"#\" onclick=\"testBackgroundColor('" + color + "');return false;\"><img src='/system/assets/images/blank.gif" + "' width='" + tdWidth + "' height='" + tdHeight + "' border='0' /></a></td>\n";
                 }
                 content += "</tr>\n";
            }
            content += "</table>";
            e("divBackgroundEditorColorGrid").innerHTML = content;
            page.centerElement(e("divBackgroundEditor"));

            e("divBackgroundEditorResources").innerHTML = "<img src='/system/assets/images/loading.gif'/>";
            page.Ajax.populate({"cmd":"fillBackgroundSelector"}, function (okMsg) {loadBackgroundImages(e('backgroundEditorSelector').options[e('backgroundEditorSelector').selectedIndex].value, 1)});

            tmp["background-editor-init"] = true;
        }

        e('divBackgroundEditor').style.visibility = "visible";

        var currentBackground = data[tmp['bgtarget'] + 'bg'];
        if (currentBackground) {
            if (currentBackground.indexOf('#') == 0) {
                e('divBackgroundEditorPreview').style.background = currentBackground;
            }
            else {
                e('divBackgroundEditorPreview').style.background = 'url(' + data[tmp['bgtarget'] + 'bg_src'] + ')';
            }
        }
    }


    function loadBackgroundImages(catId, pageIndex)
    {
        if (cache[catId] == null) {
            e("divBackgroundEditorResources").innerHTML = "<img src='/system/assets/images/loading.gif'/>";
            page.Ajax.makeRequest({"cmd":"loadResources","cat_id":catId},
                               function (dataEvent) {
                                      cache[catId] = dataEvent.getParameters();
                                      loadBackgroundImages(catId, pageIndex);
                               }); 
        }
        else {
            var content = "";
            var objCategory = cache[catId];
            var count = objCategory["count"];
            for (var i=(pageIndex-1)*10;i<pageIndex*10;i++) {
                if (i<count) {
                    var res = objCategory[i];
                    var resAA = res.split(";");
                    content += "<a href='#' onclick=\"testBackgroundImage(" + resAA[0] + ", '" + resAA[1] + "');return false;\"><div style='border:1px solid #BFBFBF;width:100px;height:100px;margin:0 12 10 0;float:left;background:url(" + resAA[1] + ")'></div></a> ";
                }
            }

            var pages = Math.ceil(count/10);
            if (pages>1) {
                content += "<br/><br/>";
                content += "<div style='width:580px;float:left'>";
                for (var i=1;i<=pages;i++) {
                    content += "<a href='#' onclick='loadBackgroundImages("+catId+", "+i+");return false;' class='" + (i!=pageIndex?'pager_normal':'pager_selected') + "'>"+i+"</a> ";
                }
                content += "</div>";
            }

            e("divBackgroundEditorResources").innerHTML = content;
        }
    }


    function testBackgroundColor(value)
    {
        try {
            e('divBackgroundEditorPreview').style.background = value;            
            e('divBackgroundEditorInput').value = value;
            e('divBackgroundEditorInput').style.visibility = "visible";
            tmp[tmp['bgtarget'] + 'bg'] = value;
        }
        catch (err) {
        }
    }


    function testBackgroundImage(resId, src)
    {
        e('divBackgroundEditorPreview').style.backgroundImage = 'url(' + src + ')';
        tmp[tmp['bgtarget'] + 'bg'] = "" + resId;
        tmp[tmp['bgtarget'] + 'bg_src'] = src;
        e('divBackgroundEditorInput').style.visibility = "hidden";
    }


    function BackgroundEditor_remove(target)
    {
        if (data[target + 'bg']) delete data[target + 'bg'];
        if (data[target + 'bg_src']) delete data[target + 'bg_src'];

        e("del" + target + "Bg").style.visibility = "hidden";

        if (target == 'card') {
            e("targetTable1").style.background = "";
            e("targetTable2").style.background = "";
        }
        else if (target == 'page') {
            document.body.style.background = "";
        }
    }


    function BackgroundEditor_ok()
    {
        var target = tmp['bgtarget'];

        if (tmp[target + 'bg']) {
            data[target + 'bg'] = tmp[target + 'bg'];
            if (tmp[target + 'bg'].indexOf('#') == 0) {
                if (data[target + 'bg_src']) delete data[target + 'bg_src'];
                if (target == 'card') {
                    e("targetTable1").style.background = tmp[target + 'bg'];
                    e("targetTable2").style.background = tmp[target + 'bg'];
                }
                else if (target == 'page') {
                    document.body.style.background = tmp[target + 'bg'];
                }
            }
            else {
                data[target + 'bg_src'] = tmp[target + 'bg_src'];
                if (target == 'card') {
                    e("targetTable1").style.background = 'url(' + tmp[target + 'bg_src'] + ')';
                    e("targetTable2").style.background = 'url(' + tmp[target + 'bg_src'] + ')';
                }
                else if (target == 'page') {
                    document.body.style.background = 'url(' + tmp[target + 'bg_src'] + ')';
                }
            }

            e("del" + target + "Bg").style.visibility = "visible";
        }

        BackgroundEditor_cancel();
    }


    function BackgroundEditor_cancel()
    {
        var target = tmp['bgtarget'];

        e('divBackgroundEditor').style.visibility = "hidden";
        e('divBackgroundEditorInput').style.visibility = "hidden";
        if (tmp[target + 'bg']) delete tmp[target + 'bg'];
        if (tmp[target + 'bg_src']) delete tmp[target + 'bg_src'];
        page.setEnabled();
    }
    


/***********************************************************************************
 * ANIMATIONS
 ***********************************************************************************/
 
    var animList = {'count':0,'seq':10};
    var dragObject;


    function AnimEditor_open()
    {
        page.setDisabled();

        if (!tmp["anim-editor-init"]) {
            var targetImg = e("targetImg");
            e("divAnimEditorImage").innerHTML = "<img src='" + targetImg.src + "' style='width:" + targetImg.width + "px;height:" + targetImg.height + "px'/>";

            e("divAnimEditorMainArea").style.height = page.docHeight() - 100 + "px";
            e("divAnimEditorContent").style.top = targetImg.height + 20 + "px";
            e("divAnimEditorContent").style.height = page.docHeight() - targetImg.height - 120 + "px";
            e("divAnimEditorIcons").style.width = targetImg.width + "px";
            e("divAnimEditorIcons").style.height = targetImg.height + "px";
            e("divAnimEditorIconsList").style.left = targetImg.width + 20 + "px";

            page.centerElement(e("divAnimEditor"));

            e("divAnimEditorResources").innerHTML = "<img src='/system/assets/images/loading.gif'/>";
            page.Ajax.populate({"cmd":"fillAnimSelector"}, function (okMsg) {loadAnimImages(e('animEditorSelector').options[e('animEditorSelector').selectedIndex].value, 1)});

            tmp["anim-editor-init"] = true;
        }

        e('divAnimEditor').style.visibility = "visible";
    }


    function loadAnimImages(catId, pageIndex)
    {
        if (cache[catId] == null) {
            e("divAnimEditorResources").innerHTML = "<img src='/system/assets/images/loading.gif'/>";
            page.Ajax.makeRequest({"cmd":"loadResources","cat_id":catId},
                               function (dataEvent) {
                                      cache[catId] = dataEvent.getParameters();
                                      loadAnimImages(catId, pageIndex);
                               });
        }
        else {
            var content = "";
            var objCategory = cache[catId];
            var count = objCategory["count"];
            for (var i=(pageIndex-1)*10;i<pageIndex*10;i++) {
                if (i<count) {
                    var res = objCategory[i];
                    var resAA = res.split(";");
                    content += "<a href='#' onclick=\"AnimEditor_addIcon(" + resAA[0] + ", '" + resAA[1] + "')\"><img src='" + resAA[1] + "'/ style='border-style:none'></a> ";
                }
            }

            var pages = Math.ceil(count/10);
            if (pages>1) {
                content += "<br/><br/>";
                content += "<div style='width:680px;'>";
                for (var i=1;i<=pages;i++) {
                    content += "<a href='#' onclick='loadAnimImages("+catId+", "+i+");return false;' class='" + (i!=pageIndex?'pager_normal':'pager_selected') + "'>"+i+"</a> ";
                }
                content += "</div>";
            }

            e("divAnimEditorResources").innerHTML = content;
        }
    }


    function AnimEditor_addIcon(res_id, imageUrl)
    {
        if (animList['count'] >= 8) {
            alert('Limit 8 animations reached');
            return;
        }

        var id = 'id'+animList['seq'];
        var icon = {
                  'id' : id,
              'res_id' : res_id,
                   'x' : 0,
                   'y' : 0,
                   'w' : 10,
                   'h' : 10,
                 'src' : imageUrl,
                  'op' : 100
             };

        animList[id] = icon;
        animList['count'] = animList['count']+1;
        animList['seq'] = animList['seq']+1;

        var fileNameA = imageUrl.split('/');
        var fileName = fileNameA[fileNameA.length-1];
        var menuItem = document.createElement("DIV");
        menuItem.id = 'mi'+id;
        menuItem.style.textAlign = "right";
        menuItem.innerHTML = "&nbsp;" + fileName + "&nbsp;&nbsp;&nbsp;" + "<a href='#' onclick=\"AnimEditor_removeIcon('"+id+"');\"><img src='/assets/images/anim_edit_close.gif' alt='"+tmp['removeAlt']+"' title='"+tmp['removeAlt']+"'/></a>" + "&nbsp;&nbsp;&nbsp;" + "<a href='#' onclick=\"AnimEditor_setOpacity('"+id+"');\"><img src='/assets/images/anim_opacity.gif' alt='"+tmp['opacityAlt']+"' title='"+tmp['opacityAlt']+"'/></a>&nbsp;";
        e("divAnimEditorIconsListContent").appendChild(menuItem);

        var img = document.createElement("DIV");
        img.id = id;
        img.style.position = "absolute";
        img.style.left = "0px";
        img.style.top = "0px";
        img.style.background = "url(" + imageUrl + ")";

        var bgImg = document.createElement("IMG");
        e('divAnimEditorIcons').appendChild(img);

        bgImg.onload = function() {
            img.style.width=bgImg.width+"px";
            img.style.height=bgImg.height+"px";
            animList[id].w=bgImg.width;
            animList[id].h=bgImg.height;
            bgImg.onload = null;
        };
        bgImg.src = imageUrl;


        addTargetEventListener(img, "mouseover", function(target) {
            target.style.border = "1px solid #000000";
            e('mi'+target.id).style.background = "#F9D6AF";
        });

        addTargetEventListener(img, "mouseout", function(target) {
            target.style.border = "";
            e('mi'+target.id).style.background = "";
        });

        addTargetEventListener(img, "mousedown", function(target, evt) {
            var mXY = mouseXY(evt);
            var ex = parseInt(target.style.left);
            var ey = parseInt(target.style.top);
            dragObject = {'t':target.id,'off_x':mXY.x-ex,'off_y':mXY.y-ey};
            if (evt.preventDefault) {
                evt.preventDefault();
            }
        });

        addTargetEventListener(document, "mousemove", function(target, evt) {
            if (!dragObject) return;

            var mXY = mouseXY(evt);
            moveTo(e(dragObject.t), mXY.x-dragObject.off_x, mXY.y-dragObject.off_y);
            animList[dragObject.t]['x'] = mXY.x-dragObject.off_x;
            animList[dragObject.t]['y'] = mXY.y-dragObject.off_y;
        });

        addTargetEventListener(document, "mouseup", function(target, evt) {
            dragObject = null;
        });
    }


    function AnimEditor_removeIcon(id)
    {
        if (animList[id]) {
            delete animList[id];
            animList['count'] = animList['count']-1;
        }

        if (e(id)) {
            e("divAnimEditorIcons").removeChild(e(id));
        }

        if (e("mi"+id)) {
            e("divAnimEditorIconsListContent").removeChild(e("mi"+id));
        }
    }


    function AnimEditor_setOpacity(id)
    {
        var p = prompt(tmp['opacityPrompt'], animList[id]['op']);
        if (p && !isNaN(p) && p.indexOf('.')==-1 && p.indexOf(',')==-1 && p>=5 && p<=100) {
            animList[id]['op'] = p;
            setOpacity(e(id), p);
        }
    }


    function AnimEditor_ok()
    {
        var html = "";
        var str = "";
        for (var i in animList) {
           if (i!='count' && i!='seq') {
              var icon = animList[i];
              var op = 'opacity:' + icon['op']/100;
              if (page.HttpAgent.isIE()) op = 'filter:alpha(opacity=' + icon['op'] + ')';
              else if (page.HttpAgent.isFirefox() || page.HttpAgent.isMozilla()) op = '-moz-opacity:' + icon['op']/100;
              html += "<div style='position:absolute;width:" + icon['w'] + "px;height:" + icon['h'] + "px;left:" + icon['x'] + "px;top:" + icon['y'] + "px;" + op + ";background:url(" + icon['src'] + ")'></div>";
              str += icon['res_id']+';'+icon['x']+';'+icon['y']+';'+icon['w']+';'+icon['h']+';'+icon['op']+';'+icon['src'] + "^";
           }
        }

        if (html != "") {
            e("anims").innerHTML = html;
            e("delAnim").style.visibility = "visible";
    
            if (str != "") {
                str = str.substr(0,str.length-1);
                data['anims'] = str;
            }
        }

        AnimEditor_cancel();
    }


    function AnimEditor_remove()
    {
        if (data['anims']) {
            delete data['anims'];
        }

        e("anims").innerHTML = "";
        e("delAnim").style.visibility = "hidden";
    }


    function AnimEditor_cancel()
    {
        e('divAnimEditor').style.visibility = "hidden";
        page.setEnabled();
    }


    function AnimEditor_addFromString(anims)
    {
        if (anims != "") {
            var tmpHTML = "";
            var a1 = anims.split('^');
            for (var i=0; i<a1.length; i++) {
                var a2 = a1[i].split(';');
                var op = 'opacity:' + a2[5]/100;
                if (page.HttpAgent.isIE()) op = 'filter:alpha(opacity=' + a2[5] + ')';
                else if (page.HttpAgent.isFirefox() || page.HttpAgent.isMozilla()) op = '-moz-opacity:' + a2[5]/100;
                tmpHTML += "<div style='position:absolute;width:" + a2[3] + "px;height:" + a2[4] + "px;left:" + a2[1] + "px;top:" + a2[2] + "px;" + op + ";background:url(" + a2[6] + ")'></div>";
            }

            e('anims').innerHTML = tmpHTML;
            e("delAnim").style.visibility = "visible";
            data['anims'] = anims;
        }
    }












/***********************************************************************************
 * PAINT EDITOR
 ***********************************************************************************/

    function PaintEditor_open()
    {
        page.setDisabled();

        if (!tmp["paint-editor-init"]) {
            var dim = getWH(e('targetImg'));
            var w = dim.w; w = Math.max(400, w);
            var h = dim.h; h = Math.max(300, h);
            var src = e('targetImg').src;
            var tmpHTML = "<embed name='DrawPampai' type='application/x-java-applet;version=1.4' archive='/assets/jars/painter_new.jar' code='com.greetings.painter.DrawCardApplet.class' pluginspage='http://java.sun.com/j2se/1.4.2/download.html' mayscript='true' width='"+w+"' height='"+h+"' mainImage='"+src+"' submitUrl='/draw_save.php' max_img_size='75000' bgcolor='16511977'><noembed>No java plugin</noembed></embed>";
            if (page.HttpAgent.isIE()) {
                tmpHTML = "<object name='DrawPampai' classid='clsid:8AD9C840-044E-11D1-B3E9-00805F499D93' codebase='http://java.sun.com/products/plugin/autodl/jinstall-1_4-windows-i586.cab#Version=1,4,0,0' width='"+w+"' height='"+h+"'><param name='type' value='application/x-java-applet;version=1.4'/><param name='name' value='DrawPampai'/><param name='archive' value='/assets/jars/painter_new.jar'/><param name='code' value='com.greetings.painter.DrawCardApplet.class'/><param name='mayscript' value='true'/><param name='scriptable' value='true'/><param name='mainImage' value='"+src+"'/><param name='submitUrl' value='/draw_save.php'/><param name='max_img_size' value='75000'/><param name='bgcolor' value='16511977'/></object>";
            }
            tmpHTML += "<br/><br/><center><img id='idDrawSaveStatus' src='/assets/images/blank.gif' /></center>";

            e('divPaintEditorApplet').style.display = "block";
            e("divPaintEditorApplet").innerHTML = tmpHTML;
            e("divPaintEditorApplet").style.width = w+50 + "px";
            e("divPaintEditorApplet").style.height = h+30 + "px";
            e("divPaintEditorPreviewDrawing").style.width = w + "px";
            e("divPaintEditorPreviewDrawing").style.height = h + "px";

            page.centerElement(e("divPaintEditor"));

            var sel = e("idDrawOpacitySelector");
            for (var i=100; i>=5; i-=5) {
                sel.options[sel.options.length] = new Option(i, i);
            }

            tmp["paint-editor-init"] = true;
        }

        e('divPaintEditor').style.display = "block";
        e('divPaintEditor').style.visibility = "visible";
        e('divPaintEditor').style.zIndex = 100;
        e('divPaintEditorApplet').style.display = "block";

        tmp["paint-editor-state"] = "draw";
    }


    function PaintEditor_ok()
    {
        if (tmp["paint-editor-state"] == "draw") {
            tmp["paint-editor-state"] == "inprogress";
            e("btnDrawOk").style.visibility = "hidden";
            e("btnDrawCancel").style.visibility = "hidden";
            e("idDrawSaveStatus").src = '/assets/images/loading.gif';
            document.DrawPampai.saveImage();
        }
        else if (tmp["paint-editor-state"] == "saved") {
            PaintEditor_cancel();
            e("delDraw").style.visibility = "visible";
        }
    }


    function PaintEditor_remove()
    {
        if (data['draw_id']) {
            delete data['draw_id'];
            delete data['draw_op'];
        }

        e("delDraw").style.visibility = "hidden";
        e('painting').style.background = "";
    }


    function PaintEditor_cancel()
    {
        e('divPaintEditorPreview').style.display = "none";
        e('divPaintEditor').style.display = "none";
        e("idDrawSaveStatus").src = '/assets/images/blank.gif';
        e("btnDrawOk").style.visibility = "visible";
        e("btnDrawCancel").style.visibility = "visible";
        page.setEnabled();
    }


    function PaintEditor_setOpacity(value)
    {
        setOpacity(e('divPaintEditorPreviewDrawing'), value);
        setOpacity(e('painting'), value);
        data['draw_op'] = value;
    }


    function fromApplet(type, value)
    {
        tmp["paint-editor-state"] = "saved";

        if (type == 'ok') {
          e('divPaintEditorApplet').style.display = "none";
          e('divPaintEditorPreview').style.display = "block";
          e('divPaintEditorPreviewDrawing').src = '/assets/draw_gifs/' + value + '.gif';
          e('painting').style.background = 'url(/assets/draw_gifs/' + value + '.gif)';
          data['draw_id'] = value;
          data['draw_op'] = e('idDrawOpacitySelector').options[e('idDrawOpacitySelector').selectedIndex].value;
          e("btnDrawOk").style.visibility = "visible";
        }
        else {
          e("btnDrawCancel").style.visibility = "visible";
        }
    }




/***********************************************************************************
 * MUSIC EDITOR
 ***********************************************************************************/
    
    function MusicEditor_open()
    {
        page.setDisabled();

        if (!tmp["music-editor-init"]) {
            page.centerElement(e("divMusicEditor"));

            e("divMusicEditorResources").innerHTML = "<img src='/system/assets/images/loading.gif'/>";
            page.Ajax.populate({"cmd":"fillMusicSelector"}, function (okMsg) {loadMusicFiles(e('musicEditorSelector').options[e('musicEditorSelector').selectedIndex].value, 1)});

            tmp["music-editor-init"] = true;
        }

        e('divMusicEditor').style.visibility = "visible";

    }


    function loadMusicFiles(catId, pageIndex)
    {
        if (cache[catId] == null) {
            e("divMusicEditorResources").innerHTML = "<img src='/system/assets/images/loading.gif'/>";
            page.Ajax.makeRequest({"cmd":"loadResources","cat_id":catId},
                               function (dataEvent) {
                                      cache[catId] = dataEvent.getParameters();
                                      loadMusicFiles(catId, pageIndex);
                               }); 
        }
        else {
            var content = "<table cellspacing='0' cellpadding='0' border='0'>";
            var objCategory = cache[catId];
            var count = objCategory["count"];
            for (var i=(pageIndex-1)*10;i<pageIndex*10;i++) {
                if (i<count) {
                    var res = objCategory[i];
                    var resAA = res.split(";");
                    var descr = (resAA.length==3?resAA[2]:"Unknown");
                    content += "<tr><td style='width:480px;padding:2 2 2 2;border-bottom:1px solid #CCCCCC'>"+descr+"</td><td style='border-bottom:1px solid #CCCCCC'><a href='#' onclick=\"testMusic(" + resAA[0] + ", '" + resAA[1] + "', '" + descr.replace(/'/,"\\'") + "');return false;\"><img src='/assets/images/music1.gif'/ style='border-style:none' alt=\""+tmp['listenTest']+"\" title=\""+tmp['listenTest']+"\"></a></td></tr>";
                }
                else {
                    content += "<tr><td style='padding:2 2 2 2;'>&nbsp;</td><td>&nbsp;</td></tr>";
                }
            }
            content += "</table>";

            var pages = Math.ceil(count/10);
            if (pages>1) {
                content += "";
                content += "<div style='width:580px;float:left;padding:4 0 4 0'>";
                for (var i=1;i<=pages;i++) {
                    content += "<a href='#' onclick='loadMusicFiles("+catId+", "+i+");return false;' class='" + (i!=pageIndex?'pager_normal':'pager_selected') + "'>"+i+"</a> ";
                }
                content += "</div>";
            }

            e("divMusicEditorResources").innerHTML = content;
        }
    }


    function testMusic(resId, src, descr)
    {
        tmp['music_id'] = resId;
        tmp['music_src'] = src;
        tmp['music_descr'] = descr;

        e("divMusicEditorTest").innerHTML = descr + "&nbsp;&nbsp;<a href='#' onclick='testMusic_stop();return false;'><img src='/assets/images/music2.gif' style='border-style:none'/></a>";
        e("divMusicEditorTest").style.display = "block";

        var html;
        var doc;
        if (page.HttpAgent.isIE()||page.HttpAgent.isOpera()) {
            doc = sndFrame.document;
            html = "<body><bgsound id='sndPlayer' src='" + src + "' autostart='true' loop='infinite'></body>";
        }
        else {
            doc = e("sndFrame").contentDocument;
            html = "<body><embed id='sndPlayer' src='" + src + "' autostart='true' playcount='0' loop='true'></body>";
        }

        doc.open();
        doc.write(html);
        doc.close();

        e("divMusicEditorOkButton").style.visibility = "visible";
    }


    function testMusic_stop()
    {
        if (tmp['music_id']) {
            delete tmp['music_id'];
            delete tmp['music_src'];
            delete tmp['music_descr'];
        }

        e("divMusicEditorTest").style.display = "none";
        e("divMusicEditorTest").innerHTML = "";
        e("divMusicEditorOkButton").style.visibility = "hidden";

        var doc;
        if (page.HttpAgent.isIE()||page.HttpAgent.isOpera()) {
            doc = sndFrame.document;
        }
        else {
            doc = e("sndFrame").contentDocument;
        }

        doc.open();
        doc.write("<body></body>");
        doc.close();
    }


    function MusicEditor_ok()
    {
        if (tmp['music_id']) {
            data['music_id'] = tmp['music_id'];
            data['music_src'] = tmp['music_src'];
            data['music_descr'] = tmp['music_descr'];
            e("delMusic").style.visibility = "visible";
        }

        MusicEditor_cancel();
    }


    function MusicEditor_remove()
    {
        if (data['music_id']) {
            delete data['music_id'];
            delete data['music_src'];
            delete data['music_descr'];
        }

        e("delMusic").style.visibility = "hidden";
    }


    function MusicEditor_cancel()
    {
        if (tmp['music_id']) {
            delete tmp['music_id'];
            delete tmp['music_src'];
            delete tmp['music_descr'];
        }

        e('divMusicEditor').style.visibility = "hidden";
        page.setEnabled();
        testMusic_stop();
    }




/***********************************************************************************
 * PREVIEW
 ***********************************************************************************/

    function preview()
    {
        data['mode'] = 'p';
        page.redirect('v.php', data, {'method':'post','target':'_blank'});
    }




/***********************************************************************************
 * MUSIC EDITOR
 ***********************************************************************************/
    
    function SendForm_open()
    {
        page.setDisabled();

        if (!tmp["send-form-init"]) {
            page.centerElement(e("divSendForm"));
            page.Ajax.populate({"cmd":"fillSendDate"}, function (okMsg) {});
            tmp["send-form-init"] = true;
        }

        e('divSendForm').style.visibility = "visible";
    }


    function validateEmail(email)
    {
        if (email == null || email.indexOf('@') == -1 || email.indexOf('.') == -1) {
            return false;
        }

        var bannedChars = "; ,:()[]#$%^&!/<>'\"";
        for (var i=0; i<bannedChars.length; i++) {
             if (email.indexOf(bannedChars.charAt(i)) >= 0) {
                 return false;
             }
        }

        return true;
    }


    function SendForm_ok()
    {
        if (!e('idSenderName').value) {
            e('divSendFormStatus').innerHTML = tmp['error.sf.s.n'];
            e('divSendFormStatus').className = 'error'
            return;
        }

        e('idSenderEmail').value = e('idSenderEmail').value.replace(/^\s*/, "").replace(/\s*$/, "");
        if (!validateEmail(e('idSenderEmail').value)) {
            e('divSendFormStatus').innerHTML = tmp['error.sf.s.e'];
            e('divSendFormStatus').className = 'error'
            return;
        }

        var recipientsStr = "";
        for (var i=1; i<=6; i++) {
             if (e('idRecipientEmail'+i).value != "") {
                 e('idRecipientEmail'+i).value = e('idRecipientEmail'+i).value.replace(/^\s*/, "").replace(/\s*$/, "");
                 if (!validateEmail(e('idRecipientEmail'+i).value)) {
                     e('divSendFormStatus').innerHTML = tmp['error.general'] + ' - ' + e('idRecipientEmail'+i).value;
                     e('divSendFormStatus').className = 'error';
                     return;
                 }
                 else {
                     recipientsStr = recipientsStr + e('idRecipientEmail'+i).value + ",";
                 }
             }
        }

        if (recipientsStr == "") {
            e('divSendFormStatus').innerHTML = tmp['error.sf.r.e'];
            e('divSendFormStatus').className = 'error'
            return;
        }

        recipientsStr = recipientsStr.substr(0, recipientsStr.length-1);


        e('idSenderName').disabled = true;
        e('idSenderEmail').disabled = true;
        for (i=1; i<=6; i++) {
             e('idRecipientEmail'+i).disabled = true;
        }
        e('divSendFormOkButton').disabled = true;
        e('divSendFormCancelButton').disabled = true;

        e('divSendFormStatus').className = 'process';
        e('divSendFormStatus').innerHTML = "<img src='/assets/images/loading.gif'/>";

        var data2 = {'cmd':'send'};
        for (var i in data) data2[i] = data[i];
        data2['senderName'] = e('idSenderName').value;
        data2['senderEmail'] = e('idSenderEmail').value;
        data2['recipientEmail'] = recipientsStr;
        data2['sendDate'] = e('idSendDate').options[e('idSendDate').selectedIndex].value;
        if (e('idAlertMe').checked) {
            data2['alert_me'] = 'on';
        }
        if (e('idCopyMe').checked) {
            data2['copy_me'] = 'on';
        }
        page.Ajax.makeRequest(data2, function (dataEvent) {
                                          if (dataEvent.get('result') == 'ok') {
                                              SendForm_cancel();
                                              e('divMain').style.display = "none";
                                              e('divFinalText').style.display = "block";
                                              e('divFinalCodeText').style.display = "block";
                                              e('idCardCode').innerHTML = dataEvent.get('code');
                                              e('divFinalWarning').style.display = "block";

                                              document.body.style.background = "";
                                          }
                                          else {
                                              e('idSenderName').disabled = false;
                                              e('idSenderEmail').disabled = false;
                                              for (var k=1; k<=6; k++) {
                                                   e('idRecipientEmail'+k).disabled = false;
                                              }
                                              e('divSendFormOkButton').disabled = false;
                                              e('divSendFormCancelButton').disabled = false;
                                              e('divSendFormStatus').innerHTML = dataEvent.get('error');
                                              e('divSendFormStatus').className = 'error'
                                          }
                                     });
    }


    function SendForm_cancel()
    {
        e('divSendForm').style.visibility = "hidden";
        page.setEnabled();
    }




    function confirmOpacity(title, value, okHandler)
    {
        var dialog = new TDialog();
        dialog.setClassName("cssDialogInfo");
        dialog.setTitle(title);
        dialog.setContent("<center><input type='text' id='idOpacity' value='"+value+"'></center>");
        dialog.addButton("OK", function () {
               val = document.getElementById("idOpacity").value;
               dialog.close();
               if (okHandler)
                   okHandler.call(this, val);
        });

        dialog.openModal();
        dialog.bringToFront();
    }
