if (!window.MetaCarta) { MetaCarta = {}; };
if (!MetaCarta.Labs) { MetaCarta.Labs = {}; };
MetaCarta.Labs.Mistags = {
    baseUrl: 'http://labs.metacarta.com/mistags/form/',
    
    buildQuery: function(url, server, options) {
        var qs = '?url='+encodeURIComponent(url)+'&server='+server;
        if (options.georef) {
            qs += '&georef='+encodeURIComponent(options.georef);
        }   
        return qs;
    }, 
    
    /*
     * georef option should be provided if possible.
     */
    open: function(url, server, options) {
        var qs = MetaCarta.Labs.Mistags.buildQuery(url, server, options);
        var win = new Ext.Window({
            title: 'Report Error',
            width: 500,
            height: 'auto',
            padding: 15,
            items: [
                {
                    html: "<iframe style='width: 475px; height: 250px;' src='"+MetaCarta.Labs.Mistags.baseUrl+qs+"'></iframe>"
                }
            ]
        });
        win.show();
    },
    createLink: function(url, server, options) {
        var qs = MetaCarta.Labs.Mistags.buildQuery(url, server, options);
        var a = document.createElement("a");
        a.href = MetaCarta.Labs.Mistags.baseUrl + qs;
        a.setAttribute("onclick", "MetaCarta.Labs.Mistags.open('" + url + "', '"+server+"', {georef: '" + options.georef + "'});return false");  
        var linkText = options.linkText ? options.linkText : "Report Error";
        a.appendChild(document.createTextNode(linkText));
        if (options.returnDom) {
            return a;
        }    
        var div = document.createElement("div");
        div.appendChild(a);
        return div.innerHTML;
    }

};    
