
// prepare the stylesheet namespace
var com;
if (!com) {
    com = {};
} else if (typeof com != "object") {
    throw new Error("Non-object \"com\" is already defined.");
}
if (!com.civicscience) {
    com.civicscience = {};
} else if (typeof com.civicscience != "object") {
    throw new Error("Non-object \"com.civicscience\" is already defined.");
}

// common dynamic stylesheet utilities
com.civicscience.Stylesheet = {

    // insert a link element child into the document head
    insertCSSLink: function(url) {
        var link = document.createElement("LINK");
        link.rel = "stylesheet";
        link.type = "text/css";
        link.media = "screen";
        link.href = url;
        var heads = document.getElementsByTagName("HEAD");
        if (heads.length != 0) {
            heads[0].appendChild(link);
        }
    }, // insertCSSLink

    // write CSS link HTML to an open document
    writeCSSLink: function(url) {
        document.write("<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"");
        document.write(url);
        document.writeln("\" />");
    }, // writeCSSLink
    
    // produce browser-specific stylesheet url
    getBrowserSpecificURL: function(url) {
        var ua = "";
        switch (navigator.appName.toLowerCase()) {
        case "microsoft internet explorer":
            var match = navigator.userAgent.match(/\bMSIE\s+(\d+(\.\d+)?)\b/);//(\d+(\.\d+)?)\b/);
            if (match != null) {
                switch (parseFloat(match[1])) {
                case 6:
                    ua = "ie6";
                    break;
                case 7:
                    ua = "ie7";
                    break;
                case 8:
                    ua = "ie8";
                    break;
                }
            }
            break;
        case "netscape":
            if (navigator.userAgent.search(/\bFirefox\b/) != -1) {
                ua = "ff";
            } else if (navigator.userAgent.search(/\bChrome\b/) != -1) {
                ua = "chrome";
            }
            break;
        case "opera":
            ua = "opera";
            break;
        }
        return url + "?ua=" + encodeURIComponent(ua);
    } // getBrowserSpecificURL
    
}; // com.civicscience.Stylesheet
