// from mootools-1.11
window.xpath = !!(document.evaluate);
if (window.ActiveXObject) window.ie = window[window.XMLHttpRequest ? 'ie7' : 'ie6'] = true;
else if (document.childNodes && !document.all && !navigator.taintEnabled) window.webkit = window[window.xpath ? 'webkit420' : 'webkit419'] = true;
else if (document.getBoxObjectFor != null) window.gecko = true;

var $extend = function(){
    var args = arguments;
    if (!args[1]) args = [this, args[0]];
    for (var property in args[1]) args[0][property] = args[1][property];
    return args[0];
};

function elementString (name, props, inner) {
    var attrs = [name];
    for (var i in props) {
        attrs.push(i + '="' + props[i] + '"');
    }
    return '<' + attrs.join(' ') +
        (inner ? '>' + inner + '</' + name + '>' : '/>');
}

function javaObject (element, name, classname, width, height, params) {
/*
    if (!window.gecko) {
        if (width == "100%") { width = 1; }
        if (height == "100%") { height = 1; }
    }
*/
    var objProps = {
        type: "application/x-java-applet;version=1.5",
        classid: (window.ie ? "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" :
                  "java:" + classname + ".class"),
        width: width, height: height, name: name, id: name
    };

    var props = $extend({}, objProps);
    $extend(props, { code: classname, mayscript: true });
    $extend(props, params);

    var inner = "";
    for (var i in props) {
        inner += elementString('param', { name: i, value: props[i] });
    }

    var str = elementString('object', objProps, inner);
    //alert("into javaObject ...");
    //alert("value of str : " + str);
    if (element) { 
      document.getElementById(element).innerHTML = str;
    }
    return str;
}
