/**
 * script to locate elements in the dom and wrap them with a drop shadow finds
 * all elements with class == dropShadow transfers all *Shadow classes to the
 * new container leaves others behind
 * 
 */

var allShadowed = [];
var shadowSheets = {};
var firstTimeAround = true;

function getStyleSheet(sheetname) {
	if (!shadowSheets[sheetname]) {
		var link = document.createElement('link');
		link.rel = 'stylesheet';
		link.type = 'text/css';
		link.href = '/sass_css/shadows/' + sheetname + '.css';
		document.getElementsByTagName('head')[0].appendChild(link);
		shadowSheets[sheetname] = link;
	}
}
function notWrapIt(node) {
	// just put a div around it
	var newNode = dojo.clone(node);
	var divNode = document.createElement('div');
	divNode.appendChild(newNode);
	return divNode;
}
function wrapIt(node) {
	// get the dropShadow css file
	getStyleSheet('dropShadow');
	// get the classNames from the element
	var classNames = node.className.split(' ');
	var newNode = dojo.clone(node);
	var tableNode = document.createElement('table');
	dojo.attr(tableNode, 'border', '0');
	dojo.attr(tableNode, 'cellpadding', '0');
	dojo.attr(tableNode, 'cellspacing', '0');
	for ( var i = 0; i < classNames.length; i++) {
		if (classNames[i].match(/Shadow$/)) {
			getStyleSheet(classNames[i]);
			dojo.removeClass(newNode, classNames[i]);
			dojo.addClass(tableNode, classNames[i]);
		}
	}
	// continue to build the table
	var tbodyNode = document.createElement('tbody');
	var rowNode = document.createElement('tr');
	var celNode = document.createElement('td');
	dojo.addClass(celNode, 'dstl');
	// var imgNode = document.createElement('img');
	// dojo.attr(imgNode, 'src', '/sass_images/spacer.gif');
	// celNode.appendChild(imgNode);
	rowNode.appendChild(celNode);
	
	celNode = document.createElement('td');
	dojo.addClass(celNode, 'dst');
	// imgNode = document.createElement('img');
	// dojo.attr(imgNode, 'src', '/sass_images/spacer.gif');
	// celNode.appendChild(imgNode);
	rowNode.appendChild(celNode);
	
	celNode = document.createElement('td');
	dojo.addClass(celNode, 'dstr');
	// imgNode = document.createElement('img');
	// dojo.attr(imgNode, 'src', '/sass_images/spacer.gif');
	// celNode.appendChild(imgNode);
	rowNode.appendChild(celNode);
	
	tbodyNode.appendChild(rowNode);
	rowNode = document.createElement('tr');

	celNode = document.createElement('td');
	dojo.addClass(celNode, 'dsl');
	// imgNode = document.createElement('img');
	// dojo.attr(imgNode, 'src', '/sass_images/spacer.gif');
	// celNode.appendChild(imgNode);
	rowNode.appendChild(celNode);

	celNode = document.createElement('td');
	dojo.addClass(celNode, 'dsc');
	
	celNode.appendChild(newNode);
	rowNode.appendChild(celNode);
	
	celNode = document.createElement('td');
	dojo.addClass(celNode, 'dsr');
	// imgNode = document.createElement('img');
	// dojo.attr(imgNode, 'src', '/sass_images/spacer.gif');
	// celNode.appendChild(imgNode);
	rowNode.appendChild(celNode);
	
	tbodyNode.appendChild(rowNode);
	rowNode = document.createElement('tr');

	celNode = document.createElement('td');
	dojo.addClass(celNode, 'dsbl');
	// imgNode = document.createElement('img');
	// dojo.attr(imgNode, 'src', '/sass_images/spacer.gif');
	// celNode.appendChild(imgNode);
	rowNode.appendChild(celNode);

	celNode = document.createElement('td');
	dojo.addClass(celNode, 'dsb');
	// imgNode = document.createElement('img');
	// dojo.attr(imgNode, 'src', '/sass_images/spacer.gif');
	// celNode.appendChild(imgNode);
	rowNode.appendChild(celNode);
	
	celNode = document.createElement('td');
	dojo.addClass(celNode, 'dsbr');
	// imgNode = document.createElement('img');
	// dojo.attr(imgNode, 'src', '/sass_images/spacer.gif');
	// celNode.appendChild(imgNode);
	rowNode.appendChild(celNode);

	tbodyNode.appendChild(rowNode);	
	tableNode.appendChild(tbodyNode);
	return tableNode;
}
function wrapItUp() {
	// here we are
	dojo.query('.dropShadow .dropShadow').forEach(function(node) {
		var addNode = wrapIt(node);
		dojo.place(addNode, node, 'before');
		dojo._destroyElement(node);
	});
	// force refresh on ie
	if (dojo.isIE > 0 && dojo.isIE < 7) {
		dojo.body().innerHTML = dojo.body().innerHTML;
	}
	dojo.query('.dropShadow').forEach(function(node) {
		var addNode = wrapIt(node);
		dojo.place(addNode, node, 'before');
		dojo._destroyElement(node);
	});
	// force refresh on ie
	if (dojo.isIE > 0 && dojo.isIE < 7) {
		dojo.body().innerHTML = dojo.body().innerHTML;
	}
}
