/*
** Dynamically Formatting HTML Elements
*/
var DYNFMT = {
	domain: '.phpmix.org',
	init: function() {
		with(document) if (getElementsByTagName && createElement && appendChild) {
			this.oldload = window.onload;
			window.onload = this.onload;
/*
			if (document.all) {
				this.oldresize = window.onresize;
				window.onresize = this.onresize;
			}
*/
		}
		if (this.domain.length<=0) {
			this.domain = location.hostname;
		}
	},
	onload: function() {
		if (DYNFMT.oldload) {DYNFMT.oldload();DYNFMT.oldload=null;}
		var i, x;
		// Insert <div class="quote"></div> to all blockquote elements
		x = document.getElementsByTagName('blockquote');
		for (i=0;i<x.length;i++) {DYNFMT.blockquote(x[i]);}
		// Inject target="_blank" to all external links
		x = document.getElementsByTagName('a');
		for (i=0;i<x.length;i++) {DYNFMT.external_links(x[i]);}
		// Try to find a workaround for IE not doing overflow:hidden without specified width.
		// This is necessary to avoid content in main section expand pushing down the left sidebar.
		if (document.all) {
			DYNFMT.containers = {
				page: document.getElementById('page'),
				wrap: document.getElementById('wrapper3'),
				side: document.getElementById('sidebar-left'),
				main: document.getElementById('main')
			};
//			DYNFMT.containers.page_width = DYNFMT.containers.page.style.width;
//			DYNFMT.containers.main_width = DYNFMT.containers.main.style.width;
			if (DYNFMT.containers.page && DYNFMT.containers.wrap && DYNFMT.containers.side && DYNFMT.containers.main && DYNFMT.containers.side.offsetTop > 0) {
				DYNFMT.containers.page.style.width = DYNFMT.containers.page.offsetWidth + 'px';	// Force page to remain at current width
				DYNFMT.containers.main.style.width = (DYNFMT.containers.wrap.offsetWidth-DYNFMT.containers.side.offsetWidth-20) + 'px';
				x = DYNFMT.containers.main.getElementsByTagName('table');
				for (i=0;i<x.length;i++) {
					x[i].style.zIndex = -1;
				}
				x = DYNFMT.containers.main.getElementsByTagName('iframe');
				for (i=0;i<x.length;i++) {
					x[i].style.zIndex = -1;
				}
			}
		}
	},
	onresize: function() {
		if (DYNFMT.oldresize) DYNFMT.oldresize();
		if (DYNFMT.containers) {
			DYNFMT.containers.page.style.width = DYNFMT.containers.page_width;
			DYNFMT.containers.main.style.width = DYNFMT.containers.main_width;
			setTimeout('DYNFMT.resize();', 100);
		}
	},
	resize: function() {
		var x;
		if (DYNFMT.containers.page && DYNFMT.containers.wrap && DYNFMT.containers.side && DYNFMT.containers.main && DYNFMT.containers.side.offsetTop > 0) {
			DYNFMT.containers.page.style.width = DYNFMT.containers.page.offsetWidth + 'px';	// Force page to remain at current width
			DYNFMT.containers.main.style.width = (DYNFMT.containers.wrap.offsetWidth-DYNFMT.containers.side.offsetWidth-20) + 'px';
			x = DYNFMT.containers.main.getElementsByTagName('table');
			for (i=0;i<x.length;i++) {
				x[i].style.zIndex = -1;
			}
			x = DYNFMT.containers.main.getElementsByTagName('iframe');
			for (i=0;i<x.length;i++) {
				x[i].style.zIndex = -1;
			}
		}
	},
	blockquote: function(o) {
		var q,x,i,a=[];
		q = document.createElement('div');
		x = o.childNodes;
		if (!q||!x) return;
		q.className = 'quote';
		for (i=0;i<x.length;i++) a[i]=x[i];
		o.appendChild(q);
		for (i=0;i<a.length;i++) q.appendChild(a[i]);
	},
	external_links: function(o) {
		if (o.href.indexOf('http://') == 0 || o.href.indexOf('https://') == 0) {
			if (o.href.indexOf(this.domain) < 0 &&
				o.innerHTML.indexOf('<img') == -1 &&
				o.innerHTML.indexOf('<IMG') == -1) {
				o.target = '_blank';
				if (o.className == '') {
					o.className = 'external-link';
				}
				else {
					o.className += ' external-link';
				}
			}
		}
	}
};
DYNFMT.init();
