﻿var user = window.navigator.userAgent;
isOpera = /opera/i.test(user);
isIE = /msie/i.test(user) && !isOpera;
isFF = /firefox/i.test(user);

var ubbcnAjax = function(url) {
    this.url = url;
}

ubbcnAjax.prototype = {
    createAjax: function() {
        return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
    },
    init: function() {
        var ajax = this.createAjax();
        ajax.open('GET', this.url, false);
        if (!isIE) {
            ajax.overrideMimeType("text/xml");
        }
        ajax.send();
        return ajax;
    },
    output: function() {
        var data = this.parseToXml(this.init());
        var locals = data.getElementsByTagName("local");
        var nos = data.getElementsByTagName("no");
        var names = data.getElementsByTagName("name");
        var descs = data.getElementsByTagName("description");
        var urls = data.getElementsByTagName("url");
        var attachs = data.getElementsByTagName("attachment");
        var types = data.getElementsByTagName("type");
        var widths = data.getElementsByTagName("width");
        var heights = data.getElementsByTagName("height");
        var hash = {};
        for (var i = 0; i < locals.length; i++) {
            if (locals[i].nodeType == 1) {
                var local = locals[i].firstChild.nodeValue;
                var no = nos[i].firstChild.nodeValue;
                var name = names[i].firstChild.nodeValue;
                var desc = descs[i].firstChild.nodeValue;
                var url = urls[i].firstChild.nodeValue;
                var attach = attachs[i].firstChild.nodeValue;
                var type = types[i].firstChild.nodeValue;
                var width = widths[i].firstChild.nodeValue;
                var height = heights[i].firstChild.nodeValue;
                hash[local] = { 'local': local, 'no': no, 'name': name, 'description': desc, 'url': url,
                    'attachment': attach, 'type': type, 'width': width, 'height': height
                };
            }
        }
        return hash;
    },
    parseToXml: function(obj) {
        if (isIE) {
            var data = obj.responseText;
            var xmlBody = new ActiveXObject("Microsoft.XMLDOM");
            xmlBody.async = false;
            xmlBody.loadXML(data);
        } else {
            var xmlBody = obj.responseXML;
        }
        return xmlBody;
    }
}

function showad(local) {
    var ad = data[local];
    switch (ad.type) {
        case '.gif':
        case '.jpg':
        case '.png':
        case '.jpeg':
            document.write("<a href=\"" + ad.url + "\" target=\"_blank\"><img src=\""
                            + ad.attachment + "\" style=\"margin:0px;padding:0px;border:0px;\""
                            + " width=\"" + ad.width + "\" height=\"" + ad.height + "\" /></a>");
            break;
        case '.swf':
            document.write("<embed width=\"" + ad.width + "\" height=\"" + ad.height
                            + "\" scale=\"Showall\" quality=\"high\" src=\""
                            + ad.attachment + "\" type=\"application/x-shockwave-flash\" />");
            break;
    }
}