/*

    FDE Grabber 4
    File: ROOT/tpl/js/fde_resizer.js;
    Copyright: FDSTAR Company
    Release date: Thu, 16 Feb 2012 20:49:55 +0200;
    More info: http://fdstar.net/
    
    Licensed to: Vladimir_Fleks
    Licensed domain: test_com
    License key: 1_a854c96746a7f29a035f8644682ade3df3e8ebda

*/
   var fde_text_resizer = new Array(), fde_current_resizer;

function fde_textarea_resizer(e, current_resizer_id, cookie_name, min_width, min_height)
{
    if(e==null)
    { 
        e = window.event;
    }
    if(e.preventDefault)
    {
        e.preventDefault();
    }
    fde_current_resizer = current_resizer_id;

    fde_text_resizer[fde_current_resizer] = new Array();
    
    fde_text_resizer[fde_current_resizer]['link'] = document.getElementById(fde_current_resizer);
    
    fde_text_resizer[fde_current_resizer]['min_width'] = min_width;
    fde_text_resizer[fde_current_resizer]['min_height'] = min_height;
    
    fde_text_resizer[fde_current_resizer]['start_y'] = e.clientY;
    fde_text_resizer[fde_current_resizer]['start_height'] = fde_text_resizer[fde_current_resizer]['link'].offsetHeight;

    fde_text_resizer[fde_current_resizer]['start_x'] = e.clientX;
    fde_text_resizer[fde_current_resizer]['start_width'] = fde_text_resizer[fde_current_resizer]['link'].offsetWidth;
    
    fde_text_resizer[fde_current_resizer]['cookie_name'] = cookie_name;
    
    fde_text_resizer[fde_current_resizer]['old_mouse_move'] = document.onmousemove;
    fde_text_resizer[fde_current_resizer]['old_mouse_up'] = document.onmouseup;
    
    
    document.onmousemove = fde_resizer_handler;
    document.onmouseup = fde_resizer_cleanup;
    
    return false;
}

function fde_resizer_handler(e)
{
    if(e == null)
    { 
        e = window.event;
    } 
    if(e.button<=1)
    {
       current_width = (fde_text_resizer[fde_current_resizer]['start_width']+(e.clientX-fde_text_resizer[fde_current_resizer]['start_x']));
       if(current_width<fde_text_resizer[fde_current_resizer]['min_width'])
       {
           current_width = fde_text_resizer[fde_current_resizer]['min_width'];
       }
       
       current_height = (fde_text_resizer[fde_current_resizer]['start_height']+(e.clientY-fde_text_resizer[fde_current_resizer]['start_y']));
       if(current_height<fde_text_resizer[fde_current_resizer]['min_height'])
       {
           current_height = fde_text_resizer[fde_current_resizer]['min_height'];
       }
       
       fde_text_resizer[fde_current_resizer]['current_width'] = current_width;
       fde_text_resizer[fde_current_resizer]['current_height'] = current_height;
       
       fde_text_resizer[fde_current_resizer]['link'].style.width = current_width + 'px';
       fde_text_resizer[fde_current_resizer]['link'].style.height = current_height + 'px';
       
       

       return false;
    }
}

function fde_resizer_cleanup(e)
{
    
    var fde_date = new Date(), fde_resizer_cookies, cookie_values = new Array(), name, value, n, i, m;
    fde_date.setTime(fde_date.getTime()+ 3600* 1000* 24* 30);
    
    fde_resizer_cookies = document.cookie.split(';');
    for(i=0;i<fde_resizer_cookies.length;i++)
    {
        fde_resizer_cookies[i] = fde_resizer_cookies[i].replace(new RegExp('^\\s+', 'gm'), '');
        fde_resizer_cookies[i] = fde_resizer_cookies[i].replace(new RegExp('\\s+$', 'gm'), '');
        params = fde_resizer_cookies[i].split('=');
        
        if(params.length==2)
        {
            name = params[0];
            value= unescape(params[1]);
            
            //alert('|'+ name+ '|'+ fde_text_resizer[fde_current_resizer]['cookie_name']+ '|');
            //alert(value);

            if(name==fde_text_resizer[fde_current_resizer]['cookie_name'])
            {
                value = value.split('|');
                
                for(n in value)
                {
                     value[n] = value[n].split(',');
                     if(value[n][0].length>0 && value[n][1].length>0 && value[n][2].length>0)
                     {
                         if(fde_current_resizer!=value[n][0])
                         {
                             m = cookie_values.length;
                             cookie_values[m] = [value[n][0], value[n][1], value[n][2]];
                             cookie_values[m] = cookie_values[m].join(','); 
                         }
                     }
                }    
            }
       
        }
    }
    
    m = cookie_values.length;
    cookie_values[m] = [fde_current_resizer, fde_text_resizer[fde_current_resizer]['current_width'], fde_text_resizer[fde_current_resizer]['current_height']];
    cookie_values[m] = cookie_values[m].join(',');

    cookie_values = cookie_values.join('|');
    
    document.cookie = fde_text_resizer[fde_current_resizer]['cookie_name']+ '='+ 
    escape(cookie_values) + ';'+ 
    'expires='+ fde_date.toGMTString();
    
    document.onmousemove = fde_text_resizer[fde_current_resizer]['old_mouse_move'];
    document.onmouseup = fde_text_resizer[fde_current_resizer]['old_mouse_up']
}
function fde_add_js_handler(element, event, handler)
{
    if(element.attachEvent)
    {
         element.attachEvent('on' + event, handler);
    }
    else
    {
         if(element.addEventListener)
         {
             element.addEventListener(event, handler, false);
         }
    }
}
function fde_resizer_init(arrow_id, current_resizer_id, cookie_name, min_width, min_height)
{
   var arrow, fde_resizer_cookies, i, n;

   arrow = document.getElementById(arrow_id);
   
   fde_resizer_cookies = document.cookie.split(';');
   for(i=0;i<fde_resizer_cookies.length;i++)
   {
       fde_resizer_cookies[i] = fde_resizer_cookies[i].replace(new RegExp('^\\s*'), '');
       fde_resizer_cookies[i] = fde_resizer_cookies[i].replace(new RegExp('\\s*$'), '');
       params = fde_resizer_cookies[i].split('=');
       
       if(params.length==2)
       {
           name = params[0];
           value= unescape(params[1]);
           
           
           if(name==cookie_name)
           {
               value = value.split('|');
               for(n in value)
               {
                    value[n] = value[n].split(',');
                    if(value[n][0]==current_resizer_id)
                    {
                        document.getElementById(current_resizer_id).style.width = value[n][1];
                        document.getElementById(current_resizer_id).style.height = value[n][2];
                    }
               }
           }
   
       }
   }

   fde_add_js_handler(arrow, 'mousedown', function(event){
       var event = event || window.event;
       fde_textarea_resizer(event, current_resizer_id, cookie_name, min_width, min_height);
   })
   
}
