var popupOptions = new Array();

popupOptions['print'] = {
	width:604,
	height:570,
	left: 'center',
	top: 'center',
	scrollbars:'yes',
	location:0,
	menubar:'yes',
	resizable:'yes'
}

function initializePopups() {
	var a, i;
	for (i=0; a=document.links[i]; i++) {
		if (a.target && a.target.indexOf("popup:") == 0) {
			a.onclick = popupHandler;
		}
	}
}

function parsePopupTarget(t) {
	var a, s, i, o, p;
	a=new Array();
	s=t.substring(6);
	if (s.indexOf(',') >= 0) {
		s = s.split(',');
		for (i=0; i < s.length; i++) {
			p=s[i].split('=');
			a[p[0]]=p[1];
		}
		return a;
	}
	else if (popupOptions[s]) {
		o=popupOptions[s];
		if (!o.name)o.name=s;
		return o;
	}
	alert("Unknown popup style: '"+s+"'");
}

function serializePopupOptions(options) {
	var s, sw, sh, key, v;
	s='';
	sw=screen.availWidth? screen.availWidth : 800;
	sh=screen.availHeight? screen.availHeight : 600;
	for (key in options) {
		v=options[key];
		if (typeof(v) != "function") {
			if (key=='left' && v=='center' && options['width']) {
				v=Math.round(sw/2 - options['width']/2);
			}
			if (key=='top' && v=='center' && options['height']) {
				v=Math.round(sh/2 - options['height']/2);
			}
			if (key!='name') {
				if (s != '') {
					s+=',';
				}
				s+=key+'='+v;
			}
		}
	}
	return s;
}

function popup(url, options) {
	var n=options['name'];
	if (!n) {
		n=String(new Date().getTime());
	}
	var w=window.open(url,n,serializePopupOptions(options));
	if (w.focus) {
		w.focus();
	}
	return w;
}

function predefinedPopup(url, style) {
	return popup(url, popupOptions[style]);
}

function popupLink(a) {
	if (a.target == 'popup:_blank') {
		open(a.href);
	}
	else {
		popup(a.href, parsePopupTarget(a.target));
	}
	return false;
}
