function _playerAdd(anchor) {
    var url = anchor.href;
    var code = '';
    anchor.parentNode.innerHTML = code +' '+ anchor.parentNode.innerHTML;
}
String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, '');
};
var deleted = false;
function deleteBookmark(ele, input){
    var confirmDelete = "  - ";
    ele.style.display = 'none';    
    ele.parentNode.innerHTML = ele.parentNode.innerHTML + confirmDelete;
}
function deleteCancelled(ele) {
    var del = previousElement(ele.parentNode);
    del.style.display = 'inline';
    ele.parentNode.parentNode.removeChild(ele.parentNode);
    return false;
}
function deleteConfirmed(ele, input, response) {
    //if (deleted == false) {
        deleted = ele.parentNode.parentNode.parentNode.parentNode;
    //}    
    var post = deleted;
    post.className = 'xfolkentry deleted';    
    if (response != '') {
        post.style.display = 'none';
        deleted = false;
    } else {
        loadXMLDocProc('ajaxDelete.php?id=' + input);        
        post.style.display = 'none';        
    }
}
function previousElement(ele) {
    ele = ele.previousSibling;
    while (ele.nodeType != 1) {
        ele = ele.previousSibling;
    }
    return ele;
}
function isAvailable(input, response){
    var usernameField = document.getElementById("username");
    var username = usernameField.value;
    username = username.toLowerCase();
    username = username.trim();
    var availability = document.getElementById("availability");
    if (username != '') {
        usernameField.style.backgroundImage = 'url(images/loading.gif)';
        if (response != '') {
            usernameField.style.backgroundImage = 'none';
            if (response == 'true') {
                availability.className = 'available';
                availability.innerHTML = '';
            } else {
                availability.className = 'not-available';
                availability.innerHTML = '';
            }
        } else {
            loadXMLDoc('ajaxIsAvailable.php?username=' + username);
        }
    }
}
function useAddress(ele) {
    var address = ele.value;
    if (address != '') {
        if (address.indexOf(':') < 0) {
            address = 'http:\/\/' + address;
        }
        getTitle(address, null);
        ele.value = address;
    }
}
function getTitle(input, response){
    var title = document.getElementById('titleField');
    if (title.value == '') {
        title.style.backgroundImage = 'url(images/loading.gif)';
        if (response != null) {
            title.style.backgroundImage = 'none';
            title.value = response;
        } else if (input.indexOf('http') > -1) {
            loadXMLDocProc('ajaxGetTitle.php?url=' + input);
        } else {
            return false;
        }
    }
}
var xmlhttp;
function loadXMLDocProc(url) {
    loadXMLDoc(url, processStateChange);
}
function vote(bookmark, vote) {
    if (vote == 1) {
        vote = 'for';
    } else {
        vote = 'against';
    }
    loadXMLDoc(
        'ajaxVote.php/' + vote + '/' + bookmark,
        processVotingResult
    );
}
function loadXMLDoc(url, callback) {
    // Native
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = callback;
        xmlhttp.open("GET", url, true);
        xmlhttp.send(null);
    // ActiveX
    } else if (window.ActiveXObject) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        if (xmlhttp) {
            xmlhttp.onreadystatechange = processStateChange;
            xmlhttp.open("GET", url, true);
            xmlhttp.send();
        }
    }
}
function processStateChange() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
    	response = xmlhttp.responseXML.documentElement;
        method = response.getElementsByTagName('method')[0].firstChild.data;
        result = response.getElementsByTagName('result')[0].firstChild.data;
        eval(method + '(\'\', result)');
    }
}
function processVotingResult() {
    if (xmlhttp.readyState != 4 || xmlhttp.status != 200) {
        return;
    }
    var response = xmlhttp.responseXML.documentElement;
    var bookmark = response.getElementsByTagName('bookmark')[0]
        .firstChild.nodeValue;
    var bmnode = document.getElementById('bmv-'+bookmark);
    bmnode.parentNode.replaceChild(
        response.getElementsByTagName('html')[0].firstChild,
        bmnode
    );
}
function playerLoad() {
    var anchors = document.getElementsByTagName('a');
    var anchors_length = anchors.length;
    for (var i = 0; i < anchors_length; i++) {
        if (anchors[i].className == 'taggedlink' && anchors[i].href.match(/\.mp3$/i)) {
            _playerAdd(anchors[i]);
        }
    }
}
function addAnchor(anchorForm, where) {
    var whereZone = document.getElementById(where);    
    whereZone.value = whereZone.value + anchorForm;    
    document.getElementById(where).focus();
}