function heading_replace() {

	replaceSelector ('h1', 'imagereplace.php', true);

	var testURL = 'images/menu-border.gif';

	var doNotPrintImages = true;
	var printerCSS       = 'stylesheets/print.css';

	var hideFlicker        = true;
	var hideFlickerCSS     = 'stylesheets/image-load.css';
	var hideFlickerTimeout = 1000;

	var items;
	var imageLoaded    = false;
	var documentLoaded = false;

	function replaceSelector(selector, url, wordwrap) {

		if (typeof items == 'undefined') {

			items = new Array();

		}

		items[items.length] = {selector: selector, url: url, wordwrap: wordwrap};

	}

	if (hideFlicker) {		
		
		document.write('<link id="hide-flicker" rel="stylesheet" media="screen" href="' + hideFlickerCSS + '" />');
		window.flickerCheck = function() {

			if (!imageLoaded) {
				
				setStyleSheetState('hide-flicker', false);

			}
		};

		setTimeout('window.flickerCheck();', hideFlickerTimeout)

	}

	if (doNotPrintImages) {

		document.write('<link id="print-text" rel="stylesheet" media="print" href="' + printerCSS + '" />');

	}

	var test = new Image();

	test.onload = function() { imageLoaded = true; if(documentLoaded) replacement(); };
	test.src = testURL + '?date=' + (new Date()).getTime();

	addLoadHandler(function(){ documentLoaded = true; if(imageLoaded) replacement(); });

	function documentLoad() {

		documentLoaded = true;
		
		if(imageLoaded) {
			
			replacement();

		}

	}

	function replacement() {

		for (var i = 0; i < items.length; i++) {

			var elements = getElementsBySelector(items[i].selector);

			if (elements.length > 0) {
				
				for(var j=0;j<elements.length;j++) {
				
					if (!elements[j]) {
						
						continue;

					}
			
					var text = extractText(elements[j]);

					while(elements[j].hasChildNodes()) {

						elements[j].removeChild(elements[j].firstChild);

					}

					var tokens = items[i].wordwrap ? text.split(' ') : [text];

					for (var k = 0; k < tokens.length; k++) {

						var url = items[i].url + '?text=' + escape(tokens[k]+" ") + '&selector=' + escape(items[i].selector);
						var image = document.createElement('img');
						image.className = 'replacement';
						image.alt = tokens[k];
						image.src = url;
						elements[j].appendChild(image);

					}

					if (doNotPrintImages) {

						var span = document.createElement('span');
						span.style.display = 'none';
						span.className = 'print-text';
						span.appendChild(document.createTextNode(text));
						elements[j].appendChild(span);

					}
			
				}
		
			}

			if (hideFlicker) {
	
				setStyleSheetState('hide-flicker', false);

			}

		}

	}

	function addLoadHandler(handler) {

		if (window.addEventListener) {

			window.addEventListener('load', handler, false);

		}

		else if (window.attachEvent) {

			window.attachEvent('onload', handler);

		}

		else if (window.onload) {

			var oldHandler = window.onload;

			window.onload = function piggyback() {
			
				oldHandler();
				handler();

			};

		} else {

			window.onload = handler;

		}

	}

	function setStyleSheetState(id, enabled) {

		var sheet = document.getElementById(id);
		
		if(sheet) {
			
			sheet.disabled = (!enabled);

		}

	}

	function extractText(element) {

		if (typeof element == "string") {
			
			return element;

		}

		else if (typeof element == "undefined") {

			return element;

		}

		else if (element.innerText) {

			return element.innerText;

		}

		var text = "";
		var kids = element.childNodes;

		for (var i = 0; i < kids.length; i++) {

			if (kids[i].nodeType == 1) {

				text += extractText(kids[i]);

			}

			else if (kids[i].nodeType == 3) {

				text += kids[i].nodeValue;

			}

		}

		return text;

	}

	function getElementsBySelector(selector) {

		var tokens = selector.split(' ');
		var currentContext = new Array(document);

		for (var i = 0; i < tokens.length; i++)	{

			token = tokens[i].replace(/^\s+/, '').replace(/\s+$/, '');

			if (token.indexOf('#') > -1) {

				var bits = token.split('#');
				var tagName = bits[0];
				var id = bits[1];
				var element = document.getElementById(id);

				if (tagName && element.nodeName.toLowerCase() != tagName) {
					
					return new Array();

				}

				currentContext = new Array(element);
				continue;

			}

			if (token.indexOf('.') > -1) {

				var bits = token.split('.');
				var tagName = bits[0];
				var className = bits[1];

				if (!tagName) {

					tagName = '*';

				}

				var found = new Array;
				var foundCount = 0;

				for (var h = 0; h < currentContext.length; h++) {

					var elements;

					if (tagName == '*') {
						
						elements = currentContext[h].all ? currentContext[h].all : currentContext[h].getElementsByTagName('*');

					} else {

						elements = currentContext[h].getElementsByTagName(tagName);

					}

					for (var j = 0; j < elements.length; j++) {

						found[foundCount++] = elements[j];

					}

				}

				currentContext = new Array;
				var currentContextIndex = 0;

				for (var k = 0; k < found.length; k++) {

					if (found[k].className && found[k].className.match(new RegExp('\\b' + className+ '\\b'))) {

						currentContext[currentContextIndex++] = found[k];

					}

				}

				continue;

			}

			if (token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/)) {

				var tagName = RegExp.$1;
				var attrName = RegExp.$2;
				var attrOperator = RegExp.$3;
				var attrValue = RegExp.$4;
				
				if (!tagName) {

					tagName = '*';

				}

				var found = new Array;
				var foundCount = 0;

				for (var h = 0; h < currentContext.length; h++) {

					var elements;

					if (tagName == '*') {

						elements = currentContext[h].all ? currentContext[h].all : currentContext[h].getElementsByTagName('*');

					} else {

						elements = currentContext[h].getElementsByTagName(tagName);

					}

					for (var j=0;j<elements.length;j++) {

						found[foundCount++] = elements[j];

					}

				}

				currentContext = new Array;
				var currentContextIndex = 0;
				var checkFunction;

				switch (attrOperator) {

					case '=':
						checkFunction = function(e) { return (e.getAttribute(attrName) == attrValue); };
						break;
					case '~':
						checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('\\b'+attrValue+'\\b'))); };
						break;
					case '|':
						checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('^'+attrValue+'-?'))); };
						break;
					case '^':
						checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) == 0); };
						break;
					case '$':
						checkFunction = function(e) { return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length); };
						break;
					case '*':
						checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) > -1); };
						break;
					default :
						checkFunction = function(e) { return e.getAttribute(attrName); };

				}

				currentContext = new Array;
				var currentContextIndex = 0;

				for (var k = 0; k < found.length; k++) {

					if (checkFunction(found[k])) {
						
						currentContext[currentContextIndex++] = found[k];

					}

				}

				continue;

			}

			tagName = token;
			var found = new Array;
			var foundCount = 0;

			for (var h = 0; h < currentContext.length; h++) {

				var elements = currentContext[h].getElementsByTagName(tagName);
				
				for (var j = 0; j < elements.length; j++) {

					found[foundCount++] = elements[j];

				}

			}

			currentContext = found;

		}

		return currentContext;

	}

}

