var portalURL = 'http://www.gref-bretagne.com';

function nextPage(){
    return displayPage(currentPageId+1);
}

function previousPage(){
    return displayPage(currentPageId-1);
}

function displayPage(i){
    var currentPage = document.getElementById('page_'+currentPageId);
    var nextPage = document.getElementById('page_'+i);
    currentPage.style.display='none';
    nextPage.style.display='block';
    currentPageId=i;
    return false;
}


function delElement(id){
    var targetElement = document.getElementById(id);
    targetElement.parentNode.removeChild(targetElement);
}

function upElement(id){
    var targetElement = document.getElementById(id);
    if (targetElement.parentNode.firstChild == targetElement){
        return false;
    }
    var position = targetElement.previousSibling;
    var tmp = targetElement.parentNode.removeChild(targetElement);
    var insertedElement = position.parentNode.insertBefore(tmp, position);
    updateElementOrder(insertedElement.parentNode);
}

function downElement(id){
    var targetElement = document.getElementById(id);
    if (targetElement.parentNode.lastChild == targetElement){
        return false;
    }
    var position = targetElement.nextSibling;
    if (position == null || position.nextSibling == null){
        return false;
    }
    var tmp = targetElement.parentNode.removeChild(targetElement);
    var insertedElement = position.parentNode.insertBefore(tmp, position.nextSibling);
    updateElementOrder(insertedElement.parentNode);
}


function updateElementOrder(container){
    nb = 0;
    for (var i=0; i<container.childNodes.length; i++){
        if (container.childNodes[i].tagName == 'LI'){
            container.childNodes[i].childNodes[0].value = nb;
            nb ++;
        }
    }
}


function getNBLocalities(){
    var container = document.getElementById('localities');
    nb = 0;
    for (var i=0; i<container.childNodes.length; i++){
        if (container.childNodes[i].tagName == 'LI'){
                nb ++;
        }
    }
    return nb;
}


function addLink(container, label, icon, callback){
    // create <a>
    var _a = document.createElement('a');
    _a.href="#";
    _a.onclick = callback;
    _a.title=label;
    container.appendChild(_a);
    // add <a><img>
    var _img = document.createElement('img');
    _img.src = portalURL+'/' + icon;
    _img.alt = label;
    _a.appendChild(_img);
}


function addLocality(){
    if (document.getElementById('newLocality').value == ''){
        return false;
    }
    // generate input id
    var d = new Date();
    var id = 'loc_'+d.getTime();
    // add <li>
    var _li = document.createElement('li');
    _li.id = id;
    var _localities = document.getElementById('localities');
    _localities.appendChild(_li);
    // add <li><input>
    var _input = document.createElement('input');
    _input.type='hidden';
    _input.name=id+'.order:int:record';
    _input.value=getNBLocalities();
    _li.appendChild(_input)
    // add <li><input>
    var _input = document.createElement('input');
    _input.type='text';
    _input.name=id+'.label:record';
    _input.value=document.getElementById('newLocality').value;
    _li.appendChild(_input)
    // add <li><a>
    cb = function(){
        if (confirm('Etes-vous certain ?')){
            delLocality(id);
        }
        return false;
    };
    addLink(_li, 'Supprimer', 'icon_del.gif', cb)
    // add <li><a>
    cb = function(){upElement(id); return false;};
    addLink(_li, 'Monter', 'icon_up.gif', cb)
    cb = function(){downElement(id); return false;};
    addLink(_li, 'Descendre', 'icon_down.gif', cb)
    // clean newlocality
    document.getElementById('newLocality').value = '';
}
