/**
 * Functions for the ImageEditor interface, used by editor.php only
 * @author $Author: Wei Zhuo $
 * @version $Id: editor.js 26 2004-03-31 02:35:21Z Wei Zhuo $
 * @package ImageManager
 */

        var current_action = null;
        var actions = ['crop', 'scale', 'rotate', 'measure', 'save'];
        var orginal_width = null, orginal_height=null;
        function toggle(action)
        {
                if(current_action != action)
                {

                        for (var i in actions)
                        {
                                if(actions[i] != action)
                                {
                                        var tools = document.getElementById('tools_'+actions[i]);
                                        tools.style.display = 'none';
                                        var icon = document.getElementById('icon_'+actions[i]);
                                        icon.className = '';
                                }
                        }

                        current_action = action;

                        var tools = document.getElementById('tools_'+action);
                        tools.style.display = 'block';
                        var icon = document.getElementById('icon_'+action);
                        icon.className = 'iconActive';

                        var indicator = document.getElementById('indicator_image');
                        indicator.src = 'img/'+action+'.gif';

                        editor.setMode(current_action);

                        //constraints on the scale,
                        //code by Frédéric Klee <fklee@isuisse.com>
                        if(action == 'scale')
                        {
                                var theImage = editor.window.document.getElementById('theImage');
                                orginal_width = theImage.width ;
                                orginal_height = theImage.height;

                var w = document.getElementById('sw');
                                w.value = orginal_width ;
                                var h = document.getElementById('sh') ;
                                h.value = orginal_height ;
                        }

                }
        }

        function toggleMarker()
        {
                var marker = document.getElementById("markerImg");

                if(marker != null && marker.src != null) {
                        if(marker.src.indexOf("t_black.gif") >= 0)
                                marker.src = "img/t_white.gif";
                        else
                                marker.src = "img/t_black.gif";

                        editor.toggleMarker();
                }
        }

        //Togggle constraints, by Frédéric Klee <fklee@isuisse.com>
        function toggleConstraints()
        {
                var lock = document.getElementById("scaleConstImg");
                var checkbox = document.getElementById("constProp");

                if(lock != null && lock.src != null) {
                        if(lock.src.indexOf("unlocked2.gif") >= 0)
                        {
                                lock.src = "img/islocked2.gif";
                                checkbox.checked = true;
                                checkConstrains('width');

                        }
                        else
                        {
                                lock.src = "img/unlocked2.gif";
                                checkbox.checked = false;
                        }
                }
        }

        //check the constraints, by Frédéric Klee <fklee@isuisse.com>
        function checkConstrains(changed)
        {
                var constrained = document.getElementById('constProp');
                if(constrained.checked)
                {
                        var w = document.getElementById('sw') ;
                        var width = w.value ;
                        var h = document.getElementById('sh') ;
                        var height = h.value ;

                        if(orginal_width > 0 && orginal_height > 0)
                        {
                                if(changed == 'width' && width > 0)
                                        h.value = parseInt((width/orginal_width)*orginal_height);
                                else if(changed == 'height' && height > 0)
                                        w.value = parseInt((height/orginal_height)*orginal_width);
                        }
                }

                updateMarker('scale') ;
        }


        function updateMarker(mode)
        {
                if (mode == 'crop')
                {
                        var t_cx = document.getElementById('cx');
                        var t_cy = document.getElementById('cy');
                        var t_cw = document.getElementById('cw');
                        var t_ch = document.getElementById('ch');

                        editor.setMarker(parseInt(t_cx.value), parseInt(t_cy.value), parseInt(t_cw.value), parseInt(t_ch.value));
                }
                else if(mode == 'scale') {
                        var s_sw = document.getElementById('sw');
                        var s_sh = document.getElementById('sh');
                        editor.setMarker(0, 0, parseInt(s_sw.value), parseInt(s_sh.value));
                }
        }


        function rotatePreset(selection)
        {
                var value = selection.options[selection.selectedIndex].value;

                if(value.length > 0 && parseInt(value) != 0) {
                        var ra = document.getElementById('ra');
                        ra.value = parseInt(value);
                }
        }

        function updateFormat(selection)
        {
                var selected = selection.options[selection.selectedIndex].value;

                var values = selected.split(",");
                if(values.length >1) {
                        updateSlider(parseInt(values[1]));
                }

        }
        function addEvent(obj, evType, fn)
        {
                if (obj.addEventListener) { obj.addEventListener(evType, fn, true); return true; }
                else if (obj.attachEvent) {  var r = obj.attachEvent("on"+evType, fn);  return r;  }
                else {  return false; }
        }

        init = function()
        {
                var bottom = document.getElementById('bottom');
                if(window.opener)
                {
                        __dlg_init(bottom);
                        __dlg_translate(I18N);
                }
        }

        addEvent(window, 'load', init);