if (document.createElement && document.getElementsByTagName && !navigator.userAgent.match(/opera\/?6/i)) {

	heading_replace();

}

function show_text(object) {

	var content_height = document.getElementById('content').offsetHeight;

	var inf  = document.getElementById(object).innerHTML;
	document.getElementById('text').innerHTML = inf;


	document.getElementById('content').style.height = content_height;

}

var div_state    = 'none';
var image_normal = 'images/faq_plus.gif';
var image_click  = 'images/faq_minus.gif';

function view_answer(item_id) {

	var object = 'answer_' + item_id;
	var el     = document.getElementById(object);
	var image  = 'faq_image_' + item_id;

	var imageObj = document.getElementById(image);
	var imageSrc = imageObj.getAttribute('src');

	if (el.style.display == 'block' ) {

		div_state   = 'none';
		image_state = image_normal;
		
	} else { 
	
		div_state   = 'block';
		image_state = image_click;
		
	}

	if (document.all) {

		var content_height = document.getElementById('faq').offsetHeight + 14;

		document.getElementById(object).style.display = div_state;
		document.getElementById(image).src = image_state;

		document.getElementById('content').style.height = content_height;

	}

	if (document.layers) {

		document.layers[object].display = div_state;

		imageObj.setAttribute('src', image_state);
	}

	if (document.getElementById && !document.all) {

		maxwell_smart = document.getElementById(object);
		maxwell_smart.style.display = div_state;

		imageObj.setAttribute('src', image_state);

	}

}

function isDemoOk() {

	IsOk = true;

	bver = Math.round(parseFloat(navigator.appVersion) * 1000);
	
	if (navigator.appName.substring(0,8) == "Netscape") {

		if ((bver < 5000) && (navigator.appVersion.indexOf("Mac") > 0)) {

			IsOk = false;

		} else if (bver < 4060) {

			IsOk = false;

		}
		
	}

	if (navigator.appName.substring(0,9) == "Microsoft") {

		if(bver < 4000) {

			IsOk = false;

		}

	}

	plugins = navigator.plugins;

	if (plugins != null && IsOk == false) {

		for (i=0; i != plugins.length; i++) {
			
			if ((plugins[i].name.indexOf("1.0") < 0) && (plugins[i].name.indexOf("Java Plug-in" ) >= 0)) {

				IsOk = true;

			}

		}

	}

	return IsOk;

}

function openDemo(htmlFile,htmlWidth,htmlHeight) {
	
	var bua = navigator.userAgent;

	s = 'resizable=0,toolbar=0,menubar=0,scrollbars=0,status=0,location=0,directory=0,width=350,height=200';

	if (navigator.appVersion.indexOf("Mac") > 0) {

		htmlHeight = (htmlHeight + 15);
		htmlWidth  = (htmlWidth + 15);

	}

	if (!isDemoOk()) {
		
		open('http://www.turbodemo.com/error.html', '', s);

	} else {

		if (bua.indexOf('Opera') != -1) {

			window.open('/demos/' + htmlFile + '.html', '', 'width=' + htmlWidth + ', height=' + htmlHeight + ', top=10, left=10');
		
		} else {

			window.open('/demos/' + htmlFile + '.html', '', 'width=' + htmlWidth + ', height=' + htmlHeight + ', top=10, left=10');

		}
 
	}

}