/* addDataItem (isKey: 1 if keyboard initiated event)
   Called when user adds an entry to the location page */

var orgCategories = {};
var dataCount = {};
var dataChoosenArray = [];
var idSeparator = "@@@";

function extractOrgDataId(id){
    var separatorLocation = id.indexOf(idSeparator);
    return id.substring(0,separatorLocation);
}

function extractOrgItemId(id){
    var separatorLocation = id.indexOf(idSeparator);
    return id.substring(separatorLocation+idSeparator.length);
}

function addDataItem(isKey,number,id,customNickname){
        /* create the table item */


    /* reject keys that aren't enter */
    if(isKey == 1 && !bEnter())
        return true;

var dataId = extractOrgDataId(id);
var itemId = extractOrgItemId(id);

if(typeof dataCount[dataId] == 'undefined'){
    dataCount[dataId] = 1;
}else{
    dataCount[dataId] = dataCount[dataId] + 1;
}

var count = dataCount[dataId];
var itemSaveId = dataId + "_" + count;


    /* hide element from original table */
    toggleElemByID("ITEM"+id);
    var tableId = "table"+dataId;
    var tbody = getObj(tableId).getElementsByTagName("TBODY")[0];

    /* clear previously highlighted rows */
    for(var i=0;i<tbody.childNodes.length;i++)
        if(tbody.childNodes[i].className == "highlightRow")
            tbody.childNodes[i].className = "";

    var row = document.createElement("TR");
    row.id = 'ITEM_CHOOSEN' + id;
    
    if(getObj("ITEM"+id) == null){
    	return false;
    }
    row.title = getObj("ITEM"+id).title;

    var td = document.createElement("TD");
    var nickname = document.createElement('input');
    nickname.type = 'text';
    nickname.name = "nickname" + itemSaveId
    if(typeof customNickname != 'undefined'){
        nickname.value = customNickname;
    }
    else{
        nickname.value = getObj("ITEM"+id).firstChild.innerHTML;
    }
    var idstore = document.createElement('input');
    idstore.type = 'hidden';
    idstore.name = "id" + itemSaveId;
    idstore.value = itemId;

    td.appendChild(nickname);
    td.appendChild(idstore);
    row.appendChild(td);

    td = document.createElement("TD");
    td.innerHTML = getObj("ITEM"+id).title;
    row.appendChild(td);


    var deletebutton = document.createElement("TD");
    var attr = document.createAttribute("onclick");
    deletebutton.setAttributeNode(attr);
    var onChangeHandler = new Function(deletebutton.onclick);

    if (deletebutton.addEventListener) {
        deletebutton.addEventListener('click', onChangeHandler, false );
    }
    else if (deletebutton.attachEvent) {
        deletebutton.attachEvent('onclick', onChangeHandler);
    }

    deletebutton.onclick = function(){removeDataItem(0, id, number, itemSaveId);}
    attr = document.createAttribute("onkeypress");
    deletebutton.setAttributeNode(attr);
    onChangeHandler = new Function(deletebutton.onkeypress);

    if (deletebutton.addEventListener) {
        deletebutton.addEventListener('keypress', onChangeHandler, false );
    }
    else if (deletebutton.attachEvent) {
        deletebutton.attachEvent('onkeypress', onChangeHandler);
    }

    deletebutton.onkeypress = function(){removeDataItem(0, id, number, itemSaveId);}
    var deleteImage = document.createElement('img');
    deleteImage.height=16;
    deleteImage.width=16;
    deleteImage.src="../common/icons/cross.png";

    deletebutton.appendChild(deleteImage);

    row.appendChild(deletebutton);
    tbody.appendChild(row);
    
    /* save it in the list that will be saved */
    addToDataItemList(itemSaveId,number);

    return false;
}


/* removeDataItem (isKey: 1 if keyboard initiated event, locationID: item id)
   Hides the address specified and removes it from locations array */
function removeDataItem(isKey,id,number,itemSaveId){
        /* hide element from original table */

    /* reject keys that aren't enter */
    if(isKey == 1 && !bEnter())
        return true;


        document.getElementById("ITEM"+id).style.display = '';
        var choosen = document.getElementById("ITEM_CHOOSEN"+id);
        choosen.parentNode.removeChild(choosen);
        
        /* Remove it from the list that will be saved*/
        removeFromDataItemList(itemSaveId,number);

    return false;
}

function toggleByCategory(dataId,id){
    for(var i=0; i < orgCategories['d'+dataId].length; i++) {

        if(id == orgCategories['d'+dataId][i]){
            showDiv(orgCategories['d'+dataId][i]);
        }
        else{
            hideDiv(orgCategories['d'+dataId][i]);

        }       
    }
}

function addToDataItemList(itemSaveId,number){
    var list = document.mainform['orgData'+number];
    var itemArray = list.value.split(',');
    itemArray.push(itemSaveId);
    list.value = itemArray.toString();
}

function removeFromDataItemList(itemSaveId,number){
        var list = document.mainform['orgData'+number];
        var itemArray = list.value.split(',');
        
        for(var i = 0; i < itemArray.length; i++){
            if(itemArray[i] == itemSaveId){
                 itemArray[i] = "";
            } 
        }
        //convert array back to a string
        list.value = itemArray.toString();
}