// 2847/4923 = 0,57830591102986
var WMP_classids = {
'default': 'CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6', // nýir WMP
'old'    : 'CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95'  // WMP 6 
};
function WMPlayer(div, args) {
if (typeof div == 'string') 
div = document.getElementById(div);
this.div = div;
if (!args.filename) args.filename = args.url;
this.args = jQuery.extend({
autostart: true,
filename:  'playlist.asx',
compat:    'default',
mini:      false,
type:      'video/x-ms-wmv'
}, args);
this.params = this.mapSettings(['autostart', 'filename'], { stretchToFit: false, url: this.args.filename });
this.objectAttrs = this.mapSettings(['width', 'height', 'id', 'type'], { classid: WMP_classids[this.args.compat] });
this.embedAttrs = this.mapSettings(['width', 'height', 'id', 'type', 'autostart'], { showcontrols: true, src: this.args.filename });
if (this.args.mini) {
if (this.args.compat) {
this.params.showPositionControls = 'false';
this.params.showTracker = 'false';
this.params.showControls = 'true';
this.controlHeight = 26;
} else {
this.params.uiMode = 'mini';
this.controlHeight = 40; // XXX finna rétta hæð
}
}
var params = '';
for (var k in this.params) {
params += '<param name="' + k + '" value="' + this.params[k] + '" />\n';
}
this.html = createElement('object', [this.objectAttrs], 
params,
createElement('embed', [this.embedAttrs])  
);
}
WMPlayer.prototype.stringifyValue = function (v, bai) {
if (typeof(v) == 'boolean') 
return bai ? (v ? 1 : 0) : v.toString();
else
return v;
};
WMPlayer.prototype.mapSettings = function (def, custom, bai) {
var ret = {};
for (var i = 0; i < def.length; i++) {
ret[def[i]] = this.stringifyValue(this.args[def[i]], bai);
}
for (var k in custom) {
ret[k] = this.stringifyValue(custom[k], bai);
}
return ret;
};
WMPlayer.prototype.write = function () {
this.div.innerHTML = this.html;
};
if (typeof createElement != 'function') {
function createElement(name, attrs, children) {
var xml = '<' + name;
if (!(attrs instanceof Array) && attrs) 
attrs = [attrs];
if (attrs.length > 0) {
xml += ' ';
attrs.unshift('prop');
xml += createAttributes.apply(this, attrs);
}
if (arguments.length >= 2) {
xml += '>\n';
for (var i = 2; i < arguments.length; i++) {
xml += arguments[i] + '\n';
}
xml += '</' + name + '>';
} else {
xml += ' />';
}
return xml;
}
} // if (typeof createElement != 'function')
if (typeof createAttributes != 'function') {
function createAttributes() {
var attrs = hash_merge.apply(this, arguments);
var ret = [];
for (var k in attrs)  
ret[ret.length] = k + '="' + attrs[k] + '"';
return ret.join(' ');
}
}
if (typeof hash_merge != 'function') {
function hash_merge() {
var attrs = {};
for (var i = 0; i < arguments.length; i++) {
for (var k in arguments[i]) {
if (/^\d*$/.test(k) || arguments[i][k] == null) continue; // leyfum ekki tölur sem lykla
attrs[k] = arguments[i][k];
}
}
return attrs;
}
}

