var dragapproved = false;
var minrestore = 0;
var initialwidth,initialheight;
var ie5 = document.all && document.getElementById;
var ns6 = document.getElementById && !document.all;

if (typeof Tapestry != "undefined" && typeof Tapestry.Validator != "undefined") {
    Tapestry.Validator.email = function(field, message, max)
    {

        Tapestry.addValidator(field, true, function(value, event) {
            if (!value) {
                return;
            }
            var addresses = value.split(/\s*,\s*/);
            if (addresses.length > max) {
                if (max == 1) {
                    event.recordError("Please only specify one email address");
                } else {
                    event.recordError("Please only specify " + max + " email address(es)");
                }
                return;
            }
            addresses.each(
                    function(address) {
                        emailValidator(address, event, message);
                    }
                    );
        });

    }

}
TheDailyTube = {
    VideoProblem : {
        showForm : function() {
            var problemForm = $('video-problem-container');
            var timeField = $('time');
            if (!problemForm.visible()) {
                timeField.value = new Date().toJSON();
                new Effect.BlindDown(problemForm);
            }
        },
        hideForm : function() {
            var problemForm = $('video-problem-container');
            if (problemForm.visible()) {
                new Effect.BlindUp(problemForm);
            }
        }
    }
}

function emailValidator(value, event, message) {
    if (value == null || value == "") {
        event.recordError(message);
        return false;
    }
    var checkTLD = false;
    var knownDomsPat = /^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
    var emailPat = /^(.+)@(.+)$/;
    var specialChars = "\\(\\)><@,;\\'+:\\\\\\\"\\.\\[\\]";
    var validChars = "\[^\\s" + specialChars + "\]";
    var quotedUser = "(\"[^\"]*\")";
    var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
    var atom = validChars + '+';
    var word = "(" + atom + "|" + quotedUser + ")";
    var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
    var domainPat = new RegExp("^" + atom + "(\\." + atom + ")*$");
    var matchArray = value.match(emailPat);

    if (matchArray == null) {
        event.recordError("'" + value + "' is not recognized (check @ and .'s)");
        return false;
    }
    var user = matchArray[1];
    var domain = matchArray[2];
    for (i = 0; i < user.length; i++) {
        if (user.charCodeAt(i) > 127) {
            event.recordError("'" + value + "' contains invalid characters.");
            return false;
        }
    }
    for (i = 0; i < domain.length; i++) {
        if (domain.charCodeAt(i) > 127) {
            event.recordError("'" + value + "' contains invalid characters.");
            return false;
        }
    }
    if (user.match(userPat) == null) {
        event.recordError("'" + value + "' appears to be formatted incorrectly.");
        return false;
    }
    var IPArray = domain.match(ipDomainPat);
    if (IPArray != null) {
        for (var i = 1; i <= 4; i++) {
            if (IPArray[i] > 255) {
                event.recordError("'" + value + "' contains an invalid ip address.");
                return false;
            }
        }
        return true;
    }
    var atomPat = new RegExp("^" + atom + "$");
    var domArr = domain.split(".");
    var len = domArr.length;
    for (i = 0; i < len; i++) {
        if (domArr[i].search(atomPat) == -1) {
            event.recordError("Your '" + value + "' e-mail domain name does not seem to be valid.");
            return false;
        }
    }
    if (checkTLD && domArr[domArr.length - 1].length != 2 && domArr[domArr.length - 1].search(knownDomsPat) == -1) {
        event.recordError("'" + value + "' ");
        return false;
    }
    if (len < 2) {
        event.recordError("Your '" + value + "' e-mail address is missing a hostname!");
        return false;
    }
    return true;
}

function setHome() {
    if (document.all) {
        this.style.behavior = 'url(#default#homepage)';
        this.setHomePage('http://www.thedailytube.com');
    }
    else if (document.getElementById) {
        alert('Drag this link onto your Home button to make this your Home Page.');
    }
    else {
        alert('<b>Make this site your home page:<\/b>\r\t- Go to <b>Preferences<\/b> in the <b>Edit<\/b> Menu.\r\t- Choose <b>Navigator<\/b> from the list on the left.\r\t- Click on the <b>"Use Current Page"<\/b> button.');
    }
}

var wkey = "CTRL";
if (navigator.appVersion.indexOf("Mac") != -1) wkey = "Command/Apple";
function addBookmark(dtitle, durl) {
    if (window.sidebar) {
        window.sidebar.addPanel(dtitle, durl, "");
    } else if (document.all) {
        window.external.AddFavorite(durl, dtitle);
    } else if (window.opera && window.print) {
        return true;
    } else {
        alert("Press " + wkey + "-D (Mozilla) or " + wkey + "-T (Opera) to bookmark");
    }
}


