﻿function resize(target,direction,sizetype,smallsize,bigsize,frames,milliseconds,displaytarget,statefield,openinglockfield)
{   
    var element_openinglockfield = document.getElementById(openinglockfield);
    var element_target = document.getElementById(target);
    var element_displaytarget = document.getElementById(displaytarget);
    var element_statefield = document.getElementById(statefield);
    
    var resizeallowed = 'false';
    var lockset = 'false';
    
    if (direction != '')
    {
        resizeallowed = 'true';
    }
    else
    {
        if (element_openinglockfield != null)
        {
            if (element_openinglockfield.value == 'locked')
            {   
                resizeallowed = 'false';
            }
            else
            {
                resizeallowed = 'true';
                lockset = 'true';
                element_openinglockfield.value = 'locked';
            }
        }
        else
        {
            resizeallowed = 'false';
        }
    }    

    if (element_target != null && resizeallowed == 'true')
    {
        if (bigsize > smallsize)
        { 
            var unittype = '';
            switch(sizetype)
            {            
                case 'percentage':
                {
                    unittype = '%';
                    break
                }
                case 'elements':
                {       
                    unittype = 'em';
                    break              
                }
                case 'pixel':
                {       
                    unittype = 'px';
                    break              
                }
            }
            if (direction == '')
            {                   
                if (element_target.style.width  == smallsize + unittype)
                {   
                    element_target.style.display = 'block'
                    if (element_displaytarget != null)
                    {
                        element_displaytarget.style.display = 'none'; 
                    } 
                    if (element_statefield != null)
                    {
                        element_statefield.value = target;
                    }                 
                    resizeloop(target,unittype,smallsize,bigsize,smallsize,'bigsize',frames,milliseconds,displaytarget,openinglockfield,lockset)
                }
                else if (element_target.style.width  == bigsize + unittype)
                {
                    if (element_displaytarget != null)
                    {
                        element_displaytarget.style.display = 'none'; 
                    }
                    if (element_statefield != null)
                    {
                        element_statefield.value = '';
                    }    
                    resizeloop(target,unittype,smallsize,bigsize,bigsize,'smallsize',frames,milliseconds,displaytarget,openinglockfield,lockset)
                }
                else if (element_target.style.width  == '')
                {
                    element_target.style.display = 'block'
                    if (element_displaytarget != null)
                    {
                        element_displaytarget.style.display = 'none';
                    }
                    if (element_statefield != null)
                    {
                        element_statefield.value = target;
                    }                           
                    resizeloop(target,unittype,smallsize,bigsize,smallsize,'bigsize',frames,milliseconds,displaytarget,openinglockfield,lockset)        
                }
                else
                {
                }     
            }
            else
            {
                if ((direction == 'bigsize') && ((element_target.style.width  == smallsize + unittype) || (element_target.style.width  == '')))
                {
                    element_target.style.display = 'block'
                    if (element_displaytarget != null)
                    {
                        element_displaytarget.style.display = 'none'; 
                    }
                    if (element_statefield != null)
                    {
                        element_statefield.value = target;
                    }  
                    resizeloop(target,unittype,smallsize,bigsize,smallsize,direction,frames,milliseconds,displaytarget,openinglockfield,lockset)
                }
                else if ((direction == 'smallsize') && (element_target.style.width  == bigsize + unittype))
                {
                    if (element_displaytarget != null)
                    {
                        element_displaytarget.style.display = 'none'; 
                    }   
                    resizeloop(target,unittype,smallsize,bigsize,bigsize,direction,frames,milliseconds,displaytarget,openinglockfield,lockset)
                }                
            }
        }
    }
}

function resizeloop(target,unittype,smallsize,bigsize,currentsize,direction,frames,milliseconds,displaytarget,openinglockfield,lockset)
{
    if (direction == 'bigsize')
    {
        var newcurrentsize = parseFloat(currentsize) + parseFloat([[bigsize-smallsize]/frames]);
        if (parseFloat(newcurrentsize) >= parseFloat(bigsize))
        {
            var t1 = setTimeout("document.getElementById('" + target + "').style.width = '" + bigsize + unittype + "'",milliseconds);
            var t2 = setTimeout("showdisplaytarget('"+displaytarget+"','"+bigsize+"','"+unittype+"')",milliseconds);
            if (lockset == 'true')
            {
               document.getElementById(openinglockfield).value = '';
            }
        }
        else
        {
            var t1 = setTimeout("document.getElementById('" + target + "').style.width = '" + newcurrentsize + unittype + "'",milliseconds);
            var t2 = setTimeout("resizeloop('"+target+"','"+unittype+"',"+smallsize+","+bigsize+","+newcurrentsize+",'"+direction+"',"+frames+","+milliseconds+",'"+displaytarget+"','"+openinglockfield+"','"+lockset+"')",milliseconds);
        }
    }
    else if (direction == 'smallsize')
    {
        var newcurrentsize = parseFloat(currentsize) - parseFloat([[bigsize-smallsize]/frames]);
        if (parseFloat(newcurrentsize) <= parseFloat(smallsize))
        {
            var t1 =setTimeout("document.getElementById('" + target + "').style.width = '" + smallsize + unittype + "'",milliseconds);
            document.getElementById(target).style.display = 'none';
            if (lockset == 'true')
            {
               document.getElementById(openinglockfield).value = '';
            }
        }
        else
        {
            var t1 =setTimeout("document.getElementById('" + target + "').style.width = '" + newcurrentsize + unittype + "'",milliseconds);
            var t2 =setTimeout("resizeloop('"+target+"','"+unittype+"',"+smallsize+","+bigsize+","+newcurrentsize+",'"+direction+"',"+frames+","+milliseconds+",'"+displaytarget+"','"+openinglockfield+"','"+lockset+"')",milliseconds);
        } 
    }
}

function showdisplaytarget(displaytarget,bigsize,unittype)
{
    if (document.getElementById(displaytarget) != null)
    {
        document.getElementById(displaytarget).style.display = 'block';
        var displaytargetsize = bigsize + unittype;
        document.getElementById(displaytarget).style.width = displaytargetsize;
    } 
}
