//
// Common functions
//
function getElementsByNameAndClass(n,c,e)
{
    if (!document.getElementsByTagName) {
        return false;
    }
    
    var elements = new Array();
    
    if (e == undefined) {
        e = document;
    }
    
    var col = e.getElementsByTagName(n);
    if (col) {
        for (var i=0; i<col.length; i++) {
            var re = new RegExp("\\b" + c + "\\b");
            if (re.test(col[i].className)) {
                elements.push(col[i]);
            }
        }
    }
    
    return elements;
};


function checkBoxes(formid,sel)
{
    if (!document.getElementById) {
        return false;
    }
    
    var inputs = document.getElementById(formid).elements;
    
    
    for (var i=0; i<inputs.length; i++) {
        if (inputs[i].type == 'checkbox' && !inputs[i].disabled) {
            if (sel == 'invert') {
                inputs[i].checked = !inputs[i].checked;
            } else if (sel == 'none') {
                inputs[i].checked = false;
            } else {
                inputs[i].checked = true;
            }
        }
    }
    
    return false;
}

function getRadioValue(a)
{
    if (a == undefined) { return null; }
    
    for (var i=0; i<a.length; i++) {
        if (a[i].checked) {
            return a[i].value;
        }
    }
    return null;
}

function unDisable(form)
{
   var inputs = document.getElementsByName(form)[0];
   for (var i=0; i<inputs.length; i++)
   {
      inputs[i].disabled = false;
   }
}

//
// Lock lockable input field, hide info and display unlock icon
function hideLockable()
{
    var loc = getElementsByNameAndClass('label','lockable');
    for (var i=0; i<loc.length; i++)
    {
        var inputs = loc[i].getElementsByTagName('input');
        inputs[0].disabled = true;
        inputs[0].style.width = (inputs[0].clientWidth-14)+'px';
        
        var imgE = document.createElement('img');
        imgE.src = '../_js/img/locker.png';
        imgE.style.position = 'absolute';
        imgE.style.top = '22px';
        imgE.style.left = (inputs[0].clientWidth+7)+'px';
        
        inputs[0].parentNode.style.position = 'relative';
        inputs[0].parentNode.insertBefore(imgE,inputs[0].nextSibling);
        
        imgE.onclick = function()
        {
            // inputs[0] n'est pas le bon input lorsque l'on définit plusieurs champ lockable dans la page
            var label = this.parentNode;
            var input = label.childNodes[1];
            input.disabled = false;
            this.style.display = 'none';
            input.style.width = (inputs[0].clientWidth+14)+'px';
        }
    }
}

function helpWindow(url)
{
    window.open(url,'dchelp',
    'alwaysRaised=yes,dependent=yes,toolbar=no,height=420,width=380,'+
    'menubar=no,resizable=yes,scrollbars=yes,status=no');
    
    return false;
}

// function pour l'affichage dhtml
function poplink(msg)
{

var content ="<TABLE border=\"1\" cellpadding=\"0\" cellspacing=\"0\" bgcolor=\"#FFFFFF\"><TR><TD><TABLE width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\"><TR><TD><img src=\"../_userFiles/Logo/"+msg+"\" alt=\"\" /></TD></TR></TABLE></TD></TR></TABLE>";

  if (domok)
    {
      document.getElementById("topdecklink").innerHTML = content;
      skn.visibility = "visible";
      }
}

function get_mouse(e)
  {
  var x = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x+document.body.scrollLeft;
  var y = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y+document.body.scrollTop;
  skn.left = x - 60;
  skn.top = y+20;
  }

function killlink()
  {
  if (domok)
      skn.visibility = "hidden";
  }

//
// ChainHandler, py Peter van der Beken
//
function chainHandler(obj, handlerName, handler) {
    obj[handlerName] = (function(existingFunction) {
        return function() {
            handler.apply(this, arguments);
            if (existingFunction)
                existingFunction.apply(this, arguments); 
        };
    })(handlerName in obj ? obj[handlerName] : null);
};

//
// On load
//
chainHandler(window,'onload',function() {
    
});