function load_xml(xml) {
	script = xml;
	data = ajax_request(xml,false);
	parser = new DOMParser();
	if (window.DOMParser) {
  		parser=new DOMParser();
  		xmlDoc=parser.parseFromString(data,"text/xml");
 	 }
	else {
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(data); 
  	}
  	return xmlDoc;
}

function shadows() {
	elements = document.getElementsByTagName('*');
	for (i=0; i<elements.length; i++) {
		if(elements[i].getAttribute('shadow')) {
			shadow = elements[i];
			child = shadow.childNodes[1];
			shadow.style.margin = '2px 0 0 2px';
			shadow.style.backgroundColor = '#cccccc';
			shadow.style.border = 'thin solid #eeeeee';
			child.style.margin = ' -2px 2px 2px -2px'
		}
	}
}

function alternate_colors(the_colors,randomize) {
	var containers = getElementByClass('stratify');
	for (i=0; i<containers.length; i++) {
		var rows = containers[i].getElementsByTagName('li');
		var c = 0;
		for (j=0; j<rows.length; j++) {
			if (randomize==true) {
				num = Math.floor(Math.random()*the_colors.length)
				rows[j].style.backgroundColor = the_colors[num];
			}
			else {
				rows[j].style.backgroundColor = the_colors[c];
				if (c+1 == the_colors.length) {c = 0;}
				else {c++;}
			}
		}
	}
}

function addCorners(corners_path) {
		var corners = new Array('corner_top_left','corner_top_right','corner_bottom_right','corner_bottom_left');
		var positions = new Array('top:0; left:0;','top:0; right:0;','bottom:0; right:0;','bottom:0; left:0;');
		var elements = document.getElementsByTagName('*');
		for (i=0; i<elements.length; i++) {
			if (elements[i].getAttribute('corners')) {
				type = elements[i].getAttribute('corners');
				path = corners_path+type+'/';
				elements[i].style.position = 'relative';
				for (j=0; j<corners.length; j++) {
					newCorner = '<img src="'+path+corners[j]+'.gif" style="z-index:100; position:absolute; '+positions[j]+'"/>';
					elements[i].innerHTML += newCorner;
				}
			}
		}
	}

function select_text(element,start,end) {
	element.focus();
	if(element.setSelectionRange) {element.setSelectionRange(start, end);}
	else {
   		var r = element.createTextRange();
   		r.collapse(true);
  		r.moveEnd('character', end);
   		r.moveStart('character', start);
  		r.select();   
	}
}

function getElementByClass(theClass) {
	var allTags = new Array();
	var theTags = new Array();
	var allTags = document.getElementsByTagName("*");
	for (i=0; i<allTags.length; i++) {
		if (allTags[i].className==theClass) {
			theTags.push(allTags[i]);
		}
	}
	return theTags;
}

function fadeInElement(element,i,o,s,a,d,callback) {
	if(d) {element.style.display = d;}
	i=i+s;
	s=s+a;
	element.style.opacity=i;
	element.style.filter = 'alpha(opacity='+(i*100)+')';
	var func = function() {fadeInElement(element,i,o,s,a,d,callback);}
	if (i<o) {setTimeout(func,10);}
	else {
		if(callback) {callback();}
	}
}

function fadeOutElement(element,i,o,v,a,d,callback) {
	i=i-v;
	v=v+a;
	element.style.opacity=i;
	element.style.filter = 'alpha(opacity='+i*100+')';
	var func = function() {fadeOutElement(element,i,o,v,a,d,callback);}
	if (i>o) {setTimeout(func,10);}
	else {
		if (d) {element.style.display='none';}
		if(callback) {callback();}
	}
}

function shrinkElement(element,i,o,v,a,d) {
	i=i-v
	v=v+a;
	element.style.height=i+'px';
	var func = function() {shrinkElement(element,i,o,v,a,d);}
	if (i>o) {setTimeout(func,10);}
	else {
		if (d) {element.style.display='none';}
	}
}

function growElement(element,i,o,v,a) {
	i=i+v
	v=v+a;
	element.style.height=i+'px';
	var func = function() {growElement(element,i,o,v,a);}
	if (i<o) {setTimeout(func,10);}
}


function ExtractNumber(value) {
	var n = parseInt(value);
	return n;
}

function $(element) {return document.getElementById(element);}
