/* Add or remove extra input fields as needed */
function addInput() {
    // create elements
    var paragraph = document.createElement("span");
    inputElement = document.createElement("input");
    anchor = document.createElement("a");

    // set attributes
    inputElement.setAttribute("type", "file");
    inputElement.setAttribute("name", "image[]");
    inputElement.setAttribute("size", 20);
    anchor.setAttribute("href", "#");
    anchor.setAttribute("onclick","removeInput(this.parentNode);");
    anchor.appendChild(document.createTextNode("remove"));

    // append to shit
    paragraph.appendChild(inputElement);
    paragraph.appendChild(document.createTextNode(" "));
    paragraph.appendChild(anchor);
    document.getElementById('files').appendChild(paragraph);
}
function removeInput(el) {
    var parent = document.getElementById('files');
    parent.removeChild(el);
}

/* delete confirmation */
function delConf() {
    return confirm('Are you sure you want to do that?');
}

/* show / hide content */
function toggle_visibility(id) {
    var e = document.getElementById(id);
    if(e.style.display == 'block') {
        e.style.display = 'none';
    } else {
        e.style.display = 'block';
    }
}

/* sort data */
function compare(x, y) {
    if(x === y) { // compared by reference
        return true;
    }
    if(x.length != y.length) {
        return false;
    }
    for(key in x) {
        if(x[key] !== y[key]) { // retain original values
            return false;
        }
    }
    return true;
}

function sortBy(sortData, sortBlock, colName, colType) {
    var cont = document.getElementById(sortData);
    var dataList = cont.getElementsByTagName(sortBlock);
    var dataSort = [];

    for(var i = 0; i < dataList.length; i++) {
        var sdata = dataList[i];
        sdata.sortval = 0;
        var colData = sdata.getElementsByTagName('span');

        for(var j = 0; j < colData.length; j++) {
            if(colData[j].getAttribute('name') == colName) {
                sdata.sortval = colData[j].firstChild.data;
                break;
            }
        }
        dataSort.push(sdata);
    }

    var beforeSort = dataSort.slice();
    switch(colType) {
        case 'int':
            dataSort.sort(function(a,b) { return a.sortval - b.sortval; });
        break;

        case 'alpha':
            dataSort.sort();
        break;

        case 'date':
            function callback(a,b) {
                var d1 = new Date(a.sortval);
                var d2 = new Date(b.sortval);
                return d1.getTime() > d2.getTime() ? 1 : -1;
            }
            dataSort.sort(callback);
        break;
    }

    // toggle ascending and descending
    if(compare(beforeSort, dataSort)) {
        dataSort.reverse();
    }

    for(var i = 0; i < dataSort.length; i++) {
        cont.appendChild(dataSort[i]);
    }
}

