var supported = document.getElementById && document.createElement;
/*
var prefs = "";
var linkTarget = "";
var isHome = true;
var regex = /^(http):\/\/\S+\.(spaceshipnofuture)\.\S+$/i;
var expiry = new Date;
expiry.setMonth(expiry.getMonth() + 3);

if (document.cookie != "") {
	prefs = getCookie("linkomatic-target");
}
*/

function init()
{
    if ($('addbox')) {
        $('addbox').style.display = '';
        var addboxSlider = new Fx.Slide('addbox', {duration: 250});
        addboxSlider.hide();
        $('addboxShow').addEvent('click', function(event) {
            var clickEvent = new Event(event);
            addboxSlider.toggle();
            $('url').focus();
            clickEvent.stop();
        });
        $('addboxHide').addEvent('click', function(event) {
            var clickEvent = new Event(event);
            addboxSlider.slideOut();
            clickEvent.stop();
        });
    }
}

function initBBCode()
{
    $('bbcode-help').style.display = '';
    var bbcodeSlider = new Fx.Slide('bbcode-help', {duration: 250});
    bbcodeSlider.hide();
    $('bbcodeShow').addEvent('click', function(event) {
        var clickEvent = new Event(event);
        bbcodeSlider.toggle();
        clickEvent.stop();
    });
    $('bbcodeHide').addEvent('click', function(event) {
        var clickEvent = new Event(event);
        bbcodeSlider.slideOut();
        clickEvent.stop();
    });
}

function popupHelp(url)
{
    var props = "height=400, width=350, resizable=yes, status=yes, scrollbars=yes";
    var w = window.open(url, "wong-fei-hung", props);
    w.focus();
}

function removeAllChildNodes(node)
{
    if (node && node.hasChildNodes) {
        while (node.hasChildNodes()) {
            node.removeChild(node.firstChild);
        }
    }
}

function trim(txt)
{
    if ((txt != null) || (txt.length > 0)) {
        txt = txt.replace(/^\s+/, '');
        txt = txt.replace(/\s+$/, '');
    }
    return txt;
}

function focusField(id)
{
    document.getElementById(id).focus();
    document.getElementById(id).select();
}

function resetSearchForm(field) 
{
    if (field.value == '') {
        field.style.color = '';
        field.form.reset();
    }
}

function clearSearchForm(field) 
{
    field.value = '';
    field.style.color = "#000;";
}

/*
function showAddBoxOld() 
{
    // Scriptaculous must be loaded!!!
    if (supported && !document.getElementById('addpage')) {
        Effect.SlideDown('addbox');
        focusField("url");
        return false;
    } else {
        return true;
    }
}

function hideAddBoxOld() 
{
    if (supported) {
        Effect.SlideUp('addbox');
    }
}

function showBBCodeHelp()
{
    if (supported) {
        Effect.SlideDown('bbcode-help');
        return false;
    } else {
        return true;
    }
}

function hideBBCodeHelp()
{
    if (supported) {
        Effect.SlideUp('bbcode-help');
    }
    return false;
}
*/

/*
function fadeEverything()
{
    // Adapted from Adam Michela's code at
    // http://www.axentric.com/aside/fat/
    if (supported) {
        var elems = document.getElementsByTagName("*");
        for (var i = 0; i < elems.length; i++) {
            var elem = elems[i];
            var rx = /fade-?(\w{3,6})?/.exec(elem.className);
            if (rx) {
                if (!rx[1]) rx[1] = "";
                if (elem.id) {
                    var scolor = "#" + rx[1];
                    new Effect.Highlight(elem, {startcolor: scolor});
                }
            }
        }
    }
}
*/

function setPreviewAction()
{
    var url = document.getElementById("comments-form").action + "#preview";
    document.getElementById("comments-form").setAttribute("action", url);
}

function setMessage(msg, cls)
{
    var msgElement = document.createElement('p');
    msgElement.setAttribute('class', cls);
    var msgText = document.createTextNode(msg);
    msgElement.appendChild(msgText);
    return msgElement;
}

function showMessage(msg, msgContainerId)
{
    if (supported) {
        var msgContainer = document.getElementById(msgContainerId);
        if (msgContainer.childNodes.length > 0) {
            msgContainer.replaceChild(msg, msgContainer.firstChild);
        } else {
            msgContainer.appendChild(msg);
        }
    }
}

function showCommentsMessage(text, cls)
{
    if (supported) {
        var msg = document.createElement("p");
        msg.setAttribute("class", cls);
        var txtNode = document.createTextNode(text);
        msg.appendChild(txtNode);
        var msgContainer = document.getElementById("comments-message");
        msgContainer.style.display = "block";
        if (msgContainer.childNodes.length > 0) {
            msgContainer.replaceChild(msg, msgContainer.firstChild);
        } else {
            msgContainer.appendChild(msg);
        }
    }
}

function validateComment()
{
    var elem = document.getElementById("comment");
    if ((trim(elem.value) == '') && 
        (document.getElementById("good").checked == false) && 
        (document.getElementById("bad").checked == false) && 
        (document.getElementById("offensive").checked == false)) {
        var msg = "Hey, you didn't write a comment!";
        showCommentsMessage(msg, 'error');
        return false;
    } else {
        return true;
    }
}

function highlightField(id)
{
    if (supported) {
        document.getElementById(id).style.backgroundColor = "#FAEBE6";
    }
}

/*
function getCookie(name)
{
    thisCookie = document.cookie.split("; ");
    for (i = 0; i < thisCookie.length; i++)
    {
        if (name == thisCookie[i].split("=")[0])
        {
            return thisCookie[i].split("=")[1];
        }
    }
    return 0;
}

// All target link code based on code from 37signals.com

function setLinkCookie() 
{
	prefs = (document.frmTarget.checkTarget.checked ? true : false);
	document.cookie = "linkomatic-target=" + escape(prefs) + ";expires=" + expiry.toGMTString();
	setLinkTarget(false);
}

function setLinkTarget(isHome)
{
	if (document.cookie != "") {
		prefs = getCookie("linkomatic-target");
		if (prefs == "true") {
			linkTarget = "linky";
			if (isHome) {
				document.frmTarget.checkTarget.checked = true;
			}
		} else {
			linkTarget = "_self";
			if (isHome) {
				document.frmTarget.checkTarget.checked = false;
			}
		}

		for (var i = 0; i <= (document.links.length - 1); i++) {
			if (regex.test(document.links[i])) {
				//document.links[i].target = "_self";
			} else {
				document.links[i].target = linkTarget;
			}
		}
	}
}
*/


